<?php

namespace {
    class CModule
    {
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_ID;
        var $MODULE_SORT = 10000;
        var $SHOW_SUPER_ADMIN_GROUP_RIGHTS;
        var $MODULE_GROUP_RIGHTS;
        var $PARTNER_NAME;
        var $PARTNER_URI;
        public static function AddAutoloadClasses($module, $arParams = array())
        {
        }
        public static function _GetCache()
        {
        }
        function InstallDB()
        {
        }
        function UnInstallDB()
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        public function GetModuleTasks()
        {
        }
        public function InstallTasks()
        {
        }
        public function UnInstallTasks()
        {
        }
        function IsInstalled()
        {
        }
        function DoUninstall()
        {
        }
        function Remove()
        {
        }
        function Add()
        {
        }
        public static function GetList()
        {
        }
        /**
         * Makes module classes and function available. Returns true on success.
         *
         * @param string $module_name
         * @return bool
         */
        public static function IncludeModule($module_name)
        {
        }
        public static function IncludeModuleEx($module_name)
        {
        }
        public static function err_mess()
        {
        }
        public static function GetDropDownList($strSqlOrder = "ORDER BY ID")
        {
        }
        /**
         * @param string $moduleId
         * @return CModule|bool
         */
        public static function CreateModuleObject($moduleId)
        {
        }
    }
    class vote extends \CModule
    {
        var $MODULE_ID = "vote";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        var $errors;
        function vote()
        {
        }
        function InstallUserFields($moduleId = "all")
        {
        }
        function UnInstallUserFields()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2013 Bitrix
     */
    class CBitrixComponent
    {
        public $__name = "";
        private $__relativePath = "";
        public $__path = "";
        private $__templateName = "";
        public $__templatePage = "";
        /** @var CBitrixComponentTemplate */
        public $__template = \null;
        private $__component_epilog = \false;
        public $arParams = array();
        public $arResult = array();
        /** @var array */
        public $arResultCacheKeys = \false;
        /** @var CBitrixComponent */
        public $__parent = \null;
        private $__bInited = \false;
        private $__arIncludeAreaIcons = array();
        private $__NavNum = \false;
        /** @var CPHPCache */
        private $__cache = \null;
        private $__cacheID = "";
        private $__cachePath = "";
        private $__children_css = array();
        private $__children_js = array();
        private $__children_epilogs = array();
        /** @var \Bitrix\Main\Composite\StaticArea[] */
        private $__children_frames = array();
        private $__view = array();
        private static $__componentCounter = array();
        private $__currentCounter = 0;
        private $__currentCounters = array();
        private $__editButtons = array();
        private static $__classes_map = array();
        private static $classes = array();
        private $classOfComponent = "";
        private $randomSequence = \null;
        private $frameMode = \null;
        /** @var  \Bitrix\Main\HttpRequest */
        protected $request;
        private $siteId = \false;
        private $siteTemplateId = \false;
        private $languageId = \false;
        /** @var string|null */
        protected $signedParameters;
        /**
         * Event called from includeComponent before component execution.
         *
         * <p>Takes component parameters as argument and should return it formatted as needed.</p>
         * @param array[string]mixed $arParams
         * @return array[string]mixed
         *
         */
        public function onPrepareComponentParams($arParams)
        {
        }
        /**
         * Event called from includeComponent before component execution.
         *
         * <p>Includes component.php from within lang directory of the component.</p>
         * @return void
         *
         */
        public function onIncludeComponentLang()
        {
        }
        /**
         * Function calls __includeComponent in order to execute the component.
         *
         * @return mixed
         *
         */
        public function executeComponent()
        {
        }
        /**
         * Constructor with ability to copy the component.
         *
         * @param CBitrixComponent $component
         */
        public function __construct($component = \null)
        {
        }
        /**
         * Function returns component name in form bitrix:component.name
         *
         * <p>Note: component must be inited by initComponent method.</p>
         * @return string
         *
         */
        public final function getName()
        {
        }
        /**
         * Function returns path to component in form /bitrix/component.name
         *
         * <p>Note: component must be inited by initComponent method.</p>
         * @return string
         *
         */
        public final function getRelativePath()
        {
        }
        /**
         * Function returns path to component relative to Web server DOCUMENT_ROOT in form /bitrix/components/bitrix/component.name
         *
         * <p>Note: component must be inited by initComponent method.</p>
         * @return string
         *
         */
        public final function getPath()
        {
        }
        /**
         * Function returns the name of the template
         *
         * <p>Note: component must be inited by initComponent method.</p>
         * @return string
         *
         */
        public final function getTemplateName()
        {
        }
        /**
         * Function sets the name of the template. Returns true on success.
         *
         * <p>Note: component must be inited by initComponent method.</p>
         * @param string $templateName
         * @return bool
         *
         */
        public final function setTemplateName($templateName)
        {
        }
        /**
         * @param string $siteTemplateId
         */
        public function setSiteTemplateId($siteTemplateId)
        {
        }
        /**
         * @return mixed
         */
        public function getSiteTemplateId()
        {
        }
        /**
         * @param string $siteId
         */
        public function setSiteId($siteId)
        {
        }
        /**
         * @return mixed
         */
        public function getSiteId()
        {
        }
        /**
         * @param string $languageId
         */
        public function setLanguageId($languageId)
        {
        }
        /**
         * @return mixed
         */
        public function getLanguageId()
        {
        }
        /**
         * Returns signed parameters.
         * The list contains parameters which are presented in  \CBitrixComponent::listKeysSignedParameters().
         *
         * @see \CBitrixComponent::listKeysSignedParameters()
         *
         * @return string|null
         */
        public final function getSignedParameters()
        {
        }
        /**
         * Sings and stores parameters.
         *
         * @param array $params Parameters of component.
         *
         * @return $this
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        private function storeSignedParameters(array $params)
        {
        }
        /**
         * List of keys of parameters which the component have to sign,
         *
         * @return null|array
         */
        protected function listKeysSignedParameters()
        {
        }
        /**
         * Function returns the template page witch was set with initComponentTemplate
         *
         * <p>Note: component must be inited by initComponent method.</p>
         * @return string
         *
         */
        public final function getTemplatePage()
        {
        }
        /**
         * Function returns the template object
         *
         * <p>Note: component must be inited by initComponent method.</p>
         * @return CBitrixComponentTemplate
         *
         */
        public final function getTemplate()
        {
        }
        /**
         * Function returns the parent component (if exists)
         *
         * <p>Note: component must be inited by initComponent method.</p>
         * @return CBitrixComponent
         *
         */
        public final function getParent()
        {
        }
        /**
         * Function returns current template css files or null if there is no template.
         *
         * <p>Note: component must be inited by initComponent method.</p>
         * @return array[string][int]string
         *
         */
        public final function getTemplateCachedData()
        {
        }
        /**
         * Function applies collection of the css files to the current template.
         *
         * <p>Note: component must be inited by initComponent method.</p>
         * @param array[string][int]string $templateCachedData
         * @return void
         *
         */
        public final function setTemplateCachedData($templateCachedData)
        {
        }
        /**
         * Function includes class of the component by component name bitrix:component.base
         *
         * @param string $componentName
         * @return string
         *
         */
        public static final function includeComponentClass($componentName)
        {
        }
        /**
         * Function returns class name of the component by it's path.
         *
         * <p>At first class.php is checked and if exists then included.
         * Then if there is subsclass of CBitrixComponent found? it's name is returned.</p>
         * @param string $componentPath
         * @return string
         *
         */
        private final function __getClassForPath($componentPath)
        {
        }
        /**
         * Function initializes the component. Returns true on success.
         *
         * <p>It is absolutly necessery to call this function before any component usage.</p>
         * @param string $componentName
         * @param string|bool $componentTemplate
         * @return bool
         *
         */
        public final function initComponent($componentName, $componentTemplate = \false)
        {
        }
        /**
         * Helper function for component parameters safe html escaping.
         *
         * @param array[string]mixed &$arParams
         * @return void
         *
         */
        public final function __prepareComponentParams(&$arParams)
        {
        }
        /**
         * Function includes language files from within the component directory.
         *
         * <p>For example: $this->includeComponentLang("ajax.php") will include "lang/en/ajax.php" file. </p>
         * <p>Note: component must be inited by initComponent method.</p>
         * @param string $relativePath
         * @param string|bool $lang
         * @return void
         *
         */
        public final function includeComponentLang($relativePath = "", $lang = \false)
        {
        }
        /**
         * Function includes component.php file thus executing the component. Returns what component.php returns.
         *
         * <p>Before include there is some helper variables made available for component.php scope.</p>
         * <p>Note: component must be inited by initComponent method.</p>
         * @return mixed
         *
         */
        protected final function __includeComponent()
        {
        }
        /**
         * Function executes the component. Returns the result of it's execution.
         *
         * <p>Note: component must be inited by initComponent method.</p>
         * @param string $componentTemplate
         * @param array[string]mixed $arParams
         * @param CBitrixComponent $parentComponent
         * @return mixed
         *
         */
        public final function includeComponent($componentTemplate, $arParams, $parentComponent, $returnResult = \false)
        {
        }
        /**
         * Function executes the template.
         *
         * <p>Note: component must be inited by initComponent method.</p>
         * @param string $templatePage
         * @param string $customTemplatePath
         * @return void
         *
         */
        public final function includeComponentTemplate($templatePage = "", $customTemplatePath = "")
        {
        }
        /**
         * Function initializes the template of the component. Returns true on success.
         *
         * <p>Instansiates the template object and calls it's init function.</p>
         * <p>Note: component must be inited by initComponent method.</p>
         * @param string $templatePage
         * @param string|bool $siteTemplate
         * @param string $customTemplatePath
         * @return bool
         *
         */
        public final function initComponentTemplate($templatePage = "", $siteTemplate = \false, $customTemplatePath = "")
        {
        }
        /**
         * Function executes initialized template of the component.
         *
         * <p>Note: component must be inited by initComponent method.</p>
         * @return void
         *
         */
        public final function showComponentTemplate()
        {
        }
        /**
         * Function adds an Icon to the component area in the editing mode.
         *
         * @param array[string]mixed $arIcon
         * @return void
         *
         */
        public final function addIncludeAreaIcon($arIcon)
        {
        }
        /**
         * Function replaces Icons displayed for the component by an collection.
         *
         * @param array[int][string]mixed $arIcon
         * @return void
         *
         */
        public final function addIncludeAreaIcons($arIcons)
        {
        }
        /**
         * Function returns the collection of the Icons displayed for the component.
         *
         * @return array[int][string]mixed
         *
         */
        public final function getIncludeAreaIcons()
        {
        }
        /**
         * Function returns an cache identifier based on component parameters and environment.
         *
         * @param mixed $additionalCacheID
         * @return string
         */
        public function getCacheID($additionalCacheID = \false)
        {
        }
        /**
         * Function starts the caching block of the component execution.
         *
         * @param int|bool $cacheTime
         * @param mixed $additionalCacheID
         * @param string|bool $cachePath
         * @return string
         *
         */
        public final function startResultCache($cacheTime = \false, $additionalCacheID = \false, $cachePath = \false)
        {
        }
        /**
         * Function ends the caching block of the component execution.
         *
         * <p>Note: automaticly called by includeComponentTemplate.</p>
         * @return void
         *
         */
        public final function endResultCache()
        {
        }
        /**
         * Function aborts the cache after it's start.
         *
         * <p>Note: must be called if component returns before endResultCache or includeComponentTemplate called.</p>
         * @return void
         *
         */
        public final function abortResultCache()
        {
        }
        /**
         * Function deletes the cache created before.
         *
         * <p>Note: parameters must exactly match to startResultCache call.</p>
         * @param mixed $additionalCacheID
         * @param string|bool $cachePath
         * @return void
         *
         */
        public final function clearResultCache($additionalCacheID = \false, $cachePath = \false)
        {
        }
        /**
         * Function clears entire component cache.
         *
         * <p>Note: parameters must exactly match to startResultCache call.</p>
         * @param string $componentName
         * @param string $siteId
         * @return void
         *
         */
        public static final function clearComponentCache($componentName, $siteId = "")
        {
        }
        /**
         * Function returns component cache path.
         *
         * @return string
         *
         */
        public final function getCachePath()
        {
        }
        /**
         * Function marks the arResult keys to be saved to cache. Just like __sleep magic method do.
         *
         * <p>Note: it's call adds key, not replacing.</p>
         * @param array[int]string $arResultCacheKeys
         * @return void
         *
         */
        public final function setResultCacheKeys($arResultCacheKeys)
        {
        }
        /**
         * Function returns component area id for editing mode.
         *
         * @param string $entryId
         * @return string
         *
         */
        public final function getEditAreaId($entryId)
        {
        }
        /**
         * Function adds an edit action to some area inside the component.
         *
         * @param string $entryId
         * @param string $editLink
         * @param string|bool $editTitle
         * @param array[string]mixed $arParams
         * @return void
         *
         */
        public final function addEditAction($entryId, $editLink, $editTitle = \false, $arParams = array())
        {
        }
        /**
         * Function adds an delete action to some area inside the component.
         *
         * <ul>
         * <li>$arParams['CONFIRM'] = false - disable confirm;
         * <li>$arParams['CONFIRM'] = 'Text' - confirm with custom text;
         * <li>no $arParams['CONFIRM'] at all - confirm with default text
         * </ul>
         * @param string $entryId
         * @param string $deleteLink
         * @param string|bool $deleteTitle
         * @param array[string]mixed $arParams
         * @return void
         *
         */
        public final function addDeleteAction($entryId, $deleteLink, $deleteTitle = \false, $arParams = array())
        {
        }
        /**
         * Function saves component epilog environment
         *
         * @param array[string]mixed $arEpilogInfo
         * @return void
         *
         */
        public final function setTemplateEpilog($arEpilogInfo)
        {
        }
        /**
         * Function restores component epilog environment and executes it.
         *
         * @param array[string]mixed $arEpilogInfo
         * @return void
         *
         */
        public final function includeComponentEpilog($arEpilogInfo)
        {
        }
        /**
         * Function shows an internal error message.
         *
         * @param string $errorMessage
         * @param string $errorCode
         * @return void
         *
         */
        public function __showError($errorMessage, $errorCode = "")
        {
        }
        /**
         * Function registers children css file for cache.
         *
         * @param string $cssPath
         * @return void
         *
         */
        public final function addChildCSS($cssPath)
        {
        }
        /**
         * Function registers children js file for cache.
         *
         * @param string $jsPath
         * @return void
         *
         */
        public final function addChildJS($jsPath)
        {
        }
        /**
         * Function registers children epilog file for cache.
         *
         * @param string $epilogFile
         * @return void
         *
         */
        public final function addChildEpilog($epilogFile)
        {
        }
        /**
         * Registers child frame for cache.
         *
         * @param \Bitrix\Main\Composite\StaticArea $frame
         * @return void
         *
         */
        public final function addChildFrame($frame)
        {
        }
        /**
         * Function adds a button to be displayed.
         *
         * @param array[int]string $arButton
         * @return void
         *
         */
        public final function addEditButton($arButton)
        {
        }
        /**
         * Function registers new view target for the cache.
         *
         * @param string $target
         * @param string $content
         * @param int $pos
         * @return void
         *
         */
        public final function addViewTarget($target, $content, $pos)
        {
        }
        private static function increaseComponentCounter($componentName, $counter = 1)
        {
        }
        /**
         * Function returns next pseudo random value.
         *
         * @param int $length
         * @return string
         *
         * @see \Bitrix\Main\Type\RandomSequence::randString
         */
        public function randString($length = 6)
        {
        }
        /**
         * Marks a component as capable of composite mode.
         * You should use is to mark a whole component as
         * composite incompatible.
         *
         * @param bool $mode
         * @return void
         *
         */
        public function setFrameMode($mode)
        {
        }
        public function getFrameMode()
        {
        }
        public function getRealFrameMode()
        {
        }
        public function getDefaultFrameMode()
        {
        }
    }
    class CVoteAdminQuestionEdit extends \CBitrixComponent
    {
        /** @var int */
        protected static $questionNumber = 0;
        /** @var \Bitrix\Vote\Vote */
        protected $vote;
        /** @var int */
        protected $voteId;
        /** @var int */
        protected $questionId;
        /** @var array */
        protected $question = [];
        /** @var  ErrorCollection */
        protected $errorCollection;
        /** @var array */
        protected $answers = [];
        /**@var \Bitrix\Vote\Component\VoteQuestionEditGrid*/
        protected $answerGrid;
        public function __construct($component = \null)
        {
        }
        public function executeComponent()
        {
        }
        /**
         * Returns whether this is an AJAX (XMLHttpRequest) request.
         * @return boolean
         */
        protected function isAjaxRequest()
        {
        }
        /**
         * @return Application|\Bitrix\Main\HttpApplication|\CAllMain|\CMain
         */
        protected function getApplication()
        {
        }
        /**
         * @return array|bool|\CAllUser|\CUser
         */
        protected function getUser()
        {
        }
        protected function prepareParams()
        {
        }
        protected function processAction()
        {
        }
        protected function adjustGrid(array $answers)
        {
        }
    }
}
namespace Bitrix\Vote\Component {
    class Log implements \ArrayAccess
    {
        /*
         * @var \CBXVirtualFileFileSystem $file
         */
        protected $file = null;
        var $data = array();
        /**
         * Log constructor.
         * @param string $path Path to log file.
         * @return void
         */
        function __construct($path)
        {
        }
        /**
         * Saves log.
         * @param string $key Key of log array.
         * @param mixed $value value of log array.
         * @throws NotImplementedException
         * @return $this
         */
        public function setLog($key, $value)
        {
        }
        public function isExists()
        {
        }
        /**
         * @param $key
         * @return mixed
         */
        public function getValue($key)
        {
        }
        /**
         * @throws NotImplementedException
         * @return void
         */
        public function save()
        {
        }
        /**
         * @return array
         */
        public function getLog()
        {
        }
        /**
         *
         */
        public function unlink()
        {
        }
        /**
         * @return void
         */
        public function clear()
        {
        }
        /**
         * @param mixed $offset
         * @return bool
         */
        public function offsetExists($offset)
        {
        }
        /**
         * @param mixed $offset
         * @return mixed|null
         */
        public function offsetGet($offset)
        {
        }
        /**
         * @param mixed $offset
         * @param mixed $value
         * @throws NotImplementedException
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * @param mixed $offset
         * @throws NotImplementedException
         */
        public function offsetUnset($offset)
        {
        }
    }
    class VoteQuestionEditGrid
    {
        /** @var string */
        protected $gridId = 'grid_vote_answer';
        /** @var string */
        protected $id;
        /** @var array */
        protected $data = array();
        /** @var Log */
        protected $log;
        /** @var int */
        protected $maxId = 0;
        /** @var  ErrorCollection */
        protected $errorCollection;
        /** @var string */
        protected $logDirectiory;
        public function __construct(string $id)
        {
        }
        /**
         * @return string
         */
        public function getGridId()
        {
        }
        public function getGridInstanceId()
        {
        }
        private function getNextId()
        {
        }
        /**
         * @return \Application|\Bitrix\Main\HttpApplication|\CAllMain|\CMain
         */
        protected function getApplication()
        {
        }
        /**
         * @return array
         */
        public function restore()
        {
        }
        public function merge(array $data)
        {
        }
        /**
         * @param $id
         */
        public function clear($id = null)
        {
        }
        public function processAction()
        {
        }
        public function prepare()
        {
        }
        public function get()
        {
        }
        /**
         * @param array $data
         * @return string|bool
         */
        public function add(array $data)
        {
        }
        /**
         * @param $id
         * @param array $data
         * @return bool
         */
        public function update($id, array $data, $files = null)
        {
        }
        /**
         * @param $id
         * @return bool
         */
        public function delete($id)
        {
        }
        /**
         * @param $id
         * @return bool
         */
        public function cancel($id)
        {
        }
    }
}
namespace {
    class CVoteUfComponent extends \CBitrixComponent
    {
        protected $editMode = \false;
        const STATUS_SUCCESS = 'success';
        const STATUS_DENIED = 'denied';
        const STATUS_ERROR = 'error';
        /** @var  string */
        protected $actionPrefix = "action";
        /** @var  string */
        protected $action = "default";
        /** @var  ErrorCollection */
        protected $errorCollection;
        protected $componentId = '';
        protected static $events = array();
        public function __construct($component = \null)
        {
        }
        protected function sendResponse($response)
        {
        }
        protected function sendJsonResponse($response)
        {
        }
        protected function sendJsonErrorResponse()
        {
        }
        protected function sendJsonSuccessResponse(array $response = array())
        {
        }
        protected function sendJsonAccessDeniedResponse($message = '')
        {
        }
        protected function end($terminate = \true)
        {
        }
        public function hasErrors()
        {
        }
        public function getErrors()
        {
        }
        public function getComponentId()
        {
        }
        public function executeComponent()
        {
        }
        /**
         * Returns whether this is an AJAX (XMLHttpRequest) request.
         * @return boolean
         */
        protected function isAjaxRequest()
        {
        }
        /**
         * @return Application|\Bitrix\Main\HttpApplication|\CAllMain|\CMain
         */
        protected function getApplication()
        {
        }
        /**
         * @return array|bool|\CAllUser|\CUser
         */
        protected function getUser()
        {
        }
        protected function prepareParams()
        {
        }
        protected function processActionView()
        {
        }
        protected function processActionEdit()
        {
        }
    }
    class CVoteAdminQuestions extends \CBitrixComponent
    {
        /**@var CAdminSorting */
        public $sort;
        /** @var CAdminList */
        public $list;
        /** @var ErrorCollection */
        protected $errorCollection;
        protected $rights = "D";
        /** @var string */
        protected $gridId = 'grid_vote_questions';
        /** @var $vote \Bitrix\Vote\Vote */
        protected $vote;
        public function __construct($component = \null)
        {
        }
        public function executeComponent()
        {
        }
        protected function prepareParams()
        {
        }
        protected function processAction()
        {
        }
        protected function updateQuestion($id, $data, $files = \null)
        {
        }
        protected function deleteQuestion($id)
        {
        }
        protected function activateQuestion(int $id, bool $activate)
        {
        }
        /**
         * @return Application|\Bitrix\Main\HttpApplication|\CAllMain|\CMain
         */
        protected function getApplication()
        {
        }
        /**
         * @return array|bool|\CAllUser|\CUser
         */
        protected function getCurrentUser()
        {
        }
        protected function initFilter()
        {
        }
    }
    #############################################
    # Bitrix Site Manager Forum					#
    # Copyright (c) 2002-2007 Bitrix			#
    # http://www.bitrixsoft.com					#
    # mailto:admin@bitrixsoft.com				#
    #############################################
    class CVoteCacheManager
    {
        public static $types = array("C" => "vote_form_channel_", "V" => "vote_form_vote_", "Q" => "vote_form_question_", "A" => "vote_form_answer_");
        public static $cacheKey = "/#SITE_ID#/voting.cache/";
        public function cachePath($site_id)
        {
        }
        function __construct()
        {
        }
        public static function SetTag($path, $tag, $ID = 0)
        {
        }
        public static function ClearTag($type, $ID = 0)
        {
        }
        function OnAfterVoteChannelChange($ID, $arFields = array())
        {
        }
        function OnVoteChange(\Bitrix\Main\Entity\Event $event)
        {
        }
        function OnAfterVoteChange($ID)
        {
        }
        function OnAfterVoteQuestionAdd($ID, $arFields)
        {
        }
        function OnBeforeVoteQuestionUpdate(&$ID, &$arFields)
        {
        }
        function OnAfterVoteQuestionUpdate($ID, $arFields)
        {
        }
        function OnAfterVoteQuestionDelete($ID, $VOTE_ID)
        {
        }
        function OnAfterVoteAnswerAdd($ID, $arFields)
        {
        }
        function OnBeforeVoteAnswerUpdate($ID, $arFields)
        {
        }
        function OnAfterVoteAnswerUpdate($ID, $arFields)
        {
        }
        function OnAfterVoteAnswerDelete($ID, $QUESTION_ID, $VOTE_ID)
        {
        }
        function onAfterVoting($VOTE_ID, $EVENT_ID)
        {
        }
    }
    #############################################
    # Bitrix Site Manager Forum					#
    # Copyright (c) 2002-2009 Bitrix			#
    # http://www.bitrixsoft.com					#
    # mailto:admin@bitrixsoft.com				#
    #############################################
    class CAllVoteEvent
    {
        function err_mess()
        {
        }
        function GetByID($ID)
        {
        }
        function GetAnswer($EVENT_ID, $ANSWER_ID)
        {
        }
        public static function Delete($eventId)
        {
        }
        function SetValid($eventId, $valid)
        {
        }
        function GetList(&$by, &$order, $arFilter = array(), &$is_filtered, $get_user = "N")
        {
        }
    }
    class CAllVote
    {
        public static function err_mess()
        {
        }
        public static function GetFilterOperation($key)
        {
        }
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        /**
         * @deprecated 18.5.1
         * @param array $arFields
         * @param bool $strUploadDir
         * @return array|bool|int
         * @throws Exception
         */
        public static function Add($arFields, $strUploadDir = \false)
        {
        }
        /**
         * @deprecated 18.5.1
         * @param $ID
         * @param $arFields
         * @param bool $strUploadDir
         * @return bool|int
         */
        public static function Update($ID, $arFields, $strUploadDir = \false)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function Reset($ID)
        {
        }
        public static function Copy($ID)
        {
        }
        public static function IsOldVersion()
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function GetByIDEx($ID)
        {
        }
        public static function UserAlreadyVote($voteId, $VOTE_USER_ID, $UNIQUE_TYPE, $delay, $USER_ID = \false)
        {
        }
        public static function UserGroupPermission($CHANNEL_ID)
        {
        }
        public static function SetVoteUserID()
        {
        }
        public static function UpdateVoteUserID($VOTE_USER_ID)
        {
        }
        public static function keepVoting()
        {
        }
        public static function GetNextSort($CHANNEL_ID)
        {
        }
        public static function WrongDateInterval($CURRENT_VOTE_ID, $DATE_START, $DATE_END, $CHANNEL_ID)
        {
        }
    }
    abstract class CAllDBResult
    {
        var $result;
        var $arResult;
        var $arReplacedAliases;
        // replace tech. aliases in Fetch to human aliases
        var $arResultAdd;
        var $bNavStart = \false;
        var $bShowAll = \false;
        var $NavNum, $NavPageCount, $NavPageNomer, $NavPageSize, $NavShowAll, $NavRecordCount;
        var $bFirstPrintNav = \true;
        var $PAGEN, $SIZEN;
        var $SESS_SIZEN, $SESS_ALL, $SESS_PAGEN;
        var $add_anchor = "";
        var $bPostNavigation = \false;
        var $bFromArray = \false;
        var $bFromLimited = \false;
        var $sSessInitAdd = "";
        var $nPageWindow = 5;
        var $nSelectedCount = \false;
        var $arGetNextCache = \false;
        var $bDescPageNumbering = \false;
        /** @var array */
        var $arUserFields = \false;
        var $usedUserFields = \false;
        /** @var array */
        var $SqlTraceIndex = \false;
        /** @var CDatabase */
        var $DB;
        var $NavRecordCountChangeDisable = \false;
        var $is_filtered = \false;
        var $nStartPage = 0;
        var $nEndPage = 0;
        /** @var Main\DB\Result */
        var $resultObject = \null;
        /** @param CDBResult $res */
        public function __construct($res = \null)
        {
        }
        /** @deprecated */
        public function CAllDBResult($res = \null)
        {
        }
        public function __sleep()
        {
        }
        /**
         * @return array
         */
        public abstract function Fetch();
        /**
         * @return array
         */
        protected abstract function FetchInternal();
        public abstract function SelectedRowsCount();
        public abstract function AffectedRowsCount();
        public abstract function FieldsCount();
        public abstract function FieldName($iCol);
        public function NavContinue()
        {
        }
        public function IsNavPrint()
        {
        }
        public function NavPrint($title, $show_allways = \false, $StyleText = "text", $template_path = \false)
        {
        }
        public function GetNavPrint($title, $show_allways = \false, $StyleText = "text", $template_path = \false, $arDeleteParam = \false)
        {
        }
        public function ExtractFields($strPrefix = "str_", $bDoEncode = \true)
        {
        }
        public function ExtractEditFields($strPrefix = "str_")
        {
        }
        public function GetNext($bTextHtmlAuto = \true, $use_tilda = \true)
        {
        }
        public static function NavStringForCache($nPageSize = 0, $bShowAll = \true, $iNumPage = \false)
        {
        }
        public static function GetNavParams($nPageSize = 0, $bShowAll = \true, $iNumPage = \false)
        {
        }
        public function InitNavStartVars($nPageSize = 0, $bShowAll = \true, $iNumPage = \false)
        {
        }
        public function NavStart($nPageSize = 0, $bShowAll = \true, $iNumPage = \false)
        {
        }
        public abstract function DBNavStart();
        public function InitFromArray($arr)
        {
        }
        public function NavNext($bSetGlobalVars = \true, $strPrefix = "str_", $bDoEncode = \true, $bSkipEntities = \true)
        {
        }
        public function GetPageNavString($navigationTitle, $templateName = "", $showAlways = \false, $parentComponent = \null)
        {
        }
        public function GetPageNavStringEx(&$navComponentObject, $navigationTitle, $templateName = "", $showAlways = \false, $parentComponent = \null, $componentParams = array())
        {
        }
        public function SetUserFields($arUserFields)
        {
        }
        protected function AfterFetch(&$res)
        {
        }
    }
    abstract class CDBResultMysql extends \CAllDBResult
    {
        public function __construct($res = \null)
        {
        }
        /** @deprecated */
        public function CDBResultMysql($res = \null)
        {
        }
        /**
         * Returns next row of the select result in form of associated array
         *
         * @return array
         */
        function Fetch()
        {
        }
        protected abstract function FetchRow();
        protected function FetchInternal()
        {
        }
        function NavQuery($strSql, $cnt, $arNavStartParams, $bIgnoreErrors = \false)
        {
        }
    }
    class CDBResult extends \CDBResultMysql
    {
        public function __construct($res = \null)
        {
        }
        /** @deprecated */
        public function CDBResult($res = \null)
        {
        }
        protected function FetchRow()
        {
        }
        function SelectedRowsCount()
        {
        }
        function AffectedRowsCount()
        {
        }
        function FieldsCount()
        {
        }
        function FieldName($iCol)
        {
        }
        function DBNavStart()
        {
        }
    }
    class _CVoteDBResult extends \CDBResult
    {
        function _CVoteDBResult($res, $params = array())
        {
        }
        function Fetch()
        {
        }
    }
    class CAllVoteQuestion
    {
        function err_mess()
        {
        }
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Add($arFields, $strUploadDir = \false)
        {
        }
        public static function Update($ID, $arFields, $strUploadDir = \false)
        {
        }
        public static function Copy($ID, $newVoteID)
        {
        }
        function GetNextSort($VOTE_ID)
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function GetList($VOTE_ID, &$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        function GetListEx($arOrder = array("ID" => "ASC"), $arFilter = array())
        {
        }
        public static function Delete($ID, $VOTE_ID = \false)
        {
        }
        public static function Reset($ID, $VOTE_ID = \false)
        {
        }
        public static function setActive($ID, $activate = \true)
        {
        }
    }
    class CVoteNotifySchema
    {
        public function __construct()
        {
        }
        public static function OnGetNotifySchema()
        {
        }
    }
    ##############################################
    # Bitrix Site Manager Forum                  #
    # Copyright (c) 2002-2009 Bitrix             #
    # http://www.bitrixsoft.com                  #
    # mailto:admin@bitrixsoft.com                #
    ##############################################
    class CAllVoteUser
    {
        function err_mess()
        {
        }
        function OnUserLogin()
        {
        }
        function Delete($USER_ID)
        {
        }
        function GetList(&$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
    }
    class CAllVoteChannel
    {
        function err_mess()
        {
        }
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function SetAccessPermissions($ID, $arGroups)
        {
        }
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        function GetSiteArray($CHANNEL_ID)
        {
        }
        function Delete($ID)
        {
        }
        function GetByID($ID)
        {
        }
        function GetArrayGroupPermission($channel_id)
        {
        }
        public static function GetGroupPermission($channel_id, $arGroups = \false, $params = array())
        {
        }
    }
    class CVoteDiagramType
    {
        var $arType = array();
        function CVoteDiagramType($directCall = \true)
        {
        }
        public static function &getInstance()
        {
        }
    }
    class CAllVoteAnswer
    {
        function err_mess()
        {
        }
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        public static function Delete($ID, $QUESTION_ID = \false, $VOTE_ID = \false)
        {
        }
        public static function GetList($QUESTION_ID, $by = "s_c_sort", $order = "asc", $arFilter = array(), $arAddParams = array())
        {
        }
        public static function GetListEx($arOrder = array("ID" => "ASC"), $arFilter = array())
        {
        }
        function GetGroupAnswers($ANSWER_ID)
        {
        }
    }
    class CVoteEvent extends \CAllVoteEvent
    {
        function err_mess()
        {
        }
        public static function GetUserAnswerStat($arSort = array(), $arFilter = array(), $arParams = array())
        {
        }
    }
    class CVote extends \CAllVote
    {
        public static function err_mess()
        {
        }
        public static function GetDropDownList()
        {
        }
        public static function GetActiveVoteID($CHANNEL_ID)
        {
        }
        public static function CheckVotingIP($VOTE_ID, $REMOTE_ADDR, $KEEP_IP_SEC, $params = array())
        {
        }
        public static function GetNextStartDate($CHANNEL_ID)
        {
        }
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        public static function GetListEx($arOrder = array(), $arFilter = array())
        {
        }
        public static function GetPublicList($arFilter = array(), $strSqlOrder = "ORDER BY C.C_SORT, C.ID, V.DATE_START desc", $params = array())
        {
        }
        public static function GetNowTime($ResultType = "timestamp")
        {
        }
    }
    class CVoteQuestion extends \CAllVoteQuestion
    {
        function err_mess()
        {
        }
    }
    class CVoteUser extends \CAllVoteUser
    {
        function err_mess()
        {
        }
    }
    class CVoteChannel extends \CAllVoteChannel
    {
        function err_mess()
        {
        }
        function GetDropDownList()
        {
        }
    }
    class CVoteAnswer extends \CAllVoteAnswer
    {
        function err_mess()
        {
        }
    }
}
namespace Bitrix\Vote {
    /**
     * EO_Answer
     * @see \Bitrix\Vote\AnswerTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Vote\EO_Answer setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \boolean getActive()
     * @method \Bitrix\Vote\EO_Answer setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Vote\EO_Answer resetActive()
     * @method \Bitrix\Vote\EO_Answer unsetActive()
     * @method \boolean fillActive()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Vote\EO_Answer setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Vote\EO_Answer resetTimestampX()
     * @method \Bitrix\Vote\EO_Answer unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \int getQuestionId()
     * @method \Bitrix\Vote\EO_Answer setQuestionId(\int|\Bitrix\Main\DB\SqlExpression $questionId)
     * @method bool hasQuestionId()
     * @method bool isQuestionIdFilled()
     * @method bool isQuestionIdChanged()
     * @method \int remindActualQuestionId()
     * @method \int requireQuestionId()
     * @method \Bitrix\Vote\EO_Answer resetQuestionId()
     * @method \Bitrix\Vote\EO_Answer unsetQuestionId()
     * @method \int fillQuestionId()
     * @method \int getCSort()
     * @method \Bitrix\Vote\EO_Answer setCSort(\int|\Bitrix\Main\DB\SqlExpression $cSort)
     * @method bool hasCSort()
     * @method bool isCSortFilled()
     * @method bool isCSortChanged()
     * @method \int remindActualCSort()
     * @method \int requireCSort()
     * @method \Bitrix\Vote\EO_Answer resetCSort()
     * @method \Bitrix\Vote\EO_Answer unsetCSort()
     * @method \int fillCSort()
     * @method \int getImageId()
     * @method \Bitrix\Vote\EO_Answer setImageId(\int|\Bitrix\Main\DB\SqlExpression $imageId)
     * @method bool hasImageId()
     * @method bool isImageIdFilled()
     * @method bool isImageIdChanged()
     * @method \int remindActualImageId()
     * @method \int requireImageId()
     * @method \Bitrix\Vote\EO_Answer resetImageId()
     * @method \Bitrix\Vote\EO_Answer unsetImageId()
     * @method \int fillImageId()
     * @method \Bitrix\Main\EO_File getImage()
     * @method \Bitrix\Main\EO_File remindActualImage()
     * @method \Bitrix\Main\EO_File requireImage()
     * @method \Bitrix\Vote\EO_Answer setImage(\Bitrix\Main\EO_File $object)
     * @method \Bitrix\Vote\EO_Answer resetImage()
     * @method \Bitrix\Vote\EO_Answer unsetImage()
     * @method bool hasImage()
     * @method bool isImageFilled()
     * @method bool isImageChanged()
     * @method \Bitrix\Main\EO_File fillImage()
     * @method \string getMessage()
     * @method \Bitrix\Vote\EO_Answer setMessage(\string|\Bitrix\Main\DB\SqlExpression $message)
     * @method bool hasMessage()
     * @method bool isMessageFilled()
     * @method bool isMessageChanged()
     * @method \string remindActualMessage()
     * @method \string requireMessage()
     * @method \Bitrix\Vote\EO_Answer resetMessage()
     * @method \Bitrix\Vote\EO_Answer unsetMessage()
     * @method \string fillMessage()
     * @method \string getMessageType()
     * @method \Bitrix\Vote\EO_Answer setMessageType(\string|\Bitrix\Main\DB\SqlExpression $messageType)
     * @method bool hasMessageType()
     * @method bool isMessageTypeFilled()
     * @method bool isMessageTypeChanged()
     * @method \string remindActualMessageType()
     * @method \string requireMessageType()
     * @method \Bitrix\Vote\EO_Answer resetMessageType()
     * @method \Bitrix\Vote\EO_Answer unsetMessageType()
     * @method \string fillMessageType()
     * @method \int getCounter()
     * @method \Bitrix\Vote\EO_Answer setCounter(\int|\Bitrix\Main\DB\SqlExpression $counter)
     * @method bool hasCounter()
     * @method bool isCounterFilled()
     * @method bool isCounterChanged()
     * @method \int remindActualCounter()
     * @method \int requireCounter()
     * @method \Bitrix\Vote\EO_Answer resetCounter()
     * @method \Bitrix\Vote\EO_Answer unsetCounter()
     * @method \int fillCounter()
     * @method \int getFieldType()
     * @method \Bitrix\Vote\EO_Answer setFieldType(\int|\Bitrix\Main\DB\SqlExpression $fieldType)
     * @method bool hasFieldType()
     * @method bool isFieldTypeFilled()
     * @method bool isFieldTypeChanged()
     * @method \int remindActualFieldType()
     * @method \int requireFieldType()
     * @method \Bitrix\Vote\EO_Answer resetFieldType()
     * @method \Bitrix\Vote\EO_Answer unsetFieldType()
     * @method \int fillFieldType()
     * @method \int getFieldWidth()
     * @method \Bitrix\Vote\EO_Answer setFieldWidth(\int|\Bitrix\Main\DB\SqlExpression $fieldWidth)
     * @method bool hasFieldWidth()
     * @method bool isFieldWidthFilled()
     * @method bool isFieldWidthChanged()
     * @method \int remindActualFieldWidth()
     * @method \int requireFieldWidth()
     * @method \Bitrix\Vote\EO_Answer resetFieldWidth()
     * @method \Bitrix\Vote\EO_Answer unsetFieldWidth()
     * @method \int fillFieldWidth()
     * @method \int getFieldHeight()
     * @method \Bitrix\Vote\EO_Answer setFieldHeight(\int|\Bitrix\Main\DB\SqlExpression $fieldHeight)
     * @method bool hasFieldHeight()
     * @method bool isFieldHeightFilled()
     * @method bool isFieldHeightChanged()
     * @method \int remindActualFieldHeight()
     * @method \int requireFieldHeight()
     * @method \Bitrix\Vote\EO_Answer resetFieldHeight()
     * @method \Bitrix\Vote\EO_Answer unsetFieldHeight()
     * @method \int fillFieldHeight()
     * @method \string getFieldParam()
     * @method \Bitrix\Vote\EO_Answer setFieldParam(\string|\Bitrix\Main\DB\SqlExpression $fieldParam)
     * @method bool hasFieldParam()
     * @method bool isFieldParamFilled()
     * @method bool isFieldParamChanged()
     * @method \string remindActualFieldParam()
     * @method \string requireFieldParam()
     * @method \Bitrix\Vote\EO_Answer resetFieldParam()
     * @method \Bitrix\Vote\EO_Answer unsetFieldParam()
     * @method \string fillFieldParam()
     * @method \string getColor()
     * @method \Bitrix\Vote\EO_Answer setColor(\string|\Bitrix\Main\DB\SqlExpression $color)
     * @method bool hasColor()
     * @method bool isColorFilled()
     * @method bool isColorChanged()
     * @method \string remindActualColor()
     * @method \string requireColor()
     * @method \Bitrix\Vote\EO_Answer resetColor()
     * @method \Bitrix\Vote\EO_Answer unsetColor()
     * @method \string fillColor()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Vote\EO_Answer set($fieldName, $value)
     * @method \Bitrix\Vote\EO_Answer reset($fieldName)
     * @method \Bitrix\Vote\EO_Answer unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Vote\EO_Answer wakeUp($data)
     */
    class EO_Answer
    {
        /* @var \Bitrix\Vote\AnswerTable */
        public static $dataClass = '\\Bitrix\\Vote\\AnswerTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Answer_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \int[] getQuestionIdList()
     * @method \int[] fillQuestionId()
     * @method \int[] getCSortList()
     * @method \int[] fillCSort()
     * @method \int[] getImageIdList()
     * @method \int[] fillImageId()
     * @method \Bitrix\Main\EO_File[] getImageList()
     * @method \Bitrix\Vote\EO_Answer_Collection getImageCollection()
     * @method \Bitrix\Main\EO_File_Collection fillImage()
     * @method \string[] getMessageList()
     * @method \string[] fillMessage()
     * @method \string[] getMessageTypeList()
     * @method \string[] fillMessageType()
     * @method \int[] getCounterList()
     * @method \int[] fillCounter()
     * @method \int[] getFieldTypeList()
     * @method \int[] fillFieldType()
     * @method \int[] getFieldWidthList()
     * @method \int[] fillFieldWidth()
     * @method \int[] getFieldHeightList()
     * @method \int[] fillFieldHeight()
     * @method \string[] getFieldParamList()
     * @method \string[] fillFieldParam()
     * @method \string[] getColorList()
     * @method \string[] fillColor()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Vote\EO_Answer $object)
     * @method bool has(\Bitrix\Vote\EO_Answer $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Vote\EO_Answer getByPrimary($primary)
     * @method \Bitrix\Vote\EO_Answer[] getAll()
     * @method bool remove(\Bitrix\Vote\EO_Answer $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Vote\EO_Answer_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Vote\EO_Answer current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Answer_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Vote\AnswerTable */
        public static $dataClass = '\\Bitrix\\Vote\\AnswerTable';
    }
}
namespace Bitrix\Main\ORM\Data {
    /**
     * Base entity data manager
     */
    abstract class DataManager
    {
        const EVENT_ON_BEFORE_ADD = "OnBeforeAdd";
        const EVENT_ON_ADD = "OnAdd";
        const EVENT_ON_AFTER_ADD = "OnAfterAdd";
        const EVENT_ON_BEFORE_UPDATE = "OnBeforeUpdate";
        const EVENT_ON_UPDATE = "OnUpdate";
        const EVENT_ON_AFTER_UPDATE = "OnAfterUpdate";
        const EVENT_ON_BEFORE_DELETE = "OnBeforeDelete";
        const EVENT_ON_DELETE = "OnDelete";
        const EVENT_ON_AFTER_DELETE = "OnAfterDelete";
        /** @var Entity[] */
        protected static $entity;
        /** @var EntityObject[] Cache of class names */
        protected static $objectClass;
        /** @var Collection[] Cache of class names */
        protected static $collectionClass;
        /** @var array Restricted words for object class name */
        protected static $reservedWords = [
            // keywords
            'abstract',
            'and',
            'array',
            'as',
            'break',
            'callable',
            'case',
            'catch',
            'class',
            'clone',
            'const',
            'continue',
            'declare',
            'default',
            'die',
            'do',
            'echo',
            'else',
            'elseif',
            'empty',
            'enddeclare',
            'endfor',
            'endforeach',
            'endif',
            'endswitch',
            'endwhile',
            'eval',
            'exit',
            'extends',
            'final',
            'finally',
            'for',
            'foreach',
            'function',
            'global',
            'goto',
            'if',
            'implements',
            'include',
            'include_once',
            'instanceof',
            'insteadof',
            'interface',
            'isset',
            'list',
            'namespace',
            'new',
            'or',
            'print',
            'private',
            'protected',
            'public',
            'require',
            'require_once',
            'return',
            'static',
            'switch',
            'throw',
            'trait',
            'try',
            'unset',
            'use',
            'var',
            'while',
            'xor',
            'yield',
            // classes
            'self',
            'parent',
            // others
            'int',
            'float',
            'bool',
            'string',
            'true',
            'false',
            'null',
            'void',
            'iterable',
            'object',
            'resource',
            'mixed',
            'numeric',
        ];
        /**
         * Returns entity object
         *
         * @return Entity
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static function getEntity()
        {
        }
        public static function unsetEntity($class)
        {
        }
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns connection name for entity
         *
         * @return string
         */
        public static function getConnectionName()
        {
        }
        /**
         * @return string
         */
        public static function getTitle()
        {
        }
        /**
         * Returns class of Object for current entity.
         *
         * @return string|EntityObject
         */
        public static function getObjectClass()
        {
        }
        /**
         * Returns class name (without namespace) of Object for current entity.
         *
         * @return string
         */
        public static final function getObjectClassName()
        {
        }
        protected static function getObjectClassByDataClass($dataClass)
        {
        }
        /**
         * Returns class of Object collection for current entity.
         *
         * @return string|Collection
         */
        public static function getCollectionClass()
        {
        }
        /**
         * Returns class name (without namespace) of Object collection for current entity.
         *
         * @return string
         */
        public static final function getCollectionClassName()
        {
        }
        protected static function getCollectionClassByDataClass($dataClass)
        {
        }
        /**
         * @return EntityObject|string
         */
        public static function getObjectParentClass()
        {
        }
        /**
         * @return Collection|string
         */
        public static function getCollectionParentClass()
        {
        }
        /**
         * @return Query|string
         */
        public static function getQueryClass()
        {
        }
        /**
         * @return Entity|string
         */
        public static function getEntityClass()
        {
        }
        /**
         * @param bool $setDefaultValues
         *
         * @return null Actual type should be annotated by orm:annotate
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static final function createObject($setDefaultValues = true)
        {
        }
        /**
         * @return null Actual type should be annotated by orm:annotate
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static final function createCollection()
        {
        }
        /**
         * @see EntityObject::wakeUp()
         *
         * @param $row
         *
         * @return null Actual type should be annotated by orm:annotate
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static final function wakeUpObject($row)
        {
        }
        /**
         * @see Collection::wakeUp()
         *
         * @param $rows
         *
         * @return null Actual type should be annotated by orm:annotate
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static final function wakeUpCollection($rows)
        {
        }
        /**
         * Returns entity map definition.
         * To get initialized fields @see \Bitrix\Main\ORM\Entity::getFields() and \Bitrix\Main\ORM\Entity::getField()
         */
        public static function getMap()
        {
        }
        public static function getUfId()
        {
        }
        public static function isUts()
        {
        }
        public static function isUtm()
        {
        }
        /**
         * @param Query $query
         *
         * @return Query
         */
        public static function setDefaultScope($query)
        {
        }
        /**
         * @param Entity $entity
         *
         * @return null
         */
        public static function postInitialize(\Bitrix\Main\ORM\Entity $entity)
        {
        }
        /**
         * Returns selection by entity's primary key and optional parameters for getList()
         *
         * @param mixed $primary    Primary key of the entity
         * @param array $parameters Additional parameters for getList()
         *
         * @return QueryResult
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getByPrimary($primary, array $parameters = array())
        {
        }
        /**
         * Returns selection by entity's primary key
         *
         * @param mixed $id Primary key of the entity
         *
         * @return QueryResult
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getById($id)
        {
        }
        /**
         * Returns one row (or null) by entity's primary key
         *
         * @param mixed $id Primary key of the entity
         *
         * @return array|null
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getRowById($id)
        {
        }
        /**
         * Returns one row (or null) by parameters for getList()
         *
         * @param array $parameters Primary key of the entity
         *
         * @return array|null
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getRow(array $parameters)
        {
        }
        /**
         * Executes the query and returns selection by parameters of the query. This function is an alias to the Query object functions
         *
         * @param array $parameters An array of query parameters, available keys are:<br>
         * 		"select" => array of fields in the SELECT part of the query, aliases are possible in the form of "alias"=>"field";<br>
         * 		"filter" => array of filters in the WHERE/HAVING part of the query in the form of "(condition)field"=>"value";
         * 			also could be an instance of Filter;<br>
         * 		"group" => array of fields in the GROUP BY part of the query;<br>
         * 		"order" => array of fields in the ORDER BY part of the query in the form of "field"=>"asc|desc";<br>
         * 		"limit" => integer indicating maximum number of rows in the selection (like LIMIT n in MySql);<br>
         * 		"offset" => integer indicating first row number in the selection (like LIMIT n, 100 in MySql);<br>
         *		"runtime" => array of entity fields created dynamically;<br>
         * 		"cache => array of cache options:<br>
         * 			"ttl" => integer indicating cache TTL;<br>
         * 			"cache_joins" => boolean enabling to cache joins, false by default.
         * @see Query::filter()
         *
         * @return QueryResult
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * Performs COUNT query on entity and returns the result.
         *
         * @param array|Filter $filter
         * @param array $cache An array of cache options
         * 		"ttl" => integer indicating cache TTL
         * @return int
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getCount($filter = array(), array $cache = array())
        {
        }
        /**
         * Creates and returns the Query object for the entity
         *
         * @return Query
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static function query()
        {
        }
        /**
         * @param array $data
         *
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected static function replaceFieldName($data = array())
        {
        }
        /**
         * @param       $primary
         * @param array $data
         *
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected static function normalizePrimary(&$primary, $data = array())
        {
        }
        /**
         * @param $primary
         *
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected static function validatePrimary($primary)
        {
        }
        /**
         * Checks the data fields before saving to DB. Result stores in the $result object
         *
         * @param Result $result
         * @param mixed  $primary
         * @param array  $data
         *
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static function checkFields(\Bitrix\Main\ORM\Data\Result $result, $primary, array $data)
        {
        }
        /**
         * @param array $fields
         * @param bool  $setDefaultValues
         * @param array $primary
         *
         * @return EntityObject
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected static function convertArrayToObject(&$fields, $setDefaultValues = false, $primary = null)
        {
        }
        /**
         * @param EntityObject                 $object
         * @param                              $ufdata
         * @param \Bitrix\Main\ORM\Data\Result $result
         */
        protected static function checkUfFields($object, $ufdata, $result)
        {
        }
        /**
         * Adds row to entity table
         *
         * @param array $data An array with fields like
         * 	array(
         * 		"fields" => array(
         * 			"FIELD1" => "value1",
         * 			"FIELD2" => "value2",
         * 		),
         * 		"auth_context" => \Bitrix\Main\Authentication\Context object
         *	)
         *	or just a plain array of fields.
         *
         * @return AddResult Contains ID of inserted row
         *
         * @throws \Exception
         */
        public static function add(array $data)
        {
        }
        /**
         * @param      $rows
         * @param bool $ignoreEvents
         *
         * @return AddResult
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static function addMulti($rows, $ignoreEvents = false)
        {
        }
        /**
         * Updates row in entity table by primary key
         *
         * @param mixed $primary
         * @param array $data An array with fields like
         * 	array(
         * 		"fields" => array(
         * 			"FIELD1" => "value1",
         * 			"FIELD2" => "value2",
         * 		),
         * 		"auth_context" => \Bitrix\Main\Authentication\Context object
         *	)
         *	or just a plain array of fields.
         *
         * @return UpdateResult
         *
         * @throws \Exception
         */
        public static function update($primary, array $data)
        {
        }
        /**
         * @param array $primaries
         * @param array $data
         * @param bool  $ignoreEvents
         *
         * @return UpdateResult
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static function updateMulti($primaries, $data, $ignoreEvents = false)
        {
        }
        /**
         * Deletes row in entity table by primary key
         *
         * @param mixed $primary
         *
         * @return DeleteResult
         *
         * @throws \Exception
         */
        public static function delete($primary)
        {
        }
        /**
         * @param EntityObject $object
         * @param              $fields
         * @param              $result
         */
        protected static function callOnBeforeAddEvent($object, $fields, $result)
        {
        }
        /**
         * @param $object
         * @param $fields
         * @param $ufdata
         */
        protected static function callOnAddEvent($object, $fields, $ufdata)
        {
        }
        /**
         * @param EntityObject $object
         * @param array        $fields
         * @param int          $id
         */
        protected static function callOnAfterAddEvent($object, $fields, $id)
        {
        }
        /**
         * @param EntityObject $object
         * @param              $fields
         * @param              $result
         */
        protected static function callOnBeforeUpdateEvent($object, $fields, $result)
        {
        }
        /**
         * @param EntityObject $object
         * @param              $fields
         * @param              $ufdata
         */
        protected static function callOnUpdateEvent($object, $fields, $ufdata)
        {
        }
        /**
         * @param EntityObject $object
         * @param              $fields
         */
        protected static function callOnAfterUpdateEvent($object, $fields)
        {
        }
        /**
         * @param $primary
         * @param $entity
         * @param $result
         */
        protected static function callOnBeforeDeleteEvent($primary, $entity, $result)
        {
        }
        /**
         * @param $primary
         * @param $entity
         */
        protected static function callOnDeleteEvent($primary, $entity)
        {
        }
        /**
         * @param $primary
         * @param $entity
         */
        protected static function callOnAfterDeleteEvent($primary, $entity)
        {
        }
        /**
         * Sets a flag indicating crypto support for a field.
         *
         * @param string $field
         * @param string $table
         * @param bool   $mode
         *
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function enableCrypto($field, $table = null, $mode = true)
        {
        }
        /**
         * Returns true if crypto is enabled for a field.
         *
         * @param string $field
         * @param string $table
         *
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function cryptoEnabled($field, $table = null)
        {
        }
        /*
        An inheritor class can define the event handlers for own events.
        Why? To prevent from rewriting the add/update/delete functions.
        These handlers are triggered in the Bitrix\Main\ORM\Event::send() function
        */
        public static function onBeforeAdd(\Bitrix\Main\ORM\Event $event)
        {
        }
        public static function onAdd(\Bitrix\Main\ORM\Event $event)
        {
        }
        public static function onAfterAdd(\Bitrix\Main\ORM\Event $event)
        {
        }
        public static function onBeforeUpdate(\Bitrix\Main\ORM\Event $event)
        {
        }
        public static function onUpdate(\Bitrix\Main\ORM\Event $event)
        {
        }
        public static function onAfterUpdate(\Bitrix\Main\ORM\Event $event)
        {
        }
        public static function onBeforeDelete(\Bitrix\Main\ORM\Event $event)
        {
        }
        public static function onDelete(\Bitrix\Main\ORM\Event $event)
        {
        }
        public static function onAfterDelete(\Bitrix\Main\ORM\Event $event)
        {
        }
    }
}
namespace Bitrix\Vote {
    /**
     * @method static EO_Answer_Query query()
     * @method static EO_Answer_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Answer_Result getById($id)
     * @method static EO_Answer_Result getList(array $parameters = array())
     * @method static EO_Answer_Entity getEntity()
     * @method static \Bitrix\Vote\EO_Answer createObject($setDefaultValues = true)
     * @method static \Bitrix\Vote\EO_Answer_Collection createCollection()
     * @method static \Bitrix\Vote\EO_Answer wakeUpObject($row)
     * @method static \Bitrix\Vote\EO_Answer_Collection wakeUpCollection($rows)
     */
    class AnswerTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
}
namespace Bitrix\Main\ORM\Query {
    /**
     * Query builder for Entities.
     *
     * Virtual WHERE methods (proxy to Filter):
     *
     * @method $this where(...$filter)
     * @see Filter::where()
     *
     * @method $this whereNot(...$filter)
     * @see Filter::whereNot()
     *
     * @method $this whereColumn(...$filter)
     * @see Filter::whereColumn()
     *
     * @method $this whereNull($column)
     * @see Filter::whereNull()
     *
     * @method $this whereNotNull($column)
     * @see Filter::whereNotNull()
     *
     * @method $this whereIn($column, $values)
     * @see Filter::whereIn()
     *
     * @method $this whereNotIn($column, $values)
     * @see Filter::whereNotIn()
     *
     * @method $this whereBetween($column, $valueMin, $valueMax)
     * @see Filter::whereBetween()
     *
     * @method $this whereNotBetween($column, $valueMin, $valueMax)
     * @see Filter::whereNotBetween()
     *
     * @method $this whereLike($column, $value)
     * @see Filter::whereLike()
     *
     * @method $this whereNotLike($column, $value)
     * @see Filter::whereNotLike()
     *
     * @method $this whereExists($query)
     * @see Filter::whereExists()
     *
     * @method $this whereNotExists($query)
     * @see Filter::whereNotExists()
     *
     * @method $this whereMatch($column, $value)
     * @see Filter::whereMatch()
     *
     * @method $this whereNotMatch($column, $value)
     * @see Filter::whereNotMatch()
     *
     * Virtual HAVING methods (proxy to Filter):
     *
     * @method $this having(...$filter)
     * @see Filter::where()
     *
     * @method $this havingNot(...$filter)
     * @see Filter::whereNot()
     *
     * @method $this havingColumn(...$filter)
     * @see Filter::whereColumn()
     *
     * @method $this havingNull($column)
     * @see Filter::whereNull()
     *
     * @method $this havingNotNull($column)
     * @see Filter::whereNotNull()
     *
     * @method $this havingIn($column, $values)
     * @see Filter::whereIn()
     *
     * @method $this havingNotIn($column, $values)
     * @see Filter::whereNotIn()
     *
     * @method $this havingBetween($column, $valueMin, $valueMax)
     * @see Filter::whereBetween()
     *
     * @method $this havingNotBetween($column, $valueMin, $valueMax)
     * @see Filter::whereNotBetween()
     *
     * @method $this havingLike($column, $value)
     * @see Filter::whereLike()
     *
     * @method $this havingNotLike($column, $value)
     * @see Filter::whereNotLike()
     *
     * @method $this havingExists($query)
     * @see Filter::whereExists()
     *
     * @method $this havingNotExists($query)
     * @see Filter::whereNotExists()
     *
     * @package Bitrix\Main\ORM
     */
    class Query
    {
        /** @var Entity */
        protected $entity;
        protected $select = array(), $group = array(), $order = array(), $limit = null, $offset = null, $countTotal = null;
        // deprecated array filter format
        protected $filter = array(), $where = array(), $having = array();
        /** @var Filter */
        protected $filterHandler;
        /** @var Filter */
        protected $whereHandler;
        /** @var Filter */
        protected $havingHandler;
        /**
         * @var Chain[]
         */
        protected $select_chains = array(), $group_chains = array(), $order_chains = array();
        /**
         * @var Chain[]
         */
        protected $filter_chains = array(), $where_chains = array(), $having_chains = array();
        /**
         * @var Chain[]
         */
        protected $select_expr_chains = array(), $having_expr_chains = array(), $hidden_chains = array();
        // all expr "build_from" elements;
        /**
         * Fields in result that are visible for fetchObject, but invisible for array
         * @var string[]
         */
        protected $forcedObjectPrimaryFields;
        /** @var Chain[] */
        protected $runtime_chains;
        /** @var Chain[] */
        protected $global_chains = array();
        // keying by both def and alias
        /** @var string[] */
        protected $query_build_parts;
        /** @var Expression */
        protected static $expressionHelper;
        /**
         * Enable or Disable data doubling for 1:N relations in query filter
         * If disabled, 1:N entity fields in filter will be transformed to exists() subquery
         * @var bool
         */
        protected $data_doubling_off = false;
        /**
         * Enable or disable handling private fields
         * @see ScalarField::$is_private
         * @var bool
         */
        protected $private_fields_on = false;
        /** @var string */
        protected $table_alias_postfix = '';
        /** @var string Custom alias for the table of the init entity  */
        protected $custom_base_table_alias = null;
        /** @var array */
        protected $join_map = array();
        /** @var array list of used joins */
        protected $join_registry;
        /** @var Union */
        protected $unionHandler;
        /** @var bool */
        protected $is_distinct = false;
        /** @var bool */
        protected $is_executing = false;
        /** @var string Last executed SQL query */
        protected static $last_query;
        /** @var array Replaced field aliases */
        protected $replaced_aliases;
        /** @var array Replaced table aliases */
        protected $replaced_taliases;
        /** @var int */
        protected $uniqueAliasCounter = 0;
        /** @var callable[] */
        protected $selectFetchModifiers = array();
        protected $cacheTtl = 0, $cacheJoins = false;
        /**
         * @param Entity|Query|string $source
         *
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public function __construct($source)
        {
        }
        /**
         * @param $method
         * @param $arguments
         *
         * @return $this
         * @throws Main\SystemException
         */
        public function __call($method, $arguments)
        {
        }
        /**
         * Returns an array of fields for SELECT clause
         *
         * @return array
         */
        public function getSelect()
        {
        }
        /**
         * Sets a list of fields for SELECT clause
         *
         * @param array $select
         * @return Query
         */
        public function setSelect(array $select)
        {
        }
        /**
         * Adds a field for SELECT clause
         *
         * @param mixed $definition Field
         * @param string $alias Field alias like SELECT field AS alias
         * @return $this
         */
        public function addSelect($definition, $alias = '')
        {
        }
        /**
         * Returns an array of filters for WHERE clause
         *
         * @return array
         */
        public function getFilter()
        {
        }
        /**
         * Sets a list of filters for WHERE clause
         *
         * @param array $filter
         * @return $this
         */
        public function setFilter(array $filter)
        {
        }
        /**
         * Adds a filter for WHERE clause
         *
         * @param string $key
         * @param mixed $value
         * @return $this
         */
        public function addFilter($key, $value)
        {
        }
        /**
         * @return Filter
         */
        public function getFilterHandler()
        {
        }
        /**
         * Returns an array of fields for GROUP BY clause
         *
         * @return array
         */
        public function getGroup()
        {
        }
        /**
         * Sets a list of fields in GROUP BY clause
         *
         * @param mixed $group
         * @return $this
         */
        public function setGroup($group)
        {
        }
        /**
         * Adds a field to the list of fields for GROUP BY clause
         *
         * @param $group
         * @return $this
         */
        public function addGroup($group)
        {
        }
        /**
         * Returns an array of fields for ORDER BY clause
         *
         * @return array
         */
        public function getOrder()
        {
        }
        /**
         * Sets a list of fields for ORDER BY clause.
         * Format:
         *   setOrder('ID') -- ORDER BY `ID` ASC
         *   setOrder(['ID' => 'DESC', 'NAME' => 'ASC]) -- ORDER BY `ID` DESC, `NAME` ASC
         *
         * @param mixed $order
         *
         * @return $this
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public function setOrder($order)
        {
        }
        /**
         * Adds a filed to the list of fields for ORDER BY clause
         *
         * @param string $definition
         * @param string $order
         *
         * @return $this
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public function addOrder($definition, $order = 'ASC')
        {
        }
        /**
         * Returns a limit
         *
         * @return null|int
         */
        public function getLimit()
        {
        }
        /**
         * Sets a limit for LIMIT n clause
         *
         * @param int $limit
         * @return $this
         */
        public function setLimit($limit)
        {
        }
        /**
         * Returns an offset
         *
         * @return null|int
         */
        public function getOffset()
        {
        }
        /**
         * Sets an offset for LIMIT n, m clause
         * @param int $offset
         * @return $this
         */
        public function setOffset($offset)
        {
        }
        public function countTotal($count = null)
        {
        }
        /**
         * Puts additional query to union with current.
         * Accepts one ore more Query / SqlExpression.
         *
         * @return $this
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public function union()
        {
        }
        /**
         * Puts additional query to union (all) with current.
         * Accepts one ore more Query / SqlExpression.
         *
         * @return $this
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public function unionAll()
        {
        }
        /**
         * General order for all the union queries.
         * Has the same format as Query::setOrder().
         * @see Query::setOrder()
         *
         * @param $order
         *
         * @return $this
         * @throws Main\SystemException
         */
        public function setUnionOrder($order)
        {
        }
        /**
         * General order for all the union queries.
         * Has the same format as Query::addOrder().
         * @see Query::addOrder()
         *
         * @param string $definition
         * @param string $order
         *
         * @return $this
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public function addUnionOrder($definition, $order = 'ASC')
        {
        }
        /**
         * General limit for all the union queries.
         *
         * @param $limit
         *
         * @return $this
         * @throws Main\SystemException
         */
        public function setUnionLimit($limit)
        {
        }
        /**
         * General offset for all the union queries.
         *
         * @param $offset
         *
         * @return $this
         * @throws Main\SystemException
         */
        public function setUnionOffset($offset)
        {
        }
        /**
         * @see disableDataDoubling
         *
         * @return $this
         */
        public function enableDataDoubling()
        {
        }
        /**
         * Replaces all 1:N relations in filter to ID IN (subquery SELECT ID FROM <1:N relation>)
         * Available for Entities with 1 primary field only
         *
         * @return $this
         */
        public function disableDataDoubling()
        {
        }
        /**
         * Allows private fields in query
         *
         * @return $this
         */
        public function enablePrivateFields()
        {
        }
        /**
         * Restricts private fields in query
         *
         * @return $this
         */
        public function disablePrivateFields()
        {
        }
        /**
         * @return bool
         */
        public function isPrivateFieldsEnabled()
        {
        }
        protected function checkForPrivateFields()
        {
        }
        /**
         * @param Field|Main\ORM\Fields\IReadable $field
         *
         * @return bool
         * @throws Main\ArgumentException
         * @throws SystemException
         */
        public static function isFieldPrivate($field)
        {
        }
        /**
         * Adds a runtime field (being created dynamically, opposite to being described statically in the entity map)
         *
         * @param string|null $name
         * @param array|Field $fieldInfo
         *
         * @return $this
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public function registerRuntimeField($name, $fieldInfo = null)
        {
        }
        public function setTableAliasPostfix($postfix)
        {
        }
        public function getTableAliasPostfix()
        {
        }
        /**
         * Sets a custom alias for the table of the init entity
         *
         * @param string $alias
         *
         * @return $this
         */
        public function setCustomBaseTableAlias($alias)
        {
        }
        /**
         * Returns new instance of Filter.
         *
         * Usage:
         *   Query::filter()->where(...)
         *
         * Alternatively short calls Query::where* can be used.
         * @see Query::where()
         *
         * @return Filter
         */
        public static function filter()
        {
        }
        /**
         * Used to create ExpressionField in a short way.
         * @see Filter::where()
         *
         * @return Expression
         */
        public static function expr()
        {
        }
        /**
         * Builds and executes the query and returns the result
         *
         * @return Result
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function exec()
        {
        }
        /**
         * Short alias for $result->fetch()
         *
         * @param Main\Text\Converter|null $converter
         *
         * @return array|false
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function fetch(\Bitrix\Main\Text\Converter $converter = null)
        {
        }
        /**
         * Short alias for $result->fetchAll()
         *
         * @param Main\Text\Converter|null $converter
         *
         * @return array
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function fetchAll(\Bitrix\Main\Text\Converter $converter = null)
        {
        }
        /**
         * Short alias for $result->fetchObject()
         *
         * @return null Actual type should be annotated by orm:annotate
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function fetchObject()
        {
        }
        /**
         * Short alias for $result->fetchCollection()
         *
         * @return null Actual type should be annotated by orm:annotate
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function fetchCollection()
        {
        }
        protected function ensurePrimarySelect()
        {
        }
        /**
         * @param      $definition
         * @param null $alias
         *
         * @return $this
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function addToSelectChain($definition, $alias = null)
        {
        }
        /**
         * @param        $filter
         * @param string $section
         *
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public function setFilterChains(&$filter, $section = 'filter')
        {
        }
        /**
         * @param Filter $where
         * @param string $section
         *
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public function setFilterHandlerChains(\Bitrix\Main\ORM\Query\Filter\ConditionTree $where, $section = 'filter')
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function divideFilter()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function divideFilterHandler()
        {
        }
        /**
         * @param $filter
         *
         * @return bool
         * @throws Main\SystemException
         */
        protected function checkFilterAggregation($filter)
        {
        }
        /**
         * @param Filter $filter
         *
         * @return bool
         * @throws Main\SystemException
         */
        protected function checkFilterHandlerAggregation(\Bitrix\Main\ORM\Query\Filter\ConditionTree $filter)
        {
        }
        /**
         * @param Filter $filter
         * @param        $section
         *
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function rewriteDataDoubling(\Bitrix\Main\ORM\Query\Filter\ConditionTree $filter, $section)
        {
        }
        /**
         * @param $definition
         *
         * @throws Main\SystemException
         */
        protected function addToGroupChain($definition)
        {
        }
        /**
         * @param $definition
         *
         * @throws Main\SystemException
         */
        protected function addToOrderChain($definition)
        {
        }
        /**
         * @param null $chains
         *
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function buildJoinMap($chains = null)
        {
        }
        protected function buildSelect()
        {
        }
        /**
         * @return string
         * @throws Main\SystemException
         */
        protected function buildJoin()
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function buildWhere()
        {
        }
        /**
         * @return string
         * @throws Main\SystemException
         */
        protected function buildGroup()
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function buildHaving()
        {
        }
        /**
         * @return string
         * @throws Main\SystemException
         */
        protected function buildOrder()
        {
        }
        /**
         * @param bool $forceObjectPrimary Add missing primaries to select
         *
         * @return mixed|string
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function buildQuery($forceObjectPrimary = true)
        {
        }
        /**
         * @param $filter
         *
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function getFilterCswFields(&$filter)
        {
        }
        /**
         * @param $reference
         * @param $alias_this
         * @param $alias_ref
         * @param $baseDefinition
         * @param $refDefinition
         * @param $isBackReference
         *
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function prepareJoinReference($reference, $alias_this, $alias_ref, $baseDefinition, $refDefinition, $isBackReference)
        {
        }
        /**
         * @param Filter $reference
         * @param        $alias_this
         * @param        $alias_ref
         * @param        $baseDefinition
         * @param        $refDefinition
         * @param        $isBackReference
         * @param        $firstCall
         *
         * @return Filter
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function prepareJoinFilterReference(\Bitrix\Main\ORM\Query\Filter\ConditionTree $reference, $alias_this, $alias_ref, $baseDefinition, $refDefinition, $isBackReference, $firstCall = true)
        {
        }
        protected function getJoinCswFields($reference)
        {
        }
        /**
         * @param $chain
         *
         * @return bool
         * @throws Main\SystemException
         */
        protected function checkChainsAggregation($chain)
        {
        }
        protected function checkChainsDistinct($chain)
        {
        }
        public function hasAggregation()
        {
        }
        public function setDistinct($distinct = true)
        {
        }
        public function hasDistinct()
        {
        }
        /**
         * The most magic method. Do not edit without strong need, and for sure run tests after.
         *
         * @param Chain $chain
         * @param array $storages
         *
         * @return Chain[]
         * @throws Main\SystemException
         */
        protected function collectExprChains(\Bitrix\Main\ORM\Query\Chain $chain, $storages = array('hidden'))
        {
        }
        /**
         * @return Union
         * @throws Main\SystemException
         */
        protected function getUnionHandler()
        {
        }
        public function registerChain($section, \Bitrix\Main\ORM\Query\Chain $chain, $opt_key = null)
        {
        }
        /**
         * @param      $key
         * @param bool $force_create
         *
         * @return Chain|bool
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public function getRegisteredChain($key, $force_create = false)
        {
        }
        protected function getUniqueAlias()
        {
        }
        public function booleanStrongEqualityCallback($field, $operation, $value)
        {
        }
        public function nullEqualityCallback($field, $operation, $value)
        {
        }
        public function dataDoublingCallback($field, $operation, $value)
        {
        }
        /**
         * @param $query
         *
         * @return Main\DB\ArrayResult|Main\DB\Result
         * @throws Main\ArgumentException
         * @throws Main\Db\SqlQueryException
         * @throws Main\SystemException
         */
        protected function query($query)
        {
        }
        public function queryCountTotal()
        {
        }
        /**
         * Being called in Db\Result as a data fetch modifier
         * @param $data
         */
        public function fetchDataModificationCallback(&$data)
        {
        }
        /**
         * Check if fetch data modification required, also caches modifier-callbacks
         * @return bool
         * @throws Main\SystemException
         */
        public function isFetchModificationRequired()
        {
        }
        /**
         * @param $query
         *
         * @return array
         * @throws Main\SystemException
         */
        protected function replaceSelectAliases($query)
        {
        }
        /**
         * @param $source
         *
         * @return string
         * @throws Main\SystemException
         */
        public function quoteTableSource($source)
        {
        }
        public function __clone()
        {
        }
        /**
         * @return bool
         * @throws Main\SystemException
         */
        public function hasBackReference()
        {
        }
        /**
         * @return array|Chain[]
         */
        public function getChains()
        {
        }
        /**
         * @return array|Chain[]
         */
        public function getGroupChains()
        {
        }
        /**
         * @return array
         */
        public function getHiddenChains()
        {
        }
        /**
         * @return array|Chain[]
         */
        public function getHavingChains()
        {
        }
        /**
         * @return array|Chain[]
         */
        public function getFilterChains()
        {
        }
        /**
         * @return array|Chain[]
         */
        public function getOrderChains()
        {
        }
        /**
         * @return array|Chain[]
         */
        public function getSelectChains()
        {
        }
        /**
         * @return array|Chain[]
         */
        public function getWhereChains()
        {
        }
        /**
         * @return Chain[]
         */
        public function getRuntimeChains()
        {
        }
        public function getJoinMap()
        {
        }
        /**
         * Builds and returns SQL query string
         *
         * @param bool $forceObjectPrimary
         *
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public function getQuery($forceObjectPrimary = false)
        {
        }
        /**
         * Returns last executed query string
         *
         * @return string
         */
        public static function getLastQuery()
        {
        }
        public function getEntity()
        {
        }
        /**
         * Builds SQL filter conditions for WHERE.
         * Useful for external calls: building SQL for mass UPDATEs or DELETEs
         *
         * @param Entity       $entity
         * @param array|Filter $filter the same format as for setFilter/where
         *
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static function buildFilterSql(\Bitrix\Main\ORM\Entity $entity, $filter)
        {
        }
        /**
         * @param bool $withPostfix
         *
         * @return string
         * @throws Main\SystemException
         */
        public function getInitAlias($withPostfix = true)
        {
        }
        public function getReplacedAliases()
        {
        }
        /*
         * Sets cache TTL in seconds.
         * @param int $ttl
         * @return $this
         */
        public function setCacheTtl($ttl)
        {
        }
        /**
         * Enables or disables caching of queries with joins.
         * @param bool $mode
         * @return $this
         */
        public function cacheJoins($mode)
        {
        }
        public function dump()
        {
        }
    }
}
namespace Bitrix\Vote {
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Answer_Result exec()
     * @method \Bitrix\Vote\EO_Answer fetchObject()
     * @method \Bitrix\Vote\EO_Answer_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Answer_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
}
namespace Bitrix\Main\DB {
    /**
     * Class Result is the abstract base class for representing
     * database query result.
     * <p>
     * It has ability to transform raw data populated from
     * the database into useful associative arrays with
     * some fields unserialized and some presented as Datetime
     * objects or other changes.
     * <p>
     * It also supports query debugging by providing {@link \Bitrix\Main\Diag\SqlTracker}
     * with timing information.
     *
     * @package Bitrix\Main\DB
     */
    abstract class Result implements \IteratorAggregate
    {
        /** @var \Bitrix\Main\DB\Connection */
        protected $connection;
        /** @var resource */
        protected $resource;
        /** @var \Bitrix\Main\Diag\SqlTrackerQuery */
        protected $trackerQuery = null;
        /** @var callable[] */
        protected $converters = array();
        /** @var string[] */
        protected $serializedFields = array();
        /** @var string[] */
        protected $replacedAliases = array();
        /** @var callable[] */
        protected $fetchDataModifiers = array();
        /** @var int */
        protected $count;
        /**
         * @param resource $result Database-specific query result.
         * @param Connection $dbConnection Connection object.
         * @param \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery Helps to collect debug information.
         */
        public function __construct($result, \Bitrix\Main\DB\Connection $dbConnection = null, \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery = null)
        {
        }
        /**
         * Returns database-specific resource of this result.
         *
         * @return null|resource
         */
        public function getResource()
        {
        }
        /**
         * Sets list of aliased columns.
         * This allows to overcome database limits on length of the column names.
         *
         * @param array[string]string $replacedAliases Aliases map from tech to human.
         *
         * @return void
         * @see \Bitrix\Main\Db\Result::addReplacedAliases
         */
        public function setReplacedAliases(array $replacedAliases)
        {
        }
        /**
         * Extends list of aliased columns.
         *
         * @param array[string]string $replacedAliases Aliases map from tech to human.
         *
         * @return void
         * @see \Bitrix\Main\Db\Result::setReplacedAliases
         */
        public function addReplacedAliases(array $replacedAliases)
        {
        }
        /**
         * Sets internal list of fields which will be unserialized on fetch.
         *
         * @param array $serializedFields List of fields.
         *
         * @return void
         */
        public function setSerializedFields(array $serializedFields)
        {
        }
        /**
         * Modifier should accept once fetched array as an argument, then modify by link or return new array:
         * - function (&$data) { $data['AGE'] -= 7; }
         * - function ($data) { $data['AGE'] -= 7; return $data; }
         *
         * @param callable $fetchDataModifier Valid callback.
         *
         * @return void
         * @throws \Bitrix\Main\ArgumentException
         */
        public function addFetchDataModifier($fetchDataModifier)
        {
        }
        /**
         * Fetches one row of the query result and returns it in the associative array of raw DB data or false on empty data.
         *
         * @return array|false
         */
        public function fetchRaw()
        {
        }
        /**
         * Fetches one row of the query result and returns it in the associative array of converted data or false on empty data.
         *
         * @param \Bitrix\Main\Text\Converter $converter Optional converter to encode data on fetching.
         *
         * @return array|false
         */
        public function fetch(\Bitrix\Main\Text\Converter $converter = null)
        {
        }
        /**
         * Fetches all the rows of the query result and returns it in the array of associative arrays.
         * Returns an empty array if query has no data.
         *
         * @param \Bitrix\Main\Text\Converter $converter Optional converter to encode data on fetching.
         *
         * @return array
         */
        public function fetchAll(\Bitrix\Main\Text\Converter $converter = null)
        {
        }
        /**
         * Returns an array of fields according to columns in the result.
         *
         * @return \Bitrix\Main\ORM\Fields\ScalarField[]
         */
        public abstract function getFields();
        /**
         * Returns the number of rows in the result.
         *
         * @return int
         */
        public abstract function getSelectedRowsCount();
        /**
         * Returns next result row or false.
         *
         * @return array|false
         */
        protected abstract function fetchRowInternal();
        /**
         * Returns current query tracker.
         *
         * @return \Bitrix\Main\Diag\SqlTrackerQuery|null
         */
        public function getTrackerQuery()
        {
        }
        /**
         * @return callable[]
         */
        public function getConverters()
        {
        }
        /**
         * @param callable[] $converters
         */
        public function setConverters($converters)
        {
        }
        /**
         * Sets record count.
         * @param int $n
         */
        public function setCount($n)
        {
        }
        /**
         * Returns record count. It's required to set record count explicitly before.
         * @return int
         * @throws \Bitrix\Main\ObjectPropertyException
         */
        public function getCount()
        {
        }
        /**
         * Retrieve an external iterator
         * @link http://php.net/manual/en/iteratoraggregate.getiterator.php
         * @return \Traversable An instance of an object implementing <b>Iterator</b> or
         * <b>Traversable</b>
         * @since 5.0.0
         */
        public function getIterator()
        {
        }
    }
}
namespace Bitrix\Main\ORM\Query {
    /**
     * Decorates base Result, adds new method fetchObject().
     * @package    bitrix
     * @subpackage main
     */
    class Result extends \Bitrix\Main\DB\Result
    {
        /** @var BaseResult */
        protected $result;
        /** @var Query */
        protected $query;
        /** @var Chain[][] Result chains map by entity path */
        protected $selectChainsMap = [];
        /** @var EntityObject|string Cache for object class of init entity */
        protected $objectClass;
        /** @var IdentityMap */
        protected $identityMap;
        /** @var bool Status of base object fetching initialization */
        protected $objectInitPassed = false;
        /** @var array Column names (chain aliases) of primary fields in result */
        protected $primaryAliases = [];
        /** @var string[] Fields available for for fetchObject, but hidden for fetch */
        protected $hiddenObjectFields;
        public function __construct(\Bitrix\Main\ORM\Query\Query $query, \Bitrix\Main\DB\Result $result)
        {
        }
        /**
         * @param string[] $hiddenObjectFields
         */
        public function setHiddenObjectFields($hiddenObjectFields)
        {
        }
        protected function hideObjectFields(&$row)
        {
        }
        public function getFields()
        {
        }
        public function getSelectedRowsCount()
        {
        }
        protected function fetchRowInternal()
        {
        }
        /**
         * @return null Actual type should be annotated by orm:annotate
         * @throws SystemException
         * @throws ArgumentException
         */
        public final function fetchObject()
        {
        }
        /**
         * @return null Actual type should be annotated by orm:annotate
         * @throws \Bitrix\Main\SystemException
         */
        public final function fetchCollection()
        {
        }
        /**
         * One-time initialization actions when fetch objects
         *
         * @param bool $asCollection
         *
         * @throws \Bitrix\Main\SystemException
         */
        protected function initializeFetchObject($asCollection = false)
        {
        }
        /**
         * Builds chains map by entity path
         */
        protected function buildSelectChainsMap()
        {
        }
        /**
         * Builds base object primary aliases map
         */
        protected function definePrimaryAliases()
        {
        }
        /**
         * Low-level data type cast
         */
        protected function setStrictValueConverters()
        {
        }
        /**
         * @param Entity $entity
         * @param $primaryValues
         * @param $objectValues
         *
         * @return EntityObject
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         */
        protected function composeRemoteObject($entity, $primaryValues, $objectValues)
        {
        }
        /**
         * Sets custom identity map
         *
         * @param IdentityMap $map
         *
         * @return Result
         */
        public function setIdentityMap(\Bitrix\Main\ORM\Objectify\IdentityMap $map)
        {
        }
        /**
         * @return IdentityMap
         */
        public function getIdentityMap()
        {
        }
        // decorate other methods
        public function getResource()
        {
        }
        public function setReplacedAliases(array $replacedAliases)
        {
        }
        public function addReplacedAliases(array $replacedAliases)
        {
        }
        public function setSerializedFields(array $serializedFields)
        {
        }
        public function addFetchDataModifier($fetchDataModifier)
        {
        }
        public function fetchRaw()
        {
        }
        public function fetch(\Bitrix\Main\Text\Converter $converter = null)
        {
        }
        public function fetchAll(\Bitrix\Main\Text\Converter $converter = null)
        {
        }
        public function getTrackerQuery()
        {
        }
        public function getConverters()
        {
        }
        public function setConverters($converters)
        {
        }
        public function setCount($n)
        {
        }
        public function getCount()
        {
        }
        public function getIterator()
        {
        }
    }
}
namespace Bitrix\Vote {
    /**
     * @method \Bitrix\Vote\EO_Answer fetchObject()
     * @method \Bitrix\Vote\EO_Answer_Collection fetchCollection()
     */
    class EO_Answer_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
}
namespace Bitrix\Main\ORM {
    /**
     * Base entity
     */
    class Entity
    {
        /** @var DataManager */
        protected $className;
        protected $module, $name, $connectionName, $dbTableName, $primary, $autoIncrement;
        protected $uf_id, $isUts, $isUtm;
        /** @var Field[] */
        protected $fields;
        protected $fieldsMap;
        /** @var UField[] */
        protected $u_fields;
        /** @var string Unique code */
        protected $code;
        protected $references;
        /** @var static[] */
        protected static $instances;
        /** @var bool */
        protected $isClone = false;
        const DEFAULT_OBJECT_PREFIX = 'EO_';
        /**
         * Returns entity object
         *
         * @param $entityName
         *
         * @return Entity
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static function get($entityName)
        {
        }
        /**
         * Checks if entity exists
         *
         * @param $entityName
         *
         * @return bool
         */
        public static function has($entityName)
        {
        }
        /**
         * @static
         *
         * @param string $entityName
         *
         * @return Entity
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static function getInstance($entityName)
        {
        }
        /**
         * @param DataManager|string $className
         *
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected static function getInstanceDirect($className)
        {
        }
        /**
         * Fields factory
         *
         * @param string $fieldName
         * @param array|Field $fieldInfo
         *
         * @return Field
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public function initializeField($fieldName, $fieldInfo)
        {
        }
        public function initialize($className)
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public function postInitialize()
        {
        }
        /**
         * Returns class of Object for current entity.
         *
         * @return EntityObject|string
         */
        public function getObjectClass()
        {
        }
        /**
         * Returns class name of Object for current entity.
         *
         * @return EntityObject|string
         */
        public function getObjectClassName()
        {
        }
        public static function getDefaultObjectClassName($entityName)
        {
        }
        /**
         * @return Collection|string
         */
        public function getCollectionClass()
        {
        }
        /**
         * @return Collection|string
         */
        public function getCollectionClassName()
        {
        }
        public static function getDefaultCollectionClassName($entityName)
        {
        }
        /**
         * @param bool $setDefaultValues
         *
         * @return null Actual type should be annotated by orm:annotate
         */
        public function createObject($setDefaultValues = true)
        {
        }
        /**
         * @return null Actual type should be annotated by orm:annotate
         */
        public function createCollection()
        {
        }
        /**
         * @see EntityObject::wakeUp()
         *
         * @param $row
         *
         * @return null Actual type should be annotated by orm:annotate
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public function wakeUpObject($row)
        {
        }
        /**
         * @see Collection::wakeUp()
         *
         * @param $rows
         *
         * @return null Actual type should be annotated by orm:annotate
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public function wakeUpCollection($rows)
        {
        }
        /**
         * @param Field $field
         *
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function appendField(\Bitrix\Main\ORM\Fields\Field $field)
        {
        }
        /**
         * @param array|Field $fieldInfo
         * @param null|string $fieldName
         *
         * @return Field|false
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public function addField($fieldInfo, $fieldName = null)
        {
        }
        public function getReferencesCountTo($refEntityName)
        {
        }
        public function getReferencesTo($refEntityName)
        {
        }
        // getters
        public function getFields()
        {
        }
        /**
         * @param $name
         *
         * @return Field|ScalarField
         * @throws Main\ArgumentException
         */
        public function getField($name)
        {
        }
        public function hasField($name)
        {
        }
        /**
         * @return ScalarField[]
         */
        public function getScalarFields()
        {
        }
        /**
         * @deprecated
         *
         * @param $name
         *
         * @return UField
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public function getUField($name)
        {
        }
        /**
         * @deprecated
         *
         * @param $name
         *
         * @return bool
         * @throws Main\SystemException
         */
        public function hasUField($name)
        {
        }
        public function getName()
        {
        }
        public function getFullName()
        {
        }
        public function getNamespace()
        {
        }
        public function getModule()
        {
        }
        /**
         * @return DataManager
         */
        public function getDataClass()
        {
        }
        /**
         * @return Main\DB\Connection
         * @throws Main\SystemException
         */
        public function getConnection()
        {
        }
        public function getDBTableName()
        {
        }
        public function getPrimary()
        {
        }
        public function getPrimaryArray()
        {
        }
        public function getAutoIncrement()
        {
        }
        public function isUts()
        {
        }
        public function isUtm()
        {
        }
        public function getUfId()
        {
        }
        /**
         * @param Query $query
         *
         * @return Query
         */
        public function setDefaultScope($query)
        {
        }
        public static function isExists($name)
        {
        }
        /**
         * @param $entityName
         *
         * @return string|DataManager
         */
        public static function normalizeEntityClass($entityName)
        {
        }
        public static function getEntityClassParts($class)
        {
        }
        public function getCode()
        {
        }
        public function getLangCode()
        {
        }
        public function getTitle()
        {
        }
        /**
         * @deprecated Use Bitrix\StringHelper::camel2snake instead
         *
         * @param $str
         *
         * @return string
         */
        public static function camel2snake($str)
        {
        }
        /**
         * @deprecated Use Bitrix\StringHelper::snake2camel instead
         *
         * @param $str
         *
         * @return mixed
         */
        public static function snake2camel($str)
        {
        }
        public static function normalizeName($entityName)
        {
        }
        public function __clone()
        {
        }
        /**
         * @param Query $query
         * @param null  $entity_name
         *
         * @return Entity
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static function getInstanceByQuery(\Bitrix\Main\ORM\Query\Query $query, &$entity_name = null)
        {
        }
        /**
         * @param string               $entityName
         * @param null|array[]|Field[] $fields
         * @param array                $parameters [namespace, table_name, uf_id, parent, parent_map, default_scope]
         *
         * @return Entity
         *
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static function compileEntity($entityName, $fields = null, $parameters = array())
        {
        }
        /**
         * @return string[] Array of SQL queries
         * @throws Main\SystemException
         */
        public function compileDbTableStructureDump()
        {
        }
        /**
         * @param $dataClass
         *
         * @return EntityObject|string
         */
        public static function compileObjectClass($dataClass)
        {
        }
        /**
         * @param $dataClass
         *
         * @return Collection|string
         */
        public static function compileCollectionClass($dataClass)
        {
        }
        /**
         * Creates table according to Fields collection
         *
         * @return void
         * @throws Main\SystemException
         */
        public function createDbTable()
        {
        }
        /**
         * @param Entity|string $entity
         *
         * @return bool
         */
        public static function destroy($entity)
        {
        }
        /**
         * Reads data from cache.
         *
         * @param int    $ttl        TTL.
         * @param string $cacheId    The cache ID.
         * @param bool   $countTotal Whether to read total count from the cache.
         *
         * @return Main\DB\ArrayResult|null
         * @throws Main\SystemException
         */
        public function readFromCache($ttl, $cacheId, $countTotal = false)
        {
        }
        /**
         * @param Main\DB\Result $result     A query result to cache.
         * @param string         $cacheId    The cache ID.
         * @param bool           $countTotal Whether to write total count to the cache.
         *
         * @return Main\DB\ArrayResult
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function writeToCache(\Bitrix\Main\DB\Result $result, $cacheId, $countTotal = false)
        {
        }
        /**
         * Returns cache TTL for the entity, possibly limited by the .settings.php:
         * 'cache_flags' => array('value'=> array(
         *		"b_group_max_ttl" => 200,
         *		"b_group_min_ttl" => 100,
         * ))
         * Maximum is a higher-priority.
         * @param int $ttl Preferable TTL
         * @return int Calculated TTL
         */
        public function getCacheTtl($ttl)
        {
        }
        protected function getCacheDir()
        {
        }
        /**
         * Cleans all cache entries for the entity.
         *
         * @throws Main\SystemException
         */
        public function cleanCache()
        {
        }
        /**
         * Sets a flag indicating full text index support for a field.
         *
         * @deprecated Does nothing, mysql 5.6 has fulltext always enabled.
         * @param string $field
         * @param bool   $mode
         */
        public function enableFullTextIndex($field, $mode = true)
        {
        }
        /**
         * Returns true if full text index is enabled for a field.
         *
         * @deprecated Always returns true, mysql 5.6 has fulltext always enabled.
         * @param string $field
         * @return bool
         */
        public function fullTextIndexEnabled($field)
        {
        }
    }
}
namespace Bitrix\Vote {
    /**
     * @method \Bitrix\Vote\EO_Answer createObject($setDefaultValues = true)
     * @method \Bitrix\Vote\EO_Answer_Collection createCollection()
     * @method \Bitrix\Vote\EO_Answer wakeUpObject($row)
     * @method \Bitrix\Vote\EO_Answer_Collection wakeUpCollection($rows)
     */
    class EO_Answer_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Attach
     * @see \Bitrix\Vote\AttachTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Vote\EO_Attach setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getObjectId()
     * @method \Bitrix\Vote\EO_Attach setObjectId(\int|\Bitrix\Main\DB\SqlExpression $objectId)
     * @method bool hasObjectId()
     * @method bool isObjectIdFilled()
     * @method bool isObjectIdChanged()
     * @method \int remindActualObjectId()
     * @method \int requireObjectId()
     * @method \Bitrix\Vote\EO_Attach resetObjectId()
     * @method \Bitrix\Vote\EO_Attach unsetObjectId()
     * @method \int fillObjectId()
     * @method \string getModuleId()
     * @method \Bitrix\Vote\EO_Attach setModuleId(\string|\Bitrix\Main\DB\SqlExpression $moduleId)
     * @method bool hasModuleId()
     * @method bool isModuleIdFilled()
     * @method bool isModuleIdChanged()
     * @method \string remindActualModuleId()
     * @method \string requireModuleId()
     * @method \Bitrix\Vote\EO_Attach resetModuleId()
     * @method \Bitrix\Vote\EO_Attach unsetModuleId()
     * @method \string fillModuleId()
     * @method \string getEntityType()
     * @method \Bitrix\Vote\EO_Attach setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \string remindActualEntityType()
     * @method \string requireEntityType()
     * @method \Bitrix\Vote\EO_Attach resetEntityType()
     * @method \Bitrix\Vote\EO_Attach unsetEntityType()
     * @method \string fillEntityType()
     * @method \int getEntityId()
     * @method \Bitrix\Vote\EO_Attach setEntityId(\int|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \int remindActualEntityId()
     * @method \int requireEntityId()
     * @method \Bitrix\Vote\EO_Attach resetEntityId()
     * @method \Bitrix\Vote\EO_Attach unsetEntityId()
     * @method \int fillEntityId()
     * @method \Bitrix\Main\Type\DateTime getCreateTime()
     * @method \Bitrix\Vote\EO_Attach setCreateTime(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $createTime)
     * @method bool hasCreateTime()
     * @method bool isCreateTimeFilled()
     * @method bool isCreateTimeChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualCreateTime()
     * @method \Bitrix\Main\Type\DateTime requireCreateTime()
     * @method \Bitrix\Vote\EO_Attach resetCreateTime()
     * @method \Bitrix\Vote\EO_Attach unsetCreateTime()
     * @method \Bitrix\Main\Type\DateTime fillCreateTime()
     * @method \int getCreatedBy()
     * @method \Bitrix\Vote\EO_Attach setCreatedBy(\int|\Bitrix\Main\DB\SqlExpression $createdBy)
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \int remindActualCreatedBy()
     * @method \int requireCreatedBy()
     * @method \Bitrix\Vote\EO_Attach resetCreatedBy()
     * @method \Bitrix\Vote\EO_Attach unsetCreatedBy()
     * @method \int fillCreatedBy()
     * @method \Bitrix\Vote\EO_Vote getVote()
     * @method \Bitrix\Vote\EO_Vote remindActualVote()
     * @method \Bitrix\Vote\EO_Vote requireVote()
     * @method \Bitrix\Vote\EO_Attach setVote(\Bitrix\Vote\EO_Vote $object)
     * @method \Bitrix\Vote\EO_Attach resetVote()
     * @method \Bitrix\Vote\EO_Attach unsetVote()
     * @method bool hasVote()
     * @method bool isVoteFilled()
     * @method bool isVoteChanged()
     * @method \Bitrix\Vote\EO_Vote fillVote()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Vote\EO_Attach set($fieldName, $value)
     * @method \Bitrix\Vote\EO_Attach reset($fieldName)
     * @method \Bitrix\Vote\EO_Attach unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Vote\EO_Attach wakeUp($data)
     */
    class EO_Attach
    {
        /* @var \Bitrix\Vote\AttachTable */
        public static $dataClass = '\\Bitrix\\Vote\\AttachTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Attach_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getObjectIdList()
     * @method \int[] fillObjectId()
     * @method \string[] getModuleIdList()
     * @method \string[] fillModuleId()
     * @method \string[] getEntityTypeList()
     * @method \string[] fillEntityType()
     * @method \int[] getEntityIdList()
     * @method \int[] fillEntityId()
     * @method \Bitrix\Main\Type\DateTime[] getCreateTimeList()
     * @method \Bitrix\Main\Type\DateTime[] fillCreateTime()
     * @method \int[] getCreatedByList()
     * @method \int[] fillCreatedBy()
     * @method \Bitrix\Vote\EO_Vote[] getVoteList()
     * @method \Bitrix\Vote\EO_Attach_Collection getVoteCollection()
     * @method \Bitrix\Vote\EO_Vote_Collection fillVote()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Vote\EO_Attach $object)
     * @method bool has(\Bitrix\Vote\EO_Attach $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Vote\EO_Attach getByPrimary($primary)
     * @method \Bitrix\Vote\EO_Attach[] getAll()
     * @method bool remove(\Bitrix\Vote\EO_Attach $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Vote\EO_Attach_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Vote\EO_Attach current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Attach_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Vote\AttachTable */
        public static $dataClass = '\\Bitrix\\Vote\\AttachTable';
    }
    /**
     * @method static EO_Attach_Query query()
     * @method static EO_Attach_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Attach_Result getById($id)
     * @method static EO_Attach_Result getList(array $parameters = array())
     * @method static EO_Attach_Entity getEntity()
     * @method static \Bitrix\Vote\EO_Attach createObject($setDefaultValues = true)
     * @method static \Bitrix\Vote\EO_Attach_Collection createCollection()
     * @method static \Bitrix\Vote\EO_Attach wakeUpObject($row)
     * @method static \Bitrix\Vote\EO_Attach_Collection wakeUpCollection($rows)
     */
    class AttachTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Attach_Result exec()
     * @method \Bitrix\Vote\EO_Attach fetchObject()
     * @method \Bitrix\Vote\EO_Attach_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Attach_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Vote\EO_Attach fetchObject()
     * @method \Bitrix\Vote\EO_Attach_Collection fetchCollection()
     */
    class EO_Attach_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Vote\EO_Attach createObject($setDefaultValues = true)
     * @method \Bitrix\Vote\EO_Attach_Collection createCollection()
     * @method \Bitrix\Vote\EO_Attach wakeUpObject($row)
     * @method \Bitrix\Vote\EO_Attach_Collection wakeUpCollection($rows)
     */
    class EO_Attach_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Channel
     * @see \Bitrix\Vote\ChannelTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Vote\EO_Channel setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getSymbolicName()
     * @method \Bitrix\Vote\EO_Channel setSymbolicName(\string|\Bitrix\Main\DB\SqlExpression $symbolicName)
     * @method bool hasSymbolicName()
     * @method bool isSymbolicNameFilled()
     * @method bool isSymbolicNameChanged()
     * @method \string remindActualSymbolicName()
     * @method \string requireSymbolicName()
     * @method \Bitrix\Vote\EO_Channel resetSymbolicName()
     * @method \Bitrix\Vote\EO_Channel unsetSymbolicName()
     * @method \string fillSymbolicName()
     * @method \string getTitle()
     * @method \Bitrix\Vote\EO_Channel setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Vote\EO_Channel resetTitle()
     * @method \Bitrix\Vote\EO_Channel unsetTitle()
     * @method \string fillTitle()
     * @method \int getCSort()
     * @method \Bitrix\Vote\EO_Channel setCSort(\int|\Bitrix\Main\DB\SqlExpression $cSort)
     * @method bool hasCSort()
     * @method bool isCSortFilled()
     * @method bool isCSortChanged()
     * @method \int remindActualCSort()
     * @method \int requireCSort()
     * @method \Bitrix\Vote\EO_Channel resetCSort()
     * @method \Bitrix\Vote\EO_Channel unsetCSort()
     * @method \int fillCSort()
     * @method \boolean getActive()
     * @method \Bitrix\Vote\EO_Channel setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Vote\EO_Channel resetActive()
     * @method \Bitrix\Vote\EO_Channel unsetActive()
     * @method \boolean fillActive()
     * @method \boolean getHidden()
     * @method \Bitrix\Vote\EO_Channel setHidden(\boolean|\Bitrix\Main\DB\SqlExpression $hidden)
     * @method bool hasHidden()
     * @method bool isHiddenFilled()
     * @method bool isHiddenChanged()
     * @method \boolean remindActualHidden()
     * @method \boolean requireHidden()
     * @method \Bitrix\Vote\EO_Channel resetHidden()
     * @method \Bitrix\Vote\EO_Channel unsetHidden()
     * @method \boolean fillHidden()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Vote\EO_Channel setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Vote\EO_Channel resetTimestampX()
     * @method \Bitrix\Vote\EO_Channel unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \boolean getVoteSingle()
     * @method \Bitrix\Vote\EO_Channel setVoteSingle(\boolean|\Bitrix\Main\DB\SqlExpression $voteSingle)
     * @method bool hasVoteSingle()
     * @method bool isVoteSingleFilled()
     * @method bool isVoteSingleChanged()
     * @method \boolean remindActualVoteSingle()
     * @method \boolean requireVoteSingle()
     * @method \Bitrix\Vote\EO_Channel resetVoteSingle()
     * @method \Bitrix\Vote\EO_Channel unsetVoteSingle()
     * @method \boolean fillVoteSingle()
     * @method \boolean getUseCaptcha()
     * @method \Bitrix\Vote\EO_Channel setUseCaptcha(\boolean|\Bitrix\Main\DB\SqlExpression $useCaptcha)
     * @method bool hasUseCaptcha()
     * @method bool isUseCaptchaFilled()
     * @method bool isUseCaptchaChanged()
     * @method \boolean remindActualUseCaptcha()
     * @method \boolean requireUseCaptcha()
     * @method \Bitrix\Vote\EO_Channel resetUseCaptcha()
     * @method \Bitrix\Vote\EO_Channel unsetUseCaptcha()
     * @method \boolean fillUseCaptcha()
     * @method \Bitrix\Vote\EO_ChannelGroup getPermission()
     * @method \Bitrix\Vote\EO_ChannelGroup remindActualPermission()
     * @method \Bitrix\Vote\EO_ChannelGroup requirePermission()
     * @method \Bitrix\Vote\EO_Channel setPermission(\Bitrix\Vote\EO_ChannelGroup $object)
     * @method \Bitrix\Vote\EO_Channel resetPermission()
     * @method \Bitrix\Vote\EO_Channel unsetPermission()
     * @method bool hasPermission()
     * @method bool isPermissionFilled()
     * @method bool isPermissionChanged()
     * @method \Bitrix\Vote\EO_ChannelGroup fillPermission()
     * @method \Bitrix\Vote\EO_ChannelSite getSite()
     * @method \Bitrix\Vote\EO_ChannelSite remindActualSite()
     * @method \Bitrix\Vote\EO_ChannelSite requireSite()
     * @method \Bitrix\Vote\EO_Channel setSite(\Bitrix\Vote\EO_ChannelSite $object)
     * @method \Bitrix\Vote\EO_Channel resetSite()
     * @method \Bitrix\Vote\EO_Channel unsetSite()
     * @method bool hasSite()
     * @method bool isSiteFilled()
     * @method bool isSiteChanged()
     * @method \Bitrix\Vote\EO_ChannelSite fillSite()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Vote\EO_Channel set($fieldName, $value)
     * @method \Bitrix\Vote\EO_Channel reset($fieldName)
     * @method \Bitrix\Vote\EO_Channel unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Vote\EO_Channel wakeUp($data)
     */
    class EO_Channel
    {
        /* @var \Bitrix\Vote\ChannelTable */
        public static $dataClass = '\\Bitrix\\Vote\\ChannelTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Channel_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getSymbolicNameList()
     * @method \string[] fillSymbolicName()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \int[] getCSortList()
     * @method \int[] fillCSort()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \boolean[] getHiddenList()
     * @method \boolean[] fillHidden()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \boolean[] getVoteSingleList()
     * @method \boolean[] fillVoteSingle()
     * @method \boolean[] getUseCaptchaList()
     * @method \boolean[] fillUseCaptcha()
     * @method \Bitrix\Vote\EO_ChannelGroup[] getPermissionList()
     * @method \Bitrix\Vote\EO_Channel_Collection getPermissionCollection()
     * @method \Bitrix\Vote\EO_ChannelGroup_Collection fillPermission()
     * @method \Bitrix\Vote\EO_ChannelSite[] getSiteList()
     * @method \Bitrix\Vote\EO_Channel_Collection getSiteCollection()
     * @method \Bitrix\Vote\EO_ChannelSite_Collection fillSite()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Vote\EO_Channel $object)
     * @method bool has(\Bitrix\Vote\EO_Channel $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Vote\EO_Channel getByPrimary($primary)
     * @method \Bitrix\Vote\EO_Channel[] getAll()
     * @method bool remove(\Bitrix\Vote\EO_Channel $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Vote\EO_Channel_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Vote\EO_Channel current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Channel_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Vote\ChannelTable */
        public static $dataClass = '\\Bitrix\\Vote\\ChannelTable';
    }
    /**
     * @method static EO_Channel_Query query()
     * @method static EO_Channel_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Channel_Result getById($id)
     * @method static EO_Channel_Result getList(array $parameters = array())
     * @method static EO_Channel_Entity getEntity()
     * @method static \Bitrix\Vote\EO_Channel createObject($setDefaultValues = true)
     * @method static \Bitrix\Vote\EO_Channel_Collection createCollection()
     * @method static \Bitrix\Vote\EO_Channel wakeUpObject($row)
     * @method static \Bitrix\Vote\EO_Channel_Collection wakeUpCollection($rows)
     */
    class ChannelTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Channel_Result exec()
     * @method \Bitrix\Vote\EO_Channel fetchObject()
     * @method \Bitrix\Vote\EO_Channel_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Channel_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Vote\EO_Channel fetchObject()
     * @method \Bitrix\Vote\EO_Channel_Collection fetchCollection()
     */
    class EO_Channel_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Vote\EO_Channel createObject($setDefaultValues = true)
     * @method \Bitrix\Vote\EO_Channel_Collection createCollection()
     * @method \Bitrix\Vote\EO_Channel wakeUpObject($row)
     * @method \Bitrix\Vote\EO_Channel_Collection wakeUpCollection($rows)
     */
    class EO_Channel_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_ChannelGroup
     * @see \Bitrix\Vote\ChannelGroupTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Vote\EO_ChannelGroup setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getChannelId()
     * @method \Bitrix\Vote\EO_ChannelGroup setChannelId(\int|\Bitrix\Main\DB\SqlExpression $channelId)
     * @method bool hasChannelId()
     * @method bool isChannelIdFilled()
     * @method bool isChannelIdChanged()
     * @method \int remindActualChannelId()
     * @method \int requireChannelId()
     * @method \Bitrix\Vote\EO_ChannelGroup resetChannelId()
     * @method \Bitrix\Vote\EO_ChannelGroup unsetChannelId()
     * @method \int fillChannelId()
     * @method \int getGroupId()
     * @method \Bitrix\Vote\EO_ChannelGroup setGroupId(\int|\Bitrix\Main\DB\SqlExpression $groupId)
     * @method bool hasGroupId()
     * @method bool isGroupIdFilled()
     * @method bool isGroupIdChanged()
     * @method \int remindActualGroupId()
     * @method \int requireGroupId()
     * @method \Bitrix\Vote\EO_ChannelGroup resetGroupId()
     * @method \Bitrix\Vote\EO_ChannelGroup unsetGroupId()
     * @method \int fillGroupId()
     * @method \string getPermission()
     * @method \Bitrix\Vote\EO_ChannelGroup setPermission(\string|\Bitrix\Main\DB\SqlExpression $permission)
     * @method bool hasPermission()
     * @method bool isPermissionFilled()
     * @method bool isPermissionChanged()
     * @method \string remindActualPermission()
     * @method \string requirePermission()
     * @method \Bitrix\Vote\EO_ChannelGroup resetPermission()
     * @method \Bitrix\Vote\EO_ChannelGroup unsetPermission()
     * @method \string fillPermission()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Vote\EO_ChannelGroup set($fieldName, $value)
     * @method \Bitrix\Vote\EO_ChannelGroup reset($fieldName)
     * @method \Bitrix\Vote\EO_ChannelGroup unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Vote\EO_ChannelGroup wakeUp($data)
     */
    class EO_ChannelGroup
    {
        /* @var \Bitrix\Vote\ChannelGroupTable */
        public static $dataClass = '\\Bitrix\\Vote\\ChannelGroupTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_ChannelGroup_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getChannelIdList()
     * @method \int[] fillChannelId()
     * @method \int[] getGroupIdList()
     * @method \int[] fillGroupId()
     * @method \string[] getPermissionList()
     * @method \string[] fillPermission()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Vote\EO_ChannelGroup $object)
     * @method bool has(\Bitrix\Vote\EO_ChannelGroup $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Vote\EO_ChannelGroup getByPrimary($primary)
     * @method \Bitrix\Vote\EO_ChannelGroup[] getAll()
     * @method bool remove(\Bitrix\Vote\EO_ChannelGroup $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Vote\EO_ChannelGroup_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Vote\EO_ChannelGroup current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_ChannelGroup_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Vote\ChannelGroupTable */
        public static $dataClass = '\\Bitrix\\Vote\\ChannelGroupTable';
    }
    /**
     * @method static EO_ChannelGroup_Query query()
     * @method static EO_ChannelGroup_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_ChannelGroup_Result getById($id)
     * @method static EO_ChannelGroup_Result getList(array $parameters = array())
     * @method static EO_ChannelGroup_Entity getEntity()
     * @method static \Bitrix\Vote\EO_ChannelGroup createObject($setDefaultValues = true)
     * @method static \Bitrix\Vote\EO_ChannelGroup_Collection createCollection()
     * @method static \Bitrix\Vote\EO_ChannelGroup wakeUpObject($row)
     * @method static \Bitrix\Vote\EO_ChannelGroup_Collection wakeUpCollection($rows)
     */
    class ChannelGroupTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_ChannelGroup_Result exec()
     * @method \Bitrix\Vote\EO_ChannelGroup fetchObject()
     * @method \Bitrix\Vote\EO_ChannelGroup_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_ChannelGroup_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Vote\EO_ChannelGroup fetchObject()
     * @method \Bitrix\Vote\EO_ChannelGroup_Collection fetchCollection()
     */
    class EO_ChannelGroup_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Vote\EO_ChannelGroup createObject($setDefaultValues = true)
     * @method \Bitrix\Vote\EO_ChannelGroup_Collection createCollection()
     * @method \Bitrix\Vote\EO_ChannelGroup wakeUpObject($row)
     * @method \Bitrix\Vote\EO_ChannelGroup_Collection wakeUpCollection($rows)
     */
    class EO_ChannelGroup_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_ChannelSite
     * @see \Bitrix\Vote\ChannelSiteTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getChannelId()
     * @method \Bitrix\Vote\EO_ChannelSite setChannelId(\int|\Bitrix\Main\DB\SqlExpression $channelId)
     * @method bool hasChannelId()
     * @method bool isChannelIdFilled()
     * @method bool isChannelIdChanged()
     * @method \string getSiteId()
     * @method \Bitrix\Vote\EO_ChannelSite setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Vote\EO_ChannelSite set($fieldName, $value)
     * @method \Bitrix\Vote\EO_ChannelSite reset($fieldName)
     * @method \Bitrix\Vote\EO_ChannelSite unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Vote\EO_ChannelSite wakeUp($data)
     */
    class EO_ChannelSite
    {
        /* @var \Bitrix\Vote\ChannelSiteTable */
        public static $dataClass = '\\Bitrix\\Vote\\ChannelSiteTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_ChannelSite_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getChannelIdList()
     * @method \string[] getSiteIdList()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Vote\EO_ChannelSite $object)
     * @method bool has(\Bitrix\Vote\EO_ChannelSite $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Vote\EO_ChannelSite getByPrimary($primary)
     * @method \Bitrix\Vote\EO_ChannelSite[] getAll()
     * @method bool remove(\Bitrix\Vote\EO_ChannelSite $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Vote\EO_ChannelSite_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Vote\EO_ChannelSite current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_ChannelSite_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Vote\ChannelSiteTable */
        public static $dataClass = '\\Bitrix\\Vote\\ChannelSiteTable';
    }
    /**
     * @method static EO_ChannelSite_Query query()
     * @method static EO_ChannelSite_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_ChannelSite_Result getById($id)
     * @method static EO_ChannelSite_Result getList(array $parameters = array())
     * @method static EO_ChannelSite_Entity getEntity()
     * @method static \Bitrix\Vote\EO_ChannelSite createObject($setDefaultValues = true)
     * @method static \Bitrix\Vote\EO_ChannelSite_Collection createCollection()
     * @method static \Bitrix\Vote\EO_ChannelSite wakeUpObject($row)
     * @method static \Bitrix\Vote\EO_ChannelSite_Collection wakeUpCollection($rows)
     */
    class ChannelSiteTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_ChannelSite_Result exec()
     * @method \Bitrix\Vote\EO_ChannelSite fetchObject()
     * @method \Bitrix\Vote\EO_ChannelSite_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_ChannelSite_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Vote\EO_ChannelSite fetchObject()
     * @method \Bitrix\Vote\EO_ChannelSite_Collection fetchCollection()
     */
    class EO_ChannelSite_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Vote\EO_ChannelSite createObject($setDefaultValues = true)
     * @method \Bitrix\Vote\EO_ChannelSite_Collection createCollection()
     * @method \Bitrix\Vote\EO_ChannelSite wakeUpObject($row)
     * @method \Bitrix\Vote\EO_ChannelSite_Collection wakeUpCollection($rows)
     */
    class EO_ChannelSite_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Event
     * @see \Bitrix\Vote\EventTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Vote\EO_Event setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getVoteId()
     * @method \Bitrix\Vote\EO_Event setVoteId(\int|\Bitrix\Main\DB\SqlExpression $voteId)
     * @method bool hasVoteId()
     * @method bool isVoteIdFilled()
     * @method bool isVoteIdChanged()
     * @method \int remindActualVoteId()
     * @method \int requireVoteId()
     * @method \Bitrix\Vote\EO_Event resetVoteId()
     * @method \Bitrix\Vote\EO_Event unsetVoteId()
     * @method \int fillVoteId()
     * @method \int getVoteUserId()
     * @method \Bitrix\Vote\EO_Event setVoteUserId(\int|\Bitrix\Main\DB\SqlExpression $voteUserId)
     * @method bool hasVoteUserId()
     * @method bool isVoteUserIdFilled()
     * @method bool isVoteUserIdChanged()
     * @method \int remindActualVoteUserId()
     * @method \int requireVoteUserId()
     * @method \Bitrix\Vote\EO_Event resetVoteUserId()
     * @method \Bitrix\Vote\EO_Event unsetVoteUserId()
     * @method \int fillVoteUserId()
     * @method \Bitrix\Main\Type\DateTime getDateVote()
     * @method \Bitrix\Vote\EO_Event setDateVote(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateVote)
     * @method bool hasDateVote()
     * @method bool isDateVoteFilled()
     * @method bool isDateVoteChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateVote()
     * @method \Bitrix\Main\Type\DateTime requireDateVote()
     * @method \Bitrix\Vote\EO_Event resetDateVote()
     * @method \Bitrix\Vote\EO_Event unsetDateVote()
     * @method \Bitrix\Main\Type\DateTime fillDateVote()
     * @method \int getStatSessionId()
     * @method \Bitrix\Vote\EO_Event setStatSessionId(\int|\Bitrix\Main\DB\SqlExpression $statSessionId)
     * @method bool hasStatSessionId()
     * @method bool isStatSessionIdFilled()
     * @method bool isStatSessionIdChanged()
     * @method \int remindActualStatSessionId()
     * @method \int requireStatSessionId()
     * @method \Bitrix\Vote\EO_Event resetStatSessionId()
     * @method \Bitrix\Vote\EO_Event unsetStatSessionId()
     * @method \int fillStatSessionId()
     * @method \string getIp()
     * @method \Bitrix\Vote\EO_Event setIp(\string|\Bitrix\Main\DB\SqlExpression $ip)
     * @method bool hasIp()
     * @method bool isIpFilled()
     * @method bool isIpChanged()
     * @method \string remindActualIp()
     * @method \string requireIp()
     * @method \Bitrix\Vote\EO_Event resetIp()
     * @method \Bitrix\Vote\EO_Event unsetIp()
     * @method \string fillIp()
     * @method \boolean getValid()
     * @method \Bitrix\Vote\EO_Event setValid(\boolean|\Bitrix\Main\DB\SqlExpression $valid)
     * @method bool hasValid()
     * @method bool isValidFilled()
     * @method bool isValidChanged()
     * @method \boolean remindActualValid()
     * @method \boolean requireValid()
     * @method \Bitrix\Vote\EO_Event resetValid()
     * @method \Bitrix\Vote\EO_Event unsetValid()
     * @method \boolean fillValid()
     * @method \boolean getVisible()
     * @method \Bitrix\Vote\EO_Event setVisible(\boolean|\Bitrix\Main\DB\SqlExpression $visible)
     * @method bool hasVisible()
     * @method bool isVisibleFilled()
     * @method bool isVisibleChanged()
     * @method \boolean remindActualVisible()
     * @method \boolean requireVisible()
     * @method \Bitrix\Vote\EO_Event resetVisible()
     * @method \Bitrix\Vote\EO_Event unsetVisible()
     * @method \boolean fillVisible()
     * @method \Bitrix\Vote\EO_EventQuestion getQuestion()
     * @method \Bitrix\Vote\EO_EventQuestion remindActualQuestion()
     * @method \Bitrix\Vote\EO_EventQuestion requireQuestion()
     * @method \Bitrix\Vote\EO_Event setQuestion(\Bitrix\Vote\EO_EventQuestion $object)
     * @method \Bitrix\Vote\EO_Event resetQuestion()
     * @method \Bitrix\Vote\EO_Event unsetQuestion()
     * @method bool hasQuestion()
     * @method bool isQuestionFilled()
     * @method bool isQuestionChanged()
     * @method \Bitrix\Vote\EO_EventQuestion fillQuestion()
     * @method \Bitrix\Vote\EO_User getUser()
     * @method \Bitrix\Vote\EO_User remindActualUser()
     * @method \Bitrix\Vote\EO_User requireUser()
     * @method \Bitrix\Vote\EO_Event setUser(\Bitrix\Vote\EO_User $object)
     * @method \Bitrix\Vote\EO_Event resetUser()
     * @method \Bitrix\Vote\EO_Event unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Vote\EO_User fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Vote\EO_Event set($fieldName, $value)
     * @method \Bitrix\Vote\EO_Event reset($fieldName)
     * @method \Bitrix\Vote\EO_Event unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Vote\EO_Event wakeUp($data)
     */
    class EO_Event
    {
        /* @var \Bitrix\Vote\EventTable */
        public static $dataClass = '\\Bitrix\\Vote\\EventTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Event_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getVoteIdList()
     * @method \int[] fillVoteId()
     * @method \int[] getVoteUserIdList()
     * @method \int[] fillVoteUserId()
     * @method \Bitrix\Main\Type\DateTime[] getDateVoteList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateVote()
     * @method \int[] getStatSessionIdList()
     * @method \int[] fillStatSessionId()
     * @method \string[] getIpList()
     * @method \string[] fillIp()
     * @method \boolean[] getValidList()
     * @method \boolean[] fillValid()
     * @method \boolean[] getVisibleList()
     * @method \boolean[] fillVisible()
     * @method \Bitrix\Vote\EO_EventQuestion[] getQuestionList()
     * @method \Bitrix\Vote\EO_Event_Collection getQuestionCollection()
     * @method \Bitrix\Vote\EO_EventQuestion_Collection fillQuestion()
     * @method \Bitrix\Vote\EO_User[] getUserList()
     * @method \Bitrix\Vote\EO_Event_Collection getUserCollection()
     * @method \Bitrix\Vote\EO_User_Collection fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Vote\EO_Event $object)
     * @method bool has(\Bitrix\Vote\EO_Event $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Vote\EO_Event getByPrimary($primary)
     * @method \Bitrix\Vote\EO_Event[] getAll()
     * @method bool remove(\Bitrix\Vote\EO_Event $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Vote\EO_Event_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Vote\EO_Event current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Event_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Vote\EventTable */
        public static $dataClass = '\\Bitrix\\Vote\\EventTable';
    }
    /**
     * @method static EO_Event_Query query()
     * @method static EO_Event_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Event_Result getById($id)
     * @method static EO_Event_Result getList(array $parameters = array())
     * @method static EO_Event_Entity getEntity()
     * @method static \Bitrix\Vote\EO_Event createObject($setDefaultValues = true)
     * @method static \Bitrix\Vote\EO_Event_Collection createCollection()
     * @method static \Bitrix\Vote\EO_Event wakeUpObject($row)
     * @method static \Bitrix\Vote\EO_Event_Collection wakeUpCollection($rows)
     */
    class EventTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Event_Result exec()
     * @method \Bitrix\Vote\EO_Event fetchObject()
     * @method \Bitrix\Vote\EO_Event_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Event_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Vote\EO_Event fetchObject()
     * @method \Bitrix\Vote\EO_Event_Collection fetchCollection()
     */
    class EO_Event_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Vote\EO_Event createObject($setDefaultValues = true)
     * @method \Bitrix\Vote\EO_Event_Collection createCollection()
     * @method \Bitrix\Vote\EO_Event wakeUpObject($row)
     * @method \Bitrix\Vote\EO_Event_Collection wakeUpCollection($rows)
     */
    class EO_Event_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_EventQuestion
     * @see \Bitrix\Vote\EventQuestionTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Vote\EO_EventQuestion setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getEventId()
     * @method \Bitrix\Vote\EO_EventQuestion setEventId(\int|\Bitrix\Main\DB\SqlExpression $eventId)
     * @method bool hasEventId()
     * @method bool isEventIdFilled()
     * @method bool isEventIdChanged()
     * @method \int remindActualEventId()
     * @method \int requireEventId()
     * @method \Bitrix\Vote\EO_EventQuestion resetEventId()
     * @method \Bitrix\Vote\EO_EventQuestion unsetEventId()
     * @method \int fillEventId()
     * @method \int getQuestionId()
     * @method \Bitrix\Vote\EO_EventQuestion setQuestionId(\int|\Bitrix\Main\DB\SqlExpression $questionId)
     * @method bool hasQuestionId()
     * @method bool isQuestionIdFilled()
     * @method bool isQuestionIdChanged()
     * @method \int remindActualQuestionId()
     * @method \int requireQuestionId()
     * @method \Bitrix\Vote\EO_EventQuestion resetQuestionId()
     * @method \Bitrix\Vote\EO_EventQuestion unsetQuestionId()
     * @method \int fillQuestionId()
     * @method \Bitrix\Vote\EO_Event getVote()
     * @method \Bitrix\Vote\EO_Event remindActualVote()
     * @method \Bitrix\Vote\EO_Event requireVote()
     * @method \Bitrix\Vote\EO_EventQuestion setVote(\Bitrix\Vote\EO_Event $object)
     * @method \Bitrix\Vote\EO_EventQuestion resetVote()
     * @method \Bitrix\Vote\EO_EventQuestion unsetVote()
     * @method bool hasVote()
     * @method bool isVoteFilled()
     * @method bool isVoteChanged()
     * @method \Bitrix\Vote\EO_Event fillVote()
     * @method \Bitrix\Vote\EO_EventAnswer getAnswer()
     * @method \Bitrix\Vote\EO_EventAnswer remindActualAnswer()
     * @method \Bitrix\Vote\EO_EventAnswer requireAnswer()
     * @method \Bitrix\Vote\EO_EventQuestion setAnswer(\Bitrix\Vote\EO_EventAnswer $object)
     * @method \Bitrix\Vote\EO_EventQuestion resetAnswer()
     * @method \Bitrix\Vote\EO_EventQuestion unsetAnswer()
     * @method bool hasAnswer()
     * @method bool isAnswerFilled()
     * @method bool isAnswerChanged()
     * @method \Bitrix\Vote\EO_EventAnswer fillAnswer()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Vote\EO_EventQuestion set($fieldName, $value)
     * @method \Bitrix\Vote\EO_EventQuestion reset($fieldName)
     * @method \Bitrix\Vote\EO_EventQuestion unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Vote\EO_EventQuestion wakeUp($data)
     */
    class EO_EventQuestion
    {
        /* @var \Bitrix\Vote\EventQuestionTable */
        public static $dataClass = '\\Bitrix\\Vote\\EventQuestionTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_EventQuestion_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getEventIdList()
     * @method \int[] fillEventId()
     * @method \int[] getQuestionIdList()
     * @method \int[] fillQuestionId()
     * @method \Bitrix\Vote\EO_Event[] getVoteList()
     * @method \Bitrix\Vote\EO_EventQuestion_Collection getVoteCollection()
     * @method \Bitrix\Vote\EO_Event_Collection fillVote()
     * @method \Bitrix\Vote\EO_EventAnswer[] getAnswerList()
     * @method \Bitrix\Vote\EO_EventQuestion_Collection getAnswerCollection()
     * @method \Bitrix\Vote\EO_EventAnswer_Collection fillAnswer()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Vote\EO_EventQuestion $object)
     * @method bool has(\Bitrix\Vote\EO_EventQuestion $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Vote\EO_EventQuestion getByPrimary($primary)
     * @method \Bitrix\Vote\EO_EventQuestion[] getAll()
     * @method bool remove(\Bitrix\Vote\EO_EventQuestion $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Vote\EO_EventQuestion_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Vote\EO_EventQuestion current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_EventQuestion_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Vote\EventQuestionTable */
        public static $dataClass = '\\Bitrix\\Vote\\EventQuestionTable';
    }
    /**
     * @method static EO_EventQuestion_Query query()
     * @method static EO_EventQuestion_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_EventQuestion_Result getById($id)
     * @method static EO_EventQuestion_Result getList(array $parameters = array())
     * @method static EO_EventQuestion_Entity getEntity()
     * @method static \Bitrix\Vote\EO_EventQuestion createObject($setDefaultValues = true)
     * @method static \Bitrix\Vote\EO_EventQuestion_Collection createCollection()
     * @method static \Bitrix\Vote\EO_EventQuestion wakeUpObject($row)
     * @method static \Bitrix\Vote\EO_EventQuestion_Collection wakeUpCollection($rows)
     */
    class EventQuestionTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_EventQuestion_Result exec()
     * @method \Bitrix\Vote\EO_EventQuestion fetchObject()
     * @method \Bitrix\Vote\EO_EventQuestion_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_EventQuestion_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Vote\EO_EventQuestion fetchObject()
     * @method \Bitrix\Vote\EO_EventQuestion_Collection fetchCollection()
     */
    class EO_EventQuestion_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Vote\EO_EventQuestion createObject($setDefaultValues = true)
     * @method \Bitrix\Vote\EO_EventQuestion_Collection createCollection()
     * @method \Bitrix\Vote\EO_EventQuestion wakeUpObject($row)
     * @method \Bitrix\Vote\EO_EventQuestion_Collection wakeUpCollection($rows)
     */
    class EO_EventQuestion_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_EventAnswer
     * @see \Bitrix\Vote\EventAnswerTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Vote\EO_EventAnswer setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getEventQuestionId()
     * @method \Bitrix\Vote\EO_EventAnswer setEventQuestionId(\int|\Bitrix\Main\DB\SqlExpression $eventQuestionId)
     * @method bool hasEventQuestionId()
     * @method bool isEventQuestionIdFilled()
     * @method bool isEventQuestionIdChanged()
     * @method \int remindActualEventQuestionId()
     * @method \int requireEventQuestionId()
     * @method \Bitrix\Vote\EO_EventAnswer resetEventQuestionId()
     * @method \Bitrix\Vote\EO_EventAnswer unsetEventQuestionId()
     * @method \int fillEventQuestionId()
     * @method \int getAnswerId()
     * @method \Bitrix\Vote\EO_EventAnswer setAnswerId(\int|\Bitrix\Main\DB\SqlExpression $answerId)
     * @method bool hasAnswerId()
     * @method bool isAnswerIdFilled()
     * @method bool isAnswerIdChanged()
     * @method \int remindActualAnswerId()
     * @method \int requireAnswerId()
     * @method \Bitrix\Vote\EO_EventAnswer resetAnswerId()
     * @method \Bitrix\Vote\EO_EventAnswer unsetAnswerId()
     * @method \int fillAnswerId()
     * @method \string getMessage()
     * @method \Bitrix\Vote\EO_EventAnswer setMessage(\string|\Bitrix\Main\DB\SqlExpression $message)
     * @method bool hasMessage()
     * @method bool isMessageFilled()
     * @method bool isMessageChanged()
     * @method \string remindActualMessage()
     * @method \string requireMessage()
     * @method \Bitrix\Vote\EO_EventAnswer resetMessage()
     * @method \Bitrix\Vote\EO_EventAnswer unsetMessage()
     * @method \string fillMessage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Vote\EO_EventAnswer set($fieldName, $value)
     * @method \Bitrix\Vote\EO_EventAnswer reset($fieldName)
     * @method \Bitrix\Vote\EO_EventAnswer unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Vote\EO_EventAnswer wakeUp($data)
     */
    class EO_EventAnswer
    {
        /* @var \Bitrix\Vote\EventAnswerTable */
        public static $dataClass = '\\Bitrix\\Vote\\EventAnswerTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_EventAnswer_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getEventQuestionIdList()
     * @method \int[] fillEventQuestionId()
     * @method \int[] getAnswerIdList()
     * @method \int[] fillAnswerId()
     * @method \string[] getMessageList()
     * @method \string[] fillMessage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Vote\EO_EventAnswer $object)
     * @method bool has(\Bitrix\Vote\EO_EventAnswer $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Vote\EO_EventAnswer getByPrimary($primary)
     * @method \Bitrix\Vote\EO_EventAnswer[] getAll()
     * @method bool remove(\Bitrix\Vote\EO_EventAnswer $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Vote\EO_EventAnswer_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Vote\EO_EventAnswer current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_EventAnswer_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Vote\EventAnswerTable */
        public static $dataClass = '\\Bitrix\\Vote\\EventAnswerTable';
    }
    /**
     * @method static EO_EventAnswer_Query query()
     * @method static EO_EventAnswer_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_EventAnswer_Result getById($id)
     * @method static EO_EventAnswer_Result getList(array $parameters = array())
     * @method static EO_EventAnswer_Entity getEntity()
     * @method static \Bitrix\Vote\EO_EventAnswer createObject($setDefaultValues = true)
     * @method static \Bitrix\Vote\EO_EventAnswer_Collection createCollection()
     * @method static \Bitrix\Vote\EO_EventAnswer wakeUpObject($row)
     * @method static \Bitrix\Vote\EO_EventAnswer_Collection wakeUpCollection($rows)
     */
    class EventAnswerTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_EventAnswer_Result exec()
     * @method \Bitrix\Vote\EO_EventAnswer fetchObject()
     * @method \Bitrix\Vote\EO_EventAnswer_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_EventAnswer_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Vote\EO_EventAnswer fetchObject()
     * @method \Bitrix\Vote\EO_EventAnswer_Collection fetchCollection()
     */
    class EO_EventAnswer_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Vote\EO_EventAnswer createObject($setDefaultValues = true)
     * @method \Bitrix\Vote\EO_EventAnswer_Collection createCollection()
     * @method \Bitrix\Vote\EO_EventAnswer wakeUpObject($row)
     * @method \Bitrix\Vote\EO_EventAnswer_Collection wakeUpCollection($rows)
     */
    class EO_EventAnswer_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Question
     * @see \Bitrix\Vote\QuestionTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Vote\EO_Question setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \boolean getActive()
     * @method \Bitrix\Vote\EO_Question setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Vote\EO_Question resetActive()
     * @method \Bitrix\Vote\EO_Question unsetActive()
     * @method \boolean fillActive()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Vote\EO_Question setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Vote\EO_Question resetTimestampX()
     * @method \Bitrix\Vote\EO_Question unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \int getVoteId()
     * @method \Bitrix\Vote\EO_Question setVoteId(\int|\Bitrix\Main\DB\SqlExpression $voteId)
     * @method bool hasVoteId()
     * @method bool isVoteIdFilled()
     * @method bool isVoteIdChanged()
     * @method \int remindActualVoteId()
     * @method \int requireVoteId()
     * @method \Bitrix\Vote\EO_Question resetVoteId()
     * @method \Bitrix\Vote\EO_Question unsetVoteId()
     * @method \int fillVoteId()
     * @method \int getCSort()
     * @method \Bitrix\Vote\EO_Question setCSort(\int|\Bitrix\Main\DB\SqlExpression $cSort)
     * @method bool hasCSort()
     * @method bool isCSortFilled()
     * @method bool isCSortChanged()
     * @method \int remindActualCSort()
     * @method \int requireCSort()
     * @method \Bitrix\Vote\EO_Question resetCSort()
     * @method \Bitrix\Vote\EO_Question unsetCSort()
     * @method \int fillCSort()
     * @method \int getCounter()
     * @method \Bitrix\Vote\EO_Question setCounter(\int|\Bitrix\Main\DB\SqlExpression $counter)
     * @method bool hasCounter()
     * @method bool isCounterFilled()
     * @method bool isCounterChanged()
     * @method \int remindActualCounter()
     * @method \int requireCounter()
     * @method \Bitrix\Vote\EO_Question resetCounter()
     * @method \Bitrix\Vote\EO_Question unsetCounter()
     * @method \int fillCounter()
     * @method \string getQuestion()
     * @method \Bitrix\Vote\EO_Question setQuestion(\string|\Bitrix\Main\DB\SqlExpression $question)
     * @method bool hasQuestion()
     * @method bool isQuestionFilled()
     * @method bool isQuestionChanged()
     * @method \string remindActualQuestion()
     * @method \string requireQuestion()
     * @method \Bitrix\Vote\EO_Question resetQuestion()
     * @method \Bitrix\Vote\EO_Question unsetQuestion()
     * @method \string fillQuestion()
     * @method \string getQuestionType()
     * @method \Bitrix\Vote\EO_Question setQuestionType(\string|\Bitrix\Main\DB\SqlExpression $questionType)
     * @method bool hasQuestionType()
     * @method bool isQuestionTypeFilled()
     * @method bool isQuestionTypeChanged()
     * @method \string remindActualQuestionType()
     * @method \string requireQuestionType()
     * @method \Bitrix\Vote\EO_Question resetQuestionType()
     * @method \Bitrix\Vote\EO_Question unsetQuestionType()
     * @method \string fillQuestionType()
     * @method \int getImageId()
     * @method \Bitrix\Vote\EO_Question setImageId(\int|\Bitrix\Main\DB\SqlExpression $imageId)
     * @method bool hasImageId()
     * @method bool isImageIdFilled()
     * @method bool isImageIdChanged()
     * @method \int remindActualImageId()
     * @method \int requireImageId()
     * @method \Bitrix\Vote\EO_Question resetImageId()
     * @method \Bitrix\Vote\EO_Question unsetImageId()
     * @method \int fillImageId()
     * @method \Bitrix\Main\EO_File getImage()
     * @method \Bitrix\Main\EO_File remindActualImage()
     * @method \Bitrix\Main\EO_File requireImage()
     * @method \Bitrix\Vote\EO_Question setImage(\Bitrix\Main\EO_File $object)
     * @method \Bitrix\Vote\EO_Question resetImage()
     * @method \Bitrix\Vote\EO_Question unsetImage()
     * @method bool hasImage()
     * @method bool isImageFilled()
     * @method bool isImageChanged()
     * @method \Bitrix\Main\EO_File fillImage()
     * @method \boolean getDiagram()
     * @method \Bitrix\Vote\EO_Question setDiagram(\boolean|\Bitrix\Main\DB\SqlExpression $diagram)
     * @method bool hasDiagram()
     * @method bool isDiagramFilled()
     * @method bool isDiagramChanged()
     * @method \boolean remindActualDiagram()
     * @method \boolean requireDiagram()
     * @method \Bitrix\Vote\EO_Question resetDiagram()
     * @method \Bitrix\Vote\EO_Question unsetDiagram()
     * @method \boolean fillDiagram()
     * @method \string getDiagramType()
     * @method \Bitrix\Vote\EO_Question setDiagramType(\string|\Bitrix\Main\DB\SqlExpression $diagramType)
     * @method bool hasDiagramType()
     * @method bool isDiagramTypeFilled()
     * @method bool isDiagramTypeChanged()
     * @method \string remindActualDiagramType()
     * @method \string requireDiagramType()
     * @method \Bitrix\Vote\EO_Question resetDiagramType()
     * @method \Bitrix\Vote\EO_Question unsetDiagramType()
     * @method \string fillDiagramType()
     * @method \boolean getRequired()
     * @method \Bitrix\Vote\EO_Question setRequired(\boolean|\Bitrix\Main\DB\SqlExpression $required)
     * @method bool hasRequired()
     * @method bool isRequiredFilled()
     * @method bool isRequiredChanged()
     * @method \boolean remindActualRequired()
     * @method \boolean requireRequired()
     * @method \Bitrix\Vote\EO_Question resetRequired()
     * @method \Bitrix\Vote\EO_Question unsetRequired()
     * @method \boolean fillRequired()
     * @method \string getFieldType()
     * @method \Bitrix\Vote\EO_Question setFieldType(\string|\Bitrix\Main\DB\SqlExpression $fieldType)
     * @method bool hasFieldType()
     * @method bool isFieldTypeFilled()
     * @method bool isFieldTypeChanged()
     * @method \string remindActualFieldType()
     * @method \string requireFieldType()
     * @method \Bitrix\Vote\EO_Question resetFieldType()
     * @method \Bitrix\Vote\EO_Question unsetFieldType()
     * @method \string fillFieldType()
     * @method \Bitrix\Vote\EO_Vote getVote()
     * @method \Bitrix\Vote\EO_Vote remindActualVote()
     * @method \Bitrix\Vote\EO_Vote requireVote()
     * @method \Bitrix\Vote\EO_Question setVote(\Bitrix\Vote\EO_Vote $object)
     * @method \Bitrix\Vote\EO_Question resetVote()
     * @method \Bitrix\Vote\EO_Question unsetVote()
     * @method bool hasVote()
     * @method bool isVoteFilled()
     * @method bool isVoteChanged()
     * @method \Bitrix\Vote\EO_Vote fillVote()
     * @method \Bitrix\Vote\EO_Answer getAnswer()
     * @method \Bitrix\Vote\EO_Answer remindActualAnswer()
     * @method \Bitrix\Vote\EO_Answer requireAnswer()
     * @method \Bitrix\Vote\EO_Question setAnswer(\Bitrix\Vote\EO_Answer $object)
     * @method \Bitrix\Vote\EO_Question resetAnswer()
     * @method \Bitrix\Vote\EO_Question unsetAnswer()
     * @method bool hasAnswer()
     * @method bool isAnswerFilled()
     * @method bool isAnswerChanged()
     * @method \Bitrix\Vote\EO_Answer fillAnswer()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Vote\EO_Question set($fieldName, $value)
     * @method \Bitrix\Vote\EO_Question reset($fieldName)
     * @method \Bitrix\Vote\EO_Question unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Vote\EO_Question wakeUp($data)
     */
    class EO_Question
    {
        /* @var \Bitrix\Vote\QuestionTable */
        public static $dataClass = '\\Bitrix\\Vote\\QuestionTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Question_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \int[] getVoteIdList()
     * @method \int[] fillVoteId()
     * @method \int[] getCSortList()
     * @method \int[] fillCSort()
     * @method \int[] getCounterList()
     * @method \int[] fillCounter()
     * @method \string[] getQuestionList()
     * @method \string[] fillQuestion()
     * @method \string[] getQuestionTypeList()
     * @method \string[] fillQuestionType()
     * @method \int[] getImageIdList()
     * @method \int[] fillImageId()
     * @method \Bitrix\Main\EO_File[] getImageList()
     * @method \Bitrix\Vote\EO_Question_Collection getImageCollection()
     * @method \Bitrix\Main\EO_File_Collection fillImage()
     * @method \boolean[] getDiagramList()
     * @method \boolean[] fillDiagram()
     * @method \string[] getDiagramTypeList()
     * @method \string[] fillDiagramType()
     * @method \boolean[] getRequiredList()
     * @method \boolean[] fillRequired()
     * @method \string[] getFieldTypeList()
     * @method \string[] fillFieldType()
     * @method \Bitrix\Vote\EO_Vote[] getVoteList()
     * @method \Bitrix\Vote\EO_Question_Collection getVoteCollection()
     * @method \Bitrix\Vote\EO_Vote_Collection fillVote()
     * @method \Bitrix\Vote\EO_Answer[] getAnswerList()
     * @method \Bitrix\Vote\EO_Question_Collection getAnswerCollection()
     * @method \Bitrix\Vote\EO_Answer_Collection fillAnswer()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Vote\EO_Question $object)
     * @method bool has(\Bitrix\Vote\EO_Question $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Vote\EO_Question getByPrimary($primary)
     * @method \Bitrix\Vote\EO_Question[] getAll()
     * @method bool remove(\Bitrix\Vote\EO_Question $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Vote\EO_Question_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Vote\EO_Question current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Question_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Vote\QuestionTable */
        public static $dataClass = '\\Bitrix\\Vote\\QuestionTable';
    }
    /**
     * @method static EO_Question_Query query()
     * @method static EO_Question_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Question_Result getById($id)
     * @method static EO_Question_Result getList(array $parameters = array())
     * @method static EO_Question_Entity getEntity()
     * @method static \Bitrix\Vote\EO_Question createObject($setDefaultValues = true)
     * @method static \Bitrix\Vote\EO_Question_Collection createCollection()
     * @method static \Bitrix\Vote\EO_Question wakeUpObject($row)
     * @method static \Bitrix\Vote\EO_Question_Collection wakeUpCollection($rows)
     */
    class QuestionTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Question_Result exec()
     * @method \Bitrix\Vote\EO_Question fetchObject()
     * @method \Bitrix\Vote\EO_Question_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Question_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Vote\EO_Question fetchObject()
     * @method \Bitrix\Vote\EO_Question_Collection fetchCollection()
     */
    class EO_Question_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Vote\EO_Question createObject($setDefaultValues = true)
     * @method \Bitrix\Vote\EO_Question_Collection createCollection()
     * @method \Bitrix\Vote\EO_Question wakeUpObject($row)
     * @method \Bitrix\Vote\EO_Question_Collection wakeUpCollection($rows)
     */
    class EO_Question_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_User
     * @see \Bitrix\Vote\UserTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Vote\EO_User setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getCookieId()
     * @method \Bitrix\Vote\EO_User setCookieId(\int|\Bitrix\Main\DB\SqlExpression $cookieId)
     * @method bool hasCookieId()
     * @method bool isCookieIdFilled()
     * @method bool isCookieIdChanged()
     * @method \int remindActualCookieId()
     * @method \int requireCookieId()
     * @method \Bitrix\Vote\EO_User resetCookieId()
     * @method \Bitrix\Vote\EO_User unsetCookieId()
     * @method \int fillCookieId()
     * @method \int getAuthUserId()
     * @method \Bitrix\Vote\EO_User setAuthUserId(\int|\Bitrix\Main\DB\SqlExpression $authUserId)
     * @method bool hasAuthUserId()
     * @method bool isAuthUserIdFilled()
     * @method bool isAuthUserIdChanged()
     * @method \int remindActualAuthUserId()
     * @method \int requireAuthUserId()
     * @method \Bitrix\Vote\EO_User resetAuthUserId()
     * @method \Bitrix\Vote\EO_User unsetAuthUserId()
     * @method \int fillAuthUserId()
     * @method \int getCounter()
     * @method \Bitrix\Vote\EO_User setCounter(\int|\Bitrix\Main\DB\SqlExpression $counter)
     * @method bool hasCounter()
     * @method bool isCounterFilled()
     * @method bool isCounterChanged()
     * @method \int remindActualCounter()
     * @method \int requireCounter()
     * @method \Bitrix\Vote\EO_User resetCounter()
     * @method \Bitrix\Vote\EO_User unsetCounter()
     * @method \int fillCounter()
     * @method \Bitrix\Main\Type\DateTime getDateFirst()
     * @method \Bitrix\Vote\EO_User setDateFirst(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateFirst)
     * @method bool hasDateFirst()
     * @method bool isDateFirstFilled()
     * @method bool isDateFirstChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateFirst()
     * @method \Bitrix\Main\Type\DateTime requireDateFirst()
     * @method \Bitrix\Vote\EO_User resetDateFirst()
     * @method \Bitrix\Vote\EO_User unsetDateFirst()
     * @method \Bitrix\Main\Type\DateTime fillDateFirst()
     * @method \Bitrix\Main\Type\DateTime getDateLast()
     * @method \Bitrix\Vote\EO_User setDateLast(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateLast)
     * @method bool hasDateLast()
     * @method bool isDateLastFilled()
     * @method bool isDateLastChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateLast()
     * @method \Bitrix\Main\Type\DateTime requireDateLast()
     * @method \Bitrix\Vote\EO_User resetDateLast()
     * @method \Bitrix\Vote\EO_User unsetDateLast()
     * @method \Bitrix\Main\Type\DateTime fillDateLast()
     * @method \string getLastIp()
     * @method \Bitrix\Vote\EO_User setLastIp(\string|\Bitrix\Main\DB\SqlExpression $lastIp)
     * @method bool hasLastIp()
     * @method bool isLastIpFilled()
     * @method bool isLastIpChanged()
     * @method \string remindActualLastIp()
     * @method \string requireLastIp()
     * @method \Bitrix\Vote\EO_User resetLastIp()
     * @method \Bitrix\Vote\EO_User unsetLastIp()
     * @method \string fillLastIp()
     * @method \int getStatGuestId()
     * @method \Bitrix\Vote\EO_User setStatGuestId(\int|\Bitrix\Main\DB\SqlExpression $statGuestId)
     * @method bool hasStatGuestId()
     * @method bool isStatGuestIdFilled()
     * @method bool isStatGuestIdChanged()
     * @method \int remindActualStatGuestId()
     * @method \int requireStatGuestId()
     * @method \Bitrix\Vote\EO_User resetStatGuestId()
     * @method \Bitrix\Vote\EO_User unsetStatGuestId()
     * @method \int fillStatGuestId()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Vote\EO_User setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Vote\EO_User resetUser()
     * @method \Bitrix\Vote\EO_User unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Vote\EO_User set($fieldName, $value)
     * @method \Bitrix\Vote\EO_User reset($fieldName)
     * @method \Bitrix\Vote\EO_User unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Vote\EO_User wakeUp($data)
     */
    class EO_User
    {
        /* @var \Bitrix\Vote\UserTable */
        public static $dataClass = '\\Bitrix\\Vote\\UserTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_User_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getCookieIdList()
     * @method \int[] fillCookieId()
     * @method \int[] getAuthUserIdList()
     * @method \int[] fillAuthUserId()
     * @method \int[] getCounterList()
     * @method \int[] fillCounter()
     * @method \Bitrix\Main\Type\DateTime[] getDateFirstList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateFirst()
     * @method \Bitrix\Main\Type\DateTime[] getDateLastList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateLast()
     * @method \string[] getLastIpList()
     * @method \string[] fillLastIp()
     * @method \int[] getStatGuestIdList()
     * @method \int[] fillStatGuestId()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Vote\EO_User_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Vote\EO_User $object)
     * @method bool has(\Bitrix\Vote\EO_User $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Vote\EO_User getByPrimary($primary)
     * @method \Bitrix\Vote\EO_User[] getAll()
     * @method bool remove(\Bitrix\Vote\EO_User $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Vote\EO_User_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Vote\EO_User current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_User_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Vote\UserTable */
        public static $dataClass = '\\Bitrix\\Vote\\UserTable';
    }
    /**
     * @method static EO_User_Query query()
     * @method static EO_User_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_User_Result getById($id)
     * @method static EO_User_Result getList(array $parameters = array())
     * @method static EO_User_Entity getEntity()
     * @method static \Bitrix\Vote\EO_User createObject($setDefaultValues = true)
     * @method static \Bitrix\Vote\EO_User_Collection createCollection()
     * @method static \Bitrix\Vote\EO_User wakeUpObject($row)
     * @method static \Bitrix\Vote\EO_User_Collection wakeUpCollection($rows)
     */
    class UserTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_User_Result exec()
     * @method \Bitrix\Vote\EO_User fetchObject()
     * @method \Bitrix\Vote\EO_User_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_User_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Vote\EO_User fetchObject()
     * @method \Bitrix\Vote\EO_User_Collection fetchCollection()
     */
    class EO_User_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Vote\EO_User createObject($setDefaultValues = true)
     * @method \Bitrix\Vote\EO_User_Collection createCollection()
     * @method \Bitrix\Vote\EO_User wakeUpObject($row)
     * @method \Bitrix\Vote\EO_User_Collection wakeUpCollection($rows)
     */
    class EO_User_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Vote
     * @see \Bitrix\Vote\VoteTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Vote\EO_Vote setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getChannelId()
     * @method \Bitrix\Vote\EO_Vote setChannelId(\int|\Bitrix\Main\DB\SqlExpression $channelId)
     * @method bool hasChannelId()
     * @method bool isChannelIdFilled()
     * @method bool isChannelIdChanged()
     * @method \int remindActualChannelId()
     * @method \int requireChannelId()
     * @method \Bitrix\Vote\EO_Vote resetChannelId()
     * @method \Bitrix\Vote\EO_Vote unsetChannelId()
     * @method \int fillChannelId()
     * @method \int getCSort()
     * @method \Bitrix\Vote\EO_Vote setCSort(\int|\Bitrix\Main\DB\SqlExpression $cSort)
     * @method bool hasCSort()
     * @method bool isCSortFilled()
     * @method bool isCSortChanged()
     * @method \int remindActualCSort()
     * @method \int requireCSort()
     * @method \Bitrix\Vote\EO_Vote resetCSort()
     * @method \Bitrix\Vote\EO_Vote unsetCSort()
     * @method \int fillCSort()
     * @method \boolean getActive()
     * @method \Bitrix\Vote\EO_Vote setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Vote\EO_Vote resetActive()
     * @method \Bitrix\Vote\EO_Vote unsetActive()
     * @method \boolean fillActive()
     * @method \int getAnonymity()
     * @method \Bitrix\Vote\EO_Vote setAnonymity(\int|\Bitrix\Main\DB\SqlExpression $anonymity)
     * @method bool hasAnonymity()
     * @method bool isAnonymityFilled()
     * @method bool isAnonymityChanged()
     * @method \int remindActualAnonymity()
     * @method \int requireAnonymity()
     * @method \Bitrix\Vote\EO_Vote resetAnonymity()
     * @method \Bitrix\Vote\EO_Vote unsetAnonymity()
     * @method \int fillAnonymity()
     * @method \string getNotify()
     * @method \Bitrix\Vote\EO_Vote setNotify(\string|\Bitrix\Main\DB\SqlExpression $notify)
     * @method bool hasNotify()
     * @method bool isNotifyFilled()
     * @method bool isNotifyChanged()
     * @method \string remindActualNotify()
     * @method \string requireNotify()
     * @method \Bitrix\Vote\EO_Vote resetNotify()
     * @method \Bitrix\Vote\EO_Vote unsetNotify()
     * @method \string fillNotify()
     * @method \int getAuthorId()
     * @method \Bitrix\Vote\EO_Vote setAuthorId(\int|\Bitrix\Main\DB\SqlExpression $authorId)
     * @method bool hasAuthorId()
     * @method bool isAuthorIdFilled()
     * @method bool isAuthorIdChanged()
     * @method \int remindActualAuthorId()
     * @method \int requireAuthorId()
     * @method \Bitrix\Vote\EO_Vote resetAuthorId()
     * @method \Bitrix\Vote\EO_Vote unsetAuthorId()
     * @method \int fillAuthorId()
     * @method \Bitrix\Main\EO_User getAuthor()
     * @method \Bitrix\Main\EO_User remindActualAuthor()
     * @method \Bitrix\Main\EO_User requireAuthor()
     * @method \Bitrix\Vote\EO_Vote setAuthor(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Vote\EO_Vote resetAuthor()
     * @method \Bitrix\Vote\EO_Vote unsetAuthor()
     * @method bool hasAuthor()
     * @method bool isAuthorFilled()
     * @method bool isAuthorChanged()
     * @method \Bitrix\Main\EO_User fillAuthor()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Vote\EO_Vote setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Vote\EO_Vote resetTimestampX()
     * @method \Bitrix\Vote\EO_Vote unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \Bitrix\Main\Type\DateTime getDateStart()
     * @method \Bitrix\Vote\EO_Vote setDateStart(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateStart)
     * @method bool hasDateStart()
     * @method bool isDateStartFilled()
     * @method bool isDateStartChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateStart()
     * @method \Bitrix\Main\Type\DateTime requireDateStart()
     * @method \Bitrix\Vote\EO_Vote resetDateStart()
     * @method \Bitrix\Vote\EO_Vote unsetDateStart()
     * @method \Bitrix\Main\Type\DateTime fillDateStart()
     * @method \Bitrix\Main\Type\DateTime getDateEnd()
     * @method \Bitrix\Vote\EO_Vote setDateEnd(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateEnd)
     * @method bool hasDateEnd()
     * @method bool isDateEndFilled()
     * @method bool isDateEndChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateEnd()
     * @method \Bitrix\Main\Type\DateTime requireDateEnd()
     * @method \Bitrix\Vote\EO_Vote resetDateEnd()
     * @method \Bitrix\Vote\EO_Vote unsetDateEnd()
     * @method \Bitrix\Main\Type\DateTime fillDateEnd()
     * @method \string getUrl()
     * @method \Bitrix\Vote\EO_Vote setUrl(\string|\Bitrix\Main\DB\SqlExpression $url)
     * @method bool hasUrl()
     * @method bool isUrlFilled()
     * @method bool isUrlChanged()
     * @method \string remindActualUrl()
     * @method \string requireUrl()
     * @method \Bitrix\Vote\EO_Vote resetUrl()
     * @method \Bitrix\Vote\EO_Vote unsetUrl()
     * @method \string fillUrl()
     * @method \int getCounter()
     * @method \Bitrix\Vote\EO_Vote setCounter(\int|\Bitrix\Main\DB\SqlExpression $counter)
     * @method bool hasCounter()
     * @method bool isCounterFilled()
     * @method bool isCounterChanged()
     * @method \int remindActualCounter()
     * @method \int requireCounter()
     * @method \Bitrix\Vote\EO_Vote resetCounter()
     * @method \Bitrix\Vote\EO_Vote unsetCounter()
     * @method \int fillCounter()
     * @method \string getTitle()
     * @method \Bitrix\Vote\EO_Vote setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Vote\EO_Vote resetTitle()
     * @method \Bitrix\Vote\EO_Vote unsetTitle()
     * @method \string fillTitle()
     * @method \string getDescription()
     * @method \Bitrix\Vote\EO_Vote setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Vote\EO_Vote resetDescription()
     * @method \Bitrix\Vote\EO_Vote unsetDescription()
     * @method \string fillDescription()
     * @method \string getDescriptionType()
     * @method \Bitrix\Vote\EO_Vote setDescriptionType(\string|\Bitrix\Main\DB\SqlExpression $descriptionType)
     * @method bool hasDescriptionType()
     * @method bool isDescriptionTypeFilled()
     * @method bool isDescriptionTypeChanged()
     * @method \string remindActualDescriptionType()
     * @method \string requireDescriptionType()
     * @method \Bitrix\Vote\EO_Vote resetDescriptionType()
     * @method \Bitrix\Vote\EO_Vote unsetDescriptionType()
     * @method \string fillDescriptionType()
     * @method \int getImageId()
     * @method \Bitrix\Vote\EO_Vote setImageId(\int|\Bitrix\Main\DB\SqlExpression $imageId)
     * @method bool hasImageId()
     * @method bool isImageIdFilled()
     * @method bool isImageIdChanged()
     * @method \int remindActualImageId()
     * @method \int requireImageId()
     * @method \Bitrix\Vote\EO_Vote resetImageId()
     * @method \Bitrix\Vote\EO_Vote unsetImageId()
     * @method \int fillImageId()
     * @method \Bitrix\Main\EO_File getImage()
     * @method \Bitrix\Main\EO_File remindActualImage()
     * @method \Bitrix\Main\EO_File requireImage()
     * @method \Bitrix\Vote\EO_Vote setImage(\Bitrix\Main\EO_File $object)
     * @method \Bitrix\Vote\EO_Vote resetImage()
     * @method \Bitrix\Vote\EO_Vote unsetImage()
     * @method bool hasImage()
     * @method bool isImageFilled()
     * @method bool isImageChanged()
     * @method \Bitrix\Main\EO_File fillImage()
     * @method \string getEvent1()
     * @method \Bitrix\Vote\EO_Vote setEvent1(\string|\Bitrix\Main\DB\SqlExpression $event1)
     * @method bool hasEvent1()
     * @method bool isEvent1Filled()
     * @method bool isEvent1Changed()
     * @method \string remindActualEvent1()
     * @method \string requireEvent1()
     * @method \Bitrix\Vote\EO_Vote resetEvent1()
     * @method \Bitrix\Vote\EO_Vote unsetEvent1()
     * @method \string fillEvent1()
     * @method \string getEvent2()
     * @method \Bitrix\Vote\EO_Vote setEvent2(\string|\Bitrix\Main\DB\SqlExpression $event2)
     * @method bool hasEvent2()
     * @method bool isEvent2Filled()
     * @method bool isEvent2Changed()
     * @method \string remindActualEvent2()
     * @method \string requireEvent2()
     * @method \Bitrix\Vote\EO_Vote resetEvent2()
     * @method \Bitrix\Vote\EO_Vote unsetEvent2()
     * @method \string fillEvent2()
     * @method \string getEvent3()
     * @method \Bitrix\Vote\EO_Vote setEvent3(\string|\Bitrix\Main\DB\SqlExpression $event3)
     * @method bool hasEvent3()
     * @method bool isEvent3Filled()
     * @method bool isEvent3Changed()
     * @method \string remindActualEvent3()
     * @method \string requireEvent3()
     * @method \Bitrix\Vote\EO_Vote resetEvent3()
     * @method \Bitrix\Vote\EO_Vote unsetEvent3()
     * @method \string fillEvent3()
     * @method \int getUniqueType()
     * @method \Bitrix\Vote\EO_Vote setUniqueType(\int|\Bitrix\Main\DB\SqlExpression $uniqueType)
     * @method bool hasUniqueType()
     * @method bool isUniqueTypeFilled()
     * @method bool isUniqueTypeChanged()
     * @method \int remindActualUniqueType()
     * @method \int requireUniqueType()
     * @method \Bitrix\Vote\EO_Vote resetUniqueType()
     * @method \Bitrix\Vote\EO_Vote unsetUniqueType()
     * @method \int fillUniqueType()
     * @method \int getKeepIpSec()
     * @method \Bitrix\Vote\EO_Vote setKeepIpSec(\int|\Bitrix\Main\DB\SqlExpression $keepIpSec)
     * @method bool hasKeepIpSec()
     * @method bool isKeepIpSecFilled()
     * @method bool isKeepIpSecChanged()
     * @method \int remindActualKeepIpSec()
     * @method \int requireKeepIpSec()
     * @method \Bitrix\Vote\EO_Vote resetKeepIpSec()
     * @method \Bitrix\Vote\EO_Vote unsetKeepIpSec()
     * @method \int fillKeepIpSec()
     * @method \int getOptions()
     * @method \Bitrix\Vote\EO_Vote setOptions(\int|\Bitrix\Main\DB\SqlExpression $options)
     * @method bool hasOptions()
     * @method bool isOptionsFilled()
     * @method bool isOptionsChanged()
     * @method \int remindActualOptions()
     * @method \int requireOptions()
     * @method \Bitrix\Vote\EO_Vote resetOptions()
     * @method \Bitrix\Vote\EO_Vote unsetOptions()
     * @method \int fillOptions()
     * @method \string getLamp()
     * @method \string remindActualLamp()
     * @method \string requireLamp()
     * @method bool hasLamp()
     * @method bool isLampFilled()
     * @method \Bitrix\Vote\EO_Vote unsetLamp()
     * @method \string fillLamp()
     * @method \Bitrix\Vote\EO_Channel getChannel()
     * @method \Bitrix\Vote\EO_Channel remindActualChannel()
     * @method \Bitrix\Vote\EO_Channel requireChannel()
     * @method \Bitrix\Vote\EO_Vote setChannel(\Bitrix\Vote\EO_Channel $object)
     * @method \Bitrix\Vote\EO_Vote resetChannel()
     * @method \Bitrix\Vote\EO_Vote unsetChannel()
     * @method bool hasChannel()
     * @method bool isChannelFilled()
     * @method bool isChannelChanged()
     * @method \Bitrix\Vote\EO_Channel fillChannel()
     * @method \Bitrix\Vote\EO_Question getQuestion()
     * @method \Bitrix\Vote\EO_Question remindActualQuestion()
     * @method \Bitrix\Vote\EO_Question requireQuestion()
     * @method \Bitrix\Vote\EO_Vote setQuestion(\Bitrix\Vote\EO_Question $object)
     * @method \Bitrix\Vote\EO_Vote resetQuestion()
     * @method \Bitrix\Vote\EO_Vote unsetQuestion()
     * @method bool hasQuestion()
     * @method bool isQuestionFilled()
     * @method bool isQuestionChanged()
     * @method \Bitrix\Vote\EO_Question fillQuestion()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Vote\EO_Vote setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Vote\EO_Vote resetUser()
     * @method \Bitrix\Vote\EO_Vote unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Vote\EO_Vote set($fieldName, $value)
     * @method \Bitrix\Vote\EO_Vote reset($fieldName)
     * @method \Bitrix\Vote\EO_Vote unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Vote\EO_Vote wakeUp($data)
     */
    class EO_Vote
    {
        /* @var \Bitrix\Vote\VoteTable */
        public static $dataClass = '\\Bitrix\\Vote\\VoteTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Vote_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getChannelIdList()
     * @method \int[] fillChannelId()
     * @method \int[] getCSortList()
     * @method \int[] fillCSort()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \int[] getAnonymityList()
     * @method \int[] fillAnonymity()
     * @method \string[] getNotifyList()
     * @method \string[] fillNotify()
     * @method \int[] getAuthorIdList()
     * @method \int[] fillAuthorId()
     * @method \Bitrix\Main\EO_User[] getAuthorList()
     * @method \Bitrix\Vote\EO_Vote_Collection getAuthorCollection()
     * @method \Bitrix\Main\EO_User_Collection fillAuthor()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \Bitrix\Main\Type\DateTime[] getDateStartList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateStart()
     * @method \Bitrix\Main\Type\DateTime[] getDateEndList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateEnd()
     * @method \string[] getUrlList()
     * @method \string[] fillUrl()
     * @method \int[] getCounterList()
     * @method \int[] fillCounter()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getDescriptionTypeList()
     * @method \string[] fillDescriptionType()
     * @method \int[] getImageIdList()
     * @method \int[] fillImageId()
     * @method \Bitrix\Main\EO_File[] getImageList()
     * @method \Bitrix\Vote\EO_Vote_Collection getImageCollection()
     * @method \Bitrix\Main\EO_File_Collection fillImage()
     * @method \string[] getEvent1List()
     * @method \string[] fillEvent1()
     * @method \string[] getEvent2List()
     * @method \string[] fillEvent2()
     * @method \string[] getEvent3List()
     * @method \string[] fillEvent3()
     * @method \int[] getUniqueTypeList()
     * @method \int[] fillUniqueType()
     * @method \int[] getKeepIpSecList()
     * @method \int[] fillKeepIpSec()
     * @method \int[] getOptionsList()
     * @method \int[] fillOptions()
     * @method \string[] getLampList()
     * @method \string[] fillLamp()
     * @method \Bitrix\Vote\EO_Channel[] getChannelList()
     * @method \Bitrix\Vote\EO_Vote_Collection getChannelCollection()
     * @method \Bitrix\Vote\EO_Channel_Collection fillChannel()
     * @method \Bitrix\Vote\EO_Question[] getQuestionList()
     * @method \Bitrix\Vote\EO_Vote_Collection getQuestionCollection()
     * @method \Bitrix\Vote\EO_Question_Collection fillQuestion()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Vote\EO_Vote_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Vote\EO_Vote $object)
     * @method bool has(\Bitrix\Vote\EO_Vote $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Vote\EO_Vote getByPrimary($primary)
     * @method \Bitrix\Vote\EO_Vote[] getAll()
     * @method bool remove(\Bitrix\Vote\EO_Vote $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Vote\EO_Vote_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Vote\EO_Vote current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Vote_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Vote\VoteTable */
        public static $dataClass = '\\Bitrix\\Vote\\VoteTable';
    }
    /**
     * @method static EO_Vote_Query query()
     * @method static EO_Vote_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Vote_Result getById($id)
     * @method static EO_Vote_Result getList(array $parameters = array())
     * @method static EO_Vote_Entity getEntity()
     * @method static \Bitrix\Vote\EO_Vote createObject($setDefaultValues = true)
     * @method static \Bitrix\Vote\EO_Vote_Collection createCollection()
     * @method static \Bitrix\Vote\EO_Vote wakeUpObject($row)
     * @method static \Bitrix\Vote\EO_Vote_Collection wakeUpCollection($rows)
     */
    class VoteTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Vote_Result exec()
     * @method \Bitrix\Vote\EO_Vote fetchObject()
     * @method \Bitrix\Vote\EO_Vote_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Vote_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Vote\EO_Vote fetchObject()
     * @method \Bitrix\Vote\EO_Vote_Collection fetchCollection()
     */
    class EO_Vote_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Vote\EO_Vote createObject($setDefaultValues = true)
     * @method \Bitrix\Vote\EO_Vote_Collection createCollection()
     * @method \Bitrix\Vote\EO_Vote wakeUpObject($row)
     * @method \Bitrix\Vote\EO_Vote_Collection wakeUpCollection($rows)
     */
    class EO_Vote_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Vote\Vote {
    class Anonymity
    {
        const UNDEFINED = 0;
        const PUBLICLY = 1;
        const ANONYMOUSLY = 2;
        /**
         * Gets types list
         * @return array
         */
        public static function getList()
        {
        }
        /**
         * Gets types list
         * @return array
         */
        public static function getTitledList()
        {
        }
        /**
         * @return array
         */
        public static function getValues()
        {
        }
        /**
         * Returns visibility user voting result for others.
         * @param bool $userValue
         * @param $voteValue
         * @return bool
         */
        public static function isUserVoteVisible(bool $userValue, int $voteValue)
        {
        }
        public static function getTitle()
        {
        }
        public static function validate($value)
        {
        }
    }
    class Option
    {
        const ALLOW_REVOTE = 1;
        const HIDE_RESULT = 2;
        /**
         * Gets types list
         * @return array
         */
        public static function getList()
        {
        }
    }
    class EventLimits
    {
        const BY_SESSION = 1;
        const BY_COOKIE = 2;
        const BY_IP = 4;
        const BY_USER_AUTH = 8;
        const BY_USER_DATE_REGISTER = 16;
        const BY_USER_ID = 32;
        /**
         * Gets types list
         * @return array
         */
        public static function getList()
        {
        }
    }
}
namespace Bitrix\Vote {
    class DBResult extends \CDBResult
    {
        /**
         * @return array|bool|false|mixed|null
         */
        function fetch()
        {
        }
    }
}
namespace Bitrix\Vote\Base {
    class BaseObject
    {
        /** @var int */
        protected $id;
        /** @var  ErrorCollection */
        protected $errorCollection;
        protected static $userGroups = [];
        protected static $objectStorage = [];
        public function __construct($id)
        {
        }
        /**
         * exists only for child class
         * @return void
         */
        public function init()
        {
        }
        /**
         * @return int
         */
        public function getId()
        {
        }
        /**
         * @return Error[]
         */
        public function getErrors()
        {
        }
        /**
         * @inheritdoc
         * Returns an error with the necessary code.
         * @param string|int $code The code of the error.
         * @return Error|null
         */
        public function getErrorByCode($code)
        {
        }
        /**
         * @param int $userId User ID.
         * @return bool
         */
        public function canRead($userId)
        {
        }
        /**
         * @param int $userId User ID.
         * @return bool
         */
        public function canEdit($userId)
        {
        }
        /**
         * @return \CUser
         */
        public function getUser()
        {
        }
        /**
         * @return \CMain
         */
        public function getApplication()
        {
        }
        /**
         * @param integer $userId User ID.
         * @return array
         */
        public static function loadUserGroups($userId)
        {
        }
        /**
         * @param integer $id Entity ID.
         * @param bool $shouldBeNewIfIdIsNull
         * @return BaseObject
         */
        public static function loadFromId($id, $shouldBeNewIfIdIsNull = false)
        {
        }
        /**
         * Debug function
         */
        public static function shutdown()
        {
        }
    }
}
namespace Bitrix\Vote {
    class Event extends \Bitrix\Vote\Base\BaseObject
    {
        private $vote;
        /**
         * EVENT_FIELD_BALLOT_TEMPLATE - is a template to catch voting
         * [#ID#][BALLOT][#QUESTION_ID#][#ANSWER_ID#][MESSAGE] - template for text
         */
        const EVENT_FIELD_NAME = "bx_vote_event";
        //
        const EVENT_FIELD_BALLOT_TEMPLATE = self::EVENT_FIELD_NAME . "[#ID#][BALLOT][#QUESTION_ID#]";
        // this is template for voting
        const EVENT_FIELD_MESSAGE_TEMPLATE = self::EVENT_FIELD_NAME . "[#ID#][MESSAGE][#QUESTION_ID#][#ANSWER_ID#]";
        // this is template for voting
        const EVENT_FIELD_EXTRAS_TEMPLATE = self::EVENT_FIELD_NAME . "[#ID#][EXTRAS][#ENTITY_ID#]";
        /** @var  ErrorCollection */
        protected $errorCollection;
        /**
         * Event constructor.
         * @param Vote $vote
         */
        function __construct(\Bitrix\Vote\Vote $vote)
        {
        }
        /**
         * @param int $voteId Vote Id.
         * @return void
         */
        public static function calculateStatistic($voteId)
        {
        }
        /**
         * @param int $voteId Vote Id.
         * @return void
         */
        public static function resetStatistic($voteId)
        {
        }
        /**
         * @param int $eventId Event ID.
         * @return boolean
         */
        public static function deleteEvent($eventId)
        {
        }
        /**
         * @param int $eventId Event ID.
         * @param string $valid Validation ("Y" || "N").
         * @return boolean
         */
        public static function setValid($eventId, $valid)
        {
        }
        public static function getFieldName($id, $questionId)
        {
        }
        public static function getMessageFieldName($id, $questionId, $answerId)
        {
        }
        public static function getExtrasFieldName($id, $name)
        {
        }
        public static function getDataFromRequest($id, array $request)
        {
        }
        /**
         * @param $data
         * @return array
         */
        public function check(array $ballot)
        {
        }
        public function add(array $eventFields, array $ballot, $setCounter = true)
        {
        }
    }
}
namespace Bitrix\Vote\Uf {
    final class VoteUserType
    {
        const TYPE_NEW_ATTACH = 'NewAttach';
        const TYPE_SAVED_ATTACH = 'SavedAttach';
        const NEW_VOTE_PREFIX = 'n';
        /**
         * @return array
         */
        public static function getUserTypeDescription()
        {
        }
        /**
         * @param $userField
         * @return string
         */
        public static function getDBColumnType($userField)
        {
        }
        /**
        * @param string $entityId BLOG_POST.
        * @param integer $ID Blog ID.
        * @param array $fields Array (
        			[ID] => 29,
        			[URL] => "",
        			[BLOG] => "",
        			...).
        * @return void
        */
        public static function onBeforePostUserFieldUpdate($entityId, $ID, $fields)
        {
        }
        /**
        * Prepares data("SETTINGS") for serialization in functions CUserTypeEntity::Add & CUserTypeEntity::Update
        * @param array $userField Array (
        			[ID] => 29
        			[ENTITY_ID] => BLOG_POST
        			[FIELD_NAME] => UF_BLOG_POST_VOTE
        			[USER_TYPE_ID] => vote
        			[XML_ID] => UF_BLOG_POST_VOTE
        			[SORT] => 100
        			[MULTIPLE] => N
        			[MANDATORY] => N
        			[SHOW_FILTER] => N
        			[SHOW_IN_LIST] => Y
        			[EDIT_IN_LIST] => Y
        			[IS_SEARCHABLE] => N
        			[SETTINGS] => Array
        				(
        					[CHANNEL_ID] => 1
        					[UNIQUE] => 40
        					[UNIQUE_IP_DELAY] => Array
        						(
        							[DELAY] =>
        							[DELAY_TYPE] => S
        						)
        
        					[NOTIFY] => I
        				)
        
        			[EDIT_FORM_LABEL] => UF_BLOG_POST_VOTE
        			[LIST_COLUMN_LABEL] =>
        			[LIST_FILTER_LABEL] =>
        			[ERROR_MESSAGE] =>
        			[HELP_MESSAGE] =>
        			[USER_TYPE] => Array
        				(
        					[USER_TYPE_ID] => vote
        					[CLASS_NAME] => Bitrix\Vote\Uf\VoteUserType
        					[DESCRIPTION] => "Vote"
        					[BASE_TYPE] => int
        				)
        			[VALUE] => 27
        			[ENTITY_VALUE_ID] => 247)).
        * @return array
        */
        public static function prepareSettings($userField)
        {
        }
        /**
         * Checks CHANNEL or creates add vote group.
         * @param array &$params Settings array.
         * @return boolean
         */
        public static function checkSettings(&$params)
        {
        }
        /**
         * Shows data form in admin part when you edit or add usertype.
         * @param bool $userField UserField array.
         * @param string $htmlControl HtmlControl.
         * @param bool $varsFromForm Get params from $_REQUEST.
         * @return string
         */
        public static function getSettingsHTML($userField = false, $htmlControl, $varsFromForm)
        {
        }
        /**
         * @param array $userField UserField array.
         * @param array $value Value.
         * @return string
         */
        public static function getEditFormHTML($userField, $value, $bVarsFromForm = false)
        {
        }
        /**
         * @param array $userField UserField array.
         * @param mixed $value Value for Vote.
         * @return string
         */
        public static function getPublicViewHTML($userField, $value)
        {
        }
        /**
         * @return string
         */
        public static function getFilterHTML()
        {
        }
        /**
         * @param array $userField UserField array.
         * @param array $htmlControl HTML Control.
         * @return string
         */
        public static function getAdminListViewHTML($userField, $htmlControl)
        {
        }
        /**
         * @param array $userField UserField array.
         * @param array $htmlControl HTML Control.
         * @return string
         */
        public static function getAdminListEditHTML($userField, $htmlControl)
        {
        }
        /**
         * @param array $userField UserField array.
         * @param array $htmlControl HTML Control.
         * @return string
         */
        public static function getAdminListEditHTMLMulty($userField, $htmlControl)
        {
        }
        /**
         * Checks fields of vote date before saving.
         * @param array $userField UserFiled array.
         * @param mixed $value Always singular value.
         * @param bool $userId False means current user id.
         * @return array
         */
        public static function checkFields($userField, $value, $userId = false)
        {
        }
        /**
         * @param array $userField UserFiled array.
         * @return string
         */
        public static function onSearchIndex($userField)
        {
        }
        /**
         * Called in all cases Mutiple=Y and Multiple=N
         * @param array $userField UserFiled array.
         * @param string $value Number of attach or n0, n1...
         * @param int $userId User ID.
         * @return int|string
         */
        public static function onBeforeSave($userField, $value, $userId = false)
        {
        }
        /**
         * @param array $userField
         * @param int $newEntityId
         * @param $attachedId
         * @param object $implementer
         * @param bool $userId
         * @return array|int|string
         * @throws \Bitrix\Main\ObjectException
         */
        public static function onBeforeCopy(array $userField, int $newEntityId, $attachedId, $implementer, $userId = false)
        {
        }
        /**
         * @param array $userField UserFiled array.
         * @param string $value Number of attach or n0, n1...
         * @return void
         */
        public static function onDelete($userField, $value)
        {
        }
        /**
         * Detect: this is already exists attachedObject or new object.
         * @param mixed $value Integer if it ia an attach or n1, n2 in case unsaved attach.
         * @return array
         */
        public static function detectType($value)
        {
        }
        private static function getOrCheckUserId($userId = false)
        {
        }
    }
    final class Manager
    {
        /** @var  ErrorCollection */
        protected $errorCollection;
        protected $params;
        protected $additionalConnectorList = null;
        /** @var Attach[]  */
        protected $loadedAttachedObjects = array();
        protected static $instance = array();
        private $int = 0;
        /**
         * Constructor of UserFieldManager.
         * @param array $params
         */
        public function __construct(array $params)
        {
        }
        /**
        * Returns instance of Manager.
        * @param array $params Array (
        			[ID] => 29
        			[ENTITY_ID] => BLOG_POST
        			[FIELD_NAME] => UF_BLOG_POST_VOTE
        			[USER_TYPE_ID] => vote
        			[XML_ID] => UF_BLOG_POST_VOTE
        			[SORT] => 100
        			[MULTIPLE] => N
        			[MANDATORY] => N
        			[SHOW_FILTER] => N
        			[SHOW_IN_LIST] => Y
        			[EDIT_IN_LIST] => Y
        			[IS_SEARCHABLE] => N
        			[SETTINGS] => Array
        				(
        					[CHANNEL_ID] => 1
        					[UNIQUE] => 8
        					[UNIQUE_IP_DELAY] => Array
        						(
        							[DELAY] =>
        							[DELAY_TYPE] => S
        						)
        
        					[NOTIFY] => I
        				)
        
        			[EDIT_FORM_LABEL] => UF_BLOG_POST_VOTE
        			[LIST_COLUMN_LABEL] =>
        			[LIST_FILTER_LABEL] =>
        			[ERROR_MESSAGE] =>
        			[HELP_MESSAGE] =>
        			[USER_TYPE] => Array
        				(
        					[USER_TYPE_ID] => vote
        					[CLASS_NAME] => Bitrix\Vote\Uf\VoteUserType
        					[DESCRIPTION] => "Vote"
        					[BASE_TYPE] => int
        				)
        
        			[VALUE] => 27
        			[ENTITY_VALUE_ID] => 247)).
        * @return Manager
        */
        public static function getInstance(array $params)
        {
        }
        /**
         * Returns attached object by id.
         * @param int $id Id of attached object.
         * @return Attach
         */
        public function loadFromAttachId($id)
        {
        }
        /**
         * Returns vote object by id.
         * @param int $id Id of vote.
         * @return Attach
         */
        public function loadFromVoteId($id)
        {
        }
        /**
         * @return \Bitrix\Vote\Attach
         */
        public function loadEmptyObject()
        {
        }
        /**
         * @return Attach[]
         */
        public function loadFromEntity()
        {
        }
        /**
         * Checks attitude attached object to entity.
         * @param Attach $attachedObject Attached object.
         * @param string $entityType Entity type (ex. blog_post).
         * @param int $entityId Id of entity.
         * @return bool
         */
        public function belongsToEntity(\Bitrix\Vote\Attach $attachedObject, $entityType, $entityId)
        {
        }
        /**
         * Gets data which describes specific connector by entity type.
         * @param string $entityType Entity type (ex. sonet_comment).
         * @return array|null Array with two elements: connector class and module.
         */
        public function getConnectorDataByEntityType($entityType)
        {
        }
        /**
         * Returns full list of available connectors for attached objects.
         *
         * @return array
         */
        public function getConnectors()
        {
        }
        private function getDefaultConnectors()
        {
        }
        private function getAdditionalConnectors()
        {
        }
        private function getAdditionalConnector($entityType)
        {
        }
        private function buildAdditionalConnectorList()
        {
        }
        /**
         * Shows component to edit vote.
         * @param array &$params Component parameters.
         * @param array &$result Component results.
         * @param null $component Component.
         * @return void
         */
        public function showEdit(&$params, &$result, $component = null)
        {
        }
        /**
         * Shows component to participate in vote
         * @param array &$params Component parameters.
         * @param array &$result Component results.
         * @param null $component Component.
         * @return void
         */
        public function showView(&$params, &$result, $component = null)
        {
        }
        /**
         * Getting array of errors.
         * @return array
         */
        public function getErrors()
        {
        }
    }
}
namespace Bitrix\Vote {
    class Vote extends \Bitrix\Vote\Base\BaseObject implements \ArrayAccess
    {
        protected $vote = array();
        protected $questions = array();
        protected $channel = null;
        /** @var Result[] */
        protected static $canVoteStorage = [];
        public static $storage = array();
        public static $statStorage = array();
        public function __construct($id)
        {
        }
        public function init()
        {
        }
        /**
         * @param integer $id Vote ID.
         * @return array|null
         */
        public static function getData($id)
        {
        }
        /**
        * @param int $voteId Vote ID.
        * @param array &$data Array(
        			"CHANNEL_ID" => 5,
        			"AUTHOR_ID" => 1,
        			"DATE_START" => ...,
        			"DATE_END" => ...,
        			"TITLE" => "ABC...",
        			"ACTIVE" => "Y",
        			"URL" => "http://",
        			"NOTIFY" => "Y" || "N" || "I",
        			"UNIQUE_TYPE" => security context,
        			"DELAY" => 150, //seconds
        			"QUESTIONS" => array(
        				1 => array(
        					"ID" => 0,
        					"QUESTION" => "Question text",
        					"QUESTION_TYPE" => "text"||"html",
        					"ANSWERS" => array(
        						array(
        							"ID" => 0,
        							"MESSAGE" => "Answer text",
        							"MESSAGE_TYPE" => "text"||"html",
        							"FIELD_TYPE" => 0||1||2||3||4||
        						)
        					)
        				)
        			);.
        * @return bool
        * @throws ArgumentException
        */
        public static function checkData(array &$data, $voteId = 0)
        {
        }
        /**
         * @param integer $voteId Vote ID, can be 0.
         * @param array $data Look at checkData.
         * @return int
         * @throws ArgumentException
         */
        public static function saveData($voteId, array $data)
        {
        }
        /**
         * Sends notifications to users.
         * @param array $event Array("ID" => 1, "VOTE_USER_ID" => 45);.
         * @param array $vote Array(ID => 1, QUESTIONS => array("ID" => 2, ANSWERS => array()));.
         * @param string $type Can be "im" || "mail".
         * @return bool
         */
        public function sendVotingMessage(array $event, $vote, $type = "im")
        {
        }
        /**
         * Complete vote array by data from DB.
         * @return void
         */
        public function fillStatistic()
        {
        }
        public function getStatistic()
        {
        }
        /**
         * @return array|null
         */
        public function getChannel()
        {
        }
        /**
         * @param string $key The name if characteristic that you want to know.
         * @return mixed
         */
        public function get($key)
        {
        }
        /**
         * Returns question array.
         * @param int $id
         * @return array|null
         */
        public function getQuestion(int $id)
        {
        }
        /**
         * @return array
         */
        public function getQuestions()
        {
        }
        /**
         * Prolongs the time of voting for a year
         * @return void
         */
        public function resume()
        {
        }
        /**
         * Sets the finish time for voting by current moment
         * @return void
         */
        public function stop()
        {
        }
        /**
         * Deletes Vote by its id.
         * @param integer $id Vote ID.
         * @return bool
         */
        public static function delete($id)
        {
        }
        /**
         * Clears cache
         * @return void
         */
        public function clearCache()
        {
        }
        /**
         * Clears vote events cache
         * @return void
         */
        private function clearVotingCache()
        {
        }
        /**
         * Exports data of voting into excel file
         * @param string $type html|xls|csv
         * @return void
         */
        public function exportExcel($type = "html")
        {
        }
        private function getDataFromRequest(array $request)
        {
        }
        /**
         * Voting for vote  from current user $USER.
         * @param array $request Old variant Array("
         * 							vote_checkbox_".$questionId => array(1,2,3,...),
         * 							"vote_multiselect_".$questionId => array(1,2,3,...),
         * 							"vote_dropdown_".$questionId => 12 || "12",
         * 							"vote_radio_".$questionId => 12 || "12",
         * 							"vote_field_".$answerId => "12").
         * 	New variant is
         * [
         *  EXTRA => [HIDDEN => N],
         *  871 => [345 => (Does not matter || text from field)],
         *  QUESTION_ID => [ANSWER_ID => (Y || text from field)],
         * ]
         * @param array $params
         * @return bool
         * @throws AccessDeniedException
         */
        public function voteFor(array $request, $params = [])
        {
        }
        public function registerEvent(array $data, array $params, \Bitrix\Vote\User $user)
        {
        }
        /**
         * Checks if current user voted for this vote.
         * @param int|User $userId User ID.
         * @return bool|int
         */
        public function isVotedFor($userId)
        {
        }
        /**
         * Checks rights to read current attached object.
         * @param int $userId Id of user.
         * @return bool
         */
        public function canRead($userId)
        {
        }
        /**
         * Checks rights to update current attached object.
         * @param int $userId Id of user.
         * @return bool
         */
        public function canEdit($userId)
        {
        }
        public function canParticipate($userId)
        {
        }
        /**
         * @param \Bitrix\Vote\User|integer $user
         * @return \Bitrix\Main\Result
         * @throws ArgumentException
         * @throws \Bitrix\Main\ObjectException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function canVote($user)
        {
        }
        public function canRevote($user)
        {
        }
        public function canReadResult($user)
        {
        }
        /**
         * @param string $offset Key for vote or attach data array.
         * @return bool
         */
        public function offsetExists($offset)
        {
        }
        /**
         * @param string $offset Key for vote or attach data array.
         * @return array|mixed|null
         */
        public function offsetGet($offset)
        {
        }
        /**
         * Is not supported.
         * @param string $offset Key for vote or attach data array.
         * @param mixed $value Value for vote or attach data array.
         * @return void
         * @throws \Bitrix\Main\NotSupportedException
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * Is not supported.
         * @param string $offset Key for vote or attach data array.
         * @return void
         * @throws \Bitrix\Main\NotSupportedException
         */
        public function offsetUnset($offset)
        {
        }
    }
    class Question
    {
        public static $storage = array();
    }
}
namespace Bitrix\Vote\Base {
    abstract class Controller
    {
        const EVENT_ON_BEFORE_ACTION = 'onBeforeAction';
        const ERROR_REQUIRED_PARAMETER = 'VOTE_CONTROLLER_22001';
        const ERROR_UNKNOWN_ACTION = 'VOTE_CONTROLLER_22002';
        const STATUS_SUCCESS = 'success';
        const STATUS_DENIED = 'denied';
        const STATUS_ERROR = 'error';
        const STATUS_NEED_AUTH = 'need_auth';
        /** @var string */
        protected $action;
        /** @var  array */
        protected $actionDescription;
        /** @var  string */
        protected $realActionName;
        /** @var  ErrorCollection */
        protected $errorCollection;
        /** @var  \Bitrix\Main\HttpRequest */
        protected $request;
        private $collectDebugInfo = 1;
        /**
         * Constructor Controller.
         */
        public function __construct()
        {
        }
        /**
         * Initializes controller.
         * This method is invoked at the end of constructor.
         * @return void
         */
        protected function init()
        {
        }
        /**
         * Terminates controller and application.
         * This method replaces "die()" or "exit()" and ensures life cycle of application.
         * @return void
         */
        protected function end()
        {
        }
        /**
         * Executes controller by specific action.
         * This method contains all steps of life cycle controller.
         * @return void
         */
        public function exec()
        {
        }
        /**
         * Collects debug info by Diag.
         * @return void
         */
        protected function collectDebugInfo()
        {
        }
        /**
         * Logs debug info by Diag.
         * @throws \Bitrix\Main\SystemException
         * @return void
         */
        protected function logDebugInfo()
        {
        }
        /**
         * Gets current user.
         * @return array|bool|\CAllUser|\CUser
         */
        protected function getUser()
        {
        }
        /**
         * Sends JSON response and terminates controller.
         * @param mixed $response
         * @param null|array $params
         * @return void
         */
        protected function sendJsonResponse($response, $params = null)
        {
        }
        /**
         * Sends JSON response with status "error" and with errors and terminates controller.
         * @return void
         */
        protected function sendJsonErrorResponse()
        {
        }
        /**
         * Sends JSON response with status "denied" and terminates controller.
         * @param string $message Message.
         * @return void
         */
        protected function sendJsonAccessDeniedResponse($message = '')
        {
        }
        /**
         * Sends JSON response with status "success" and mixed data, and terminates controller.
         * @param array $response Data to response.
         * @return void
         */
        protected function sendJsonSuccessResponse(array $response = array())
        {
        }
        /**
         * Sends response and terminates controller.
         * Automatically restart buffer.
         * @param mixed $response Mixed data to response.
         * @return void
         */
        protected function sendResponse($response)
        {
        }
        /**
         * Getting array of errors.
         * @return Error[]
         */
        public function getErrors()
        {
        }
        /**
         * Getting once error with the necessary code.
         * @param string $code Code of error.
         * @return Error|null
         */
        public function getErrorByCode($code)
        {
        }
        /**
         * Resolves action and description of action, which need to run.
         * @see listActions().
         * @return $this
         */
        protected function resolveAction()
        {
        }
        private function sanitizeActionName($actionName)
        {
        }
        /**
         * Normalizes action description.
         *
         * Default description:
         * array(
         *			'method' => array('GET'), //allowed methods to run action.
         *			'name' => $action, //action which will run
         *			'need_auth' => true,
         *			'redirect_on_auth' => true,
         *	)
         *
         * @param string $action Action name.
         * @param array|string $description Action description.
         * @return array
         */
        protected function normalizeActionDescription($action, $description)
        {
        }
        /**
         * Checks action by settings in description.
         * This method may terminate controller and application.
         * @return boolean
         */
        protected function checkAction()
        {
        }
        /**
         * Lists all actions by controller. This listing may contains description in short-style.
         *
         * If you set
         * array(
         *  'showFoo' => array(
         *		'method' => array('GET', 'POST'), //allowed GET and POST methods to run action.
         *		'name' => 'showFoo', //execute method processActionShowFoo
         *		'need_auth' => true
         *  )
         * )
         *
         * @return array
         */
        protected function listActions()
        {
        }
        /**
         * Gets current action.
         * @return string
         */
        public function getAction()
        {
        }
        /**
         * Gets description of action.
         * @return array
         */
        public function getActionDescription()
        {
        }
        /**
         * Sets action and description.
         * @param string $action Action name.
         * @param array  $description Action description.
         * @return $this
         */
        public function setAction($action, array $description)
        {
        }
        /**
         * Sets action name.
         * @param string $action Action name.
         * @return $this
         */
        public function setActionName($action)
        {
        }
        /**
         * Prepare params before process action.
         * @return bool
         */
        protected function prepareParams()
        {
        }
        /**
         * Common operations before process action.
         * @param string $actionName Action name which will be run.
         * @return bool If method will return false, then action will not execute.
         */
        protected function processBeforeAction($actionName)
        {
        }
        /**
         * Runs action.
         * Will be run method with name processAction{$actionName}
         * @return mixed
         */
        protected function runAction()
        {
        }
        /**
         * Get application instance.
         * @return Application|\Bitrix\Main\HttpApplication|\CAllMain|\CMain
         */
        protected function getApplication()
        {
        }
        /**
         * Checks required parameters.
         * Fills error collection if required parameter is missed.
         * @param array $inputParams Input data.
         * @param array $required Required parameters.
         * @return bool
         */
        protected function checkRequiredInputParams(array $inputParams, array $required)
        {
        }
        /**
         * Checks required parameters in $_POST.
         * Fills error collection if required parameter is missed.
         * @param array $required Required parameters.
         * @return bool
         */
        protected function checkRequiredPostParams(array $required)
        {
        }
        /**
         * Checks required parameters in $_GET.
         * Fills error collection if required parameter is missed.
         * @param array $required Required parameters.
         * @return bool
         */
        protected function checkRequiredGetParams(array $required)
        {
        }
        /**
         * Checks required parameters in $_FILES.
         * Fills error collection if required parameter is missed.
         * @param array $required Required parameters.
         * @return bool
         */
        protected function checkRequiredFilesParams(array $required)
        {
        }
        /**
         * Returns whether this is an AJAX (XMLHttpRequest) request.
         * @return boolean
         */
        protected function isAjaxRequest()
        {
        }
    }
}
namespace Bitrix\Vote\Attachment {
    class Controller extends \Bitrix\Vote\Base\Controller
    {
        /**
         * @var $attach \Bitrix\Vote\Attach
         */
        var $attach;
        protected function listActions()
        {
        }
        protected function init()
        {
        }
        protected function processActionVote()
        {
        }
        protected function processActionGetBallot()
        {
        }
        protected function processActionStop()
        {
        }
        protected function processActionResume()
        {
        }
        /**
         * Returns array of users voted for this poll.
         * @param array $cacheParams Array(voteId => , answerId => ).
         * @param array $pageParams Array(iNumPage => , nPageSize => , bShowAll => ).
         * @return array
         */
        protected static function getVoted(array $cacheParams, array $pageParams)
        {
        }
        protected function processActionGetVoted()
        {
        }
        protected function processActionGetMobileVoted()
        {
        }
        /**
         * Exports results in xls.
         * @return void
         * @throws AccessDeniedException
         */
        protected function processActionExportXls()
        {
        }
        /**
         * @param integer $voteId Vote ID.
         * @return void
         */
        public function clearCache($voteId)
        {
        }
    }
    interface Storable
    {
        /**
         * @param Channel $channel Group of votes.
         * @return $this
         */
        public function setStorage(\Bitrix\Vote\Channel $channel);
        /**
         * @return Channel|null
         */
        public function getStorage();
        /**
         * @return boolean
         */
        public function isStorable();
    }
    abstract class Connector
    {
        protected $entityId;
        public function __construct($entityId)
        {
        }
        /**
         * @param \Bitrix\Vote\Attach $attachedObject Attach.
         * @return Connector
         * @throws ObjectNotFoundException
         * @throws SystemException
         */
        public static final function buildFromAttachedObject(\Bitrix\Vote\Attach $attachedObject)
        {
        }
        /**
         * @return string
         */
        public static function className()
        {
        }
        /**
         * @todo finis this method
         * @return array
         */
        public function getDataToShow()
        {
        }
        /**
         * @param integer $userId User ID.
         * @return bool
         */
        public function canRead($userId)
        {
        }
        /**
         * @param integer $userId User ID.
         * @return bool
         */
        public function canEdit($userId)
        {
        }
        /**
         * @param array $data Data array.
         * @return array
         */
        public function checkFields(&$data)
        {
        }
        /**
         * @return Application|\Bitrix\Main\HttpApplication|\CAllMain|\CMain
         */
        protected function getApplication()
        {
        }
        /**
         * @return array|bool|\CAllUser|\CUser
         */
        protected function getUser()
        {
        }
    }
    final class ForumMessageConnector extends \Bitrix\Vote\Attachment\Connector
    {
        protected static $messages = array();
        protected static $topics = array();
        private $canRead = null;
        /**
         * @param integer $userId User ID.
         * @return bool
         */
        public function canRead($userId)
        {
        }
        /**
         * @param integer $userId User ID.
         * @return bool
         */
        public function canEdit($userId)
        {
        }
    }
    final class Manager
    {
        /**
         * @param int $id Attachment ID.
         * @return Attach
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function loadFromAttachId($id)
        {
        }
        /**
         * @param array $attach Data array from DB.
         * @param $id Vote ID.
         * @return array|Attach
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function loadFromVoteId(array $attach, $id)
        {
        }
        /**
        * @param array $attach Data array from DB.
        * @param array $voteParams Array(
        	"TITLE" => "ABC...",
        	"QUESTIONS" => array(
        	1 => array(
        	"ID" => 0,
        	"QUESTION" => "Question text",
        	"QUESTION_TYPE" => "text"||"html",
        	"ANSWERS" => array(
        	array(
        	"ID" => 0,
        	"MESSAGE" => "Answer text",
        	"MESSAGE_TYPE" => "text"||"html",
        	"FIELD_TYPE" => 0||1||2||3||4||
        	)
        	)
        	);.
        * @return Attach
        */
        public static function loadEmptyAttach(array $attach, array $voteParams)
        {
        }
        /**
         * @param array $filter Array in terms ORM.
         * @return Attach[]
         * @throws ArgumentNullException
         * @throws ArgumentTypeException
         */
        public static function loadFromEntity(array $filter)
        {
        }
        /**
         * Deletes attach by Filter.
         * @param array $filter Array in terms of ORM.
         * @return void
         */
        public static function detachByFilter(array $filter)
        {
        }
    }
    final class BlogPostConnector extends \Bitrix\Vote\Attachment\Connector
    {
        private $canRead = null;
        private $canEdit = null;
        private static $permissions = array();
        private static $posts = array();
        private static function getPostData($entityId)
        {
        }
        private function getPermission($userId)
        {
        }
        /**
         * @param array $data
         * @return array
         */
        public function checkFields(&$data)
        {
        }
        /**
         * @param integer $userId User ID.
         * @return bool
         */
        public function canRead($userId)
        {
        }
        /**
         * @param integer $userId User ID.
         * @return bool
         */
        public function canEdit($userId)
        {
        }
    }
    class DefaultConnector extends \Bitrix\Vote\Attachment\Connector implements \Bitrix\Vote\Attachment\Storable
    {
        private $storage = null;
        private $canRead = array();
        private $canEdit = array();
        /**
         * @param integer $userId UserID.
         * @return bool
         */
        public function canRead($userId)
        {
        }
        /**
         * @param integer $userId UserID.
         * @return bool
         */
        public function canEdit($userId)
        {
        }
        /**
         * @param Channel $channel Group of votes.
         * @return $this
         */
        public function setStorage(\Bitrix\Vote\Channel $channel)
        {
        }
        /**
         * @return Channel|null
         */
        public function getStorage()
        {
        }
        /**
         * @return bool
         */
        public function isStorable()
        {
        }
    }
}
namespace Bitrix\Vote {
    class QuestionTypes
    {
        const RADIO = 0;
        const CHECKBOX = 1;
        const DROPDOWN = 2;
        const MULTISELECT = 3;
        const COMPATIBILITY = 99999;
        /**
         * Gets types brief list
         * @return array
         */
        public static function getValues()
        {
        }
        /**
         * Gets types list
         * @return array
         */
        public static function getList()
        {
        }
        /**
         * Gets types list
         * @return array
         */
        public static function getFullList()
        {
        }
        /**
         * Returns array of types
         * @return array
         */
        public static function getTitledList()
        {
        }
        /**
         * Returns type title
         * @param (int|string) $id Field type like (0 - radio).
         * @return string
         */
        public static function getTitleById($id)
        {
        }
    }
    class User extends \Bitrix\Vote\Base\BaseObject
    {
        const SYSTEM_USER_ID = 0;
        static $usersIds = [];
        static $instance = null;
        /**
         * @return void
         * @throws ArgumentException
         */
        public function init()
        {
        }
        /**
         * @return int
         */
        public function getCookieId()
        {
        }
        /**
         * @return int
         */
        public function getVotedUserId()
        {
        }
        /**
         * @return void
         */
        public function setCookieId($id)
        {
        }
        /**
         * @param null $incrementCount If true - increment, in false - decrement, null - no changes.
         * @return int
         */
        public function setVotedUserId($incrementCount = null)
        {
        }
        /**
         * @param integer $voteId Vote ID.
         * @return bool|int
         */
        public function isVotedFor($voteId)
        {
        }
        /**
         * @param integer $voteId Vote ID.
         * @param integer $userId User ID.
         * @return bool|int
         */
        public static function isUserVotedFor($voteId, $userId)
        {
        }
        /**
         * @return User
         */
        public static function getCurrent()
        {
        }
        public static function onUserLogin()
        {
        }
    }
    class Channel extends \Bitrix\Vote\Base\BaseObject implements \ArrayAccess
    {
        static $channels = array();
        private $data = array();
        /**
         * Channel constructor.
         * @param $id
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function __construct($id)
        {
        }
        /**
         * @throws \Bitrix\Main\ObjectNotFoundException
         */
        public function init()
        {
        }
        /**
         * @param array $parameters Array of query parameters.
         * @return \Bitrix\Main\DB\Result|\CDBResult
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getList(array $parameters)
        {
        }
        /**
         * @param integer $id Channel ID.
         * @return \Bitrix\Main\DB\Result|\CDBResult
         */
        public static function getById($id)
        {
        }
        /**
         * @param integer $userId User ID.
         * @return boolean
         */
        public function canRead($userId)
        {
        }
        /**
         * @param integer $userId User ID.
         * @return boolean
         */
        public function canEdit($userId)
        {
        }
        /**
         * @param integer $userId User ID.
         * @return boolean
         */
        public function canEditVote($userId)
        {
        }
        /**
         * @param string $key Characteristic that you want to know.
         * @return mixed|null
         */
        public function get($key)
        {
        }
        /**
         * Whether a offset exists.
         * @param string $offset An offset to check for.
         * @return mixed|null
         */
        public function offsetExists($offset)
        {
        }
        /**
         * @param string $offset The offset to retrieve.
         * @return mixed|null
         */
        public function offsetGet($offset)
        {
        }
        /**
         * @param mixed $offset The offset to assign the value to.
         * @param mixed $value The value to set.
         * @return void
         * @throws \Bitrix\Main\NotSupportedException
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * @param mixed $offset The offset to unset.
         * @return void
         */
        public function offsetUnset($offset)
        {
        }
    }
    class Attach extends \Bitrix\Vote\Base\BaseObject implements \ArrayAccess
    {
        /** @var array */
        protected $attach;
        /** @var Vote */
        protected $vote;
        /** @var array */
        protected $connector;
        /** @var Channel */
        protected $channel;
        public static $storage = array();
        protected static $loaded = array("attachIds" => array(), "voteIds" => array(), "entities" => array());
        /**
         * @throws ArgumentException
         * @throws ArgumentNullException
         */
        function init()
        {
        }
        /**
         * @param int|Vote $vote
         */
        public function setVote($vote)
        {
        }
        /**
         * @param integer $id
         * @throws ArgumentNullException
         */
        public function setStorage($id)
        {
        }
        /**
         * Return array where first key is attach array, second - vote array
         * @param integer $id Attach ID.
         * @return array|null
         */
        public static function getData($id)
        {
        }
        /**
         * Returns array of attaches linked to special entity
         * @param array $id Array("ENTITY_TYPE" => "blog", "ENTITY_ID" => 89);.
         * @return mixed
         */
        public static function getDataByEntity(array $id)
        {
        }
        /**
         * Checks rights to read current attached object.
         * @param int $userId Id of user.
         * @return bool
         * @throws SystemException
         */
        public function canRead($userId)
        {
        }
        /**
         * Checks rights for voting.
         * @param int $userId Id of user.
         * @return bool
         */
        public function canParticipate($userId)
        {
        }
        public function canVote($userId)
        {
        }
        public function canRevote($userId)
        {
        }
        public function canReadResult($userId)
        {
        }
        /**
         * Checks rights to update current attached object.
         * @param int $userId Id of user.
         * @return bool
         * @throws SystemException
         */
        public function canEdit($userId)
        {
        }
        /**
         * Returns connector instance for attached object.
         * @return Connector|null
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\SystemException
         */
        public function getConnector()
        {
        }
        /**
         * @return Channel
         */
        public function getStorage()
        {
        }
        /**
         * Returns attachment id.
         * @return int|null
         */
        public function getAttachId()
        {
        }
        /**
         * Returns vote id.
         * @return int|null
         */
        public function getVoteId()
        {
        }
        /**
         * Returns module id.
         * @return string
         */
        public function getModuleId()
        {
        }
        /**
         * Returns entity type.
         * @return string
         */
        public function getEntityType()
        {
        }
        /**
         * Returns entity id.
         * @return string
         */
        public function getEntityId()
        {
        }
        /**
         * @return void
         */
        public function fillStatistic()
        {
        }
        /**
         * Deletes attach and vote in some cases.
         * @return boolean;
         */
        public function delete()
        {
        }
        /**
        * Checks array for correct data/
        * @param array &$data Array(
        	"TITLE" => "ABC...",
        	"QUESTIONS" => array(
        	1 => array(
        	"ID" => 0,
        	"QUESTION" => "Question text",
        	"QUESTION_TYPE" => "text"||"html",
        	"ANSWERS" => array(
        	array(
        	"ID" => 0,
        	"MESSAGE" => "Answer text",
        	"MESSAGE_TYPE" => "text"||"html",
        	"FIELD_TYPE" => 0||1||2||3||4||
        	)
        	)
        	);.
        * @return void
        * @throws AccessDeniedException
        */
        public function checkData(array &$data)
        {
        }
        /**
        * Update vote data.
        * @param array $data Array(
        	"TITLE" => "ABC...",
        	"QUESTIONS" => array(
        	1 => array(
        	"ID" => 0,
        	"QUESTION" => "Question text",
        	"QUESTION_TYPE" => "text"||"html",
        	"ANSWERS" => array(
        	array(
        	"ID" => 0,
        	"MESSAGE" => "Answer text",
        	"MESSAGE_TYPE" => "text"||"html",
        	"FIELD_TYPE" => 0||1||2||3||4||
        	)
        	)
        	);.
        * @param int $createdBy User ID.
        * @return bool
        */
        public function save($data, $createdBy = 0)
        {
        }
        /**
         * Voting for vote  from current user $USER.
         * @param array $request Array("
         * 							vote_checkbox_".$questionId => array(1,2,3,...),
         * 							"vote_multiselect_".$questionId => array(1,2,3,...),
         * 							"vote_dropdown_".$questionId => 12 || "12",
         * 							"vote_radio_".$questionId => 12 || "12",
         * 							"vote_field_".$answerId => "12").
         * @return bool
         * @throws InvalidOperationException
         */
        public function voteFor(array $request)
        {
        }
        /**
         * Exports data of voting into excel file
         * @return void
         * @throws InvalidOperationException
         */
        public function exportExcel()
        {
        }
        /**
         * Checks if current user voted for this vote.
         * @param int $userId User ID.
         * @return bool|int
         */
        public function isVotedFor($userId)
        {
        }
        /**
         * Prolongs voting period.
         * @return bool
         * @throws InvalidOperationException
         */
        public function resume()
        {
        }
        /**
         * Finishes voting period.
         * @return bool
         * @throws InvalidOperationException
         */
        public function stop()
        {
        }
        /**
         * @param string $offset Key for vote or attach data array.
         * @return bool
         */
        public function offsetExists($offset)
        {
        }
        /**
         * @param string $offset Key for vote or attach data array.
         * @return array|mixed|null
         */
        public function offsetGet($offset)
        {
        }
        /**
         * Is not supported.
         * @param string $offset Key for vote or attach data array.
         * @param mixed $value Value for vote or attach data array.
         * @return void
         * @throws NotSupportedException
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * Is not supported.
         * @param string $offset Key for vote or attach data array.
         * @return void
         * @throws NotSupportedException
         */
        public function offsetUnset($offset)
        {
        }
        /**
         * @param integer $id Entity ID.
         * @param bool $shouldBeNewIfIdIsNull
         * @return BaseObject
         */
        public static function loadFromId($id, $shouldBeNewIfIdIsNull = false)
        {
        }
    }
}
namespace Bitrix\Vote\Copy {
    class Manager
    {
        private $voteIdsToCopy;
        private $resetVotingResult = true;
        private $markerQuestion = true;
        private $markerAnswer = true;
        public function __construct(array $voteIdsToCopy)
        {
        }
        public function markQuestion($marker)
        {
        }
        public function markAnswer($marker)
        {
        }
        public function setResetVotingResult(bool $bool) : void
        {
        }
        public function startCopy()
        {
        }
        private function getContainerCollection()
        {
        }
        private function getVoteCopier()
        {
        }
        private function getQuestionCopier()
        {
        }
        private function getAnswerCopier()
        {
        }
    }
}
namespace Bitrix\Main\Copy {
    /**
     * Interface CopyImplementer for copy entities.
     * @package Bitrix\Main\Copy
     */
    abstract class CopyImplementer
    {
        /**
         * @var Result
         */
        protected $result;
        /**
         * @var \CUserTypeManager|null
         */
        protected $userTypeManager;
        protected $ufIgnoreList = [];
        protected $executiveUserId;
        public function __construct()
        {
        }
        /**
         * @return \Bitrix\Main\Error[]
         */
        public function getErrors()
        {
        }
        /**
         * To copy uf fields, you must pass the uf field manager.
         *
         * @param \CUserTypeManager $userTypeManager Uf fields.
         */
        public function setUserFieldManager(\CUserTypeManager $userTypeManager)
        {
        }
        /**
         * To avoid copying specific fields, specify a list of fields to ignore.
         *
         * @param array $ufIgnoreList Ignore list.
         */
        public function setUfIgnoreList(array $ufIgnoreList) : void
        {
        }
        /**
         * To copy on agent need user id.
         *
         * @param int $executiveUserId
         */
        public function setExecutiveUserId(int $executiveUserId) : void
        {
        }
        protected function copyUfFields(int $entityId, int $copiedEntityId, string $ufObject)
        {
        }
        /**
         * Adds entity.
         *
         * @param Container $container
         * @param array $fields
         * @return int|bool return entity id or false.
         */
        public abstract function add(\Bitrix\Main\Copy\Container $container, array $fields);
        /**
         * Returns entity fields.
         *
         * @param Container $container
         * @param int $entityId
         * @return array $fields
         */
        public abstract function getFields(\Bitrix\Main\Copy\Container $container, $entityId);
        /**
         * Preparing data before creating a new entity.
         *
         * @param Container $container
         * @param array $fields List entity fields.
         * @return array $fields
         */
        public abstract function prepareFieldsToCopy(\Bitrix\Main\Copy\Container $container, array $fields);
        /**
         * Starts copying children entities.
         *
         * @param Container $container
         * @param int $entityId Entity id.
         * @param int $copiedEntityId Copied entity id.
         * @return Result
         */
        public abstract function copyChildren(\Bitrix\Main\Copy\Container $container, $entityId, $copiedEntityId);
        /**
         * @param Result[] $results
         * @return Result
         */
        protected function getResult(array $results = [])
        {
        }
    }
}
namespace Bitrix\Vote\Copy\Implement {
    class Vote extends \Bitrix\Main\Copy\CopyImplementer
    {
        private $resetVotingResult = true;
        public function setResetVotingResult(bool $bool) : void
        {
        }
        /**
         * @var EntityCopier|null
         */
        private $questionCopier = null;
        /**
         * To copy questions needs question copier.
         * @param EntityCopier $questionCopier
         */
        public function setQuestionCopier(\Bitrix\Main\Copy\EntityCopier $questionCopier) : void
        {
        }
        /**
         * Adds vote.
         *
         * @param Container $container
         * @param array $fields
         * @return bool|int
         * @throws \Exception
         */
        public function add(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Returns vote fields.
         * @param Container $container
         * @param int $entityId
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function getFields(\Bitrix\Main\Copy\Container $container, $entityId)
        {
        }
        /**
         * Preparing data before creating a new entity.
         *
         * @param Container $container
         * @param array $fields List entity fields.
         * @return array $fields
         */
        public function prepareFieldsToCopy(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Starts copying children entities.
         *
         * @param Container $container
         * @param int $entityId Vote id.
         * @param int $copiedEntityId Copied vote id.
         * @return Result
         */
        public function copyChildren(\Bitrix\Main\Copy\Container $container, $entityId, $copiedEntityId)
        {
        }
        private function copyQuestion(int $voteId, int $copiedVoteId)
        {
        }
        private function copyEvents($voteId, $copiedVoteId, \Bitrix\Main\Result $result)
        {
        }
        private function getCopiedIdsRelation(\Bitrix\Main\Result $result)
        {
        }
        /**
         * @param $voteId
         * @param $copiedIdsRelation
         * @return array
         * @throws \Bitrix\Main\ArgumentNullException
         */
        private function getEventBallots($voteId, $copiedIdsRelation)
        {
        }
    }
    class Question extends \Bitrix\Main\Copy\CopyImplementer
    {
        private $resetVotingResult = true;
        public function setResetVotingResult(bool $bool) : void
        {
        }
        /**
         * @var EntityCopier|null
         */
        private $answerCopier = null;
        /**
         * To copy questions needs question copier.
         * @param EntityCopier $answerCopier
         */
        public function setAnswerCopier(\Bitrix\Main\Copy\EntityCopier $answerCopier) : void
        {
        }
        /**
         * Adds question.
         *
         * @param Container $container
         * @param array $fields
         * @return int|bool return entity id or false.
         * @throws \Exception
         */
        public function add(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Returns question fields.
         *
         * @param Container $container
         * @param int $entityId
         * @return array $fields
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function getFields(\Bitrix\Main\Copy\Container $container, $entityId)
        {
        }
        /**
         * Preparing data before creating a new entity.
         *
         * @param Container $container
         * @param array $fields List entity fields.
         * @return array $fields
         */
        public function prepareFieldsToCopy(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Starts copying children entities.
         *
         * @param Container $container
         * @param int $entityId Entity id.
         * @param int $copiedEntityId Copied entity id.
         * @return Result
         */
        public function copyChildren(\Bitrix\Main\Copy\Container $container, $entityId, $copiedEntityId)
        {
        }
        private function copyAnswer(int $questionId, int $copiedQuestionId)
        {
        }
    }
    class Answer extends \Bitrix\Main\Copy\CopyImplementer
    {
        private $resetVotingResult = true;
        public function setResetVotingResult(bool $bool) : void
        {
        }
        /**
         * Adds answer.
         *
         * @param Container $container
         * @param array $fields
         * @return int|bool return answer id or false.
         * @throws \Exception
         */
        public function add(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Returns entity fields.
         *
         * @param Container $container
         * @param int $entityId
         * @return array|false
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function getFields(\Bitrix\Main\Copy\Container $container, $entityId)
        {
        }
        /**
         * Preparing data before creating a new answer.
         *
         * @param Container $container
         * @param array $fields List answer fields.
         * @return array $fields
         */
        public function prepareFieldsToCopy(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Starts copying children entities.
         *
         * @param Container $container
         * @param int $entityId Entity id.
         * @param int $copiedEntityId Copied entity id.
         * @return Result
         */
        public function copyChildren(\Bitrix\Main\Copy\Container $container, $entityId, $copiedEntityId)
        {
        }
    }
}
namespace Bitrix\Vote {
    class AnswerTypes
    {
        const RADIO = 0;
        const CHECKBOX = 1;
        const DROPDOWN = 2;
        const MULTISELECT = 3;
        const TEXT = 4;
        const TEXTAREA = 5;
        /**
         * Gets types list
         * @return array
         */
        public static function getFullList()
        {
        }
        /**
         * Returns array of types
         * @return array
         */
        public static function getTitledList()
        {
        }
        /**
         * Returns type title.
         * @param (int|string) $id Field type like (0 - radio).
         * @return string
         */
        public static function getTitleById($id)
        {
        }
    }
    class Answer
    {
        public static $storage = array();
    }
}
namespace Bitrix\Vote\Base {
    final class Diag
    {
        private $showOnDisplay = 0;
        private $exclusiveUserId = null;
        private $enableLog = false;
        /** @var  Diag */
        private static $instance;
        private $stackSql = array();
        private $stackMemory = array();
        /** @var Connection connection */
        private $connection;
        private function __construct()
        {
        }
        /**
         * Gets instance of Diag.
         * @return Diag
         */
        public static function getInstance()
        {
        }
        /**
         * Sets value to status of show log message on display.
         * @param bool $showOnDisplay Value.
         * @return $this
         */
        public function setShowOnDisplay($showOnDisplay)
        {
        }
        /**
         * Sets user id who can use class Diag. If set null then everybody can use it.
         * @param int $exclusiveUserId Id of user.
         * @return $this
         */
        public function setExclusiveUserId($exclusiveUserId)
        {
        }
        /**
         * Activate log.
         * @return $this
         */
        public function activate()
        {
        }
        /**
         * Deactivate log.
         * @return $this
         */
        public function deactivate()
        {
        }
        /**
         * Collects debug info.
         * @param mixed $uniqueId Id of segment.
         * @return void
         */
        public function collectDebugInfo($uniqueId)
        {
        }
        private function getDebugInfoSql()
        {
        }
        /**
         * Logs debug info.
         * @param mixed $uniqueId Id of segment.
         * @param null  $label Label for human.
         * @throws SystemException
         * @return void
         */
        public function logDebugInfo($uniqueId, $label = null)
        {
        }
        /**
         * Logs data in common log (@see AddMessage2Log).
         * @param mixed $data Mixed data to log.
         * @return void
         */
        public function log($data)
        {
        }
        private function reformatBackTrace(array $backtrace)
        {
        }
        /**
         * @return array|bool|\CAllUser|\CUser
         */
        private function getUser()
        {
        }
    }
}
namespace {
    class sale extends \CModule
    {
        var $MODULE_ID = "sale";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function __construct()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function GetModuleRightList()
        {
        }
        function InstallDB()
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function UnInstallFiles()
        {
        }
        function OnGetTableSchema()
        {
        }
    }
    class CSaleDiscountCouponMailComponent extends \CBitrixComponent
    {
        const DAY_LIMIT_TYPE = 'days';
        const WEEK_LIMIT_TYPE = 'weeks';
        const MONTH_LIMIT_TYPE = 'months';
        protected $isNewDiscount = \false;
        /**
         * @param $params
         * @override
         * @return array
         */
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * @override
         * @throws Exception
         */
        protected function checkModules()
        {
        }
        /**
         * @param $type
         *
         * @return bool
         */
        protected function checkTypeLimit($type)
        {
        }
        /**
         * @override
         * @throws Exception
         */
        protected function prepareData()
        {
        }
        /**
         * @return int
         */
        protected function getDiscountId()
        {
        }
        /**
         * Start Component
         */
        public function executeComponent()
        {
        }
    }
    /**
     * Class CCatalogViewedProductsComponent
     *
     * No longer used by internal code and not recommended. Use "catalog.products.viewed" instead.
     *
     * @deprecated deprecated since catalog 17.0.5
     * @use \CatalogProductsViewedComponent
     */
    class CCatalogViewedProductsComponent extends \CBitrixComponent
    {
        const ACTION_BUY = 'BUY';
        const ACTION_ADD_TO_BASKET = 'ADD2BASKET';
        const ACTION_SUBSCRIBE = 'SUBSCRIBE_PRODUCT';
        const ACTION_ADD_TO_COMPARE_LIST = 'ADD_TO_COMPARE_LIST';
        /**
         * Primary data - viewed product.
         * @var array[]
         */
        protected $items = array();
        /**
         * Viewed products ids.
         * @var integer[]
         */
        private $productIds = array();
        /**
         * Helper array map: array("SKU_ID" => "PRODUCT_ID", ...)
         * @var array
         */
        private $productIdsMap = array();
        /**
         * Filter to fetch items.
         * Used in CIBlockElement::getList()
         * @var string[]
         */
        protected $filter = array();
        /**
         * Select fields for items.
         * Used in CIBlockElement::getList()
         * @var string[]
         */
        private $selectFields = array();
        /**
         * Wether module Sale included?
         * @var bool
         */
        protected $isSale = \true;
        /**
         * Wether module Currency included?
         * @var bool
         */
        protected $isCurrency = \true;
        /**
         * Errors list.
         * @var string[]
         */
        protected $errors = array();
        /**
         * Warnings list.
         * @var string[]
         */
        protected $warnings = array();
        /**
         * Util data for template.
         * @var array
         */
        protected $data = array();
        /**
         * Items separate by iblocks
         *
         * @var array
         */
        protected $iblockItems = array();
        /**
         * Link to items.
         *
         * @var array
         */
        protected $linkItems = array();
        /**
         * Url templates for items
         *
         * @var array
         */
        protected $urlTemplates = array();
        protected $needItemProperties = array();
        protected $oldPriceFields = [];
        /**
         * Load language file.
         */
        public function onIncludeComponentLang()
        {
        }
        /**
         * Is AJAX Request?
         * @return bool
         */
        protected function isAjax()
        {
        }
        protected function getUserId()
        {
        }
        /**
         * Return product quantity from request string
         * @return integer
         */
        protected function getProductQuantityFromRequest()
        {
        }
        /**
         * Return product product properties to add in basket
         * @return array
         */
        protected function getProductPropertiesFromRequest()
        {
        }
        /**
         * Process buy action.
         */
        protected function processBuyAction()
        {
        }
        /**
         * Process buy action.
         */
        protected function processAddToBasketAction()
        {
        }
        /**
         * Process buy action.
         */
        protected function processSubscribeAction()
        {
        }
        /**
         * Process request actions list
         * @return void
         */
        protected function doActionsList()
        {
        }
        /**
         * Process incoming request.
         * @return void
         */
        protected function processRequest()
        {
        }
        /**
         * Process Puy Product.
         *
         * @param int $productID
         * @param float $quantity
         * @param array $values
         * @param array $arRewriteFields
         * @throws void|Bitrix\Main\SystemException
         */
        protected function addProductToBasket($productID, $quantity, $values = array(), $arRewriteFields = array())
        {
        }
        /**
         * Check Required Modules
         * @throws Exception
         */
        protected function checkModules()
        {
        }
        /**
         * Prepare Component Params.
         *
         * @param array $params			Component parameters.
         * @return array
         */
        public function onPrepareComponentParams($params)
        {
        }
        protected function getSectionIdByCode($sectionCode = "")
        {
        }
        protected function getSectionIdByElement($elementId, $elementCode = '')
        {
        }
        protected function getProductIds()
        {
        }
        /**
         * Return viewed product ids map.
         *
         * @return array("KEY" => "VALUE")
         */
        protected function getProductIdsMap()
        {
        }
        /**
         * Returns catalog prices data by product.
         * @param array $item Product.
         * @return array
         */
        protected function getPriceDataByItem(array $item)
        {
        }
        /**
         * Resort $items field according to input ids parameter
         *
         * @param $productIds
         */
        protected function resortItemsByIds($productIds)
        {
        }
        /**
         * Create items links
         *
         * @return void
         */
        protected function makeItemsLinks()
        {
        }
        protected function separateItemsByIblock()
        {
        }
        /**
         * Get additional data for cache
         *
         * @return array
         */
        protected function getAdditionalReferences()
        {
        }
        /**
         * Get common data from cache.
         * @return mixed[]
         */
        protected function getReferences()
        {
        }
        protected function fillUrlTemplates()
        {
        }
        /**
         * Get items for view.
         * @return mixed[]  array('ID' => array(), 'ID' => array(), ...)
         */
        protected function getItems()
        {
        }
        /**
         * Gets catalog prices needed for component.
         *
         * @param array $priceCodes
         * @return array
         */
        protected function getCatalogPrices(array $priceCodes = array())
        {
        }
        /**
         * Get main data - viewed products.
         * @return void
         */
        protected function prepareData()
        {
        }
        /**
         * Fill system data.
         *
         * return void
         */
        protected function prepareSystemData()
        {
        }
        /**
         * Prepare data to render.
         * @return void
         */
        protected function formatResult()
        {
        }
        /**
         * set prices for all items
         * @return void
         */
        protected function setItemsPrices()
        {
        }
        /**
         * Sets measure for all viewed products.
         * @return void
         */
        protected function setItemsMeasure()
        {
        }
        /**
         * Add offers for each catalog product.
         * @return void
         */
        protected function setItemsOffers()
        {
        }
        /**
         * Prepares $this->filter for CIBlockElement::getList() method.
         * @return void
         */
        protected function prepareFilter()
        {
        }
        /**
         * Prepares $this->selectFields for CIBlockElement::getList() method.
         * @return void
         */
        protected function prepareSelectFields()
        {
        }
        /**
         * Returns element fields and old product fields.
         *
         * @return array
         */
        protected function getElementSelectFields() : array
        {
        }
        protected function getPriceSelectFields() : array
        {
        }
        protected function getPriceIds() : array
        {
        }
        protected function fillOldPriceFields() : void
        {
        }
        /**
         * Extract data from cache. No action by default.
         * @return bool
         */
        protected function extractDataFromCache()
        {
        }
        protected function putDataToCache()
        {
        }
        protected function abortDataCache()
        {
        }
        /**
         * Check action variable.
         *
         * @param array $params			Component params.
         * @return string
         */
        protected function prepareActionVariable($params)
        {
        }
        /**
         * Start Component
         */
        public function executeComponent()
        {
        }
    }
    class CSaleBestsellersComponent extends \CCatalogViewedProductsComponent
    {
        /**
         * @param $params
         * @override
         * @return array
         */
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * @override
         * @return bool
         */
        protected function extractDataFromCache()
        {
        }
        protected function putDataToCache()
        {
        }
        protected function abortDataCache()
        {
        }
        /**
         * @override
         * @return void
         */
        protected function formatResult()
        {
        }
        /**
         * Returns orders filter for CSaleProduct::GetBestSellerList method.
         * @return mixed[]
         */
        protected function getOrdersFilter()
        {
        }
        /**
         * @override
         * @return integer[]
         */
        protected function getProductIds()
        {
        }
        /**
         * @override
         * @throws Exception
         */
        protected function checkModules()
        {
        }
        /**
         * Get additional data for cache
         *
         * @return array
         */
        protected function getAdditionalReferences()
        {
        }
    }
    /**
     * Class \CatalogBigdataProductsComponent
     *
     * No longer used by internal code and not recommended. Use "catalog.section" instead.
     *
     * @deprecated deprecated since catalog 17.0.5
     * @use \CatalogSectionComponent
     */
    class CatalogBigdataProductsComponent extends \CSaleBestsellersComponent
    {
        protected $rcmParams;
        protected $ajaxItemsIds;
        protected $recommendationIdToProduct = array();
        /**
         * Prepare Component Params
         *
         * @param array $params
         * @return array
         */
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * set prices for all items
         * @return array currency list
         */
        protected function setItemsPrices()
        {
        }
        /**
         * Add offers for each catalog product.
         * @return void
         */
        protected function setItemsOffers()
        {
        }
        protected function getPageParam($sUrlPath, $strParam = "", $arParamKill = array(), $get_index_page = \null)
        {
        }
        protected function getProductIds()
        {
        }
        protected function filterByParams($ids)
        {
        }
        protected function filterIdBySection($elementIds, $iblockId, $sectionId, $limit, $depth = 0)
        {
        }
        protected function filterByAvailability($ids)
        {
        }
        /**
         * Extract data from cache. No action by default.
         * @return bool
         */
        protected function extractDataFromCache()
        {
        }
        protected function getAdditionalCacheId()
        {
        }
        protected function getServiceRequestParamsByType($type)
        {
        }
        /**
         * Check action variable.
         *
         * @param array $params			Component params.
         * @return string
         */
        protected function prepareActionVariable($params)
        {
        }
        /**
         * Get additional data for cache
         *
         * @return array
         */
        protected function getAdditionalReferences()
        {
        }
        /**
         * Start Component
         */
        public function executeComponent()
        {
        }
        protected function getInjectedJs($items, $uniqId)
        {
        }
    }
    class CSaleBigdataFollowupMail extends \CatalogBigdataProductsComponent
    {
        protected function getProductIds()
        {
        }
        public function executeComponent()
        {
        }
    }
    /**
     * Class CSaleGiftSectionComponent
     * @deprecated No longer used by internal code and not recommended.
     * Use "sale.products.gift.section" instead.
     */
    class CSaleGiftSectionComponent extends \CCatalogViewedProductsComponent
    {
        /** @var array */
        private $productIds;
        /**
         * Checks required modules.
         * @throws Exception
         * @return void
         */
        protected function checkModules()
        {
        }
        /**
         * Event called from includeComponent before component execution.
         *
         * <p>Takes component parameters as argument and should return it formatted as needed.</p>
         * @param array[string]mixed $arParams
         * @return array[string]mixed
         *
         */
        public function onPrepareComponentParams($params)
        {
        }
        private function getSectionId()
        {
        }
        /**
         * Returns list of product ids which will be showed.
         * @return array
         */
        protected function getProductIds()
        {
        }
        private function getElementIdsFromSection($sectionId)
        {
        }
        /**
         * Returns pure offers which exist in $this->linkItems, $this->items.
         * You can use the method after execution parent::setItemsOffers(),
         * which fills necessary $this->linkItems, $this->items.
         * @return array
         */
        private function getPureOffers()
        {
        }
        /**
         * Finds array with data which fully describes offer (SKU) by offer id.
         * The method uses $this->items.
         * @param $offerId
         * @return null|array
         */
        private function findPureOfferInItemsByOfferId($offerId)
        {
        }
        /**
         * Sets offers to specific product. If exists another offer, then it will delete.
         * Notice! List of offers have to belong to identical product.
         * @param array $pureOffers
         * @return void
         */
        private function setPureOffersToProduct(array $pureOffers)
        {
        }
        /**
         * Add offers for each catalog product.
         * @return void
         */
        protected final function setItemsOffers()
        {
        }
        protected function setItemsPrices()
        {
        }
        protected function formatResult()
        {
        }
        /**
         * Returns catalog prices data by product.
         * @param array $item Product.
         * @return array
         */
        protected function getPriceDataByItem(array $item)
        {
        }
        /**
         * @param $offer
         * @return mixed
         */
        private function setGiftDiscountToMinPrice(array &$offer)
        {
        }
        private function getGiftData()
        {
        }
    }
    class PersonalProfile extends \CBitrixComponent
    {
        const E_SALE_MODULE_NOT_INSTALLED = 10000;
        public function executeComponent()
        {
        }
        /**
         * Function checks if required modules installed. If not, throws an exception
         * @throws Main\SystemException
         * @return void
         */
        protected function checkRequiredModules()
        {
        }
    }
    /**
     * Class SaleBsmSiteMasterButton
     */
    class SaleBsmSiteMasterButton extends \CBitrixComponent
    {
        private const IS_SALE_CRM_SITE_MASTER_FINISH = "~IS_SALE_CRM_SITE_MASTER_FINISH";
        /**
         * @return mixed|void
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function executeComponent()
        {
        }
        private function prepareResult() : void
        {
        }
        /**
         * @return bool|string
         */
        private function getMasterPath()
        {
        }
        /**
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        private function isShowButton() : bool
        {
        }
        /**
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        private function isSaleCrmSiteMasterFinish() : bool
        {
        }
        /**
         * @param $zone
         * @return bool
         */
        private function isAvailableZone($zone) : bool
        {
        }
    }
    /**
     * Class SaleDomainVerificationForm
     */
    class SaleDomainVerificationForm extends \CBitrixComponent
    {
        private const DOMAIN_GRID_ID = "verified_domain_list";
        /** @var ErrorCollection $errors */
        private $errors;
        /** @var Sale\Domain\Verification\BaseManager $domainVerificationManager */
        private $domainVerificationManager;
        /**
         * @param $params
         * @return array
         * @throws \Bitrix\Main\LoaderException
         */
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * @return array
         */
        protected function listKeysSignedParameters() : array
        {
        }
        private function initResult()
        {
        }
        /**
         * @param $params
         */
        private function checkRequiredParams($params)
        {
        }
        private function printErrors()
        {
        }
        /**
         * @param $entity
         * @return void
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function prepareGrid($entity)
        {
        }
        /**
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function initSiteList()
        {
        }
        /**
         * @return bool
         */
        private function isSave()
        {
        }
        /**
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\IO\FileNotFoundException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function saveDomain()
        {
        }
        private function prepareResult()
        {
        }
        /**
         * @return mixed|void
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function executeComponent()
        {
        }
    }
}
namespace Bitrix\Main {
    interface Errorable
    {
        /**
         * Getting array of errors.
         * @return Error[]
         */
        public function getErrors();
        /**
         * Getting once error with the necessary code.
         * @param string $code Code of error.
         * @return Error
         */
        public function getErrorByCode($code);
    }
}
namespace Bitrix\Main\Engine\Contract {
    interface Controllerable
    {
        const METHOD_ACTION_SUFFIX = 'Action';
        /**
         * @return array
         */
        public function configureActions();
    }
}
namespace Bitrix\Main\Engine {
    class Controller implements \Bitrix\Main\Errorable, \Bitrix\Main\Engine\Contract\Controllerable
    {
        const SCOPE_REST = 'rest';
        const SCOPE_AJAX = 'ajax';
        const SCOPE_CLI = 'cli';
        const EVENT_ON_BEFORE_ACTION = 'onBeforeAction';
        const EVENT_ON_AFTER_ACTION = 'onAfterAction';
        const ERROR_REQUIRED_PARAMETER = 'MAIN_CONTROLLER_22001';
        const ERROR_UNKNOWN_ACTION = 'MAIN_CONTROLLER_22002';
        const EXCEPTION_UNKNOWN_ACTION = 22002;
        /** @var  ErrorCollection */
        protected $errorCollection;
        /** @var  \Bitrix\Main\HttpRequest */
        protected $request;
        /** @var Configurator */
        protected $configurator;
        /** @var null|array */
        private $configurationOfActions = null;
        /** @var string */
        private $scope;
        /** @var CurrentUser */
        private $currentUser;
        /** @var Converter */
        private $converter;
        /** @var string */
        private $filePath;
        /** @var array */
        private $sourceParametersList;
        private $unsignedParameters;
        /**
         * Returns the fully qualified name of this class.
         * @return string
         */
        public static final function className()
        {
        }
        /**
         * Constructor Controller.
         * @param Request $request
         */
        public function __construct(\Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @param Controller $controller
         * @param string     $actionName
         * @param array      $parameters
         *
         * @return HttpResponse|mixed
         * @throws SystemException
         */
        public function forward($controller, string $actionName, array $parameters = null)
        {
        }
        /**
         * Initializes controller.
         * This method is invoked at the end of constructor.
         * @return void
         */
        protected function init()
        {
        }
        /**
         * @return array|null
         */
        public final function getConfigurationOfActions()
        {
        }
        /**
         * Returns module id.
         * Tries to guess module id by file path and function @see getModuleId().
         *
         * @return string
         */
        public final function getModuleId()
        {
        }
        protected final function getFilePath()
        {
        }
        /**
         * Returns uri for ajax end point for the action name. It's a helper,
         * which uses relative action name without controller name.
         *
         * @param string $actionName Action name. It's a relative action name without controller name.
         * @param array $params Parameters for creating uri.
         * @param bool $absolute
         *
         * @return \Bitrix\Main\Web\Uri
         */
        public final function getActionUri($actionName, array $params = array(), $absolute = false)
        {
        }
        /**
         * @return mixed
         */
        public final function getUnsignedParameters()
        {
        }
        protected final function processUnsignedParameters()
        {
        }
        /**
         * Tries to find salt from request. It's "c" (component name) in general.
         *
         * @return string|null
         */
        protected function getSaltToUnsign()
        {
        }
        /**
         * @return CurrentUser
         */
        public final function getCurrentUser()
        {
        }
        /**
         * @param CurrentUser $currentUser
         */
        public final function setCurrentUser(\Bitrix\Main\Engine\CurrentUser $currentUser)
        {
        }
        /**
         * Converts keys of array to camel case notation.
         * @see \Bitrix\Main\Engine\Response\Converter::OUTPUT_JSON_FORMAT
         * @param mixed $data Data.
         *
         * @return array|mixed|string
         */
        public function convertKeysToCamelCase($data)
        {
        }
        /**
         * Returns list of all
         * @return array
         */
        public final function listNameActions()
        {
        }
        /**
         * @return array
         */
        public function configureActions()
        {
        }
        /**
         * @return Parameter[]
         */
        public function getAutoWiredParameters()
        {
        }
        /**
         * @return Parameter|null
         */
        public function getPrimaryAutoWiredParameter()
        {
        }
        /**
         * @return Parameter[]
         */
        public final function getDefaultAutoWiredParameters()
        {
        }
        private function buildConfigurationOfActions()
        {
        }
        /**
         * @return \Bitrix\Main\HttpRequest
         */
        public final function getRequest()
        {
        }
        /**
         * @return string
         */
        public final function getScope()
        {
        }
        /**
         * @param string $scope
         *
         * @return Controller
         */
        public final function setScope($scope)
        {
        }
        /**
         * @return array
         */
        public final function getSourceParametersList()
        {
        }
        /**
         * @param array $sourceParametersList
         *
         * @return Controller
         */
        public final function setSourceParametersList($sourceParametersList)
        {
        }
        /**
         * @param       $actionName
         * @param array $sourceParametersList
         *
         * @return HttpResponse|mixed
         * @throws SystemException
         */
        public final function run($actionName, array $sourceParametersList)
        {
        }
        protected function writeToLogException(\Throwable $e)
        {
        }
        private function processExceptionInDebug(\Throwable $e)
        {
        }
        public static final function getFullEventName($eventName)
        {
        }
        /**
         * Collects debug info by Diag.
         * @return void
         */
        protected final function collectDebugInfo()
        {
        }
        /**
         * Logs debug info by Diag.
         * @throws \Bitrix\Main\SystemException
         * @return void
         */
        protected final function logDebugInfo()
        {
        }
        /**
         * Prepare params before process action.
         * @return bool
         */
        protected function prepareParams()
        {
        }
        /**
         * Common operations before process action.
         * @param Action $action
         * @return bool If method will return false, then action will not execute.
         */
        protected function processBeforeAction(\Bitrix\Main\Engine\Action $action)
        {
        }
        protected function shouldDecodePostData(\Bitrix\Main\Engine\Action $action) : bool
        {
        }
        protected final function decodePostData() : void
        {
        }
        /**
         * Triggers the event {{static::EVENT_ON_BEFORE_ACTION}}
         * @see \Bitrix\Main\Engine\Controller::getFullEventName.
         * This method is invoked right before an action is executed.
         * In case the action should not run, event handler have to return EvenResult with type EventResult::ERROR.
         *
         * @param Action $action Action name.
         * @return bool
         */
        protected final function triggerOnBeforeAction(\Bitrix\Main\Engine\Action $action)
        {
        }
        /**
         * Common operations after process action.
         * If the method returns void or null it means that we don't want to modify $result.
         *
         * @param Action $action
         * @param $result
         *
         * @return HttpResponse|mixed|void
         */
        protected function processAfterAction(\Bitrix\Main\Engine\Action $action, $result)
        {
        }
        /**
         * Finalizes response.
         * The method will be invoked when HttpApplication will be ready to send response to client.
         * It's a final place where Controller can interact with response.
         *
         * @param Response $response
         * @return void
         */
        public function finalizeResponse(\Bitrix\Main\Response $response)
        {
        }
        protected final function triggerOnAfterAction(\Bitrix\Main\Engine\Action $action, $result)
        {
        }
        public final function generateActionMethodName($action)
        {
        }
        protected function create($actionName)
        {
        }
        protected final function buildActionInstance($actionName, array $config)
        {
        }
        protected final function existsAction($actionName)
        {
        }
        /**
         * Returns default pre-filters for action.
         * @return array
         */
        protected function getDefaultPreFilters()
        {
        }
        /**
         * Returns default post-filters for action.
         * @return array
         */
        protected function getDefaultPostFilters()
        {
        }
        /**
         * Builds filter by config. If there is no config,
         * then we use default filters @see \Bitrix\Main\Engine\Controller::getDefaultPreFilters() and
         * @see \Bitrix\Main\Engine\Controller::getDefaultPostFilters().
         * If now is POST query and there is no csrf check in config, then we add it.
         *
         * @param array|null $config
         *
         * @return array|null
         */
        protected final function buildFilters(array $config = null)
        {
        }
        protected final function appendFilters(array $filters, array $filtersToAppend)
        {
        }
        protected final function removeFilters(array $filters, array $filtersToRemove)
        {
        }
        protected final function attachFilters(\Bitrix\Main\Engine\Action $action)
        {
        }
        protected final function getActionConfig($actionName)
        {
        }
        protected final function setActionConfig($actionName, array $config = null)
        {
        }
        protected function runProcessingThrowable(\Throwable $throwable)
        {
        }
        /**
         * Runs processing exception.
         * @param \Exception $e Exception.
         * @return void
         */
        protected function runProcessingException(\Exception $e)
        {
        }
        protected function runProcessingError(\Error $error)
        {
        }
        protected function buildErrorFromException(\Exception $e)
        {
        }
        protected function buildErrorFromPhpError(\Error $error)
        {
        }
        /**
         * Runs processing if user is not authorized.
         * @return void
         */
        protected function runProcessingIfUserNotAuthorized()
        {
        }
        /**
         * Runs processing if csrf token is invalid.
         * @return void
         */
        protected function runProcessingIfInvalidCsrfToken()
        {
        }
        public function redirectTo($url) : \Bitrix\Main\HttpResponse
        {
        }
        /**
         * Adds error to error collection.
         * @param Error $error Error.
         *
         * @return $this
         */
        protected function addError(\Bitrix\Main\Error $error)
        {
        }
        /**
         * Adds list of errors to error collection.
         * @param Error[] $errors Errors.
         *
         * @return $this
         */
        protected function addErrors(array $errors)
        {
        }
        /**
         * Getting array of errors.
         * @return Error[]
         */
        public final function getErrors()
        {
        }
        /**
         * Getting once error with the necessary code.
         * @param string $code Code of error.
         * @return Error
         */
        public final function getErrorByCode($code)
        {
        }
    }
}
namespace {
    /**
     * Class SaleDomainVerificationFormAjaxController
     */
    class SaleDomainVerificationFormAjaxController extends \Bitrix\Main\Engine\Controller
    {
        /** @var Domain\Verification\BaseManager $domainVerificationManager */
        private $domainVerificationManager;
        /**
         * @param \Bitrix\Main\Engine\Action $action
         * @return bool
         * @throws \Bitrix\Main\LoaderException
         */
        protected function processBeforeAction(\Bitrix\Main\Engine\Action $action)
        {
        }
        /**
         * @param $id
         * @return array
         * @throws Exception
         */
        public function deleteDomainAction($id)
        {
        }
    }
    /**
     * Class SaleCrmSiteMaster
     */
    class SaleCrmSiteMaster extends \CBitrixComponent
    {
        /** @var string Full path to wizard directory */
        const WIZARD_DIR = __DIR__ . "/wizard/";
        /** @var string */
        const CRM_WIZARD_SITE_ID = "~CRM_WIZARD_SITE_ID";
        /** @var string Has the last step been reached? */
        const IS_SALE_CRM_SITE_MASTER_FINISH = "~IS_SALE_CRM_SITE_MASTER_FINISH";
        /** @var string */
        const IS_SALE_CRM_SITE_MASTER_STUB = "~IS_SALE_CRM_SITE_MASTER_STUB";
        const IS_CRM_SITE_MASTER_OPENED = "~IS_CRM_SITE_MASTER_OPENED";
        const ERROR_TYPE_COMPONENT = "COMPONENT";
        const ERROR_TYPE_ORDER = "ORDER";
        const ERROR_TYPE_WIZARD = "WIZARD";
        /** @var CWizardBase wizard */
        private $wizard;
        /** @var Tools\ModuleChecker $moduleChecker */
        private $moduleChecker;
        /** @var array default steps */
        private $defaultStep = [];
        /** @var array required steps */
        private $requiredStep = [];
        /** @var array variable for wizard */
        private $wizardVar = [];
        /** @var array error for wizard's step */
        private $wizardStepErrors = [];
        /**
         * @param $arParams
         * @return array
         */
        public function onPrepareComponentParams($arParams)
        {
        }
        /**
         * @return array
         */
        private function getDefaultSteps() : array
        {
        }
        /**
         * @return bool
         */
        private function isIntranetWizardExists() : bool
        {
        }
        /**
         * @return array
         */
        private function getRequiredSteps()
        {
        }
        /**
         * @return array
         */
        private function getRequiredModules() : array
        {
        }
        /**
         * @return Tools\ModuleChecker
         */
        public function getModuleChecker()
        {
        }
        /**
         * @param $name
         * @param $value
         */
        private function addWizardVar($name, $value)
        {
        }
        /**
         * @return array
         */
        private function getWizardVars()
        {
        }
        /**
         * @param $stepName
         * @param $value
         */
        private function addWizardStepError($stepName, $value)
        {
        }
        /**
         * @param $stepName
         * @return array
         */
        public function getWizardStepErrors($stepName)
        {
        }
        /**
         * @param $errors
         * @param $type
         */
        private function addErrors($errors, $type)
        {
        }
        /**
         * @param array|string $error
         * @param $type
         */
        private function addError($error, $type)
        {
        }
        /**
         * @param $type
         * @return array
         */
        private function getErrors($type)
        {
        }
        /**
         * @param $stepName
         * @param $sort
         * @param bool $replace
         */
        private function addWizardStep($stepName, $sort, $replace = \false)
        {
        }
        /**
         * Include wizard's step
         */
        private function includeWizardSteps()
        {
        }
        /**
         * Include wizard's template
         */
        private function includeWizardTemplate()
        {
        }
        /**
         * Create wizard and add steps
         *
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        private function createWizard()
        {
        }
        /**
         * @return CWizardBase
         */
        public function getWizard()
        {
        }
        /**
         * Set variables for wizard
         */
        private function setWizardVariables()
        {
        }
        /**
         * Check additional required step
         *
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function initSteps()
        {
        }
        /**
         * Add wizard steps to component's params
         */
        private function addStepsToResult()
        {
        }
        /**
         * Sort wizard's step
         */
        private function sortSteps()
        {
        }
        /**
         * @param string $currentStep
         * @return array
         */
        public function getSteps($currentStep)
        {
        }
        /**
         * Control required steps
         */
        private function controlRequiredSteps()
        {
        }
        /**
         * @param $stepName
         * @return bool
         */
        private function isStepExists($stepName)
        {
        }
        /**
         * @param $stepName
         */
        private function setStepImmediately($stepName)
        {
        }
        /**
         * @param $siteId
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function setCrmSiteId($siteId)
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function getCrmSiteId()
        {
        }
        /**
         * @throws Main\ArgumentOutOfRangeException
         */
        public function setSaleCrmSiteMasterFinish()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function isSaleCrmSiteMasterFinish()
        {
        }
        /**
         * @throws Main\ArgumentOutOfRangeException
         */
        public function setSaleCrmSiteMasterStub()
        {
        }
        /**
         * @throws Main\ArgumentOutOfRangeException
         */
        public function setLandingSmnExtended()
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function getPathToOrderList()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function checkPersonType()
        {
        }
        /**
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        private function checkAgents()
        {
        }
        private function checkBitrixVm()
        {
        }
        /**
         * @throws Main\LoaderException
         */
        private function checkB24Connection()
        {
        }
        private function checkPushServer()
        {
        }
        private function prepareGrid()
        {
        }
        /**
         * @return mixed|void
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function executeComponent()
        {
        }
        private function checkPermission()
        {
        }
        private function checkModules()
        {
        }
        private function checkSession()
        {
        }
        /**
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        private function setMasterOpenOption()
        {
        }
        /**
         * @return string
         */
        public function __toString()
        {
        }
    }
}
namespace Bitrix\Sale\CrmSiteMaster\Tools {
    /**
     * Class AgentChecker
     * @package Bitrix\Sale\CrmSiteMaster\Tools
     */
    class AgentChecker
    {
        const ERROR_CODE_FAIL = "Fail";
        const ERROR_CODE_WARNING = "Warning";
        /**
         * @return Main\Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function checkAgents()
        {
        }
    }
    /**
     * Class BitrixVmChecker
     * @package Bitrix\Sale\CrmSiteMaster\Tools
     */
    class BitrixVmChecker
    {
        /**
         * @return bool
         */
        public function isVm()
        {
        }
    }
    /**
     * Class PersonTypePreparer
     * @package Bitrix\Sale\CrmSiteMaster\Tools
     */
    class PersonTypePreparer
    {
        /** @var array $errors */
        private $errors = [];
        /**
         * @param string $error
         */
        private function setError($error)
        {
        }
        /**
         * @return array errors
         */
        public function getErrors()
        {
        }
        /**
         * Set business values for person types
         *
         * @param $siteId
         * @param $personTypeList
         * @return bool
         */
        public function preparePersonType($siteId, $personTypeList)
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function getPersonTypeList()
        {
        }
        /**
         * @param $personTypeId
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getCurrentPersonTypeSite($personTypeId)
        {
        }
        /**
         * @param $personTypeId
         * @param $siteId
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws \Exception
         */
        private function addSiteToPersonType($personTypeId, $siteId)
        {
        }
        /**
         * @param array $personTypes
         * @param $siteId
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function addSitesToPersonType(array $personTypes, $siteId)
        {
        }
        /**
         * @param $personTypeId
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws \Exception
         */
        private function deleteSitesFromPersonType($personTypeId)
        {
        }
    }
    /**
     * Class ModuleChecker
     * @package Bitrix\Sale\CrmSiteMaster\Tools
     */
    class ModuleChecker
    {
        const IS_MODULE_INSTALL = "~IS_MODULE_INSTALL";
        private $modulesRequired = [];
        /**
         * ModuleChecker constructor.
         * @param array $modulesRequired
         */
        public function setRequiredModules(array $modulesRequired)
        {
        }
        /**
         * @return array
         */
        public function getRequiredModules()
        {
        }
        /**
         * Check existence of required modules
         *
         * @return array
         */
        public function getNotExistModules()
        {
        }
        /**
         * Check availability of required modules
         *
         * @param array $notExistModule
         * @return array
         */
        public function checkAvailableModules($notExistModule)
        {
        }
        /**
         * Checks required modules
         */
        public function checkInstalledModules()
        {
        }
        /**
         * @param $moduleName
         * @return bool|mixed|string
         */
        private function getModuleVersion($moduleName)
        {
        }
        /**
         * Get modules for update
         *
         * @return array
         */
        private function getUpdatesList()
        {
        }
        /**
         * @throws Main\ArgumentOutOfRangeException
         */
        public function setInstallStatus()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function isModuleInstall()
        {
        }
        /**
         * @throws Main\ArgumentNullException
         */
        public function deleteInstallStatus()
        {
        }
    }
    /**
     * Class PushChecker
     * @package Bitrix\Sale\CrmSiteMaster\Tools
     */
    class PushChecker
    {
        private $isModuleLoaded = false;
        /**
         * PushChecker constructor.
         */
        public function __construct()
        {
        }
        /**
         * @return bool
         */
        public function isModuleLoaded()
        {
        }
        /**
         * @return bool
         */
        public function isPushActive()
        {
        }
        /**
         * @return Main\Result
         */
        public function registerSharedServer()
        {
        }
        /**
         * @param Main\Result $registerResult
         * @return Main\Result
         */
        private function prepareErrors($registerResult)
        {
        }
        /**
         * @return bool
         */
        public function isShared()
        {
        }
        /**
         * @return bool
         */
        public function getModuleVersion()
        {
        }
    }
    /**
     * Class SitePatcher
     * @package Bitrix\Sale\CrmSiteMaster\Tools
     */
    class SitePatcher
    {
        /** @var string */
        const CRM_WIZARD_SITE_ID = "~CRM_WIZARD_SITE_ID";
        const CRM_COMPANY_DEPARTMENT_ID = "~CRM_COMPANY_DEPARTMENT_ID";
        const SELECTED_USER_GROUPS = "~SELECTED_USER_GROUPS";
        const EMPLOYEE_USER_GROUP_ID = "~EMPLOYEE_USER_GROUP_ID";
        const CONFIG_1C = "~CONFIG_1C";
        const FORCE_ENABLE_SELF_HOSTED_COMPOSITE = "force_enable_self_hosted_composite";
        private static $instance;
        private $siteId;
        private $sitePath;
        private $siteDir;
        private $siteName;
        private $serverName;
        /**
         * SitePatcher constructor.
         *
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function __construct()
        {
        }
        /**
         * @return SitePatcher
         */
        public static function getInstance()
        {
        }
        /**
         * Add url rewrite conditions
         *
         * @throws Main\ArgumentNullException
         */
        public function addUrlRewrite()
        {
        }
        /**
         * Delete old extra files
         */
        public function deleteFiles()
        {
        }
        /**
         * @param $dir
         * @param $componentName
         */
        public static function clearCache($dir, $componentName)
        {
        }
        /**
         * Init site fields
         *
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function initSiteFields()
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function getCrmSiteId()
        {
        }
        /**
         * @return mixed
         */
        public function getCrmSiteDir()
        {
        }
        /**
         * @return mixed
         */
        public function getCrmSitePath()
        {
        }
        /**
         * @return mixed
         */
        public function getCrmSiteName()
        {
        }
        public function getCrmServerName()
        {
        }
        /**
         * @param $path
         * @return bool
         */
        private function deleteDirFiles($path)
        {
        }
        /**
         * Set new conditions for template
         *
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws \Exception
         */
        public static function updateSiteTemplateConditions()
        {
        }
        /**
         * Copy dir /docs/ from disk to crm site
         */
        public function patchDisk()
        {
        }
        /**
         * Path module (dav)
         */
        public function patchDav()
        {
        }
        /**
         * Path module (timeman)
         */
        public function patchTimeman()
        {
        }
        /**
         * Path module (meeting)
         */
        public function patchMeeting()
        {
        }
        /**
         * Path module (imconnector)
         *
         * @throws Main\ArgumentOutOfRangeException
         */
        public function patchImconnector()
        {
        }
        /**
         * Path module (imopenlines)
         *
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function patchImopenlines()
        {
        }
        /**
         * Path module (voximplant)
         *
         * @throws Main\ArgumentOutOfRangeException
         */
        public function patchVoximplant()
        {
        }
        /**
         * Path module (mobile)
         */
        public function patchMobile()
        {
        }
        public function patchIm()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function prepareCrmCatalog()
        {
        }
        /**
         * @return bool
         */
        private function isDefaultCatalogExists()
        {
        }
        /**
         * @return int|null
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getCatalogId()
        {
        }
        /**
         * @param $catalogId
         * @throws Main\ArgumentOutOfRangeException
         */
        private function setDefaultProductCatalogId($catalogId)
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function setCrmUserGroups()
        {
        }
        /**
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\LoaderException
         */
        public function setCrmGroupRights()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function addEmployeesToCompanyStructure()
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function getSelectedUserGroups()
        {
        }
        /**
         * @throws Main\ArgumentNullException
         */
        public static function deleteSelectedUserGroups()
        {
        }
        /**
         * @return int|bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function getEmployeesGroupId()
        {
        }
        /**
         * @throws Main\ArgumentNullException
         */
        public static function deleteEmployeesGroupId()
        {
        }
        /**
         * @return int|bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function getCompanyDepartmentId()
        {
        }
        /**
         * @throws Main\ArgumentNullException
         */
        public static function deleteCompanyDepartmentId()
        {
        }
        /**
         * @param $iblockId
         * @return string|null
         */
        private function getIblockTypeID($iblockId)
        {
        }
        /**
         * @param $name
         * @throws Main\ArgumentOutOfRangeException
         */
        public function createDepartment($name)
        {
        }
        /**
         * @return int|null
         */
        private function getDepartmentIblockId()
        {
        }
        /**
         * @param $departmentIblockId
         * @return int|null
         */
        private function getHeadDepartmentSectionId($departmentIblockId)
        {
        }
        /**
         * @param array $groups
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function getUserIdList(array $groups)
        {
        }
        /**
         * @param $type
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getCrmGroupIdList($type)
        {
        }
        /**
         * @param array $users
         * @param array $groups
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function addNewGroup(array $users, array $groups)
        {
        }
        /**
         * @param array $users
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getCurrentUserGroupList(array $users)
        {
        }
        /**
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function saveConfig1C()
        {
        }
        /**
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function retrieveConfig1C()
        {
        }
        /**
         * @throws Main\ArgumentNullException
         */
        public static function disableRegularArchive()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function addSiteToCatalog()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getCatalogIblockIdList()
        {
        }
        /**
         * @param $catalogIblocIdkList
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getIblockSiteList($catalogIblocIdkList)
        {
        }
        /**
         * Enable composite using option in .settings.php
         */
        public static function enableComposite()
        {
        }
        /**
         * @return bool
         */
        private static function isCanEnableComposite()
        {
        }
        /**
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function crmShopEnable()
        {
        }
    }
    /**
     * Class CrmPackage
     * @package Bitrix\Sale\CrmSiteMaster\Tools
     */
    class CrmPackage
    {
        private $id;
        private $siteId;
        /**
         * @param $id
         */
        public function setId($id)
        {
        }
        /**
         * @return string
         */
        public function getId()
        {
        }
        /**
         * @return string
         */
        public function getPath()
        {
        }
        /**
         * @param $siteId
         */
        public function setSiteId($siteId)
        {
        }
        /**
         * @return string
         */
        public function getSiteId()
        {
        }
    }
    /**
     * Class B24ConnectorUnInstaller
     * @package Bitrix\Sale\CrmSiteMaster\Tools
     */
    class B24ConnectorUnInstaller
    {
        const MODULE_NAME = "b24connector";
        /**
         * @return bool
         * @throws Main\LoaderException
         */
        public function isModule()
        {
        }
        /**
         * @return bool
         */
        public function isSiteConnected()
        {
        }
        /**
         * @return Main\Result
         */
        public function uninstallModule()
        {
        }
    }
}
namespace {
    /**
     * Class SaleCrmSiteMasterAjaxController
     */
    class SaleCrmSiteMasterAjaxController extends \Bitrix\Main\Engine\Controller
    {
        /**
         * @param $key
         */
        public function updateLicenseKeyAction($key)
        {
        }
        /**
         * @param $key
         * @return false|int
         */
        private function isLicenseKey($key)
        {
        }
        /**
         * @param $key
         */
        private function updateLicenseKey($key)
        {
        }
        public function checkUpdateSystemAction()
        {
        }
    }
    class CWizardStep
    {
        var $stepTitle;
        var $stepSubTitle;
        var $stepID;
        var $nextStepID;
        var $prevStepID;
        var $finishStepID;
        var $cancelStepID;
        var $nextCaption;
        var $prevCaption;
        var $finishCaption;
        var $cancelCaption;
        var $displayVars;
        var $stepErrors;
        var $wizard;
        // reference to wizard object
        var $content;
        var $autoSubmit;
        public function __construct()
        {
        }
        /** @deprecated */
        public function CWizardStep()
        {
        }
        //Step initialization
        function InitStep()
        {
        }
        //Step action
        function OnPostForm()
        {
        }
        //Step output
        function ShowStep()
        {
        }
        function SetTitle($title)
        {
        }
        function GetTitle()
        {
        }
        function SetSubTitle($stepSubTitle)
        {
        }
        function GetSubTitle()
        {
        }
        function SetStepID($stepID)
        {
        }
        function GetStepID()
        {
        }
        function SetNextStep($stepID)
        {
        }
        function GetNextStepID()
        {
        }
        function SetNextCaption($caption)
        {
        }
        function GetNextCaption()
        {
        }
        function SetPrevStep($stepID)
        {
        }
        function GetPrevStepID()
        {
        }
        function SetPrevCaption($caption)
        {
        }
        function GetPrevCaption()
        {
        }
        function SetFinishStep($stepID)
        {
        }
        function GetFinishStepID()
        {
        }
        function SetFinishCaption($caption)
        {
        }
        function GetFinishCaption()
        {
        }
        function SetCancelStep($stepID)
        {
        }
        function GetCancelStepID()
        {
        }
        function SetCancelCaption($caption)
        {
        }
        function GetCancelCaption()
        {
        }
        function SetDisplayVars($arVars)
        {
        }
        function DisplayVarExists($varName)
        {
        }
        function GetDisplayVars()
        {
        }
        function SetError($strError, $id = \false)
        {
        }
        function GetErrors()
        {
        }
        //Text and textarea controls
        function ShowInputField($type, $name, $arAttributes = array())
        {
        }
        //Checkbox control
        function ShowCheckboxField($name, $value, $arAttributes = array())
        {
        }
        //Radio button control
        function ShowRadioField($name, $value, $arAttributes = array())
        {
        }
        //Dropdown and multiple controls
        function ShowSelectField($name, $arValues = array(), $arAttributes = array())
        {
        }
        //Hidden control
        function ShowHiddenField($name, $value, $arAttributes = array())
        {
        }
        //File control
        function ShowFileField($name, $arAttributes = array())
        {
        }
        function SaveFile($name, $arRestriction = array())
        {
        }
        function _ShowAttributes($arAttributes)
        {
        }
        /**
         * Returns wizard reference
         *
         * @return CWizardBase
         */
        function GetWizard()
        {
        }
        function _SetWizard($wizard)
        {
        }
        function SetAutoSubmit($bool = \true)
        {
        }
        function IsAutoSubmit()
        {
        }
    }
}
namespace Bitrix\Sale\CrmSiteMaster\Steps {
    /**
     * Class SiteStep
     * Select or create site
     *
     * @package Bitrix\Sale\CrmSiteMaster\Steps
     */
    class SiteStep extends \CWizardStep
    {
        const SITE_TEMPLATE_LOGIN = "login";
        const WIZARD_PATH = "intranet/install/wizards/bitrix/";
        const WIZARD_NAME = "portal";
        private $currentStepName = __CLASS__;
        /** @var \SaleCrmSiteMaster */
        private $component = null;
        /** @var Main\Request */
        private $request;
        private $formFieldList = ["CRM_SITE", "LID", "NAME", "SERVER_NAME", "DOC_ROOT", "WIZARD_REWRITE"];
        /** @var array site's fields */
        private $fields = [];
        /**
         * Check step errors
         */
        private function setStepErrors()
        {
        }
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id, title and next/prev step
         *
         * @throws Main\SystemException
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         *
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function showStep()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function onPostForm()
        {
        }
        /**
         * @throws Main\SystemException
         */
        private function checkSite()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function setFields()
        {
        }
        /**
         * @return array
         */
        private function getFields()
        {
        }
        /**
         * Check site's fields
         *
         * @throws Main\SystemException
         */
        private function checkFields()
        {
        }
        /**
         * @return array
         * @throws Main\SystemException
         */
        private function createNewSite()
        {
        }
        /**
         * @param $serverName
         * @return mixed
         */
        private function prepareServerName($serverName)
        {
        }
        /**
         * @param $documentRoot
         * @return bool
         */
        private function isIndexFileExists($documentRoot)
        {
        }
        /**
         * @param $documentRoot
         * @return array
         */
        private function getMissingRequiredFileList($documentRoot)
        {
        }
        /**
         * @param $documentRoot
         * @return bool
         */
        private function isDocumentRootExists($documentRoot)
        {
        }
        /**
         * @param $lid
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        private function prepareSite($lid)
        {
        }
        /**
         * @param $arFields
         */
        private function addTemplate(&$arFields)
        {
        }
        /**
         * Copy template files
         *
         * @return bool
         */
        private function copyTemplate()
        {
        }
        /**
         * @param $siteId
         * @throws Main\ArgumentOutOfRangeException
         */
        private function setAuthComponentsTemplate($siteId)
        {
        }
        /**
         * @param $siteId
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function setLandingOption($siteId)
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getSiteList()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function showSelectSiteHtml()
        {
        }
        /**
         * Add html for creating new site
         */
        private function createNewSiteHtml()
        {
        }
        /**
         * Get site id for form
         *
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getRandSiteId()
        {
        }
        /**
         * @return int
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getSort()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getDefaultParam()
        {
        }
        /**
         * Set site for person types
         *
         * @param $siteId
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function preparePersonTypes($siteId)
        {
        }
        /**
         * Show extended errors
         *
         * @param $strError
         * @return string
         */
        public function showExtendedErrors($strError)
        {
        }
        /**
         * Init form fields from wizard's var
         */
        private function initFormFields()
        {
        }
        /**
         * Save form fields to hidden fields
         *
         * @return string
         */
        private function saveFormHiddenFields()
        {
        }
        /**
         * Save form fields to wizard's var
         */
        private function saveFormFields()
        {
        }
        /**
         * Delete form fields
         */
        private function deleteFormFields()
        {
        }
    }
    /**
     * Class BackupStep
     * Step with check backup
     *
     * @package Bitrix\Sale\CrmSiteMaster\Steps
     */
    class BackupStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleCrmSiteMaster */
        private $component = null;
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id, title and next step
         *
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         */
        public function showStep()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
    }
    /**
     * Class B24ConnectorStep
     * Step of check agents
     *
     * @package Bitrix\Sale\CrmSiteMaster\Steps
     */
    class B24ConnectorStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleCrmSiteMaster */
        private $component = null;
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id and title
         *
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         *
         * @return bool
         */
        public function showStep()
        {
        }
        /**
         * @return bool
         */
        public function onPostForm()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
    }
    /**
     * Class WelcomeStep
     * Step with welcome information
     *
     * @package Bitrix\Sale\CrmSiteMaster\Steps
     */
    class WelcomeStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleCrmSiteMaster */
        private $component = null;
        /**
         * Check step errors
         */
        private function setStepErrors()
        {
        }
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id, title and next step
         *
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         */
        public function showStep()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
    }
    /**
     * Class UpdateSystemStep
     * @package Bitrix\Sale\CrmSiteMaster\Steps
     */
    class UpdateSystemStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleCrmSiteMaster */
        private $component = null;
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id and title
         *
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * @return bool
         */
        public function showStep()
        {
        }
        /**
         * Prepare html content with modules to be installed
         */
        private function installModulesHtml()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
        /**
         * @return bool
         */
        public function onPostForm()
        {
        }
    }
}
namespace {
    class CFinishWizardStep extends \CWizardStep
    {
        function InitStep()
        {
        }
        function ShowStep()
        {
        }
        function CreateNewIndex()
        {
        }
    }
    class FinishStep extends \CFinishWizardStep
    {
    }
}
namespace Bitrix\Sale\CrmSiteMaster\Steps {
    /** @noinspection PhpUndefinedClassInspection */
    /**
     * Class FinishStep
     * Step with finish information
     *
     * @package Bitrix\Sale\CrmSiteMaster\Steps
     */
    class FinishStep extends \FinishStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleCrmSiteMaster */
        private $component = null;
        private $siteId;
        private $sitePath;
        private $siteDir;
        /**
         * Initialization step id and title
         */
        public function initStep()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function showStep()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function showButtons()
        {
        }
        /**
         * Create index.php
         *
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function createNewIndex()
        {
        }
    }
    /**
     * Class AgentStep
     * Step of check agents
     *
     * @package Bitrix\Sale\CrmSiteMaster\Steps
     */
    class AgentStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleCrmSiteMaster */
        private $component = null;
        /**
         * Check step errors
         */
        private function setStepErrors()
        {
        }
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id and title
         *
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         *
         * @return bool
         */
        public function showStep()
        {
        }
        /**
         * @return bool
         */
        public function onPostForm()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
    }
}
namespace {
    class CWizardTemplate
    {
        var $wizard;
        function GetLayout()
        {
        }
        /**
         * Returns wizard reference
         *
         * @return CWizardBase
         */
        function GetWizard()
        {
        }
        function _SetWizard($wizard)
        {
        }
    }
}
namespace Bitrix\Sale\CrmSiteMaster\Templates {
    /**
     * Class CrmSiteMasterTemplate
     * Template for master
     *
     * @package Bitrix\Sale\CrmSiteMaster\Templates
     */
    class CrmSiteMasterTemplate extends \CWizardTemplate
    {
        /**
         * @return string
         */
        public function getLayout()
        {
        }
    }
}
namespace Bitrix\Sale\CrmSiteMaster\Steps {
    /**
     * Class ModuleStep
     * Show list of required modules
     *
     * @package Bitrix\Sale\CrmSiteMaster\Steps
     */
    class ModuleStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleCrmSiteMaster */
        private $component = null;
        private $modulesChecked = ["NOT_INSTALLED_MODULES" => [], "MIN_VERSION_MODULES" => []];
        /**
         * Check step errors
         */
        private function setStepErrors()
        {
        }
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id, title and next/prev step
         *
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         *
         * @return bool
         */
        public function showStep()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
        /**
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function onPostForm()
        {
        }
        /**
         * Prepare html content with modules to be installed
         */
        private function installModulesHtml()
        {
        }
        /**
         * Prepare html content with modules to be updated
         */
        private function minModulesHtml()
        {
        }
        /**
         * @param $id
         * @param $columns
         * @param $rows
         * @return false|string
         */
        private function includeGridComponent($id, $columns, $rows)
        {
        }
    }
}
namespace {
    class CDataInstallWizardStep extends \CWizardStep
    {
        var $repeatCurrentService = \false;
        function CorrectServices(&$arServices)
        {
        }
        function InitStep()
        {
        }
        function ShowStep()
        {
        }
        function OnPostForm()
        {
        }
        function InstallService($serviceID, $serviceStage)
        {
        }
        function GetNextStep(&$arServices, &$currentService, &$currentStage)
        {
        }
        function GetFirstStep(&$arServices)
        {
        }
    }
    class DataInstallStep extends \CDataInstallWizardStep
    {
        function CorrectServices(&$arServices)
        {
        }
    }
}
namespace Bitrix\Sale\CrmSiteMaster\Steps {
    /** @noinspection PhpUndefinedClassInspection */
    /**
     * Class DataInstallStep
     * Install portal and services
     *
     * @package Bitrix\Sale\CrmSiteMaster\Steps
     */
    class DataInstallStep extends \DataInstallStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleCrmSiteMaster */
        private $component = null;
        /**
         * Initialization step id and title
         */
        public function initStep()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function showStep()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function onPostForm()
        {
        }
        /**
         * @param $serviceID
         * @param $serviceStage
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function installService($serviceID, $serviceStage)
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function prepareWizardVars()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function prepareSite()
        {
        }
    }
    /**
     * Class PersonTypeStep
     * Show person type info
     *
     * @package Bitrix\Sale\CrmSiteMaster\Steps
     */
    class PersonTypeStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleCrmSiteMaster */
        private $component = null;
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Check step errors
         */
        private function setStepErrors()
        {
        }
        /**
         * Initialization step id, title and next/prev step
         *
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * @return bool
         */
        public function onPostForm()
        {
        }
        /**
         * Show step content
         *
         * @return bool
         */
        public function showStep()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
    }
    /**
     * Class CrmGroupStep
     * @package Bitrix\Sale\CrmSiteMaster\Steps
     */
    class CrmGroupStep extends \CWizardStep
    {
        const ADMIN_USER_GROUP_ID = 1;
        const SELECTED_USER_GROUPS = "~SELECTED_USER_GROUPS";
        const EMPLOYEE_USER_GROUP_ID = "~EMPLOYEE_USER_GROUP_ID";
        private $currentStepName = __CLASS__;
        /** @var \SaleCrmSiteMaster */
        private $component = null;
        /** @var Main\Request */
        private $request;
        /**
         * Check step errors
         */
        private function setStepErrors()
        {
        }
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id, title and next step
         *
         * @throws Main\SystemException
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         *
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function showStep()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function onPostForm()
        {
        }
        /**
         * @throws Main\ArgumentOutOfRangeException
         */
        private function saveSelectedGroups()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function setIntranetUserGroups()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function showSelectUserGroupManagerHtml()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function showSelectUserGroupAdminHtml()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getUserGroupList()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
        /**
         * @return int|null
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getEmployeesGroupId()
        {
        }
        /**
         * @param $crmRoleId
         * @param array $groups
         */
        private function setCrmRole($crmRoleId, array $groups)
        {
        }
        /**
         * @param $name
         * @return int|null
         */
        private function getCrmRoleId($name)
        {
        }
    }
    /**
     * Class SiteInstructionStep
     * Step with instructions for creating a site
     *
     * @package Bitrix\Sale\CrmSiteMaster\Steps
     */
    class SiteInstructionStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var Main\Request */
        private $request;
        /** @var \SaleCrmSiteMaster */
        private $component = null;
        private $formFieldList = ["CRM_SITE", "LID", "NAME", "SERVER_NAME", "DOC_ROOT", "WIZARD_REWRITE"];
        /**
         * Check step errors
         */
        private function setStepErrors()
        {
        }
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id, title and next step
         *
         * @throws \ReflectionException
         * @throws Main\SystemException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         */
        public function showStep()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
        /**
         * Save form fields to wizard's var
         */
        private function setFormFields()
        {
        }
    }
    /**
     * Class BitrixVmStep
     * Step of check Bitrix env
     *
     * @package Bitrix\Sale\CrmSiteMaster\Steps
     */
    class BitrixVmStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleCrmSiteMaster */
        private $component = null;
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id and title
         *
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         *
         * @return bool
         */
        public function showStep()
        {
        }
        /**
         * @return bool
         */
        public function onPostForm()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
    }
    /**
     * Class PushAndPullStep
     * Step of check agents
     *
     * @package Bitrix\Sale\CrmSiteMaster\Steps
     */
    class PushAndPullStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleCrmSiteMaster */
        private $component = null;
        /** @var Main\Request */
        private $request;
        /**
         * Check step errors
         */
        private function setStepErrors()
        {
        }
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id and title
         *
         * @throws Main\SystemException
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         *
         * @return bool
         */
        public function showStep()
        {
        }
        /**
         * @return bool
         */
        public function onPostForm()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
    }
    /**
     * Class ModuleInstallStep
     * Install required modules
     *
     * @package Bitrix\Sale\CrmSiteMaster\Steps
     */
    class ModuleInstallStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleCrmSiteMaster */
        private $component = null;
        /** @var ModuleChecker */
        private $moduleChecker;
        /** @var array */
        private $modules = [];
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id, title and next/prev step
         *
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         *
         * @return bool
         * @throws Main\ArgumentOutOfRangeException
         */
        public function showStep()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\SystemException
         */
        public function onPostForm()
        {
        }
        /**
         * @return array
         */
        private function getFirstModule()
        {
        }
        /**
         * Get next module for installation
         *
         * @param $moduleId
         * @return array
         */
        private function getModuleStep($moduleId)
        {
        }
        /**
         * @param $moduleId
         */
        private function onModuleInstalledEvent($moduleId)
        {
        }
        /**
         * Install required modules
         *
         * @param $moduleId
         * @return bool
         */
        private function installModule($moduleId)
        {
        }
        /**
         * @param $module
         * @return bool
         */
        private function checkModuleTables($module)
        {
        }
        /**
         * @param $response
         */
        private function sendResponse($response)
        {
        }
    }
    /**
     * Class ActivationKeyStep
     * @package Bitrix\Sale\CrmSiteMaster\Steps
     */
    class ActivationKeyStep extends \CWizardStep
    {
        /** @var Main\Request */
        private $request;
        private $currentStepName = __CLASS__;
        /** @var \SaleCrmSiteMaster */
        private $component = null;
        /**
         * Check step errors
         */
        private function setStepErrors()
        {
        }
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id, title and next/prev step
         *
         * @throws Main\SystemException
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         *
         * @return bool
         */
        public function showStep()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
        /**
         * @return bool
         */
        public function onPostForm()
        {
        }
    }
}
namespace {
    class SaleBasketLineComponent extends \CBitrixComponent
    {
        protected $bUseCatalog = \null;
        protected $readyForOrderFilter = array("CAN_BUY" => "Y", "DELAY" => "N", "SUBSCRIBE" => "N");
        protected $disableUseBasket = \false;
        protected $currentFuser = \null;
        /** @var Sale\Basket\Storage $basketStorage */
        protected $basketStorage;
        // temporary unused
        public function onPrepareComponentParams($arParams)
        {
        }
        protected function getUserFilter()
        {
        }
        protected function removeItemFromCart()
        {
        }
        public function executeComponent()
        {
        }
        private static $nextNumber = 0;
        public static function getNextNumber()
        {
        }
        private function getProducts()
        {
        }
        protected function loadProductPictures(array &$basketItemList)
        {
        }
        private function setImgSrc(&$arBasketItems, $arElementId, $arSku2Parent)
        {
        }
        /**
         * @param \Bitrix\Main\Event $event
         *
         * @return \Bitrix\Main\EventResult
         */
        public function onSaleBasketItemEntitySaved(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param \Bitrix\Main\Event $event
         *
         * @return \Bitrix\Main\EventResult
         */
        public function onSaleBasketItemDeleted(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param \Bitrix\Sale\Basket $basket
         *
         * @return float
         */
        protected static function getActualBasketPrice(\Bitrix\Sale\Basket $basket)
        {
        }
        /**
         * @param \Bitrix\Sale\Basket $basket
         *
         * @return float
         */
        protected static function getActualBasketQuantity(\Bitrix\Sale\Basket $basket)
        {
        }
        protected function getFuserId()
        {
        }
        protected function loadCurrentFuser()
        {
        }
        protected function getBasketStorage()
        {
        }
        private function makeCompatibleArray(&$array)
        {
        }
        private function getItemData(\Bitrix\Sale\BasketItem $item)
        {
        }
        /**
         * @param int $count
         * @param array $messages
         * @return string
         */
        protected static function getBasketCountDescription(int $count, array $messages)
        {
        }
    }
    class CSaleStoreChooseComponent extends \CBitrixComponent
    {
        const MAP_TYPE_YANDEX = 'yandex';
        const MAP_TYPE_GOOGLE = 'google';
        const MAP_TYPE_NONE = 'none';
        /**
         * @param array $params
         * @return bool
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         */
        public function checkParams($params)
        {
        }
        /**
         * @param array $params
         * @return array
         */
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * void
         */
        public function executeComponent()
        {
        }
        /**
         * @return string
         */
        protected function getMapParamScaleName()
        {
        }
        /**
         * @return string
         */
        protected function getMapParamLonName()
        {
        }
        /**
         * @return string
         */
        protected function getMapParamLatName()
        {
        }
    }
    class CBitrixLocationSelectorSearchComponent extends \CBitrixComponent
    {
        const START_SEARCH_LEN = 2;
        const COMPONENT_CACHE_DIR = '/sale/location/links';
        /**
         * Fatal error list. Any fatal error makes useless further execution of a component code. 
         * In most cases, there will be only one error in a list according to the scheme "one shot - one dead body"
         *
         * @var string[] Array of fatal errors.
         */
        protected $errors = array();
        /**
         * Contains some valuable info from $_REQUEST
         *
         * @var object request info
         */
        protected $request = array();
        /**
         * Gathered options that are required
         *
         * @var string[] options
         */
        protected $options = array();
        protected $dbResult = array();
        protected $filterBySite = \false;
        protected $currentCache = \false;
        /**
         * Function checks if required modules installed. If not, throws an exception
         * @return void
         */
        protected function checkRequiredModules()
        {
        }
        /**
         * Function checks if user have basic permissions to launch the component
         * @return void
         */
        protected function checkPermissions()
        {
        }
        /**
         * Function checks and prepares all the parameters passed. Everything about $arParam modification is here.
         * @param mixed[] $arParams List of unchecked parameters
         * @return mixed[] Checked and valid parameters
         */
        public function onPrepareComponentParams($arParams)
        {
        }
        /**
         * Function processes and corrects $_REQUEST. Everyting about $_REQUEST lies here.
         * @return void
         */
        protected function processRequest()
        {
        }
        protected function checkParameters()
        {
        }
        /**
         * Function forces 'Y'/'N' value to boolean
         * @param mixed $fld Field value
         * @param string $default Default value
         * @return string parsed value
         */
        public static function tryParseBoolean(&$fld)
        {
        }
        /**
         * Function processes parameter value by white list, if gets null, passes the first value in white list
         * @param mixed $fld Field value
         * @param string $default Default value
         * @return string parsed value
         */
        public static function tryParseWhiteList(&$fld, $list = array())
        {
        }
        /**
         * Function reduces input value to integer type, and, if gets null, passes the default value
         * @param mixed $fld Field value
         * @param int $default Default value
         * @param int $allowZero Allows zero-value of the parameter
         * @return int Parsed value
         */
        public static function tryParseInt(&$fld, $default = \false, $allowZero = \false)
        {
        }
        /**
         * Function processes string value and, if gets null, passes the default value to it
         * @param mixed $fld Field value
         * @param string $default Default value
         * @return string parsed value
         */
        public static function tryParseString(&$fld, $default = \false)
        {
        }
        /**
         * Function processes string value and, if gets null, passes the default value to it
         * @param mixed $fld Field value
         * @param string $default Default value
         * @return string parsed value
         */
        public static function tryParseStringStrict(&$fld, $default = \false)
        {
        }
        /**
         * Fetches all required data from database. Everyting that connected with data fetch lies here.
         * @return void
         */
        protected function obtainData()
        {
        }
        // at this point we can make descision to interrupt component execution, based on some conditions
        protected function obtainNonCachedData()
        {
        }
        // here we pick up cached data
        protected function obtainCachedData(&$cachedData)
        {
        }
        // here we pick up data that depends on what cached data we currently have
        protected function obtainCacheDependentData()
        {
        }
        protected function obtainDataLocation()
        {
        }
        protected function getLocationListParameters()
        {
        }
        protected function obtainDataLocationTypes(&$cachedData)
        {
        }
        protected function obtainDataConnectLocations(&$cachedData)
        {
        }
        /**
         * Read some data from database, using cache
         * @return void
         */
        protected function obtainDataDefaultLocations(&$cachedData)
        {
        }
        protected function obtainDataAdditional()
        {
        }
        protected function getCacheDependences()
        {
        }
        protected static function getStrForVariable($val)
        {
        }
        protected static function getNodeSelectFields()
        {
        }
        protected static function forceToType($node)
        {
        }
        /**
         * Move data read from database to a specially formatted $arResult
         * @return void
         */
        protected function formatResult()
        {
        }
        /**
         * Function implements all the life cycle of our component
         * @return void
         */
        public function executeComponent()
        {
        }
        //////////////////////////////////////////
        // static functions for external usage
        protected static $allowedLocationFields = array(
            // entity
            'ID' => 'i',
            'CODE' => 's',
            'TYPE_ID' => 'i',
            'SORT' => 'i',
            'LEFT_MARGIN' => 'i',
            'RIGHT_MARGIN' => 'i',
            'PARENT_ID' => 'i',
            'CNT' => 'i',
            'CHILD_CNT' => 'i',
            'IS_PARENT' => 'i',
            'NAME.NAME' => 's',
            'NAME.LANGUAGE_ID' => 's',
            'GROUPLOCATION.LOCATION_GROUP_ID' => 'i',
            'LONGITUDE' => 's',
            'LATITUDE' => 's',
            // special (filter only)
            'PHRASE' => 's',
            'SITE_ID' => 's',
        );
        protected static $allowedAdditionals = array('PATH' => \true);
        protected static function processSearchRequestV2CheckQuery($parameters)
        {
        }
        protected static function processSearchRequestV2AfterSearchFormatResult(&$data, $parameters)
        {
        }
        protected static function processSearchRequestV2ModifyParameters($parameters)
        {
        }
        protected static function processSearchRequestV2GetFinderBehaviour()
        {
        }
        public static function processSearchRequestV2($parameters)
        {
        }
        protected static function processSearchRequestV2GetNameAlias($parameters)
        {
        }
        protected static function getPathNodesSelect()
        {
        }
        protected static function getPathToNodesV2($list, $parameters = array())
        {
        }
        protected static function processSearchRequestV2GetAdditionalPathNodes(&$data, $parameters)
        {
        }
        protected static function processSearchRequestV2GetAdditional(&$data, $parameters)
        {
        }
        protected static function getClassName()
        {
        }
        ////////////////////////
        // Cache functions
        ////////////////////////
        /**
         * Function checks if cacheing is enabled in component parameters
         * @return boolean
         */
        protected final function getCacheNeed()
        {
        }
        /**
         * Function perform start of cache process, if needed
         * @param mixed[]|string $cacheId An optional addition for cache key
         * @return boolean True, if cache content needs to be generated, false if cache is valid and can be read
         */
        protected final function startCache($cacheId = array())
        {
        }
        /**
         * Function perform start of cache process, if needed
         * @throws Main\SystemException
         * @param mixed[] $data Data to be stored in the cache
         * @return void
         */
        protected final function endCache($data = \false)
        {
        }
        /**
         * Function discard cache generation
         * @throws Main\SystemException
         * @return void
         */
        protected final function abortCache()
        {
        }
        /**
         * Function return data stored in cache
         * @throws Main\SystemException
         * @return void|mixed[] Data from cache
         */
        protected final function getCacheData()
        {
        }
        /**
         * Function leaves the ability to modify cache key in future.
         * @return string Cache key to be used in CPHPCache()
         */
        protected final function getCacheKey($cacheId = array())
        {
        }
        ////////////////////////////////////////////////////////
        // DEPRECATED methods to support DEPRECATED query method
        //////////////////////////////////////////
        // static functions for external usage
        /**
         * @deprecated
         */
        protected static function getPathToNodes($list)
        {
        }
        /**
         * @deprecated
         */
        public static function processSearchRequest()
        {
        }
        /**
         * @deprecated
         */
        protected static function processSearchGetParameters()
        {
        }
        /**
         * @deprecated
         */
        protected static function processSearchRequestGetLang()
        {
        }
        /**
         * @deprecated
         */
        protected static function processSearchGetFilter()
        {
        }
        /**
         * @deprecated
         */
        protected static function processSearchGetSelect()
        {
        }
        /**
         * @deprecated
         */
        protected static function processSearchGetList($parameters)
        {
        }
        /**
         * @deprecated
         */
        protected static function processSearchGetAdditionalPathNodes(&$data)
        {
        }
        /**
         * @deprecated
         */
        protected static function processSearchGetAdditional($result)
        {
        }
        /**
         * @deprecated
         */
        protected static function isNonemptyArray($arr)
        {
        }
    }
    class CBitrixLocationSelectorSystemComponent extends \CBitrixLocationSelectorSearchComponent
    {
        const ID_BLOCK_LEN = 90;
        const HUGE_TAIL_LEN = 30;
        const PAGE_SIZE = 100;
        const LOCATION_ENTITY_NAME = '\\Bitrix\\Sale\\Location\\LocationTable';
        protected $entityClass = \false;
        protected $useGroups = \true;
        protected $useCodes = \false;
        protected $dbResult = array();
        private $locationsFromRequest = \false;
        private $groupsFromRequest = \false;
        protected $locationFlag = '';
        protected $groupFlag = '';
        /**
         * Function checks and prepares all the parameters passed. Everything about $arParam modification is here.
         * @param mixed[] $arParams List of unchecked parameters
         * @return mixed[] Checked and valid parameters
         */
        public function onPrepareComponentParams($arParams)
        {
        }
        protected function obtainCachedData(&$cachedData)
        {
        }
        protected function obtainCacheDependentData()
        {
        }
        protected function obtainDataLocationTypes(&$cachedData)
        {
        }
        protected function obtainDataGroups(&$cachedData)
        {
        }
        protected function obtainDataLevelOneLocations(&$cachedData)
        {
        }
        /**
         * Returns a list of items by supplying a set of their IDs or CODEs
         * 
         * @param string $entityClass
         * @param string[]|integer[] $list
         * @param mixed[] $parameters
         * @param string $fieldCode identify what type of linking is used. Only two of legal values allowed: ID and CODE
         *
         * @return Bitrix\Main\DB\ArrayResult $result
         */
        protected static function getEntityListByListOfPrimary($entityClass, $list = array(), $parameters = array(), $fieldCode = 'ID')
        {
        }
        protected function obtainDataConnectors()
        {
        }
        // override for do-nothing
        protected function obtainDataLocation()
        {
        }
        protected function checkParameters()
        {
        }
        protected function getCacheDependences()
        {
        }
        /**
         * Move data read from database to a specially formatted $arResult
         * @return void
         */
        protected function formatResult()
        {
        }
        protected static function processSearchRequestV2GetFinderBehaviour()
        {
        }
        protected static function processSearchRequestV2GetAdditional(&$data, $parameters)
        {
        }
        public static function processGetPathRequest($parameters)
        {
        }
        protected static function normalizeList($list, $expectNumeric = \true)
        {
        }
    }
    /**
     * Class CSaleGiftProductComponent
     * @deprecated No longer used by internal code and not recommended.
     * Use "sale.products.gift" instead.
     */
    class CSaleGiftProductComponent extends \CCatalogViewedProductsComponent
    {
        /** @var \Bitrix\Sale\Discount\Gift\Manager */
        protected $giftManager;
        /** @var array */
        private $productIds;
        /**
         * Checks required modules.
         * @throws Exception
         * @return void
         */
        protected function checkModules()
        {
        }
        /**
         * Initializes gift manager.
         * @return void
         */
        protected function initGiftManager()
        {
        }
        /**
         * Event called from includeComponent before component execution.
         *
         * <p>Takes component parameters as argument and should return it formatted as needed.</p>
         * @param array[string]mixed $arParams
         * @return array[string]mixed
         *
         */
        public function onPrepareComponentParams($params)
        {
        }
        protected function fillUrlTemplates()
        {
        }
        private function recreateUrlTemplate($keyTemplate, $urlTemplate)
        {
        }
        /**
         * Returns gift collections for current basket.
         * @return array
         */
        protected function getGiftCollections()
        {
        }
        /**
         * Returns list of product ids which will be showed.
         * @return array
         */
        protected function getProductIds()
        {
        }
        /**
         * Returns pure offers which exist in $this->linkItems, $this->items.
         * You can use the method after execution parent::setItemsOffers(),
         * which fills necessary $this->linkItems, $this->items.
         * @return array
         */
        private function getPureOffers()
        {
        }
        /**
         * Finds array with data which fully describes offer (SKU) by offer id.
         * The method uses $this->items.
         * @param $offerId
         * @return null|array
         */
        private function findPureOfferInItemsByOfferId($offerId)
        {
        }
        /**
         * Sets offers to specific product. If exists another offer, then it will delete.
         * Notice! List of offers have to belong to identical product.
         * @param array $pureOffers
         * @return void
         */
        private function setPureOffersToProduct(array $pureOffers)
        {
        }
        /**
         * Add offers for each catalog product.
         * @return void
         */
        protected final function setItemsOffers()
        {
        }
        protected function setItemsPrices()
        {
        }
        protected function formatResult()
        {
        }
        /**
         * @param $offer
         * @return mixed
         */
        private function setGiftDiscountToMinPrice(array &$offer)
        {
        }
        /**
         * Returns catalog prices data by product.
         * @param array $item Product.
         * @return array
         */
        protected function getPriceDataByItem(array $item)
        {
        }
        protected function isCurrentProductGift(array $product)
        {
        }
        public function executeComponent()
        {
        }
    }
    class CBitrixPersonalOrderListComponent extends \CBitrixComponent
    {
        const E_SALE_MODULE_NOT_INSTALLED = 10000;
        const E_CANNOT_COPY_ORDER_NOT_FOUND = 10001;
        const E_CANNOT_COPY_CANT_ADD_BASKET = 10002;
        const E_CATALOG_MODULE_NOT_INSTALLED = 10003;
        const E_NOT_AUTHORIZED = 10004;
        /**
         * Fatal error list. Any fatal error makes useless further execution of a component code.
         * In most cases, there will be only one error in a list according to the scheme "one shot - one dead body"
         *
         * @var string[] Array of fatal errors.
         */
        protected $errorsFatal = array();
        /**
         * Non-fatal error list. Some non-fatal errors may occur during component execution, so certain functions of the component
         * may became defunct. Still, user should stay informed.
         * There may be several non-fatal errors in a list.
         *
         * @var string[] Array of non-fatal errors.
         */
        protected $errorsNonFatal = array();
        /**
         * Contains some valuable info from $_REQUEST
         *
         * @var object request info
         */
        protected $requestData = array();
        /**
         * Gathered options that are required
         *
         * @var string[] options
         */
        protected $options = array();
        protected $useIblock = \true;
        /**
         * A value of current date format
         *
         * @var string format
         */
        private $dateFormat = '';
        /**
         * Filter used when select orders
         *
         * @var mixed[] filter
         */
        protected $filter = array();
        /**
         * Sort field for query
         *
         * @var string field
         */
        protected $sortBy = \false;
        /**
         * Sort direction for query
         *
         * @var string order: asc or desc
         */
        protected $sortOrder = \false;
        /**
         * @var Sale\Registry registry
         */
        protected $registry = \null;
        protected $dbResult = array();
        private $dbQueryResult = array();
        /**@var Data\Cache $this->currentCache */
        protected $currentCache = \null;
        /**
         * A convert map for method self::formatDate()
         *
         * @var string[] keys
         */
        protected $orderDateFields2Convert = array('DATE_INSERT', 'DATE_STATUS', 'PAY_VOUCHER_DATE', 'DATE_DEDUCTED', 'DATE_UPDATE', 'PS_RESPONSE_DATE', 'DATE_PAY_BEFORE', 'DATE_BILL', 'DATE_CANCELED');
        /**
         * A convert map for method self::formatDate()
         *
         * @var string[] keys
         */
        protected $basketDateFields2Convert = array('DATE_INSERT', 'DATE_UPDATE');
        public function __construct($component = \null)
        {
        }
        /**
         * Function checks if required modules installed. If not, throws an exception
         * @throws Main\SystemException
         * @return void
         */
        protected function checkRequiredModules()
        {
        }
        /**
         * Function checks if user is authorized or not. If not, auth form will be shown.
         * @return void
         * @throws Main\SystemException
         */
        protected function checkAuthorized()
        {
        }
        /**
         * Function checks and prepares all the parameters passed. Everything about $arParam modification is here.
         * @param mixed[] $arParams List of unchecked parameters
         * @return mixed[] Checked and valid parameters
         */
        public function onPrepareComponentParams($arParams)
        {
        }
        /**
         * Function reduces input value to integer type, and, if gets null, passes the default value
         * @param mixed $fld Field value
         * @param int $default Default value
         * @param int $allowZero Allows zero-value of the parameter
         * @return int Parsed value
         */
        public static function tryParseInt(&$fld, $default, $allowZero = \null)
        {
        }
        /**
         * Function processes string value and, if gets null, passes the default value to it
         * @param mixed $fld Field value
         * @param string $default Default value
         * @return string parsed value
         */
        public static function tryParseString(&$fld, $default)
        {
        }
        /**
         * Function forces 'Y'/'N' value to boolean
         * @param mixed $fld Field value
         * @return string parsed value
         */
        public static function tryParseBoolean(&$fld)
        {
        }
        /**
         * Function sets page title, if required
         * @return void
         */
        protected function setTitle()
        {
        }
        /**
         * Function gets all options required for component
         * @return void
         */
        protected function getOptions()
        {
        }
        /**
         * Function processes and corrects $_REQUEST. Everything about $_REQUEST lies here.
         * @return void
         */
        protected function processRequest()
        {
        }
        /**
         * Read filter from session (or anywhere else), if required
         * @return void
         */
        protected function filterRestore()
        {
        }
        /**
         * Store filter in session (or anywhere else), if required.
         * @return void
         */
        protected function filterStore()
        {
        }
        /**
         * Creates filter for CSaleOrder::GetList() based on $_REQUEST and other parameters
         * @return void
         */
        protected function prepareFilter()
        {
        }
        /**
         * Function wraps action list evaluation into try-catch block.
         * @return void
         */
        private function performActions()
        {
        }
        /**
         * Function perform pre-defined list of actions based on current state of $_REQUEST and parameters.
         * @return void
         */
        protected function performActionList()
        {
        }
        /**
         * Function checks if order with supplied id is really exists.
         * @param int|string $id Order id
         * @return int Order id
         */
        private function getRealId($id)
        {
        }
        /**
         * Perform the following action: copy order
         * @throws Main\SystemException
         * @return void
         */
        protected function performActionCopyOrder()
        {
        }
        /**
         * Function obtains all properties of a basket item
         * @param int $id Basket item Id to search for
         * @return mixed[] List of basket item properties
         */
        protected function getBasketItemProps($id)
        {
        }
        /**
         * The default action in case of success copying order
         * @return void
         */
        protected function doAfterOrderCopyed()
        {
        }
        /**
         * Function performs moving entire basket content of a certain order into client`s basket. It implements "copy order" action.
         * @param int $id Order id
         * @throws Main\SystemException
         * @return void
         */
        protected function copyOrder2CustomerBasket($id)
        {
        }
        /**
         * Read some data from database, using cache. Under some info we mean status list, delivery system list and so on.
         * This will be a shared cache between sale.personal.order.list and sale.personal.order.detail, so beware of collisions.
         * @return void
         * @throws Exception
         * @throws Main\SystemException
         */
        protected function obtainDataReferences()
        {
        }
        /**
         * Perform reading main data from database, no cache is used
         * @return void
         */
        protected function obtainDataOrders()
        {
        }
        /**
         * Fetches all required data from database. Everything that connected with data fetch is here.
         * @return void
         */
        protected function obtainData()
        {
        }
        /**
         * Move data read from database to a specially formatted $arResult
         * @return void
         */
        protected function formatResult()
        {
        }
        /**
         * Move all errors to $arResult, if there were any
         * @return void
         */
        protected function formatResultErrors()
        {
        }
        /**
         * Function implements all the life cycle of our component
         * @return void
         */
        public function executeComponent()
        {
        }
        /**
         * Return current class registry
         *
         * @param mixed[] array that date conversion performs in
         * @return void
         */
        protected function setRegistry()
        {
        }
        /**
         * Convert dates if date template set
         * @param mixed[] $arr data array to be converted
         * @param string[] $conversion contains sublist of keys of $arr, that will be converted
         * @return void
         */
        protected function formatDate(&$arr, $conversion)
        {
        }
        /**
         * Function checks if it`s argument is a legal array for foreach() construction
         * @param mixed $arr data to check
         * @return boolean
         */
        protected static function isNonemptyArray($arr)
        {
        }
        ////////////////////////
        // Cache functions
        ////////////////////////
        /**
         * Function checks if cacheing is enabled in component parameters
         * @return boolean
         */
        protected final function getCacheNeed()
        {
        }
        /**
         * Function perform start of cache process, if needed
         * @param mixed[]|string $cacheId An optional addition for cache key
         * @return boolean True, if cache content needs to be generated, false if cache is valid and can be read
         */
        protected final function startCache($cacheId = array())
        {
        }
        /**
         * Function perform start of cache process, if needed
         * @throws Main\SystemException
         * @param mixed[] $data Data to be stored in the cache
         * @return void
         */
        protected final function endCache($data = \null)
        {
        }
        /**
         * Function discard cache generation
         * @throws Main\SystemException
         * @return void
         */
        protected final function abortCache()
        {
        }
        /**
         * Function return data stored in cache
         * @throws Main\SystemException
         * @return bool|mixed[] Data from cache
         */
        protected final function getCacheData()
        {
        }
        /**
         * Function leaves the ability to modify cache key in future.
         * @param array $cacheId
         * @return string Cache key to be used in CPHPCache()
         */
        protected final function getCacheKey($cacheId = array())
        {
        }
    }
}
namespace Bitrix\Iblock\Component {
    abstract class Base extends \CBitrixComponent
    {
        const ACTION_BUY = 'BUY';
        const ACTION_ADD_TO_BASKET = 'ADD2BASKET';
        const ACTION_SUBSCRIBE = 'SUBSCRIBE_PRODUCT';
        const ACTION_ADD_TO_COMPARE = 'ADD_TO_COMPARE_LIST';
        const ACTION_DELETE_FROM_COMPARE = 'DELETE_FROM_COMPARE_LIST';
        const ERROR_TEXT = 1;
        const ERROR_404 = 2;
        const PARAM_TITLE_MASK = '/^[A-Za-z_][A-Za-z01-9_]*$/';
        const SORT_ORDER_MASK = '/^(asc|desc|nulls)(,asc|,desc|,nulls){0,1}$/i';
        private $action = '';
        private $cacheUsage = true;
        private $extendedMode = true;
        /** @var ErrorCollection */
        protected $errorCollection;
        protected $separateLoading = false;
        protected $selectFields = array();
        protected $filterFields = array();
        protected $sortFields = array();
        /** @var array Array of ids to show directly */
        protected $productIds = array();
        protected $productIdMap = array();
        protected $iblockProducts = array();
        protected $elements = array();
        protected $elementLinks = array();
        protected $productWithOffers = array();
        protected $productWithPrices = array();
        protected $globalFilter = array();
        protected $navParams = false;
        protected $useCatalog = false;
        protected $isIblockCatalog = false;
        protected $useDiscountCache = false;
        /** @var bool Fill old format $arResult and enable deprecated functionality for existing components (catalog.section, catalog.element, etc) */
        protected $compatibleMode = false;
        protected $oldData = array();
        /** @var array Item prices (new format) */
        protected $prices = array();
        protected $calculatePrices = array();
        protected $measures = array();
        protected $ratios = array();
        protected $quantityRanges = array();
        protected $storage = array();
        protected $recommendationIdToProduct = array();
        /**
         * Base constructor.
         * @param \CBitrixComponent|null $component		Component object if exists.
         */
        public function __construct($component = null)
        {
        }
        /**
         * Return current action.
         *
         * @return string
         */
        public function getAction()
        {
        }
        /**
         * Action setter.
         *
         * @param string $action		Action code.
         * @return void
         */
        protected function setAction($action)
        {
        }
        /**
         * Return true if errors exist.
         *
         * @return bool
         */
        protected function hasErrors()
        {
        }
        /**
         * Errors processing depending on error codes.
         *
         * @return bool
         */
        protected function processErrors()
        {
        }
        /**
         * Cache usage setter. Enable it to ignore cache.
         *
         * @param bool $state	Cache usage mode.
         * @return $this
         */
        protected function setCacheUsage($state)
        {
        }
        /**
         * Check if cache disabled.
         *
         * @return bool
         */
        public function isCacheDisabled()
        {
        }
        /**
         * Extended mode setter.
         * Enabled - adds result_modifier.php template logic in component class.
         * In both cases(true or false) result_modifier.php will be included.
         *
         * @param bool $state	New extended mode.
         * @return $this
         */
        protected function setExtendedMode($state)
        {
        }
        /**
         * Check if extended mode is enabled.
         *
         * @return bool
         */
        public function isExtendedMode()
        {
        }
        /**
         * Enable/disable fill old keys in result data and use of outdated settings. Strict use only for catalog.element, .section, .top, etc.
         *
         * @param bool $state		Enable/disable state.
         * @return void
         */
        protected function setCompatibleMode($state)
        {
        }
        /**
         * Return state filling old keys in result data. This method makes no sense for the new components.
         *
         * @return bool
         */
        public function isEnableCompatible()
        {
        }
        /**
         * @param $state
         * @return void
         */
        protected function setSeparateLoading($state)
        {
        }
        /**
         * @return bool
         */
        protected function isSeparateLoading()
        {
        }
        /**
         * Return settings script path with modified time postfix.
         *
         * @param string $componentPath		Path to component.
         * @param string $settingsName		Settings name.
         * @return string
         */
        public static function getSettingsScript($componentPath, $settingsName)
        {
        }
        /**
         * Processing of component parameters.
         *
         * @param array $params			Raw component parameters values.
         * @return mixed
         */
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * Check necessary modules for component.
         *
         * @return bool
         */
        protected function checkModules()
        {
        }
        /**
         * Fill discount cache before price calculation.
         *
         * @return void
         */
        protected function initCatalogDiscountCache()
        {
        }
        /**
         * Clear discount cache.
         *
         * @return void
         */
        protected function clearCatalogDiscountCache()
        {
        }
        /**
         * Check the settings for the output price currency.
         *
         * @return void
         */
        protected function initCurrencyConvert()
        {
        }
        /**
         * Check offers iblock.
         *
         * @param int $iblockId		Iblock Id.
         * @return bool
         */
        protected function offerIblockExist($iblockId)
        {
        }
        /**
         * Load used iblocks info to component storage.
         *
         * @return void
         */
        protected function initCatalogInfo()
        {
        }
        protected function getProductInfo($productId)
        {
        }
        /**
         * Load catalog prices in component storage.
         *
         * @return void
         */
        protected function initPrices()
        {
        }
        /**
         * Load catalog vats in component storage.
         *
         * @return void
         */
        protected function initVats()
        {
        }
        /**
         * @return void
         */
        protected function initIblockPropertyFeatures()
        {
        }
        /**
         * Initialize and data process of iblock elements.
         *
         * @return void
         */
        protected function initElementList()
        {
        }
        /**
         * Return elements.
         *
         * @param \CIBlockResult $elementIterator		Iterator.
         * @return mixed
         */
        protected abstract function getIblockElements($elementIterator);
        /**
         * Sort elements by original position (in case when product ids used in GetList).
         *
         * @return void
         */
        protected function sortElementList()
        {
        }
        /**
         * Create link to elements for fast access.
         *
         * @return void
         */
        protected function makeElementLinks()
        {
        }
        /**
         * Return array of iblock element ids to show for "initialLoad" action.
         *
         * @return bool|array
         */
        protected function getProductIds()
        {
        }
        /**
         * Return array of iblock element ids to show for "bigDataLoad" action.
         *
         * @return array
         */
        protected function getBigDataProductIds()
        {
        }
        /**
         * Return recommended best seller products ids.
         *
         * @param array $ids		Products id.
         * @return array
         */
        protected function getBestSellersRecommendation($ids)
        {
        }
        /**
         * Return recommended most viewed products ids.
         *
         * @param array $ids		Products id.
         * @return array
         */
        protected function getMostViewedRecommendation($ids)
        {
        }
        /**
         * Return random products ids.
         *
         * @param array $ids		Products id.
         * @return array
         */
        protected function getRandomRecommendation($ids)
        {
        }
        /**
         * Filter correct product ids.
         *
         * @param array $ids				Items ids.
         * @param array $filterIds			Filtered ids.
         * @param bool $useSectionFilter	Check filter by section.
         * @return array
         */
        protected function filterByParams($ids, $filterIds = array(), $useSectionFilter = true)
        {
        }
        /**
         * Return section ID by CODE.
         *
         * @param string $sectionCode			Iblock section code.
         * @return int
         */
        protected function getSectionIdByCode($sectionCode = '')
        {
        }
        /**
         * Return section ID by element ID.
         *
         * @param int $elementId				Iblock element id.
         * @param string $elementCode			Iblock element code.
         * @return int
         */
        protected function getSectionIdByElement($elementId, $elementCode = '')
        {
        }
        protected function filterIdBySection($elementIds, $iblockId, $sectionId, $limit, $depth = 0)
        {
        }
        /**
         * Return random element ids to fill partially empty space in row when lack of big data elements.
         * Does not fill rows with no big data elements at all.
         *
         * @param array $ids
         * @return int
         */
        protected function getRecommendationLimit($ids)
        {
        }
        protected function getBigDataServiceRequestParams($type = '')
        {
        }
        /**
         * Return best seller product ids.
         *
         * @return array
         */
        protected function getBestSellersProductIds()
        {
        }
        protected function getBestSellersFilter()
        {
        }
        /**
         * Return array of iblock element ids to show for "initialLoad" action.
         *
         * @return array
         */
        protected function getDeferredProductIds()
        {
        }
        protected function getProductIdMap($productIds)
        {
        }
        /**
         * Returns ids map: SKU_PRODUCT_ID => PRODUCT_ID.
         *
         * @param array $originalIds			Input products ids.
         * @return array
         */
        public static function getProductsMap(array $originalIds = array())
        {
        }
        /**
         * Return array map of iblock products.
         * 3 following cases to process $productIdMap:
         * ~ $productIdMap is array with ids	- show elements with presented ids
         * ~ $productIdMap is empty array		- nothing to show
         * ~ $productIdMap === false				- show elements via filter(e.g. $arParams['IBLOCK_ID'],  arParams['ELEMENT_ID'])
         *
         * @return array
         */
        protected function getProductsSeparatedByIblock()
        {
        }
        /**
         * Return default measure.
         *
         * @return array|null
         */
        protected function getDefaultMeasure()
        {
        }
        /**
         * Return \CIBlockResult iterator for current iblock ID.
         *
         * @param int $iblockId
         * @param array|int $products
         * @return \CIBlockResult|int
         */
        protected function getElementList($iblockId, $products)
        {
        }
        /**
         * @param array $params
         * @return \CIBlockResult
         */
        protected function getSeparateList(array $params)
        {
        }
        /**
         * @param array $params
         * @return \CIBlockResult
         */
        protected function getFullIterator(array $params)
        {
        }
        /**
         * Initialization of general query fields.
         *
         * @return void
         */
        protected function initQueryFields()
        {
        }
        /**
         * Return select fields to execute.
         *
         * @return array
         */
        protected function getSelect()
        {
        }
        /**
         * Return filter fields to execute.
         *
         * @return array
         */
        protected function getFilter()
        {
        }
        /**
         * Return sort fields to execute.
         *
         * @return array
         */
        protected function getSort()
        {
        }
        /**
         * Prepare element getList parameters.
         *
         * @return void
         */
        protected function prepareElementQueryFields()
        {
        }
        /**
         * Prepare select, filter, order.
         *
         * @param array $select
         * @param array $filter
         * @param array $order
         * @return array
         */
        protected function prepareQueryFields(array $select, array $filter, array $order)
        {
        }
        /**
         * @deprecated
         * @see \Bitrix\Iblock\Component\Base::prepareElementQueryFields
         */
        protected function initPricesQuery()
        {
        }
        /**
         * Return select product fields to execute.
         *
         * @param int $iblockId
         * @param array $selectFields
         * @return array
         */
        protected function getProductSelect($iblockId, array $selectFields)
        {
        }
        /**
         * Returns product fields for iblock.
         *
         * @param int $iblockId
         * @return array
         */
        protected function getProductFields($iblockId)
        {
        }
        /**
         * Convert old product selected fields to new.
         *
         * @param array $select
         * @return array
         */
        protected function convertSelect(array $select)
        {
        }
        /**
         * Convert old product filter keys to new.
         *
         * @param array $filter
         * @return array
         */
        protected function convertFilter(array $filter)
        {
        }
        /**
         * Convert old product order keys to new.
         *
         * @param array $order
         * @return array
         */
        protected function convertOrder(array $order)
        {
        }
        protected function getIblockSelectFields($iblockId)
        {
        }
        /**
         * Return parsed conditions array.
         *
         * @param $condition
         * @param $params
         * @return array
         */
        protected function parseCondition($condition, $params)
        {
        }
        protected function parseConditionLevel($condition, $params)
        {
        }
        protected function parseConditionName(array $condition)
        {
        }
        protected function parseConditionOperator($condition)
        {
        }
        protected function parseConditionValue($condition, $name)
        {
        }
        protected function parsePropertyCondition(array &$result, array $condition, $params)
        {
        }
        /**
         * Process element data to set in $arResult.
         *
         * @param array &$element
         * @return void
         */
        protected function processElement(array &$element)
        {
        }
        /**
         * Fill various common fields for element.
         *
         * @param array &$element			Element data.
         * @return void
         */
        protected function modifyElementCommonData(array &$element)
        {
        }
        /**
         * Add Hermitage button links for element.
         *
         * @param array &$element			Element data.
         * @return void
         */
        protected function setElementPanelButtons(&$element)
        {
        }
        /**
         * Process element display properties by iblock parameters.
         *
         * @param int $iblock					Iblock ID.
         * @param array &$iblockElements		Items.
         * @return void
         */
        protected function modifyDisplayProperties($iblock, &$iblockElements)
        {
        }
        protected function getPropertyList($iblock, $propertyCodes)
        {
        }
        /**
         * Clear products data.
         *
         * @return void
         */
        protected function clearItems()
        {
        }
        /**
         * Load measure ratios for items.
         *
         * @param array $itemIds		Items id list.
         *
         * @return void
         */
        protected function loadMeasureRatios(array $itemIds)
        {
        }
        /**
         * Return default empty ratio (unexist in database).
         *
         * @return array
         */
        protected function getEmptyRatio()
        {
        }
        /**
         * Init measure for items.
         *
         * @param array &$items			Items list.
         * @return void
         */
        protected function initItemsMeasure(array &$items)
        {
        }
        /**
         * Return measure ids for items.
         *
         * @param array $items			Items data.
         * @return array
         */
        protected function getMeasureIds(array $items)
        {
        }
        /**
         * Load measures data.
         *
         * @param array $measureIds
         * @return void
         */
        protected function loadMeasures(array $measureIds)
        {
        }
        /**
         * Load prices for items.
         *
         * @param array $itemIds		Item ids.
         * @return void
         */
        protected function loadPrices(array $itemIds)
        {
        }
        protected function calculateItemPrices(array &$items)
        {
        }
        protected function transferItems(array &$items)
        {
        }
        /**
         * Calculate price block (simple price, quantity range, etc).
         *
         * @param array $product            Product data.
         * @param array $priceBlock         Prices.
         * @param int|float $ratio          Measure ratio value.
         * @param bool $defaultBlock        Save result to old keys (PRICES, PRICE_MATRIX, MIN_PRICE).
         * @return array|null
         */
        protected function calculatePriceBlock(array $product, array $priceBlock, $ratio, $defaultBlock = false)
        {
        }
        protected function searchItemSelectedRatioId($id)
        {
        }
        protected function compactItemRatios($id)
        {
        }
        protected function getQuantityRangeHash(array $range)
        {
        }
        protected function getFullQuantityRange()
        {
        }
        protected function searchItemSelectedQuantityRangeHash($id)
        {
        }
        /**
         * Load URLs for different actions to storage.
         *
         * @return void
         */
        protected function initUrlTemplates()
        {
        }
        /**
         * Process element prices.
         *
         * @param array &$element		Item data.
         * @return void
         */
        protected function modifyElementPrices(&$element)
        {
        }
        /**
         * Load, calculate and fill data (prices, measures, discounts, deprecated fields) for simple products.
         *
         * @return void.
         */
        protected function processProducts()
        {
        }
        /**
         * Load, calculate and fill data (prices, measures, discounts, deprecated fields) for offers.
         * Link offers to products.
         *
         * @return void
         */
        protected function processOffers()
        {
        }
        /**
         * Return offers array for current iblock.
         *
         * @param $iblockId
         * @return array
         */
        protected function getIblockOffers($iblockId)
        {
        }
        protected function getOffersFilter($iblockId)
        {
        }
        /**
         * Return offers sort fields to execute.
         *
         * @return array
         */
        protected function getOffersSort()
        {
        }
        protected function modifyOffers($offers)
        {
        }
        protected abstract function chooseOffer($offers, $iblockId);
        protected function initResultCache()
        {
        }
        protected function getCacheKeys()
        {
        }
        /**
         * All iblock/section/element/offer initializations starts here.
         * If have no errors - result showed in $arResult.
         */
        protected function processResultData()
        {
        }
        /**
         * Check for correct iblocks.
         */
        protected function checkIblock()
        {
        }
        protected function prepareData()
        {
        }
        protected function filterPureOffers()
        {
        }
        /**
         * Set component data from storage to $arResult.
         */
        protected function makeOutputResult()
        {
        }
        /**
         * Process of buy/add-to-basket/etc actions.
         */
        protected function processLinkAction()
        {
        }
        protected function checkProductSection($productId, $sectionId = 0, $sectionCode = '')
        {
        }
        protected function addProductToBasket($productId, $action)
        {
        }
        protected function getRewriteFields($action)
        {
        }
        /**
         * This method executes when "deferredLoad" action chosen.
         * Override getDeferredProductIds method to return needed product ids array.
         */
        protected function deferredLoadAction()
        {
        }
        /**
         * This method executes when "bigDataLoad" action is chosen.
         */
        protected function bigDataLoadAction()
        {
        }
        /**
         * Mark last usage of BigData.
         */
        protected function initBigDataLastUsage()
        {
        }
        /**
         * This method executes when "initialLoad" action is chosen.
         */
        protected function initialLoadAction()
        {
        }
        /**
         * Show cached component data or load if outdated.
         * If extended mode enabled - uses result_modifier.php logic in component (be careful not to duplicate it).
         */
        protected function loadData()
        {
        }
        /**
         * Return component cache identifier.
         *
         * @return mixed
         */
        protected abstract function getAdditionalCacheId();
        /**
         * Return component cache path.
         *
         * @return mixed
         */
        protected abstract function getComponentCachePath();
        public function getTemplateEmptyPreview()
        {
        }
        protected function sliceItemsForSlider(&$items)
        {
        }
        protected function getTemplateCurrencies()
        {
        }
        /**
         * Send answer for AJAX request.
         *
         * @param array $result
         */
        public static function sendJsonAnswer(array $result = array())
        {
        }
        /**
         * Action preparing to execute in doAction method with postfix "Action".
         * E.g. action "initialLoad" calls "initialLoadAction".
         *
         * @return string
         */
        protected function prepareAction()
        {
        }
        /**
         * Action executor.
         */
        protected function doAction()
        {
        }
        /**
         * @return bool
         */
        public function executeComponent()
        {
        }
        public function applyTemplateModifications()
        {
        }
        protected function prepareTemplateParams()
        {
        }
        protected function getTemplateDefaultParams()
        {
        }
        protected function checkTemplateTheme()
        {
        }
        protected function editTemplateData()
        {
        }
        public static function checkEnlargedData(&$item, $propertyCode)
        {
        }
        protected function editTemplateProductSlider(&$item, $iblock, $limit = 0, $addDetailToSlider = true, $default = array())
        {
        }
        protected function editTemplateOfferSlider(&$item, $iblock, $limit = 0, $addDetailToSlider = true, $default = array())
        {
        }
        protected function editTemplateCatalogInfo(&$item)
        {
        }
        protected function getTemplatePropCell($code, $offer, &$matrixFields, $skuPropList)
        {
        }
        protected function getOffersIblockId($iblockId)
        {
        }
        /**
         * @param int $iblockId
         * @return void
         */
        protected function loadDisplayPropertyCodes($iblockId)
        {
        }
        protected function loadBasketPropertyCodes($iblockId)
        {
        }
        protected function loadOfferTreePropertyCodes($iblockId)
        {
        }
        /* product tools */
        /**
         * Return true, if enable quantity trace and disable make out-of-stock items available for purchase.
         *
         * @param array $product        Product data.
         * @return bool
         */
        protected function isNeedCheckQuantity(array $product)
        {
        }
        /* product tools end */
        /* user tools */
        /**
         * Return user groups. Now worked only with current user.
         *
         * @return array
         */
        protected function getUserGroups()
        {
        }
        /**
         * Return user groups string for cache id.
         *
         * @return string
         */
        protected function getUserGroupsCacheId()
        {
        }
        /* user tools end */
        /* compatibility tools */
        /**
         * Filling deprecated fields of items for compatibility with old templates.
         * Strict use only for catalog.element, .section, .top, etc in compatible mode.
         *
         * @param array $items			Product list.
         * @return void
         */
        protected function initCompatibleFields(array $items)
        {
        }
        /**
         * Fill deprecated raw price data from database.
         * Strict use only for catalog.element, .section, .top, etc in compatible mode.
         *
         * @param int $id			Item id.
         * @param array $prices		Price rows from database.
         * @return void
         */
        protected function fillCompatibleRawPriceFields($id, array $prices)
        {
        }
        /**
         * Return deprecated field value for item.
         * Strict use only for catalog.element, .section, .top, etc in compatible mode.
         *
         * @param int $id				Item id.
         * @param string $field			Field name.
         * @return null|mixed
         */
        protected function getCompatibleFieldValue($id, $field)
        {
        }
        /**
         * Check quantity range for emulate CATALOG_SHOP_QUANTITY_* filter.
         * Strict use only for catalog.element, .section, .top, etc in compatible mode.
         *
         * @param array $row		Price row from database.
         * @return bool
         */
        protected function checkQuantityRange(array $row)
        {
        }
        /**
         * Returns old price result format for product with price ranges. Do not use this method.
         *
         * @return array
         */
        protected function getEmptyPriceMatrix() : array
        {
        }
        /**
         * Resort old price format for compatibility. Do not use this method.
         * @internl
         *
         * @param int $id		Item id.
         * @return void
         */
        private function resortOldPrices($id)
        {
        }
        /**
         * Returns old product keys.
         *
         * @return array
         */
        protected function getCompatibleProductFields()
        {
        }
    }
    /**
     * @global \CUser $USER
     * @global \CMain $APPLICATION
     */
    abstract class ElementList extends \Bitrix\Iblock\Component\Base
    {
        private $multiIblockMode = false;
        private $paginationMode = false;
        protected $navigation = false;
        protected $pagerParameters = array();
        /**
         * Multi iblock mode setter.
         * Enable it if you use data from different iblocks.
         *
         * @param $state
         * @return $this
         */
        protected function setMultiIblockMode($state)
        {
        }
        /**
         * Return if multi iblock mode enabled.
         *
         * @return bool
         */
        public function isMultiIblockMode()
        {
        }
        /**
         * Pagination mode setter.
         * Enable it if you use page navigation.
         *
         * @param $state
         * @return $this
         */
        protected function setPaginationMode($state)
        {
        }
        /**
         * Return if pagination mode enabled.
         *
         * @return bool
         */
        public function isPaginationMode()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * @param array $params
         * @param array $orderRow
         * @param array $default
         * @return array
         */
        protected function prepareElementSortRow(array $params, array $orderRow, array $default)
        {
        }
        protected static function predictElementCountByVariants($variants, $isBigData = false)
        {
        }
        private function makeMagicWithPageNavigation()
        {
        }
        protected function getPaginationParams(&$params)
        {
        }
        protected function getSpecificIblockParams(&$params)
        {
        }
        /**
         * Process iblock component parameters for single iblock with disabled multi-iblock-mode.
         *
         * @param $params
         * @return array
         */
        protected function getMultiIblockParams(&$params)
        {
        }
        /**
         * Process iblock component parameters for single iblock with disabled multi-iblock-mode.
         *
         * @param $params
         * @return array
         */
        protected function getSingleIblockParams(&$params)
        {
        }
        // some logic of \CComponentAjax to execute in component_epilog
        public function prepareLinks(&$data)
        {
        }
        private function checkPcreLimit($data)
        {
        }
        private function isAjaxURL($url)
        {
        }
        protected function initQueryFields()
        {
        }
        protected function initSubQuery()
        {
        }
        protected function getIblockElements($elementIterator)
        {
        }
        protected function modifyDisplayProperties($iblock, &$iblockElements)
        {
        }
        protected function getFilter()
        {
        }
        protected function getSort()
        {
        }
        protected function getCustomSort() : array
        {
        }
        protected function getElementList($iblockId, $products)
        {
        }
        protected function initNavString(\CIBlockResult $elementIterator)
        {
        }
        protected function chooseOffer($offers, $iblockId)
        {
        }
        protected function getFilteredOffersByProperty($iblockId)
        {
        }
        protected function getOffersPropFilter(array $level)
        {
        }
        protected function getAdditionalCacheId()
        {
        }
        protected function getComponentCachePath()
        {
        }
        protected function makeOutputResult()
        {
        }
        public function loadData()
        {
        }
        protected function deferredLoadAction()
        {
        }
        protected function prepareDeferredParams()
        {
        }
        /**
         * Initialization of page navigation parameters.
         */
        protected function initNavParams()
        {
        }
        protected function prepareTemplateParams()
        {
        }
        protected static function parseJsonParameter($jsonString)
        {
        }
        /**
         * Process iblock template parameters for multi iblock mode.
         *
         * @param $params
         */
        protected function getTemplateMultiIblockParams(&$params)
        {
        }
        /**
         * Process iblock template parameters for single iblock with disabled multi-iblock-mode.
         *
         * @param $params
         */
        protected function getTemplateSingleIblockParams(&$params)
        {
        }
        public static function getDefaultVariantId()
        {
        }
        public static function predictRowVariants($lineElementCount, $pageElementCount)
        {
        }
        protected function checkTemplateTheme()
        {
        }
        protected function getTemplateDefaultParams()
        {
        }
        protected function editTemplateData()
        {
        }
        /**
         * Creating sequence of variants to show
         */
        protected function sortItemsByTemplateVariants()
        {
        }
        /**
         * Return array of big data settings.
         *
         * @return array
         */
        protected function getBigDataInfo()
        {
        }
        // getting positions of enlarged elements
        protected function getEnlargedIndexMap()
        {
        }
        public static function getTemplateVariantsMap()
        {
        }
        public function getTemplateSkuPropList()
        {
        }
        protected function editTemplateItems(&$items)
        {
        }
        protected function editTemplateProductPictures(&$item)
        {
        }
        protected function editTemplateJsOffers(&$item)
        {
        }
        protected function editTemplateOfferProps(&$item)
        {
        }
        /**
         * @return void
         */
        protected function initIblockPropertyFeatures()
        {
        }
        /**
         * @param int $iblockId
         * @return void
         */
        protected function loadDisplayPropertyCodes($iblockId)
        {
        }
    }
}
namespace {
    class SaleProductsGiftSectionComponent extends \Bitrix\Iblock\Component\ElementList
    {
        public function __construct($component = \null)
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        protected function checkModules()
        {
        }
        private function getSectionId()
        {
        }
        /**
         * Returns list of product ids which will be showed.
         * @return array
         */
        protected function getProductIds()
        {
        }
        private function getGiftData()
        {
        }
        private function getElementIdsFromSection($sectionId)
        {
        }
        protected function processProducts()
        {
        }
        /**
         * Add offers for each catalog product.
         * @return void
         */
        protected function processOffers()
        {
        }
        /**
         * @param array $item
         */
        protected function setGiftDiscountToMinPrice(array &$item)
        {
        }
    }
    /**
     * Class CSaleGiftBasketComponent
     * @deprecated No longer used by internal code and not recommended.
     * Use "sale.products.gift.basket" instead.
     */
    class CSaleGiftBasketComponent extends \CCatalogViewedProductsComponent
    {
        /** @var \Bitrix\Sale\Discount\Gift\Manager */
        protected $giftManager;
        /** @var  \Bitrix\Sale\Basket */
        private $basket;
        /** @var array */
        private $productIds;
        /**
         * Checks required modules.
         * @throws Exception
         * @return void
         */
        protected function checkModules()
        {
        }
        /**
         * Initializes gift manager.
         * @return void
         */
        protected function initGiftManager()
        {
        }
        /**
         * Event called from includeComponent before component execution.
         *
         * <p>Takes component parameters as argument and should return it formatted as needed.</p>
         * @param array[string]mixed $arParams
         * @return array[string]mixed
         *
         */
        public function onPrepareComponentParams($params)
        {
        }
        private function getBasket()
        {
        }
        private function fetchFirstIblockId()
        {
        }
        private function guessIblocks()
        {
        }
        private function buildIblockDependedParameters()
        {
        }
        private function hasProperty($catalogIblockId, $propertyName)
        {
        }
        private function getProperties($offersIblockId)
        {
        }
        /**
         * Returns gift collections for current basket.
         * @return array
         */
        protected function getGiftCollections()
        {
        }
        /**
         * Returns list of product ids which will be showed.
         * @return array
         */
        protected function getProductIds()
        {
        }
        /**
         * Returns pure offers which exist in $this->linkItems, $this->items.
         * You can use the method after execution parent::setItemsOffers(),
         * which fills necessary $this->linkItems, $this->items.
         * @return array
         */
        private function getPureOffers()
        {
        }
        /**
         * Finds array with data which fully describes offer (SKU) by offer id.
         * The method uses $this->items.
         * @param $offerId
         * @return null|array
         */
        private function findPureOfferInItemsByOfferId($offerId)
        {
        }
        /**
         * Sets offers to specific product. If exists another offer, then it will delete.
         * Notice! List of offers have to belong to identical product.
         * @param array $pureOffers
         * @return void
         */
        private function setPureOffersToProduct(array $pureOffers)
        {
        }
        /**
         * Add offers for each catalog product.
         * @return void
         */
        protected final function setItemsOffers()
        {
        }
        protected function setItemsPrices()
        {
        }
        protected function formatResult()
        {
        }
        /**
         * Returns catalog prices data by product.
         * @param array $item Product.
         * @return array
         */
        protected function getPriceDataByItem(array $item)
        {
        }
        /**
         * @param $offer
         * @return mixed
         */
        private function setGiftDiscountToMinPrice(array &$offer)
        {
        }
        /**
         * @param $item
         *
         * @return bool
         */
        private function isExtendedCatalogProvider(\Bitrix\Sale\BasketItem $item)
        {
        }
    }
    class PersonalAccountComponent extends \CBitrixComponent
    {
        const E_SALE_MODULE_NOT_INSTALLED = 10000;
        const E_NOT_AUTHORIZED = 10001;
        /**
         * @return bool
         * @throws \Bitrix\Main\LoaderException
         */
        protected function checkRequirements()
        {
        }
        /**
         * PersonalAccountComponent constructor.
         *
         * @param null $component
         */
        public function __construct($component = \null)
        {
        }
        /**
         * Execute component
         *
         * @return void
         */
        public function executeComponent()
        {
        }
        private function obtainAccountData()
        {
        }
    }
    class SaleProductsGiftComponent extends \Bitrix\Iblock\Component\ElementList
    {
        /** @var \Bitrix\Sale\Discount\Gift\Manager */
        protected $giftManager;
        public function __construct($component = \null)
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        protected function checkModules()
        {
        }
        /**
         * Initializes gift manager.
         * @return void
         */
        protected function initGiftManager()
        {
        }
        /**
         * Returns gift collections for current basket.
         * @return array
         */
        protected function getGiftCollections()
        {
        }
        /**
         * Returns list of product ids which will be showed on first hit.
         * @return array
         */
        protected function getProductIds()
        {
        }
        /**
         * Returns list of product ids which will be showed via ajax.
         * @return array
         */
        protected function getDeferredProductIds()
        {
        }
        protected function processProducts()
        {
        }
        /**
         * Add offers for each catalog product.
         * @return void
         */
        protected function processOffers()
        {
        }
        /**
         * @param array $item
         */
        protected function setGiftDiscountToMinPrice(array &$item)
        {
        }
        protected function isCurrentProductGift(array $product)
        {
        }
        public function executeComponent()
        {
        }
    }
    class CSaleGiftMainProductsComponent extends \CBitrixComponent
    {
        protected $componentId = '';
        public function __construct($component = \null)
        {
        }
        public function getComponentId()
        {
        }
        /**
         * Event called from includeComponent before component execution.
         *
         * <p>Takes component parameters as argument and should return it formatted as needed.</p>
         * @param array[string]mixed $arParams
         * @return array[string]mixed
         *
         */
        public function onPrepareComponentParams($params)
        {
        }
        private function makeMagicWithPageNavigation()
        {
        }
        private function getElementIdByOffer($offerId)
        {
        }
        private function getSectionIdByElement($elementId, $iblockId)
        {
        }
        public function executeComponent()
        {
        }
        private function removeSku(array $elementIds = array())
        {
        }
        private function getDataMainProducts()
        {
        }
        /**
         * @param $elementIds
         * @param $sectionIds
         * @return string
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        private function getState($elementIds, $sectionIds)
        {
        }
    }
    class SaleProductsGiftBasketComponent extends \Bitrix\Iblock\Component\ElementList
    {
        /** @var \Bitrix\Sale\Discount\Gift\Manager */
        protected $giftManager;
        /** @var  \Bitrix\Sale\Basket */
        private $basket;
        public function __construct($component = \null)
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        private function buildIblockDependedParameters()
        {
        }
        private function prepareIblockInfo()
        {
        }
        private function fetchIblockIds()
        {
        }
        private function getBasket()
        {
        }
        /**
         * @param $item
         *
         * @return bool
         */
        private function isExtendedCatalogProvider(\Bitrix\Sale\BasketItem $item)
        {
        }
        private function getProperties($offersIblockId)
        {
        }
        protected function checkModules()
        {
        }
        /**
         * Initializes gift manager.
         * @return void
         */
        protected function initGiftManager()
        {
        }
        /**
         * Returns gift collections for current basket.
         * @return array
         */
        protected function getGiftCollections()
        {
        }
        /**
         * Returns list of product ids which will be showed on first hit.
         * @return array
         */
        protected function getProductIds()
        {
        }
        /**
         * Returns list of product ids which will be showed via ajax.
         * @return array
         */
        protected function getDeferredProductIds()
        {
        }
        protected function processProducts()
        {
        }
        /**
         * Add offers for each catalog product.
         * @return void
         */
        protected function processOffers()
        {
        }
        /**
         * @param array $item
         */
        protected function setGiftDiscountToMinPrice(array &$item)
        {
        }
    }
    class CBitrixSaleLocationReindexComponent extends \CBitrixComponent
    {
        protected $componentData = array();
        protected $dbResult = array();
        protected $errors = array('FATAL' => array(), 'NONFATAL' => array());
        /**
         * Function checks and prepares all the parameters passed. Everything about $arParam modification is here.
         * @param mixed[] $arParams List of unchecked parameters
         * @return mixed[] Checked and valid parameters
         */
        public function onPrepareComponentParams($arParams)
        {
        }
        /**
         * Function checks if required modules installed. If not, throws an exception
         * @throws Exception
         * @return void
         */
        protected function checkRequiredModules()
        {
        }
        protected static function checkAccessPermissions($parameters = array())
        {
        }
        /**
         * Function checks if user have basic permissions to launch the component
         * @throws Exception
         * @return void
         */
        protected function checkPermissions()
        {
        }
        /**
         * Additional parameters check, if needed.
         * @return void
         */
        protected function checkParameters()
        {
        }
        /*
        protected function prepareInstances()
        {
        	$this->import = $this->getImportInstance(array(
        		'INITIAL_TIME' => $this->arParams['INITIAL_TIME']
        	));
        }
        */
        /**
         * Function makes some actions based on what is in $this->request
         * @return void
         */
        protected function performAction()
        {
        }
        /**
         * Here we get some data that cannot be cached for a long time
         * @return boolean
         */
        protected function obtainNonCachedData()
        {
        }
        /**
         * Move data read from database to a specially formatted $arResult
         * @return void
         */
        protected function formatResult()
        {
        }
        /**
         * Function implements all the life cycle of our component
         * @return void
         */
        public function executeComponent()
        {
        }
        /**
         * Do smth when called over ajax
         * @return mixed[]
         */
        public static function doAjaxStuff($parameters = array())
        {
        }
        protected function checkHasErrors($fatalOnly = \false)
        {
        }
        /**
         * Fetches all required data from database. Everyting that connected with data fetch lies here.
         * @return void
         */
        protected function obtainData()
        {
        }
        protected static function getRequest()
        {
        }
        protected static function getRequestMethod()
        {
        }
        /**
         * Function reduces input value to integer type, and, if gets null, passes the default value
         * @param mixed $fld Field value
         * @param int $default Default value
         * @param int $allowZero Allows zero-value of the parameter
         * @return int Parsed value
         */
        public static function tryParseInt(&$fld, $default = \false, $allowZero = \false)
        {
        }
    }
    class PersonalOrder extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    class CBitrixSaleLocationImportComponent extends \CBitrixComponent
    {
        protected $componentData = array();
        protected $dbResult = array();
        protected $errors = array('FATAL' => array(), 'NONFATAL' => array());
        protected $import = \null;
        const LOC2_IMPORT_PERFORMED_OPTION = 'sale_locationpro_import_performed';
        /**
         * Function checks and prepares all the parameters passed. Everything about $arParam modification is here.
         * @param mixed[] $arParams List of unchecked parameters
         * @return mixed[] Checked and valid parameters
         */
        public function onPrepareComponentParams($arParams)
        {
        }
        /**
         * Function checks if required modules installed. If not, throws an exception
         * @throws Exception
         * @return void
         */
        protected function checkRequiredModules()
        {
        }
        protected static function checkAccessPermissions($parameters = array())
        {
        }
        /**
         * Function checks if user have basic permissions to launch the component
         * @throws Exception
         * @return void
         */
        protected function checkPermissions()
        {
        }
        /**
         * Additional parameters check, if needed.
         * @return void
         */
        protected function checkParameters()
        {
        }
        protected function prepareInstances()
        {
        }
        /**
         * Function makes some actions based on what is in $this->request
         * @return void
         */
        protected function performAction()
        {
        }
        /**
         * Here we get some data that cannot be cached for a long time
         * @return boolean
         */
        protected function obtainNonCachedData()
        {
        }
        /**
         * Move data read from database to a specially formatted $arResult
         * @return void
         */
        protected function formatResult()
        {
        }
        /**
         * Function implements all the life cycle of our component
         * @return void
         */
        public function executeComponent()
        {
        }
        public static function doAjaxStuff($parameters = array())
        {
        }
        protected function checkHasErrors($fatalOnly = \false)
        {
        }
        /**
         * Fetches all required data from database. Everyting that connected with data fetch lies here.
         * @return void
         */
        protected function obtainData()
        {
        }
        protected static function getImportInstance($parameters)
        {
        }
        protected static function getRequest()
        {
        }
        protected static function getRequestMethod()
        {
        }
        // for building tree at import page
        public static function renderLayout($parameters)
        {
        }
        private function resortLayoutBundleAlphabetically($code)
        {
        }
        private static function renderLayoutNode($pCode, $pName, $parameters, &$alreadyPrinted)
        {
        }
        /**
         * Function reduces input value to integer type, and, if gets null, passes the default value
         * @param mixed $fld Field value
         * @param int $default Default value
         * @param int $allowZero Allows zero-value of the parameter
         * @return int Parsed value
         */
        public static function tryParseInt(&$fld, $default = \false, $allowZero = \false)
        {
        }
    }
    class CSaleBusinessValueMail extends \CBitrixComponent
    {
        protected function getBusinessValueByOrderId($orderId, $providerCode, $fieldCode, $fieldGroup = \null)
        {
        }
        protected function getBusinessValueName($providerCode, $paramFieldCode)
        {
        }
        protected function getBusinessValueList()
        {
        }
        /**
         * @throws Exception
         */
        protected function checkModules()
        {
        }
        public function executeComponent()
        {
        }
    }
    class CSaleRecommendedProductsComponent extends \CCatalogViewedProductsComponent
    {
        /**
         * @override
         */
        public function onIncludeComponentLang()
        {
        }
        /**
         * @param $params
         * @override
         * @return array
         */
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * @override
         * @return bool
         */
        protected function extractDataFromCache()
        {
        }
        protected function putDataToCache()
        {
        }
        protected function abortDataCache()
        {
        }
        /**
         * @override
         * @return integer[]
         */
        protected function getProductIds()
        {
        }
        /**
         * @override
         * @throws Exception
         */
        protected function checkModules()
        {
        }
        /**
         * @override
         */
        protected function formatResult()
        {
        }
    }
    class CBitrixLocationSelectorStepsComponent extends \CBitrixLocationSelectorSearchComponent
    {
        protected $connector = \null;
        /**
         * Function checks and prepares all the parameters passed. Everything about $arParam modification is here.
         * @param mixed[] $arParams List of unchecked parameters
         * @return mixed[] Checked and valid parameters
         */
        public function onPrepareComponentParams($arParams)
        {
        }
        protected function getLocationListParameters()
        {
        }
        protected function obtainCacheDependentData()
        {
        }
        protected function obtainCachedData(&$cachedData)
        {
        }
        protected function obtainDataTreeTrunk(&$cachedData)
        {
        }
        protected function obtainDataAdditional()
        {
        }
        protected function identifyLinkType(&$items)
        {
        }
        protected function getCacheDependences()
        {
        }
        protected static function getPathNodesSelect()
        {
        }
        #### query serve functions
        protected static $allowedAdditionals = array('PATH' => \true, 'IS_UNCHOOSABLE' => \true);
        protected static function processSearchRequestV2ModifyParameters($parameters)
        {
        }
        protected static function processSearchRequestV2AfterSearchFormatResult(&$data, $parameters)
        {
        }
        public function formatResult()
        {
        }
        protected static function getClassName()
        {
        }
        ////////////////////////////////////////////////////////
        // DEPRECATED methods to support DEPRECATED query method
        /**
         * @deprecated
         */
        public static function processSearchRequest()
        {
        }
        /**
         * @deprecated
         */
        protected static function processSearchGetAdditionalPathNodes(&$data)
        {
        }
        /**
         * @deprecated
         */
        protected static function getPathToNodes($list)
        {
        }
    }
    class CBitrixBasketComponent extends \CBitrixComponent
    {
        const INITIAL_LOAD_ACTION = 'initialLoad';
        const SEARCH_OFFER_BY_PROPERTIES = 'PROPS';
        const SEARCH_OFFER_BY_ID = 'ID';
        const IMAGE_SIZE_STANDARD = 110;
        const IMAGE_SIZE_ADAPTIVE = 320;
        /** @var Sale\Basket\Storage $basketStorage */
        protected $basketStorage;
        protected $action;
        protected $fUserId;
        protected $basketItems = [];
        protected $storage = [];
        /** @var ErrorCollection $errorCollection */
        protected $errorCollection;
        public $arCustomSelectFields = [];
        public $arIblockProps = [];
        public $weightKoef = 0;
        public $weightUnit = 0;
        public $quantityFloat = 'N';
        /** @deprecated deprecated since 14.0.4 */
        public $countDiscount4AllQuantity = 'N';
        public $priceVatShowValue = 'N';
        public $hideCoupon = 'N';
        public $usePrepayment = 'N';
        public $pathToOrder = '/personal/order.php';
        public $columns = [];
        public $offersProps = [];
        protected static $iblockIncluded = \null;
        protected static $catalogIncluded = \null;
        protected static $highLoadInclude = \null;
        public function __construct($component = \null)
        {
        }
        protected function addErrors($errors, $code)
        {
        }
        protected function checkMessageByCode(\Bitrix\Main\Error $error)
        {
        }
        /**
         * Return settings script path with modified time postfix.
         *
         * @param string $componentPath Path to component.
         * @param string $settingsName Settings name.
         * @return string
         * @throws Main\IO\FileNotFoundException
         */
        public static function getSettingsScript($componentPath, $settingsName)
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        protected function initializeParameters($params)
        {
        }
        public function initParametersFromRequest(&$params)
        {
        }
        protected function isCompatibleMode()
        {
        }
        public function onIncludeComponentLang()
        {
        }
        public static function sendJsonAnswer($result)
        {
        }
        protected function includeModules()
        {
        }
        protected static function includeIblock()
        {
        }
        protected static function includeCatalog()
        {
        }
        protected function makeCompatibleArray(&$array)
        {
        }
        // making correct names for actions (camel case without '_')
        protected function getCorrectActionName($action)
        {
        }
        protected function prepareAction()
        {
        }
        protected function doAction($action)
        {
        }
        protected function initialLoadAction()
        {
        }
        // legacy method
        protected function selectItemAction()
        {
        }
        // legacy method
        protected function recalculateAction()
        {
        }
        // legacy method
        protected function deleteAction()
        {
        }
        // legacy method
        protected function delayAction()
        {
        }
        // legacy method
        protected function addAction()
        {
        }
        // legacy method
        protected function basketOrderAction()
        {
        }
        protected function applyTemplateMutator(&$result)
        {
        }
        protected function recalculateAjaxAction()
        {
        }
        protected function refreshAjaxAction()
        {
        }
        protected function modifyResultAfterSave(&$result)
        {
        }
        protected function addProductToBasket($fields)
        {
        }
        protected function getUserId()
        {
        }
        protected function needToReloadGifts(array $result)
        {
        }
        public function executeComponent()
        {
        }
        protected function getIblockPropertyCodes()
        {
        }
        protected function initializeIblockProperties()
        {
        }
        // legacy method
        public function getCustomColumns()
        {
        }
        protected static function getWarningsFromSession()
        {
        }
        protected function initializeBasketOrderIfNotExists(\Bitrix\Sale\Basket $basket)
        {
        }
        protected function getFuserId()
        {
        }
        protected function getBasketStorage()
        {
        }
        protected function refreshAndCorrectRatio()
        {
        }
        protected function refreshBasket(\Bitrix\Sale\Basket $basket)
        {
        }
        protected function getActualQuantityList(\Bitrix\Sale\Basket $basket)
        {
        }
        protected function checkQuantityList($basket, $compareList)
        {
        }
        protected function loadBasketItems($itemsToLoad = \null)
        {
        }
        // ToDo get gifts result via ajax to prevent BasketStorage loading while using fast load
        protected function isFastLoadRequest()
        {
        }
        protected function needBasketRefresh()
        {
        }
        protected function isBasketIntegrated()
        {
        }
        protected function basketHasItemsToUpdate()
        {
        }
        // legacy method
        public function getBasketItems()
        {
        }
        protected function saveBasket()
        {
        }
        protected function getBasketResult()
        {
        }
        protected function basketItemsMaxCountExceeded()
        {
        }
        protected function getBasketItemsRawArray()
        {
        }
        protected function getBasketItemsArray($filterItems = \null)
        {
        }
        protected function processBasketItem(\Bitrix\Sale\BasketItem $item)
        {
        }
        protected function getBasketItemHash($basketItem)
        {
        }
        protected function getBasketItemProperties(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        protected function loadCatalogInfo()
        {
        }
        protected function loadOfferToProductRelations()
        {
        }
        protected function getBasketProductIds()
        {
        }
        protected function loadIblockProperties()
        {
        }
        protected function modifyLabels(&$product, $productProperties)
        {
        }
        protected function fillItemsWithProperties()
        {
        }
        protected function getAdditionalImageForProduct($iblockId, $properties)
        {
        }
        protected function makeFileSources(&$item, $property)
        {
        }
        protected function makeLinkedProperty(&$item, $property)
        {
        }
        protected function makeDirectoryProperty(&$item, $property)
        {
        }
        /**
         * Resize image depending on scale type
         *
         * @param array $item
         * @param        $imageKey
         * @param array $arImage
         * @param array $sizeAdaptive
         * @param array $sizeStandard
         * @param string $scale
         */
        public static function resizeImage(array &$item, $imageKey, array $arImage, array $sizeAdaptive, array $sizeStandard, $scale = '')
        {
        }
        protected function getErrors()
        {
        }
        // fill item arrays for old templates
        protected function sortItemsByTabs(&$result)
        {
        }
        protected function getGridColumns()
        {
        }
        // fill grid data (for new templates with custom columns)
        protected function getGridRows()
        {
        }
        protected function isNeedBasketUpdateEvent()
        {
        }
        protected function getSessionFUserBasketPrice($fUserId)
        {
        }
        protected function setSessionFUserBasketPrice($price, $fUserId)
        {
        }
        protected function getSessionFUserBasketQuantity($fUserId)
        {
        }
        protected function setSessionFUserBasketQuantity($quantity, $fUserId)
        {
        }
        protected function getAffectedReformattedBasketItemsInDiscount(\Bitrix\Sale\BasketBase $basket, array $discountData, array $calcResults)
        {
        }
        protected function getDiscountData(\Bitrix\Sale\BasketBase $basket)
        {
        }
        protected function getBasketTotal()
        {
        }
        protected function getCouponInfo()
        {
        }
        protected function getPrepayment()
        {
        }
        // legacy method
        public function getSkuPropsData($basketItems, $parents, $arSkuProps = [])
        {
        }
        // legacy method
        public function getAvailableQuantity($basketItems)
        {
        }
        protected function checkCoupon($postList)
        {
        }
        protected function getCouponFromRequest(array $postList)
        {
        }
        protected function getDefaultAjaxAnswer()
        {
        }
        // legacy method
        public function recalculateBasket($postList)
        {
        }
        protected function extractItemsActionData($postList)
        {
        }
        protected function getBasketItemsRatios($actionData)
        {
        }
        protected function processRestore(&$result, $id, $restoreFields)
        {
        }
        protected function processDelete(&$result, \Bitrix\Sale\BasketItemBase $item)
        {
        }
        protected function processChangeQuantity(&$result, $itemRatioData, $quantity)
        {
        }
        protected function processChangeOffer(&$result, $id, $offerProps)
        {
        }
        protected function processMergeOffer(&$result, $id)
        {
        }
        protected function processDelay(&$result, \Bitrix\Sale\BasketItemBase $item, $delay)
        {
        }
        public function checkQuantity($basketItemData, $desiredQuantity)
        {
        }
        protected function mergeProductOffers($basketItemId)
        {
        }
        protected function changeProductOfferWithoutSave($basketId, $searchType, $searchData, $useMerge = \true)
        {
        }
        public function changeProductOffer($basketId, $searchType, $searchData, $useMerge = \true)
        {
        }
        protected function selectOfferByProps($iblockId, $productId, $currentOfferId, array $propertyValues, array $properties)
        {
        }
        protected function selectOfferById($iblockId, $productId, $currentOfferId, $newOfferId, $propertyCodes)
        {
        }
        /**
         * @param array $itemProperties
         * @param array $propertyCodes
         * @return array
         */
        protected static function getMissingPropertyCodes(array $itemProperties, array $propertyCodes)
        {
        }
        /**
         * @param array $basket
         * @param int $basketId
         * @return bool|int|string
         */
        protected static function getBasketKeyById(array $basket, $basketId)
        {
        }
        /**
         * @param array $itemProperties
         * @param array $missingCodes
         * @param array $values
         * @return void
         */
        protected static function fillMissingProperties(array &$itemProperties, array $missingCodes, array $values)
        {
        }
        protected static function updateOffersProperties($oldProps, $newProps)
        {
        }
        protected function getFormatCurrencies()
        {
        }
    }
    class CBitrixBasketBasketSmallMailComponent extends \CBitrixBasketComponent
    {
        protected $userId;
        public function onPrepareComponentParams($params)
        {
        }
        protected function sortItemsByTabs(&$result)
        {
        }
    }
    /**
     * Class SaleAdminPageStub
     */
    class SaleAdminPageStub extends \CBitrixComponent
    {
        /** @var string */
        const CRM_WIZARD_SITE_ID = "~CRM_WIZARD_SITE_ID";
        /**
         * @return array
         */
        private function getMap()
        {
        }
        /**
         * @throws Main\SystemException
         */
        private function initCurrentPageMap()
        {
        }
        /**
         * @param $link
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private static function getLink($link)
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private static function getServerName()
        {
        }
        /**
         * @return mixed|void
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function executeComponent()
        {
        }
    }
    class PersonalOrderSection extends \CBitrixComponent
    {
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
    }
    class CEbayCategoriesLink extends \CBitrixComponent
    {
        public function onPrepareComponentParams($arParams)
        {
        }
        protected function getMappedEbayCategoryId($bitrixCategoryId)
        {
        }
        protected function getTopCategories()
        {
        }
        protected function getCategoryAndParentsInfo($categoryId)
        {
        }
        protected function getVariationsValues($iblockId, $ebayCategoryId, $ebayCategoryVariations)
        {
        }
        public function executeComponent()
        {
        }
    }
    class CBitrixPersonalOrderDetailComponent extends \CBitrixComponent
    {
        const E_SALE_MODULE_NOT_INSTALLED = 10000;
        const E_ORDER_NOT_FOUND = 10001;
        const E_CATALOG_MODULE_NOT_INSTALLED = 10003;
        const E_NOT_AUTHORIZED = 10004;
        /**
         * Fatal error list. Any fatal error makes useless further execution of a component code.
         * In most cases, there will be only one error in a list according to the scheme "one shot - one dead body"
         *
         * @var string[] Array of fatal errors.
         */
        protected $errorsFatal = array();
        /**
         * Non-fatal error list. Some non-fatal errors may occur during component execution, so certain functions of the component
         * may became defunct. Still, user should stay informed.
         * There may be several non-fatal errors in a list.
         *
         * @var string[] Array of non-fatal errors.
         */
        protected $errorsNonFatal = array();
        /**
         * Contains some valuable info from $_REQUEST
         *
         * @var object request info
         */
        protected $requestData = array();
        /**
         * Gathered options that are required
         *
         * @var string[] options
         */
        protected $options = array();
        /**
         * Variable remains true if there is 'catalog' module installed
         *
         * @var bool flag
         */
        protected $useCatalog = \true;
        /**
         * Variable remains true if there is 'highloadiblocks' module installed
         *
         * @var bool flag
         */
        protected $useHL = \true;
        /**
         * Variable remains true if there is 'iblock' module installed
         *
         * @var bool flag
         */
        protected $useIBlock = \true;
        /**@var Data\Cache $this->currentCache */
        protected $currentCache = \null;
        /**
         * Loaded order for displaying
         *
         * @var Sale\Order order
         */
        protected $order = \null;
        /**
         * @var Sale\Registry registry
         */
        protected $registry = \null;
        protected $dbResult = array();
        /**
         * A convert map for method self::formatDate()
         *
         * @var string[] keys
         */
        protected $orderDateFields2Convert = array('DATE_INSERT', 'DATE_STATUS', 'PAY_VOUCHER_DATE', 'DATE_DEDUCTED', 'DATE_UPDATE', 'PS_RESPONSE_DATE', 'DATE_PAY_BEFORE', 'DATE_BILL', 'DATE_CANCELED', 'DATE_PAYED');
        protected $compatibilityPaymentFields = array('DATE_PAID' => 'DATE_PAYED', 'PAY_SYSTEM_ID', 'EMP_PAID_ID' => 'EMP_PAYED_ID', 'PAY_VOUCHER_NUM', 'PAY_VOUCHER_DATE', 'PS_STATUS', 'PS_STATUS_CODE', 'PS_STATUS_DESCRIPTION', 'PS_STATUS_MESSAGE', 'PS_SUM', 'PS_CURRENCY', 'PS_RESPONSE_DATE', 'DATE_PAY_BEFORE', 'DATE_BILL');
        protected $compatibilityShipmentFields = array('DELIVERY_ID', 'TRACKING_NUMBER', 'ALLOW_DELIVERY', 'DATE_ALLOW_DELIVERY', 'EMP_ALLOW_DELIVERY_ID', 'DEDUCTED', 'DATE_DEDUCTED', 'EMP_DEDUCTED_ID', 'REASON_UNDO_DEDUCTED', 'RESERVED', 'DELIVERY_DOC_NUM', 'DELIVERY_DOC_DATE', 'DELIVERY_DATE_REQUEST', 'STORE_ID');
        protected $compatibilityUserFields = array('LOGIN', 'NAME', 'LAST_NAME', 'EMAIL');
        public function __construct($component = \null)
        {
        }
        /**
         * Function checks if required modules installed. If not, throws an exception
         * @throws Main\SystemException
         * @return void
         */
        protected function checkRequiredModules()
        {
        }
        /**
         * Function checks if user is authorized or not. If not, auth form will be shown.
         * @return void
         * @throws Main\SystemException
         */
        protected function checkAuthorized()
        {
        }
        /**
         * Function checks and prepares all the parameters passed. Everything about $arParam modification is here.
         * @param mixed[] $arParams List of unchecked parameters
         * @return mixed[] Checked and valid parameters
         */
        public function onPrepareComponentParams($arParams)
        {
        }
        /**
         * Function parses an array: strip empty values, duplicate ones
         * @param mixed[] $fld Field value
         * @return array Parsed value
         */
        public static function tryParseArray(&$fld)
        {
        }
        /**
         * Function reduces input value to integer type, and, if gets null, passes the default value.	 *
         * @param int &$fld					Field value.
         * @param int $default				Default value.
         * @param bool $allowZero			Allows zero-value of the parameter
         * @return int
         */
        public static function tryParseInt(&$fld, $default, $allowZero = \false)
        {
        }
        /**
         * Function processes string value and, if gets null, passes the default value to it
         * @param mixed &$fld Field value
         * @param string $default Default value
         * @return string Parsed value
         */
        public static function tryParseString(&$fld, $default)
        {
        }
        /**
         * Function forces 'Y'/'N' value to boolean
         * @param mixed $fld Field value
         * @return string parsed value
         */
        public static function tryParseBoolean(&$fld)
        {
        }
        /**
         * Function sets page title, if required
         * @return void
         */
        protected function setTitle()
        {
        }
        /**
         * Function gets all options required for component
         * @return void
         */
        protected function loadOptions()
        {
        }
        /**
         * Function could describe what to do when order ID not set. By default, component will redirect to list page.
         * @return void
         */
        protected function doCaseOrderIdNotSet()
        {
        }
        /**
         * Function processes and corrects $_REQUEST. Everything about $_REQUEST lies here.
         * @return void
         */
        protected function processRequest()
        {
        }
        /**
         * Obtain names for properties passed in $arParams['CUSTOM_SELECT_PROPS']
         * @param mixed[] Cached data taken from obtainDataCachedStructure()
         */
        protected function obtainPropertyNames(&$cached)
        {
        }
        /**
         * Return order tax list
         * @param array &$cached		Cached data.
         * @return void
         */
        protected function obtainTaxes(&$cached)
        {
        }
        /**
         * Function fetches information about stores in the system, depending on the delivery system.
         * This method should should be called only after obtainDataCachedStatic().
         * @param mixed[] $cached Cached data taken from obtainDataCachedStructure()
         * @return void
         */
        protected function obtainDeliveryStore(&$cached)
        {
        }
        /**
         * Function gets order basket info from the database
         * @param mixed[] Cached data taken from obtainDataCachedStructure()
         * @return void
         */
        protected function obtainBasket(&$cached)
        {
        }
        /**
         * Function fills all required data about basket item properties
         *
         * @param array $basketItems 		List of basket items
         * @return array Basket items
         */
        public function obtainBasketProps(&$basketItems)
        {
        }
        /**
         * For each basket items it fills information about properties stored in
         *
         * @param array $basketItems		List of basket items.
         * @param array $elementIds			Array of element id.
         * @param array $skuParentMap			Mapping between sku ids and their parent ids.
         * @return void
         */
        public function obtainBasketPropsElement(&$basketItems, $elementIds, $skuParentMap)
        {
        }
        /**
         * @param $item
         * @return int
         */
        protected function getPictureId($item) : int
        {
        }
        /**
         * Creates an array of iBlock properties for the elements with certain IDs
         *
         * @param mixed[] $elementIdList 		$arElementIds Array of element id.
         * @param mixed[] $select 			Fields to select.
         * @return mixed[] 			Array of properties' values in the form of array("ELEMENT_ID" => array of props)
         */
        public function obtainProductProps($elementIdList, $select)
        {
        }
        /**
         * For each basket items it fills information about SKU properties stored in
         *
         * @param array $basketItems		List of basket items
         * @param array $skuPropertyCodes		Sku properties to search for
         * @param array $parentList		Specially formed array, see code below
         * @return void
         */
        public function obtainBasketPropsSKU(&$basketItems, $skuPropertyCodes, $parentList)
        {
        }
        /**
         * @param array $skuIblockIds
         * @param array $skuPropertyCodes
         *
         * @return array
         */
        protected function getSkuPropertyData(array $skuIblockIds, array $skuPropertyCodes)
        {
        }
        /**
         * Function gets order properties from database
         * @param mixed[] $cached Cached data taken from obtainDataCachedStructure()
         * @return void
         */
        protected function obtainProps(&$cached)
        {
        }
        protected function loadOrder($id)
        {
        }
        /**
         * @return void
         */
        protected function checkOrder()
        {
        }
        /**
         * Perform reading main data from database, no cache is used for it
         * @throws Main\SystemException
         * @return void
         */
        protected function obtainDataOrder()
        {
        }
        /**
         * Function gets user info from database, no cache is used for it
         * @return void
         */
        protected function obtainDataUser()
        {
        }
        /**
         * Function accuires all required fine-cacheable information to form $arResult.
         * To pick up some additional data to the cached part of $arResult, make another method that modifies $cachedData and call it here.
         * This method should be called only after obtainDataCachedStatic()
         *
         * @param mixed[] $cachedData Cached data taken from getDataCached()
         * @return void
         */
        protected function obtainDataCachedStructure(&$cachedData)
        {
        }
        /**
         * Function gets pay system info from database, no cache is used here
         * @return void
         */
        protected function obtainDataPaySystem()
        {
        }
        /**
         * Function performs a conversion between a shared cache and the particular structure of our $arResult
         * @param mixed[] $cached Cached data taken from obtainDataReferences()
         * @return mixed[] Data structure that is appropriate for our $arResult
         */
        protected function adaptCachedReferences($cached)
        {
        }
        /**
         * Function returns reference data as shared cache between this component and sale.personal.order.list.
         *
         * @throws Exception
         * @return void
         */
        protected function obtainDataReferences()
        {
        }
        /**
         * Function create cache id.
         *
         * @return array
         */
        protected function createCacheId()
        {
        }
        /**
         * Function contains a mechanism for cacheing data in the component
         *
         * @throws Exception
         * @return void
         */
        protected function obtainDataCached()
        {
        }
        /**
         * Fetches all required data from database. Everything that connected with data obtaining lies here
         *
         * @return void
         */
        protected function obtainDataShipmentBasket()
        {
        }
        /**
         * Function aggregates basket's data from basket items
         *
         */
        protected function obtainDataBasket()
        {
        }
        protected function obtainData()
        {
        }
        /**
         * Function formats links in arResult
         * @return void
         */
        protected function formatResultUrls()
        {
        }
        /**
         * Function formats price info in arResult
         * @return void
         */
        protected function formatResultPrices()
        {
        }
        /**
         * Function formats status info in arResult
         * @return void
         */
        protected function formatResultStatus()
        {
        }
        /**
         * Function formats user info in arResult
         * @return void
         */
        protected function formatResultUser()
        {
        }
        /**
         * Function formats customer info in arResult
         * @return void
         */
        protected function formatResultPerson()
        {
        }
        /**
         * Function formats pay system info in arResult
         * @return void
         */
        protected function formatResultPaySystem()
        {
        }
        /**
         * Function formats delivery system info in arResult
         * @return void
         */
        protected function formatResultDeliverySystem()
        {
        }
        /**
         * Function formats order basket info in arResult
         * @return void
         */
        protected function formatResultBasket()
        {
        }
        /**
         * Function formats taxes info in arResult
         * @return void
         */
        protected function formatResultTaxes()
        {
        }
        /**
         * Function formats weight info in arResult
         * @return void
         */
        protected function formatResultWeight()
        {
        }
        /**
         * Move data read from database to a specially formatted $arResult
         * @return void
         */
        protected function formatResult()
        {
        }
        /**
         * Move all errors to $arResult, if there were any
         * @return void
         */
        protected function formatResultErrors()
        {
        }
        /**
         * Function implements all the life cycle of the component
         * @return void
         */
        public function executeComponent()
        {
        }
        /**
         * Return current class registry
         *
         * @param mixed[] array that date conversion performs in
         * @return void
         */
        protected function setRegistry()
        {
        }
        /**
         * Convert dates if date template set
         * @param mixed[] array that date conversion performs in
         * @return void
         */
        protected function formatDate(&$arr)
        {
        }
        /**
         * Function checks whether a certain item came from 'catalog' module or not
         * @param mixed[] $item An item from basket
         * @return boolean
         */
        public static function cameFromCatalog($item)
        {
        }
        /**
         * @deprecated
         * The callback that changes body encoding when nescessary. Feature doesn`t work here and in the previous version of the component. Left for backward compatibility.
         * @param string $content page content
         * @return void
         */
        public static function changeBodyEncoding($content)
        {
        }
        /**
         * Function checks if it`s argument is a legal array for foreach() construction
         * @param mixed $arr data to check
         * @return boolean
         */
        protected static function isNonemptyArray($arr)
        {
        }
        ////////////////////////
        // Cache functions
        ////////////////////////
        /**
         * Function checks if cacheing is enabled in component parameters
         * @return boolean
         */
        protected final function getCacheNeed()
        {
        }
        /**
         * Function perform start of cache process, if needed
         * @param mixed[]|string $cacheId An optional addition for cache key
         * @return boolean True, if cache content needs to be generated, false if cache is valid and can be read
         */
        protected final function startCache($cacheId = array())
        {
        }
        /**
         * Function perform start of cache process, if needed
         * @throws Main\SystemException
         * @param bool|mixed[] $data Data to be stored in the cache
         * @return void
         */
        protected final function endCache($data = \false)
        {
        }
        /**
         * Function discard cache generation
         * @throws Main\SystemException
         * @return void
         */
        protected final function abortCache()
        {
        }
        /**
         * Function return data stored in cache
         * @throws Main\SystemException
         * @return bool|mixed[] Data from cache
         */
        protected final function getCacheData()
        {
        }
        /**
         * Function leaves the ability to modify cache key in future.
         * @param array $cacheId
         * @return string Cache key to be used in CPHPCache()
         */
        protected final function getCacheKey($cacheId = array())
        {
        }
    }
    /**
     * Class SaleAccountPay
     */
    class SaleOrderPaymentChange extends \CBitrixComponent
    {
        /** @var  Main\ErrorCollection $errorCollection*/
        protected $errorCollection;
        /** @var \Bitrix\Sale\Order $order */
        protected $order = \null;
        protected $isRefreshPrice = \false;
        /**
         * Function checks and prepares all the parameters passed. Everything about $arParam modification is here.
         * @param mixed[] $params List of unchecked parameters
         * @return mixed[] Checked and valid parameters
         */
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * Check Required Modules
         * @throws Main\SystemException
         * @return bool
         */
        protected function checkModules()
        {
        }
        /**
         * Prepare data to render in new version of component.
         * @return void
         */
        protected function buildPaySystemsList()
        {
        }
        /**
         * Function implements all the life cycle of our component
         * @return void
         */
        public function executeComponent()
        {
        }
        /**
         * Move all errors to $this->arResult, if there were any
         * @return void
         */
        protected function formatResultErrors()
        {
        }
        /**
         * Collect data for component
         * @throws Main\ArgumentNullException
         */
        protected function prepareData()
        {
        }
        /**
         * Initiate inner payment
         * @return Main\Result
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectNotFoundException
         */
        protected function initiateInnerPay()
        {
        }
        /**
         * Load user account data
         * @return void
         */
        protected function loadInnerData()
        {
        }
        /**
         * Ordering payment for calling in ajax callback
         * @return void
         */
        protected function orderPayment()
        {
        }
    }
    class PersonalProfileDetail extends \CBitrixComponent
    {
        const E_SALE_MODULE_NOT_INSTALLED = 10000;
        const E_NOT_AUTHORIZED = 10001;
        /** @var  Main\ErrorCollection $errorCollection*/
        protected $errorCollection;
        protected $idProfile;
        /**
         * Function checks and prepares all the parameters passed. Everything about $arParam modification is here.
         * @param $params		Parameters of component.
         * @return array		Checked and valid parameters.
         */
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
        /**
         * Function checks if required modules installed. If not, throws an exception
         * @throws Main\SystemException
         * @return void
         */
        protected function checkRequiredModules()
        {
        }
        /**
         * @return string|void
         */
        protected function responseAjax()
        {
        }
        /**
         * Load html for multiply location input
         *
         * @param $name
         * @param $key
         * @param $locationTemplate
         *
         * @return string
         */
        protected function getLocationHtml($name, $key, $locationTemplate)
        {
        }
        /**
         * @param Main\HttpRequest $request
         * @param array $userOrderProperties
         * @return void
         */
        protected function updateProfileProperties($request, $userOrderProperties)
        {
        }
        /**
         * Fill $arResult array for output in template 
         * @param $property
         * @throws Main\ArgumentException
         * @return void
         */
        protected function fillResultArray($property)
        {
        }
        /**
         * Move all errors to $this->arResult, if there were any
         * @return void
         */
        protected function formatResultErrors()
        {
        }
        /**
         * Check value required params of property
         * @param $property
         * @param $currentValue
         * @return bool
         */
        protected function checkProperty($property, $currentValue)
        {
        }
        /**
         * Create array properties for updating and check required properties
         * @param Main\HttpRequest $request
         * @param array $userOrderProperties
         * @return array $fieldValues
         */
        protected function prepareUpdatingProperties($request, $userOrderProperties)
        {
        }
        /**
         * Update and add profile properties
         * @param Main\HttpRequest $request
         * @param $fieldValues
         * @return void
         */
        protected function executeUpdatingProperties($request, $fieldValues)
        {
        }
        /**
         * Delete id's files from property with type "File"
         * @param string $idFileDeletingList
         * @param array $baseArray
         * @return string $newValue
         */
        protected function deleteFromPropertyTypeFile($idFileDeletingList, $baseArray)
        {
        }
    }
    class SaleOrderAjax extends \CBitrixComponent
    {
        const AUTH_BLOCK = 'AUTH';
        const REGION_BLOCK = 'REGION';
        const PAY_SYSTEM_BLOCK = 'PAY_SYSTEM';
        const DELIVERY_BLOCK = 'DELIVERY';
        const PROPERTY_BLOCK = 'PROPERTY';
        /** @var Order $order */
        protected $order;
        /** @var Sale\Basket\Storage $basketStorage */
        protected $basketStorage;
        /** @var Sale\Basket */
        private $calculateBasket;
        protected $action;
        protected $arUserResult;
        protected $isOrderConfirmed;
        protected $arCustomSelectFields = [];
        protected $arElementId = [];
        protected $arSku2Parent = [];
        /** @var Delivery\Services\Base[] $arDeliveryServiceAll */
        protected $arDeliveryServiceAll = [];
        protected $arPaySystemServiceAll = [];
        protected $arActivePaySystems = [];
        protected $arIblockProps = [];
        /** @var  PaySystem\Service $prePaymentService */
        protected $prePaymentService;
        protected $useCatalog;
        /** @var Main\Context $context */
        protected $context;
        protected $checkSession = \true;
        protected $isRequestViaAjax;
        public function onPrepareComponentParams($arParams)
        {
        }
        /**
         * Returns array of order properties from request
         *
         * @return array
         */
        protected function getPropertyValuesFromRequest()
        {
        }
        protected function addLastLocationPropertyValues($orderProperties)
        {
        }
        protected function getBasketStorage()
        {
        }
        protected function getLastOrderData(\Bitrix\Sale\Order $order)
        {
        }
        protected function initLastOrderData(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * Gets full order property list including all potential related properties (e.g. related to delivery or pay system).
         *
         * @param \Bitrix\Sale\Order $order
         * @return array
         */
        protected function getFullPropertyList(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * Initializes order properties from request, user profile, default values.
         * Checks properties (if order saves) and sets to the order.
         * Execution of 'OnSaleComponentOrderProperties' event.
         *
         * @param Order $order
         * @param       $isPersonTypeChanged
         */
        protected function initProperties(\Bitrix\Sale\Order $order, $isPersonTypeChanged)
        {
        }
        /**
         * Sets properties from $this->arUserResult['ORDER_PROP'] to the order.
         *
         * @param \Bitrix\Sale\Order $order
         */
        protected function setOrderProperties(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * Returns user property value from CUser
         *
         * @param    $property
         * @return    string
         */
        protected function getValueFromCUser($property)
        {
        }
        /**
         * Defines zip value if location was changed.
         *
         * @param Order $order
         * @param       $loadFromProfile
         */
        protected function checkZipProperty(\Bitrix\Sale\Order $order, $loadFromProfile)
        {
        }
        /**
         * Checks order properties for proper alternate location property display.
         *
         * @param Order $order
         * @param       $useProfileProperties
         * @param array $profileProperties
         */
        protected function checkAltLocationProperty(\Bitrix\Sale\Order $order, $useProfileProperties, array $profileProperties)
        {
        }
        protected function haveCitiesInTree($locationCode)
        {
        }
        /**
         * Returns basket quantity list for orderable items
         *
         * @param Sale\BasketBase $basket
         * @return array
         */
        protected function getActualQuantityList(\Bitrix\Sale\BasketBase $basket)
        {
        }
        /**
         * Append basket(for current FUser) to order object
         *
         * @param Order $order
         * @throws Main\ObjectNotFoundException
         */
        protected function initBasket(\Bitrix\Sale\Order $order)
        {
        }
        private function loadBasket()
        {
        }
        protected function showEmptyBasket()
        {
        }
        protected function addError($res, $type = 'MAIN')
        {
        }
        protected function addWarning($res, $type)
        {
        }
        protected static function getEscapedPostValue($name, $value)
        {
        }
        /**
         * Action - show and process authorization form
         *
         * @throws Main\ArgumentNullException
         */
        protected function showAuthFormAction()
        {
        }
        protected function confirmSmsCodeAction()
        {
        }
        protected function checkSocServicesAuthForm()
        {
        }
        protected function doAuthorize()
        {
        }
        protected function doRegister()
        {
        }
        protected function initStatGid()
        {
        }
        protected function initAffiliate()
        {
        }
        /**
         * Generation of user registration fields (login, password, etc)
         *
         * @param array $userProps
         * @return array
         * @throws Main\ArgumentNullException
         */
        public function generateUserData($userProps = [])
        {
        }
        protected function getNormalizedPhone($phone)
        {
        }
        protected function getNormalizedPhoneForRegistration($phone)
        {
        }
        /**
         * Creating new user and logging in
         *
         * @param $userProps
         * @return bool|int
         */
        protected function registerAndLogIn($userProps)
        {
        }
        /**
         * Returns array of user id and 'save to session' flag (true if 'unique user e-mails' option
         * active and we already have this e-mail)
         *
         * @return array
         * @throws Main\ArgumentNullException
         */
        protected function autoRegisterUser()
        {
        }
        public function initGrid()
        {
        }
        public function getGridHeaders($productColumns)
        {
        }
        public function getPropsInfo($source)
        {
        }
        public function getIblockProps($value, $propData, $arSize = ["WIDTH" => 90, "HEIGHT" => 90], $orderId = 0)
        {
        }
        public function getLinkedPropValue($basketItem, $property)
        {
        }
        public function getDirectoryProperty($basketItem, $property)
        {
        }
        public function getFileData($fileId, $orderId = 0, $arSize = ["WIDTH" => 90, "HEIGHT" => 90])
        {
        }
        /**
         * Set formatted order properties to $this->arResult (heavy load due to compatibility)
         * Execution of 'OnSaleComponentOrderOneStepOrderProps' event
         */
        protected function obtainFormattedProperties()
        {
        }
        protected function getOrderPropFormatted($arProperty, &$arDeleteFieldLocation = [])
        {
        }
        public static function formatYN(array &$arProperty)
        {
        }
        public static function formatString(array &$arProperty)
        {
        }
        public static function formatNumber(array &$arProperty)
        {
        }
        public static function formatEnum(array &$arProperty)
        {
        }
        public static function formatLocation(array &$arProperty, array &$arDeleteFieldLocation, $locationAltPropDisplayManual = \null)
        {
        }
        public static function formatFile(array &$arProperty)
        {
        }
        public static function formatDate(array &$arProperty)
        {
        }
        /**
         * Set basket items data from order object to $this->arResult
         */
        protected function obtainBasket()
        {
        }
        /**
         * Set basket items data from iblocks (basket column properties, sku, preview pictures, etc) to $this->arResult
         */
        protected function obtainPropertiesForIbElements()
        {
        }
        /**
         * Set delivery data from shipment object and delivery services object to $this->arResult
         * Execution of 'OnSaleComponentOrderOneStepDelivery' event
         *
         * @throws Main\NotSupportedException
         */
        protected function obtainDelivery()
        {
        }
        /**
         * Set pay system data from inner/external payment object and pay system services object to $this->arResult
         * Execution of 'OnSaleComponentOrderOneStepPaySystem' event
         */
        protected function obtainPaySystem()
        {
        }
        /**
         * Set related to payment/delivery order properties data from order object to $this->arResult
         *
         * @throws Main\ObjectNotFoundException
         */
        protected function obtainRelatedProperties()
        {
        }
        /**
         * Set taxes data from order object to $this->arResult
         */
        protected function obtainTaxes()
        {
        }
        /**
         * Set order total prices data from order object to $this->arResult
         */
        protected function obtainTotal()
        {
        }
        /**
         * Obtains all order fields filled by user.
         */
        protected function obtainUserConsentInfo()
        {
        }
        /**
         * Make $arResult compatible ('~' prefixes and htmlspecialcharsEx)
         */
        protected function makeResultCompatible()
        {
        }
        public static function makeCompatibleArray(&$array)
        {
        }
        /**
         * Check if PayPal prepayment is available
         *
         * @param Order $order
         * @throws Main\ArgumentException
         * @throws Main\NotSupportedException
         */
        protected function usePrepayment(\Bitrix\Sale\Order $order)
        {
        }
        protected function prepayOrder()
        {
        }
        /**
         * Initialization of person types. Set person type data to $this->arResult.
         * Return true if person type changed.
         * Execution of 'OnSaleComponentOrderOneStepPersonType' event
         *
         * @param Order $order
         * @return bool
         * @throws Main\ArgumentException
         */
        protected function initPersonType(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * Initialization of user profiles. Set user profiles data to $this->arResult.
         *
         * @param Order $order
         * @param       $isPersonTypeChanged
         */
        protected function initUserProfiles(\Bitrix\Sale\Order $order, $isPersonTypeChanged)
        {
        }
        public function getCurrentShipment(\Bitrix\Sale\Order $order)
        {
        }
        protected function getDeliveryIds(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * Initialization of shipment object with first/selected delivery service.
         *
         * @param Shipment $shipment
         * @throws Main\NotSupportedException
         */
        protected function initDelivery(\Bitrix\Sale\Shipment $shipment)
        {
        }
        protected function initDeliveryServices(\Bitrix\Sale\Shipment $shipment)
        {
        }
        protected function loadUserAccount(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * Set user budget data to $this->arResult. Returns sum to spend(including restrictions).
         *
         * @param Order $order
         * @param bool $recalculate
         * @return array
         * @throws Main\ObjectNotFoundException
         */
        protected function getInnerPaySystemInfo(\Bitrix\Sale\Order $order, $recalculate = \false)
        {
        }
        public function getInnerPayment(\Bitrix\Sale\Order $order)
        {
        }
        public function getExternalPayment(\Bitrix\Sale\Order $order)
        {
        }
        protected function showOnlyPrepaymentPs($paySystemId)
        {
        }
        /**
         * Initialization of inner/external payment objects with first/selected pay system services.
         *
         * @param Order $order
         * @throws Main\ObjectNotFoundException
         */
        protected function initPayment(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * Recalculates payment prices which could change due to shipment/discounts.
         *
         * @param Order $order
         * @throws Main\ObjectNotFoundException
         */
        protected function recalculatePayment(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * Calculates all available deliveries for order object.
         * Uses cloned order not to harm real order.
         * Execution of 'OnSaleComponentOrderDeliveriesCalculated' event
         *
         * @param Order $order
         * @throws Main\NotSupportedException
         */
        protected function calculateDeliveries(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param Order $order
         *
         * @return Order
         */
        protected function getOrderClone(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * Set specific order fields and user description.
         *
         * @param Order $order
         * @throws Main\ObjectNotFoundException
         */
        protected function initOrderFields(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * Ajax action - recalculate order and send JSON answer with data/errors
         */
        protected function refreshOrderAjaxAction()
        {
        }
        /**
         * Returns true if basket quantity list is equal to basket "before refresh" state
         *
         * @param Order $order
         * @return bool
         */
        protected function checkOrderConsistency(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * Ajax action - attempt to save order and send JSON answer with data/errors
         */
        protected function saveOrderAjaxAction()
        {
        }
        /**
         * Ajax action - add coupon and if needed recalculate order with JSON answer
         */
        protected function enterCouponAction()
        {
        }
        /**
         * Ajax action - remove coupon and if needed recalculate order with JSON answer
         */
        protected function removeCouponAction()
        {
        }
        /**
         * Execution of 'OnSaleComponentOrderShowAjaxAnswer' event
         *
         * @param $result
         */
        protected function showAjaxAnswer($result)
        {
        }
        public static function compareProperties($a, $b)
        {
        }
        /**
         * Resize image depending on scale type
         *
         * @param array $item
         * @param        $imageKey
         * @param array $arImage
         * @param array $sizeAdaptive
         * @param array $sizeStandard
         * @param string $scale
         */
        public static function resizeImage(array &$item, $imageKey, array $arImage, array $sizeAdaptive, array $sizeStandard, $scale = '')
        {
        }
        /**
         * Obtain all order data to $this->arResult['JS_DATA'] for template js initialization
         * Execution of 'OnSaleComponentOrderJsData' event
         *
         * @throws Main\ObjectNotFoundException
         */
        protected function getJsDataResult()
        {
        }
        /**
         * Scales images of all entities depending on scale parameters
         *
         * @param        $result
         * @param string $scale
         */
        public static function scaleImages(&$result, $scale = '')
        {
        }
        /**
         * Returns array with locations data output
         *
         * @return array
         */
        protected function getLocationsResult()
        {
        }
        protected function getLocationHtml($property, $locationTemplate)
        {
        }
        protected function isActiveCoupon($coupon)
        {
        }
        /**
         * Prepares $this->arResult
         * Execution of 'OnSaleComponentOrderOneStepProcess' event
         */
        protected function prepareResultArray()
        {
        }
        /**
         * Create $this->arUserResult array and fill with data from request
         * Execution of 'OnSaleComponentOrderUserResult' event
         */
        protected function makeUserResultArray()
        {
        }
        /**
         * Wrapper for event execution method.
         * Synchronizes modified data from event if needed.
         *
         * @param string $eventName
         * @param null $order
         * @deprecated
         * Compatibility method for old events.
         * Use new events like "OnSaleComponentOrderCreated" and "OnSaleComponentOrderResultPrepared" instead.
         *
         */
        protected function executeEvent($eventName = '', $order = \null)
        {
        }
        protected function synchronize($arModifiedResult, \Bitrix\Sale\Order $order)
        {
        }
        /**
         * Synchronization of modified fields with current order object.
         *
         * @param       $modifiedFields
         * @param Order $order
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        protected function synchronizeOrder($modifiedFields, \Bitrix\Sale\Order $order)
        {
        }
        public static function arrayDiffRecursive($arr1, $arr2)
        {
        }
        protected function makeOrderDataArray()
        {
        }
        protected function saveProfileData()
        {
        }
        protected function addStatistic()
        {
        }
        /**
         * Initialization of shipment object. Filling with basket items.
         *
         * @param Order $order
         * @return Shipment
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         */
        public function initShipment(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * Initializes user data and creates order.
         * Checks for event flags for possible order/payments recalculations.
         * Execution of 'OnSaleComponentOrderOneStepDiscountBefore' event.
         *
         * @param $userId
         * @return Order
         */
        protected function createOrder($userId)
        {
        }
        /**
         * Returns created order object based on user and request data.
         * Execution of 'OnSaleComponentOrderCreated' event.
         *
         * @param $userId
         * @return Order
         */
        protected function getOrder($userId)
        {
        }
        /**
         * Initializes companies for payment and shipment
         *
         * @param Order $order
         */
        protected function initEntityCompanyIds(\Bitrix\Sale\Order $order)
        {
        }
        protected function initTradeBinding(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * Prepares action string to execute in doAction
         *
         * refreshOrderAjax/saveOrderAjax - process/save order via JSON (new template)
         * enterCoupon/removeCoupon - add/delete coupons via JSON (new template)
         * showAuthForm - show authorization form (old/new templates)                 [including component template]
         * processOrder - process order (old(all hits)/new(first hit) templates) [including component template]
         * showOrder - show created order (old/new templates)                             [including component template]
         *
         * @return null|string
         */
        protected function prepareAction()
        {
        }
        /**
         * Checks whether component implements selected action.
         *
         * @param $action
         * @return bool
         */
        protected function actionExists($action)
        {
        }
        /**
         * Executes prepared action with postfix 'Action'
         *
         * @param $action
         */
        protected function doAction($action)
        {
        }
        protected function processOrderAction()
        {
        }
        /**
         * Action - show created order and payment info
         */
        protected function showOrderAction()
        {
        }
        /**
         * Action - saves order if there are no errors
         * Execution of 'OnSaleComponentOrderOneStepComplete' event
         *
         * @param bool $saveToSession
         */
        protected function saveOrder($saveToSession = \false)
        {
        }
        public function executeComponent()
        {
        }
    }
    class CSaleDeliveryRequestComponent extends \CBitrixComponent
    {
        public function checkParams($params)
        {
        }
        /**
         * @param array $params
         * @return array
         */
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
    }
    class CSaleShopPublicMenu extends \CBitrixComponent
    {
        public function onIncludeComponentLang()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
        /**
         * @throws AccessDeniedException
         * @throws LoaderException
         */
        protected function checkRequiredParams()
        {
        }
        /**
         * @throws LoaderException
         * @throws ArgumentOutOfRangeException
         */
        protected function setMenuCount()
        {
        }
        protected function formatResult()
        {
        }
        protected function initCore()
        {
        }
    }
    /**
     * Class SaleAccountPay
     */
    class SaleAccountPay extends \CBitrixComponent
    {
        /** @var  Main\ErrorCollection $errorCollection*/
        protected $errorCollection;
        /**
         * @var Sale\Registry registry
         */
        protected $registry = \null;
        /**
         * Function checks and prepares all the parameters passed. Everything about $arParam modification is here.
         * @param mixed[] $params List of unchecked parameters
         * @return mixed[] Checked and valid parameters
         */
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * Check Required Modules
         * @throws Main\SystemException
         * @return bool
         */
        protected function checkModules()
        {
        }
        /**
         * Prepare data to render in old version of component.
         * @return void
         */
        protected function fillArrayResultOld()
        {
        }
        /**
         * Get list of paysystems by user's type
         * @return array
         */
        protected function getListPaySystems()
        {
        }
        /**
         * Prepare data to render in new version of component.
         * @return void
         */
        protected function fillArrayResult()
        {
        }
        /**
         * Function implements all the life cycle of our component
         * @return void
         */
        public function executeComponent()
        {
        }
        /**
         * Return current class registry
         *
         * @param mixed[] array that date conversion performs in
         * @return void
         */
        protected function setRegistry()
        {
        }
        /**
         * Move all errors to $this->arResult, if there were any
         * @return void
         */
        protected function formatResultErrors()
        {
        }
        /**
         * Initialize empty shipment of order
         * @param Sale\Order $order
         * @return void
         */
        protected function initOrderShipment($order)
        {
        }
        /**
         * Initialize new basket with payment value
         * @param float $requestValue
         * @param bool $savePropertyCharge
         * @return Sale\Basket $basket
         */
        protected function initBasket($requestValue, $savePropertyCharge = \true)
        {
        }
        /**
         * Initialize new order
         * @param Sale\Basket $basket
         * @param int $personType
         * @return Sale\Order $order
         */
        protected function initOrder($basket, $personType)
        {
        }
        /**
         * Sending value payment to basket in old version component. Made for compatibility
         * @param Main\HttpRequest $request
         * @return void
         */
        protected function sendToBasketOld($request)
        {
        }
        /**
         * Preparing data for ordering payment
         * @param Main\HttpRequest $request
         * @return bool $result
         */
        protected function checkRequestData($request)
        {
        }
        /**
         * Ordering payment for calling in ajax callback
         * @param Main\HttpRequest $request			Params were selected in template.
         * @return void
         */
        protected function orderPayment($request)
        {
        }
    }
    class CSalePredictionProductDetailComponent extends \CBitrixComponent
    {
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
    }
    class CBitrixPersonalOrderDetailMail extends \CBitrixPersonalOrderDetailComponent
    {
        /**
         * @return void
         */
        protected function checkOrder()
        {
        }
        /**
         * Function could describe what to do when order ID not set. By default, component will redirect to list page.
         *
         * @throws Main\SystemException
         * @return void
         */
        protected function doCaseOrderIdNotSet()
        {
        }
        /**
         * @return array
         */
        protected function createCacheId()
        {
        }
        /**
         * Function implements all the life cycle of the component
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class PersonalProfileList extends \CBitrixComponent
    {
        const E_SALE_MODULE_NOT_INSTALLED = 10000;
        const E_NOT_AUTHORIZED = 10001;
        /** @var  Main\ErrorCollection $errorCollection*/
        protected $errorCollection;
        /**
         * Function checks and prepares all the parameters passed. Everything about $arParam modification is here.
         * @param mixed[] $params List of unchecked parameters
         * @return mixed[] Checked and valid parameters
         */
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
        /**
         * Function checks if required modules installed. If not, throws an exception
         * @throws Main\SystemException
         * @return void
         */
        protected function checkRequiredModules()
        {
        }
    }
    class CSaleBigdataPersonalMail extends \CatalogBigdataProductsComponent
    {
        protected function getProductIds()
        {
        }
        public function executeComponent()
        {
        }
    }
    class CSaleDeliveryRequestProcessComponent extends \CBitrixComponent
    {
        public function checkParams($params)
        {
        }
        /**
         * @param array $params
         * @return array
         */
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
    }
    class CSaleLocationMap extends \CBitrixComponent
    {
        protected function checkParams($params)
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
    }
    class CSaleDeliveryRusPostReliablity extends \CBitrixComponent
    {
        private function checkParams($params)
        {
        }
        public function executeComponent()
        {
        }
    }
    /**
     * Class SaleBsmSiteMaster
     */
    class SaleBsmSiteMaster extends \CBitrixComponent
    {
        /** @var string Full path to wizard directory */
        const WIZARD_DIR = __DIR__ . "/wizard/";
        /** @var string */
        const IS_SALE_BSM_SITE_MASTER_FINISH = "~IS_SALE_BSM_SITE_MASTER_FINISH";
        const ERROR_TYPE_COMPONENT = "COMPONENT";
        const ERROR_TYPE_WIZARD = "WIZARD";
        const BSM_WIZARD_SITE_ID = "~BSM_WIZARD_SITE_ID";
        /** @var string */
        const IS_SALE_BSM_SITE_MASTER_STUB = "~IS_SALE_BSM_SITE_MASTER_STUB";
        /** @var CWizardBase wizard */
        private $wizard;
        /** @var Tools\ModuleChecker $moduleChecker */
        private $moduleChecker;
        /** @var array variable for wizard */
        private $wizardVar = [];
        /** @var array default steps */
        private $defaultStep = [];
        /** @var array required steps */
        private $requiredStep = [];
        /** @var array error for wizard's step */
        private $wizardStepErrors = [];
        /**
         * @param $arParams
         * @return array
         */
        public function onPrepareComponentParams($arParams)
        {
        }
        /**
         * @return array
         */
        private function getDefaultSteps()
        {
        }
        /**
         * @return array
         */
        private function getRequiredSteps()
        {
        }
        /**
         * @return array
         */
        private function getRequiredModules()
        {
        }
        /**
         * @return mixed|void
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\LoaderException
         */
        public function executeComponent()
        {
        }
        /**
         * Create wizard and add steps
         */
        private function createWizard()
        {
        }
        /**
         * Set variables for wizard
         */
        private function setWizardVariables()
        {
        }
        /**
         * @return CWizardBase
         */
        public function getWizard()
        {
        }
        /**
         * @return array
         */
        private function getWizardVars()
        {
        }
        /**
         * @return Tools\ModuleChecker
         */
        public function getModuleChecker()
        {
        }
        /**
         * @param $stepName
         * @param $sort
         * @param bool $replace
         */
        private function addWizardStep($stepName, $sort, $replace = \false)
        {
        }
        /**
         * Include wizard's step
         */
        private function includeWizardSteps()
        {
        }
        /**
         * Include wizard's template
         */
        private function includeWizardTemplate()
        {
        }
        /**
         * Add wizard steps to component's params
         */
        private function addStepsToResult()
        {
        }
        /**
         * Check additional required step
         *
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        private function initSteps()
        {
        }
        /**
         * Sort wizard's step
         */
        private function sortSteps()
        {
        }
        private function checkBitrixVm()
        {
        }
        /**
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        private function checkAgents()
        {
        }
        private function checkPushServer()
        {
        }
        /**
         * @param string $currentStep
         * @return array
         */
        public function getSteps($currentStep)
        {
        }
        /**
         * Control required steps
         */
        private function controlRequiredSteps()
        {
        }
        /**
         * @param $stepName
         * @return bool
         */
        private function isStepExists($stepName)
        {
        }
        /**
         * @param $stepName
         */
        private function setStepImmediately($stepName)
        {
        }
        /**
         * @param $name
         * @param $value
         */
        private function addWizardVar($name, $value)
        {
        }
        /**
         * @param $stepName
         * @param $value
         */
        private function addWizardStepError($stepName, $value)
        {
        }
        /**
         * @param $stepName
         * @return array
         */
        public function getWizardStepErrors($stepName)
        {
        }
        /**
         * @param $errors
         * @param $type
         */
        private function addErrors($errors, $type)
        {
        }
        /**
         * @param array|string $error
         * @param $type
         */
        private function addError($error, $type)
        {
        }
        /**
         * @param $type
         * @return array
         */
        private function getErrors($type)
        {
        }
        /**
         * @throws Main\ArgumentOutOfRangeException
         */
        public function setSaleBsmSiteMasterFinish()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function isSaleBsmSiteMasterFinish()
        {
        }
        /**
         * @throws Main\ArgumentOutOfRangeException
         */
        public function setSaleBsmSiteMasterStub()
        {
        }
        /**
         * @param $siteId
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function setBsmSiteId($siteId)
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function getBsmSiteId()
        {
        }
        private function checkPermission()
        {
        }
        /**
         * @throws Main\LoaderException
         */
        private function checkModules()
        {
        }
        private function checkSession()
        {
        }
        /**
         * @return string
         */
        public function __toString()
        {
        }
    }
}
namespace Bitrix\Sale\BsmSiteMaster\Tools {
    /**
     * Class BsmPackage
     * @package Bitrix\Sale\BsmSiteMaster\Tools
     */
    class BsmPackage
    {
        private $id;
        private $siteId;
        /**
         * @param $id
         */
        public function setId($id)
        {
        }
        /**
         * @return string
         */
        public function getId()
        {
        }
        /**
         * @return string
         */
        public function getPath()
        {
        }
        /**
         * @param $siteId
         */
        public function setSiteId($siteId)
        {
        }
        /**
         * @return string
         */
        public function getSiteId()
        {
        }
    }
    /**
     * Class AgentChecker
     * @package Bitrix\Sale\BsmSiteMaster\Tools
     */
    class AgentChecker
    {
        const ERROR_CODE_FAIL = "Fail";
        const ERROR_CODE_WARNING = "Warning";
        /**
         * @return Main\Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function checkAgents()
        {
        }
    }
    /**
     * Class BitrixVmChecker
     * @package Bitrix\Sale\BsmSiteMaster\Tools
     */
    class BitrixVmChecker
    {
        /**
         * @return bool
         */
        public function isVm()
        {
        }
    }
    /**
     * Class PersonTypePreparer
     * @package Bitrix\Sale\BsmSiteMaster\Tools
     */
    class PersonTypePreparer
    {
        /** @var array $errors */
        private $errors = [];
        /**
         * @param string $error
         */
        private function setError($error)
        {
        }
        /**
         * @return array errors
         */
        public function getErrors()
        {
        }
        /**
         * Set business values for person types
         *
         * @param $siteId
         * @param $personTypeList
         * @return bool
         */
        public function preparePersonType($siteId, $personTypeList)
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function getPersonTypeList()
        {
        }
        /**
         * @param $personTypeId
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getCurrentPersonTypeSite($personTypeId)
        {
        }
        /**
         * @param $personTypeId
         * @param $siteId
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws \Exception
         */
        private function addSiteToPersonType($personTypeId, $siteId)
        {
        }
        /**
         * @param array $personTypes
         * @param $siteId
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function addSitesToPersonType(array $personTypes, $siteId)
        {
        }
        /**
         * @param $personTypeId
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws \Exception
         */
        private function deleteSitesFromPersonType($personTypeId)
        {
        }
    }
    /**
     * Class ModuleChecker
     * @package Bitrix\Sale\BsmSiteMaster\Tools
     */
    class ModuleChecker
    {
        const IS_MODULE_INSTALL = "~IS_MODULE_INSTALL";
        private $modulesRequired = [];
        /**
         * ModuleChecker constructor.
         * @param array $modulesRequired
         */
        public function setRequiredModules(array $modulesRequired)
        {
        }
        /**
         * @return array
         */
        public function getRequiredModules()
        {
        }
        /**
         * Check existence of required modules
         *
         * @return array
         */
        public function getNotExistModules()
        {
        }
        /**
         * Checks required modules
         */
        public function checkInstalledModules()
        {
        }
        /**
         * @param $moduleName
         * @return bool|mixed|string
         */
        private function getModuleVersion($moduleName)
        {
        }
        /**
         * @throws Main\ArgumentOutOfRangeException
         */
        public function setInstallStatus()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function isModuleInstall()
        {
        }
        /**
         * @throws Main\ArgumentNullException
         */
        public function deleteInstallStatus()
        {
        }
    }
    /**
     * Class PushChecker
     * @package Bitrix\Sale\BsmSiteMaster\Tools
     */
    class PushChecker
    {
        private $isModuleLoaded = false;
        /**
         * PushChecker constructor.
         */
        public function __construct()
        {
        }
        /**
         * @return bool
         */
        public function isModuleLoaded()
        {
        }
        /**
         * @return bool
         */
        public function isPushActive()
        {
        }
        /**
         * @return Main\Result
         */
        public function registerSharedServer()
        {
        }
        /**
         * @param Main\Result $registerResult
         * @return Main\Result
         */
        private function prepareErrors($registerResult)
        {
        }
        /**
         * @return bool
         */
        public function isShared()
        {
        }
        /**
         * @return bool
         */
        public function getModuleVersion()
        {
        }
    }
    /**
     * Class SitePatcher
     * @package Bitrix\Sale\BsmSiteMaster\Tools
     */
    class SitePatcher
    {
        const HIDE_PANEL_FOR_USERS = "hide_panel_for_users";
        const ALL_USERS_ACCESS_CODE = "G2";
        const FORCE_ENABLE_SELF_HOSTED_COMPOSITE = "force_enable_self_hosted_composite";
        /**
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function unsetG2GroupFromHidePanel()
        {
        }
        /**
         * Enable composite using option in .settings.php
         */
        public static function enableComposite()
        {
        }
        /**
         * @return bool
         */
        private static function isCanEnableComposite()
        {
        }
    }
}
namespace Bitrix\Sale\BsmSiteMaster\Steps {
    /**
     * Class SiteStep
     * Select or create site
     *
     * @package Bitrix\Sale\BsmSiteMaster\Steps
     */
    class SiteStep extends \CWizardStep
    {
        const SITE_TEMPLATE_LOGIN = "login";
        const WIZARD_PATH = "bitrix.eshop/install/wizards/bitrix/";
        const WIZARD_NAME = "eshop";
        private $currentStepName = __CLASS__;
        /** @var \SaleBsmSiteMaster */
        private $component = null;
        /** @var Main\Request */
        private $request;
        private $formFieldList = ["BSM_SITE", "LID", "NAME", "SERVER_NAME", "DOC_ROOT", "WIZARD_REWRITE"];
        /** @var array site's fields */
        private $fields = [];
        /**
         * Check step errors
         */
        private function setStepErrors()
        {
        }
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id, title and next/prev step
         *
         * @throws Main\SystemException
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         *
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function showStep()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function onPostForm()
        {
        }
        /**
         * @throws Main\SystemException
         */
        private function checkSite()
        {
        }
        /**
         * @param $id
         * @return array|false
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getSiteDataById($id)
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function setFields()
        {
        }
        /**
         * @return array
         */
        private function getFields()
        {
        }
        /**
         * Check site's fields
         *
         * @throws Main\SystemException
         */
        private function checkFields()
        {
        }
        /**
         * @return array
         * @throws Main\SystemException
         */
        private function createNewSite()
        {
        }
        /**
         * @param $serverName
         * @return mixed
         */
        private function prepareServerName($serverName)
        {
        }
        /**
         * @param $documentRoot
         * @return bool
         */
        private function isIndexFileExists($documentRoot)
        {
        }
        /**
         * @param $documentRoot
         * @return array
         */
        private function getMissingRequiredFileList($documentRoot)
        {
        }
        /**
         * @param $documentRoot
         * @return bool
         */
        private function isDocumentRootExists($documentRoot)
        {
        }
        /**
         * @param $lid
         * @param $path
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\SystemException
         */
        private function prepareSite($lid, $path)
        {
        }
        /**
         * @param $arFields
         */
        private function addTemplate(&$arFields)
        {
        }
        /**
         * @param $siteId
         * @throws Main\ArgumentOutOfRangeException
         */
        private function setAuthComponentsTemplate($siteId)
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getSiteList()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function showSelectSiteHtml()
        {
        }
        /**
         * Add html for creating new site
         */
        private function createNewSiteHtml()
        {
        }
        /**
         * Get site id for form
         *
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getRandSiteId()
        {
        }
        /**
         * @return int
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getSort()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getDefaultParam()
        {
        }
        /**
         * Set site for person types
         *
         * @param $siteId
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function preparePersonTypes($siteId)
        {
        }
        /**
         * Show extended errors
         *
         * @param $strError
         * @return string
         */
        public function showExtendedErrors($strError)
        {
        }
        /**
         * Init form fields from wizard's var
         */
        private function initFormFields()
        {
        }
        /**
         * Save form fields to hidden fields
         *
         * @return string
         */
        private function saveFormHiddenFields()
        {
        }
        /**
         * Save form fields to wizard's var
         */
        private function saveFormFields()
        {
        }
        /**
         * Delete form fields
         */
        private function deleteFormFields()
        {
        }
        /**
         * @param $siteId
         * @param $wizardName
         * @param $path
         * @return bool
         * @throws Main\SystemException
         */
        private function createWizardIndex($siteId, $wizardName, $path)
        {
        }
        /**
         * @param $documentRoot
         * @return bool
         */
        private function copyAccessFile($documentRoot)
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getPersonTypeIndexContent()
        {
        }
    }
    /**
     * Class BackupStep
     * Step with check backup
     *
     * @package Bitrix\Sale\BsmSiteMaster\Steps
     */
    class BackupStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleBsmSiteMaster */
        private $component = null;
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id, title and next step
         *
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         */
        public function showStep()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
    }
    /**
     * Class WelcomeStep
     * Step with welcome information
     *
     * @package Bitrix\Sale\BsmSiteMaster\Steps
     */
    class WelcomeStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleBsmSiteMaster */
        private $component = null;
        /**
         * Check step errors
         */
        private function setStepErrors()
        {
        }
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id, title and next step
         *
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         */
        public function showStep()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
    }
    /**
     * Class UpdateSystemStep
     * @package Bitrix\Sale\BsmSiteMaster\Steps
     */
    class UpdateSystemStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleBsmSiteMaster */
        private $component = null;
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id and title
         *
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * @return bool
         */
        public function showStep()
        {
        }
        /**
         * Prepare html content with modules to be installed
         */
        private function installModulesHtml()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
        /**
         * @return bool
         */
        public function onPostForm()
        {
        }
    }
    /**
     * Class FinishStep
     * Step with finish information
     *
     * @package Bitrix\Sale\BsmSiteMaster\Steps
     */
    class FinishStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleBsmSiteMaster */
        private $component = null;
        /**
         * Initialization step id and title
         */
        public function initStep()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function showStep()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function showButtons()
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getSiteUrl()
        {
        }
    }
    /**
     * Class AgentStep
     * Step of check agents
     *
     * @package Bitrix\Sale\BsmSiteMaster\Steps
     */
    class AgentStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleBsmSiteMaster */
        private $component = null;
        /**
         * Check step errors
         */
        private function setStepErrors()
        {
        }
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id and title
         *
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         *
         * @return bool
         */
        public function showStep()
        {
        }
        /**
         * @return bool
         */
        public function onPostForm()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
    }
}
namespace Bitrix\Sale\BsmSiteMaster\Templates {
    /**
     * Class BsmSiteMasterTemplate
     * Template for master
     *
     * @package Bitrix\Sale\BsmSiteMaster\Templates
     */
    class BsmSiteMasterTemplate extends \CWizardTemplate
    {
        /**
         * @return string
         */
        public function getLayout()
        {
        }
    }
}
namespace Bitrix\Sale\BsmSiteMaster\Steps {
    /**
     * Class ModuleStep
     * Show list of required modules
     *
     * @package Bitrix\Sale\BsmSiteMaster\Steps
     */
    class ModuleStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleBsmSiteMaster */
        private $component = null;
        private $modulesChecked = ["NOT_INSTALLED_MODULES" => [], "MIN_VERSION_MODULES" => []];
        /**
         * Check step errors
         */
        private function setStepErrors()
        {
        }
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id, title and next/prev step
         *
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         *
         * @return bool
         */
        public function showStep()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
        /**
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function onPostForm()
        {
        }
        /**
         * Prepare html content with modules to be installed
         */
        private function installModulesHtml()
        {
        }
        /**
         * Prepare html content with modules to be updated
         */
        private function minModulesHtml()
        {
        }
        /**
         * @param $id
         * @param $columns
         * @param $rows
         * @return false|string
         */
        private function includeGridComponent($id, $columns, $rows)
        {
        }
    }
    /**
     * Class SiteInstructionStep
     * Step with instructions for creating a site
     *
     * @package Bitrix\Sale\BsmSiteMaster\Steps
     */
    class SiteInstructionStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var Main\Request */
        private $request;
        /** @var \SaleBsmSiteMaster */
        private $component = null;
        private $formFieldList = ["CRM_SITE", "LID", "NAME", "SERVER_NAME", "DOC_ROOT", "WIZARD_REWRITE"];
        /**
         * Check step errors
         */
        private function setStepErrors()
        {
        }
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id, title and next step
         *
         * @throws \ReflectionException
         * @throws Main\SystemException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         */
        public function showStep()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
        /**
         * Save form fields to wizard's var
         */
        private function setFormFields()
        {
        }
    }
    /**
     * Class BitrixVmStep
     * Step of check Bitrix env
     *
     * @package Bitrix\Sale\BsmSiteMaster\Steps
     */
    class BitrixVmStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleBsmSiteMaster */
        private $component = null;
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id and title
         *
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         *
         * @return bool
         */
        public function showStep()
        {
        }
        /**
         * @return bool
         */
        public function onPostForm()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
    }
    /**
     * Class PushAndPullStep
     * Step of check agents
     *
     * @package Bitrix\Sale\BsmSiteMaster\Steps
     */
    class PushAndPullStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleBsmSiteMaster */
        private $component = null;
        /** @var Main\Request */
        private $request;
        /**
         * Check step errors
         */
        private function setStepErrors()
        {
        }
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id and title
         *
         * @throws Main\SystemException
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         *
         * @return bool
         */
        public function showStep()
        {
        }
        /**
         * @return bool
         */
        public function onPostForm()
        {
        }
        /**
         * @return array
         */
        public function showButtons()
        {
        }
    }
    /**
     * Class ModuleInstallStep
     * Install required modules
     *
     * @package Bitrix\Sale\BsmSiteMaster\Steps
     */
    class ModuleInstallStep extends \CWizardStep
    {
        private $currentStepName = __CLASS__;
        /** @var \SaleBsmSiteMaster */
        private $component = null;
        /** @var ModuleChecker */
        private $moduleChecker;
        /** @var array */
        private $modules = [];
        /**
         * Prepare next/prev buttons
         *
         * @throws \ReflectionException
         */
        private function prepareButtons()
        {
        }
        /**
         * Initialization step id, title and next/prev step
         *
         * @throws \ReflectionException
         */
        public function initStep()
        {
        }
        /**
         * Show step content
         *
         * @return bool
         * @throws Main\ArgumentOutOfRangeException
         */
        public function showStep()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\SystemException
         */
        public function onPostForm()
        {
        }
        /**
         * @return array
         */
        private function getFirstModule()
        {
        }
        /**
         * Get next module for installation
         *
         * @param $moduleId
         * @return array
         */
        private function getModuleStep($moduleId)
        {
        }
        /**
         * @param $moduleId
         */
        private function onModuleInstalledEvent($moduleId)
        {
        }
        /**
         * Install required modules
         *
         * @param $moduleId
         * @return bool
         */
        private function installModule($moduleId)
        {
        }
        /**
         * @param $response
         */
        private function sendResponse($response)
        {
        }
    }
}
namespace {
    class Step1 extends \CWizardStep
    {
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class Step2 extends \CWizardStep
    {
        function InitStep()
        {
        }
        function ShowStep()
        {
        }
        function OnPostForm()
        {
        }
    }
    class Step5 extends \CWizardStep
    {
        function InitStep()
        {
        }
        function ShowStep()
        {
        }
        function OnPostForm()
        {
        }
    }
    class Step3 extends \CWizardStep
    {
        function InitStep()
        {
        }
        function ShowStep()
        {
        }
    }
    class Step4 extends \CWizardStep
    {
        function InitStep()
        {
        }
        function ShowStep()
        {
        }
        function OnPostForm()
        {
        }
    }
    class FinalStep extends \CWizardStep
    {
        function InitStep()
        {
        }
        function ShowStep()
        {
        }
    }
    class CancelStep extends \CWizardStep
    {
        function InitStep()
        {
        }
        function ShowStep()
        {
        }
    }
    class Step0 extends \CWizardStep
    {
        function InitStep()
        {
        }
        function ShowStep()
        {
        }
    }
    class Step6 extends \CWizardStep
    {
        function InitStep()
        {
        }
        function ShowStep()
        {
        }
    }
    class Step7 extends \CWizardStep
    {
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class Step8 extends \CWizardStep
    {
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class Install extends \CWizardStep
    {
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class CAllSaleAffiliatePlan
    {
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Delete($ID)
        {
        }
        function GetByID($ID)
        {
        }
        function CheckAffiliatePlanFunc($affiliatePlan)
        {
        }
    }
    class CAllSaleAffiliateTransact
    {
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Delete($ID)
        {
        }
        function OnAffiliateDelete($affiliateID)
        {
        }
        function GetByID($ID)
        {
        }
        function Update($ID, $arFields)
        {
        }
    }
    class CAllSaleOrderChange
    {
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public function GetByID($ID)
        {
        }
        public function Delete($ID)
        {
        }
        /**
         * @param $id
         *
         * @return bool|CDBResult
         */
        public function deleteByOrderId($id)
        {
        }
        /**
         * Delete records from history which older then count days
         *
         * @param $days
         * @param null $limit
         *
         * @return bool
         */
        public static function deleteOld($days, $limit = \null)
        {
        }
        /*
         * Adds record to the order change history
         * Wrapper around CSaleOrderChange::Add method
         *
         * @param int $orderId - order ID
         * @param string $type - operation type (@see CSaleOrderChangeFormat for full list of supported operations)
         * @param array $data - array of information relevant for the record type (will be used in the record description)
         * @param null|string $entityName -
         * @return bool
         */
        public static function AddRecord($orderId, $type, $data = array(), $entityName = \null, $entityId = \null)
        {
        }
        /*
         * Automatically adds records to the order changes list based on changes in the fields of the Update method.
         * By default changes in the CSaleOrder::Update and CSaleBasket::Update fields are supported.
         *
         * @see CSaleOrderChangeFormat - list of possible types of operations which will be used in analyzing incoming fields
         *
         * @param int $orderId - order ID
         * @param array $OldFields - old fields with values (retrieved by entity GetById method)
         * @param array $NewFields - new array of fields and their values
         * @param array $arDeleteFields - array of fields to be ignored
         * @param string $entityName - name of the entity (empty for order, "BASKET" for basket items etc). Used in filtering operations when creating records automatically
         * @param $entity - entity
         * @return bool
         */
        public static function AddRecordsByFields($orderId, array $arOldFields, array $arNewFields, $arDeleteFields = array(), $entityName = "", $entityId = \null, $entity = \null, array $data = array())
        {
        }
        /*
         * Creates an array of the order change record based on the necessary fields (DATA_FIELDS) if field is found among TRIGGER_FIELDS (@CSaleOrderChangeFormat)
         *
         * @param string $field - field name (if TRIGGER_FIELDS of any operation contains this field, a record about such operation will be created)
         * @param array $arFields - any other fields which should be used for creating a record
         * @param string $entity - name of the entity (empty for order, "BASKET" for basket items etc). Used in filtering operations when creating records automatically
         * @return array with keys: TYPE - operation type @see CSaleOrderChangeFormat, DATA - array of the relevant parameters based on the DATA_FIELDS
         */
        public static function MakeRecordFromField($field, $arFields, $entityName = "", $entity = \null)
        {
        }
        /*
         * Returns full description of the order change record based on the formatting function and data
         * saved for this record. Only works if specified type is found among existing types.
         *
         * Function is used in the order history in the detailed order view.
         *
         * @param string $type - one of the operation types (@see CSaleOrderChangeFormat)
         * @param string $data - serialized data saved in the database for the record of this type
         * @return array with keys: NAME - record name, INFO - full description (string)
         */
        public function GetRecordDescription($type, $data)
        {
        }
    }
    class CSaleOrderChangeFormat
    {
        public static $operationTypes = array("ORDER_DEDUCTED" => array("TRIGGER_FIELDS" => array("DEDUCTED"), "FUNCTION" => "FormatOrderDeducted", "DATA_FIELDS" => array("DEDUCTED", "REASON_UNDO_DEDUCTED"), "ENTITY" => 'ORDER'), "ORDER_MARKED" => array("TRIGGER_FIELDS" => array("MARKED"), "FUNCTION" => "FormatOrderMarked", "DATA_FIELDS" => array("REASON_MARKED", "MARKED"), "ENTITY" => 'ORDER'), "ORDER_RESERVED" => array("TRIGGER_FIELDS" => array("RESERVED"), "FUNCTION" => "FormatOrderReserved", "DATA_FIELDS" => array("RESERVED"), "ENTITY" => 'SHIPMENT'), "ORDER_CANCELED" => array("TRIGGER_FIELDS" => array("CANCELED"), "FUNCTION" => "FormatOrderCanceled", "DATA_FIELDS" => array("CANCELED", "REASON_CANCELED"), "ENTITY" => 'ORDER'), "ORDER_COMMENTED" => array("TRIGGER_FIELDS" => array("COMMENTS"), "FUNCTION" => "FormatOrderCommented", "DATA_FIELDS" => array("COMMENTS", 'OLD_COMMENTS'), "ENTITY" => 'ORDER'), "ORDER_STATUS_CHANGED" => array("TRIGGER_FIELDS" => array("STATUS_ID"), "FUNCTION" => "FormatOrderStatusChanged", "DATA_FIELDS" => array("STATUS_ID"), "ENTITY" => 'ORDER'), "ORDER_DELIVERY_ALLOWED" => array("TRIGGER_FIELDS" => array("ALLOW_DELIVERY"), "FUNCTION" => "FormatOrderDeliveryAllowed", "DATA_FIELDS" => array("ALLOW_DELIVERY"), "ENTITY" => 'SHIPMENT'), "ORDER_DELIVERY_DOC_CHANGED" => array("TRIGGER_FIELDS" => array("DELIVERY_DOC_NUM"), "FUNCTION" => "FormatOrderDeliveryDocChanged", "DATA_FIELDS" => array("DELIVERY_DOC_NUM", "DELIVERY_DOC_DATE"), "ENTITY" => 'SHIPMENT'), "ORDER_PAYMENT_SYSTEM_CHANGED" => array("TRIGGER_FIELDS" => array("PAY_SYSTEM_ID"), "FUNCTION" => "FormatOrderPaymentSystemChanged", "DATA_FIELDS" => array("PAY_SYSTEM_ID"), "ENTITY" => 'PAYMENT'), "ORDER_PAYMENT_VOUCHER_CHANGED" => array("TRIGGER_FIELDS" => array("PAY_VOUCHER_NUM"), "FUNCTION" => "FormatOrderPaymentVoucherChanged", "DATA_FIELDS" => array("PAY_VOUCHER_NUM", "PAY_VOUCHER_DATE"), "ENTITY" => 'PAYMENT'), "ORDER_DELIVERY_SYSTEM_CHANGED" => array("TRIGGER_FIELDS" => array("DELIVERY_ID"), "FUNCTION" => "FormatOrderDeliverySystemChanged", "DATA_FIELDS" => array("DELIVERY_ID", "DELIVERY_NAME"), "ENTITY" => 'SHIPMENT'), "ORDER_PERSON_TYPE_CHANGED" => array("TRIGGER_FIELDS" => array("PERSON_TYPE_ID"), "FUNCTION" => "FormatOrderPersonTypeChanged", "DATA_FIELDS" => array("PERSON_TYPE_ID"), "ENTITY" => 'ORDER'), "ORDER_PAYED" => array("TRIGGER_FIELDS" => array("PAYED"), "FUNCTION" => "FormatOrderPayed", "DATA_FIELDS" => array("PAYED"), "ENTITY" => 'PAYMENT'), "ORDER_TRACKING_NUMBER_CHANGED" => array("TRIGGER_FIELDS" => array("TRACKING_NUMBER"), "FUNCTION" => "FormatOrderTrackingNumberChanged", "DATA_FIELDS" => array("TRACKING_NUMBER"), "ENTITY" => 'SHIPMENT'), "ORDER_USER_DESCRIPTION_CHANGED" => array("TRIGGER_FIELDS" => array("USER_DESCRIPTION"), "FUNCTION" => "FormatOrderUserDescriptionChanged", "DATA_FIELDS" => array("USER_DESCRIPTION", "OLD_USER_DESCRIPTION"), "ENTITY" => 'ORDER'), "ORDER_PRICE_DELIVERY_CHANGED" => array("TRIGGER_FIELDS" => array("PRICE_DELIVERY"), "FUNCTION" => "FormatOrderPriceDeliveryChanged", "DATA_FIELDS" => array("PRICE_DELIVERY", "CURRENCY"), "ENTITY" => 'SHIPMENT'), "ORDER_PRICE_CHANGED" => array("TRIGGER_FIELDS" => array("PRICE"), "FUNCTION" => "FormatOrderPriceChanged", "DATA_FIELDS" => array("PRICE", "OLD_PRICE", "CURRENCY"), "ENTITY" => 'ORDER'), "ORDER_1C_IMPORT" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatOrder1CImport", "DATA_FIELDS" => array(), "ENTITY" => 'ORDER'), "ORDER_ADDED" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatOrderAdded", "DATA_FIELDS" => array(), "ENTITY" => 'ORDER'), "ORDER_UPDATED" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatOrderUpdated", "DATA_FIELDS" => array(), "ENTITY" => 'ORDER'), "ORDER_RESPONSIBLE_CHANGE" => array("TRIGGER_FIELDS" => array("RESPONSIBLE_ID"), "FUNCTION" => "FormatOrderChange", "DATA_FIELDS" => array("RESPONSIBLE_ID", "RESPONSIBLE_NAME", "OLD_RESPONSIBLE_ID", "OLD_RESPONSIBLE_NAME"), "DATA_METHOD" => array("RESPONSIBLE_NAME" => array('CSaleOrderChangeFormat::getOrderResponsibleName', array("RESPONSIBLE_ID")), "OLD_RESPONSIBLE_NAME" => array('CSaleOrderChangeFormat::getOrderResponsibleName', array("OLD_RESPONSIBLE_ID"))), "ENTITY" => 'ORDER'), "BASKET_ADDED" => array("ENTITY" => "BASKET", "TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatBasketAdded", "DATA_FIELDS" => array("PRODUCT_ID", "NAME", "QUANTITY", "SET_PARENT_ID")), "BASKET_REMOVED" => array("ENTITY" => "BASKET", "TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatBasketRemoved", "DATA_FIELDS" => array("PRODUCT_ID", "NAME")), "BASKET_QUANTITY_CHANGED" => array("ENTITY" => "BASKET", "TRIGGER_FIELDS" => array("QUANTITY"), "FUNCTION" => "FormatBasketQuantityChanged", "DATA_FIELDS" => array("PRODUCT_ID", "NAME", "QUANTITY")), "BASKET_PRICE_CHANGED" => array("ENTITY" => "BASKET", "TRIGGER_FIELDS" => array("PRICE"), "FUNCTION" => "FormatBasketPriceChanged", "DATA_FIELDS" => array("PRODUCT_ID", "NAME", "PRICE", "CURRENCY")), "BASKET_SAVED" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatOrderChange", "DATA_FIELDS" => array(), "ENTITY" => 'BASKET'), "ORDER_DELIVERY_REQUEST_SENT" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatOrderDeliveryRequestSent", "DATA_FIELDS" => array()), "PAYMENT_ADDED" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatPaymentAdded", "DATA_FIELDS" => array("PAY_SYSTEM_NAME", "SUM"), "ENTITY" => 'PAYMENT'), "PAYMENT_REMOVED" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatPaymentRemoved", "DATA_FIELDS" => array("PAY_SYSTEM_ID", "PAY_SYSTEM_NAME"), "ENTITY" => "PAYMENT"), "PAYMENT_PAID" => array("TRIGGER_FIELDS" => array("PAID"), "FUNCTION" => "FormatPaymentPaid", "DATA_FIELDS" => array("PAID", "ID", "PAY_SYSTEM_NAME"), "ENTITY" => 'PAYMENT'), "PAYMENT_SYSTEM_CHANGED" => array("TRIGGER_FIELDS" => array("PAY_SYSTEM_ID"), "FUNCTION" => "FormatPaymentSystemChanged", "DATA_FIELDS" => array("PAY_SYSTEM_ID"), "ENTITY" => 'PAYMENT'), "PAYMENT_VOUCHER_CHANGED" => array("TRIGGER_FIELDS" => array("PAY_VOUCHER_NUM"), "FUNCTION" => "FormatPaymentVoucherChanged", "DATA_FIELDS" => array("PAY_VOUCHER_NUM", "PAY_VOUCHER_DATE"), "ENTITY" => 'PAYMENT'), "PAYMENT_PRICE_CHANGED" => array("TRIGGER_FIELDS" => array("PRICE"), "FUNCTION" => "FormatPaymentPriceChanged", "DATA_FIELDS" => array("PRICE", "CURRENCY"), "ENTITY" => 'PAYMENT'), "PAYMENT_SAVED" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatOrderChange", "DATA_FIELDS" => array(), "ENTITY" => 'PAYMENT'), "SHIPMENT_ADDED" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatShipmentAdded", "DATA_FIELDS" => array('DELIVERY_NAME'), "ENTITY" => 'SHIPMENT'), "SHIPMENT_REMOVED" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatShipmentRemoved", "DATA_FIELDS" => array("ID", "DELIVERY_NAME"), "ENTITY" => "SHIPMENT"), "SHIPMENT_ITEM_BASKET_ADDED" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatShipmentItemBasketAdded", "DATA_FIELDS" => array("PRODUCT_ID", "NAME", "QUANTITY"), "ENTITY" => 'SHIPMENT'), "SHIPMENT_ITEM_BASKET_REMOVED" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatShipmentItemBasketRemoved", "DATA_FIELDS" => array("PRODUCT_ID", "NAME", "QUANTITY"), "ENTITY" => 'SHIPMENT'), "SHIPMENT_DELIVERY_ALLOWED" => array("TRIGGER_FIELDS" => array("ALLOW_DELIVERY"), "FUNCTION" => "FormatShipmentDeliveryAllowed", "DATA_FIELDS" => array("ALLOW_DELIVERY"), "ENTITY" => 'SHIPMENT'), "SHIPMENT_SHIPPED" => array("TRIGGER_FIELDS" => array("DEDUCTED"), "FUNCTION" => "FormatShipmentDeducted", "DATA_FIELDS" => array("DELIVERY_NAME", "DEDUCTED"), "ENTITY" => 'SHIPMENT'), "SHIPMENT_MARKED" => array("TRIGGER_FIELDS" => array("MARKED"), "FUNCTION" => "FormatShipmentMarked", "DATA_FIELDS" => array("REASON_MARKED", "MARKED"), "ENTITY" => 'SHIPMENT'), "SHIPMENT_RESERVED" => array("TRIGGER_FIELDS" => array("RESERVED"), "FUNCTION" => "FormatShipmentReserved", "DATA_FIELDS" => array("RESERVED"), "ENTITY" => 'SHIPMENT'), "SHIPMENT_CANCELED" => array("TRIGGER_FIELDS" => array("CANCELED"), "FUNCTION" => "FormatShipmentCanceled", "DATA_FIELDS" => array("CANCELED", "REASON_CANCELED"), "ENTITY" => 'SHIPMENT'), "SHIPMENT_STATUS_CHANGED" => array("TRIGGER_FIELDS" => array("STATUS_ID"), "FUNCTION" => "FormatShipmentStatusChanged", "DATA_FIELDS" => array("STATUS_ID"), "ENTITY" => 'SHIPMENT'), "SHIPMENT_DELIVERY_DOC_CHANGED" => array("TRIGGER_FIELDS" => array("DELIVERY_DOC_NUM"), "FUNCTION" => "FormatShipmentDeliveryDocChanged", "DATA_FIELDS" => array("DELIVERY_DOC_NUM", "DELIVERY_DOC_DATE"), "ENTITY" => 'SHIPMENT'), "SHIPMENT_TRACKING_NUMBER_CHANGED" => array("TRIGGER_FIELDS" => array("TRACKING_NUMBER"), "FUNCTION" => "FormatShipmentTrackingNumberChanged", "DATA_FIELDS" => array("TRACKING_NUMBER"), "ENTITY" => 'SHIPMENT'), "SHIPMENT_PRICE_DELIVERY_CHANGED" => array("TRIGGER_FIELDS" => array("PRICE_DELIVERY"), "FUNCTION" => "FormatShipmentPriceDeliveryChanged", "DATA_FIELDS" => array("PRICE_DELIVERY", "CURRENCY"), "ENTITY" => 'SHIPMENT'), "SHIPMENT_AMOUNT_CHANGED" => array("TRIGGER_FIELDS" => array("QUANTITY"), "FUNCTION" => "FormatShipmentQuantityChanged", "DATA_FIELDS" => array("QUANTITY"), "ENTITY" => 'SHIPMENT_ITEM_STORE'), "SHIPMENT_QUANTITY_CHANGED" => array("TRIGGER_FIELDS" => array("QUANTITY"), "FUNCTION" => "FormatShipmentQuantityChanged", "DATA_FIELDS" => array("QUANTITY", "ORDER_DELIVERY_ID", "NAME", "PRODUCT_ID"), "ENTITY" => 'SHIPMENT_ITEM'), "SHIPMENT_RESPONSIBLE_CHANGE" => array("TRIGGER_FIELDS" => array("RESPONSIBLE_ID"), "FUNCTION" => "FormatOrderChange", "DATA_FIELDS" => array("RESPONSIBLE_ID", "RESPONSIBLE_NAME", "OLD_RESPONSIBLE_ID", "OLD_RESPONSIBLE_NAME"), "DATA_METHOD" => array("RESPONSIBLE_NAME" => array('CSaleOrderChangeFormat::getOrderResponsibleName', array("RESPONSIBLE_ID")), "OLD_RESPONSIBLE_NAME" => array('CSaleOrderChangeFormat::getOrderResponsibleName', array("OLD_RESPONSIBLE_ID"))), "ENTITY" => 'SHIPMENT'), "SHIPMENT_SAVED" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatOrderChange", "DATA_FIELDS" => array(), "ENTITY" => 'SHIPMENT'), "ORDER_UPDATE" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array("PERSON_TYPE_ID", "CANCELED", "STATUS_ID", "MARKED", "PRICE", "SUM_PAID", "USER_ID", "EXTERNAL_ORDER"), "ENTITY" => "ORDER"), "BASKET_ITEM_UPDATE" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array("QUANTITY", "PRICE", "PRODUCT_ID", "DISCOUNT_VALUE", "VAT_RATE", "OLD_QUANTITY", "OLD_PRICE", "OLD_PRODUCT_ID", "OLD_DISCOUNT_VALUE", "OLD_VAT_RATE"), "ENTITY" => "BASKET"), "BASKET_ITEM_DELETE_BUNDLE" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array(), "ENTITY" => "BASKET"), "BASKET_ITEM_DELETED" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array(), "ENTITY" => "BASKET"), "PAYMENT_ADD" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array("PAID", "PAY_SYSTEM_ID", "PAY_SYSTEM_NAME", "SUM", "IS_RETURN", "ACCOUNT_NUMBER", "EXTERNAL_PAYMENT"), "ENTITY" => "PAYMENT"), "PAYMENT_UPDATE" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array("PAID", "PAY_SYSTEM_ID", "PAY_SYSTEM_NAME", "SUM", "IS_RETURN", "ACCOUNT_NUMBER", "EXTERNAL_PAYMENT", "OLD_PAID", "OLD_PAY_SYSTEM_ID", "OLD_PAY_SYSTEM_NAME", "OLD_SUM", "OLD_IS_RETURN", "OLD_ACCOUNT_NUMBER", "OLD_EXTERNAL_PAYMENT"), "ENTITY" => "PAYMENT"), "SHIPMENT_ADD" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array("DELIVERY_LOCATION", "PRICE_DELIVERY", "CUSTOM_PRICE_DELIVERY", "ALLOW_DELIVERY", "DEDUCTED", "RESERVED", "DELIVERY_NAME", "DELIVERY_ID", "CANCELED", "MARKED", "SYSTEM", "COMPANY_ID", "DISCOUNT_PRICE", "BASE_PRICE_DELIVERY", "EXTERNAL_DELIVERY", "OLD_DELIVERY_LOCATION", "OLD_PRICE_DELIVERY", "OLD_CUSTOM_PRICE_DELIVERY", "OLD_ALLOW_DELIVERY", "OLD_DEDUCTED", "OLD_RESERVED", "OLD_DELIVERY_NAME", "OLD_DELIVERY_ID", "OLD_CANCELED", "OLD_MARKED", "OLD_SYSTEM", "OLD_COMPANY_ID", "OLD_DISCOUNT_PRICE", "OLD_BASE_PRICE_DELIVERY", "OLD_EXTERNAL_DELIVERY"), "ENTITY" => "SHIPMENT"), "SHIPMENT_UPDATE" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array("DELIVERY_NAME", "DELIVERY_ID", "OLD_DELIVERY_NAME", "OLD_DELIVERY_ID"), "ENTITY" => "SHIPMENT"), "SHIPMENT_ITEM_ADD" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array("QUANTITY", "RESERVED_QUANTITY", "BASKET_ID", "BASKET_ITEM_NAME", "BASKET_ITEM_PRODUCT_ID", "ORDER_DELIVERY_ID"), "ENTITY" => "SHIPMENT_ITEM"), "SHIPMENT_ITEM_UPDATE" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array("BASKET_ID", "BASKET_ITEM_NAME", "BASKET_ITEM_PRODUCT_ID", "ORDER_DELIVERY_ID", "QUANTITY", "RESERVED_QUANTITY", "OLD_QUANTITY", "OLD_RESERVED_QUANTITY"), "ENTITY" => "SHIPMENT_ITEM"), "TAX_ADD" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array(), "ENTITY" => "TAX"), "TAX_UPDATE" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array(), "ENTITY" => "TAX"), "TAX_DELETED" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array(), "ENTITY" => "TAX"), "TAX_DUPLICATE_DELETED" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array(), "ENTITY" => "TAX"), "TAX_SAVED" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatOrderChange", "DATA_FIELDS" => array(), "ENTITY" => 'TAX'), "PROPERTY_ADD" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array("NAME", "VALUE", "CODE"), "ENTITY" => "PROPERTY"), "PROPERTY_UPDATE" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array("NAME", "VALUE", "CODE", "OLD_NAME", "OLD_VALUE", "OLD_CODE"), "ENTITY" => "PROPERTY"), "PROPERTY_REMOVE" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array("NAME", "CODE", "VALUE"), "ENTITY" => "PROPERTY"), "PROPERTY_SAVED" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatOrderChange", "DATA_FIELDS" => array(), "ENTITY" => 'PROPERTY'), "DISCOUNT_SAVED" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array(), "ENTITY" => "DISCOUNT"), "ORDER_UPDATE_ERROR" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatErrorLog", "DATA_FIELDS" => array("ERROR"), "ENTITY" => 'ORDER'), "BASKET_ITEM_ADD_ERROR" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatErrorLog", "DATA_FIELDS" => array("ERROR"), "ENTITY" => 'BASKET_ITEM'), "BASKET_ITEM_UPDATE_ERROR" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatErrorLog", "DATA_FIELDS" => array("ERROR"), "ENTITY" => 'BASKET_ITEM'), "SHIPMENT_ADD_ERROR" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatErrorLog", "DATA_FIELDS" => array("ERROR"), "ENTITY" => 'SHIPMENT'), "SHIPMENT_UPDATE_ERROR" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatErrorLog", "DATA_FIELDS" => array("ERROR"), "ENTITY" => 'SHIPMENT'), "SHIPMENT_ITEM_ADD_ERROR" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatErrorLog", "DATA_FIELDS" => array("ERROR"), "ENTITY" => 'SHIPMENT_ITEM'), "SHIPMENT_ITEM_UPDATE_ERROR" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatErrorLog", "DATA_FIELDS" => array("ERROR"), "ENTITY" => 'SHIPMENT_ITEM'), "SHIPMENT_ITEM_STORE_ADD_ERROR" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatErrorLog", "DATA_FIELDS" => array("ERROR"), "ENTITY" => 'SHIPMENT_ITEM_STORE'), "SHIPMENT_ITEM_STORE_UPDATE_ERROR" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatErrorLog", "DATA_FIELDS" => array("ERROR"), "ENTITY" => 'SHIPMENT_ITEM_STORE'), "SHIPMENT_ITEM_BASKET_ITEM_EMPTY_ERROR" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatErrorLog", "DATA_FIELDS" => array("ERROR"), "ENTITY" => 'SHIPMENT_ITEM'), "MARKER_SUCCESS" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatMarkerSuccess", "DATA_FIELDS" => array("ENTITY_ID", "MESSAGE"), "ENTITY" => 'SHIPMENT'), "ORDER_SYNCHRONIZATION_IMPORT" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array(), "ENTITY" => 'ORDER'), "ORDER_SYNCHRONIZATION_EXPORT" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatLog", "DATA_FIELDS" => array(), "ENTITY" => 'ORDER'), "ORDER_SYNCHRONIZATION_EXPORT_ERROR" => array("TRIGGER_FIELDS" => array(), "FUNCTION" => "FormatErrorLog", "DATA_FIELDS" => array("ERROR"), "ENTITY" => 'BASKET_ITEM'));
        public static function FormatBasketAdded($data)
        {
        }
        public static function FormatBasketRemoved($data)
        {
        }
        public static function FormatOrderMarked($data)
        {
        }
        public static function FormatOrderReserved($data)
        {
        }
        public static function FormatOrderDeducted($data)
        {
        }
        public static function FormatOrderCanceled($data)
        {
        }
        public static function FormatOrderCommented($data)
        {
        }
        public static function FormatOrderStatusChanged($data)
        {
        }
        public static function FormatOrderDeliveryAllowed($data)
        {
        }
        public static function FormatOrderDeliveryDocChanged($data)
        {
        }
        public static function FormatOrderPaymentSystemChanged($data)
        {
        }
        public static function FormatOrderDeliverySystemChanged($data)
        {
        }
        public static function FormatOrderPersonTypeChanged($data)
        {
        }
        public static function FormatOrderPaymentVoucherChanged($data)
        {
        }
        public static function FormatOrderPayed($data)
        {
        }
        public static function FormatOrderTrackingNumberChanged($data)
        {
        }
        public static function FormatOrderUserDescriptionChanged($data)
        {
        }
        public static function FormatOrderPriceDeliveryChanged($data)
        {
        }
        public static function FormatOrderPriceChanged($data)
        {
        }
        public static function FormatBasketQuantityChanged($data)
        {
        }
        public static function FormatOrder1CImport($data)
        {
        }
        public static function FormatOrderAdded($data)
        {
        }
        public static function FormatOrderUpdated($data)
        {
        }
        public static function FormatBasketPriceChanged($data)
        {
        }
        public static function FormatOrderDeliveryRequestSent($data)
        {
        }
        public static function FormatPaymentPaid($data)
        {
        }
        public static function FormatShipmentDeliveryAllowed($data)
        {
        }
        public static function FormatShipmentAdded($data)
        {
        }
        public static function FormatShipmentMarked($data)
        {
        }
        public static function FormatShipmentItemBasketAdded($data)
        {
        }
        public static function FormatShipmentItemBasketRemoved($data)
        {
        }
        public static function FormatShipmentRemoved($data)
        {
        }
        public static function FormatShipmentCanceled($data)
        {
        }
        public static function FormatPaymentAdded($data)
        {
        }
        public static function FormatPaymentRemoved($data)
        {
        }
        public static function FormatShipmentDeducted($data)
        {
        }
        public static function FormatShipmentReserved($data)
        {
        }
        public static function FormatPaymentSystemChanged($data)
        {
        }
        public static function FormatShipmentPriceDeliveryChanged($data)
        {
        }
        public static function FormatPaymentVoucherChanged($arData)
        {
        }
        public static function FormatPaymentPriceChanged($data)
        {
        }
        public static function FormatShipmentTrackingNumberChanged($arData)
        {
        }
        public static function FormatShipmentDeliveryDocChanged($arData)
        {
        }
        public static function FormatShipmentStatusChanged($arData)
        {
        }
        public static function FormatShipmentQuantityChanged($data)
        {
        }
        /**
         * @param $data
         * @param $type
         * @param null $entity
         *
         * @return array
         */
        public static function FormatLog($data, $type, $entity = \null)
        {
        }
        /**
         * @param $data
         * @param $type
         * @param null $entity
         *
         * @return array
         */
        public static function FormatOrderChange($data, $type, $entity = \null)
        {
        }
        /**
         * @param $data
         * @param $type
         * @param null $entity
         *
         * @return array
         */
        public static function FormatErrorLog($data, $type, $entity = \null)
        {
        }
        /**
         * @internal
         * @param $id
         *
         * @return bool|mixed|string
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getOrderResponsibleName($id = \null)
        {
        }
        /**
         * @param $text
         * @param $data
         *
         * @return mixed
         */
        private static function doProcessLogMessage($text, $data)
        {
        }
        public static function FormatMarkerSuccess($data)
        {
        }
    }
    class CSaleMobileOrderUtils
    {
        public static function GetFormatedUserName($userId)
        {
        }
        function getMobileReports()
        {
        }
        //	RegisterModuleDependences("mobileapp", "OnBeforeAdminMobileMenuBuild",
        //								"sale", "CSaleMobileOrderUtils", "buildSaleAdminMobileMenu");
        function buildSaleAdminMobileMenu()
        {
        }
        function makeDetailClassFromOrder($arOrder)
        {
        }
        function getOrderInfoDetail($orderId)
        {
        }
        private function getOrderProps($arOrder)
        {
        }
        public static function getCurrenciesNames($arCurIds = array())
        {
        }
        public static function getDeliveriesInfo($deliveryCodes)
        {
        }
        public static function getSitesNames($arSitesIds = array())
        {
        }
        public static function getPaySystemsNames($arPaySystemsIds)
        {
        }
        public static function getPersonTypesNames($arPersonTypeIds)
        {
        }
        public static function getStatusesNames($arStatusIds = \false)
        {
        }
        function getDateTime($strDate)
        {
        }
        /**
         * @param string $strDate
         * @return string
         */
        static function getDate($strDate)
        {
        }
        function getPreparedTemplate($template, $arFields)
        {
        }
    }
    class CSaleMobileOrderPull
    {
        public static function InitEventHandlers()
        {
        }
        public static function onOrderDelete($orderId, $bSuccess)
        {
        }
        public static function onOrderAdd($orderId, $arFields)
        {
        }
        public static function onOrderUpdate($orderId, $arFields)
        {
        }
    }
    class CSaleMobileOrderFilter
    {
        public function adaptFields($arFields)
        {
        }
        private function parseOrderId($strOrderId)
        {
        }
        public function addLastTimeToDate($strDate)
        {
        }
        public function setFieldsValues($arFields, $customFilter)
        {
        }
        public function buildFieldsParams()
        {
        }
    }
    class CSaleMobileOrderPush
    {
        private static $arEvents = array("ORDER_STATUS_CHANGED", "ORDER_DELIVERY_ALLOWED", "ORDER_PAYED", "ORDER_COMPLETED", "ORDER_DEDUCTED", "ORDER_CANCELED", "ORDER_CREATED", "ORDER_MARKED", "ORDER_CHECK_ERROR");
        private static $arSubscriptions = array();
        public static function getEvents()
        {
        }
        private static function &getData()
        {
        }
        private static function saveData()
        {
        }
        public static function getSubscribers($eventId, $arParams)
        {
        }
        public static function updateSubscriptions($userId, $arSubs)
        {
        }
        public static function addSubscription($userId, $eventId, $value)
        {
        }
        private static function checkRights($userId, $eventId, $arParams)
        {
        }
        public static function getSubscriptions($userId)
        {
        }
        private static function makeMessage($eventId, $arParams)
        {
        }
        private static function makeTitle($eventId, $arParams)
        {
        }
        public static function send($eventId, $arParams)
        {
        }
    }
    class tFPDF
    {
        var $unifontSubset;
        var $page;
        // current page number
        var $n;
        // current object number
        var $offsets;
        // array of object offsets
        var $buffer;
        // buffer holding in-memory PDF
        var $pages;
        // array containing pages
        var $state;
        // current document state
        var $compress;
        // compression flag
        var $k;
        // scale factor (number of points in user unit)
        var $DefOrientation;
        // default orientation
        var $CurOrientation;
        // current orientation
        var $StdPageSizes;
        // standard page sizes
        var $DefPageSize;
        // default page size
        var $CurPageSize;
        // current page size
        var $PageSizes;
        // used for pages with non default sizes or orientations
        var $wPt, $hPt;
        // dimensions of current page in points
        var $w, $h;
        // dimensions of current page in user unit
        var $lMargin;
        // left margin
        var $tMargin;
        // top margin
        var $rMargin;
        // right margin
        var $bMargin;
        // page break margin
        var $cMargin;
        // cell margin
        var $x, $y;
        // current position in user unit
        var $lasth;
        // height of last printed cell
        var $LineWidth;
        // line width in user unit
        var $fontpath;
        // path containing fonts
        var $CoreFonts;
        // array of core font names
        var $fonts;
        // array of used fonts
        var $FontFiles;
        // array of font files
        var $diffs;
        // array of encoding differences
        var $FontFamily;
        // current font family
        var $FontStyle;
        // current font style
        var $underline;
        // underlining flag
        var $CurrentFont;
        // current font info
        var $FontSizePt;
        // current font size in points
        var $FontSize;
        // current font size in user unit
        var $DrawColor;
        // commands for drawing color
        var $FillColor;
        // commands for filling color
        var $TextColor;
        // commands for text color
        var $ColorFlag;
        // indicates whether fill and text colors are different
        var $ws;
        // word spacing
        var $images;
        // array of used images
        var $PageLinks;
        // array of links in pages
        var $links;
        // array of internal links
        var $AutoPageBreak;
        // automatic page breaking
        var $PageBreakTrigger;
        // threshold used to trigger page breaks
        var $InHeader;
        // flag set when processing header
        var $InFooter;
        // flag set when processing footer
        var $ZoomMode;
        // zoom display mode
        var $LayoutMode;
        // layout display mode
        var $title;
        // title
        var $subject;
        // subject
        var $author;
        // author
        var $keywords;
        // keywords
        var $creator;
        // creator
        var $AliasNbPages;
        // alias for total number of pages
        var $PDFVersion;
        // PDF version number
        /*******************************************************************************
        *                                                                              *
        *                               Public methods                                 *
        *                                                                              *
        *******************************************************************************/
        function tFPDF($orientation = 'P', $unit = 'mm', $size = 'A4')
        {
        }
        function SetMargins($left, $top, $right = \null)
        {
        }
        function SetLeftMargin($margin)
        {
        }
        function SetTopMargin($margin)
        {
        }
        function SetRightMargin($margin)
        {
        }
        function SetAutoPageBreak($auto, $margin = 0)
        {
        }
        function SetDisplayMode($zoom, $layout = 'default')
        {
        }
        function SetCompression($compress)
        {
        }
        function SetTitle($title, $isUTF8 = \false)
        {
        }
        function SetSubject($subject, $isUTF8 = \false)
        {
        }
        function SetAuthor($author, $isUTF8 = \false)
        {
        }
        function SetKeywords($keywords, $isUTF8 = \false)
        {
        }
        function SetCreator($creator, $isUTF8 = \false)
        {
        }
        function AliasNbPages($alias = '{nb}')
        {
        }
        function Error($msg)
        {
        }
        function Open()
        {
        }
        function Close()
        {
        }
        function AddPage($orientation = '', $size = '')
        {
        }
        function Header()
        {
        }
        function Footer()
        {
        }
        function PageNo()
        {
        }
        function SetDrawColor($r, $g = \null, $b = \null)
        {
        }
        function SetFillColor($r, $g = \null, $b = \null)
        {
        }
        function SetTextColor($r, $g = \null, $b = \null)
        {
        }
        function GetStringWidth($s)
        {
        }
        function SetLineWidth($width)
        {
        }
        function Line($x1, $y1, $x2, $y2)
        {
        }
        function Rect($x, $y, $w, $h, $style = '')
        {
        }
        function AddFont($family, $style = '', $file = '', $uni = \false)
        {
        }
        function SetFont($family, $style = '', $size = 0)
        {
        }
        function SetFontSize($size)
        {
        }
        function AddLink()
        {
        }
        function SetLink($link, $y = 0, $page = -1)
        {
        }
        function Link($x, $y, $w, $h, $link)
        {
        }
        function Text($x, $y, $txt)
        {
        }
        function AcceptPageBreak()
        {
        }
        function Cell($w, $h = 0, $txt = '', $border = 0, $ln = 0, $align = '', $fill = \false, $link = '')
        {
        }
        function MultiCell($w, $h, $txt, $border = 0, $align = 'J', $fill = \false)
        {
        }
        function Write($h, $txt, $link = '')
        {
        }
        function Ln($h = \null)
        {
        }
        function Image($file, $x = \null, $y = \null, $w = 0, $h = 0, $type = '', $link = '')
        {
        }
        function GetX()
        {
        }
        function SetX($x)
        {
        }
        function GetY()
        {
        }
        function SetY($y)
        {
        }
        function SetXY($x, $y)
        {
        }
        function Output($name = '', $dest = '', $utfName = '')
        {
        }
        /*******************************************************************************
        *                                                                              *
        *                              Protected methods                               *
        *                                                                              *
        *******************************************************************************/
        function _dochecks()
        {
        }
        function _getfontpath()
        {
        }
        function _checkoutput()
        {
        }
        function _getpagesize($size)
        {
        }
        function _beginpage($orientation, $size)
        {
        }
        function _endpage()
        {
        }
        function _loadfont($font)
        {
        }
        function _escape($s)
        {
        }
        function _textstring($s)
        {
        }
        function _UTF8toUTF16($s)
        {
        }
        function _dounderline($x, $y, $txt)
        {
        }
        function _parsejpg($file)
        {
        }
        function _parsepng($file)
        {
        }
        function _parsepngstream($f, $file)
        {
        }
        function _readstream($f, $n)
        {
        }
        function _readint($f)
        {
        }
        function _parsegif($file)
        {
        }
        function _newobj()
        {
        }
        function _putstream($s)
        {
        }
        function _out($s)
        {
        }
        function _putpages()
        {
        }
        function _putfonts()
        {
        }
        function _putTTfontwidths(&$font, $maxUni)
        {
        }
        function _putimages()
        {
        }
        function _putimage(&$info)
        {
        }
        function _putxobjectdict()
        {
        }
        function _putresourcedict()
        {
        }
        function _putresources()
        {
        }
        function _putinfo()
        {
        }
        function _putcatalog()
        {
        }
        function _putheader()
        {
        }
        function _puttrailer()
        {
        }
        function _enddoc()
        {
        }
        // ********* NEW FUNCTIONS *********
        // Converts UTF-8 strings to UTF16-BE.
        function UTF8ToUTF16BE($str, $setbom = \true)
        {
        }
        // Converts UTF-8 strings to codepoints array
        function UTF8StringToArray($str)
        {
        }
    }
    class TTFontFile
    {
        var $maxUni;
        var $_pos;
        var $numTables;
        var $searchRange;
        var $entrySelector;
        var $rangeShift;
        var $tables;
        var $otables;
        var $filename;
        var $fh;
        var $hmetrics;
        var $glyphPos;
        var $charToGlyph;
        var $ascent;
        var $descent;
        var $name;
        var $familyName;
        var $styleName;
        var $fullName;
        var $uniqueFontID;
        var $unitsPerEm;
        var $bbox;
        var $capHeight;
        var $stemV;
        var $italicAngle;
        var $flags;
        var $underlinePosition;
        var $underlineThickness;
        var $charWidths;
        var $defaultWidth;
        var $maxStrLenRead;
        function TTFontFile()
        {
        }
        function getMetrics($file)
        {
        }
        function readTableDirectory()
        {
        }
        function sub32($x, $y)
        {
        }
        function calcChecksum($data)
        {
        }
        function get_table_pos($tag)
        {
        }
        function seek($pos)
        {
        }
        function skip($delta)
        {
        }
        function seek_table($tag, $offset_in_table = 0)
        {
        }
        function read_tag()
        {
        }
        function read_short()
        {
        }
        function unpack_short($s)
        {
        }
        function read_ushort()
        {
        }
        function read_ulong()
        {
        }
        function get_ushort($pos)
        {
        }
        function get_ulong($pos)
        {
        }
        function pack_short($val)
        {
        }
        function splice($stream, $offset, $value)
        {
        }
        function _set_ushort($stream, $offset, $value)
        {
        }
        function _set_short($stream, $offset, $val)
        {
        }
        function get_chunk($pos, $length)
        {
        }
        function get_table($tag)
        {
        }
        function add($tag, $data)
        {
        }
        /////////////////////////////////////////////////////////////////////////////////////////
        /////////////////////////////////////////////////////////////////////////////////////////
        /////////////////////////////////////////////////////////////////////////////////////////
        function extractInfo()
        {
        }
        /////////////////////////////////////////////////////////////////////////////////////////
        /////////////////////////////////////////////////////////////////////////////////////////
        function makeSubset($file, &$subset)
        {
        }
        //////////////////////////////////////////////////////////////////////////////////
        // Recursively get composite glyph data
        function getGlyphData($originalGlyphIdx, &$maxdepth, &$depth, &$points, &$contours)
        {
        }
        //////////////////////////////////////////////////////////////////////////////////
        // Recursively get composite glyphs
        function getGlyphs($originalGlyphIdx, &$start, &$glyphSet, &$subsetglyphs)
        {
        }
        //////////////////////////////////////////////////////////////////////////////////
        function getHMTX($numberOfHMetrics, $numGlyphs, &$glyphToChar, $scale)
        {
        }
        function getHMetric($numberOfHMetrics, $gid)
        {
        }
        function getLOCA($indexToLocFormat, $numGlyphs)
        {
        }
        // CMAP Format 4
        function getCMAP4($unicode_cmap_offset, &$glyphToChar, &$charToGlyph)
        {
        }
        // Put the TTF file together
        function endTTFile(&$stm)
        {
        }
    }
    class CAllSaleStoreBarcode
    {
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public function GetByID($ID)
        {
        }
        public function Delete($ID)
        {
        }
    }
    /**
    * CSalePaySystemTarif
    *	Abstract class for counting the pay system service's price etc.
    */
    abstract class CSalePaySystemTarif
    {
        private static $arItems = array();
        /**
         * getPrice
         * Calculate price for pay system service
         * @return float
         */
        public static abstract function getPrice(&$arPaySystem, $orderPrice, $deliveryPrice, $buyerLocationId);
        /**
         * getStructure
         * Describe tarif params structure
         * @return array
         */
        public static abstract function getStructure($psId, $persId);
        /**
         * checkCompability
         * Check if we can use this pay system
         * @return bool
         */
        public static abstract function checkCompability(&$arOrder, $orderPrice, $deliveryPrice, $buyerLocationId);
        public static function extractFromField($strFieldContent)
        {
        }
        public static function prepareToField($arTarif)
        {
        }
        /**
         * getByPaySystemId
         * returns saved tarif's values
         * @return array
         */
        protected static function getValuesByPSAId($psaId)
        {
        }
    }
    class CSaleLang
    {
        function Add($arFields)
        {
        }
        function Update($siteId, $arFields)
        {
        }
        function Delete($siteId)
        {
        }
        public static function GetByID($siteId)
        {
        }
        /**
         * Return site currency.
         *
         * @deprecated deprecated since sale 15.0.0
         * @see \Bitrix\Sale\Internals\SiteCurrencyTable::getSiteCurrency
         *
         * @param string $siteId        Site identifier.
         * @return string
         */
        public static function GetLangCurrency($siteId)
        {
        }
        public static function OnBeforeCurrencyDelete($currency)
        {
        }
    }
    class CAllSaleGroupAccessToSite
    {
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Update($ID, &$arFields)
        {
        }
        function GetByID($ID)
        {
        }
        function Delete($ID)
        {
        }
        function DeleteBySite($SITE_ID)
        {
        }
        function DeleteByGroup($GROUP_ID)
        {
        }
    }
    class CAllSaleGroupAccessToFlag
    {
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Update($ID, &$arFields)
        {
        }
        function GetByID($ID)
        {
        }
        function Delete($ID)
        {
        }
        function DeleteByGroup($GROUP_ID)
        {
        }
        function DeleteByFlag($ORDER_FLAG)
        {
        }
    }
    /** @deprecated */
    class CAllSalePaySystemAction
    {
        const GET_PARAM_VALUE = 1;
        function GetByID($id)
        {
        }
        function CheckFields($ACTION, &$arFields)
        {
        }
        function Delete($id)
        {
        }
        static function SerializeParams($arParams)
        {
        }
        static function UnSerializeParams($strParams)
        {
        }
        function GetParamValue($key, $defaultValue = \null)
        {
        }
        static function alarm($itemId, $description)
        {
        }
        static function writeToEventLog($itemId, $description)
        {
        }
        public function OnEventLogGetAuditTypes()
        {
        }
        static function showAlarmMessage()
        {
        }
        function InitParamArrays($arOrder, $orderID = 0, $psParams = "", $relatedData = array(), $payment = array(), $shipment = array(), $registryType = \Bitrix\Sale\Registry::REGISTRY_TYPE_ORDER)
        {
        }
        function IncludePrePaySystem($fileName, $bDoPayAction, &$arPaySysResult, &$strPaySysError, &$strPaySysWarning, $BASE_LANG_CURRENCY = \False, $ORDER_PRICE = 0.0, $TAX_PRICE = 0.0, $DISCOUNT_PRICE = 0.0, $DELIVERY_PRICE = 0.0)
        {
        }
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function getAliases()
        {
        }
        private static function getAlias($key)
        {
        }
        public static function checkRestriction($restriction, $filter)
        {
        }
        public static function getParamsByConsumer($consumer, $personTypeId)
        {
        }
        function Add($fields)
        {
        }
        function Update($id, $fields)
        {
        }
        public static function prepareParamsForBusVal($id, $fields)
        {
        }
        public static function convertPsBusVal()
        {
        }
        public static function getOldToNewHandlersMap()
        {
        }
        public static function getCodesAliases($handler)
        {
        }
    }
    class CAllSaleUserTransact
    {
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function OnUserDelete($UserID)
        {
        }
        public static function DeleteByOrder($OrderID)
        {
        }
    }
    class CAllSaleDiscount
    {
        const VERSION_OLD = \Bitrix\Sale\Internals\DiscountTable::VERSION_OLD;
        const VERSION_NEW = \Bitrix\Sale\Internals\DiscountTable::VERSION_NEW;
        const VERSION_15 = \Bitrix\Sale\Internals\DiscountTable::VERSION_15;
        const OLD_DSC_TYPE_PERCENT = 'P';
        const OLD_DSC_TYPE_FIX = 'V';
        const PREPARE_CONDITIONS = 1;
        const PREPARE_ACTIONS = 2;
        protected static $cacheDiscountHandlers = array();
        protected static $usedModules = array();
        /**
         * @deprecated strongly deprecated since sale 15.5.0.
         * @see \Bitrix\Sale\Discount
         *
         * @param array &$arOrder
         * @param array $arOptions
         * @param array &$arErrors
         * @return void
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function DoProcessOrder(&$arOrder, $arOptions, &$arErrors)
        {
        }
        private static function prefillDiscountFields(array &$discount, array $couponList)
        {
        }
        private static function workWithDiscountHandlers(array &$discount)
        {
        }
        public static function PrepareCurrency4Where($val, $key, $operation, $negative, $field, $arField, $arFilter)
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function CheckFields($ACTION, &$arFields)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        /*
         * @deprecated deprecated since sale 14.11.0
         * @see \Bitrix\Sale\Internals\DiscountTable::delete
         */
        public function Delete($ID)
        {
        }
        protected static function getDiscountResult(&$oldOrder, &$currentOrder, $extMode = \false)
        {
        }
        protected static function changeDiscountResult(&$oldOrder, &$order, &$discountResult)
        {
        }
        protected static function __Unpack($arOrder, $strUnpack)
        {
        }
        protected static function __ApplyActions(&$arOrder, $strActions)
        {
        }
        protected static function __ConvertOldFormat($strAction, &$arFields)
        {
        }
        protected static function __SetOldFields($strAction, &$arFields)
        {
        }
        protected static function prepareDiscountConditions(&$conditions, &$result, &$handlers, $type, $site)
        {
        }
        protected static function updateDiscountHandlers($discountID, $handlers, $update)
        {
        }
        protected static function getDiscountHandlers($discountList)
        {
        }
        /*
         * @deprecated deprecated since sale 14.11.0
         * @see \Bitrix\Sale\Internals\DiscountGroupTable::updateByDiscount
         */
        protected function updateUserGroups($discountID, $userGroups, $active, $updateData)
        {
        }
        private static function clearFields(array $fields)
        {
        }
    }
    /**
     * CSaleDeliveryHelper
     * Make some routines for delivery handlers
     */
    class CSaleDeliveryHelper
    {
        /**
         * getRegionsList
         * @return array regions (locations) list
         */
        public static function getRegionsList($countryId = 0, $bFlip = \false)
        {
        }
        public static function getDeliverySIDAndProfile($deliveryId)
        {
        }
        public static function getConfValue($arField)
        {
        }
        public static function getMaxDimensions($arDim1, $arDim2)
        {
        }
        /**
         * Divides order items to packages.
         * @link http://en.wikipedia.org/wiki/Bin_packing_problem Bin packing problem	 *
         * @param array $arItems Array of order's good's demensions
         * 										array(
         * 											array("WIDTH"=>100, "HEIGHT"=>95, "LENGTH"=>80),
         * 											array("WIDTH"=>150, "HEIGHT"=>15, "LENGTH"=>800),
         * 											...
         * 										)	 *
         * @param array $arPacks array(
         * 							array("425", "265", "380")
         *							);
         * @param int max weight
         * @param float $reservedSpace
         * @return array pack params
         */
        public static function getRequiredPacks(&$arItems, $arPacks, $maxWeight, $reservedSpace = 0.15)
        {
        }
        public static function makeBoxConfig($boxId, $arBox, $group, &$arConfig)
        {
        }
        public static function getBoxesFromConfig($profile, &$arConfig)
        {
        }
        public static function calcItemVolume($item)
        {
        }
        public static function getFormatError($value, $formatName, $name)
        {
        }
        public static function execHandlerAction($orderId, $actionId)
        {
        }
    }
    class CALLSaleProduct
    {
        public static $arProductIblockInfoCache = array();
        static function GetProductSkuProps($ID, $IBLOCK_ID = '', $getExt = \false)
        {
        }
        /**
         * get sku for product.
         *
         * @param integer $USER_ID				User.
         * @param string  $LID					Site.
         * @param integer $PRODUCT_ID			Product id.
         * @param string  $PRODUCT_NAME			Product name.
         * @param string CURRENCY				Currency.
         * @param array $arProduct				Iblock list.
         * @return array|false
         */
        function GetProductSku($USER_ID, $LID, $PRODUCT_ID, $PRODUCT_NAME = '', $CURRENCY = '', $arProduct = array())
        {
        }
        /**
         * Returns product iblock data by array of PRODUCT_ID
         * Uses self::$arProductIblockInfoCache for result caching
         * Requires array of IDs for better performance when working with multiple items
         *
         * @param array $arProductId array of integer PRODUCT_ID
         * @return array
         */
        public static function GetProductListIblockInfo($arProductId)
        {
        }
        /** @deprecated */
        function RefreshProductList()
        {
        }
        /**
         * Returns list of recommended products for specific product.
         *
         * @param int $USER_ID							User id.
         * @param string $LID							Site id.
         * @param array $arFilterRecomendet				Recomendation filter.
         * @param string $recomMore						Get more.
         * @param int $cntProductDefault				Max count.
         * @return array
         */
        function GetRecommendetProduct($USER_ID, $LID, $arFilterRecomendet = array(), $recomMore = 'N', $cntProductDefault = 2)
        {
        }
    }
    class CAllSaleViewedProduct
    {
        /**
         * Updates viewed product info for user
         *
         * @param int $ID - code field for update
         * @param array $arFields - parameters for update
         * @return true false
         */
        public function Update($ID, $arFields)
        {
        }
        /**
         * The agent function delete old viewed
         *
         * @param
         * @return true false
         */
        public function ClearViewed()
        {
        }
    }
    class CAllSaleOrder
    {
        /**
         * @param $siteId
         * @param $userId
         * @param $arShoppingCart
         * @param $personTypeId
         * @param $arOrderPropsValues
         * @param $deliveryId
         * @param $paySystemId
         * @param $arOptions
         * @param $arErrors
         * @param $arWarnings
         * @return array|null
         */
        static function DoCalculateOrder($siteId, $userId, $arShoppingCart, $personTypeId, $arOrderPropsValues, $deliveryId, $paySystemId, $arOptions, &$arErrors, &$arWarnings)
        {
        }
        /**
         * @param $siteId
         * @param null $userId
         * @param $shoppingCart
         * @param array $options
         *
         * @return array
         */
        static function makeOrderArray($siteId, $userId = \null, array $shoppingCart, array $options = array())
        {
        }
        /**
         * calculate the cost according to the order basket
         * @param array $arBasketItems
         * @return array|bool
         */
        public static function CalculateOrderPrices($arBasketItems)
        {
        }
        // $direct == true => ID => CODE
        // $direct == false => CODE => ID
        public static function TranslateLocationPropertyValues($personTypeId, &$orderProps, $direct = \true)
        {
        }
        /**
         *
         *
         */
        public static function DoSaveOrder(&$arOrder, $arAdditionalFields, $orderId, &$arErrors, $arCoupons = array(), $arStoreBarcodeOrderFormData = array(), $bSaveBarcodes = \false)
        {
        }
        //*************** USER PERMISSIONS *********************/
        /**
         * @param int $ID
         * @param bool|array $arUserGroups
         * @param int $userID
         * @return bool
         */
        function CanUserViewOrder($ID, $arUserGroups = \false, $userID = 0)
        {
        }
        /**
         * @param int $ID
         * @param bool|array $arUserGroups
         * @param bool $siteID
         * @return bool
         */
        static function CanUserUpdateOrder($ID, $arUserGroups = \false, $siteID = \false)
        {
        }
        /**
         * @param int $ID
         * @param bool|array $arUserGroups
         * @param int $userID
         * @return bool
         */
        static function CanUserCancelOrder($ID, $arUserGroups = \false, $userID = 0)
        {
        }
        /**
         * @param int $ID
         * @param bool|array $arUserGroups
         * @param int $userID
         * @return bool
         */
        function CanUserMarkOrder($ID, $arUserGroups = \false, $userID = 0)
        {
        }
        /**
         * @param int $ID
         * @param string $flag
         * @param bool|array $arUserGroups
         * @return bool
         */
        function CanUserChangeOrderFlag($ID, $flag, $arUserGroups = \false)
        {
        }
        /**
         * @param int $ID
         * @param string $statusID
         * @param bool|array $arUserGroups
         * @return bool
         */
        function CanUserChangeOrderStatus($ID, $statusID, $arUserGroups = \false)
        {
        }
        /**
         * @param int $ID
         * @param bool|array $arUserGroups
         * @param int $userID
         * @return bool
         */
        static function CanUserDeleteOrder($ID, $arUserGroups = \false, $userID = 0)
        {
        }
        //*************** ADD, UPDATE, DELETE *********************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function _Delete($ID)
        {
        }
        function Delete($ID)
        {
        }
        //*************** COMMON UTILS *********************/
        public static function GetFilterOperation($key)
        {
        }
        public static function PrepareSql(&$arFields, $arOrder, &$arFilter, $arGroupBy, $arSelectFields, $obUserFieldsSql = \false, $callback = \false, $arOptions = array())
        {
        }
        //*************** SELECT *********************/
        public static function GetByID($ID)
        {
        }
        //*************** EVENTS *********************/
        public static function OnBeforeCurrencyDelete($currency)
        {
        }
        function OnBeforeUserDelete($userID)
        {
        }
        //*************** ACTIONS *********************/
        function PayOrder($ID, $val, $bWithdraw = \True, $bPay = \True, $recurringID = 0, $arAdditionalFields = array())
        {
        }
        function DeliverOrder($ID, $val, $recurringID = 0, $arAdditionalFields = array())
        {
        }
        function DeductOrder($ID, $val, $description = "", $bAutoDeduction = \true, $arStoreBarcodeOrderFormData = array(), $recurringID = 0)
        {
        }
        function ReserveOrder($ID, $val)
        {
        }
        function CancelOrder($ID, $val, $description = "")
        {
        }
        function StatusOrder($ID, $val)
        {
        }
        function CommentsOrder($ID, $val)
        {
        }
        function Lock($ID)
        {
        }
        function UnLock($ID)
        {
        }
        function IsLocked($ID, &$lockedBY, &$dateLock)
        {
        }
        function RemindPayment()
        {
        }
        /**
         * @deprecated
         *
         * Use \Bitrix\Main\Numerator\Numerator::previewNextNumber instead
         *
         * Generates next account number according to the scheme selected in the module options
         *
         * @param int $orderID - order ID
         * @param string $templateType - account number template type code
         * @param string $param - account number template param
         * @return mixed - generated number or false
         */
        public static function GetNextAccountNumber($orderID, $templateType, $param)
        {
        }
        function __SaleOrderCount($arFilter, $strCurrency = '')
        {
        }
        /**
         * @deprecated Use CSaleOrderChange::GetList instead
         * The function selects order history
         *
         * @param array $arOrder - array to sort
         * @param array $arFilter - array to filter
         * @param array|false $arGroupBy - array to group records
         * @param array|false $arNavStartParams - array to parameters
         * @param array $arSelectFields - array to selectes fields
         * @return object $dbRes - object result
         */
        public function GetHistoryList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function SetMark($ID, $comment = "", $userID = 0)
        {
        }
        public static function UnsetMark($ID, $userID = 0)
        {
        }
        /**
         * Sets order account number
         * Use OnBeforeOrderAccountNumberSet event to generate custom account number.
         * Account number value must be unique! By default order ID is used if generated value is incorrect
         *
         * @param int $ID - order ID
         * @return bool - true if account number is set successfully
         */
        public static function SetAccountNumber($ID)
        {
        }
        /**
         * @param $id
         *
         * @return Sale\Result|bool|int
         * @throws Exception
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function setAccountNumberById($id)
        {
        }
        /**
         * The agent function. Moves reserved quantity back to the quantity field for each product
         * for orders which were placed earlier than specific date
         *
         * @return string
         */
        public static function ClearProductReservedQuantity()
        {
        }
        /**
         * Function processes "COMPLETE_ORDERS" key in $arFilter for CSaleOrder::GetList() method
         *
         * @param mixed[]|string $values - next key value in the filter
         * @param string $key - key name
         * @param string $op - key operation modificator
         * @param string $opNegative - key condition is negative or not
         * @param mixed[] $field - field array of the key
         * @param mixed[] $fields - array of all fields
         * @param mixed[] $filter - filter array of the key
         * @return string|false
         */
        protected static function ProcessCompleteOrdersParam($values, $key, $op, $opNegative, $field, $fields, $filter)
        {
        }
        // returns reference of all properties of TYPE = LOCATION
        public static function getLocationPropertyInfo()
        {
        }
        /**
         * @internal
         * @return array
         */
        public static function getRoundFields()
        {
        }
        /**
         * @internal
         * @param array $list
         * @param $perm
         * @param bool $userGroups
         * @param bool $userId
         *
         * @return array
         * @throws \Bitrix\Main\SystemException
         */
        public static function checkUserPermissionOrderList(array $list, $perm, $userGroups = \false, $userId = \false)
        {
        }
    }
    class CAllSaleOrderUserPropsValue
    {
        function GetByID($ID)
        {
        }
        function Delete($ID)
        {
        }
        function DeleteAll($ID)
        {
        }
        function Update($ID, $arFields)
        {
        }
        protected static function getPropertyValueFieldSelectSql($tableAlias = 'PV', $propTableAlias = 'P')
        {
        }
        protected static function getLocationTableJoinSql($tableAlias = 'PV', $propTableAlias = 'P')
        {
        }
        protected static function translateLocationIDToCode($id, $orderPropId)
        {
        }
        protected static function addPropertyValueField($tableAlias = 'V', &$arFields, &$arSelectFields)
        {
        }
    }
    class CCatalogStepOperations
    {
        const DEFAULT_SESSION_PREFIX = 'CC';
        protected $sessID = '';
        protected $errorCounter = 0;
        protected $errors = array();
        protected $stepErrors = array();
        protected $maxExecutionTime = 0;
        protected $maxOperationCounter = 0;
        protected $startOperationTime = 0;
        protected $lastID = 0;
        protected $allCounter = 0;
        protected $allOperationCounter = 0;
        protected $finishOperation = \false;
        protected $defaultProgressTemplate = '#PROGRESS_BAR#';
        protected $progressTemplate = '#PROGRESS_BAR#';
        protected $errorTemplate = '';
        protected $params = \null;
        public function __construct($sessID, $maxExecutionTime, $maxOperationCounter)
        {
        }
        public function __destruct()
        {
        }
        public function setParams($params)
        {
        }
        public function initStep($allCount, $allOperationCount, $lastID)
        {
        }
        public function saveStep()
        {
        }
        public function startOperation()
        {
        }
        public function finalOperation()
        {
        }
        public function runOperation()
        {
        }
        public function run()
        {
        }
        public function setProgressTemplates($template)
        {
        }
        public function getMessage()
        {
        }
        public static function getAllCounter()
        {
        }
        public static function getDefaultExecutionTime()
        {
        }
        protected function setLastId($lastId)
        {
        }
        protected function isStopOperation()
        {
        }
        protected function setFinishOperation($finish)
        {
        }
        protected function calculateNextOperationCounter()
        {
        }
        protected function addError($error)
        {
        }
    }
    class CSaleBasketDiscountConvert extends \CCatalogStepOperations
    {
        const SESSION_PREFIX = 'BDC';
        protected $filter = array();
        protected $orderViewUrl = '';
        public function __construct($sessID, $maxExecutionTime, $maxOperationCounter)
        {
        }
        public function setFilter($filter)
        {
        }
        public function runOperation()
        {
        }
        public static function getAllCounter()
        {
        }
        public static function getFilterCounter($filter)
        {
        }
        public static function checkFilter(\Bitrix\Main\HttpRequest $request)
        {
        }
    }
    class CSaleDiscountReindex extends \CCatalogStepOperations
    {
        const SESSION_PREFIX = 'SDR';
        protected $discountEditUrl = '';
        public function __construct($sessID, $maxExecutionTime, $maxOperationCounter)
        {
        }
        public function runOperation()
        {
        }
        public static function getAllCounter()
        {
        }
    }
    class CSaleDiscountConvertExt extends \CCatalogStepOperations
    {
        const SESSION_PREFIX = 'SDC15';
        protected $discountEditUrl = '';
        protected $deliveryCodes = array();
        protected $deliveryRuleId = 'CondSaleDelivery';
        public function __construct($sessID, $maxExecutionTime, $maxOperationCounter)
        {
        }
        public function runOperation()
        {
        }
        public static function getAllCounter()
        {
        }
        protected function getDeliveryCodes()
        {
        }
        protected function convertDelivery(&$condition)
        {
        }
    }
    interface IBXSaleProductProvider
    {
        /**
         * Method is called to get information about product from the catalog.
         *
         * @param array $arFields			Product description.
         * 	keys are case sensitive:
         *		<ul>
         * 		<li>int PRODUCT_ID				Product id.
         *		<li>float QUANTITY				Product quantity.
         *		<li>string RENEWAL				Product or renewal (Y/N, default N).
         *		<li>int USER_ID					User id (only for admin pages).
         * 		<li>string SITE_ID				Site id (only for admin pages).
         * 		<li>string BASKET_ID			Basket id.
         *		<li>string CURRENCY				Site currency.
         *		<li>string CHECK_QUANTITY		Need check quantity (Y/N, default Y).
         * 		<li>string CHECK_PRICE			Get current optimal price (Y/N, default Y).
         * 		<li>string CHECK_COUPONS		Use coupons (Y/N, default Y).
         *		<li>string CHECK_DISCOUNT		Get optimal price with discount (Y/N, default Y).
         * 		<li>string NOTES				For catalog - old price type.
         *		</ul>
         * @return array|false
         */
        public static function GetProductData($arFields);
        /**
         * Method is called when the order with products from the basket is placed.
         *
         * @param array $arFields			Product description.
         * 	keys are case sensitive:
         *		<ul>
         * 		<li>int PRODUCT_ID				Product id.
         *		<li>float QUANTITY				Product quantity.
         *		<li>string RENEWAL				Product or renewal (Y/N, default N).
         *		<li>int USER_ID					User id (only for admin pages).
         * 		<li>string SITE_ID				Site id (only for admin pages).
         * 		<li>string BASKET_ID			Basket id.
         *		<li>string CURRENCY				Site currency.
         *		<li>string CHECK_QUANTITY		Need check quantity (Y/N, default Y).
         *		<li>string CHECK_DISCOUNT		Get optimal price with discount (Y/N, default Y).
         *		</ul>
         * @return array|false
         */
        public static function OrderProduct($arFields);
        /**
         * Method is called when the order with the product is canceled
         *
         * @param array $arFields			Product description.
         * 	keys are case sensitive:
         *		<ul>
         * 		<li>int PRODUCT_ID				Product id.
         *		<li>float QUANTITY				Product quantity.
         *		<li>string CANCEL				Cancel flag (Y/N).
         *		</ul>
         * @return bool
         */
        public static function CancelProduct($arFields);
        /**
         * Method is called when the delivery is allowed for the order with this product
         *
         * @param array $arFields			Product description.
         * 	keys are case sensitive:
         *		<ul>
         *		<li>int PRODUCT_ID			Product id.
         *		<li>int USER_ID				User id.
         *		<li>bool $arFields["PAID"]	Paid or no.
         *		<li>int ORDER_ID			Order id.
         * 		<li>string BASKET_ID		Basket id.
         *		<ul>
         * @return array|false
         */
        public static function DeliverProduct($arFields);
        /**
         * Method is called when the product is viewed
         *
         * @param array $arFields			Product description.
         * 	keys are case sensitive:
         *		<ul>
         * 		<li>int PRODUCT_ID				Product id.
         *		<li>int USER_ID					User id (only for admin pages).
         * 		<li>string SITE_ID				Site id (only for admin pages).
         * @return array|false
         */
        public static function ViewProduct($arFields);
        /**
         * Method is when recurring order is placed with this product
         *
         * @param array $arFields			Product description.
         * 	keys are case sensitive:
         *		<ul>
         * 		<li>int PRODUCT_ID			Product id.
         *		<li>int USER_ID				User id.
         * @return array|false
         */
        public static function RecurringOrderProduct($arFields);
        /**
         * Method is called to know if product provider supports stores. Return number of stores used as shipping centers available or false if stores are not used.
         *
         * @param array $arParams			Store params.
         * 	keys are case sensitive:
         *		<ul>
         * 		<li>string SITE_ID			Site id.
         *		</ul>
         * @return int
         */
        public static function GetStoresCount($arParams = array());
        /**
         * Method is called to get information from the product provider
         * about available shipping stores for the specified product. Return list of stores or false if stores are not used.
         *
         * @param  array $arFields			Store params.
         * 	keys are case sensitive:
         *		<ul>
         * 		<li>string SITE_ID			Site id.
         *		<li>int PRODUCT_ID			Product ID.
         *		<li>bool ENUM_BY_ID			Return store ids as keys.
         *		<li>int BASKET_ID			Basket id.
         * @return array|false
         */
        public static function GetProductStores($arFields);
        /**
         * Method is called when the product should be reserved
         *
         * @param int $arFields["PRODUCT_ID"]
         * @param int $arFields["QUANTITY_ADD"] - quantity which should be added to the QUANTITY_RESERVED value of the product during reservation
         * @param string $arFields["UNDO_RESERVATION"] Y/N
         * @return array
         */
        public static function ReserveProduct($arFields);
        /**
         * Method is called to check product barcode
         *
         * @param int $arFields["PRODUCT_ID"]
         * @param int $arFields["BARCODE"]
         */
        public static function CheckProductBarcode($arFields);
        /**
         * Method is called when the product is actually deducted from store
         *
         * @param int $arFields["PRODUCT_ID"]
         * @param int $arFields["QUANTITY"]
         * @param string $arFields["EMULATE"] Y/N
         * @param string $arFields["UNDO_DEDUCTION"] Y/N
         * @param string $arFields["PRODUCT_RESERVED"] Y/N
         * @param array $arFields["STORE_DATA"]
         */
        public static function DeductProduct($arFields);
    }
    class CSaleBasketFilter
    {
        public static function ClearBasket($row)
        {
        }
        public static function AmountFilter(&$arOrder, $func)
        {
        }
        public static function AmountBaseFilter(&$order, $func)
        {
        }
        public static function CountFilter(&$arOrder, $func)
        {
        }
        public static function RowFilter(&$arOrder, $func)
        {
        }
        public static function ProductFilter(&$arOrder, $func)
        {
        }
        public static function BasketPropertyFilter($basketItem, $parameters)
        {
        }
    }
    // sale actions conditions
    class CGlobalCondCtrl
    {
        public static $arInitParams = \false;
        public static $boolInit = \false;
        public static function GetClassName()
        {
        }
        public static function GetControlDescr()
        {
        }
        public static function GetControlShow($arParams)
        {
        }
        public static function GetConditionShow($arParams)
        {
        }
        public static function IsGroup($strControlID = \false)
        {
        }
        public static function Parse($arOneCondition)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        public static function ApplyValues($arOneCondition, $arControl)
        {
        }
        public static function InitParams($arParams)
        {
        }
        /**
         * @return string|array
         */
        public static function GetControlID()
        {
        }
        public static function GetShowIn($arControls)
        {
        }
        /**
         * @param bool|string $strControlID
         * @return bool|array
         */
        public static function GetControls($strControlID = \false)
        {
        }
        public static function GetAtoms()
        {
        }
        public static function GetAtomsEx($strControlID = \false, $boolEx = \false)
        {
        }
        public static function GetJSControl($arControl, $arParams = array())
        {
        }
        public static function OnBuildConditionAtomList()
        {
        }
        /**
         * @param bool|array $arOperators
         * @return array
         */
        public static function GetLogic($arOperators = \false)
        {
        }
        /**
         * @param bool|array $arOperators
         * @param bool|array $arLabels
         * @return array
         */
        public static function GetLogicEx($arOperators = \false, $arLabels = \false)
        {
        }
        public static function GetLogicAtom($arLogic)
        {
        }
        public static function GetValueAtom($arValue)
        {
        }
        public static function CheckLogic($strValue, $arLogic, $boolShow = \false)
        {
        }
        public static function SearchLogic($strValue, $arLogic)
        {
        }
        public static function Check($arOneCondition, $arParams, $arControl, $boolShow)
        {
        }
        public static function Validate($arOneCondition, $arParams, $arControl, $boolShow)
        {
        }
        public static function CheckAtoms($arOneCondition, $arParams, $arControl, $boolShow)
        {
        }
        public static function ValidateAtoms($arValues, $arParams, $arControl, $boolShow)
        {
        }
        public static function UndefinedCondition($boolFatal = \false)
        {
        }
        static function LogicGreat($arField, $mxValue)
        {
        }
        static function LogicLess($arField, $mxValue)
        {
        }
        static function LogicEqualGreat($arField, $mxValue)
        {
        }
        static function LogicEqualLess($arField, $mxValue)
        {
        }
        static function LogicContain($arField, $mxValue)
        {
        }
        static function LogicNotContain($arField, $mxValue)
        {
        }
        public static function ClearValue(&$mxValues)
        {
        }
        static function ConvertInt2DateTime(&$mxValues, $strFormat, $intOffset)
        {
        }
        static function ConvertDateTime2Int(&$mxValues, $strFormat, $intOffset)
        {
        }
        /**
         * @param array $atoms
         * @param string|false $controlId
         * @param bool $extendedMode
         * @return array|false
         */
        protected static function searchControlAtoms(array $atoms, $controlId, $extendedMode)
        {
        }
        protected static function searchControl(array $controls, $controlId)
        {
        }
    }
    class CSaleCondCtrl extends \CGlobalCondCtrl
    {
    }
    class CGlobalCondCtrlComplex extends \CGlobalCondCtrl
    {
        public static function GetControlDescr()
        {
        }
        public static function GetConditionShow($arParams)
        {
        }
        public static function Parse($arOneCondition)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        /**
         * @param bool|string $strControlID
         * @return bool|array
         */
        public static function GetControls($strControlID = \false)
        {
        }
    }
    class CSaleCondCtrlComplex extends \CGlobalCondCtrlComplex
    {
    }
    class CGlobalCondCtrlGroup extends \CGlobalCondCtrl
    {
        public static function GetControlDescr()
        {
        }
        public static function GetControlShow($arParams)
        {
        }
        public static function GetConditionShow($arParams)
        {
        }
        /**
         * @return string|array
         */
        public static function GetControlID()
        {
        }
        public static function GetAtoms()
        {
        }
        public static function GetVisual()
        {
        }
        public static function IsGroup($strControlID = \false)
        {
        }
        public static function Parse($arOneCondition)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        public static function ApplyValues($arOneCondition, $arControl)
        {
        }
    }
    class CSaleCondCtrlGroup extends \CGlobalCondCtrlGroup
    {
        public static function GetControlDescr()
        {
        }
        public static function GetShowIn($arControls)
        {
        }
    }
    class CSaleCondCtrlBasketGroup extends \CSaleCondCtrlGroup
    {
        public static function GetControlID()
        {
        }
        public static function GetControlDescr()
        {
        }
        public static function GetControlShow($arParams)
        {
        }
        public static function GetConditionShow($arParams)
        {
        }
        public static function Parse($arOneCondition)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        public static function GetAtomsEx($strControlID = \false, $boolEx = \false)
        {
        }
        /**
         * @param bool|string $strControlID
         * @return array|bool
         */
        public static function GetControls($strControlID = \false)
        {
        }
        private function __GetVisual($boolExt = \false)
        {
        }
        private static function getCodeForCumulativeGroupCondition($oneCondition, $values, $params, $control, $subs)
        {
        }
        private function __GetSubGroupCond($arOneCondition, $arValues, $arParams, $arControl, $arSubs)
        {
        }
        private function __GetRowGroupCond($arOneCondition, $arValues, $arParams, $arControl, $arSubs)
        {
        }
        private function __GetProductGroupCond($arOneCondition, $arValues, $arParams, $arControl, $arSubs)
        {
        }
        private function __GetAmtGroupCond($arOneCondition, $arValues, $arParams, $arControl, $arSubs)
        {
        }
        private function __GetAmtBaseGroupCond($arOneCondition, $arValues, $arParams, $arControl, $arSubs)
        {
        }
        private function __GetCntGroupCond($arOneCondition, $arValues, $arParams, $arControl, $arSubs)
        {
        }
    }
    class CSaleCondCtrlBasketFields extends \CSaleCondCtrlComplex
    {
        const ENTITY_BASKET_POSITION_WEIGHT = 'BX:CondBsktFldSummWeight';
        public static function GetControlDescr()
        {
        }
        public static function GetControlShow($arParams)
        {
        }
        public static function GetConditionShow($arParams)
        {
        }
        public static function Parse($arOneCondition)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        /**
         * @param bool|string $strControlID
         * @return array|bool
         */
        public static function GetControls($strControlID = \false)
        {
        }
        public static function GetShowIn($arControls)
        {
        }
    }
    class CGlobalCondCtrlAtoms extends \CGlobalCondCtrl
    {
        /**
         * @return array|bool
         */
        public static function GetControlDescr()
        {
        }
        public static function GetConditionShow($params)
        {
        }
        public static function Parse($condition)
        {
        }
        public static function Generate($condition, $params, $control, $childrens = \false)
        {
        }
        public static function GetAtomsEx($controlId = \false, $extendedMode = \false)
        {
        }
        public static function GetAtoms()
        {
        }
        /**
         * @return string|array
         */
        public static function GetControlID()
        {
        }
        /**
         * @param bool|string $strControlID
         * @return array|bool
         */
        public static function GetControls($strControlID = \false)
        {
        }
        public static function GetControlShow($params)
        {
        }
    }
    class CSaleCondCtrlBasketItemConditions extends \CGlobalCondCtrlAtoms
    {
        const ENTITY_BASKET_POSITION_ACTION_APPLIED = 'CondBsktAppliedDiscount';
        public static function GetControlDescr()
        {
        }
        public static function GetAtomsEx($controlId = \false, $extendedMode = \false)
        {
        }
        public static function GetControls($controlId = \false)
        {
        }
        public static function GetShowIn($arControls)
        {
        }
        public static function GetConditionShow($params)
        {
        }
        public static function Parse($condition)
        {
        }
        public static function Generate($condition, $params, $control, $childrens = \false)
        {
        }
    }
    class CSaleCondCtrlBasketProperties extends \CGlobalCondCtrlAtoms
    {
        const ENTITY_BASKET_PROPERTY = 'BX:CondBsktProp';
        const ENTITY_TYPE_NAME = 'NAME';
        const ENTITY_TYPE_CODE = 'CODE';
        public static function GetControlDescr()
        {
        }
        public static function GetAtomsEx($controlId = \false, $extendedMode = \false)
        {
        }
        public static function GetControls($controlId = \false)
        {
        }
        public static function GetShowIn($arControls)
        {
        }
        public static function Generate($condition, $params, $control, $childrens = \false)
        {
        }
    }
    class CSaleCondCtrlOrderFields extends \CSaleCondCtrlComplex
    {
        public static function GetControlDescr()
        {
        }
        public static function GetControlShow($arParams)
        {
        }
        public static function Parse($arOneCondition)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        /**
         * @param bool|string $strControlID
         * @return array|bool
         */
        public static function GetControls($strControlID = \false)
        {
        }
        public static function GetShowIn($arControls)
        {
        }
        public static function GetJSControl($arControl, $arParams = array())
        {
        }
    }
    class CSaleCondCtrlPastOrder extends \CSaleCondCtrlOrderFields
    {
        public static function GetControlDescr()
        {
        }
        public static function onBuildDiscountConditionInterfaceControls()
        {
        }
        public static function checkPastOrder($currentOrder, $callable)
        {
        }
        private static function convertToArray(\Bitrix\Sale\Order $order)
        {
        }
        private static function getPastOrder($userId)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        public static function GetControlShow($arParams)
        {
        }
        public static function GetControls($strControlID = \false)
        {
        }
    }
    class CSaleCondCtrlCommon extends \CSaleCondCtrlComplex
    {
        public static function GetControlDescr()
        {
        }
        public static function GetControlShow($arParams)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        /**
         * @param bool|string $strControlID
         * @return array|bool
         */
        public static function GetControls($strControlID = \false)
        {
        }
        public static function GetShowIn($arControls)
        {
        }
    }
    class CGlobalCondTree
    {
        protected $intMode = \BT_COND_MODE_DEFAULT;
        // work mode
        protected $arEvents = array();
        // events ID
        protected $arInitParams = array();
        // start params
        protected $boolError = \false;
        // error flag
        protected $arMsg = array();
        // messages (errors)
        protected $strFormName = '';
        // form name
        protected $strFormID = '';
        // form id
        protected $strContID = '';
        // container id
        protected $strJSName = '';
        // js object var name
        protected $boolCreateForm = \false;
        // need create form
        protected $boolCreateCont = \false;
        // need create container
        protected $strPrefix = 'rule';
        // prefix for input
        protected $strSepID = '__';
        // separator for id
        protected $arSystemMess = array();
        // system messages
        protected $arAtomList = \null;
        // atom list cache
        protected $arAtomJSPath = \null;
        // atom js files
        protected $arControlList = \null;
        // control list cache
        protected $arShowControlList = \null;
        // control show method list
        protected $arShowInGroups = \null;
        // showin group list
        protected $forcedShowInGroup = \null;
        // forced showin list
        protected $arInitControlList = \null;
        // control init list
        protected $arDefaultControl = array('Parse', 'GetConditionShow', 'Generate', 'ApplyValues');
        // required control fields
        protected $usedModules = array();
        // modules for real conditions
        protected $usedExtFiles = array();
        // files from AddEventHandler
        protected $usedEntity = array();
        // entity list in conditions
        protected $arConditions = \null;
        // conditions array
        public function __construct()
        {
        }
        public function __destruct()
        {
        }
        public function OnConditionAtomBuildList()
        {
        }
        public function OnConditionControlBuildList()
        {
        }
        protected function CheckControl($arControl)
        {
        }
        protected function GetModeList()
        {
        }
        protected function GetEventList($intEventID)
        {
        }
        protected function CheckEvent($arEvent)
        {
        }
        public function Init($intMode, $mxEvent, $arParams = array())
        {
        }
        public function Show($arConditions)
        {
        }
        public function GetDefaultConditions()
        {
        }
        public function Parse($arData = '', $arParams = \false)
        {
        }
        public function ShowScripts()
        {
        }
        public function ShowAtoms()
        {
        }
        public function ShowParams()
        {
        }
        public function ShowControls()
        {
        }
        public function ShowLevel(&$arLevel, $boolFirst = \false)
        {
        }
        public function ShowConditions()
        {
        }
        public function Generate($arConditions, $arParams)
        {
        }
        public function GenerateLevel(&$arLevel, $arParams, $boolFirst = \false)
        {
        }
        public function GetConditionValues($arConditions)
        {
        }
        public function GetConditionValuesLevel(&$arLevel, &$arResult, $boolFirst = \false)
        {
        }
        public function GetConditionHandlers()
        {
        }
        public function GetUsedEntityList()
        {
        }
        protected function __ConvertKey($strKey)
        {
        }
        protected function __SetCondition(&$arResult, $arKeys, $intIndex, $arOneCondition)
        {
        }
        protected function fillUsedData(&$control)
        {
        }
        protected function fillForcedShow(&$showControl)
        {
        }
    }
    class CSaleCondTree extends \CGlobalCondTree
    {
        protected $arExecuteFunc = array();
        protected $executeModule = array();
        public function __construct()
        {
        }
        public function __destruct()
        {
        }
        public function Generate($arConditions, $arParams)
        {
        }
        public function GenerateLevel(&$arLevel, $arParams, $boolFirst = \false)
        {
        }
        public function GetExecuteModule()
        {
        }
        protected function fillUsedData(&$control)
        {
        }
    }
    class CSaleCondCumulativeCtrl extends \CSaleCondCtrlComplex
    {
        const TYPE_ORDER_ARCHIVED = \Bitrix\Sale\Discount\CumulativeCalculator::TYPE_ORDER_ARCHIVED;
        const TYPE_ORDER_NON_ARCHIVED = \Bitrix\Sale\Discount\CumulativeCalculator::TYPE_ORDER_NON_ARCHIVED;
        public static function onBuildDiscountConditionInterfaceControls()
        {
        }
        public static function getControlDescr()
        {
        }
        public static function getControlShow($params)
        {
        }
        public static function GetConditionShow($arParams)
        {
        }
        public static function generate($oneCondition, $params, $control, $subs = \false)
        {
        }
        private static function exportConfiguration(array $configuration)
        {
        }
        public static function getCumulativeValue($currentOrder, array $dataSumConfiguration = array())
        {
        }
        protected static function convertDataToSumConfiguration(array $dataSumConfiguration)
        {
        }
        /**
         * @param bool|string $controlId
         *
         *@return array|bool
         */
        public static function getControls($controlId = \false)
        {
        }
        public static function getShowIn($arControls)
        {
        }
        public static function Parse($arOneCondition)
        {
        }
        public static function ConvertInt2DateTime(&$value, $format, $offset)
        {
        }
        public static function ConvertDateTime2Int(&$value, $format, $offset)
        {
        }
        public static function GetAtomsEx($strControlID = \false, $boolEx = \false)
        {
        }
    }
    class CAllSaleUserCards
    {
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Delete($ID)
        {
        }
        function OnUserDelete($UserID)
        {
        }
        function CheckPassword()
        {
        }
        function CryptData($data, $type)
        {
        }
        function IdentifyCardType($ccNum)
        {
        }
        function WithdrawByID($sum, $currency, $ID, $orderID = 0)
        {
        }
        function Withdraw($sum, $currency, $arUserCard, $orderID = 0)
        {
        }
    }
    /**
     * Class CAllSaleDelivery
     * @deprecated
     */
    class CAllSaleDelivery
    {
        const CONN_ENTITY_NAME = 'Bitrix\\Sale\\Delivery\\DeliveryLocation';
        /**
         * @param $val
         * @param $key
         * @param $operation
         * @param $negative
         * @param $field
         * @param $arField
         * @param $arFilter
         * @return bool|string
         * @deprecated
         * @internal
         */
        public static function PrepareLocation24Where($val, $key, $operation, $negative, $field, &$arField, &$arFilter)
        {
        }
        /**
         * @param $arOrder
         * @param $deliveryCode
         * @param $arErrors
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\SystemException
         * @internal
         * @deprecated
         */
        static function DoProcessOrder(&$arOrder, $deliveryCode, &$arErrors)
        {
        }
        /**
         * @deprecated Use \Bitrix\Sale\Delivery\Services\Manager
         */
        public static function DoLoadDelivery($location, $locationZip, $weight, $price, $currency, $siteId = \null, $arShoppingCart = array())
        {
        }
        /**
         * @deprecated Use \Bitrix\Sale\Delivery\Services\Table::getById().
         */
        public static function GetByID($ID)
        {
        }
        /**
         * @param array $arFilter
         * @return bool|CDBResult
         * @deprecated
         */
        function GetLocationList($arFilter = array())
        {
        }
        /**
         * @deprecated
         * @internal
         */
        public static function CheckFields($ACTION, &$arFields)
        {
        }
        /**
         * @param $ID
         * @param $locations
         * @internal
         * @deprecated
         */
        public static function SetDeliveryLocationPro($ID, $locations)
        {
        }
        /**
         * @deprecated
         */
        public static function Update($oldId, $arFields, $arOptions = array())
        {
        }
        /**
         * @deprecated
         */
        public static function Delete($ID)
        {
        }
        /**
         * The function select delivery and paysystem
         *
         * @param array $arFilter - array to filter
         * @return object $dbRes - object result
         * @deprecated
         */
        public static function GetDelivery2PaySystem($arFilter = array())
        {
        }
        /**
         * The function updates delivery and paysystem
         *
         * @param int $ID - code delivery
         * @param array $arFields - paysytem
         * @return int $ID - code delivery
         * @deprecated
         */
        static function UpdateDeliveryPay($ID, $arFields)
        {
        }
        /**
         * @param $fieldName
         * @param $filter
         * @return bool
         */
        protected static function getFilterValue($fieldName, $filter)
        {
        }
        /**
         * @param $fieldName
         * @param $filter
         * @return bool
         */
        protected static function isFieldInFilter($fieldName, $filter)
        {
        }
        /**
         * @param $fieldName
         * @param $filter
         * @return bool
         */
        protected static function isFieldInFilter2($fieldName, $filter)
        {
        }
        /**
         * @param $name
         * @return bool
         */
        protected static function hasNewServiceField($name)
        {
        }
        /**
         * @param array $filter
         * @return array
         */
        protected static function convertFilterOldToNew(array $filter = array())
        {
        }
        /**
         * @param $groupBy
         * @return array
         */
        protected static function convertGroupOldToNew($groupBy)
        {
        }
        /**
         * @param array $selectFields
         * @return array
         */
        protected static function convertSelectOldToNew(array $selectFields = array())
        {
        }
        /**
         * @param $fieldName
         * @param array $select
         * @return bool
         */
        protected static function isFieldSelected($fieldName, array $select)
        {
        }
        /**
         * @param array $restriction
         * @param array $filter
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         */
        protected static function checkRestrictionFilter(array $restriction, array $filter)
        {
        }
        /**
         * @param array $service
         * @param array $restriction
         * @param array $selectedFields
         * @return array
         */
        protected static function getSelectedRestrictionField(array $service, array $restriction, array $selectedFields)
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool $arGroupBy
         * @param bool $arNavStartParams
         * @param array $arSelectFields
         * @return \CDBResult
         * @throws \Bitrix\Main\ArgumentException
         * @deprecated
         */
        public static function GetList($arOrder = array("SORT" => "ASC", "NAME" => "ASC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array('*'))
        {
        }
        /**
         * @param $arFields
         * @param array $arOptions
         * @return bool|int
         * @throws Exception
         * @deprecated
         */
        static function Add($arFields, $arOptions = array())
        {
        }
        protected static function createD2LTable()
        {
        }
        /**
         * @param bool|false $renameTable
         * @return \Bitrix\Sale\Result
         * @throws Exception
         * @throws \Bitrix\Main\ArgumentException
         * @internal
         */
        public static function convertToNew($renameTable = \false)
        {
        }
        /**
         * @param bool|false $renameTable
         * @return string
         * @internal
         */
        public static function convertToNewAgent($renameTable = \false)
        {
        }
        /**
         * @return string
         * @internal
         */
        public static function convertPSRelationsAgent()
        {
        }
        /**
         * @return \Bitrix\Sale\Result
         * @throws Exception
         * @throws \Bitrix\Main\ArgumentException
         * @internal
         */
        public static function convertPSRelations()
        {
        }
        /**
         * @param Shipment $shipment
         * @return array Old order.
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function convertOrderNewToOld(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param array $oldOrder
         * @return Shipment
         * @internal
         */
        public static function convertOrderOldToNew(array $oldOrder)
        {
        }
        /**
         * @return string
         * @throws Exception
         * @internal
         */
        public static function createNoDeliveryServiceAgent()
        {
        }
        /**
         * @param string $code Delivery service code.
         * @return int Delivery id.
         */
        public static function getIdByCode($code)
        {
        }
        /**
         * @param int $id Delivery service id.
         * @return string Delivery service code.
         */
        public static function getCodeById($id)
        {
        }
    }
    class CAllSaleAffiliateTier
    {
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Delete($ID)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function GetByID($ID)
        {
        }
    }
    class CAllSaleLocationGroup
    {
        const SELF_ENTITY_NAME = 'Bitrix\\Sale\\Location\\Group';
        const CONN_ENTITY_NAME = 'Bitrix\\Sale\\Location\\GroupLocation';
        const LOCATION_ENTITY_NAME = 'Bitrix\\Sale\\Location\\Location';
        const NAME_ENTITY_NAME = 'Bitrix\\Sale\\Location\\Name\\Group';
        function GetLocationList($arFilter = array())
        {
        }
        function GetGroupLangByID($ID, $strLang = \LANGUAGE_ID)
        {
        }
        function CheckFields($ACTION, &$arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function Delete($ID)
        {
        }
        function OnLangDelete($strLang)
        {
        }
    }
    class CSaleDelivery2PaySystem
    {
        public static $arFirstDS = array();
        public static $arFirstPS = array();
        protected static function convertDeliveryIds($oldDeliveryIds = array(), $oldProfiles = array())
        {
        }
        public static function GetList($arFilter = array(), $arGroupBy = \false, $arSelectFields = array())
        {
        }
        protected static function isRecordExists($dlvId, $profile, $paySystemId, $records)
        {
        }
        protected static function getFullDeliveryList()
        {
        }
        protected static function getDeliveryChildrenList()
        {
        }
        protected static function getFullPaySystemList()
        {
        }
        public static function isPaySystemApplicable($paySystemId, $deliveryId)
        {
        }
        public static function UpdateDelivery($ID, $arFields)
        {
        }
        /**
         * UpdatePaySystem
         *
         * @param int $ID Pay system id.
         * @param array $arFields delivery idenificators.
         *
         * @return bool true if success or false otherwise.
         */
        public static function UpdatePaySystem($ID, $arFields)
        {
        }
        public static function Delete($arFilter)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function convertEmptyAllAgent()
        {
        }
    }
    class CAllSaleTaxRate
    {
        const CONN_ENTITY_NAME = 'Bitrix\\Sale\\Tax\\RateLocation';
        function CheckFields($ACTION, &$arFields)
        {
        }
        function SetTaxRateLocation($ID, $arFields, $arOptions = array())
        {
        }
        function Update($ID, $arFields, $arOptions = array())
        {
        }
        function Delete($ID)
        {
        }
        function GetByID($ID)
        {
        }
        /**
         * Get locations connected with tax rate.
         * This method is deprecated. It will be removed in future releases.
         * 
         * 
         */
        function GetLocationList($arFilter = array())
        {
        }
    }
    class CSaleExport
    {
        const DEFAULT_VERSION = 2.05;
        const PARTIAL_VERSION = 2.1;
        const CONTAINER_VERSION = 3;
        const LAST_ORDER_PREFIX = 'LAST_ORDER_ID';
        const DIVIDER_NUMBER_POSITION = 100000;
        static $versionSchema;
        static $crmMode;
        static $currency;
        static $measures;
        static $orderTax;
        static $arResultStat = array();
        static $xmlVersion = "1.0";
        static $xmlEncoding = "windows-1251";
        static $xmlRootName = "<?xml version=\"#version#\" encoding=\"#encoding#\"?>";
        static $typeDocument = "";
        static $deliveryAdr = "";
        static $siteNameByOrder = "";
        static $documentsToLog;
        protected static $lid = \null;
        protected static function getParentEntityTypeId()
        {
        }
        protected static function load($id)
        {
        }
        public static function getParentEntityTable()
        {
        }
        protected static function getPaymentTable()
        {
        }
        protected static function getShipmentTable()
        {
        }
        protected static function getBasketTable()
        {
        }
        protected static function getEntityChangeTable()
        {
        }
        protected static function getEntityMarker()
        {
        }
        protected static function getPersonType()
        {
        }
        protected static function getUserTimeStapmX(array $arOrder)
        {
        }
        protected static function getUserXmlId(array $arOrder, array $arProp)
        {
        }
        protected static function updateEmptyUserXmlId(array $arOrder, array $arProp)
        {
        }
        protected static function resolveEntityTypeId($typeDocument, array $document)
        {
        }
        protected static function getStatusInfoByStatusId($id)
        {
        }
        /**
         * @param $value
         * @return string
         */
        protected static function toText($value)
        {
        }
        public static function getNumberBasketPosition($basketId)
        {
        }
        public static function setLanguage($value)
        {
        }
        static function setXmlEncoding($encoding)
        {
        }
        static function getXmlRootName()
        {
        }
        static function getCmrXmlRootNameParams()
        {
        }
        static function getDeliveryAddress()
        {
        }
        static function setDeliveryAddress($deliveryAdr)
        {
        }
        static function setVersionSchema($versionSchema = \false)
        {
        }
        static function setCrmMode($crmMode)
        {
        }
        static function setCurrencySchema($currency)
        {
        }
        static function getVersionSchema()
        {
        }
        /**
         * @return int|null
         */
        public static function getCashBoxOneCId()
        {
        }
        static function isExportFromCRM($arOptions)
        {
        }
        static function getEndTime($time_limit)
        {
        }
        static function checkTimeIsOver($time_limit, $end_time)
        {
        }
        static function getOrderPrefix()
        {
        }
        function getAccountNumberShopPrefix()
        {
        }
        function getSalePaySystem()
        {
        }
        function getSaleDelivery()
        {
        }
        static function getCatalogStore()
        {
        }
        static function getOrderDeliveryItem($arOrder, $bVat, $vatRate, $vatSum)
        {
        }
        static function getCatalogMeasure()
        {
        }
        static function setCatalogMeasure($arMeasures)
        {
        }
        static function setOrderSumTaxMoney($orderTax)
        {
        }
        static function getSaleExport()
        {
        }
        static function prepareSaleProperty($arOrder, $bExportFromCrm, $bCrmModuleIncluded, $paySystems, $delivery, &$locationStreetPropertyValue, \Bitrix\Sale\Order $order)
        {
        }
        static function prepareSalePropertyRekv(\Bitrix\Sale\IBusinessValueProvider $entity, $agentParams, $arProp, $locationStreetPropertyValue = '')
        {
        }
        static function getSite()
        {
        }
        static function setSiteNameByOrder($arOrder)
        {
        }
        static function getPayment($arOrder)
        {
        }
        static function getShipment($arOrder)
        {
        }
        protected static function getLastOrderExported($timeUpdate)
        {
        }
        /**
         * @return array
         */
        protected static function prepareFilter($arFilter = array())
        {
        }
        /**
         * @param array $arOrder
         */
        protected static function saveExportParams(array $arOrder)
        {
        }
        protected static function getLastDateUpdateByParams(array $params)
        {
        }
        /**
         * @param array $params
         * @return \Bitrix\Sale\Result
         */
        public function export(array $params)
        {
        }
        static function ExportOrders2Xml($arFilter = array(), $nTopCount = 0, $currency = "", $crmMode = \false, $time_limit = 0, $version = \false, $arOptions = array())
        {
        }
        function UnZip($file_name, $last_zip_entry = "", $interval = 0)
        {
        }
        static function getOrderTax(\Bitrix\Sale\Order $order)
        {
        }
        static function getOrderSumTaxMoney($arOrderTaxAll)
        {
        }
        static function getXmlOrderTax($arOrderTaxAll)
        {
        }
        static function getXmlOrderDiscount($arOrder)
        {
        }
        static function getShipmentsStoreList(\Bitrix\Sale\Order $order)
        {
        }
        static function getXmlSaleStore($arShipmentStore, $arStore)
        {
        }
        function getXmlSaleStoreBasket($arOrder, $arStore)
        {
        }
        /**
         * @param string $code
         * @return string
         */
        public static function normalizeExternalCode($code)
        {
        }
        protected static function outputXmlMarkingCodeGroup($arBasket)
        {
        }
        protected static function outputXmlMarkingCode($shipmentItemId, $order)
        {
        }
        protected static function outputXmlUnit($arBasket)
        {
        }
        static function getXmlBasketItems($type, $arOrder, $arFilter, $arSelect = array(), $arShipment = array(), $order = \null)
        {
        }
        static function getXmlSaleProperties($arOrder, $arShipment, $arPayment, $agent, $agentParams, $bExportFromCrm)
        {
        }
        static function getXmlRekvProperties($agent, $agentParams)
        {
        }
        static function OutputXmlRekvProperties($agent, $agentParams)
        {
        }
        static function getXmlContragents($arOrder = array(), $arProp = array(), $agent = array(), $arOptions = array())
        {
        }
        static function OutputXmlDocumentsByType($typeDocument, $xmlResult, $arOrder, $documents, \Bitrix\Sale\Order $order = \null, $agentParams, $arProp, $locationStreetPropertyValue)
        {
        }
        static function OutputXmlSiteName($arOrder)
        {
        }
        static function OutputXmlDeliveryAddress()
        {
        }
        static function OutputXmlDocumentRemove($typeDocument, $document)
        {
        }
        static function OutputXmlDocument($typeDocument, $xmlResult, $document = array())
        {
        }
        static function ExportContragents($arOrder = array(), $arProp = array(), $agent = array(), $arOptions = array())
        {
        }
        public static function getFormatDate($value)
        {
        }
        public static function isFormattedDateFields($type, $field)
        {
        }
        public static function getFormattedDateFields()
        {
        }
        /** @deprecated */
        private static $systemCodes = array(
            // !!! Make sure these codes are in sync with system codes in BusinessValueConsumer1C !!!
            //  'new bizval name'            => 'old 1c name'
            \Bitrix\Sale\BusinessValue::INDIVIDUAL_DOMAIN => array('BUYER_PERSON_NAME' => 'FULL_NAME', 'BUYER_PERSON_NAME_FIRST' => 'NAME', 'BUYER_PERSON_NAME_SECOND' => 'SECOND_NAME', 'BUYER_PERSON_NAME_LAST' => 'SURNAME', 'BUYER_PERSON_NAME_AGENT' => 'AGENT_NAME', 'BUYER_PERSON_NAME_CONTACT' => 'CONTACT_PERSON', 'BUYER_PERSON_BIRTHDAY' => 'BIRTHDAY', 'BUYER_PERSON_GENDER' => 'MALE', 'BUYER_PERSON_INN' => 'INN', 'BUYER_PERSON_KPP' => 'KPP', 'BUYER_PERSON_ADDRESS' => 'ADDRESS_FULL', 'BUYER_PERSON_ZIP' => 'INDEX', 'BUYER_PERSON_COUNTRY' => 'COUNTRY', 'BUYER_PERSON_REGION' => 'REGION', 'BUYER_PERSON_STATE' => 'STATE', 'BUYER_PERSON_TOWN' => 'TOWN', 'BUYER_PERSON_CITY' => 'CITY', 'BUYER_PERSON_STREET' => 'STREET', 'BUYER_PERSON_HOUSING' => 'BUILDING', 'BUYER_PERSON_BUILDING' => 'HOUSE', 'BUYER_PERSON_APARTMENT' => 'FLAT', 'BUYER_PERSON_PHONE' => 'PHONE', 'BUYER_PERSON_EMAIL' => 'EMAIL', 'BUYER_PERSON_F_ADDRESS_FULL' => 'F_ADDRESS_FULL', 'BUYER_PERSON_F_INDEX' => 'F_INDEX', 'BUYER_PERSON_F_COUNTRY' => 'F_COUNTRY', 'BUYER_PERSON_F_REGION' => 'F_REGION', 'BUYER_PERSON_F_STATE' => 'F_STATE', 'BUYER_PERSON_F_TOWN' => 'F_TOWN', 'BUYER_PERSON_F_CITY' => 'F_CITY', 'BUYER_PERSON_F_STREET' => 'F_STREET', 'BUYER_PERSON_F_BUILDING' => 'F_BUILDING', 'BUYER_PERSON_F_HOUSE' => 'F_HOUSE', 'BUYER_PERSON_F_FLAT' => 'F_FLAT'),
            \Bitrix\Sale\BusinessValue::ENTITY_DOMAIN => array('BUYER_COMPANY_NAME' => 'FULL_NAME', 'BUYER_COMPANY_NAME_AGENT' => 'AGENT_NAME', 'BUYER_COMPANY_NAME_CONTACT' => 'CONTACT_PERSON', 'BUYER_COMPANY_INN' => 'INN', 'BUYER_COMPANY_KPP' => 'KPP', 'BUYER_COMPANY_ADDRESS' => 'ADDRESS_FULL', 'BUYER_COMPANY_ZIP' => 'INDEX', 'BUYER_COMPANY_COUNTRY' => 'COUNTRY', 'BUYER_COMPANY_REGION' => 'REGION', 'BUYER_COMPANY_STATE' => 'STATE', 'BUYER_COMPANY_TOWN' => 'TOWN', 'BUYER_COMPANY_CITY' => 'CITY', 'BUYER_COMPANY_STREET' => 'STREET', 'BUYER_COMPANY_HOUSING' => 'BUILDING', 'BUYER_COMPANY_BUILDING' => 'HOUSE', 'BUYER_COMPANY_APARTMENT' => 'FLAT', 'BUYER_COMPANY_PHONE' => 'PHONE', 'BUYER_COMPANY_EMAIL' => 'EMAIL', 'BUYER_COMPANY_EGRPO' => 'EGRPO', 'BUYER_COMPANY_OKVED' => 'OKVED', 'BUYER_COMPANY_OKDP' => 'OKDP', 'BUYER_COMPANY_OKOPF' => 'OKOPF', 'BUYER_COMPANY_OKFC' => 'OKFC', 'BUYER_COMPANY_OKPO' => 'OKPO', 'BUYER_COMPANY_BANK_ACCOUNT' => 'ACCOUNT_NUMBER', 'BUYER_COMPANY_BANK_NAME' => 'B_NAME', 'BUYER_COMPANY_BANK_BIK' => 'B_BIK', 'BUYER_COMPANY_BANK_ADDRESS_FULL' => 'B_ADDRESS_FULL', 'BUYER_COMPANY_BANK_INDEX' => 'B_INDEX', 'BUYER_COMPANY_BANK_COUNTRY' => 'B_COUNTRY', 'BUYER_COMPANY_BANK_REGION' => 'B_REGION', 'BUYER_COMPANY_BANK_STATE' => 'B_STATE', 'BUYER_COMPANY_BANK_TOWN' => 'B_TOWN', 'BUYER_COMPANY_BANK_CITY' => 'B_CITY', 'BUYER_COMPANY_BANK_STREET' => 'B_STREET', 'BUYER_COMPANY_BANK_BUILDING' => 'B_BUILDING', 'BUYER_COMPANY_BANK_HOUSE' => 'B_HOUSE', 'BUYER_COMPANY_F_ADDRESS_FULL' => 'F_ADDRESS_FULL', 'BUYER_COMPANY_F_INDEX' => 'F_INDEX', 'BUYER_COMPANY_F_COUNTRY' => 'F_COUNTRY', 'BUYER_COMPANY_F_REGION' => 'F_REGION', 'BUYER_COMPANY_F_STATE' => 'F_STATE', 'BUYER_COMPANY_F_TOWN' => 'F_TOWN', 'BUYER_COMPANY_F_CITY' => 'F_CITY', 'BUYER_COMPANY_F_STREET' => 'F_STREET', 'BUYER_COMPANY_F_BUILDING' => 'F_BUILDING', 'BUYER_COMPANY_F_HOUSE' => 'F_HOUSE', 'BUYER_COMPANY_F_FLAT' => 'F_FLAT'),
        );
        function GetList($order = array("ID" => "DESC"), $filter = array(), $group = \false, $arNavStartParams = \false, $select = array())
        {
        }
        /**
         * @param \Bitrix\Sale\IBusinessValueProvider $entity
         * @return array
         */
        protected static function getProvidersInstanceByEntity(\Bitrix\Sale\IBusinessValueProvider $entity)
        {
        }
        /**
         * @deprecated
         * @param \Bitrix\Sale\Order $order
         * @return array
         */
        protected function getProvidersInstanceByOrder(\Bitrix\Sale\Order $order)
        {
        }
        protected static function getProviderInstanceByProviderCode(\Bitrix\Sale\IBusinessValueProvider $entity, $providerCode)
        {
        }
        function GetByID($ID)
        {
        }
        /** @deprecated */
        private static function logError($itemId, $message, \Bitrix\Main\Result $result = \null)
        {
        }
        /** @deprecated */
        private static function setMap($personTypeId, array $map1C, $itemId)
        {
        }
        /** @deprecated */
        public static function migrateToBusinessValues()
        {
        }
        static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        static function Add($arFields)
        {
        }
        static function Update($ID, $arFields)
        {
        }
        static function deleteREKV($typeId)
        {
        }
        function Delete($ID)
        {
        }
        /**
         * @param $name
         *
         * @return string
         */
        public static function getTagName($name)
        {
        }
        /**
         * @param array $fields
         * @return \Bitrix\Main\ORM\Data\AddResult
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectException
         */
        public static function log(array $fields)
        {
        }
    }
    final class ExportOneCCRM extends \CSaleExport
    {
        protected static function getParentEntityTypeId()
        {
        }
        protected static function load($id)
        {
        }
        public static function getParentEntityTable()
        {
        }
        protected static function getPaymentTable()
        {
        }
        protected static function getShipmentTable()
        {
        }
        protected static function getBasketTable()
        {
        }
        protected static function getEntityChangeTable()
        {
        }
        protected static function getEntityMarker()
        {
        }
        protected static function getPersonType()
        {
        }
        public static function normalizeExternalCode($xml)
        {
        }
        protected static function getUserTimeStapmX(array $arOrder)
        {
        }
        protected static function getUserXmlId(array $arOrder, array $arProp)
        {
        }
        protected static function resolveEntityTypeId($typeDocument, array $document)
        {
        }
        protected static function getStatusInfoByStatusId($id)
        {
        }
    }
    /**
     * @deprecated deprecated since sale 16.0.10
     * @see \Bitrix\Sale\Discount\Actions
     */
    class CSaleDiscountActionApply
    {
        const VALUE_TYPE_FIX = \Bitrix\Sale\Discount\Actions::VALUE_TYPE_FIX;
        const VALUE_TYPE_PERCENT = \Bitrix\Sale\Discount\Actions::VALUE_TYPE_PERCENT;
        const VALUE_TYPE_SUMM = \Bitrix\Sale\Discount\Actions::VALUE_TYPE_SUMM;
        const GIFT_SELECT_TYPE_ONE = \Bitrix\Sale\Discount\Actions::GIFT_SELECT_TYPE_ONE;
        const GIFT_SELECT_TYPE_ALL = \Bitrix\Sale\Discount\Actions::GIFT_SELECT_TYPE_ALL;
        const ORDER_MANUAL_MODE_FIELD = 'ORDER_MANUAL_MODE';
        const BASKET_APPLIED_FIELD = \Bitrix\Sale\Discount\Actions::BASKET_APPLIED_FIELD;
        const EPS = \Bitrix\Sale\Discount\Actions::VALUE_EPS;
        protected static $getPercentFromBasePrice = \null;
        /**
         * Check discount calculate mode field for order.
         *
         * @deprecated deprecated since sale 16.0.10
         * @see \Bitrix\Sale\Discount\Actions::isManualMode
         *
         * @param array $order			Order data.
         * @return bool
         */
        public static function isManualMode($order)
        {
        }
        /**
         * Set discount calculate mode field for order.
         *
         * @deprecated deprecated since sale 16.0.10
         * @see \Bitrix\Sale\Discount\Actions::setUseMode
         *
         * @param array &$order			Order data.
         * @return void
         */
        public static function setManualMode(&$order)
        {
        }
        /**
         * Erase discount calculate mode field for order.
         *
         * @deprecated deprecated since sale 16.0.10
         * @see \Bitrix\Sale\Discount\Actions::setUseMode
         *
         * @param array &$order			Order data.
         * @return void
         */
        public static function clearManualMode(&$order)
        {
        }
        /**
         * Return true, if discount already applied by basket item.
         *
         * @deprecated deprecated since sale 16.0.10
         *
         * @param array $row			Basket row.
         * @return bool
         */
        public static function filterApplied($row)
        {
        }
        /**
         * Fill basket applied information.
         *
         * @deprecated deprecated since sale 16.0.10
         *
         * @param array &$order			Order data.
         * @param array $basket			Applied information (key - BASKET_ID, value - Y/N).
         * @return void
         */
        public static function fillBasketApplied(&$order, $basket)
        {
        }
        /**
         * Clear basket applied information.
         *
         * @deprecated deprecated since sale 16.0.10
         *
         * @param array &$order				Order data.
         * @return void
         */
        public static function clearBasketApplied(&$order)
        {
        }
        /**
         * Filter for undiscount basket items.
         *
         * @deprecated deprecated since sale 16.0.10
         * @see \Bitrix\Sale\Discount\Actions::filterBasketForAction
         *
         * @param array $row		Basket item.
         * @return bool
         */
        public static function ClearBasket($row)
        {
        }
        /**
         * Apply discount to delivery price.
         *
         * @deprecated deprecated since sale 16.0.10
         * @see \Bitrix\Sale\Discount\Actions::applyToDelivery
         *
         * @param array &$order				Order data.
         * @param float $value				Discount value.
         * @param string $unit				Value unit.
         * @param bool $extMode				Apply mode percent discount.
         * @return void
         */
        public static function ApplyDelivery(&$order, $value, $unit, $extMode = \false)
        {
        }
        /**
         * Apply discount to basket.
         *
         * @deprecated deprecated since sale 16.0.10
         * @see \Bitrix\Sale\Discount\Actions::applyToBasket
         *
         * @param array &$order			Order data.
         * @param callable $func		Filter function.
         * @param float $value			Discount value.
         * @param string $unit			Value unit.
         * @return void
         */
        public static function ApplyBasketDiscount(&$order, $func, $value, $unit)
        {
        }
        /**
         * Apply simple gift discount.
         *
         * @deprecated deprecated since sale 16.0.10
         * @see \Bitrix\Sale\Discount\Actions::applySimpleGift
         *
         * @param array &$order				Order data.
         * @param callable $callableFilter	Filter function.
         * @return void
         */
        public static function ApplyGiftDiscount(&$order, $callableFilter)
        {
        }
    }
    class CSaleActionCtrl extends \CGlobalCondCtrl
    {
        public static function GetConditionShow($arParams)
        {
        }
        public static function Parse($arOneCondition)
        {
        }
    }
    class CSaleCumulativeAction extends \CGlobalCondCtrl
    {
        public static function GetControlID()
        {
        }
        public static function onBuildDiscountActionInterfaceControls()
        {
        }
        public static function IsGroup($strControlID = \false)
        {
        }
        public static function Generate($oneCondition, $params, $control, $subs = \false)
        {
        }
        protected static function buildSubsCode(array $subs, array $oneCondition)
        {
        }
        protected static function convertSumConfigurationDateToInt(&$periodData = array())
        {
        }
    }
    class CSaleActionCtrlComplex extends \CGlobalCondCtrlComplex
    {
    }
    class CSaleActionCtrlGroup extends \CGlobalCondCtrlGroup
    {
        public static function GetShowIn($arControls)
        {
        }
        public static function GetControlShow($arParams)
        {
        }
        public static function GetConditionShow($arParams)
        {
        }
        public static function Parse($arOneCondition)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
    }
    class CSaleActionGiftCtrlGroup extends \CSaleActionCtrlGroup
    {
        public static function GetShowIn($arControls)
        {
        }
        public static function GetControlID()
        {
        }
        public static function GetAtoms()
        {
        }
        public static function GetAtomsEx($strControlID = \false, $boolEx = \false)
        {
        }
        public static function GetControlDescr()
        {
        }
        public static function GetControlShow($arParams)
        {
        }
        public static function Parse($arOneCondition)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        public static function ProvideGiftProductData(array $fields)
        {
        }
        protected static function getGifter(array $data)
        {
        }
        /**
         * Extends list of products by base product, if we have SKU in list.
         *
         * @param array $productIds
         * @return array
         */
        public static function ExtendProductIds(array $productIds)
        {
        }
    }
    class CSaleActionCtrlAction extends \CGlobalCondCtrlGroup
    {
        public static function GetConditionShow($arParams)
        {
        }
        public static function Parse($arOneCondition)
        {
        }
        public static function GetVisual()
        {
        }
    }
    class CSaleActionCtrlDelivery extends \CSaleActionCtrl
    {
        public static function GetControlDescr()
        {
        }
        public static function GetControlID()
        {
        }
        public static function GetControlShow($arParams)
        {
        }
        public static function GetAtoms()
        {
        }
        public static function GetAtomsEx($strControlID = \false, $boolEx = \false)
        {
        }
        public static function GetShowIn($arControls)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
    }
    class CSaleActionGift extends \CSaleActionCtrl
    {
        public static function GetControlDescr()
        {
        }
        public static function GetControlID()
        {
        }
        public static function GetControlShow($arParams)
        {
        }
        public static function GetAtoms()
        {
        }
        public static function GetAtomsEx($strControlID = \false, $boolEx = \false)
        {
        }
        public static function GetShowIn($arControls)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        public static function getGiftDataByDiscount($fields)
        {
        }
    }
    class CSaleActionCtrlBasketGroup extends \CSaleActionCtrlAction
    {
        const ACTION_TYPE_DISCOUNT = 'Discount';
        const ACTION_TYPE_EXTRA = 'Extra';
        const ACTION_TYPE_CLOSEOUT = 'Closeout';
        const VALUE_UNIT_PERCENT = 'Perc';
        const VALUE_UNIT_CURRENCY = 'CurEach';
        const VALUE_UNIT_SUMM = 'CurAll';
        public static function GetControlDescr()
        {
        }
        public static function GetControlID()
        {
        }
        public static function GetControlShow($arParams)
        {
        }
        public static function CheckAtoms($arOneCondition, $arParams, $arControl, $boolShow)
        {
        }
        public static function GetConditionShow($arParams)
        {
        }
        public static function GetVisual()
        {
        }
        public static function GetShowIn($arControls)
        {
        }
        public static function GetAtoms()
        {
        }
        public static function GetAtomsEx($strControlID = \false, $boolEx = \false)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
    }
    class CSaleActionCtrlSubGroup extends \CGlobalCondCtrlGroup
    {
        public static function GetControlDescr()
        {
        }
        public static function GetControlID()
        {
        }
        public static function GetShowIn($arControls)
        {
        }
        public static function GetControlShow($params)
        {
        }
    }
    class CSaleActionCondCtrlBasketFields extends \CSaleCondCtrlBasketFields
    {
        const CONTROL_ID_APPLIED_DISCOUNT = \CSaleCondCtrlBasketItemConditions::ENTITY_BASKET_POSITION_ACTION_APPLIED;
        public static function GetControlDescr()
        {
        }
        public static function GetControls($strControlID = \false)
        {
        }
        public static function GetShowIn($arControls)
        {
        }
    }
    class CSaleActionTree extends \CGlobalCondTree
    {
        protected $arExecuteFunc = array();
        protected $executeModule = array();
        public function __construct()
        {
        }
        public function __destruct()
        {
        }
        public function Init($mode, $event, $params = array())
        {
        }
        public function Generate($arConditions, $arParams)
        {
        }
        public function GenerateLevel(&$arLevel, $arParams, $boolFirst = \false)
        {
        }
        public function GetExecuteModule()
        {
        }
        protected function fillUsedData(&$control)
        {
        }
    }
    class CSaleOrderLoader
    {
        const DEFUALT_VERSION = 2.05;
        const PARTIAL_VERSION = 2.1;
        const DEBUG_FILE = "1c_order_exchange.log";
        const DEBUG_MODE = \true;
        /** @var Sale\Exchange\ImportOneCBase  */
        public $importer;
        var $strError = "";
        var $SumFormat = ".";
        var $QuantityFormat = ".";
        var $sdp = "";
        var $arParams = array();
        var $bNewVersion = \false;
        var $arPersonTypesIDs = array();
        var $arExportInfo = array();
        var $arIBInfo = array();
        public $crmCompatibleMode = \false;
        public $marked_code = '[1C_Exchange:Order.deducted]';
        public $delimiter_reason = "&nbsp;&nbsp;<br/>";
        static $useStoreControl = \null;
        static $operationType = "";
        static $documentType = "";
        static $versionSchema = "";
        public $strErrorDocument = "";
        public $version1C = "";
        public $xmlid1C = "";
        public $orderIdOrig = "";
        public $modifyItem = array();
        public $needModifyItem = array();
        public function getSiteId()
        {
        }
        function deleteDocumentShipment(\Bitrix\Sale\Shipment $shipment)
        {
        }
        function deleteDocumentPayment(\Bitrix\Sale\Payment $payment)
        {
        }
        public function afterShippedCompatible1C(\Bitrix\Sale\Order $order)
        {
        }
        public function setMarkedOrder(\Bitrix\Sale\Order $order)
        {
        }
        public function unMarkedOrder(\Bitrix\Sale\Order $order)
        {
        }
        public function isMarkedOrder(\Bitrix\Sale\Order $order)
        {
        }
        public function createPaymentCompatible1C(\Bitrix\Sale\Order $order, $arDocument)
        {
        }
        public function beforePaidCompatible1C(\Bitrix\Sale\Order $order)
        {
        }
        public function afterPaidCompatible1C(\Bitrix\Sale\Order $order)
        {
        }
        public function getPaymentCompatible1CByOrder(\Bitrix\Sale\Order $order)
        {
        }
        public function createEntityCompatible1C(\Bitrix\Sale\Order $order, $arDocument)
        {
        }
        public function updateEntityCompatible1C(\Bitrix\Sale\Order $order, $arDocument)
        {
        }
        public function getLogFileDir()
        {
        }
        public function getLogFilePath()
        {
        }
        public function logMessage($message = '')
        {
        }
        public function getTimeStampString()
        {
        }
        public static function onBeforeUpdateOrderWithoutShipmentsPayments(\Bitrix\Main\Event $event)
        {
        }
        public static function onBeforeSaveOrderWithoutShipmentsPayments(\Bitrix\Main\Event $event)
        {
        }
        function getDocumentId($type, $code, $xmlId1CDocument)
        {
        }
        function getOrderIdByDocument($orderCode)
        {
        }
        function addBasketForShipment($arDocument, $newBasketItems, \Bitrix\Sale\Shipment $shipment)
        {
        }
        function updateOrderWithoutShipmentsPayments(array $arOrder)
        {
        }
        function saveOrderCompatibility($arDocument, $arAditFields = array())
        {
        }
        function Paid(\Bitrix\Sale\Payment $payment, $arDocument)
        {
        }
        function Ship(\Bitrix\Sale\Shipment $shipment, $arDocument)
        {
        }
        function saveOrder($arDocument, $orderFields, $arAditFields)
        {
        }
        function addProduct($arDocument, $documentBasketItems, $documentShipmentItems, \Bitrix\Sale\Shipment $shipment)
        {
        }
        function updatePaymentFromDocument(array $arDocument, \Bitrix\Sale\Payment $payment)
        {
        }
        function addPaymentFromDocumentByOrder(array $arDocument, \Bitrix\Sale\Order $order)
        {
        }
        function addOrderWithoutShipmentsPayments(array $arDocument, $addOrderField = array())
        {
        }
        function addShipmentFromDocumentByOrder(array $arDocument, \Bitrix\Sale\Order $order)
        {
        }
        function updateShipmentQuantityFromDocument(array $arDocument, \Bitrix\Sale\Shipment $shipment)
        {
        }
        function deleteShipmentItemsByDocument($arDocument, \Bitrix\Sale\Shipment $shipment)
        {
        }
        function updateShipmentNeedQuantity($externalQuantity, \Bitrix\Sale\BasketItem $basketItem, \Bitrix\Sale\Shipment $shipment, $shipmentItemFields)
        {
        }
        function updateShipmentNeedQuantityFromBasketItems($needQuantityWithoutSystem, $needQuantity, \Bitrix\Sale\BasketItem $basketItem, \Bitrix\Sale\Shipment $shipment)
        {
        }
        function updateShipmentItemQuantity($needQuantity, \Bitrix\Sale\BasketItem $basketItem, \Bitrix\Sale\Shipment $shipment)
        {
        }
        function setShipmentItemQuantity($needQuantity, \Bitrix\Sale\BasketItem $basketItem, \Bitrix\Sale\Shipment $shipment)
        {
        }
        function updateShipmentNeedQuantityFromSystem($Quantity, \Bitrix\Sale\BasketItem $basketItem, \Bitrix\Sale\Shipment $shipment)
        {
        }
        function updateBasketNeedExternalQuantity($externalQuantity, $availableQuantityByProducts, \Bitrix\Sale\BasketItem $basketItem, \Bitrix\Sale\Shipment $shipment)
        {
        }
        function setDocumentType($operationType)
        {
        }
        function setOperationType($type)
        {
        }
        function setVersion1C($version1C)
        {
        }
        function setXMLDocumentID($xmlid)
        {
        }
        function setOrderIdOriginal($code)
        {
        }
        function getVersion1C()
        {
        }
        function getXMLDocumentID()
        {
        }
        function getOrderIdOriginal()
        {
        }
        function checkConditionForShipmentByBasket(\Bitrix\Sale\BasketItem $basketItem, \Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @return bool|int
         */
        protected static function getDefaultPaySystem()
        {
        }
        function checkPSOnStatusPaymentOrder()
        {
        }
        function checkVersion1C(\Bitrix\Sale\Shipment $shipment)
        {
        }
        function setVersionSchema($versionSchema = \false)
        {
        }
        function setPersonTypesID()
        {
        }
        function setExportInfo()
        {
        }
        function getPersonType($arOrder)
        {
        }
        function getExportInfo($arOrder)
        {
        }
        function prepareOrderFields($arOrder)
        {
        }
        function getOrderTaxList($arOrder)
        {
        }
        function getBasketProperty($item)
        {
        }
        function getOrderProperty($arAgent, $orderFields, $arOrder)
        {
        }
        function getOptionNameByType()
        {
        }
        function getVersionSchema()
        {
        }
        function addNeedModifyItem($type, $id)
        {
        }
        function addModifyItem($type, $id)
        {
        }
        function getProductChangePrice($itemID, $priceNew = \null)
        {
        }
        function getAvailableSystemQuentityProduct(\Bitrix\Sale\BasketItem $basketItem, \Bitrix\Sale\Shipment $shipment)
        {
        }
        function getAvailableQuentityProduct(\Bitrix\Sale\BasketItem $basketItem, \Bitrix\Sale\Shipment $shipment)
        {
        }
        function getUserByProperty($arOrder)
        {
        }
        function elementHandler($path, $attr)
        {
        }
        function existsBasketItem(\Bitrix\Sale\BasketItem $basketItem, array $item = array())
        {
        }
        protected function getXMLStream(\CXMLFileStream $fileStream)
        {
        }
        protected function nodeHandlerPartialVersion($arDocument)
        {
        }
        public function nodeHandlerDefaultModuleOneCCRM(\CDataXML $dataXml)
        {
        }
        public function nodeHandlerDefaultModuleOneC(\CDataXML $dataXml)
        {
        }
        function nodeHandler(\CDataXML $dataXml, \CXMLFileStream $fileStream)
        {
        }
        function ToFloat($str)
        {
        }
        function ToInt($str)
        {
        }
        function collectDocumentInfo($value)
        {
        }
        function collectAgentInfo($data = array())
        {
        }
        function prepareProduct4Basket($itemID, $arItem, $orderId, $orderInfo)
        {
        }
        function documentMustHaveProducts($arDocument)
        {
        }
        function oldSaveOrder($arOrder, $option = array())
        {
        }
        public static function setStatus($id, $statusId, $isInvoice)
        {
        }
    }
    /***********************************************************************/
    /***********  CSaleUserAccount  ****************************************/
    /***********************************************************************/
    class CAllSaleUserAccount
    {
        static function DoPayOrderFromAccount($userId, $currency, $orderId, $orderSum, $arOptions, &$arErrors)
        {
        }
        //********** ADD, UPDATE, DELETE **************//
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Delete($ID)
        {
        }
        //********** LOCK **************//
        function Lock($userID, $payCurrency)
        {
        }
        function UnLock($userID, $payCurrency)
        {
        }
        function UnLockByID($ID)
        {
        }
        //********** ACTIONS **************//
        // Pay money from the local user account. Increase the local user account if necessary.
        // $userID - ID of the user
        // $paySum - payment sum
        // $payCurrency - currency
        // $orderID - ID of order (if known)
        // $useCC - increase the local user account from credit card if necessary (default - True)
        // Return True if the necessary sum withdraw from an account or False in other way
        function Pay($userID, $paySum, $payCurrency, $orderID = 0, $useCC = \true, $paymentId = \null)
        {
        }
        // Pay money from the local user account. If there is not enough money on the local user
        // account then withdraw the max available sum.
        // $userID - ID of the user
        // $paySum - payment sum
        // $payCurrency - currency
        // $orderID - ID of order (if known)
        // Return withdrawn sum or False
        function Withdraw($userID, $paySum, $payCurrency, $orderID = 0)
        {
        }
        // Modify sum of the current local user account.
        // $userID - ID of the user
        // $sum - payment sum
        // $currency - currency
        // $description - reason of modification
        // Return True on success or False in other way
        function UpdateAccount($userID, $sum, $currency, $description = "", $orderID = 0, $notes = "", $paymentId = \null)
        {
        }
        //********** EVENTS **************//
        public static function OnBeforeCurrencyDelete($Currency)
        {
        }
        public static function OnUserDelete($userID)
        {
        }
        public static function OnBeforeUserDelete($userID)
        {
        }
    }
    class CCSVDataSale
    {
        var $sFileName;
        // ïîëíîå èìÿ ôàéëà
        var $sContent;
        // ñîäåðæèìîå ôàéëà
        var $iFileLength;
        // äëèíà ôàéëà
        var $iCurPos = 0;
        // òåêóùàÿ ïîçèöèÿ ïðè Fetch
        var $cFieldsType = "R";
        // òèï ïîëåé: R - ñ ðàçäåëèòåëåì, F - ôèêñèðîâàíîé øèðèíû
        var $cDelimiter = ";";
        // ðàçäåëèòåëü ïîëåé
        var $arWidthMap = array();
        // ìàññèâ êîîðäèíàò ìåòîê ðàçäåëåíèÿ äëÿ ïîëåé ôèêñèðîâàíîé øèðèíû
        var $bFirstHeader = \false;
        // â 1 ñòðîêå çàãîëîâêè ïîëåé
        function CCSVData($fields_type = "R", $first_header = \false)
        {
        }
        function LoadFile($filename)
        {
        }
        function SetFieldsType($fields_type = "R")
        {
        }
        function SetDelimiter($delimiter = ";")
        {
        }
        function SetFirstHeader($first_header = \false)
        {
        }
        function GetFirstHeader()
        {
        }
        function SetWidthMap($arMap)
        {
        }
        function FetchDelimiter()
        {
        }
        function FetchWidth()
        {
        }
        function Fetch()
        {
        }
        function MoveFirst()
        {
        }
        function GetPos()
        {
        }
        function SetPos($iCurPos = 0)
        {
        }
        function SaveFile($filename, $arFields)
        {
        }
    }
    /**
     * Class CSaleYMLocation
     * Mapping yandex locations to bitrix locations
     */
    class CSaleYMLocation
    {
        private $cityNames = \null;
        private $cacheId = "CSaleYMLocations";
        const EXTERNAL_SERVICE_CODE = 'YAMARKET';
        public function __construct()
        {
        }
        /**
         * returns locations data
         */
        private function getData()
        {
        }
        /**
         * Loads data from base
         */
        private function loadDataToCache()
        {
        }
        /**
         * @param $cityName
         * @return int location id
         */
        public function getLocationByCityName($cityName)
        {
        }
        protected function getLocationByExternalIds($yandexLocationsIds)
        {
        }
        protected function extractLocations($yandexLocation)
        {
        }
        public function getLocationId($yandexLocation)
        {
        }
    }
    /***********************************************************************/
    /***********  CSaleAuxiliary  ******************************************/
    /***********************************************************************/
    class CAllSaleAuxiliary
    {
        function PrepareItemMD54Where($val, $key, $operation, $negative, $field, &$arField, &$arFilter)
        {
        }
        //********** CHECK **************//
        function CheckAccess($userID, $itemMD5, $periodLength, $periodType)
        {
        }
        //********** ADD, UPDATE, DELETE **************//
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Delete($ID)
        {
        }
        function DeleteByUserID($userID)
        {
        }
        //********** EVENTS **************//
        function OnUserDelete($userID)
        {
        }
        //********** AGENTS **************//
        function DeleteOldAgent($periodLength, $periodType)
        {
        }
    }
    /** @deprecated */
    class CAllSaleDeliveryHandler
    {
        public static $actions = array(
            "REQUEST_SELF" => 0,
            // Request to delivery company to wait a cargo
            "REQUEST_TAKE" => 1,
        );
        /** public: Initialize
         * includes all delivery_*.php files in /php_interface/include/sale_delivery/ and /modules/sale/delivery/
         * double files with the same name are ignored
         * @deprecated
         */
        public static function Initialize()
        {
        }
        /**
         * private: get all handlers
         * @deprecated
         */
        protected static function __getRegisteredHandlers()
        {
        }
        /**
         * get full list based on FS
         * @deprecated
         */
        public static function GetAdminList($arSort = array("SORT" => "ASC"))
        {
        }
        protected static function isFieldInFilter($fieldName, $filter)
        {
        }
        protected static function getFilterValue($fieldName, $filter)
        {
        }
        public static function isSidNew($sid)
        {
        }
        public static function getIdFromNewSid($sid)
        {
        }
        protected static function convertFilterOldToNew(array $oldFilter)
        {
        }
        protected static function isFieldInFilter2($fieldName, $filter)
        {
        }
        protected static function checkRestrictionFilter(array $restriction, array $filter)
        {
        }
        /**
         * get handlers list based on DB data
         * @deprecated
         */
        public static function GetList($arSort = array("SORT" => "ASC"), $arFilter = array())
        {
        }
        /**
         * get services compability. result - list of delivery profiles;
         * @deprecated
         */
        public static function GetHandlerCompability($arOrder, $arHandler, $SITE_ID = \SITE_ID)
        {
        }
        /**
         * @param $SID
         * @param $profileId
         * @param $arOrder
         * @param bool $siteId
         * @return array|mixed
         * @deprecated
         */
        public static function GetHandlerExtraParams($SID, $profileId, $arOrder, $siteId = \false)
        {
        }
        /**
         * @param $deliveryId
         * @return array|mixed
         * @deprecated
         */
        public static function getActionsList($deliveryId)
        {
        }
        /**
         * @param $deliveryId
         * @param $actionId
         * @param $arOrder
         * @return array|mixed
         * @deprecated
         */
        public static function executeAction($deliveryId, $actionId, $arOrder)
        {
        }
        /**
         * get services data by DB sID
         * @deprecated
         */
        public static function GetBySID($SID, $SITE_ID = \false)
        {
        }
        /** @deprecated */
        public static function CheckFields($arData)
        {
        }
        /**
         * @param $sid
         * @return array|bool
         * @throws \Bitrix\Main\ArgumentException
         * @deprecated
         */
        public static function getServiceParams($sid, $siteId = \false)
        {
        }
        /**
         * @param $deliveryId
         * @param $siteId
         * @param $update
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @deprecated
         */
        protected static function saveRestrictionBySiteId($deliveryId, $siteId, $update)
        {
        }
        /**
         * @param $deliveryId
         * @param array $weightParams
         * @param $update
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @deprecated
         */
        protected static function saveRestrictionByWeight($deliveryId, array $weightParams, $update)
        {
        }
        protected static function saveRestrictionByPublicShow($deliveryId, $publicShow, $update)
        {
        }
        /**
         * @param $deliveryId
         * @param array $priceParams
         * @param $currency
         * @param $update
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @deprecated
         */
        protected static function saveRestrictionByPrice($deliveryId, array $priceParams, $currency, $update)
        {
        }
        /**
         * @param $deliveryId
         * @param array $params
         * @param $update
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @deprecated
         */
        protected static function saveRestrictionByDimensions($deliveryId, array $params, $update)
        {
        }
        /**
         * @param $deliveryId
         * @param array $params
         * @param $update
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @deprecated
         */
        protected static function saveRestrictionByMaxSize($deliveryId, $maxSize, $update)
        {
        }
        /** @deprecated */
        public static function Set($code, $arData, $siteId = \false)
        {
        }
        /** @deprecated */
        public static function Reset($sid)
        {
        }
        /** @deprecated */
        public static function ResetAll()
        {
        }
        /** @deprecated */
        protected static function __executeCalculateEvents($SID, $profile, $arOrder, $arReturn)
        {
        }
        public static function execOldEventWithNewParams(\Bitrix\Main\Event $params)
        {
        }
        /** deprecated */
        public static function CalculateFull($SID, $profile, $arOrder, $currency, $SITE_ID = \false)
        {
        }
        /**
         * @param $STEP
         * @param $SID
         * @param $profile
         * @param $arOrder
         * @param $currency
         * @param bool $TMP
         * @param bool $SITE_ID
         * @return array
         * @deprecated
         */
        public static function Calculate($STEP, $SID, $profile, $arOrder, $currency, $TMP = \false, $SITE_ID = \false)
        {
        }
        /**
         * @param $arOrderDimensions
         * @param $arRestrictDimensions
         * @return bool
         * @deprecated
         */
        public static function checkDimensions($arOrderDimensions, $arRestrictDimensions)
        {
        }
        /**
         * @param $arItems
         * @param $maxDimensionSum
         * @return bool
         * @deprecated
         */
        public static function checkDimensionsSum($arItems, $maxDimensionSum)
        {
        }
        /**
         * @param $arItems
         * @param $maxSize
         * @return bool
         * @deprecated
         */
        public static function checkMaxSize($arItems, $maxSize)
        {
        }
        /**
         * @param $arItem
         * @return bool
         * @deprecated
         */
        private static function isDimensionsExist($arItem)
        {
        }
        /**
         * @return array
         * @deprecated
         */
        public static function getActionsNames()
        {
        }
        /**
         * @return \Bitrix\Sale\Result
         * @throws Exception
         * @throws \Bitrix\Main\SystemException
         */
        public static function convertToNew($renameTable = \false)
        {
        }
        public static function convertToNewAgent($renameTable = \false)
        {
        }
        public static function convertConfigHandlerToSidAgent()
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2016 Bitrix
     */
    class CAdminList
    {
        public const MODE_PAGE = 'normal';
        public const MODE_LIST = 'list';
        public const MODE_ACTION = 'frame';
        public const MODE_EXPORT = 'excel';
        public const MODE_CONFIG = 'settings';
        var $table_id;
        /** @var CAdminSorting */
        var $sort;
        var $aHeaders = array();
        var $aVisibleHeaders = array();
        /** @var CAdminListRow[] */
        var $aRows = array();
        var $aHeader = array();
        var $arVisibleColumns = array();
        var $aFooter = array();
        var $sNavText = '';
        var $arFilterErrors = array();
        var $arUpdateErrors = array();
        var $arUpdateErrorIDs = array();
        var $arGroupErrors = array();
        var $arGroupErrorIDs = array();
        var $arActionSuccess = array();
        var $bEditMode = \false;
        var $bMultipart = \false;
        var $bCanBeEdited = \false;
        var $bCanBeDeleted = \false;
        var $arActions = array();
        var $arActionsParams = array();
        /** @var CAdminContextMenuList */
        var $context = \false;
        var $sContent = \false, $sPrologContent = '', $sEpilogContent = '';
        var $bShowActions;
        var $onLoadScript;
        var $arEditedRows;
        var $isPublicMode = \false;
        private $filter;
        protected $mode = \null;
        /**
         * @param string $table_id
         * @param CAdminSorting|bool $sort
         */
        public function __construct($table_id, $sort = \false)
        {
        }
        /**
         * @deprecated
         * @param string $table_id
         * @param CAdminSorting|bool $sort
         */
        public function CAdminList($table_id, $sort = \false)
        {
        }
        public function getFilter()
        {
        }
        //id, name, content, sort, default
        public function AddHeaders($aParams)
        {
        }
        function ShowSettings($aAllCols, $aCols, $aOptions)
        {
        }
        public function AddVisibleHeaderColumn($id)
        {
        }
        public function GetVisibleHeaderColumns()
        {
        }
        public function AddAdminContextMenu($aContext = array(), $bShowExcel = \true, $bShowSettings = \true)
        {
        }
        public function SetContextMenu(array $menu = [], array $additional = [], array $config = []) : void
        {
        }
        protected function GetSystemContextMenu(array $config = []) : array
        {
        }
        protected function InitContextMenu(array $menu = [], array $additional = []) : void
        {
        }
        /**
         * @param string|int $ID
         * @return bool
         */
        public function IsUpdated($ID)
        {
        }
        /**
         * @return bool
         */
        public function EditAction()
        {
        }
        /**
         * Returns field values in for inline edit grid mode.
         *
         * @return array
         */
        public function GetEditFields() : array
        {
        }
        /**
         * Copy files from uploader to edit fields.
         *
         * @return void
         */
        public function ConvertFilesToEditFields() : void
        {
        }
        /**
         * @return array|false
         */
        public function GroupAction()
        {
        }
        /**
         * Returns true if the user has set the flag "To all" in the list.
         *
         * @return bool
         */
        public function IsGroupActionToAll()
        {
        }
        /**
         * @return void
         */
        protected function PrepareAction()
        {
        }
        /**
         * @return string|null
         */
        public function GetAction()
        {
        }
        /**
         * @return array|null
         */
        protected function GetGroupIds()
        {
        }
        /**
         * @return void
         */
        protected function initMode() : void
        {
        }
        /**
         * @return string
         */
        public function getCurrentMode() : string
        {
        }
        /**
         * @return bool
         */
        public function isPageMode() : bool
        {
        }
        /**
         * @return bool
         */
        public function isExportMode() : bool
        {
        }
        /**
         * @return bool
         */
        public function isAjaxMode() : bool
        {
        }
        /**
         * @return bool
         */
        public function isConfigMode() : bool
        {
        }
        public function ActionRedirect($url)
        {
        }
        public function ActionAjaxReload($url)
        {
        }
        public function ActionPost($url = \false, $action_name = \false, $action_value = 'Y')
        {
        }
        public function ActionDoGroup($id, $action_id, $add_params = '')
        {
        }
        public function InitFilter($arFilterFields)
        {
        }
        public function IsDefaultFilter()
        {
        }
        public function &AddRow($id = \false, $arRes = array(), $link = \false, $title = \false)
        {
        }
        public function AddFooter($aFooter)
        {
        }
        public function NavText($sNavText)
        {
        }
        /**
         * @param \Bitrix\Main\UI\PageNavigation $nav
         * @param string $title
         * @param bool $showAllways
         * @param bool $post
         */
        public function setNavigation(\Bitrix\Main\UI\PageNavigation $nav, $title, $showAllways = \true, $post = \false)
        {
        }
        public function Display()
        {
        }
        public function DisplayExcel()
        {
        }
        public function AddGroupActionTable($arActions, $arParams = array())
        {
        }
        public function ShowActionTable()
        {
        }
        public function DisplayList($arParams = array())
        {
        }
        public function AddUpdateError($strError, $id = \false)
        {
        }
        public function AddGroupError($strError, $id = \false)
        {
        }
        public function AddActionSuccessMessage($strMessage)
        {
        }
        public function AddFilterError($strError)
        {
        }
        public function BeginPrologContent()
        {
        }
        public function EndPrologContent()
        {
        }
        public function BeginEpilogContent()
        {
        }
        public function EndEpilogContent()
        {
        }
        public function BeginCustomContent()
        {
        }
        public function EndCustomContent()
        {
        }
        public function CreateChain()
        {
        }
        /**
         * @param CAdminChain $chain
         */
        public function ShowChain($chain)
        {
        }
        public function CheckListMode()
        {
        }
        protected function DisplayEditButtons() : void
        {
        }
    }
    class CAdminSaleList extends \CAdminList
    {
        public function AddAdminContextMenu($aContext = array(), $bShowExcel = \true, $bShowSettings = \true, $additionalMenu = array())
        {
        }
    }
    /**
     * Yandex market purchase processing
     */
    class CSaleYMHandler
    {
        const JSON = 0;
        const XML = 1;
        const ERROR_STATUS_400 = "400 Bad Request";
        const ERROR_STATUS_401 = "401 Unauthorized";
        const ERROR_STATUS_403 = "403 Forbidden";
        const ERROR_STATUS_404 = "404 Not Found";
        const ERROR_STATUS_405 = "405 Method Not Allowed";
        const ERROR_STATUS_415 = "415 Unsupported Media Type";
        const ERROR_STATUS_420 = "420 Enhance Your Calm";
        const ERROR_STATUS_500 = "500 Internal Server Error";
        const ERROR_STATUS_503 = "503 Service Unavailable";
        const DATE_FORMAT = "d-m-Y";
        const XML_ID_PREFIX = "ymarket_";
        const TRADING_PLATFORM_CODE = "ymarket";
        protected $communicationFormat = self::JSON;
        protected $siteId = "";
        protected $authType = "HEADER";
        // or URL
        const LOG_LEVEL_DISABLE = 0;
        const LOG_LEVEL_ERROR = 10;
        const LOG_LEVEL_INFO = 20;
        const LOG_LEVEL_DEBUG = 30;
        const NOT_ACCEPT_OLD_PRICE = 0;
        const ACCEPT_OLD_PRICE = 1;
        protected $logLevel = self::LOG_LEVEL_ERROR;
        protected $oAuthToken = \null;
        protected $oAuthClientId = \null;
        protected $oAuthLogin = \null;
        protected $mapDelivery = array();
        protected $outlets = array();
        protected $mapPaySystems = array();
        protected $personTypeId = \null;
        protected $campaignId = \null;
        protected $yandexApiUrl = \null;
        protected $yandexToken = \null;
        protected $orderProps = array("FIO" => "FIO", "EMAIL" => "EMAIL", "PHONE" => "PHONE", "ZIP" => "ZIP", "CITY" => "CITY", "LOCATION" => "LOCATION", "ADDRESS" => "ADDRESS");
        protected $locationMapper = \null;
        protected $active = \true;
        protected $isAcceptOldPrice = self::NOT_ACCEPT_OLD_PRICE;
        protected $defaultDeliveryPeriodFrom = 7;
        //days
        protected $defaultDeliveryPeriodTo = 21;
        protected $deliveryToPaysystem = array();
        protected static $isYandexRequest = \false;
        /**
         * CSaleYMHandler constructor.
         * @param array $arParams
         */
        public function __construct($arParams = array())
        {
        }
        public static function isActive()
        {
        }
        /**
         * @param bool $activity Set or unset activity
         * @return \Bitrix\Main\Entity\UpdateResult|bool
         */
        public static function setActivity($activity)
        {
        }
        /**
         * @param string $siteId
         * @return bool
         */
        protected function checkSiteId($siteId)
        {
        }
        /**
         * @param array $arParams
         * @return mixed|string
         */
        protected function getSiteId($arParams)
        {
        }
        /**
         * Returns Yandex-Market settings
         * @param bool $cached Return cached or ont value
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getSettings($cached = \true)
        {
        }
        /**
         * Returns yandex-market settings for concrete site
         * @param $siteId string Site idenifier
         * @param bool $cached Return cached or ont value
         * @return array
         */
        public static function getSettingsBySiteId($siteId, $cached = \true)
        {
        }
        /**
         * Saves settings
         * @param $arSettings array Settings array to save
         * @return bool
         */
        public static function saveSettings($arSettings)
        {
        }
        /**
         * @param int $period
         * @param string $type
         * @return DateInterval
         */
        public function getTimeInterval($period, $type)
        {
        }
        /**
         * @param DateTime $today
         * @param DateTime $nextDate
         * @return bool
         */
        protected function checkTimeInterval($today, $nextDate)
        {
        }
        /**
         * @param int $from
         * @param int $to
         * @param string $type
         * @return array
         */
        protected function getDeliveryDates($from, $to, $type)
        {
        }
        /**
         * @return array
         */
        protected function getPaymentMethods()
        {
        }
        /**
         * @param array $arPostData
         * @return bool
         */
        protected function checkCartStructure($arPostData)
        {
        }
        /**
         * POST /cart
         * max timeout 5,5s.
         * @param array $arPostData
         * @return array
         * @throws \Bitrix\Main\ArgumentNullException
         */
        protected function processCartRequest($arPostData)
        {
        }
        /**
         * @param string $eventName
         * @param array $params
         * @return mixed
         */
        protected function processCustomEvents($eventName, array $params)
        {
        }
        /**
         * @param array $arPostData
         * @return bool
         */
        protected function checkOrderAcceptStructure($arPostData)
        {
        }
        /**
         * @param array $buyer
         * @param array $address
         * @param array $region
         * @return bool|int|string
         */
        protected function createUser($buyer, $address, $region)
        {
        }
        /**
         * @param array $address
         * @param array $buyer
         * @param int $psId
         * @param int $deliveryId
         * @param int $locationId
         * @return array
         */
        protected function makeAdditionalOrderProps($address, $buyer, $psId, $deliveryId, $locationId)
        {
        }
        protected function createAddressString($address)
        {
        }
        /**
         * POST /order/accept timeout 10s
         * @param array $arPostData
         * @return array
         * @throws Exception
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         */
        protected function processOrderAcceptRequest($arPostData)
        {
        }
        protected function checkBasketPrice(array $items, \Bitrix\Sale\Order $order)
        {
        }
        protected function setBasketOldPrice(array $items, \Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param array $arPostData
         * @return bool
         */
        protected function checkOrderStatusRequest($arPostData)
        {
        }
        /**
         * POST /order/status timeout 10s
         *
         * @param array $arPostData
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        protected function processOrderStatusRequest($arPostData)
        {
        }
        /**
         * @param string $postData
         * @return array
         */
        protected function extractPostData($postData)
        {
        }
        /**
         * @param array $arData
         * @return string
         */
        protected function prepareResult($arData)
        {
        }
        /**
         * Let's check authorization,
         * comparing incoming token with token stored in settings.
         * @return bool
         */
        public function checkAuth()
        {
        }
        /**
         * @param string $reqObject
         * @param string $method
         * @param string $postData
         * @return string
         */
        public function processRequest($reqObject, $method, $postData)
        {
        }
        /**
         * @param string $status
         * @param string $message
         * @return array
         */
        protected function processError($status = "", $message = "")
        {
        }
        /**
         * @param int $orderId
         * @param string $status
         * @param string $substatus
         * @return bool
         */
        public function sendStatus($orderId, $status, $substatus = \false)
        {
        }
        /**
         * @param string $yandexOrderId
         * @param string $yandexStatus
         * @param string $substatus
         * @param string $siteId
         * @return string
         */
        public static function sendStatusAgent($yandexOrderId, $yandexStatus, $substatus, $siteId)
        {
        }
        /**
         * @param int $orderId
         * @return array|false
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getOrderInfo($orderId)
        {
        }
        /**
         * @param int $orderId
         * @return bool
         */
        public static function isOrderFromYandex($orderId)
        {
        }
        /**
         * @param \Bitrix\Main\Event $params
         */
        public static function onSaleStatusOrderChange(\Bitrix\Main\Event $params)
        {
        }
        /**
         * @param \Bitrix\Main\Event $params
         */
        public static function onSaleOrderCanceled(\Bitrix\Main\Event $params)
        {
        }
        /**
         * @param \Bitrix\Main\Event $params
         */
        public static function onSaleShipmentDelivery(\Bitrix\Main\Event $params)
        {
        }
        /**
         * @param \Bitrix\Main\Event $params
         */
        public static function onSaleOrderPaid(\Bitrix\Main\Event $params)
        {
        }
        /**
         * @param \Bitrix\Main\Event $params
         */
        public static function onShipmentDeducted(\Bitrix\Main\Event $params)
        {
        }
        /**
         * Executes when order's status was changed in shop
         * event OnSaleCancelOrder
         * @param int $orderId Identifier
         * @param string $status New status
         * @param string $substatus Substatus.
         * @return bool
         */
        public function onSaleStatusOrder($orderId, $status, $substatus = \false)
        {
        }
        public static function getOrderSubstatuses()
        {
        }
        public static function getCancelReasonsAsSelect($name, $val = \false, $id = \false)
        {
        }
        public static function getCancelReasonsAsRadio($name, $id = \false, $val = \false)
        {
        }
        public function OnEventLogGetAuditTypes()
        {
        }
        /**
         * @param int $level
         * @param string $type
         * @param string $itemId
         * @param string $description
         * @return bool
         */
        protected function log($level, $type, $itemId, $description)
        {
        }
        /**
         * @param array $order
         * @param string $yandexStatus
         * @param string $cancelReason
         * @return bool|int
         */
        protected function mapYandexStatusToOrder($order, $yandexStatus, $cancelReason = "")
        {
        }
        /**
         * Starts exchange information between Yandex-market and shop
         * @return bool
         */
        public static function eventsStart()
        {
        }
        /**
         * Stops exchange information between Yandex-market and shop
         * @return bool
         */
        public static function eventsStop()
        {
        }
        /**
         * Installs service
         * @return bool
         */
        public static function install()
        {
        }
        /**
         * Uninstalls service
         * @param bool $deleteRecord Delete, or not table record about this service
         */
        public static function unInstall($deleteRecord = \true)
        {
        }
        /**
         * @param int $newOrderId
         * @param $buyer
         */
        protected function sendEmailNewOrder($newOrderId, $buyer)
        {
        }
        /**
         * @param string $code
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         */
        protected function notifyAdmin($code)
        {
        }
        /**
         * @return array
         */
        public static function getExistPaymentMethods()
        {
        }
        /** @deprecated */
        public static function onSaleCancelOrder($orderId, $value, $description)
        {
        }
        /** @deprecated */
        public static function onSaleDeliveryOrder($orderId, $value)
        {
        }
        /** @deprecated */
        public static function onSalePayOrder($orderId, $value)
        {
        }
        /** @deprecated */
        public static function onSaleDeductOrder($orderId, $value)
        {
        }
        /** @deprecated */
        protected function getDeliveryOptions($delivery, $price, $weight = 0)
        {
        }
        /** @deprecated */
        protected function getLocationByCityName($cityName)
        {
        }
        /**
         * Moves settings from options to DB
         * @deprecated
         */
        public static function settingsConverter()
        {
        }
        /**
         * Take out correnspondence to
         * @return string
         * @deprecated
         */
        public static function takeOutOrdersToCorrespondentTable()
        {
        }
        /** @internal  */
        public static function convertDeliveryAndPSIds()
        {
        }
        /**
         * @param string $yandexOrderId
         * @return \Bitrix\Sale\Order|null
         */
        public function loadOrderByYandexOrderId($yandexOrderId)
        {
        }
        /**
         * Returns true if it is yandex request
         * @return bool
         */
        public static function isYandexRequest()
        {
        }
        /**
         * @param Sale\Internals\Entity $entity
         * @return bool
         */
        protected static function isOrderEntity(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
    }
    class CAllSaleBasket
    {
        const TYPE_SET = 1;
        protected static $currencySiteList = array();
        protected static $currencyList = array();
        /**
         * Checks if the basket item has product provider class implementing IBXSaleProductProvider interface
         *
         * @param array $arBasketItem - array of basket item fields
         * @return mixed
         */
        public static function GetProductProvider($arBasketItem)
        {
        }
        /**
         * Removes old product subscription
         *
         * @param string $LID - site for cleaning
         * @return bool
         */
        function ClearProductSubscribe($LID)
        {
        }
        /**
         * Sends product subscription letter
         *
         * @param integer $ID - code product
         * @param string $MODULE - module product
         * @return bool
         */
        public static function ProductSubscribe($ID, $MODULE)
        {
        }
        public static function DoGetUserShoppingCart($siteId, $userId, $shoppingCart, &$arErrors, $arCoupons = array(), $orderId = 0, $enableCustomCurrency = \false)
        {
        }
        /**
         * Changes product quantity in the catalog.
         * Used in the DoSaveOrderBasket to actualize basket items quantity
         * after some operations with the order are made in the order_new form
         *
         * Depending on the state of the order (reserved/deducted)
         * and the state of the product (reserved/deducted) calls appropriate provider methods
         *
         * If the quantity is 0 and CHECK_QUANTITY is N, this method is used only to call OrderProduct method to actualize coupon data
         *
         * @param array $arBasketItem - basket item data array
         * @param int $deltaQuantity - quantity to be changed. Can be zero, in this case CHECK_QUANTITY should be N
         * @param bool $isOrderReserved - order reservation flag
         * @param bool $isOrderDeducted - order deduction flag
         * @param array $arStoreBarcodeOrderFormData - array of barcode and stores from order_new form to be used for deduction
         * @param array $arAdditionalParams - user id, site id, check_quantity flag
         * @return bool
         */
        public static function DoChangeProductQuantity($arBasketItem, $deltaQuantity, $isOrderReserved = \false, $isOrderDeducted = \false, $arStoreBarcodeOrderFormData = array(), $arAdditionalParams = array())
        {
        }
        /**
         * Updates information about basket products after changes have been made in the order_new form
         * (saves newly added basket items, changes their quantity, saves barcodes etc)
         *
         * @param int $orderId - order ID
         * @param string $siteId - site ID
         * @param bool $userId - user ID
         * @param array $arShoppingCart - array of basket items
         * @param array $arErrors
         * @param array $arCoupons
         * @param array $arStoreBarcodeOrderFormData - array of stores and barcodes for deduction (from order_new form)
         * @param bool $bSaveBarcodes - flat to save given barcode data. Used if the order is already deducted or at least has saved other barcodes
         * @return bool
         */
        public static function DoSaveOrderBasket($orderId, $siteId, $userId, &$arShoppingCart, &$arErrors, $arCoupons = array(), $arStoreBarcodeOrderFormData = array(), $bSaveBarcodes = \false)
        {
        }
        //************** ADD, UPDATE, DELETE ********************//
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function _Update($ID, &$arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        //************** BASKET USER ********************//
        function Init($bVar = \false, $bSkipFUserInit = \false)
        {
        }
        public static function GetBasketUserID($bSkipFUserInit = \false)
        {
        }
        //************** SELECT ********************//
        function GetByID($ID)
        {
        }
        //************** CALLBACK FUNCTIONS ********************//
        static function ExecuteCallbackFunction($callbackFunc = "", $module = "", $productID = 0)
        {
        }
        public function ReReadPrice($callbackFunc = "", $module = "", $productID = 0, $quantity = 0, $renewal = "N", $productProvider = "")
        {
        }
        function OnOrderProduct($callbackFunc = "", $module = "", $productID = 0, $quantity = 0, $productProvider = "")
        {
        }
        public function UpdatePrice($ID, $callbackFunc = '', $module = '', $productID = 0, $quantity = 0, $renewal = 'N', $productProvider = '', $notes = '')
        {
        }
        /**
         * @deprecated deprecated since sale 14.0.6
         * @see CSaleBasket::DoSaveOrderBasket
         *
         * @param int $orderID
         * @param int $fuserID
         * @param mixed|string $strLang
         * @param bool $arDiscounts
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function OrderBasket($orderID, $fuserID = 0, $strLang = \SITE_ID, $arDiscounts = \False)
        {
        }
        function OrderPayment($orderID, $bPaid, $recurringID = 0)
        {
        }
        function OrderDelivery($orderID, $bPaid, $recurringID = 0)
        {
        }
        function OrderCanceled($orderID, $bCancel)
        {
        }
        /**
         * Method is called to reserve all products in the order basket
         *
         * @param int $orderID
         * @param bool $bUndoReservation
         * @return mixed array
         */
        function OrderReservation($orderID, $bUndoReservation = \false)
        {
        }
        /**
         * Method is called to reserve one product in the basket
         * (it's a wrapper around product provider ReserveProduct method to use for the single product)
         *
         * @param int $basketID
         * @param float $deltaQuantity - quantity to reserve
         * @param bool $isOrderDeducted
         * @return mixed array
         */
        function ReserveBasketProduct($basketID, $deltaQuantity, $isOrderDeducted = \false)
        {
        }
        /**
         * Method is called to deduct one product in the basket
         * (it's a wrapper around product provider DeductProduct method to use for the single product)
         *
         * @param int $basketID
         * @param float $deltaQuantity - quantity to reserve
         * @param array $arStoreBarcodeData
         * @return mixed array
         */
        function DeductBasketProduct($basketID, $deltaQuantity, $arStoreBarcodeData = array())
        {
        }
        /**
         * Method is called to deduct all products of the order or undo deduction
         *
         * @param int $orderID
         * @param bool $bUndoDeduction
         * @param int $recurringID
         * @param bool $bAutoDeduction
         * @param array $arStoreBarcodeOrderFormData
         * @return mixed array
         */
        function OrderDeduction($orderID, $bUndoDeduction = \false, $recurringID = 0, $bAutoDeduction = \true, $arStoreBarcodeOrderFormData = array())
        {
        }
        function TransferBasket($FROM_FUSER_ID, $TO_FUSER_ID)
        {
        }
        public static function UpdateBasketPrices($fuserID, $siteID, array $options = array())
        {
        }
        /**
         * @internal
         * @param $fuserID
         * @param $siteID
         * @param array $options
         *
         * @return Sale\Result
         */
        public static function refreshFUserBasket($fuserID, $siteID, array $options = array())
        {
        }
        /**
         * @param array $newProperties
         * @param array $oldProperties
         * @return bool|null
         */
        public static function compareBasketProps($newProperties, $oldProperties)
        {
        }
        /**
         * @internal
         * @return array
         */
        public static function getRoundFields()
        {
        }
    }
    class CAllSaleUser
    {
        /**
         * Creates new anonymous user with e-mail 'anonymous_some_number@example.com' and returns his ID
         * Used mainly in CRM
         *
         * @return int - new user ID or ID of already existing anonymous user, 0 if error
         */
        public static function GetAnonymousUserID()
        {
        }
        public static function DoAutoRegisterUser($autoEmail, $payerName, $siteId, &$arErrors, $arOtherFields = \null)
        {
        }
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function GetID($bSkipFUserInit = \false)
        {
        }
        function Update($ID, $allowUpdate = \true)
        {
        }
        function _Update($ID, $arFields)
        {
        }
        function GetList($arFilter)
        {
        }
        function Delete($ID)
        {
        }
        function OnUserLogin($new_user_id, array $params = array())
        {
        }
        public static function UpdateSessionSaleUserID()
        {
        }
        public static function getFUserCode()
        {
        }
        function OnUserLogout($userID)
        {
        }
        function DeleteOldAgent($nDays, $speed = 0)
        {
        }
        function OnUserDelete($userID)
        {
        }
    }
    class CSaleDiscountConvert
    {
        public static $intConvertPerStep = 0;
        public static $intNextConvertPerStep = 0;
        public static $intConverted = 0;
        public static $intLastConvertID = 0;
        public static $boolEmptyList = \false;
        public static $intErrors = 0;
        public static $arErrors = array();
        public static $strSessID = '';
        public function __construct()
        {
        }
        public static function InitStep()
        {
        }
        public static function SaveStep()
        {
        }
        public static function GetErrors()
        {
        }
        public static function GetCountOld()
        {
        }
        public static function GetCount()
        {
        }
        public static function ConvertDiscount($intStep = 100, $intMaxExecutionTime = 15)
        {
        }
    }
    class CAllSaleTax
    {
        public static function DoProcessOrderBasket(&$arOrder, $arOptions, &$arErrors)
        {
        }
        /**
         * @internal
         * @param $arOrder
         * @param $arOptions
         * @param $arErrors
         */
        public static function calculateTax(&$arOrder, $arOptions, &$arErrors)
        {
        }
        public static function DoProcessOrderDelivery(&$arOrder, $arOptions, &$arErrors)
        {
        }
        /**
         * @internal
         * @param $arOrder
         * @param $arOptions
         * @param $arErrors
         */
        public static function calculateDeliveryTax(&$arOrder, $arOptions, &$arErrors)
        {
        }
        static function DoSaveOrderTax($orderId, $taxList, &$arErrors)
        {
        }
        function CheckFields($ACTION, &$arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function Delete($ID)
        {
        }
        function GetByID($ID)
        {
        }
        function GetList($arOrder = array("NAME" => "ASC"), $arFilter = array())
        {
        }
        function GetExemptList($arFilter = array())
        {
        }
        function AddExempt($arFields)
        {
        }
        function DeleteExempt($arFields)
        {
        }
        /**
         * @return string
         */
        protected static function getOrderTaxEntityName()
        {
        }
        /**
         * @return string
         */
        protected static function getHistoryEntityName()
        {
        }
    }
    class CAllSaleRecurring
    {
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function Delete($ID)
        {
        }
        function ExecuteCallbackFunction($callbackFunc = "", $module = "", $productID = 0)
        {
        }
        function CheckRecurring()
        {
        }
        function NextPayment($ID)
        {
        }
        function CancelRecurring($ID, $val, $description = "")
        {
        }
        function AgentCheckRecurring()
        {
        }
        function OnCurrencyDelete($Currency)
        {
        }
        function OnUserDelete($UserID)
        {
        }
    }
    /** @deprecated */
    class CSaleStatus
    {
        public static function GetByID($statusId, $languageId = \LANGUAGE_ID, $type = \null)
        {
        }
        static function GetLangByID($statusId, $languageId = \LANGUAGE_ID)
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return CDBResult|int
         */
        static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        /*
         * For modern api see: Bitrix\Sale\OrderStatus and Bitrix\Sale\DeliveryStatus
         */
        static function GetPermissionsList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        private static $statusFields, $langFields, $taskFields;
        function CheckFields($ACTION, &$arFields, $statusId = '')
        {
        }
        private static function addLanguagesBy($statusId, array $rows)
        {
        }
        private static function addTasksBy($statusId, array $rows)
        {
        }
        function Add($arFields)
        {
        }
        function Update($statusId, $arFields)
        {
        }
        function Delete($statusId)
        {
        }
        function CreateMailTemplate($ID)
        {
        }
    }
}
namespace Bitrix\Sale\Compatible {
    interface FetchAdapter
    {
        public function adapt(array $row);
    }
}
namespace {
    /** @deprecated */
    final class CSaleStatusAdapter implements \Bitrix\Sale\Compatible\FetchAdapter
    {
        // M I G R A T I O N ///////////////////////////////////////////////////////////////////////////////////////////////
        public static function perms2opers()
        {
        }
        private static function field($name, array $field)
        {
        }
        public static function migrate()
        {
        }
        public static function getTaskId(array $data, array $permissions, array &$tasks)
        {
        }
        public static function addTask(array $field, array $permissions)
        {
        }
        // A D A P T E R ///////////////////////////////////////////////////////////////////////////////////////////////////
        public static function permissions()
        {
        }
        public static function addFieldsTo(array &$fields, $statusIdName, $prefix)
        {
        }
        public static function permExpression($taskIdName, $operationId)
        {
        }
        public static function addAliasesTo(\Bitrix\Sale\Compatible\AliasedQuery $query, $taskIdName)
        {
        }
        public static function adaptResult(\Bitrix\Sale\Compatible\CDBResult $result, \Bitrix\Sale\Compatible\OrderQuery $query, $taskIdName)
        {
        }
        /** Get map of: task id => array of operations ids
         */
        public static function getTasksOperations()
        {
        }
        // I N S T A N C E /////////////////////////////////////////////////////////////////////////////////////////////////
        private $select, $tasks;
        private function __construct(array $select)
        {
        }
        public function adapt(array $row)
        {
        }
    }
    class CAllSaleOrderTax
    {
        public static function CheckFields($ACTION, &$arFields)
        {
        }
        protected static function isOrderExists($id)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function DeleteEx($ORDER_ID)
        {
        }
        public static function GetByID($ID)
        {
        }
        // The function does not handle fixed-rate taxes. Only with interest!
        // any tax returns for the price
        // the second argument ($ arTaxList [] ["TAX_VAL"]) returns the value of the tax for that price
        function CountTaxes($Price, &$arTaxList, $DefCurrency)
        {
        }
        /**
         * @return string
         */
        protected static function getTableName()
        {
        }
    }
    abstract class CReportHelper
    {
        const UF_DATETIME_SHORT_POSTFIX = '_DTSHORT';
        const UF_TEXT_TRIM_POSTFIX = '_TRIMTX';
        const UF_BOOLEAN_POSTFIX = '_BLINL';
        const UF_MONEY_NUMBER_POSTFIX = '_MNNUMB_FLTR';
        const UF_MONEY_CURRENCY_POSTFIX = '_MNCRCY_FLTR';
        protected static $userNameFormat = \null;
        protected static $arUFId = \null;
        protected static $ufInfo = \null;
        protected static $ufEnumerations = \null;
        protected static $ufFiles = array();
        protected static $ufEmployees = array();
        protected static $ufDiskFiles = array();
        protected static $ufCrmElements = array();
        protected static $ufCrmStatuses = array();
        protected static $ufIblockElements = array();
        protected static $ufIblockSections = array();
        public static function getEntityName()
        {
        }
        public static function getOwnerId()
        {
        }
        public static function getColumnList()
        {
        }
        public static function getAlternatePhrasesOfColumns()
        {
        }
        public static function getDefaultColumns()
        {
        }
        public static function getPeriodFilter($date_from, $date_to)
        {
        }
        protected static function prepareUFInfo()
        {
        }
        public static function &getUFInfo()
        {
        }
        protected static function prepareUFEnumerations($usedUFMap = \null)
        {
        }
        public static function &getUFEnumerations($usedUFMap = \null)
        {
        }
        public static function detectUserField($field)
        {
        }
        public static function getUserFieldDataType($arUF)
        {
        }
        public static function getFieldDataType($field)
        {
        }
        public static function getUserFieldEnumerationValue($valueKey, $ufInfo)
        {
        }
        public static function getUserFieldFileValue($valueKey, $ufInfo)
        {
        }
        public static function getUserFieldFileValueForChart($valueKey, $ufInfo)
        {
        }
        public static function getUserFieldDiskFileValue($valueKey, $ufInfo)
        {
        }
        public static function getUserFieldDiskFileValueForChart($valueKey, $ufInfo)
        {
        }
        public static function getUserFieldEmployeeValue($valueKey, $ufInfo)
        {
        }
        public static function getUserFieldEmployeeValueForChart($valueKey, $ufInfo)
        {
        }
        public static function getUserFieldCrmValue($valueKey, $ufInfo)
        {
        }
        public static function getUserFieldCrmValueForChart($valueKey, $ufInfo)
        {
        }
        public static function getUserFieldCrmStatusValue($valueKey, $ufInfo)
        {
        }
        public static function getUserFieldIblockElementValue($valueKey, $ufInfo)
        {
        }
        public static function getUserFieldIblockElementValueForChart($valueKey, $ufInfo)
        {
        }
        public static function getUserFieldIblockSectionValue($valueKey, $ufInfo)
        {
        }
        public static function getUserFieldIblockSectionValueForChart($valueKey, $ufInfo)
        {
        }
        public static function getUserFieldMoneyValue($valueKey, $ufInfo)
        {
        }
        public static function getUserFieldMoneyValueForChart($valueKey, $ufInfo)
        {
        }
        public static function setRuntimeFields(\Bitrix\Main\Entity\Base $entity, $sqlTimeInterval)
        {
        }
        public static function getCustomColumnTypes()
        {
        }
        public static function getGrcColumns()
        {
        }
        public static function getCalcVariations()
        {
        }
        public static function getCompareVariations()
        {
        }
        public static function getFiltrableColumnGroups()
        {
        }
        public static function buildHTMLSelectTreePopup($tree, $withReferencesChoose = \false, $level = 0)
        {
        }
        public static function buildSelectTreePopupElelemnt($humanTitle, $fullHumanTitle, $fieldDefinition, $fieldType, $ufInfo = array())
        {
        }
        public static function getCustomSelectFields($select, $fList)
        {
        }
        public static function fillFilterReferenceColumns(&$filters, &$fieldList)
        {
        }
        public static function fillFilterReferenceColumn(&$filterElement, \Bitrix\Main\Entity\ReferenceField $field)
        {
        }
        public static function fillFilterUFColumns(&$filters, &$fieldList)
        {
        }
        public static function fillFilterUFColumn(&$filterElement, $field, $ufInfo)
        {
        }
        public static function beforeFilterBackReferenceRewrite(&$filter, $viewColumns)
        {
        }
        public static function getEntityFilterPrimaryFieldName($fElem)
        {
        }
        public static function confirmFilterBackReferenceRewrite($fElem, $chain)
        {
        }
        public static function confirmSelectBackReferenceRewrite($elem, $chain)
        {
        }
        public static function beforeViewDataQuery(&$select, &$filter, &$group, &$order, &$limit, &$options, &$runtime = \null)
        {
        }
        public static function rewriteResultRowValues(&$row, &$columnInfo)
        {
        }
        public static function collectUFValues($rows, $columnInfo, $total)
        {
        }
        public static function formatResults(&$rows, &$columnInfo, $total)
        {
        }
        public static function formatResultValue($k, &$v, &$row, &$cInfo, $total, &$customChartValue = \null)
        {
        }
        public static function formatResultsTotal(&$total, &$columnInfo, &$customChartTotal = \null)
        {
        }
        public static function getDefaultElemHref($elem, $fList)
        {
        }
        public static function getDefaultReports()
        {
        }
        public static function getFirstVersion()
        {
        }
        public static function getCurrentVersion()
        {
        }
        public static function setUserNameFormat($userNameFormat)
        {
        }
        public static function getUserNameFormat()
        {
        }
        public static function renderUserSearch($id, $searchInputId, $dataInputId, $componentName, $siteId = '', $nameFormat = '', $delay = 0)
        {
        }
    }
    abstract class CBaseSaleReportHelper extends \CReportHelper
    {
        // names of base entities for report construction (name with 0 index is default)
        private static $owners = array();
        private static $fInit = \false;
        private static $fOwnersInit = \false;
        protected static $fDecimalQuant = \false;
        protected static $iblockSite = array();
        protected static $sitelist = array();
        protected static $defaultSiteId = '';
        protected static $siteCookieId = '';
        protected static $statuslist = array();
        protected static $paySystemList = array();
        protected static $deliveryList = array();
        protected static $catalogSections = array();
        protected static $catalogs = array();
        protected static $productStores = array();
        protected static $genders = array();
        protected static $personTypes = array();
        protected static $weightOptions = array();
        protected static $priceTypes = array();
        protected static $bUsePriceTypesColumns = \false;
        protected static $currencies = array();
        protected static $reportCurrencyId = \null;
        protected static $siteCurrencyId = '';
        private static function localUpdate_17_5_0()
        {
        }
        private static function localUpdate()
        {
        }
        public static function init()
        {
        }
        public static function isInitialized()
        {
        }
        public static function initOwners()
        {
        }
        public static function getSiteList()
        {
        }
        public static function getWeightOptions()
        {
        }
        public static function getPriceTypes()
        {
        }
        public static function setSelectedPriceTypes($arSelected)
        {
        }
        public static function getCurrencies()
        {
        }
        public static function setSelectedCurrency($currencyId)
        {
        }
        public static function setSiteCurrencyId($currencyId)
        {
        }
        public static function getSiteCurrencyId()
        {
        }
        public static function getReportCurrencyId()
        {
        }
        public static function getSiteCookieId()
        {
        }
        public static function getStatusList()
        {
        }
        public static function getGenders()
        {
        }
        public static function getPersonTypes()
        {
        }
        public static function getDefaultSiteId()
        {
        }
        public static function isCatalogCorrespondsDefSite($catalogId)
        {
        }
        public static function getDefaultSiteWeightUnits()
        {
        }
        public static function getDefaultSiteWeightDivider()
        {
        }
        public static function setDefaultSiteId($siteId)
        {
        }
        public static function getPaySystemList()
        {
        }
        public static function getDeliveryList()
        {
        }
        protected static function addOwner($ownerName)
        {
        }
        public static function getOwners()
        {
        }
        public static function getCatalogSections()
        {
        }
        public static function getProductStores()
        {
        }
        public static function getHelperByOwner($ownerId)
        {
        }
        public static function getDefaultReports()
        {
        }
        public static function getCurrentVersion()
        {
        }
        public static function getFirstVersion()
        {
        }
        public static function getAjaxResponse($arRequestData)
        {
        }
        public static function getSectionsSelectHTMLOptions()
        {
        }
        public static function calculateInReportCurrency($value)
        {
        }
    }
    class CSaleReportSaleOrderHelper extends \CBaseSaleReportHelper
    {
        private static $monetaryFields = array('TAX_VALUE', 'PRICE_DELIVERY', 'DISCOUNT_ALL', 'PRICE', 'SUM_PAID_FORREP', 'PAYMENT_ORDER_SUM');
        private static $goodsQuantityFields = array('PRODUCTS_QUANT');
        private static $withoutTotalFields = array('PERSON_TYPE_ID');
        private static $userNotAuthNameFields = array();
        public static function getEntityName()
        {
        }
        public static function getOwnerId()
        {
        }
        public static function getColumnList()
        {
        }
        public static function getDefaultColumns()
        {
        }
        public static function getCalcVariations()
        {
        }
        public static function getCompareVariations()
        {
        }
        public static function getPeriodFilter($date_from, $date_to)
        {
        }
        public static function fillFilterReferenceColumn(&$filterElement, \Bitrix\Main\Entity\ReferenceField $field)
        {
        }
        /* remove it when PHP 5.3 available */
        public static function formatResults(&$rows, &$columnInfo, $total)
        {
        }
        /* \remove it */
        public static function formatResultValue($k, &$v, &$row, &$cInfo, $total, &$customChartValue = \null)
        {
        }
        public static function formatResultGroupingTotal($params)
        {
        }
        public static function formatResultsTotal(&$total, &$columnInfo, &$bFormatOnly = \null)
        {
        }
        public static function getDefaultElemHref($elem, $fList)
        {
        }
    }
    class CSaleReportUserHelper extends \CBaseSaleReportHelper
    {
        private static $monetaryFields = array(
            'DISCOUNT_ALL',
            'PRICE',
            'SUM_PAID_FORREP',
            // Order fields
            'TAX_VALUE',
            'PRICE_DELIVERY',
            'DISCOUNT_ALL',
            'PRICE',
            'SUM_PAID_FORREP',
        );
        private static $goodsQuantityFields = array(
            'SALE_ORDER_USER_PRODUCTS_QUANT',
            // Order fields
            'PRODUCTS_QUANT',
        );
        private static $withoutTotalFields = array(
            // Order fields
            'PERSON_TYPE_ID',
        );
        private static $userNotAuthNameFields = array();
        public static function getEntityName()
        {
        }
        public static function getOwnerId()
        {
        }
        public static function getColumnList()
        {
        }
        public static function getCalcVariations()
        {
        }
        public static function getCompareVariations()
        {
        }
        public static function getDefaultColumns()
        {
        }
        public static function getPeriodFilter($date_from, $date_to)
        {
        }
        public static function fillFilterReferenceColumn(&$filterElement, \Bitrix\Main\Entity\ReferenceField $field)
        {
        }
        public static function confirmFilterBackReferenceRewrite($fElem, $chain)
        {
        }
        public static function confirmSelectBackReferenceRewrite($elem, $chain)
        {
        }
        private static function fieldInFilter(&$filter, $fieldPathStr)
        {
        }
        private static function filterBySiteNeeded(&$select, &$filter)
        {
        }
        public static function beforeViewDataQuery(&$select, &$filter, &$group, &$order, &$limit, &$options, &$runtime = \null)
        {
        }
        /* remove it when PHP 5.3 available */
        public static function formatResults(&$rows, &$columnInfo, $total)
        {
        }
        /* \remove it */
        public static function formatResultValue($k, &$v, &$row, &$cInfo, $total, &$customChartValue = \null)
        {
        }
        public static function formatResultGroupingTotal($params)
        {
        }
        public static function formatResultsTotal(&$total, &$columnInfo, &$bFormatOnly = \null)
        {
        }
        public static function getDefaultElemHref($elem, $fList)
        {
        }
    }
    class CSaleReportSaleBasketHelper extends \CBaseSaleReportHelper
    {
        private static $monetaryFields = array(
            'PRICE',
            'DISCOUNT_PRICE',
            'SUMMARY_PRICE',
            'VAT_RATE_PRC',
            // Order fields
            'TAX_VALUE',
            'PRICE_DELIVERY',
            'DISCOUNT_ALL',
            'PRICE',
            'SUM_PAID_FORREP',
            'PAYMENT_ORDER_SUM',
            'PRODUCT_PURCHASING_PRICE_IN_SITE_CURRENCY',
            'GROSS_PROFIT',
            'PROFITABILITY',
        );
        private static $goodsQuantityFields = array(
            'QUANTITY',
            'PRODUCT_QUANTITY',
            // Order fields
            'PRODUCTS_QUANT',
        );
        private static $withoutTotalFields = array(
            'PRODUCT_ID',
            'FUSER_ID',
            'ORDER_ID',
            'PRODUCT_SALE_GOODS_SECTION_PROD_SECT_ID',
            'PRODUCT_SALE_GOODS_SECTION_PROD_SECT_NAME',
            'VAT_RATE_PRC',
            // Order fields
            'PERSON_TYPE_ID',
        );
        private static $avgGroupingAggregationFields = array('PROFITABILITY');
        private static $userNotAuthNameFields = array('FUSER_USER_SHORT_NAME');
        private static $currentIblockFilter = array('value' => \null, 'compare' => \null);
        public static function getEntityName()
        {
        }
        public static function getOwnerId()
        {
        }
        public static function getColumnList()
        {
        }
        public static function getDefaultColumns()
        {
        }
        public static function getCalcVariations()
        {
        }
        public static function getCompareVariations()
        {
        }
        public static function getPeriodFilter($date_from, $date_to)
        {
        }
        public static function beforeFilterBackReferenceRewrite(&$filter, $viewColumns)
        {
        }
        public static function beforeViewDataQuery(&$select, &$filter, &$group, &$order, &$limit, &$options, &$runtime = \null)
        {
        }
        public static function fillFilterReferenceColumn(&$filterElement, \Bitrix\Main\Entity\ReferenceField $field)
        {
        }
        /* remove it when PHP 5.3 available */
        public static function formatResults(&$rows, &$columnInfo, $total)
        {
        }
        /* \remove it */
        public static function formatResultValue($k, &$v, &$row, &$cInfo, $total, &$customChartValue = \null)
        {
        }
        public static function formatResultGroupingTotal($params)
        {
        }
        public static function formatResultsTotal(&$total, &$columnInfo, &$bFormatOnly = \null)
        {
        }
        public static function getDefaultElemHref($elem, $fList)
        {
        }
    }
    class CSaleReportSaleProductHelper extends \CBaseSaleReportHelper
    {
        private static $customProductFilter = 'all';
        private static $monetaryFields = array('PRICE_IN_SITE_CURRENCY', 'SUMMARY_PRICE_IN_SITE_CURRENCY', 'PURCHASING_PRICE_IN_SITE_CURRENCY');
        private static $goodsQuantityFields = array('QUANTITY', 'SALED_PRODUCTS_IN_PERIOD_BY_SHOP', 'CONSUMED_PRODUCTS_IN_PERIOD_BY_SHOP', 'ARRIVED_PRODUCTS_IN_PERIOD_BY_SHOP', 'ARRIVED_PRODUCTS_IN_PERIOD_BY_STORE', 'EXPENSE_PRODUCTS_IN_PERIOD_BY_STORE', 'STORE_PRODUCT_SALE_PRODUCT_AMOUNT');
        private static $withoutTotalFields = array('CONVERSION', 'PRODUCT_STORE_ID');
        private static $userNotAuthNameFields = array();
        private static $currentIblockFilter = array('value' => \null, 'compare' => \null);
        public static function setCustomProductFilter($strFilterValue)
        {
        }
        public static function enablePriceTypesColumns($bUsePriceTypesColumns)
        {
        }
        public static function getCustomProductFilter()
        {
        }
        public static function getEntityName()
        {
        }
        public static function getOwnerId()
        {
        }
        public static function getColumnList()
        {
        }
        public static function setRuntimeFields(\Bitrix\Main\Entity\Base $entity, $sqlTimeInterval)
        {
        }
        public static function getDefaultColumns()
        {
        }
        public static function getCompareVariations()
        {
        }
        public static function getCalcVariations()
        {
        }
        public static function getPeriodFilter($date_from, $date_to)
        {
        }
        public static function getEntityFilterPrimaryFieldName($fElem)
        {
        }
        public static function confirmFilterBackReferenceRewrite($fElem, $chain)
        {
        }
        public static function confirmSelectBackReferenceRewrite($elem, $chain)
        {
        }
        public static function beforeFilterBackReferenceRewrite(&$filter, $viewColumns)
        {
        }
        public static function beforeViewDataQuery(&$select, &$filter, &$group, &$order, &$limit, &$options, &$runtime = \null)
        {
        }
        /* remove it when PHP 5.3 available */
        public static function formatResults(&$rows, &$columnInfo, $total)
        {
        }
        /* \remove it */
        // format result value in grouping mode
        /*public static function formatResultGroupingValue($params)
        	{
        		$k = $params['k'];
        		$v = $params['v'];
        		$row = $params['row'];
        		$cInfo = $params['cInfo'];
        		static::formatResultValue($k, $v, $row, $cInfo, array());
        	}*/
        public static function formatResultValue($k, &$v, &$row, &$cInfo, $total, &$customChartValue = \null)
        {
        }
        public static function formatResultGroupingTotal($params)
        {
        }
        public static function formatResultsTotal(&$total, &$columnInfo, &$bFormatOnly = \null)
        {
        }
        public static function getDefaultElemHref($elem, $fList)
        {
        }
    }
    /**
    * Make some routines for pay systems
    */
    class CSalePaySystemsHelper
    {
        private static function getTarifClassName($actionFile)
        {
        }
        public static function prepareTarifForSaving($actionFile, $arTarif)
        {
        }
        public static function getPaySystemTarif($actionFile, $psId, $persId = 0)
        {
        }
        public static function getPSPrice($arPaySystem, $orderPrice, $deliveryPrice, $buyerLocationId)
        {
        }
        public static function checkPSCompability($actionFile, &$arOrder, $orderPrice, $deliveryPrice, $buyerLocationId)
        {
        }
        public static function getPSActionTitle($fileName)
        {
        }
        public static function getPSActionTitle_old($fileName)
        {
        }
        public static function isPSActionAffordPdf($actionFile)
        {
        }
        /**
         * Adds params if they are missed
         * @return array Added params
         */
        public static function addMissingKeysToParams()
        {
        }
    }
    class CSaleMeasure
    {
        function GetList($category = \false)
        {
        }
        function Convert($value, $measureFrom, $measureTo = "G")
        {
        }
    }
    class CAllSaleLocation
    {
        const LOC2_M_OPT = 'sale_locationpro_migrated';
        const LOC2_DEBUG_MODE_OPT = 'location2_debug_mode';
        const SELF_ENTITY_NAME = 'Bitrix\\Sale\\Location\\Location';
        const NAME_ENTITY_NAME = 'Bitrix\\Sale\\Location\\Name\\Location';
        const DEFAULT_SITE_ENTITY_NAME = 'Bitrix\\Sale\\Location\\DefaultSite';
        const ORIGIN_NAME_LANGUAGE_ID = 'en';
        const ZIP_EXT_SERVICE_CODE = 'ZIP';
        const MODIFIER_SEARCH_R = '#^((!|\\+)?(>=|>|<=|<|@|~|%|=)?)#';
        const KEY_PARSE_R = '#^(!|\\+)?(>=|>|<=|<|@|~|%|=)?(.+)#';
        const LEADING_TILDA_SEARCH_R = '#^~#';
        /////////////////////////////////////////////
        // enable this when you want to turn on the new functionality
        public static function isLocationProEnabled()
        {
        }
        public static function locationProEnable()
        {
        }
        public static function locationProDisable()
        {
        }
        /////////////////////////////////////////////
        // enable this when you had done the migration
        public static function isLocationProMigrated()
        {
        }
        public static function locationProSetMigrated()
        {
        }
        public static function locationProSetRolledBack()
        {
        }
        // very temporal code
        public static function locationProCheckEnabled()
        {
        }
        // very temporal code
        public static function locationProControlForm()
        {
        }
        // for old admin pages the following function should be used
        // (for the new ones - direct call of sale.location.selector.*)
        public static function proxySaleAjaxLocationsComponent($parameters = array(), $additionalParams = array(), $template = '', $hideIcons = \true, $wrapNewComponentWith = \false)
        {
        }
        /////////////////////////////////////////////
        // enable this when you want to get debugging
        public static function isLocationProInDebug()
        {
        }
        public static function locationProDebugEnable()
        {
        }
        public static function locationProDebugDisable()
        {
        }
        /////////////////////////////////////////////
        /////////////////////////////////////////////
        /////////////////////////////////////////////
        public static function getLocationIDbyCODE($code)
        {
        }
        public static function getLocationCODEbyID($id)
        {
        }
        public static function checkIsCode($id)
        {
        }
        public static function tryTranslateIDToCode($id)
        {
        }
        public static function checkLocationIsAboveCity($locationId)
        {
        }
        public static function getLocationCityTail()
        {
        }
        private static function getLanguages()
        {
        }
        public static function getSites()
        {
        }
        public static function getTypes()
        {
        }
        private static function getZipId()
        {
        }
        private static function refineFieldsForSaveCRC($id, $arFields)
        {
        }
        private static function getLocationIdByCountryId($legacyId)
        {
        }
        private static function getLocationIdByCityId($legacyId)
        {
        }
        private static function getLocationIdByRegionId($legacyId)
        {
        }
        private static function checkLangPresenceInSelect($type, $fields)
        {
        }
        private static function getTypeValueToStore($type, $arFields)
        {
        }
        protected static function checkIsRealInt($val)
        {
        }
        protected static function GetLocationTypeList($typeCode = '', $arOrder = array("NAME_LANG" => "ASC"), $arFilter = array(), $strLang = \LANGUAGE_ID)
        {
        }
        public static function checkLocationIdExists($id)
        {
        }
        public static function checkLocationCodeExists($code)
        {
        }
        public static function getFreeId($type)
        {
        }
        public static function getTypeJOINCondition($ctx = 'this')
        {
        }
        public static function getTypeFilterCondition()
        {
        }
        protected static $allowedOps = array('=');
        protected static function parseFilter($filter = array())
        {
        }
        public static function getDenormalizedLocationList($entityName, $arFilter = array())
        {
        }
        /////////////////////////////////////////////
        /////////////////////////////////////////////
        /////////////////////////////////////////////
        // old api works in the old manner only when sale::isLocationProMigrated() returns false
        public static function GetLocationString($locationId, $siteId = \SITE_ID, $langId = \LANGUAGE_ID)
        {
        }
        /////////////////////////////////////////////
        public static function CountryCheckFields($ACTION, &$arFields)
        {
        }
        function UpdateCountry($ID, $arFields)
        {
        }
        public static function DeleteCountry($ID)
        {
        }
        public static function GetCountryByID($ID)
        {
        }
        public static function GetCountryLangByID($ID, $strLang = \LANGUAGE_ID)
        {
        }
        /////////////////////////////////////////////
        public static function RegionCheckFields($ACTION, &$arFields)
        {
        }
        public static function UpdateRegion($ID, $arFields)
        {
        }
        public static function DeleteRegion($ID)
        {
        }
        public static function GetRegionByID($ID)
        {
        }
        public static function GetRegionLangByID($ID, $strLang = \LANGUAGE_ID)
        {
        }
        /////////////////////////////////////////////
        public static function CityCheckFields($ACTION, &$arFields)
        {
        }
        public static function UpdateCity($ID, $arFields)
        {
        }
        public static function DeleteCity($ID)
        {
        }
        public static function GetCityByID($ID)
        {
        }
        public static function GetCityLangByID($ID, $strLang = \LANGUAGE_ID)
        {
        }
        /////////////////////////////////////////////
        private static function processOrderForGetList($arOrder, $fieldMap = array(), $fieldProxy = array())
        {
        }
        public static function processFilterForGetList($arFilter, $fieldMap = array(), $fieldProxy = array(), $query = \null)
        {
        }
        public static function processSelectForGetList($arSelectFields, $fieldMap)
        {
        }
        private static function proxyFieldsInResult($res, $fieldProxy = array())
        {
        }
        private static function stripModifiers($filter)
        {
        }
        /////////////////////////////////////////////
        public static function getFilterForGetList($arFilter)
        {
        }
        public static function getFieldMapForGetList($arFilter)
        {
        }
        protected static function getNameOfParentOfType($item, $typeCode, $strLang = \LANGUAGE_ID)
        {
        }
        protected static $city2RegionMap = array(
            '0000073738' => '0000028025',
            // moscow => moskovskaya oblast
            '0000103664' => '0000028043',
        );
        protected static $specialCities = array('MOSCOW', 'STPETERSBURG');
        public static function GetByIDForLegacyDelivery($primary, $strLang = \LANGUAGE_ID)
        {
        }
        public static function GetByID($primary, $strLang = \LANGUAGE_ID)
        {
        }
        public static function LocationCheckFields($ACTION, &$arFields)
        {
        }
        public static function UpdateLocation($ID, $arFields)
        {
        }
        public static function CheckFields($ACTION, &$arFields)
        {
        }
        private static function AddLocationPart($creat, $type, $parent, $sort)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        // ???
        public static function Delete($ID)
        {
        }
        public static function OnLangDelete($strLang)
        {
        }
        public static function DeleteAll()
        {
        }
        public static function GetLocationZIP($location)
        {
        }
        public static function GetByZIP($zip)
        {
        }
        public static function ClearLocationZIP($location)
        {
        }
        public static function ClearAllLocationZIP()
        {
        }
        public static function AddLocationZIP($location, $ZIP, $bSync = \false)
        {
        }
        public static function SetLocationZIP($location, $arZipList)
        {
        }
        public static function GetRegionsIdsByNames($arRegNames, $countryId = \false)
        {
        }
        public static function GetRegionsNamesByIds($arIds, $lang = \LANGUAGE_ID)
        {
        }
        // location import is overwritten, and it is enabled when self::isLocationProMigrated() == true, so no proxy provided for the obsolete methods below
        public static function _GetZIPImportStats()
        {
        }
        public static function _GetCityImport($arCityName, $country_id = \false)
        {
        }
        protected static function AddLocationUnattached($typeCode, $names = array())
        {
        }
        protected static function RebindLocationTriplet($fields = array())
        {
        }
    }
    class CAllSaleOrderPropsValue
    {
        function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function GetByID($ID)
        {
        }
        function GetOrderProps($ORDER_ID)
        {
        }
        function GetOrderRelatedProps($ORDER_ID, $arFilter = array())
        {
        }
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        /**
         * @param $id
         * @param $value
         *
         * @return array|null
         * @throws \Bitrix\Main\ArgumentException
         */
        private static function correctValueToMultiple($id, $value)
        {
        }
        public static function translateLocationIDToCode($id, $orderPropId)
        {
        }
        function Delete($ID)
        {
        }
        function DeleteByOrder($orderID)
        {
        }
    }
    /** @deprecated */
    final class CSaleOrderPropsValueAdapter implements \Bitrix\Sale\Compatible\FetchAdapter
    {
        private $fieldProxy = array();
        function __construct(array $select)
        {
        }
        public function addFieldProxy($field)
        {
        }
        public function adapt(array $newProperty)
        {
        }
        public static $allFields = array('ORDER_ID' => 1, 'ORDER_PROPS_ID' => 1, 'NAME' => 1, 'VALUE' => 1, 'CODE' => 1);
    }
    class CAllSaleAffiliatePlanSection
    {
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Delete($ID)
        {
        }
        function DeleteByPlan($planID, $arSectionIDs)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function GetByID($ID)
        {
        }
    }
    class CSaleHelper
    {
        public static function IsAssociativeArray($ar)
        {
        }
        /**
         * Writes to /bitrix/modules/sale.log
         *
         * @param string $text message to write
         * @param array $arVars array (varname => value) to print out variables
         * @param string $code log record tag
         */
        public static function WriteToLog($text, $arVars = array(), $code = "")
        {
        }
        /**
         * @param $fieldId
         * @param $arField
         * @param $fieldName
         * @param $formName
         * @return string
         * @deprecated
         */
        public static function getAdminHtml($fieldId, $arField, $fieldName, $formName)
        {
        }
        public static function getAdminMultilineControl($arMultiControlQuery)
        {
        }
        public static function wrapAdminHtml($controlHtml, &$arConfig)
        {
        }
        public static function getOptionOrImportValues($optName, $importFuncName = \false, $arFuncParams = array(), $siteId = "")
        {
        }
        private static function getShopLocationParams($siteId = \false)
        {
        }
        public static function getShopLocationId($siteId)
        {
        }
        public static function getShopLocationZIP()
        {
        }
        public static function getShopLocation($siteId = \false)
        {
        }
        public static function getCsvObject($filePath)
        {
        }
        /**
         * Returns HTML code to show file (image or download link)
         * Similar to CFile::ShowFile but shows name of the file in the download link
         *
         * @param int $fileId - file id
         * @param array $arSize - width and height for image thumbnail
         * @return string
         */
        public static function getFileInfo($fileId, $arSize = array("WIDTH" => 90, "HEIGHT" => 90))
        {
        }
        public static function getIblockPropInfo($value, $propData, $arSize = array("WIDTH" => 90, "HEIGHT" => 90))
        {
        }
        public static function getLocationByIdHitCached($id)
        {
        }
    }
    class CSaleTfpdf extends \tFPDF
    {
        private $background;
        public function SetBackground($image, $bgHeight = 0, $bgWidth = 0, $style = 'none')
        {
        }
        public function Image($file, $x = \null, $y = \null, $w = 0, $h = 0, $type = '', $link = '')
        {
        }
        public function Header()
        {
        }
        public function GetPageWidth()
        {
        }
        public function GetPageHeight()
        {
        }
        public function Output($name = '', $dest = '', $utfName = '')
        {
        }
        function _parsebmp($file)
        {
        }
        public function calculateRowsWidth($cols, $cells, $countItems, $docWidth, $margin = \null)
        {
        }
        /**
         * @param $str
         * @return mixed
         */
        protected function getMaximumWord($str)
        {
        }
    }
    class CSalePdf
    {
        protected $generator;
        public static function isPdfAvailable()
        {
        }
        public static function prepareToPdf($string)
        {
        }
        public function splitString($text, $width)
        {
        }
        public function __construct($orientation = 'P', $unit = 'mm', $size = 'A4')
        {
        }
        public function __call($name, $arguments)
        {
        }
        public function SetBackground($image, $style)
        {
        }
        public function GetImageSize($file)
        {
        }
        public function GetImagePath($file)
        {
        }
        public function Image($file, $x = \null, $y = \null, $w = 0, $h = 0, $type = '', $link = '')
        {
        }
        public static function CheckImage(array $file)
        {
        }
    }
    class CSaleBasketHelper
    {
        /*
         * Checks if basket item belongs to set (is parent or item of the set)
         *
         * @param $arItem - basket item fields array with SET_PARENT_ID and TYPE fields
         * @return bool
         */
        public static function isInSet($arItem)
        {
        }
        /*
         * Checks if basket item is set item (belongs to set, but not parent)
         *
         * @param $arItem - basket item fields array with SET_PARENT_ID and TYPE fields
         * @return bool
         */
        public static function isSetItem($arItem)
        {
        }
        /*
         * Checks if basket item is parent of the set
         *
         * @param $arItem - basket item fields array with SET_PARENT_ID and TYPE fields
         * @return bool
         */
        public static function isSetParent($arItem)
        {
        }
        /*
         * Checks if ALL set items are deducted (to update DEDUCTED = Y of the set parent)
         *
         * @param int $setParentID - set parent id
         * @return bool
         */
        public static function isSetDeducted($setParentID)
        {
        }
        /**
         * Helper method. Is used to re-sort basket items data so Set parents will be added before Set items
         * @param $arBasketItemA
         * @param $arBasketItemB
         * @return int
         */
        public static function cmpSetData($arBasketItemA, $arBasketItemB)
        {
        }
        public static function cmpBySort($array1, $array2)
        {
        }
        public static function filterFields($field)
        {
        }
        /**
         * resorting of elements in the parent
         * @param $basketItems
         * @param bool $setIndexAsId
         * @return array
         */
        public static function reSortItems($basketItems, $setIndexAsId = \false)
        {
        }
        /**
         * @param array $basketItemData
         *
         * @return float|int
         */
        public static function getVat(array $basketItemData)
        {
        }
        /**
         * @param array $basketItemData
         *
         * @return float|int
         */
        public static function getFinalPrice(array $basketItemData)
        {
        }
        /**
         * @param $quantity
         *
         * @return float
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function formatQuantity($quantity)
        {
        }
    }
    class CAllSaleOrderPropsGroup
    {
        function GetByID($ID)
        {
        }
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function Delete($ID)
        {
        }
    }
    /** @deprecated */
    class CAllSalePaySystem
    {
        static function DoProcessOrder(&$arOrder, $paySystemId, &$arErrors)
        {
        }
        public static function DoLoadPaySystems($personType, $deliveryId = 0, $arDeliveryMap = \null)
        {
        }
        function GetByID($id, $personTypeId = 0)
        {
        }
        protected static function getAliases()
        {
        }
        function CheckFields($ACTION, &$arFields)
        {
        }
        function Update($id, $arFields)
        {
        }
        function Delete($id)
        {
        }
        public static function getNewIdsFromOld($ids, $personTypeId = \null)
        {
        }
        public static function getPaySystemPersonTypeIds($paySystemId)
        {
        }
        public static function GetList($arOrder = array("SORT" => "ASC", "NAME" => "ASC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        private static function getAlias($key)
        {
        }
        private static function getAliasBack($value)
        {
        }
        /**
         * @param $arFields
         * @return bool|int
         * @throws Exception
         */
        public static function Add($arFields)
        {
        }
    }
    /* Navigation */
    /*
    Important Notice:
    	CIBlockResult has copy of the methods of this class
    	because we need CIBlockResult::Fetch method to be called on iblock_element_admin.php page.
    	So this page based on CIBlockResult not on CAdminResult!
    */
    class CAdminResult extends \CDBResult
    {
        var $nInitialSize;
        var $table_id;
        /**
         * CAdminResult constructor.
         * @param mixed $res
         * @param string $table_id
         */
        public function __construct($res, $table_id)
        {
        }
        /**
         * @deprecated
         * @param mixed $res
         * @param string $table_id
         */
        public function CAdminResult($res, $table_id)
        {
        }
        public function NavStart($nPageSize = 20, $bShowAll = \true, $iNumPage = \false)
        {
        }
        protected function parentNavStart($nPageSize, $bShowAll, $iNumPage)
        {
        }
        /**
         * @param bool|string $table_id
         * @param int|array $nPageSize
         * @return int
         */
        public function GetNavSize($table_id = \false, $nPageSize = 20)
        {
        }
        public function GetNavPrint($title, $show_allways = \true, $StyleText = "", $template_path = \false, $arDeleteParam = \false)
        {
        }
    }
    class CSaleProxyAdminResult extends \CAdminResult
    {
        private $parameters = array();
        private $entityName = '';
        public function __construct($parameters, $entityName, $tableId)
        {
        }
        function NavStart($nPageSize = 0, $bShowAll = \true, $iNumPage = \false)
        {
        }
    }
    class CAdminUiResult extends \CAdminResult
    {
        protected static $navParams = ["totalCount" => 0, "totalPages" => 1, "pagen" => 1];
        private $componentParams = array();
        /**
         * @param string $tableId
         * @param string $className Bitrix\Main\Entity\DataManager class name.
         * @param array $getListParams
         */
        public static function setNavParams($tableId, $className, &$getListParams)
        {
        }
        public function NavStart($nPageSize = 20, $bShowAll = \true, $iNumPage = \false)
        {
        }
        public function GetNavPrint($title, $show_allways = \true, $StyleText = "", $template_path = \false, $arDeleteParam = \false)
        {
        }
        public function GetNavSize($tableId = \false, $nPageSize = 20, $listUrl = '')
        {
        }
        public function setNavigationParams(array $params)
        {
        }
    }
    class CSaleProxyAdminUiResult extends \CAdminUiResult
    {
        private $parameters = array();
        private $entityName = '';
        public function __construct($parameters, $entityName, $tableId)
        {
        }
        function NavStart($nPageSize = 0, $bShowAll = \true, $iNumPage = \false)
        {
        }
    }
    class CAllSaleAffiliate
    {
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Delete($ID)
        {
        }
        function GetByID($ID)
        {
        }
        function GetAffiliate($affiliateID = 0)
        {
        }
        function Calculate($dateFrom = \false, $dateTo = \false, $datePlanFrom = \false, $datePlanTo = \false)
        {
        }
        function CheckAffiliateFunc($affiliate)
        {
        }
        function SetAffiliatePlan($affiliate, $dateFrom = \false, $dateTo = \false)
        {
        }
        function CalculateAffiliate($affiliate, $dateFrom = \false, $dateTo = \false, $datePlanFrom = \false, $datePlanTo = \false)
        {
        }
        function PayAffiliate($affiliate, $payType, &$paySum)
        {
        }
        function ClearAffiliateSum($affiliate)
        {
        }
        function OnBeforeUserDelete($UserID)
        {
        }
    }
    class CAllSalePersonType
    {
        static function DoProcessOrder(&$arOrder, $personTypeId, &$arErrors, $arOptions)
        {
        }
        function GetByID($ID)
        {
        }
        function CheckFields($ACTION, &$arFields, $ID = \false)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function Delete($ID)
        {
        }
        function OnBeforeLangDelete($lang)
        {
        }
        function SelectBox($sFieldName, $sValue, $sDefaultValue = "", $bFullName = \True, $JavaFunc = "", $sAddParams = "")
        {
        }
    }
    class CAllSaleOrderPropsVariant
    {
        function GetByValue($PropID, $Value)
        {
        }
        function GetByID($ID)
        {
        }
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function Delete($ID)
        {
        }
        function DeleteAll($ID)
        {
        }
    }
    class CSaleOrderHelper
    {
        /*
         * check if barcode is valid (exists on the given store)
         */
        public static function isBarCodeValid($arParams)
        {
        }
        /*
         * check if total ordered quantity = quantity on stores
         */
        public static function checkQuantity($arProducts)
        {
        }
        /*
         * check if barcodes are valid for deduction
         */
        public static function checkBarcodes($arProducts)
        {
        }
    }
    class CAllSaleOrderUserProps
    {
        /*
        public static function TranslateLocationPropertyValues($personTypeId, &$orderProps)
        {
        	if(CSaleLocation::isLocationProMigrated())
        	{
        		// location ID to CODE
        		$dbOrderProps = CSaleOrderProps::GetList(
        			array("SORT" => "ASC"),
        			array(
        				'PERSON_TYPE_ID' => $personTypeId
        			),
        			false,
        			false,
        			array("ID", "NAME", "TYPE", "IS_LOCATION", "IS_LOCATION4TAX", "IS_PROFILE_NAME", "IS_PAYER", "IS_EMAIL", "REQUIED", "SORT", "IS_ZIP", "CODE", "MULTIPLE")
        		);
        		while($item = $dbOrderProps->fetch())
        		{
        			if($item['TYPE'] == 'LOCATION' && strlen($orderProps[$item['ID']]))
        				$orderProps[$item['ID']] = CSaleLocation::getLocationCodeByID($orderProps[$item['ID']]);
        		}
        	}
        }
        */
        /**
         * @param $userId
         * @param $profileId
         * @param $profileName
         * @param $personTypeId
         * @param $orderProps
         * @param $arErrors
         *
         * @return bool|int
         */
        static function DoSaveUserProfile($userId, $profileId, $profileName, $personTypeId, $orderProps, &$arErrors)
        {
        }
        public static function DoLoadProfiles($userId, $personTypeId = \null)
        {
        }
        function GetByID($ID)
        {
        }
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function ClearEmpty()
        {
        }
        function Delete($ID)
        {
        }
        function OnUserDelete($ID)
        {
        }
    }
    class CSaleProxyResult extends \CDBResult
    {
        private $parameters = array();
        private $entityName = '';
        public function __construct($parameters, $entityName)
        {
        }
        function NavStart($nPageSize = 20, $bShowAll = \true, $iNumPage = \false)
        {
        }
    }
    /** @deprecated */
    class CSaleOrderProps
    {
        /*
         * Checks order properties' values on the basis of order properties' restrictions
         *
         * @param array $arOrder - order data
         * @param array $arOrderPropsValues - array of order properties values to be checked
         * @param array $arErrors
         * @param array $arWarnings
         * @param int $paysystemId - id of the paysystem, will be used to get order properties related to this paysystem
         * @param int $deliveryId - id of the delivery sysetm, will be used to get order properties related to this delivery system
         */
        static function DoProcessOrder(&$arOrder, $arOrderPropsValues, &$arErrors, &$arWarnings, $paysystemId = 0, $deliveryId = "", $arOptions = array())
        {
        }
        /*
         * Updates/adds order properties' values
         *
         * @param array $orderId
         * @param array $personTypeId
         * @param array $arOrderProps - array of order properties values
         * @param array $arErrors
         */
        static function DoSaveOrderProps($orderId, $personTypeId, $arOrderProps, &$arErrors, $paysystemId = 0, $deliveryId = "")
        {
        }
        function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function GetByID($ID)
        {
        }
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function Delete($ID)
        {
        }
        function GetRealValue($propertyID, $propertyCode, $propertyType, $value, $lang = \false)
        {
        }
        /*
         * Get order property relations
         *
         * @param array $arFilter with keys: PROPERTY_ID, ENTITY_ID, ENTITY_TYPE
         * @return dbResult
         */
        function GetOrderPropsRelations($arFilter = array())
        {
        }
        /*
         * Update order property relations
         *
         * @param int $ID - property id
         * @param array $arEntityIDs - array of IDs entities (payment or delivery systems)
         * @param string $entityType - P/D (payment or delivery systems)
         * @return dbResult
         */
        function UpdateOrderPropsRelations($ID, $arEntityIDs, $entityType)
        {
        }
        public static function PrepareRelation4Where($val, $key, $operation, $negative, $field, &$arField, &$arFilter)
        {
        }
    }
    /** @deprecated */
    final class CSaleOrderPropsAdapter implements \Bitrix\Sale\Compatible\FetchAdapter
    {
        private $select;
        private $fieldProxy = array();
        function __construct(\Bitrix\Sale\Compatible\OrderQuery $query, array $select)
        {
        }
        public function addFieldProxy($field)
        {
        }
        public function adapt(array $newProperty)
        {
        }
        static function getOldValue($value, $type)
        {
        }
        public static function convertNewToOld(array $property)
        {
        }
        // M I G R A T I O N
        static function convertOldToNew(array $property)
        {
        }
        static $allFields = array('PERSON_TYPE_ID' => 1, 'NAME' => 1, 'TYPE' => 1, 'REQUIRED' => 1, 'DEFAULT_VALUE' => 1, 'SORT' => 1, 'USER_PROPS' => 1, 'IS_LOCATION' => 1, 'PROPS_GROUP_ID' => 1, 'DESCRIPTION' => 1, 'IS_EMAIL' => 1, 'IS_PROFILE_NAME' => 1, 'IS_PAYER' => 1, 'IS_LOCATION4TAX' => 1, 'IS_FILTERED' => 1, 'CODE' => 1, 'IS_ZIP' => 1, 'IS_PHONE' => 1, 'ACTIVE' => 1, 'UTIL' => 1, 'INPUT_FIELD_LOCATION' => 1, 'MULTIPLE' => 1, 'IS_ADDRESS' => 1, 'SETTINGS' => 1);
        static function migrate()
        {
        }
    }
    class CSalePaySystemTarifPFC extends \CSalePaySystemTarif
    {
        /* required inhereted methods */
        public static function getPrice(&$arPaySystem, $orderPrice, $deliveryPrice, $buyerLocationId)
        {
        }
        public static function getValues($psId = \false, $persId = \false)
        {
        }
        public static function extractFromField($strFieldContent)
        {
        }
        public static function prepareToField($arTarif)
        {
        }
        public static function getStructure($psId, $persId)
        {
        }
        private static function getRegionsList()
        {
        }
        public static function checkCompability(&$arOrder, $orderPrice, $deliveryPrice, $buyerLocationId)
        {
        }
        private static function setTarifConfig($tarifId, $tarifTitle, $arTarifs, &$arConfig)
        {
        }
        private static function getTarifArrayCSV($arTarifs)
        {
        }
        public static function getCMTarifsByRegionFromCsv($regionNameLang)
        {
        }
        public static function getAllCMTarifsFromCsv()
        {
        }
    }
    class CSalePaySystemPrePayment
    {
        var $username = "";
        var $pwd = "";
        var $signature = "";
        var $currency = "";
        var $serverName = "";
        var $testMode = \true;
        var $domain = "";
        var $token = "";
        var $payerId = "";
        var $encoding = "";
        var $version = "";
        var $notifyUrl = "";
        var $taxAmount = "";
        var $deliveryAmount = "";
        function init()
        {
        }
        function BasketButtonShow()
        {
        }
        function BasketButtonAction($orderData = array())
        {
        }
        function getHiddenInputs()
        {
        }
        function isAction()
        {
        }
        function parseResult($data)
        {
        }
        function getProps()
        {
        }
        function payOrder($orderData = array())
        {
        }
    }
}
namespace Bitrix\Main\Diag {
    abstract class ExceptionHandlerLog
    {
        const UNCAUGHT_EXCEPTION = 0;
        const CAUGHT_EXCEPTION = 1;
        const IGNORED_ERROR = 2;
        const LOW_PRIORITY_ERROR = 3;
        const ASSERTION = 4;
        const FATAL = 5;
        public static function logTypeToString($logType)
        {
        }
        public abstract function write($exception, $logType);
        public abstract function initialize(array $options);
    }
    class FileExceptionHandlerLog extends \Bitrix\Main\Diag\ExceptionHandlerLog
    {
        const MAX_LOG_SIZE = 1000000;
        const DEFAULT_LOG_FILE = "bitrix/modules/error.log";
        private $logFile;
        private $logFileHistory;
        private $maxLogSize;
        private $level;
        public function initialize(array $options)
        {
        }
        /**
         * @param \Error|\Exception $exception
         * @param int $logType
         */
        public function write($exception, $logType)
        {
        }
        protected function writeToLog($text)
        {
        }
    }
}
namespace {
    final class DiscountCatalogMigratorLogger extends \Bitrix\Main\Diag\FileExceptionHandlerLog
    {
        const MAX_LOG_SIZE = 10000000;
        const DEFAULT_LOG_FILE = "bitrix/modules/sale_migrator.log";
        public function writeToLog($text)
        {
        }
    }
    final class DiscountCatalogMigrator
    {
        const STATUS_FINISH = 2;
        const STATUS_TIME_EXPIRED = 3;
        const STATUS_ERROR = 4;
        const TYPE_GENERAL = 2;
        const TYPE_CUMULATIVE = 3;
        public $countSuccessfulSteps = 0;
        /** @var  DiscountCatalogMigratorLogger */
        protected $logger;
        protected $timeStart = 0;
        /** @var int Seconds */
        protected $maxExecution = 38;
        /** @var \Bitrix\Main\DB\Connection  */
        protected $connection;
        /** @var \Bitrix\Main\DB\SqlHelper */
        protected $sqlHelper;
        protected $isOracle = \false;
        protected $isMysql = \false;
        protected $isMssql = \false;
        private $stepErrors = array();
        public function __construct(array $options = array())
        {
        }
        public function log($data)
        {
        }
        /**
         * @param int $timeStart
         */
        public function setTimeStart($timeStart)
        {
        }
        /**
         * @return int
         */
        public function getTimeStart()
        {
        }
        protected function isTimeExpired()
        {
        }
        /**
         * Check expired by time and throw exception
         * @param bool $force
         * @throws TimeExecutionException
         */
        protected function abortIfNeeded($force = \false)
        {
        }
        protected function setStepFinished($stepName, $description = '')
        {
        }
        protected function isStepFinished($stepName, $description = '')
        {
        }
        protected function resetCounter()
        {
        }
        protected function storeCounter($data)
        {
        }
        protected function getCounter()
        {
        }
        protected function checkRequired()
        {
        }
        public function revert()
        {
        }
        public function run()
        {
        }
        private function processFinallyActions()
        {
        }
        protected function getMaxPriorityFromOldSaleDiscounts()
        {
        }
        protected function moveDiscounts()
        {
        }
        private function migrateDiscounts(\Bitrix\Main\DB\Result $discountIterator)
        {
        }
        protected function moveCumulativeDiscounts()
        {
        }
        /**
         * We are moving cumulative discounts to the end of list with the lowest priority.
         */
        protected function recalculatePriorityForCumulativeDiscounts()
        {
        }
        private function getActionsAndConditionsForCumulativeDiscount(array $catalogRow)
        {
        }
        private function getTypeSumPeriod(array $catalogRow)
        {
        }
        private function getRanges($cumulativeDiscountId)
        {
        }
        protected function moveCoupons()
        {
        }
        protected function fillShortDescription()
        {
        }
        protected function recalculatePriority()
        {
        }
        protected function addBackupPriorityColumn()
        {
        }
        protected function backupPriorityColumn()
        {
        }
        protected function setAsConverted($catalogDiscountId, $saleDiscountId, $typeDiscount = self::TYPE_GENERAL)
        {
        }
        protected function getAllUserGroups()
        {
        }
        protected function getPriceTypesByDiscount($catalogDiscountId)
        {
        }
        protected function moveUserGroupsByDiscount(array $catalogRow, $saleDiscountId, $typeDiscount = self::TYPE_GENERAL)
        {
        }
        protected function createActionAndCondition(array $catalogRow)
        {
        }
        protected function createConditionStructureForGeneralDiscount(array $catalogRow)
        {
        }
        protected function createApplicationStructureForGeneralDiscount(array $catalogRow)
        {
        }
        protected function replaceCondGroup($children)
        {
        }
        protected function rewriteUnpack(array $catalogRow)
        {
        }
        protected function rewriteApplication(array $catalogRow)
        {
        }
    }
}
namespace Bitrix\Main {
    /**
     * Base class for fatal exceptions
     */
    class SystemException extends \Exception
    {
        /**
         * Creates new exception object.
         *
         * @param string $message
         * @param int $code
         * @param string $file
         * @param int $line
         * @param \Exception $previous
         */
        public function __construct($message = "", $code = 0, $file = "", $line = 0, \Exception $previous = null)
        {
        }
    }
}
namespace {
    class TimeExecutionException extends \Bitrix\Main\SystemException
    {
    }
}
namespace Bitrix\Sale\AdminPage {
    /**
     * Class AjaxProcessor
     * @package Bitrix\Sale\AdminPage
     * Class helper for processing ajax requests
     */
    class AjaxProcessor
    {
        protected $userId;
        /** @var \Bitrix\Sale\Result $result*/
        protected $result;
        protected $request;
        /** @var \Bitrix\Sale\Order $order  */
        protected $order = null;
        protected $formDataChanged = false;
        protected $registry = null;
        public function __construct($userId, array $request)
        {
        }
        /**
         * @return Result
         * @throws SystemException
         */
        public function processRequest()
        {
        }
        /**
         * @param $message
         */
        public function addResultError($message)
        {
        }
        /**
         * @param $message
         */
        public function addResultWarning($message)
        {
        }
        protected function addResultData($dataKey, $data)
        {
        }
        /* * * * * * requests actions handlers * * * * * * * * */
        protected function getProductIdBySkuPropsAction()
        {
        }
        protected function addProductToBasketAction()
        {
        }
        protected function cancelOrderAction()
        {
        }
        protected function saveCommentsAction()
        {
        }
        protected function saveStatusAction()
        {
        }
        protected function getOrderFieldsAction()
        {
        }
        protected function refreshOrderDataAction()
        {
        }
        /* We don't show all errors during forming order via ajax requests */
        protected function addFilteredErrors(\Bitrix\Sale\Result $opResults)
        {
        }
        protected function changeResponsibleUserAction()
        {
        }
        protected function updatePaymentStatusAction()
        {
        }
        /**
         * @param Sale\Payment $payment
         * @param $fields
         * @param $strict
         * @return Result
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\NotSupportedException
         */
        private function setPaymentFields(\Bitrix\Sale\Payment $payment, $fields, $strict) : \Bitrix\Sale\Result
        {
        }
        protected function deletePaymentAction()
        {
        }
        protected function deleteShipmentAction()
        {
        }
        protected function saveBasketVisibleColumnsAction()
        {
        }
        protected function updateShipmentStatusAction()
        {
        }
        protected function createNewPaymentAction()
        {
        }
        protected function getProductEditDialogHtmlAction()
        {
        }
        protected function changeDeliveryServiceAction()
        {
        }
        protected function getDefaultDeliveryPriceAction()
        {
        }
        protected function checkProductBarcodeAction()
        {
        }
        protected function deleteCouponAction()
        {
        }
        protected function addCouponsAction()
        {
        }
        protected function getProductIdByBarcodeAction()
        {
        }
        /* * * * * * * accessory methods * * * * * * * */
        protected function getDemandedFields(array $demandedFields, array $incomingFields, \Bitrix\Sale\Order $order = null)
        {
        }
        /**
         * @param $formData
         * @param Result &$result
         * @return Sale\Order
         * @throws ArgumentNullException
         * @throws UserMessageException
         */
        protected function getOrder(array $formData, \Bitrix\Sale\Result &$result = null)
        {
        }
        public static function convertEncodingArray($arData, $charsetFrom, $charsetTo, &$errorMessage = "")
        {
        }
        protected function updatePaySystemInfoAction()
        {
        }
        protected function saveTrackingNumberAction()
        {
        }
        protected function refreshTrackingStatusAction()
        {
        }
        protected function unmarkOrderAction()
        {
        }
        protected function updatePriceCodAction($payment = null)
        {
        }
        protected function getOrderTailsAction()
        {
        }
        protected function fixMarkerAction()
        {
        }
        protected function deleteMarkerAction()
        {
        }
        /**
         * Create HTML for create check window
         *
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         */
        protected function addCheckPaymentAction()
        {
        }
        /**
         * Create HTML for create check window
         *
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         */
        protected function addCheckShipmentAction()
        {
        }
        /**
         * Add new check
         *
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         */
        protected function saveCheckAction()
        {
        }
        protected function sendQueryCheckStatusAction()
        {
        }
        /**
         * @param array $filter
         *
         * @return array
         */
        private function calculateCheckSum($filter = array())
        {
        }
        /**
         * @return array
         */
        protected function loadCashboxCheckInfoAction()
        {
        }
        /**
         * @throws \Bitrix\Main\ArgumentException
         */
        protected function addZReportAction()
        {
        }
        /**
         * @param Result $result
         *
         * @return Result
         */
        protected function convertErrorsToConfirmation(\Bitrix\Sale\Result $result)
        {
        }
        /**
         * @param Result $result
         *
         * @return bool
         */
        protected function hasErrorsForConfirmation(\Bitrix\Sale\Result $result)
        {
        }
        /**
         * @param Result $result
         *
         * @return Result
         */
        protected function removeErrorsForConfirmation(\Bitrix\Sale\Result $result)
        {
        }
        /**
         * @return array
         */
        protected function getListErrorsForConfirmation()
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform\Ebay\Wizard {
    abstract class Step
    {
        protected $siteId = "";
        protected $ebaySettings = array();
        public static $useCache = true;
        protected static $errors = array();
        public abstract function getHtml();
        public static function hasState()
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
        public static function mustBeCompletedBeforeNext()
        {
        }
        public static function getName()
        {
        }
        public function __construct($siteId, array $ebaySettings, $cleanCache = false)
        {
        }
        /**
         * @return \CAdminMessage|null
         */
        public function getAdminMessage()
        {
        }
        public function save()
        {
        }
        public static function getLampHtml($isGreen = true)
        {
        }
        protected static function getUserId($siteId, $ebaySettings)
        {
        }
        protected static function getUserInfo($siteId, array $ebaySettings)
        {
        }
        protected static function getPolicyInfo($siteId, $ebaySettings)
        {
        }
        protected static function cleanCache()
        {
        }
    }
    class StepWelcome extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        public static function hasState()
        {
        }
    }
    class StepSite extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        public static function mustBeCompletedBeforeNext()
        {
        }
        public static function hasState()
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
    }
    class StepPersonType extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        protected function createStatusMapHtml()
        {
        }
        protected function createPropsMapHtml($personTypeId)
        {
        }
        public static function mustBeCompletedBeforeNext()
        {
        }
        public static function hasState()
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
    }
    class StepEbayAccount extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        public static function mustBeCompletedBeforeNext()
        {
        }
        public static function hasState()
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
        public function save()
        {
        }
    }
    class StepGetApiToken extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        public static function mustBeCompletedBeforeNext()
        {
        }
        public static function hasState()
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
    }
    class StepPayPalAccount extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public function __construct($siteId, array $ebaySettings, $cleanCache = false)
        {
        }
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        public static function hasState()
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
    }
    class StepConfirmContacts extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public function __construct($siteId, array $ebaySettings, $cleanCache = false)
        {
        }
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        public static function hasState()
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
    }
    class StepLinkPaypal extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        public static function hasState()
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
    }
    class StepEbayAccountRussianConfirm extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        public static function hasState()
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
    }
    class StepEbayPolicies extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        public static function hasState()
        {
        }
        public static function mustBeCompletedBeforeNext()
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
    }
    class StepEbayDefaultPolicies extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        public static function hasState()
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
    }
    class StepPaymentMapping extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        public static function hasState()
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
    }
    class StepShipmentMapping extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        public static function hasState()
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
    }
    class StepMIPConnect extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        public static function mustBeCompletedBeforeNext()
        {
        }
        public static function hasState()
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
    }
    class StepImportEbayCategories extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        public static function hasState()
        {
        }
        protected static function getCategoriesCount()
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
    }
    class StepIblock extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        public function save()
        {
        }
        public static function hasState()
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
    }
    class StepCategoriesMap extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        public static function hasState()
        {
        }
        protected static function getMappedCount($siteId, $ebaySettings)
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
    }
    class StepStartExchange extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
        public static function hasState()
        {
        }
        public static function isSucceed($siteId, array $ebaySettings)
        {
        }
        public function save()
        {
        }
    }
    class StepFinish extends \Bitrix\Sale\TradingPlatform\Ebay\Wizard\Step
    {
        public static function getName()
        {
        }
        public function getHtml()
        {
        }
    }
}
namespace {
    //where we can found csv files
    class CDeliveryRusPostFirst
    {
        private static $MAX_WEIGHT = 2500;
        // (g)
        private static $MAX_SUMM = 20000;
        // RUB
        private static $MAX_SIZE = 360;
        //milimeters
        private static $MAX_DIMENSIONS_SUMM = 700;
        //milimeters
        private static $MAX_DIMENSIONS = array("165", "100", "190");
        //milimeters
        private static $BASE_WEIGHT = 100;
        // Base weight gramm
        private static $TARIFS = array();
        private static $SERVICES = array();
        private static $TARIF_IDX = 0;
        private static $TARIF_DESCR = 1;
        /* Standard mandatory delivery services functions */
        function Init()
        {
        }
        function GetConfig($siteId = \false)
        {
        }
        function GetSettings($strSettings)
        {
        }
        function SetSettings($arSettings)
        {
        }
        function GetFeatures($arConfig)
        {
        }
        function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = \false)
        {
        }
        function Compability($arOrder, $arConfig)
        {
        }
        /* Particular services helper functions*/
        public static function getTarifNumFromCsv(array $arShopLocation)
        {
        }
        public static function getTarifsByRegionFromCsv(array $arShopLocation)
        {
        }
        private static function getConfValue(&$arConfig, $key)
        {
        }
        private static function isConfCheckedVal(&$arConfig, $key)
        {
        }
        private static function getAviableBoxes()
        {
        }
        private static function calculatePackPrice($arPackage, $profile, $arConfig, $arLocationTo)
        {
        }
        protected static function getRegionCodeByOldName($regionLangName)
        {
        }
        public function getAdminMessage()
        {
        }
    }
    class CDeliveryUaPost
    {
        private static $MAX_WEIGHT = 100000;
        // (g)
        private static $defaultTarifs = array(
            "BO" => 13,
            // Price for ordering UAH
            "T1" => 1.65,
            // WARE-WARE Price for 1 kg
            "WARE_DOOR" => array(
                // upper bound of weight gramm => price)
                2000 => 20,
                10000 => 25,
                100000 => 40,
            ),
            "DOOR_DOOR" => array(
                //upper bound of weight gramm => price
                2000 => 55,
                5000 => 65,
                10000 => 75,
                20000 => 95,
                30000 => 115,
                50000 => 140,
                75000 => 170,
                100000 => 205,
            ),
            "OB_COMISS" => 0.5,
            // declared-value comission %
            "OB_COMISS_MIN" => 3,
        );
        function Init()
        {
        }
        function GetConfig()
        {
        }
        function GetSettings($strSettings)
        {
        }
        function SetSettings($arSettings)
        {
        }
        function GetFeatures($arConfig)
        {
        }
        function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = \false)
        {
        }
        function Compability($arOrder, $arConfig)
        {
        }
        private static function getConfValue(&$arConfig, $key)
        {
        }
        private static function getAviableBoxes()
        {
        }
        private static function calculatePackPrice($arPackage, $profile, $arConfig)
        {
        }
        public static function calcVolumeWeightByVolume($volume)
        {
        }
        public static function getWeightForCalc($weight, $volume)
        {
        }
    }
    // flag 'write to log'. use CDeliveryEMS::__WriteToLog() for logging.
    class CDeliveryEMS
    {
        function Init()
        {
        }
        function GetConfig()
        {
        }
        function GetSettings($strSettings)
        {
        }
        function SetSettings($arSettings)
        {
        }
        function ConvertCharsetArray($arData, $charset_from, $charset_to)
        {
        }
        function JsObjectToPhp($data)
        {
        }
        function __EMSQuery($method, $arParams = array())
        {
        }
        function __GetLocation($location)
        {
        }
        function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = \false)
        {
        }
        function Compability($arOrder, $arConfig)
        {
        }
        function __IsRussian($arLocation)
        {
        }
        function __Write2Log($data)
        {
        }
    }
    class CDeliveryRUSSIANPOST
    {
        function Init()
        {
        }
        function GetConfig()
        {
        }
        function GetSettings($strSettings)
        {
        }
        function SetSettings($arSettings)
        {
        }
        function __GetLocation($location, $bGetZIP = \false)
        {
        }
        function __GetCountry($arLocation)
        {
        }
        function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = \false)
        {
        }
        function Compability($arOrder, $arConfig)
        {
        }
        function __IsRussian($arLocation)
        {
        }
        function __Write2Log($data)
        {
        }
        /**
         * @param $data
         * @return \Bitrix\Main\Entity\Result
         */
        protected static function sendRequestData($data, $method)
        {
        }
        public function getAdminMessage()
        {
        }
    }
    class CDeliveryPecom
    {
        public static $EXTRA_DEMENSIONS_WEIGHT = 1000;
        // (kg)
        public static $EXTRA_DIMENSIONS_SIZE = 5;
        // (m)
        public static $PAYER_SHOP = "1";
        public static $PAYER_BUYER = "2";
        function Init()
        {
        }
        function getExtraInfoParams($arOrder, $arConfig, $profileId, $siteId)
        {
        }
        function getConfig($siteId = \false)
        {
        }
        function getSettings($strSettings)
        {
        }
        function setSettings($arSettings)
        {
        }
        function getFeatures($arConfig)
        {
        }
        function calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = \false)
        {
        }
        function compability($arOrder, $arConfig)
        {
        }
        public static function getConfValue(&$arConfig, $key)
        {
        }
        public static function isConfCheckedVal(&$arConfig, $key)
        {
        }
        public static function getActionsList()
        {
        }
        protected static function sendRequest($apiLogin, $apiKey, $controller, $action, $data)
        {
        }
        protected static function getPhoneEmail($orderId)
        {
        }
        public static function executeAction($actionId, $profileId, $arOrder, $arConfig)
        {
        }
        protected static function getAviableBoxes()
        {
        }
        public function getAdminMessage()
        {
        }
        public static function execAdminAction()
        {
        }
        public static function getAdditionalInfoShipmentEdit(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public static function getAdditionalInfoShipmentView(\Bitrix\Sale\Shipment $shipment)
        {
        }
        protected static function isRequestSelfSent($shipmentId)
        {
        }
        protected static function getRequestSelfSentDate($shipmentId)
        {
        }
        public function processAdditionalInfoShipmentEdit(\Bitrix\Sale\Shipment $shipment, array $requestData)
        {
        }
    }
    class CDeliveryKazPost
    {
        private static $MAX_WEIGHT = 10000;
        // (g)
        private static $MAX_DIMENSIONS = array("800", "800", "500");
        //milimeters
        private static $BASE_WEIGHT = 1000;
        // Base weight gramm
        private static $TARIFS = array();
        private static $TARIF_IDX = 0;
        private static $TARIF_DEFAULT = 1;
        private static $TARIF_DESCR = 2;
        function Init()
        {
        }
        function GetConfig()
        {
        }
        function GetSettings($strSettings)
        {
        }
        function SetSettings($arSettings)
        {
        }
        function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = \false)
        {
        }
        function Compability($arOrder, $arConfig)
        {
        }
        private static function getConfValue(&$arConfig, $key)
        {
        }
        private static function getAviableBoxes()
        {
        }
        private static function calculatePackPrice($arPackage, $profile, $arConfig, $regionIdFrom, $regionIdTo)
        {
        }
    }
}
namespace Bitrix\Sale\Delivery\Pecom {
    class Replacement
    {
        public static function getRegionExceptions()
        {
        }
        public static function getDistrictMark()
        {
        }
    }
    class Request
    {
        /**
         * Base default URL
         * @const string
         */
        const API_BASE_URL = 'https://kabinet.pecom.ru/api/v1/';
        /**
         * User login
         * @var string
         */
        protected $apiLogin = '';
        /**
         * API access key
         * @var string
         */
        protected $apiKey = '';
        /**
         * Base URL
         * @var string
         */
        protected $apiUrl = '';
        public function __construct($apiLogin, $apiKey, $apiUrl = '')
        {
        }
        /**
         * Calls API
         * @param string $controller Group name
         * @param string $action Method name
         * @param mixed $data Input data
         * @param bool $assoc Result format. true - array, false - object
         * @return mixed Result
         * @throws \Exception Case error during requesting
         */
        public function send($controller, $action, $data, $assoc = true)
        {
        }
        /**
         * Returns full URL for API request
         * @param string $controller Group name
         * @param string $action Method name
         * @return string Full URL
         */
        protected function constructApiUrl($controller, $action)
        {
        }
    }
    /**
     * Class Calculator
     * @package Bitrix\Sale\Delivery\Pecom
     */
    class Calculator
    {
        protected $arConfig = array();
        protected $arOrder = array();
        protected $profileId = "";
        protected $packsCount = 0;
        /**
         * @param $arOrder
         * @param $arConfig
         * @param string $profileId
         */
        public function __construct($arOrder, $arConfig, $profileId = "")
        {
        }
        /**
         * Returns array wich can include "avia" and/or "auto" or be empty
         * @return array
         */
        public function getCompabilityInfo()
        {
        }
        /**
         * Returns calculations results
         * @return array
         */
        public function getPriceInfo()
        {
        }
        protected function parseCalcResult($jsonInfo)
        {
        }
        protected static function send($strParams)
        {
        }
        protected function createCompParamsStr()
        {
        }
        protected function createCalcParams()
        {
        }
    }
    /**
     * Class Adapter
     * @package Bitrix\Sale\Delivery\Pecom
     */
    class Adapter
    {
        public static function preparePreregistrationReqData($arOrder, $profileId, $arConfig)
        {
        }
        protected static function getUpperCityId($locationId)
        {
        }
        protected static function mapLocation2($internalLocationId)
        {
        }
        /**
         * Returns Pecom .location id
         * @param $locationId - Bitrix location id
         * @param bool $cleanCache
         * @return array - Pecom location(s) id
         */
        public static function mapLocation($locationId, $cleanCache = false)
        {
        }
        public static function getAllPecomCities($cleanCache = false)
        {
        }
        public static function getCityNameFromLocationId($locationId)
        {
        }
        public static function getFilialAndCity($cityId)
        {
        }
        public static function prepareSubscribeReqData($arCargoCodes, $email = "", $phone = "")
        {
        }
    }
}
namespace Bitrix\Sale\Delivery {
    /**
     * Class ExternalLocationMap
     * @package Bitrix\Sale\Delivery
     * Helper class for locations mapping.
     */
    class ExternalLocationMap
    {
        //Dlivery idtifyer, stored in \Bitrix\Sale\Location\ExternalServiceTable : CODE
        const EXTERNAL_SERVICE_CODE = '';
        //Path to file (if exist) were we can get prepared locations map
        const CSV_FILE_PATH = '';
        const CITY_NAME_IDX = 0;
        const REGION_NAME_IDX = 1;
        const CITY_XML_ID_IDX = 2;
        /**
         * Abstract.
         * Must return in Result->data all locations from external delivery service.
         * @return Result.
         * @throws SystemException
         */
        protected static function getAllLocations()
        {
        }
        /**
         * Returns internal location id
         * @param string $externalCode
         * @return int
         */
        public static function getInternalId($externalCode)
        {
        }
        /**
         * Returns external location id
         * @param int $locationId
         * @return int|string
         */
        public static function getExternalId($locationId)
        {
        }
        protected static function getUpperCityExternalId($locationId, $srvId)
        {
        }
        /**
         * Returns external location city id
         * @param int $locationId
         * @return int|string
         */
        public static function getCityId($locationId)
        {
        }
        /**
         * Install locations map.
         * @return Result
         */
        public static function install()
        {
        }
        /**
         * Uninstall locations map.
         * @return Result
         * @throws \Exception
         */
        public static function unInstall()
        {
        }
        /**
         * Check locations map was sat.
         * @return bool
         */
        public static function isInstalled()
        {
        }
        /**
         * Refresh locations map.
         * @return Result
         * @throws ArgumentNullException
         */
        public static function refresh()
        {
        }
        /**
         * Import locations map from csv file to database.
         * @param string $path
         * @return bool|int Quantity of mapped locations.
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Exception
         */
        public static function importFromCsv($path)
        {
        }
        /**
         * Export locations map from database to file, csv format.
         * @param string $path
         * @return bool|int
         */
        public static function exportToCsv($path)
        {
        }
        /**
         * If exist returns id, if not exist create it
         * @return int External service Id
         * @throws \Exception
         */
        public static function getExternalServiceId()
        {
        }
        /**
         * Decodes data from utf8 if we need
         * @param $str
         * @return bool|string
         */
        protected static function utfDecode($str)
        {
        }
        /**
         * Convert find location by city and region names and add mapping to base
         * @param array $cities
         * @return Result
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Exception
         */
        protected static function setMap(array $cities)
        {
        }
        /**
         * @param int $srvId
         * @param int $locationId
         * @param string $xmlId
         * @param bool $updateExist
         * @return \Bitrix\Main\Entity\AddResult|\Bitrix\Main\Entity\Result|\Bitrix\Main\Entity\UpdateResult
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Exception
         */
        public static function setExternalLocation2($srvId, $locationId, $xmlId, $updateExist = false)
        {
        }
        /**
         * @param int $srvId
         * @param int $locationId
         * @param string $xmlId
         * @param bool $updateExist
         * @return bool
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Exception
         */
        public static function setExternalLocation($srvId, $locationId, $xmlId, $updateExist = false)
        {
        }
        protected static function isNormalizedTableFilled()
        {
        }
        /**
         * Fill table b_sale_hdaln with locations with normalized names
         * @param int|bool $startId
         * @param int $timeout
         * @return int
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public static function fillNormalizedTable($startId = false, $timeout = 0)
        {
        }
        /**
         * @param string $name Location name.
         * @param string $city Citry name.
         * @param string $subregion Subregions name.
         * @param string $region Region name.
         * @param string $country Country name.
         * @param bool $exactOnly If we search exact name, or partly coincidence is enought
         * @return int
         * @throws \Bitrix\Main\Db\SqlQueryException
         * @throws \Exception
         */
        public static function getLocationIdByNames($name, $city, $subregion, $region, $country = '', $exactOnly = false)
        {
        }
        protected static function getIdByMargin($parentLeft, $parentRight, $lMargins)
        {
        }
        protected static function getNameByMargin($parentLeft, $parentRight, $lMargins)
        {
        }
    }
}
namespace Bitrix\Sale\Delivery\Pecom {
    /**
     * Class Location
     * @package Bitrix\Sale\Delivery\Pecom
     */
    class Location extends \Bitrix\Sale\Delivery\ExternalLocationMap
    {
        const EXTERNAL_SERVICE_CODE = 'PECOM';
        const CSV_FILE_PATH = '/bitrix/modules/sale/ru/delivery/pecom/location.csv';
        public static function compare($startKey = 0, $timeout = 0, $updateExist = false)
        {
        }
        /**
         * @param array $locations
         * @param int $srvId
         * @param int $startKey
         * @param int $timeout
         * @param bool $updateExist
         * @return int Last processed id.
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentException
         */
        protected static function mapByNames($locations, $srvId, $startKey = 0, $timeout = 0, $updateExist = false)
        {
        }
        protected static function setMap(array $cities)
        {
        }
        /**
         * @return Result
         */
        protected static function getAllLocations()
        {
        }
        /**
         * Find regions by city names.
         * @param array $cityNames
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        protected static function getParents(array $cityNames)
        {
        }
        /**
         * SOKOLOVSKOE (GULKELIVICHSKIY R-N) => GULKELIVICHSKIY R-N
         * @param $cityName
         * @return string
         */
        protected static function extractDistrict(&$cityName)
        {
        }
    }
}
namespace {
    // first check string - to determine whether delivery price is in response
    //define(
    //	'DELIVERY_CPCR_VALUE_CHECK_REGEXP',
    //	'/"(result[2]{0,1})": \[([^\]]*)\]/i'
    //); // second check string - regexp to parse final price from response
    class CDeliveryCPCR
    {
        function Init()
        {
        }
        function GetConfig()
        {
        }
        function GetSettings($strSettings)
        {
        }
        function SetSettings($arSettings)
        {
        }
        function __GetLocation($location)
        {
        }
        function Calculate($profile, $arConfig, $arOrder, $STEP)
        {
        }
        function Compability($arOrder)
        {
        }
        function __Write2Log($data)
        {
        }
        public function getAdminMessage()
        {
        }
    }
    class CDeliveryRusPost
    {
        private static $MAX_WEIGHT_HEAVY = 20000;
        // (g)
        private static $MAX_WEIGHT = 10000;
        // (g)
        private static $ZONES_COUNT = 5;
        // Tarif zones count
        private static $BASE_WEIGHT = 500;
        // Base weight gram
        //1.1	zone_number => tarif_number
        private static $TARIF_LESS_500 = array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5);
        private static $TARIF_MORE_500 = array(1 => 6, 2 => 7, 3 => 8, 4 => 9, 5 => 10);
        private static $TARIF_HEAVY_WEIGHT = 11;
        //1.2
        private static $TARIF_FRAGILE = 14;
        //1.5
        private static $TARIF_DECLARED_VAL = 20;
        //4.
        private static $TARIF_AVIA_STANDART = 15;
        //2.1
        private static $TARIF_AVIA_HEAVY = 16;
        //2.2
        private static $MAX_DIMENSIONS = array("425", "265", "380");
        const LOCATION_CODE_RUSSIA = "0000028023";
        function Init()
        {
        }
        function GetConfig($siteId = \false)
        {
        }
        function GetSettings($strSettings)
        {
        }
        function SetSettings($arSettings)
        {
        }
        function GetFeatures($arConfig)
        {
        }
        function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = \false)
        {
        }
        function Compability($arOrder, $arConfig)
        {
        }
        /* Particular services helper functions*/
        public function importZonesFromCsv(array $arShopLocation)
        {
        }
        /**
         * If zip codes imported to locations, we try to link regions to zones
         * using file /bitrix/modules/sale/delivery/rus_post/zip_zones.csv created
         * from http://info.russianpost.ru/database/tzones.html
         */
        public function importZonesFromZipCsv()
        {
        }
        public static function getTarifNumFromCsv(array $arShopLocation)
        {
        }
        public static function getTarifsByRegionFromCsv(array $arShopLocation)
        {
        }
        private static function getConfValue(&$arConfig, $key)
        {
        }
        private static function isConfCheckedVal(&$arConfig, $key)
        {
        }
        private static function isHeavyEnabled(&$arConfig)
        {
        }
        private static function getAviableBoxes()
        {
        }
        private static function getLocationToCode($arLocationTo)
        {
        }
        private static function calculatePackPrice($arPackage, $profile, $arConfig, $arLocationTo)
        {
        }
        protected static function getRegionCodeByOldName($regionLangName)
        {
        }
    }
    class CSaleAffiliatePlan extends \CAllSaleAffiliatePlan
    {
        function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
    }
    class CSaleAffiliateTransact extends \CAllSaleAffiliateTransact
    {
        function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function Add($arFields)
        {
        }
    }
    class CSaleOrderChange extends \CAllSaleOrderChange
    {
        public function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        protected static function getEntity()
        {
        }
    }
    class CSaleStoreBarcode extends \CAllSaleStoreBarcode
    {
        public function Add($arFields)
        {
        }
        function Update($ID, $arFields, $bDateUpdate = \true)
        {
        }
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CSaleGroupAccessToSite extends \CAllSaleGroupAccessToSite
    {
        function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function Add($arFields)
        {
        }
    }
    class CSaleGroupAccessToFlag extends \CAllSaleGroupAccessToFlag
    {
        function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function Add($arFields)
        {
        }
    }
    /** @deprecated */
    class CSalePaySystemAction extends \CAllSalePaySystemAction
    {
    }
    class CSaleUserTransact extends \CAllSaleUserTransact
    {
        public static function GetByID($ID)
        {
        }
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
    }
    class CSaleDiscount extends \CAllSaleDiscount
    {
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult|mixed
         */
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult|mixed
         */
        public static function GetDiscountGroupList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CSaleProduct extends \CALLSaleProduct
    {
        /*
         * Returns list of products ordered with the specific product
         *
         * @param int $ID - product id (sku ID or parent product ID are also supported)
         * @param int $minCNT - number of times products should have been ordered to be returned in the result
         * @param int $limit - serialized data saved in the database for the record of this type
         * @param boolean $getParentOnly - return only parent product ID
         * @return dbres
         */
        function GetProductList($ID, $minCNT, $limit, $getParentOnly = \false)
        {
        }
        function GetBestSellerList($by = "AMOUNT", $arFilter = array(), $arOrderFilter = array(), $limit = 0)
        {
        }
        function GetFilterOperation($key, $value)
        {
        }
    }
    /**
     * Class CSaleViewedProduct
     * @deprecated
     */
    class CSaleViewedProduct extends \CAllSaleViewedProduct
    {
        /**
         * The function add viewed product
         *
         * @param array $arFields - params for add
         * @return true false
         */
        public static function Add($arFields)
        {
        }
        /**
         * Return viewed products.
         *
         * @param array $arOrder				Sorting params.
         * @param array $arFilter				Filter params.
         * @param bool|array $arGroupBy			Group params.
         * @param bool|array $arNavStartParams	Navy params.
         * @param array $arSelectFields			Select fields.
         * @return bool|CDBResult
         */
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        /**
         * The function delete old viewed
         *
         * @param
         * @return true false
         */
        public function _ClearViewed()
        {
        }
        /**
         * The function clear viewed product for user
         *
         * @param int $FUSER_ID - inner basket user code
         * @param int $LIMIT - fields count for delete
         * @return true false
         */
        public function DeleteForUser($FUSER_ID, $LIMIT = \NULL)
        {
        }
    }
    class CSaleOrder extends \CAllSaleOrder
    {
        function Add($arFields)
        {
        }
        function Update($ID, $arFields, $bDateUpdate = \true)
        {
        }
        function PrepareGetListArray($key, &$arFields, &$arPropIDsTmp)
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @param array $arOptions
         * @return bool|CDBResult
         */
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array(), $arOptions = array())
        {
        }
        function GetLockStatus($ID, &$lockedBY, &$dateLock)
        {
        }
        /*
         * Change order to add stories
         *
         * @param array $arOrderOld old order fields
         * @return bool true
         */
        public function AddOrderHistory($OldFields, $NewFields)
        {
        }
    }
    class CSaleOrderUserPropsValue extends \CAllSaleOrderUserPropsValue
    {
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function Add($arFields)
        {
        }
    }
    class CSaleUserCards extends \CAllSaleUserCards
    {
        function GetByID($ID)
        {
        }
        function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
    }
    /** @deprecated */
    class CSaleDelivery extends \CAllSaleDelivery
    {
        /** @deprecated  */
        function PrepareCurrency4Where($val, $key, $operation, $negative, $field, &$arField, &$arFilter)
        {
        }
        /** @deprecated */
        function PrepareLocation4Where($val, $key, $operation, $negative, $field, &$arField, &$arFilter)
        {
        }
    }
    class CSaleAffiliateTier extends \CAllSaleAffiliateTier
    {
        function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function Add($arFields)
        {
        }
    }
    class CSaleLocationGroup extends \CAllSaleLocationGroup
    {
        function GetList($arOrder = array("NAME" => "ASC"), $arFilter = array(), $strLang = \LANGUAGE_ID)
        {
        }
        function GetByID($ID, $strLang = \LANGUAGE_ID)
        {
        }
        function Add($arFields)
        {
        }
    }
    class CSaleTaxRate extends \CAllSaleTaxRate
    {
        function Add($arFields, $arOptions = array())
        {
        }
        public static function GetList($arOrder = array("APPLY_ORDER" => "ASC"), $arFilter = array())
        {
        }
    }
    class CSaleUserAccount extends \CAllSaleUserAccount
    {
        //********** SELECT **************//
        public static function GetByID($ID)
        {
        }
        public static function GetByUserID($userID, $currency)
        {
        }
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
    }
    class CSaleAuxiliary extends \CAllSaleAuxiliary
    {
        //********** SELECT **************//
        function GetByID($ID)
        {
        }
        function GetByParams($userID, $itemMD5)
        {
        }
        function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function DeleteByTime($periodLength, $periodType)
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
    }
    /** @deprecated */
    class CSaleDeliveryHandler extends \CAllSaleDeliveryHandler
    {
    }
    class CSaleBasket extends \CAllSaleBasket
    {
        /**
         * The function remove old subscribe product
         *
         * @param string $LID - site for cleaning
         * @return true false
         */
        function _ClearProductSubscribe($LID)
        {
        }
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function GetPropsList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        //************** ADD, UPDATE, DELETE ********************//
        /**
         * Adds item to the basket.
         * Automatically adds Set items to the basket if Set parents is added
         *
         * @param $arFields
         * @return mixed - int ID or false
         */
        function Add($arFields)
        {
        }
        function Delete($ID)
        {
        }
        function DeleteAll($FUSER_ID = 0, $bIncOrdered = \false)
        {
        }
        function GetLeave($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CSaleUser extends \CAllSaleUser
    {
        function Add()
        {
        }
        function _Add($arFields)
        {
        }
        function DeleteOld($nDays)
        {
        }
        function GetBuyersList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function GetUserID($intFUserID)
        {
        }
    }
    class CSaleTax extends \CAllSaleTax
    {
        function Add($arFields)
        {
        }
    }
    /***********************************************************************/
    /***********  CSaleRecurring  ******************************************/
    /***********************************************************************/
    class CSaleRecurring extends \CAllSaleRecurring
    {
        function GetByID($ID)
        {
        }
        function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function Add($arFields)
        {
        }
    }
    class CSaleOrderTax extends \CAllSaleOrderTax
    {
        public static function GetList($arOrder = array("TAX_NAME" => "ASC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function Add($arFields)
        {
        }
    }
    class CSaleLocation extends \CAllSaleLocation
    {
        public static function GetList($arOrder = array("SORT" => "ASC", "COUNTRY_NAME_LANG" => "ASC", "CITY_NAME_LANG" => "ASC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function GetByID($ID, $strLang = \LANGUAGE_ID)
        {
        }
        public static function GetCountryList($arOrder = array("NAME_LANG" => "ASC"), $arFilter = array(), $strLang = \LANGUAGE_ID)
        {
        }
        /**
         * The function select all region
         *
         * @param array $arOrder sorting an array of results
         * @param array $arFilter filtered an array of results
         * @param string $strLang language regions of the sample
         * @return true false
         */
        public static function GetRegionList($arOrder = array("NAME_LANG" => "ASC"), $arFilter = array(), $strLang = \LANGUAGE_ID)
        {
        }
        /**
         * The function select all cities
         *
         * @param array $arOrder sorting an array of results
         * @param array $arFilter filtered an array of results
         * @param string $strLang language regions of the sample
         * @return true false
         */
        public static function GetCityList($arOrder = array("NAME_LANG" => "ASC"), $arFilter = array(), $strLang = \LANGUAGE_ID)
        {
        }
        // have to use old table as a temporal place to store countries, kz add of a country doesn`t mean add of a location
        public static function AddCountry($arFields)
        {
        }
        // have to use old table as a temporal place to store cities, kz we don`t know yet which country\region a newly-created city belongs to
        public static function AddCity($arFields)
        {
        }
        // have to use old table as a temporal place to store region, kz we don`t know yet which country a newly-created region belongs to
        public static function AddRegion($arFields)
        {
        }
        public static function AddLocation($arFields)
        {
        }
    }
    /** @deprecated */
    class CSaleOrderPropsValue extends \CAllSaleOrderPropsValue
    {
    }
    class CSaleAffiliatePlanSection extends \CAllSaleAffiliatePlanSection
    {
        function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function Add($arFields)
        {
        }
    }
    class CSaleOrderPropsGroup extends \CAllSaleOrderPropsGroup
    {
        function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function Add($arFields)
        {
        }
    }
    /** @deprecated */
    class CSalePaySystem extends \CAllSalePaySystem
    {
    }
    class CSaleAffiliate extends \CAllSaleAffiliate
    {
        function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
    }
    class CSalePersonType extends \CAllSalePersonType
    {
        function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function Add($arFields)
        {
        }
    }
    class CSaleOrderPropsVariant extends \CAllSaleOrderPropsVariant
    {
        function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function Add($arFields)
        {
        }
    }
    class CSaleOrderUserProps extends \CAllSaleOrderUserProps
    {
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function Add($arFields)
        {
        }
    }
}
namespace Bitrix\Sale {
    /**
     * Class OrderFacade
     * @package Bitrix\Sale
     */
    class OrderFacade
    {
        /**
         * @param $id
         * @return Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectNotFoundException
         * @throws \Bitrix\Main\SystemException
         */
        public static function payOrder($id)
        {
        }
        /**
         * @param $id
         * @return Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ObjectNotFoundException
         */
        public static function cancelPayOrder($id)
        {
        }
        /**
         * @param $id
         * @return Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\NotSupportedException
         * @throws \Bitrix\Main\ObjectNotFoundException
         * @throws \Bitrix\Main\SystemException
         */
        public static function deductOrder($id)
        {
        }
        /**
         * @param $id
         * @return Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\NotSupportedException
         * @throws \Bitrix\Main\SystemException
         */
        public static function cancelDeductOrder($id)
        {
        }
        /**
         * @param Order $order
         * @return Payment|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectNotFoundException
         * @throws \Bitrix\Main\SystemException
         */
        protected static function createFinalPayment(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param Order $order
         * @return Shipment
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\NotSupportedException
         * @throws \Bitrix\Main\ObjectNotFoundException
         * @throws \Bitrix\Main\SystemException
         */
        protected static function createFinalShipment(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param Payment $payment
         * @return array|int
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        protected static function getPaySystemId(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @return int
         * @throws \Bitrix\Main\SystemException
         */
        protected static function getDeliveryId()
        {
        }
    }
}
namespace Bitrix\Sale\Internals {
    /**
     * Class CollectionBase
     * @package Bitrix\Sale\Internals
     */
    abstract class CollectionBase implements \ArrayAccess, \Countable, \IteratorAggregate
    {
        protected $collection = array();
        /**
         * @return \ArrayIterator
         */
        public function getIterator()
        {
        }
        /**
         * Whether a offset exists
         */
        public function offsetExists($offset)
        {
        }
        /**
         * Offset to retrieve
         */
        public function offsetGet($offset)
        {
        }
        /**
         * Offset to set
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * Offset to unset
         */
        public function offsetUnset($offset)
        {
        }
        /**
         * Count elements of an object
         */
        public function count()
        {
        }
        /**
         * Return the current element
         */
        public function current()
        {
        }
        /**
         * Move forward to next element
         */
        public function next()
        {
        }
        /**
         * Return the key of the current element
         */
        public function key()
        {
        }
        /**
         * Checks if current position is valid
         */
        public function valid()
        {
        }
        /**
         * Rewind the Iterator to the first element
         */
        public function rewind()
        {
        }
        /**
         * Checks if collection is empty.
         *
         * @return bool
         */
        public function isEmpty()
        {
        }
    }
    /**
     * Class EntityCollection
     * @package Bitrix\Sale\Internals
     */
    abstract class EntityCollection extends \Bitrix\Sale\Internals\CollectionBase
    {
        private $index = -1;
        protected $isClone = false;
        protected $anyItemDeleted = false;
        /**
         * EntityCollection constructor.
         */
        protected function __construct()
        {
        }
        /**
         * @internal
         *
         * @param CollectableEntity $item
         * @param null $name
         * @param null $oldValue
         * @param null $value
         * @return Sale\Result
         */
        public function onItemModify(\Bitrix\Sale\Internals\CollectableEntity $item, $name = null, $oldValue = null, $value = null)
        {
        }
        /**
         * @throws Main\NotImplementedException
         */
        public static function getRegistryType()
        {
        }
        /**
         * @internal
         *
         * @param $index
         * @return mixed
         * @throws Main\ArgumentOutOfRangeException
         */
        public function deleteItem($index)
        {
        }
        /**
         * @param CollectableEntity $item
         * @return CollectableEntity
         * @throws Main\ArgumentTypeException
         */
        protected function addItem(\Bitrix\Sale\Internals\CollectableEntity $item)
        {
        }
        /**
         * @return int
         */
        protected function createIndex()
        {
        }
        /**
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectNotFoundException
         */
        public function clearCollection()
        {
        }
        /**
         * @return array
         */
        protected function getDeletableItems()
        {
        }
        /**
         * @return void
         */
        protected function callEventOnBeforeCollectionClear()
        {
        }
        /**
         * @param $id
         *
         * @return CollectableEntity|bool
         * @throws Main\ArgumentNullException
         */
        public function getItemById($id)
        {
        }
        /**
         * @param $id
         *
         * @return bool|int|null
         * @throws Main\ArgumentNullException
         */
        public function getIndexById($id)
        {
        }
        /**
         * @param $index
         *
         * @return CollectableEntity|null
         * @throws Main\ArgumentNullException
         */
        public function getItemByIndex($index)
        {
        }
        /**
         * @return Entity
         */
        protected abstract function getEntityParent();
        /**
         * @param bool $isMeaningfulField
         * @return bool
         */
        public function isStartField($isMeaningfulField = false)
        {
        }
        /**
         * @return bool
         */
        public function clearStartField()
        {
        }
        /**
         * @return bool
         */
        public function hasMeaningfulField()
        {
        }
        /**
         * @param bool $hasMeaningfulField
         * @return Sale\Result
         */
        public function doFinalAction($hasMeaningfulField = false)
        {
        }
        /**
         * @return bool
         */
        public function isMathActionOnly()
        {
        }
        /**
         * @param bool|false $value
         * @return bool
         */
        public function setMathActionOnly($value = false)
        {
        }
        /**
         * @return bool
         */
        public function isChanged()
        {
        }
        /**
         * @return Sale\Result
         */
        public function verify()
        {
        }
        /**
         * @return bool
         */
        public function isClone()
        {
        }
        /**
         * @return bool
         */
        public function isAnyItemDeleted()
        {
        }
        /**
         * @param $value
         *
         * @return bool
         */
        protected function setAnyItemDeleted($value)
        {
        }
        /**
         * @internal
         */
        public function clearChanged()
        {
        }
        /**
         * @internal
         * @param \SplObjectStorage $cloneEntity
         *
         * @return EntityCollection
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
    }
}
namespace Bitrix\Sale {
    /**
     * Class ShipmentCollection
     * @package Bitrix\Sale
     */
    class ShipmentCollection extends \Bitrix\Sale\Internals\EntityCollection
    {
        /** @var Order */
        protected $order;
        /**
         * Getting the parent entity
         * @return Order - order entity
         */
        protected function getEntityParent()
        {
        }
        /**
         *
         * Deletes all shipments and creates system shipment containing the whole basket
         *
         * @internal
         *
         * @return Result
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public function resetCollection()
        {
        }
        /**
         * @return array|Internals\CollectionFilterIterator
         */
        protected function getDeletableItems()
        {
        }
        /**
         * Create new shipment
         *
         * @param Delivery\Services\Base|null $delivery
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\ObjectNotFoundException
         */
        public function createItem(\Bitrix\Sale\Delivery\Services\Base $delivery = null)
        {
        }
        /**
         * Adding shipping to the collection
         *
         * @param Internals\CollectableEntity $shipment
         * @return Internals\CollectableEntity|Shipment
         * @throws Main\ObjectNotFoundException
         */
        protected function addItem(\Bitrix\Sale\Internals\CollectableEntity $shipment)
        {
        }
        /**
         * @internal
         *
         * @param $index
         * @return mixed|void
         * @throws Main\ArgumentOutOfRangeException
         */
        public function deleteItem($index)
        {
        }
        /**
         * Processing changes the essence of the shipment fields
         *
         * @param Internals\CollectableEntity $item
         * @param null $name
         * @param null $oldValue
         * @param null $value
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectException
         * @throws Main\ObjectNotFoundException
         */
        public function onItemModify(\Bitrix\Sale\Internals\CollectableEntity $item, $name = null, $oldValue = null, $value = null)
        {
        }
        /**
         * Getting entity of the order
         *
         * @return Order
         */
        public function getOrder()
        {
        }
        /**
         * Loaded from the database collection shipments Order
         *
         * @param Order $order
         * @return ShipmentCollection
         * @throws Main\ArgumentNullException
         */
        public static function load(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @return ShipmentCollection
         */
        private static function createShipmentCollectionObject()
        {
        }
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * Getting the system shipment
         *
         * @return Shipment
         */
        public function getSystemShipment()
        {
        }
        /**
         * Check whether there is a system collection of shipping
         *
         * @return bool
         */
        public function isExistsSystemShipment()
        {
        }
        /**
         * Saving data collection
         *
         * @return Entity\Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectNotFoundException
         */
        public function save()
        {
        }
        /**
         * The attachment order to the collection
         *
         * @param OrderBase $order
         */
        public function setOrder(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @internal
         * @param Shipment $parentShipment
         * @param Shipment $childShipment
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         */
        public function cloneShipment(\Bitrix\Sale\Shipment $parentShipment, \Bitrix\Sale\Shipment $childShipment)
        {
        }
        /**
         * Fields that are cloned into the system from a conventional shipping
         *
         * @return array
         */
        protected static function getClonedFields()
        {
        }
        /**
         * Is the entire collection shipped
         *
         * @return bool
         */
        public function isShipped()
        {
        }
        /**
         * Is the entire collection shipped
         *
         * @return bool
         */
        public function hasShipped()
        {
        }
        /**
         * Is the entire collection of marked
         *
         * @return bool
         */
        public function isMarked()
        {
        }
        /**
         * Is the entire collection reserved
         *
         * @return bool
         */
        public function isReserved()
        {
        }
        /**
         * Is the entire collection allowed for shipment
         *
         * @return bool
         */
        public function isAllowDelivery()
        {
        }
        /**
         * @return bool
         */
        public function hasAllowDelivery()
        {
        }
        /**
         * Is the a system shipped empty
         *
         * @return bool
         */
        public function isEmptySystemShipment()
        {
        }
        /**
         * Resolution fact shipment to shipment collection
         *
         * @return Result
         */
        public function allowDelivery()
        {
        }
        /**
         * Prohibition upon shipment to shipment collection
         * @return Result
         */
        public function disallowDelivery()
        {
        }
        /**
         * Trying to reserve the contents of the shipment collection
         * @return Result
         * @throws Main\ObjectNotFoundException
         */
        public function tryReserve()
        {
        }
        /**
         * Trying to reserve the contents of the shipment collection
         *
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public function tryUnreserve()
        {
        }
        /**
         * @internal
         *
         * @param BasketItem $basketItem
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public function onBeforeBasketItemDelete(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param $action
         * @param BasketItemBase $basketItem
         * @param null $name
         * @param null $oldValue
         * @param null $value
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public function onBasketModify($action, \Bitrix\Sale\BasketItemBase $basketItem, $name = null, $oldValue = null, $value = null) : \Bitrix\Sale\Result
        {
        }
        /**
         * @param BasketItem $basketItem
         * @return Shipment|null
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectNotFoundException
         */
        private function getItemForAutoEdit(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param BasketItem $basketItem
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectNotFoundException
         */
        private function isAllowAutoEdit(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param BasketItem $basketItem
         * @param $value
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectNotFoundException
         */
        private function checkDistributedQuantity(\Bitrix\Sale\BasketItem $basketItem, $value)
        {
        }
        /**
         * @param $name
         * @param $oldValue
         * @param $value
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public function onOrderModify($name, $oldValue, $value)
        {
        }
        /**
         * @return Result
         * @throws Main\NotSupportedException
         */
        public function refreshData()
        {
        }
        /**
         * @return Result
         */
        public function calculateDelivery()
        {
        }
        /**
         *
         */
        public function resetData()
        {
        }
        /**
         * @param BasketItem $basketItem
         * @return float|int
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectNotFoundException
         */
        public function getBasketItemDistributedQuantity(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param BasketItem $basketItem
         * @param bool|false $includeSystemShipment
         *
         * @return bool
         * @throws Main\ObjectNotFoundException
         */
        public function isExistBasketItem(\Bitrix\Sale\BasketItem $basketItem, $includeSystemShipment = false)
        {
        }
        /**
         * @return float
         */
        public function getBasePriceDelivery()
        {
        }
        /**
         * @return float
         */
        public function getPriceDelivery()
        {
        }
        /**
         * @param $itemCode
         * @return Shipment|null
         */
        public function getItemByShipmentCode($itemCode)
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public function verify()
        {
        }
        /**
         * @internal
         * @param \SplObjectStorage $cloneEntity
         *
         * @return ShipmentCollection
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * @param $value
         *
         * @return string
         */
        public function getErrorEntity($value)
        {
        }
        /**
         * @param $value
         *
         * @return string
         */
        public function canAutoFixError($value)
        {
        }
        /**
         * @param ShipmentCollection $collection
         *
         * @return Result
         */
        public function updateReservedFlag(\Bitrix\Sale\ShipmentCollection $collection)
        {
        }
        /**
         * @return string
         */
        private static function getItemCollectionClassName()
        {
        }
        /**
         * @param array $parameters
         * @return Main\DB\Result
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * @param $primary
         * @return Entity\DeleteResult
         */
        protected function deleteInternal($primary)
        {
        }
        /**
         * @param $shipmentId
         */
        protected function deleteExtraServiceInternal($shipmentId)
        {
        }
        /**
         * @return Internals\CollectionFilterIterator
         */
        public function getNotSystemItems()
        {
        }
    }
    class EntityMarker
    {
        const ENTITY_MARKED_TYPE_AUTO = 'AUTO';
        const ENTITY_MARKED_TYPE_MANUAL = 'MANUAL';
        const ENTITY_TYPE_ORDER = 'ORDER';
        const ENTITY_TYPE_BASKET_ITEM = 'BASKET_ITEM';
        const ENTITY_TYPE_SHIPMENT = 'SHIPMENT';
        const ENTITY_TYPE_PAYMENT = 'PAYMENT';
        const ENTITY_TYPE_PROPERTY_VALUE = 'PROPERTY_VALUE';
        const ENTITY_SUCCESS_CODE_FAIL = 'N';
        const ENTITY_SUCCESS_CODE_DONE = 'Y';
        /** @var array $pool */
        protected static $pool = array();
        /**
         * @param OrderBase $order
         * @param Internals\Entity $entity
         * @param Result $result
         */
        public static function addMarker(\Bitrix\Sale\OrderBase $order, \Bitrix\Sale\Internals\Entity $entity, \Bitrix\Sale\Result $result)
        {
        }
        /**
         * @param $id
         * @param array $values
         * @param Order $order
         * @param Internals\Entity $entity
         *
         * @return Result
         */
        public static function updateMarker($id, array $values, \Bitrix\Sale\Order $order, \Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param OrderBase $order
         * @param $entityType
         * @param array $values
         *
         * @return bool
         */
        protected static function addItem(\Bitrix\Sale\OrderBase $order, $entityType, array $values)
        {
        }
        /**
         * @param $id
         * @param $values
         * @param Order $order
         * @param $entityType
         *
         * @return Result
         */
        protected static function updateItem($id, $values, \Bitrix\Sale\Order $order, $entityType)
        {
        }
        /**
         * @param int $orderCode
         * @param Internals\Entity|null $entity
         *
         * @return array|null
         */
        public static function getMarker($orderCode, \Bitrix\Sale\Internals\Entity $entity = null)
        {
        }
        /**
         * @return array
         */
        protected static function getEntityTypeList()
        {
        }
        /**
         * @param Internals\Entity $entity
         *
         * @return null|string
         */
        protected static function getEntityType(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param null|Order $order
         *
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws \Exception
         */
        public static function saveMarkers(\Bitrix\Sale\Order $order = null)
        {
        }
        protected static function resetMarkers($orderCode = null)
        {
        }
        /**
         * @param Order $order
         * @param $markerId
         *
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        public static function tryFixErrorsByOrder(\Bitrix\Sale\Order $order, $markerId = null)
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        public static function tryFixErrors()
        {
        }
        public static function loadFromDb(array $filter)
        {
        }
        /**
         * @param Order $order
         * @param string $entityType
         * @param int $entityId
         *
         * @return Internals\Entity
         * @throws Main\ArgumentNullException
         */
        public static function getEntity(\Bitrix\Sale\Order $order, $entityType, $entityId)
        {
        }
        /**
         * @param array $parameters
         *
         * @return Main\DB\Result
         * @throws Main\ArgumentException
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * @param $id
         *
         * @return Main\Entity\DeleteResult
         * @throws Main\ArgumentNullException
         * @throws \Exception
         */
        public static function delete($id)
        {
        }
        protected static function addInternal(array $data)
        {
        }
        protected static function updateInternal($primary, array $data)
        {
        }
        /**
         * @param Order $order
         * @param int $id
         * @param string $entityType
         * @param int $entityId
         * @param string $code
         *
         * @return string|null
         */
        public static function getPoolItemSuccess(\Bitrix\Sale\Order $order, $id, $entityType, $entityId, $code)
        {
        }
        public static function hasErrors(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param null|OrderBase $order
         *
         * @return Result
         */
        public static function getPoolAsResult(\Bitrix\Sale\OrderBase $order = null)
        {
        }
        private static function getFieldsDuplicateCheck()
        {
        }
        /**
         * @param $id
         *
         * @return bool
         */
        public static function deleteByOrderId($id)
        {
        }
        /**
         * @param Internals\Entity $entity
         *
         * @return bool
         */
        public static function deleteByEntity(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        public static function deleteByFilter(array $values)
        {
        }
        /**
         * @param Order $order
         *
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\NotSupportedException
         * @throws \Exception
         */
        public static function refreshMarkers(\Bitrix\Sale\Order $order)
        {
        }
    }
}
namespace Bitrix\Sale\Internals {
    abstract class Entity
    {
        /** @var Fields */
        protected $fields;
        protected $eventName = null;
        protected function __construct(array $fields = array())
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getRegistryEntity()
        {
        }
        /**
         * @return array
         *
         * @throws Main\NotImplementedException
         */
        public static function getAvailableFields()
        {
        }
        /**
         * @return array
         */
        public static function getCustomizableFields() : array
        {
        }
        /**
         * @return array|null
         * @throws Main\NotImplementedException
         */
        public static function getAvailableFieldsMap()
        {
        }
        /**
         * @return array
         *
         * @throws Main\NotImplementedException
         */
        public static function getAllFields()
        {
        }
        /**
         * @return array
         * @throws Main\NotImplementedException
         */
        public static function getFieldsDescription()
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return array
         */
        protected static function getFieldsMap()
        {
        }
        /**
         * @return array
         *
         * @throws Main\NotImplementedException
         */
        protected static function getMeaningfulFields()
        {
        }
        /**
         * @param $name
         * @return string|null
         */
        public function getField($name)
        {
        }
        /**
         * @param $name
         * @param $value
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws \Exception
         */
        public function setField($name, $value)
        {
        }
        /**
         * @param $name
         * @param $value
         * @return Result
         */
        protected function checkValueBeforeSet($name, $value)
        {
        }
        /**
         * @param bool $isMeaningfulField
         * @return bool
         */
        public abstract function isStartField($isMeaningfulField = false);
        /**
         *
         */
        public abstract function clearStartField();
        /**
         * @return bool
         */
        public abstract function hasMeaningfulField();
        /**
         * @param bool $hasMeaningfulField
         * @return Result
         */
        public abstract function doFinalAction($hasMeaningfulField = false);
        /**
         * @internal
         * @param bool|false $value
         */
        public abstract function setMathActionOnly($value = false);
        /**
         * @return bool
         */
        public abstract function isMathActionOnly();
        /**
         * @internal
         *
         * @param $name
         * @param $value
         * @throws Main\ArgumentOutOfRangeException
         */
        public function setFieldNoDemand($name, $value)
        {
        }
        /**
         *
         * @param array $values
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws \Exception
         */
        public function setFields(array $values)
        {
        }
        /**
         * @param array $values
         * @return array
         */
        protected function onBeforeSetFields(array $values)
        {
        }
        /**
         * @internal
         *
         * @param array $values
         * @throws Main\ArgumentOutOfRangeException
         */
        public function setFieldsNoDemand(array $values)
        {
        }
        /**
         * @internal
         *
         * @param $name
         * @param $value
         * @throws Main\ArgumentOutOfRangeException
         */
        public function initField($name, $value)
        {
        }
        /**
         * @internal
         *
         * @param array $values
         * @throws Main\ArgumentOutOfRangeException
         */
        public function initFields(array $values)
        {
        }
        /**
         * @return array
         */
        public function getFieldValues()
        {
        }
        /**
         * @internal
         * @return Fields
         */
        public function getFields()
        {
        }
        /**
         * @param string $name
         * @param mixed $oldValue
         * @param mixed $value
         * @return Result
         */
        protected function onFieldModify($name, $oldValue, $value)
        {
        }
        /**
         * @return int
         */
        public function getId()
        {
        }
        /**
         * @param string $name
         * @param null|string $oldValue
         * @param null|string $value
         */
        protected function addChangesToHistory($name, $oldValue = null, $value = null)
        {
        }
        /**
         * @internal
         *
         * @throws Main\NotImplementedException
         * @return mixed
         */
        public static function getEntityEventName()
        {
        }
        /**
         * @return string
         */
        public static function getClassName()
        {
        }
        /**
         * @return bool
         */
        public function isChanged()
        {
        }
        /**
         * @param string $name
         * @throws Main\ArgumentOutOfRangeException
         */
        public function markFieldCustom(string $name)
        {
        }
        /**
         * @param string $name
         * @throws Main\ArgumentOutOfRangeException
         */
        public function unmarkFieldCustom(string $name)
        {
        }
        /**
         * @param string $name
         * @return bool
         */
        public function isMarkedFieldCustom(string $name) : bool
        {
        }
        /**
         * @return Result
         */
        public function verify()
        {
        }
        /**
         * @internal
         */
        public function clearChanged()
        {
        }
    }
    /**
     * Class CollectableEntity
     * @package Bitrix\Sale\Internals
     */
    abstract class CollectableEntity extends \Bitrix\Sale\Internals\Entity
    {
        /** @var EntityCollection */
        protected $collection;
        protected $internalIndex = null;
        protected $isClone = false;
        /**
         * @param string $name
         * @param mixed $oldValue
         * @param mixed $value
         *
         * @return Result
         */
        protected function onFieldModify($name, $oldValue, $value)
        {
        }
        /**
         * @param EntityCollection $collection
         */
        public function setCollection(\Bitrix\Sale\Internals\EntityCollection $collection)
        {
        }
        /**
         * @return EntityCollection
         */
        public function getCollection()
        {
        }
        /**
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectNotFoundException
         */
        public function delete()
        {
        }
        /**
         * @internal
         *
         * @param $index
         * @throws Main\ArgumentTypeException
         */
        public function setInternalIndex($index)
        {
        }
        /**
         * @return null|int
         */
        public function getInternalIndex()
        {
        }
        /**
         * @param bool $isMeaningfulField
         * @return bool
         */
        public function isStartField($isMeaningfulField = false)
        {
        }
        /**
         * @return bool
         */
        public function clearStartField()
        {
        }
        /**
         * @return bool
         */
        public function hasMeaningfulField()
        {
        }
        public function doFinalAction($hasMeaningfulField = false)
        {
        }
        /**
         * @param bool|false $value
         * @return bool
         */
        public function setMathActionOnly($value = false)
        {
        }
        /**
         * @return bool
         */
        public function isMathActionOnly()
        {
        }
        /**
         * @return bool
         */
        public function isClone()
        {
        }
        /**
         * @internal
         * @param \SplObjectStorage $cloneEntity
         *
         * @return CollectableEntity
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
    }
}
namespace Bitrix\Sale {
    /**
     * Class BasketPropertyItemBase
     * @package Bitrix\Sale
     */
    abstract class BasketPropertyItemBase extends \Bitrix\Sale\Internals\CollectableEntity
    {
        /**
         * @return array
         */
        public static function getAvailableFields()
        {
        }
        /**
         * @return array
         */
        protected static function getMeaningfulFields()
        {
        }
        /**
         * @return string|void
         */
        public static function getRegistryEntity()
        {
        }
        /**
         * @param array $fields
         * @return BasketPropertyItem
         * @throws NotImplementedException
         * @throws Main\ArgumentException
         */
        private static function createBasketPropertyItemObject(array $fields = [])
        {
        }
        /**
         * @param BasketPropertiesCollectionBase $basketPropertiesCollection
         * @return BasketPropertyItem
         * @throws NotImplementedException
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function create(\Bitrix\Sale\BasketPropertiesCollectionBase $basketPropertiesCollection)
        {
        }
        /**
         * @return string
         */
        protected static function generateXmlId()
        {
        }
        /**
         * @internal
         *
         * @return Result
         * @throws NotImplementedException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function save()
        {
        }
        /*
         * @return void
         */
        private function checkCallingContext()
        {
        }
        /**
         * @return Result
         * @throws NotImplementedException
         */
        public function verify()
        {
        }
        /**
         * @param $id
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws NotImplementedException
         */
        public static function loadForBasketItem($id)
        {
        }
        /**
         * @param $idList
         * @return array
         * @throws Main\ArgumentException
         * @throws NotImplementedException
         */
        public static function loadForBasket($idList)
        {
        }
        /**
         * @param array $data
         * @return Main\Entity\AddResult
         */
        protected abstract function addInternal(array $data);
        /**
         * @param $primary
         * @param array $data
         * @return Main\Entity\UpdateResult
         */
        protected abstract function updateInternal($primary, array $data);
        /**
         * @param array $parameters
         * @throws NotImplementedException
         */
        public static function getList(array $parameters = [])
        {
        }
        /**
         * @return null|string
         * @internal
         *
         */
        public static function getEntityEventName()
        {
        }
    }
    /**
     * Class BasketPropertyItem
     * @package Bitrix\Sale
     */
    class BasketPropertyItem extends \Bitrix\Sale\BasketPropertyItemBase
    {
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @param array $data
         * @return Entity\AddResult
         */
        protected function addInternal(array $data)
        {
        }
        /**
         * @param $primary
         * @param array $data
         * @return Entity\UpdateResult
         */
        protected function updateInternal($primary, array $data)
        {
        }
        /**
         * @return array
         */
        protected static function getFieldsMap()
        {
        }
        /**
         * @param array $parameters
         * @return \Bitrix\Main\ORM\Query\Result|Internals\EO_BasketProperty_Result|mixed
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getList(array $parameters = [])
        {
        }
    }
    abstract class OrderDiscountBase
    {
        const EVENT_ON_BUILD_DISCOUNT_PROVIDERS = 'onBuildDiscountProviders';
        const ERROR_ID = 'BX_SALE_ORDER_DISCOUNT';
        const PROVIDER_ACTION_PREPARE_DISCOUNT = 'prepareData';
        const PROVIDER_ACTION_GET_URL = 'getEditUrl';
        const PROVIDER_ACTION_APPLY_COUPON = 'calculateApplyCoupons';
        const PROVIDER_ACTION_ROUND_ITEM_PRICE = 'roundPrice';
        const PROVIDER_ACTION_ROUND_BASKET_PRICES = 'roundBasket';
        const STORAGE_TYPE_DISCOUNT_ACTION_DATA = 'ACTION_DATA';
        const STORAGE_TYPE_ORDER_CONFIG = 'ORDER_CONFIG';
        const STORAGE_TYPE_ROUND_CONFIG = 'ROUND_CONFIG';
        const STORAGE_TYPE_BASKET_ITEM = 'BASKET_ITEM';
        protected static $init = false;
        protected static $errors = array();
        private static $discountProviders = array();
        private static $managerConfig = array();
        private static $discountCache = array();
        /**
         * Initial discount manager.
         *
         * @return void
         */
        public static function init()
        {
        }
        /**
         * Set manager params.
         *
         * @param array $config			Manager params (site, currency, etc).
         * @return bool
         */
        public static function setManagerConfig($config)
        {
        }
        /**
         * Return current manager params.
         *
         * @return array
         */
        public static function getManagerConfig()
        {
        }
        /**
         * Convert and save discount.
         *
         * @param array $discount			Discount data.
         * @param bool $extResult			Result extended result data.
         * @return Result
         */
        public static function saveDiscount(array $discount, $extResult = false)
        {
        }
        /**
         * Save coupon.
         *
         * @param array $coupon		Coupon data.
         * @return Result
         */
        public static function saveCoupon($coupon)
        {
        }
        /**
         * Check apply discount.
         *
         * @param string $module			Discount module.
         * @param array $discount			Discount data.
         * @param array $basket				Basket data.
         * @param array $params				Calculate params.
         * @return bool|array
         */
        public static function calculateApplyCoupons($module, $discount, $basket, $params)
        {
        }
        /**
         * Round basket item price.
         *
         * @param array $basketItem			Basket item data.
         * @param array $roundData			Round data.
         * @return array
         */
        public static function roundPrice(array $basketItem, array $roundData = array())
        {
        }
        /**
         * Round basket prices.
         *
         * @param array $basket			Basket.
         * @param array $roundData		Round data.
         * @param array $orderData		Order (without basket).
         * @return array
         */
        public static function roundBasket(array $basket, array $roundData = array(), array $orderData = array())
        {
        }
        /**
         * Check existing discount provider for module.
         *
         * @param string $module			Module id.
         * @return bool
         */
        public static function checkDiscountProvider($module)
        {
        }
        /**
         * Return url for edit sale discount.
         *
         * @param array $discount			Discount data.
         * @return string
         */
        public static function getEditUrl(array $discount)
        {
        }
        /**
         * Clear discount cache.
         *
         * @return void
         */
        public static function clearCache()
        {
        }
        /**
         * Load discount result for order.
         *
         * @param int $order				Order id.
         * @param array|bool $basketList	Correspondence between basket ids and basket codes.
         * @param array $basketData			Basket data.
         * @return Result
         */
        public static function loadResultFromDb($order, array $basketList = [], array $basketData = [])
        {
        }
        /**
         * Load applied discount list.
         *
         * @param array $discountIds
         * @param array $discountOrder
         * @return array|null
         */
        protected static function loadOrderDiscountFromDb(array $discountIds, array $discountOrder)
        {
        }
        /**
         * Load stored data collection for order.
         * @internal
         *
         * @param int $order				Order id.
         * @param string $storageType		Storage type (only simple value, no mixed).
         * @param array $additionalFilter	Additional filter for internal getList.
         * @return array|null
         */
        public static function loadStoredDataFromDb($order, $storageType, array $additionalFilter = array())
        {
        }
        /**
         * Load order stored data row.
         * @internal
         *
         * @param int $order				Order id.
         * @param string $storageType		Storage type (only simple value, no mixed).
         * @return array|null
         */
        public static function loadOrderStoredDataFromDb($order, $storageType)
        {
        }
        /**
         * Save order stored data.
         *
         * @param int $order
         * @param string $storageType
         * @param array $data
         * @param array $options
         * @return Result
         */
        public static function saveOrderStoredData($order, $storageType, array $data, array $options = array())
        {
        }
        /**
         * Save stored data for entities.
         *
         * @param int $order
         * @param string $storageType
         * @param array $block
         * @param array $options
         * @return Result
         * @throws Main\Db\SqlQueryException
         */
        public static function saveStoredDataBlock($order, $storageType, array $block, array $options = array())
        {
        }
        public static function addResultBlock($order, array $block)
        {
        }
        public static function updateResultBlock($order, array $block)
        {
        }
        public static function addRoundBlock($order, array $block)
        {
        }
        public static function updateRoundBlock($order, array $block)
        {
        }
        /**
         * Delete all data by order.
         *
         * @param int $order			Order id.
         * @return void
         */
        public static function deleteByOrder($order)
        {
        }
        /**
         * Return parent entity type. The method must be overridden in the derived class.
         * @internal
         *
         * @return string
         * @throws Main\NotImplementedException
         */
        public static function getRegistryType()
        {
        }
        protected static function getDiscountClassName()
        {
        }
        /**
         * Returns true, if discount from module sale.
         *
         * @param string $module	Module id.
         * @return bool
         */
        protected static function isNativeModule($module)
        {
        }
        /**
         * Return valid provider action list.
         *
         * @return array
         */
        protected static function getDiscountProviderActions()
        {
        }
        /**
         * Initialization discount providers.
         *
         * @return void
         */
        protected static function initDiscountProviders()
        {
        }
        /**
         * Execute discount provider.
         *
         * @param array $provider			Provider info
         * 	keys are case sensitive:
         *		<ul>
         *		<li>string MODULE				Provider module id
         * 		<li>string METHOD				Prodider method id
         *		</ul>.
         * @param array $data				Data for execute.
         * @return mixed
         */
        protected static function executeDiscountProvider(array $provider, array $data)
        {
        }
        /**
         * Prepare sale discount before saving.
         *
         * @param array $discount				Discount data.
         * @return array|bool
         */
        protected static function prepareData($discount)
        {
        }
        /**
         * Get absent discount fields from database.
         *
         * @param array $fields		Current discount state.
         * @return array|null
         */
        protected static function fillAbsentDiscountFields(array $fields)
        {
        }
        /**
         * Clear raw data and calculate discount hash.
         *
         * @param array $rawFields	Discount information.
         * @return array|null
         */
        protected static function normalizeDiscountFields(array $rawFields)
        {
        }
        /**
         * Returns exists discount for discount hash (cached).
         *
         * @param string $hash		Discount hash.
         * @return array|null
         */
        protected static function searchDiscount($hash)
        {
        }
        /**
         * Save exist discount to cache.
         *
         * @param string $entity	Entity id (class name).
         * @param array $fields		Discount.
         * @return void
         */
        private static function setCacheItem($entity, array $fields)
        {
        }
        /**
         * Validate coupon.
         *
         * @param array $fields		Coupon data.
         * @return Result
         */
        protected static function validateCoupon(array $fields)
        {
        }
        /**
         * Add new coupon for order.
         *
         * @param array $fields			Tablet fields.
         * @return Result|null
         */
        protected static function addCoupon(array $fields)
        {
        }
        /**
         * Add new unique order discount.
         *
         * @param array $fields			Tablet fields.
         * @param array $rawFields		Additional fields.
         * @return Result|null
         */
        protected static function addDiscount(array $fields, array $rawFields)
        {
        }
        /**
         * Load discount modules.
         *
         * @param array $discountIds	Order discount id list.
         * @return array|null
         */
        protected static function loadModulesFromDb(array $discountIds)
        {
        }
        protected static function prepareDiscountModules(array $discount)
        {
        }
        /**
         * Returns entity code for discount and round results.
         *
         * @param array $row			Result row.
         * @param array $transferList	Transfer table (for example, basket id to basket code).
         * @return int|string
         */
        protected static function transferEntityCodeFromInternal(array $row, array $transferList)
        {
        }
        /**
         * Format rule result for basket discount.
         *
         * @param array $rule			Rule result from database.
         * @return array
         */
        protected static function formatBasketRuleResult(array $rule)
        {
        }
        /**
         * Format rule result for sale discount.
         *
         * @param array $rule			Rule result from database.
         * @return array
         */
        protected static function formatSaleRuleResult(array $rule)
        {
        }
        /**
         * Format rule item result for sale discount.
         *
         * @param array $rule			Rule result from database.
         * @return array
         */
        protected static function formatSaleItemRuleResult(array $rule)
        {
        }
        /**
         * Fill product fields in rule result.
         *
         * @param array &$result			Rule result.
         * @param array $basketData			Basket data.
         * @param int|string $index			Basket index.
         * @return void
         */
        protected static function fillRuleProductFields(array &$result, array $basketData, $index)
        {
        }
        /* discounts */
        /**
         * Discount getList (prototype).
         *
         * @param array $parameters		\Bitrix\Main\Entity\DataManager::getList parameters.
         * @return Main\DB\Result|null
         */
        protected static function getDiscountIterator(array $parameters)
        {
        }
        /* discounts end */
        /* coupons */
        /**
         * Check coupon type.
         *
         * @param int $type		Coupon type.
         * @return bool
         */
        protected static function isValidCouponTypeInternal($type)
        {
        }
        /* coupons end */
        /* order discounts */
        /**
         * Order discount getList (prototype).
         *
         * @param array $parameters		\Bitrix\Main\Entity\DataManager::getList parameters.
         * @return Main\DB\Result|null
         */
        protected static function getOrderDiscountIterator(array $parameters)
        {
        }
        /**
         * Low-level method add new discount for order (prototype).
         *
         * @param array $fields		Tablet fields.
         * @return Main\Entity\AddResult|null
         */
        protected static function addOrderDiscountInternal(array $fields)
        {
        }
        /**
         * Returns the list of missing discount fields (prototype).
         *
         * @param array $fields		Discount fields.
         * @return array
         */
        protected static function checkRequiredOrderDiscountFields(array $fields)
        {
        }
        /**
         * Clear raw order discount data (prototype).
         *
         * @param array $rawFields	Discount information.
         * @return array|null
         */
        protected static function normalizeOrderDiscountFieldsInternal(array $rawFields)
        {
        }
        /**
         * Calculate order discount hash (prototype).
         *
         * @param array $fields		Discount information.
         * @return string|null
         */
        protected static function calculateOrderDiscountHashInternal(array $fields)
        {
        }
        /* order discounts end */
        /* order coupons */
        /**
         * Order coupons getList (prototype).
         *
         * @param array $parameters \Bitrix\Main\Entity\DataManager::getList parameters.
         * @return Main\DB\Result|null
         */
        public static function getOrderCouponIterator(array $parameters)
        {
        }
        /**
         * Low-level method add new coupon for order (prototype).
         *
         * @param array $fields		Tablet fields.
         * @return Main\Entity\AddResult|null
         */
        protected static function addOrderCouponInternal(array $fields)
        {
        }
        /**
         * Load coupons for order.
         *
         * @param int $order		Order id.
         * @return array
         */
        protected static function loadCouponsFromDb($order)
        {
        }
        /* order coupons end */
        /* order discount modules */
        /**
         * @param array $parameters		\Bitrix\Main\Entity\DataManager::getList parameters.
         * @return Main\DB\Result|null
         */
        protected static function getOrderDiscountModuleIterator(array $parameters)
        {
        }
        /**
         * Low-level method save order discount modules.
         *
         * @param int $orderDiscountId
         * @param array $modules
         * @return bool
         */
        protected static function saveOrderDiscountModulesInternal($orderDiscountId, array $modules)
        {
        }
        /* order discount modules end */
        /* discount results */
        /**
         * Converts the discount result entity identifier to the database table format (prototype).
         *
         * @param string $entity
         * @return null|int
         */
        protected static function getResultEntityInternal($entity)
        {
        }
        /**
         * Converts the discount result entity identifier from the database table format (prototype).
         *
         * @param int $entity
         * @return null|string
         */
        protected static function getResultEntityFromInternal($entity)
        {
        }
        /**
         * @param array $parameters		\Bitrix\Main\Entity\DataManager::getList parameters.
         * @return Main\DB\Result|null
         */
        protected static function getResultIterator(array $parameters)
        {
        }
        /**
         * @param array $parameters		\Bitrix\Main\Entity\DataManager::getList parameters.
         * @return Main\DB\Result|null
         */
        protected static function getResultDescriptionIterator(array $parameters)
        {
        }
        /**
         * Low-level method add new result discount for order.
         *
         * @param array $fields		Tablet fields.
         * @return Main\Entity\AddResult|null
         */
        protected static function addResultRow(array $fields)
        {
        }
        /**
         * Low-level method update result discount for order.
         *
         * @param int $id			Tablet row id.
         * @param array $fields		Tablet fields.
         * @return Main\Entity\UpdateResult|null
         */
        protected static function updateResultRow($id, array $fields)
        {
        }
        /**
         * Low-level method returns result table name (prototype).
         *
         * @return string|null
         */
        protected static function getResultTableNameInternal()
        {
        }
        /**
         * Low-level method returns result description table name (prototype).
         *
         * @return string|null
         */
        protected static function getResultDescriptionTableNameInternal()
        {
        }
        /**
         * Low-level method returns only those fields that are in the result table (prototype).
         *
         * @param array $fields
         * @return array|null
         */
        protected static function checkResultTableWhiteList(array $fields)
        {
        }
        /**
         * Low-level method returns only those fields that are in the result description table (prototype).
         *
         * @param array $fields
         * @return array|null
         */
        protected static function checkResultDescriptionTableWhiteList(array $fields)
        {
        }
        /**
         * Low-level method add new result discount for order (prototype).
         *
         * @param array $fields		Tablet fields.
         * @return Main\Entity\AddResult|null
         */
        protected static function addResultInternal(array $fields)
        {
        }
        /**
         * Low-level method add new result description for order (prototype).
         *
         * @param array $fields		Tablet fields.
         * @return Main\Entity\AddResult|null
         */
        protected static function addResultDescriptionInternal(array $fields)
        {
        }
        /**
         * Low-level method update result discount for order (prototype).
         *
         * @param int $id			Primary key.
         * @param array $fields		Tablet fields.
         * @return Main\Entity\UpdateResult|null
         */
        protected static function updateResultInternal($id, array $fields)
        {
        }
        /**
         * Low-level method update result description for order.
         *
         * @param int $id			Primary key.
         * @param array $fields		Tablet fields.
         * @return Main\Entity\UpdateResult|null
         */
        protected static function updateResultDescriptionInternal($id, array $fields)
        {
        }
        /* discount results end */
        /* round result */
        /**
         * Converts the rounded entity identifier to the database table format (prototype).
         *
         * @param string $entity
         * @return null|int
         */
        protected static function getRoundEntityInternal($entity)
        {
        }
        /**
         * Converts the rounded entity identifier from the database table format (prototype).
         *
         * @param int $entity
         * @return null|string
         */
        protected static function getRoundEntityFromInternal($entity)
        {
        }
        /**
         * @param array $parameters		\Bitrix\Main\Entity\DataManager::getList parameters.
         * @return Main\DB\Result|null
         */
        protected static function getRoundResultIterator(array $parameters)
        {
        }
        /**
         * Low-level method add new round result for order (prototype).
         *
         * @param array $fields		Tablet fields.
         * @return Main\Entity\AddResult|null
         */
        protected static function addRoundResultInternal(array $fields)
        {
        }
        /**
         * Low-level method update round result for order (prototype).
         *
         * @param int $id			Tablet row id.
         * @param array $fields		Tablet fields.
         * @return Main\Entity\UpdateResult|null
         */
        protected static function updateRoundResultInternal($id, array $fields)
        {
        }
        /**
         * low-level method returns the round-results table name (prototype).
         *
         * @return string|null
         */
        protected static function getRoundTableNameInternal()
        {
        }
        /* round result end */
        /* data storage */
        /**
         * Low-level method for convert storage types to internal format.
         *
         * @param string $storageType	Abstract storage type.
         * @return int|null
         */
        protected static function getStorageTypeInternal($storageType)
        {
        }
        /**
         * @param array $parameters		\Bitrix\Main\Entity\DataManager::getList parameters.
         * @return Main\DB\Result|null
         */
        protected static function getStoredDataIterator(array $parameters)
        {
        }
        /**
         * Low-level method add stored data for order (prototype).
         *
         * @param array $fields		Tablet fields.
         * @return Main\Entity\AddResult|null
         */
        protected static function addStoredDataInternal(array $fields)
        {
        }
        /**
         * Low-level method update stored data for order (prototype).
         *
         * @param int $id			Tablet row id.
         * @param array $fields		Tablet fields.
         * @return Main\Entity\UpdateResult|null
         */
        protected static function updateStoredDataInternal($id, array $fields)
        {
        }
        /**
         * low-level method returns the order stored data table name (prototype).
         *
         * @return string|null
         */
        protected static function getStoredDataTableInternal()
        {
        }
        /* data storage end */
        /**
         * Return flag simple action in discount.
         *
         * @internal
         * @param string $action		Discount action.
         * @return bool
         */
        private static function isSimpleAction($action)
        {
        }
        /**
         * Remove old result rows without events.
         *
         * @param string $tableName
         * @param string $indexField
         * @param array $ids
         * @throws Main\Db\SqlQueryException
         */
        private static function deleteRowsByIndex($tableName, $indexField, array $ids)
        {
        }
        private static function getEntityIndex(array $row)
        {
        }
    }
    class OrderDiscount extends \Bitrix\Sale\OrderDiscountBase
    {
        /**
         * Delete all data by order.
         *
         * @param int $order			Order id.
         * @return void
         */
        public static function deleteByOrder($order)
        {
        }
        /**
         * Return parent entity type.
         * @internal
         *
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * Validate coupon.
         *
         * @param array $fields		Coupon data.
         * @return Result
         */
        protected static function validateCoupon(array $fields)
        {
        }
        /* discounts */
        /**
         * Discount getList.
         *
         * @param array $parameters		\Bitrix\Main\Entity\DataManager::getList parameters.
         * @return Main\DB\Result|null
         */
        protected static function getDiscountIterator(array $parameters)
        {
        }
        /* discounts end */
        /* coupons */
        /**
         * Check coupon type.
         *
         * @param int $type		Coupon type.
         * @return bool
         */
        protected static function isValidCouponTypeInternal($type)
        {
        }
        /* coupons end */
        /* order discounts */
        /**
         * Order discount getList.
         *
         * @param array $parameters		\Bitrix\Main\Entity\DataManager::getList parameters.
         * @return Main\DB\Result|null
         */
        protected static function getOrderDiscountIterator(array $parameters)
        {
        }
        /**
         * Low-level method add new discount for order.
         *
         * @param array $fields		Tablet fields.
         * @return Main\Entity\AddResult|null
         */
        protected static function addOrderDiscountInternal(array $fields)
        {
        }
        /**
         * Returns the list of missing discount fields.
         *
         * @param array $fields		Discount fields.
         * @return array
         */
        protected static function checkRequiredOrderDiscountFields(array $fields)
        {
        }
        /**
         * Clear raw order discount data.
         *
         * @param array $rawFields	Discount information.
         * @return array|null
         */
        protected static function normalizeOrderDiscountFieldsInternal(array $rawFields)
        {
        }
        /**
         * Calculate order discount hash.
         *
         * @param array $fields		Discount information.
         * @return string|null
         */
        protected static function calculateOrderDiscountHashInternal(array $fields)
        {
        }
        /* order discounts end */
        /* order coupons */
        /**
         * Order coupons getList.
         *
         * @param array $parameters \Bitrix\Main\Entity\DataManager::getList parameters.
         * @return Main\DB\Result|null
         */
        public static function getOrderCouponIterator(array $parameters)
        {
        }
        /**
         * Low-level method add new coupon for order.
         *
         * @param array $fields		Tablet fields.
         * @return Main\Entity\AddResult|null
         */
        protected static function addOrderCouponInternal(array $fields)
        {
        }
        /* order coupons end */
        /* order discount modules */
        /**
         * @param array $parameters		\Bitrix\Main\Entity\DataManager::getList parameters.
         * @return Main\DB\Result|null
         */
        protected static function getOrderDiscountModuleIterator(array $parameters)
        {
        }
        /**
         * Low-level method save order discount modules.
         *
         * @param int $orderDiscountId
         * @param array $modules
         * @return bool
         */
        protected static function saveOrderDiscountModulesInternal($orderDiscountId, array $modules)
        {
        }
        /* discount results */
        /**
         * Converts the discount result entity identifier to the database table format.
         *
         * @param string $entity
         * @return null|int
         */
        protected static function getResultEntityInternal($entity)
        {
        }
        /**
         * Converts the discount result entity identifier from the database table format.
         *
         * @param int $entity
         * @return null|string
         */
        protected static function getResultEntityFromInternal($entity)
        {
        }
        /**
         * @param array $parameters		\Bitrix\Main\Entity\DataManager::getList parameters.
         * @return Main\DB\Result|null
         */
        protected static function getResultIterator(array $parameters)
        {
        }
        /**
         * @param array $parameters		\Bitrix\Main\Entity\DataManager::getList parameters.
         * @return Main\DB\Result|null
         */
        protected static function getResultDescriptionIterator(array $parameters)
        {
        }
        /**
         * Low-level method returns result table name.
         *
         * @return string|null
         */
        protected static function getResultTableNameInternal()
        {
        }
        /**
         * Low-level method returns result description table name.
         *
         * @return string|null
         */
        protected static function getResultDescriptionTableNameInternal()
        {
        }
        /**
         * Low-level method returns only those fields that are in the result table.
         *
         * @param array $fields
         * @return array|null
         */
        protected static function checkResultTableWhiteList(array $fields)
        {
        }
        /**
         * Low-level method returns only those fields that are in the result description table.
         *
         * @param array $fields
         * @return array|null
         */
        protected static function checkResultDescriptionTableWhiteList(array $fields)
        {
        }
        /**
         * Low-level method add new result discount for order.
         *
         * @param array $fields		Tablet fields.
         * @return Main\Entity\AddResult|null
         */
        protected static function addResultInternal(array $fields)
        {
        }
        /**
         * Low-level method add new result description for order.
         *
         * @param array $fields		Tablet fields.
         * @return Main\Entity\AddResult|null
         */
        protected static function addResultDescriptionInternal(array $fields)
        {
        }
        /**
         * Low-level method update result discount for order.
         *
         * @param int $id			Primary key.
         * @param array $fields		Tablet fields.
         * @return Main\Entity\UpdateResult|null
         */
        protected static function updateResultInternal($id, array $fields)
        {
        }
        /**
         * Low-level method update result description for order.
         *
         * @param int $id			Primary key.
         * @param array $fields		Tablet fields.
         * @return Main\Entity\UpdateResult|null
         */
        protected static function updateResultDescriptionInternal($id, array $fields)
        {
        }
        /* discount results end */
        /* round result */
        /**
         * Converts the rounded entity identifier to the database table format.
         *
         * @param string $entity
         * @return null|int
         */
        protected static function getRoundEntityInternal($entity)
        {
        }
        /**
         * Converts the rounded entity identifier from the database table format.
         *
         * @param int $entity
         * @return null|string
         */
        protected static function getRoundEntityFromInternal($entity)
        {
        }
        /**
         * @param array $parameters		\Bitrix\Main\Entity\DataManager::getList parameters.
         * @return Main\DB\Result|null
         */
        protected static function getRoundResultIterator(array $parameters)
        {
        }
        /**
         * Low-level method add new round result for order.
         *
         * @param array $fields		Tablet fields.
         * @return Main\Entity\AddResult|null
         */
        protected static function addRoundResultInternal(array $fields)
        {
        }
        /**
         * Low-level method update round result for order.
         *
         * @param int $id			Tablet row id.
         * @param array $fields		Tablet fields.
         * @return Main\Entity\UpdateResult|null
         */
        protected static function updateRoundResultInternal($id, array $fields)
        {
        }
        /**
         * Low-level method returns round result table name.
         *
         * @return string|null
         */
        protected static function getRoundTableNameInternal()
        {
        }
        /* round result end */
        /* data storage */
        /**
         * Low-level method for convert storage types to internal format.
         *
         * @param string $storageType	Abstract storage type.
         * @return int|null
         */
        protected static function getStorageTypeInternal($storageType)
        {
        }
        /**
         * @param array $parameters		\Bitrix\Main\Entity\DataManager::getList parameters.
         * @return Main\DB\Result|null
         */
        protected static function getStoredDataIterator(array $parameters)
        {
        }
        /**
         * Low-level method add stored data for order.
         *
         * @param array $fields		Tablet fields.
         * @return Main\Entity\AddResult|null
         */
        protected static function addStoredDataInternal(array $fields)
        {
        }
        /**
         * Low-level method update stored data for order.
         *
         * @param int $id			Tablet row id.
         * @param array $fields		Tablet fields.
         * @return Main\Entity\UpdateResult|null
         */
        protected static function updateStoredDataInternal($id, array $fields)
        {
        }
        /**
         * Low-level method returns the order stored data table name.
         *
         * @return string|null
         */
        protected static function getStoredDataTableInternal()
        {
        }
    }
    /**
     * Class OrderDiscountManager
     * @package Bitrix\Sale
     *
     * @deprecated
     * @see OrderDiscount
     */
    class OrderDiscountManager extends \Bitrix\Sale\OrderDiscount
    {
        /** @deprecated */
        const DESCR_TYPE_SIMPLE = \Bitrix\Sale\Discount\Formatter::TYPE_SIMPLE;
        /** @deprecated */
        const DESCR_TYPE_VALUE = \Bitrix\Sale\Discount\Formatter::TYPE_VALUE;
        /** @deprecated */
        const DESCR_TYPE_LIMIT_VALUE = \Bitrix\Sale\Discount\Formatter::TYPE_LIMIT_VALUE;
        /** @deprecated */
        const DESCR_TYPE_FIXED = \Bitrix\Sale\Discount\Formatter::TYPE_FIXED;
        /** @deprecated */
        const DESCR_TYPE_MAX_BOUND = \Bitrix\Sale\Discount\Formatter::TYPE_MAX_BOUND;
        /** @deprecated */
        const DESCR_VALUE_TYPE_PERCENT = \Bitrix\Sale\Discount\Formatter::VALUE_TYPE_PERCENT;
        /** @deprecated */
        const DESCR_VALUE_TYPE_CURRENCY = \Bitrix\Sale\Discount\Formatter::VALUE_TYPE_CURRENCY;
        /** @deprecated */
        const DESCR_VALUE_TYPE_SUMM = \Bitrix\Sale\Discount\Formatter::VALUE_TYPE_SUMM;
        /** @deprecated */
        const DESCR_VALUE_TYPE_SUMM_BASKET = \Bitrix\Sale\Discount\Formatter::VALUE_TYPE_SUMM_BASKET;
        /** @deprecated */
        const DESCR_VALUE_ACTION_DISCOUNT = \Bitrix\Sale\Discount\Formatter::VALUE_ACTION_DISCOUNT;
        /** @deprecated */
        const DESCR_VALUE_ACTION_EXTRA = \Bitrix\Sale\Discount\Formatter::VALUE_ACTION_EXTRA;
        /** @deprecated */
        const DESCR_VALUE_ACTION_ACCUMULATE = \Bitrix\Sale\Discount\Formatter::VALUE_ACTION_CUMULATIVE;
        /** @deprecated */
        const DESCR_VALUE_ACTION_CUMULATIVE = \Bitrix\Sale\Discount\Formatter::VALUE_ACTION_CUMULATIVE;
        /** @deprecated */
        const DESCR_LIMIT_MAX = \Bitrix\Sale\Discount\Formatter::LIMIT_MAX;
        /** @deprecated */
        const DESCR_LIMIT_MIN = \Bitrix\Sale\Discount\Formatter::LIMIT_MIN;
        /**
         * Load applied discount list
         * @deprecated
         * @see OrderDiscount::loadResultFromDb
         *
         * @param int $order				Order id.
         * @param bool $extendedMode		Get full information by discount - unused.
         * @param array|bool $basketList	Correspondence between basket ids and basket codes.
         * @param array $basketData			Basket data.
         * @return Result
         */
        public static function loadResultFromDatabase($order, $extendedMode = false, $basketList = false, $basketData = array())
        {
        }
        /**
         * Prepare discount description.
         *
         * @deprecated
         * @see Discount\Formatter::prepareRow
         *
         * @param int $type					Description type.
         * @param array|string $data		Description data.
         * @return Result
         */
        public static function prepareDiscountDescription($type, $data)
        {
        }
        /**
         * Format discount description.
         *
         * @deprecated
         * @see Discount\Formatter::formatRow
         *
         * @param array $data		Discount description.
         * @return Result
         */
        public static function formatDiscountDescription($data)
        {
        }
        /**
         * Return string discount description.
         *
         * @deprecated
         * @see Discount\Formatter::formatRow
         *
         * @param array $data			Description.
         * @return bool|string
         */
        public static function formatDescription($data)
        {
        }
        /**
         * Format discount result.
         *
         * @deprecated
         * @see Discount\Formatter::formatList
         *
         * @param array $data			Description data.
         * @return array|bool
         */
        public static function formatArrayDescription($data)
        {
        }
        /**
         * Create simple description for unknown discount.
         *
         * @deprecated
         * @see Discount\Result\CompatibleFormat::createResultDescription
         *
         * @param float $newPrice			New price.
         * @param float $oldPrice			Old price.
         * @param string $currency			Currency.
         * @return array
         */
        public static function createSimpleDescription($newPrice, $oldPrice, $currency)
        {
        }
        /**
         * Return basket code for discount rule.
         * @deprecated
         *
         * @param array $rule			Discount rule.
         * @param bool $translate		Use entity id or basket id.
         * @param array|bool $basketList		Convert table basket id to basket code.
         * @return string
         */
        protected static function getBasketCodeByRule(array $rule, $translate, $basketList)
        {
        }
        /**
         * Returns formatter errors.
         *
         * @param Result $result        Result object.
         * @return void
         */
        private static function transferFormatterErrors(\Bitrix\Sale\Result $result)
        {
        }
    }
    interface IBusinessValueProvider
    {
        public function getPersonTypeId();
        public function getBusinessValueProviderInstance($mapping);
    }
}
namespace {
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage sale
     * @copyright 2001-2014 Bitrix
     */
    interface IEntityMarker
    {
        /**
         * @param $value
         *
         * @return string
         */
        public function getErrorEntity($value);
        /**
         * @param $value
         *
         * @return bool
         */
        public function canAutoFixError($value);
        /**
         * @return array
         */
        public function getAutoFixErrorsList();
        /**
         * @param $code
         *
         * @return \Bitrix\Sale\Result
         */
        public function tryFixError($code);
        /**
         * @return bool
         */
        public function canMarked();
        /**
         * @return string
         */
        public function getMarkField();
    }
}
namespace Bitrix\Sale {
    /**
     * Class Shipment
     * @package Bitrix\Sale
     */
    class Shipment extends \Bitrix\Sale\Internals\CollectableEntity implements \Bitrix\Sale\IBusinessValueProvider, \IEntityMarker
    {
        /** @var array ShipmentItemCollection */
        protected $shipmentItemCollection;
        /** @var  Delivery\Services\Base */
        protected $service = null;
        protected $extraServices = null;
        protected $storeId = null;
        /** @var int */
        protected $internalId = 0;
        protected static $idShipment = 0;
        /**
         * @return string|void
         */
        public static function getRegistryEntity()
        {
        }
        protected function __construct(array $fields = [])
        {
        }
        /**
         * @return int
         */
        public function getShipmentCode()
        {
        }
        /**
         * @return array
         */
        public static function getAvailableFields()
        {
        }
        /**
         * @return array
         */
        public static function getCustomizableFields() : array
        {
        }
        /**
         * @param array $values
         * @return array
         */
        protected function onBeforeSetFields(array $values)
        {
        }
        /**
         * @return array
         */
        protected static function getMeaningfulFields()
        {
        }
        /**
         * @param Delivery\Services\Base $service
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws \Exception
         */
        public function setDeliveryService(\Bitrix\Sale\Delivery\Services\Base $service)
        {
        }
        /**
         * @param ShipmentCollection $collection
         * @param Delivery\Services\Base|null $service
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\ObjectException
         */
        public static function create(\Bitrix\Sale\ShipmentCollection $collection, \Bitrix\Sale\Delivery\Services\Base $service = null)
        {
        }
        /**
         * @return string
         */
        protected static function generateXmlId()
        {
        }
        /**
         * @param array $fields
         * @return mixed
         * @throws Main\ArgumentException
         */
        private static function createShipmentObject(array $fields = array())
        {
        }
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @internal
         *
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectNotFoundException
         */
        public function needReservation()
        {
        }
        /**
         * @param ShipmentItem $sourceItem
         * @param $quantity
         *
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        private function transferItem2SystemShipment(\Bitrix\Sale\ShipmentItem $sourceItem, $quantity)
        {
        }
        /**
         * @param Shipment $shipment
         *
         * @return Result
         * @throws Main\ObjectNotFoundException
         */
        public static function updateReservedFlag(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param $action
         * @param ShipmentItem $shipmentItem
         * @param null $name
         * @param null $oldValue
         * @param null $value
         * @return Result
         * @throws Main\NotSupportedException
         * @throws Main\SystemException
         */
        public function onShipmentItemCollectionModify($action, \Bitrix\Sale\ShipmentItem $shipmentItem, $name = null, $oldValue = null, $value = null)
        {
        }
        /**
         * @param $orderId
         * @return Result
         * @throws Main\ArgumentException
         * @internal
         *
         * Deletes shipment without demands.
         *
         */
        public static function deleteNoDemand($orderId)
        {
        }
        /**
         * Deletes shipment
         *
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        public function delete()
        {
        }
        /**
         * @return void
         */
        protected function deleteDeliveryRequest()
        {
        }
        /**
         * Sets new value to specified field of shipment item
         *
         * @param string $name
         * @param mixed $value
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws \Exception
         */
        public function setField($name, $value)
        {
        }
        /**
         * @param $name
         * @param $value
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function checkValueBeforeSet($name, $value)
        {
        }
        /**
         * @internal
         *
         * @param $name
         * @param $value
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         */
        public function setFieldNoDemand($name, $value)
        {
        }
        /**
         * @param $id
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        public static function loadForOrder($id)
        {
        }
        /**
         * @internal
         *
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        public function save()
        {
        }
        /**
         * @return void
         */
        private function checkCallingContext()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        private function add()
        {
        }
        /**
         * @return Result
         * @throws \Exception
         */
        private function update()
        {
        }
        /**
         * @return void
         */
        protected function setDeliveryRequestMarker()
        {
        }
        /**
         * @return void
         *
         * @throws Main\ArgumentException
         */
        private function callDelayedEvents()
        {
        }
        /**
         * @return void
         */
        private function callEventOnBeforeEntitySaved()
        {
        }
        /**
         * @return void
         */
        private function callEventOnEntitySaved()
        {
        }
        /**
         * @param $isNew
         * @return void
         */
        protected function onAfterSave($isNew)
        {
        }
        /**
         * @return bool|int
         */
        public function getParentOrderId()
        {
        }
        /**
         * @return Order|null
         */
        public function getOrder()
        {
        }
        /**
         * @return array|ShipmentItemCollection
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectNotFoundException
         */
        public function getShipmentItemCollection()
        {
        }
        /**
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        protected function markSystem()
        {
        }
        /**
         * @internal
         *
         * @param ShipmentCollection $collection
         * @param Delivery\Services\Base|null $deliveryService
         * @return Shipment
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\SystemException
         */
        public static function createSystem(\Bitrix\Sale\ShipmentCollection $collection, \Bitrix\Sale\Delivery\Services\Base $deliveryService = null)
        {
        }
        /**
         * @return float
         */
        public function getPrice()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentOutOfRangeException
         */
        public function isCustomPrice()
        {
        }
        /**
         * @return string
         */
        public function getCurrency()
        {
        }
        /**
         * @return int
         */
        public function getDeliveryId()
        {
        }
        /**
         * @return string
         */
        public function getDeliveryName()
        {
        }
        /**
         * @param $orderId
         */
        public function setOrderId($orderId)
        {
        }
        /**
         * @return Delivery\Services\Base
         * @throws Main\ArgumentNullException
         * @throws Main\SystemException
         */
        public function getDelivery()
        {
        }
        /**
         * @return Delivery\Services\Base
         * @throws Main\ArgumentNullException
         * @throws Main\SystemException
         */
        protected function loadDeliveryService()
        {
        }
        /**
         * @return bool
         */
        public function isSystem()
        {
        }
        /** @return bool */
        public function isCanceled()
        {
        }
        /**
         * @return bool
         */
        public function isShipped()
        {
        }
        /**
         * @return Main\Type\DateTime
         */
        public function getShippedDate()
        {
        }
        /**
         * @return int
         */
        public function getShippedUserId()
        {
        }
        /**
         * @return string
         */
        public function getUnshipReason()
        {
        }
        /**
         * @return bool
         */
        public function isMarked()
        {
        }
        /**
         * @return bool
         */
        public function isReserved()
        {
        }
        /**
         * @return bool
         */
        public function isAllowDelivery()
        {
        }
        /**
         * @return bool
         */
        public function isEmpty()
        {
        }
        /**
         * @return Main\Type\DateTime
         */
        public function getAllowDeliveryDate()
        {
        }
        /**
         * @return int
         */
        public function getAllowDeliveryUserId()
        {
        }
        /**
         * @return int
         */
        public function getCompanyId()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws \Exception
         */
        public function tryReserve()
        {
        }
        /**
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws \Exception
         */
        public function tryUnreserve()
        {
        }
        /**
         * @return Result
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public function tryShip()
        {
        }
        /**
         * @return Result
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public function tryUnship()
        {
        }
        /**
         *
         */
        public function needShip()
        {
        }
        /**
         * @return Result
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public function deliver()
        {
        }
        /**
         * @return Result
         * @throws Main\NotSupportedException
         */
        public function allowDelivery()
        {
        }
        /**
         * @return Result
         * @throws Main\NotSupportedException
         */
        public function disallowDelivery()
        {
        }
        /**
         * @param BasketItem $basketItem
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public function onBeforeBasketItemDelete(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param $action
         * @param BasketItem $basketItem
         * @param null $name
         * @param null $oldValue
         * @param null $value
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public function onBasketModify($action, \Bitrix\Sale\BasketItem $basketItem, $name = null, $oldValue = null, $value = null)
        {
        }
        /**
         * @param string $name
         * @param mixed $oldValue
         * @param mixed $value
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectException
         */
        protected function onFieldModify($name, $oldValue, $value)
        {
        }
        /**
         * @internal
         *
         * @param BasketItem $basketItem
         * @param null $value
         * @param null $oldValue
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        protected function syncQuantityAfterModify(\Bitrix\Sale\BasketItem $basketItem, $value = null, $oldValue = null)
        {
        }
        /**
         * @return array
         */
        public function getServiceParams()
        {
        }
        /**
         * @param array $serviceParams
         * @throws Main\NotSupportedException
         */
        public function setServiceParams(array $serviceParams)
        {
        }
        /**
         * @return null
         */
        public function getExtraServices()
        {
        }
        /**
         * @param array $extraServices
         */
        public function setExtraServices(array $extraServices)
        {
        }
        /**
         * @return Result
         */
        protected function saveExtraServices()
        {
        }
        /**
         * @return int
         */
        public function getStoreId()
        {
        }
        /**
         * @param $storeId
         */
        public function setStoreId($storeId)
        {
        }
        /**
         * @return Result
         */
        protected function saveStoreId()
        {
        }
        /**
         * @return float
         */
        public function getWeight() : float
        {
        }
        /**
         * @param float $weight
         * @return string|null
         */
        public function setWeight(float $weight)
        {
        }
        /**
         * @return Delivery\CalculationResult
         * @throws Main\NotSupportedException
         */
        public function calculateDelivery()
        {
        }
        /**
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         */
        public function resetData()
        {
        }
        /**
         * @param BasketItem $basketItem
         * @return float|int
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectNotFoundException
         */
        public function getBasketItemQuantity(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param string $name
         * @param null $oldValue
         * @param null $value
         * @throws Main\ObjectNotFoundException
         */
        protected function addChangesToHistory($name, $oldValue = null, $value = null)
        {
        }
        /**
         * @param BasketItem $basketItem
         *
         * @return bool
         * @throws Main\ObjectNotFoundException
         */
        public function isExistBasketItem(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectNotFoundException
         */
        public function verify()
        {
        }
        /**
         * @param $id
         *
         * @return Result
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        public function setAccountNumber($id)
        {
        }
        /**
         * @param $mapping
         * @return Shipment|null|string
         */
        public function getBusinessValueProviderInstance($mapping)
        {
        }
        /**
         * @return int|null
         */
        public function getPersonTypeId()
        {
        }
        /**
         * @param array $parameters
         * @return Main\ORM\Query\Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getList(array $parameters)
        {
        }
        /**
         * @internal
         *
         * @param \SplObjectStorage $cloneEntity
         * @return Internals\CollectableEntity|Shipment|object
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * @param $status
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws \Exception
         */
        protected function setStatus($status)
        {
        }
        /**
         * @param $value
         *
         * @return string
         */
        public function getErrorEntity($value)
        {
        }
        /**
         * @param $value
         *
         * @return bool
         */
        public function canAutoFixError($value)
        {
        }
        /**
         * @return array
         */
        public function getAutoFixErrorsList()
        {
        }
        /**
         * @param $code
         *
         * @return Result
         */
        public function tryFixError($code)
        {
        }
        /**
         * @param $code
         * @return mixed|null
         */
        protected static function getFixMethod($code)
        {
        }
        /**
         * @param Shipment $entity
         *
         * @return Result
         * @throws Main\ObjectNotFoundException
         */
        public static function fixReserveErrors(\Bitrix\Sale\Shipment $entity)
        {
        }
        /**
         * @param Shipment $entity
         *
         * @return Result
         * @throws Main\ObjectNotFoundException
         */
        public static function fixShipErrors(\Bitrix\Sale\Shipment $entity)
        {
        }
        /**
         * @return array
         */
        protected static function getAutoFixRules()
        {
        }
        /**
         * @return bool
         */
        public function canMarked()
        {
        }
        /**
         * @return string
         */
        public function getMarkField()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectNotFoundException
         */
        public function isChanged()
        {
        }
        /**
         * @internal
         */
        public function clearChanged()
        {
        }
        /**
         * @return float|int
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function getVatRate()
        {
        }
        /**
         * @return float
         * @throws Main\ArgumentNullException
         * @throws Main\LoaderException
         */
        public function getVatSum()
        {
        }
        /**
         * @param array $data
         * @return Entity\AddResult
         * @throws \Exception
         */
        protected function addInternal(array $data)
        {
        }
        /**
         * @param $primary
         * @param array $data
         * @return Entity\UpdateResult
         * @throws \Exception
         */
        protected function updateInternal($primary, array $data)
        {
        }
        /**
         * @param $primary
         * @return Entity\DeleteResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        protected static function deleteInternal($primary)
        {
        }
        /**
         * @return array
         */
        protected static function getFieldsMap()
        {
        }
        /**
         * @return null
         */
        public static function getUfId()
        {
        }
        /**
         * @param $value
         * @param bool $custom
         *
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws \Exception
         */
        public function setBasePriceDelivery($value, $custom = false)
        {
        }
        /**
         * @deprecated Use getOrder instead
         *
         * @return Order|null
         */
        public function getParentOrder()
        {
        }
        /**
         * @return null|string
         * @internal
         *
         */
        public static function getEntityEventName()
        {
        }
    }
}
namespace Bitrix\Sale\UI {
    class BasketStorage
    {
        /** @var array $instance */
        private static $instance = array();
        /** @var Sale\Basket $basket */
        protected $basket;
        /** @var Sale\Basket $orderableBasket */
        protected $orderableBasket;
        private $fUserId;
        private $siteId;
        private function __construct($fUserId, $siteId)
        {
        }
        private function __clone()
        {
        }
        protected static function getHash($fUserId, $siteId)
        {
        }
        protected function getFUserId()
        {
        }
        protected function getSiteId()
        {
        }
        public static function getInstance($fUserId, $siteId)
        {
        }
        public function getBasket()
        {
        }
        public function getOrderableBasket()
        {
        }
    }
}
namespace Bitrix\Sale {
    /**
     * Class PaymentCollection
     * @package Bitrix\Sale
     */
    class PaymentCollection extends \Bitrix\Sale\Internals\EntityCollection
    {
        /** @var Order */
        protected $order;
        /**
         * @return Order
         */
        protected function getEntityParent()
        {
        }
        /**
         * @param Service|null $service
         * @return Payment
         */
        public function createItem(\Bitrix\Sale\PaySystem\Service $service = null)
        {
        }
        /**
         * @param Internals\CollectableEntity $payment
         * @return Result
         */
        public function addItem(\Bitrix\Sale\Internals\CollectableEntity $payment)
        {
        }
        /**
         * @internal
         *
         * @param $index
         * @return Result
         */
        public function deleteItem($index)
        {
        }
        /**
         * @param Internals\CollectableEntity $item
         * @param null $name
         * @param null $oldValue
         * @param null $value
         *
         * @return Result
         * @throws Main\NotImplementedException
         * @throws Main\ObjectNotFoundException
         */
        public function onItemModify(\Bitrix\Sale\Internals\CollectableEntity $item, $name = null, $oldValue = null, $value = null)
        {
        }
        /**
         * @return bool
         */
        public function isPaid()
        {
        }
        /**
         * @param $name
         * @param $oldValue
         * @param $value
         * @return Result
         */
        public function onOrderModify($name, $oldValue, $value)
        {
        }
        /**
         * @param Order $order
         */
        public function setOrder(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @return Order
         */
        public function getOrder()
        {
        }
        /**
         * @return PaymentCollection
         */
        protected static function createPaymentCollectionObject()
        {
        }
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @param Order $order
         * @return PaymentCollection
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        public static function load(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @return float
         */
        public function getPaidSum()
        {
        }
        /**
         * @return float
         */
        public function getSum()
        {
        }
        /**
         * @return bool
         */
        public function hasPaidPayment()
        {
        }
        /**
         * @return bool
         */
        public function hasUnpaidPayment()
        {
        }
        /**
         * @return Entity\Result
         * @throws Main\ObjectNotFoundException
         */
        public function save()
        {
        }
        /**
         * @return Payment|bool
         * @throws Main\ObjectNotFoundException
         */
        public function getInnerPayment()
        {
        }
        /**
         * @return Payment|bool
         * @throws Main\ObjectNotFoundException
         */
        public function createInnerPayment()
        {
        }
        /**
         * @return bool
         */
        public function isExistsInnerPayment()
        {
        }
        /**
         * @return Result
         * @throws Main\ObjectNotFoundException
         */
        public function verify()
        {
        }
        /**
         * @internal
         * @param \SplObjectStorage $cloneEntity
         *
         * @return PaymentCollection
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * Is the entire collection of marked
         *
         * @return bool
         */
        public function isMarked()
        {
        }
        /**
         * @param $primary
         * @return Entity\DeleteResult
         */
        protected function deleteInternal($primary)
        {
        }
        /**
         * @return string
         */
        private static function getItemCollectionClassName()
        {
        }
        /**
         * @param array $parameters
         * @return Main\DB\Result
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * @deprecated Use \Bitrix\Sale\PaySystem\Manager::getInnerPaySystemId instead
         *
         * @return int
         */
        public static function getInnerPaySystemId()
        {
        }
    }
}
namespace Bitrix\Sale\Compatible\Internals {
    abstract class EntityCompatibility
    {
        /** @var Compatible\OrderQuery|null */
        protected $query = null;
        /** @var array */
        protected $filter = array();
        /** @var array */
        protected $select = array();
        /** @var array|null */
        protected $group = null;
        /** @var array */
        protected $sort = array();
        /** @var array|null */
        protected $nav = null;
        /** @var null */
        protected $queryAliasList = null;
        /** @var Sale\Internals\Fields|null  */
        protected $fields = null;
        /** @var array */
        protected $rawFields = array();
        const ENTITY_ORDER = 'ORDER';
        const ENTITY_PAYMENT = 'PAYMENT';
        const ENTITY_ORDER_TABLE = 'b_sale_order';
        const ENTITY_PAYMENT_TABLE = 'b_sale_order_payment';
        protected function __construct(array $fields = array())
        {
        }
        protected static function getRegistryType()
        {
        }
        protected static function getEntity()
        {
        }
        /**
         * @internal
         * @return array
         */
        public static function getAliasFields()
        {
        }
        /**
         * @return array
         */
        protected static function getSelectFields()
        {
        }
        /**
         * @param $id
         * @return Compatible\CDBResult
         */
        public static function getById($id)
        {
        }
        /**
         * @param $sort
         * @param $filter
         * @param null|array $group
         * @param $nav
         * @param $select
         * @param $callback
         * @return Compatible\CDBResult
         */
        public static function getList($sort = array(), $filter = array(), $group = null, $nav = array(), $select = array(), $callback = false)
        {
        }
        /**
         * @param EntityCompatibility $compatibility
         * @param array $sort
         * @param array $filter
         * @param null $group
         * @param array $nav
         * @param array $select
         * @param bool $callback
         *
         * @return Compatible\CDBResult|int
         */
        protected static function setGetListParameters(\Bitrix\Sale\Compatible\Internals\EntityCompatibility $compatibility, $sort = array(), $filter = array(), $group = null, $nav = array(), $select = array(), $callback = false)
        {
        }
        /**
         * @param array $fields
         * @throws SystemException
         */
        public static function add(array $fields)
        {
        }
        /**
         * @param array $filter
         */
        public function setFilter(array $filter = array())
        {
        }
        /**
         * @param array $select
         */
        public function setSelect(array $select = array())
        {
        }
        /**
         * @param $key
         *
         * @return null|string
         */
        public function parseField($key)
        {
        }
        /**
         * @param array $group
         */
        public function setGroup($group = null)
        {
        }
        /**
         * @param array $sort
         */
        public function setSort(array $sort = array())
        {
        }
        /**
         * @param array $nav
         */
        public function setNav(array $nav = array())
        {
        }
        /**
         * @param array $callback
         */
        public function setCallback(array $callback)
        {
        }
        /**
         * @param $name
         * @param $value
         * @return bool
         */
        protected function addFilter($name, $value)
        {
        }
        /**
         * @param array $aliasList
         * @param $name
         * @param $value
         * @return bool
         */
        protected function addFilterForAlias(array $aliasList, $name, $value)
        {
        }
        /**
         * @param $name
         * @return bool
         */
        protected function addSelect($name)
        {
        }
        /**
         * @param array $aliasList
         * @return bool
         */
        protected function addSelectForAlias(array $aliasList)
        {
        }
        /**
         * @param $name
         * @param null $value
         * @return bool
         * @throws \Bitrix\Main\SystemException
         */
        protected function addQueryAlias($name, $value = null)
        {
        }
        /**
         * @return array|null
         */
        protected function getQueryAliasList()
        {
        }
        /**
         * @return Compatible\CDBResult|int
         */
        public function execute()
        {
        }
        /**
         * @param $name
         * @return null|string
         */
        public function getField($name)
        {
        }
        /**
         * @param $name
         * @param $value
         */
        public function setField($name, $value)
        {
        }
        /**
         * @return array
         */
        public function getFieldValues()
        {
        }
        /**
         * @param array $values
         */
        public function setFields(array $values)
        {
        }
        /**
         * Remove unnecessary fields
         *
         * @param array $fields             An array of fields.
         * @param array $availableFields    An array of allowed fields.
         * @return array
         */
        protected static function clearFields(array $fields, array $availableFields = array())
        {
        }
        /**
         * @internal
         * Convert an array of dates from a string to an object
         *
         * @param array $fields           The array of dates
         * @param array $dateFields An array describing the fields and types of dates
         * @return array
         */
        public static function convertDateFields(array $fields, array $dateFields = array())
        {
        }
        /**
         * Convert date from string to object
         *
         * @param string $name     Field name
         * @param string $value    Field value
         * @param array $dateFields
         *
         * @return Date|DateTime
         */
        protected static function convertDateField($name, $value, array $dateFields = array())
        {
        }
        /**
         * Convert an array of dates from the object to a string
         *
         * @param array $fields   The array of dates
         * @return array
         */
        public static function convertDateFieldsToOldFormat(array $fields)
        {
        }
        /**
         * Convert date object to a string
         *
         * @param string $value    Field value
         * @return string
         */
        protected static function convertDateFieldToOldFormat($value)
        {
        }
        /**
         * @internal
         * Convert date object to a string to format
         *
         * @param string $value    Field value
         * @param string $format
         * @return string
         */
        public static function convertDateFieldToFormat($value, $format)
        {
        }
        /**
         * @param array $fields
         * @param array $replace
         *
         * @return array
         */
        protected static function replaceFields(array $fields, array $replace = array())
        {
        }
        /**
         * @internal
         *
         * @return array
         */
        public static function getAvailableFields()
        {
        }
        /**
         * @param string $entityName
         *
         * @return bool
         */
        protected static function checkEntityName($entityName)
        {
        }
        /**
         * @param $entityName
         * @param array $fields
         * @param array $availableFields
         *
         * @return array
         * @throws ArgumentOutOfRangeException
         */
        protected function parseRawFields($entityName, array $fields, array $availableFields = array())
        {
        }
        /**
         * @param $entity
         * @param $entityName
         *
         * @return Sale\Result
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws ObjectNotFoundException
         */
        public function saveRawFields($entity, $entityName)
        {
        }
        /**
         * @param $entityName
         * @param array $fields
         * @param string $separator
         *
         * @return array
         * @throws ArgumentOutOfRangeException
         */
        public static function backRawField($entityName, array $fields, $separator = '=')
        {
        }
        protected function getWhiteListFields()
        {
        }
        /**
         * @param $fieldName
         *
         * @return bool
         */
        protected function checkWhiteListFields($fieldName)
        {
        }
    }
}
namespace Bitrix\Sale\Compatible {
    class EventCompatibility extends \Bitrix\Sale\Compatible\Internals\EntityCompatibility
    {
        // Events old kernel, which will be called in a new kernel
        const EVENT_COMPATIBILITY_ON_ORDER_PAID = "OnSalePayOrder";
        const EVENT_COMPATIBILITY_ON_BEFORE_ORDER_DELETE = "OnBeforeOrderDelete";
        const EVENT_COMPATIBILITY_ON_ORDER_DELETED = "OnOrderDelete";
        const EVENT_COMPATIBILITY_ON_SHIPMENT_DELIVER = "OnSaleDeliveryOrder";
        const EVENT_COMPATIBILITY_ON_ORDER_UPDATE = "OnOrderUpdate";
        const EVENT_COMPATIBILITY_ON_BEFORE_ORDER_ADD = "OnBeforeOrderAdd";
        const EVENT_COMPATIBILITY_ON_BEFORE_ORDER_UPDATE = "OnBeforeOrderUpdate";
        const EVENT_COMPATIBILITY_ON_ORDER_SAVE = "OnOrderSave";
        const EVENT_COMPATIBILITY_ON_ORDER_ADD = "OnOrderAdd";
        const EVENT_COMPATIBILITY_ON_BEFORE_BASKET_ITEM_ADD = "OnBeforeBasketAdd";
        const EVENT_COMPATIBILITY_ON_BEFORE_BASKET_ITEM_UPDATE = "OnBeforeBasketUpdate";
        const EVENT_COMPATIBILITY_ON_BASKET_ITEM_ADD = "OnBasketAdd";
        const EVENT_COMPATIBILITY_ON_BASKET_ITEM_UPDATE = "OnBasketUpdate";
        const EVENT_COMPATIBILITY_ON_BEFORE_ORDER_CANCELED = "OnSaleBeforeCancelOrder";
        const EVENT_COMPATIBILITY_ON_ORDER_CANCELED = "OnSaleCancelOrder";
        const EVENT_COMPATIBILITY_ON_TRACKING_NUMBER_CHANGE = "OnTrackingNumberChange";
        const EVENT_COMPATIBILITY_ON_BEFORE_ORDER_STATUS_CHANGE = "OnSaleBeforeStatusOrder";
        const EVENT_COMPATIBILITY_ON_ORDER_STATUS_CHANGE = "OnSaleStatusOrder";
        const EVENT_COMPATIBILITY_ORDER_STATUS_SEND_EMAIL = "OnOrderStatusSendEmail";
        const EVENT_COMPATIBILITY_ORDER_STATUS_EMAIL = "OnSaleStatusEMail";
        const EVENT_COMPATIBILITY_MOBILE_PUSH_ORDER_STATUS_CHANGE = "ORDER_STATUS_CHANGED";
        const EVENT_COMPATIBILITY_ON_ORDER_NEW_SEND_EMAIL = "OnOrderNewSendEmail";
        const EVENT_COMPATIBILITY_ORDER_NEW_SEND_EMAIL_EVENT_NAME = "SALE_NEW_ORDER";
        const EVENT_COMPATIBILITY_ON_ORDER_DELIVER_SEND_EMAIL = "OnOrderDeliverSendEmail";
        const EVENT_COMPATIBILITY_ORDER_DELIVER_SEND_EMAIL_EVENT_NAME = "SALE_ORDER_DELIVERY";
        const EVENT_COMPATIBILITY_ON_ORDER_PAID_SEND_EMAIL = "OnOrderPaySendEmail";
        const EVENT_COMPATIBILITY_ON_ORDER_CANCEL_SEND_EMAIL = "OnOrderCancelSendEmail";
        const EVENT_COMPATIBILITY_ORDER_CANCEL_SEND_EMAIL_EVENT_NAME = "SALE_ORDER_CANCEL";
        const EVENT_COMPATIBILITY_ON_BEFORE_BASKET_DELETE = "OnBeforeBasketDelete";
        const EVENT_COMPATIBILITY_ON_BASKET_DELETED = "OnBasketDelete";
        //	const EVENT_COMPATIBILITY_ON_BASKET_ = "OnSaleCancelOrder";
        protected static $disableMailSend = false;
        protected static $disableEvent = false;
        /**
         * @param string $event
         * @return bool
         */
        public static function getEventListUsed($event)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         */
        public static function onSalePayOrder(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         */
        public static function onSaleOrderPaidSendMail(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         */
        public static function onSaleOrderCancelSendEmail(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         */
        public static function onOrderNewSendEmail(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         * @return Main\EventResult
         */
        public static function onBeforeOrderDelete(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         * @return Main\EventResult
         */
        public static function onOrderDelete(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         * @throws Main\ObjectNotFoundException
         */
        public static function onSaleDeliveryOrder(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         * @return Main\EventResult
         */
        public static function onOrderSave(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         * @return Main\EventResult
         */
        public static function onOrderSaved(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         * @return Main\EventResult
         */
        public static function onOrderAdd(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         * @return Main\EventResult
         */
        public static function onOrderBeforeSaved(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         * @return Main\EventResult
         */
        public static function onSaleBeforeCancelOrder(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         * @return Main\EventResult
         */
        public static function onSaleCancelOrder(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         * @throws Main\ObjectNotFoundException
         */
        public static function onBasketItemBeforeChange(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         */
        public static function onBasketItemChange(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         * @throws Main\ObjectNotFoundException
         */
        public static function onShipmentTrackingNumberChange(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         * @throws Main\ObjectNotFoundException
         */
        public static function onShipmentAllowDelivery(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         * @throws Main\ObjectNotFoundException
         */
        public static function onSaleStatusOrderChange(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         * @throws Main\ObjectNotFoundException
         */
        public static function onSaleOrderStatusChangeSendEmail(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param $id
         * @param $eventName
         * @param $fields
         *
         * @return bool
         */
        public static function onCallOrderNewSendEmail($id, $eventName, $fields)
        {
        }
        /**
         * @param $id
         * @param $eventName
         * @param $fields
         *
         * @return bool
         */
        public static function onCallOrderCancelSendEmail($id, $eventName, $fields)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         * @throws Main\ObjectNotFoundException
         */
        public static function onSaleBeforeStatusOrderChange(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         * @return Main\EventResult
         */
        public static function onBeforeBasketDelete(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         * @return Main\EventResult
         */
        public static function onBasketDelete(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param $value
         */
        public static function setDisableMailSend($value)
        {
        }
        /**
         * @param $value
         */
        protected static function setDisableEvent($value)
        {
        }
        /**
         * @return bool
         */
        protected static function isDisableEvent()
        {
        }
        /**
         *
         */
        public static function registerEvents()
        {
        }
        /**
         *
         */
        public static function unRegisterEvents()
        {
        }
    }
    class DiscountCompatibility
    {
        const MODE_CLIENT = 0x1;
        const MODE_MANAGER = 0x2;
        const MODE_ORDER = 0x4;
        const MODE_SYSTEM = 0x8;
        const MODE_EXTERNAL = 0x10;
        const MODE_DISABLED = 0x20;
        const ERROR_ID = 'BX_SALE_DISCOUNT_COMPATIBILITY';
        protected static $init = false;
        protected static $useMode = self::MODE_CLIENT;
        protected static $errors = array();
        protected static $config = array();
        protected static $order = null;
        protected static $discountUseMode = null;
        protected static $basketBasePrice = array();
        protected static $basketDiscountList = array();
        protected static $basketItemsData = array();
        protected static $discountResult = array();
        protected static $discountsCache = array();
        protected static $couponsCache = array();
        protected static $previousOrderData = array();
        protected static $currentOrderData = array();
        protected static $compatibleSaleDiscountResult = array();
        protected static $useCompatible = false;
        protected static $shipmentOrder = null;
        protected static $shipmentId = null;
        protected static $basketCodes = array();
        protected static $saved = false;
        protected static $repeatSave = false;
        /**
         * Handler for use old api.
         *
         * @param Main\Event $event		Event data.
         * @return Main\EventResult
         */
        public static function OnSaleBasketItemRefreshData(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Init use mode.
         *
         * @param int $mode				Save discount information mode.
         * @param array $config			Initial params (site, currency).
         * 		keys are case sensitive:
         * 			<ul>
         * 			<li>string SITE_ID		Current site
         * 			<li>string CURRENCY		Site currency
         * 			<li>string ORDER_ID		Order id
         * 			</ul>.
         * @return void
         */
        public static function initUseMode($mode = self::MODE_CLIENT, $config = array())
        {
        }
        /**
         * Return use mode.
         *
         * @return int
         */
        public static function getUseMode()
        {
        }
        /**
         * Check client use mode.
         *
         * @return bool
         */
        public static function usedByClient()
        {
        }
        /**
         * Check manager use mode.
         *
         * @return bool
         */
        public static function usedByManager()
        {
        }
        /**
         * Return saved flag (for old components only). Use ONLY kernel developers.
         * @internal
         *
         * @return bool
         */
        public static function isSaved()
        {
        }
        /**
         * Set save flag (for old components only). Use ONLY kernel developers.
         * @internal
         *
         * @param bool $save		Save flag.
         * @return void
         */
        public static function setSaved($save)
        {
        }
        /**
         * Return repeat save flag (for old components only). Use ONLY kernel developers.
         * @internal
         *
         * @return bool
         */
        public static function isRepeatSave()
        {
        }
        /**
         * Set repeat flag (for old components only). Use ONLY kernel developers.
         * @internal
         *
         * @param bool $repeat		Repeat flag.
         * @return void
         */
        public static function setRepeatSave($repeat)
        {
        }
        /**
         * Return result operation.
         *
         * @return bool
         */
        public static function isSuccess()
        {
        }
        /**
         * Return error list.
         *
         * @return array
         */
        public static function getErrors()
        {
        }
        /**
         * Clear errors list.
         *
         * @return void
         */
        public static function clearErrors()
        {
        }
        /**
         * Returns configuration parameters.
         *
         * @return array
         */
        public static function getConfig()
        {
        }
        /**
         * Set shipment.
         *
         * @param int $order					Order id.
         * @param int|array $shipment			Shipment id.
         * @return void
         */
        public static function setShipment($order, $shipment)
        {
        }
        /**
         * Initialization discount save information.
         *
         * @param int $mode				Discount manager mode.
         * @param array $config			Initial params (site, currency, order).
         * @return void
         */
        public static function init($mode = self::MODE_CLIENT, $config = array())
        {
        }
        /**
         * Reinitialization discount save information.
         *
         * @param int $mode				Discount manager mode.
         * @param array $config			Initial params (site, currency, order).
         * @return void
         */
        public static function reInit($mode = self::MODE_CLIENT, $config = array())
        {
        }
        /**
         * Check initialization.
         *
         * @return bool
         */
        public static function isInited()
        {
        }
        /**
         * Check used compatible calculate.
         *
         * @return bool
         */
        public static function isUsed()
        {
        }
        /**
         * Stops usage compatible mode. It's important for situation with new API and old API.
         * Be careful! Don't forget revert this action.
         *
         * @internal
         * @return void
         */
        public static function stopUsageCompatible()
        {
        }
        /**
         * Reverts usage compatible mode. It's important for situation with new API and old API.
         *
         * @internal
         * @return void
         */
        public static function revertUsageCompatible()
        {
        }
        /**
         * Set base price for basket item.
         *
         * @param string|int $code				Basket code.
         * @param float $price			Price.
         * @param string $currency		Currency.
         * @return void
         */
        public static function setBasketItemBasePrice($code, $price, $currency)
        {
        }
        /**
         * Set base price for all basket items.
         *
         * @param array $basket					Basket.
         * @return void
         * @throws Main\ArgumentNullException
         */
        public static function setBasketBasePrice($basket)
        {
        }
        /**
         * Get base price for basket item.
         *
         * @param string|int $code				Basket code.
         * @return float|null
         */
        public static function getBasketItemBasePrice($code)
        {
        }
        /**
         * Set product discounts for basket item.
         *
         * @param string|int $code				Basket code.
         * @param array $discountList			Discount list.
         * @return void
         */
        public static function setBasketItemDiscounts($code, $discountList)
        {
        }
        /**
         * Get product discounts for basket item.
         *
         * @param string|int $code				Basket code.
         * @return null|array
         */
        public static function getBasketItemDiscounts($code)
        {
        }
        /**
         * @param int|string $code				Basket code.
         * @param array $providerData			Product data from provider.
         * @return void
         */
        public static function setBasketItemData($code, $providerData)
        {
        }
        /**
         * Clear basket item data.
         *
         * @param int $code				Basket code.
         * @return void
         */
        public static function clearBasketItemData($code)
        {
        }
        /**
         * Clear results before calculate.
         *
         * @return void
         */
        public static function clearDiscountResult()
        {
        }
        /**
         * Fill base prices.
         *
         * @param array &$basket				Basket data.
         * @return void
         */
        public static function fillBasketData(&$basket)
        {
        }
        /**
         * Calculate basket discounts for save.
         *
         * @param array &$basket				Basket items.
         * @return bool
         */
        public static function calculateBasketDiscounts(&$basket)
        {
        }
        /**
         * Save apply mode information.
         *
         * @param array &$basket				Basket items.
         * @return void
         */
        public static function setApplyMode(&$basket)
        {
        }
        /**
         * Push to stack current order data.
         *
         * @param array $order				Current order data.
         * @return void
         */
        public static function setOrderData($order)
        {
        }
        /**
         * Save result discount list from CSaleDiscount::DoProcessOrder.
         *
         * @param array $discountList		Result from CSaleDiscount::DoProcessOrder.
         * @return void
         */
        public static function setOldDiscountResult($discountList)
        {
        }
        /**
         * Return result discount list in old format. Compatibility only.
         *
         * @return array
         */
        public static function getOldDiscountResult()
        {
        }
        /**
         * Save sale discount.
         *
         * @param array &$order				Current order data.
         * @param array $discount			Discount data.
         * @return bool
         */
        public static function calculateSaleDiscount(&$order, $discount)
        {
        }
        /**
         * Return discount list description.
         *
         * @param bool $extMode			Extended mode.
         * @return array
         */
        public static function getApplyResult($extMode = false)
        {
        }
        /**
         * Set basket code.
         *
         * @param string|int $index				Item index.
         * @param string|int $code				Basket code.
         * @return void
         */
        public static function setBasketCode($index, $code)
        {
        }
        /**
         * Return discount result for old api.
         *
         * @return array|bool
         */
        public static function getResult()
        {
        }
        /**
         * Round prices.
         *
         * @param array &$basket	Basket items.
         * @param array $orderData  Order (without basket).
         * @return void
         */
        public static function roundPrices(array &$basket, array $orderData = array())
        {
        }
        /**
         * Returns existing custom price.
         *
         * @param array $basketItem			Basket item.
         * @return bool
         */
        protected static function isCustomPrice($basketItem)
        {
        }
        /**
         * Calculate basket discounts for item.
         *
         * @param string|int $code						Basket code.
         * @param array $fields							Basket data.
         * @return bool
         */
        protected static function calculateBasketItemDiscount($code, $fields)
        {
        }
        /**
         * Convert discount for saving in order.
         *
         * @param array $discount			Raw discount data.
         * @return Sale\Result
         */
        protected static function convertDiscount($discount)
        {
        }
        /**
         * Convert coupon for saving in order.
         *
         * @param string|array $coupon			Coupon.
         * @param int $discount					Order discount id.
         * @return Sale\Result
         */
        protected static function convertCoupon($coupon, $discount)
        {
        }
        /**
         * Return formatted discount description.
         *
         * @param array|bool $descr				Description.
         * @return array
         */
        protected static function formatDescription($descr)
        {
        }
        /**
         * Returns result after one discount.
         *
         * @param array $order			Order current data.
         * @return array
         */
        protected static function getStepResult($order)
        {
        }
        /**
         * Returns result after one discount in old format.
         *
         * @param array $currentOrder			Current order data.
         * @return array
         */
        protected static function getStepResultOld($currentOrder)
        {
        }
        /**
         * Correct data for exotic coupon.
         *
         * @param array &$order					Current order data.
         * @param array &$stepResult			Currenct discount result.
         * @param array $discount				Discount data.
         * @return void
         */
        protected static function correctStepResult(&$order, &$stepResult, $discount)
        {
        }
        /**
         * Returns discount and coupon list.
         *
         * @return void
         */
        protected static function getApplyDiscounts()
        {
        }
        /**
         * Change result format.
         *
         * @return void
         */
        protected static function remakingDiscountResult()
        {
        }
    }
    class AliasedQuery extends \Bitrix\Main\Entity\Query
    {
        private $aliases = array();
        public function __construct($source)
        {
        }
        public function getAliases()
        {
        }
        public function addAliases(array $aliases)
        {
        }
        public function addAlias($alias, $field = null)
        {
        }
        public function getAliasName($alias)
        {
        }
        public function addAliasSelect($alias)
        {
        }
        public function addAliasGroup($alias)
        {
        }
        public function addAliasOrder($alias, $order)
        {
        }
        public function addAliasFilter($key, $value)
        {
        }
    }
    final class CDBResult extends \CDBResult
    {
        function compatibleNavQuery(\Bitrix\Main\Entity\Query $query, array $arNavStartParams)
        {
        }
        // FetchAdapter
        private $fetchAdapters = array();
        public function addFetchAdapter(\Bitrix\Sale\Compatible\FetchAdapter $adapter)
        {
        }
        function Fetch()
        {
        }
    }
    class AggregateAdapter implements \Bitrix\Sale\Compatible\FetchAdapter
    {
        private $aggregated = array();
        function __construct(array $aggregated)
        {
        }
        public function adapt(array $row)
        {
        }
    }
    class OrderQuery extends \Bitrix\Sale\Compatible\AliasedQuery
    {
        private $counted, $grouped, $allSelected, $aggregated = array();
        public function counted()
        {
        }
        public function grouped()
        {
        }
        public function allSelected()
        {
        }
        public function aggregated()
        {
        }
        private function addAggregatedSelect($alias, $aggregate, $name = null)
        {
        }
        public static function explodeFilterKey($key)
        {
        }
        public function compatibleAddFilter($key, $value)
        {
        }
        protected function mapLocationRuntimeField($field, $asFilter = false)
        {
        }
        public function prepare(array $order, array $filter, $group, array $select)
        {
        }
        public function getSelectNamesAssoc()
        {
        }
        protected function prepareCompatibleRows(array $rows)
        {
        }
        public function compatibleExec(\Bitrix\Sale\Compatible\CDBResult $result, $navStart)
        {
        }
    }
    class OrderPropertyValuesQuery extends \Bitrix\Sale\Compatible\OrderQuery
    {
        /**
         * @param array $rows
         * @return array
         */
        protected function prepareCompatibleRows(array $rows)
        {
        }
    }
    class OrderQueryLocation extends \Bitrix\Sale\Compatible\OrderQuery
    {
        protected $locationFieldMap = array();
        public function addLocationRuntimeField($fieldName, $ref = false)
        {
        }
        protected function mapLocationRuntimeField($field, $asFilter = false)
        {
        }
    }
    final class Test
    {
        static function assertLastQuery($name, $query)
        {
        }
        static function run()
        {
        }
    }
    class BasketCompatibility extends \Bitrix\Sale\Compatible\Internals\EntityCompatibility
    {
        private static $proxyBasket = array();
        /** @var null|OrderCompatibility */
        protected $orderCompatibility = null;
        /**
         * @return string
         */
        protected static function getRegistryType()
        {
        }
        /**
         * @return Main\Entity\Base
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected static function getEntity()
        {
        }
        /**
         * @return string
         */
        protected static function getOrderCompatibilityClassName()
        {
        }
        /**
         * @param array $fields - field basket
         */
        protected function __construct(array $fields = array())
        {
        }
        /**
         * @param OrderCompatibility $orderCompatibility
         *
         * @return BasketCompatibility
         */
        public static function create(\Bitrix\Sale\Compatible\OrderCompatibility $orderCompatibility)
        {
        }
        /**
         * @internal
         *
         * @param Sale\Basket $basket
         * @param array $requestFields
         *
         * @return Sale\Result
         * @throws Main\ArgumentNullException
         */
        public function fillBasket(\Bitrix\Sale\Basket $basket, array $requestFields)
        {
        }
        /**
         * @param Sale\Basket $basket
         * @param array $requestBasketItems
         *
         * @return Sale\Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         * @throws Main\ObjectNotFoundException
         */
        protected function parseBasketItems(\Bitrix\Sale\Basket $basket, array $requestBasketItems)
        {
        }
        /**
         * @param Sale\Basket $basket
         * @param array $basketItemList
         * @param Sale\BasketItem|null $externalParentBasketItem
         * @throws Main\ObjectException
         * @throws Main\ObjectNotFoundException
         */
        private function setChildBundleCollection(\Bitrix\Sale\Basket $basket, array $basketItemList, \Bitrix\Sale\BasketItem $externalParentBasketItem = null)
        {
        }
        /**
         * Add the position of the basket
         *
         * @param array $fields - an array of fields with data element baskets
         * @return Sale\Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public static function add(array $fields)
        {
        }
        /**
         * Update data element baskets
         *
         * @param $id
         * @param array $fields
         *
         * @return Sale\Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectNotFoundException
         */
        public static function update($id, array $fields)
        {
        }
        /**
         * @param $id
         * @return Sale\Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ObjectNotFoundException
         */
        public static function delete($id)
        {
        }
        /**
         * @internal
         * @return array
         */
        public static function getAliasFields()
        {
        }
        /**
         * @return array
         */
        protected static function getSelectFields()
        {
        }
        /**
         * @internal
         * @return array
         */
        public static function getAvailableFields()
        {
        }
        /**
         * @param $id
         * @return Sale\BasketItem|Sale\Result|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         */
        protected static function loadEntityFromBasket($id)
        {
        }
        /**
         * @param Sale\Order $order
         * @param Sale\Basket $basket
         *
         * @return Sale\Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         */
        protected static function appendBasketToOrder(\Bitrix\Sale\Order $order, \Bitrix\Sale\Basket $basket)
        {
        }
        /**
         * @param array $list
         * @return Sale\Result
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function setBasketFields(array $list)
        {
        }
        /**
         * @return OrderCompatibility|null
         */
        protected function getOrderCompatibility()
        {
        }
        /**
         * Data synchronization basket and shipment
         *
         * @internal
         *
         * @param Sale\ShipmentCollection $shipmentCollection		Entity shipment collection.
         * @param Sale\Basket $basket								Entity basket.
         *
         * @return Sale\Result
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\ObjectNotFoundException
         */
        public static function syncShipmentCollectionAndBasket(\Bitrix\Sale\ShipmentCollection $shipmentCollection, \Bitrix\Sale\Basket $basket)
        {
        }
        /**
         * @internal
         * @param Sale\BasketItem $basketItem
         *
         * @return array
         * @throws Main\ObjectNotFoundException
         */
        public static function convertBasketItemToArray(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        protected function getWhiteListFields()
        {
        }
    }
    class BasketFetchAdapter implements \Bitrix\Sale\Compatible\FetchAdapter
    {
        public function adapt(array $row)
        {
        }
    }
    /**
     * Class OrderCompatibility
     * @package Bitrix\Sale\Compatible
     */
    class OrderCompatibility extends \Bitrix\Sale\Compatible\Internals\EntityCompatibility
    {
        /** @var null|Sale\Order */
        protected $order = null;
        /** @var array  */
        protected $requestFields = null;
        /** @var null|BasketCompatibility */
        protected $basket = null;
        protected $externalPrice = null;
        const ORDER_COMPAT_ACTION_ADD = 'ADD';
        const ORDER_COMPAT_ACTION_UPDATE = 'UPDATE';
        const ORDER_COMPAT_ACTION_SAVE = 'SAVE';
        protected $runtimeFields = array();
        protected $propertyRuntimeList = array();
        /**
         * @return string
         */
        protected static function getRegistryType()
        {
        }
        /**
         * @return Main\Entity\Base
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected static function getEntity()
        {
        }
        /**
         * @return string
         */
        protected static function getBasketCompatibilityClassName()
        {
        }
        /**
         * OrderCompatibility constructor.
         * @param array $fields
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function __construct(array $fields = array())
        {
        }
        /**
         * @return Sale\Order|null
         */
        public function getOrder()
        {
        }
        /**
         * @return array
         */
        public function getRequestFields()
        {
        }
        /**
         * @param BasketCompatibility $basketCompatibility
         */
        public function setBasketCompatibility(\Bitrix\Sale\Compatible\BasketCompatibility $basketCompatibility)
        {
        }
        /**
         * @param array $fields
         * @return static
         */
        public static function create(array $fields)
        {
        }
        /**
         * Filling the order data from request
         *
         * @internal
         *
         * @param Sale\Order $order		Entity order.
         * @param array $fields			An array of request data.
         *
         * @return Sale\Result
         */
        public static function fillOrderFromRequest(\Bitrix\Sale\Order $order, array $fields)
        {
        }
        /**
         * Filling the shipment collection  data from request
         *
         * @internal
         *
         * @param Sale\ShipmentCollection $shipmentCollection	Entity shipment collection.
         * @param array $fields									An array of request data.
         * @param Sale\ShipmentCollection $shipmentCollection
         * @param array $fields
         *
         * @return Sale\Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public function fillShipmentCollectionFromRequest(\Bitrix\Sale\ShipmentCollection $shipmentCollection, array $fields)
        {
        }
        /**
         * @param Sale\Order $order
         * @param Sale\Internals\CollectableEntity $entity
         * @param array $requestFields
         * @param array $allowFields
         */
        private static function fillOrderFieldsFromEntity(\Bitrix\Sale\Order $order, \Bitrix\Sale\Internals\CollectableEntity $entity, array $requestFields, array $allowFields)
        {
        }
        /**
         * @internal
         * @param Sale\ShipmentCollection $shipmentCollection
         * @param int $deliveryId
         * @param array $requestFields
         * @return null|Sale\Shipment
         */
        public static function createShipmentFromRequest(\Bitrix\Sale\ShipmentCollection $shipmentCollection, $deliveryId, array $requestFields)
        {
        }
        /**
         * Request processing for shipments
         *
         * @internal
         *
         * @param Sale\ShipmentCollection $shipmentCollection		Entity shipment collection.
         * @param array $fields										An array of request data.
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public static function syncShipmentCollectionFromRequest(\Bitrix\Sale\ShipmentCollection $shipmentCollection, array $fields)
        {
        }
        /**
         * @internal
         * @param array $fields
         *
         * @return Sale\Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public function fillPaymentCollectionFromRequest(array $fields)
        {
        }
        private static function getDefaultPaySystemId($personTypeId)
        {
        }
        /**
         * @internal
         *
         * @param Sale\Tax $tax
         * @param array $fields
         * @return Sale\Result
         */
        public function fillTaxFromRequest(\Bitrix\Sale\Tax $tax, array $fields)
        {
        }
        /**
         * @param $id
         * @param bool $value
         * @param array $storeData
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\NotSupportedException
         */
        public static function shipment($id, $value, array $storeData = array())
        {
        }
        /**
         * @internal
         *
         * @param Sale\ShipmentItemCollection $shipmentItemCollection
         * @param array $storeData
         * @param Sale\Basket $basket
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public static function fillShipmentItemCollectionFromRequest(\Bitrix\Sale\ShipmentItemCollection $shipmentItemCollection, array $storeData, \Bitrix\Sale\Basket $basket = null)
        {
        }
        /**
         * @param $id
         * @param bool $value
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\NotSupportedException
         */
        public static function allowDelivery($id, $value)
        {
        }
        /**
         * @param array $fields
         *
         * @return Sale\Result
         */
        public static function add(array $fields)
        {
        }
        /**
         * @param $id
         * @param array $fields
         * @param bool $dateUpdate
         *
         * @return Sale\Result
         */
        public static function update($id, array $fields, $dateUpdate = false)
        {
        }
        /**
         * @internal
         * @param string $action
         * @param array $fields
         *
         * @return Sale\Result
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectNotFoundException
         */
        public static function modifyOrder($action, array $fields)
        {
        }
        /**
         * @param $orderId
         * @param $value
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function reserve($orderId, $value)
        {
        }
        /**
         * @param $orderId
         * @param array $values
         * @param bool $withdraw
         * @param bool $pay
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function pay($orderId, array $values, $withdraw = false, $pay = false)
        {
        }
        /**
         * Paid from internal account
         *
         * @param Sale\Order $order 	Entity of the order.
         * @param bool $pay 			Flag making donations to internal account.
         * @param null $paidFormUserBudget
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\InvalidOperationException
         */
        public static function payFromBudget(\Bitrix\Sale\Order $order, $pay, $paidFormUserBudget = null)
        {
        }
        /**
         * Cancel order
         *
         * @param int $orderId		Order ID.
         * @param string $value		The cancel key(Y/N).
         * @param bool|string $comment	cancel reason
         * @return Sale\Result
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function cancel($orderId, $value, $comment = false)
        {
        }
        /**
         * Delete the order
         * @param int $id		Order ID.
         * @return Sale\Result
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function delete($id)
        {
        }
        /**
         * @param float $needSum
         * @param int $userId
         * @param string $currency
         * @param bool $fullPay
         * @return bool
         */
        public static function canPayWithUserBudget($needSum, $userId, $currency, $fullPay = true)
        {
        }
        /**
         * @param Sale\ShipmentCollection $shipmentCollection
         *
         * @return Sale\Shipment
         * @throws Main\ArgumentNullException
         */
        public static function createShipmentFromShipmentSystem(\Bitrix\Sale\ShipmentCollection $shipmentCollection)
        {
        }
        /**
         * @internal
         *
         * @param Sale\ShipmentCollection $shipmentCollection
         * @param $deliveryId
         * @return Sale\Shipment|bool
         */
        public static function getShipmentByDeliveryId(\Bitrix\Sale\ShipmentCollection $shipmentCollection, $deliveryId)
        {
        }
        /**
         * @param Sale\Order $order
         */
        protected static function transformationLocation(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param $id
         *
         * @return CDBResult|int
         * @throws Main\ArgumentNullException
         */
        public static function getById($id)
        {
        }
        /**
         * @internal 
         * @return array
         */
        public static function getAliasFields()
        {
        }
        /**
         * @return array
         */
        protected static function getAliasPaymentFields()
        {
        }
        /**
         * @return array
         */
        protected static function getAliasShipmentFields()
        {
        }
        /**
         * @return array
         */
        protected static function getAliasBasketFields()
        {
        }
        /**
         * @return array
         */
        protected static function getSelectFields()
        {
        }
        /**
         * @internal
         * @return array
         */
        public static function getAvailableFields()
        {
        }
        /**
         * @return array
         */
        protected static function getShipmentClearFields()
        {
        }
        /**
         * @return array
         */
        protected static function getPaymentClearFields()
        {
        }
        /**
         * @return array
         */
        protected static function getPaymentAvailableFields()
        {
        }
        /**
         * @return array
         */
        protected static function getShipmentAvailableFields()
        {
        }
        protected function getWhiteListFields()
        {
        }
        /**
         * @param array $fields
         * @param array $clearFields
         *
         * @return array
         */
        protected static function clearAvailableFields(array $fields, array $clearFields = array())
        {
        }
        /**
         * @return array
         */
        protected static function getFieldsFromOtherEntities()
        {
        }
        /**
         * @internal
         * @return array
         */
        public static function getOrderDateFields()
        {
        }
        /**
         * @return array
         */
        protected static function getShipmentFieldsToConvert()
        {
        }
        /**
         * @return array
         */
        protected static function getPaymentFieldsToConvert()
        {
        }
        /**
         * @return array
         */
        protected static function getEntityDateFields(\Bitrix\Sale\Internals\CollectableEntity $entity)
        {
        }
        /**
         * @return array
         */
        protected static function getPaymentDateFields()
        {
        }
        /**
         * @return array
         */
        protected static function getPaymentReplaceFields()
        {
        }
        /**
         * @return array
         */
        protected static function getOrderReplaceFields()
        {
        }
        /**
         * @internal
         *
         * @param Sale\Basket $basket
         * @param array $requestFields
         *
         * @return bool
         */
        public function resetOrderPrice(\Bitrix\Sale\Basket $basket, array $requestFields)
        {
        }
        /**
         * @param Sale\Order $order
         *
         * @return array
         */
        public static function getOrderFields(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @internal
         * @param Sale\Order $order
         * @return array
         */
        public static function convertOrderToArray(\Bitrix\Sale\Order $order)
        {
        }
        public function isExistPrice()
        {
        }
        /**
         * @param $key
         *
         * @return null|string
         */
        public function parseField($key)
        {
        }
        /**
         * @param int $index
         */
        protected function addPropertyRuntime($index)
        {
        }
        protected function getPropertyRuntimeName($index)
        {
        }
        /**
         * @param $key
         *
         * @return null|string
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function addBasketRuntime($key)
        {
        }
        protected static function getDefaultFuserId()
        {
        }
    }
    class OrderFetchAdapter implements \Bitrix\Sale\Compatible\FetchAdapter
    {
        protected static function getMoneyFields()
        {
        }
        /**
         * @param array $row
         *
         * @return array
         */
        public function adapt(array $row)
        {
        }
        /**
         * @param array $data
         *
         * @return array
         */
        public static function convertRowData(array $data)
        {
        }
    }
}
namespace Bitrix\Sale {
    /**
     * Class BasketPropertiesCollectionBase
     * @package Bitrix\Sale
     */
    abstract class BasketPropertiesCollectionBase extends \Bitrix\Sale\Internals\EntityCollection
    {
        /** @var BasketItemBase */
        protected $basketItem;
        /**
         * @return BasketItemBase
         */
        protected function getEntityParent()
        {
        }
        /**
         * @param BasketItemBase $basketItem
         */
        public function setBasketItem(\Bitrix\Sale\BasketItemBase $basketItem)
        {
        }
        /**
         * @return BasketItemBase
         */
        public function getBasketItem()
        {
        }
        /**
         * @return BasketPropertiesCollection
         * @throws Main\ArgumentException
         * @throws NotImplementedException
         */
        private static function createBasketPropertiesCollectionObject()
        {
        }
        /**
         * @param BasketItemBase $basketItem
         * @return BasketPropertiesCollectionBase|null
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         * @throws NotImplementedException
         * @throws ObjectNotFoundException
         */
        public static function load(\Bitrix\Sale\BasketItemBase $basketItem)
        {
        }
        /**
         * @param BasketItemCollection $basket
         * @return array
         * @throws Main\ArgumentNullException
         */
        protected static function getBasketIdList(\Bitrix\Sale\BasketItemCollection $basket)
        {
        }
        /**
         * @param BasketItemCollection $collection
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws NotImplementedException
         */
        public static function loadByCollection(\Bitrix\Sale\BasketItemCollection $collection)
        {
        }
        /**
         * @return BasketPropertyItem
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws NotImplementedException
         */
        public function createItem()
        {
        }
        /**
         * @param BasketPropertyItemBase $property
         * @return string
         */
        private function getPropertyCode(\Bitrix\Sale\BasketPropertyItemBase $property)
        {
        }
        /**
         * @param array $properties
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         * @throws NotImplementedException
         * @throws ObjectNotFoundException
         */
        public function redefine(array $properties)
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws NotImplementedException
         */
        public function save()
        {
        }
        /**
         * @param array $values
         * @return bool
         */
        public function isPropertyAlreadyExists(array $values)
        {
        }
        /**
         * @param array $value
         * @return BasketPropertyItemBase|bool
         */
        public function getPropertyItemByValue(array $value)
        {
        }
        /**
         * @return array
         */
        public function getPropertyValues()
        {
        }
        /**
         * @param array $value
         * @return array
         */
        private static function bringingPropertyValue(array $value)
        {
        }
        /**
         * @internal
         *
         * @param \SplObjectStorage $cloneEntity
         * @return BasketPropertiesCollectionBase|Internals\EntityCollection
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         * @throws NotImplementedException
         * @throws ObjectNotFoundException
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * @return Result
         * @throws NotImplementedException
         */
        public function verify()
        {
        }
        /**
         * Load basket item properties.
         *
         * @param array $parameters
         * @throws NotImplementedException
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * Delete basket item properties.
         *
         * @param $primary
         * @throws NotImplementedException
         */
        protected static function delete($primary)
        {
        }
        /**
         * @deprecated Use \Bitrix\Sale\BasketPropertiesCollectionBase::redefine instead
         *
         * @param array $values
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         * @throws NotImplementedException
         * @throws ObjectNotFoundException
         */
        public function setProperty(array $values)
        {
        }
    }
}
namespace Bitrix\Sale\Basket {
    class RefreshFactory
    {
        const TYPE_FULL = 'full';
        const TYPE_SINGLE = 'single';
        public static function create($type = '', $params = null)
        {
        }
        public static function createSingle($basketItemCode)
        {
        }
    }
    abstract class BaseRefreshStrategy
    {
        const REFRESH_FIELD = 'DATE_REFRESH';
        protected $data;
        protected $refreshGap;
        public function __construct(array $data = null)
        {
        }
        protected function getBasketItemRefreshTimestamp(\Bitrix\Sale\BasketItemBase $basketItem)
        {
        }
        protected function isBasketItemChanged(\Bitrix\Sale\BasketItemBase $basketItem)
        {
        }
        protected function getBasketRefreshGapTime()
        {
        }
        protected function getBasketIndexList(\Bitrix\Sale\BasketBase $basket)
        {
        }
        protected function updateBasket(\Bitrix\Sale\BasketBase $basket, array $productDataList)
        {
        }
        protected function updateBasketItem(\Bitrix\Sale\BasketItemBase $item, $data)
        {
        }
        protected function prepareData(\Bitrix\Sale\BasketItemBase $item, $data)
        {
        }
        protected static function getAvailableQuantityFromPool(\Bitrix\Sale\BasketItemBase $item, $quantity)
        {
        }
        protected function getProviderContext(\Bitrix\Sale\BasketBase $basket)
        {
        }
        protected function getBasketItemsToRefresh(\Bitrix\Sale\BasketBase $basket, $quantity = 0)
        {
        }
        /**
         * @param BasketBase $basket
         * @param array      $itemsToRefresh
         *
         * @return Result
         */
        protected function getProviderResult(\Bitrix\Sale\BasketBase $basket, $itemsToRefresh = array())
        {
        }
        /**
         * @param BasketItemBase $item
         * @param                $fields
         *
         * @return Result
         */
        protected function applyRefreshResult(\Bitrix\Sale\BasketItemBase $item, $fields)
        {
        }
        /**
         * @param BasketBase $basket
         *
         * @return Result
         */
        protected abstract function getProductData(\Bitrix\Sale\BasketBase $basket);
        /**
         * @param BasketBase $basket
         *
         * @return Result
         */
        public function refresh(\Bitrix\Sale\BasketBase $basket)
        {
        }
    }
    abstract class RefreshStrategy extends \Bitrix\Sale\Basket\BaseRefreshStrategy
    {
        /**
         * @param BasketItemBase $item
         * @param                $fields
         *
         * @return Result
         */
        protected function applyRefreshResult(\Bitrix\Sale\BasketItemBase $item, $fields)
        {
        }
        /**
         * @param BasketItemBase $item
         * @param                $bundleItemList
         *
         * @return Result
         */
        protected function applyBundleRefreshResult(\Bitrix\Sale\BasketItemBase $item, $bundleItemList)
        {
        }
    }
    class FullRefreshStrategy extends \Bitrix\Sale\Basket\RefreshStrategy
    {
        protected function getProductData(\Bitrix\Sale\BasketBase $basket)
        {
        }
    }
    class Storage
    {
        /** @var array $instance */
        private static $instance = array();
        /** @var Sale\Basket $basket */
        protected $basket;
        /** @var Sale\Basket $orderableBasket */
        protected $orderableBasket;
        private $fUserId;
        private $siteId;
        private function __construct($fUserId, $siteId)
        {
        }
        private function __clone()
        {
        }
        protected static function getHash($fUserId, $siteId)
        {
        }
        protected function getFUserId()
        {
        }
        protected function getSiteId()
        {
        }
        public static function getInstance($fUserId, $siteId)
        {
        }
        public function getBasket()
        {
        }
        public function getOrderableBasket()
        {
        }
    }
    class SingleRefreshStrategy extends \Bitrix\Sale\Basket\RefreshStrategy
    {
        public function __construct(array $data = null)
        {
        }
        protected function extractItem(\Bitrix\Sale\BasketBase $basket)
        {
        }
        protected function getItemToRefresh(\Bitrix\Sale\BasketBase $basket)
        {
        }
        protected function getProductData(\Bitrix\Sale\BasketBase $basket)
        {
        }
    }
}
namespace Bitrix\Sale {
    class UserConsent
    {
        const PROVIDER_CODE = 'sale/order';
        const DATA_PROVIDER_CODE = 'sale/company';
        /**
         * Event `main/OnUserConsentProviderList` handler.
         *
         * @return EventResult
         */
        public static function onProviderList()
        {
        }
        /**
         * Event `main/OnUserConsentDataProviderList` handler.
         *
         * @return EventResult
         */
        public static function onDataProviderList()
        {
        }
    }
}
namespace Bitrix\Sale\Repository {
    /**
     * Class ShipmentRepository
     * @package Bitrix\Sale\Repository
     * @internal
     */
    final class ShipmentRepository
    {
        /** @var ShipmentRepository */
        private static $instance;
        /**
         * ShipmentRepository constructor.
         */
        private function __construct()
        {
        }
        /**
         * @return ShipmentRepository
         */
        public static function getInstance() : \Bitrix\Sale\Repository\ShipmentRepository
        {
        }
        /**
         * @param int $id
         * @return \Bitrix\Sale\Shipment|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function getById(int $id) : ?\Bitrix\Sale\Shipment
        {
        }
    }
}
namespace Bitrix\Sale {
    class Fuser
    {
        function __construct()
        {
        }
        /**
         * Return fuserId.
         *
         * @param bool $skipCreate		Create, if not exist.
         * @return int|null
         */
        public static function getId($skipCreate = false)
        {
        }
        /**
         * Update session data
         *
         * @param int $id				FuserId.
         * @return void
         */
        protected static function updateSession($id)
        {
        }
        /**
         * Return fuser code.
         *
         * @return int
         */
        protected static function getCode()
        {
        }
        /**
         * Return fuserId for user.
         *
         * @param int $userId			User Id.
         * @return false|int
         * @throws Main\ArgumentException
         */
        public static function getIdByUserId($userId)
        {
        }
        /**
         * Return user by fuserId.
         *
         * @param int $fuserId		Fuser Id.
         * @return int
         * @throws Main\ArgumentException
         */
        public static function getUserIdById($fuserId)
        {
        }
        /**
         * Delete fuserId over several days.
         *
         * @param int $days			Interval.
         * @return void
         */
        public static function deleteOld($days)
        {
        }
        /**
         * Create new fuserId for user.
         *
         * @param int $userId				User id.
         * @return Main\Entity\AddResult
         * @throws \Exception
         */
        protected static function createForUserId($userId)
        {
        }
    }
    /**
     * Class ProviderBase
     * @package Bitrix\Sale
     */
    abstract class ProviderBase
    {
        /** @var Internals\Pool[] */
        protected static $reservationPool = array();
        /** @var array  */
        protected static $hitCache = array();
        /** @var array  */
        protected static $trustData = array();
        /** @var bool */
        protected static $useReadTrustData = false;
        /** @var Internals\Pool[] */
        protected static $quantityPool = array();
        static $productData = array();
        const POOL_ACTION_RESERVATION = "RESERVE";
        const POOL_ACTION_SHIP = "SHIP";
        /**
         * @param $key
         * @return Internals\Pool
         */
        protected static function getReservationPool($key)
        {
        }
        /**
         * @param $key
         *
         * @return Internals\Pool
         */
        protected static function resetReservationPool($key)
        {
        }
        /**
         * @param $key
         * @param BasketItem $item
         * @return float|null
         */
        public static function getReservationPoolItem($key, \Bitrix\Sale\BasketItem $item)
        {
        }
        /**
         * @param $key
         * @param BasketItem $item
         * @param $value
         */
        protected static function setReservationPoolItem($key, \Bitrix\Sale\BasketItem $item, $value)
        {
        }
        /**
         * @param $key
         * @param BasketItem $item
         * @param $value
         */
        protected static function addReservationPoolItem($key, \Bitrix\Sale\BasketItem $item, $value)
        {
        }
        /**
         * @param $key
         * @return Internals\Pool
         */
        protected static function getQuantityPool($key)
        {
        }
        /**
         * @param $key
         */
        protected static function resetQuantityPool($key)
        {
        }
        /**
         * @param $key
         * @param BasketItem $item
         * @return float|null
         */
        public static function getQuantityPoolItem($key, \Bitrix\Sale\BasketItem $item)
        {
        }
        /**
         * @param $key
         * @param BasketItem $item
         * @param $value
         */
        protected static function setQuantityPoolItem($key, \Bitrix\Sale\BasketItem $item, $value)
        {
        }
        /**
         * @internal
         *
         * @param $key
         * @param BasketItem $item
         * @param $value
         */
        public static function addQuantityPoolItem($key, \Bitrix\Sale\BasketItem $item, $value)
        {
        }
        /**
         * @param Order $order
         * @return Result
         * @throws NotImplementedException
         * @throws SystemException
         */
        public static function onOrderSave(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @internal
         * @param BasketItemBase $basketItem
         *
         * @return Result
         * @throws NotSupportedException
         * @throws ObjectNotFoundException
         */
        public static function shipBasketItem(\Bitrix\Sale\BasketItemBase $basketItem)
        {
        }
        /**
         * @param Shipment $shipment
         * @return Result
         * @throws NotSupportedException
         * @throws SystemException
         */
        public static function shipShipment(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param $provider
         * @param array $fields
         * @param array $storeDataList
         *
         * @return Result
         */
        public static function shipProductData($provider, array $fields, array $storeDataList = array())
        {
        }
        /**
         * @param Shipment $shipment
         * @param array $shippedList
         * @throws NotSupportedException
         * @throws SystemException
         */
        private function reverseShipment(\Bitrix\Sale\Shipment $shipment, array $shippedList)
        {
        }
        /**
         * @param Shipment $shipment
         *
         * @return Result
         * @throws ObjectNotFoundException
         */
        private function setShipmentItemReserved(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param Basket $basketCollection
         * @param BasketItem $refreshItem
         * @return array
         * @throws NotSupportedException
         */
        public static function getProductAvailableQuantity(\Bitrix\Sale\Basket $basketCollection, \Bitrix\Sale\BasketItem $refreshItem = null)
        {
        }
        /**
         * @param BasketItemCollection $basketCollection
         * @param array $select
         * @param BasketItem|null $refreshItem
         *
         * @return array
         * @throws NotSupportedException
         * @throws ObjectNotFoundException
         */
        public static function getProductData(\Bitrix\Sale\BasketItemCollection $basketCollection, array $select = array(), \Bitrix\Sale\BasketItem $refreshItem = null)
        {
        }
        /**
         * @internal
         * @param array $products
         * @param $providerClassName
         * @param array $select
         * @param array $context
         * @param array $options
         *
         * @return Result
         */
        public static function getProductDataByList(array $products, $providerClassName = null, array $select = array(), array $context, array $options = array())
        {
        }
        /**
         * @param $basketList
         * @param array $productDataList
         * @param array $select
         *
         * @return array
         * @throws ArgumentTypeException
         */
        private static function createItemsAfterGetProductData($basketList, array $productDataList, array $select = array())
        {
        }
        /**
         * @internal
         * @param array $products
         * @param $provider
         * @param array $data
         * @param array $select
         *
         * @return mixed
         */
        public static function getProductProviderData(array $products, $provider, array $data, array $select = array())
        {
        }
        /**
         * @param array $basketProviderList
         * @param array $context
         * @param array $select
         *
         * @return array
         */
        public static function getCatalogData(array $basketProviderList, array $context, array $select = array())
        {
        }
        /**
         * @param Shipment $shipment
         *
         * @return Result
         * @throws NotSupportedException
         * @throws ObjectNotFoundException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function tryShipment(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param ShipmentItem[] $shipmentItemList
         *
         * @return Result
         * @throws ObjectNotFoundException
         */
        public static function tryShipmentItemList($shipmentItemList)
        {
        }
        /**
         * @param $shipmentItemList
         *
         * @return array
         */
        protected static function getBundleIndexFromShipmentItemCollection($shipmentItemList)
        {
        }
        /**
         * @param $shipmentItemList
         *
         * @return array
         * @throws ObjectNotFoundException
         */
        protected static function getBasketFromShipmentItemCollection($shipmentItemList)
        {
        }
        /**
         * @param $shipmentItemList
         *
         * @return array
         * @throws ObjectNotFoundException
         */
        protected static function getBasketCountFromShipmentItemCollection($shipmentItemList)
        {
        }
        /**
         * @param $shipmentItemList
         *
         * @return Result
         */
        protected static function getStoreDataFromShipmentItemCollection($shipmentItemList)
        {
        }
        /**
         * @param Basket BasketItemCollection
         * @param BasketItem|null $refreshItem
         *
         * @return array
         */
        protected static function makeArrayFromBasketCollection(\Bitrix\Sale\BasketItemCollection $basketCollection, \Bitrix\Sale\BasketItem $refreshItem = null)
        {
        }
        /**
         * @param Shipment $shipment
         *
         * @return Result
         * @throws ObjectNotFoundException
         */
        public static function tryReserveShipment(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param Shipment $shipment
         *
         * @return Result
         * @throws ObjectNotFoundException
         */
        public static function tryUnreserveShipment(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param ShipmentItem $shipmentItem
         *
         * @return Result
         * @throws NotSupportedException
         * @throws ObjectNotFoundException
         */
        public static function tryReserveShipmentItem(\Bitrix\Sale\ShipmentItem $shipmentItem)
        {
        }
        /**
         * @param ShipmentItem $shipmentItem
         *
         * @return Result
         * @throws NotSupportedException
         * @throws ObjectNotFoundException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Exception
         */
        public static function tryUnreserveShipmentItem(\Bitrix\Sale\ShipmentItem $shipmentItem)
        {
        }
        /**
         * @param BasketItem $basketItem
         * @param $quantity
         * @return Result
         * @throws NotSupportedException
         */
        protected static function tryReserveBasketItem(\Bitrix\Sale\BasketItem $basketItem, $quantity)
        {
        }
        /**
         * @param BasketItem $basketItem
         * @param $quantity
         * @return Result
         * @throws NotSupportedException
         * @throws ObjectNotFoundException
         */
        private static function reserveBasketItem(\Bitrix\Sale\BasketItem $basketItem, $quantity)
        {
        }
        /**
         * @internal
         * @param $provider
         * @param $productId
         * @param $quantity
         *
         * @return Result
         */
        public static function reserveProduct($provider, $productId, $quantity)
        {
        }
        /**
         * @param ShipmentItem $shipmentItem
         * @param $quantity
         *
         * @return Result
         * @throws NotSupportedException
         * @throws ObjectNotFoundException
         */
        public static function reserveShipmentItem(\Bitrix\Sale\ShipmentItem $shipmentItem, $quantity)
        {
        }
        /**
         * @param ShipmentItem $shipmentItem
         * @param $quantity
         *
         * @return Result
         * @throws NotSupportedException
         * @throws ObjectNotFoundException
         */
        private static function unreserveShipmentItem(\Bitrix\Sale\ShipmentItem $shipmentItem, $quantity)
        {
        }
        /**
         * @param Shipment $shipment
         * @return array
         * @throws NotSupportedException
         * @throws ObjectNotFoundException
         */
        public static function syncReservedQuantity(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * reduce in the quantity of product if the reservation is disabled
         * @param ShipmentCollection $shipmentCollection
         * @param array $shipmentReserveList
         *
         * @throws ObjectNotFoundException
         */
        public static function reduceProductQuantity(\Bitrix\Sale\ShipmentCollection $shipmentCollection, array $shipmentReserveList = array())
        {
        }
        /**
         * increase in the quantity of product if the reservation is disabled
         * @param ShipmentCollection $shipmentCollection
         * @param array $shipmentReserveList
         *
         * @throws ObjectNotFoundException
         */
        public static function increaseProductQuantity(\Bitrix\Sale\ShipmentCollection $shipmentCollection, array $shipmentReserveList = array())
        {
        }
        /**
         * @param BasketItem $basketItem
         *
         * @return Result
         * @throws ObjectNotFoundException
         */
        public static function getProductStores(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @internal
         * @param $provider
         * @param array $fields
         *
         * @return Result
         */
        public static function getStores($provider, array $fields)
        {
        }
        /**
         * @param BasketItem $basketItem
         * @param array $params
         *
         * @return bool
         * @throws ObjectNotFoundException
         */
        public static function checkProductBarcode(\Bitrix\Sale\BasketItem $basketItem, array $params = array())
        {
        }
        /**
         * @internal
         * @param $provider
         * @param array $barcodeParams
         *
         * @return Result
         */
        public static function checkBarcode($provider, array $barcodeParams)
        {
        }
        /**
         * @param BasketItem $basketItem
         *
         * @return array
         * @throws ObjectNotFoundException
         */
        public static function viewProduct(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @internal
         * @param $provider
         * @param array $fields
         *
         * @return Result
         * @throws ArgumentTypeException
         */
        public static function getViewProduct($provider, array $fields)
        {
        }
        /**
         * @param BasketItem $basketItem
         *
         * @return Result
         * @throws ObjectNotFoundException
         */
        public static function recurringOrderProduct(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param $provider
         * @param array $fields
         *
         * @return Result
         * @throws ArgumentTypeException
         */
        public static function recurringProduct($provider, array $fields)
        {
        }
        /**
         * @param BasketItemBase $basketItem
         *
         * @return array|bool|mixed
         * @throws ObjectNotFoundException
         */
        public static function getSetItems(\Bitrix\Sale\BasketItemBase $basketItem)
        {
        }
        /**
         * @param $providerName
         * @param array $productData
         *
         * @return bool|mixed
         */
        private static function getBundleChildItemsByProductData($providerName, array $productData)
        {
        }
        /**
         * @param $providerName
         * @param array $products
         *
         * @return Result
         */
        public static function getBundleChildItems($providerName, array $products)
        {
        }
        /**
         * @param $basketProviderList
         * @param array $productList
         * @return array|bool
         */
        protected static function getProductListFromBasketProviderList($basketProviderList, array $productList = array())
        {
        }
        /**
         * @param BasketItemBase $basketItem
         * @param $deltaQuantity
         *
         * @return Result
         * @throws NotSupportedException
         * @throws ObjectNotFoundException
         */
        public static function checkAvailableProductQuantity(\Bitrix\Sale\BasketItemBase $basketItem, $deltaQuantity)
        {
        }
        /**
         * @param $providerClass
         * @param $productData
         * @param array $context
         *
         * @return Result
         * @throws ArgumentNullException
         */
        private static function getAvailableQuantityByProductData($providerClass, $productData, array $context)
        {
        }
        /**
         * @param $providerClass
         * @param $productData
         * @param array $context
         *
         * @return Result
         * @throws ArgumentNullException
         */
        private static function getProviderDataByProductData($providerClass, $productData, array $context)
        {
        }
        /**
         * @param Shipment $shipment
         *
         * @return Result
         * @throws NotSupportedException
         * @throws ObjectNotFoundException
         */
        public static function deliverShipment(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param $provider
         * @param array $fields
         *
         * @return Result
         */
        public static function deliverProductData($provider, array $fields)
        {
        }
        /**
         * @param array $basketList
         * @param array $select
         * @return array
         * @throws ObjectNotFoundException
         */
        protected static function createProviderBasketMap(array $basketList, array $select = array())
        {
        }
        protected static function createProviderBasketItemMap(\Bitrix\Sale\BasketItem $basketItem, array $select = array())
        {
        }
        /**
         * @param Shipment $shipment
         * @return array
         */
        private static function getProviderBasketFromShipment(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param array $basketProviderMap
         * @return array
         */
        protected static function redistributeToProviders(array $basketProviderMap)
        {
        }
        /**
         * @internal
         * @param bool $value
         */
        public static function setUsingTrustData($value)
        {
        }
        /**
         * @internal
         * @return bool
         */
        public static function isReadTrustData()
        {
        }
        /**
         * @internal
         * @param $siteId
         * @param $module
         * @param $productId
         *
         * @return bool
         */
        public static function isExistsTrustData($siteId, $module, $productId)
        {
        }
        /**
         * @internal
         * @param string $siteId
         * @param string $module
         * @param int $productId
         * @param array $fields
         */
        public static function setTrustData($siteId, $module, $productId, array $fields)
        {
        }
        /**
         * @internal
         * @param $siteId
         * @param $module
         * @param $productId
         *
         * @return null
         */
        public static function getTrustData($siteId, $module, $productId)
        {
        }
        /**
         * @internal
         * @param null|string $siteId
         * @param null|string $module
         * @param null|int $productId
         */
        public static function resetTrustData($siteId = null, $module = null, $productId = null)
        {
        }
        /**
         * @param Order $order
         *
         * @throws ArgumentNullException
         * @throws NotImplementedException
         * @throws NotSupportedException
         * @throws ObjectNotFoundException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Exception
         */
        protected static function refreshMarkers(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @return array
         */
        protected static function getPrimaryFields()
        {
        }
        /**
         * @internal
         * @return array
         */
        public static function getUpdatableFields()
        {
        }
        /**
         * @internal
         * @return array
         */
        protected static function getProductDataRequiredFields()
        {
        }
        /**
         * @internal
         * @return array
         */
        protected static function getProductDataRequiredPriceFields()
        {
        }
        /**
         * @internal
         * @param $providerClass
         * @param array $products
         * @param array $context
         *
         * @return Result
         */
        public static function getAvailableQuantity($providerClass, array $products, array $context)
        {
        }
        /**
         * @internal
         * @param $providerClass
         * @param array $products
         * @param array $context
         *
         * @return Result
         * @throws ObjectNotFoundException
         */
        public static function getAvailableQuantityAndPrice($providerClass, array $products, array $context)
        {
        }
        /**
         * @param ShipmentItem[] $shipmentItemList
         *
         * @return Result
         * @throws ObjectNotFoundException
         */
        public static function isNeedShip($shipmentItemList)
        {
        }
        /**
         * @return array
         */
        protected static function getPriceFields()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\OneC {
    /**
     * Class DocumentBase
     * @package Bitrix\Sale\Exchange\OneC
     * @deprecated
     */
    class DocumentBase
    {
        const CML_LANG_ID = 'ru';
        /** @var Fields */
        protected $fields;
        function __construct()
        {
        }
        /**
         * @return array
         */
        protected static function getMessage()
        {
        }
        /**
         * @return array
         */
        protected static function getMessageExport()
        {
        }
        /**
         * @return int
         */
        public function getTypeId()
        {
        }
        /**
         * @param array $values
         * @internal param array $fields
         */
        public function setFields(array $values)
        {
        }
        /**
         * @param $name
         * @param $value
         */
        public function setField($name, $value)
        {
        }
        /**
         * @param $name
         * @return null|string
         */
        public function getField($name)
        {
        }
        /**
         * @return array
         */
        public function getFieldValues()
        {
        }
        /**
         * @return int
         */
        public function getId()
        {
        }
        /**
         * @return null|string
         */
        public function getExternalId()
        {
        }
        /**
         * @param array $document
         * @return int
         */
        public static function resolveRawDocumentTypeId(array $document)
        {
        }
        /**
         * @param array string
         * @return int
         */
        public static function resolveDocumentTypeId($operation)
        {
        }
        public static function resolveDocumentTypeName($typeId)
        {
        }
        /**
         * @param $value
         * @param $fieldName
         * @param array $fieldsInfo
         * @param array $document
         * @return null
         */
        public static function resolveItemsArrayParams($value, $fieldName, array $fieldsInfo, array $document)
        {
        }
        /**
         * @param array $document
         * @param array $fieldsInfo
         * @return array|null
         */
        protected static function resolveItemsParams(array $document, array $fieldsInfo)
        {
        }
        /**
         * @param array $value
         * @param array $fieldsInfo
         * @return null
         */
        protected static function resolveCashBoxCheksParams(array $value, array $fieldsInfo)
        {
        }
        /**
         * @param array $value
         * @param array $fieldsInfo
         * @return null
         */
        protected static function resolveTraitsParams(array $value, array $fieldsInfo)
        {
        }
        /**
         * @param array $value
         * @param array $fieldsInfo
         * @return null
         */
        protected static function resolveTaxParams(array $value, array $fieldsInfo)
        {
        }
        /**
         * @param array $value
         * @param array $fieldsInfo
         * @return null
         */
        protected static function resolveDiscountsParams(array $value, array $fieldsInfo)
        {
        }
        /**
         * @param $value
         * @param array $fieldsInfo
         * @return null
         */
        protected static function resolveUnitParams($value, array $fieldsInfo)
        {
        }
        /**
         * @param $value
         * @param array $fieldsInfo
         * @return null
         */
        protected static function resolveMarkingGroupParams($value, array $fieldsInfo)
        {
        }
        /**
         * @param array $value
         * @param array $fieldsInfo
         * @return null
         */
        protected static function resolveMarkingParams(array $value, array $fieldsInfo)
        {
        }
        /**
         * @param array $fields
         * @return array|null
         */
        protected static function fillItemsFields(array $fields)
        {
        }
        /**
         * @param $value
         * @param null $fieldInfo
         */
        protected static function internalizeFields(&$value, $fieldInfo = null)
        {
        }
        /**
         * @param $value
         * @return float
         */
        protected static function toFloat($value)
        {
        }
        /**
         * @param $value
         * @return int
         */
        protected static function toInt($value)
        {
        }
        /**
         * @param array $document
         * @return array
         */
        public static function prepareFieldsData(array $document)
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         */
        protected static function getFieldsInfo()
        {
        }
        public function openNodeDirectory($level, $name)
        {
        }
        public function closeNodeDirectory($level, $name)
        {
        }
        protected function formatXMLNode($level, $name, $value, $parameters = array())
        {
        }
        /**
         * @param int $level
         * @return string
         */
        public function output($level = 0)
        {
        }
        /**
         * @param array $fields
         * @return string
         */
        protected function outputXml(array $fields, $level = 0)
        {
        }
        /**
         * @param $code
         * @return string
         */
        public static function getLangByCodeField($code)
        {
        }
        protected function outputXmlRekValue($level, $name, $value)
        {
        }
        protected function outputXmlUnits($level, $name, $list)
        {
        }
        protected function outputXmlBaseUnit($level, $name, $value)
        {
        }
        protected function outputXmlItems($level, $name, $items)
        {
        }
        protected function outputXmlAddress($level, $addresses)
        {
        }
        protected function outputXmlStories($level, $name, $stories)
        {
        }
        protected function outputXmlTaxRates($level, $name, $taxes)
        {
        }
        protected function outputXmlTaxes($level, $name, $taxes)
        {
        }
        protected function outputXmlDiscounts($level, $name, $discounts)
        {
        }
        public function getNameNodeDocument()
        {
        }
    }
    /**
     * Class DocumentImport
     * @package Bitrix\Sale\Exchange\OneC
     * @deprecated
     */
    class DocumentImport extends \Bitrix\Sale\Exchange\OneC\DocumentBase
    {
    }
}
namespace Bitrix\Sale\Exchange {
    abstract class ImportBase
    {
        const ITEM_ITEM = 'ITEM';
        const ITEM_SERVICE = 'SERVICE';
        protected $collisionErrors = false;
        protected $collisionWarnings = false;
        protected $logging = false;
        /** @var Sale\Internals\Fields */
        protected $fields;
        /** @var ISettingsImport */
        protected $settings = null;
        /** @var Exchange\ICriterion */
        protected $loadCriterion = null;
        /** @var Exchange\Internals\LoggerDiag  */
        protected $loadLogger = null;
        /** @var ICollision  */
        protected $loadCollision = null;
        /** @var  Exchange\Internals\LoggerDiag $logger */
        protected $logger = array();
        /**
         * @return string
         */
        public static function getFieldExternalId()
        {
        }
        /**
         * @return Sale\Internals\Entity $entity|ImportBase|null
         */
        public abstract function getEntity();
        /**
         * @return int
         */
        public abstract function getOwnerTypeId();
        /**
         * Adds row to entity table
         * @param array $params
         * @return Sale\Result
         */
        public abstract function add(array $params);
        /**
         * Updates row in entity table
         * @param array $params
         * @return Sale\Result
         */
        public abstract function update(array $params);
        /**
         * Deletes row in entity table by primary key
         * @param array|null $params
         * @return Sale\Result
         */
        public abstract function delete(array $params = null);
        /**
         * @param array $fields
         * @return Sale\Result
         */
        protected abstract function checkFields(array $fields);
        /**
         * @param array $fields
         * @return Sale\Result
         */
        public abstract function load(array $fields);
        /**
         * @param array $params
         * @return Sale\Result
         */
        public function import(array $params)
        {
        }
        /**
         * @return int|null
         */
        public abstract function getId();
        /**
         * @return null|string
         */
        public function getExternalId()
        {
        }
        /**
         * @return bool
         */
        public abstract function isImportable();
        /**
         * @param array $values
         * @internal param array $fields
         */
        public function setFields(array $values)
        {
        }
        /**
         * @param $name
         * @param $value
         */
        public function setField($name, $value)
        {
        }
        /**
         * @param $name
         * @return null|string
         */
        public function getField($name)
        {
        }
        /**
         * @return array
         */
        public function getFieldValues()
        {
        }
        /**
         * @param array $fields
         */
        public abstract function refreshData(array $fields);
        /**
         * @return array
         */
        protected function getFieldsTraits()
        {
        }
        public abstract function initFields();
        /**
         * @param $fields
         */
        public function initFieldsFromArray($fields)
        {
        }
        /**
         * @param ISettings $settings
         */
        public function loadSettings(\Bitrix\Sale\Exchange\ISettings $settings)
        {
        }
        /**
         * @param ICriterion $criterion
         */
        public function loadCriterion(\Bitrix\Sale\Exchange\ICriterion $criterion)
        {
        }
        /**
         * @return ICriterion
         * @internal param $typeId
         * @internal param $entity
         * @internal
         */
        public function getLoadedCriterion()
        {
        }
        /**
         * @param $entity
         * @return ICriterion
         */
        public function getCurrentCriterion($entity)
        {
        }
        /**
         * @param ICollision $collision
         */
        public function loadCollision(\Bitrix\Sale\Exchange\ICollision $collision)
        {
        }
        /**
         * @internal
         * @return ICollision
         * @throws Main\ArgumentOutOfRangeException
         */
        public function getLoadedCollision()
        {
        }
        /**
         * @return ISettings
         */
        public function getSettings()
        {
        }
        /**
         * @param $typeId
         * @return ICollision
         */
        public function getCurrentCollision($typeId)
        {
        }
        public function loadLogger(\Bitrix\Sale\Exchange\Internals\Logger $logger)
        {
        }
        public function getLoadedLogger()
        {
        }
        public function getCurrentLogger()
        {
        }
        public function initLogger()
        {
        }
        /**
         * @return Internals\LoggerDiag
         */
        public function getLogger()
        {
        }
        /**
         * @return bool
         */
        public function hasCollisionErrors()
        {
        }
        /**
         * @return bool
         */
        public function hasCollisionWarnings()
        {
        }
        public function hasLogging()
        {
        }
        /**
         * @return array|null
         * @deprecated
         */
        private static function getSaleExport()
        {
        }
        /**
         * @param Sale\Order $order
         * @return array
         * @deprecated
         */
        public static function getBusinessValue(\Bitrix\Sale\IBusinessValueProvider $entity)
        {
        }
        /**
         * @param $rekv
         * @param array $exportProfile
         * @return array
         */
        private static function modifyRekv($rekv, array $exportProfile)
        {
        }
        /**
         * @param Sale\IBusinessValueProvider $entity
         * @return Sale\Order
         */
        protected static function getBusinessValueOrderProvider(\Bitrix\Sale\IBusinessValueProvider $entity)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Entity {
    abstract class UserImportBase extends \Bitrix\Sale\Exchange\ImportBase
    {
        const EXTERNAL_AUTH_ID = 'sale';
        /** @var  ImportBase */
        protected $entity;
        /**
         * @param ImportBase $entity
         */
        public function setEntity(\Bitrix\Sale\Exchange\ImportBase $entity)
        {
        }
        /**
         * @return ImportBase
         */
        public function getEntity()
        {
        }
        /**
         * @param $personalTypeId
         * @param $profile
         * @param $property
         * @return array
         */
        public function getPropertyOrdersByConfig($personalTypeId, $profile, $property)
        {
        }
        /**
         * @param $orgFormId
         * @param array $userProps
         * @return bool
         */
        public function getFieldsConfig($orgFormId, $userProps = array())
        {
        }
        /**
         * @return null
         */
        public function getConfig()
        {
        }
        /**
         * @param $siteId
         * @return array
         */
        public function getListPersonType($siteId)
        {
        }
        /**
         * @return bool
         */
        public function isFiz()
        {
        }
        /**
         * @param $fields
         * @return int|null|string
         */
        public function resolvePersonTypeId($fields)
        {
        }
        /**
         * @param $personTypeId
         * @return mixed
         */
        public static function getPropertyOrdersByPersonalTypeId($personTypeId)
        {
        }
        /**
         * @param $fields
         * @param $arErrors
         * @return bool|int|string
         */
        public function registerUser($fields, &$arErrors)
        {
        }
        /**
         * @param $id
         * @param $xmlIdUser
         * @param $xmlIdFields
         * @return bool
         * @internal
         */
        public static function updateEmptyXmlId($id, $xmlId)
        {
        }
        public function initFields()
        {
        }
        /**
         * @param IBusinessValueProvider $entity
         * @return Order
         */
        protected static function getBusinessValueOrderProvider(\Bitrix\Sale\IBusinessValueProvider $entity)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange {
    /**
     * Class ProfileImport
     * @package Bitrix\Sale\Exchange
     * @internal
     * @deprecated
     */
    class ProfileImport extends \Bitrix\Sale\Exchange\Entity\UserImportBase
    {
        /**
         * ProfileImport constructor.
         */
        public function __construct()
        {
        }
        /**
         * @return int
         */
        public function getOwnerTypeId()
        {
        }
        /**
         * @param array $fields
         * @return Sale\Result
         * @throws Main\ArgumentException
         */
        public function load(array $fields)
        {
        }
        /**
         * @return null|string
         */
        public function getPersonalTypeId()
        {
        }
        /**
         * @return null|string
         */
        public function getUserId()
        {
        }
        /**
         * @return int|null
         */
        public function getId()
        {
        }
        /**
         * @return int|null
         */
        public function profileGetId()
        {
        }
        /**
         * @return bool
         */
        public function isImportable()
        {
        }
        /**
         * @param array $params
         * @return Sale\Result
         */
        public function add(array $params)
        {
        }
        /**
         * @param array $params
         * @return Sale\Result
         */
        public function update(array $params)
        {
        }
        /**
         * Deletes row in entity table by primary key
         * @param array|null $params
         * @return Sale\Result
         */
        public function delete(array $params = null)
        {
        }
        /**
         * @param array $fields
         * @return Sale\Result
         */
        protected function checkFields(array $fields)
        {
        }
        /**
         * @param array $fields
         * @return array|bool|false|mixed|null
         */
        public static function getUserProfile(array $fields)
        {
        }
        /**
         * @param $profileId
         * @return array|bool
         */
        public static function getFieldsUserProfile($profileId)
        {
        }
        /**
         * @param array $fields
         * @return mixed
         */
        public function initFieldsProfile(array $fields, &$arErrors)
        {
        }
        /**
         * @param $code
         * @return array
         * @deprecated
         */
        public static function getUserByCode($code)
        {
        }
        /**
         * @return string
         */
        public static function getFieldExternalId()
        {
        }
        /**
         * @param array $fields
         */
        public function refreshData(array $fields)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Logger {
    class Exchange
    {
        protected $providerType = null;
        /**
         * Exchange constructor.
         * @param $providerType
         * @throws ArgumentException
         */
        public function __construct($providerType)
        {
        }
        /**
         * @param array $params
         * @return \Bitrix\Main\ORM\Data\AddResult
         * @throws \Exception
         */
        public function add(array $params)
        {
        }
        /**
         * @param $params
         * @return \Bitrix\Main\ORM\Query\Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function getList(array $params)
        {
        }
        /**
         * @param $timeUpdate
         * @param $entityTypeId
         * @param $direction
         * @return array
         * @throws ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function getEffectedRows($timeUpdate, $entityTypeId, $direction)
        {
        }
        public function isEffected($list, array $logs)
        {
        }
        /**
         * Clears old logging data
         */
        public function deleteOldRecords($direction, $interval)
        {
        }
    }
    class ProviderType
    {
        const ONEC_NAME = 'onec';
        const B24_INTEGRATION_NAME = 'b24integration';
    }
}
namespace Bitrix\Sale\Exchange {
    abstract class ImportPattern
    {
        /**
         * @param array $rawData
         * @return mixed
         */
        public abstract function parse(array $rawData);
        /**
         * @param array $items
         * @return mixed
         */
        protected abstract function convert(array $items);
        /**
         * @param ImportBase[] $items
         * @return mixed
         */
        protected abstract function import(array $items);
        /**
         * @param ImportBase[] $items
         * @return Result
         */
        protected abstract function logger(array $items);
        /**
         * @param array $rawData
         * @return Result
         */
        public function process(array $rawData)
        {
        }
    }
    trait LoggerTrait
    {
        /** @var  $rawData null */
        protected $rawData;
        /**
         * @param null $rawData
         */
        public function setRawData($rawData)
        {
        }
        /**
         * @return null
         */
        public function getRawData()
        {
        }
        /**
         * @return string
         */
        public abstract function getDirectionType();
        /**
         * @param ImportBase[] $items
         * @return Result
         */
        protected function loggerEntities(array $items)
        {
        }
        /**
         * @param ImportBase[] $items
         * @param OrderImport $orderItem
         * @return Result
         */
        protected function loggerEntitiesPackage(array $items, \Bitrix\Sale\Exchange\Entity\OrderImport $orderItem)
        {
        }
    }
    trait BaseTrait
    {
        /**
         * @param $typeId
         * @return DocumentBase
         */
        protected function documentFactoryCreate($typeId)
        {
        }
        /**
         * @param $typeId
         * @return Converter
         */
        protected function converterFactoryCreate($typeId)
        {
        }
        /**
         * @param $typeId
         * @return ImportBase
         */
        protected function entityFactoryCreate($typeId)
        {
        }
    }
    abstract class ImportOneCBase extends \Bitrix\Sale\Exchange\ImportPattern
    {
        use \Bitrix\Sale\Exchange\LoggerTrait;
        use \Bitrix\Sale\Exchange\BaseTrait;
        const EVENT_ON_EXCHANGE_CONFIGURE_IMPORTER = 'OnExchangeConfigureImporter';
        const DELIVERY_SERVICE_XMLID = 'ORDER_DELIVERY';
        /** @var  Fields */
        protected $fields;
        protected static $config;
        /**
         * @param array $values
         * @internal param array $fields
         */
        public function setFields(array $values)
        {
        }
        /**
         * @param $name
         * @param $value
         */
        public function setField($name, $value)
        {
        }
        /**
         * @param $name
         * @return null|string
         */
        public function getField($name)
        {
        }
        /**
         * @param array $items
         * @return Result
         */
        protected function checkFields(array $items)
        {
        }
        /**
         * @return Result
         */
        public static function checkSettings()
        {
        }
        public static function configuration()
        {
        }
        protected static function setConfig($option = '', $value = true)
        {
        }
        /**
         * @param ImportBase $item
         * @return Result
         * @throws ArgumentException
         * @internal
         */
        protected function modifyEntity($item)
        {
        }
        /**
         * @param array $rawFields
         * @return Result
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\NotSupportedException
         */
        public function parse(array $rawFields)
        {
        }
        /**
         * @param DocumentBase $document
         * @return ImportBase
         */
        protected function convertDocument(\Bitrix\Sale\Exchange\OneC\DocumentBase $document)
        {
        }
        protected abstract function resolveOwnerEntityTypeId($typeId);
        /**
         * @param array $fields
         * @return int
         */
        protected function resolveDocumentTypeId(array $fields)
        {
        }
        /**
         * @return array
         */
        protected static function getMessage()
        {
        }
        /**
         * @return string
         */
        public function getDirectionType()
        {
        }
        /**
         * @param ImportBase[] $items
         * @return Result
         */
        protected function logger(array $items)
        {
        }
    }
    class ImportOneCContragentBase extends \Bitrix\Sale\Exchange\ImportOneCBase
    {
        protected function resolveDocumentTypeId(array $fields)
        {
        }
        /**
         * @param OneC\DocumentBase[] $documents
         * @return Result
         */
        protected function convert(array $documents)
        {
        }
        /**
         * @param UserImportBase[] $items
         * @return mixed
         */
        protected function import(array $items)
        {
        }
        public static function configuration()
        {
        }
        /**
         * @param ImportBase[] $items
         * @return Result
         */
        protected function logger(array $items)
        {
        }
        protected function resolveOwnerEntityTypeId($typeId)
        {
        }
        static function getUserProfileEntityTypeId()
        {
        }
    }
    class ImportOneCContragentCRM extends \Bitrix\Sale\Exchange\ImportOneCContragentBase
    {
        static function getUserProfileEntityTypeId()
        {
        }
    }
    abstract class ManagerBase
    {
        const EXCHANGE_DIRECTION_IMPORT = 'I';
        const EXCHANGE_DIRECTION_EXPORT = 'E';
        protected static $instance = null;
        /** @var ISettingsImport|ISettingsExport $settings */
        protected $settings = null;
        /** @var LoggerDiag $logger */
        protected $logger = null;
        /**
         * @return string
         * @throws NotImplementedException
         */
        public static function getDirectionType()
        {
        }
        /**
         * @return static
         */
        private static function getInstance()
        {
        }
        /**
         * Get import by Type ID.
         * @param $typeId
         * @return null|static
         * @throws ArgumentOutOfRangeException
         */
        protected static function getImportByType($typeId)
        {
        }
        /**
         * @param ImportBase $entity
         * @throws NotImplementedException
         */
        public static function configure(\Bitrix\Sale\Exchange\ImportBase $entity)
        {
        }
        /**
         * @throws ArgumentOutOfRangeException
         * @throws NotImplementedException
         */
        public static function deleteLoggingDate()
        {
        }
        protected static function IsDefinedTypeId($typeId)
        {
        }
    }
    trait PackageTrait
    {
        /**
         * @param ImportBase $item
         * @param array $fields
         * @param null $order
         */
        protected static function load(\Bitrix\Sale\Exchange\ImportBase $item, array $fields, $order = null)
        {
        }
        /**
         * @param array $fields
         * @return array
         */
        protected function getProductsItems(array $fields)
        {
        }
        /**
         * @param $type_id
         * @param OneC\DocumentBase[] $documents
         * @return bool
         */
        protected function hasDocumentByTypeId($type_id, array $documents)
        {
        }
        /**
         * @param $type_id
         * @param OneC\DocumentBase[] $documents
         * @return OneC\DocumentBase|null
         */
        protected function getDocumentByTypeId($type_id, array $documents)
        {
        }
        /**
         * @param $type_id
         * @param ImportBase[] $items
         * @return ImportBase|null
         */
        protected function getEntityByTypeId($type_id, array $items)
        {
        }
        /**
         * @param array $list
         * @return bool
         */
        protected function deliveryServiceExists(array $list)
        {
        }
    }
    class ImportOneCPackage extends \Bitrix\Sale\Exchange\ImportOneCBase
    {
        use \Bitrix\Sale\Exchange\PackageTrait;
        use \Bitrix\Sale\Exchange\LoggerTrait;
        const DELETE_IF_NOT_FOUND_RELATED_PAYMENT_DOCUMENT = 0x1;
        private static $instance = null;
        private static $settings = null;
        protected $order = null;
        /**
         * @return static
         */
        public static function getInstance()
        {
        }
        private function __clone()
        {
        }
        private function __construct()
        {
        }
        /**
         * @return Result|null
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function checkSettings()
        {
        }
        /**
         * @param OneC\DocumentBase[] $documents
         * @return Result
         */
        protected function checkDocuments(array $documents)
        {
        }
        /**
         * @param array $list
         * @return mixed|null
         */
        protected function getDeliveryServiceItem(array $list)
        {
        }
        /**
         * @param OneC\DocumentBase[] $documents
         * @return Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotSupportedException
         */
        protected function convert(array $documents)
        {
        }
        /**
         * @param $typeId
         * @return int
         */
        protected function resolveOwnerEntityTypeId($typeId)
        {
        }
        /**
         * @param array $items
         * @return Result
         */
        protected function checkFields(array $items)
        {
        }
        public static function configuration()
        {
        }
        /**
         * @param ImportBase[] $items
         * @return ImportBase[]
         */
        protected function sortItems(array $items)
        {
        }
        /**
         * @param ImportBase[] $items
         * @return Result
         * @inernal
         */
        protected function import(array $items)
        {
        }
        /**
         * @param ImportBase $item
         * @return bool
         */
        private function importableItems($item)
        {
        }
        /**
         * @return int
         */
        protected static function getParentEntityTypeId()
        {
        }
        /**
         * @return int
         */
        protected static function getShipmentEntityTypeId()
        {
        }
        /**
         * @return int
         */
        protected static function getPaymentCardEntityTypeId()
        {
        }
        /**
         * @return int
         */
        protected static function getPaymentCashEntityTypeId()
        {
        }
        /**
         * @return int
         */
        protected static function getPaymentCashLessEntityTypeId()
        {
        }
        /**
         * @param array $items
         * @return Exchange\Entity\EntityImport|null
         */
        protected function loadParent(array $items)
        {
        }
        /**
         * Modify the shipment collection.
         * Remove shipments that were not submitted for processing
         * Add a note to the order saying the shipment was removed
         * @internal
         * @param Entity\OrderImport $orderImport
         * @param Entity\EntityImport[] $items
         * @return Result
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotSupportedException
         */
        protected function onBeforeShipmentCollectionModify(\Bitrix\Sale\Exchange\Entity\OrderImport $orderImport, $items)
        {
        }
        protected function resolveEntityTypeId(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * Modify the payment collection.
         * Remove payments that were not submitted for processing
         * Add a note to the order saying the payment was removed
         * @param Entity\OrderImport $orderImport
         * @param Entity\EntityImport[] $items
         * @return Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotSupportedException
         * @inernal
         */
        protected function onBeforePaymentCollectionModify(\Bitrix\Sale\Exchange\Entity\OrderImport $orderImport, $items)
        {
        }
        protected function paymentDelete(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * Modify the order and all dependent entities before import
         * @param Entity\OrderImport $orderImport
         * @param Entity\EntityImport[] $items
         * @return Result
         * @throws ArgumentNullException
         * @internal param Entity\OrderImport $order
         * @inernal
         */
        protected function onBeforeBasketModify(\Bitrix\Sale\Exchange\Entity\OrderImport $orderImport, $items)
        {
        }
        /**
         * Modify all dependent entities before the order is changed
         * @param Entity\OrderImport $orderImport
         * @param Entity\EntityImport[] $items
         * @return Result
         * @inernal
         */
        protected function onBeforeEntityModify(\Bitrix\Sale\Exchange\Entity\OrderImport $orderImport, array $items)
        {
        }
        /**
         * Modify shipment after changed
         * @param Entity\OrderImport $orderImport
         * @return Result
         * @internal param ImportBase $entity
         */
        protected function onAfterShipmentModifyChangeStatusOnDelivery(\Bitrix\Sale\Exchange\Entity\OrderImport $orderImport)
        {
        }
        /**
         * Modify all dependent entities after the order is changed
         * @param Entity\OrderImport $orderImport
         * @param ImportBase[] $items
         * @return Result
         */
        protected function onAfterEntitiesModify(\Bitrix\Sale\Exchange\Entity\OrderImport $orderImport, $items)
        {
        }
        /**
         * @param $id
         * @param Entity\EntityImport $item
         * @return Result
         */
        protected function checkParentById($id, \Bitrix\Sale\Exchange\Entity\EntityImport $item)
        {
        }
        /**
         * @param $order
         * @param Exchange\Entity\EntityImport $itemOrder
         * @return Result
         */
        protected function orderIsLoad($order, $itemOrder)
        {
        }
        /**
         * @param Entity\OrderImport $orderImport
         * @param Result $result
         */
        protected function marker(\Bitrix\Sale\Exchange\Entity\OrderImport $orderImport, \Bitrix\Sale\Result $result)
        {
        }
        /**
         * @param Exchange\Entity\OrderImport $orderImport
         * @param ImportBase[] $items
         * @return \Bitrix\Main\Entity\AddResult|\Bitrix\Main\Entity\UpdateResult|Result|mixed
         */
        protected function save(\Bitrix\Sale\Exchange\Entity\OrderImport $orderImport, $items)
        {
        }
        /**
         * @param ImportBase[] $items
         * @return bool
         */
        protected function hasCollisionErrors($items)
        {
        }
        /**
         * @param Entity\OrderImport $orderImport
         * @param ProfileImport[]|Exchange\Entity\EntityImport[] $items
         * @return Result
         * @deprecated
         */
        protected function UpdateCashBoxChecks(\Bitrix\Sale\Exchange\Entity\OrderImport $orderImport, array $items)
        {
        }
        /**
         * @param ImportBase[] $items
         * @return Result
         */
        protected function logger(array $items)
        {
        }
    }
    final class ImportOneCPackageSale extends \Bitrix\Sale\Exchange\ImportOneCPackage
    {
        protected function convert(array $documents)
        {
        }
        /**
         * @param OneC\OrderDocument $document
         * @return null|string
         */
        protected function getDefaultTrackingNumber(\Bitrix\Sale\Exchange\OneC\OrderDocument $document)
        {
        }
        /**
         * @param OneC\OrderDocument $document
         * @return null|int
         */
        protected function getDefaultPaySystem(\Bitrix\Sale\Exchange\OneC\OrderDocument $document)
        {
        }
        /**
         * @param OneC\OrderDocument $document
         * @return null|int
         */
        protected function getDefaultDeliverySystem(\Bitrix\Sale\Exchange\OneC\OrderDocument $document)
        {
        }
        /**
         * @param OrderImport $orderImport
         * @param array $items
         * @return Result
         * @deprecated
         */
        protected function UpdateCashBoxChecks(\Bitrix\Sale\Exchange\Entity\OrderImport $orderImport, array $items)
        {
        }
    }
    class EntityType
    {
        const UNDEFINED = 0;
        const ORDER = 1;
        const SHIPMENT = 2;
        const PAYMENT_CASH = 3;
        const PAYMENT_CASH_LESS = 4;
        const PAYMENT_CARD_TRANSACTION = 5;
        const PROFILE = 6;
        const USER_PROFILE = 7;
        const USER_PROFILE_CONTACT_COMPANY = 13;
        const INVOICE = 8;
        const INVOICE_SHIPMENT = 9;
        const INVOICE_PAYMENT_CASH = 10;
        const INVOICE_PAYMENT_CASH_LESS = 11;
        const INVOICE_PAYMENT_CARD_TRANSACTION = 12;
        const FIRST = 1;
        const LAST = 13;
        const ORDER_NAME = 'ORDER';
        const SHIPMENT_NAME = 'SHIPMENT';
        const PAYMENT_CASH_NAME = 'PAYMENT_CASH';
        const PAYMENT_CASH_LESS_NAME = 'PAYMENT_CASH_LESS';
        const PAYMENT_CARD_TRANSACTION_NAME = 'PAYMENT_CARD_TRANSACTION';
        const PROFILE_NAME = 'PROFILE';
        const USER_PROFILE_NAME = 'USER_PROFILE';
        const USER_PROFILE_CONTACT_COMPANY_NAME = 'USER_PROFILE_CONTACT_COMPANY';
        const INVOICE_NAME = 'INVOICE';
        const INVOICE_SHIPMENT_NAME = 'INVOICE_SHIPMENT';
        const INVOICE_PAYMENT_CASH_NAME = 'INVOICE_PAYMENT_CASH';
        const INVOICE_PAYMENT_CASH_LESS_NAME = 'INVOICE_PAYMENT_CASH_LESS';
        const INVOICE_PAYMENT_CARD_TRANSACTION_NAME = 'INVOICE_PAYMENT_CARD_TRANSACTION';
        private static $ALL_DESCRIPTIONS = array();
        /**
         * @param $typeID
         * @return bool
         */
        public static function isDefined($typeID)
        {
        }
        /**
         * @param $name
         * @return int
         */
        public static function resolveID($name)
        {
        }
        /**
         * @param $typeID
         * @return string
         */
        public static function resolveName($typeID)
        {
        }
        /**
         * @return mixed
         */
        public static function getAllDescriptions()
        {
        }
        /**
         * @param $typeID
         * @return string
         */
        public static function getDescription($typeID)
        {
        }
        /**
         * @param $types
         * @return array
         */
        public static function getDescriptions($types)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Entity {
    /**
     * Class EntityImport
     * @package Bitrix\Sale\Exchange\Entity
     * @internal
     */
    abstract class EntityImport extends \Bitrix\Sale\Exchange\ImportBase
    {
        public $collisions = array();
        protected $parentEntity = null;
        /** @var Sale\Internals\Entity $entity*/
        protected $entity = null;
        protected $external = null;
        protected $marked = false;
        public function __construct($parentEntityContext = null)
        {
        }
        /**
         * @return int
         */
        public function getOwnerTypeId()
        {
        }
        /**
         * @internal
         * @param Sale\Order $parentEntity
         */
        public function setParentEntity(\Bitrix\Sale\Order $parentEntity)
        {
        }
        /**
         * @return null|Sale\Order
         */
        public function getParentEntity()
        {
        }
        /**
         * @return bool
         */
        public function isLoadedParentEntity()
        {
        }
        /**
         * @param array $fields
         * @return Sale\Order
         */
        protected function loadParentEntity(array $fields)
        {
        }
        /**
         * @param Sale\Internals\Entity $entity
         * @throws Main\NotImplementedException
         */
        public abstract function setEntity(\Bitrix\Sale\Internals\Entity $entity);
        /**
         * @return Sale\Internals\Entity $entity|null
         */
        public function getEntity()
        {
        }
        /**
         * @return string
         */
        protected function isExternal()
        {
        }
        /**
         * @param bool|true $external
         */
        public function setExternal($external = true)
        {
        }
        /**
         * @param $tipeId
         * @param Sale\Internals\Entity $entity
         * @param null $message
         * @internal
         */
        public function setCollisions($tipeId, \Bitrix\Sale\Internals\Entity $entity, $message = null)
        {
        }
        /**
         * @return Exchange\ICollision[]
         */
        public function getCollisions()
        {
        }
        /**
         * @return int
         */
        public function hasCollisions()
        {
        }
        /**
         * @param $collisions
         */
        public function markedEntityCollisions($collisions)
        {
        }
        /**
         * @param $order
         * @param $entity
         * @param $result
         */
        protected function addMarker($order, $entity, $result)
        {
        }
        /**
         * @return bool
         */
        public function isMarked()
        {
        }
        /**
         * @return null|string
         */
        public function getId()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         */
        public function isImportable()
        {
        }
        /**
         * @param array $params
         * @return Sale\Internals\Entity|Sale\Result
         * @internal param $fields
         */
        public function import(array $params)
        {
        }
        /**
         * @return Main\Entity\AddResult|Main\Entity\UpdateResult|Sale\Result|mixed
         */
        public abstract function save();
        /**
         * @param Sale\Internals\Entity $entity
         * @param array $fields
         * @throws Main\ArgumentOutOfRangeException
         * @throws \Exception
         */
        function marked(\Bitrix\Sale\Internals\Entity $entity, array $fields)
        {
        }
        /**
         * @return null|string
         */
        public function getEntityId()
        {
        }
        /**
         * @param $id
         * @return bool
         */
        protected function checkEntity($id)
        {
        }
        /**
         * @return string
         */
        protected abstract function getExternalFieldName();
        /**
         * @param Sale\Internals\Entity $entity
         * @return int
         */
        public static function resolveEntityTypeId(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @return string
         */
        public static function getFieldExternalId()
        {
        }
    }
    /**
     * Class PaymentImport
     * @package Bitrix\Sale\Exchange\Entity
     * @internal
     */
    class PaymentImport extends \Bitrix\Sale\Exchange\Entity\EntityImport
    {
        /**
         * @param Internals\Entity $entity
         * @throws Main\ArgumentException
         */
        public function setEntity(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param array $fields
         * @return Sale\Result
         */
        protected function checkFields(array $fields)
        {
        }
        /**
         * @return Main\Entity\AddResult|Main\Entity\UpdateResult|Sale\Result|mixed
         */
        public function save()
        {
        }
        /**
         * @param array $params
         * @return Sale\Result
         */
        public function add(array $params)
        {
        }
        /**
         * @param array $params
         * @return Sale\Result
         */
        public function update(array $params)
        {
        }
        /**
         * @param array|null $params
         * @return Sale\Result
         */
        public function delete(array $params = null)
        {
        }
        /**
         * @return string
         */
        protected function getExternalFieldName()
        {
        }
        /**
         * @param array $fields
         * @return Sale\Result
         * @throws Main\ArgumentException
         */
        public function load(array $fields)
        {
        }
        /**
         * @param array $fields
         */
        public function refreshData(array $fields)
        {
        }
        /**
         * @param Internals\Entity $payment
         * @return int
         * @throws Main\ArgumentException
         */
        public static function resolveEntityTypeId(\Bitrix\Sale\Internals\Entity $payment)
        {
        }
        /**
         * @param string $type
         * @return int
         */
        public static function resolveEntityTypeIdByCodeType($type)
        {
        }
        public function initFields()
        {
        }
        /**
         * @param Sale\IBusinessValueProvider $entity
         * @return Sale\Order
         */
        protected static function getBusinessValueOrderProvider(\Bitrix\Sale\IBusinessValueProvider $entity)
        {
        }
    }
    class PaymentInvoiceBase extends \Bitrix\Sale\Exchange\Entity\PaymentImport
    {
        /**
         * @param $order
         * @param $entity
         * @param $result
         */
        protected function addMarker($invoice, $entity, $result)
        {
        }
        /**
         * @param array $fields
         * @return Order|null
         */
        protected function loadParentEntity(array $fields)
        {
        }
        /**
         * @param string $type
         * @return int
         */
        public static function resolveEntityTypeIdByCodeType($type)
        {
        }
    }
    /**
     * Class ShipmentImport
     * @package Bitrix\Sale\Exchange\Entity
     * @internal
     */
    class ShipmentImport extends \Bitrix\Sale\Exchange\Entity\EntityImport
    {
        protected static $currentSettingsStores = null;
        public function __construct($parentEntityContext = null)
        {
        }
        /**
         * @return int
         */
        public function getOwnerTypeId()
        {
        }
        /**
         * @param Internals\Entity $entity
         * @throws Main\ArgumentException
         */
        public function setEntity(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param array $fields
         * @return Sale\Result
         */
        protected function checkFields(array $fields)
        {
        }
        /**
         * @return Main\Entity\AddResult|Main\Entity\UpdateResult|Sale\Result|mixed
         */
        public function save()
        {
        }
        /**
         * @param array $params
         * @return Sale\Result
         */
        public function add(array $params)
        {
        }
        /**
         * @param array $params
         * @return Sale\Result
         */
        public function update(array $params)
        {
        }
        /**
         * @param array|null $params
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function delete(array $params = null)
        {
        }
        /**
         * @return string
         */
        protected function getExternalFieldName()
        {
        }
        /**
         * @param array $fields
         * @return Sale\Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        public function load(array $fields)
        {
        }
        /**
         * @param Order $order
         * @param Sale\BasketItem $basketItem
         * @return int
         * @throws Main\ObjectNotFoundException
         */
        private function getBasketItemQuantity(\Bitrix\Sale\Order $order, \Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param Sale\BasketBase $basket
         * @param array $item
         * @return Sale\BasketItem
         */
        protected function getBasketItemByItem(\Bitrix\Sale\BasketBase $basket, array $item)
        {
        }
        /**
         * @param Shipment $shipment
         * @param Sale\BasketBase $basket
         * @param array $params
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        private function fillShipmentItems(\Bitrix\Sale\Shipment $shipment, \Bitrix\Sale\BasketBase $basket, array $params)
        {
        }
        /**
         * @param Shipment $shipment
         * @param Sale\BasketItem $basketItem
         * @return Sale\ShipmentItem|null
         * @throws Main\ObjectNotFoundException
         */
        private static function getShipmentItem(\Bitrix\Sale\Shipment $shipment, \Bitrix\Sale\BasketItem $basketItem)
        {
        }
        protected function fillMarkingsShipmentItem(\Bitrix\Sale\ShipmentItem $item, $markings)
        {
        }
        protected function resetMarkingsShipmentItem(\Bitrix\Sale\ShipmentItem $item)
        {
        }
        private function syncRelationBarcodeMarkingsCode(\Bitrix\Sale\ShipmentItem $shipmentItem, $value)
        {
        }
        /**
         * @param Sale\ShipmentItem $shipmentItem
         * @param $value
         * @param $oldValue
         * @return Sale\Result
         */
        private function fillShipmentItem(\Bitrix\Sale\ShipmentItem $shipmentItem, $value, $oldValue)
        {
        }
        /**
         * Decrease total product quantity existing across all shipments by the specified value.
         * Difference between the required decrease of quantity of shipped product and quantity existing in the system shipment.
         * System shipment will specify the quantity required to remove the product from the cart or update the selected shipment
         * Pass the decrease value to system shipment.
         * Thus we decrease product quantity in the shipments and add it to the system shipment.
         * We can decrease quantity for the shipments containing the product except the current shipment if it was selected and other shipments containing the product and matching selection citeria (Exchange\IShipmentCriterion implementation).
         * If we decrease quantity relative to a specific shipment, we assume the quantity relocated to the system shipment will later be added to the selected shipment.
         * @param Sale\BasketItem $basketItem
         * @param $needQuantity
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         * @internal
         */
        public function synchronizeQuantityShipmentItems(\Bitrix\Sale\BasketItem $basketItem, $needQuantity)
        {
        }
        /**
         * @param $fields
         * @return array
         */
        public static function getFieldsDeliveryService($fields)
        {
        }
        /**
         * @param $fields
         * @return array
         */
        public function prepareFieldsDeliveryService($fields)
        {
        }
        /**
         * @param array $fields
         */
        public function refreshData(array $fields)
        {
        }
        /**
         * @param Internals\Entity $shipment
         * @return int
         * @throws Main\ArgumentException
         */
        public static function resolveEntityTypeId(\Bitrix\Sale\Internals\Entity $shipment)
        {
        }
        public function initFields()
        {
        }
        /**
         * @param Sale\BasketItem $basket
         * @return array
         */
        protected function getAttributesItem(\Bitrix\Sale\BasketItem $basket)
        {
        }
        /**
         * @return array
         */
        protected function getFieldsItems()
        {
        }
        /**
         * @return array
         * @internal
         */
        protected function getFieldsStories()
        {
        }
        /**
         * @param Sale\IBusinessValueProvider $entity
         * @return Sale\Order
         */
        protected static function getBusinessValueOrderProvider(\Bitrix\Sale\IBusinessValueProvider $entity)
        {
        }
    }
    class ShipmentInvoice extends \Bitrix\Sale\Exchange\Entity\ShipmentImport
    {
        public function getOwnerTypeId()
        {
        }
        /**
         * @param $order
         * @param $entity
         * @param $result
         */
        protected function addMarker($invoice, $entity, $result)
        {
        }
        /**
         * @param array $fields
         * @return Order|null
         */
        protected function loadParentEntity(array $fields)
        {
        }
        /**
         * @param Entity $shipment
         * @return int
         * @throws ArgumentException
         */
        public static function resolveEntityTypeId(\Bitrix\Sale\Internals\Entity $shipment)
        {
        }
        /**
         * @param BasketBase $basket
         * @param array $item
         * @return \Bitrix\Sale\BasketItem|bool
         */
        protected function getBasketItemByItem(\Bitrix\Sale\BasketBase $basket, array $item)
        {
        }
        /**
         * @param BasketItem $basket
         * @return array
         */
        protected function getAttributesItem(\Bitrix\Sale\BasketItem $basket)
        {
        }
    }
    class PaymentCashImport extends \Bitrix\Sale\Exchange\Entity\PaymentImport
    {
        public function __construct($parentEntityContext = null)
        {
        }
        public function getOwnerTypeId()
        {
        }
    }
    class PaymentCashLessImport extends \Bitrix\Sale\Exchange\Entity\PaymentImport
    {
        public function __construct($parentEntityContext = null)
        {
        }
        public function getOwnerTypeId()
        {
        }
    }
    class PaymentCardImport extends \Bitrix\Sale\Exchange\Entity\PaymentImport
    {
        public function __construct($parentEntityContext = null)
        {
        }
        public function getOwnerTypeId()
        {
        }
    }
    class UserProfileImport extends \Bitrix\Sale\Exchange\Entity\UserImportBase
    {
        public function __construct()
        {
        }
        /**
         * @return int
         */
        public function getOwnerTypeId()
        {
        }
        /**
         * Adds row to entity table
         * @param array $params
         * @return Sale\Result
         */
        public function add(array $params)
        {
        }
        /**
         * Updates row in entity table
         * @param array $params
         * @return Sale\Result
         */
        public function update(array $params)
        {
        }
        /**
         * Deletes row in entity table by primary key
         * @param array|null $params
         * @return Sale\Result
         */
        public function delete(array $params = null)
        {
        }
        /**
         * @param array $fields
         * @return Sale\Result
         */
        protected function checkFields(array $fields)
        {
        }
        /**
         * @param array $fields
         * @return Sale\Result
         */
        public function load(array $fields)
        {
        }
        /**
         * @return int|null
         */
        public function getId()
        {
        }
        /**
         * @return bool
         */
        public function isImportable()
        {
        }
        /**
         * @param array $fields
         */
        public function refreshData(array $fields)
        {
        }
        /**
         * @return string
         */
        public static function getFieldExternalId()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Entity\SubordinateSale {
    class Shipment extends \Bitrix\Sale\Exchange\Entity\ShipmentImport
    {
        /**
         * @param BasketBase $basket
         * @param array $item
         * @return \Bitrix\Sale\BasketItem|bool
         */
        protected function getBasketItemByItem(\Bitrix\Sale\BasketBase $basket, array $item)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Entity {
    /**
     * Class OrderImport
     * @package Bitrix\Sale\Exchange\Entity
     * @internal
     */
    class OrderImport extends \Bitrix\Sale\Exchange\Entity\EntityImport
    {
        private static $FIELD_INFOS = null;
        public function __construct($parentEntityContext = null)
        {
        }
        /**
         * @return int
         */
        public function getOwnerTypeId()
        {
        }
        protected function createEntity(array $fileds)
        {
        }
        /**
         * @param Internals\Entity $entity
         * @throws Main\ArgumentException
         */
        public function setEntity(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param array $fields
         * @return Sale\Result
         */
        protected function checkFields(array $fields)
        {
        }
        /**
         * @return Main\Entity\AddResult|Main\Entity\UpdateResult|Sale\Result|mixed
         */
        public function save()
        {
        }
        public static function getFieldsInfo()
        {
        }
        /**
         * @param array $params
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function add(array $params)
        {
        }
        /**
         * @param array $params
         * @return Sale\Result
         */
        public function update(array $params)
        {
        }
        /**
         * @param array|null $params
         * @return Sale\Result
         */
        public function delete(array $params = null)
        {
        }
        /**
         * @return string
         */
        protected function getExternalFieldName()
        {
        }
        /**
         * @param array $fields
         * @return Sale\Result
         */
        public function load(array $fields)
        {
        }
        /**
         * @param $collisions
         */
        public function markedEntityCollisions($collisions)
        {
        }
        private static function prepareFieldsBasketProperty($item)
        {
        }
        private function prepareFieldsBasketItem($productXML_ID, $item)
        {
        }
        private function prepareFieldsTax($fields)
        {
        }
        /**
         * @param $code
         * @return string|null
         */
        protected function getCodeAfterDelimiter($code)
        {
        }
        private static function getProduct($code)
        {
        }
        /**
         * @param Sale\BasketBase $basket
         * @param array $item
         * @return Sale\BasketItem|bool
         */
        public static function getBasketItemByItem(\Bitrix\Sale\BasketBase $basket, array $item)
        {
        }
        /**
         * @param array $fields
         * @return array
         */
        public static function getGroupItemsBasketFields($fields)
        {
        }
        /**
         * @param Sale\BasketBase $basket
         * @param array $basketItems
         * @return Sale\Result
         */
        private function fillBasket(\Bitrix\Sale\BasketBase $basket, array $basketItems)
        {
        }
        /**
         * @param array $item
         * @return array
         */
        protected function convertCurrency(array $item)
        {
        }
        /**
         * @internal
         * @param Sale\Basket $basket
         * @return array
         */
        private static function getProductsVatRate(\Bitrix\Sale\Basket $basket)
        {
        }
        /**
         * @param Order $order
         * @param array $fields
         * @param $modifyTaxList
         */
        private function fillTax(\Bitrix\Sale\Order $order, array $fields, $modifyTaxList)
        {
        }
        private function fillProperty(\Bitrix\Sale\Order $order, $fieldsOrderProperty)
        {
        }
        public function refreshData(array $fields)
        {
        }
        /**
         * @param Internals\Entity $order
         * @return int
         * @throws Main\ArgumentException
         */
        public static function resolveEntityTypeId(\Bitrix\Sale\Internals\Entity $order)
        {
        }
        private static function getIBlockProduct($iblockId)
        {
        }
        /**
         * Calculate the difference between externally submitted item quantity in the cart and the current quantity
         * @param Sale\Basket $basket
         * @param array $basketItems
         * @return array
         */
        public function calculateDeltaQuantity(\Bitrix\Sale\Basket $basket, array $basketItems)
        {
        }
        /**
         * Decrease item quantity by calculated value for all shipments.
         * Do it for all shipments matching selection parameters and containing the product (Exchange\IShipmentCriterion implementation).
         * @param array $basketItemsIndex
         * @return Sale\Result
         * @throws Main\ArgumentNullException
         */
        public function synchronizeQuantityBasketItems(array $basketItemsIndex)
        {
        }
        /**
         * @return int
         * @internal
         */
        protected function getShipmentTypeId()
        {
        }
        /**
         * @return Exchange\ImportBase
         * @internal
         */
        protected function entityCreateByFactory($typeId)
        {
        }
        public function initFields()
        {
        }
        /**
         * @return array
         * @internal
         */
        protected function getFieldsItems()
        {
        }
        /**
         * @param Sale\BasketItem $basket
         * @return array
         */
        public static function getAttributesItem(\Bitrix\Sale\BasketItem $basket)
        {
        }
        /**
         * @return array
         * @internal
         */
        protected function getFieldsTaxes()
        {
        }
        /**
         * @return array
         */
        protected function getCashBoxChecks()
        {
        }
        /**
         * @param Sale\IBusinessValueProvider $entity
         * @return Order
         */
        protected static function getBusinessValueOrderProvider(\Bitrix\Sale\IBusinessValueProvider $entity)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Entity\SubordinateSale {
    class Order extends \Bitrix\Sale\Exchange\Entity\OrderImport
    {
        /**
         * @param \Bitrix\Sale\BasketBase $basket
         * @param array $item
         * @return \Bitrix\Sale\BasketItem|bool
         *
         * Äëÿ ñõåìû ïîä÷èíåííûõ äîêóìåíòîâ, äëÿ òèïîâîãî ìîäóëÿ îáìåíà îò 1Ñ ñâîéñòâà ó òîâàðîâ íå ïðîâåðÿþòñÿ.
         * Ïðîâåðêà ïðîèñõîäèò òîëüêî ïî èäåíòèôèêàòîðó
         */
        public static function getBasketItemByItem(\Bitrix\Sale\BasketBase $basket, array $item)
        {
        }
        /**
         * @param $typeId
         * @return \Bitrix\Sale\Exchange\ImportBase
         * @internal
         */
        protected function entityCreateByFactory($typeId)
        {
        }
    }
    /**
     * Class EntityImportFactory
     * @package Bitrix\Sale\Exchange\Entity
     * @internal
     */
    class EntityImportFactory
    {
        /**
         * @param $entityTypeID
         * @param null $parentEntityContext
         * @return Exchange\ImportBase
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         */
        public static function create($entityTypeID, $parentEntityContext = null)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Entity {
    class PaymentCardInvoice extends \Bitrix\Sale\Exchange\Entity\PaymentInvoiceBase
    {
        public function getOwnerTypeId()
        {
        }
    }
    class Invoice extends \Bitrix\Sale\Exchange\Entity\OrderImport
    {
        /**
         * @return int
         */
        public function getOwnerTypeId()
        {
        }
        /**
         * @param $order
         * @param $entity
         * @param $result
         */
        protected function addMarker($invoice, $entity, $result)
        {
        }
        /**
         * @param array $fileds
         * @return \Bitrix\Sale\Order
         */
        protected function createEntity(array $fileds)
        {
        }
        /**
         * @param array $fields
         * @return Order
         */
        protected function loadParentEntity(array $fields)
        {
        }
        /**
         * @param Entity $order
         * @return int
         * @throws ArgumentException
         */
        public static function resolveEntityTypeId(\Bitrix\Sale\Internals\Entity $order)
        {
        }
        /**
         * @return int
         * @internal
         */
        protected function getShipmentTypeId()
        {
        }
    }
    class PaymentCashInvoice extends \Bitrix\Sale\Exchange\Entity\PaymentInvoiceBase
    {
        public function getOwnerTypeId()
        {
        }
    }
    /**
     * Class EntityImportLoader
     * @package Bitrix\Sale\Exchange\Entity
     * @internal
     */
    class EntityImportLoader
    {
        /** @var ISettings */
        protected $settings = null;
        /**
         * @return array
         * @throws Main\ArgumentException
         */
        protected static function getFields()
        {
        }
        /**
         * @return string
         */
        protected static function getExternalField()
        {
        }
        /**
         * @param $number
         * @return null
         * @throws Main\ArgumentException
         */
        public function getByNumber($number)
        {
        }
        /**
         * @param $xmlId
         * @return null
         * @throws Main\ArgumentException
         */
        public function getByExternalId($xmlId)
        {
        }
        /**
         * @return Main\Entity\DataManager
         * @throws Main\ArgumentException
         */
        protected static function getEntityTable()
        {
        }
        /**
         * @param ISettings $settings
         */
        public function loadSettings(\Bitrix\Sale\Exchange\ISettings $settings)
        {
        }
    }
    class OrderImportLoader extends \Bitrix\Sale\Exchange\Entity\EntityImportLoader
    {
        protected static function getFields()
        {
        }
        protected static function getEntityTable()
        {
        }
    }
    class PaymentImportLoader extends \Bitrix\Sale\Exchange\Entity\EntityImportLoader
    {
        protected static function getFields()
        {
        }
        protected static function getEntityTable()
        {
        }
    }
    class ShipmentImportLoader extends \Bitrix\Sale\Exchange\Entity\EntityImportLoader
    {
        protected static function getFields()
        {
        }
        protected static function getEntityTable()
        {
        }
    }
    /**
     * Class ProfileImportLoader
     * @package Bitrix\Sale\Exchange\Entity
     * @deprecated
     */
    class ProfileImportLoader extends \Bitrix\Sale\Exchange\Entity\EntityImportLoader
    {
        /**
         * @return string
         */
        protected static function getExternalField()
        {
        }
        protected static function getFields()
        {
        }
        protected static function getEntityTable()
        {
        }
    }
    class UserProfileImportLoader extends \Bitrix\Sale\Exchange\Entity\EntityImportLoader
    {
        /**
         * @param $number
         * @return null
         * @throws Main\ArgumentException
         */
        public function getByNumber($number)
        {
        }
        /**
         * @return string
         */
        protected static function getExternalField()
        {
        }
        protected static function getFields()
        {
        }
        protected static function getEntityTable()
        {
        }
        public function getByExternalId($xmlId)
        {
        }
        /**
         * @param $code
         * @return array
         */
        public static function getUserByCode($code)
        {
        }
    }
    class InvoiceImportLoader extends \Bitrix\Sale\Exchange\Entity\OrderImportLoader
    {
        protected static function getEntityTable()
        {
        }
    }
    class PaymentInvoiceImportLoader extends \Bitrix\Sale\Exchange\Entity\PaymentImportLoader
    {
        protected static function getEntityTable()
        {
        }
    }
    class ShipmentInvoiceImportLoader extends \Bitrix\Sale\Exchange\Entity\ShipmentImportLoader
    {
        protected static function getEntityTable()
        {
        }
    }
    class PaymentCashLessInvoice extends \Bitrix\Sale\Exchange\Entity\PaymentInvoiceBase
    {
        public function getOwnerTypeId()
        {
        }
    }
    /**
     * Class EntityImportFactory
     * @package Bitrix\Sale\Exchange\Entity
     * @internal
     */
    class EntityImportFactory
    {
        /**
         * @param $entityTypeID
         * @param null $parentEntityContext
         * @return Exchange\ImportBase
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         */
        public static function create($entityTypeID, $parentEntityContext = null)
        {
        }
    }
    /**
     * Class EntityImportLoaderFactory
     * @package Bitrix\Sale\Exchange\Entity
     * @internal
     */
    class EntityImportLoaderFactory
    {
        /** Create new entity import loader by specified entity type ID.
         * @static
         * @param int $entityTypeID Entity type ID.
         * @return EntityImportLoader
         * @throws Main\ArgumentException
         * @throws Main\NotSupportedException
         */
        public static function create($entityTypeID)
        {
        }
    }
    class UserProfileContactCompany extends \Bitrix\Sale\Exchange\Entity\UserProfileImport
    {
        public function getOwnerTypeId()
        {
        }
        public function add(array $params)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Relation {
    class Relation
    {
        protected $sourceEntityTypeId = 0;
        protected $sourceEntityId = 0;
        protected $destinationEntityTypeId = 0;
        protected $destinationEntityId = 0;
        public function __construct($sourceEntityTypeId, $sourceEntityId, $destinationEntityTypeId, $destinationEntityId)
        {
        }
        public function save()
        {
        }
        public static function getBySourceEntity($entityTypeId, $entityId)
        {
        }
        public static function getByEntity($sourceEntityTypeId, $sourceEntityId, $destinationEntityTypeId, $destinationEntityId = '')
        {
        }
        public static function createFromArray(array $data)
        {
        }
        public function getSourceEntityTypeId()
        {
        }
        public function getSourceEntityId()
        {
        }
        public function getDestinationEntityTypeId()
        {
        }
        public function getDestinationEntityId()
        {
        }
        public function setDestinationEntityId($entityId)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\OAuth {
    class Client
    {
        private $httpClient;
        protected $accessTokenUrl;
        protected $clientId;
        protected $clientSecret;
        public function __construct(array $options = [])
        {
        }
        public function getAccessTokenUrl(array $params)
        {
        }
        /**
         * @param $grant
         * @param array $options
         *
         * @return array
         */
        public function getAccessToken($grant, array $options = [])
        {
        }
        protected function getAccessTokenMethod()
        {
        }
        protected function getBaseAccessTokenUrl()
        {
        }
        protected function getClientId()
        {
        }
        protected function getClientSecret()
        {
        }
    }
    class Bitrix24 extends \Bitrix\Sale\Exchange\Integration\OAuth\Client
    {
        public function __construct(array $options = [])
        {
        }
        protected function getBaseAccessTokenUrl()
        {
        }
        protected function getApplication()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration {
    class Settings
    {
        public static function getOAuthRestUrl()
        {
        }
        public static function getOAuthAccessTokenUrl()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\App {
    abstract class Base
    {
        public abstract function getCode();
        public abstract function getClientId();
        public abstract function getClientSecret();
        public abstract function getAppUrl();
    }
    class IntegrationB24 extends \Bitrix\Sale\Exchange\Integration\App\Base
    {
        public function getCode()
        {
        }
        public function getClientId()
        {
        }
        public function getClientSecret()
        {
        }
        public function getAppUrl()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration {
    class Token
    {
        public static function getToken(array $fields, $guid = null)
        {
        }
        private static function createToken(array $fields)
        {
        }
        /**
         * @param $guid
         * @internal
         */
        public static function getExistsByGuid($guid)
        {
        }
        public static function delete($guid)
        {
        }
    }
    final class Handler
    {
        public static function handlerCallbackOnSaleOrderSaved(\Bitrix\Main\Event $event)
        {
        }
        public static function syncB24(\Bitrix\Sale\Order $order)
        {
        }
    }
}
namespace Bitrix\Rest\Integration\View {
    abstract class Base
    {
        public abstract function getFields();
        public final function prepareFieldInfos($fields)
        {
        }
        protected function prepareFieldAttributs($info, $attributs)
        {
        }
        public final function getListFieldInfo(array $fieldsInfo, $params = [])
        {
        }
        //region convert keys to snake case
        public final function convertKeysToSnakeCaseFields($fields)
        {
        }
        public final function convertKeysToSnakeCaseSelect($fields)
        {
        }
        public final function convertKeysToSnakeCaseFilter($fields)
        {
        }
        public final function convertKeysToSnakeCaseOrder($fields)
        {
        }
        public function convertKeysToSnakeCaseArguments($name, $arguments)
        {
        }
        protected final function convertKeysToSnakeCase($data)
        {
        }
        //endregion
        //region internalize fields
        /**
         * @param $name
         * @param $arguments
         * @throws NotImplementedException
         * @return array
         */
        public function internalizeArguments($name, $arguments)
        {
        }
        public function internalizeFieldsList($arguments, $fieldsInfo = [])
        {
        }
        public function internalizeFieldsAdd($fields, $fieldsInfo = [])
        {
        }
        public function internalizeFieldsUpdate($fields, $fieldsInfo = [])
        {
        }
        /**
         * @param $fields
         * @param array $fieldsInfo
         * @return array
         * @throws NotImplementedException
         */
        protected final function internalizeFields($fields, array $fieldsInfo)
        {
        }
        protected final function internalizeValue($value, $info)
        {
        }
        protected function internalizeDateValue($value)
        {
        }
        protected function internalizeDateTimeValue($value)
        {
        }
        protected final function internalizeDate($value)
        {
        }
        protected final function internalizeDateTime($value)
        {
        }
        protected final function internalizeFileValue($value)
        {
        }
        protected function internalizeExtendedTypeValue($value, $info)
        {
        }
        protected final function parserFileValue(array $data)
        {
        }
        protected final function internalizeFilterFields($fields, array $fieldsInfo)
        {
        }
        protected final function internalizeSelectFields($fields, array $fieldsInfo)
        {
        }
        protected final function internalizeOrderFields($fields, array $fieldsInfo)
        {
        }
        protected final function internalizeListFields($list, $fieldsInfo = [])
        {
        }
        //endregion
        // region externalize fields
        protected final function externalizeValue($name, $value, $fields, $fieldsInfo)
        {
        }
        protected final function externalizeFields($fields, $fieldsInfo)
        {
        }
        protected final function externalizeDateValue($value)
        {
        }
        protected final function externalizeDateTimeValue($value)
        {
        }
        /**
         * @param $name
         * @param $value
         * @return string
         * @throws NotImplementedException
         */
        protected function externalizeFileValue($name, $value, $fields)
        {
        }
        /**
         * @param $name
         * @param $value
         * @param $fields
         * @param $fieldsInfo
         * @return Result
         */
        protected function externalizeExtendedTypeValue($name, $value, $fields, $fieldsInfo)
        {
        }
        public function externalizeListFields($list, $fieldsInfo = [])
        {
        }
        /**
         * @param $name
         * @param $fields
         * @throws NotImplementedException
         * @return array
         */
        public function externalizeResult($name, $fields)
        {
        }
        public function externalizeFieldsGet($fields, $fieldsInfo = [])
        {
        }
        // endregion
        //region convert keys to camel case
        public final function convertKeysToCamelCase($fields)
        {
        }
        // endregion
        //region check fields
        public final function checkFieldsAdd($fields)
        {
        }
        public final function checkFieldsUpdate($fields)
        {
        }
        public function checkFieldsList($arguments)
        {
        }
        public function checkArguments($name, $arguments)
        {
        }
        protected final function checkRequiredFieldsAdd($fields)
        {
        }
        protected final function checkRequiredFieldsUpdate($fields)
        {
        }
        protected final function checkRequiredFields($fields, array $fieldsInfo, $params = [])
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\RestView {
    final class StatisticProvider extends \Bitrix\Rest\Integration\View\Base
    {
        public function getFields()
        {
        }
    }
    final class Statistic extends \Bitrix\Rest\Integration\View\Base
    {
        public function getFields()
        {
        }
        public function convertKeysToSnakeCaseArguments($name, $arguments)
        {
        }
        protected function convertKeysToSnakeCaseFieldsModify($fields)
        {
        }
        public function checkArguments($name, $arguments)
        {
        }
        protected function checkFieldsModify($fields)
        {
        }
        public function internalizeArguments($name, $arguments)
        {
        }
        protected function internalizeFieldsModify($fields)
        {
        }
        public function externalizeResult($name, $fields)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration {
    class EntityType
    {
        const UNDEFINED = 0;
        const ORDER = 1;
        const USER = 2;
        private static $ALL_DESCRIPTIONS = array();
        public static function getDescription($typeId)
        {
        }
        public static function getAllDescriptions()
        {
        }
    }
    class HandlerType
    {
        const ORDER_NEW = 'new';
        const ORDER_REGISTRY = 'registry';
    }
}
namespace Bitrix\Sale\Exchange\Integration\Entity {
    class B24IntegrationBindTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function upsert(array $data)
        {
        }
    }
    class Token extends \Bitrix\Sale\Exchange\Integration\Entity\EO_B24integrationToken
    {
        public function refresh(\Bitrix\Sale\Exchange\Integration\OAuth\Client $oauthClient)
        {
        }
        /**
         * @param array $fields
         * @param null $guid
         *
         * @return \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult
         * @throws \Bitrix\Main\ObjectException
         */
        public function update(array $fields = [])
        {
        }
    }
    class B24integrationStatTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        /**
         * @inheritdoc
         */
        public static function getMap()
        {
        }
        protected static function upsertPrepareParams(array $data)
        {
        }
        /**
         * @param array $data
         * @return Main\Entity\AddResult
         * @throws Main\ArgumentException
         * @throws Main\Db\SqlQueryException
         * @throws Main\SystemException
         */
        public static function upsert(array $data)
        {
        }
        /**
         * @param array $items
         * @return AddResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentTypeException
         * @throws Main\Db\SqlQueryException
         * @throws Main\SystemException
         */
        public static function modify(array $items)
        {
        }
        /**
         * @param $list
         * @return AddResult
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected static function checkModifyFields(array $list)
        {
        }
    }
    class B24IntegrationRelationTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function upsert(array $data)
        {
        }
    }
    class B24IntegrationStatProviderTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        /**
         * @inheritdoc
         */
        public static function getMap()
        {
        }
    }
    class AccessCode
    {
        protected $oauthClient;
        public function __construct(\Bitrix\Sale\Exchange\Integration\OAuth\Client $oauthClient)
        {
        }
        public function create(array $fields)
        {
        }
    }
    class StatusType
    {
        const UNDEFINED = 0;
        const SUCCESS = 1;
        const PROCESS = 2;
        const FAULTY = 3;
        const SUCCESS_NAME = 'S';
        const PROCESS_NAME = 'P';
        const FAULTY_NAME = 'F';
        private static $ALL_DESCRIPTIONS = array();
        public static function isDefined($typeId)
        {
        }
        public static function resolveId($name)
        {
        }
        public static function resolveName($typeId)
        {
        }
        public static function getDescription($typeId)
        {
        }
        public static function getAllDescriptions()
        {
        }
    }
    class B24integrationTokenTable extends \Bitrix\Main\ORM\Data\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getObjectClass()
        {
        }
        /**
         * @inheritdoc
         */
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\CRM {
    class EntityType
    {
        const UNDEFINED = 0;
        const DEAL = 2;
        const CONTACT = 3;
        const COMPANY = 4;
        const ACTIVITY = 6;
        const ORDER = 14;
        const ORDER_SHIPMENT = 16;
        const ORDER_PAYMENT = 17;
        const DEAL_NAME = 'DEAL';
        const CONTACT_NAME = 'CONTACT';
        const COMPANY_NAME = 'COMPANY';
        const ACTIVITY_NAME = 'ACTIVITY';
        const ORDER_NAME = 'ORDER';
        const ORDER_SHIPMENT_NAME = 'ORDER_SHIPMENT';
        const ORDER_PAYMENT_NAME = 'ORDER_PAYMENT';
        public static function isDefined($typeId)
        {
        }
        public static function resolveId($name)
        {
        }
        public static function resolveName($typeId)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\CRM\Placement {
    class Factory
    {
        public static function create($type, $fields)
        {
        }
    }
    class Type
    {
        const UNDEFINED = 0;
        const DEFAULT_TOOLBAR = 1;
        const DEAL_DETAIL_TOOLBAR = 2;
        const DEFAULT_TOOLBAR_NAME = 'DEFAULT';
        const DEAL_DETAIL_TOOLBAR_NAME = 'CRM_DEAL_DETAIL_TOOLBAR';
        const FIRST_TYPE = 1;
        const LAST_TYPE = 2;
        public static function isDefined($typeId)
        {
        }
        public static function resolveId($name)
        {
        }
        public static function resolveName($typeId)
        {
        }
    }
    abstract class Base
    {
        protected $fields;
        public function __construct($fields)
        {
        }
        public abstract function getType();
        public abstract function getEntityId();
        public abstract function getEntityTypeId();
        public function getModeType()
        {
        }
    }
    class PlacementDeal extends \Bitrix\Sale\Exchange\Integration\CRM\Placement\Base
    {
        const REQUEST_PARAM_HANDLER = 'HANDLER';
        const REQUEST_PARAM_REST_APP_LAYOUT = 'REST_APP_LAYOUT';
        public function getType()
        {
        }
        public function getEntityId()
        {
        }
        public function getEntityTypeId()
        {
        }
        public function getTypeHandler()
        {
        }
        public function getRestAppLayoutMode()
        {
        }
    }
    class PlacementDefault extends \Bitrix\Sale\Exchange\Integration\CRM\Placement\Base
    {
        const VIEW_ACTION = 'view_activity';
        public function getType()
        {
        }
        public function getEntityId()
        {
        }
        public function getEntityTypeId()
        {
        }
        protected function getAction()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Admin\Blocks {
    class Factory
    {
        public static function create($type, $params = [])
        {
        }
    }
}
namespace Bitrix\Sale\Helpers\Admin\Blocks {
    class OrderDiscount
    {
        public static function getOrderedDiscounts(\Bitrix\Sale\Order $order, $needRecalculate = true)
        {
        }
        protected static function prepare($list)
        {
        }
        public static function getEditPageUrlParams(array $items = null)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Admin\Blocks {
    class OrderDiscount extends \Bitrix\Sale\Helpers\Admin\Blocks\OrderDiscount
    {
        public static function getEditPageUrlParams(array $items = null)
        {
        }
    }
}
namespace Bitrix\Sale\Helpers\Admin\Blocks {
    class OrderStatus
    {
        public static function getEdit(\Bitrix\Sale\Order $order, \CUser $user, $showCancel, $showSaveButton)
        {
        }
        protected static function getCancelBlockHtml(\Bitrix\Sale\Order $order, array $data, $orderLocked = false)
        {
        }
        public static function getUserInfo($userId)
        {
        }
        protected static function prepareData(\Bitrix\Sale\Order $order)
        {
        }
        public static function getScripts(\Bitrix\Sale\Order $order, $userId)
        {
        }
        public static function getStatusesList($userId, $orderStatus = false)
        {
        }
        public static function getEditSimple($userId, $fieldName, $status)
        {
        }
        protected static function renderCreatorLink($data)
        {
        }
        protected static function renderUserCanceledLink($data)
        {
        }
        protected static function getJsObjName()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Admin\Blocks {
    class OrderStatus extends \Bitrix\Sale\Helpers\Admin\Blocks\OrderStatus
    {
        protected static function renderCreatorLink($data)
        {
        }
        protected static function renderUserCanceledLink($data)
        {
        }
        protected static function getJsObjName()
        {
        }
    }
}
namespace Bitrix\Sale\Helpers\Admin\Blocks {
    class OrderInfo
    {
        /**
         * @return string
         */
        public static function getScripts()
        {
        }
        protected static function getPaymentsInfo(\Bitrix\Sale\Order $order)
        {
        }
        protected static function getShipmentsInfo(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param Order $order
         * @return string HTML
         */
        public static function getView(\Bitrix\Sale\Order $order, $orderBasket)
        {
        }
        protected static function getOrderInfoBlock(\Bitrix\Sale\Order $order)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Admin\Blocks {
    class OrderInfo extends \Bitrix\Sale\Helpers\Admin\Blocks\OrderInfo
    {
        protected static function getOrderInfoBlock(\Bitrix\Sale\Order $order)
        {
        }
    }
}
namespace Bitrix\Sale\Helpers\Admin\Blocks {
    class OrderAnalysis
    {
        public static function getScripts()
        {
        }
        private static function sortDocumentsByDate($doc1, $doc2)
        {
        }
        public static function getView(\Bitrix\Sale\Order $order, \Bitrix\Sale\Helpers\Admin\Blocks\OrderBasket $orderBasket, $selectPayment = null, $selectId = null)
        {
        }
        private static function printDeliveryRequestBlock($shipmentId)
        {
        }
        private static function renderBottomBlocks($creationDate, $userId)
        {
        }
        protected static function renderShipmentItemLink($item)
        {
        }
        protected static function renderOrderLink($data)
        {
        }
        protected static function renderPaymentEditLink($data)
        {
        }
        protected static function renderShipmentEditLink($data)
        {
        }
        protected static function renderResponsibleLink($data)
        {
        }
        protected static function renderDeliveryRequestView($data)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Admin\Blocks {
    class OrderAnalysis extends \Bitrix\Sale\Helpers\Admin\Blocks\OrderAnalysis
    {
        protected static function renderResponsibleLink($data)
        {
        }
        protected static function renderDeliveryRequestView($data)
        {
        }
        protected static function renderShipmentItemLink($item)
        {
        }
    }
}
namespace Bitrix\Sale\Helpers\Admin\Blocks {
    class OrderBuyer
    {
        public static function getEdit(\Bitrix\Sale\Order $order, $showProfiles = false, $profileId = 0)
        {
        }
        public static function getPropsEdit(\Bitrix\Sale\Order $order)
        {
        }
        public static function getView(\Bitrix\Sale\Order $order)
        {
        }
        protected static function renderBuyerLink($data, $attr = [])
        {
        }
        public static function getScripts()
        {
        }
        public static function getDefaultPersonType($siteId)
        {
        }
        public static function prepareData(\Bitrix\Sale\Order $order)
        {
        }
        public static function getBuyerTypesList($siteId)
        {
        }
        public static function getProfileParams($userId, $profileId)
        {
        }
        public static function getUserProfiles($userId, $personTypeId = null)
        {
        }
        protected static function getProfileValuesFromPrevOrder($userId, $personTypeId)
        {
        }
        protected static function getProfileValuesFromUser($userId, $personTypeId)
        {
        }
        public static function getBuyerProfilesList($userId, $personTypeId = null)
        {
        }
        public static function getOrderPropertiesHtml(\Bitrix\Sale\Order $order, $readonly = false)
        {
        }
        public static function getRelPropData(\Bitrix\Sale\Order $order)
        {
        }
        public static function getNotRelPropData(\Bitrix\Sale\Order $order)
        {
        }
        public static function getOrderPropertiesByJS(\Bitrix\Sale\Order $order)
        {
        }
        public static function getOrderRelPropertiesByJS(\Bitrix\Sale\Order $order)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Admin\Blocks {
    class OrderBuyer extends \Bitrix\Sale\Helpers\Admin\Blocks\OrderBuyer
    {
        protected static function renderBuyerLink($data, $attr = [])
        {
        }
    }
}
namespace Bitrix\Sale\Helpers\Admin\Blocks {
    class OrderAdditional
    {
        public static function getEdit($collection, $formName, $formPrefix, array $post = array())
        {
        }
        public static function getView($collection, $formName)
        {
        }
        protected static function renderResponsibleLink($data)
        {
        }
        public static function getScripts()
        {
        }
        protected static function prepareData($collection)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Admin\Blocks {
    class OrderAdditional extends \Bitrix\Sale\Helpers\Admin\Blocks\OrderAdditional
    {
        protected static function renderResponsibleLink($data)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Admin {
    class Factory
    {
        public static function create($type)
        {
        }
    }
    class Link
    {
        private static $instance = null;
        protected $type;
        public function __construct()
        {
        }
        public function getType()
        {
        }
        protected function resolveModeType()
        {
        }
        protected function isRestAppLayoutMode(\Bitrix\Sale\Internals\Fields $fields)
        {
        }
        public function create()
        {
        }
        public static function getInstance()
        {
        }
    }
    abstract class LinkBase
    {
        protected $query;
        protected $page;
        public function __construct()
        {
        }
        public function setRequestUri($url)
        {
        }
        public function setField($name, $value)
        {
        }
        public function getField($name)
        {
        }
        public function setFieldsValues($values)
        {
        }
        public function getFieldsValues()
        {
        }
        public function setQuery($query)
        {
        }
        public function build()
        {
        }
        public function redirect()
        {
        }
        public function setPage($page)
        {
        }
        public function setPageByType($type)
        {
        }
        public function getPage()
        {
        }
        protected function parseParams($data)
        {
        }
        public abstract function getType();
        /**
         * @return $this
         */
        public abstract function fill();
    }
    class Registry
    {
        const UNDEFINED = 'undefined';
        const SALE_ORDER = 'sale_order';
        const SALE_ORDER_CREATE = 'sale_order_create';
        const SALE_ORDER_EDIT = 'sale_order_edit';
        const SALE_ORDER_VIEW = 'sale_order_view';
        const SALE_ORDER_PRINT = 'sale_order_print';
        const SALE_ORDER_PRINT_NEW = 'sale_order_print_new';
        const SALE_ORDER_PAYMENT = 'sale_order_payment';
        const SALE_ORDER_PAYMENT_EDIT = 'sale_order_payment_edit';
        const SALE_ORDER_SHIPMENT = 'sale_order_shipment';
        const SALE_ORDER_SHIPMENT_EDIT = 'sale_order_shipment_edit';
        const SALE_DELIVERY_REQUEST_VIEW = 'sale_delivery_request_view';
        const SALE_DELIVERY_REQUEST = 'sale_delivery_request';
        public static function getRegistry()
        {
        }
    }
    class ModeType
    {
        const DEFAULT_TYPE = 'default';
        const APP_LAYOUT_TYPE = 'appLayout';
    }
    class DefaultLink extends \Bitrix\Sale\Exchange\Integration\Admin\LinkBase
    {
        protected $isLangSetted = false;
        protected $isFilterParamsSetted = false;
        public function getType()
        {
        }
        public function setLang($lang)
        {
        }
        public function setFilterParams($query)
        {
        }
        public function fill()
        {
        }
    }
    class AppLayoutLink extends \Bitrix\Sale\Exchange\Integration\Admin\DefaultLink
    {
        protected $requestFields;
        public function __construct()
        {
        }
        public function getType()
        {
        }
        public function fill()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Agent {
    class Statistic
    {
        public static function modify()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Controller {
    class StatisticEnum extends \Bitrix\Main\Engine\Controller
    {
        public function getStatusTypesAction()
        {
        }
        public function getEntityTypesAction()
        {
        }
    }
}
namespace Bitrix\Rest\Integration\Controller {
    class Base extends \Bitrix\Main\Engine\Controller
    {
        protected $viewManager;
        /**
         * @param $actionName
         * @return Engine\ClosureAction|Engine\InlineAction|null
         * @throws SystemException
         */
        protected function create($actionName)
        {
        }
        /**
         * @param Action $action
         * @throws NotImplementedException
         */
        protected function createViewManager(\Bitrix\Main\Engine\Action $action)
        {
        }
        /**
         * @return array
         */
        public function configureActions()
        {
        }
        /**
         * @return ViewManager
         */
        public function getViewManager()
        {
        }
        /**
         * @param Action $action
         * @return bool|null
         * @throws NotImplementedException
         * @throws SystemException
         */
        protected function processBeforeAction(\Bitrix\Main\Engine\Action $action)
        {
        }
        protected function processAfterAction(\Bitrix\Main\Engine\Action $action, $result)
        {
        }
        /**
         * @param $name
         * @param array $arguments
         * @return Result
         * @throws NotImplementedException
         */
        private function checkPermission($name, $arguments = [])
        {
        }
        /**
         * @throws NotImplementedException
         */
        protected function checkGetFieldsPermissionEntity()
        {
        }
        /**
         * @throws NotImplementedException
         */
        protected function checkReadPermissionEntity()
        {
        }
        /**
         * @return Result
         * @throws NotImplementedException
         */
        protected function checkModifyPermissionEntity()
        {
        }
        /**
         * @return Result
         * @throws NotImplementedException
         */
        protected function checkCreatePermissionEntity()
        {
        }
        /**
         * @return Result
         * @throws NotImplementedException
         */
        protected function checkUpdatePermissionEntity()
        {
        }
        /**
         * @return Result
         * @throws NotImplementedException
         */
        protected function checkDeletePermissionEntity()
        {
        }
        /**
         * @param $name
         * @param array $arguments
         * @return Result
         * @throws NotImplementedException
         */
        protected function checkPermissionEntity($name, $arguments = [])
        {
        }
        /**
         * @return \Bitrix\Main\Entity\DataManager
         * @throws NotImplementedException
         */
        protected function getEntityTable()
        {
        }
        /**
         * @param $select
         * @param $filter
         * @param $order
         * @param PageNavigation $pageNavigation
         * @return array
         * @throws NotImplementedException
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         */
        protected function getList($select, $filter, $order, \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        /**
         * @param $filter
         * @return int
         * @throws NotImplementedException
         * @throws SystemException
         * @throws \Bitrix\Main\ObjectPropertyException
         */
        protected function count($filter)
        {
        }
        /**
         * @param $id
         * @return array|false
         * @throws NotImplementedException
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         */
        protected function get($id)
        {
        }
        /**
         * @param array $fields
         * @return \Bitrix\Main\ORM\Data\AddResult
         * @throws NotImplementedException
         */
        public function add(array $fields)
        {
        }
        /**
         * @param $id
         * @param array $fields
         * @return \Bitrix\Main\ORM\Data\UpdateResult|null
         * @throws NotImplementedException
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         */
        protected function update($id, array $fields)
        {
        }
        /**
         * @param $id
         * @return \Bitrix\Main\ORM\Data\DeleteResult|null
         * @throws NotImplementedException
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         */
        protected function delete($id)
        {
        }
        /**
         * @param $id
         * @return Result
         * @throws NotImplementedException
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         */
        protected function exists($id)
        {
        }
        /**
         * @param $filter
         * @return Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        protected function existsByFilter($filter)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Controller {
    class StatisticProvider extends \Bitrix\Rest\Integration\Controller\Base
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        /**
         * @param array $select
         * @param array $filter
         * @param array $order
         * @param PageNavigation $pageNavigation
         * @return Page
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        /**
         * @param $id
         * @return array|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function getAction($id)
        {
        }
        /**
         * @param array $fields
         * @return array|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function addAction(array $fields)
        {
        }
        /**
         * @param $id
         * @param array $fields
         * @return array|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function updateAction($id, array $fields)
        {
        }
        /**
         * @param $id
         * @return bool|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function deleteAction($id)
        {
        }
        //endregion
        protected function createViewManager(\Bitrix\Main\Engine\Action $action)
        {
        }
        protected function getEntityTable()
        {
        }
        protected function checkReadPermissionEntity()
        {
        }
        protected function checkCreatePermissionEntity()
        {
        }
        protected function checkUpdatePermissionEntity()
        {
        }
        protected function checkDeletePermissionEntity()
        {
        }
    }
    class Statistic extends \Bitrix\Rest\Integration\Controller\Base
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        /**
         * @param array $select
         * @param array $filter
         * @param array $order
         * @param PageNavigation $pageNavigation
         * @return Page
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        /**
         * @param $id
         * @return array|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function getAction($id)
        {
        }
        /**
         * @param array $fields
         * @return array|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function upsertAction(array $fields)
        {
        }
        /**
         * @param array $batch
         * @return array|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function modifyAction(array $fields)
        {
        }
        /**
         * @param array $fields
         * @return array|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function addAction(array $fields)
        {
        }
        /**
         * @param $id
         * @param array $fields
         * @return array|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function updateAction($id, array $fields)
        {
        }
        /**
         * @param $id
         * @return bool|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function deleteAction($id)
        {
        }
        //endregion
        /**
         * @param $providerId
         * @param $statistics
         * @return mixed
         */
        protected function onBeforeModify($providerId, $statistics)
        {
        }
        /**
         * @param $providerId
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        protected function onAfterModify($providerId)
        {
        }
        protected function createViewManager(\Bitrix\Main\Engine\Action $action)
        {
        }
        protected function getEntityTable()
        {
        }
        protected function checkReadPermissionEntity()
        {
        }
        protected function checkCreatePermissionEntity()
        {
        }
        protected function checkUpdatePermissionEntity()
        {
        }
        protected function checkDeletePermissionEntity()
        {
        }
        protected function checkPermissionEntity($name, $arguments = [])
        {
        }
        /**
         * @param $id
         * @return Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        protected function checkProviderById($id)
        {
        }
        /**
         * @param array $data
         * @return Result
         */
        protected function checkPackageLimit(array $data)
        {
        }
        /**
         * @param $id
         * @return array|false|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        protected function getProviderById($id)
        {
        }
    }
    class Scenarios extends \Bitrix\Main\Engine\Controller
    {
        public function activityAddsFromOrderListAction(array $params)
        {
        }
        public function resolveContactFieldsValuesFromOrderListAction(array $params)
        {
        }
        public function resolveUserTypeIAfterComparingRemotelyRelationFromOrderListAction(array $params)
        {
        }
        public function contactAddsFromOrderListAction(array $params)
        {
        }
        public function dealContactItemsGetAction($id)
        {
        }
        public function dealContactUpdatesAction($id, array $items, array $contacts)
        {
        }
        public function dealContactAddsAction($id, array $items)
        {
        }
        protected function toArray(\Bitrix\Sale\Exchange\Integration\Service\Internal\Container\Collection $collection)
        {
        }
    }
    class Stepper extends \Bitrix\Main\Engine\Controller
    {
        const BATCH_LENGTH = 50;
        public function activityBatchAction(array $list, $total = 0, $start = 0)
        {
        }
        public function progressBarAction($value)
        {
        }
        public function messageOKAction()
        {
        }
        public function messageByTypeAction($message, $type)
        {
        }
        protected static function getInActiveOrders($orderIds)
        {
        }
        protected function getUnprocessedItems($items)
        {
        }
        protected function checkInActiveOrder($id, $list)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Manager {
    class Statistic
    {
        const STATISTIC_IMPORT_PACKAGE_LIMIT = 1000;
        const LOGGER_DAYS_INTERVAL = 1;
        protected $app;
        protected $collection;
        protected $exchange;
        public function __construct()
        {
        }
        /**
         * @return Collection
         */
        public function getCollection() : \Bitrix\Sale\Exchange\Integration\Service\Container\Collection
        {
        }
        public function isOn()
        {
        }
        public function modify()
        {
        }
        protected function getStatisticsStartDate()
        {
        }
        protected function getProvider()
        {
        }
        protected function prepareParamsByProviderFields($provider)
        {
        }
        protected function getListByParams($provider)
        {
        }
        protected function resolveStatusId($fields)
        {
        }
        protected function deleteOldEffectedRows()
        {
        }
        protected function addEffectedRows(array $fields)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Connector {
    class Manager
    {
        protected $app;
        public function __construct()
        {
        }
        public function isOn()
        {
        }
        public function delete()
        {
        }
        public function add()
        {
        }
        protected static function registerEvents()
        {
        }
        protected static function unRegisterEvents()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Connector\Placement {
    abstract class Base
    {
        protected $appUrl;
        public function __construct(\Bitrix\Sale\Exchange\Integration\App\Base $app)
        {
        }
        protected function getAppUrl()
        {
        }
        public abstract function getTitle();
        public abstract function getGroupName();
        public abstract function getPlacement();
        public abstract function getPlacmentHandler();
    }
    class IntegrationB24NewOrder extends \Bitrix\Sale\Exchange\Integration\Connector\Placement\Base
    {
        public function getTitle()
        {
        }
        public function getGroupName()
        {
        }
        public function getPlacement()
        {
        }
        public function getPlacmentHandler()
        {
        }
    }
    class IntegrationB24Registry extends \Bitrix\Sale\Exchange\Integration\Connector\Placement\Base
    {
        public function getTitle()
        {
        }
        public function getGroupName()
        {
        }
        public function getPlacement()
        {
        }
        public function getPlacmentHandler()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration {
    final class Router
    {
        const LOG_DIR = '/bitrix/modules/sale/lib/exchange/integration/log';
        const LOG_PATH = 'router_request.log';
        protected $fields;
        public function __construct()
        {
        }
        public function check()
        {
        }
        protected function checkToken($accessToken, $refreshToken)
        {
        }
        public function redirect()
        {
        }
        protected function getPlacement()
        {
        }
        protected function resolveTypeId($typeId)
        {
        }
        protected function getBySourceEntity($sourceEntityTypeId = '', $sourceEntityId = '', $destinationEntityTypeId = '', $destinationEntityId = '')
        {
        }
        protected function getByDestinationEntity($sourceEntityTypeId = '', $sourceEntityId = '', $destinationEntityTypeId = '', $destinationEntityId = '')
        {
        }
        protected function requestJsonDecode($request)
        {
        }
        /**
         * @param $params
         * @return void
         */
        protected function log($params)
        {
        }
        protected function isOnLog()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Service\Batchable {
    abstract class Base
    {
        const ANALITICS_ORIGINATOR_ID = 'bitrix.cms.sync';
        protected $collection;
        public function __construct()
        {
        }
        public abstract function getSrcEntityTypeId();
        public abstract function getDstEntityTypeId();
        public abstract function init($params);
        public static abstract function proxyAdds(array $list);
        protected function relationLoad()
        {
        }
        public function relationListDstEntity()
        {
        }
        public function relationDeleteByDstEntity($dstEntityList)
        {
        }
        public function relationVoid()
        {
        }
        public function relationRefreshByDstEntity($list)
        {
        }
        protected static function relationEntityList($filter = [])
        {
        }
        /*protected function clientRelation($params, $typeName)
        	{
        		$list = $params[$typeName];
        		$client = static::factoryClient($typeName);
        
        		return $this->relationEntityList([
        				'SRC_ENTITY_ID' => array_keys($list),
        				'SRC_ENTITY_TYPE_ID' => $client->getSrcEntityTypeId(),
        				'DST_ENTITY_TYPE_ID' => $client->getDstEntityTypeId()]
        		);
        	}*/
        protected static function clientRelation($indexes, $typeName)
        {
        }
        protected static function factoryClient($typeName)
        {
        }
        protected static function getIndexesFromParams(array $params)
        {
        }
        protected static function getIndexesContactFromParams($contacts)
        {
        }
        protected static function getContactItemsFromIndexes($indexes)
        {
        }
        protected static function prepareFieldsAdds($fields)
        {
        }
        protected function addsFromParams(array $params)
        {
        }
        public function adds()
        {
        }
        public function getCollection()
        {
        }
    }
    abstract class Proxy extends \Bitrix\Sale\Exchange\Integration\Service\Batchable\Base
    {
        /**
         * @return Integration\Rest\RemoteProxies\CRM\Contact | Integration\Rest\RemoteProxies\CRM\Company | Integration\Rest\RemoteProxies\CRM\Activity | Integration\Rest\RemoteProxies\CRM\Deal
         */
        protected static abstract function getProxy();
        public static function proxyList(array $filter)
        {
        }
        public static function proxyAdds(array $list)
        {
        }
        protected static function prepareFieldsAdds($fields)
        {
        }
    }
    class Deal extends \Bitrix\Sale\Exchange\Integration\Service\Batchable\Proxy
    {
        public function init($params)
        {
        }
        public static function contactItemsGet($id)
        {
        }
        public static function dealContactUpdates($id, $params, $contacts)
        {
        }
        public static function dealContactAdds($id, $params)
        {
        }
        public function getSrcEntityTypeId()
        {
        }
        public function getDstEntityTypeId()
        {
        }
        protected static function getProxy()
        {
        }
    }
    abstract class Client extends \Bitrix\Sale\Exchange\Integration\Service\Batchable\Proxy
    {
        public static function resolveFieldsValuesFromOrderList(array $params)
        {
        }
        public static function getUserCollectionFromOrderList(array $params)
        {
        }
        protected static function collapseUserList(array $list)
        {
        }
        protected static abstract function getUsersFieldsValues(array $indexes);
        //resolveClients
        protected static function loadUserCollection($indexes)
        {
        }
        protected static function getUserCollectionByTypeId(\Bitrix\Sale\Exchange\Integration\Service\User\Container\Collection $collection, $typeId)
        {
        }
    }
    class Contact extends \Bitrix\Sale\Exchange\Integration\Service\Batchable\Client
    {
        public function init($params)
        {
        }
        protected static function getUsersFieldsValues(array $indexes)
        {
        }
        protected static function getProxy()
        {
        }
        public function getSrcEntityTypeId()
        {
        }
        public function getDstEntityTypeId()
        {
        }
    }
    class Company extends \Bitrix\Sale\Exchange\Integration\Service\Batchable\Client
    {
        public function init($params)
        {
        }
        protected static function getUsersFieldsValues(array $indexes)
        {
        }
        protected static function getProxy()
        {
        }
        public function getSrcEntityTypeId()
        {
        }
        public function getDstEntityTypeId()
        {
        }
    }
    class Activity extends \Bitrix\Sale\Exchange\Integration\Service\Batchable\Proxy
    {
        public function init($params)
        {
        }
        protected static function getProxy()
        {
        }
        public function getSrcEntityTypeId()
        {
        }
        public function getDstEntityTypeId()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Service\Internal\Entity {
    class Factory
    {
        public static function create($type, array $values = null)
        {
        }
    }
    abstract class Base
    {
        protected $fields;
        protected $relation;
        protected $client;
        public function __construct(array $values = null)
        {
        }
        abstract function getType();
        public function setOwnerTypeId($value)
        {
        }
        public function getOwnerTypeId()
        {
        }
        public function setOwnerId($value)
        {
        }
        public function getOwnerId()
        {
        }
        public function setOriginatorId($value)
        {
        }
        public function setOriginId($value)
        {
        }
        public function getFieldsValues()
        {
        }
        public function setRelation(\Bitrix\Sale\Exchange\Integration\Relation\Relation $relation)
        {
        }
        /**
         * @return Integration\Relation\Relation
         */
        public function getRelation()
        {
        }
        public function hasRelation()
        {
        }
    }
    class Deal extends \Bitrix\Sale\Exchange\Integration\Service\Internal\Entity\Base
    {
        function getType()
        {
        }
        public function getTitle()
        {
        }
        public function setTitle($value)
        {
        }
        public function getContactId()
        {
        }
        public function setContactId($value)
        {
        }
        public function getCompanyId()
        {
        }
        public function setCompanyId($value)
        {
        }
        public function setOpportunity($value)
        {
        }
        public function setCurrency($value)
        {
        }
    }
    class Contact extends \Bitrix\Sale\Exchange\Integration\Service\Internal\Entity\Base
    {
        function getType()
        {
        }
        public function getName()
        {
        }
        public function setName($value)
        {
        }
        public function getLastName()
        {
        }
        public function setLastName($value)
        {
        }
        public function getEmail()
        {
        }
        public function setEmail($value)
        {
        }
        public function getPhone()
        {
        }
        public function setPhone($value)
        {
        }
        public function getAddressPostalCode()
        {
        }
        public function setAddressPostalCode($value)
        {
        }
        public function getAddressCity()
        {
        }
        public function setAddressCity($value)
        {
        }
        public function getAddress()
        {
        }
        public function setAddress($value)
        {
        }
    }
    class Company extends \Bitrix\Sale\Exchange\Integration\Service\Internal\Entity\Base
    {
        function getType()
        {
        }
        public function getTitle()
        {
        }
        public function setTitle($value)
        {
        }
        public function getRegAddress()
        {
        }
        public function setRegAddress($value)
        {
        }
        public function getEmail()
        {
        }
        public function setEmail($value)
        {
        }
        public function getPhone()
        {
        }
        public function setPhone($value)
        {
        }
        public function getAddressPostalCode()
        {
        }
        public function setAddressPostalCode($value)
        {
        }
        public function getAddressCity()
        {
        }
        public function setAddressCity($value)
        {
        }
        public function getAddress()
        {
        }
        public function setAddress($value)
        {
        }
    }
    class Activity extends \Bitrix\Sale\Exchange\Integration\Service\Internal\Entity\Base
    {
        function getType()
        {
        }
        public function getSubject()
        {
        }
        public function setSubject($value)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Service\Internal\Container {
    class Item
    {
        protected $internalIndex;
        protected $entity;
        protected $error;
        protected $hasError;
        public function __construct(\Bitrix\Sale\Exchange\Integration\Service\Internal\Entity\Base $entity)
        {
        }
        public static function create(\Bitrix\Sale\Exchange\Integration\Service\Internal\Entity\Base $entity)
        {
        }
        public function setInternalIndex($internalIndex)
        {
        }
        public function getInternalIndex()
        {
        }
        public function getEntity()
        {
        }
        /**
         * @return Error
         */
        public function getError()
        {
        }
        public function setError(\Bitrix\Main\Error $error)
        {
        }
        public function hasError()
        {
        }
    }
    class Collection implements \IteratorAggregate
    {
        protected $collection = [];
        static $internalIndex = 0;
        public function addItem(\Bitrix\Sale\Exchange\Integration\Service\Internal\Container\Item $item)
        {
        }
        public function count()
        {
        }
        public function toArray()
        {
        }
        public function getIndexes()
        {
        }
        /**
         * @param $index
         * @return Item|null
         */
        public function getItemByIndex($index)
        {
        }
        /**
         * Retrieve an external iterator
         * @link http://php.net/manual/en/iteratoraggregate.getiterator.php
         * @return Traversable An instance of an object implementing <b>Iterator</b> or
         * <b>Traversable</b>
         * @since 5.0.0
         */
        public function getIterator()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Service\User {
    class Factory
    {
        public static function create($typeId)
        {
        }
    }
    class EntityType
    {
        const UNDEFINED = 0;
        const TYPE_I = 1;
        const TYPE_E = 2;
        const TYPE_I_NAME = 'I';
        const TYPE_E_NAME = 'E';
        public static function isDefined($typeId)
        {
        }
        public static function resolveName($typeId)
        {
        }
        public static function resolveId($name)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Service\User\Entity {
    abstract class Base
    {
        protected $fields;
        public function __construct(array $values = null)
        {
        }
        public function getId()
        {
        }
        public function setId($value)
        {
        }
        public function getFieldsValues()
        {
        }
        public abstract function getType();
        protected static abstract function resolveFields(array $list);
        public static abstract function createFromArray(array $fields);
        public function load(\Bitrix\Sale\Order $order)
        {
        }
        public static function resolveNamePersonDomain($personTypeId)
        {
        }
        protected static function businessValuePersonDomainList()
        {
        }
    }
    class Contact extends \Bitrix\Sale\Exchange\Integration\Service\User\Entity\Base
    {
        public function getName()
        {
        }
        public function setName($value)
        {
        }
        public function getLastName()
        {
        }
        public function setLastName($value)
        {
        }
        public function getEmail()
        {
        }
        public function setEmail($value)
        {
        }
        public function getPhone()
        {
        }
        public function setPhone($value)
        {
        }
        public function getZip()
        {
        }
        public function setZip($value)
        {
        }
        public function getLocation()
        {
        }
        public function setLocation($value)
        {
        }
        public function getCity()
        {
        }
        public function setCity($value)
        {
        }
        public function getAddress()
        {
        }
        public function setAddress($value)
        {
        }
        protected static function resolveFields(array $list)
        {
        }
        public function getType()
        {
        }
        public static function createFromArray(array $fields)
        {
        }
    }
    class Company extends \Bitrix\Sale\Exchange\Integration\Service\User\Entity\Base
    {
        //COMPANY
        //COMPANY_ADR
        //INN
        //KPP
        //CONTACT_PERSON
        //EMAIL
        //PHONE
        //FAX
        //ZIP
        //CITY
        //LOCATION
        //ADDRESS
        public function getCompany()
        {
        }
        public function setCompany($value)
        {
        }
        public function getCompanyAdr()
        {
        }
        public function setCompanyAdr($value)
        {
        }
        public function getInn()
        {
        }
        public function setInn($value)
        {
        }
        public function getKpp()
        {
        }
        public function setKpp($value)
        {
        }
        public function getContactPerson()
        {
        }
        public function setContactPerson($value)
        {
        }
        public function getEmail()
        {
        }
        public function setEmail($value)
        {
        }
        public function getPhone()
        {
        }
        public function setPhone($value)
        {
        }
        public function getFax()
        {
        }
        public function setFax($value)
        {
        }
        public function getZip()
        {
        }
        public function setZip($value)
        {
        }
        public function getCity()
        {
        }
        public function setCity($value)
        {
        }
        public function getLocation()
        {
        }
        public function setLocation($value)
        {
        }
        public function getAddress()
        {
        }
        public function setAddress($value)
        {
        }
        public function getType()
        {
        }
        protected static function resolveFields(array $list)
        {
        }
        public static function createFromArray(array $fields)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Service\User\Container {
    class Item
    {
        protected $internalIndex;
        protected $entity;
        public function __construct(\Bitrix\Sale\Exchange\Integration\Service\User\Entity\Base $entity)
        {
        }
        public static function create(\Bitrix\Sale\Exchange\Integration\Service\User\Entity\Base $entity)
        {
        }
        public function setInternalIndex($internalIndex)
        {
        }
        public function getInternalIndex()
        {
        }
        public function getEntity()
        {
        }
    }
    class Collection implements \IteratorAggregate
    {
        protected $collection = [];
        static $internalIndex = 0;
        public function addItem(\Bitrix\Sale\Exchange\Integration\Service\User\Container\Item $item)
        {
        }
        public function count()
        {
        }
        public function toArray()
        {
        }
        public function getIndexes()
        {
        }
        /**
         * @param $index
         * @return Item|null
         */
        public function getItemByIndex($index)
        {
        }
        /**
         * Retrieve an external iterator
         * @link http://php.net/manual/en/iteratoraggregate.getiterator.php
         * @return Traversable An instance of an object implementing <b>Iterator</b> or
         * <b>Traversable</b>
         * @since 5.0.0
         */
        public function getIterator()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Service\Container {
    class Item
    {
        protected $internalIndex;
        protected $entity;
        protected $error;
        protected $hasError;
        public function __construct(\Bitrix\Sale\Exchange\Integration\Service\Container\Entity $entity)
        {
        }
        public static function create(\Bitrix\Sale\Exchange\Integration\Service\Container\Entity $entity)
        {
        }
        public function setInternalIndex($internalIndex)
        {
        }
        public function getInternalIndex()
        {
        }
        public function getEntity()
        {
        }
        /**
         * @return Error
         */
        public function getError()
        {
        }
        public function setError(\Bitrix\Main\Error $error)
        {
        }
        public function hasError()
        {
        }
    }
    class Collection implements \IteratorAggregate
    {
        protected $collection = [];
        static $internalIndex = 0;
        public function addItem(\Bitrix\Sale\Exchange\Integration\Service\Container\Item $item)
        {
        }
        public function count()
        {
        }
        public function toArray()
        {
        }
        public function getIndexes()
        {
        }
        /**
         * @param $index
         * @return Item|null
         */
        public function getItemByIndex($index)
        {
        }
        /**
         * Retrieve an external iterator
         * @link http://php.net/manual/en/iteratoraggregate.getiterator.php
         * @return Traversable An instance of an object implementing <b>Iterator</b> or
         * <b>Traversable</b>
         * @since 5.0.0
         */
        public function getIterator()
        {
        }
    }
    abstract class Entity
    {
        protected $fields;
        public function __construct(array $values = null)
        {
        }
        public function getId()
        {
        }
        public function setId($value)
        {
        }
        public function getFieldsValues()
        {
        }
        public static abstract function createFromArray(array $fields);
    }
}
namespace Bitrix\Sale\Exchange\Integration\Service\Scenarios {
    class StatisticsProvider
    {
        public function register(array $params)
        {
        }
    }
    class Base
    {
        public static function dealAddsRelation(array $params)
        {
        }
        protected static function loadRelation($id, $srcEntityTypeId, $dstEntityTypeId)
        {
        }
        protected static function addRelation($sourceEntityTypeId, $sourceEntityId, $destinationEntityTypeId, $destinationEntityId)
        {
        }
    }
    class DealUpdate extends \Bitrix\Sale\Exchange\Integration\Service\Scenarios\Base
    {
        public function update($id, array $params)
        {
        }
    }
    interface INamingEntity
    {
        public static function getNamingEntity(array $fields);
    }
    class ActivityAdd extends \Bitrix\Sale\Exchange\Integration\Service\Scenarios\Base implements \Bitrix\Sale\Exchange\Integration\Service\Scenarios\INamingEntity
    {
        public function adds(array $params)
        {
        }
        public static function prepareFields($params)
        {
        }
        public static function getNamingEntity(array $fields)
        {
        }
    }
    class Connector
    {
        public function add(array $params)
        {
        }
        public function delete(array $params)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Service\Scenarios\Controller {
    class ActivityAdd extends \Bitrix\Sale\Exchange\Integration\Service\Scenarios\ActivityAdd
    {
        public function adds(array $params)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Service\Scenarios {
    class Statistics
    {
        public function modify(array $params)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Service\Scenarios\RefreshClientsDeal {
    class Contact
    {
        public function refreshById($id, array $params)
        {
        }
        public function itemsGet($id)
        {
        }
        public function updates($id, array $userList, array $contacts)
        {
        }
        public function adds($id, array $userList)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Service\Scenarios\RefreshClient {
    abstract class Client
    {
        /**
         * @return Batchable\Client
         */
        protected abstract function getClient();
        public function refresh(array $params)
        {
        }
        public function resolve(array $params)
        {
        }
        public function diff(array $params)
        {
        }
        public function adds(array $params)
        {
        }
        protected static function prepareFields(array $params)
        {
        }
    }
    class Contact extends \Bitrix\Sale\Exchange\Integration\Service\Scenarios\RefreshClient\Client
    {
        protected function getClient()
        {
        }
    }
    class Company extends \Bitrix\Sale\Exchange\Integration\Service\Scenarios\RefreshClient\Client
    {
        protected function getClient()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Service\Scenarios {
    class DealAdd extends \Bitrix\Sale\Exchange\Integration\Service\Scenarios\Base implements \Bitrix\Sale\Exchange\Integration\Service\Scenarios\INamingEntity
    {
        public function adds(array $params)
        {
        }
        public static function prepareFields($params)
        {
        }
        protected static function getDestinationEntityId(\Bitrix\Sale\Exchange\Integration\Service\User\Container\Item $item)
        {
        }
        protected static function resolveClient($userTypeId)
        {
        }
        public static function getNamingEntity(array $fields)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Service\Command {
    interface IProxy
    {
        public static function getProxy();
    }
}
namespace Bitrix\Sale\Exchange\Integration\Service\Command\Line {
    class StatisticsProvider implements \Bitrix\Sale\Exchange\Integration\Service\Command\IProxy
    {
        public static function getProxy()
        {
        }
        /**
         * @param array $fields
         * @return mixed
         * @throws Integration\Exception\CommandLineException
         */
        public static function add(array $fields)
        {
        }
        public static function getList($filter)
        {
        }
    }
    class App implements \Bitrix\Sale\Exchange\Integration\Service\Command\IProxy
    {
        public static function getProxy()
        {
        }
        public static function optionSet(array $option)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Service\Command\Batch {
    class Statistics implements \Bitrix\Sale\Exchange\Integration\Service\Command\IProxy
    {
        protected $collection;
        /**
         * @return Collection
         */
        public function getCollection() : \Bitrix\Sale\Exchange\Integration\Service\Container\Collection
        {
        }
        public function __construct()
        {
        }
        public function init($params)
        {
        }
        public static function getProxy()
        {
        }
        /**
         * @return Result
         */
        public function modify()
        {
        }
        protected static function proxyModify(array $list)
        {
        }
        /**
         * @param array $params
         * @return Result
         */
        protected function modifyFromParams(array $params)
        {
        }
    }
    class Placement implements \Bitrix\Sale\Exchange\Integration\Service\Command\IProxy
    {
        public static function getProxy()
        {
        }
        public static function binds(array $list)
        {
        }
        public static function unbinds(array $list)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Service\Statistic\Entity {
    class Order extends \Bitrix\Sale\Exchange\Integration\Service\Container\Entity
    {
        public function getEntityTypeId()
        {
        }
        public function setEntityTypeId($value)
        {
        }
        public function getEntityId()
        {
        }
        public function setEntityId($value)
        {
        }
        public function getDateUpdate()
        {
        }
        public function setDateUpdate($value)
        {
        }
        public function getProviderId()
        {
        }
        public function setProviderId($value)
        {
        }
        public function getCurrency()
        {
        }
        public function setCurrency($value)
        {
        }
        public function getStatus()
        {
        }
        public function setStatus($value)
        {
        }
        public function getXmlId()
        {
        }
        public function setXmlId($value)
        {
        }
        public function getAmount()
        {
        }
        public function setAmount($value)
        {
        }
        public static function createFromArray(array $fields)
        {
        }
        public function getType()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Timeline {
    class Base
    {
        protected static function onReceive($orderId, array $settings)
        {
        }
        protected static function isSync(\Bitrix\Sale\Order $order)
        {
        }
    }
    class Shipment extends \Bitrix\Sale\Exchange\Integration\Timeline\Base
    {
        public static function statusNotify(\Bitrix\Main\Event $event)
        {
        }
        public static function allowDeliveryNotify(\Bitrix\Main\Event $event)
        {
        }
        public static function deductedNotify(\Bitrix\Main\Event $event)
        {
        }
    }
    class Order extends \Bitrix\Sale\Exchange\Integration\Timeline\Base
    {
        public static function statusNotify(\Bitrix\Main\Event $event)
        {
        }
        public static function canceledNotify(\Bitrix\Main\Event $event)
        {
        }
    }
    class Payment extends \Bitrix\Sale\Exchange\Integration\Timeline\Base
    {
        public static function paidNotify(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Exception {
    class CommandLineException extends \Exception
    {
    }
    class CommandBatchException extends \Exception
    {
    }
    class ScenariosException extends \Exception
    {
    }
    class BatchableException extends \Exception
    {
    }
    class UserException extends \Exception
    {
    }
}
namespace Bitrix\Sale\Exchange\Integration\Rest\Cmd {
    class Base
    {
        const DIRECTORY_PAGE = '/rest/';
        protected $query;
        protected $page;
        protected $directory;
        private $token;
        public function __construct()
        {
        }
        public function setField($name, $value)
        {
        }
        public function setFieldsValues($values)
        {
        }
        public function getFieldsValues()
        {
        }
        public function setDirectory($directory)
        {
        }
        public function setPageByType($type)
        {
        }
        public function setPage($page)
        {
        }
        public function build()
        {
        }
        public function call()
        {
        }
        public function fill()
        {
        }
        protected function buildDirectoryPage()
        {
        }
        protected function initialize(\Bitrix\Sale\Exchange\Integration\App\Base $application)
        {
        }
        private static function getAppToken($guid)
        {
        }
    }
    class Batch extends \Bitrix\Sale\Exchange\Integration\Rest\Cmd\Base
    {
        const HALT_DESABLE = 0;
        const CMD_PAGE = 'batch';
        public function __construct()
        {
        }
        public function fill()
        {
        }
    }
    class Factory
    {
        public static function create($type)
        {
        }
    }
    abstract class CmdBase extends \Bitrix\Sale\Exchange\Integration\Rest\Cmd\Base
    {
        public function __construct()
        {
        }
        protected abstract function getCmdName();
    }
    class CmdContactAdd extends \Bitrix\Sale\Exchange\Integration\Rest\Cmd\CmdBase
    {
        protected function getCmdName()
        {
        }
    }
    class Registry
    {
        const CRM_ACTIVITY_ADD_NAME = 'CRM_ACTIVITY_ADD';
        const CRM_DEAL_ADD_NAME = 'CRM_DEAL_ADD';
        const CRM_DEAL_CONTACT_ITEMS_SET_NAME = 'CRM_DEAL_CONTACT_ITEMS_SET';
        const CRM_DEAL_CONTACT_ITEMS_GET_NAME = 'CRM_DEAL_CONTACT_ITEMS_GET';
        const CRM_COMPANY_LIST_NAME = 'CRM_COMPANY_LIST';
        const CRM_COMPANY_ADD_NAME = 'CRM_COMPANY_ADD';
        const CRM_CONTACT_LIST_NAME = 'CRM_CONTACT_LIST';
        const CRM_CONTACT_ADD_NAME = 'CRM_CONTACT_ADD';
        const CRM_TIMELINE_ONRECEIVE_NAME = 'CRM_TIMELINE_ONRECEIVE';
        const APP_OPTIONS_ADD_NAME = 'APP_OPTIONS_ADD';
        const APP_PLACEMENT_BIND_NAME = 'APP_PLACEMENT_BIND';
        const APP_PLACEMENT_UNBIND_NAME = 'APP_PLACEMENT_UNBIND';
        const SALE_INTEGRATION_STATISTIC_PROVIDER_LIST_NAME = 'SALE_INTEGRATION_STATISTIC_PROVIDER_LIST';
        const SALE_INTEGRATION_STATISTIC_PROVIDER_ADD_NAME = 'SALE_INTEGRATION_STATISTIC_PROVIDER_ADD';
        const SALE_INTEGRATION_STATISTIC_MODIFY_NAME = 'SALE_INTEGRATION_STATISTIC_MODIFY';
        public static function getRegistry()
        {
        }
    }
    class CmdCompanyAdd extends \Bitrix\Sale\Exchange\Integration\Rest\Cmd\CmdBase
    {
        protected function getCmdName()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Rest\Cmd\Batch {
    class ItemCollection
    {
        protected $collection;
        static $internalIndex = 0;
        public function addItem(\Bitrix\Sale\Exchange\Integration\Rest\Cmd\Batch\Item $item)
        {
        }
        public function toArray()
        {
        }
        public function toArrayRaw()
        {
        }
    }
    class Item
    {
        protected $internalIndex;
        protected $cmd;
        public function __construct(\Bitrix\Sale\Exchange\Integration\Rest\Cmd\Base $cmd)
        {
        }
        public static function create(\Bitrix\Sale\Exchange\Integration\Rest\Cmd\Base $cmd)
        {
        }
        public function setInternalIndex($internalIndex)
        {
        }
        public function getInternalIndex()
        {
        }
        public function getCmd()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Rest\Cmd {
    class CmdDealAdd extends \Bitrix\Sale\Exchange\Integration\Rest\Cmd\CmdBase
    {
        protected function getCmdName()
        {
        }
    }
    class CmdActivityAdd extends \Bitrix\Sale\Exchange\Integration\Rest\Cmd\CmdBase
    {
        const ACTIVITY_PRIORITY_MEDIUM = 2;
        //\CCrmActivityPriority::Medium,
        const ACTIVITY_PROVIDER_ID = 'REST_APP';
        const ACTIVITY_PROVIDER_TYPE_ID = 'ESHOP';
        const ACTIVITY_TYPE_ID = 6;
        const CONTENT_TYPE_PLAIN_TEXT = 1;
        //\CCrmContentType::PlainText,
        const ACTIVITY_NOTIFY_TYPE_NONE = 0;
        //\CCrmActivityNotifyType::None,
        public function fill()
        {
        }
        protected function getCmdName()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Rest {
    class Sender
    {
        protected $fields;
        public function __construct()
        {
        }
        /**
         * @return \Bitrix\Sale\Internals\Fields
         */
        protected function getFields()
        {
        }
        public function getField($name)
        {
        }
        public function checkFields()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Rest\Client {
    class Base
    {
        const LOG_DIR = '/bitrix/modules/sale/lib/exchange/integration/log';
        const LOG_PATH = 'rest_client.log';
        protected $accessToken;
        protected $refreshToken;
        protected $endPoint;
        protected $expiresIn;
        public function __construct(array $settings)
        {
        }
        public function getAccessToken()
        {
        }
        public function setAccessToken($accessToken)
        {
        }
        public function getRefreshToken()
        {
        }
        public function setRefreshToken($refreshToken)
        {
        }
        public function getEndPoint()
        {
        }
        public function setEndPoint($endPoint)
        {
        }
        public function getExpiresIn()
        {
        }
        public function setExpiresIn($expiresIn)
        {
        }
        public function call($method, $params = [])
        {
        }
        protected function makeRequest($method, $params = [])
        {
        }
        protected function refreshAccessToken()
        {
        }
        /**
         * @param $params
         * @return void
         */
        protected function log($params)
        {
        }
        protected function isOnLog()
        {
        }
    }
    class TokenClient extends \Bitrix\Sale\Exchange\Integration\Rest\Client\Base
    {
        /** @var Integration\Entity\Token token */
        protected $token;
        public function __construct(\Bitrix\Sale\Exchange\Integration\Entity\Token $token)
        {
        }
        protected function refreshAccessToken()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies {
    interface ICmd
    {
        /**
         * @param $pageType
         * @param $fields
         * @return Cmd\CmdBase
         */
        public function cmd($pageType, $fields);
        /**
         * @param $pageType
         * @param $list
         * @return Cmd\Batch
         */
        public function batch($pageType, $list);
    }
}
namespace Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\Sale {
    interface IStatisticsProvider extends \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\ICmd
    {
        public function add(array $fields);
        public function getList($select = [], $filter, $order = [], $pageNavigation);
    }
}
namespace Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies {
    class Base implements \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\ICmd
    {
        protected $batchItemCollection;
        public function cmd($pageType, $fields)
        {
        }
        public function batch($pageType, $list)
        {
        }
        protected function setBatchItemCollection($batchItemCollection)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\Sale {
    class StatisticsProvider extends \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\Base implements \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\Sale\IStatisticsProvider
    {
        public function add(array $fields)
        {
        }
        public function getList($select = [], $filter, $order = [], $pageNavigation = '')
        {
        }
    }
    interface IStatistics
    {
        public function modify(array $items);
    }
    class Statistics extends \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\Base implements \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\Sale\IStatistics
    {
        public function modify(array $fields)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\CRM {
    interface IApp extends \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\ICmd
    {
        public function optionSet($options);
    }
    class App extends \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\Base implements \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\CRM\IApp
    {
        public function optionSet($options)
        {
        }
    }
    interface IContact extends \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\ICmd
    {
        public function adds($list);
        public function getList($select = [], $filter, $order = [], $pageNavigation);
    }
    interface IActivity extends \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\ICmd
    {
        public function adds($list);
    }
    interface ITimeline
    {
        public function onReceive($entityId, $entitTypeId, $settings);
    }
    interface IDeal extends \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\ICmd
    {
        public function adds($list);
        public function contactItemsGet($id);
        public function contactItemsSet($id, $items);
    }
    class Deal extends \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\Base implements \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\CRM\IDeal
    {
        public function adds($list)
        {
        }
        public function contactItemsGet($id)
        {
        }
        public function contactItemsSet($id, $items)
        {
        }
    }
    class Contact extends \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\Base implements \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\CRM\IContact
    {
        public function adds($list)
        {
        }
        public function getList($select = [], $filter, $order = [], $pageNavigation = '')
        {
        }
    }
    interface ICompany extends \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\ICmd
    {
        public function adds($list);
        public function getList($select = [], $filter, $order = [], $pageNavigation);
    }
    class Company extends \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\Base implements \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\CRM\ICompany
    {
        public function adds($list)
        {
        }
        public function getList($select = [], $filter, $order = [], $pageNavigation = '')
        {
        }
    }
    interface IPlacement extends \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\ICmd
    {
        public function binds(array $list);
        public function unbinds(array $list);
    }
    class Placement extends \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\Base implements \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\CRM\IPlacement
    {
        public function binds(array $list)
        {
        }
        public function unbinds(array $list)
        {
        }
    }
    class Activity extends \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\Base implements \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\CRM\IActivity
    {
        public function adds($list)
        {
        }
    }
    class Timeline extends \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\Base implements \Bitrix\Sale\Exchange\Integration\Rest\RemoteProxies\CRM\ITimeline
    {
        public function onReceive($entityId, $entitTypeId, $settings)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange {
    interface ICollision
    {
        /**
         * @param $entityTypeId
         * @param $typeId
         * @param Entity $entity
         * @param null $message
         * @return mixed
         */
        public function addItem($entityTypeId, $typeId, \Bitrix\Sale\Internals\Entity $entity, $message = null);
        /**
         * @param $entityTypeId
         * @return mixed
         */
        public static function getCurrent($entityTypeId);
        /**
         * @return mixed
         */
        public function getEntity();
        /**
         * @return int
         */
        public function getTypeId();
        /**
         * @return string
         */
        public function getMessage();
        /**
         * @return string
         */
        public function getTypeName();
        /**
         * @param Entity $entity
         */
        public function setEntity(\Bitrix\Sale\Internals\Entity $entity);
        /**
         * @param ImportBase $entity
         * @return Result
         */
        public function resolve(\Bitrix\Sale\Exchange\ImportBase $entity);
    }
    class Limit
    {
        /**
         * @return bool
         */
        public static function isExchangeAvailable() : bool
        {
        }
    }
    class EntityCollisionType
    {
        const GROUP_E_ERROR = 1;
        const GROUP_E_WARNING = 2;
        const Undefined = 0;
        const OrderIsPayed = 1;
        const OrderIsShipped = 2;
        const OrderFinalStatus = 3;
        const ShipmentIsShipped = 4;
        const ShipmentBasketItemNotFound = 5;
        const ShipmentBasketItemQuantityError = 6;
        const ShipmentBasketItemsModify = 7;
        const OrderShipmentItemsModify = 8;
        const ShipmentBasketItemsModifyError = 9;
        const OrderShipmentItemsModifyError = 10;
        const PaymentIsPayed = 11;
        const OrderShipmentDeleted = 12;
        const OrderShipmentDeletedError = 13;
        const OrderPaymentDeleted = 14;
        const OrderPaymentDeletedError = 15;
        const OrderBasketItemTaxValueError = 16;
        const OrderSynchronizeBasketItemsModify = 17;
        const OrderPayedByStatusError = 18;
        const OrderBasketItemTypeError = 19;
        const PaymentCashBoxCheckNotFound = 20;
        const OrderSynchronizeBasketItemsModifyError = 21;
        const BeforeUpdatePaymentDeletedError = 22;
        const BeforeUpdateShipmentDeletedError = 23;
        const OrderShippedByStatusError = 24;
        const OrderBasketItemsCurrencyModify = 25;
        const First = 1;
        const Last = 25;
        const OrderIsPayedName = 'ORDER_IS_PAYED';
        const OrderIsShippedName = 'ORDER_IS_SHIPPED';
        const OrderFinalStatusName = 'ORDER_FINAL_STATUS';
        const ShipmentIsShippedName = 'SHIPMENT_IS_SHIPPED';
        const ShipmentBasketItemNotFoundName = 'SHIPMENT_BASKET_ITEM_NOT_FOUND';
        const ShipmentBasketItemQuantityErrorName = 'SHIPMENT_BASKET_ITEM_QUANTITY_ERROR';
        const ShipmentBasketItemsModifyName = 'SHIPMENT_BASKET_ITEMS_MODIFY';
        const OrderShipmentItemsModifyName = 'ORDER_SHIPMENT_ITEMS_MODIFY';
        const ShipmentBasketItemsModifyErrorName = 'SHIPMENT_BASKET_ITEMS_MODIFY_ERROR';
        const OrderShipmentItemsModifyErrorName = 'ORDER_SHIPMENT_ITEMS_MODIFY_ERROR';
        const PaymentIsPayedName = 'PAYMENT_IS_PAYED';
        const OrderShipmentDeletedName = 'ORDER_SHIPMENT_DELETED';
        const OrderShipmentDeletedErrorName = 'ORDER_SHIPMENT_DELETED_ERROR';
        const OrderPaymentDeletedName = 'ORDER_PAYMENT_DELETED';
        const OrderPaymentDeletedErrorName = 'ORDER_PAYMENT_DELETED_ERROR';
        const OrderBasketItemTaxValueErrorName = 'ORDER_BASKET_ITEM_TAX_VALUE_ERROR';
        const OrderSynchronizeBasketItemsModifyName = 'ORDER_SYNCHRONIZE_BASKET_ITEMS_MODIFY';
        const OrderPayedByStatusErrorName = 'ORDER_PAYED_BY_STATUS_ERROR';
        const OrderBasketItemTypeErrorName = 'ORDER_BASKET_ITEM_TYPE_ERROR';
        const PaymentCashBoxCheckNotFoundName = 'PAYMENT_CASH_BOX_CHECK_NOT_FOUND';
        const OrderSynchronizeBasketItemsModifyErrorName = 'ORDER_SYNCHRONIZE_BASKET_ITEMS_MODIFY_ERROR';
        const BeforeUpdatePaymentDeletedErrorName = 'BEFORE_UPDATE_PAYMENT_DELETED_ERROR';
        const BeforeUpdateShipmentDeletedErrorName = 'BEFORE_UPDATE_SHIPMENT_DELETED_ERROR';
        const OrderShippedByStatusErrorName = 'ORDER_SHIPPED_BY_STATUS_ERROR';
        const OrderBasketItemsCurrencyModifyName = 'ORDER_BASKET_ITEMS_CURRENCY_MODIFY';
        private static $ALL_DESCRIPTIONS = array();
        private static $ALL_ERROR_GROUPS = array();
        /**
         * @param $typeId
         * @return bool
         */
        public static function isDefined($typeId)
        {
        }
        /**
         * @param string $name
         * @return int
         */
        public static function resolveID($name)
        {
        }
        /**
         * @param int $typeId
         * @return string
         */
        public static function resolveName($typeId)
        {
        }
        /**
         * @return array
         */
        public static function getAllDescriptions()
        {
        }
        /**
         * @param int $typeId
         * @return string
         */
        public static function getDescription($typeId)
        {
        }
        /**
         * @param array $types
         * @return array
         */
        public static function getDescriptions($types)
        {
        }
        /**
         * @return array
         */
        protected static function getAllErrorGroups()
        {
        }
        /**
         * @param $typeId
         * @return mixed|int
         */
        public static function getErrorGroup($typeId)
        {
        }
    }
    abstract class ExportPattern
    {
        /**
         * @param array $fields
         * @return Result
         */
        protected abstract function getItems(array $fields);
        /**
         * @param ImportBase[] $items
         * @return Result
         */
        protected abstract function convert(array $items);
        /**
         * @param DocumentBase[] $items
         * @return Result
         */
        protected abstract function export(array $items);
        /**
         * @param ImportBase[] $items
         * @return Result
         */
        protected abstract function logger(array $items);
        /**
         * @param array $fields
         * @return Result
         */
        public function proccess(array $fields)
        {
        }
    }
    abstract class ExportOneCBase extends \Bitrix\Sale\Exchange\ExportPattern
    {
        const SHEM_VERSION_2_10 = '2.10';
        const SHEM_VERSION_3_1 = '3.1';
        /**
         * @return string
         */
        public function outputXmlCMLHeader()
        {
        }
        /**
         * @return string
         */
        public function outputXmlCMLFooter()
        {
        }
        /**
         * @return string
         */
        protected abstract function getShemVersion();
        /**
         * @return string
         */
        public function getDirectionType()
        {
        }
    }
    abstract class ExportOneCPackage extends \Bitrix\Sale\Exchange\ExportOneCBase
    {
        use \Bitrix\Sale\Exchange\PackageTrait {
            \Bitrix\Sale\Exchange\PackageTrait::load as protected load_AliasTrait;
        }
        use \Bitrix\Sale\Exchange\LoggerTrait;
        use \Bitrix\Sale\Exchange\BaseTrait;
        private static $instance = null;
        /**
         * @return static
         */
        public static function getInstance()
        {
        }
        private function __clone()
        {
        }
        private function __construct()
        {
        }
        public static function configuration()
        {
        }
        /**
         * @return int
         */
        protected static function getParentEntityTypeId()
        {
        }
        protected static function getShipmentEntityTypeId()
        {
        }
        protected static function getPaymentCardEntityTypeId()
        {
        }
        protected static function getPaymentCashEntityTypeId()
        {
        }
        protected static function getPaymentCashLessEntityTypeId()
        {
        }
        /**
         * @param array $fields
         * @return Result
         */
        protected function getItems(array $fields)
        {
        }
        /**
         * @param CollectionBase $collection
         * @param Order $order
         * @return array
         */
        protected function loadItemsByCollection(\Bitrix\Sale\Internals\CollectionBase $collection, \Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param Entity $entity
         * @return int
         */
        protected function resolveEntityTypeId(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param ImportBase[] $items
         * @return Result
         */
        protected function convert(array $items)
        {
        }
        /**
         * @param DocumentBase[] $documents
         */
        protected function convertDocumentFields(array $documents)
        {
        }
        /**
         * @param ImportBase[] $items
         * @return Result;
         */
        protected function convertEntityFields(array $items)
        {
        }
        /**
         * @param ImportBase[] $items
         */
        protected function addItemOrderDelivery(array $items)
        {
        }
        /**
         * @param array $list
         * @return mixed|null
         */
        protected function getDeliveryServiceItem(array $list)
        {
        }
        /**
         * @param $taxes
         * @return int
         */
        protected function getSummOrderTaxes($taxes)
        {
        }
        /**
         * @param ShipmentImport $item
         * @param $orderTax
         * @return array
         */
        protected function getVatRateByShipment(\Bitrix\Sale\Exchange\Entity\ShipmentImport $item, $orderTax)
        {
        }
        /**
         * @param DocumentBase $document
         * @param UserProfileDocument $documentProfile
         */
        protected function prepareDocumentFieldsDeliveryAddress(\Bitrix\Sale\Exchange\OneC\DocumentBase $document, \Bitrix\Sale\Exchange\OneC\UserProfileDocument $documentProfile)
        {
        }
        /**
         * @param ImportBase $item
         * @param OrderImport $orderImport
         * @throws ArgumentException
         */
        protected function prepareEntityFieldsBusinessValue(\Bitrix\Sale\Exchange\ImportBase $item, \Bitrix\Sale\Exchange\Entity\OrderImport $orderImport = null)
        {
        }
        /**
         * @param DocumentBase[] $documents
         * @param int $level
         * @return Result
         */
        protected function outputXmlDocuments(array $documents, $level = 0)
        {
        }
        /**
         * @param DocumentBase $document
         * @param int $level
         * @return string
         */
        protected function outputXmlDocument(\Bitrix\Sale\Exchange\OneC\DocumentBase $document, $level)
        {
        }
        /**
         * @param DocumentBase[] $list
         * @return DocumentBase[]
         */
        protected function modifyDocumentsCollection(array $list)
        {
        }
        /**
         * @param EntityImport[] $items
         */
        protected function initLogger(array $items)
        {
        }
        /**
         * @param ImportBase $item
         * @return DocumentBase
         */
        protected function convertEntity(\Bitrix\Sale\Exchange\ImportBase $item)
        {
        }
        /**
         * @param $typeId
         * @return int
         */
        protected function resolveDocumentTypeId($typeId)
        {
        }
        /**
         * @param DocumentBase[] $documents
         * @return Result
         */
        protected function export(array $documents)
        {
        }
        /**
         * @param ImportBase $item
         * @param array $fields
         * @param null $order
         */
        protected static function load(\Bitrix\Sale\Exchange\ImportBase $item, array $fields, $order = null)
        {
        }
        /**
         * @param ImportBase[] $items
         * @return Result
         */
        protected function logger(array $items)
        {
        }
    }
    interface ICriterion
    {
        /**
         * @return mixed
         */
        public function getEntity();
        /**
         * @param $entity
         */
        public function setEntity($entity = null);
        /**
         * @param array $fields
         * @return bool
         */
        public function equals(array $fields);
        /**
         * @param $entityTypeId
         * @param $entity
         * @return mixed
         */
        public static function getCurrent($entityTypeId, $entity);
    }
    interface ICriterionOrder extends \Bitrix\Sale\Exchange\ICriterion
    {
        /**
         * @param BasketItem $basketItem
         * @param array $fields
         * @return mixed
         */
        public function equalsBasketItemTax(\Bitrix\Sale\BasketItem $basketItem, array $fields);
        /**
         * @param BasketItem $basketItem
         * @param array $fields
         * @return mixed
         */
        public function equalsBasketItem(\Bitrix\Sale\BasketItem $basketItem, array $fields);
        /**
         * @param BasketItem $basketItem
         * @param array $fields
         * @return mixed
         */
        public function equalsBasketItemDiscount(\Bitrix\Sale\BasketItem $basketItem, array $fields);
    }
    class ExportOneCPackageSale extends \Bitrix\Sale\Exchange\ExportOneCPackage
    {
        /**
         * @param DocumentBase[] $documents
         */
        protected function convertDocumentFields(array $documents)
        {
        }
        /**
         * @param ImportBase[] $items
         * @return Result;
         */
        protected function convertEntityFields(array $items)
        {
        }
        /**
         * @param PaymentImport $item
         * @param $checks
         */
        protected function prepareEntityFieldsCashBoxChecks(\Bitrix\Sale\Exchange\Entity\PaymentImport $item, $checks)
        {
        }
        /**
         * @param DocumentBase[] $documents
         * @param int $level
         * @return Result
         */
        protected function outputXmlDocuments(array $documents, $level = 0)
        {
        }
        /**
         * @param string $xml
         * @return string
         */
        public function outputXmlContainer($xml)
        {
        }
        /**
         * @return string
         */
        protected function getShemVersion()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\Internals {
    class Logger
    {
        /** @var  Fields */
        protected $fields;
        public function __construct()
        {
        }
        /**
         * @return static
         */
        public static function getCurrent()
        {
        }
        /**
         * @param $name
         * @param $value
         */
        public function setField($name, $value)
        {
        }
        /**
         * @param $name
         * @return null|string
         */
        public function getField($name)
        {
        }
        /**
         * @return \Bitrix\Main\Entity\AddResult|null
         */
        public function save()
        {
        }
        /**
         * @param array $params
         * @return \Bitrix\Main\ORM\Data\AddResult
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function log(array $params)
        {
        }
    }
    class LoggerDiagBase extends \Bitrix\Sale\Exchange\Internals\Logger
    {
        protected static function getNameOptionEndTime()
        {
        }
        protected static function getNameOptionIntervalDayOption()
        {
        }
        public static function isOn()
        {
        }
        public static function enable($endTime = 0)
        {
        }
        public static function disable()
        {
        }
        public static function getEndTime()
        {
        }
        /**
         * @return int
         */
        public static function getInterval()
        {
        }
    }
    class LoggerDiag extends \Bitrix\Sale\Exchange\Internals\LoggerDiagBase
    {
        protected static function getNameOptionEndTime()
        {
        }
        protected static function getNameOptionIntervalDayOption()
        {
        }
        public static function log(array $params)
        {
        }
    }
    class ExchangeLogTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        /**
         * Clears all logging data
         */
        public static function deleteAll()
        {
        }
        /**
         * Clears old logging data
         */
        public static function deleteOldRecords($direction, $provider, $interval)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange {
    final class ImportOneCPackageCRM extends \Bitrix\Sale\Exchange\ImportOneCPackage
    {
        /**
         * @param OneC\DocumentBase[] $documents
         * @return Result
         */
        protected function checkDocuments(array $documents)
        {
        }
        /**
         * @param Entity\EntityImport|ProfileImport $item
         * @return Result
         */
        protected function modifyEntity($item)
        {
        }
        /**
         * @param OrderImport $orderImport
         * @param Entity\EntityImport[] $items
         * @return \Bitrix\Main\Entity\AddResult|\Bitrix\Main\Entity\UpdateResult|Result|mixed
         */
        protected function save(\Bitrix\Sale\Exchange\Entity\OrderImport $orderImport, $items)
        {
        }
        /**
         * @param $typeId
         * @return \Bitrix\Sale\Exchange\OneC\Converter
         */
        protected function converterFactoryCreate($typeId)
        {
        }
        /**
         * @param OneC\DocumentBase[] $documents
         * @return Result
         */
        protected function convert(array $documents)
        {
        }
        public static function configuration()
        {
        }
        protected function resolveEntityTypeId(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        protected static function getParentEntityTypeId()
        {
        }
        protected static function getShipmentEntityTypeId()
        {
        }
        protected static function getPaymentCardEntityTypeId()
        {
        }
        protected static function getPaymentCashEntityTypeId()
        {
        }
        protected static function getPaymentCashLessEntityTypeId()
        {
        }
    }
    final class Manager
    {
        private static $instance = null;
        /** @var ISettings $settings */
        protected $settings = null;
        /** @var ICollision $collision */
        protected $collision = null;
        /** @var ICriterion $criterion */
        protected $criterion = null;
        /** @var LoggerDiag $logger */
        protected $logger = null;
        /**
         * @return static
         */
        private static function getInstance()
        {
        }
        /**
         * @param $typeId
         * @return Entity\OrderImport|Entity\PaymentCardImport|Entity\PaymentCashImport|Entity\PaymentCashLessImport|Entity\ShipmentImport|Entity\UserProfileImport|ProfileImport
         */
        public static function createImport($typeId)
        {
        }
        /**
         * Add instance of this manager to collection
         * @param $typeId
         * @param ISettings $settings
         * @param ICollision $collision
         * @param ICriterion $criterion
         * @return mixed
         * @throws ArgumentOutOfRangeException
         * @internal
         */
        public static function registerInstance($typeId, \Bitrix\Sale\Exchange\ISettings $settings, \Bitrix\Sale\Exchange\ICollision $collision = null, \Bitrix\Sale\Exchange\ICriterion $criterion = null)
        {
        }
        /**
         * Get import by Type ID.
         * @param $typeId
         * @return null|static
         * @throws ArgumentOutOfRangeException
         */
        private static function getImportByType($typeId)
        {
        }
        /**
         * @param $typeId
         * @return ISettings
         * @throws ArgumentOutOfRangeException
         */
        public static function getSettingsByType($typeId)
        {
        }
    }
    class ExportOneCPackageCRM extends \Bitrix\Sale\Exchange\ExportOneCPackageSale
    {
        protected function resolveEntityTypeId(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        protected static function getParentEntityTypeId()
        {
        }
        protected static function getShipmentEntityTypeId()
        {
        }
        protected static function getPaymentCardEntityTypeId()
        {
        }
        protected static function getPaymentCashEntityTypeId()
        {
        }
        protected static function getPaymentCashLessEntityTypeId()
        {
        }
        /**
         * @return string
         */
        protected function getShemVersion()
        {
        }
    }
    final class ManagerExport extends \Bitrix\Sale\Exchange\ManagerBase
    {
        const SALE_MODE = 1;
        const B24_MODE = 2;
        const SALE_B24_MODE = 3;
        const B24_SALE_MODE = 4;
        /**
         * @return string
         */
        public static function getDirectionType()
        {
        }
        /**
         * @param ImportBase $entity
         */
        public static function configure(\Bitrix\Sale\Exchange\ImportBase $entity)
        {
        }
        /**
         * Add instance of this manager to collection
         * @param $typeId
         * @param ISettingsExport $settings
         * @return mixed
         * @internal
         */
        public static function registerInstance($typeId, \Bitrix\Sale\Exchange\ISettingsExport $settings)
        {
        }
        public static function isSaleMode()
        {
        }
        public static function isB24Mode()
        {
        }
        public static function isSaleB24Mode()
        {
        }
        public static function isB24SaleMode()
        {
        }
        public static function getMode()
        {
        }
        public static function isCRMCompatibility()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\OneC {
    class ConverterFactory
    {
        /**
         * @param $typeId
         * @return Converter
         * @throws ArgumentOutOfRangeException
         * @throws NotSupportedException
         */
        public static function create($typeId)
        {
        }
    }
    class PaymentDocument extends \Bitrix\Sale\Exchange\OneC\DocumentBase
    {
        protected static $FIELD_INFOS = null;
        /**
         * @return array
         */
        public static function getFieldsInfo()
        {
        }
        /**
         * @param int $level
         * @return string
         */
        public function output($level = 0)
        {
        }
        protected function outputXmlCashBoxChecks($level, $name, $checks)
        {
        }
    }
    class PaymentCashDocument extends \Bitrix\Sale\Exchange\OneC\PaymentDocument
    {
        /**
         * @return int
         */
        public function getTypeId()
        {
        }
    }
    class PaymentCashLessDocument extends \Bitrix\Sale\Exchange\OneC\PaymentDocument
    {
        /**
         * @return int
         */
        public function getTypeId()
        {
        }
    }
    class PaymentCardDocument extends \Bitrix\Sale\Exchange\OneC\PaymentDocument
    {
        /**
         * @return int
         */
        public function getTypeId()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange {
    /**
     * Interface IConverter
     * @package Bitrix\Sale\Exchange
     * @deprecated
     */
    interface IConverter
    {
        /**
         * @param $documentImport
         * @return array
         */
        public function resolveParams($documentImport);
        /**
         * @param null $entity
         * @param array $fields
         */
        public static function sanitizeFields($entity = null, array &$fields, \Bitrix\Sale\Exchange\ISettings $settings);
        public function externalize(array $fields);
    }
}
namespace Bitrix\Sale\Exchange\OneC {
    /**
     * Class Converter
     * @package Bitrix\Sale\Exchange\OneC
     * @deprecated
     */
    abstract class Converter implements \Bitrix\Sale\Exchange\IConverter
    {
        const MEASURE_CODE_DEFAULT = 796;
        const KOEF_DEFAULT = 1;
        const CURRENCY_RATE_DEFAULT = 1;
        /** @var ISettings */
        protected $settings = null;
        protected $entityTypeId;
        protected $documentTypeId;
        /** @var Converter[]|null  */
        private static $instances = null;
        /**
         * @param int $typeId Type ID.
         * @return Converter
         * @deprecated
         */
        public static function getInstance($typeId)
        {
        }
        /**
         * @return array
         */
        protected abstract function getFieldsInfo();
        /**
         * @return ISettings
         */
        public function getSettings()
        {
        }
        public function getEntityTypeId()
        {
        }
        public function getDocmentTypeId()
        {
        }
        public function init(\Bitrix\Sale\Exchange\ISettings $settings, $entityTypeId = \Bitrix\Sale\Exchange\EntityType::UNDEFINED, $documentTypeId = \Bitrix\Sale\Exchange\OneC\DocumentType::UNDEFINED)
        {
        }
        /**
         * @param $value
         * @param mixed
         */
        protected function externalizeField(&$value, $fieldInfo = null)
        {
        }
        /**
         * @param $value
         * @return string
         */
        protected static function toText($value)
        {
        }
        /**
         * @param string $code
         * @return string
         */
        public static function normalizeExternalCode($code)
        {
        }
        /**
         * @param $rekv
         * @param array $info
         * @return array
         */
        protected function externalizeRekv(array $rekv, array $info)
        {
        }
        /**
         * @param $rekv
         * @param array $info
         * @return array
         */
        protected function externalizeRekvValue($kRekv, $vRekv, array $info)
        {
        }
        /**
         * @param array $fields
         * @return array
         */
        protected function modifyTrim(array $fields)
        {
        }
        /**
         * @param $lid
         * @return string
         */
        protected static function getSiteNameByLid($lid)
        {
        }
        public function modifyItemIdByItemName($fields)
        {
        }
    }
    /**
     * Class ConverterDocumentPayment
     * @package Bitrix\Sale\Exchange\OneC
     * @deprecated
     */
    class ConverterDocumentPayment extends \Bitrix\Sale\Exchange\OneC\Converter
    {
        /**
         * @return array
         */
        protected function getFieldsInfo()
        {
        }
        /**
         * @param $documentImport
         * @return array
         * @throws ArgumentException
         */
        public function resolveParams($documentImport)
        {
        }
        /**
         * @param $fields
         * @return int
         */
        public function getPaySystemId($fields)
        {
        }
        /**
         * @param Payment|null $payment
         * @param array $fields
         */
        public static function sanitizeFields($payment = null, array &$fields, \Bitrix\Sale\Exchange\ISettings $settings)
        {
        }
        public function externalize(array $fields)
        {
        }
        /**
         * @param $fields
         * @param array $fieldsInfo
         * @return array
         */
        protected function externalizeCashBoxChecksFields($fields, array $fieldsInfo)
        {
        }
    }
    class ConverterDocumentPaymentInvoice extends \Bitrix\Sale\Exchange\OneC\ConverterDocumentPayment
    {
        public function getPaySystemId($fields)
        {
        }
    }
    class OrderDocument extends \Bitrix\Sale\Exchange\OneC\DocumentBase
    {
        protected static $FIELD_INFOS = null;
        /**
         * @return int
         */
        public function getTypeId()
        {
        }
        /**
         * @return array
         */
        public static function getFieldsInfo()
        {
        }
        protected static function unitFieldsInfo(&$info)
        {
        }
        protected static function koefFieldsInfo(&$info)
        {
        }
    }
    /**
     * Class ConverterDocumentShipment
     * @package Bitrix\Sale\Exchange\OneC
     * @deprecated
     */
    class ConverterDocumentShipment extends \Bitrix\Sale\Exchange\OneC\Converter
    {
        /**
         * @return array
         */
        protected function getFieldsInfo()
        {
        }
        /**
         * @param $documentImport
         * @return array
         * @throws ArgumentException
         */
        public function resolveParams($documentImport)
        {
        }
        /**
         * @param Shipment|null $shipment
         * @param array $fields
         * @throws ArgumentException
         */
        public static function sanitizeFields($shipment = null, array &$fields, \Bitrix\Sale\Exchange\ISettings $settings)
        {
        }
        public function externalize(array $fields)
        {
        }
        public function externalizeItems(array $taxes, array $info)
        {
        }
        public function externalizeStories(array $stories, array $info)
        {
        }
        public function externalizeTaxes(array $items, array $info)
        {
        }
        protected function getBasePriceDelivery($list = [])
        {
        }
    }
    class UserProfileDocument extends \Bitrix\Sale\Exchange\OneC\DocumentBase
    {
        protected static $FIELD_INFOS = null;
        /**
         * @return array
         */
        protected static function getMessage()
        {
        }
        /**
         * @return int
         */
        public function getTypeId()
        {
        }
        /**
         * @return array
         */
        public static function getFieldsInfo()
        {
        }
        /**
         * @param array $document
         * @return array
         */
        public static function prepareFieldsData(array $document)
        {
        }
        /**
         * @param $value
         * @param $fieldsInfo
         * @return array
         */
        protected static function resolveRelationArrayParams($value, $fieldsInfo)
        {
        }
        /**
         * @param $value
         * @param $fieldsInfo
         * @return array
         */
        protected static function resolveArrayParams($value, $fieldsInfo)
        {
        }
        /**
         * @param array $document
         * @param array $fieldsInfo
         * @return null
         */
        protected static function resolveFields(array $document, array $fieldsInfo)
        {
        }
        /**
         * @return null|string
         */
        function getExternalId()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\OneC\CRM {
    class ConverterFactory
    {
        /**
         * @param $typeId
         * @return \Bitrix\Sale\Exchange\OneC\Converter
         * @throws ArgumentOutOfRangeException
         * @throws NotSupportedException
         */
        public static function create($typeId)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange {
    interface ISettings
    {
        public static function getCurrent();
        /**
         * @return string
         */
        public function prefixFor($typeId);
    }
    interface ISettingsExport extends \Bitrix\Sale\Exchange\ISettings
    {
        /**
         * @return string
         */
        public function getSiteId();
        /**
         * @return string
         */
        public function getReplaceCurrency();
        /**
         * @param $entityTypeId
         * @return string
         */
        public function groupPermissionFor($entityTypeId);
        /**
         * @param $entityTypeId
         * @return string
         */
        public function finalStatusFor($entityTypeId);
        /**
         * @param $entityTypeId
         * @return string
         */
        public function payedFor($entityTypeId);
        /**
         * @param $entityTypeId
         * @return string
         */
        public function allowDeliveryFor($entityTypeId);
    }
}
namespace Bitrix\Sale\Exchange\OneC {
    abstract class SettingsBase implements \Bitrix\Sale\Exchange\ISettings
    {
        protected static $currentSettings = null;
        protected $settings = array();
        /**
         * ImportSettings constructor.
         * @param array|null $settings
         */
        protected function __construct(array $settings = null)
        {
        }
        /**
         * @param $entityTypeId
         * @return string
         * @throws ArgumentTypeException
         * @throws NotSupportedException
         */
        protected function resolveName($entityTypeId)
        {
        }
        /**
         * @return array|null
         * @throws ArgumentNullException
         */
        protected static function loadCurrentSettings()
        {
        }
        /**
         * @param $entityTypeId
         * @param $name
         * @param string $default
         * @return string
         */
        protected function getValueFor($entityTypeId, $name, $default = '')
        {
        }
        /**
         * @param $entityTypeId
         * @return mixed
         * @throws ArgumentTypeException
         * @throws NotSupportedException
         */
        public function prefixFor($entityTypeId)
        {
        }
    }
    class ExportSettings extends \Bitrix\Sale\Exchange\OneC\SettingsBase implements \Bitrix\Sale\Exchange\ISettingsExport
    {
        /**
         * @return array|null
         * @throws ArgumentNullException
         */
        protected static function loadCurrentSettings()
        {
        }
        /**
         * @return string
         */
        public function getSiteId()
        {
        }
        /**
         * @return string
         */
        public function getReplaceCurrency()
        {
        }
        /**
         * @param $entityTypeId
         * @return string
         */
        public function groupPermissionFor($entityTypeId)
        {
        }
        /**
         * @param $entityTypeId
         * @return string
         */
        public function finalStatusFor($entityTypeId)
        {
        }
        /**
         * @param $entityTypeId
         * @return string
         */
        public function payedFor($entityTypeId)
        {
        }
        /**
         * @param $entityTypeId
         * @return string
         */
        public function allowDeliveryFor($entityTypeId)
        {
        }
        /**
         * @return ISettingsExport
         */
        public static function getCurrent()
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\OneC\SubordinateSale {
    class ConverterFactory
    {
        /**
         * @param $typeId
         * @return IConverter
         * @throws ArgumentOutOfRangeException
         * @throws NotSupportedException
         */
        public static function create($typeId)
        {
        }
    }
    class DocumentFactory
    {
        /** Create new document import by specified document type ID.
         * @static
         * @param int $documentTypeID Document type ID.
         * @return DocumentBase
         * @throws ArgumentOutOfRangeException
         * @throws NotSupportedException
         */
        public static function create($documentTypeID)
        {
        }
    }
    class OrderDocument extends \Bitrix\Sale\Exchange\OneC\OrderDocument
    {
        /**
         * @return array
         */
        public static function getFieldsInfo()
        {
        }
        /**
         * @param array $document
         * @return array
         */
        public static function prepareFieldsData(array $document)
        {
        }
        /**
         * @param $value
         * @return array|null
         */
        protected static function resolveSubordinateDocuments($value)
        {
        }
        protected static function unitFieldsInfo(&$info)
        {
        }
        /**
         * @param array $fields
         * @param int $level
         * @return string
         */
        protected function outputXml(array $fields, $level = 0)
        {
        }
    }
    class ConverterDocumentShipment extends \Bitrix\Sale\Exchange\OneC\ConverterDocumentShipment
    {
        protected function getFieldsInfo()
        {
        }
        public function externalizeItems(array $items, array $info)
        {
        }
        protected function getBasePriceDelivery($list = [])
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\OneC {
    class ImportCriterionBase implements \Bitrix\Sale\Exchange\ICriterion
    {
        use \Bitrix\Sale\Exchange\BaseTrait;
        protected $entity = null;
        /**
         * @return null|Sale\Internals\CollectableEntity $entity
         */
        public function getEntity()
        {
        }
        /**
         * @param $entity
         */
        public function setEntity($entity = null)
        {
        }
        /**
         * @param $entityTypeId
         * @param $entity
         * @return static
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        public static function getCurrent($entityTypeId, $entity)
        {
        }
        /**
         * @param array $fields
         * @return bool
         */
        public function equals(array $fields)
        {
        }
        protected function getParentTypeId()
        {
        }
        protected function getShipmentTypeId()
        {
        }
    }
    class ImportCriterionOneCCml2 extends \Bitrix\Sale\Exchange\OneC\ImportCriterionBase
    {
        /**
         * @param array $fields
         * @return bool
         */
        public function equals(array $fields)
        {
        }
    }
    class CriterionShipment extends \Bitrix\Sale\Exchange\OneC\ImportCriterionOneCCml2
    {
        /**
         * @param Sale\Shipment $entity
         * @throws Main\ArgumentException
         */
        public function setEntity($entity = null)
        {
        }
        /**
         * @param array $fields
         * @return bool
         */
        public function equals(array $fields)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\OneC\SubordinateSale {
    class CriterionShipment extends \Bitrix\Sale\Exchange\OneC\CriterionShipment
    {
        protected function entityFactoryCreate($typeId)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\OneC {
    class ShipmentDocument extends \Bitrix\Sale\Exchange\OneC\DocumentBase
    {
        protected static $FIELD_INFOS = null;
        /**
         * @return int
         */
        public function getTypeId()
        {
        }
        /**
         * @return array
         */
        public static function getFieldsInfo()
        {
        }
        protected static function unitFieldsInfo(&$info)
        {
        }
        protected static function koefFieldsInfo(&$info)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\OneC\SubordinateSale {
    class ShipmentDocument extends \Bitrix\Sale\Exchange\OneC\ShipmentDocument
    {
        protected static function unitFieldsInfo(&$info)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\OneC {
    /**
     * Class ConverterDocumentOrder
     * @package Bitrix\Sale\Exchange\OneC
     * @deprecated
     */
    class ConverterDocumentOrder extends \Bitrix\Sale\Exchange\OneC\Converter
    {
        /**
         * @return array
         */
        protected function getFieldsInfo()
        {
        }
        /**
         * @param $documentImport
         * @return array
         * @throws ArgumentException
         */
        public function resolveParams($documentImport)
        {
        }
        /**
         * @param null $order
         * @param array $fields
         * @throws ArgumentException
         */
        public static function sanitizeFields($order = null, array &$fields, \Bitrix\Sale\Exchange\ISettings $settings)
        {
        }
        /**
         * @param array $fields
         * @return array
         */
        public function externalize(array $fields)
        {
        }
        /**
         * @param $items
         * @param $info
         * @param array $params
         * @return array
         */
        public function externalizeItems(array $items, array $info)
        {
        }
        /**
         * @param $stories
         * @param $info
         * @param array $params
         * @return array
         */
        public function externalizeStories(array $stories, array $info)
        {
        }
        /**
         * @param $taxes
         * @param array $info
         * @return array
         */
        public function externalizeTaxes(array $taxes, array $info)
        {
        }
        /**
         * @param array $discounts
         * @param array $info
         * @return array
         */
        public function externalizeDiscounts(array $discount, array $info)
        {
        }
        /**
         * @param $code
         * @return mixed
         */
        private static function getCatalogMeasureByCode($code)
        {
        }
        /**
         * @param $id
         * @return array
         */
        private static function getStoreById($id)
        {
        }
        /**
         * @param $id
         * @return string
         */
        protected static function getStatusNameById($id)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange\OneC\SubordinateSale {
    class ConverterDocumentOrder extends \Bitrix\Sale\Exchange\OneC\ConverterDocumentOrder
    {
        protected function getFieldsInfo()
        {
        }
        public function externalizeItems(array $items, array $info)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange {
    interface ISettingsImport extends \Bitrix\Sale\Exchange\ISettings
    {
        /**
         * @param $entityTypeId
         * @return bool
         */
        public function isImportableFor($entityTypeId);
        /**
         * @param $entityTypeId
         * @return int
         */
        public function paySystemIdFor($entityTypeId);
        /**
         * @param $entityTypeId
         * @return int
         */
        public function shipmentServiceFor($entityTypeId);
        /**
         * @return string
         */
        public function getSiteId();
        /**
         * @return string
         */
        public function getCurrency();
        /**
         * @return string
         */
        public function canCreateOrder($typeId);
        /**
         * @return string
         */
        public function finalStatusIdFor($typeId);
        /**
         * @return string
         */
        public function finalStatusOnDeliveryFor($typeId);
        /**
         * @return string
         */
        public function changeStatusFor($typeId);
    }
}
namespace Bitrix\Sale\Exchange\OneC {
    class ImportSettings extends \Bitrix\Sale\Exchange\OneC\SettingsBase implements \Bitrix\Sale\Exchange\ISettingsImport
    {
        /**
         * @return array|null
         * @throws Main\ArgumentNullException
         */
        protected static function loadCurrentSettings()
        {
        }
        /**
         * @param $entityTypeId
         * @return bool
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         */
        public function isImportableFor($entityTypeId)
        {
        }
        /**
         * @param $entityTypeId
         * @return mixed
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         */
        public function paySystemIdFor($entityTypeId)
        {
        }
        /**
         * @param $entityTypeId
         * @return mixed
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         */
        public function paySystemIdDefaultFor($entityTypeId)
        {
        }
        /**
         * @param $entityTypeId
         * @return mixed
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         */
        public function shipmentServiceFor($entityTypeId)
        {
        }
        /**
         * @param $entityTypeId
         * @return mixed
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         */
        public function shipmentServiceDefaultFor($entityTypeId)
        {
        }
        /**
         * @param $entityTypeId
         * @return string
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         */
        public function finalStatusIdFor($entityTypeId)
        {
        }
        /**
         * @param $entityTypeId
         * @return string
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         */
        public function finalStatusOnDeliveryFor($entityTypeId)
        {
        }
        /**
         * @param $entityTypeId
         * @return string
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         */
        public function changeStatusFor($entityTypeId)
        {
        }
        /**
         * @param $entityTypeId
         * @return string
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         */
        public function canCreateOrder($entityTypeId)
        {
        }
        /**
         * @return string
         */
        public function getSiteId()
        {
        }
        /**
         * @return string
         */
        public function getCurrency()
        {
        }
        /**
         * @param $entityTypeId
         * @return array
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         */
        public function getCollisionResolve($entityTypeId)
        {
        }
        /**
         * @return Exchange\ISettingsImport
         */
        public static function getCurrent()
        {
        }
    }
    /**
     * Class DocumentType
     * @package Bitrix\Sale\Exchange\OneC
     * @deprecated
     */
    class DocumentType
    {
        const UNDEFINED = 0;
        const ORDER = 1;
        const SHIPMENT = 2;
        const PAYMENT_CASH = 3;
        const PAYMENT_CASH_LESS = 4;
        const PAYMENT_CARD_TRANSACTION = 5;
        const PROFILE = 6;
        const USER_PROFILE = 7;
        const FIRST = 1;
        const LAST = 7;
        const ORDER_NAME = 'ORDER';
        const SHIPMENT_NAME = 'SHIPMENT';
        const PAYMENT_CASH_NAME = 'PAYMENT_CASH';
        const PAYMENT_CASH_LESS_NAME = 'PAYMENT_CASH_LESS';
        const PAYMENT_CARD_TRANSACTION_NAME = 'PAYMENT_CARD_TRANSACTION';
        const PROFILE_NAME = 'PROFILE';
        const USER_PROFILE_NAME = 'USER_PROFILE';
        private static $ALL_DESCRIPTIONS = array();
        /**
         * @param $typeID
         * @return bool
         */
        public static function isDefined($typeID)
        {
        }
        /**
         * @param $name
         * @return int
         */
        public static function resolveID($name)
        {
        }
        /**
         * @param $typeID
         * @return string
         */
        public static function resolveName($typeID)
        {
        }
        /**
         * @return mixed
         */
        public static function getAllDescriptions()
        {
        }
        /**
         * @param $typeID
         * @return string
         */
        public static function getDescription($typeID)
        {
        }
        /**
         * @param $types
         * @return array
         */
        public static function getDescriptions($types)
        {
        }
    }
    class CriterionOrder extends \Bitrix\Sale\Exchange\OneC\ImportCriterionOneCCml2 implements \Bitrix\Sale\Exchange\ICriterionOrder
    {
        /**
         * @param Sale\BasketItem $basketItem
         * @param array $fields
         * @return bool
         */
        public function equalsBasketItemTax(\Bitrix\Sale\BasketItem $basketItem, array $fields)
        {
        }
        /**
         * @param Sale\BasketItem $basketItem
         * @param array $fields
         * @return bool
         */
        public function equalsBasketItem(\Bitrix\Sale\BasketItem $basketItem, array $fields)
        {
        }
        /**
         * @param Sale\BasketItem $basketItem
         * @param array $fields
         * @return bool
         */
        public function equalsBasketItemDiscount(\Bitrix\Sale\BasketItem $basketItem, array $fields)
        {
        }
        /**
         * @param Sale\Order|null $entity
         * @throws Main\ArgumentException
         */
        public function setEntity($entity = null)
        {
        }
    }
    class CriterionShipmentInvoice extends \Bitrix\Sale\Exchange\OneC\CriterionShipment
    {
        protected function getParentTypeId()
        {
        }
        protected function getShipmentTypeId()
        {
        }
    }
    class CriterionPayment extends \Bitrix\Sale\Exchange\OneC\ImportCriterionOneCCml2
    {
        /**
         * @param Sale\Payment|null $entity
         * @throws Main\ArgumentException
         */
        public function setEntity($entity = null)
        {
        }
        /**
         * @param array $fields
         * @return bool
         */
        public function equals(array $fields)
        {
        }
    }
    /**
     * Class CriterionProfile
     * @package Bitrix\Sale\Exchange\OneC
     * @deprecated
     */
    class CriterionProfile extends \Bitrix\Sale\Exchange\OneC\ImportCriterionOneCCml2
    {
        /**
         * @param array $fields
         * @return bool
         */
        public function equals(array $fields)
        {
        }
        /**
         * @param Exchange\ProfileImport|null $entity
         * @throws Main\ArgumentException
         */
        public function setEntity($entity = null)
        {
        }
    }
    /**
     * Class ProfileDocument
     * @package Bitrix\Sale\Exchange\OneC
     * @deprecated
     * For backward compatibility
     */
    class ProfileDocument extends \Bitrix\Sale\Exchange\OneC\UserProfileDocument
    {
        /**
         * @return int
         */
        public function getTypeId()
        {
        }
        /**
         * @return array
         */
        protected static function getMessageExport()
        {
        }
        public function outputXml(array $fields, $level = 0)
        {
        }
        public function getNameNodeDocument()
        {
        }
    }
    class ImportCollision implements \Bitrix\Sale\Exchange\ICollision
    {
        protected $entityTypeId = \Bitrix\Sale\Exchange\EntityType::UNDEFINED;
        protected $typeId = null;
        protected $entity = null;
        protected $message = null;
        /**
         * @param $entityTypeId
         * @param $typeId
         * @param Entity $entity
         * @param null $message
         * @throws ArgumentOutOfRangeException
         * @throws NotImplementedException
         */
        public function addItem($entityTypeId, $typeId, \Bitrix\Sale\Internals\Entity $entity, $message = null)
        {
        }
        /**
         * @param $entityTypeId
         * @return self
         * @throws ArgumentOutOfRangeException
         */
        public static function getCurrent($entityTypeId)
        {
        }
        /**
         * @return mixed
         */
        public function getEntity()
        {
        }
        /**
         * @return int
         */
        public function getTypeId()
        {
        }
        /**
         * @return string
         */
        public function getMessage()
        {
        }
        /**
         * @return string
         */
        public function getTypeName()
        {
        }
        /**
         * @param Entity $entity
         */
        public function setEntity(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param EntityImport $item
         * @return Result
         * @throws ArgumentException
         */
        public function setCollision(\Bitrix\Sale\Exchange\Entity\EntityImport $item)
        {
        }
        /**
         * @param EntityImport $item
         * @return array
         */
        public function getCollision(\Bitrix\Sale\Exchange\Entity\EntityImport $item)
        {
        }
        /**
         * Resolve import collisions
         * @param EntityImport $item
         * @return Result
         */
        public function resolve(\Bitrix\Sale\Exchange\ImportBase $item)
        {
        }
    }
    class CollisionOrder extends \Bitrix\Sale\Exchange\OneC\ImportCollision
    {
        /**
         * @param OrderImport $item
         * @return Result
         * @throws ArgumentException
         */
        public function resolve(\Bitrix\Sale\Exchange\ImportBase $item)
        {
        }
        /**
         * @param EntityImport $item
         * @return array
         */
        public function getCollision(\Bitrix\Sale\Exchange\Entity\EntityImport $item)
        {
        }
    }
    class CollisionPayment extends \Bitrix\Sale\Exchange\OneC\ImportCollision
    {
        /**
         * Resolve import collisions
         * @param PaymentImport $item
         * @return Result
         */
        public function resolve(\Bitrix\Sale\Exchange\ImportBase $item)
        {
        }
        /**
         * @param EntityImport $item
         * @return array
         */
        public function getCollision(\Bitrix\Sale\Exchange\Entity\EntityImport $item)
        {
        }
    }
    class CollisionShipment extends \Bitrix\Sale\Exchange\OneC\ImportCollision
    {
        /**
         * Resolve import collisions
         * @param ShipmentImport $item
         * @return Result
         */
        public function resolve(\Bitrix\Sale\Exchange\ImportBase $item)
        {
        }
        /**
         * @param EntityImport $item
         * @return array
         */
        public function getCollision(\Bitrix\Sale\Exchange\Entity\EntityImport $item)
        {
        }
    }
    class CollisionProfile extends \Bitrix\Sale\Exchange\OneC\ImportCollision
    {
        /**
         * Resolve import collisions
         * @param ProfileImport $item
         * @return Result
         * @deprecated
         */
        public function resolve(\Bitrix\Sale\Exchange\ImportBase $item)
        {
        }
    }
    class ConverterDocumentInvoice extends \Bitrix\Sale\Exchange\OneC\ConverterDocumentOrder
    {
        public static function normalizeExternalCode($xml)
        {
        }
        /**
         * @param $id
         * @return string
         */
        protected static function getStatusNameById($id)
        {
        }
    }
    class ConverterDocumentShipmentInvoice extends \Bitrix\Sale\Exchange\OneC\ConverterDocumentShipment
    {
        public function externalizeItems(array $taxes, array $info)
        {
        }
    }
    class DocumentImportFactory
    {
        /** Create new document import by specified document type ID.
         * @static
         * @param int $documentTypeID Document type ID.
         * @return DocumentBase
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         */
        public static function create($documentTypeID)
        {
        }
    }
    /**
     * Class ConverterDocumentProfile
     * @package Bitrix\Sale\Exchange\OneC
     * @deprecated
     */
    class ConverterDocumentProfile extends \Bitrix\Sale\Exchange\OneC\Converter
    {
        /**
         * @return array
         */
        protected function getFieldsInfo()
        {
        }
        /**
         * @param $documentImport
         * @return array
         * @throws ArgumentException
         */
        public function resolveParams($documentImport)
        {
        }
        /**
         * @param null $entity
         * @param array $fields
         */
        public static function sanitizeFields($entity = null, array &$fields, \Bitrix\Sale\Exchange\ISettings $settings)
        {
        }
        public function externalize(array $fields)
        {
        }
        /**
         * @param array $fields
         * @return bool
         */
        protected function isFiz(array $fields)
        {
        }
        /**
         * @param $fields
         * @param null $fieldsInfo
         * @return array
         */
        public function externalizeArrayFields($fields, $fieldsInfo, $key = null)
        {
        }
        /**
         * @param array $original
         * @param array $replace
         */
        private function replaceNameFields(array &$original, array $replace)
        {
        }
        /**
         * @param array $fields
         * @return string
         */
        private function getXmlId(array $fields)
        {
        }
    }
}
namespace Bitrix\Sale\Exchange {
    final class ManagerImport extends \Bitrix\Sale\Exchange\ManagerBase
    {
        /** @var ICollision $collision */
        protected $collision = null;
        /** @var ICriterion $criterion */
        protected $criterion = null;
        /**
         * @return string
         */
        public static function getDirectionType()
        {
        }
        /**
         * @param ImportBase $entity
         */
        public static function configure(\Bitrix\Sale\Exchange\ImportBase $entity)
        {
        }
        /**
         * Add instance of this manager to collection
         * @param $typeId
         * @param ISettingsImport $settings
         * @param ICollision $collision
         * @param ICriterion $criterion
         * @return mixed
         * @throws ArgumentOutOfRangeException
         * @internal
         */
        public static function registerInstance($typeId, \Bitrix\Sale\Exchange\ISettingsImport $settings, \Bitrix\Sale\Exchange\ICollision $collision = null, \Bitrix\Sale\Exchange\ICriterion $criterion = null)
        {
        }
        /**
         * @param $typeId
         * @return ISettingsImport
         * @throws ArgumentOutOfRangeException
         */
        public static function getSettingsByType($typeId)
        {
        }
    }
    final class ImportOneCSubordinateSale extends \Bitrix\Sale\Exchange\ImportOneCPackage
    {
        public static function configuration()
        {
        }
        /**
         * @param DocumentBase[] $documents
         * @return \Bitrix\Sale\Result
         */
        protected function convert(array $documents)
        {
        }
        /**
         * @param DocumentBase[] $documents
         * @return array
         */
        protected function deletePaymentDocumentNotPaid(array $documents)
        {
        }
        /**
         * @param DocumentBase $document
         * @return bool
         */
        protected function documentIsPaid(\Bitrix\Sale\Exchange\OneC\DocumentBase $document)
        {
        }
        /**
         * @param DocumentBase $document
         * @return bool
         */
        protected function isPaymentDocument(\Bitrix\Sale\Exchange\OneC\DocumentBase $document)
        {
        }
        protected function documentPaymentReplaceId(\Bitrix\Sale\Order $order, $documents)
        {
        }
        /**
         * @param Order $order
         * @param DocumentBase[] $documents
         */
        protected function deletePaymentToReplace(\Bitrix\Sale\Order $order, $documents)
        {
        }
        /**
         * @param DocumentBase[] $documents
         * @return bool
         */
        protected function hasPaymentDocuments(array $documents)
        {
        }
        /**
         * @param DocumentBase[] $documents
         * @return array
         */
        protected function getPaymentDocuments($documents)
        {
        }
        /**
         * @param DocumentBase[] $documents
         * @return float|int
         */
        protected function getPaymentDocumentsPaidSum($documents)
        {
        }
        protected function orderPartiallyIsPaid(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param array $fields
         * @return int
         */
        protected function resolveSubordinateDocumentTypeId(array $fields)
        {
        }
        /**
         * @param $xmlId
         * @param array $items
         * @param array|null $params
         * @return mixed|null
         */
        protected function getItemByParam($key, array $items, array $params = null)
        {
        }
        /**
         * @param $typeId
         * @return IConverter
         */
        protected function converterFactoryCreate($typeId)
        {
        }
        /**
         * @param $typeId
         * @return DocumentBase
         */
        protected function documentFactoryCreate($typeId)
        {
        }
        /**
         * @param $typeId
         * @return ImportBase
         */
        protected function entityFactoryCreate($typeId)
        {
        }
    }
    final class ExportOneCSubordinateSale extends \Bitrix\Sale\Exchange\ExportOneCPackage
    {
        /**
         * @param $typeId
         * @return IConverter
         */
        protected function converterFactoryCreate($typeId)
        {
        }
        /**
         * @param $typeId
         * @return DocumentBase
         */
        protected function documentFactoryCreate($typeId)
        {
        }
        /**
         * @param DocumentBase[] $documents
         */
        protected function convertDocumentFields(array $documents)
        {
        }
        /**
         * @return string
         */
        protected function getShemVersion()
        {
        }
        /**
         * @param array $list
         * @return array
         */
        protected function modifyDocumentsCollection(array $list)
        {
        }
        /**
         * @param $typeId
         * @return ImportBase
         */
        protected function entityFactoryCreate($typeId)
        {
        }
    }
    final class ImportOneCContragent extends \Bitrix\Sale\Exchange\ImportOneCContragentBase
    {
        static function getUserProfileEntityTypeId()
        {
        }
    }
}
namespace Bitrix\Sale {
    /**
     * Class BasketItemBase
     * @package Bitrix\Sale
     */
    abstract class BasketItemBase extends \Bitrix\Sale\Internals\CollectableEntity
    {
        /** @var BasketPropertiesCollectionBase $propertyCollection */
        protected $propertyCollection;
        /** @var Internals\Fields */
        protected $calculatedFields;
        /** @var  ProviderBase */
        protected $provider;
        /** @var string */
        protected $internalId = null;
        protected static $idBasket = 0;
        /**
         * @param $basketCode
         * @return BasketItemBase|null
         * @throws Main\ArgumentNullException
         */
        public function findItemByBasketCode($basketCode)
        {
        }
        /**
         * @return string|void
         */
        public static function getRegistryEntity()
        {
        }
        /**
         * @param $id
         * @return BasketItemBase|null
         * @throws Main\ArgumentNullException
         */
        public function findItemById($id)
        {
        }
        /**
         * @return int|null|string
         * @throws Main\ArgumentNullException
         */
        public function getBasketCode()
        {
        }
        /**
         * @param BasketItemCollection $basketItemCollection
         * @param $moduleId
         * @param $productId
         * @param null $basketCode
         * @return BasketItemBase
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         */
        public static function create(\Bitrix\Sale\BasketItemCollection $basketItemCollection, $moduleId, $productId, $basketCode = null)
        {
        }
        /**
         * @return string
         */
        protected static function generateXmlId()
        {
        }
        /**
         * @param array $fields
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        private static function createBasketItemObject(array $fields = [])
        {
        }
        /**
         * @return array
         */
        public static function getSettableFields()
        {
        }
        /**
         * @return array|null
         */
        public static function getSettableFieldsMap()
        {
        }
        /**
         * @return array
         */
        public static function getCalculatedFields()
        {
        }
        /**
         * @return array
         */
        public static function getAvailableFields()
        {
        }
        /**
         * @return array
         */
        public static function getCustomizableFields() : array
        {
        }
        /**
         * @return array
         */
        protected static function getMeaningfulFields()
        {
        }
        /**
         * BasketItemBase constructor.
         * @param array $fields
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function __construct(array $fields = [])
        {
        }
        /**
         * @return Result
         */
        protected function checkBeforeDelete()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        public function delete()
        {
        }
        /**
         * @param string $name						Field name.
         * @param string|int|float $value			Field value.
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws \Exception
         */
        public function setField($name, $value)
        {
        }
        /**
         * @internal
         *
         * @param $name
         * @param $value
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function setFieldNoDemand($name, $value)
        {
        }
        /**
         * @param $name
         * @return float|string|null
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function getField($name)
        {
        }
        /**
         * @param array $values
         * @return array
         */
        protected function onBeforeSetFields(array $values)
        {
        }
        /**
         * @param array $fields
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws \Exception
         */
        public function setFields(array $fields)
        {
        }
        /**
         * @return ProviderBase|null
         * @throws Main\ArgumentNullException
         */
        public function getProviderName()
        {
        }
        /**
         * @return null|string
         * @throws Main\ArgumentNullException
         */
        public function getCallbackFunction()
        {
        }
        /**
         * @return bool|mixed|null
         * @throws Main\ArgumentNullException
         * @throws Main\LoaderException
         */
        public function getProviderEntity()
        {
        }
        /**
         * @return ProviderBase|null|string
         * @throws Main\ArgumentNullException
         * @throws Main\LoaderException
         */
        public function getProvider()
        {
        }
        /**
         * @param string $name
         * @param mixed $oldValue
         * @param mixed $value
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\LoaderException
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         * @throws \Exception
         */
        protected function onFieldModify($name, $oldValue, $value)
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         */
        public function isVatInPrice()
        {
        }
        /**
         * @return float|int
         * @throws Main\ArgumentNullException
         */
        public function getVat()
        {
        }
        /**
         * @return float|int
         * @throws Main\ArgumentNullException
         */
        public function getInitialPrice()
        {
        }
        /**
         * @return float|int
         * @throws Main\ArgumentNullException
         */
        public function getBasePriceWithVat()
        {
        }
        /**
         * @return float|int
         * @throws Main\ArgumentNullException
         */
        public function getPriceWithVat()
        {
        }
        /**
         * @return float|int
         * @throws Main\ArgumentNullException
         */
        public function getFinalPrice()
        {
        }
        /**
         * @param string $field			Field name.
         * @return bool
         */
        protected function isCalculatedField($field)
        {
        }
        /**
         * @return float|null|string
         * @throws Main\ArgumentNullException
         */
        public function getProductId()
        {
        }
        /**
         * @return float
         * @throws Main\ArgumentNullException
         */
        public function getPrice()
        {
        }
        /**
         * @return float
         * @throws Main\ArgumentNullException
         */
        public function getBasePrice()
        {
        }
        /**
         * @return float
         * @throws Main\ArgumentNullException
         */
        public function getDiscountPrice()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentOutOfRangeException
         */
        public function isCustomPrice()
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function getCurrency()
        {
        }
        /**
         * @return float
         * @throws Main\ArgumentNullException
         */
        public function getQuantity()
        {
        }
        /**
         * @return float|null|string
         * @throws Main\ArgumentNullException
         */
        public function getWeight()
        {
        }
        /**
         * @return float|null|string
         * @throws Main\ArgumentNullException
         */
        public function getVatRate()
        {
        }
        /**
         * @return float|null|string
         * @throws Main\ArgumentNullException
         */
        public function getFUserId()
        {
        }
        /**
         * @param $id
         * @throws Main\ArgumentOutOfRangeException
         * @throws \Exception
         */
        public function setOrderId($id)
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         */
        public function isBarcodeMulti()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function canBuy() : bool
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function isDelay() : bool
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function isSupportedMarkingCode() : bool
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function getMarkingCodeGroup() : string
        {
        }
        /**
         * @return BasketPropertiesCollectionBase|null
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectNotFoundException
         */
        public function getPropertyCollection()
        {
        }
        /**
         * @return bool
         */
        public function isExistPropertyCollection()
        {
        }
        /**
         * @internal
         * @param BasketPropertiesCollectionBase $propertyCollection
         */
        public function setPropertyCollection(\Bitrix\Sale\BasketPropertiesCollectionBase $propertyCollection)
        {
        }
        /**
         * @param $value
         * @param bool $custom
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws \Exception
         */
        public function setPrice($value, $custom = false)
        {
        }
        /**
         * @internal
         * @return array
         */
        public static function getRoundFields()
        {
        }
        /**
         * @param array $values
         * @throws Main\ArgumentOutOfRangeException
         */
        public function initFields(array $values)
        {
        }
        /**
         * @internal
         *
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws \Exception
         */
        public function save()
        {
        }
        /**
         * @return BasketBase
         */
        public function getBasket()
        {
        }
        /**
         * @return void
         */
        private function checkCallingContext()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        private function saveProperties()
        {
        }
        /**
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectNotFoundException
         * @return void
         */
        protected function onBeforeSave()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        protected function add()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectException
         */
        protected function update()
        {
        }
        /**
         * @return void
         */
        protected function callEventOnBasketItemEntitySaved()
        {
        }
        /**
         * @param $isNewEntity
         * @return Result
         */
        protected function callEventSaleBasketItemBeforeSaved($isNewEntity)
        {
        }
        /**
         * @param $isNewEntity
         * @return Result
         */
        protected function callEventSaleBasketItemSaved($isNewEntity)
        {
        }
        /**
         * @param array $fields
         * @return Main\Entity\AddResult
         */
        protected abstract function addInternal(array $fields);
        /**
         * @param $primary
         * @param array $fields
         * @return Main\Entity\UpdateResult
         */
        protected abstract function updateInternal($primary, array $fields);
        /**
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        public function isChanged()
        {
        }
        /**
         * @param BasketItemCollection $basketItemCollection
         * @param $data
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        public static function load(\Bitrix\Sale\BasketItemCollection $basketItemCollection, $data)
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectNotFoundException
         */
        public function verify()
        {
        }
        /**
         * @return float
         */
        public abstract function getReservedQuantity();
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function isCustom()
        {
        }
        /**
         * @deprecated
         *
         * @return float
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function getDefaultPrice()
        {
        }
        /**
         * @return null|string
         * @internal
         *
         */
        public static function getEntityEventName()
        {
        }
    }
    /**
     * Class BasketItem
     * @package Bitrix\Sale
     */
    class BasketItem extends \Bitrix\Sale\BasketItemBase
    {
        const TYPE_SET = 1;
        /** @var BundleCollection */
        private $bundleCollection = null;
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @return Result
         * @throws ArgumentException
         * @throws ArgumentNullException
         * @throws \Exception
         */
        public function save()
        {
        }
        /**
         * @return Result
         * @throws ArgumentException
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws ObjectNotFoundException
         */
        protected function add()
        {
        }
        /**
         * @return Result
         * @throws ArgumentException
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws ObjectNotFoundException
         */
        protected function update()
        {
        }
        /**
         * @return array
         * @throws ArgumentException
         * @throws ArgumentNullException
         * @throws Main\NotImplementedException
         */
        private function getLoggedFields()
        {
        }
        /**
         * @return Result
         * @throws ArgumentNullException
         * @throws ObjectNotFoundException
         */
        protected function checkBeforeDelete()
        {
        }
        /**
         * @return Result
         * @throws ArgumentOutOfRangeException
         * @throws ObjectNotFoundException
         * @throws \Exception
         */
        public function delete()
        {
        }
        /**
         * @param array $fields
         * @return array
         * @throws Main\NotImplementedException
         */
        private function clearBundleItemFields(array $fields)
        {
        }
        /**
         * @return BasketItem|null
         */
        public function getParentBasketItem()
        {
        }
        /**
         * @return int|null|string
         * @throws ArgumentNullException
         */
        public function getParentBasketItemId()
        {
        }
        /**
         * @return bool
         * @throws ArgumentNullException
         */
        public function isBundleParent()
        {
        }
        /**
         * @return bool
         */
        public function isBundleChild()
        {
        }
        /**
         * @return array|bool
         * @throws ArgumentException
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws ObjectNotFoundException
         * @throws \Exception
         */
        public function getBundleBaseQuantity()
        {
        }
        /**
         * @return BundleCollection|null
         * @throws ArgumentException
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws ObjectNotFoundException
         * @throws \Exception
         */
        public function getBundleCollection()
        {
        }
        /**
         * @return BundleCollection
         * @throws ArgumentOutOfRangeException
         * @throws \Exception
         */
        public function createBundleCollection()
        {
        }
        /**
         * @return BundleCollection
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws \Exception
         */
        protected function loadBundleCollectionFromDb()
        {
        }
        /**
         * @return BundleCollection|null
         * @throws ArgumentException
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws ObjectNotFoundException
         * @throws \Exception
         */
        protected function loadBundleCollectionFromProvider()
        {
        }
        /**
         * @param array $items
         * @return BundleCollection
         * @throws ArgumentException
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws \Exception
         */
        private function setItemsAfterGetBundle(array $items)
        {
        }
        /**
         * @param $basketCode
         * @return BasketItemBase|null
         * @throws ArgumentException
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws ObjectNotFoundException
         * @throws \Exception
         */
        public function findItemByBasketCode($basketCode)
        {
        }
        /**
         * @param $id
         * @return BasketItemBase|null
         * @throws ArgumentException
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws ObjectNotFoundException
         * @throws \Exception
         */
        public function findItemById($id)
        {
        }
        /**
         * @param string $name
         * @param null $oldValue
         * @param null $value
         * @throws ArgumentNullException
         * @throws ObjectNotFoundException
         */
        protected function addChangesToHistory($name, $oldValue = null, $value = null)
        {
        }
        /**
         * @param $quantity
         * @return float|string
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         */
        public static function formatQuantity($quantity)
        {
        }
        /**
         * @return array
         */
        protected static function getFieldsMap()
        {
        }
        /**
         * @internal
         *
         * @param \SplObjectStorage $cloneEntity
         * @return BasketItem|Internals\CollectableEntity|object
         * @throws ArgumentException
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws ObjectNotFoundException
         * @throws \Exception
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * @param string $name
         * @param mixed $oldValue
         * @param mixed $value
         * @return Result
         * @throws ArgumentException
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws Main\LoaderException
         * @throws Main\SystemException
         * @throws ObjectNotFoundException
         * @throws \Exception
         */
        protected function onFieldModify($name, $oldValue, $value)
        {
        }
        /**
         * @param BasketItemCollection $basket
         * @param $data
         * @return BasketItem|mixed
         * @throws ArgumentException
         * @throws ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws \Exception
         */
        public static function load(\Bitrix\Sale\BasketItemCollection $basket, $data)
        {
        }
        /**
         * @param array $fields
         * @return Main\Entity\AddResult
         * @throws \Exception
         */
        protected function addInternal(array $fields)
        {
        }
        /**
         * @param $primary
         * @param array $fields
         * @return Main\Entity\UpdateResult
         * @throws \Exception
         */
        protected function updateInternal($primary, array $fields)
        {
        }
        /**
         * @param $primary
         * @return Main\Entity\DeleteResult
         * @throws \Exception
         */
        protected function deleteInternal($primary)
        {
        }
        /**
         * @return float|int
         * @throws ArgumentNullException
         */
        public function getReservedQuantity()
        {
        }
    }
    class SenderEventHandler
    {
        /**
         * Event handler.
         *
         * @param array $data Event data.
         * @return array
         */
        public static function onConnectorListBuyer($data)
        {
        }
    }
    class SenderConnectorBuyer extends \Bitrix\Sender\Connector
    {
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get data.
         *
         * @return \Bitrix\Main\DB\Result
         */
        public function getData()
        {
        }
        /**
         * Get form html.
         *
         * @return string
         */
        public function getForm()
        {
        }
    }
    class BasketComponentHelper
    {
        static $cacheRatio = array();
        static $cacheRatioData = array();
        /**
         * @param int $fuserId
         * @param string|null $siteId
         *
         * @return int|float
         */
        public static function getFUserBasketQuantity($fuserId, $siteId = null)
        {
        }
        /**
         * @param int $fuserId
         * @param string|null $siteId
         *
         * @return int|float
         */
        public static function getFUserBasketPrice($fuserId, $siteId = null)
        {
        }
        /**
         * @param int         $fUserId
         * @param int|float   $quantity
         * @param string|null $siteId
         * @return void
         */
        protected static function setFUserBasketQuantity($fUserId, $quantity, $siteId = null)
        {
        }
        /**
         * @param      $fUserId
         * @param null $siteId
         */
        public static function clearFUserBasketQuantity($fUserId, $siteId = null)
        {
        }
        /**
         * @param int         $fUserId
         * @param int|float   $price
         * @param string|null $siteId
         * @return void
         */
        protected static function setFUserBasketPrice($fUserId, $price, $siteId = null)
        {
        }
        /**
         * @param      $fUserId
         * @param null $siteId
         */
        public static function clearFUserBasketPrice($fUserId, $siteId = null)
        {
        }
        /**
         * @param int $fuserId
         * @param string|null $siteId
         * @param array|null $basketList
         *
         * @return void
         */
        public static function updateFUserBasketPrice($fuserId, $siteId = null, $basketList = null)
        {
        }
        /**
         * @param int $fuserId
         * @param string|null $siteId
         * @param array|null $basketList
         *
         * @return void
         */
        public static function updateFUserBasketQuantity($fuserId, $siteId = null, $basketList = null)
        {
        }
        /**
         * @param int $fuserId
         * @param string|null $siteId
         *
         * @return void
         */
        public static function updateFUserBasket($fuserId, $siteId = null)
        {
        }
        /**
         * @param int $fuserId
         * @param string|null $siteId
         *
         * @return array
         */
        protected static function getFUserBasketList($fuserId, $siteId = null)
        {
        }
        /**
         * @param int $fuserId
         * @param array $basketList
         *
         * @return array
         */
        protected static function calculatePrice($fuserId, array $basketList)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         */
        public static function onSaleBasketItemEntitySaved(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param \Bitrix\Main\Event $event
         *
         * @return \Bitrix\Main\EventResult
         */
        public static function onSaleBasketItemDeleted(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Basket          $basket
         * @param BasketItem|null $item
         *
         * @return Result
         * @throws Main\LoaderException
         */
        public static function checkQuantityRatio(\Bitrix\Sale\Basket $basket, \Bitrix\Sale\BasketItem $item = null)
        {
        }
        /**
         * @param Basket          $basket
         * @param BasketItem|null $item
         *
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\LoaderException
         * @throws \Exception
         */
        public static function correctQuantityRatio(\Bitrix\Sale\Basket $basket, \Bitrix\Sale\BasketItem $item = null)
        {
        }
        /**
         * @param Basket $basket
         * @param BasketItem|null $item
         *
         * @return Result
         * @throws Main\LoaderException
         */
        public static function getRatio(\Bitrix\Sale\Basket $basket, \Bitrix\Sale\BasketItem $item = null)
        {
        }
        /**
         * @param Basket $basket
         *
         * @return int|float
         */
        protected static function calculateBasketCost(\Bitrix\Sale\Basket $basket)
        {
        }
        /**
         * @internal
         * @return array
         */
        public static function getRatioCache()
        {
        }
        /**
         * @internal
         * @return array
         */
        public static function getRatioDataCache()
        {
        }
    }
    class OrderUserProperties
    {
        private $profiles = array();
        private static $instance;
        function __construct()
        {
        }
        /**
         * @return OrderUserProperties
         */
        public static function getInstance()
        {
        }
        /**
         * @param array $parameters
         * @return \Bitrix\Main\DB\Result
         */
        public static function getList(array $parameters)
        {
        }
        /**
         * @param $parameters
         */
        public static function loadFromDB($parameters)
        {
        }
        /**
         * @param $personTypeId
         * @param $userId
         * @return bool
         */
        public static function getFirstId($personTypeId, $userId)
        {
        }
        /**
         * @param $profileId
         * @param $personTypeId
         * @param $userId
         * @return bool
         */
        public static function checkCorrect($profileId, $personTypeId, $userId)
        {
        }
        /**
         * Collect profile information
         *
         * @param int $userId
         * @param int|null $personTypeId
         * @param int|null $profileId
         *
         * @return Result
         */
        public static function loadProfiles($userId, $personTypeId = null, $profileId = null)
        {
        }
        /**
         * Get customer profile values
         *
         * @param $profileId
         *
         * @return array
         */
        public static function getProfileValues($profileId)
        {
        }
    }
    abstract class DiscountBase
    {
        const EVENT_EXTEND_ORDER_DATA = 'onExtendOrderData';
        const USE_MODE_FULL = 0x1;
        const USE_MODE_APPLY = 0x2;
        const USE_MODE_MIXED = 0x4;
        const USE_MODE_COUPONS = 0x8;
        const EXECUTE_FIELD_PREFIX = 'EXECUTE_';
        const ERROR_ID = 'BX_SALE_DISCOUNT';
        const APPLY_MODE_ADD = 0x1;
        const APPLY_MODE_DISABLE = 0x2;
        const APPLY_MODE_LAST = 0x4;
        const APPLY_MODE_FULL_DISABLE = 0x8;
        const APPLY_MODE_FULL_LAST = 0x10;
        const ROUND_MODE_BASKET_DISCOUNT = 0x1;
        const ROUND_MODE_SALE_DISCOUNT = 0x2;
        const ROUND_MODE_FINAL_PRICE = 0x4;
        const ENTITY_BASKET_ITEM = 'BASKET_ITEM';
        const ENTITY_DELIVERY = 'DELIVERY';
        const ENTITY_ORDER = 'ORDER';
        /* Instances */
        /** @var array of DiscountBase and children */
        private static $instances = array();
        /* Instances end */
        /* System variables */
        /** @var bool  */
        protected $isClone = false;
        /** @var bool */
        protected $orderRefresh = false;
        /** @var bool */
        protected $newOrder = null;
        /** @var int */
        protected $useMode = null;
        /** @var  Discount\Context\BaseContext */
        protected $context;
        /** @var OrderBase|null */
        protected $order = null;
        /* System variables end */
        /* Calculate variables */
        /** @var array */
        protected $executeModuleFilter = array('all', 'sale', 'catalog');
        /** @var array */
        protected $loadedModules = array();
        /* Calculate variables end */
        /* Sale discount hit cache */
        /** @var array */
        protected $discountIds = null;
        /** @var array */
        protected $saleDiscountCache = array();
        /** @var string */
        protected $saleDiscountCacheKey = '';
        /* Sale discount hit cache end */
        /* Sale objects */
        /** @var Basket|null */
        protected $basket = null;
        /* Calculate data */
        /** @var array|null */
        protected $orderData = null;
        /* Calculate options */
        /** @var bool */
        protected $valid = true;
        /** @var array */
        protected $saleOptions = array();
        /* Product discounts for basket items */
        /** @var array */
        protected $basketDiscountList = array();
        /* Various basket items data */
        /** @var array */
        protected $basketItemsData = array();
        /* Order discounts and coupons, converted to unified format */
        /** @var array */
        protected $discountsCache = array();
        /** @var array */
        protected $couponsCache = array();
        /* Calculation results and applyed flags */
        /** @var array */
        protected $discountResult = array();
        /** @var int */
        protected $discountResultCounter = 0;
        /** @var array */
        protected $applyResult = array();
        /* Contains additional data used to calculate discounts for an existing order */
        protected $discountStoredActionData = array();
        /** @var array */
        protected $entityList = array();
        /** @var array */
        protected $entityResultCache = array();
        /** @var array */
        protected $currentStep = array();
        /** @var array */
        protected $forwardBasketTable = array();
        /** @var array */
        protected $reverseBasketTable = array();
        /* Round mode and data */
        protected $roundApplyMode = self::ROUND_MODE_FINAL_PRICE;
        protected $roundApplyConfig = array();
        /**
         * Contains list of discounts which pass condition (@see method checkDiscountConditions()).
         *
         * @var array
         */
        protected $fullDiscountList = array();
        protected function __construct()
        {
        }
        public function __destruct()
        {
        }
        /* system methods */
        /**
         * Clone entity.
         *
         * @internal
         * @param \SplObjectStorage $cloneEntity
         *
         * @return DiscountBase
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * Returns true if discount entity is cloned.
         *
         * @return bool
         */
        public function isClone()
        {
        }
        /**
         * Set full refresh status from edit order form.
         *
         * @param bool $state		Refresh or not order.
         * @return void
         */
        public function setOrderRefresh($state)
        {
        }
        /**
         * Returns full refresh status value.
         *
         * @return bool
         */
        public function isOrderRefresh()
        {
        }
        /**
         * Returns new order flag value.
         *
         * @return bool
         */
        public function isOrderNew()
        {
        }
        /**
         * Set new order flag.
         *
         * @return void
         */
        protected function setNewOrder()
        {
        }
        /**
         * Returns true if the data for calculations is loaded.
         *
         * @return bool
         */
        protected function isLoaded()
        {
        }
        /* system methods end */
        /**
         * Builds discounts from order.
         *
         * @param OrderBase $order Order object.
         * @return DiscountBase
         */
        public static function buildFromOrder(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * Builds discounts from basket. Basket doesn't have to have a order.
         * Context describes user and user groups which use in
         *
         * @param BasketBase $basket Basket.
         * @param Context\BaseContext $context Context.
         *
         * @return DiscountBase|null
         * @throws Main\InvalidOperationException
         */
        public static function buildFromBasket(\Bitrix\Sale\BasketBase $basket, \Bitrix\Sale\Discount\Context\BaseContext $context)
        {
        }
        /**
         * Get discount by order basket.
         *
         * @param BasketBase $basket		Basket.
         * @return DiscountBase
         */
        public static function setOrder(\Bitrix\Sale\BasketBase $basket)
        {
        }
        /* calculate methods */
        /**
         * Set calculate mode.
         *
         * @param int $useMode			Calculate mode.
         * @return void
         */
        public function setUseMode($useMode)
        {
        }
        /**
         * Return calculate mode.
         *
         * @return int
         */
        public function getUseMode()
        {
        }
        /**
         * Sets list of execute module which will be used to filter discount.
         *
         * @internal
         * @param array $moduleList		Allowed execute module list.
         * @return void
         */
        public function setExecuteModuleFilter(array $moduleList)
        {
        }
        /**
         * Return apply mode list.
         *
         * @param bool $extendedMode			Get mode list with names.
         * @return array
         */
        public static function getApplyModeList($extendedMode = false)
        {
        }
        /**
         * Returns current sale discount apply mode.
         *
         * @return int
         * @throws Main\ArgumentNullException
         */
        public static function getApplyMode()
        {
        }
        /**
         * Calculate discounts.
         *
         * @return Result
         */
        public function calculate()
        {
        }
        /* calculate methods end */
        /* apply result methods */
        /**
         * Change applied discount list.
         *
         * @param array $applyResult		Change apply result.
         * @return void
         */
        public function setApplyResult($applyResult)
        {
        }
        /**
         * Return discount list description.
         *
         * @param bool $extMode			Extended mode.
         * @return array
         */
        public function getApplyResult($extMode = false)
        {
        }
        /* apply result methods finish */
        /**
         * Verifies discounts before order save.
         *
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        public function verify()
        {
        }
        /**
         * Save discount result.
         *
         * @return Result
         */
        public function save()
        {
        }
        public function isValidState()
        {
        }
        protected function setValidState($value)
        {
        }
        /**
         * Initial instance data.
         *
         * @return void
         */
        protected function initInstanceData()
        {
        }
        /**
         * Initial instance data after set order.
         *
         * @return void
         */
        protected function initInstanceFromOrder()
        {
        }
        /**
         * Return is allow discount calculate.
         *
         * @return bool
         */
        protected function stopCalculate()
        {
        }
        /**
         * Return true, if only sale discounts is allowed. For new order or refreshed order use sale option, otherwise use order option.
         *
         * @return bool
         */
        protected function useOnlySaleDiscounts()
        {
        }
        /**
         * Return current basket.
         *
         * @return BasketBase
         */
        protected function getBasket()
        {
        }
        /**
         * Return exists basket.
         *
         * @return bool
         */
        protected function isBasketExist()
        {
        }
        /**
         * Returns the existence of a non-empty basket.
         *
         * @return bool
         */
        protected function isBasketNotEmpty()
        {
        }
        /**
         * Initialization of the discount calculation mode.
         *
         * @return void
         */
        protected function initUseMode()
        {
        }
        /**
         * Load order information.
         *
         * @return Result
         */
        protected function loadOrderData()
        {
        }
        /**
         * Fill empty order data.
         *
         * @return void
         */
        protected function fillEmptyOrderData()
        {
        }
        /**
         * Get basket data from owner entity.
         *
         * @return Result
         * @throws Main\ObjectNotFoundException
         */
        protected function loadBasket()
        {
        }
        /**
         * Returns array with basket item field values.
         *
         * @param BasketItemBase $basketItem	Basket collection item.
         * @return array
         */
        protected function getBasketItemFields(\Bitrix\Sale\BasketItemBase $basketItem)
        {
        }
        /**
         * Load order config for exists order.
         *
         * @return void
         */
        protected function loadOrderConfig()
        {
        }
        /**
         * Returns the current module settings required for calculating discounts.
         *
         * @return array
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        protected function getModuleSettings()
        {
        }
        /**
         * Load default order config for order.
         *
         * @return void
         */
        protected function loadDefaultOrderConfig()
        {
        }
        /**
         * Validate loaded order config.
         *
         * @param mixed $config		Order configuration.
         * @return bool
         */
        protected function validateLoadedOrderConfig($config)
        {
        }
        /**
         * Set loaded order settings.
         *
         * @param array $data		Order settings from database.
         * @return void
         */
        protected function applyLoadedOrderConfig(array $data)
        {
        }
        /**
         * Load discounts for exists order.
         *
         * @return Result
         */
        protected function loadOrderDiscounts()
        {
        }
        /**
         * Load basket stored data for order.
         *
         * @return Result
         */
        protected function loadBasketStoredData()
        {
        }
        /**
         * Return basket item data value from provider.
         * @internal
         *
         * @param int|string $code				Basket code.
         * @param string $field					Field name.
         * @return null|mixed
         */
        protected function getBasketItemValue($code, $field)
        {
        }
        /**
         * Return basket item data from provider.
         * @internal
         *
         * @param int|string $code				Basket code.
         * @param array $fields					Field names.
         * @return array|null
         */
        protected function getBasketItemValueList($code, array $fields)
        {
        }
        /**
         * Calculate discount by new order.
         *
         * @return Result
         */
        protected function calculateFull()
        {
        }
        /**
         * Calculate discount by exist order.
         *
         * @return Result
         */
        protected function calculateApply()
        {
        }
        /**
         * Calculate discount by exist order with new items.
         *
         * @return Result
         */
        protected function calculateMixed()
        {
        }
        /**
         * Save discount result for new order.
         *
         * @return Result
         */
        protected function saveFull()
        {
        }
        /**
         * Returns order configuration for save to database.
         *
         * @return array
         */
        protected function getOrderConfig()
        {
        }
        /**
         * Save basket items stored data.
         *
         * @param array $basketCodeList		Code list.
         * @return Result
         */
        protected function saveBasketStoredData(array $basketCodeList)
        {
        }
        /**
         * Save discount result for exist order.
         *
         * @return Result
         */
        protected function saveApply()
        {
        }
        /**
         * Save discount result for mixed order.
         *
         * @return Result
         */
        protected function saveMixed()
        {
        }
        /**
         * Save coupons for order.
         *
         * @return Result
         */
        protected function saveCoupons()
        {
        }
        /**
         * Save result last apply block discount.
         *
         * @return Result
         * @throws \Exception
         */
        protected function saveLastApplyBlock()
        {
        }
        /**
         * Fill common system fields for new discount results.
         *
         * @param array $rows	Prepared new discount results.
         * @return void
         */
        protected function normalizeNewResultRows(array &$rows)
        {
        }
        /**
         * Check duscount conditions.
         *
         * @return bool
         */
        protected function checkDiscountConditions()
        {
        }
        /**
         * Apply discount rules.
         *
         * @return Result
         */
        protected function applySaleDiscount()
        {
        }
        /**
         * Check product discount list for basket items.
         * @internal
         *
         * @return void
         */
        protected function checkBasketDiscounts()
        {
        }
        /**
         * Apply basket discount in new order.
         *
         * @return Result
         */
        protected function calculateFullBasketDiscount()
        {
        }
        /**
         * Apply basket discount in exist order.
         *
         * @return Result
         */
        protected function calculateApplyBasketDiscount()
        {
        }
        /**
         * Calculate discount block for existing order.
         *
         * @return Result
         */
        protected function calculateApplyDiscountBlock()
        {
        }
        /**
         * Applyed additional coupons.
         *
         * @return Result
         */
        protected function calculateApplyAdditionalCoupons()
        {
        }
        /**
         * Calculate step discount result by new order.
         *
         * @return Result
         */
        protected function calculateFullSaleDiscountResult()
        {
        }
        /**
         * Tries to revert apply status of discounts.
         * It depends on current $stepResult. If it has REVERT_APPLY like true, that we have to cancel discounts on basket
         * items which were affected.
         * @param array $stepResult
         * @return void
         */
        protected function tryToRevertApplyStatusInBlocks(array $stepResult)
        {
        }
        /**
         * Reverts apply flag in blocks for basket items which has for example cumulative discount
         * which cancels previous discounts on item.
         * @param int $basketItemId
         * @return void
         */
        protected function revertApplyBlockForBasketItem($basketItemId)
        {
        }
        /**
         * Calculate step discount result by exist order.
         *
         * @return Result
         */
        protected function calculateApplySaleDiscountResult()
        {
        }
        /* rounding tools */
        /**
         * Return order round apply mode.
         * @internal
         *
         * @return int
         */
        protected function getRoundMode()
        {
        }
        /**
         * Return true, if selected check round apply mode.
         * @internal
         *
         * @param int $mode		Checked mode.
         * @return bool
         */
        protected function isRoundMode($mode)
        {
        }
        /**
         * Load round apply config for exist order.
         * @internal
         *
         * @return void
         */
        protected function loadRoundConfig()
        {
        }
        /**
         * Set discount index for use round. Only for sale discount mode.
         * @internal
         *
         * @param string $entity		Entity id.
         * @param array $index			Index data.
         * @return void
         */
        protected function setRoundIndex($entity, array $index)
        {
        }
        /**
         * Return index data for use round.
         * @internal
         *
         * @param string $entity			Entity id.
         * @param null|int $applyCounter	Apply block counter.
         * @return null|array
         */
        protected function getRoundIndex($entity, $applyCounter = null)
        {
        }
        /**
         * Round prices.
         *
         * @return void
         */
        protected function roundFullBasketPrices()
        {
        }
        /**
         * Round prices.
         *
         * @return void
         */
        protected function roundApplyBasketPrices()
        {
        }
        /**
         * Round only changed prices.
         *
         * @return void
         */
        protected function roundChangedBasketPrices()
        {
        }
        /**
         * Round prices in sale discount mode for new order.
         * @internal
         *
         * @param array $index		Index data.
         * @return void
         */
        protected function roundFullBasketPriceByIndex(array $index)
        {
        }
        /**
         * Round prices in sale discount mode for exist order.
         * @internal
         *
         * @param array $index		Index data.
         * @return void
         */
        protected function roundApplyBasketPricesByIndex(array $index)
        {
        }
        /* rounding tools finish */
        /**
         * Convert discount for saving in order.
         *
         * @param array $discount			Raw discount data.
         * @return Result
         */
        protected function convertDiscount($discount)
        {
        }
        /**
         * Convert coupon for saving in order.
         *
         * @param string|array $coupon			Coupon.
         * @param int $discount					Order discount id.
         * @return Result
         */
        protected function convertCoupon($coupon, $discount)
        {
        }
        /**
         * Returns result after one discount.
         *
         * @param array $order			Order current data.
         * @return array
         */
        protected static function getStepResult(array $order)
        {
        }
        /**
         * Correct data for exotic coupon.
         *
         * @param array &$stepResult			Currenct discount result.
         * @param array $discount				Discount data.
         * @return void
         */
        protected function correctStepResult(&$stepResult, $discount)
        {
        }
        /* discount action reference tools */
        /**
         * Fill additional discount data.
         *
         * @param int $orderDiscountId	Converted discount id.
         * @param array $data Discount	data.
         *
         * @return void
         */
        protected function setDiscountStoredActionData($orderDiscountId, array $data)
        {
        }
        /**
         * Returns stored action data for discount.
         *
         * @param int $orderDiscountId Converted discount id.
         * @return array|null
         */
        protected function getDiscountStoredActionData($orderDiscountId)
        {
        }
        /* discount action reference tools finish */
        /**
         * Return true, if exist apply result from form for basket.
         *
         * @return bool
         */
        protected function isBasketApplyResultExist()
        {
        }
        /**
         * Returns discount and coupon list.
         *
         * @return void
         */
        protected function getApplyDiscounts()
        {
        }
        /**
         * Fill prices in apply results.
         *
         * @return void
         */
        protected function getApplyPrices()
        {
        }
        /**
         * Change result format.
         *
         * @return void
         */
        protected function remakingDiscountResult()
        {
        }
        /* entities id tools */
        /**
         * Create correspondence between basket ids and basket codes.
         *
         * @return Result
         */
        protected function getBasketTables()
        {
        }
        /**
         * Returns data for save to database.
         *
         * @param array $entity
         * @return array|null
         */
        protected function getEntitySaveIdentifier(array $entity)
        {
        }
        /* entities id tools finish */
        /**
         * Returns exist custom price for basket item code.
         *
         * @param int $code			Basket code.
         * @return bool
         */
        protected function isCustomPriceByCode($code)
        {
        }
        /**
         * Returns exist custom price for basket item.
         *
         * @param array $item			Basket item.
         * @return bool
         */
        protected static function isCustomPrice(array $item)
        {
        }
        /**
         * Returns check item in set for basket item code.
         *
         * @param int $code			Basket code.
         * @return bool
         */
        protected function isInSetByCode($code)
        {
        }
        /**
         * Returns check item in set for basket item.
         *
         * @param array $item			Basket item.
         * @return bool
         */
        protected static function isInSet(array $item)
        {
        }
        /**
         * Returns check new basket item for basket item code.
         *
         * @param int|string $code			Basket code.
         * @return bool
         */
        protected function isNewBasketItemByCode($code)
        {
        }
        /**
         * Returns check new basket item for basket item.
         *
         * @param array $item			Basket item.
         * @return bool
         */
        protected static function isNewBasketItem(array $item)
        {
        }
        /**
         * Returns true, if allowed apply discounts to basket item.
         *
         * @param int|string $code			Basket code.
         * @return bool
         */
        protected function isFreezedBasketItemByCode($code)
        {
        }
        /**
         * Returns true, if allowed apply discounts to basket item.
         *
         * @param array $item			Basket item.
         * @return bool
         */
        protected static function isFreezedBasketItem(array $item)
        {
        }
        /**
         * Return true if ordered basket item changed (change PRODUCT_ID).
         *
         * @param int $code			Basket code.
         * @return bool
         */
        protected function isBasketItemChanged($code)
        {
        }
        /**
         * Return true, if basket item exists.
         *
         * @param string|int $code	Basket item code.
         * @return bool
         */
        protected function isExistBasketItem($code)
        {
        }
        /**
         * Returns true, if changed children order entities.
         *
         * @return bool
         */
        protected function isOrderChanged()
        {
        }
        /**
         * Returns exist new item in basket.
         *
         * @return bool
         */
        protected function isMixedBasket()
        {
        }
        /**
         * Return true if basket saved order changed (change PRODUCT_ID).
         *
         * @return bool
         */
        protected function isOrderedBasketChanged()
        {
        }
        /**
         * Returns basket codes for calculate.
         *
         * @param bool $full				Full or apply mode.
         * @return array
         */
        protected function getBasketCodes($full = true)
        {
        }
        protected function getAllowedBasketCodeList()
        {
        }
        /**
         * Merge discount actions result with old data.
         *
         * @param int $index				Discount index.
         * @param array $stepResult			New result.
         * @return void
         */
        protected function mergeDiscountActionResult($index, $stepResult)
        {
        }
        /**
         * Fill empty discount result list.
         *
         * @return void
         */
        protected function fillEmptyDiscountResult()
        {
        }
        /**
         * Fill result order data.
         *
         * @return array
         */
        protected function fillDiscountResult()
        {
        }
        /**
         * Internal. Fill current apply block empty data.
         *
         * @return void
         */
        protected function clearCurrentApplyBlock()
        {
        }
        /**
         * Internal. Clear current step data.
         *
         * @return void
         */
        protected function fillEmptyCurrentStep()
        {
        }
        /**
         * Internal. Fill current step data.
         *
         * @param array $data			Only not empty keys.
         * @return void
         */
        protected function fillCurrentStep($data)
        {
        }
        /**
         * Extend order data for discounts.
         *
         * @return void
         */
        protected function extendOrderData()
        {
        }
        /**
         * Modify order data from handlers.
         *
         * @param array &$newData			New order data from handler.
         * @return void
         */
        protected function modifyOrderData(&$newData)
        {
        }
        /**
         * Return formatted discount description.
         *
         * @param array $descr				Description.
         * @return array
         */
        protected static function formatDescription($descr)
        {
        }
        /**
         * Set order parameters to their original state before the start of calculations.
         *
         * @return void
         */
        protected function resetOrderState()
        {
        }
        /**
         * Fill prices from base prices.
         *
         * @return void
         */
        protected function resetPrices()
        {
        }
        /**
         * Fill basket prices from base prices.
         *
         * @return void
         */
        protected function resetBasketPrices()
        {
        }
        /**
         * Reset flag of applying discounts for basket items.
         *
         * @return void
         */
        protected function resetDiscountAppliedFlag()
        {
        }
        /**
         * Execute sale discount list.
         *
         * @return Result
         */
        protected function executeDiscountList()
        {
        }
        /**
         * Fill last discount flag for basket items. Only for basket or new order or refreshed order.
         *
         * @return void
         */
        protected function fillBasketLastDiscount()
        {
        }
        /**
         * Check last discount flag for basket items. Only for basket or new order or refreshed order.
         *
         * @return bool
         */
        protected function isBasketLastDiscount()
        {
        }
        /* additional coupons tools */
        /**
         * Clear coupons from already used discounts.
         *
         * @internal
         * @param array $coupons			Coupons list from \Bitrix\Sale\DiscountCouponsManager::getForApply.
         * @return array
         */
        protected function clearAdditionalCoupons(array $coupons)
        {
        }
        /**
         * Return additional coupons for exist order.
         *
         * @internal
         * @param array $filter				Coupons filter.
         * @return array
         */
        protected function getAdditionalCoupons(array $filter = array())
        {
        }
        /**
         * Calculate additional basket coupons.
         *
         * @param array $applyCoupons		Apply discount coupons data.
         * @return Result
         */
        protected function calculateApplyBasketAdditionalCoupons(array $applyCoupons)
        {
        }
        /**
         * Calculate additional sale coupons.
         *
         * @param array $applyCoupons			Coupons data.
         * @return Result
         */
        protected function calculateApplySaleAdditionalCoupons(array $applyCoupons)
        {
        }
        /* additional coupons tools finish */
        /* apply flag tools */
        /**
         * Return apply status for basket discount.
         *
         * @internal
         * @param string|int $basketCode		Basket item code.
         * @param int $orderDiscountId			Order discount id.
         * @param string $orderCouponId			Coupon.
         * @return bool
         */
        protected function getStatusApplyBasketDiscount($basketCode, $orderDiscountId, $orderCouponId)
        {
        }
        /**
         * Round and correct discount calculation results.
         * @internal
         *
         * @return void
         */
        protected function normalizeDiscountResult()
        {
        }
        /* Instances methods */
        /**
         * Returns true, if instance exist.
         *
         * @param string $index		Entity instance identifier.
         * @return bool
         */
        protected static function instanceExists($index)
        {
        }
        /**
         * Returns discount instance.
         *
         * @param string $index		Entity instance identifier.
         * @return DiscountBase
         */
        protected static function getInstance($index)
        {
        }
        protected static function migrateInstance($oldIndex, $newIndex)
        {
        }
        protected static function removeInstance($index)
        {
        }
        /**
         * Return parent entity type. The method must be overridden in the derived class.
         * @internal
         *
         * @return string
         * @throws Main\NotImplementedException
         */
        public static function getRegistryType()
        {
        }
        /**
         * Return instance index for order.
         *
         * @internal
         * @param OrderBase $order			Order.
         * @return string
         */
        protected static function getInstanceIndexByOrder(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * Return instance index for basket.
         *
         * @internal
         *
         * @param BasketBase $basket			Basket.
         * @param Context\BaseContext|null	$context
         *
         * @return string
         */
        protected static function getInstanceIndexByBasket(\Bitrix\Sale\BasketBase $basket, \Bitrix\Sale\Discount\Context\BaseContext $context = null)
        {
        }
        /* Instances methods end */
        /**
         * Return order.
         *
         * @return OrderBase|null
         */
        public function getOrder()
        {
        }
        /**
         * Return flag is order exists.
         *
         * @return bool
         */
        public function isOrderExists()
        {
        }
        /**
         * Return site id for calculate.
         * @internal
         *
         * @return null|string
         */
        protected function getSiteId()
        {
        }
        /**
         * Return order currency for calculate.
         * @internal
         *
         * @return null|string
         */
        protected function getCurrency()
        {
        }
        /**
         * Return site currency.
         * @internal
         *
         * @return string|null
         */
        protected function getSiteCurrency()
        {
        }
        /* Sale disocunt hit cache methods */
        /**
         * Return field name for save eval result. Only for core.
         *
         * @internal
         *
         * @param string $fieldName         Discount field name for eval.
         * @return string
         */
        protected static final function getExecuteFieldName($fieldName)
        {
        }
        /**
         * Return field list for eval.
         *
         * @internal
         *
         * @return array
         */
        protected function getExecuteFieldList()
        {
        }
        /**
         * Return field with discount condition code.
         *
         * @internal
         *
         * @return string
         */
        protected function getConditionField()
        {
        }
        /**
         * Load from database discount id for user groups.
         *
         * @internal
         *
         * @param array $filter			Additional filter.
         * @return void
         * @throws Main\ArgumentException
         */
        protected function loadDiscountByUserGroups(array $filter = array())
        {
        }
        /**
         * Load discount modules.
         *
         * @internal
         *
         * @param array $modules				Discount modules.
         * @return bool
         * @throws Main\LoaderException
         */
        protected function loadDiscountModules(array $modules)
        {
        }
        /**
         * Load sale discount from database
         *
         * @internal
         *
         * @return void
         */
        protected function loadDiscountList()
        {
        }
        /* Sale disocunt hit cache methods end */
        /**
         * @return DiscountBase
         */
        private static function createObject()
        {
        }
        /**
         * Returns current order discount class name.
         *
         * @return string
         *
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        protected function getOrderDiscountClassName()
        {
        }
        /**
         * Returns current discount coupons manager class name.
         *
         * @return string
         *
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        protected function getDiscountCouponClassName()
        {
        }
        /**
         * Return current shipment class name.
         *
         * @return string
         *
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        protected function getShipmentClassName()
        {
        }
        private function showAdminError()
        {
        }
        /**
         * Return order property codes for translate to order fields.
         *
         * @return array
         */
        protected static function getOrderPropertyCodes()
        {
        }
        /**
         * Added keys from source array to destination array.
         *
         * @param array &$dest			Destination array.
         * @param array $src			Source array.
         * @return void
         */
        protected static function recursiveMerge(&$dest, $src)
        {
        }
        /**
         * Return empty apply block.
         *
         * @return array
         */
        public static function getEmptyApplyBlock()
        {
        }
        /**
         * Calculate discount percent for public components.
         *
         * @param int|float $basePrice		Base price.
         * @param int|float $discount		Discount value (for an extra can be negative).
         * @return float|int|null
         */
        public static function calculateDiscountPercent($basePrice, $discount)
        {
        }
        /**
         * Returns show prices for public components.
         *
         * @return array
         */
        public function getShowPrices()
        {
        }
        /**
         * Search round rule for base price.
         * @internal
         *
         * return void
         */
        private function getRoundForBasePrices()
        {
        }
        /**
         * Returns basket item price for show in public components (basket, order, etc).
         *
         * @param string|int $basketCode	Basket item code.
         * @param array $item				Basket item.
         * @return array
         */
        private function getShowBasketItemPrice($basketCode, array $item)
        {
        }
        /**
         * Returns basket item price with rounded discount percent. Only for show.
         *
         * @param array $item	Basket item (price fields).
         * @return array
         */
        private function getShowPriceWithDiscountPercent(array $item)
        {
        }
        /**
         * Returns basket item price without discount. Only for show.
         *
         * @param array $item	Basket item (price fields).
         * @return array
         */
        private function getShowPriceWithZeroDiscountPercent(array $item)
        {
        }
        /**
         * Checking the existence of the applied discount on the basket item.
         *
         * @param string|int $basketCode	Basket item code.
         * @return bool
         */
        private function isExistBasketItemDiscount($basketCode)
        {
        }
        /**
         * Returns basket item stored data for save.
         *
         * @param string|int $basketCode	Basket item code.
         * @return array|null
         */
        private function prepareBasketItemStoredData($basketCode)
        {
        }
        /**
         * Reset product price for discount calculation.
         *
         * @param array $item		Basket item data.
         * @return array
         */
        private static function resetBasketItemPrice(array $item)
        {
        }
        /**
         * Update or insert internal data for basket item.
         *
         * @param string|int $basketCode	Basket item code.
         * @param array $values				Update data.
         * @return void
         */
        private function addBasketItemValues($basketCode, array $values)
        {
        }
    }
    class Discount extends \Bitrix\Sale\DiscountBase
    {
        /* Sale objects */
        /** @var null|Shipment $shipment */
        protected $shipment = null;
        /** @var array */
        protected $shipmentIds = array();
        /** @var bool  */
        protected $enableCheckingPrediction = false;
        /**
         * Enables prediction checking instead real condition.
         * @return void
         */
        public function enableCheckingPrediction()
        {
        }
        /**
         * Disables prediction checking instead real condition.
         * @return void
         */
        public function disableCheckingPrediction()
        {
        }
        /**
         * Get discount by fuser and site.
         *
         * @param string|int $fuser			Fuser id.
         * @param string $site				Site id.
         * @return null|Discount|DiscountBase
         */
        public static function loadByFuser($fuser, $site)
        {
        }
        /**
         * Return parent entity type.
         * @internal
         *
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * Set calculate shipments.
         *
         * @param Shipment $shipment							Current shipment.
         * @return void
         */
        public function setCalculateShipments(\Bitrix\Sale\Shipment $shipment = null)
        {
        }
        /**
         * Return shipment id list for existing order.
         *
         * @return array
         */
        public function getShipmentsIds()
        {
        }
        /**
         * Clone entity.
         *
         * @internal
         * @param \SplObjectStorage $cloneEntity	Clone repository.
         *
         * @return Discount
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /* apply result methods */
        /**
         * Change applied discount list.
         *
         * @param array $applyResult		Change apply result.
         * @return void
         */
        public function setApplyResult($applyResult)
        {
        }
        /**
         * Return discount list description.
         *
         * @param bool $extMode			Extended mode.
         * @return array
         */
        public function getApplyResult($extMode = false)
        {
        }
        /**
         * Returns show prices for public components.
         *
         * @return array
         */
        public function getShowPrices()
        {
        }
        /**
         * Save discount result.
         *
         * @return Result
         */
        public function save()
        {
        }
        /**
         * Returns order configuration for save to database.
         *
         * @return array
         */
        protected function getOrderConfig()
        {
        }
        /* instance tools */
        /**
         * Return instance index for fuser.
         *
         * @internal
         * @param string|int $fuser			Fuser id.
         * @param string $site				Site id.
         * @return string
         */
        protected static function getInstanceIndexByFuser($fuser, $site)
        {
        }
        /**
         * Return field list for eval.
         *
         * @internal
         *
         * @return array
         */
        protected function getExecuteFieldList()
        {
        }
        /**
         * Return field with discount condition code.
         *
         * @internal
         *
         * @return string
         */
        protected function getConditionField()
        {
        }
        /**
         * Returns result after one discount.
         *
         * @param array $order			Order current data.
         * @return array
         */
        protected static function getStepResult(array $order)
        {
        }
        /**
         * Round and correct discount calculation results.
         * @internal
         *
         * @return void
         */
        protected function normalizeDiscountResult()
        {
        }
        /**
         * Fill prices in apply results.
         *
         * @return void
         */
        protected function getApplyPrices()
        {
        }
        /**
         * Change result format.
         *
         * @return void
         */
        protected function remakingDiscountResult()
        {
        }
        /**
         * Returns delivery price data.
         *
         * @return array
         */
        protected function getApplyDeliveryPrice()
        {
        }
        /**
         * Get discount delivery list and delivery list.
         *
         * @return array
         */
        protected function getApplyDeliveryList()
        {
        }
        /**
         * Fill empty discount result list.
         *
         * @return void
         */
        protected function fillEmptyDiscountResult()
        {
        }
        /**
         * Fill result order data.
         *
         * @return array
         */
        protected function fillDiscountResult()
        {
        }
        /**
         * Fill prices from base prices.
         *
         * @return void
         */
        protected function resetPrices()
        {
        }
        /**
         * Fill delivery price from base price.
         *
         * @return void
         */
        protected function resetDeliveryPrices()
        {
        }
        /**
         * Load order information.
         *
         * @return Result
         */
        protected function loadOrderData()
        {
        }
        /**
         * Fill empty order data.
         *
         * @return void
         */
        protected function fillEmptyOrderData()
        {
        }
        /**
         * Get basket data from owner entity.
         *
         * @return Result
         * @throws Main\ObjectNotFoundException
         */
        protected function loadBasket()
        {
        }
        /**
         * Load default order config for order.
         *
         * @return void
         */
        protected function loadDefaultOrderConfig()
        {
        }
        /**
         * @param array $data		Order settings from database.
         * @return void
         */
        protected function applyLoadedOrderConfig(array $data)
        {
        }
        /**
         * Return is exists discount shipment.
         *
         * @return bool
         */
        protected function isShipmentExists()
        {
        }
        /**
         * Fill data from shipment.
         *
         * @return void
         */
        protected function fillShipmentData()
        {
        }
        /**
         * Load shipment.
         *
         * @return Result
         */
        protected function loadShipment()
        {
        }
        /**
         * Initial instance data after set order.
         *
         * @return void
         */
        protected function initInstanceFromOrder()
        {
        }
        /* entities id tools */
        /**
         * Returns data for save to database.
         *
         * @param array $entity
         * @return array|null
         */
        protected function getEntitySaveIdentifier(array $entity)
        {
        }
        /* entities id tools finish */
        /* compatibility tools */
        /**
         * Check use old api.
         *
         * @return bool
         */
        private function isUsedDiscountCompatibility()
        {
        }
        /**
         * Fill order fields for deprecated discount classes.
         *
         * @return void
         */
        protected function fillCompatibleOrderFields()
        {
        }
        /* compatibility tools finish */
        /* deprecated methods */
        /**
         * Set base price for basket item.
         * @deprecated
         *
         * @param int|string $code				Basket code.
         * @param float $price			Price.
         * @param string $currency		Currency.
         * @return void
         */
        public function setBasketItemBasePrice($code, $price, $currency)
        {
        }
        /**
         * Set base price for all basket items.
         * @deprecated
         *
         * @param array $basket					Basket.
         * @return void
         */
        public function setBasketBasePrice($basket)
        {
        }
        /**
         * Get base price for basket item.
         * @deprecated
         *
         * @param int|string $code				Basket code.
         * @return float|null
         */
        public function getBasketItemBasePrice($code)
        {
        }
        /**
         * Set product discounts for basket item.
         * @deprecated
         *
         * @param int|string $code				Basket code.
         * @param array $discountList			Discount list.
         * @return void
         */
        public function setBasketItemDiscounts($code, $discountList)
        {
        }
        /**
         * Set various basket item data.
         * @deprecated
         *
         * @param int|string $code				Basket code.
         * @param array $providerData			Product data from provider.
         * @return void
         */
        public function setBasketItemData($code, $providerData)
        {
        }
        /**
         * Clear basket item data.
         * @deprecated
         *
         * @param int|string $code				Basket code.
         * @return void
         */
        public function clearBasketItemData($code)
        {
        }
        /**
         * Get discount by basket.
         *
         * @deprecated deprecated sinse sale 17.0.11
         * @see Discount::buildFromBasket
         *
         * @param Basket $basket		Basket object.
         * @return Discount|DiscountBase|null
         */
        public static function loadByBasket(\Bitrix\Sale\Basket $basket)
        {
        }
        /**
         * Get discount by order.
         *
         * @deprecated deprecated sinse sale 17.0.11
         * @see Discount::buildFromOrder
         *
         * @param Order $order		Order object.
         * @return Discount|DiscountBase
         */
        public static function load(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @deprecated
         *
         * @param BasketItem $basketItem
         * @param int $orderDiscountId
         * @return void
         * @throws \Exception
         */
        public function saveExternalLastApplyblock(\Bitrix\Sale\BasketItem $basketItem, $orderDiscountId)
        {
        }
        /**
         * Return basket item currency.
         * @deprecated
         *
         * @param string|int $basketCode	Basket item code.
         * @return string|null
         */
        protected function getBasketCurrency($basketCode)
        {
        }
    }
}
namespace {
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage sale
     * @copyright 2001-2014 Bitrix
     */
    interface IShipmentOrder
    {
        public function getShipmentCollection();
        public function loadShipmentCollection();
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage sale
     * @copyright 2001-2014 Bitrix
     */
    interface IPaymentOrder
    {
        public function getPaymentCollection();
        public function loadPaymentCollection();
    }
}
namespace Bitrix\Sale {
    /**
     * Class OrderBase
     * @package Bitrix\Sale
     */
    abstract class OrderBase extends \Bitrix\Sale\Internals\Entity
    {
        /** @var Internals\Fields */
        protected $calculatedFields = null;
        /** @var BasketBase */
        protected $basketCollection;
        /** @var PropertyValueCollectionBase */
        protected $propertyCollection;
        /** @var Discount $discount */
        protected $discount = null;
        /** @var Tax $tax */
        protected $tax = null;
        /** @var int */
        protected $internalId = 0;
        /** @var bool $isNew */
        protected $isNew = true;
        /** @var bool  */
        protected $isSaveExecuting = false;
        /** @var bool $isClone */
        protected $isClone = false;
        /** @var bool $isOnlyMathAction */
        protected $isOnlyMathAction = null;
        /** @var bool $isMeaningfulField */
        protected $isMeaningfulField = false;
        /** @var bool $isStartField */
        protected $isStartField = null;
        /** @var null|string $calculateType */
        protected $calculateType = null;
        const SALE_ORDER_CALC_TYPE_NEW = 'N';
        const SALE_ORDER_CALC_TYPE_CHANGE = 'C';
        const SALE_ORDER_CALC_TYPE_REFRESH = 'R';
        /**
         * OrderBase constructor.
         * @param array $fields
         * @throws Main\ArgumentNullException
         */
        protected function __construct(array $fields = array())
        {
        }
        /**
         * Return internal index of order
         *
         * @return int
         */
        public function getInternalId()
        {
        }
        /**
         * Return field names that can set in \Bitrix\Sale\OrderBase::setField
         *
         * @return array
         */
        public static function getAvailableFields()
        {
        }
        /**
         * Return virtual field names
         *
         * @return array
         */
        protected static function getCalculatedFields()
        {
        }
        /**
         * @return bool
         */
        public function isSaveRunning()
        {
        }
        /**
         * @return array
         */
        protected static function getMeaningfulFields()
        {
        }
        /**
         * @param array $fields
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        private static function createOrderObject(array $fields = array())
        {
        }
        /**
         * @return string
         */
        public static function getRegistryEntity()
        {
        }
        /**
         * Create \Bitrix\Sale\OrderBase object
         *
         * @param $siteId
         * @param null $userId
         * @param null $currency
         * @return Order
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         */
        public static function create($siteId, $userId = null, $currency = null)
        {
        }
        /**
         * @return string
         */
        protected static function generateXmlId()
        {
        }
        /**
         * Load order object by id
         *
         * @param $id
         * @return null|static
         * @throws Main\ArgumentNullException
         */
        public static function load($id)
        {
        }
        /**
         * Return object order list satisfying filter
         *
         * @param array $parameters
         * @return array|null
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        public static function loadByFilter(array $parameters)
        {
        }
        /**
         * @param $parameters
         * @return array
         */
        private static function prepareParams($parameters)
        {
        }
        /**
         * Load object order by account number
         *
         * @param $value
         * @return mixed|null
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\NotImplementedException
         */
        public static function loadByAccountNumber($value)
        {
        }
        /**
         * @param array $parameters
         * @return Main\DB\Result
         * @throws Main\NotImplementedException
         */
        protected static function loadFromDb(array $parameters)
        {
        }
        /**
         * Append basket to order and refresh it
         *
         * @param BasketBase $basket
         * @return Result
         * @throws Main\NotSupportedException
         */
        public function setBasket(\Bitrix\Sale\BasketBase $basket)
        {
        }
        /**
         * Append basket to order
         *
         * @param BasketBase $basket
         *
         * @return Result
         * @throws Main\NotSupportedException
         */
        public function appendBasket(\Bitrix\Sale\BasketBase $basket)
        {
        }
        /**
         * Return order basket.
         *
         * @return BasketBase
         */
        public function getBasket()
        {
        }
        /**
         * Load basket appended to order
         *
         * @return BasketBase|null
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        protected function loadBasket()
        {
        }
        /**
         * Set value with call events on field modify
         *
         * @param $name
         * @param $value
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        public function setField($name, $value)
        {
        }
        /**
         * @param $name
         * @param $value
         * @return Result
         * @throws Main\NotImplementedException
         */
        protected function checkValueBeforeSet($name, $value)
        {
        }
        /**
         * @internal
         * Set value without call events on field modify
         *
         * @param $name
         * @param $value
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        public function setFieldNoDemand($name, $value)
        {
        }
        /**
         * Return field value
         *
         * @param $name
         * @return null|string
         */
        public function getField($name)
        {
        }
        /**
         * @internal
         *
         * Init field
         *
         * @param $name
         * @param $value
         * @return void
         * @throws Main\ArgumentOutOfRangeException
         */
        public function initField($name, $value)
        {
        }
        /**
         * @return PropertyValueCollectionBase
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function getPropertyCollection()
        {
        }
        /**
         * @return PropertyValueCollectionBase
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function loadPropertyCollection()
        {
        }
        /**
         * @internal
         *
         * @param string $action Action.
         * @param PropertyValueBase $property Property.
         * @param null|string $name Field name.
         * @param null|string|int|float $oldValue Old value.
         * @param null|string|int|float $value New value.
         * @return Result
         */
        public function onPropertyValueCollectionModify($action, \Bitrix\Sale\PropertyValueBase $property, $name = null, $oldValue = null, $value = null)
        {
        }
        /**
         * Full order refresh
         *
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectNotFoundException
         */
        public function refreshData()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        protected function refreshInternal()
        {
        }
        /**
         * Return person type id of order
         *
         * @return int
         */
        public function getPersonTypeId()
        {
        }
        /**
         * Set person type id of order
         *
         * @param $personTypeId
         *
         * @return Result
         */
        public function setPersonTypeId($personTypeId)
        {
        }
        /**
         * Return order price
         *
         * @return float
         */
        public function getPrice()
        {
        }
        /**
         * Return paid sum
         *
         * @return float
         */
        public function getSumPaid()
        {
        }
        /**
         * @return float
         */
        public function getDeliveryPrice()
        {
        }
        /**
         * @return float
         */
        public function getDeliveryLocation()
        {
        }
        /**
         * @return float
         */
        public function getTaxPrice()
        {
        }
        /**
         * @return float
         */
        public function getTaxValue()
        {
        }
        /**
         * Return discount price
         *
         * @return float
         */
        public function getDiscountPrice()
        {
        }
        /**
         * Return currency
         *
         * @return string
         */
        public function getCurrency()
        {
        }
        /**
         * Return user id
         *
         * @return int
         */
        public function getUserId()
        {
        }
        /**
         * Return site id
         *
         * @return null|string
         */
        public function getSiteId()
        {
        }
        /**
         * Return TRUE if VAT is used. Else return FALSE
         *
         * @return bool
         */
        public function isUsedVat()
        {
        }
        /**
         * Return order vat rate
         *
         * @return mixed|null
         */
        public function getVatRate()
        {
        }
        /**
         * Return order vat sum
         *
         * @return float
         */
        public function getVatSum()
        {
        }
        /**
         * Return TRUE if order has problems. Else return FALSE
         * @return null|string
         */
        public function isMarked()
        {
        }
        /**
         * Clear VAT info
         * @throws Main\ArgumentOutOfRangeException
         */
        protected function resetVat()
        {
        }
        /**
         * @internal
         *
         * Recalculate VAT
         */
        public function refreshVat()
        {
        }
        /**
         * Calculate VAT
         *
         * @return array
         */
        protected function calculateVat()
        {
        }
        /**
         * @param array $vatInfo
         * @return Result
         */
        private function applyCalculatedVat(array $vatInfo)
        {
        }
        /**
         * Return TRUE if order is deducted. Else return FALSE
         *
         * @return string
         */
        public function isShipped()
        {
        }
        /**
         * Return TRUE if order is external. Else return FALSE
         *
         * @return bool
         */
        public function isExternal()
        {
        }
        /**
         * @param $field
         * @return bool
         */
        protected function isCalculatedField($field)
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        protected static function getInitialStatus()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        protected static function getFinalStatus()
        {
        }
        /**
         * Save order
         *
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         */
        public function save()
        {
        }
        /**
         * @return Result
         */
        protected function onAfterSave()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         * @return void
         */
        protected function callDelayedEvents()
        {
        }
        /**
         * @param $needUpdateDateInsert
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         */
        protected function completeSaving($needUpdateDateInsert)
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws Main\SystemException
         */
        protected function add()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        protected function update()
        {
        }
        /**
         * @return void
         */
        protected function callEventOnSaleOrderEntitySaved()
        {
        }
        /**
         * @return void
         */
        protected function callEventOnSaleOrderSaved()
        {
        }
        /**
         * @return Result
         */
        protected function callEventOnBeforeOrderSaved()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectNotFoundException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function saveEntities()
        {
        }
        /**
         * Set account number.
         *
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\SystemException
         */
        protected function setAccountNumber()
        {
        }
        /**
         * Set VAT sum
         *
         * @param $price
         */
        public function setVatSum($price)
        {
        }
        /**
         * Set VAT delivery sum
         *
         * @param $price
         */
        public function setVatDelivery($price)
        {
        }
        /**
         * Return date order insert
         *
         * @return mixed
         */
        public function getDateInsert()
        {
        }
        /**
         * Return value: OrderBase::SALE_ORDER_CALC_TYPE_REFRESH, OrderBase::SALE_ORDER_CALC_TYPE_CHANGE, OrderBase::SALE_ORDER_CALC_TYPE_NEW
         *
         * @return null|string
         */
        public function getCalculateType()
        {
        }
        /**
         * @param string $name
         * @param mixed $oldValue
         * @param mixed $value
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         */
        protected function onFieldModify($name, $oldValue, $value)
        {
        }
        /**
         * @param $name
         * @param $oldValue
         * @param $value
         * @return Result
         */
        protected function onOrderModify($name, $oldValue, $value)
        {
        }
        /**
         * Modify basket.
         *
         * @param string $action				Action.
         * @param BasketItemBase $basketItem		Basket item.
         * @param null|string $name				Field name.
         * @param null|string|int|float $oldValue		Old value.
         * @param null|string|int|float $value			New value.
         * @return Result
         * @throws Main\NotImplementedException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public function onBasketModify($action, \Bitrix\Sale\BasketItemBase $basketItem, $name = null, $oldValue = null, $value = null)
        {
        }
        /**
         * @internal
         * @return Result
         */
        public function onBeforeBasketRefresh()
        {
        }
        /**
         * @internal
         * @return Result
         */
        public function onAfterBasketRefresh()
        {
        }
        /**
         * Get the entity of taxes
         *
         * @return Tax
         */
        public function getTax()
        {
        }
        /**
         * @internal
         *
         * Return TRUE if order is new. Else return FALSE
         *
         * @return null|bool
         */
        public function isNew()
        {
        }
        /**
         * Reset the value of taxes
         *
         * @internal
         */
        public function resetTax()
        {
        }
        /**
         * Return TRUE if order is changed. Else return FALSE
         *
         * @return bool
         */
        public function isChanged()
        {
        }
        /**
         * @internal
         *
         * Reset flag of order change
         *
         * @return void
         */
        public function clearChanged()
        {
        }
        /**
         * Return TRUE, if this order is cloned. Else return FALSE
         *
         * @return bool
         */
        public function isClone()
        {
        }
        /**
         * Return TRUE, if order is payed. Else return FALSE
         *
         * @return bool
         */
        public function isPaid()
        {
        }
        /**
         * Return TRUE, if order is allowed delivery. Else return FALSE
         *
         * @return bool
         */
        public function isAllowDelivery()
        {
        }
        /**
         * Return TRUE, if order is deducted. Else return FALSE
         *
         * @return bool
         */
        public function isDeducted()
        {
        }
        /**
         * Return TRUE, if order is canceled. Else return FALSE
         *
         * @return bool
         */
        public function isCanceled()
        {
        }
        /**
         * Return order hash
         *
         * @return mixed
         */
        public function getHash()
        {
        }
        /**
         * Verify object to correctness
         *
         * @return Result
         */
        public function verify()
        {
        }
        /**
         * Get order information
         *
         * @param array $parameters
         * @throws Main\NotImplementedException
         * @return Main\DB\Result
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * Return tax location
         *
         * @return null|string
         */
        public function getTaxLocation()
        {
        }
        /**
         * Return TRUE if calculations are based on current values. Data from the provider is not requested. Else return false
         *
         * @return bool
         */
        public function isMathActionOnly()
        {
        }
        /**
         * @return bool
         */
        public function hasMeaningfulField()
        {
        }
        /**
         * Reset order flags: \Bitrix\Sale\OrderBase::$isStartField, \Bitrix\Sale\OrderBase::$isMeaningfulField
         *
         * @return void
         */
        public function clearStartField()
        {
        }
        /**
         * @param bool $isMeaningfulField
         * @return bool
         */
        public function isStartField($isMeaningfulField = false)
        {
        }
        /**
         * @internal
         *
         * Set TRUE if calculations should be held on current values. Data from the provider is not requested
         *
         * @param bool $value
         */
        public function setMathActionOnly($value = false)
        {
        }
        /**
         * @internal
         *
         * Delete order without demands.
         *
         * @param $id
         * @return Result
         * @throws Main\NotImplementedException
         */
        public static function deleteNoDemand($id)
        {
        }
        /**
         * Delete order
         *
         * @param int $id				Order id.
         * @return Result
         * @throws Main\ArgumentNullException
         */
        public static function delete($id)
        {
        }
        /**
         * @param OrderBase $order
         * @return void
         */
        protected static function deleteEntities(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * @param $id
         * @return bool
         * @throws Main\NotImplementedException
         */
        protected static function isExists($id)
        {
        }
        /**
         * @deprecated Use OrderStatus::isAllowPay instead
         *
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        public function isAllowPay()
        {
        }
        /**
         * @param $orderId
         */
        protected static function deleteExternalEntities($orderId)
        {
        }
        /**
         * @param $orderId
         * @return Result
         */
        protected static function deleteEntitiesNoDemand($orderId)
        {
        }
        /**
         * Return discount object
         *
         * @return Discount
         */
        public function getDiscount()
        {
        }
        /**
         * @return Tax
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        protected function loadTax()
        {
        }
        /**
         * @return DiscountBase
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        protected function loadDiscount()
        {
        }
        /**
         * @return Result
         */
        private function refreshOrderPrice()
        {
        }
        /**
         * @return float
         */
        protected function calculatePrice()
        {
        }
        /**
         * @return Result
         */
        protected function onBeforeSave()
        {
        }
        /**
         * @param bool $hasMeaningfulField
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectNotFoundException
         */
        public function doFinalAction($hasMeaningfulField = false)
        {
        }
        /**
         * Apply the result of the discounts to the order.
         *
         * @internal
         *
         * @param array $data
         * @return Result
         * @throws Main\ArgumentNullException
         */
        public function applyDiscount(array $data)
        {
        }
        /**
         * @param $value
         * @return Result
         * @throws Main\ArgumentException
         */
        protected function setReasonMarked($value)
        {
        }
        /**
         * Reset the value of the order and delivery
         *
         * @internal
         *
         * @param array $select
         * @throws Main\ArgumentOutOfRangeException
         */
        public function resetData($select = array('PRICE'))
        {
        }
        /**
         * @param $value
         * @param $oldValue
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        protected function isStatusChangedOnPay($value, $oldValue)
        {
        }
        /**
         * Create order clone
         *
         * @return OrderBase
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         * @throws Main\SystemException
         */
        public function createClone()
        {
        }
        /**
         * @param \SplObjectStorage $cloneEntity
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         * @throws Main\SystemException
         */
        protected function cloneEntities(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * @param array $data
         * @throws Main\NotImplementedException
         * @return Main\Entity\AddResult
         */
        protected abstract function addInternal(array $data);
        /**
         * @param $primary
         * @param array $data
         * @throws Main\NotImplementedException
         * @return Main\Entity\UpdateResult
         */
        protected static function updateInternal($primary, array $data)
        {
        }
        /**
         * @param $primary
         * @throws Main\NotImplementedException
         * @return Main\Entity\DeleteResult
         */
        protected static function deleteInternal($primary)
        {
        }
        /**
         * Return user field id
         *
         * @return null
         */
        public static function getUfId()
        {
        }
        /**
         * @deprecated Use \Bitrix\Sale\OrderBase::getAvailableFields instead
         *
         * @returns array
         */
        public static function getSettableFields()
        {
        }
        /**
         * @internal
         *
         * @return string
         */
        public static function getEntityEventName()
        {
        }
    }
    /**
     * Class Order
     * @package Bitrix\Sale
     */
    class Order extends \Bitrix\Sale\OrderBase implements \IShipmentOrder, \IPaymentOrder, \Bitrix\Sale\IBusinessValueProvider
    {
        /** @var ShipmentCollection */
        protected $shipmentCollection;
        /** @var PaymentCollection */
        protected $paymentCollection;
        /** @var TradeBindingCollection */
        protected $tradeBindingCollection;
        /** @var array $printedChecks */
        protected $printedChecks = array();
        const SALE_ORDER_LOCK_STATUS_RED = 'red';
        const SALE_ORDER_LOCK_STATUS_GREEN = 'green';
        const SALE_ORDER_LOCK_STATUS_YELLOW = 'yellow';
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @return array
         */
        protected static function getFieldsMap()
        {
        }
        /**
         * @return null|string
         */
        public static function getUfId()
        {
        }
        /**
         * Return printed check list
         *
         * @return array
         * @throws Main\ArgumentException
         */
        public function getPrintedChecks()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         */
        protected function loadPrintedChecks()
        {
        }
        /**
         * Add printed check to order
         *
         * @param $check
         */
        public function addPrintedCheck($check)
        {
        }
        /**
         * Modify shipment collection.
         *
         * @param $action
         * @param Shipment $shipment
         * @param null $name
         * @param null $oldValue
         * @param null $value
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectException
         * @throws Main\ObjectNotFoundException
         */
        public function onShipmentCollectionModify($action, \Bitrix\Sale\Shipment $shipment, $name = null, $oldValue = null, $value = null)
        {
        }
        /**
         * @param array $select
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function resetData($select = array('PRICE'))
        {
        }
        /**
         * @param BasketBase $basket
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public function setBasket(\Bitrix\Sale\BasketBase $basket)
        {
        }
        /**
         * @param BasketBase $basket
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public function appendBasket(\Bitrix\Sale\BasketBase $basket)
        {
        }
        /**
         * Return shipment collection
         *
         * @return ShipmentCollection
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        public function getShipmentCollection()
        {
        }
        /**
         * Return trade binding collection
         *
         * @return TradeBindingCollection
         * @throws Main\ArgumentException
         * @throws Main\ArgumentTypeException
         * @throws Main\SystemException
         */
        public function getTradeBindingCollection()
        {
        }
        /**
         * Return payment collection
         *
         * @return PaymentCollection
         */
        public function getPaymentCollection()
        {
        }
        /**
         * Load shipment collection
         *
         * @return ShipmentCollection
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        public function loadShipmentCollection()
        {
        }
        /**
         * Load payment collection
         *
         * @return PaymentCollection
         * @throws Main\ArgumentException
         */
        public function loadPaymentCollection()
        {
        }
        /**
         * @return TradeBindingCollection
         * @throws Main\ArgumentException
         * @throws Main\ArgumentTypeException
         * @throws Main\SystemException
         */
        protected function loadTradeBindingCollection()
        {
        }
        /**
         * @param $orderId
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectNotFoundException
         */
        protected static function deleteEntitiesNoDemand($orderId)
        {
        }
        /**
         * @param OrderBase $order
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        protected static function deleteEntities(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * @return bool
         */
        public function isShipped()
        {
        }
        /**
         * @param $action
         * @param Payment $payment
         * @param null $name
         * @param null $oldValue
         * @param null $value
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public function onPaymentCollectionModify($action, \Bitrix\Sale\Payment $payment, $name = null, $oldValue = null, $value = null)
        {
        }
        /**
         * @param string $name
         * @param float|int|mixed|string $oldValue
         * @param float|int|mixed|string $value
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        protected function onFieldModify($name, $oldValue, $value)
        {
        }
        /**
         * @param $name
         * @param $oldValue
         * @param $value
         * @return Result
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        protected function onOrderModify($name, $oldValue, $value)
        {
        }
        /**
         * @internal
         *
         * @param BasketItem $basketItem
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public function onBeforeBasketItemDelete(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * Modify basket.
         *
         * @param string $action
         * @param BasketItemBase $basketItem
         * @param null $name
         * @param null $oldValue
         * @param null $value
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public function onBasketModify($action, \Bitrix\Sale\BasketItemBase $basketItem, $name = null, $oldValue = null, $value = null)
        {
        }
        /**
         * @return Result
         */
        public function onBeforeBasketRefresh()
        {
        }
        /**
         * @return Result
         */
        public function onAfterBasketRefresh()
        {
        }
        /**
         * Sync.
         *
         * @param Payment|null $payment
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        private function syncOrderAndPayments(\Bitrix\Sale\Payment $payment = null)
        {
        }
        /**
         * @param Payment $payment
         * @return Result
         */
        private function syncOrderPaymentPaid(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @return Result
         */
        private function syncOrderPaid()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        protected function getStatusOnPaid()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function getStatusOnPartialPaid()
        {
        }
        /**
         * @param null $oldPaid
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\NotImplementedException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        private function onAfterSyncPaid($oldPaid = null)
        {
        }
        /**
         * @param $select
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        protected function refreshInternal()
        {
        }
        /**
         * @internal
         *
         * @param array $data
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         */
        public function applyDiscount(array $data)
        {
        }
        /**
         * Lock order.
         *
         * @param int $id			Order id.
         * @return Entity\UpdateResult|Result
         * @throws \Exception
         */
        public static function lock($id)
        {
        }
        /**
         * Unlock order.
         *
         * @param int $id			Order id.
         * @return Entity\UpdateResult|Result
         * @throws Main\ArgumentNullException
         * @throws \Exception
         */
        public static function unlock($id)
        {
        }
        /**
         * Return TRUE if order is locked.
         *
         * @param int $id
         * @return bool
         */
        public static function isLocked($id)
        {
        }
        /**
         * Return order locked status.
         *
         * @param int $id		Order id.
         * @return Result
         * @throws Main\ArgumentException
         */
        public static function getLockedStatus($id)
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public function verify()
        {
        }
        /**
         * @param $mapping
         * @return Order|null|string
         */
        public function getBusinessValueProviderInstance($mapping)
        {
        }
        /**
         * @param array $parameters
         *
         * @return Main\DB\Result
         * @throws Main\ArgumentException
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * @param \SplObjectStorage $cloneEntity
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         * @throws Main\SystemException
         */
        protected function cloneEntities(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * @return bool
         */
        public function isChanged()
        {
        }
        /**
         * @internal
         * @return void
         */
        public function clearChanged()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        public function getDeliveryIdList()
        {
        }
        /**
         * @return array
         * @throws Main\ObjectNotFoundException
         */
        public function getPaySystemIdList()
        {
        }
        /**
         * @return array
         */
        protected function calculateVat()
        {
        }
        /**
         * @return Result
         */
        protected function saveEntities()
        {
        }
        /**
         * @return float
         */
        protected function calculatePrice()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\SystemException
         * @throws \Exception
         */
        protected function onBeforeSave()
        {
        }
        /**
         * @return Result
         */
        protected function onAfterSave()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws \Exception
         */
        public function save()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         */
        protected function add()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         */
        protected function update()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @return void
         */
        protected function callEventOnSaleOrderEntitySaved()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @return void
         */
        protected function callEventOnSaleOrderSaved()
        {
        }
        /**
         * @param array $data
         * @return Entity\AddResult
         * @throws \Exception
         */
        protected function addInternal(array $data)
        {
        }
        /**
         * @param $primary
         * @param array $data
         * @return Entity\UpdateResult
         * @throws \Exception
         */
        protected static function updateInternal($primary, array $data)
        {
        }
        /**
         * @param $primary
         * @return Entity\DeleteResult
         * @throws \Exception
         */
        protected static function deleteInternal($primary)
        {
        }
        /**
         * @param $orderId
         * @throws Main\ArgumentException
         */
        protected static function deleteExternalEntities($orderId)
        {
        }
        /**
         * Save field modify to history.
         *
         * @param string $name				Field name.
         * @param null|string $oldValue		Old value.
         * @param null|string $value		New value.
         */
        protected function addChangesToHistory($name, $oldValue = null, $value = null)
        {
        }
        /**
         * @deprecated
         *
         * @return array
         * @throws Main\ObjectNotFoundException
         */
        public function getDeliverySystemId()
        {
        }
        /**
         * @deprecated
         * @return array
         * @throws Main\ObjectNotFoundException
         */
        public function getPaymentSystemId()
        {
        }
    }
}
namespace Bitrix\Sale\Archive {
    class Order extends \Bitrix\Sale\Order
    {
        protected $discountResult = array();
        protected $dateArchived = null;
        protected $archiveVersion = null;
        /**
         * Restrict recalculation discounts
         *
         * @param array $data			Order data.
         * @return Sale\Result
         */
        public function applyDiscount(array $data)
        {
        }
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * Set discount array for detail page.
         * 
         * @param array $resultData
         */
        public function setDiscountData($resultData = array())
        {
        }
        /**
         * @return array
         */
        public function getDiscountData()
        {
        }
        /**
         * @return Main\Type\DateTime
         */
        public function getDateArchived()
        {
        }
        /**
         * @param Main\Type\DateTime $date
         * 
         * @return void
         */
        public function setDateArchived($date)
        {
        }
        /**
         * @return int
         */
        public function getVersion()
        {
        }
        /**
         * @param int $version		Version of archived entity.
         *
         * @return void
         */
        public function setVersion($version)
        {
        }
    }
}
namespace Bitrix\Sale\Archive\Recovery {
    /**
     * @package Bitrix\Sale\Archive\Recovery
     */
    class Restorer
    {
        private $archiveId = null;
        private $version = null;
        private $dateArchived = null;
        /** @var Builder $builder */
        private $builder = null;
        private $firstVersion = 1;
        const EVENT_ON_ARCHIVE_ORDER_BEFORE_RESTORED = "OnSaleArchiveOrderBeforeRestored";
        protected function __construct($id)
        {
        }
        /**
         * @param $id
         *
         * @return Restorer|null
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function load($id)
        {
        }
        /**
         * @param $version
         *
         * @return bool
         */
        private function checkVersion($version)
        {
        }
        /**
         * @return Builder|null
         */
        private function loadBuilder()
        {
        }
        /**
         * @param Buildable $builder
         */
        private function setBuilder(\Bitrix\Sale\Archive\Recovery\Buildable $builder)
        {
        }
        /**
         * @param string $field
         *
         * @return PackedField
         */
        public function packField($field = '')
        {
        }
        /**
         * @return Builder
         */
        public function getBuilder()
        {
        }
        /**
         * @return int
         */
        public function getArchiveVersion()
        {
        }
        /**
         * @return int
         */
        public function getArchiveId()
        {
        }
        /**
         * @return Archive\Order
         */
        public function restoreOrder()
        {
        }
    }
    /**
     * @package Bitrix\Sale\Archive\Recovery
     *
     * @deprecated No longer used by internal code and not recommended.
     */
    abstract class Base
    {
        /** @var Sale\Archive\Order $order */
        protected $order;
        /**
         * Recovery\Base constructor.
         */
        public function __construct()
        {
        }
        /**
         * @param array $archivedOrder
         * 
         * @return Sale\Archive\Order
         * 	 
         * @throws Main\ArgumentNullException
         */
        public function restoreOrder($archivedOrder = array())
        {
        }
        protected abstract function loadOrder($archivedOrder);
    }
    /**
     * Contain realization of Archive\Order object creation from archive.
     * Value of archive version is "1".
     * 
     * @package Bitrix\Sale\Archive\Recovery
     *
     * @deprecated No longer used by internal code and not recommended.
     */
    class Version1 extends \Bitrix\Sale\Archive\Recovery\Base
    {
        /**
         * Manage loading order from archive.
         * 
         * @param $archivedOrder
         *
         * @return Sale\Order
         */
        protected function loadOrder($archivedOrder)
        {
        }
        /**
         * Load order with properties from archive.
         * 
         * @param array $archivedOrder
         *
         * @return mixed
         */
        protected function riseOrder($archivedOrder)
        {
        }
        /**
         * Load basket from archive.
         *
         * @param array $archivedOrder
         *
         * @return array $basketItemsMap
         */
        protected function riseBasket($archivedOrder)
        {
        }
        /**
         * Load basket items with properties from archive.
         *
         * @param Sale\BasketItem $item
         * @param array $data
         *
         *@return array $basketItemsMap
         */
        protected function riseBasketItem(&$item, $data = array())
        {
        }
        /**
         * Load payments from archive.
         * 
         * @param array $archivedOrder
         *
         * @throws Main\ObjectNotFoundException
         */
        protected function risePayment($archivedOrder)
        {
        }
        /**
         * Load shipments with items from archive.
         * 
         * @param array $archivedOrder
         * @param array $basketItemsMap
         *
         * @throws Main\NotSupportedException
         */
        protected function riseShipment($archivedOrder, $basketItemsMap)
        {
        }
        /**
         * Return discount's array from archive.
         * The array includes information about discounts of base order.
         * 
         * @param array $archivedOrder
         *
         * @return mixed
         */
        protected function riseDiscount($archivedOrder)
        {
        }
        /**
         * Prepare discount price's array from restored entities.
         *
         * @return mixed
         */
        protected function prepareDiscountPrices()
        {
        }
        /**
         * Prepare discount result's array from restored entities.
         *
         * @param $discountData
         *
         * @return mixed
         */
        protected function prepareDiscountResult($discountData)
        {
        }
        /**
         * Prepare discount data
         *
         * @param $dataRow
         *
         * @return array
         */
        protected function prepareDiscountOrderData($dataRow)
        {
        }
        /**
         * Prepare discount description array
         *
         * @param $discounts
         * @param $discountResult
         *
         * @return mixed
         */
        protected function prepareDiscountList(array $discounts, array $discountResult)
        {
        }
        /**
         * @param array $discountResult
         *
         * @return array
         */
        protected function getAppliedDiscountIds(array $discountResult)
        {
        }
    }
    /**
     * @package Bitrix\Sale\Archive\Recovery
     */
    interface ArchivePackable
    {
        /**
         * @return Result
         */
        public function tryUnpack();
        public function setPackedOrder(\Bitrix\Sale\Archive\Recovery\PackedField $field);
        public function addPackedBasketItem($id, \Bitrix\Sale\Archive\Recovery\PackedField $field);
    }
    /**
     * @package Bitrix\Sale\Archive\Recovery
     */
    abstract class PackedField
    {
        protected $packedValue = '';
        public function __construct($packedValue = '')
        {
        }
        public function getPackedValue()
        {
        }
        /**
         * @return Result
         */
        public abstract function tryUnpack();
        public abstract function unpack();
    }
    /**
     * @package Bitrix\Sale\Archive\Recovery
     */
    class JsonField extends \Bitrix\Sale\Archive\Recovery\PackedField
    {
        public function tryUnpack()
        {
        }
        public function unpack()
        {
        }
        private function formatResult(array $fields)
        {
        }
    }
    /**
     * @package Bitrix\Sale\Archive\Recovery
     */
    interface Buildable
    {
        /**
         * @return Archive\Order
         */
        public function buildOrder();
        public function setEntityFields($entityName, array $fields = null);
    }
    /**
     * @package Bitrix\Sale\Archive\Recovery
     */
    abstract class Builder implements \Bitrix\Sale\Archive\Recovery\Buildable, \Bitrix\Sale\Archive\Recovery\ArchivePackable
    {
        /** @var Archive\Order $order*/
        protected $order = null;
        /** @var PackedField $packedOrder*/
        protected $packedOrder = null;
        protected $entitiesFields = [];
        protected $packedBasketItems = [];
        public function setPackedOrder(\Bitrix\Sale\Archive\Recovery\PackedField $field)
        {
        }
        public function addPackedBasketItem($id, \Bitrix\Sale\Archive\Recovery\PackedField $field)
        {
        }
        public function tryUnpack()
        {
        }
        public function setEntityFields($name, array $value = null)
        {
        }
        public abstract function buildOrder();
    }
    /**
     * @package Bitrix\Sale\Archive\Recovery
     */
    class SerializedField extends \Bitrix\Sale\Archive\Recovery\PackedField
    {
        public function tryUnpack()
        {
        }
        public function unpack()
        {
        }
    }
    /**
     * Contain realization of Archive\Order object creation from archive.
     * Value of archive version is "1" or "2".
     * 
     * @package Bitrix\Sale\Archive\Recovery
     */
    class FirstSchemeBuilder extends \Bitrix\Sale\Archive\Recovery\Builder
    {
        public function tryUnpack()
        {
        }
        public function buildOrder()
        {
        }
        /**
         * @param array $propertyCollectionArchived
         *
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        protected function riseOrderProperties(array $propertyCollectionArchived = [])
        {
        }
        /**
         * Load basket from archive.
         *
         * @param array $archivedBasketItems
         *
         * @return array $basketItemsMap
         */
        protected function riseBasket(array $archivedBasketItems = [])
        {
        }
        /**
         * Load basket items with properties from archive.
         *
         * @param Sale\BasketItem $item
         * @param array $data
         *
         * @throws Main\ArgumentOutOfRangeException
         */
        protected function riseBasketItem(&$item, $data = array())
        {
        }
        /**
         * Load payments from archive.
         *
         * @param array $paymentCollectionArchived
         *
         * @throws Main\ArgumentOutOfRangeException
         */
        protected function risePayment(array $paymentCollectionArchived)
        {
        }
        /**
         * Load shipments with items from archive.
         * 
         * @param array $shipmentCollectionArchived
         * @param array $basketItemsMap
         * @param array $itemsStoeMap
         *
         * @throws Main\NotSupportedException
         */
        protected function riseShipment(array $shipmentCollectionArchived, array $basketItemsMap, array $itemsStoreMap = [])
        {
        }
        /**
         * Return discount's array from archive.
         * The array includes information about discounts of base order.
         * 
         * @param array $discountData
         *
         * @return mixed
         */
        protected function riseDiscount($discountData)
        {
        }
        /**
         * Prepare discount price's array from restored entities.
         *
         * @return mixed
         */
        protected function prepareDiscountPrices()
        {
        }
        /**
         * Prepare discount result's array from restored entities.
         *
         * @param $discountData
         *
         * @return mixed
         */
        protected function prepareDiscountResult($discountData)
        {
        }
        /**
         * Prepare discount data
         *
         * @param $dataRow
         *
         * @return array
         */
        protected function prepareDiscountOrderData($dataRow)
        {
        }
        /**
         * Prepare discount description array
         *
         * @param $discounts
         * @param $discountResult
         *
         * @return mixed
         */
        protected function prepareDiscountList(array $discounts, array $discountResult)
        {
        }
        /**
         * @param array $discountResult
         *
         * @return array
         */
        protected function getAppliedDiscountIds(array $discountResult)
        {
        }
    }
}
namespace Bitrix\Sale\Archive {
    /**
     * Class manages of orders's archiving, restoring entries from database
     *
     * @package Bitrix\Sale\Archive
     */
    class Manager
    {
        const SALE_ARCHIVE_VERSION = 2;
        /**
         * @return array
         */
        public static function getOrderFieldNames()
        {
        }
        /**
         * @return array
         */
        public static function getBasketFieldNames()
        {
        }
        /**
         * Archive orders by filter
         *
         * @param array $filter			Filter the selection.
         * @param int $limit		Limit the selection orders.
         * @param int $timeExecution		Limits the maximum execution time.
         *
         * @return Sale\Result $result
         *
         * @throws \Exception
         */
        public static function archiveOrders($filter = array(), $limit = null, $timeExecution = null)
        {
        }
        /**
         * Archive orders that are selected by module's settings.
         * 
         * Used in agents.
         * 
         * @param int $limit		Limit the selection orders.
         * @param int $timeExecution		Limits the maximum execution time.
         *
         * @return Sale\Result
         *
         * @throws Main\SystemException
         */
        public static function archiveByOptions($limit = null, $timeExecution = null)
        {
        }
        /**
         * Used in agents. Manage execution of agent.
         *
         * @param int $limit		Limit the selection orders.
         * @param int $maxTime		Maximum execution time of agent.
         *
         * @return string
         *
         * @throws Main\ArgumentNullException
         */
        public static function archiveOnAgent($limit, $maxTime = null)
        {
        }
        /**
         * @param array $parameters
         *
         * @return Main\DB\Result
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * Get entry of order from archive by entry's id.
         *
         * @param int $id
         *
         * @return Main\DB\Result
         */
        public static function getById($id)
        {
        }
        /**
         * Get entries of basket items from archive.
         * 
         * @param array $parameters
         *
         * @return Main\DB\Result
         * @throws Main\ArgumentException
         */
        public static function getBasketList(array $parameters = array())
        {
        }
        /**
         * Get entry of basket item from archive by id.
         * 
         * @param int $id
         *
         * @return Main\DB\Result
         * @throws Main\ArgumentException
         */
        public static function getBasketItemById($id)
        {
        }
        /**
         * Delete archived order with archived basket items.
         * 
         * @param int $id
         *
         * @return Main\Entity\DeleteResult
         * @throws \Exception
         */
        public static function delete($id)
        {
        }
        /**
         * Return Archive\Order object restored from archive
         *
         * @param int $id		Entity's id.
         *
         * @return Sale\Order
         * @throws Main\ObjectNotFoundException
         * @throws Main\ArgumentNullException
         */
        public static function returnArchivedOrder($id)
        {
        }
    }
}
namespace Bitrix\Sale\Archive\Process {
    /**
     * @package Bitrix\Sale\Archive\Process
     */
    class OrderArchiveItem
    {
        private $order = null;
        private $orderDataFields = [];
        private $basketDataFields = [];
        /**
         * OrderArchiveItem constructor.
         *
         * @param Sale\Order $order
         */
        public function __construct(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @return int
         */
        public function getId()
        {
        }
        /**
         * @param $name
         * @param array $value
         */
        public function addOrderDataField($name, array $value)
        {
        }
        /**
         * @param array $value
         */
        public function addBasketDataFields(array $value)
        {
        }
        /**
         * @return Main\Result
         */
        public function archive()
        {
        }
        /**
         * @param Sale\Order $order
         *
         * @return Main\Result
         */
        private function callEventOnBeforeOrderArchived(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @throws Main\ArgumentException
         */
        private function tryUnreserveShipments()
        {
        }
        /**
         * @return Main\Entity\AddResult
         */
        private function saveOrderArchive()
        {
        }
        private function prepareEncodeFields(array $fields)
        {
        }
        /**
         * @param array $item
         * @param $archivedOrderId
         *
         * @return Main\Entity\AddResult
         */
        private function saveBasketItemArchive(array $item, $archivedOrderId)
        {
        }
        private function getOrderDataField($name)
        {
        }
    }
    /**
     * @package Bitrix\Sale\Archive\Process
     */
    class OrderArchiveCollection extends \Bitrix\Sale\Internals\CollectionBase
    {
        public function loadFromDB(array $parameters)
        {
        }
        private function addItem(\Bitrix\Sale\Archive\Process\OrderArchiveItem $item)
        {
        }
        private function fillItemsData()
        {
        }
        private function getItemById($id)
        {
        }
        private function getItemIds()
        {
        }
        /**
         * Collect order properties and sort by orders's ids
         *
         * @param $orderIds
         *
         * @return array
         */
        private function collectOrderProperties($orderIds)
        {
        }
        /**
         * Collect payments and sort by orders's ids
         *
         * @param $orderIds
         *
         * @return array
         * @throws Main\ArgumentException
         */
        private function collectPayments(array $orderIds)
        {
        }
        /**
         * Collect shipments with shipment items and sort by orders's ids
         *
         * @param $orderIds
         *
         * @return array
         * @throws Main\ArgumentException
         */
        private function collectShipments(array $orderIds)
        {
        }
        /**
         * Collect basket items with barcodes and sort by orders's ids
         *
         * @param $orderIds
         *
         * @return array
         * @throws Main\ArgumentException
         */
        private function collectBaskets(array $orderIds)
        {
        }
        /**
         * Collect discount data and sort by orders's ids
         *
         * @param $orderIds
         *
         * @return array
         */
        private function collectDiscountData(array $orderIds)
        {
        }
        /**
         * Collect coupons and sort by orders's ids
         *
         * @param $orderIds
         *
         * @return array
         */
        private function collectCoupons($orderIds)
        {
        }
        /**
         * Collect discount data and sort by orders's ids
         *
         * @param $orderIds
         *
         * @return array
         */
        private function collectRules($orderIds)
        {
        }
        /**
         * @param int $index
         *
         * @throws Main\ArgumentOutOfRangeException
         */
        public function deleteItem($index)
        {
        }
    }
}
namespace Bitrix\Main\Update {
    /**
    * Class Stepper
    * @package Bitrix\Main\Update
    * This class can be used if only:
    * 1. you do not alter tables in DB. Agent will not be executed if module is not installed.
    * Code to bind agent in updater:
    * \Bitrix\Main\Update\Stepper::bindClass('Bitrix\Tasks\Update1701', 'tasks');
    * or
    * if($updater->CanUpdateDatabase()) {
    $basePath = $updater->CanUpdateKernel() ? $updater->curModulePath.'/lib/somepath' : BX_ROOT.'/modules/lists/lib/somepath';
    if(include_once($_SERVER["DOCUMENT_ROOT"].$basePath."ecrmpropertyupdate.php"))
    \Bitrix\Lists\SomePath\EcrmPropertyUpdate::bind();
    }
    */
    abstract class Stepper
    {
        protected static $moduleId = "main";
        protected $deleteFile = false;
        protected $outerParams = [];
        private static $filesToUnlink = array();
        private static $countId = 0;
        const CONTINUE_EXECUTION = true;
        const FINISH_EXECUTION = false;
        /**
         * Returns HTML to show updates.
         * @param array|string $ids
         * @param string $title
         * @return string
         */
        public static function getHtml($ids = array(), $title = "")
        {
        }
        public static function getTitle()
        {
        }
        /**
         * Execute an agent
         * @return string
         */
        public static function execAgent()
        {
        }
        public function __destruct()
        {
        }
        /**
         * Executes some action, and if return value is false, agent will be deleted.
         * @param array $option Array with main data to show if it is necessary like {steps : 35, count : 7}, where steps is an amount of iterations, count - current position.
         * @return boolean
         */
        abstract function execute(array &$option);
        public function setOuterParams(array $outerParams) : void
        {
        }
        public function getOuterParams() : array
        {
        }
        /**
         * It is possible to pass only integer and string values for now. But you can make your own method or extend this one.
         * @param array $arguments
         * @return string
         */
        public static function makeArguments($arguments = []) : string
        {
        }
        /**
         * Just fabric method.
         * @return Stepper
         */
        public static function createInstance()
        {
        }
        /**
         * Wrap-function to get moduleId.
         * @return string
         */
        public static function getModuleId()
        {
        }
        /**
         * Adds agent for current class.
         * @param int $delay Delay for running agent
         * @param array $withArguments Data that will available in $stepper->outerParams
         * @return void
         */
        public static function bind($delay = 300, $withArguments = [])
        {
        }
        /**
         * Adds agent for class $className for $moduleId module. Example for updater: \Bitrix\Main\Stepper::bindClass('\Bitrix\SomeModule\SomeClass', 'somemodule').
         * @param string $className Class like \Bitrix\SomeModule\SomeClass extends Stepper.
         * @param string $moduleId Module ID like somemodule.
         * @param int $delay Delay for running agent
         * @param array $withArguments
         * @return void
         */
        public static function bindClass($className, $moduleId, $delay = 300, $withArguments = [])
        {
        }
        /**
         * Just method to check request.
         * @return void
         */
        public static function checkRequest()
        {
        }
        /**
         * Sends json.
         * @param $result
         * @return void
         */
        private static function sendJson($result)
        {
        }
        protected function writeToLog(\Exception $exception)
        {
        }
    }
}
namespace Bitrix\Sale\Update {
    final class DiscountExecutionModeIndex extends \Bitrix\Main\Update\Stepper
    {
        const CONTINUE_EXECUTING = true;
        const STOP_EXECUTING = false;
        const PORTION = 30;
        const TMP_EXECUTE_MODE = 22;
        protected static $moduleId = 'sale';
        public function execute(array &$result)
        {
        }
        /**
         * @return array
         */
        protected function loadCurrentStatus()
        {
        }
    }
    /**
     * Class FilterOption
     * The class is designed to convert the settings of the old administrative filter into a new one.
     * @package Bitrix\Sale\Dev\Converter
     */
    class FilterOption extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "sale";
        protected $deleteFile = true;
        protected $limit = 100;
        /**
         * The method records the necessary data for conversion into an option.
         *
         * @param string $filterId Filter id.
         * @param string $tableId Grid id.
         * @param array $ratioFields Fields of the old and new filter.
         *    array(
         *      "find_name" => "NAME",
         *      "find_lang" => "LID",
         *      ...
         *    )
         *
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function setFilterToConvert($filterId, $tableId, array $ratioFields)
        {
        }
        public function execute(array &$option)
        {
        }
        protected function convertOldFieldsToNewFields(array $oldFields, array $ratioFields)
        {
        }
        protected function getNewDateType($oldDateType, $oldDateValue)
        {
        }
    }
}
namespace Bitrix\Main\Update {
    /**
     * Class GridOption
     * The class is designed to convert the settings of the old administrative grid into a new one.
     *
     * An example of how this miracle works can be seen here: sale,18.5.7; iblock,18.5.5; catalog,18.5.6;
     *
     * @package Bitrix\Main\Update
     */
    class AdminGridOption extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "main";
        protected $limit = 100;
        /**
         * The method records the necessary data for conversion into an option.
         * @param string $tableId Grid id.
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function setGridToConvert($tableId)
        {
        }
        public function execute(array &$option)
        {
        }
    }
}
namespace Bitrix\Sale\Update {
    /**
     * Class AdminGridOption
     * The class is designed to convert the settings of the old administrative grid into a new one.
     *
     * @package Bitrix\Sale\Update
     */
    class AdminGridOption extends \Bitrix\Main\Update\AdminGridOption
    {
        protected static $moduleId = "sale";
    }
    /**
     * Class GridOption
     * The class is designed to convert the settings of the old administrative grid into a new one.
     * @package Bitrix\Sale\Dev\Converter
     */
    class GridOption extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "sale";
        protected $deleteFile = true;
        protected $limit = 100;
        /**
         * The method records the necessary data for conversion into an option.
         * @param string $tableId Grid id.
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function setGridToConvert($tableId)
        {
        }
        public function execute(array &$option)
        {
        }
    }
}
namespace Bitrix\Main\Update {
    /**
     * Class FilterOption
     * The class is designed to convert the settings of the old administrative filter into a new one.
     *
     * An example of how this miracle works can be seen here: sale,18.5.7; iblock,18.5.5; catalog,18.5.6; main,17.0.11;
     *
     * @package Bitrix\Main\Dev\Converter
     */
    class AdminFilterOption extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "main";
        protected $limit = 100;
        /**
         * The method records the necessary data for conversion into an option.
         *
         * @param string $filterId Filter id.
         * @param string $tableId Grid id.
         * @param array $ratioFields Fields of the old and new filter.
         *    array(
         *      "find_name" => "NAME",
         *      "find_lang" => "LID",
         *      ...
         *    )
         *
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function setFilterToConvert($filterId, $tableId, array $ratioFields)
        {
        }
        public function execute(array &$option)
        {
        }
        protected function convertOldFieldsToNewFields(array $oldFields, array $ratioFields)
        {
        }
        protected function getNewDateType($oldDateType, $oldDateValue)
        {
        }
    }
}
namespace Bitrix\Sale\Update {
    /**
     * Class AdminFilterOption
     * The class is designed to convert the settings of the old administrative filter into a new one.
     *
     * @package Bitrix\Sale\Update
     */
    class AdminFilterOption extends \Bitrix\Main\Update\AdminFilterOption
    {
        protected static $moduleId = "sale";
    }
    /**
     * Class CrmEntityCreator
     * Create crm entities: contact and company
     *
     * @package Bitrix\Sale\Update
     */
    final class CrmEntityCreator
    {
        /** @var Order\Order $order */
        private $order;
        /**
         * CrmEntityCreator constructor
         *
         * @param Order\Order $order
         */
        public function __construct(\Bitrix\Crm\Order\Order $order)
        {
        }
        /**
         * @return Sale\Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws \Exception
         */
        public function create()
        {
        }
        /**
         * @return bool
         */
        private function isSetResponsible()
        {
        }
        /**
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        private function setResponsible()
        {
        }
        /**
         * @return void
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\SystemException
         */
        private function addContactCompany()
        {
        }
        /**
         * @return void
         * @throws Main\ArgumentException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\SystemException
         */
        private function setContactCompanyRequisites()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function addTimeLines()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @return void;
         */
        private function addTimelineEntryOnCreate()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @return void;
         */
        private function addTimelineEntryOnCancel()
        {
        }
        /**
         * @param $prevStatus
         * @param $currentStatus
         * @return void;
         * @throws Main\ArgumentException
         */
        private function addTimelineEntryOnStatusModify($prevStatus, $currentStatus)
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getHistoryChanges()
        {
        }
    }
    /**
     * Class CrmEntityCreatorStepper
     * Stepper for creating crm entities
     *
     * @package Bitrix\Sale\Update
     */
    final class CrmEntityCreatorStepper extends \Bitrix\Main\Update\Stepper
    {
        const CONTINUE_EXECUTING = true;
        const STOP_EXECUTING = false;
        /** @var string */
        const IS_SALE_CRM_SITE_MASTER_STUB = "~IS_SALE_CRM_SITE_MASTER_STUB";
        /** @var string */
        const ORDER_CONVERT_IS_FINISH = "~ORDER_CONVERT_IS_FINISH";
        /** @var string */
        const IS_SALE_CRM_SITE_MASTER_FINISH = "~IS_SALE_CRM_SITE_MASTER_FINISH";
        const PREFIX_OPTION_ADMIN_PANEL_IS_ENABLED = "~ADMIN_PANEL_IS_ENABLED_FOR_";
        const IS_CRM_SITE_MASTER_OPENED = "~IS_CRM_SITE_MASTER_OPENED";
        /** @var string */
        const WIZARD_SITE_ID = "~CRM_WIZARD_SITE_ID";
        /** @var string */
        const STEPPER_PARAMS = "~CRM_ENTITY_CREATOR_STEPPER_PARAMS";
        const UPDATE_ORDER_CONVERTER_CRM_ERROR_TABLE = "~UPDATE_ORDER_CONVERTER_CRM_ERROR_TABLE";
        const ORDER_CONVERTER_CRM_ERROR_COUNT = "~ORDER_CONVERTER_CRM_ERROR_COUNT";
        /** @var int max executing time in sec */
        const MAX_EXECUTION_TIME = 5;
        /** @var int max orders of iteration */
        const MAX_ORDERS = 100;
        protected static $moduleId = "sale";
        private $orderList = [];
        private $params = [];
        /**
         * @param array &$result
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\LoaderException
         * @throws Main\NotImplementedException
         * @throws Main\SystemException
         */
        public function execute(array &$result)
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function createCrmEntity()
        {
        }
        /**
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        private function initParams()
        {
        }
        /**
         * @param $orderId
         * @throws Main\ArgumentOutOfRangeException
         */
        private function updateParams($orderId)
        {
        }
        /**
         * @return array|null
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        private function getOrders()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getErrorOrders()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        private function getOrderCount()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getErrorOrderCount()
        {
        }
        /**
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function setFinishStatus()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function isFinished()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        private static function isUpdateOrder()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function isNeedStub()
        {
        }
        /**
         * @return bool
         */
        public static function isAgent()
        {
        }
        /**
         * Show progress bar in crm and shop section
         *
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function showProgressBar() : void
        {
        }
        /**
         * @return string
         */
        public static function getTitle()
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function bindAgent() : void
        {
        }
        /**
         * Register event handler for show progressbar
         */
        public static function registerEventHandler()
        {
        }
        /**
         * Unregister event handler for show progressbar
         */
        public static function unregisterEventHandler()
        {
        }
        /**
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function bindAgentOrderUpdate()
        {
        }
        /**
         * Register event handler for show progressbar
         *
         * @throws Main\ArgumentNullException
         */
        public static function registerOrderUpdateEventHandler()
        {
        }
        /**
         * Unregister event handler for show progressbar
         */
        public static function unregisterOrderUpdateEventHandler()
        {
        }
        /**
         * @param $orderId
         * @param $errorMessage
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws \Exception
         */
        private function setError($orderId, $errorMessage) : void
        {
        }
        /**
         * @param $orderId
         * @param $errorMessage
         * @throws \Exception
         */
        private function addError($orderId, $errorMessage)
        {
        }
        /**
         * @param $orderId
         * @param $errorMessage
         * @throws \Exception
         */
        private function updateError($orderId, $errorMessage)
        {
        }
        /**
         * @param $orderId
         * @throws \Exception
         */
        private function deleteError($orderId)
        {
        }
        /**
         * @param array $parameters
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getErrors(array $parameters = [])
        {
        }
        /**
         * @param $message
         */
        private function addAdminNormalNotify($message)
        {
        }
        /**
         * @param $message
         */
        private function addAdminErrorNotify($message)
        {
        }
        /**
         * Add notification in admin section
         * @param $message
         * @param $notifyType
         */
        private function addAdminNotify($message, $notifyType)
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        private static function getCrmSiteId()
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function getPathToOrderList()
        {
        }
        /**
         * @param $params
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function OnAfterUserLogin($params)
        {
        }
    }
}
namespace Bitrix\Sale {
    /**
     * Class BasketItemCollection
     * @package Bitrix\Sale
     */
    abstract class BasketItemCollection extends \Bitrix\Sale\Internals\EntityCollection
    {
        /**
         * @param $moduleId
         * @param $productId
         * @param null $basketCode
         * @return BasketItemBase
         * @throws NotImplementedException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function createItem($moduleId, $productId, $basketCode = null)
        {
        }
        /**
         * @param BasketItemCollection $basket
         * @param $moduleId
         * @param $productId
         * @param null $basketCode
         * @return BasketItemBase
         * @throws NotImplementedException
         * @throws \Bitrix\Main\ArgumentException
         */
        protected static function createItemInternal(\Bitrix\Sale\BasketItemCollection $basket, $moduleId, $productId, $basketCode = null)
        {
        }
        /**
         * @return OrderBase
         */
        public function getOrder()
        {
        }
        /**
         * @return BasketBase
         */
        public abstract function getBasket();
        /**
         * @param array $itemList
         * @throws NotImplementedException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function loadFromArray(array $itemList)
        {
        }
        /**
         * @return string
         * @throws NotImplementedException
         * @throws \Bitrix\Main\ArgumentException
         */
        protected static function getItemCollectionClassName()
        {
        }
        /**
         * @param $code
         * @return BasketItemBase|null
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function getItemByBasketCode($code)
        {
        }
        /**
         * @param $id
         * @return BasketItemBase|null
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function getItemById($id)
        {
        }
        /**
         * @return array
         */
        public function getBasketItems()
        {
        }
        /**
         * @param $moduleId
         * @param $productId
         * @param array $properties
         * @return BasketItem|null
         * @throws NotImplementedException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function getExistsItem($moduleId, $productId, array $properties = array())
        {
        }
        /**
         * @return int
         */
        public function getOrderId()
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         */
        public function getContext()
        {
        }
    }
    /**
     * Class BasketBase
     * @package Bitrix\Sale
     */
    abstract class BasketBase extends \Bitrix\Sale\BasketItemCollection
    {
        /** @var string */
        protected $siteId = null;
        /** @var int */
        protected $fUserId = null;
        /** @var OrderBase */
        protected $order = null;
        /** @var array $basketItemIndexMap */
        protected $basketItemIndexMap = array();
        /** @var int $maxItemSort */
        protected $maxItemSort = null;
        /** @var bool $isLoadForFUserId */
        private $isLoadForFUserId = false;
        /** @var bool $isSaveExecuting */
        protected $isSaveExecuting = false;
        /**
         * @param $code
         * @return BasketItemBase|null
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentNullException
         */
        public function getItemByBasketCode($code)
        {
        }
        /**
         * @param BasketItemBase $item
         * @return BasketItemBase|null
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\NotImplementedException
         */
        public function getExistsItemByItem(\Bitrix\Sale\BasketItemBase $item)
        {
        }
        /**
         * @return OrderBase
         */
        protected function getEntityParent()
        {
        }
        /**
         * @return BasketBase
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        private static function createBasketObject()
        {
        }
        /**
         * @param $fUserId
         * @param $siteId
         * @return BasketBase
         * @throws Main\ArgumentException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         */
        public static function loadItemsForFUser($fUserId, $siteId)
        {
        }
        /**
         * @param array $filter
         * @return BasketBase
         * @throws Main\ArgumentException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         */
        protected function loadFromDb(array $filter)
        {
        }
        /**
         * Attach to the essence of the object of the order basket
         *
         * @param OrderBase $order - object of the order
         */
        public function setOrder(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * Getting the object of the order
         *
         * @return OrderBase
         */
        public function getOrder()
        {
        }
        /**
         * @param BasketItemBase $item
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        protected function verifyItemSort(\Bitrix\Sale\BasketItemBase $item)
        {
        }
        /**
         * @param $siteId
         * @return BasketBase
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        public static function create($siteId)
        {
        }
        /**
         * Getting basket price with discounts and taxes
         *
         * @return float
         * @throws Main\ArgumentNullException
         */
        public function getPrice()
        {
        }
        /**
         * Getting basket price without discounts
         *
         * @return float
         * @throws Main\ArgumentNullException
         */
        public function getBasePrice()
        {
        }
        /**
         * Getting the value of the tax basket
         *
         * @return float
         * @throws Main\ArgumentNullException
         */
        public function getVatSum()
        {
        }
        /**
         * Getting the value of the tax rate basket
         *
         * @return float
         * @throws Main\ArgumentNullException
         */
        public function getVatRate()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectNotFoundException
         */
        public function verify()
        {
        }
        /**
         * Getting the weight basket
         *
         * @return int
         */
        public function getWeight()
        {
        }
        /**
         * @return array
         */
        private function getOriginalItemsValues()
        {
        }
        /**
         * @param array $itemValues
         * @return Result
         */
        protected abstract function deleteInternal(array $itemValues);
        /**
         * Save basket
         *
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectNotFoundException
         */
        public function save()
        {
        }
        /**
         * @param $itemValues
         * @return void
         */
        private function callEventOnBeforeSaleBasketItemDeleted($itemValues)
        {
        }
        /**
         * @param $itemValues
         * @return void
         */
        protected function callEventOnSaleBasketItemDeleted($itemValues)
        {
        }
        /**
         * @return Result
         */
        protected function callEventOnSaleBasketBeforeSaved()
        {
        }
        /**
         * @return Result
         */
        protected function callEventOnSaleBasketSaved()
        {
        }
        /**
         * Setting Customer ID to basket
         *
         * @param $fUserId - customer ID
         */
        public function setFUserId($fUserId)
        {
        }
        /**
         * Setting site ID to basket
         *
         * @param $siteId - site ID
         */
        protected function setSiteId($siteId)
        {
        }
        /**
         * Getting Customer ID
         *
         * @param bool $skipCreate - Creating a buyer if it is not found
         * @return int|null
         */
        public function getFUserId($skipCreate = false)
        {
        }
        /**
         * Getting Site ID
         *
         * @return string
         */
        public function getSiteId()
        {
        }
        /**
         * @param array $parameters
         * @throws Main\NotImplementedException
         * @return mixed
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * @param Internals\CollectableEntity $item
         * @param null $name
         * @param null $oldValue
         * @param null $value
         * @return Result
         * @throws Main\ArgumentTypeException
         */
        public function onItemModify(\Bitrix\Sale\Internals\CollectableEntity $item, $name = null, $oldValue = null, $value = null)
        {
        }
        /**
         * @param RefreshStrategy|null $strategy
         * @return Result
         */
        public function refresh(\Bitrix\Sale\Basket\RefreshStrategy $strategy = null)
        {
        }
        /**
         * @return BasketBase
         * @throws Main\ArgumentNullException
         */
        public function getOrderableItems()
        {
        }
        /**
         * @return BasketBase
         */
        public function getBasket()
        {
        }
        /**
         * @param $idOrder
         * @throws Main\NotImplementedException
         * @return Result
         */
        public static function deleteNoDemand($idOrder)
        {
        }
        /**
         * @return bool
         */
        public function isSaveRunning()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         */
        public function getContext()
        {
        }
        /**
         * Getting a list of a count of elements in the basket
         *
         * @return array
         * @throws Main\ArgumentNullException
         */
        public function getQuantityList()
        {
        }
        /**
         * @internal
         *
         * @param $index
         * @return mixed
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public function deleteItem($index)
        {
        }
        /**
         * Apply the result of the discounts to the basket.
         * @internal
         *
         * @param array $basketRows
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function applyDiscount(array $basketRows)
        {
        }
        /**
         * @internal
         * @param \SplObjectStorage $cloneEntity
         *
         * @return BasketItemCollection
         */
        public function createClone(\SplObjectStorage $cloneEntity = null)
        {
        }
        /**
         * Returns copy of current basket.
         * For example, the copy will be used to calculate discounts.
         * So, basket does not contain full information about BasketItem with bundleCollection, because now it is not
         * necessary.
         *
         * Attention! Don't save the basket.
         *
         * @internal
         * @return BasketBase
         * @throws Main\SystemException
         */
        public function copy()
        {
        }
        /**
         * @internal
         *
         * Load the contents of the basket to order
         *
         * @param OrderBase $order
         * @return BasketBase
         * @throws Main\ArgumentException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         */
        public static function loadItemsForOrder(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * @internal
         *
         * @param Internals\CollectableEntity $basketItem
         * @return Internals\CollectableEntity|void
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public function addItem(\Bitrix\Sale\Internals\CollectableEntity $basketItem)
        {
        }
        /**
         * @deprecated Use \Bitrix\Sale\BasketBase::refresh instead
         *
         * @param array $select
         * @param BasketItemBase|null $refreshItem
         * @return Result
         * @throws Main\ArgumentNullException
         */
        public function refreshData($select = array(), \Bitrix\Sale\BasketItemBase $refreshItem = null)
        {
        }
    }
    class EventActions
    {
        const ADD = "ADD";
        const UPDATE = "UPDATE";
        const DELETE = "DELETE";
        // Events new kernel
        const EVENT_ON_ORDER_PAID = "OnSaleOrderPaid";
        const EVENT_ON_BEFORE_ORDER_DELETE = "OnSaleBeforeOrderDelete";
        const EVENT_ON_ORDER_DELETED = "OnSaleOrderDeleted";
        const EVENT_ON_ORDER_BEFORE_SAVED = "OnSaleOrderBeforeSaved";
        const EVENT_ON_ORDER_SAVED = "OnSaleOrderSaved";
        const EVENT_ON_SHIPMENT_DELIVER = "OnSaleShipmentDelivery";
        const EVENT_ON_BEFORE_ORDER_CANCELED = "OnSaleBeforeOrderCanceled";
        const EVENT_ON_ORDER_CANCELED = "OnSaleOrderCanceled";
        const EVENT_ON_ORDER_PAID_SEND_MAIL = "OnSaleOrderPaidSendMail";
        const EVENT_ON_ORDER_CANCELED_SEND_MAIL = "OnSaleOrderCancelSendEmail";
        const EVENT_ON_BASKET_BEFORE_SAVED = "OnSaleBasketBeforeSaved";
        const EVENT_ON_BASKET_ITEM_BEFORE_SAVED = "OnSaleBasketItemBeforeSaved";
        const EVENT_ON_BASKET_ITEM_SAVED = "OnSaleBasketItemSaved";
        const EVENT_ON_BASKET_SAVED = "OnSaleBasketSaved";
        const EVENT_ON_SHIPMENT_TRACKING_NUMBER_CHANGE = "OnShipmentTrackingNumberChange";
        const EVENT_ON_SHIPMENT_ALLOW_DELIVERY = "OnShipmentAllowDelivery";
        const EVENT_ON_SHIPMENT_DEDUCTED = "OnShipmentDeducted";
        const EVENT_ON_BEFORE_SHIPMENT_RESERVE = "OnSaleBeforeShipmentReserve";
        const EVENT_ON_SHIPMENT_RESERVED = "OnSaleShipmentReserved";
        const EVENT_ON_PAYMENT_PAID = "OnPaymentPaid";
        const EVENT_ON_BEFORE_ORDER_STATUS_CHANGE = "OnSaleBeforeStatusOrderChange";
        const EVENT_ON_ORDER_STATUS_CHANGE = "OnSaleStatusOrderChange";
        const EVENT_ON_ORDER_STATUS_CHANGE_SEND_MAIL = "OnSaleOrderStatusChangeSendEmail";
        const EVENT_ON_BEFORE_SHIPMENT_STATUS_CHANGE = "OnSaleBeforeStatusShipmentChange";
        const EVENT_ON_SHIPMENT_STATUS_CHANGE = "OnSaleStatusShipmentChange";
        const EVENT_ON_SHIPMENT_STATUS_CHANGE_SEND_MAIL = "OnSaleShipmentStatusChangeSendEmail";
        const EVENT_ON_ORDER_STATUS_ALLOW_PAY_CHANGE = "OnSaleStatusAllowPayChange";
        const EVENT_ON_ORDER_STATUS_ALLOW_PAY_CHANGE_SEND_MAIL = "onSaleOrderStatusAllowPaySendEmail";
        const EVENT_ON_ADMIN_ORDER_LIST = "OnSaleAdminOrderList";
        const EVENT_ON_BASKET_ITEM_REFRESH_DATA = "OnSaleBasketItemRefreshData";
        const EVENT_ON_CHECK_PRINT = "OnSalePaymentCheckPrint";
        const EVENT_ON_CHECK_PRINT_ERROR = "OnSalePaymentCheckPrintError";
        const EVENT_ON_TAX_GET_LIST = "OnSaleTaxGetList";
        const ENTITY_COLLECTABLE_ENTITY = \Bitrix\Sale\Internals\CollectableEntity::class;
        const EVENT_ON_ORDER_BEFORE_ARCHIVED = "OnSaleOrderBeforeArchived";
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getEventNotifyMap()
        {
        }
    }
    /**
     * Class StatusBase
     * @package Bitrix\Sale
     */
    abstract class StatusBase
    {
        const TYPE = '';
        /**
         * @param array $parameters
         * @return Main\DB\Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * @param $userId
         *
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        protected static function getUserGroups($userId)
        {
        }
        /**
         * @param $groupId
         * @param $fromStatus
         * @param array $operations
         * @return bool
         * @throws Main\NotImplementedException
         * @throws SystemException
         */
        public static function canGroupDoOperations($groupId, $fromStatus, array $operations)
        {
        }
        /**
         * Get statuses that user can switch to.
         *
         * @param $userId
         * @param $fromStatus
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        public static function getAllowedUserStatuses($userId, $fromStatus)
        {
        }
        /**
         * @param $groupId
         * @param $fromStatus
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        protected static function getAllowedGroupStatuses($groupId, $fromStatus)
        {
        }
        /**
         * @param $names
         * @return array
         */
        private static function convertNamesToOperations($names)
        {
        }
        /**
         * Get all statuses for current class type.
         *
         * @return mixed
         * @throws Main\NotImplementedException
         */
        public static function getAllStatuses()
        {
        }
        /**
         * Get all statuses names for current class type.
         *
         * @param null $lang
         * @return mixed
         * @throws Main\NotImplementedException
         */
        public static function getAllStatusesNames($lang = null)
        {
        }
        /**
         * Get statuses user can do operations within
         *
         * @param $userId
         * @param array $operations
         * @return array|mixed
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        public static function getStatusesUserCanDoOperations($userId, array $operations)
        {
        }
        /**
         * @param $groupId
         * @param array $operations
         * @return array|mixed
         * @throws Main\NotImplementedException
         */
        public static function getStatusesGroupCanDoOperations($groupId, array $operations)
        {
        }
        /**
         * @param $groupId
         * @param array $operations
         * @return array
         * @throws Main\NotImplementedException
         */
        private static function getStatusesByGroupId(array $groupId, array $operations = array())
        {
        }
        /**
         * @throws Main\NotImplementedException
         */
        public static function getInitialStatus()
        {
        }
        /**
         * @throws Main\NotImplementedException
         */
        public static function getFinalStatus()
        {
        }
        /**
         * @param array $data
         * @throws Main\ArgumentException
         * @throws SystemException
         * @throws \Exception
         */
        public static function install(array $data)
        {
        }
    }
    /**
     * Class DeliveryStatus
     * @package Bitrix\Sale
     */
    class DeliveryStatus extends \Bitrix\Sale\StatusBase
    {
        const TYPE = 'D';
        /**
         * @return mixed
         */
        public static function getInitialStatus()
        {
        }
        /**
         * @return mixed
         */
        public static function getFinalStatus()
        {
        }
    }
    class ShipmentItemCollection extends \Bitrix\Sale\Internals\EntityCollection
    {
        /** @var Shipment */
        protected $shipment;
        protected $shipmentItemIndexMap = array();
        /**
         * @return Shipment
         */
        protected function getEntityParent()
        {
        }
        /**
         * @param Basket $basket
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public function resetCollection(\Bitrix\Sale\Basket $basket)
        {
        }
        /**
         * @param BasketItem $basketItem
         * @return ShipmentItem|null
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public function createItem(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param BasketItem $basketItem
         *
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectNotFoundException
         */
        private function addBundleToCollection(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param Internals\CollectableEntity $shipmentItem
         * @return Internals\CollectableEntity|void
         * @throws Main\NotSupportedException
         */
        protected function addItem(\Bitrix\Sale\Internals\CollectableEntity $shipmentItem)
        {
        }
        protected function createIndex()
        {
        }
        /**
         * @internal
         *
         * @param $index
         * @return mixed|void
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         */
        public function deleteItem($index)
        {
        }
        /**
         * @param Internals\CollectableEntity $item
         * @param null $name
         * @param null $oldValue
         * @param null $value
         * @return Result
         * @throws Main\NotSupportedException
         * @throws Main\SystemException
         */
        public function onItemModify(\Bitrix\Sale\Internals\CollectableEntity $item, $name = null, $oldValue = null, $value = null)
        {
        }
        /**
         * @param $itemCode
         * @return ShipmentItem|null
         */
        public function getItemByBasketCode($itemCode)
        {
        }
        /**
         * @param $itemId
         * @return ShipmentItem|null
         */
        public function getItemByBasketId($itemId)
        {
        }
        /**
         * @return Internals\CollectionFilterIterator
         */
        public function getShippableItems()
        {
        }
        /**
         * @return Internals\CollectionFilterIterator
         */
        public function getSellableItems()
        {
        }
        /**
         * @return float|int
         * @throws Main\ArgumentNullException
         */
        public function getPrice()
        {
        }
        /**
         * @return float
         * @throws Main\ArgumentNullException
         */
        public function getWeight() : float
        {
        }
        /**
         * @return Shipment
         */
        public function getShipment()
        {
        }
        /**
         * @return Main\Entity\Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectNotFoundException
         */
        public function save()
        {
        }
        /**
         * @return ShipmentItemCollection
         */
        private static function createShipmentItemCollectionObject()
        {
        }
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @return string
         */
        private static function getItemCollectionClassName()
        {
        }
        /**
         * @param Shipment $shipment
         *
         * @return ShipmentItemCollection
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectNotFoundException
         */
        public static function load(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param array $parameters
         * @return Main\DB\Result
         * @throws Main\ArgumentException
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * @param $primary
         * @return Main\Entity\DeleteResult
         */
        protected function deleteInternal($primary)
        {
        }
        /**
         * @param BasketItem $basketItem
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public function onBeforeBasketItemDelete(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param $action
         * @param BasketItem $basketItem
         * @param null $name
         * @param null $oldValue
         * @param null $value
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public function onBasketModify($action, \Bitrix\Sale\BasketItem $basketItem, $name = null, $oldValue = null, $value = null)
        {
        }
        /**
         * @param BasketItem $basketItem
         * @return bool
         * @throws Main\ObjectNotFoundException
         */
        protected function isExistsBasketItem(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param BasketItem $basketItem
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public function deleteByBasketItem(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @return bool
         */
        public function isEmpty()
        {
        }
        /**
         * @param BasketItem $basketItem
         * @return float|int
         * @throws Main\ArgumentNullException
         */
        public function getBasketItemQuantity(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param BasketItem $basketItem
         *
         * @return bool
         * @throws Main\ObjectNotFoundException
         */
        public function isExistBasketItem(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @internal
         *
         * @param \SplObjectStorage $cloneEntity
         * @return Internals\EntityCollection|object
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectNotFoundException
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * @param $value
         *
         * @return string
         */
        public function getErrorEntity($value)
        {
        }
        /**
         * @param $value
         *
         * @return string
         */
        public function canAutoFixError($value)
        {
        }
    }
}
namespace Bitrix\Sale\Config {
    final class Feature
    {
        private const DISCOUNT_CONSTRUCTOR = 'sale_discount_constructor';
        private const CUMULATIVE_DISCOUNTS = 'sale_cumulative_discounts';
        private static $bitrix24Included = null;
        private static $featureList = [];
        private static $tranferList = [self::CUMULATIVE_DISCOUNTS => 'CatDiscountSave'];
        private static $retailExist = [self::CUMULATIVE_DISCOUNTS => true];
        private static $bitrix24exist = [self::CUMULATIVE_DISCOUNTS => true, self::DISCOUNT_CONSTRUCTOR => true];
        /** @var array bitrix24 articles about tarif features */
        private static $bitrix24helpCodes = [self::DISCOUNT_CONSTRUCTOR => 'limit_shop_discount_builder', self::CUMULATIVE_DISCOUNTS => 'limit_shop_cumulative_discounts'];
        private static $helpCodesCounter = 0;
        private static $initUi = false;
        public static function isCumulativeDiscountsEnabled()
        {
        }
        public static function isDiscountConstructorEnabled()
        {
        }
        /**
         * Returns url description for help article about cumulative discounts.
         *
         * @return array|null
         */
        public static function getCumulativeDiscountsHelpLink() : ?array
        {
        }
        /**
         * Returns url description for help article about cumulative discounts.
         *
         * @return array|null
         */
        public static function getDiscountConstructorHelpLink() : ?array
        {
        }
        /**
         * Init ui scope for show help links on internal pages.
         *
         * @return void
         */
        public static function initUiHelpScope() : void
        {
        }
        private static function isFeatureEnabled($featureId)
        {
        }
        /**
         * Returns javascript link to bitrx24 feature help article.
         *
         * @param string $featureId
         * @return array|null
         */
        private static function getHelpLink(string $featureId) : ?array
        {
        }
        private static function isBitrix24()
        {
        }
    }
}
namespace Bitrix\Sale {
    class DeliveryTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Sale\Cashbox {
    /**
     * Class Check
     * @package Bitrix\Sale\Cashbox
     */
    abstract class Check
    {
        const EVENT_ON_CHECK_PREPARE_DATA = 'OnSaleCheckPrepareData';
        const PARAM_FISCAL_DOC_NUMBER = 'fiscal_doc_number';
        const PARAM_FISCAL_DOC_ATTR = 'fiscal_doc_attribute';
        const PARAM_FISCAL_RECEIPT_NUMBER = 'fiscal_receipt_number';
        const PARAM_FN_NUMBER = 'fn_number';
        const PARAM_SHIFT_NUMBER = 'shift_number';
        const PARAM_REG_NUMBER_KKT = 'reg_number_kkt';
        const PARAM_DOC_TIME = 'doc_time';
        const PARAM_DOC_SUM = 'doc_sum';
        const PARAM_CALCULATION_ATTR = 'calculation_attribute';
        const CALCULATED_SIGN_INCOME = 'income';
        const CALCULATED_SIGN_CONSUMPTION = 'consumption';
        const SHIPMENT_TYPE_NONE = '';
        const PAYMENT_TYPE_CASH = 'cash';
        const PAYMENT_TYPE_ADVANCE = 'advance';
        const PAYMENT_TYPE_CASHLESS = 'cashless';
        const PAYMENT_TYPE_CREDIT = 'credit';
        const PAYMENT_OBJECT_COMMODITY = 'commodity';
        const PAYMENT_OBJECT_EXCISE = 'excise';
        const PAYMENT_OBJECT_JOB = 'job';
        const PAYMENT_OBJECT_SERVICE = 'service';
        const PAYMENT_OBJECT_PAYMENT = 'payment';
        const SUPPORTED_ENTITY_TYPE_PAYMENT = 'payment';
        const SUPPORTED_ENTITY_TYPE_SHIPMENT = 'shipment';
        const SUPPORTED_ENTITY_TYPE_ALL = 'all';
        const SUPPORTED_ENTITY_TYPE_NONE = 'none';
        /** @var array $fields */
        private $fields = array();
        /** @var array $cashboxList */
        private $cashboxList = array();
        /** @var CollectableEntity[] $entities */
        private $entities = array();
        /** @var array $relatedEntities */
        private $relatedEntities = array();
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @param string $handler
         * @return null|Check
         */
        public static function create($handler)
        {
        }
        /**
         * Check constructor.
         */
        private function __construct()
        {
        }
        /**
         * @param $name
         * @return mixed
         */
        public function getField($name)
        {
        }
        /**
         * @param $name
         * @param $value
         */
        public function setField($name, $value)
        {
        }
        /**
         * @return string
         */
        public function getUrl()
        {
        }
        /**
         * @param array $cashboxList
         */
        public function setAvailableCashbox(array $cashboxList)
        {
        }
        /**
         * @param array $entities
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectNotFoundException
         */
        public function setEntities(array $entities)
        {
        }
        /**
         * @param array $entities
         * @throws Main\NotSupportedException
         */
        public function setRelatedEntities(array $entities)
        {
        }
        /**
         * @param $entities
         * @throws Main\NotImplementedException
         * @throws Main\NotSupportedException
         */
        protected function checkRelatedEntities($entities)
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function getRelatedEntities()
        {
        }
        /**
         * @return array|CollectableEntity[]
         * @throws Main\SystemException
         */
        public function getEntities()
        {
        }
        /**
         * @return Main\Entity\AddResult|Main\Entity\UpdateResult
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws \Exception
         */
        public function save()
        {
        }
        /**
         * @param $cashboxId
         */
        public function linkCashbox($cashboxId)
        {
        }
        /**
         * @param $settings
         */
        public function init($settings)
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\LoaderException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function getDataForCheck()
        {
        }
        /**
         * @param array $entities
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function extractDataFromEntitiesInternal(array $entities)
        {
        }
        /**
         * @param string $markingCode
         * @param string $markingCodeGroup
         * @return string
         */
        protected function buildTag1162(string $markingCode, string $markingCodeGroup) : string
        {
        }
        /**
         * @param $code
         * @return array
         */
        private function parseMarkingCode(string $code) : array
        {
        }
        /**
         * @param $string
         * @param $size
         * @return string
         */
        protected function convertToBinaryFormat($string, $size) : string
        {
        }
        /**
         * @param $string
         * @return string
         */
        protected function convertCharsToHex($string) : string
        {
        }
        /**
         * @return array|null
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\LoaderException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function extractData()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function extractDataInternal()
        {
        }
        /**
         * @param Shipment $shipment
         * @return int
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\SystemException
         */
        protected function getDeliveryVatId(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param BasketItem $basketItem
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function getProductVatId(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param $productId
         * @return int
         * @throws Main\LoaderException
         */
        private function getVatIdByProductId($productId)
        {
        }
        /**
         * @param $vatRate
         * @return int|mixed
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getVatIdByVatRate($vatRate)
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\LoaderException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function validate()
        {
        }
        /**
         * @param $data
         * @return bool
         */
        private function isCorrectSum($data)
        {
        }
        /**
         * @return string
         */
        public static function getSupportedEntityType()
        {
        }
        /**
         * @return string
         */
        public static function getSupportedRelatedEntityType()
        {
        }
        /**
         * @deprecated use method extractData() instead
         *
         * @param array $entities
         * @return array|null
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\LoaderException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function extractDataFromEntities(array $entities)
        {
        }
    }
    /**
     * Class CreditPaymentCheck
     * @package Bitrix\Sale\Cashbox
     */
    class CreditPaymentCheck extends \Bitrix\Sale\Cashbox\Check
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
        /**
         * @return string
         */
        public static function getSupportedRelatedEntityType()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\LoaderException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function extractDataInternal()
        {
        }
    }
    /**
     * Class FullPrepaymentCheck
     * @package Bitrix\Sale\Cashbox
     */
    class FullPrepaymentCheck extends \Bitrix\Sale\Cashbox\Check
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return string
         */
        public static function getSupportedEntityType()
        {
        }
        /**
         * @return string
         */
        public static function getSupportedRelatedEntityType()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\LoaderException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function extractDataInternal()
        {
        }
    }
    /**
     * Class FullPrepaymentReturnCashCheck
     * @package Bitrix\Sale\Cashbox
     */
    class FullPrepaymentReturnCashCheck extends \Bitrix\Sale\Cashbox\FullPrepaymentCheck
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return array
         */
        protected function extractDataInternal()
        {
        }
    }
    /**
     * Class Ofd
     * @package Bitrix\Sale\Cashbox
     */
    abstract class Ofd
    {
        protected const EVENT_ON_GET_CUSTOM_OFD_HANDLERS = 'OnGetCustomOfdHandlers';
        /**
         * @return array
         * @throws NotImplementedException
         */
        public static function getHandlerList()
        {
        }
        /**
         * @param Cashbox $cashbox
         * @return null
         */
        public static function create(\Bitrix\Sale\Cashbox\Cashbox $cashbox)
        {
        }
        /**
         * Ofd constructor.
         * @param Cashbox $cashbox
         */
        private function __construct(\Bitrix\Sale\Cashbox\Cashbox $cashbox)
        {
        }
        /**
         * @return string
         */
        protected function getUrl()
        {
        }
        /**
         * @return array
         */
        protected function getLinkParamsMap()
        {
        }
        /**
         * @param $data
         * @return string
         */
        public function generateCheckLink($data)
        {
        }
        /**
         * @throws NotImplementedException
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return array
         */
        public static function getSettings()
        {
        }
        /**
         * @param $settings
         * @return Result
         */
        public function validate()
        {
        }
        /**
         * @param $name
         * @param $code
         * @return mixed
         */
        public function getValueFromSettings($name, $code = null)
        {
        }
        /**
         * @return bool
         */
        protected function isTestMode()
        {
        }
    }
    /**
     * Class PlatformaOfd
     * @package Bitrix\Sale\Cashbox
     */
    class PlatformaOfd extends \Bitrix\Sale\Cashbox\Ofd
    {
        const ACTIVE_URL = 'https://lk.platformaofd.ru/web/noauth/cheque?';
        /**
         * @return string
         */
        protected function getUrl()
        {
        }
        /**
         * @return array
         */
        protected function getLinkParamsMap()
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getName()
        {
        }
    }
    /**
     * Class Logger
     * @package Bitrix\Sale\Cashbox
     */
    class Logger
    {
        /* trace levels */
        protected const TRACE_LEVEL_ERROR = 1;
        protected const TRACE_LEVEL_WARNING = 2;
        protected const TRACE_LEVEL_DEBUG = 3;
        /**
         * @param string $message
         * @param null $cashboxId
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ObjectException
         */
        public static function addError(string $message, $cashboxId = null) : void
        {
        }
        /**
         * @param string $message
         * @param null $cashboxId
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ObjectException
         */
        public static function addWarning(string $message, $cashboxId = null) : void
        {
        }
        /**
         * @param string $message
         * @param null $cashboxId
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ObjectException
         */
        public static function addDebugInfo(string $message, $cashboxId = null) : void
        {
        }
        /**
         * @param string $message
         * @return bool
         */
        private static function validateMessage(string $message) : bool
        {
        }
        /**
         * @param int $messageLevel
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        private static function checkMessageLevel(int $messageLevel) : bool
        {
        }
        /**
         * @param string $message
         * @param $cashboxId
         * @param $messageLevel
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ObjectException
         */
        private static function addToLog(string $message, $cashboxId, $messageLevel) : void
        {
        }
        /**
         * @return int
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        private static function getLevel() : int
        {
        }
    }
    /**
     * Class ConturOfd
     * @package Bitrix\Sale\Cashbox
     */
    class ConturOfd extends \Bitrix\Sale\Cashbox\Ofd
    {
        const ACTIVE_URL = 'https://cash-ntt.kontur.ru/CashReceipt/View';
        /**
         * @return string
         */
        protected function getUrl()
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @param $data
         * @return string
         */
        public function generateCheckLink($data)
        {
        }
    }
    /**
     * Class CheckManager
     * @package Bitrix\Sale\Cashbox
     */
    final class CheckManager
    {
        const EVENT_ON_GET_CUSTOM_CHECK = 'OnGetCustomCheckList';
        const EVENT_ON_CHECK_PRINT_SEND = 'OnPrintableCheckSend';
        const EVENT_ON_BEFORE_CHECK_ADD_VERIFY = 'OnBeforeCheckAddVerify';
        const EVENT_ON_CHECK_PRINT_ERROR = 'OnCheckPrintError';
        const MIN_TIME_FOR_SWITCH_CASHBOX = 240;
        /** This is time re-sending a check print in minutes */
        const CHECK_RESENDING_TIME = 4;
        const CHECK_LIMIT_RECORDS = 5;
        /**
         * @param CollectableEntity[] $entities
         * @param $type
         * @param CollectableEntity[] $relatedEntities
         * @return Result
         */
        public static function addByType(array $entities, $type, array $relatedEntities = array())
        {
        }
        /**
         * @param $checkId
         * @param array $data
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws \Exception
         */
        public static function savePrintResult($checkId, array $data)
        {
        }
        private static function addStatisticOnSuccessCheckPrint($checkId)
        {
        }
        /**
         * @param $id
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function delete($id)
        {
        }
        /**
         * @param CollectableEntity[] $entities
         * @return Result
         */
        public static function addChecks(array $entities)
        {
        }
        /**
         * @param Sale\Internals\CollectableEntity $entity
         * @throws Main\ArgumentTypeException
         * @return Sale\Order
         */
        public static function getOrder($entity)
        {
        }
        /**
         * @return array
         */
        private static function getBuildInCheckList()
        {
        }
        /**
         * @return array
         */
        private static function getUserCheckList()
        {
        }
        /**
         * @return void
         */
        public static function init()
        {
        }
        /**
         * @return array
         */
        public static function getCheckList()
        {
        }
        /**
         * @return array
         */
        public static function getCheckTypeMap()
        {
        }
        /**
         * @param string $type
         * @return null|Check
         */
        public static function createByType($type)
        {
        }
        /**
         * @param array $entities
         * @return Entity[]
         * @throws Main\NotSupportedException
         */
        public static function collateDocuments(array $entities)
        {
        }
        /**
         * @param Sale\Order $order
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        private static function isAutomaticEnabled(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param $entity
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         */
        private static function collate($entity)
        {
        }
        /**
         * @param $entity
         * @return array
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        private static function collateWithFFD105($entity)
        {
        }
        /**
         * @param Sale\Order $order
         * @return bool
         */
        private static function canPrintCheck(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param array $cashboxIds
         * @param array $orderIds
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\Db\SqlQueryException
         * @throws Main\ObjectException
         * @throws Main\SystemException
         * @throws \Exception
         */
        public static function getPrintableChecks(array $cashboxIds, array $orderIds = array())
        {
        }
        /**
         * @param array $settings
         * @return Check|null
         */
        public static function create(array $settings)
        {
        }
        /**
         * @param CollectableEntity $entity
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        public static function getCheckInfo(\Bitrix\Sale\Internals\CollectableEntity $entity)
        {
        }
        /**
         * @param CollectableEntity $entity
         * @return array|false
         * @throws Main\ArgumentException
         */
        public static function getLastPrintableCheckInfo(\Bitrix\Sale\Internals\CollectableEntity $entity)
        {
        }
        /**
         * @param array $filter
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        public static function collectInfo(array $filter = array())
        {
        }
        /**
         * @param $uuid
         * @return array|false
         * @throws Main\ArgumentException
         */
        public static function getCheckInfoByExternalUuid($uuid)
        {
        }
        /**
         * @param $id
         * @return Check|null
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getObjectById($id)
        {
        }
        /**
         * @param array $parameters
         * @return Main\DB\Result
         * @throws Main\ArgumentException
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * @param $checkType
         * @param $paymentId
         * @param string $registryType
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentTypeException
         */
        public static function getRelatedEntitiesForPayment($checkType, $paymentId, $registryType = \Bitrix\Sale\Registry::REGISTRY_TYPE_ORDER)
        {
        }
        /**
         * @param $checkType
         * @param $shipmentId
         * @param string $registryType
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentTypeException
         */
        public static function getRelatedEntitiesForShipment($checkType, $shipmentId, $registryType = \Bitrix\Sale\Registry::REGISTRY_TYPE_ORDER)
        {
        }
    }
    /**
     * Class CreditCheck
     * @package Bitrix\Sale\Cashbox
     */
    class CreditCheck extends \Bitrix\Sale\Cashbox\Check
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
        /**
         * @return string
         */
        public static function getSupportedEntityType()
        {
        }
        /**
         * @param array $entities
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectNotFoundException
         */
        public function setEntities(array $entities)
        {
        }
        /**
         * @return array
         */
        protected function extractDataInternal()
        {
        }
        /**
         * @return string
         */
        public static function getSupportedRelatedEntityType()
        {
        }
    }
    /**
     * Class AdvancePaymentCheck
     * @package Bitrix\Sale\Cashbox
     */
    class AdvancePaymentCheck extends \Bitrix\Sale\Cashbox\Check
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
        /**
         * @return array
         */
        protected function extractDataInternal()
        {
        }
        /**
         * @return string
         */
        public static function getSupportedRelatedEntityType()
        {
        }
    }
    /**
     * Class AdvanceReturnCheck
     * @package Bitrix\Sale\Cashbox
     */
    class AdvanceReturnCheck extends \Bitrix\Sale\Cashbox\AdvancePaymentCheck
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
        /**
         * @return array
         */
        protected function extractDataInternal()
        {
        }
    }
    /**
     * Class FullPrepaymentReturnCheck
     * @package Bitrix\Sale\Cashbox
     */
    class FullPrepaymentReturnCheck extends \Bitrix\Sale\Cashbox\FullPrepaymentCheck
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return array
         */
        protected function extractDataInternal()
        {
        }
    }
    /**
     * Class SellCheck
     * @package Bitrix\Sale\Cashbox
     */
    class SellCheck extends \Bitrix\Sale\Cashbox\Check
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return string
         */
        public static function getSupportedEntityType()
        {
        }
        /**
         * @return string
         */
        public static function getSupportedRelatedEntityType()
        {
        }
    }
    final class ReportManager
    {
        /** This is time re-sending a check print in minutes */
        const MIN_TIME_RESENDING_REPORT = 300;
        const MAX_TIME_RESENDING_REPORT = 43200;
        /**
         * @param $cashboxId
         * @return int
         */
        public static function addZReport($cashboxId)
        {
        }
        /**
         * @param $cashboxId
         * @return array|false
         */
        public static function getLastZReport($cashboxId)
        {
        }
        /**
         * @param $cashboxId
         * @return int
         */
        public static function getPrintableZReport($cashboxId)
        {
        }
        /**
         * @param $reportId
         * @param $data
         * @return Result
         */
        public static function saveZReportPrintResult($reportId, $data)
        {
        }
    }
    /**
     * Class Cashbox
     * @package Bitrix\Sale\Cashbox
     */
    abstract class Cashbox
    {
        const UUID_TYPE_CHECK = 'check';
        const UUID_TYPE_REPORT = 'report';
        const UUID_DELIMITER = '|';
        const EVENT_ON_GET_CUSTOM_CASHBOX_HANDLERS = 'OnGetCustomCashboxHandlers';
        /** @var array $fields */
        private $fields = array();
        /**
         * @throws Main\LoaderException
         * @return void
         */
        public static function init()
        {
        }
        public static function getCode()
        {
        }
        /**
         * @return array
         */
        public static function getHandlerList()
        {
        }
        /**
         * @param array $settings
         * @return Cashbox|null
         */
        public static function create(array $settings)
        {
        }
        /**
         * Base constructor.
         * @param $settings
         */
        private function __construct($settings)
        {
        }
        /**
         * @param $name
         * @return mixed
         */
        public function getField($name)
        {
        }
        /**
         * @return Ofd|null
         */
        public function getOfd()
        {
        }
        /**
         * @param Check $check
         * @return array
         */
        public abstract function buildCheckQuery(\Bitrix\Sale\Cashbox\Check $check);
        /**
         * @param $id
         * @return array
         */
        public abstract function buildZReportQuery($id);
        /**
         * @throws NotImplementedException
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @param $name
         * @param $code
         * @return mixed
         */
        public function getValueFromSettings($name, $code)
        {
        }
        /**
         * @param array $linkParams
         * @return string
         */
        public function getCheckLink(array $linkParams)
        {
        }
        /**
         * @param $errorCode
         * @throws NotImplementedException
         * @return int
         */
        protected static function getErrorType($errorCode)
        {
        }
        /**
         * @param array $data
         * @throws NotImplementedException
         * @return array
         */
        protected static function extractCheckData(array $data)
        {
        }
        /**
         * @param array $data
         * @throws NotImplementedException
         * @return array
         */
        protected static function extractZReportData(array $data)
        {
        }
        /**
         * @param array $data
         * @return Result
         */
        public static function applyCheckResult(array $data)
        {
        }
        /**
         * @param array $data
         * @return Result
         */
        public static function applyZReportResult(array $data)
        {
        }
        /**
         * @param int $modelId
         * @return array
         */
        public static function getSettings($modelId = 0)
        {
        }
        /**
         * @return Result
         */
        public function validate()
        {
        }
        protected function validateFields($fields)
        {
        }
        protected function isRequiredField($field) : bool
        {
        }
        /**
         * @param Main\HttpRequest $request
         * @return array
         */
        public static function extractSettingsFromRequest(\Bitrix\Main\HttpRequest $request)
        {
        }
        /**
         * @param $modelId
         * @return array
         */
        private function getRequiredFields()
        {
        }
        /**
         * @return array
         */
        public static function getGeneralRequiredFields()
        {
        }
        /**
         * @param $type
         * @param $id
         * @return string
         */
        protected static function buildUuid($type, $id)
        {
        }
        /**
         * @param $uuid
         * @return array
         */
        protected static function parseUuid($uuid)
        {
        }
        /**
         * @return array
         */
        public static function getSupportedKkmModels()
        {
        }
        /**
         * @return bool
         */
        public function isCheckable()
        {
        }
        /**
         * @return bool
         */
        public static function isSupportedFFD105()
        {
        }
    }
    /**
     * Class CashboxBitrix
     * @package Bitrix\Sale\Cashbox
     */
    class CashboxBitrix extends \Bitrix\Sale\Cashbox\Cashbox
    {
        const TYPE_Z_REPORT = 1;
        /**
         * @param Check $check
         * @return array
         */
        public function buildCheckQuery(\Bitrix\Sale\Cashbox\Check $check)
        {
        }
        /**
         * @param $id
         * @return array
         */
        public function buildZReportQuery($id)
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @param array $cashbox
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectException
         * @throws \Exception
         */
        public static function saveCashbox(array $cashbox)
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private static function getCashboxDefaultEmail()
        {
        }
        /**
         * @param $cashboxId
         */
        protected static function showAlarmMessage($cashboxId)
        {
        }
        /**
         * @param array $data
         * @return array
         */
        public static function getCashboxList(array $data)
        {
        }
        /**
         * @param array $data
         * @return array
         */
        public static function applyPrintResult(array $data)
        {
        }
        /**
         * @param array $data
         * @return array
         */
        protected static function extractCheckData(array $data)
        {
        }
        /**
         * @param $data
         * @return array
         */
        private static function getCheckLinkParams($data)
        {
        }
        /**
         * @param array $data
         * @return array
         */
        protected static function extractZReportData(array $data)
        {
        }
        /**
         * @return array
         */
        protected function getCheckTypeMap()
        {
        }
        /**
         * @param $qr
         * @return array
         */
        private static function parseQrParam($qr)
        {
        }
        /**
         * @param $errorCode
         * @throws Main\NotImplementedException
         * @return int
         */
        protected static function getErrorType($errorCode)
        {
        }
        /**
         * @param int $modelId
         * @return array
         */
        public static function getSettings($modelId = 0)
        {
        }
        /**
         * @param Main\HttpRequest $request
         * @return array
         */
        public static function extractSettingsFromRequest(\Bitrix\Main\HttpRequest $request)
        {
        }
        /**
         * @return array
         */
        public static function getGeneralRequiredFields()
        {
        }
        /**
         * @return array
         */
        public static function getSupportedKkmModels()
        {
        }
    }
    /**
     * Class SellReturnCashCheck
     * @package Bitrix\Sale\Cashbox
     */
    class SellReturnCashCheck extends \Bitrix\Sale\Cashbox\SellCheck
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @throws NotImplementedException
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return array
         */
        protected function extractDataInternal()
        {
        }
        /**
         * @return string
         */
        public static function getSupportedEntityType()
        {
        }
    }
    /**
     * Class PrepaymentCheck
     * @package Bitrix\Sale\Cashbox
     */
    class PrepaymentCheck extends \Bitrix\Sale\Cashbox\Check
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return string
         */
        public static function getSupportedEntityType()
        {
        }
        /**
         * @return string
         */
        public static function getSupportedRelatedEntityType()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\LoaderException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function extractDataInternal()
        {
        }
        /**
         * @param $result
         * @return mixed
         * @throws Main\ArgumentNullException
         */
        private function correlatePrices($result)
        {
        }
    }
    /**
     * Class PrepaymentReturnCashCheck
     * @package Bitrix\Sale\Cashbox
     */
    class PrepaymentReturnCashCheck extends \Bitrix\Sale\Cashbox\PrepaymentCheck
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return array
         */
        protected function extractDataInternal()
        {
        }
    }
    /**
     * Class TaxcomOfd
     * @package Bitrix\Sale\Cashbox
     */
    class TaxcomOfd extends \Bitrix\Sale\Cashbox\Ofd
    {
        const ACTIVE_URL = 'https://receipt.taxcom.ru/v01/show?';
        /**
         * @return string
         */
        protected function getUrl()
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return array
         */
        protected function getLinkParamsMap()
        {
        }
        /**
         * @param $data
         * @return string
         */
        public function generateCheckLink($data)
        {
        }
    }
    interface IPrintImmediately
    {
        /**
         * @param Check $check
         * @return Result
         */
        public function printImmediately(\Bitrix\Sale\Cashbox\Check $check);
    }
    /**
     * Class SellReturnCheck
     * @package Bitrix\Sale\Cashbox
     */
    class SellReturnCheck extends \Bitrix\Sale\Cashbox\SellCheck
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @throws NotImplementedException
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return array
         */
        protected function extractDataInternal()
        {
        }
        /**
         * @return string
         */
        public static function getSupportedEntityType()
        {
        }
    }
    /**
     * Class AdvanceReturnCashCheck
     * @package Bitrix\Sale\Cashbox
     */
    class AdvanceReturnCashCheck extends \Bitrix\Sale\Cashbox\AdvancePaymentCheck
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
        /**
         * @return array
         */
        protected function extractDataInternal()
        {
        }
    }
    /**
     * Class CreditPaymentReturnCheck
     * @package Bitrix\Sale\Cashbox
     */
    class CreditPaymentReturnCheck extends \Bitrix\Sale\Cashbox\Check
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
        /**
         * @return string
         */
        public static function getSupportedRelatedEntityType()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\LoaderException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function extractDataInternal()
        {
        }
    }
}
namespace Bitrix\Sale\Services\Base {
    /**
     * Class RestrictionBase.
     * Base class for payment and delivery services restrictions.
     * @package Bitrix\Sale\Services
     */
    abstract class Restriction
    {
        /** @var int
         * 100 - lightweight - just compare with params
         * 200 - middleweight - may be use base queries
         * 300 - hardweight - use base, and/or hard calculations
         * */
        public static $easeSort = 100;
        /**
         * @return string
         * @throws NotImplementedException
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string
         * @throws NotImplementedException
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param mixed $params Params to check.
         * @param array $restrictionParams Restriction params.
         * @param int $serviceId Service identifier.
         * @return bool
         * @throws NotImplementedException
         */
        public static function check($params, array $restrictionParams, $serviceId = 0)
        {
        }
        /**
         * @param Entity $entity
         * @param array $restrictionParams
         * @param int $mode
         * @param int $serviceId
         * @return int
         * @throws NotImplementedException
         */
        public static function checkByEntity(\Bitrix\Sale\Internals\Entity $entity, array $restrictionParams, $mode, $serviceId = 0)
        {
        }
        /**
         * @param Entity $entity
         * @return mixed
         * @throws NotImplementedException
         */
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * Returns params structure to show it to user
         * @return array
         */
        public static function getParamsStructure($entityId = 0)
        {
        }
        /**
         * @param array $paramsValues
         * @param int $entityId
         * @return array
         */
        public static function prepareParamsValues(array $paramsValues, $entityId = 0)
        {
        }
        /**
         * @param array $fields
         * @param int $restrictionId
         * @return \Bitrix\Main\Entity\AddResult|\Bitrix\Main\Entity\UpdateResult
         * @throws \Exception
         */
        public static function save(array $fields, $restrictionId = 0)
        {
        }
        /**
         * @param $restrictionId
         * @param int $entityId
         * @return \Bitrix\Main\Entity\DeleteResult
         * @throws \Exception
         */
        public static function delete($restrictionId, $entityId = 0)
        {
        }
        /**
         * @param int $mode - RestrictionManager::MODE_CLIENT | RestrictionManager::MODE_MANAGER
         * @return int
         */
        public static function getSeverity($mode)
        {
        }
        /**
         * @param array $servicesIds
         * @return bool
         */
        public static function prepareData(array $servicesIds)
        {
        }
        /**
         * @return bool
         */
        public static function isAvailable()
        {
        }
    }
}
namespace Bitrix\Sale\Cashbox\Restrictions {
    /**
     * Class PaySystem
     * @package Bitrix\Sale\Cashbox\Restrictions
     */
    class PaySystem extends \Bitrix\Sale\Services\Base\Restriction
    {
        public static $easeSort = 200;
        protected static $preparedData = array();
        /**
         * @return string
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param $params
         * @param array $restrictionParams
         * @param int $serviceId
         * @return bool
         */
        public static function check($params, array $restrictionParams, $serviceId = 0)
        {
        }
        /**
         * @param Entity $entity
         * @return array
         */
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @return array|null
         */
        protected static function getPaySystemsList()
        {
        }
        /**
         * @param int $entityId
         * @return array
         */
        public static function getParamsStructure($entityId = 0)
        {
        }
        /**
         * @param int $mode - RestrictionManager::MODE_CLIENT | RestrictionManager::MODE_MANAGER
         * @return int
         */
        public static function getSeverity($mode)
        {
        }
    }
    /**
     * Class Company
     * @package Bitrix\Sale\Cashbox\Restrictions
     */
    class Company extends \Bitrix\Sale\Services\Base\Restriction
    {
        public static $easeSort = 200;
        protected static $preparedData = array();
        /**
         * @return string
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param $params
         * @param array $restrictionParams
         * @param int $serviceId
         * @return bool
         */
        public static function check($params, array $restrictionParams, $serviceId = 0)
        {
        }
        /**
         * @param Entity $entity
         * @return array
         */
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @return array|null
         */
        protected static function getCompanyList()
        {
        }
        /**
         * @param int $entityId
         * @return array
         */
        public static function getParamsStructure($entityId = 0)
        {
        }
        /**
         * @param int $mode - RestrictionManager::MODE_CLIENT | RestrictionManager::MODE_MANAGER
         * @return int
         */
        public static function getSeverity($mode)
        {
        }
        /**
         * @return bool
         */
        public static function isAvailable()
        {
        }
    }
}
namespace Bitrix\Sale\Services\Base {
    /**
     * Class TradeBindingRestriction
     * @package Bitrix\Sale\Services\Base
     */
    abstract class TradeBindingRestriction extends \Bitrix\Sale\Services\Base\Restriction
    {
        /**
         * @return string
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param int $entityId
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getParamsStructure($entityId = 0)
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        protected static function getTradePlatformList()
        {
        }
        /**
         * @param Sale\Internals\Entity $entity
         * @return array|bool|mixed
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param Sale\Internals\Entity $entity
         * @throws NotImplementedException
         */
        protected static function getOrder(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param $params
         * @param array $restrictionParams
         * @param int $serviceId
         * @return bool
         */
        public static function check($params, array $restrictionParams, $serviceId = 0)
        {
        }
        /**
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function isAvailable()
        {
        }
    }
}
namespace Bitrix\Sale\Cashbox\Restrictions {
    /**
     * Class TradeBinding
     * @package Bitrix\Sale\Cashbox\Restrictions
     */
    class TradeBinding extends \Bitrix\Sale\Services\Base\TradeBindingRestriction
    {
        /**
         * @param Sale\Internals\Entity $entity
         * @return Sale\Order|null
         */
        protected static function getOrder(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
    }
}
namespace Bitrix\Sale\Services\Base {
    class RestrictionManager
    {
        protected static $classNames;
        protected static $cachedFields = array();
        const MODE_CLIENT = 1;
        const MODE_MANAGER = 2;
        const SEVERITY_NONE = 0;
        const SEVERITY_SOFT = 1;
        const SEVERITY_STRICT = 2;
        const SERVICE_TYPE_SHIPMENT = 0;
        const SERVICE_TYPE_PAYMENT = 1;
        const SERVICE_TYPE_COMPANY = 2;
        const SERVICE_TYPE_CASHBOX = 3;
        protected static function init()
        {
        }
        /**
         * @return string
         * @throws NotImplementedException
         */
        public static function getEventName()
        {
        }
        /**
         * @return array
         * @throws SystemException
         */
        public static function getClassesList()
        {
        }
        /**
         * @param $serviceId
         * @param Entity $entity
         * @param int $mode
         * @return int
         * @throws SystemException
         */
        public static function checkService($serviceId, \Bitrix\Sale\Internals\Entity $entity, $mode = self::MODE_CLIENT)
        {
        }
        /**
         * @return int
         * @throws NotImplementedException
         */
        protected static function getServiceType()
        {
        }
        /**
         * @param $serviceId
         * @return array
         */
        public static function getRestrictionsList($serviceId)
        {
        }
        /**
         * @param $id
         * @return array Sites from restrictions.
         */
        public static function getSitesByServiceId($id)
        {
        }
        /**
         * @param array $servicesIds
         * @throws NotImplementedException
         * @throws \Bitrix\Main\ArgumentException
         * @internal
         */
        public static function prepareData(array $servicesIds, array $fields = array())
        {
        }
        /**
         * @param int $serviceId
         * @param int $serviceType
         * @param array $fields
         * @throws ArgumentNullException
         */
        protected static function setCache($serviceId, $serviceType, array $fields = array())
        {
        }
        /**
         * @param int $serviceId
         * @param int $serviceType
         * @return array
         * @throws ArgumentNullException
         */
        protected static function getCache($serviceId, $serviceType)
        {
        }
        /**
         * @throws NotImplementedException
         * @return array
         */
        protected static function getBuildInRestrictions()
        {
        }
        /**
         * @param array $params
         * @return \Bitrix\Main\DB\Result
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getList(array $params)
        {
        }
        /**
         * @param $id
         * @return \Bitrix\Main\DB\Result
         */
        public static function getById($id)
        {
        }
    }
}
namespace Bitrix\Sale\Cashbox\Restrictions {
    class Manager extends \Bitrix\Sale\Services\Base\RestrictionManager
    {
        protected static $classNames = null;
        /**
         * @return string
         */
        public static function getEventName()
        {
        }
        /**
         * @return array
         */
        protected static function getBuildInRestrictions()
        {
        }
        /**
         * @return int
         */
        protected static function getServiceType()
        {
        }
    }
}
namespace Bitrix\Sale\Cashbox {
    /**
     * Class CreditReturnCheck
     * @package Bitrix\Sale\Cashbox
     */
    class CreditReturnCheck extends \Bitrix\Sale\Cashbox\CreditCheck
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
    }
    interface ITestConnection
    {
        /**
         * @return Result
         */
        public function testConnection();
    }
    interface ICheckable
    {
        /**
         * @param Check $check
         * @return Result
         */
        public function check(\Bitrix\Sale\Cashbox\Check $check);
    }
    /**
     * Class CashboxAtolFarm
     * @package Bitrix\Sale\Cashbox
     */
    class CashboxAtolFarm extends \Bitrix\Sale\Cashbox\Cashbox implements \Bitrix\Sale\Cashbox\IPrintImmediately, \Bitrix\Sale\Cashbox\ICheckable
    {
        const OPERATION_CHECK_REGISTRY = 'registry';
        const OPERATION_CHECK_CHECK = 'check';
        const OPERATION_GET_TOKEN = 'get_token';
        const REQUEST_TYPE_GET = 'get';
        const REQUEST_TYPE_POST = 'post';
        const TOKEN_OPTION_NAME = 'atol_access_token';
        const SERVICE_URL = 'https://online.atol.ru/possystem/v3';
        const RESPONSE_HTTP_CODE_401 = 401;
        const RESPONSE_HTTP_CODE_200 = 200;
        const CODE_VAT_0 = 'vat0';
        const CODE_VAT_10 = 'vat10';
        const CODE_VAT_20 = 'vat20';
        protected const MAX_NAME_LENGTH = 128;
        /**
         * @param Check $check
         * @return array
         */
        public function buildCheckQuery(\Bitrix\Sale\Cashbox\Check $check)
        {
        }
        /**
         * @return string
         */
        protected function getCallbackUrl()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @param array $data
         * @return array
         */
        protected static function extractCheckData(array $data)
        {
        }
        /**
         * @param $id
         * @return array
         */
        public function buildZReportQuery($id)
        {
        }
        /**
         * @param array $data
         * @return array
         */
        protected static function extractZReportData(array $data)
        {
        }
        /**
         * @return array
         */
        protected function getCheckTypeMap()
        {
        }
        /**
         * @param $operation
         * @param $token
         * @param array $queryData
         * @return string
         * @throws Main\SystemException
         */
        protected function getRequestUrl($operation, $token, array $queryData = array())
        {
        }
        /**
         * @param Check $check
         * @return Result
         * @throws Main\NotImplementedException
         * @throws Main\SystemException
         */
        public function printImmediately(\Bitrix\Sale\Cashbox\Check $check)
        {
        }
        /**
         * @param Check $check
         * @return Result
         */
        public function check(\Bitrix\Sale\Cashbox\Check $check)
        {
        }
        /**
         * @param array $checkData
         * @return Result
         */
        protected function validateCheckQuery(array $checkData)
        {
        }
        /**
         * @param $method
         * @param $url
         * @param array $data
         * @return Result
         */
        private function send($method, $url, array $data = array())
        {
        }
        /**
         * @param int $modelId
         * @return array
         */
        public static function getSettings($modelId = 0)
        {
        }
        /**
         * @return array
         */
        public static function getGeneralRequiredFields()
        {
        }
        /**
         * @return string
         */
        private function getAccessToken()
        {
        }
        /**
         * @param $token
         */
        private function setAccessToken($token)
        {
        }
        /**
         * @return string
         */
        private function getOptionName()
        {
        }
        /**
         * @param array $data
         * @return mixed
         */
        private function encode(array $data)
        {
        }
        /**
         * @param $data
         * @return mixed
         * @throws Main\ArgumentException
         */
        private function decode($data)
        {
        }
        /**
         * @return string
         * @throws Main\SystemException
         */
        private function requestAccessToken()
        {
        }
        /**
         * @param $errorCode
         * @throws Main\NotImplementedException
         * @return int
         */
        protected static function getErrorType($errorCode)
        {
        }
    }
    /**
     * Class CashboxAtolFarmV4
     * @package Bitrix\Sale\Cashbox
     */
    class CashboxAtolFarmV4 extends \Bitrix\Sale\Cashbox\CashboxAtolFarm
    {
        const SERVICE_URL = 'https://online.atol.ru/possystem/v4';
        const SERVICE_TEST_URL = 'https://testonline.atol.ru/possystem/v4';
        const HANDLER_MODE_ACTIVE = 'ACTIVE';
        const HANDLER_MODE_TEST = 'TEST';
        const CODE_CALC_VAT_10 = 'vat110';
        const CODE_CALC_VAT_20 = 'vat120';
        /**
         * @param Check $check
         * @return array
         */
        public function buildCheckQuery(\Bitrix\Sale\Cashbox\Check $check)
        {
        }
        /**
         * @param $checkType
         * @param $vat
         * @return mixed
         */
        private function mapVatValue($checkType, $vat)
        {
        }
        /**
         * @return array
         */
        private function getPaymentObjectMap()
        {
        }
        /**
         * @return array
         */
        private function getPaymentTypeMap()
        {
        }
        /**
         * @return string
         */
        private static function getDefaultServiceEmail()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return array
         */
        protected function getCheckTypeMap()
        {
        }
        /**
         * @param $operation
         * @param $token
         * @param array $queryData
         * @return string
         * @throws Main\SystemException
         */
        protected function getRequestUrl($operation, $token, array $queryData = array())
        {
        }
        /**
         * @param int $modelId
         * @return array
         */
        public static function getSettings($modelId = 0)
        {
        }
        /**
         * @param array $checkData
         * @return Result
         */
        protected function validateCheckQuery(array $checkData)
        {
        }
        /**
         * @return bool
         */
        public static function isSupportedFFD105()
        {
        }
    }
}
namespace Bitrix\Sale\Cashbox\Internals {
    class KkmModelTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function delete($primary)
        {
        }
    }
    /**
     * Class CashboxTable
     * @package Bitrix\Sale\Cashbox\Internals
     */
    class CashboxTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
    }
    class CashboxConnectTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    class Pool
    {
        protected static $docs = array();
        /**
         * @param $code
         * @return mixed|null
         */
        public static function getDocs($code)
        {
        }
        /**
         * @param $code
         * @param $doc
         */
        public static function addDoc($code, $doc)
        {
        }
        /**
         * @param null $code
         */
        public static function resetDocs($code = null)
        {
        }
        /**
         * @param $code
         * @return Result
         */
        public static function generateChecks($code)
        {
        }
    }
    class CashboxErrLogTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    class CashboxCheckTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    class CashboxZReportTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    class Check2CashboxTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    /**
     * Class Check2EntitiesTable
     * @package Bitrix\Sale\Cashbox\Internals
     */
    class CheckRelatedEntitiesTable extends \Bitrix\Main\Entity\DataManager
    {
        const ENTITY_TYPE_PAYMENT = 'P';
        const ENTITY_TYPE_SHIPMENT = 'S';
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Sale\Internals\Analytics {
    /**
     * Class Agent
     * @package Bitrix\Sale\Internals\Analytics
     */
    abstract class Agent
    {
        private const LAST_SEND_DATE = '~last_send_date_';
        private const LAST_ATTEMPT_DATE = '~last_attempt_date_';
        /**
         * @return string
         */
        protected static abstract function getProviderCode() : string;
        /**
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectException
         */
        public static function send() : void
        {
        }
        /**
         * @param DateTime $nextExecutionAgentDate
         */
        protected static function createAgent(\Bitrix\Main\Type\DateTime $nextExecutionAgentDate) : void
        {
        }
        /**
         * @return DateTime
         * @throws \Bitrix\Main\ObjectException
         */
        private static function getSuccessNextExecutionAgentDate() : \Bitrix\Main\Type\DateTime
        {
        }
        /**
         * @return DateTime
         * @throws \Bitrix\Main\ObjectException
         */
        private static function getFailureNextExecutionAgentDate() : \Bitrix\Main\Type\DateTime
        {
        }
        /**
         * @return DateTime
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ObjectException
         */
        private static function getLastSendDate() : \Bitrix\Main\Type\DateTime
        {
        }
        /**
         * @return DateTime
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ObjectException
         */
        private static function getLastAttemptDate() : \Bitrix\Main\Type\DateTime
        {
        }
        /**
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ObjectException
         */
        private static function updateDate() : void
        {
        }
    }
}
namespace Bitrix\Sale\Cashbox\Internals\Analytics {
    /**
     * Class Agent
     * @package Bitrix\Sale\Cashbox\Internals\Analytics
     */
    final class Agent extends \Bitrix\Sale\Internals\Analytics\Agent
    {
        protected static function getProviderCode() : string
        {
        }
    }
}
namespace Bitrix\Sale\Internals\Analytics {
    /**
     * Class Provider
     * @package Bitrix\Sale\Internals\Analytics
     */
    abstract class Provider
    {
        /**
         * @return string
         */
        public static abstract function getCode() : string;
        /**
         * @param DateTime $dateFrom
         * @param DateTime $dateTo
         * @return array
         */
        protected abstract function getProviderData(\Bitrix\Main\Type\DateTime $dateFrom, \Bitrix\Main\Type\DateTime $dateTo) : array;
        /**
         * @param DateTime $dateFrom
         * @param DateTime $dateTo
         * @return array
         */
        public function getData(\Bitrix\Main\Type\DateTime $dateFrom, \Bitrix\Main\Type\DateTime $dateTo) : array
        {
        }
        /**
         * @param array $data
         * @return string
         */
        protected abstract function getHash(array $data) : string;
    }
}
namespace Bitrix\Sale\Cashbox\Internals\Analytics {
    /**
     * Class Cachbox
     * @package Bitrix\Sale\Internals\Analytics
     */
    final class Provider extends \Bitrix\Sale\Internals\Analytics\Provider
    {
        private const TYPE = 'cashbox';
        /**
         * @return string
         */
        public static function getCode() : string
        {
        }
        /**
         * @param DateTime $dateFrom
         * @param DateTime $dateTo
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        protected function getProviderData(\Bitrix\Main\Type\DateTime $dateFrom, \Bitrix\Main\Type\DateTime $dateTo) : array
        {
        }
        /**
         * @return string[]
         */
        private function getCashboxHandlers() : array
        {
        }
        /**
         * @param string $cashboxHandler
         * @param DateTime $dateFrom
         * @param DateTime $dateTo
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function isCheckExists(string $cashboxHandler, \Bitrix\Main\Type\DateTime $dateFrom, \Bitrix\Main\Type\DateTime $dateTo) : bool
        {
        }
        /**
         * @param string $cashboxHandler
         * @return array|array[]|null[]
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function getCashboxIdList(string $cashboxHandler) : array
        {
        }
        /**
         * @param array $data
         * @return string
         * @throws \Bitrix\Main\LoaderException
         */
        protected function getHash(array $data) : string
        {
        }
    }
}
namespace Bitrix\Sale\Cashbox {
    /**
     * Class TenzorOfd
     * @package Bitrix\Sale\Cashbox
     */
    class TenzorOfd extends \Bitrix\Sale\Cashbox\Ofd
    {
        const ACTIVE_URL = 'https://ofd.sbis.ru/rec/';
        /**
         * @return string
         */
        protected function getUrl()
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @param $data
         * @return string
         */
        public function generateCheckLink($data)
        {
        }
    }
    /**
     * Class Manager
     * @package Bitrix\Sale\Cashbox
     */
    final class Manager
    {
        /* ignored all errors, warnings */
        const LEVEL_TRACE_E_IGNORED = 0;
        /* trace only errors */
        const LEVEL_TRACE_E_ERROR = \Bitrix\Sale\Cashbox\Errors\Error::LEVEL_TRACE;
        /* trace only errors, warnings */
        const LEVEL_TRACE_E_WARNING = \Bitrix\Sale\Cashbox\Errors\Warning::LEVEL_TRACE;
        const DEBUG_MODE = false;
        const CACHE_ID = 'BITRIX_CASHBOX_LIST';
        const TTL = 31536000;
        const CHECK_STATUS_AGENT = '\\Bitrix\\Sale\\Cashbox\\Manager::updateChecksStatus();';
        /**
         * @param CollectableEntity $entity
         * @return array
         */
        public static function getListWithRestrictions(\Bitrix\Sale\Internals\CollectableEntity $entity)
        {
        }
        /**
         * @param array $parameters
         * @return Main\ORM\Query\Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getList(array $parameters = [])
        {
        }
        /**
         * @param $id
         * @return Cashbox|ICheckable|null
         */
        public static function getObjectById($id)
        {
        }
        /**
         * @param $cashboxList
         * @return mixed
         */
        public static function chooseCashbox($cashboxList)
        {
        }
        /**
         * @return string
         */
        public static function getConnectionLink()
        {
        }
        /**
         * @return string
         */
        private static function generateHash()
        {
        }
        /**
         * @return mixed
         */
        public static function getListFromCache()
        {
        }
        /**
         * @param $cashboxId
         * @return array
         */
        public static function getCashboxFromCache($cashboxId)
        {
        }
        /**
         * @param $cashboxId
         * @param $id
         * @return array
         */
        public static function buildZReportQuery($cashboxId, $id)
        {
        }
        /**
         * @param $cashboxIds
         * @return array
         */
        public static function buildChecksQuery($cashboxIds)
        {
        }
        /**
         * @param $cashboxId
         * @param Check $check
         * @return array
         */
        public static function buildConcreteCheckQuery($cashboxId, \Bitrix\Sale\Cashbox\Check $check)
        {
        }
        /**
         * @param array $data
         * @return \Bitrix\Main\Entity\AddResult
         */
        public static function add(array $data)
        {
        }
        /**
         * @return void
         */
        private static function addCheckStatusAgent()
        {
        }
        /**
         * @param $primary
         * @param array $data
         * @return \Bitrix\Main\Entity\UpdateResult
         */
        public static function update($primary, array $data)
        {
        }
        /**
         * @param $primary
         * @return \Bitrix\Main\Entity\DeleteResult
         */
        public static function delete($primary)
        {
        }
        /**
         * @return bool
         */
        public static function isSupportedFFD105()
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentException
         */
        public static function updateChecksStatus()
        {
        }
        /**
         * @param $cashboxId
         * @param Main\Error $error
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         *
         * @deprecated Use \Bitrix\Sale\Cashbox\Logger instead
         */
        public static function writeToLog($cashboxId, \Bitrix\Main\Error $error)
        {
        }
    }
    /**
     * Class CashboxCheckbox
     * @package Bitrix\Sale\Cashbox
     */
    class CashboxCheckbox extends \Bitrix\Sale\Cashbox\Cashbox implements \Bitrix\Sale\Cashbox\IPrintImmediately, \Bitrix\Sale\Cashbox\ICheckable
    {
        private const HANDLER_MODE_TEST = 'TEST';
        private const HANDLER_MODE_ACTIVE = 'ACTIVE';
        private const API_VERSION = 'v1';
        private const HANDLER_TEST_URL = 'https://dev-api.checkbox.in.ua/api';
        private const HANDLER_ACTIVE_URL = 'https://api.checkbox.in.ua/api';
        private const OPERATION_SIGN_IN = 'cashier/signin';
        private const OPERATION_CREATE_SHIFT = 'shifts';
        private const OPERATION_CHECK_SHIFTS = 'cashier/shift';
        private const OPERATION_CLOSE_SHIFT = 'shifts/close';
        private const OPERATION_CREATE_CHECK = 'receipts/sell';
        private const OPERATION_GET_CHECK = 'receipts';
        private const MAX_CODE_LENGTH = 256;
        private const MAX_NAME_LENGTH = 256;
        private const HTTP_METHOD_GET = 'get';
        private const HTTP_METHOD_POST = 'post';
        private const HTTP_NO_REDIRECT = false;
        private const HTTP_RESPONSE_CODE_201 = 201;
        private const HTTP_RESPONSE_CODE_202 = 202;
        private const HTTP_RESPONSE_CODE_400 = 400;
        private const HTTP_RESPONSE_CODE_403 = 403;
        private const HTTP_RESPONSE_CODE_422 = 422;
        private const SHIFT_STATUS_OPENED = 'OPENED';
        private const CHECK_STATUS_DONE = 'DONE';
        private const CHECK_STATUS_ERROR = 'ERROR';
        private const HEADER_TOKEN_TYPE = 'Bearer';
        private const TOKEN_OPTION_NAME = 'cashbox_checkbox_token';
        private const QUANTITY_MULTIPLIER = 1000;
        private const PRICE_MULTIPLIER = 100;
        private const DPS_URL = 'https://cabinet.tax.gov.ua/cashregs/check?';
        private const CODE_NO_VAT = '0';
        private const CODE_VAT_0 = '4';
        private const CODE_VAT_7 = '2';
        private const CODE_VAT_20 = '1';
        private const OPEN_SHIFT_WAIT_SECONDS = 5;
        private const OPEN_SHIFT_WAIT_ATTEMPTS = 2;
        public static function getName()
        {
        }
        private static function isCheckReturn(\Bitrix\Sale\Cashbox\Check $check)
        {
        }
        public function buildCheckQuery(\Bitrix\Sale\Cashbox\Check $check)
        {
        }
        /**
         * @inheritDoc
         */
        public function buildZReportQuery($id)
        {
        }
        /**
         * @inheritDoc
         */
        public function check(\Bitrix\Sale\Cashbox\Check $check)
        {
        }
        protected static function extractCheckData(array $data)
        {
        }
        /**
         * @inheritDoc
         */
        public function printImmediately(\Bitrix\Sale\Cashbox\Check $check)
        {
        }
        private function addCloseShiftAgent()
        {
        }
        /**
         * @param $cashboxId
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectException
         */
        public static function closeShiftAgent($cashboxId)
        {
        }
        private function sendRequest(string $method, string $url, array $headersData = [], array $bodyData = [], bool $allowRedirect = true) : \Bitrix\Sale\Result
        {
        }
        private function sendRequestWithAuthorization(string $method, string $url, array $headersData = [], array $bodyData = [], bool $allowRedirect = true) : \Bitrix\Sale\Result
        {
        }
        private static function getAuthorizationHeaderValue(string $token) : ?string
        {
        }
        private static function getHeaders(array $headersData) : array
        {
        }
        private static function encode(array $data)
        {
        }
        private static function decode(string $data)
        {
        }
        private function getRequestUrl(string $action, array $requestParams = []) : string
        {
        }
        private function getTokenOptionName() : string
        {
        }
        private function getAccessToken() : string
        {
        }
        private function setAccessToken(string $token) : void
        {
        }
        private function requestAccessToken() : \Bitrix\Sale\Result
        {
        }
        private function getCurrentShift() : \Bitrix\Sale\Result
        {
        }
        private function openShift() : \Bitrix\Sale\Result
        {
        }
        private function closeShift() : \Bitrix\Sale\Result
        {
        }
        /**
         * @inheritDoc
         */
        public static function getSettings($modelId = 0)
        {
        }
        /**
         * @inheritDoc
         */
        public function getCheckLink(array $linkParams)
        {
        }
        private static function getCatalogPropertiesForItems($itemIds, $properties, $siteId) : array
        {
        }
    }
    /**
     * Class CashboxBitrixV2
     * @package Bitrix\Sale\Cashbox
     */
    class CashboxBitrixV2 extends \Bitrix\Sale\Cashbox\CashboxBitrix
    {
        const CODE_VAT_0 = 'vat0';
        const CODE_VAT_10 = 'vat10';
        const CODE_VAT_20 = 'vat20';
        const CODE_CALC_VAT_10 = 'vat110';
        const CODE_CALC_VAT_20 = 'vat120';
        /**
         * @param Check $check
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\LoaderException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function buildCheckQuery(\Bitrix\Sale\Cashbox\Check $check)
        {
        }
        /**
         * @param $checkType
         * @param $vat
         * @return mixed
         */
        private function mapVatValue($checkType, $vat)
        {
        }
        /**
         * @return array
         */
        private function getPaymentObjectMap()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return array
         */
        protected function getCheckTypeMap()
        {
        }
        /**
         * @param int $modelId
         * @return array
         */
        public static function getSettings($modelId = 0)
        {
        }
        /**
         * @param Main\HttpRequest $request
         * @return array
         */
        public static function extractSettingsFromRequest(\Bitrix\Main\HttpRequest $request)
        {
        }
        /**
         * @return array
         */
        public static function getSupportedKkmModels()
        {
        }
        /**
         * @return bool
         */
        public static function isSupportedFFD105()
        {
        }
        /**
         * @param array $data
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getCashboxList(array $data)
        {
        }
        /**
         * @param $kkmId
         * @param array $settings
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected static function convertSettings($kkmId, array $settings)
        {
        }
    }
    /**
     * Class FirstOfd
     * @package Bitrix\Sale\Cashbox
     */
    class FirstOfd extends \Bitrix\Sale\Cashbox\Ofd
    {
        const ACTIVE_URL = 'https://consumer.1-ofd.ru/v1?';
        const TEST_URL = 'https://test-consumer.1-ofd.ru/v1?';
        /**
         * @return string
         */
        protected function getUrl()
        {
        }
        /**
         * @return array
         */
        protected function getLinkParamsMap()
        {
        }
        /**
         * @param $data
         * @return string
         */
        public function generateCheckLink($data)
        {
        }
        /**
         * @return array
         */
        private function getCalculatedSignMap()
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getName()
        {
        }
    }
}
namespace Bitrix\Main {
    class Error implements \JsonSerializable
    {
        /** @var int|string */
        protected $code;
        /** @var string */
        protected $message;
        /**
         * @var null
         */
        protected $customData;
        /**
         * Creates a new Error.
         *
         * @param string $message Message of the error.
         * @param int|string $code Code of the error.
         * @param mixed|null $customData Data typically of key/value pairs that provide additional
         * user-defined information about the error.
         */
        public function __construct($message, $code = 0, $customData = null)
        {
        }
        /**
         * Returns the code of the error.
         * @return int|string
         */
        public function getCode()
        {
        }
        /**
         * Returns the message of the error.
         * @return string
         */
        public function getMessage()
        {
        }
        /**
         * @return mixed|null
         */
        public function getCustomData()
        {
        }
        public function __toString()
        {
        }
        /**
         * Specify data which should be serialized to JSON
         * @link http://php.net/manual/en/jsonserializable.jsonserialize.php
         * @return mixed data which can be serialized by <b>json_encode</b>,
         * which is a value of any type other than a resource.
         * @since 5.4.0
         */
        public function jsonSerialize()
        {
        }
    }
}
namespace Bitrix\Sale\Cashbox\Errors {
    class Warning extends \Bitrix\Main\Error
    {
        const TYPE = 'WARNING';
        const LEVEL_TRACE = 2;
    }
    class Error extends \Bitrix\Main\Error
    {
        const TYPE = 'ERROR';
        const LEVEL_TRACE = 1;
    }
}
namespace Bitrix\Sale\Cashbox {
    /**
     * Class CashboxOrangeData
     * @package Bitrix\Sale\Cashbox
     */
    class CashboxOrangeData extends \Bitrix\Sale\Cashbox\Cashbox implements \Bitrix\Sale\Cashbox\IPrintImmediately, \Bitrix\Sale\Cashbox\ICheckable, \Bitrix\Sale\Cashbox\ITestConnection
    {
        private const PARTNER_CODE_BITRIX = '3010144';
        const RESPONSE_HTTP_CODE_200 = 200;
        const RESPONSE_HTTP_CODE_201 = 201;
        const HANDLER_MODE_TEST = 'TEST';
        const HANDLER_MODE_ACTIVE = 'ACTIVE';
        const HANDLER_TEST_URL = 'ssl://apip.orangedata.ru:2443/api/v2';
        const HANDLER_ACTIVE_URL = 'ssl://api.orangedata.ru:12003/api/v2';
        private $pathToSslCertificate = '';
        private $pathToSslCertificateKey = '';
        const CODE_VAT_0 = 5;
        const CODE_VAT_10 = 2;
        const CODE_VAT_20 = 1;
        const CODE_CALC_VAT_10 = 4;
        const CODE_CALC_VAT_20 = 3;
        private const MAX_TEXT_LENGTH = 128;
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return array
         */
        private function getCheckTypeMap()
        {
        }
        /**
         * @return array
         */
        private function getCalculatedSignMap()
        {
        }
        /**
         * @param Check $check
         * @return array
         * @throws Main\NotImplementedException
         */
        public function buildCheckQuery(\Bitrix\Sale\Cashbox\Check $check)
        {
        }
        /**
         * @param $checkType
         * @param $vat
         * @return mixed
         */
        private function mapVatValue($checkType, $vat)
        {
        }
        /**
         * @param array $data
         * @return mixed|string
         */
        private function getCustomerContact(array $data)
        {
        }
        /**
         * @return array
         */
        private function getPaymentObjectMap()
        {
        }
        /**
         * @return array
         */
        private function getPaymentTypeMap()
        {
        }
        /**
         * @param $url
         * @param $data
         * @return string
         */
        private function getPostQueryHeaders($url, $data)
        {
        }
        /**
         * @param $id
         * @return array
         */
        public function buildZReportQuery($id)
        {
        }
        /**
         * @param Check $check
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        public function printImmediately(\Bitrix\Sale\Cashbox\Check $check)
        {
        }
        /**
         * @return string
         */
        private function getUrl()
        {
        }
        /**
         * @param $url
         * @param $headers
         * @param string $data
         * @return Result
         * @throws Main\ObjectException
         */
        private function send($url, $headers, $data = '')
        {
        }
        /**
         * @param $headers
         * @return int
         */
        private function extractResponseStatus($headers)
        {
        }
        /**
         * @return void
         */
        public function __destruct()
        {
        }
        /**
         * @return resource
         */
        private function createStreamContext()
        {
        }
        /**
         * @param Check $check
         * @return Result
         */
        public function check(\Bitrix\Sale\Cashbox\Check $check)
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectException
         */
        public function validate() : \Bitrix\Sale\Result
        {
        }
        protected function buildValidateQuery()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectException
         */
        public function testConnection()
        {
        }
        /**
         * @param $url
         * @return string
         */
        private function getCheckQueryHeaders($url)
        {
        }
        /**
         * @param array $data
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         */
        protected static function extractCheckData(array $data)
        {
        }
        /**
         * @param $data
         * @return string
         */
        public function sign($data)
        {
        }
        /**
         * @param array $data
         * @return mixed
         * @throws Main\ArgumentException
         */
        private function encode(array $data)
        {
        }
        /**
         * @param string $data
         * @return mixed
         */
        private function decode($data)
        {
        }
        /**
         * @param $data
         * @return mixed
         */
        private function createTmpFile($data)
        {
        }
        /**
         * @param int $modelId
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getSettings($modelId = 0)
        {
        }
        /**
         * @param Main\HttpRequest $request
         * @return array
         */
        public static function extractSettingsFromRequest(\Bitrix\Main\HttpRequest $request)
        {
        }
        /**
         * @return bool
         */
        public static function isSupportedFFD105()
        {
        }
    }
    /**
     * Class CreditPaymentReturnCashCheck
     * @package Bitrix\Sale\Cashbox
     */
    class CreditPaymentReturnCashCheck extends \Bitrix\Sale\Cashbox\Check
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
        /**
         * @return string
         */
        public static function getSupportedRelatedEntityType()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\LoaderException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function extractDataInternal()
        {
        }
    }
    /**
     * Class YarusOfd
     * @package Bitrix\Sale\Cashbox
     */
    class YarusOfd extends \Bitrix\Sale\Cashbox\Ofd
    {
        const HEADER_TOKEN_NAME = 'Ofdapitoken';
        const ACTIVE_URL = 'https://api.ofd-ya.ru/ofdapi/v1/getChequeLink';
        const TEST_URL = 'https://testapi.ofd-ya.ru/ofdapi/v1/getChequeLink';
        /**
         * @return string
         */
        protected function getUrl()
        {
        }
        /**
         * @return array
         */
        protected function getLinkParamsMap()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @param $data
         * @return string
         * @throws Main\ArgumentException
         */
        public function generateCheckLink($data)
        {
        }
        /**
         * @param $data
         * @return mixed
         * @throws Main\ArgumentException
         */
        private function getQueryString($data)
        {
        }
        /**
         * @param $queryString
         * @return bool|array
         */
        private function sendQuery($queryString)
        {
        }
        /**
         * @return array
         */
        public static function getSettings()
        {
        }
    }
}
namespace Bitrix\Sale\Internals\Input {
    abstract class Base
    {
        const MULTITAG = 'div';
        /** Check if value is multiple.
         * @param $value
         * @return bool
         */
        static function isMultiple($value)
        {
        }
        /** Get single value.
         * @param $value
         * @return mixed - if value is multiple, get first meaningful value (which is not null)
         */
        static function asSingle($value)
        {
        }
        static function asMultiple($value)
        {
        }
        public static function getViewHtml(array $input, $value = null)
        {
        }
        public static function getViewHtmlSingle(array $input, $value)
        {
        }
        public static function getEditHtml($name, array $input, $value = null)
        {
        }
        /** @return string */
        public static function getEditHtmlSingle($name, array $input, $value)
        {
        }
        public static function getEditHtmlSingleDelete($name, array $input)
        {
        }
        public static function getEditHtmlInsert($tag, $replace, $name, $sample, $after)
        {
        }
        public static function getEditHtmlSingleAfterInsert()
        {
        }
        public static function getError(array $input, $value)
        {
        }
        /**
         * @param array $input
         * @param $value
         *
         * @return bool
         */
        public static function getRequiredError(array $input, $value)
        {
        }
        /**
         * @param array $input
         * @param $value
         *
         * @throws SystemException
         */
        public static function getErrorSingle(array $input, $value)
        {
        }
        public static function getValue(array $input, $value)
        {
        }
        public static function getValueSingle(array $input, $value)
        {
        }
        public static function getSettings(array $input, $reload)
        {
        }
        // utils
        protected static function getHiddenRecursive($name, $value, $attributes)
        {
        }
        /** @deprecated */
        protected static function extractAttributes(array $input, array $boolean, array $other, $withGlobal = true)
        {
        }
        /**
         * @return bool
         */
        public static function hasMultipleValuesSupport()
        {
        }
    }
}
namespace Bitrix\Sale\Cashbox\Inputs {
    /**
     * Class File
     * @package Bitrix\Sale\Cashbox\Inputs
     */
    class File extends \Bitrix\Sale\Internals\Input\Base
    {
        /**
         * @param array $input
         * @param $value
         * @return string
         */
        public static function getViewHtmlSingle(array $input, $value)
        {
        }
        /**
         * @param $name
         * @param array $input
         * @param $value
         * @return string
         */
        public static function getEditHtmlSingle($name, array $input, $value)
        {
        }
        /**
         * @param array $input
         * @param $value
         * @return array|void
         */
        public static function getErrorSingle(array $input, $value)
        {
        }
    }
}
namespace Bitrix\Sale\Cashbox {
    /**
     * Class PrepaymentReturnCheck
     * @package Bitrix\Sale\Cashbox
     */
    class PrepaymentReturnCheck extends \Bitrix\Sale\Cashbox\PrepaymentCheck
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getCalculatedSign()
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return array
         */
        protected function extractDataInternal()
        {
        }
    }
    /**
     * Class OfdruOfd
     * @package Bitrix\Sale\Cashbox
     */
    class OfdruOfd extends \Bitrix\Sale\Cashbox\Ofd
    {
        const ACTIVE_URL = 'https://ofd.ru/rec/';
        /**
         * @return string
         */
        protected function getUrl()
        {
        }
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @param $data
         * @return string
         */
        public function generateCheckLink($data)
        {
        }
        /**
         * @return array
         */
        public static function getSettings()
        {
        }
        /**
         * @return Result
         */
        public function validate()
        {
        }
    }
    /**
     * Class Cashbox1C
     * @package Bitrix\Sale\Cashbox
     */
    class Cashbox1C extends \Bitrix\Sale\Cashbox\Cashbox
    {
        const CACHE_ID = 'BITRIX_CASHBOX_1C_ID';
        const TTL = 31536000;
        /**
         * @param Check $check
         * @return array
         */
        public function buildCheckQuery(\Bitrix\Sale\Cashbox\Check $check)
        {
        }
        /**
         * @param $id
         * @return array
         */
        public function buildZReportQuery($id)
        {
        }
        /**
         * @return string
         */
        public static function getName()
        {
        }
        /**
         * @return int
         */
        public static function getId()
        {
        }
        /**
         * @param array $data
         * @throws Main\NotImplementedException
         * @return array
         */
        protected static function extractCheckData(array $data)
        {
        }
    }
}
namespace Bitrix\Sale {
    /**
     * Class PersonType
     * @package Bitrix\Sale
     */
    class PersonType
    {
        /** @var int */
        protected $siteId;
        /** @var array  */
        private $personTypeList = array();
        /**
         * PersonType constructor.
         */
        protected function __construct()
        {
        }
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @return mixed
         * @throws ArgumentException
         */
        private static function createPersonTypeObject()
        {
        }
        /**
         * @param null $siteId
         * @param null $id
         * @return mixed
         * @throws ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function load($siteId = null, $id = null)
        {
        }
        /**
         * @param array $parameters
         * @return \Bitrix\Main\ORM\Query\Result
         * @throws ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getList(array $parameters = [])
        {
        }
        /**
         * @param OrderBase $order
         * @return Result
         * @throws ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function doCalculate(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * @return array
         */
        public static function generateXmlId()
        {
        }
    }
}
namespace Bitrix\Sale\Integration\Numerator {
    /**
     * Class NumeratorOrder
     * @package Bitrix\Sale\Integration\Numerator
     */
    class NumeratorOrder
    {
        /**
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function isUsedNumeratorForOrder()
        {
        }
    }
}
namespace Bitrix\Main\Numerator\Generator\Contract {
    /**
     * Interface DynamicConfigurable -
     * for generators that can not use static values or user specified settings for template parse
     * generators receive values for parsing from outside on every run
     * from where they can get values for replace template words
     * @package Bitrix\Main\Numerator\Contract
     */
    interface DynamicConfigurable
    {
        /**
         * @param array $config
         */
        public function setDynamicConfig($config);
    }
}
namespace Bitrix\Main\Numerator\Generator {
    /**
     * Class NumberGenerator
     * @package Bitrix\Main\Numerator
     */
    abstract class NumberGenerator
    {
        const USER_DEFINED_SYMBOL_START = '{USER_DEFINED:';
        const USER_DEFINED_SYMBOL_END = '}';
        const SYMBOL_START = '{';
        const SYMBOL_END = '}';
        /** replace specific symbol (that generator is responsible for)
         * with some string by internal logic
         * @param $template
         * @return string after parse
         */
        public abstract function parseTemplate($template);
        /** Must not affect internal counters and keep storage value unchanged,
         * by default - same logic as in parseTemplate
         * @param $template
         * @return string
         */
        public function parseTemplateForPreview($template)
        {
        }
        /**
         * return type of numerator that this generator can work with
         * @throws NotImplementedException
         */
        public static function getAvailableForType()
        {
        }
        /**
         * return array of words that can be parsed by generator
         * @throws NotImplementedException
         */
        public static function getTemplateWordsForParse()
        {
        }
        /**
         * return array, where keys are words of generator
         * and values are corresponding titles for showing to end user for each word
         * e.g. {PREFIX} => 'prefix'
         * @throws NotImplementedException
         */
        public static function getTemplateWordsSettings()
        {
        }
        /**
         * in case of inheritance (adding new custom generator)
         * you should register this function of your class as module Dependency
         * for module 'main' and event NumberGeneratorFactory::EVENT_GENERATOR_CLASSES_COLLECT
         * @see NumberGeneratorFactory::EVENT_GENERATOR_CLASSES_COLLECT
         * @return string - static class name
         */
        public function onGeneratorClassesCollect()
        {
        }
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @param $value
         * @param $config
         * @param null $default
         * @param null $type
         */
        protected function setFromArrayOrDefault($value, $config, $default = null, $type = null)
        {
        }
        /**
         * @param $word
         * @return string
         */
        protected static function getPatternFor($word)
        {
        }
    }
}
namespace Bitrix\Sale\Integration\Numerator {
    /**
     * Class OrderUserOrdersNumberGenerator
     * @package Bitrix\Sale\Integration\Numerator
     */
    class OrderUserOrdersNumberGenerator extends \Bitrix\Main\Numerator\Generator\NumberGenerator implements \Bitrix\Main\Numerator\Generator\Contract\DynamicConfigurable
    {
        protected $orderId;
        const TEMPLATE_WORD_USER_ID_ORDERS_COUNT = "USER_ID_ORDERS_COUNT";
        /** @inheritdoc */
        public static function getTemplateWordsForParse()
        {
        }
        /** @inheritdoc */
        public static function getTemplateWordsSettings()
        {
        }
        /**
         * @return string
         */
        public static function getAvailableForType()
        {
        }
        /**
         * @return string
         */
        protected function getTableName()
        {
        }
        /** @inheritdoc */
        public function parseTemplate($template)
        {
        }
        /**
         * @param array $config
         */
        public function setDynamicConfig($config)
        {
        }
        /**
         * @return string
         */
        protected function getWordToReplace()
        {
        }
    }
    /**
     * Class OrderIdNumberGenerator
     * @package Bitrix\Sale\Integration\Numerator
     */
    class OrderIdNumberGenerator extends \Bitrix\Main\Numerator\Generator\NumberGenerator implements \Bitrix\Main\Numerator\Generator\Contract\DynamicConfigurable
    {
        protected $orderId;
        const TEMPLATE_WORD_ORDER_ID = "ORDER_ID";
        /** @inheritdoc */
        public static function getTemplateWordsForParse()
        {
        }
        /** @inheritdoc */
        public static function getTemplateWordsSettings()
        {
        }
        /**
         * @return string
         */
        public static function getAvailableForType()
        {
        }
        /** @inheritdoc */
        public function parseTemplate($template)
        {
        }
        /**
         * @param array $config
         */
        public function setDynamicConfig($config)
        {
        }
    }
    /**
     * Class AccountNumberCompatibilityManager
     * @package Bitrix\Sale\Integration\Numerator
     */
    class AccountNumberCompatibilityManager
    {
        /** For compatibility - in the past users could add a custom type
         * to the select list of number generation template
         * Now if you want to add new template words and extend numerator functionality
         * you should create your own generator (extending from NumberGenerator)
         * and write your logic there
         * @param \Bitrix\Main\Event $event
         * @return array
         */
        public static function onBuildNumeratorTemplateWordsList(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Event $event
         * @return EventResult
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function resetAccountNumberType(\Bitrix\Main\Entity\Event $event)
        {
        }
        /** If numerator template is the same as it was in an old version of API
         * we save account_number_template into b_option as if it was before
         * for compatibility reasons
         * @param Event $event
         * @return EventResult
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function updateAccountNumberType(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
}
namespace Bitrix\Sale\Integration\Report {
    class EventHandler
    {
        const BATCH_INTERNET_SHOP = 'sale_internet_shop';
        const REPORT_KEY = 'sale_report_board_';
        const REPORT_VIEW_URL = '/shop/settings/sale_report_view.php';
        /**
         * @return AnalyticBoardBatch[]
         */
        public static function onAnalyticPageBatchCollect()
        {
        }
        /**
         * @return AnalyticBoard[]
         */
        public static function onAnalyticPageCollect()
        {
        }
        public static function getCurrentUserId()
        {
        }
    }
}
namespace Bitrix\Sale\Location {
    class ExternalTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function addMultipleForOwner($primaryOwner, $external = array())
        {
        }
        public static function updateMultipleForOwner($primaryOwner, $external)
        {
        }
        public static function deleteMultipleForOwner($primaryOwner)
        {
        }
        /**
         * This method is for internal use only. It may be changed without any notification further, or even mystically disappear.
         * 
         * @access private
         */
        public static function deleteMultipleByParentRangeSql($sql)
        {
        }
        public static function getMap()
        {
        }
    }
    class Exception extends \Bitrix\Main\SystemException
    {
        protected $info = array();
        public function __construct($message = '', array $parameters = array())
        {
        }
        public function getAdditionalInfo()
        {
        }
        public function getDefaultMessage()
        {
        }
    }
}
namespace Bitrix\Sale\Location\Tree {
    class Exception extends \Bitrix\Sale\Location\Exception
    {
        public function getDefaultMessage()
        {
        }
        protected function fillMessageAdditions()
        {
        }
    }
    class NodeNotFoundException extends \Bitrix\Sale\Location\Tree\Exception
    {
        public function getDefaultMessage()
        {
        }
    }
    class NodeIncorrectException extends \Bitrix\Sale\Location\Tree\Exception
    {
        public function getDefaultMessage()
        {
        }
    }
}
namespace Bitrix\Sale\Location\Comparator {
    /**
     * Class MapResult
     * @package Bitrix\Sale\Location\Comparator
     */
    class MapResult
    {
        protected $lastProcessedId = 0;
        protected $supportedCount = 0;
        protected $mapped = array();
        protected $notFound = array();
        protected $duplicated = array();
        public function setSupportedCount($count)
        {
        }
        public function setLastProcessedId($id)
        {
        }
        public function getLastProcessedId()
        {
        }
        public function getSupportedCount()
        {
        }
        public function getDuplicated()
        {
        }
        public function getNotFound()
        {
        }
        public function getMapped()
        {
        }
        public function addNotFound($eLocId, $eLocName)
        {
        }
        public function addDuplicated($eLocId, $eLocName, $bLocId)
        {
        }
        public function addMapped($eLocId, $eLocName, $bLocId)
        {
        }
        protected function getLocationChain($locationId)
        {
        }
    }
    class Replacement
    {
        public static function getLocalityTypes()
        {
        }
        public static function getRegionTypes()
        {
        }
        public static function getRegionVariants()
        {
        }
        public static function getCountryVariants()
        {
        }
        public static function isCountryRussia($countryName)
        {
        }
        public static function getDistrictTypes()
        {
        }
        public static function changeYoE($string)
        {
        }
    }
    /**
     * Class TmpTable
     * Helps to store temporary locations data during locations map with external services.
     * @package Bitrix\Sale\Location\Comparator
     */
    final class TmpTable
    {
        protected $name = 'b_sale_loc_map_tmp';
        protected $connection = null;
        protected $serviceId = 0;
        /**
         * TmpTable constructor.
         * @param int $serviceId External service id.
         * @param string $tableName
         * @throws ArgumentNullException
         */
        public function __construct($serviceId, $tableName = "")
        {
        }
        /**
         * @param int $startId Start position.
         * @return \Bitrix\Main\DB\Result
         */
        public function getUnmappedLocations($startId = 0)
        {
        }
        /**
         * @param int $locationId Internal location id.
         * @param string $xmlId External location id.
         * @throws ArgumentNullException
         */
        public function markMapped($locationId, $xmlId)
        {
        }
        /**
         * If we have mapped locations mark this in tmp table
         */
        public function markAllMapped()
        {
        }
        /**
         * @param array $data
         * @return \Bitrix\Main\DB\Result
         * @throws ArgumentNullException
         * @throws ArgumentTypeException
         */
        public function create(array $data)
        {
        }
        /**
         * Drops table
         */
        public function drop()
        {
        }
        /**
         * @return bool
         */
        public function isExist()
        {
        }
        /**
         * @param array $data Data to save
         * @return int Quantity of saved rows.
         * @throws ArgumentNullException
         * @throws ArgumentTypeException
         */
        public function saveData(array $data)
        {
        }
        /**
         * @return int Max row id.
         */
        public function getMaxId()
        {
        }
    }
    abstract class Mapper extends \Bitrix\Sale\Delivery\ExternalLocationMap
    {
        protected $collectDuplicated = false;
        protected $collectNotFound = false;
        protected $collectMapped = false;
        /**
         * @param string $stage Identities current stage.
         * @param string $step Idenifies current step of the stage.
         * @param int $progress Operation progress (%) 0 - 100.
         * @param int $timeout Seconds for stepping.
         * @return array
         */
        public abstract function map($stage, $step = '', $progress = 0, $timeout = 0);
        public function setCollectDuplicated($collect)
        {
        }
        public function setCollectNotFound($collect)
        {
        }
        public function setCollectMapped($collect)
        {
        }
    }
}
namespace Bitrix\Sale\Location {
    class GroupTable extends \Bitrix\Main\Entity\DataManager
    {
        const PROJECT_USES_GROUPS_OPT = 'project_uses_groups';
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function add(array $data)
        {
        }
        public static function update($primary, array $data)
        {
        }
        public static function delete($primary)
        {
        }
        public static function checkGroupUsage()
        {
        }
        public static function getGroupUsage()
        {
        }
        public static function setGroupUsage()
        {
        }
        public static function getCodeValidators()
        {
        }
        public static function getMap()
        {
        }
    }
    class TypeTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function add(array $data)
        {
        }
        public static function update($primary, array $data)
        {
        }
        public static function delete($primary)
        {
        }
        public static function getMap()
        {
        }
    }
    class GeoIp
    {
        /**
         * @param string $ip Ip address.
         * @param string $lang Language identifier.
         * @return int Location id.
         */
        public static function getLocationId($ip = '', $lang = LANGUAGE_ID)
        {
        }
        /**
         * @param string $ip Ip address.
         * @param string $lang Language identifier.
         * @return string Location code.
         */
        public static function getLocationCode($ip = '', $lang = LANGUAGE_ID)
        {
        }
        /**
         * @param string $ip Ip address.
         * @param string $lang Language.
         * @return string Zip (postal) code.
         */
        public static function getZipCode($ip, $lang = LANGUAGE_ID)
        {
        }
        /**
         * @param string $ip Ip address.
         * @param string $lang Language identifier.
         * @return Result.
         */
        protected static function getData($ip, $lang)
        {
        }
        /**
         * @param Result $geoIpData.
         * @param string $lang
         * @return array Location fields.
         */
        protected static function getLocationFields(\Bitrix\Main\Service\GeoIp\Result $geoIpData, $lang = LANGUAGE_ID)
        {
        }
        protected static function isParentsEmpty(\Bitrix\Main\Service\GeoIp\Data $geoData)
        {
        }
        protected static function specifyLocationByParents(\Bitrix\Main\Service\GeoIp\Data $geoData, array $locations, $lang)
        {
        }
        protected static function getLocationIdsByMargins(array $locations, $leftMargin, $rightMargin)
        {
        }
        /**
         * @param string $lang
         * @return Normalizer\INormalizer
         */
        protected static function getNameNormalizer($lang)
        {
        }
        /**
         * @param Data $geoData
         * @param string $name
         * @param string $lang
         * @return bool
         */
        protected static function isNameMatched(\Bitrix\Main\Service\GeoIp\Data $geoData, $name, $lang)
        {
        }
        /**
         * @param string $name
         * @param string $country
         * @param string $region
         * @param string $subregion
         * @return bool
         *
         * We are suggesting that names are already normalized for performance purposes.
         */
        protected static function isNormalizedNamesMatched($name, $country, $region, $subregion)
        {
        }
    }
}
namespace {
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2014 Bitrix
     */
    class CCSVData
    {
        var $sFileName;
        // full file name
        var $sContent;
        // file contents
        var $iFileLength;
        // file length
        var $iCurPos = 0;
        // current file position Fetch
        var $cFieldsType = "R";
        // fields type: R - with delimiter, F - fixed width
        var $cDelimiter = ";";
        // field delimiter
        var $arWidthMap = array();
        // array of delimiters positions in fixed width case
        var $bFirstHeader = \false;
        // 1 row - columns titles
        var $__file = \null;
        var $__buffer = "";
        var $__buffer_pos = 0;
        var $__buffer_size = 0;
        var $__hasBOM = \false;
        public function __construct($fields_type = "R", $first_header = \false)
        {
        }
        function LoadFile($filename)
        {
        }
        public function CloseFile()
        {
        }
        function CheckUTF8BOM()
        {
        }
        function SetFieldsType($fields_type = "R")
        {
        }
        function SetDelimiter($delimiter = ";")
        {
        }
        function SetFirstHeader($first_header = \false)
        {
        }
        function GetFirstHeader()
        {
        }
        function SetWidthMap($arMap)
        {
        }
        function FetchDelimiter()
        {
        }
        function FetchWidth()
        {
        }
        function Fetch()
        {
        }
        function IncCurPos()
        {
        }
        function MoveFirst()
        {
        }
        function GetPos()
        {
        }
        function SetPos($iCurPos = 0)
        {
        }
        function SaveFile($filename, $arFields)
        {
        }
    }
}
namespace Bitrix\Sale\Location\Util {
    final class CSVReader extends \CCSVData
    {
        const FILE_ENCODING = 'UTF-8';
        private $header = array();
        private $useHeader = false;
        private $legacy = false;
        private $convertCharset = true;
        private $callbacks = array();
        public function __construct($fields_type = "R", $convertCharset = true)
        {
        }
        public function LoadFile($filename, $firstHeader = true)
        {
        }
        public function SetFirstHeader($first_header = false)
        {
        }
        public function ReadHeader()
        {
        }
        public function FetchAssoc()
        {
        }
        // this function should not be here
        public function CheckFileIsLegacy()
        {
        }
        public function ReadBlockLowLevel(&$bytesRead = false, $lineLimit = false)
        {
        }
        public function ReadBlock($file, &$bytesRead = false, $lineLimit = false)
        {
        }
        public function GetFileSize()
        {
        }
        public function GetHeaderAssoc()
        {
        }
        public function SetCharsetConvert($switch)
        {
        }
        public function AddEventCallback($event, $callback)
        {
        }
        private function GetAssocLineByHeader($line, $header)
        {
        }
    }
    class Assert
    {
        // checkers
        /**
         * Method checks if the given argument is an integer value, or can be casted to it
         *
         * @param mixed $arg argument to check
         * @param string $argName argument name to figure in a error message
         * @param string $customMsg custom message to be shown instead of a standard one
         *
         * @throws \Bitrix\Main\ArgumentException
         *
         * @return integer checked and casted value
         */
        public static final function expectInteger($arg, $argName = '', $customMsg = '')
        {
        }
        /**
         * Method checks if the given argument is a positive integer value, or can be casted to it
         *
         * @param mixed $arg argument to check
         * @param string $argName argument name to figure in a error message
         * @param string $customMsg custom message to be shown instead of a standard one
         *
         * @throws \Bitrix\Main\ArgumentException
         *
         * @return integer checked and casted value
         */
        public static final function expectIntegerPositive($arg, $argName = '', $customMsg = '')
        {
        }
        /**
         * Method checks if the given argument is a non-negative integer value, or can be casted to it
         *
         * @param mixed $arg argument to check
         * @param string $argName argument name to figure in a error message
         * @param string $customMsg custom message to be shown instead of a standard one
         *
         * @throws \Bitrix\Main\ArgumentException
         *
         * @return integer checked and casted value
         */
        public static final function expectIntegerNonNegative($arg, $argName = '', $customMsg = '')
        {
        }
        /**
         * Method checks if the given argument is a non-zero-length string value, or can be casted to it
         *
         * @param mixed $arg argument to check
         * @param string $argName argument name to figure in a error message
         * @param string $customMsg custom message to be shown instead of a standard one
         *
         * @throws \Bitrix\Main\ArgumentException
         *
         * @return string checked and casted value
         */
        public static final function expectStringNotNull($arg, $argName = '', $customMsg = '')
        {
        }
        /**
         * Method checks if the given argument is an array
         *
         * @param mixed[] $arg argument to check
         * @param string $argName argument name to figure in a error message
         * @param string $customMsg custom message to be shown instead of a standard one
         *
         * @throws \Bitrix\Main\ArgumentException
         *
         * @return mixed[] value being checked
         */
        public static final function expectArray($arg, $argName = '', $customMsg = '')
        {
        }
        /**
         * Method checks if the given argument is a non-empty array
         *
         * @param mixed[] $arg argument to check
         * @param string $argName argument name to figure in a error message
         * @param string $customMsg custom message to be shown instead of a standard one
         *
         * @throws \Bitrix\Main\ArgumentException
         *
         * @return mixed[] value being checked
         */
        public static final function expectNotEmptyArray($arg, $argName = '', $customMsg = '')
        {
        }
        /**
         * Method checks if the given argument is a non-empty array of unique positive integers (or somehow can be casted to it)
         *
         * @param mixed[] $arg argument to check
         * @param string $argName argument name to figure in a error message
         * @param string $customMsg custom message to be shown instead of a standard one
         *
         * @throws \Bitrix\Main\ArgumentException
         *
         * @return integer[] checked and casted value
         */
        public static final function expectArrayOfUniqueIntegerNotNull($arg, $argName = '', $customMsg = '')
        {
        }
        /**
         * Method checks if the given argument is a non-empty array of unique non-zero-length strings (or somehow can be casted to it)
         *
         * @param mixed[] $arg argument to check
         * @param string $argName argument name to figure in a error message
         * @param string $customMsg custom message to be shown instead of a standard one
         *
         * @throws \Bitrix\Main\ArgumentException
         *
         * @return string[] checked and casted value
         */
        public static final function expectArrayOfUniqueStringNotNull($arg, $argName = '', $customMsg = '')
        {
        }
        /**
         * Method checks if the given argument belongs to a set of elements
         *
         * @param mixed[] $arg argument to check
         * @param mixed[] $enum enumeration to check argument belong to
         * @param string $argName argument name to figure in a error message
         * @param string $customMsg custom message to be shown instead of a standard one
         *
         * @throws \Bitrix\Main\ArgumentException
         *
         * @return mixed[] checked and casted value
         */
        public static final function expectEnumerationMember($arg, $enum = array(), $argName = '', $customMsg = '')
        {
        }
        // casters
        public static function castTrimLC($value)
        {
        }
        // announcers
        /**
         * Method announces that method or action is not implemented
         *
         * @param string $msg message to be shown
         *
         * @throws \Bitrix\Main\NotImplementedException
         */
        public static final function announceNotImplemented($msg = '')
        {
        }
        /**
         * Method announces that method or action is not supported
         *
         * @param string $msg message to be shown
         *
         * @throws \Bitrix\Main\NotImplementedException
         */
        public static final function announceNotSupported($msg = '')
        {
        }
        private static final function formMessage($msgCode, $argName = '', $customMsg = '')
        {
        }
    }
    class SaleTreeNodeNotFoundException extends \Bitrix\Main\SystemException
    {
        public function __construct($message = "", $code = 0)
        {
        }
    }
    class SaleTreeSystemException extends \Bitrix\Main\SystemException
    {
        public function __construct($message = "", $code = 0)
        {
        }
    }
    abstract class Process
    {
        const JUST_SHOW_STAGES = false;
        const MIN_TIME_LIMIT = 5;
        const DEBUG_MODE = false;
        const DEBUG_FOLDER = '%BX_ROOT%/tmp/';
        const DEBUG_FILE = '%SESSION_KEY%_process.txt';
        const LOCK_FILE = '%SESSION_KEY%_lock';
        const CALLBACK_TYPE_MANUAL = 'manual';
        const CALLBACK_TYPE_QUOTA = 'quota';
        protected $stages = array();
        protected $stagesByCode = array();
        protected $stage = 0;
        protected $step = 0;
        protected $data = array();
        protected $time = 0;
        protected $timeLimit = 20;
        // in seconds
        protected $sessionKey = 'long_process';
        protected $useLock = false;
        protected $options = array();
        public function __construct($options = array())
        {
        }
        public function addStage($params)
        {
        }
        public function restore()
        {
        }
        // reset current condition
        public function reset()
        {
        }
        public function performStage()
        {
        }
        public function performIteration()
        {
        }
        /////////////////////////////////////////////////
        /// Staging
        /////////////////////////////////////////////////
        public function setStepSize($code, $stepSize)
        {
        }
        // move to next stage
        public function nextStage()
        {
        }
        // move to next step
        public function nextStep()
        {
        }
        public function isStage($code)
        {
        }
        protected function stageCompare($code, $way)
        {
        }
        // $this->stage <= $code
        public function stageLT($code)
        {
        }
        // $code <= $this->stage
        public function stageGT($code)
        {
        }
        public function setStage($stage)
        {
        }
        public function onBeforePerformIteration()
        {
        }
        public function onAfterPerformIteration()
        {
        }
        public function getStageCode()
        {
        }
        public function getCurrStageIndex()
        {
        }
        public function getStep()
        {
        }
        public function getStage($code)
        {
        }
        public function getCurrStageStepSize()
        {
        }
        /////////////////////////////////////////////////
        /// Percentage
        /////////////////////////////////////////////////
        public function getStagePercent($sNum = false)
        {
        }
        public function getPercentBetween($codeFrom, $codeTo)
        {
        }
        public function getPercentFromToCurrent($codeFrom)
        {
        }
        public function getCurrentPercentRange()
        {
        }
        public function getPercent()
        {
        }
        public function calcSubPercent($range)
        {
        }
        public function getSubPercentByTotalAndDone($total, $done = 0)
        {
        }
        /////////////////////////////////////////////////
        /// Quotas info
        /////////////////////////////////////////////////
        public function checkQuota()
        {
        }
        public function setTimeLimit($timeLimit)
        {
        }
        public function getMemoryPeak()
        {
        }
        protected function saveStartTime()
        {
        }
        protected function saveMemoryPeak()
        {
        }
        /////////////////////////////////////////////////
        /// Logging
        /////////////////////////////////////////////////
        public function clearLogFile()
        {
        }
        public function getLogFileDir()
        {
        }
        public function getLogFilePath()
        {
        }
        public function logMessage($message = '', $addTimeStamp = true)
        {
        }
        public function logMemoryUsage()
        {
        }
        public function logFinalResult()
        {
        }
        /////////////////////////////////////////////////
        /// Lock
        /////////////////////////////////////////////////
        public function getLockFilePath()
        {
        }
        public function lockProcess()
        {
        }
        public function unLockProcess()
        {
        }
        public function checkProcessLocked()
        {
        }
        /////////////////////////////////////////////////
        /// Diagnostics tools
        /////////////////////////////////////////////////
        protected function getHitTime()
        {
        }
        protected function getProcessTime()
        {
        }
        protected function getProcessTimeString()
        {
        }
        protected function getHitTimeString()
        {
        }
        protected function getElapsedTimeString()
        {
        }
        protected function getTimeString($time = 0)
        {
        }
        protected function getTimeStampString()
        {
        }
        protected function getMemoryPeakString()
        {
        }
        /////////////////////////////////////////////////
        /// Util
        /////////////////////////////////////////////////
        public function getData()
        {
        }
        // special case for array
        protected function getBlock($from)
        {
        }
    }
}
namespace Bitrix\Sale\Location {
    class DefaultSiteTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        /**
         * $locationCodeList format: array(array('LOCATION_CODE' => int, 'SORT' => int))
         */
        public static function addMultipleForOwner($siteId, $locationCodeList = array())
        {
        }
        /**
         * $locationCodeList format
         */
        public static function updateMultipleForOwner($siteId, $locationCodeList = array(), $behaviour = array('REMOVE_ABSENT' => true))
        {
        }
        private static function checkSiteId($siteId)
        {
        }
        public static function getMap()
        {
        }
    }
    class ExternalServiceTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Sale\Location\Admin {
    abstract class Helper
    {
        const DEBUG_MODE_OPT = 'location2_debug_mode';
        const IMPORT_PAGE_URL = 'sale_location_import.php';
        const REINDEX_PAGE_URL = 'sale_location_reindex.php';
        const MIGRATION_PAGE_URL = 'sale_location_migration.php';
        const LOCATION_LINK_DATA_CACHE_TAG = 'sale-location-data';
        #####################################
        #### Entity settings
        #####################################
        public abstract function getEntityRoadMap();
        public static function getEntityRoadCode()
        {
        }
        // this should be overlapped for each ancestor
        public static function getColumns($page)
        {
        }
        // get part of the whole field map for responsibility zone of the current entity
        // call this only with self::
        public static function getMap($page)
        {
        }
        #####################################
        #### CRUD wrappers
        #####################################
        // columns shown in all grids
        public static function getListGridColumns()
        {
        }
        // columns shown in all filters
        public static function getFilterColumns()
        {
        }
        // columns shown in all forms
        public static function getDetailPageRows()
        {
        }
        // generalized filter to orm filter proxy
        public static function getParametersForList($proxed)
        {
        }
        /*
         * $parameters: array of keys: FILTER (generalized), ID, OPERATION
         */
        public static function performGridOperations($parameters)
        {
        }
        // get data to display in a form
        public static function getFormData($id)
        {
        }
        public static function makeSafeDisplay(&$value, $code)
        {
        }
        ##############################################
        ##############################################
        ##############################################
        public static function validateUpdateRequest($data)
        {
        }
        // this function could be much more complicated in the derivative classes
        public static function proxyUpdateRequest($data)
        {
        }
        // an adapter from CAdminList + CAdminFilter to ORM getList() logic
        // deprecated: too strong relation with admin grid, replaced with getParametersForList
        public static function proxyListRequest($page)
        {
        }
        // crud over entity: add
        public static function add($data)
        {
        }
        // crud over entity: update
        public static function update($primary, $data)
        {
        }
        // crud over entity: delete
        public static function delete($primary)
        {
        }
        // function calculates limit and offset for sql select query, based on current request and session
        // variables, then forms fake old-style database result
        public static function getList($parameters = array(), $tableId = false, $navigation = 20, $params = array())
        {
        }
        public static function convertToArray($data)
        {
        }
        // deprecated: not optimal
        public static function getIdsByFilter($listFilter)
        {
        }
        public static function getPrimaryFieldName()
        {
        }
        // returns element name by it`s primary
        public static function getNameToDisplay($id)
        {
        }
        public static function getListUrl($parameters = array())
        {
        }
        public static function getEditUrl($parameters = array())
        {
        }
        public static function getImportUrl()
        {
        }
        public static function getReindexUrl()
        {
        }
        public static function getMigrationUrl()
        {
        }
        public static function getUrl($page, $parameters = array())
        {
        }
        #####################################
        #### Utilily methods for CRUD
        #####################################
        // deprecated: too strong relation with admin grid
        public static function checkUseFilter()
        {
        }
        public static function readMap($entityRoadCode, $page = 'list')
        {
        }
        protected static function getFilterModifier($type)
        {
        }
        protected static function packUrlParameters($parameters = array())
        {
        }
        protected static function getEntityClass($code = '')
        {
        }
        public static function getWidgetAppearance()
        {
        }
        protected static function normalizeList($list, $expectNumeric = true)
        {
        }
        // proxy between $_REQUEST and resulting array to save links between entites and locations
        public static function prepareLinksForSaving($connectorClass, $links)
        {
        }
        public static function resetLocationsForEntity($entityId, $locations, $entityName, $expectCodes = false)
        {
        }
    }
    class SiteLocationHelper extends \Bitrix\Sale\Location\Admin\Helper
    {
        const LIST_PAGE_URL = 'sale_location_zone_list.php';
        const EDIT_PAGE_URL = 'sale_location_zone_edit.php';
        #####################################
        #### Entity settings
        #####################################
        /**
         * Function returns class name for an attached entity
         * @return string Entity class name
         */
        public function getEntityRoadMap()
        {
        }
        #####################################
        #### CRUD wrappers
        #####################################
        public static function proxyUpdateRequest($data)
        {
        }
        public static function proxyListRequest($page)
        {
        }
        // block add handle, nothing to add
        public static function add($data)
        {
        }
        // specific updater
        public static function update($siteId, $data)
        {
        }
        // block delete handle, nothing to delete
        public static function delete($primary)
        {
        }
        // avoid paging here, kz its based on ID which is absent for this table
        public static function getList($parameters = array(), $tableId = false, $navigation = 20, $params = array())
        {
        }
        public static function getFormData($id)
        {
        }
        public static function getNameToDisplay($siteId)
        {
        }
        #####################################
        #### Entity-specific
        #####################################
        public static function tryParseSiteId($sid)
        {
        }
    }
    abstract class NameHelper extends \Bitrix\Sale\Location\Admin\Helper
    {
        #####################################
        #### Entity settings
        #####################################
        public static function getEntityRoadCode()
        {
        }
        public static function getColumns($page)
        {
        }
        // get part of the whole field map for responsibility zone of the current entity
        // call this only with self::
        public static function getMap($page)
        {
        }
        #####################################
        #### CRUD wrappers
        #####################################
        // generalized filter to orm filter proxy
        public static function getParametersForList($proxed)
        {
        }
        ##############################################
        ##############################################
        ##############################################
        public static function validateUpdateRequest($data)
        {
        }
        public static function proxyUpdateRequest($data)
        {
        }
        // an adapter from CAdminList to ORM getList() logic
        public static function proxyListRequest($page)
        {
        }
        public static function getNameToDisplay($id)
        {
        }
        #####################################
        #### Entity-specific
        #####################################
        public static function getLanguageList()
        {
        }
        public static function getTranslatedName($names, $languageId)
        {
        }
        // extracts NAME data from known data, rather than do a separate query for it
        public static function extractNames(&$data)
        {
        }
        public static function checkIsNameField($code)
        {
        }
        public static function getNameMap()
        {
        }
        #####################################
        #### Utilitary functions
        #####################################
        public static function translitFromUTF8($string)
        {
        }
        public static function mapLanguage($lid)
        {
        }
    }
    final class LocationHelper extends \Bitrix\Sale\Location\Admin\NameHelper
    {
        const LIST_PAGE_URL = 'sale_location_node_list.php';
        const EDIT_PAGE_URL = 'sale_location_node_edit.php';
        const MENU_MAX_ITEMS_IN = 100;
        const MENU_LOCATION_PARENT_TAG = 'menu_sale_location_tree';
        const MENU_ITEMS_QUERY_STRING_TAG = 'menu_sale_location_tree';
        const MENU_ITEMS_QUERY_STRING_DELIMITER = ':';
        const URL_PARAM_PARENT_ID = 'PARENT_ID';
        const URL_PARAM_ID = 'id';
        #####################################
        #### Entity settings
        #####################################
        /**
         * Function returns instructions from where and which columns we take to show in UI
         * @return string Entity class name
         */
        public function getEntityRoadMap()
        {
        }
        ##############################################
        ##############################################
        ##############################################
        public static function getFilterColumns()
        {
        }
        public static function getListGridColumns()
        {
        }
        // generalized filter to orm filter proxy
        public static function getParametersForList($proxed)
        {
        }
        public static function getFormData($id)
        {
        }
        ##############################################
        ##############################################
        ##############################################
        // high-level validators used when accepting data typed in form. There can be some misspelling, etc, so additional buisness-logic required
        public static function validateUpdateRequest($data)
        {
        }
        public static function proxyUpdateRequest($data)
        {
        }
        public static function proxyListRequest($page = 'list')
        {
        }
        // crud over entity: update
        public static function update($primary, $data, $batch = false)
        {
        }
        // crud over entity: delete
        public static function delete($primary, $batch = false)
        {
        }
        #####################################
        #### Entity-specific
        #####################################
        public static function checkFirstImportDone()
        {
        }
        public static function getParentId($id)
        {
        }
        public static function getExternalData($id)
        {
        }
        public static function getExternalServicesList()
        {
        }
        /**
         * @deprecated
         * 
         * Use TypeHelper::getTypes() instead
         */
        public static function getTypeList()
        {
        }
        public static function getExternalMap()
        {
        }
        public static function checkRequestIsMenuRequest()
        {
        }
        public static function getLocationSubMenu()
        {
        }
        // transcendental thing that makes location menu work
        public static function packItemsQueryString($parameters = array())
        {
        }
        public static function unPackItemsQueryString()
        {
        }
        public static function getListUrl($parent = false, $parameters = array())
        {
        }
        public static function getEditUrl($node = false, $parameters = array())
        {
        }
        public static function appendMenuChildren(&$attachTo, $attachWhat, $index, $queryParams)
        {
        }
        public static function getLocationStringById($primary, $behaviour = array('INVERSE' => false, 'DELIMITER' => ', ', 'LANGUAGE_ID' => LANGUAGE_ID))
        {
        }
        public static function getLocationStringByCode($primary, $behaviour = array('INVERSE' => false, 'DELIMITER' => ', ', 'LANGUAGE_ID' => LANGUAGE_ID))
        {
        }
        protected static function getLocationStringByCondition($condition, $behaviour = array('INVERSE' => false, 'DELIMITER' => ', ', 'LANGUAGE_ID' => LANGUAGE_ID))
        {
        }
        public static function getLocationsByZip($zip, $parameters = array())
        {
        }
        public static function getZipByLocation($locationCode, $parameters = array())
        {
        }
        public static function checkLocationMigrated()
        {
        }
        // checks if new location enabled or not
        public static function checkLocationEnabled()
        {
        }
        // informers
        public static function informAdminLocationDatabaseFailure()
        {
        }
        public static function deleteInformer($informerTag)
        {
        }
        /**
         * @deprecated
         */
        public static function getLocationPathDisplay($primary)
        {
        }
    }
    class DefaultSiteHelper extends \Bitrix\Sale\Location\Admin\Helper
    {
        const LIST_PAGE_URL = 'sale_location_default_list.php';
        const EDIT_PAGE_URL = 'sale_location_default_edit.php';
        #####################################
        #### Entity settings
        #####################################
        /**
         * Function returns class name for an attached entity
         * @return string Entity class name
         */
        public function getEntityRoadMap()
        {
        }
        #####################################
        #### CRUD wrappers
        #####################################
        public static function proxyUpdateRequest($data)
        {
        }
        public static function proxyListRequest($page)
        {
        }
        // block add handle, nothing to add
        public static function add($data)
        {
        }
        public static function update($siteId, $data)
        {
        }
        // block delete handle, nothing to delete
        public static function delete($primary)
        {
        }
        // avoid paging here, kz its based on ID which is absent for this table
        public static function getList($parameters = array(), $tableId = false, $navigation = 20, $params = array())
        {
        }
        public static function getFormData($id)
        {
        }
        public static function getNameToDisplay($siteId)
        {
        }
        #####################################
        #### Entity-specific
        #####################################
        public static function tryParseSiteId($sid)
        {
        }
        public static function getDefaultLocationList($siteId)
        {
        }
    }
    class GroupHelper extends \Bitrix\Sale\Location\Admin\NameHelper
    {
        const LIST_PAGE_URL = 'sale_location_group_list.php';
        const EDIT_PAGE_URL = 'sale_location_group_edit.php';
        #####################################
        #### Entity settings
        #####################################
        /**
         * Function returns class name for an attached entity
         * 
         * @return string Entity class name
         */
        public function getEntityRoadMap()
        {
        }
        #####################################
        #### CRUD wrappers
        #####################################
        public static function add($data)
        {
        }
        public static function update($gId, $data)
        {
        }
        public static function updateFields($gId, $data)
        {
        }
        public static function delete($gId)
        {
        }
    }
    final class SearchHelper
    {
        const INDEX_RECHECK_COUNTER_OPT = 'sale.location.index_recheck_counter';
        const INDEX_VALID_OPT = 'sale.location.db_index_valid';
        const HITS_BETWEEN_RECHECKS = 20;
        protected static function setCounter($value)
        {
        }
        protected static function getCounter()
        {
        }
        protected static function showSearchNotification()
        {
        }
        public static function checkIndexValid()
        {
        }
        public static function setIndexValid()
        {
        }
        public static function setIndexInvalid()
        {
        }
        protected static function showDBIndexNotification()
        {
        }
        public static function checkIndexesValid()
        {
        }
    }
    class ExternalServiceHelper extends \Bitrix\Sale\Location\Admin\Helper
    {
        const LIST_PAGE_URL = 'sale_location_external_service_list.php';
        const EDIT_PAGE_URL = 'sale_location_external_service_edit.php';
        #####################################
        #### Entity settings
        #####################################
        /**
         * Function returns class name for an attached entity
         * @return string Entity class name
         */
        public function getEntityRoadMap()
        {
        }
    }
    class TypeHelper extends \Bitrix\Sale\Location\Admin\NameHelper
    {
        const LIST_PAGE_URL = 'sale_location_type_list.php';
        const EDIT_PAGE_URL = 'sale_location_type_edit.php';
        #####################################
        #### Entity settings
        #####################################
        /**
         * Function returns class name for an attached entity
         * @return string Entity class name
         */
        public function getEntityRoadMap()
        {
        }
        public static function getTypeCodeIdMapCached()
        {
        }
        public static function getTypes($params = array('LANGUAGE_ID' => LANGUAGE_ID))
        {
        }
    }
}
namespace Bitrix\Sale\Location {
    abstract class Connector extends \Bitrix\Main\Entity\DataManager
    {
        const LINK_ID = 0x1;
        const LINK_CODE = 0x2;
        const DB_LOCATION_FLAG = 'L';
        const DB_GROUP_FLAG = 'G';
        const LSTAT_IN_NOT_CONNECTED_BRANCH = 0x1;
        const LSTAT_IS_CONNECTOR = 0x2;
        const LSTAT_ABOVE_CONNECTOR = 0x3;
        const LSTAT_BELOW_CONNECTOR = 0x4;
        #####################################
        #### Entity settings
        #####################################
        /** 
         * Method returns name of table column that provides linking between location table and entity table. For example, for delivery it should return 'DELIVERY_ID'
         * Limitation: mechanism does not support compound primary keys
         *
         * @return string field name
         */
        public abstract function getLinkField();
        /** Method should return a name of the "target" entity plus namespace but without trailing 'Table'. For example, for delivery this should be 'Bitrix\Sale\Delivery\Delivery'
         *
         * @return string table name
         */
        public abstract function getTargetEntityName();
        /**
         * Returns a name of type filed. By default 'LOCATION_TYPE' is used for the most of. Does not make any sense if getUseGroups() returns false
         * 
         * @return string
         */
        public static function getTypeField()
        {
        }
        /**
         * Returns a name of the filed that keep location id or code. By default 'LOCATION_ID' is used for the most. For newly-created entites this should be LOCATION_CODE (string)
         * 
         * @return string
         */
        public static function getLocationLinkField()
        {
        }
        /**
         * Returns a name of the primary field of the "target" entity. By default 'ID' is used for the most. See target entity class for sure.
         * 
         * @return string
         */
        public static function getTargetEntityPrimaryField()
        {
        }
        /**
         * Show whether or not entity use linking through groups. E.g. delivery would return true, 
         * but location groups (which can be treated as entity too) - always return false (groups cannot be connected with groups)
         * 
         * @return boolean
         */
        public static function getUseGroups()
        {
        }
        /**
         * Show whether or not entity use link tracking. Link tracking allows keeping information about link existence in option strings.
         * So, this is some kind of cacheing mechanism. It can be usefull, but may exceed option string length when there are lots of entity records exist.
         * 
         * @return boolean
         */
        public static function getUseLinkTracking()
        {
        }
        /**
         * Return the connection type for the current entity. Return value that is equal to self::LINK_ID stands for ID, otherwise - for CODE link type
         * 
         * @return integer
         */
        public static function getConnectType()
        {
        }
        /**
         * Just a shortcut to link type identification
         * 
         * @return boolean
         */
        public static function getUseCodes()
        {
        }
        #####################################
        #### CRUD wrappers
        #####################################
        /**
         * Adds a new connection between location and entity
         * 
         * @param mixed[] $data data to add (See getMap() of a certain implementation for $data key details)
         * 
         * @return Bitrix\Main\Entity\AddResult
         */
        public static function add(array $data)
        {
        }
        /**
         * Updates a connection between location and entity
         * 
         * @param mixed $primary relation primary key value
         * @param mixed[] $data data to update with (See getMap() of a certain implementation for $data key details)
         * 
         * @return Bitrix\Main\Entity\UpdateResult
         */
        public static function update($primary, array $data)
        {
        }
        /**
         * Removes a connection between location and entity
         * 
         * @param mixed $primary relation primary key value
         * 
         * @return Bitrix\Main\Entity\DeleteResult
         */
        public static function delete($primary)
        {
        }
        public static function onAfterModifiy()
        {
        }
        /**
         * Establishes several connections between entity and locations. Could be used to add and delete selected relations.
         * 
         * @param mixed $entityPrimary primary key for an entity
         * @param integer[][]|string[][] $links array of locations and groups to link an entity with
         * 
         * 	Argument format:
         * 	array(
         * 		'L' => array(), // an array of IDs or CODEs of locations
         * 		'G' => array() // an array of IDs or CODEs of location groups
         * 	)
         * 
         * @throws Bitrix\Main\ArgumentNullException
         * 
         * @return boolean
         */
        public static function updateMultipleForOwner($entityPrimary, $links = array(), $behaviour = array('REMOVE_ABSENT' => true))
        {
        }
        // removes all links with a given entity
        public static function deleteAllForOwner($entityPrimary, $behaviour = array('BATCH_MODE' => false))
        {
        }
        public static function deleteAll()
        {
        }
        /**
         * Removes all links and creates new ones
         * 
         */
        public static function resetMultipleForOwner($entityPrimary, $links = array())
        {
        }
        private static function updateMultipleLinkType($entityPrimary, $links, $existed, $linkType = self::DB_LOCATION_FLAG, $doRemove = true)
        {
        }
        #####################################
        #### Getters
        #####################################
        /**
         * Returns a set of locations that connected with a given entity, directly and, optionally, through groups.
         *
         * @param mixed $entityPrimary primary key for an entity
         * @param mixed[] $parameters filter and select parameters in ORM getlist() style, functionality is enought for usage, but limited. See limitations in code comments.
         * @param string[] $behaviour a set of behaviour options:
         *	<ul>
         *		<li>GET_LINKED_THROUGH_GROUPS boolean (default true) - if set to true, locations will be searched also throurgh groups (if entity connector supports groups)</li>
         *	</ul>
         *
         * @throws ArgumentNullException
         * @throws NotImplementedException
         *
         * @return String an SQL-query string that, being called, returns a list of locations
         */
        public static function getConnectedLocationsQuery($entityPrimary, $parameters = array(), $behaviour = array('GET_LINKED_THROUGH_GROUPS' => false))
        {
        }
        /**
         * More preferable alias for getConnectedLocationsQuery()
         */
        public static function getConnectedLocationsSql($entityPrimary, $parameters = array(), $behaviour = array('GET_LINKED_THROUGH_GROUPS' => false))
        {
        }
        public static function getConnectedLocations($entityPrimary, $parameters = array(), $behaviour = array('GET_LINKED_THROUGH_GROUPS' => false))
        {
        }
        /**
         * Returns a set of location groups that connected with a given entity.
         *
         * @param mixed $entityPrimary primary key for an entity
         * @param mixed[] $parameters for ORM getList()
         *
         * @throws ArgumentNullException
         * @throws NotImplementedException
         *
         * @return \Bitrix\Main\DB\Result list of locations
         */
        public static function getConnectedGroups($entityPrimary, $parameters = array())
        {
        }
        // returns list of connected entities for location with ID == $locationPrimary, with an optional filter applied
        public static function getConnectedEntites($locationPrimary, $parameters = array())
        {
        }
        // returns list of connected entities for location with CODE == $locationPrimary, with an optional filter applied
        public static function getConnectedEntitesByCode($locationPrimary, $parameters = array())
        {
        }
        // returns sql-select query that can be embeded to another sql query in 'ID in (select * from ...)' manner
        public static function getConnectedEntitiesQuery($locationPrimary, $linkType = 'id', $parameters = array())
        {
        }
        protected static function getConnectedEntitiesByCondition($locationPrimary, $linkType = 'id', $parameters = array())
        {
        }
        protected static function getLinkedLocations($entityPrimary)
        {
        }
        /**
         * Functions for massive check for link type
         * 
         * 
         */
        public static function getLinkStatusForMultipleNodes($nodeInfo = array(), $entityPrimary, $connectors = false)
        {
        }
        /**
         * Check if location is connected with entity
         * 
         * @param $entityPrimary mixed Entity being checked
         * @param $locationPrimary mixed Location being checked. Could be a value of ID or CODE depending on what connection type is selected (see below)
         * @param $behaviour mixed[] A set of flags that modify function behaviour
         * 		<li> LOCATION_LINK_TYPE string One of: ID, CODE, AUTO. 
         * 			If ID, than match by ID is used (default, for compatibility), if CODE than match by CODE. 
         * 			In case of AUTO the target field value depends on entity connect type.
         * 
         * @return boolean
         */
        public static function checkConnectionExists($entityPrimary, $locationPrimary, array $behaviour = array('LOCATION_LINK_TYPE' => 'ID'))
        {
        }
        // a wrapper to getConnectedLocations which returns simple info about connected locations
        protected static function getConnectedLocationsInfo($entityPrimary)
        {
        }
        #####################################
        #### Link tracking
        #####################################
        public static function checkLinkUsageAny($entityPrimary)
        {
        }
        /**
         * Check if there is a link between entity and locations, optionally of a certain type (default: locations)
         *
         * @param mixed $entityPrimary primary key for an entity
         * @param string $linkType link type (G or L (default))
         *
         * @throws ArgumentNullException
         *
         * @return boolean
         */
        public static function checkLinkUsage($entityPrimary, $linkType = self::DB_LOCATION_FLAG)
        {
        }
        /**
         * Function switches link usage to "on\off" position, for a certain entity and connection type (to location or to group)
         *
         */
        private static function setLinkUsage($entityPrimary, $linkType = self::DB_LOCATION_FLAG, $way = true)
        {
        }
        /**
         * Function re-reads link existence and set options correctly
         *
         */
        private static function resetLinkUsage($entityPrimary)
        {
        }
        /**
         * Function returns option value (or an empty array, if option is not set)
         *
         */
        private static function getLinkUsageOptionValue()
        {
        }
        /**
         * Function sets option value
         *
         */
        private static function setLinkUsageOptionValue($usageFlags)
        {
        }
        private static function deleteLinkUsageOption()
        {
        }
        private static function getLinkOptionName()
        {
        }
        #####################################
        #### Util
        #####################################
        private static function checkUpdateLinks($links)
        {
        }
        /**
         * A special paginator for UNION-like queries
         *
         * @param string $sql SQL select query to execute, wrapped in union
         * @param integer $limit record limit to fetch (default: 0)
         * @param integer $offset offset to start fetching records from (default: 0)
         *
         * @return Bitrix\Main\DB\Result
         */
        protected static function queryPage($sql, $limit = 0, $offset = 0)
        {
        }
        /**
         * Wraps a set of sqls to a union
         *
         * @param string[] $sqls a set of SQL select queries to wrap
         *
         * @return string
         */
        public static function unionize($sqls)
        {
        }
        // function accepts denormalized list of location IDs on input, then makes it normal and returns list of IDs or CODEs, depending on current entity settings
        public static function normalizeLocationList($denormalizedList = array())
        {
        }
    }
    class GroupLocationTable extends \Bitrix\Sale\Location\Connector
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getTypeField()
        {
        }
        public function getLinkField()
        {
        }
        public function getTargetEntityName()
        {
        }
        public static function getUseGroups()
        {
        }
        public static function getMap()
        {
        }
        public static function deleteByGroupId($groupId)
        {
        }
    }
}
namespace Bitrix\Sale\Location\Search {
    final class WordChainTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function cleanUp()
        {
        }
        public static function createTables()
        {
        }
        public static function reCreateIndex()
        {
        }
        const STEP_SIZE = 100;
        public static function reInitData($parameters = array())
        {
        }
        public static function search($words, $offset)
        {
        }
        public static function getMap()
        {
        }
    }
    class Finder
    {
        const SALE_LOCATION_INDEXED_TYPES_OPT = 'sale.location.indexed_types';
        const SALE_LOCATION_INDEXED_LANGUAGES_OPT = 'sale.location.indexed_langs';
        const SALE_LOCATION_INDEX_VALID_OPT = 'sale.location.index_valid';
        protected static $allowedOperations = array('=' => true);
        public static function checkIndexValid()
        {
        }
        public static function setIndexValid()
        {
        }
        public static function setIndexInvalid()
        {
        }
        public static function getIndexedTypes()
        {
        }
        public static function setIndexedTypes($types = array())
        {
        }
        public static function getIndexedLanguages()
        {
        }
        public static function setIndexedLanguages($langs = array())
        {
        }
        protected static function getLangsFromDb()
        {
        }
        protected static function getTypesFromDb()
        {
        }
        /**
         * 
         * $parameters is an ORM`s getList compatible array of parameters
         * 
         * 
         */
        public static function find($parameters, $behaviour = array('FALLBACK_TO_NOINDEX_ON_NOTFOUND' => true, 'USE_INDEX' => true, 'USE_ORM' => true))
        {
        }
        protected static function parseFilter($filter)
        {
        }
        protected static function findUsingIndex($parameters)
        {
        }
        /**
         *
         *
         * @param
         *
         * @return
         */
        protected static function findNoIndex($parameters)
        {
        }
    }
    final class ChainTable extends \Bitrix\Main\Entity\DataManager implements \Serializable
    {
        const STEP_SIZE = 10000;
        const MTU = 9999;
        protected $procData = array();
        protected $indexInserter = null;
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public function serialize()
        {
        }
        public function unserialize($data)
        {
        }
        public function __construct($parameters = array())
        {
        }
        public function initInsertHandles()
        {
        }
        public function resetProcess()
        {
        }
        public function getOffset()
        {
        }
        public static function cleanUpData()
        {
        }
        public static function getFilterForInitData($parameters = array())
        {
        }
        protected static function rarefact($sorts, $window = 10000)
        {
        }
        public function initializeData()
        {
        }
        public static function createIndex()
        {
        }
        public static function getMap()
        {
        }
    }
    final class WordStatTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function cleanUp()
        {
        }
        const STEP_SIZE = 100;
        // tmp
        protected static $blackList = array('ÐÀÉÎÍ' => true, 'ÎÁËÀÑÒÜ' => true, 'ÓËÈÖÀ' => true, 'ÒÓÏÈÊ' => true, 'ÃÅÍÅÐÀËÀ' => true, 'ÏÅÐÅÓËÎÊ' => true, 'ÏÎÑ¨ËÎÊ' => true, 'ÑÅËÎ' => true, 'ÃÎÐÎÄÑÊÎÃÎ' => true, 'ÒÈÏÀ' => true, 'ÃÎÐÎÄÎÊ' => true, 'ÑÍÒ' => true, 'ÍÀÑÅË¨ÍÍÛÉ' => true, 'ÏÓÍÊÒ' => true, 'ÄÅÐÅÂÍß' => true, 'ÄÀ×ÍÛÉ' => true, 'ÄÍÏ' => true, 'ÄÍÒ' => true, 'ÏËÎÙÀÄÜ' => true, 'ÏÐÎÅÇÄ' => true, 'ÀËËÅß' => true);
        public static function parseQuery($query)
        {
        }
        public static function reInitData()
        {
        }
        public static function getMap()
        {
        }
    }
    final class SiteLinkTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function checkTableExists()
        {
        }
        public static function cleanUpData()
        {
        }
        public static function initializeData()
        {
        }
        public static function createIndex()
        {
        }
        public static function getMap()
        {
        }
    }
    final class ReindexProcess extends \Bitrix\Sale\Location\Util\Process
    {
        const DEBUG_MODE = true;
        protected $sessionKey = 'location_reindex';
        protected $wordInstance = null;
        protected $chainInstance = null;
        public function __construct($options)
        {
        }
        public function onAfterPerformIteration()
        {
        }
        /////////////////////////////////////
        // STAGES
        protected function stageCleanup()
        {
        }
        ///////////////////////////////////////////////
        protected function stageCreateDictionaryBefore()
        {
        }
        protected function stageCreateDictionary()
        {
        }
        protected function stageCreateDictionaryAfter()
        {
        }
        protected function getSubpercentForStageCreateDictionary()
        {
        }
        ///////////////////////////////////////////////
        protected function stageResortDictionaryBefore()
        {
        }
        protected function stageResortDictionary()
        {
        }
        protected function stageResortDictionaryAfter()
        {
        }
        protected function getSubpercentForStageResortDictionary()
        {
        }
        ///////////////////////////////////////////////
        protected function stageCreateSearchIndexBefore()
        {
        }
        protected function stageCreateSearchIndex()
        {
        }
        protected function stageCreateSearchIndexAfter()
        {
        }
        protected function getSubpercentForStageCreateSearchIndex()
        {
        }
        ///////////////////////////////////////////////
        protected function stageCreateSite2LocationIndex()
        {
        }
        protected function getSubpercentForCreateSite2LocationIndex()
        {
        }
        protected function stageRestoreDBIndexes()
        {
        }
        protected function getSubpercentForRestoreDBIndexes()
        {
        }
    }
    final class WordTable extends \Bitrix\Main\Entity\DataManager implements \Serializable
    {
        protected $procData = array();
        protected $word2LocationInserter = null;
        protected $dictionaryInserter = null;
        protected $dictionaryIndex = array();
        const STEP_SIZE = 10000;
        const MTU = 9999;
        public function serialize()
        {
        }
        public function unserialize($data)
        {
        }
        public static function getFilePath()
        {
        }
        // this for keeping word dictionary
        public static function getTableName()
        {
        }
        // this for keeping links between location-and-word-id
        public static function getTableNameWord2Location()
        {
        }
        // this for merge, temporal table
        public static function getTableNamePositionTemporal()
        {
        }
        public function __construct($parameters)
        {
        }
        public function initInsertHandles()
        {
        }
        public function resetProcess()
        {
        }
        public static function cleanUpData()
        {
        }
        public static function createIndex()
        {
        }
        public static function parseWords($words)
        {
        }
        public static function parseString($query)
        {
        }
        public function setOffset($offset)
        {
        }
        public function getOffset()
        {
        }
        public function setPosition($position)
        {
        }
        public function getPosition()
        {
        }
        public function onBeforeDictionaryFlush()
        {
        }
        public static function getFilterForInitData($parameters = array())
        {
        }
        public function initializeData()
        {
        }
        public function resort()
        {
        }
        public static function mergeResort()
        {
        }
        public static function getIdByWord($word)
        {
        }
        public static function getBoundsByWord($word)
        {
        }
        public static function getWordsByBounds($inf, $sup)
        {
        }
        public static function getBoundsForPhrase($phrase)
        {
        }
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Sale\Location {
    class SiteLocationTable extends \Bitrix\Sale\Location\Connector
    {
        const ALL_SITES = '*';
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public function getLinkField()
        {
        }
        public function getTargetEntityName()
        {
        }
        public static function getUseLinkTracking()
        {
        }
        public static function getTargetEntityPrimaryField()
        {
        }
        public static function onAfterModifiy()
        {
        }
        public static function getMap()
        {
        }
    }
    class Comparator
    {
        const LOCALITY = 0;
        const DISTRICT = 1;
        const REGION = 2;
        const COUNTRY = 3;
        public static $variants = null;
        public static $replacement = null;
        public static function isLocationsEqual($location1, $location2)
        {
        }
        public static function getReplacement()
        {
        }
        public static function setReplacement(\Bitrix\Sale\Location\Comparator\Replacement $replacement = null)
        {
        }
        public static function isCountryRussia($countryName)
        {
        }
        /**
         * @param int|string $type.
         * @return string Comparator class name.
         * @throws ArgumentOutOfRangeException
         */
        private static function getConcreteComparatorClassaName($type)
        {
        }
        public static function isEntityEqual($entity1, $entity2, $type = '')
        {
        }
        protected static function getTypes()
        {
        }
        protected static function getVariantsValues()
        {
        }
        public static function setVariantsValues(array $variants = array())
        {
        }
        public static function setVariants(array $variants = array())
        {
        }
        public static function flatten($value)
        {
        }
        protected static function normalizeVariants(array $variants)
        {
        }
        public static function normalizeEntity($name, $type)
        {
        }
        // Gadyukino d. | Derevnya Gadyukino  => array( 'NAME' => 'Gadykino', 'TYPE' => 'DEREVNYA'
        protected static function normalize($name)
        {
        }
        public static function getLocalityNamesArray($name, $type)
        {
        }
    }
    class ComparatorLocality extends \Bitrix\Sale\Location\Comparator
    {
        public static $variants = null;
        protected static function getTypes()
        {
        }
    }
    class ComparatorDistrict extends \Bitrix\Sale\Location\Comparator
    {
        public static $variants = null;
        protected static function getTypes()
        {
        }
    }
    class ComparatorRegion extends \Bitrix\Sale\Location\Comparator
    {
        public static $variants = null;
        protected static function getTypes()
        {
        }
        public static function setVariantsValues(array $variants = array())
        {
        }
    }
    class ComparatorCountry extends \Bitrix\Sale\Location\Comparator
    {
        public static $variants = null;
        public static function setVariantsValues(array $variants = array())
        {
        }
    }
    abstract class Tree extends \Bitrix\Main\Entity\DataManager
    {
        const SORT_FREE_BEFORE = 1;
        const SORT_FREE_AFTER = 2;
        const SORT_HOLE_SIZE = 10;
        const SORT_HOLE_SIZE_HALF = 5;
        const BLOCK_INSERT_MTU = 9999;
        const SPACE_ADD = 1;
        const SPACE_REMOVE = 2;
        public static function add(array $data)
        {
        }
        /**
         * Available keys in $additional
         * REBALANCE - if set to true, method will rebalance tree after insertion
         */
        public static function addExtended(array $data, array $additional = array())
        {
        }
        protected static function rebalance($node, $id)
        {
        }
        // we must guarantee tree integrity in any situation, so make low-level checking to prevent walking around
        public static function checkFields(\Bitrix\Main\Entity\Result $result, $primary, array $data)
        {
        }
        public static function update($primary, array $data)
        {
        }
        /**
         * Available keys in $additional
         * REBALANCE - if set to true, method will rebalance tree after insertion
         */
        public static function updateExtended($primary, array $data, array $additional = array())
        {
        }
        public static function delete($primary)
        {
        }
        /**
         * Available keys in $additional
         * REBALANCE - if set to true, method will rebalance tree after insertion
         * DELETE_SUBTREE - if set to true, only node will be deleted, and it`s subtree left unattached
         * @param $primary
         * @param array $additional
         * @return Entity\DeleteResult
         * @throws Main\SystemException
         * @throws Tree\NodeIncorrectException
         * @throws Tree\NodeNotFoundException
         * @throws \Exception
         */
        public static function deleteExtended($primary, array $additional = array())
        {
        }
        /**
         * This method is for internal use only. It may be changed without any notification further, or even mystically disappear.
         * 
         * @access private
         */
        public static function getSubtreeRangeSqlForNode($primary, $node = array())
        {
        }
        public static function checkIntegrity()
        {
        }
        public static function checkNodeIsParentOfNodeById($primary, $childPrimary, $behaviour = array('CHECK_DIRECT' => false))
        {
        }
        protected static function checkNodeIsParentOfNodeByCondition($parentNodeFilter, $nodeFilter, $behaviour = array('CHECK_DIRECT' => false))
        {
        }
        // recalc left_margin & right_margin in the whole tree
        // strongly recommened to invoke only inside a transaction
        public static function resort($dontCareEvents = false)
        {
        }
        public static function getPathToNode($primary, $parameters, $behaviour = array('SHOW_LEAF' => true))
        {
        }
        /**
         * Fetches a parent chain of a specified node
         * 
         * Available keys in $behaviour
         * SHOW_LEAF : if set to true, return node itself in the result
         * 
         * @access private
         */
        public static function getPathToNodeByCondition($filter, $parameters = array(), $behaviour = array('SHOW_LEAF' => true))
        {
        }
        public static function getPathToMultipleNodes($nodeInfo = array(), $parameters = array(), $behaviour = array('SHOW_LEAF' => true))
        {
        }
        public static function getDeepestCommonParent($nodeInfo = array(), $parameters = array())
        {
        }
        public static function getChildren($primary, $parameters = array())
        {
        }
        /**
         * Fetches a set of items which form sub-tree of a given node
         */
        public static function getSubTree($primary, $parameters = array())
        {
        }
        /**
         * Fetches a chain of parents with their subtrees expanded
         * 
         * Available keys in $behaviour
         * SHOW_CHILDREN : if set to true, do return direct ancestors of $primary in the result
         * START_FROM
         */
        public static function getParentTree($primary, $parameters = array(), $behaviour = array('SHOW_CHILDREN' => true, 'START_FROM' => false))
        {
        }
        /////////////////////////
        /// PROTECTED
        /////////////////////////
        /**
         * Do not call directly, only inside update()
         * 
         * @param int $primary Subtree`s root id to move
         * @param int $primaryDst Item id to attach our subtree to
         *
         */
        protected static final function moveSubtree($primary, $primaryDst)
        {
        }
        protected static final function processInsertInstruction(&$data)
        {
        }
        protected static final function manageFreeSpace($right, $length = 2, $op = self::SPACE_ADD, $exceptId = false)
        {
        }
        // act in assumption sort field is always defined for each node and also it`s value positive signed
        protected static final function makeSortSpace($primary, $direction = self::SORT_FREE_AFTER, $primaryParent, $knownSort = false)
        {
        }
        // in-deep tree walk
        protected static final function walkTreeInDeep($primary, $edges, &$nodes, $margin, $depth = 0, $dontCareEvents = false)
        {
        }
        protected static function applyRestrictions(&$data)
        {
        }
        protected static function getNodeInfo($primary)
        {
        }
        protected static function getMaxMargin()
        {
        }
        public static function mergeRelationsFromTemporalTable($temporalTabName, $additinalFlds = array(), $fldMap = array())
        {
        }
        public static function getCountByFilter($filter = array())
        {
        }
        protected static function checkNodeThrowException($node)
        {
        }
        // deprecated
        protected static function checkNodeIsParentOfNodeByFilters($parentNodeFilter, $nodeFilter, $behaviour = array('CHECK_DIRECT' => false))
        {
        }
    }
    final class LocationTable extends \Bitrix\Sale\Location\Tree
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        /**
         * Returns location with the specified code.
         *
         * @param string $code location code to search for
         *
         * @throws Bitrix\Main\ArgumentNullException
         *
         * @return Bitrix\Main\DB\Result location
         */
        public static function getByCode($code = '', $parameters = array())
        {
        }
        public static function checkFields(\Bitrix\Main\Entity\Result $result, $primary, array $data)
        {
        }
        public static function add(array $data)
        {
        }
        /**
         * Adds a new location
         *
         * @param mixed[] $data to be added. Additional data keys could be passed:
         *
         *	<ul>
         *		<li>
         *			NAME string[] : add name string to a newly created location
         *		</li>
         *		<li>
         *			EXTERNAL string[] : add external data records to a newly created location
         *		</li>
         *	</ul>
         *
         * @param mixed[] $additional an additional behaviour flags:
         *
         *	<ul>
         *		<li>
         *			REBALANCE boolean (default: true) : do rebalance after add
         *		</li>
         *	</ul>
         *
         * @return \Bitrix\Main\Entity\AddResult the result of add operation
         */
        public static function addExtended(array $data, array $additional = array())
        {
        }
        protected static function resetLegacy($typeId)
        {
        }
        public static function update($primary, array $data)
        {
        }
        /**
         * Updates an existed location
         *
         * @param integer $primary location primary key of a element being updated
         * @param mixed[] $data new data to set. Additional data keys could be passed:
         *
         *	<ul>
         *		<li>
         *			NAME string[] : update name string for specified location
         *		</li>
         *		<li>
         *			EXTERNAL string[] : update external data records for specified location
         *		</li>
         *	</ul>
         *
         * @param mixed[] $additional an additional behaviour flags:
         *
         *	<ul>
         *		<li>
         *			REBALANCE boolean (default: true) : do rebalancing after add
         *		</li>
         *	</ul>
         *
         * @return \Bitrix\Main\Entity\UpdateResult the result of update operation
         */
        public static function updateExtended($primary, array $data, array $additional = array())
        {
        }
        public static function delete($primary)
        {
        }
        /**
         * Deletes location from the tree
         *
         * @param $primary
         * @param array $additional
         * @return Entity\DeleteResult
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         * @throws Tree\NodeNotFoundException
         */
        public static function deleteExtended($primary, array $additional = array())
        {
        }
        /**
         *
         *
         *
         */
        public static function getExternalData($primary, $parameters = array())
        {
        }
        // todo: make getList with SITE_ID parameter to have an ability to filter by SITE_ID using orm (even slowly)
        /**
         * Fetches a parent chain of a specified node, using its code
         * 
         * Available keys in $behaviour
         * SHOW_LEAF : if set to true, return node itself in the result
         */
        public static function getPathToNodeByCode($code, $parameters, $behaviour = array('SHOW_LEAF' => true))
        {
        }
        public static function checkNodeIsParentOfNode($primary, $childPrimary, $behaviour = array('ACCEPT_CODE' => false, 'CHECK_DIRECT' => false))
        {
        }
        public static function resetLegacyPath()
        {
        }
        public static function getCodeValidators()
        {
        }
        public static function getMap()
        {
        }
        /**
         * @deprecated
         */
        public static function getListFast($parameters = array())
        {
        }
    }
}
namespace Bitrix\Sale\Location\DB {
    abstract class CommonHelper
    {
        public static function getSqlForDataType($type, $len = 0)
        {
        }
        public static function getBatchInsertHead($tableName, $fields = array())
        {
        }
        public static function getBatchInsertTail()
        {
        }
        public static function getBatchInsertSeparator()
        {
        }
        public static function getBatchInsertValues($row, $tableName, $fields, $map)
        {
        }
        public static function getMaxTransferUnit()
        {
        }
        protected static function prepareSql($row, $fields, $map)
        {
        }
        // makes sense only for mssql
        public static function dropAutoIncrementRestrictions($tableName)
        {
        }
        // same
        public static function restoreAutoIncrementRestrictions($tableName)
        {
        }
        // makes sense only for oracle
        public static function incrementSequenceForTable($tableName)
        {
        }
        // makes sense only for oracle
        protected static function checkSequenceExistsForTable($tableName)
        {
        }
        /*
        public static function addPrimaryKey($tableName, $columns = array())
        {
        	if(!strlen($tableName) || !is_array($columns) || empty($columns))
        		return false;
        
        	$dbConnection = Main\HttpApplication::getConnection();
        	$dbHelper = $dbConnection->getSqlHelper();
        
        	$tableName = $dbHelper->forSql($tableName);
        	$columns = static::escapeArray($columns);
        
        	$dbConnection->query("ALTER TABLE ".$tableName." ADD CONSTRAINT PK_".ToUpper($tableName)." PRIMARY KEY (".implode(', ', $columns).")");
        
        	return true;
        }
        */
        // do nothing but for oracle
        public static function addAutoIncrement()
        {
        }
        public static function createIndex($tableName, $ixNamePostfix, $columns = array(), $unique = false)
        {
        }
        protected static function getIndexName($tableName, $ixNamePostfix, $columns = array())
        {
        }
        protected static function escapeArray($columns)
        {
        }
        public static function dropTable($tableName)
        {
        }
        public static function checkTableExists($tableName)
        {
        }
        public static function truncateTable($tableName)
        {
        }
        public static function getQuerySeparatorSql()
        {
        }
        public static function needSelectFieldsInOrderByWhenDistinct()
        {
        }
    }
    class BlockInserter
    {
        protected $tableName = '';
        protected $tableMap = array();
        protected $fldVector = array();
        protected $insertHead = '';
        protected $insertTail = '';
        protected $index = 0;
        protected $bufferSize = 0;
        protected $buffer = '';
        protected $map = array();
        protected $autoIncFld = false;
        protected $dbType = false;
        protected $mtu = 0;
        protected $dbConnection = null;
        protected $dbHelper = null;
        protected $callbacks = array();
        const RED_LINE = 100;
        public function __construct($parameters = array())
        {
        }
        // this method is buggy when table is empty
        public function initIndexFromField($fld = 'ID')
        {
        }
        public function getIndex()
        {
        }
        public function dropAutoIncrementRestrictions()
        {
        }
        public function restoreAutoIncrementRestrictions()
        {
        }
        public function resetAutoIncrementFromIndex()
        {
        }
        public function insert($row)
        {
        }
        public function flush()
        {
        }
    }
    final class Helper extends \Bitrix\Sale\Location\DB\CommonHelper
    {
        public static function getSqlForAutoIncrement()
        {
        }
        public static function mergeTables($toTable, $fromTable, $fldMap, $fldCondition)
        {
        }
        public static function checkIndexNameExists($indexName, $tableName)
        {
        }
        public static function dropIndexByName($indexName, $tableName)
        {
        }
        public static function getMaxTransferUnit()
        {
        }
        // this function is used to adjust auto_increment value of a table to a certain position
        public static function resetAutoIncrement($tableName, $startIndex = 1)
        {
        }
        public static function getQuerySeparatorSql()
        {
        }
    }
}
namespace Bitrix\Sale\Location\Normalizer {
    /**
     * For building locations names normalizers
     * Interface IBuilder
     * @package Bitrix\Sale\Location\Normalizer
     */
    interface IBuilder
    {
        /**
         * @param string $lang Language id.
         * @return INormalizer
         */
        public static function build($lang);
    }
    /**
     * Interface for location names normalizers
     * Interface INormalizer
     * @package Bitrix\Sale\Location\Normalizer
     */
    interface INormalizer
    {
        /**
         * @param string $name Location name
         * @return string
         */
        public function normalize($name);
    }
    /**
     * Normalize Locations names for search and mapping purposes.
     * Class Normalizer
     * @package Bitrix\Sale\Location\Normalizer
     */
    class Normalizer implements \Bitrix\Sale\Location\Normalizer\INormalizer
    {
        /** @var INormalizer [] */
        protected $normalizers = [];
        /**
         * Normalizer constructor.
         * @param INormalizer[] $normalizers
         */
        public function __construct(array $normalizers)
        {
        }
        /**
         * @param INormalizer $normalizer
         * @throws ArgumentOutOfRangeException
         */
        protected function addNormalizer($normalizer)
        {
        }
        /**
         * @param string $string
         * @return string
         */
        public function normalize($string)
        {
        }
    }
    /**
     * Class Builder
     * @package Bitrix\Sale\Location\Normalizer
     * Build location name normalizer
     */
    class Builder implements \Bitrix\Sale\Location\Normalizer\IBuilder
    {
        /**
         * @param string $lang Language identifier
         * @return INormalizer
         */
        public static function build($lang)
        {
        }
    }
    /**
     * Erase spaces from name
     * Class SpaceNormalizer
     * @package Bitrix\Sale\Location\Normalizer
     */
    class SpaceNormalizer implements \Bitrix\Sale\Location\Normalizer\INormalizer
    {
        /**
         * @inheritdoc
         */
        public function normalize($string)
        {
        }
    }
    /**
     * Class CommonNormalizer
     * @package Bitrix\Sale\Location\Normalizer
     * Delete all except letters and spaces, trim and converts to uppercase.
     */
    class CommonNormalizer implements \Bitrix\Sale\Location\Normalizer\INormalizer
    {
        /**
         * @inheritdoc
         */
        public function normalize($string)
        {
        }
    }
    /**
     * Class Helper
     * @package Bitrix\Sale\Location\Normalizer
     * Different service staff.
     */
    final class Helper
    {
        /**
         * Fill locations NAME_NORM FIELD
         * @param int $startId Location name record ID. Start position.
         * @param int $timeout Processing timeout.
         * @return int Last processed ID.
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function fillNormNameColumn($startId = 0, $timeout = 0, $limit = 100)
        {
        }
    }
    /**
     * Normalize due to language specialties
     * Class LanguageNormalizer
     * @package Bitrix\Sale\Location\Normalizer
     */
    class LanguageNormalizer implements \Bitrix\Sale\Location\Normalizer\INormalizer
    {
        /** @var array Letters to replace */
        protected $letters = [];
        /** @var array Names to replace wholly */
        protected $aliases = [];
        /** @var array Locations types titles */
        protected $titles = [];
        /**
         * LanguageNormalizer constructor.
         * @param string $lang Language id.
         * @param array $langData Language specific data.
         */
        public function __construct($lang = LANGUAGE_ID, array $langData = [])
        {
        }
        /** @inheritdoc */
        public function normalize($string)
        {
        }
        /**
         * @param string $string Location name.
         * @param array $letters Replacements
         * @return string
         */
        protected function replaceLetters($string, array $letters)
        {
        }
        /**
         * @param string $string Location name.
         * @param array $titles Replacements
         * @return string
         */
        protected function replaceTitles($string, $titles)
        {
        }
        /**
         * @param string $string Location name
         * @param array $aliases Replacements
         * @return string
         */
        protected function replaceAliases($string, $aliases)
        {
        }
        /**
         * @param string $lang Language id
         * @return array Language data.
         */
        protected function loadLangData($lang)
        {
        }
        /**
         * @param string $lang Language id.
         * @return string Path to language data file.
         */
        protected function getLangDataFilePath($lang)
        {
        }
        /**
         * @param array $langData Language data.
         */
        public function setLangData($langData)
        {
        }
    }
    class NullNormalizer implements \Bitrix\Sale\Location\Normalizer\INormalizer
    {
        /**
         * @inheritdoc
         */
        public function normalize($string)
        {
        }
    }
}
namespace Bitrix\Sale\Location\Name {
    abstract class NameEntity extends \Bitrix\Main\Entity\DataManager
    {
        public static function getLanguageFieldName()
        {
        }
        public abstract function getReferenceFieldName();
        /**
         * Add translations for $primaryOwner
         * @param mixed $primaryOwner Primary key of the item
         * @param string[] $names A set of translations for the item
         * 
         * @return void
         */
        public static function addMultipleForOwner($primaryOwner, $names = array())
        {
        }
        /**
         * Update translations for $primaryOwner
         * @param mixed $primaryOwner Primary key of the item
         * @param string[] $names A set of translations for the item
         * 
         * @return void
         */
        public static function updateMultipleForOwner($primaryOwner, $names)
        {
        }
        /**
         * Delete translations for $primaryOwner
         * @param mixed $primaryOwner Primary key of the item
         * 
         * @return void
         */
        public static function deleteMultipleForOwner($primaryOwner)
        {
        }
        /**
         * Get existed translations for $primaryOwner and add only non-existed ones from $names
         * @param mixed $primaryOwner Primary key of the item
         * @param string[] $names A set of translations for the item
         * 
         * @return void
         */
        public static function addAbsentForOwner($primaryOwner, $names, $behaviour = array('TREAT_EMPTY_AS_ABSENT' => true))
        {
        }
        /**
         * This method is for internal use only. It may be changed without any notification further, or even mystically disappear.
         * 
         * @access private
         */
        public static function deleteMultipleByParentRangeSql($sql)
        {
        }
        protected static function checkEmpty($item)
        {
        }
    }
    class GroupTable extends \Bitrix\Sale\Location\Name\NameEntity
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getLanguageFieldName()
        {
        }
        public function getReferenceFieldName()
        {
        }
        public static function getMap()
        {
        }
    }
    class TypeTable extends \Bitrix\Sale\Location\Name\NameEntity
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public function getReferenceFieldName()
        {
        }
        public static function getMap()
        {
        }
    }
    class LocationTable extends \Bitrix\Sale\Location\Name\NameEntity
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function add(array $data)
        {
        }
        public static function update($primary, array $data)
        {
        }
        public function getReferenceFieldName()
        {
        }
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Sale\Location\Import {
    final class ImportProcess extends \Bitrix\Sale\Location\Util\Process
    {
        const DISTRIBUTOR_HOST = 'www.1c-bitrix.ru';
        const DISTRIBUTOR_PORT = 80;
        //const REMOTE_PATH = 					'/locations_data/compiled/';
        const REMOTE_PATH = '/download/files/locations/pro/';
        const REMOTE_SETS_PATH = 'bundles/';
        const REMOTE_LAYOUT_FILE = 'bundles/layout.csv';
        const REMOTE_TYPE_GROUP_FILE = 'typegroup.csv';
        const REMOTE_TYPE_FILE = 'type.v2.csv';
        const REMOTE_EXTERNAL_SERVICE_FILE = 'externalservice.csv';
        const PACK_STANDARD = 'standard';
        const PACK_EXTENDED = 'extended';
        const LOCAL_SETS_PATH = 'bundles/';
        const LOCAL_LOCATION_FILE = '%s.csv';
        const LOCAL_LAYOUT_FILE = 'layout.csv';
        const LOCAL_TYPE_GROUP_FILE = 'typegroup.csv';
        const LOCAL_TYPE_FILE = 'type.csv';
        const LOCAL_EXTERNAL_SERVICE_FILE = 'externalservice.csv';
        const USER_FILE_DIRECTORY_SESSION_KEY = 'location_import_user_file';
        const USER_FILE_TEMP_NAME = 'userfile.csv';
        const SOURCE_REMOTE = 'remote';
        const SOURCE_FILE = 'file';
        const MAX_CODE_FETCH_BLOCK_LEN = 90;
        const INSERTER_MTU = 99999;
        const INSERTER_MTU_ORACLE = 9999;
        const DB_TYPE_MYSQL = 'mysql';
        const DB_TYPE_MSSQL = 'mssql';
        const DB_TYPE_ORACLE = 'oracle';
        const TREE_REBALANCE_TEMP_BLOCK_LEN = 99999;
        const TREE_REBALANCE_TEMP_BLOCK_LEN_O = 9999;
        const TREE_REBALANCE_TEMP_TABLE_NAME = 'b_sale_location_rebalance';
        const DEBUG_MODE = false;
        protected $sessionKey = 'location_import';
        protected $rebalanceInserter = false;
        protected $stat = array();
        protected $hitData = array();
        protected $useCache = true;
        protected $dbConnection = null;
        protected $dbConnType = null;
        protected $dbHelper = null;
        public function __construct($options)
        {
        }
        public function onBeforePerformIteration()
        {
        }
        /////////////////////////////////////
        // STAGE 1
        protected function stageDownloadFiles()
        {
        }
        protected function getSubpercentForStageDownloadFiles()
        {
        }
        /////////////////////////////////////
        // STAGE 2
        protected function stageDeleteAll()
        {
        }
        protected function getSubpercentForstageDeleteAll()
        {
        }
        /////////////////////////////////////
        // STAGE 2.5
        protected function stageDropIndexes()
        {
        }
        protected function getSubpercentForStageDropIndexes()
        {
        }
        /////////////////////////////////////
        // STAGE 3
        protected function readBlockFromCurrentFile2()
        {
        }
        protected static function checkLocationCodeExists($code)
        {
        }
        protected function importBlock(&$block)
        {
        }
        protected function getCurrentGid()
        {
        }
        protected function stageProcessFiles()
        {
        }
        protected function getSubpercentForStageProcessFiles()
        {
        }
        /////////////////////////////////////
        // STAGE 4
        protected function stageIntegrityPreserve()
        {
        }
        /////////////////////////////////////
        // STAGE 5
        protected function stageRebalanceWalkTree()
        {
        }
        protected function getSubpercentForStageRebalanceWalkTree()
        {
        }
        /////////////////////////////////////
        // STAGE 6
        protected function stageRebalanceCleanupTempTable()
        {
        }
        /////////////////////////////////////
        // STAGE 7
        protected function stageRestoreIndexes()
        {
        }
        protected function getSubpercentForStageRestoreIndexes()
        {
        }
        /////////////////////////////////////
        // about stage util functions
        protected function getLanguageId()
        {
        }
        /**
         * @deprecated
         */
        public function getTypes()
        {
        }
        public function getStatisticsAll()
        {
        }
        public function getStatistics($type = 'TOTAL')
        {
        }
        public function determineLayoutToImport()
        {
        }
        public function convertBlock($block)
        {
        }
        public function checkSource($sType)
        {
        }
        // download layout from server
        public function getRemoteLayout($getFlat = false)
        {
        }
        // download types from server
        public function getRemoteTypes()
        {
        }
        // download external services from server
        public function getRemoteExternalServices()
        {
        }
        // download type groups from server
        public function getRemoteTypeGroups()
        {
        }
        public function getTypeLevels($langId = LANGUAGE_ID)
        {
        }
        public static function getSiteLanguages()
        {
        }
        public function getRequiredLanguages()
        {
        }
        // read type.csv and build type table
        protected function buildTypeTable()
        {
        }
        protected function checkExternalServiceAllowed($code)
        {
        }
        protected function buildExternalSerivceTable()
        {
        }
        protected function buildStaticLocationIndex()
        {
        }
        protected function getLocationCodeToIdMapQuery($buffer, &$result)
        {
        }
        protected function getLocationCodeToIdMap($codes)
        {
        }
        protected function manageExistedLocationIndex($memGroups)
        {
        }
        /////////////////////////////////////
        // about file and network I/O
        protected function checkIndexExistsByName($indexName, $tableName)
        {
        }
        protected function dropIndexByName($indexName, $tableName)
        {
        }
        public static function getIndexMap()
        {
        }
        protected function dropIndexes($certainIndex = false)
        {
        }
        public function restoreIndexes($certainIndex = false)
        {
        }
        private function getCachedBundle($id)
        {
        }
        private function checkNodeIsParent($id)
        {
        }
        private function mergeRebalancedNodes()
        {
        }
        private function acceptRebalancedNode($node)
        {
        }
        private function dropTempTable()
        {
        }
        private function createTempTable()
        {
        }
        protected function checkFileCompletelyRead()
        {
        }
        protected function checkAllFilesRead()
        {
        }
        protected function checkBufferIsFull($bufferSize)
        {
        }
        protected static function downloadFile($fileName, $storeAs, $skip404 = false, $storeTo = false)
        {
        }
        /**
         * @deprecated
         */
        protected static function cleanWorkDirectory()
        {
        }
        protected function getFileNameByIndex($i)
        {
        }
        public function saveUserFile($inputName)
        {
        }
        protected static function explainFileUploadError($error)
        {
        }
        // all this mess is only to get import work on Bitrix24 (which does not provide any temporal directory in a typical meaning)
        protected function getTemporalDirectory()
        {
        }
        protected static function createDirectory($path)
        {
        }
        protected static function deleteDirectory($path)
        {
        }
        protected function normalizeQueryArray($value)
        {
        }
        protected static function parseQueryCode($value)
        {
        }
        public function turnOffCache()
        {
        }
        ########################################################
        ## static part is used in places like wizards, etc
        public static function getExistedTypes()
        {
        }
        public static function getExistedServices()
        {
        }
        public static function createTypes($types, $existed = false)
        {
        }
        protected static function getTranslatedName($names, $languageId)
        {
        }
        public static function createType($type)
        {
        }
        public static function createService($service)
        {
        }
        public static function getTypeMap($file)
        {
        }
        public static function getServiceMap($file)
        {
        }
        // this is generally for e-shop installer
        public static function importFile(&$descriptior)
        {
        }
        public function provideEnFromRu(&$data)
        {
        }
    }
}
namespace Bitrix\Sale\Location\Import\Compiler\Db {
    class ExportTreeTable extends \Bitrix\Main\Entity\DataManager
    {
        const CODE_LENGTH = 10;
        const RECURSION_MAX_DEPTH = 30;
        protected $inserter = null;
        protected $codeIndex = array();
        protected $exportOffset = 1;
        protected $exportPath = array();
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public function __construct()
        {
        }
        public function restoreExportOffset()
        {
        }
        public function setExportOffset($offset)
        {
        }
        public function dropCodeIndex()
        {
        }
        public function insert($data)
        {
        }
        public function doneInsert()
        {
        }
        public function deleteAll()
        {
        }
        public function getLastOccupiedCode()
        {
        }
        public function getNextFreeCode()
        {
        }
        public static function formatCode($value, $length = self::CODE_LENGTH)
        {
        }
        public function getByCode($code)
        {
        }
        public function getPathTo($code)
        {
        }
        public function getWalkPath()
        {
        }
        public function getWalkPathString()
        {
        }
        public function walkInDeep($callbacks, $ignoreThisAndDeeper = array(), $startFrom = '')
        {
        }
        private function waklInDeepBundle($callbacks, $ignoreThisAndDeeper = array(), $parentCode = '', $depth = 1)
        {
        }
        public function create()
        {
        }
        public function dropIndexes()
        {
        }
        public function restoreIndexes()
        {
        }
        public function cleanup()
        {
        }
        public static function switchIndexes($way = true)
        {
        }
        public function output($data, $important = true)
        {
        }
    }
    class ExportTreeRussiaTable extends \Bitrix\Sale\Location\Import\Compiler\Db\ExportTreeTable
    {
        protected $regionCodeIndex = array();
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public function dropCodeIndex()
        {
        }
        public function insert($data)
        {
        }
        public static function getMap()
        {
        }
    }
    class ExportTreeUkrainTable extends \Bitrix\Sale\Location\Import\Compiler\Db\ExportTreeTable
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        protected $settlementParent = array();
        protected $types = false;
        protected $typeMap = array(
            1 => 'CITY',
            //| Ð¼Ñ–Ñ�Ñ‚Ð¾              | Ð³Ð¾Ñ€Ð¾Ð´                  |
            2 => 'VILLAGE',
            //| Ñ�Ð¼Ñ‚                | Ð¿Ð³Ñ‚                    |
            3 => 'VILLAGE',
            //| Ñ�ÐµÐ»Ð¸Ñ‰Ðµ             | Ð¿Ð¾Ñ�ÐµÐ»Ð¾Ðº                |
            4 => 'VILLAGE',
            //| Ñ�ÐµÐ»Ð¾               | Ñ�ÐµÐ»Ð¾                   |
            5 => 'VILLAGE',
            //| Ñ…ÑƒÑ‚Ñ–Ñ€              | Ñ…ÑƒÑ‚Ð¾Ñ€                  |
            6 => 'VILLAGE',
            //| Ñ�Ñ‚.                | Ñ�Ñ‚.                    |
            7 => 'VILLAGE',
            //| Ñ�Ð°Ð½Ð°Ñ‚.             | Ñ�Ð°Ð½Ð°Ñ‚.                 |
            8 => 'VILLAGE',
            //| Ñ€Ð°Ð´Ð³Ð¾Ñ�Ð¿            | Ñ�Ð¾Ð²Ñ…Ð¾Ð·                 |
            9 => 'VILLAGE',
            //| Ð²Ð¾ÐºÐ·Ð°Ð»             | Ð²Ð¾ÐºÐ·Ð°Ð»                 |
            10 => 'VILLAGE',
            //| Ð»Ñ–Ñ�Ð½Ð¸Ñ†Ñ‚Ð²Ð¾          | Ð»ÐµÑ�Ð½Ð¸Ñ‡ÐµÑ�Ñ‚Ð²Ð¾            |
            11 => 'VILLAGE',
            //| Ð´Ð¾Ðº                | Ð´Ð¾Ðº                    |
            12 => 'VILLAGE',
        );
        public function getMappedType($typeId)
        {
        }
        public function addNode($data)
        {
        }
        public function addRegion($params)
        {
        }
        public function addArea($params)
        {
        }
        public function getNames($id, $type)
        {
        }
        public function getSettlementParentCode($params)
        {
        }
        public function buildFromUADB($options)
        {
        }
        public function create()
        {
        }
        /*
        public function dropCodeIndex()
        {
        	unset($this->codeIndex);
        
        	if(!empty($this->regionCodeIndex))
        		$this->codeIndex = $this->regionCodeIndex;
        }
        
        public function insert($data)
        {
        	if(isset($this->codeIndex[$data['SYS_CODE']])) // already in there
        		return;
        
        	if($data['TYPE_CODE'] == 'REGION')
        		$this->regionCodeIndex[$data['SYS_CODE']] = $this->formatCode($this->exportOffset);
        
        	$this->codeIndex[$data['SYS_CODE']] = $this->formatCode($this->exportOffset);
        
        	$data['CODE'] = $this->codeIndex[$data['SYS_CODE']];
        	$data['PARENT_CODE'] = strlen($data['PARENT_SYS_CODE']) ? $this->codeIndex[$data['PARENT_SYS_CODE']] : '';
        
        	unset($data['PARENT_SYS_CODE']);
        
        	if(is_array($data['LANGNAMES']))
        		$data['LANGNAMES'] = serialize($data['LANGNAMES']);
        
        	if(is_array($data['EXTERNALS']))
        		$data['EXTERNALS'] = serialize($data['EXTERNALS']);
        
        	$this->exportOffset++;
        
        	$this->inserter->insert($data);
        }
        
        public static function getMap()
        {
        	$map = parent::getMap();
        	$map['ZIP'] = array(
        		'data_type' => 'string',
        	);
        
        	return $map;
        }
        */
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Sale\Location\Import\Compiler {
    final class Compiler
    {
        const OUTPUT_DIR = 'compiled/';
        const MAPS_DIR = 'maps/';
        const INPUT_DIR = 'output/';
        const OUTPUT_FILE = 'output.txt';
        const CODE_LENGTH = 10;
        const TMP_DATA_DIR = 'tmp/';
        const STATIC_CSV_DIR = 'static_csv/';
        const GROUP_FILE = 'typegroup.csv';
        const KAZAKHSTAN_SOURCE = 'ukrain_kazakhstan/loc_kz.csv';
        const USA_SOURCE = 'ukrain_kazakhstan/loc_usa.csv';
        const WORLD_SOURCE = 'ukrain_kazakhstan/loc_cntr.csv';
        const CIS_SOURCE = 'ukrain_kazakhstan/loc_ussr_cut.csv';
        const RUSSIA_YANDEX_CODE = 225;
        const BELORUSSIA_YANDEX_CODE = 149;
        const UKRAIN_YANDEX_CODE = 187;
        const KAZAKHSTAN_YANDEX_CODE = 159;
        const SOURCE_YANDEX = 'Y';
        // got from yandex
        const SOURCE_FIAS = 'F';
        // got from fias
        const SOURCE_UKRAIN = 'U';
        // data sent by the office in ukrain
        const SOURCE_LEGACY = 'L';
        // got from old location files
        const TMP_DATA_RUS_EXPORT_INDEX = 'rus_exp_index';
        const TMP_DATA_RUS_GLOBAL_INDEX = 'glob_exp_index';
        private $queue = false;
        private $typeMap = array('SUBJECT_FEDERATION' => 'REGION');
        private $headers = array('SHORT' => array('CODE', 'PARENT_CODE', 'NAME.RU.NAME', 'NAME.EN.NAME', 'NAME.UA.NAME'), 'LONG' => array('CODE', 'PARENT_CODE', 'TYPE_CODE', 'NAME.RU.NAME', 'NAME.EN.NAME', 'NAME.UA.NAME', 'LONGITUDE', 'LATITUDE', 'EXT.YAMARKET.0', 'EXT.ZIP.0'), 'GROUP_FILE' => array('CODE', 'TYPES'));
        private $typeGroups = array(
            'LAYOUT' => array('CODE' => 'LAYOUT', 'TYPES' => array('COUNTRY', 'COUNTRY_DISTRICT', 'REGION'), 'HEADER' => 'LONG', 'FILE_NAME_TEMPLATE' => 'layout.csv'),
            /*
            'SELECTABLE' => array(
            	'TYPES' => array('COUNTRY', 'COUNTRY_DISTRICT', 'REGION'),
            	'HEADER' => 'LONG',
            	'FILE_NAME_TEMPLATE' => 'selectable.csv'
            ),
            */
            'AREAS' => array('CODE' => 'AREAS', 'TYPES' => array('CITY', 'SUBREGION', 'VILLAGE'), 'PARENT' => 'LAYOUT', 'HEADER' => 'LONG', 'FILE_NAME_TEMPLATE' => '%BASE_PARENT_ITEM_CODE%_%CODE%.csv'),
            'STREETS' => array('CODE' => 'STREETS', 'TYPES' => array('STREET'), 'PARENT' => 'LAYOUT', 'HEADER' => 'LONG', 'FILE_NAME_TEMPLATE' => '%BASE_PARENT_ITEM_CODE%_%CODE%.csv'),
        );
        private $fiasToBaseType = array(
            'COUNTRY' => array(),
            'COUNTRY_DISTRICT' => array('Ð¾ÐºÑ€ÑƒÐ³' => array('R' => 'Ð¾ÐºÑ€ÑƒÐ³', 'U' => true)),
            'REGION' => array('Ð�Ðž' => array('R' => 'Ð°Ð²Ñ‚Ð¾Ð½Ð¾Ð¼Ð½Ñ‹Ð¹ Ð¾ÐºÑ€ÑƒÐ³', 'U' => true), 'Ð�Ð¾Ð±Ð»' => array('R' => 'Ð°Ð²Ñ‚Ð¾Ð½Ð¾Ð¼Ð½Ð°Ñ� Ð¾Ð±Ð»Ð°Ñ�Ñ‚ÑŒ', 'U' => true), 'ÐºÑ€Ð°Ð¹' => array('R' => 'ÐºÑ€Ð°Ð¹', 'U' => true), 'Ð¾Ð±Ð»' => array('R' => 'Ð¾Ð±Ð»Ð°Ñ�Ñ‚ÑŒ', 'U' => true), 'Ð ÐµÑ�Ð¿' => array('R' => 'Ñ€ÐµÑ�Ð¿ÑƒÐ±Ð»Ð¸ÐºÐ°', 'U' => true), 'Ð§ÑƒÐ²Ð°ÑˆÐ¸Ñ�' => array('R' => 'Ñ€ÐµÑ�Ð¿ÑƒÐ±Ð»Ð¸ÐºÐ°', 'U' => true)),
            'SUBREGION' => array('Ñ€-Ð½' => array('R' => 'Ñ€Ð°Ð¹Ð¾Ð½', 'U' => true), 'ÑƒÐ»ÑƒÑ�' => array('R' => 'ÑƒÐ»ÑƒÑ�', 'U' => true), 'Ñƒ' => array('R' => 'ÑƒÐ»ÑƒÑ�', 'U' => true)),
            'CITY' => array('Ð³' => array('R' => 'Ð³Ð¾Ñ€Ð¾Ð´', 'U' => true)),
            'VILLAGE' => array('Ð¿Ð³Ñ‚' => array('R' => 'Ð¿Ð¾Ñ�Ñ‘Ð»Ð¾Ðº Ð³Ð¾Ñ€Ð¾Ð´Ñ�ÐºÐ¾Ð³Ð¾ Ñ‚Ð¸Ð¿Ð°', 'U' => true), 'Ð¿' => array('R' => 'Ð¿Ð¾Ñ�Ñ‘Ð»Ð¾Ðº', 'U' => true), 'Ð´Ð¿' => array('R' => 'Ð´Ð°Ñ‡Ð½Ñ‹Ð¹ Ð¿Ð¾Ñ�Ñ‘Ð»Ð¾Ðº', 'U' => true), 'Ñ�/Ð¿' => array('R' => 'Ñ�ÐµÐ»ÑŒÑ�ÐºÐ¾Ðµ Ð¿Ð¾Ñ�ÐµÐ»ÐµÐ½Ð¸Ðµ', 'U' => true), 'Ð°Ð°Ð»' => array('R' => 'Ð°Ð°Ð»', 'U' => true), 'Ð°ÑƒÐ»' => array('R' => 'Ð°ÑƒÐ»', 'U' => true), 'Ð°Ñ€Ð±Ð°Ð½' => array('R' => 'Ð°Ñ€Ð±Ð°Ð½', 'U' => true), 'Ð´' => array('R' => 'Ð´ÐµÑ€ÐµÐ²Ð½Ñ�', 'U' => true), 'Ð½Ð¿' => array('R' => 'Ð½Ð°Ñ�ÐµÐ»Ñ‘Ð½Ð½Ñ‹Ð¹ Ð¿ÑƒÐ½ÐºÑ‚', 'U' => true), 'Ñ�Ð»' => array('R' => 'Ñ�Ð»Ð¾Ð±Ð¾Ð´Ð°', 'U' => true), 'Ñ…' => array('R' => 'Ñ…ÑƒÑ‚Ð¾Ñ€', 'U' => true), 'Ñ„ÐµÑ€Ð¼Ð°' => array('R' => 'Ñ„ÐµÑ€Ð¼Ð°', 'U' => true), 'Ñ�' => array('R' => 'Ñ�ÐµÐ»Ð¾', 'U' => true), 'Ñ€Ð¿' => array('R' => 'Ñ€Ð°Ð±Ð¾Ñ‡Ð¸Ð¹ Ð¿Ð¾Ñ�Ñ‘Ð»Ð¾Ðº', 'U' => true), 'Ñ�Ñ‚' => array('R' => 'Ñ�Ñ‚Ð°Ð½Ñ†Ð¸Ñ�', 'U' => true), 'Ð¿/Ñ�Ñ‚' => array('R' => 'Ð¿Ð¾Ñ�Ñ‘Ð»Ð¾Ðº', 'U' => true), 'Ñ�Ñ‚-Ñ†Ð°' => array('R' => 'Ñ�Ñ‚Ð°Ð½Ð¸Ñ†Ð°', 'U' => true), 'ÐºÐ¿' => array('R' => 'ÐºÑƒÑ€Ð¾Ñ€Ñ‚Ð½Ñ‹Ð¹ Ð¿Ð¾Ñ�ÐµÐ»Ð¾Ðº', 'U' => true), 'Ð¶/Ð´_Ñ�Ñ‚' => array('R' => 'Ð¶ÐµÐ»ÐµÐ·Ð½Ð¾Ð´Ð¾Ñ€Ð¾Ð¶Ð½Ð°Ñ� Ñ�Ñ‚Ð°Ð½Ñ†Ð¸Ñ�'), 'Ñ‚ÐµÑ€' => array('R' => 'Ñ‚ÐµÑ€Ñ€Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ�'), 'Ð¾Ñ�Ñ‚Ñ€Ð¾Ð²' => array('R' => 'Ð¾Ñ�Ñ‚Ñ€Ð¾Ð²'), 'Ð¼ÐºÑ€' => array('R' => 'Ð¼Ð¸ÐºÑ€Ð¾Ñ€Ð°Ð¹Ð¾Ð½', 'U' => true), 'Ñ�/Ñ�' => array('R' => 'Ñ�ÐµÐ»ÑŒÑ�Ð¾Ð²ÐµÑ‚', 'U' => true), 'Ð¿/Ð¾' => array('R' => 'Ð¿Ð¾Ñ‡Ñ‚Ð¾Ð²Ð¾Ðµ Ð¾Ñ‚Ð´ÐµÐ»ÐµÐ½Ð¸Ðµ', 'U' => true), 'Ð¼' => array('R' => 'Ð¼ÐµÑ�Ñ‚ÐµÑ‡ÐºÐ¾', 'U' => true), 'Ñ�/Ð¼Ð¾' => array('R' => 'Ñ�Ð¼Ð¾', 'U' => true), 'Ð¶Ð¸Ð»Ñ€Ð°Ð¹Ð¾Ð½' => array('R' => 'Ð¶Ð¸Ð»Ñ€Ð°Ð¹Ð¾Ð½', 'U' => true), 'Ð¼Ð°Ñ�Ñ�Ð¸Ð²' => array('R' => 'Ð¼Ð°Ñ�Ñ�Ð¸Ð²'), 'Ð¶/Ð´_Ð¾Ð¿' => array('R' => 'Ð¶/Ð´ Ð¾Ñ�Ñ‚Ð°Ð½Ð¾Ð²ÐºÐ°'), 'Ñ�/Ð°' => array('R' => 'Ñ�ÐµÐ»ÑŒÑ�ÐºÐ°Ñ� Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñ�Ñ‚Ñ€Ð°Ñ†Ð¸Ñ�', 'U' => true), 'Ð¿/Ñ€' => array('R' => 'Ð¿Ð»Ð°Ð½Ð¸Ñ€Ð¾Ð²Ð¾Ñ‡Ð½Ñ‹Ð¹ Ñ€Ð°Ð¹Ð¾Ð½'), 'Ð¶/Ð´_Ñ€Ð·Ð´' => array('R' => 'Ð¶/Ð´ Ñ€Ð°Ð·ÑŠÐµÐ·Ð´'), 'Ñ�Ð½Ñ‚' => array('R' => 'Ñ�Ð½Ñ‚', 'U' => true), 'Ñ�/Ð¾' => array('R' => 'Ñ�ÐµÐ»ÑŒÑ�ÐºÐ¸Ð¹ Ð¾ÐºÑ€ÑƒÐ³'), 'Ð·Ð°Ð¸Ð¼ÐºÐ°' => array('R' => 'Ð·Ð°Ð¸Ð¼ÐºÐ°'), 'Ð³Ð¾Ñ€Ð¾Ð´Ð¾Ðº' => array('R' => 'Ð³Ð¾Ñ€Ð¾Ð´Ð¾Ðº', 'U' => true)),
            //'CITY_DISTRICT' => array(),
            //'METRO_STATION' => array(),
            'STREET' => array('ÑƒÐ»' => array('R' => 'ÑƒÐ»Ð¸Ñ†Ð°', 'U' => true), 'ÐºÐ²-Ð»' => array('R' => 'ÐºÐ²Ð°Ñ€Ñ‚Ð°Ð»', 'U' => true), 'Ð°Ð»Ð»ÐµÑ�' => array('R' => 'Ð°Ð»Ð»ÐµÑ�', 'U' => true), 'Ð²Ð°Ð»' => array('R' => 'Ð²Ð°Ð»', 'U' => true), 'Ð²ÑŠÐµÐ·Ð´' => array('R' => 'Ð²ÑŠÐµÐ·Ð´', 'U' => true), 'Ð½Ð°Ð±' => array('R' => 'Ð½Ð°Ð±ÐµÑ€ÐµÐ¶Ð½Ð°Ñ�', 'U' => true), 'Ð¿ÐµÑ€' => array('R' => 'Ð¿ÐµÑ€ÐµÑƒÐ»Ð¾Ðº', 'U' => true), 'Ð¿Ð»' => array('R' => 'Ð¿Ð»Ð¾Ñ‰Ð°Ð´ÑŒ', 'U' => true), 'Ð¿Ñ€-ÐºÑ‚' => array('R' => 'Ð¿Ñ€Ð¾Ñ�Ð¿ÐµÐºÑ‚', 'U' => true), 'Ð¿Ñ€Ð¾ÐµÐ·Ð´' => array('R' => 'Ð¿Ñ€Ð¾ÐµÐ·Ð´', 'U' => true), 'Ð¿Ñ€Ð¾ÑƒÐ»Ð¾Ðº' => array('R' => 'Ð¿Ñ€Ð¾ÑƒÐ»Ð¾Ðº', 'U' => true), 'Ñ€Ð·Ð´' => array('R' => 'Ñ€Ð°Ð·ÑŠÐµÐ·Ð´', 'U' => true), 'Ñ�Ð°Ð´' => array('R' => 'Ñ�Ð°Ð´', 'U' => true), 'Ñ�ÐºÐ²ÐµÑ€' => array('R' => 'Ñ�ÐºÐ²ÐµÑ€', 'U' => true), 'Ñ�Ð¿ÑƒÑ�Ðº' => array('R' => 'Ñ�Ð¿ÑƒÑ�Ðº', 'U' => true), 'Ñ‚Ð¾Ð½Ð½ÐµÐ»ÑŒ' => array('R' => 'Ñ‚Ð¾Ð½Ð½ÐµÐ»ÑŒ', 'U' => true), 'Ñ‚Ñ€Ð°ÐºÑ‚' => array('R' => 'Ñ‚Ñ€Ð°ÐºÑ‚', 'U' => true), 'Ñ‚ÑƒÐ¿' => array('R' => 'Ñ‚ÑƒÐ¿Ð¸Ðº', 'U' => true), 'Ñ�Ñ�Ñ‚Ð°ÐºÐ°Ð´Ð°' => array('R' => 'Ñ�Ñ�Ñ‚Ð°ÐºÐ°Ð´Ð°', 'U' => true), 'Ð±-Ñ€' => array('R' => 'Ð±ÑƒÐ»ÑŒÐ²Ð°Ñ€', 'U' => true), 'Ð±ÑƒÐ³Ð¾Ñ€' => array('R' => 'Ð±ÑƒÐ³Ð¾Ñ€', 'U' => true), 'Ð·Ð°ÐµÐ·Ð´' => array('R' => 'Ð·Ð°ÐµÐ·Ð´', 'U' => true), 'ÐºÐ°Ð½Ð°Ð»' => array('R' => 'ÐºÐ°Ð½Ð°Ð»', 'U' => true), 'ÐºÐ¼' => array('R' => 'ÐºÐ¸Ð»Ð¾Ð¼ÐµÑ‚Ñ€', 'U' => true), 'ÐºÐ¾Ð»ÑŒÑ†Ð¾' => array('R' => 'ÐºÐ¾Ð»ÑŒÑ†Ð¾', 'U' => true), 'Ð¿Ð°Ñ€Ðº' => array('R' => 'Ð¿Ð°Ñ€Ðº', 'U' => true), 'Ð¿ÐµÑ€ÐµÐµÐ·Ð´' => array('R' => 'Ð¿ÐµÑ€ÐµÐµÐ·Ð´', 'U' => true), 'Ñ�Ñ‚Ñ€' => array('R' => 'Ñ�Ñ‚Ñ€Ð¾ÐµÐ½Ð¸Ðµ', 'U' => true), 'Ð¿Ñ€Ð¾Ñ�ÐµÐº' => array('R' => 'Ð¿Ñ€Ð¾Ñ�ÐµÐº', 'U' => true), 'Ñˆ' => array('R' => 'ÑˆÐ¾Ñ�Ñ�Ðµ', 'U' => true), 'Ð°Ð²Ñ‚Ð¾Ð´Ð¾Ñ€Ð¾Ð³Ð°' => array('R' => 'Ð´Ð¾Ñ€Ð¾Ð³Ð°', 'U' => true)),
        );
        private $forbiddenPathTypes = array('ÑƒÐ»' => 1, 'Ð¿Ñ€-ÐºÑ‚' => 1, 'Ð¿Ñ€Ð¾ÐµÐ·Ð´' => 1, 'Ñˆ' => 1, 'ÐºÐ²-Ð»' => 1, 'ÐºÐ¼' => 1, 'Ð¿Ñ€Ð¾Ñ�ÐµÐº' => 1, 'Ð¿ÐµÑ€' => 1, 'Ð±-Ñ€' => 1, 'Ð½Ð°Ð±' => 1, 'Ð¶/Ð´_Ð±ÑƒÐ´ÐºÐ°' => 1, 'Ñ‚Ñ€Ð°ÐºÑ‚' => 1, 'Ð´Ð¾Ñ€' => 1, 'Ñ€Ð·Ð´' => 1, 'Ð¿Ð»' => 1, 'Ð²Ñ‹Ñ�ÐµÐ»' => 1, 'Ñ�Ð°Ð´' => 1, 'ÑƒÑ‡-Ðº' => 1, 'Ð¿Ñ€Ð¾Ð¼Ð·Ð¾Ð½Ð°' => 1, 'Ð°Ð²Ñ‚Ð¾Ð´Ð¾Ñ€Ð¾Ð³Ð°' => 1, 'Ð¶/Ð´_Ð¿Ð»Ð°Ñ‚Ñ„' => 1);
        private $forbiddenPathIds = array(
            'af7cdb7f-e47d-4f65-93d5-3a2b70a809ce' => true,
            // Ð‘Ð¾Ñ€Ð¾Ð²Ð¾Ð¹ Ð¼Ð¸ÐºÑ€Ð¾Ñ€Ð°Ð¹Ð¾Ð½ should be placed inside village, not street
            '762758bb-18b9-440f-bc61-8e1e77ff3fd8' => true,
        );
        private $allowedFiasStats = array('ACTSTATUS' => array(1), 'LIVESTATUS' => array(1), 'CURRSTATUS' => array(
            0,
            // Ð°ÐºÑ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ð¹
            51,
        ));
        private $filePools = array(
            'ukrain_kazakhstan' => array('DIR' => 'ukrain_kazakhstan/'),
            // where we store clean and split fias data:
            'fias_tree' => array('DIR' => 'fias_tree/'),
            // where we keep maps from yandex to fias (REGIONS, CITIES and VILLAGES)
            'fias_yamarket_links' => array('DIR' => 'fias_yamarket_links/'),
            // where we keep result data
            'assets' => array('DIR' => 'compiled/bundles/extended/'),
            // where we keep result data, only for russia
            'assets_standard' => array('DIR' => 'compiled/bundles/standard/'),
            // where we keep result data
            'demo' => array('DIR' => 'demo/'),
        );
        private $workDir = '';
        private $grabbedStuffDir = '';
        private $yaIdType = array();
        private $relations = array();
        private $options = array();
        // tree builder
        private $data = array();
        private $optionConvertNames = false;
        private $sysMaps = array();
        private $fiasCPath = array();
        private $fiasDB = null;
        private $eTreeDB = null;
        private $eTreeDBRussia = null;
        public function __construct($options)
        {
        }
        public function compile()
        {
        }
        #######################################################
        ### ABOUT EXPORT TABLE
        #######################################################
        private $allowedForDemo = array('COUNTRY' => 1, 'COUNTRY_DISTRICT' => 1, 'REGION' => 1, 'SUBREGION' => 1, 'CITY' => 1);
        private $demoCategory = false;
        public function generateDemoFilesWorld($item, $table)
        {
        }
        public function generateDemoFilesRussia($item, $table)
        {
        }
        private function createExportTables()
        {
        }
        private function cleanUpExportTables()
        {
        }
        private function restoreExportTablesIndexes()
        {
        }
        private function copyStaticCSV()
        {
        }
        private $currentParentGroup = '';
        private function addItemToCSV($fName, $group, $item)
        {
        }
        public function generateExportFilesFromTableBundle($item, $table)
        {
        }
        public function generateExportFilesFromTableBundle_Standard($item, $table)
        {
        }
        public function generateExportFilesFromTableBundle_Standard_YandexOnly($item, $table)
        {
        }
        private function generateExportTreeRussia()
        {
        }
        private function getYandexToFiasCityMap($yandexRegionId)
        {
        }
        private function generateExportTreePutRussiaInner()
        {
        }
        private function checkIsAllowedCityVillage($item)
        {
        }
        private function checkIsAllowedStreet($item)
        {
        }
        public function generateExportTreePutRussiaFiasPathCutForbidden($path)
        {
        }
        private function generateExportTreePutRussiaFiasPath($targetItem)
        {
        }
        private function generateExportTreePutRussiaStreets($parentGuid)
        {
        }
        private function generateExportTreePutRussiaInnerBundle($parentGuid)
        {
        }
        private function generateExportTreePutRussiaBundle($bundle, $regions, $dl = 0)
        {
        }
        #########################
        private function generateExportTreeWorld()
        {
        }
        #########################
        private function generateExportTreeLegacy($source)
        {
        }
        #########################
        private function generateExportTreeUSA()
        {
        }
        #########################
        private function generateExportTreeBelorussia()
        {
        }
        private function generateExportTreePutBelorussiaBundle($bundle)
        {
        }
        #########################
        private function generateExportTreeUkrain()
        {
        }
        private function generateExportTreePutUkrainBundle($bundle)
        {
        }
        private function mapETCodeAsYandex($code)
        {
        }
        private function mapETCodeAsFias($code)
        {
        }
        private function mapETCodeAsUkrainian($name)
        {
        }
        private function mapETCodeAsLegacy($name)
        {
        }
        #######################################################
        ### ABOUT EXPORT TREE GENERATION
        #######################################################
        private function mapETCodeBySource($value, $source)
        {
        }
        private function startExportFromScratch()
        {
        }
        private function generateExportTreeRussiaRoot()
        {
        }
        private function restoreTDRusExpIndex()
        {
        }
        private function storeTDGlobalExpIndex()
        {
        }
        private function restoreTDGlobalExpIndex()
        {
        }
        private function generateExportTreePutRussiaBundleOld($bundle, $regions, $dl = 0)
        {
        }
        private $fiasPath = array();
        private $alreadyStoredPathItems = array();
        private $fias2yandexMap = array();
        private $alreadyDumped = array();
        private $currentRegion = false;
        private function generateExportTreeRussiaInner()
        {
        }
        private function generateExportTreeRussiaInnerBundle($parentGuid)
        {
        }
        private function addItemToExportTree($item)
        {
        }
        #######################################################
        ### ABOUT MAIN TREE
        #######################################################
        // map yandex cities to fias cities
        public function buildMainTree()
        {
        }
        private function buildMainTreeNext()
        {
        }
        #######################################################
        ### ABOUT FIAS PROCESS
        #######################################################
        // temporal function
        private function checkFiasMaps()
        {
        }
        private function showChildren($pId)
        {
        }
        private function findPathes()
        {
        }
        private function fiasFindPath($aoguid)
        {
        }
        private function fiasFind2()
        {
        }
        private function fiasFind()
        {
        }
        private function fiasGetByAOGUID($fiasId)
        {
        }
        /*
        private function parseFiasCode($code)
        {
        	//Ð¡Ð¡(0) Ð�(1) Ð Ð Ð (2) Ð“Ð“Ð“(3) Ð’Ð’Ð’(4) ÐŸÐŸÐŸ(5) Ð£Ð£Ð£Ð£(6) Ð­Ð­Ð­Ð­(7) Ð¦Ð¦Ð¦(8)
        	$code = explode(' ', $code);
        	return array(
        		'REGIONCODE' => $code[0],
        		'AREACODE' => $code[2],
        		'AUTOCODE' => $code[1],
        		'CITYCODE' => $code[3],
        		'CTARCODE' => $code[4],
        		'PLACECODE' => $code[5],
        		'STREETCODE' => $code[6],
        		'EXTRCODE' => $code[7],
        		'SEXTCODE' => $code[8]
        	);
        }
        
        private function checkFitItemByCode($code, $item)
        {
        	$code = $this->parseFiasCode($code);
        
        	return (
        		$item['REGIONCODE'] == $code['REGIONCODE']
        		&&
        		$item['AREACODE'] == $code['AREACODE']
        		&&
        		$item['AUTOCODE'] == $code['AUTOCODE']
        		&&
        		$item['CITYCODE'] == $code['CITYCODE']
        		&&
        		$item['CTARCODE'] == $code['CTARCODE']
        		&&
        		$item['PLACECODE'] == $code['PLACECODE']
        		&&
        		$item['STREETCODE'] == $code['STREETCODE']
        		&&
        		$item['EXTRCODE'] == $code['EXTRCODE']
        		&&
        		$item['SEXTCODE'] == $code['SEXTCODE']
        	);
        }
        */
        private function mapFiasCities()
        {
        }
        private function checkAllowedState($node)
        {
        }
        private function mb_str_replace($needle, $replace_text, $haystack)
        {
        }
        private function checkNamesEqual($one, $two)
        {
        }
        private function checkNamesAlmostEqual($one, $two)
        {
        }
        private function walkFiasTreeAndKeepFollowing($node, &$toBeFound, $typesToSearch)
        {
        }
        private function getFias2YamarketRootLinks($skipMapped = true, $skipCompiled = false)
        {
        }
        public function splitFiasOnRegions()
        {
        }
        public function copyFias2DB()
        {
        }
        /*
        public function dropFiasTreeDuplicates()
        {
        	foreach(new \DirectoryIterator($this->getPoolDirName('fias_tree')) as $file)
        	{
        		if($file->isDot() || $file->isDir())
        			continue;
        
        		$csv = $this->getDataFromCSV('fias_tree', str_replace('.csv', '', $file->getFilename()));
        
        		$index = array();
        		foreach($csv as $id => $line)
        		{
        			if(isset($index[$line['ID']]))
        			{
        				unset($csv[$id]);
        				continue;
        			}
        
        			$index[$line['ID']] = true;
        		}
        
        		$this->putDataToCSV($csv, 'fias_tree', str_replace('.csv', '', $file->getFilename()));
        
        		unset($index);
        		unset($csv);
        	}
        }
        */
        public function fiasGotOneSplit($data)
        {
        }
        public function fiasGotOneAdd2DB($data)
        {
        }
        private function getByAOID($aoid)
        {
        }
        private function printCurrentFiasPath()
        {
        }
        private function manageFiasPath($item)
        {
        }
        private function truncateCurrentFiasPath($guid)
        {
        }
        #######################################################
        ### ABOUT FIAS PROCESS ROOT v2
        #######################################################
        public function mapFiasRootV2()
        {
        }
        public function fiasGotOneMapRootV2($data)
        {
        }
        private function readFiasRootMapV2()
        {
        }
        private function walkFias($callback, $limit = -1)
        {
        }
        #######################################################
        ### ABOUT MAIN DATA
        #######################################################
        private function buildRussiaPathIndex($bundle, $parentPath = array())
        {
        }
        private function getMainTreeNodesOfType($bundle, $types = array(), &$buffer)
        {
        }
        #######################################################
        ### ABOUT FILE POOL
        #######################################################
        private function putToFile($data, $poolName, $fileSubname)
        {
        }
        private function putToFile2($data, $poolName, $fileSubname, $checkDir = false)
        {
        }
        private function cleanUpFile($poolName, $fileSubname)
        {
        }
        private function getPoolFileName($poolName, $fileSubname, $docRoot = true)
        {
        }
        private function getPoolDirName($poolName, $docRoot = true)
        {
        }
        private function cleanPoolDir($poolName)
        {
        }
        private function getDataFromCSV($poolName, $fileSubname)
        {
        }
        private function putDataToCSV($data, $poolName, $fileSubname)
        {
        }
        #######################################################
        ### ABOUT COMPILER
        #######################################################
        private function mapFiasTypeToMain($fiasType)
        {
        }
        private function makeNameIndexKey($name)
        {
        }
        private function makeTypeGroupFile($file = '')
        {
        }
        private function makeNext()
        {
        }
        private function queueShift()
        {
        }
        private function getBundleFromFile($id)
        {
        }
        private function getParentOfType($code, $types)
        {
        }
        private function putToGroups($item)
        {
        }
        private function fileOpen($name)
        {
        }
        private static function addLeadingZero($value, $length)
        {
        }
        #######################################################
        ### ABOUT DATA
        #######################################################
        private function storeTemporalData($dataCode, $data)
        {
        }
        private function getStoredTemporalData($dataCode)
        {
        }
        private function cleanTemporalData($dataCode)
        {
        }
        /*
        private function dropTemporalFile()
        {
        	$file = $_SERVER['DOCUMENT_ROOT'].$this->workDir.self::TMP_DATA_FILE;
        
        	if(is_readable($file))
        		unlink($file);
        }
        */
        public function cleanOutput()
        {
        }
        public function output($data, $important = true)
        {
        }
    }
}
namespace {
    /************************************************************************/
    /********************* Êëàññ äëÿ UPDATER'À ******************************/
    /************************************************************************/
    class CUpdater
    {
        var $errorMessage;
        var $curPath;
        // Ïóòü ê ñêðèïòó updater (áåç èìåíè ñêðèïòà) îòíîñèòåëüíî êîðíÿ ñàéòà
        var $curModulePath;
        // Ïóòü ê ïàïêå ñ îáíîâëåíèÿìè ìîäóëÿ
        var $dbType;
        // Òèï áàçû äàííûõ
        var $updater;
        // Ïóòü ê ñêðèïòó updater (c èìåíåì ñêðèïòà) îòíîñèòåëüíî êîðíÿ ñàéòà
        var $moduleID;
        // Ìîäóëü
        var $callType;
        // Ïðÿìîé âûçîâ (ALL - âñå, KERNEL - ÿäðî, PERSONAL - ïåðñîíàëüíûå ôàéëû, DATABASE - áàçà äàííûõ  // DB=PERSONAL+DATABASE)
        var $kernelPath;
        // Ïóòü ê ÿäðó
        function Init($curPath, $dbType, $updater, $curDir, $moduleID, $callType = "ALL")
        {
        }
        // Óñòàíàâëèâàåò âñå êîìïîíåíòû
        // $arDeleteFiles = array("component.name" => array("/images/1.gif", "/templates/.default/style.css"), "component.name1" => array("/style.css"));
        function InstallComponents($arDeleteFiles = array())
        {
        }
        function __MakeComponentPath($componentName)
        {
        }
        // Óñòàíàâëèâàåò êîìïîíåíò ïî åãî èìåíè
        // $arDeleteFiles - óäàëÿåò ôàéëû èç ìàññèâà ( Array("/images/1.gif", "/templates/.default/style.css") )
        function InstallComponent($componentName, $arDeleteFiles = array())
        {
        }
        // Óñòàíàâëèâàåò âñå ìàñòåðà
        // $arDeleteFiles = array("component.name" => array("/images/1.gif", "/templates/.default/style.css"), "component.name1" => array("/style.css"));
        function InstallWizards($arDeleteFiles = array())
        {
        }
        // Óñòàíàâëèâàåò ìàñòåð ïî åãî èìåíè
        // $arDeleteFiles - óäàëÿåò ôàéëû èç ìàññèâà ( Array("/images/1.gif", "/templates/.default/style.css") )
        function InstallWizard($wizardName, $arDeleteFiles = array())
        {
        }
        function CopyFiles($fromDir, $toDir)
        {
        }
        function CopyDirFiles($fromDir, $toDir)
        {
        }
        function Query($query, $tableName = "")
        {
        }
        function QueryBatch($queryPath, $tableName = "")
        {
        }
        function TableExists($tableName)
        {
        }
        function CanUpdateDatabase()
        {
        }
        function CanUpdateKernel()
        {
        }
        function CanUpdatePersonalFiles()
        {
        }
    }
}
namespace Bitrix\Sale\Location\Migration {
    class CUpdaterLocationPro extends \CUpdater implements \Serializable
    {
        // old tables that will be reused
        const TABLE_LOCATION = 'b_sale_location';
        const TABLE_LOCATION_GROUP = 'b_sale_location_group';
        const TABLE_LOCATION2GROUP = 'b_sale_location2location_group';
        const TABLE_DELIVERY2LOCATION = 'b_sale_delivery2location';
        const TABLE_TAX2LOCATION = 'b_sale_tax2location';
        const TABLE_LOCATION_GROUP_NAME = 'b_sale_location_group_lang';
        // new tables to be created
        const TABLE_LOCATION_NAME = 'b_sale_loc_name';
        const TABLE_LOCATION_EXTERNAL = 'b_sale_loc_ext';
        const TABLE_LOCATION_EXTERNAL_SERVICE = 'b_sale_loc_ext_srv';
        const TABLE_LOCATION_TYPE = 'b_sale_loc_type';
        const TABLE_LOCATION_TYPE_NAME = 'b_sale_loc_type_name';
        const TABLE_LOCATION2SITE = 'b_sale_loc_2site';
        // ?
        // obsolete tables to get data from
        const TABLE_LOCATION_ZIP = 'b_sale_location_zip';
        const TABLE_LOCATION_COUNTRY_NAME = 'b_sale_location_country_lang';
        const TABLE_LOCATION_REGION_NAME = 'b_sale_location_region_lang';
        const TABLE_LOCATION_CITY_NAME = 'b_sale_location_city_lang';
        // temporal tables
        const TABLE_TEMP_TREE = 'b_sale_location_temp_tree';
        const TABLE_LEGACY_RELATIONS = 'b_sale_loc_legacy';
        const MODULE_ID = 'sale';
        protected $data = array();
        // to CUpdater ?
        const DB_TYPE_MYSQL = 'MySQL';
        const DB_TYPE_MSSQL = 'MSSQL';
        const DB_TYPE_ORACLE = 'Oracle';
        const DB_TYPE_MYSQL_LC = 'mysql';
        const DB_TYPE_MSSQL_LC = 'mssql';
        const DB_TYPE_ORACLE_LC = 'oracle';
        public function __construct()
        {
        }
        public function serialize()
        {
        }
        public function unserialize($data)
        {
        }
        public static function updateDBSchemaRestoreLegacyIndexes()
        {
        }
        // only for module_updater
        public static function updateDBSchemaRenameIndexes()
        {
        }
        protected static function dropIndexByName($indexName, $tableName)
        {
        }
        protected static function checkIndexExistsByName($indexName, $tableName)
        {
        }
        // function stands for the corresponding block in module_updater.php
        public static function updateDBSchema()
        {
        }
        ////////////////////////////////////////////////////////
        //// Migration-specific
        ////////////////////////////////////////////////////////
        public function copyId2Code()
        {
        }
        public function copyZipCodes()
        {
        }
        private function convertEntityLocationLinks($entityName)
        {
        }
        public function convertGroupLocationLinks()
        {
        }
        public function convertDeliveryLocationLinks()
        {
        }
        public function convertTaxRateLocationLinks()
        {
        }
        public function convertSalesZones()
        {
        }
        public function copyDefaultLocations()
        {
        }
        public static function createBaseTypes()
        {
        }
        public function createTypes()
        {
        }
        public function convertTree()
        {
        }
        public function resetLegacyPath()
        {
        }
        public function rollBack()
        {
        }
        // in this function we track dependences between countries, regions and cities
        private function grabTree()
        {
        }
        private function convertCountries()
        {
        }
        private function convertRegions()
        {
        }
        private function convertCities()
        {
        }
        private function resort()
        {
        }
        private function walkTreeInDeep($nodeId, $edges, &$nodes, $margin, $depth = 0)
        {
        }
        private function insertTreeInfo()
        {
        }
        private function insertNames()
        {
        }
        ////////////////////////////////////////////////////////
        //// Common-specific logic => add to CUpdater ???
        ////////////////////////////////////////////////////////
        protected function dropTable($tableName = '')
        {
        }
        protected function createTemporalTable($tableName = '', $columns = array())
        {
        }
        protected function createTable($tableName = '', $columns = array(), $constraints = array())
        {
        }
        protected function prepareCreateTable($tableName, $columnsSql, $constSql, $dbType)
        {
        }
        // might be some overhead
        protected function prepareConstraintSql($constraints)
        {
        }
        protected function prepareTableFields($columnsSql, $dbType)
        {
        }
        protected function prepareFieldSql($field, &$afterCreate)
        {
        }
        public function TableExists($tableName)
        {
        }
        protected function UsingMysql()
        {
        }
        protected function UsingMssql()
        {
        }
        protected function UsingOracle()
        {
        }
    }
    final class MigrationProcess extends \Bitrix\Sale\Location\Util\Process
    {
        const SESS_KEY = 'location_migration';
        const NOTIF_TAG = 'SALE_LOCATIONPRO_PLZ_MIGRATE';
        private $migrator = null;
        public function __construct()
        {
        }
        public function onBeforePerformIteration()
        {
        }
        public function onAfterPerformIteration()
        {
        }
        protected function stageCreateTypes()
        {
        }
        protected function stageConvertTree()
        {
        }
        protected function stageConvertZones()
        {
        }
        protected function stageConvertLinks()
        {
        }
        protected function stageCopyDefaultLocations()
        {
        }
        protected function stageCopyZipCodes()
        {
        }
        public function hideNotifier()
        {
        }
    }
}
namespace Bitrix\Sale {
    /**
     * Class SaleProviderBase
     * @package Bitrix\Sale
     */
    abstract class SaleProviderBase
    {
        protected $context = array();
        /**
         * SaleProviderBase constructor.
         *
         * @param array $context
         */
        public function __construct(array $context = array())
        {
        }
        /**
         * @return array
         */
        protected function getContext()
        {
        }
        /**
         * @param array $products
         *
         * @return Result
         */
        public abstract function getProductData(array $products);
        /**
         * @param array $products
         *
         * @return Result
         */
        public abstract function getCatalogData(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public abstract function tryShip(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public function isNeedShip(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public abstract function tryUnship(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public abstract function ship(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public abstract function unship(array $products);
        /**
         * @param $products
         *
         * @return Sale\Result
         */
        public abstract function getBundleItems(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public abstract function reserve(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public abstract function getAvailableQuantity(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public abstract function deliver(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public abstract function viewProduct(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public abstract function getProductListStores(array $products);
        /**
         * @param array $items
         *
         * @return Sale\Result
         */
        public abstract function checkBarcode(array $items);
        /**
         * @param array $products
         *
         * @return Result
         */
        public abstract function getAvailableQuantityAndPrice(array $products);
    }
    /**
     * Class Registry
     * @package Bitrix\Sale
     */
    final class Registry
    {
        const EVENT_ON_INIT_REGISTRY_LIST = 'OnInitRegistryList';
        const REGISTRY_TYPE_ORDER = 'ORDER';
        const REGISTRY_TYPE_ARCHIVE_ORDER = 'ARCHIVE_ORDER';
        const ENTITY_SHIPMENT = 'SHIPMENT';
        const ENTITY_ORDER = 'ORDER';
        const ENTITY_PAYMENT = 'PAYMENT';
        const ENTITY_PAYMENT_COLLECTION = 'PAYMENT_COLLECTION';
        const ENTITY_SHIPMENT_COLLECTION = 'SHIPMENT_COLLECTION';
        const ENTITY_PROPERTY_VALUE = 'PROPERTY_VALUE';
        const ENTITY_BUNDLE_COLLECTION = 'BUNDLE_COLLECTION';
        const ENTITY_BASKET = 'BASKET';
        const ENTITY_TAX = 'TAX';
        const ENTITY_BASKET_ITEM = 'BASKET_ITEM';
        const ENTITY_BASKET_PROPERTIES_COLLECTION = 'BASKET_PROPERTIES_COLLECTION';
        const ENTITY_BASKET_PROPERTY_ITEM = 'BASKET_PROPERTY_ITEM';
        const ENTITY_SHIPMENT_ITEM = 'SHIPMENT_ITEM';
        const ENTITY_SHIPMENT_ITEM_COLLECTION = 'SHIPMENT_ITEM_COLLECTION';
        const ENTITY_SHIPMENT_ITEM_STORE = 'SHIPMENT_ITEM_STORE';
        const ENTITY_SHIPMENT_ITEM_STORE_COLLECTION = 'SHIPMENT_ITEM_STORE_COLLECTION';
        const ENTITY_PROPERTY_VALUE_COLLECTION = 'PROPERTY_VALUE_COLLECTION';
        const ENTITY_OPTIONS = 'CONFIG_OPTION';
        const ENTITY_DISCOUNT = 'DISCOUNT';
        const ENTITY_DISCOUNT_COUPON = 'DISCOUNT_COUPON';
        const ENTITY_ORDER_DISCOUNT = 'ORDER_DISCOUNT';
        const ENTITY_PERSON_TYPE = 'PERSON_TYPE';
        const ENTITY_ORDER_STATUS = 'ORDER_STATUS';
        const ENTITY_DELIVERY_STATUS = 'DELIVERY_STATUS';
        const ENTITY_ENTITY_MARKER = 'ENTITY_MARKER';
        const ENTITY_ORDER_HISTORY = 'ORDER_HISTORY';
        const ENTITY_PROPERTY = 'PROPERTIES';
        const ENTITY_NOTIFY = 'NOTIFY';
        const ENTITY_TRADE_BINDING_COLLECTION = 'TRADE_BINDING_COLLECTION';
        const ENTITY_TRADE_BINDING_ENTITY = 'TRADE_BINDING_ENTITY';
        private static $registryMap = array();
        private static $registryObjects = array();
        private $type = '';
        /**
         * @return void
         */
        private static function initRegistry()
        {
        }
        /**
         * @return string
         */
        public function getType()
        {
        }
        /**
         * @param $type
         * @return Registry
         * @throws Main\ArgumentException
         */
        public static function getInstance($type)
        {
        }
        /**
         * @param $code
         * @param $registryItem
         * @return void
         */
        public static function setRegistry($code, $registryItem)
        {
        }
        /**
         * Registry constructor.
         * @param $type
         */
        private function __construct($type)
        {
        }
        /**
         * @param $code
         * @param $className
         */
        public function set($code, $className)
        {
        }
        /**
         * @param $code
         * @return mixed
         * @throws Main\SystemException
         */
        public function get($code)
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getOrderClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getPaymentClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getShipmentClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getShipmentItemCollectionClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getShipmentItemClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getShipmentItemStoreClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getShipmentItemStoreCollectionClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getBasketItemClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getShipmentCollectionClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getPaymentCollectionClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getPropertyValueCollectionClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getPropertyValueClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getBasketClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getBundleCollectionClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getDiscountClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getDiscountCouponClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getOrderDiscountClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getTaxClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getBasketPropertiesCollectionClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getBasketPropertyItemClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getPersonTypeClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getOrderStatusClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getDeliveryStatusClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getEntityMarkerClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getOrderHistoryClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getNotifyClassName()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        public function getPropertyClassName()
        {
        }
    }
    /**
     * Class BasketPropertiesCollection
     * @package Bitrix\Sale
     */
    class BasketPropertiesCollection extends \Bitrix\Sale\BasketPropertiesCollectionBase
    {
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * Load basket item properties.
         *
         * @param array $parameters	orm getList parameters.
         * @return \Bitrix\Main\DB\Result
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * Delete basket item properties.
         *
         * @param $primary
         * @return Entity\DeleteResult
         */
        protected static function delete($primary)
        {
        }
    }
    class PaySystemTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Sale\Sender {
    class ConnectorOrder extends \Bitrix\Sender\Connector
    {
        public function getName()
        {
        }
        public function getCode()
        {
        }
        /** @return \CDBResult */
        public function getData()
        {
        }
        public function getForm()
        {
        }
    }
    class TriggerOrderNew extends \Bitrix\Sender\TriggerConnector
    {
        public function getName()
        {
        }
        public function getCode()
        {
        }
        public function getEventModuleId()
        {
        }
        public function getEventType()
        {
        }
        public function getConnector()
        {
        }
        /** @return array */
        public function getProxyFieldsFromEventToConnector()
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function getPersonalizeFields()
        {
        }
        /**
         * @return array
         */
        public static function getPersonalizeList()
        {
        }
        public function getForm()
        {
        }
    }
    class EventHandler
    {
        /**
         * @param $data
         * @return mixed
         */
        public static function onConnectorListBuyer($data)
        {
        }
        public static function onTriggerList($data)
        {
        }
        public static function onConnectorOrder($data)
        {
        }
        public static function onPresetMailingList()
        {
        }
        public static function onPresetTemplateList()
        {
        }
    }
    class TriggerDontBuy extends \Bitrix\Sender\TriggerConnectorClosed
    {
        public function getName()
        {
        }
        public function getCode()
        {
        }
        /** @return bool */
        public static function canBeTarget()
        {
        }
        /** @return bool */
        public static function canRunForOldData()
        {
        }
        public function filter()
        {
        }
        public function getForm()
        {
        }
        public function getRecipient()
        {
        }
        public function getFetchDataModifier($fields)
        {
        }
    }
    class TriggerOrderStatusChange extends \Bitrix\Sender\TriggerConnector
    {
        public function getName()
        {
        }
        public function getCode()
        {
        }
        public function getEventModuleId()
        {
        }
        public function getEventType()
        {
        }
        /** @return bool */
        public static function canBeTarget()
        {
        }
        public function filter()
        {
        }
        public function getConnector()
        {
        }
        /** @return array */
        public function getProxyFieldsFromEventToConnector()
        {
        }
        /**
         * @return array
         */
        public function getPersonalizeFields()
        {
        }
        /**
         * @return array
         */
        public static function getPersonalizeList()
        {
        }
        public function getForm()
        {
        }
    }
    class TriggerBasketForgotten extends \Bitrix\Sender\TriggerConnectorClosed
    {
        public function getName()
        {
        }
        public function getCode()
        {
        }
        /** @return bool */
        public static function canBeTarget()
        {
        }
        /** @return bool */
        public static function canRunForOldData()
        {
        }
        public function filter()
        {
        }
        public function getForm()
        {
        }
        public function getRecipient()
        {
        }
        public function getFetchDataModifier($fields)
        {
        }
    }
    class TriggerOrderCancel extends \Bitrix\Sender\TriggerConnector
    {
        public function getName()
        {
        }
        public function getCode()
        {
        }
        public function getEventModuleId()
        {
        }
        public function getEventType()
        {
        }
        /** @return bool */
        public static function canBeTarget()
        {
        }
        public function filter()
        {
        }
        public function getConnector()
        {
        }
        /** @return array */
        public function getProxyFieldsFromEventToConnector()
        {
        }
        /** @return array */
        public function getMailEventToPrevent()
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function getPersonalizeFields()
        {
        }
        /**
         * @return array
         */
        public static function getPersonalizeList()
        {
        }
    }
    class PresetMailing
    {
        protected static function getMailTemplate(array $params = null)
        {
        }
        protected static function getCoupon($perc = 5)
        {
        }
        protected static function getBasketCart()
        {
        }
        protected static function getMessagePlaceHolders()
        {
        }
        public static function getForgottenCart($days)
        {
        }
        public static function getCanceledOrder()
        {
        }
        public static function getPaidOrder()
        {
        }
        public static function getDontBuy($days)
        {
        }
        public static function getDontAuth($days)
        {
        }
    }
    class TriggerOrderPaid extends \Bitrix\Sender\TriggerConnector
    {
        public function getName()
        {
        }
        public function getCode()
        {
        }
        public function getEventModuleId()
        {
        }
        public function getEventType()
        {
        }
        public function filter()
        {
        }
        public function getConnector()
        {
        }
        /** @return array */
        public function getProxyFieldsFromEventToConnector()
        {
        }
        /** @return array */
        public function getMailEventToPrevent()
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function getPersonalizeFields()
        {
        }
        /**
         * @return array
         */
        public static function getPersonalizeList()
        {
        }
    }
}
namespace Bitrix\Sale {
    /**
     * Class TradeBindingEntity
     * @package Bitrix\Sale
     */
    class TradeBindingEntity extends \Bitrix\Sale\Internals\CollectableEntity
    {
        private $tradePlatform = null;
        /**
         * @return string
         */
        public static function getRegistryEntity()
        {
        }
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @return array
         */
        public static function getAvailableFields()
        {
        }
        /**
         * @return array
         */
        protected static function getMeaningfulFields()
        {
        }
        /**
         * @return array
         */
        protected static function getFieldsMap()
        {
        }
        /**
         * @param TradeBindingCollection $collection
         * @param TradingPlatform\Platform|null $platform
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static function create(\Bitrix\Sale\TradeBindingCollection $collection, \Bitrix\Sale\TradingPlatform\Platform $platform = null)
        {
        }
        /**
         * @return string
         */
        public static function generateXmlId()
        {
        }
        /**
         * @param array $fields
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        private static function createEntityObject(array $fields = array())
        {
        }
        /**
         * @param $id
         * @return array|false
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function loadForOrder($id)
        {
        }
        /**
         * @return Result
         * @throws \Exception
         */
        public function save()
        {
        }
        /**
         * @return TradingPlatform\Platform|null
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function getTradePlatform()
        {
        }
        /**
         * @param $primary
         * @param array $data
         * @return Main\Entity\UpdateResult
         * @throws \Exception
         */
        protected function updateInternal($primary, array $data)
        {
        }
        /**
         * @param array $data
         * @return Main\Entity\AddResult
         * @throws \Exception
         */
        protected function addInternal(array $data)
        {
        }
        /**
         * @return null|string
         * @internal
         *
         */
        public static function getEntityEventName()
        {
        }
    }
    /**
     * Class OrderStatus
     * @package Bitrix\Sale
     */
    class OrderStatus extends \Bitrix\Sale\StatusBase
    {
        const TYPE = 'O';
        /**
         * @return array
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        public static function getDisallowPayStatusList()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        public static function getAllowPayStatusList()
        {
        }
        /**
         * @param $statusId
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        public static function isAllowPay($statusId)
        {
        }
        /**
         * @return mixed
         */
        public static function getInitialStatus()
        {
        }
        /**
         * @return mixed
         */
        public static function getFinalStatus()
        {
        }
    }
    class Result extends \Bitrix\Main\Entity\Result
    {
        /** @var  int */
        protected $id;
        protected $warnings = array();
        /** @var bool */
        protected $isSuccess = true;
        public function __construct()
        {
        }
        public function setId($id)
        {
        }
        /**
         * Returns id of added record
         * @return int
         */
        public function getId()
        {
        }
        public function __destruct()
        {
        }
        public function addData(array $data)
        {
        }
        public function get($offset)
        {
        }
        public function set($offset, $value)
        {
        }
        /**
         * @param Error[] $errors
         *
         * @return void
         */
        public function addWarnings(array $errors)
        {
        }
        /**
         * Adds the error.
         *
         * @param Error $error
         */
        public function addWarning(\Bitrix\Main\Error $error)
        {
        }
        /**
         * Adds the error.
         *
         * @param Error $error
         * @return Result
         */
        public function addError(\Bitrix\Main\Error $error)
        {
        }
        /**
         * Returns an array of Error objects.
         *
         * @return Error[]
         */
        public function getWarnings()
        {
        }
        /**
         * Returns array of strings with warning messages
         *
         * @return array
         */
        public function getWarningMessages()
        {
        }
        /**
         * @return bool
         */
        public function hasWarnings()
        {
        }
    }
    class ResultError extends \Bitrix\Main\Entity\EntityError
    {
        /**
         * @param Error $error
         *
         * @return static
         */
        public static function create(\Bitrix\Main\Error $error)
        {
        }
    }
    class ResultWarning extends \Bitrix\Sale\ResultError
    {
    }
    class ResultNotice extends \Bitrix\Sale\ResultError
    {
    }
}
namespace Bitrix\Sale\DocumentGenerator {
    /**
     * Class CallbackRegistry
     * @package Bitrix\Sale\DocumentGenerator
     */
    final class CallbackRegistry
    {
        /**
         * @param array $data
         * @return bool
         * @throws Main\ObjectException
         */
        public static function add(array $data)
        {
        }
        /**
         * @param Main\Event $event
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function onDocumentGenerated(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Sale {
    class PriceMaths
    {
        private static $valuePrecision = null;
        /**
         * @param $value
         *
         * @return float
         * @throws Main\ArgumentNullException
         */
        public static function roundPrecision($value)
        {
        }
        /**
         * @deprecated Use \Bitrix\Sale\PriceMaths::roundPrecision instead it
         *
         * @param $price
         * @param $currency
         * 
         * @return float
         */
        public static function roundByFormatCurrency($price, $currency)
        {
        }
    }
    /**
     * Class ResultSerializable
     * For easy transfer via rest & store in cache etc.
     * \Bitrix\Main\Result::$data must contain only serializable data.
     * @package Bitrix\Sale
     */
    class ResultSerializable extends \Bitrix\Sale\Result implements \Serializable
    {
        /**
         * @return string
         */
        public function serialize()
        {
        }
        /**
         * @param string $data
         */
        public function unserialize($data)
        {
        }
    }
}
namespace Bitrix\Sale\Tax {
    final class RateLocationTable extends \Bitrix\Sale\Location\Connector
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public function getLinkField()
        {
        }
        public function getTargetEntityName()
        {
        }
        public static function getLocationLinkField()
        {
        }
        public static function getMap()
        {
        }
    }
    class RateTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Sale {
    /**
     * Class PropertyValueBase
     * @package Bitrix\Sale
     */
    abstract class PropertyValueBase extends \Bitrix\Sale\Internals\CollectableEntity
    {
        /** @var PropertyBase|null $property */
        protected $property = null;
        /**
         * PropertyValueBase constructor.
         * @param array|null $property
         * @param array|null $value
         * @param array|null $relation
         * @throws Main\SystemException
         */
        protected function __construct(array $property = null, array $value = [], array $relation = null)
        {
        }
        /**
         * @return string
         */
        public static function generateXmlId()
        {
        }
        /**
         * @param OrderBase $order
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function loadForOrder(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * @param OrderBase $order
         * @return array
         */
        protected static function constructRelatedEntitiesFilter(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * @param OrderBase $order
         * @return array
         */
        protected static function extractPaySystemIdList(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * @param OrderBase $order
         * @return array
         */
        protected static function extractDeliveryIdList(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * @param PropertyValueCollectionBase $collection
         * @param array $property
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        public static function create(\Bitrix\Sale\PropertyValueCollectionBase $collection, array $property = array())
        {
        }
        /**
         * @param array|null $property
         * @param array|null $value
         * @param array|null $relation
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        protected static function createPropertyValueObject(array $property = null, array $value = [], array $relation = null)
        {
        }
        /**
         * @return array
         */
        public static function getAvailableFields()
        {
        }
        /**
         * @return array
         */
        protected static function getMeaningfulFields()
        {
        }
        /**
         * @param $name
         * @param $value
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws \Exception
         */
        public function setField($name, $value)
        {
        }
        /**
         * @internal
         *
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectNotFoundException
         */
        public function save()
        {
        }
        /**
         * @throws Main\ObjectNotFoundException
         */
        private function checkCallingContext()
        {
        }
        /**
         * @return Order|null
         */
        public function getOrder()
        {
        }
        /**
         * @return Result
         * @throws Main\NotImplementedException
         */
        protected function update()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        protected function add()
        {
        }
        /**
         * @return void
         */
        private function callEventOnPropertyValueEntitySaved()
        {
        }
        /**
         * @param array $post
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        public function setValueFromPost(array $post)
        {
        }
        /**
         * @param $key
         * @param $value
         * @return Result
         * @throws Main\SystemException
         */
        public function checkValue($key, $value)
        {
        }
        /**
         * @param $key
         * @param $value
         *
         * @return Result
         * @throws Main\SystemException
         */
        public function checkRequiredValue($key, $value)
        {
        }
        /**
         * @return array
         */
        public function getProperty()
        {
        }
        /**
         * @return PropertyBase|null
         */
        public function getPropertyObject()
        {
        }
        /**
         * @return null|string
         */
        public function getValueId()
        {
        }
        /**
         * @return mixed
         */
        public function getPropertyId()
        {
        }
        /**
         * @return mixed
         */
        public function getPersonTypeId()
        {
        }
        /**
         * @return mixed
         */
        public function getGroupId()
        {
        }
        /**
         * @return mixed
         */
        public function getName()
        {
        }
        /**
         * @return mixed
         */
        public function getRelations()
        {
        }
        /**
         * @return mixed
         */
        public function getDescription()
        {
        }
        /**
         * @return mixed
         */
        public function getType()
        {
        }
        /**
         * @return bool
         */
        public function isRequired()
        {
        }
        /**
         * @return bool
         */
        public function isUtil()
        {
        }
        /**
         * @return string
         */
        public static function getRegistryEntity()
        {
        }
        /**
         * @param array $data
         * @throws Main\NotImplementedException
         * @return Main\Entity\AddResult
         */
        protected abstract function addInternal(array $data);
        /**
         * @param $primary
         * @param array $data
         * @throws Main\NotImplementedException
         * @return Main\Entity\UpdateResult
         */
        protected abstract function updateInternal($primary, array $data);
        /**
         * @param array $parameters
         * @throws Main\NotImplementedException
         * @return Main\DB\Result
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * @param $value
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        public function setValue($value)
        {
        }
        /**
         * @return string
         * @throws Main\SystemException
         */
        public function getViewHtml()
        {
        }
        /**
         * @return string
         * @throws Main\SystemException
         */
        public function getEditHtml()
        {
        }
        /**
         * @return null|string|array
         */
        public function getValue()
        {
        }
        /**
         * @return Result
         * @throws Main\SystemException
         */
        public function verify()
        {
        }
        /**
         * @deprecated
         * @see \Bitrix\Sale\Property::getOptions
         *
         * @param $propertyId
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function loadOptions($propertyId)
        {
        }
        /**
         * @deprecated
         * @see \Bitrix\Sale\Property::getMeaningfulValues
         *
         * @param $personTypeId
         * @param $request
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getMeaningfulValues($personTypeId, $request)
        {
        }
        /**
         * @return null|string
         * @internal
         *
         */
        public static function getEntityEventName()
        {
        }
    }
}
namespace Bitrix\Sale\Updater {
    final class DiscountExecutionModeIndex extends \Bitrix\Main\Update\Stepper
    {
        const CONTINUE_EXECUTING = true;
        const STOP_EXECUTING = false;
        const PORTION = 30;
        const TMP_EXECUTE_MODE = 22;
        protected static $moduleId = 'sale';
        public function execute(array &$result)
        {
        }
        /**
         * @return array
         */
        protected function loadCurrentStatus()
        {
        }
    }
}
namespace Bitrix\Sale {
    /**
     * Class Configuration
     * @package Bitrix\Sale
     */
    class Configuration
    {
        const RESERVE_ON_CREATE = 'O';
        const RESERVE_ON_PAY = 'R';
        const RESERVE_ON_FULL_PAY = 'P';
        const RESERVE_ON_ALLOW_DELIVERY = 'D';
        const RESERVE_ON_SHIP = 'S';
        const ALLOW_DELIVERY_ON_PAY = 'R';
        const ALLOW_DELIVERY_ON_FULL_PAY = 'P';
        const STATUS_ON_PAY = 'R';
        const STATUS_ON_FULL_PAY = 'P';
        /**
         * Returns reservation condition list.
         *
         * @param bool $extendedMode			Format mode.
         * @return array
         */
        public static function getReservationConditionList($extendedMode = false)
        {
        }
        /**
         * Returns current reservation condition.
         *
         * @return string
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getProductReservationCondition()
        {
        }
        /**
         * Returns current clear reserve period.
         *
         * @return int
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getProductReserveClearPeriod()
        {
        }
        /**
         * Check is current reservation with shipment.
         *
         * @return bool
         */
        public static function isReservationDependsOnShipment()
        {
        }
        /**
         * Returns true, if current condition - delivery.
         *
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function needShipOnAllowDelivery()
        {
        }
        /**
         * Returns flag allow delivery on pay.
         *
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function needAllowDeliveryOnPay()
        {
        }
        /**
         * @return string
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getAllowDeliveryOnPayCondition()
        {
        }
        /**
         * @param bool $extendedMode
         *
         * @return array
         */
        public static function getAllowDeliveryAfterPaidConditionList($extendedMode = false)
        {
        }
        /**
         * @return mixed
         */
        public static function getStatusPaidCondition()
        {
        }
        /**
         * @return mixed
         */
        public static function getStatusAllowDeliveryCondition()
        {
        }
        /**
         * Returns flag enable use stores.
         *
         * @return bool
         */
        public static function useStoreControl()
        {
        }
        /**
         * Returns flag use reservations.
         *
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function isEnabledReservation()
        {
        }
        /**
         * Tells if allowed to calculate discount on basket separately.
         * @return bool
         */
        public static function isAllowedSeparatelyDiscountCalculation()
        {
        }
    }
    /**
     * Class ShipmentItemStoreCollection
     * @package Bitrix\Sale
     */
    class ShipmentItemStoreCollection extends \Bitrix\Sale\Internals\EntityCollection
    {
        /** @var  ShipmentItem */
        private $shipmentItem;
        /**
         * @return ShipmentItem
         */
        protected function getEntityParent()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        private static function createShipmentItemStoreCollectionObject()
        {
        }
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @param ShipmentItem $shipmentItem
         * @return ShipmentItemStoreCollection
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function load(\Bitrix\Sale\ShipmentItem $shipmentItem)
        {
        }
        /**
         * @param BasketItem $basketItem
         * @return ShipmentItemStore
         * @throws Main\ArgumentNullException
         */
        public function createItem(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param $basketCode
         * @return float|int
         */
        public function getQuantityByBasketCode($basketCode)
        {
        }
        /**
         * @return ShipmentItem
         */
        public function getShipmentItem()
        {
        }
        /**
         * @param $action
         * @param ShipmentItem $shipmentItem
         * @param null $name
         * @param null $oldValue
         * @param null $value
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        public function onShipmentItemModify($action, \Bitrix\Sale\ShipmentItem $shipmentItem, $name = null, $oldValue = null, $value = null)
        {
        }
        /**
         * @param ShipmentItem $shipmentItem
         * @param null $oldValue
         * @param null $value
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        protected function syncQuantityAfterModify(\Bitrix\Sale\ShipmentItem $shipmentItem, $oldValue = null, $value = null)
        {
        }
        /**
         * @param Internals\CollectableEntity $item
         * @param null $name
         * @param null $oldValue
         * @param null $value
         * @return Result
         * @throws \Exception
         */
        public function onItemModify(\Bitrix\Sale\Internals\CollectableEntity $item, $name = null, $oldValue = null, $value = null)
        {
        }
        /**
         * @param Internals\CollectableEntity $item
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\SystemException
         */
        public function checkAvailableQuantity(\Bitrix\Sale\Internals\CollectableEntity $item)
        {
        }
        /**
         * @return Main\Entity\Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectException
         * @throws Main\ObjectNotFoundException
         */
        public function save()
        {
        }
        /**
         * @return array
         */
        protected function getOriginalItemValues() : array
        {
        }
        /**
         * @param array $itemValues
         */
        protected function callEventOnBeforeSaleShipmentItemStoreDeleted(array $itemValues)
        {
        }
        /**
         * @param array $itemValues
         */
        protected function callEventOnSaleShipmentItemStoreDeleted(array $itemValues)
        {
        }
        /**
         * @param array $values
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws \Exception
         */
        public function setBarcodeQuantityFromArray(array $values)
        {
        }
        /**
         * @param array $values
         * @return array
         */
        private function getBarcodeListFromArray(array $values)
        {
        }
        /**
         * @return array
         */
        public function getAllBarcodeList()
        {
        }
        /**
         * @param $barcode
         * @return ShipmentItemStore|null
         */
        public function getItemByBarcode($barcode)
        {
        }
        /**
         * @internal
         *
         * @param \SplObjectStorage $cloneEntity
         * @return Internals\EntityCollection|ShipmentItemStoreCollection|object
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws Main\ObjectNotFoundException
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * @param $value
         * @return string
         */
        public function getErrorEntity($value)
        {
        }
        /**
         * @param $value
         *
         * @return string
         */
        public function canAutoFixError($value)
        {
        }
        /**
         * @param array $parameters
         * @return Main\ORM\Query\Result|Internals\EO_ShipmentItemStore_Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * @param $primary
         * @return Main\ORM\Data\DeleteResult
         * @throws \Exception
         */
        protected function deleteInternal($primary)
        {
        }
    }
    /**
     * Class Payment
     * @package Bitrix\Sale
     */
    class Payment extends \Bitrix\Sale\Internals\CollectableEntity implements \Bitrix\Sale\IBusinessValueProvider, \IEntityMarker
    {
        const RETURN_NONE = 'N';
        const RETURN_INNER = 'Y';
        const RETURN_PS = 'P';
        /** @var  Sale\PaySystem\Service */
        protected $service;
        /**
         * Payment constructor.
         * @param array $fields
         * @throws Main\ArgumentNullException
         */
        protected function __construct(array $fields = [])
        {
        }
        /**
         * @return string|void
         */
        public static function getRegistryEntity()
        {
        }
        /**
         * @param array $values
         * @return array
         */
        protected function onBeforeSetFields(array $values)
        {
        }
        /**
         * @return array
         */
        public static function getAvailableFields()
        {
        }
        /**
         * @return array
         */
        protected static function getMeaningfulFields()
        {
        }
        /**
         * @param array $fields
         * @return Payment
         * @throws Main\ArgumentException
         */
        private static function createPaymentObject(array $fields = [])
        {
        }
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @param PaymentCollection $collection
         * @param PaySystem\Service|null $paySystem
         * @return Payment
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         */
        public static function create(\Bitrix\Sale\PaymentCollection $collection, \Bitrix\Sale\PaySystem\Service $paySystem = null)
        {
        }
        /**
         * @param PaySystem\Service $service
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        public function setPaySystemService(\Bitrix\Sale\PaySystem\Service $service)
        {
        }
        /**
         * @return string
         */
        protected static function generateXmlId()
        {
        }
        /**
         * @param $id
         * @return Payment[]
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function loadForOrder($id)
        {
        }
        /**
         * @internal
         *
         * @param $idOrder
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function deleteNoDemand($idOrder)
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectNotFoundException
         */
        public function delete()
        {
        }
        /**
         * @return Result
         */
        private function callEventOnBeforeEntityDeleted()
        {
        }
        /**
         * @return Result
         */
        private function callEventOnEntityDeleted()
        {
        }
        /**
         * @param string $name
         * @param mixed $oldValue
         * @param mixed $value
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws Main\SystemException
         */
        protected function onFieldModify($name, $oldValue, $value)
        {
        }
        /**
         * @internal
         *
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        public function save()
        {
        }
        /**
         * @return void
         */
        private function checkCallingContext()
        {
        }
        /**
         * @return Order
         */
        public function getOrder()
        {
        }
        /**
         * @return void;
         */
        protected function addCashboxChecks()
        {
        }
        /**
         * @return void;
         */
        protected function calculateStatistic()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        private function add()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        private function update()
        {
        }
        /**
         * @return void;
         */
        private function callEventOnBeforeEntitySaved()
        {
        }
        /**
         * @return void;
         */
        private function callEventOnEntitySaved()
        {
        }
        /**
         * @throws Main\ArgumentException
         */
        private function callDelayedEvents()
        {
        }
        /**
         * @param $isNew
         */
        protected function onAfterSave($isNew)
        {
        }
        /**
         * @return float
         */
        public function getSum()
        {
        }
        /**
         * @return float
         */
        public function getSumPaid()
        {
        }
        /**
         * @return bool
         */
        public function isPaid()
        {
        }
        /**
         * @return bool
         */
        public function isReturn()
        {
        }
        /**
         * @return int
         */
        public function getOrderId()
        {
        }
        /**
         * @return PaySystem\Service
         */
        public function getPaySystem()
        {
        }
        /**
         * @return PaySystem\Service
         */
        protected function loadPaySystem()
        {
        }
        /**
         * @return int
         */
        public function getPaymentSystemId()
        {
        }
        /**
         * @return string
         */
        public function getPaymentSystemName()
        {
        }
        /**
         * @param $value
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        public function setPaid($value)
        {
        }
        /**
         * @param $value
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        public function setReturn($value)
        {
        }
        /**
         * @return bool
         */
        public function isInner()
        {
        }
        /**
         * @param $name
         * @param $value
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws \Exception
         */
        public function setField($name, $value)
        {
        }
        /**
         * @param $name
         * @param $value
         * @return Result
         * @throws Main\ArgumentException
         */
        protected function checkValueBeforeSet($name, $value)
        {
        }
        /**
         * @internal
         *
         * @param $name
         * @param $value
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function setFieldNoDemand($name, $value)
        {
        }
        /**
         * @param string $name
         * @param null $oldValue
         * @param null $value
         */
        protected function addChangesToHistory($name, $oldValue = null, $value = null)
        {
        }
        /**
         * @return Result
         */
        public function verify()
        {
        }
        /**
         * @param $id
         *
         * @return Result
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        public function setAccountNumber($id)
        {
        }
        /**
         * @param $mapping
         * @return Payment|null|string
         */
        public function getBusinessValueProviderInstance($mapping)
        {
        }
        /**
         * @return int|null
         */
        public function getPersonTypeId()
        {
        }
        /**
         * @param array $parameters
         * @return Main\ORM\Query\Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getList(array $parameters = [])
        {
        }
        /**
         * @internal
         *
         * @param \SplObjectStorage $cloneEntity
         * @return Internals\CollectableEntity|object
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentNullException
         */
        public function getHash()
        {
        }
        /**
         * @deprecated
         *
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        public function isAllowPay()
        {
        }
        /**
         * @return bool
         */
        public function isMarked()
        {
        }
        /**
         * @param $value
         *
         * @return string
         */
        public function getErrorEntity($value)
        {
        }
        /**
         * @param $value
         *
         * @return bool
         */
        public function canAutoFixError($value)
        {
        }
        /**
         * @return array
         */
        public function getAutoFixErrorsList()
        {
        }
        /**
         * @param $code
         *
         * @return Result
         */
        public function tryFixError($code)
        {
        }
        /**
         * @return bool
         */
        public function canMarked()
        {
        }
        /**
         * @return string
         */
        public function getMarkField()
        {
        }
        /**
         * @param array $data
         * @return Main\ORM\Data\AddResult
         * @throws \Exception
         *
         */
        protected function addInternal(array $data)
        {
        }
        /**
         * @param $primary
         * @param array $data
         * @return Main\ORM\Data\UpdateResult
         * @throws \Exception
         */
        protected function updateInternal($primary, array $data)
        {
        }
        /**
         * @param $primary
         * @return Main\ORM\Data\DeleteResult
         * @throws \Exception
         */
        protected static function deleteInternal($primary)
        {
        }
        /**
         * @return array
         */
        protected static function getFieldsMap()
        {
        }
        /**
         * @return null
         */
        public static function getUfId()
        {
        }
        /**
         * @return null|string
         * @internal
         *
         */
        public static function getEntityEventName()
        {
        }
    }
}
namespace Bitrix\Sale\Discount\Result {
    final class CompatibleFormat
    {
        /**
         * Create simple description for unknown discount.
         *
         * @param float $newPrice			New price.
         * @param float $oldPrice			Old price.
         * @param string $currency			Currency.
         * @return array
         */
        public static function createResultDescription($newPrice, $oldPrice, $currency)
        {
        }
        /**
         * Returns result after apply one discount in old format.
         *
         * @param array $currentOrder			Current order data.
         * @param array $oldOrder				Old order data.
         * @return array
         */
        public static function getStepResult(array $currentOrder, array $oldOrder)
        {
        }
        /**
         * Returns description for old discount.
         *
         * @param array $stepResult		Action results.
         * @return array
         */
        public static function getDiscountDescription(array $stepResult)
        {
        }
    }
}
namespace Bitrix\Sale\Discount {
    class Actions
    {
        const VALUE_TYPE_FIX = 'F';
        const VALUE_TYPE_PERCENT = 'P';
        const VALUE_TYPE_SUMM = 'S';
        const VALUE_TYPE_CLOSEOUT = 'C';
        const GIFT_SELECT_TYPE_ONE = 'one';
        const GIFT_SELECT_TYPE_ALL = 'all';
        const BASKET_APPLIED_FIELD = 'DISCOUNT_APPLIED';
        const VALUE_EPS = 1.0E-5;
        const MODE_CALCULATE = 0x1;
        const MODE_MANUAL = 0x2;
        const MODE_MIXED = 0x4;
        const APPLY_COUNTER_START = -1;
        const PERCENT_FROM_CURRENT_PRICE = 0x1;
        const PERCENT_FROM_BASE_PRICE = 0x2;
        const RESULT_ENTITY_BASKET = 0x1;
        const RESULT_ENTITY_DELIVERY = 0x2;
        const RESULT_ENTITY_ORDER = 0x4;
        const APPLY_RESULT_MODE_COUNTER = 0x1;
        const APPLY_RESULT_MODE_DESCR = 0x2;
        const APPLY_RESULT_MODE_SIMPLE = 0x4;
        const ACTION_TYPE_DISCOUNT = 'D';
        const ACTION_TYPE_EXTRA = 'E';
        protected static $useMode = self::MODE_CALCULATE;
        protected static $applyCounter = self::APPLY_COUNTER_START;
        protected static $actionResult = array();
        protected static $actionDescription = array();
        protected static $applyResult = array();
        protected static $applyResultMode = self::APPLY_RESULT_MODE_COUNTER;
        protected static $storedData = array();
        protected static $useBasketFilter = true;
        protected static $percentValueMode = self::PERCENT_FROM_CURRENT_PRICE;
        protected static $currencyId = '';
        protected static $siteId = '';
        private static $compatibleBasketFields = array('DISCOUNT_PRICE', 'PRICE', 'VAT_VALUE', 'PRICE_DEFAULT');
        /**
         * Check for zero value.
         *
         * @param float|int $value Price or discount value.
         * @return float|int
         */
        public static function roundZeroValue($value)
        {
        }
        /**
         * Rounded value with sale rules.
         *
         * @param float|int $value Value.
         * @param string $currency Currency.
         * @return float
         */
        public static function roundValue($value, $currency)
        {
        }
        /**
         * Set use actions mode.
         *
         * @param int $mode Use mode.
         * @param array $config Config.
         * @return void
         */
        public static function setUseMode($mode, array $config = array())
        {
        }
        /**
         * Returns current use actions mode.
         *
         * @return int
         */
        public static function getUseMode()
        {
        }
        /**
         * Check calculate mode.
         *
         * @return bool
         */
        public static function isCalculateMode()
        {
        }
        /**
         * Check manual mode.
         *
         * @return bool
         */
        public static function isManualMode()
        {
        }
        /**
         * Check mixed mode.
         *
         * @return bool
         */
        public static function isMixedMode()
        {
        }
        /**
         * Check current use actions mode.
         *
         * @param array $list
         * @return bool
         */
        public static function checkUseMode(array $list)
        {
        }
        /**
         * Return calculate mode for percent discount.
         *
         * @return int
         */
        public static function getPercentMode()
        {
        }
        /**
         * Return calculate currency.
         *
         * @return string
         */
        public static function getCurrency()
        {
        }
        /**
         * Clear apply counter.
         *
         * @return void
         */
        public static function clearApplyCounter()
        {
        }
        /**
         * Return current apply counter.
         *
         * @return int
         */
        public static function getApplyCounter()
        {
        }
        /**
         * Increment current apply counter. Use BEFORE discount action apply.
         *
         * @return void
         */
        public static function increaseApplyCounter()
        {
        }
        /**
         * Disable basket filter for mixed apply mode.
         *
         * @return void
         */
        public static function disableBasketFilter()
        {
        }
        /**
         * Enable basket filter for mixed apply mode.
         *
         * @return void
         */
        public static function enableBasketFilter()
        {
        }
        /**
         * Return is enabled basket filter mixed apply mode.
         *
         * @return bool
         */
        public static function usedBasketFilter()
        {
        }
        /**
         * Fill compatible fields for old public api.
         *
         * @param array &$order Order data.
         * @return void
         */
        public static function fillCompatibleFields(array &$order)
        {
        }
        /**
         * Basket filter.
         *
         * @param array $item Basket item.
         * @return bool
         */
        public static function filterBasketForAction(array $item)
        {
        }
        /**
         * Return all actions description.
         *
         * @return array
         */
        public static function getActionDescription()
        {
        }
        /**
         * Return all actions results.
         *
         * @return array
         */
        public static function getActionResult()
        {
        }
        /**
         * Set apply result format mode.
         *
         * @param int $mode			Apply result mode.
         * @return void
         */
        public static function setApplyResultMode($mode)
        {
        }
        /**
         * Return apply result format mode.
         *
         * @return int
         */
        public static function getApplyResultMode()
        {
        }
        /**
         * Set apply result list.
         *
         * @param array $applyResult Apply data.
         * @return void
         */
        public static function setApplyResult(array $applyResult)
        {
        }
        /**
         * Fill data to store for discount.
         *
         * @param array $data   Data.
         * @return void
         */
        public static function setStoredData(array $data)
        {
        }
        /**
         * Return stored data after discount calculation.
         *
         * @return array
         */
        public static function getStoredData()
        {
        }
        /**
         * Fill action data to store.
         *
         * @param array $data   Action data to store.
         * @return void
         */
        public static function setActionStoredData(array $data)
        {
        }
        /**
         * Return stored action.
         *
         * @return array|null
         */
        public static function getActionStoredData()
        {
        }
        /**
         * Clear actions description and result.
         *
         * @return void
         */
        public static function clearAction()
        {
        }
        /**
         * Basket action.
         *
         * @param array &$order Order data.
         * @param array $action Action detail
         *    keys are case sensitive:
         *        <ul>
         *        <li>float|int VALUE                Discount value.
         *        <li>char UNIT                    Discount type.
         *        <li>string CURRENCY                Currency discount (optional).
         *        <li>char MAX_BOUND                Max bound (optional).
         *        </ul>.
         * @param callable $filter Filter for basket items.
         * @return void
         */
        public static function applyToBasket(array &$order, array $action, $filter)
        {
        }
        /**
         * Cumulative action.
         *
         * @param array &$order				Order data.
         * @param array $ranges
         * @param array $configuration
         * @param callable|null $filter
         * @return void
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function applyCumulativeToBasket(array &$order, array $ranges, array $configuration = array(), $filter = null)
        {
        }
        private static function wrapFilterToFindMoreProfitableForCumulative($filter, $unit, $value, $limitValue, $maxBound)
        {
        }
        /**
         * Delivery action.
         *
         * @param array &$order Order data.
         * @param array $action Action detail
         *    keys are case sensitive:
         *        <ul>
         *        <li>float|int VALUE                Discount value.
         *        <li>char UNIT                    Discount type.
         *        <li>string CURRENCY                Currency discount (optional).
         *        <li>char MAX_BOUND                Max bound.
         *        </ul>.
         * @return void
         */
        public static function applyToDelivery(array &$order, array $action)
        {
        }
        /**
         * Simple gift action.
         *
         * @param array &$order			Order data.
         * @param callable $filter		Filter.
         * @throws Main\ArgumentOutOfRangeException
         * @return void
         */
        public static function applySimpleGift(array &$order, $filter)
        {
        }
        /**
         * Return basket item for action apply.
         *
         * @param array $basket Basket.
         * @param mixed $filter Filter.
         * @param array $action Prepare data.
         * @return mixed
         */
        public static function getBasketForApply(array $basket, $filter, $action = array())
        {
        }
        /**
         * Save action description.
         *
         * @param int $type Action object type.
         * @param array $description Description.
         * @return void
         */
        public static function setActionDescription($type, $description)
        {
        }
        /**
         * Save result.
         *
         * @param int $entity			Action object type.
         * @param array $actionResult	Result description.
         * @return void
         */
        public static function setActionResult($entity, array $actionResult)
        {
        }
        /**
         * @param int $entity			Entity id.
         * @param array $entityParams	Entity params (optional).
         * @return void
         */
        public static function clearEntityActionResult($entity, array $entityParams = array())
        {
        }
        /**
         * Return percent value.
         *
         * @param array $basket Basket.
         * @param int|float $value Value.
         * @return float
         */
        public static function getPercentByValue($basket, $value)
        {
        }
        /**
         * Calculate percent price.
         *
         * @param array $basketRow Basket item.
         * @param float $percent Percent value.
         * @return float
         */
        public static function percentToValue($basketRow, $percent)
        {
        }
        public static function getActionConfiguration(array $discount)
        {
        }
        protected static function getActionStructure(array $discount)
        {
        }
        /**
         * Return check result for error mode.
         *
         * @param array $action			Action description.
         * @param array $resultDescr	Result description.
         * @return bool
         */
        protected static function compareBasketResultDescr(array $action, $resultDescr)
        {
        }
        /**
         * Calculate simple discount result.
         *
         * @param int|float $value				Discount value.
         * @param string $unit					Discount value type.
         * @param array $basketRow				Basket item.
         * @param int|float|null $limitValue	Max discount value.
         * @param bool $maxBound				Allow set price to 0, if discount more than price.
         *
         * @return array
         */
        protected static function calculateDiscountPrice($value, $unit, array $basketRow, $limitValue, $maxBound)
        {
        }
        /**
         * Fill price fields in basket item.
         *
         * @param array &$basketRow		Basket item fields.
         * @param int|float $price		New price.
         * @param int|float $discount	Value of the discount change.
         * @return void
         */
        protected static function fillDiscountPrice(array &$basketRow, $price, $discount)
        {
        }
    }
}
namespace Bitrix\Sale\Discount\Context {
    abstract class BaseContext
    {
        const GUEST_USER_ID = 0;
        /** @var int */
        protected $userId;
        /** @var array */
        protected $userGroups = array();
        protected $userGroupsHash = '';
        /**
         * @return int
         */
        public function getUserId()
        {
        }
        /**
         * @return array
         */
        public function getUserGroups()
        {
        }
        public function getUserGroupsHash()
        {
        }
        protected function setUserGroups(array $userGroups)
        {
        }
    }
    class Fuser extends \Bitrix\Sale\Discount\Context\BaseContext
    {
        protected $fuserId;
        /**
         * FUser constructor.
         *
         * @param int $fuserId
         */
        public function __construct($fuserId)
        {
        }
    }
    class User extends \Bitrix\Sale\Discount\Context\BaseContext
    {
        /**
         * User constructor.
         *
         * @param \CUser|int $user
         */
        public function __construct($user)
        {
        }
        /**
         * Resolves userId from parameter $user.
         *
         * @param \CUser|int $user Different types: User model, CUser, id of user.
         * @return int|null
         */
        private static function resolveUserId($user)
        {
        }
    }
    class UserGroup extends \Bitrix\Sale\Discount\Context\BaseContext
    {
        /**
         * UserGroup constructor.
         *
         * @param array $userGroups
         */
        public function __construct(array $userGroups)
        {
        }
    }
}
namespace Bitrix\Sale\Discount\Preset {
    abstract class BasePreset
    {
        const FINAL_STEP = 'FINALSTEP';
        const STEP_NAME_VAR = '__next_step';
        const RUN_PREV_STEP_NAME_VAR = '__run_prev_step';
        const MODE_SHOW = 2;
        const MODE_SAVE = 3;
        const ACTION_TYPE_DISCOUNT = 'Discount';
        const ACTION_TYPE_EXTRA = 'Extra';
        /** @var  ErrorCollection */
        protected $errorCollection;
        /** @var  \Bitrix\Main\HttpRequest */
        protected $request;
        /** @var string */
        protected $nextStep;
        /** @var string */
        protected $stepTitle;
        /** @var string */
        protected $stepDescription;
        /** @var string */
        private $stepResult;
        /** @var State */
        private $stepResultState;
        /** @var array */
        private $discount;
        /** @var bool */
        private $restrictedGroupsMode = false;
        /**
         * @return string the fully qualified name of this class.
         */
        public static function className()
        {
        }
        /**
         * @param BasePreset $classObject
         * @return string the short qualified name of this class.
         * @throws \ReflectionException
         */
        public static function classShortName(\Bitrix\Sale\Discount\Preset\BasePreset $classObject)
        {
        }
        public function __construct()
        {
        }
        public function enableRestrictedGroupsMode($state)
        {
        }
        public function isRestrictedGroupsModeEnabled()
        {
        }
        protected function init()
        {
        }
        public function hasErrors()
        {
        }
        /**
         * @return Error[]
         */
        public function getErrors()
        {
        }
        public function getStepNumber()
        {
        }
        /**
         * @return State
         */
        protected function getState()
        {
        }
        public function getView()
        {
        }
        protected function isRunningPrevStep()
        {
        }
        public function executeAjaxAction($actionName)
        {
        }
        public function processAjaxActionGetProductDetails(array $params = array())
        {
        }
        private function getProductInfo($elementId)
        {
        }
        public function exec()
        {
        }
        private function runStep($actionName, \Bitrix\Sale\Discount\Preset\State $state, $mode = self::MODE_SHOW)
        {
        }
        private function getStepName()
        {
        }
        /**
         * @return array
         */
        public function getDiscount()
        {
        }
        protected function isDiscountEditing()
        {
        }
        /**
         * @param array $discount
         * @return $this
         */
        public function setDiscount($discount)
        {
        }
        /**
         * @return string
         */
        public function getStepTitle()
        {
        }
        /**
         * @param string $stepTitle
         */
        public function setStepTitle($stepTitle)
        {
        }
        /**
         * @return string
         */
        public function getStepDescription()
        {
        }
        /**
         * @param string $stepDescription
         * @return $this
         */
        public function setStepDescription($stepDescription)
        {
        }
        /**
         * Returns sort to sorting presets in category row.
         * @return int
         */
        public function getSort()
        {
        }
        /**
         * @return string
         */
        public abstract function getTitle();
        /**
         * Tells if preset is available or not. It's possible that preset can't work in some license.
         * @return bool
         */
        public function isAvailable()
        {
        }
        /**
         * @return string
         */
        public abstract function getDescription();
        public function getExtendedDescription()
        {
        }
        /**
         * @return string
         */
        public abstract function getFirstStepName();
        /**
         * @return int
         */
        public function getCategory()
        {
        }
        /**
         * @return string
         */
        public function getNextStep()
        {
        }
        public function hasPrevStep()
        {
        }
        public function isLastStep()
        {
        }
        /**
         * @param string $nextStep
         * @return $this
         */
        public function setNextStep($nextStep)
        {
        }
        public function beginForm(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function endForm(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        protected function filterUserGroups(array $discountGroups)
        {
        }
        /**
         * @param State $state
         * @return array Discount fields.
         */
        public function generateDiscount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        /**
         * @param array $discountFields
         * @return State $state
         */
        public function generateState(array $discountFields)
        {
        }
        protected final function normalizeDiscountFields(array $discountFields)
        {
        }
        protected function updateDiscount($id, array $discountFields)
        {
        }
        protected function addDiscount(array $discountFields)
        {
        }
        public function processShowFinalStep(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        protected function getUserGroupsByDiscount($discountId)
        {
        }
        protected function getSiteList()
        {
        }
        private function getSaleSiteList()
        {
        }
        private function getFullSiteList()
        {
        }
        protected function processShowInputNameInternal(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        protected function processSaveInputNameInternal(\Bitrix\Sale\Discount\Preset\State $state, $nextStep)
        {
        }
        protected function processShowCommonSettingsInternal(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        protected function processSaveCommonSettingsInternal(\Bitrix\Sale\Discount\Preset\State $state, $nextStep = self::FINAL_STEP)
        {
        }
        protected function getLabelDiscountValue()
        {
        }
        protected function renderDiscountValue(\Bitrix\Sale\Discount\Preset\State $state, $currency)
        {
        }
        protected function getTypeOfDiscount()
        {
        }
        /**
         * @return array
         */
        protected function getAllowableUserGroups()
        {
        }
    }
    abstract class SelectProductPreset extends \Bitrix\Sale\Discount\Preset\BasePreset
    {
        protected function init()
        {
        }
        protected function renderElementBlock(\Bitrix\Sale\Discount\Preset\State $state, $inputName = 'discount_product', $multi = true)
        {
        }
        protected function renderSectionBlock(\Bitrix\Sale\Discount\Preset\State $state, $inputName = 'discount_section', $multi = true)
        {
        }
        protected function renderSections(\Bitrix\Sale\Discount\Preset\State $state, $inputName, $multi = true)
        {
        }
        protected function getSectionsFromConditions(array $conditions = null)
        {
        }
        protected function getProductsFromConditions(array $conditions = null)
        {
        }
        protected function generateSectionConditions($sectionIds, $logic = 'Equal')
        {
        }
        protected function generateProductConditions($productIds, $logic = 'Equal')
        {
        }
        protected function generateSectionActions($sectionIds)
        {
        }
        protected function generateProductActions($productIds)
        {
        }
        protected function generateProductsData($productIds, $siteId)
        {
        }
        protected function validateSectionsAndProductsState(\Bitrix\Sale\Discount\Preset\State $state, \Bitrix\Main\ErrorCollection $errorCollection)
        {
        }
        private function cleanIds($ids)
        {
        }
    }
    final class ArrayHelper
    {
        /**
         * Returns value, that belongs to path.   
         *
         * @param array|\ArrayAccess $array Target array.
         * @param string $path Path. Example CONDITIONS.CHILDREN.0.DATA.Value
         * @param null $defaultValue Default value
         * @return array|\ArrayAccess|mixed|null
         * @throws ArgumentException
         */
        public static function getByPath($array, $path, $defaultValue = null)
        {
        }
    }
}
namespace Bitrix\Main\Type {
    class Dictionary implements \ArrayAccess, \Iterator, \Countable
    {
        /**
         * @var array
         */
        protected $values = array();
        /**
         * Creates object.
         *
         * @param array $values
         */
        public function __construct(array $values = null)
        {
        }
        /**
         * Returns any variable by its name. Null if variable is not set.
         *
         * @param string $name
         * @return string | array | null
         */
        public function get($name)
        {
        }
        public function set($name, $value = null)
        {
        }
        /**
         * @return array
         */
        public function getValues()
        {
        }
        /**
         * @param $values
         */
        public function setValues($values)
        {
        }
        public function clear()
        {
        }
        /**
         * Return the current element
         */
        public function current()
        {
        }
        /**
         * Move forward to next element
         */
        public function next()
        {
        }
        /**
         * Return the key of the current element
         */
        public function key()
        {
        }
        /**
         * Checks if current position is valid
         */
        public function valid()
        {
        }
        /**
         * Rewind the Iterator to the first element
         */
        public function rewind()
        {
        }
        /**
         * Whether a offset exists
         */
        public function offsetExists($offset)
        {
        }
        /**
         * Offset to retrieve
         */
        public function offsetGet($offset)
        {
        }
        /**
         * Offset to set
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * Offset to unset
         */
        public function offsetUnset($offset)
        {
        }
        /**
         * Count elements of an object
         */
        public function count()
        {
        }
        /**
         * Returns the values as an array.
         *
         * @return array
         */
        public function toArray()
        {
        }
        /**
         * Returns true if the dictionary is empty.
         * @return bool
         */
        public function isEmpty()
        {
        }
    }
}
namespace Bitrix\Sale\Discount\Preset {
    final class State extends \Bitrix\Main\Type\Dictionary
    {
        private const STATE_NAME_VAR = '__state';
        private const CHAIN_NAME_VAR = '__chain';
        private const STATE_SIGNER_SALT = 'discount.preset.state';
        /** @var Signer */
        private $signer = null;
        /**
         * State constructor.
         * @param array $values
         */
        public function __construct(array $values = null)
        {
        }
        private function setDefaultValues()
        {
        }
        private function initSigner() : void
        {
        }
        private function sign(string $data) : string
        {
        }
        public function unSign(string $data) : string
        {
        }
        public function set($name, $value = null)
        {
        }
        public function append(array $values)
        {
        }
        /**
         * @param string $name
         * @param callable|null $defaultValue
         *
         * @return null|string|array
         */
        public function get($name, $defaultValue = null)
        {
        }
        public static function createFromEncodedData($data)
        {
        }
        public static function createFromRequest(\Bitrix\Main\HttpRequest $request)
        {
        }
        public function addStepChain($step)
        {
        }
        public function popStepChain()
        {
        }
        public function getPrevStep()
        {
        }
        private function getStepChain() : array
        {
        }
        public function __toString()
        {
        }
        public function toString()
        {
        }
        public function toArray()
        {
        }
        public function getStepNumber()
        {
        }
    }
    final class Manager
    {
        const DEFAULT_PRESET_DIRECTORY = '/bitrix/modules/sale/handlers/discountpreset/';
        const CATEGORY_PRODUCTS = 4;
        const CATEGORY_PAYMENT = 5;
        const CATEGORY_DELIVERY = 6;
        const CATEGORY_OTHER = 7;
        /** @var  ErrorCollection */
        protected $errorCollection;
        /** @var  Manager */
        private static $instance;
        /** @var  BasePreset[] */
        private $presetList;
        /** @var $restrictedGroupsMode bool */
        private $restrictedGroupsMode = false;
        /**
         * Returns Singleton of Manager
         * @return Manager
         */
        public static function getInstance()
        {
        }
        /**
         * Registers autoloader for presets.
         * @return void
         */
        public function registerAutoLoader()
        {
        }
        private function isAlreadyRegisteredAutoLoader()
        {
        }
        private function __construct()
        {
        }
        private function __clone()
        {
        }
        public function enableRestrictedGroupsMode($state)
        {
        }
        public function isRestrictedGroupsModeEnabled()
        {
        }
        public function autoLoad($className)
        {
        }
        private function buildPresets()
        {
        }
        private function buildCustomPresets()
        {
        }
        private function buildDefaultPresets()
        {
        }
        /**
         * @param string $className
         * @return BasePreset
         */
        private function createPresetInstance($className)
        {
        }
        private function getClassNameFromPath($path)
        {
        }
        /**
         * Returns list of presets.
         *
         * @return BasePreset[]
         */
        public function getPresets()
        {
        }
        /**
         * Returns preset by id. Id is full class name.
         *
         * @param string $id Class name of preset
         * @return BasePreset
         */
        public function getPresetById($id)
        {
        }
        /**
         * @param $category
         * @return BasePreset[]
         */
        public function getPresetsByCategory($category)
        {
        }
        public function getCategoryList()
        {
        }
        public function getCategoryName($category)
        {
        }
        public function hasCreatedDiscounts(\Bitrix\Sale\Discount\Preset\BasePreset $preset)
        {
        }
    }
    final class HtmlHelper
    {
        public static function generateSelect($id, array $selectData, $value, array $params = array())
        {
        }
        public static function generateMultipleSelect($id, array $selectData, array $values, array $params = array())
        {
        }
    }
}
namespace Bitrix\Sale\Discount {
    final class Analyzer
    {
        /** @var array */
        protected $internalModules = array('sale', 'catalog', 'main');
        /** @var  ErrorCollection */
        protected $errorCollection;
        /** @var  static */
        private static $instance;
        /**
         * Returns Singleton of Analyzer
         * @return static
         */
        public static function getInstance()
        {
        }
        private function __construct()
        {
        }
        private function __clone()
        {
        }
        /**
         * Returns true if the discount contains action with gift.
         *
         * @param array $discount Discount.
         * @return bool
         */
        public function isContainGiftAction(array $discount)
        {
        }
        /**
         * Tells if this discount can calculate separately. It means it doesn't depends on basket and other discounts.
         * @param array $discount Discount.
         *
         * @return bool
         */
        public function canCalculateSeparately(array $discount)
        {
        }
        /**
         * Tells if allowed to calculate discount on basket separately.
         *
         * @return bool
         */
        public function canCalculateSeparatelyAllDiscount()
        {
        }
        private function isThereCustomDiscountModules()
        {
        }
        private function isExistOnlySaleDiscountAction(array $discount)
        {
        }
        private function emptyConditionsList(array $discount)
        {
        }
        private function tryToFindAppliedCondition(array $discount)
        {
        }
    }
}
namespace Bitrix\Sale\Discount\Prediction {
    final class Manager
    {
        /** @var  ErrorCollection */
        protected $errorCollection;
        /** @var  Manager */
        private static $instance;
        /** @var  int */
        private $userId;
        private function __construct()
        {
        }
        /**
         * @return int
         */
        public function getUserId()
        {
        }
        /**
         * @param int $userId
         * @return $this
         */
        public function setUserId($userId)
        {
        }
        private function __clone()
        {
        }
        /**
         * Returns Singleton of Manager
         * @return Manager
         */
        public static function getInstance()
        {
        }
        /**
         * Returns first prediction which has user by current basket.
         * @param Basket $basket Basket.
         * @param array  $product Target product.
         * @return mixed|null
         * @throws SystemException
         */
        public function getFirstPredictionTextByProduct(\Bitrix\Sale\Basket $basket, array $product)
        {
        }
        private function tryToFindPredictionConnectedProducts(\Bitrix\Sale\Basket $basket, array $product)
        {
        }
        private function getProductUrl($productId)
        {
        }
        private function getSectionUrl($sectionId)
        {
        }
        private function getProductName($productId)
        {
        }
        private function getSectionName($sectionId)
        {
        }
        private function getSectionIdsByProduct(array $product)
        {
        }
        private function getSectionIdsByElement($elementId)
        {
        }
        private function extendSectionIds(array $sectionIds)
        {
        }
        /**
         * Extends to sku ids.
         * @param array $productIds
         * @return array
         */
        private function extendProductIds(array $productIds)
        {
        }
        private function checkProductInBasket(array $product, \Bitrix\Sale\Basket $basket)
        {
        }
        private function buildTextByPredictionDiscount(\Bitrix\Sale\Basket $basket, array $discount)
        {
        }
        private function findFirstPredictionDiscount(array $discounts, $typePrediction)
        {
        }
        private function addProductToBasket(\Bitrix\Sale\Basket $basket, array $product)
        {
        }
        private function getDiscounts(\Bitrix\Sale\Basket $basket)
        {
        }
        private function isValidProduct(array $product)
        {
        }
    }
}
namespace Bitrix\Sale\Discount {
    final class Formatter
    {
        const TYPE_SIMPLE = 0x1;
        const TYPE_VALUE = 0x2;
        const TYPE_LIMIT_VALUE = 0x4;
        const TYPE_FIXED = 0x8;
        const TYPE_MAX_BOUND = 0x10;
        const TYPE_SIMPLE_GIFT = 0x20;
        const VALUE_TYPE_PERCENT = 'P';
        const VALUE_TYPE_CURRENCY = 'C';
        const VALUE_TYPE_SUMM = 'S';
        const VALUE_TYPE_SUMM_BASKET = 'B';
        const VALUE_ACTION_DISCOUNT = 'D';
        const VALUE_ACTION_EXTRA = 'E';
        const VALUE_ACTION_CUMULATIVE = 'A';
        const LIMIT_MAX = 'MAX';
        const LIMIT_MIN = 'MIN';
        private static $errors = array();
        /**
         * Prepare action or result description.
         *
         * @param int $type					Action description type.
         * @param array|string $data		Action description data.
         * @return null|array
         */
        public static function prepareRow($type, $data)
        {
        }
        /**
         * Returns format action or result description.
         *
         * @param array $action		Action description.
         * @return null|string
         */
        public static function formatRow(array $action)
        {
        }
        /**
         * Format discount result.
         *
         * @param array $actionList			Descriptions.
         * @return array|null
         */
        public static function formatList(array $actionList)
        {
        }
        /**
         * Clear formatter errors.
         *
         * @return void
         */
        public static function clearErrors()
        {
        }
        /**
         * Returns formatter errors.
         *
         * @return array
         */
        public static function getErrors()
        {
        }
        /**
         * Add error.
         *
         * @param string $error		Error message.
         * @return void
         */
        private static function addError($error)
        {
        }
    }
}
namespace Bitrix\Sale\Discount\Gift {
    /**
     * @internals
     *
     * Class RelatedDataTable.
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> DISCOUNT_ID int mandatory
     * <li> ELEMENT_ID int optional
     * <li> SECTION_ID int optional
     * <li> MAIN_PRODUCT_SECTION_ID int optional
     * </ul>
     *
     * @package Bitrix\Sale\Discount\Gift
     **/
    final class RelatedDataTable extends \Bitrix\Main\Entity\DataManager
    {
        const MAX_LENGTH_BATCH_MYSQL_QUERY = 2048;
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Deletes rows by discounts.
         *
         * @param array $discountIds List of discount ids.
         * @return void
         */
        public static function deleteByDiscounts(array $discountIds)
        {
        }
        /**
         * Deletes rows by discount id.
         *
         * @param int $discountId Id of discount.
         * @return void
         */
        public static function deleteByDiscount($discountId)
        {
        }
        /**
         * Fills table of related data by discount.
         *
         * @param array $discount Discount.
         * @return void
         */
        public static function fillByDiscount(array $discount)
        {
        }
        /**
         * Returns gift data which contains list of section id, element id. It's gifts for the discount.
         *
         * @param array $discount The discount.
         * @return array
         */
        public static function getGiftsData(array $discount)
        {
        }
        /**
         * Returns main product data which contains list of section id, element id. It's main products for the discount.
         *
         * @param array $discount The discount.
         * @return array
         */
        public static function getProductsData(array $discount)
        {
        }
        /**
         * Adds rows to table.
         * @param array $items Items.
         * @internal
         */
        private static function insertBatch(array $items)
        {
        }
    }
    final class Manager
    {
        /** @var  ErrorCollection */
        protected $errorCollection;
        /** @var SplObjectStorage */
        protected $basketCloneCache;
        /** @var SplObjectStorage */
        protected $basketAddedProduct;
        /** @var  Manager */
        private static $instance;
        /** @var  int */
        private $userId;
        private function __construct()
        {
        }
        /**
         * @param Basket $basket
         * @return Basket
         * @throws \Bitrix\Main\SystemException
         */
        private function getBasketCopy(\Bitrix\Sale\Basket $basket)
        {
        }
        /**
         * @return int
         */
        public function getUserId()
        {
        }
        /**
         * @param int $userId
         * @return $this
         */
        public function setUserId($userId)
        {
        }
        private function __clone()
        {
        }
        /**
         * Returns Singleton of Manager
         * @return Manager
         */
        public static function getInstance()
        {
        }
        /**
         * Returns list of collections with gifts by basket.
         * For performance you may set arguments $discounts and $appliedDiscounts, which respond to basket.
         *
         * @param Basket     $basket Target basket.
         * @param array|null $discounts List of all discounts for basket, which already succeed conditions.
         * @param array|null $appliedDiscounts List of all discounts for basket, which already applied to basket.
         * @return array
         */
        public function getCollectionsByBasket(\Bitrix\Sale\Basket $basket, array $discounts = null, array $appliedDiscounts = null)
        {
        }
        private function getGiftedProductIdsByAppliedDiscount(array $discount)
        {
        }
        private function deleteGiftedProducts(array $gifts, array $giftedProductIds)
        {
        }
        private function getPotentialGiftData(array $discounts, array $appliedDiscounts = array())
        {
        }
        private function isValidProduct(array $product)
        {
        }
        /**
         * Returns list of collections with gifts by product and some basket.
         * If basket does not contain product, then we calculate gifts without the product.
         * After we add the product to basket, calculate gifts and comparing with previous gifts.
         * If there is difference, then the method returns gifts with the product, else the method returns empty array.
         *
         * @param Basket $basket Target basket.
         * @param array $product Array which describes product (@see isValidProduct()).
         * @return array|null
         */
        public function getCollectionsByProduct(\Bitrix\Sale\Basket $basket, array $product)
        {
        }
        private function hasDifference(array $collectionsA, array $collectionsB)
        {
        }
        private function isEqual(\Bitrix\Sale\Discount\Gift\Collection $collectionA, \Bitrix\Sale\Discount\Gift\Collection $collectionB)
        {
        }
        private function getProductIdsFromCollection(\Bitrix\Sale\Discount\Gift\Collection $collection)
        {
        }
        /**
         * Returns basket items in specific format which we can use to insert in discount and build structure which
         * will look like old discounts in \CAllSaleDiscount::DoProcessOrder in DISCOUNT_LIST.
         *
         * @param Basket $basket
         * @param array  $discountData
         * @param array  $calcResults
         * @return array
         */
        private function getAffectedReformattedBasketItemsInDiscount(\Bitrix\Sale\Basket $basket, array $discountData, array $calcResults)
        {
        }
        private function getDiscounts(\Bitrix\Sale\Basket $basket)
        {
        }
        private function checkProductInBasket(array $product, \Bitrix\Sale\Basket $basket)
        {
        }
        private function getItemFromBasket(array $product, \Bitrix\Sale\Basket $basket)
        {
        }
        private function addProductToBasket(\Bitrix\Sale\Basket $basket, array $product)
        {
        }
        private function deleteProductFromBasket(\Bitrix\Sale\Basket $basket, array $product)
        {
        }
        private function existProductInAppliedDiscounts(array $product, array $appliedDiscounts)
        {
        }
        /**
         * Returns true if the product is gift for basket.
         *
         * @param Basket $basket Target basket.
         * @param array  $product Array which describes product (@see isValidProduct()).
         * @return bool|null
         */
        public function isGift(\Bitrix\Sale\Basket $basket, array $product)
        {
        }
        /**
         * Returns true if the discount contains action with gift.
         *
         * @param array $discount Discount.
         * @return bool
         */
        public function isContainGiftAction(array $discount)
        {
        }
        /**
         * Returns true if exists discount with gift.
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function existsDiscountsWithGift()
        {
        }
        /**
         * Disables existence discount with gift.
         * @return void
         */
        public function disableExistenceDiscountsWithGift()
        {
        }
        /**
         * Enables existence discount with gift.
         * @return void
         */
        public function enableExistenceDiscountsWithGift()
        {
        }
    }
    class Gift
    {
        protected $productId;
        protected $isSku;
        /**
         * Gift constructor.
         * @param $productId
         */
        public function __construct($productId)
        {
        }
        /**
         * @return int|string
         */
        public function getProductId()
        {
        }
        public function getProduct()
        {
        }
    }
    class Collection extends \Bitrix\Main\Type\Dictionary
    {
        const TYPE_GRANT_ALL = 'all';
        const TYPE_GRANT_ONE = 'one';
        protected $type = self::TYPE_GRANT_ONE;
        /**
         * GiftCollection constructor.
         * @param array  $gifts
         * @param string $type
         */
        public function __construct(array $gifts, $type)
        {
        }
        protected function setGift(\Bitrix\Sale\Discount\Gift\Gift $gift, $offset = null)
        {
        }
        public function offsetSet($offset, $value)
        {
        }
    }
}
namespace Bitrix\Sale\Discount\Index {
    final class IndexSectionTable extends \Bitrix\Main\Entity\DataManager
    {
        const MAX_LENGTH_BATCH_MYSQL_QUERY = 2048;
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Deletes rows by discount id.
         *
         * @param int $discountId Id of discount.
         * @return void
         */
        public static function deleteByDiscount($discountId)
        {
        }
        public static function fillByDiscount($discountId, array $indexData)
        {
        }
        /**
         * Adds rows to table.
         * @param array $items Items.
         * @internal
         */
        private static function insertBatch(array $items)
        {
        }
    }
    final class IndexElementTable extends \Bitrix\Main\Entity\DataManager
    {
        const MAX_LENGTH_BATCH_MYSQL_QUERY = 2048;
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Deletes rows by discount id.
         *
         * @param int $discountId Id of discount.
         * @return void
         */
        public static function deleteByDiscount($discountId)
        {
        }
        public static function fillByDiscount($discountId, array $indexData)
        {
        }
        /**
         * Adds rows to table.
         * @param array $items Items.
         * @internal
         */
        private static function insertBatch(array $items)
        {
        }
    }
    final class Manager
    {
        /** @var  ErrorCollection */
        protected $errorCollection;
        /** @var  Manager */
        private static $instance;
        /**
         * Returns Singleton of Manager
         * @return Manager
         */
        public static function getInstance()
        {
        }
        private function __construct()
        {
        }
        private function __clone()
        {
        }
        public function dropIndex($discountId)
        {
        }
        public function indexDiscount(array $discount)
        {
        }
        public function hasDataToIndex(array $discount)
        {
        }
        private function getConditionStructure(array $discount)
        {
        }
        private function extractElementsAndSections(array $condition)
        {
        }
        private function convertSkuToMainProducts(array $elementIds)
        {
        }
    }
}
namespace Bitrix\Sale\Discount\RuntimeCache {
    final class FuserCache
    {
        /** @var array */
        private $fuserIds = array();
        /** @var FuserCache */
        private static $instance;
        private function __construct()
        {
        }
        private function __clone()
        {
        }
        /**
         * Returns Singleton of FuserCache.
         * @return FuserCache
         */
        public static function getInstance()
        {
        }
        /**
         * Returns user by fuserId.
         * @param int $fuserId Fuser Id.
         * @return int
         */
        public function getUserIdById($fuserId)
        {
        }
        /**
         * Cleans fusers cache.
         * @return void
         */
        public function clean()
        {
        }
    }
    final class DiscountCache
    {
        /** @var DiscountCache */
        private static $instance;
        private $discounts = array();
        private $discountIds = array();
        private $discountModules = array();
        private $discountEntities = array();
        private function __construct()
        {
        }
        private function __clone()
        {
        }
        /**
         * Returns Singleton of DiscountCache.
         * @return DiscountCache
         */
        public static function getInstance()
        {
        }
        public function getDiscountIds(array $userGroups)
        {
        }
        public function getDiscountModules(array $discountIds)
        {
        }
        public function getDiscountEntities(array $discountIds)
        {
        }
        public function getDiscounts(array $discountIds, array $executeModuleFilter, $siteId, array $couponList = array())
        {
        }
        /**
         * Added keys from source array to destination array.
         *
         * @param array &$dest			Destination array.
         * @param array $src			Source array.
         * @return void
         */
        private static function recursiveMerge(&$dest, $src)
        {
        }
    }
}
namespace Bitrix\Sale\Discount {
    final class CumulativeCalculator
    {
        const TYPE_ORDER_ARCHIVED = 2;
        const TYPE_ORDER_NON_ARCHIVED = 3;
        const TYPE_COUNT_PERIOD_ALL_TIME = 'all_time';
        const TYPE_COUNT_PERIOD_INTERVAL = 'interval';
        const TYPE_COUNT_PERIOD_RELATIVE = 'relative';
        private $userId;
        private $siteId;
        private $sumConfiguration = array();
        public function __construct($userId, $siteId)
        {
        }
        public function setSumConfiguration(array $sumConfiguration)
        {
        }
        public function calculate()
        {
        }
        private function createFilterBySumConfiguration($sumConfiguration)
        {
        }
        private function sumOrders($filter, $orderType)
        {
        }
    }
}
namespace Bitrix\Sale\Discount\Migration {
    final class OrderDiscountMigrator
    {
        const ERROR_ID = 'BX_SALE_ORDER_DISCOUNT_MIGRATOR';
        private static $catalogIncluded = null;
        private static $migrateDiscountsCache = array();
        private static $migrateCouponsCache = array();
        private static $catalogDiscountsCache = array();
        /**
         * Migrate discount data from b_sale_basket into new entity.
         *
         * @param array $order				Order data.
         * @return Sale\Result
         */
        public static function processing(array $order)
        {
        }
        /**
         * Convert discount for old order.
         *
         * @internal
         * @param int $orderId				Order id.
         * @param array &$data				Discount data.
         * @return bool
         * @throws Main\LoaderException
         */
        private static function migrateDiscount($orderId, array &$data)
        {
        }
        /**
         * Check coupon for convert.
         *
         * @internal
         * @param string $coupon				Coupon.
         * @return bool
         * @throws Main\LoaderException
         */
        private static function checkMigrateCoupon($coupon)
        {
        }
        /**
         * Create fake coupon.
         *
         * @internal
         * @param string $coupon			Coupon.
         * @return array
         */
        private static function createEmptyCoupon($coupon)
        {
        }
        /**
         * Create fake discount.
         *
         * @internal
         * @param array &$discountData					Discount data.
         * @param bool $accumulate				Accumulate discount.
         * @return void
         */
        private static function createEmptyDiscount(array &$discountData, $accumulate = false)
        {
        }
        /**
         * Check discount for convert.
         *
         * @internal
         * @param array &$discountData			Discount data.
         * @return void
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         */
        private static function checkMigrateDiscount(&$discountData)
        {
        }
        /**
         * Save converted discount.
         *
         * @internal
         * @param array $discountData				Discount data.
         * @return Sale\Result
         * @throws \Exception
         */
        private static function saveMigrateDiscount(array $discountData)
        {
        }
    }
}
namespace Bitrix\Sale\Controller {
    /*
     * Error code notation x(category1) xxx(category2) xxx(code category) xxxxx(code) - 2 000 403 00010
     * category1:
     * Intrnalizer - 100
     * Controller - 200
     * Externalazer - 300
     * */
    class Controller extends \Bitrix\Main\Engine\Controller
    {
        protected function isCrmModuleInstalled()
        {
        }
        protected function processBeforeAction(\Bitrix\Main\Engine\Action $action)
        {
        }
        protected function processAfterAction(\Bitrix\Main\Engine\Action $action, $result)
        {
        }
        protected static function getApplication()
        {
        }
        protected static function getNavData($start, $bORM = false)
        {
        }
        public function getBuilder(\Bitrix\Sale\Helpers\Order\Builder\SettingsContainer $settings = null)
        {
        }
        protected function getSettingsContainerDefault()
        {
        }
        protected function getFielsPropertyValuesFromRequest()
        {
        }
        protected function toArray(\Bitrix\Sale\Order $order, array $fields = [])
        {
        }
        private function getAdditionalFields(\Bitrix\Sale\Order $order)
        {
        }
        private function checkPermission($name)
        {
        }
        protected function checkReadPermissionEntity()
        {
        }
        protected function checkModifyPermissionEntity()
        {
        }
        protected function checkCreatePermissionEntity()
        {
        }
        protected function checkUpdatePermissionEntity()
        {
        }
        protected function checkDeletePermissionEntity()
        {
        }
        protected function checkPermissionEntity($name)
        {
        }
    }
    class Shipment extends \Bitrix\Sale\Controller\Controller
    {
        public function getPrimaryAutoWiredParameter()
        {
        }
        //region Actions
        public function getFieldsAction()
        {
        }
        public function modifyAction($fields)
        {
        }
        public function addAction(array $fields)
        {
        }
        public function updateAction(\Bitrix\Sale\Shipment $shipment, array $fields)
        {
        }
        public function deleteAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function getAllowDeliveryDateAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getAllowDeliveryUserIdAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getCompanyIdAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getCurrencyAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getDeliveryIdAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getDeliveryNameAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getParentOrderIdAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getPersonTypeIdAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getPriceAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getShippedDateAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getShippedUserIdAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getStoreIdAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getUnshipReasonAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getVatRateAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getVatSumAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getWeightAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function isAllowDeliveryAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function isCanceledAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function isCustomPriceAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function isEmptyAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function isMarkedAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function isReservedAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function isShippedAction(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function setBasePriceDeliveryAction(\Bitrix\Sale\Shipment $shipment, $value, $custom = false)
        {
        }
        //endregion
        private function save(\Bitrix\Sale\Shipment $shipment, \Bitrix\Sale\Result $r)
        {
        }
        protected function get(\Bitrix\Sale\Shipment $shipment, array $fields = [])
        {
        }
        public static function prepareFields($fields)
        {
        }
        protected function checkPermissionEntity($name)
        {
        }
    }
    class BasketItem extends \Bitrix\Sale\Controller\Controller
    {
        public function getPrimaryAutoWiredParameter()
        {
        }
        //region Actions
        public function getFieldsAction()
        {
        }
        public function getFieldsCatalogProductAction()
        {
        }
        public function modifyAction(array $fields)
        {
        }
        public function addAction(array $fields)
        {
        }
        public function addCatalogProductAction(array $fields)
        {
        }
        public function updateAction(\Bitrix\Sale\BasketItem $basketItem, array $fields)
        {
        }
        public function updateCatalogProductAction(\Bitrix\Sale\BasketItem $basketItem, array $fields)
        {
        }
        public function getAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function deleteAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function canBuyAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function getBasePriceAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function getBasePriceWithVatAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function getCurrencyAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function getDefaultPriceAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function getDiscountPriceAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function getFinalPriceAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function getInitialPriceAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function getPriceAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function getPriceWithVatAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function getProductIdAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function getQuantityAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function getReservedQuantityAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function getVatAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function getVatRateAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function getWeightAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function isBarcodeMultiAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function isCustomMultiAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function isCustomPriceAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function isDelayAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        public function isVatInPriceAction(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /*public function checkProductBarcodeAction(\Bitrix\Sale\BasketItem $basketItem, array $fields)
        	{
        		$r = false;
        		if ($basketItem)
        		{
        			$r = Provider::checkProductBarcode($basketItem, $fields);
        		}
        
        		if ($r)
        			return true;
        		else
        		{
        			$this->addError(new Error('barcode check failed',200150000010));
        			return null;
        		}
        
        	}*/
        //endregion
        protected function get(\Bitrix\Sale\BasketItem $basketItem, array $fields = [])
        {
        }
        public static function prepareFields($fields)
        {
        }
        protected function checkPermissionEntity($name)
        {
        }
        protected function addValidate($fields)
        {
        }
    }
    class DeliveryServices extends \Bitrix\Sale\Controller\Controller
    {
        //region Actions
        public function getActiveListAction()
        {
        }
        //endregion
        protected function checkPermissionEntity($name)
        {
        }
    }
    class Order extends \Bitrix\Sale\Controller\Controller
    {
        public function getPrimaryAutoWiredParameter()
        {
        }
        //region Actions
        public function getFieldsAction()
        {
        }
        public function getAction(\Bitrix\Sale\Order $order)
        {
        }
        public function tryModifyAction(array $fields)
        {
        }
        public function modifyAction(array $fields)
        {
        }
        public function tryAddAction(array $fields)
        {
        }
        public function addAction(array $fields)
        {
        }
        public function tryUpdateAction(\Bitrix\Sale\Order $order, array $fields)
        {
        }
        public function updateAction(\Bitrix\Sale\Order $order, array $fields)
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation = null)
        {
        }
        public function deleteAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getDeliveryIdListAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getPaymentsAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getPaySystemIdListAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getPrintedChecksAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getShipmentsAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getBasketAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getCurrencyAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getDateInsertAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getApplyDiscountAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getPersonTypeIdAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getPriceAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getPropertyValuesAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getSiteIdAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getSumPaidAction(\Bitrix\Sale\Order $order)
        {
        }
        /*
        	public function getTaxListAction(\Bitrix\Sale\Order $order)
        	{
        		//TODO: return $order->getTax()->toArray();
        		return $this->toArray($order)['TAX'];
        	}
        
        	public function getTaxLocationAction(\Bitrix\Sale\Order $order)
        	{
        		return $order->getTaxLocation();
        	}
        */
        public function getTaxPriceAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getTaxValueAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getUserIdAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getVatRateAction(\Bitrix\Sale\Order $order)
        {
        }
        public function getVatSumAction(\Bitrix\Sale\Order $order)
        {
        }
        public function isCanceledAction(\Bitrix\Sale\Order $order)
        {
        }
        public function isExternalAction(\Bitrix\Sale\Order $order)
        {
        }
        public function isMarkedAction(\Bitrix\Sale\Order $order)
        {
        }
        public function isPaidAction(\Bitrix\Sale\Order $order)
        {
        }
        public function isShippedAction(\Bitrix\Sale\Order $order)
        {
        }
        public function isUsedVatAction(\Bitrix\Sale\Order $order)
        {
        }
        //public function applyDiscountAction(\Bitrix\Sale\Order $order, array $data)
        //public function refreshAction(\Bitrix\Sale\Order $order, array $data)
        //endregion
        //region admin Actions
        //public function cancelOrderAction(\Bitrix\Sale\Order $order, array $data)
        //public function saveCommentsAction(\Bitrix\Sale\Order $order, array $data)
        //public function saveStatusAction(\Bitrix\Sale\Order $order, array $data)
        //public function changeResponsibleUserAction(\Bitrix\Sale\Order $order, array $data)
        //public function updatePaymentStatusAction()
        //public function updateShipmentStatusAction()
        //public function changeDeliveryServiceAction()
        //public function checkProductBarcodeAction()
        //public function deleteCouponAction(\Bitrix\Sale\Order $order, array $data)
        //public function addCouponsAction(\Bitrix\Sale\Order $order, array $data)
        //public function getProductIdByBarcodeAction()
        //public function refreshOrderDataAction(\Bitrix\Sale\Order $order, array $data)
        //endregion
        protected function modify(array $fields)
        {
        }
        protected function add(array $fields)
        {
        }
        protected function update(\Bitrix\Sale\Order $order, array $fields)
        {
        }
        protected function get(\Bitrix\Sale\Order $order, array $fields = [])
        {
        }
        public static function prepareFields(array $fields)
        {
        }
        private static function setFlagActionImport()
        {
        }
        public function importDeleteAction(\Bitrix\Sale\Order $order)
        {
        }
        public function resolveExternalIdToInternalId(array $fields)
        {
        }
        protected function getInternalId($externalId, $typeName, $params = [])
        {
        }
        private function prepareFieldsBasketItem($fields)
        {
        }
        private function prepareFieldsShipment($item)
        {
        }
        public function importAction(array $fields)
        {
        }
        public function prepareFieldsImport($fields)
        {
        }
        protected function checkPermissionEntity($name)
        {
        }
    }
    class Enum extends \Bitrix\Sale\Controller\Controller
    {
        public function getRelationTypesAction()
        {
        }
        public function getBusinessValuePersonDomainTypesAction()
        {
        }
        public function getPaymentIsCashTypesAction()
        {
        }
        public function getPropertyTypesAction()
        {
        }
        public function getStatusTypesAction()
        {
        }
        protected function checkPermissionEntity($name)
        {
        }
    }
    class PersonType extends \Bitrix\Sale\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        /*
        	public function modifyAction(array $fields)
        	{
        		$fields = self::prepareFields($fields);
        
        		$personTypeId = 0;
        		if(isset($fields['ID']))
        			$personTypeId = $fields['ID'];
        
        		$r = (int)$personTypeId>0 ? $this->updateAction($personTypeId, $fields):$this->addAction($fields);
        
        		if(is_array($r))
        			$this->modifyBusinessValuePersonDomain(array_merge($r, ['BUSVAL_DOMAIN'=>$fields['BUSVAL_DOMAIN']['DOMAIN_TYPE']]));
        
        		return ['PERSON_TYPE'=>$r];
        	}*/
        public function addAction(array $fields)
        {
        }
        public function updateAction($id, array $fields)
        {
        }
        public function getAction($id)
        {
        }
        public function deleteAction($id)
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        //end region
        protected function get($id)
        {
        }
        protected function isCodeUniq($code, $id = null)
        {
        }
        protected function exists($id)
        {
        }
        protected function modifyBusinessValuePersonDomain(array $fields)
        {
        }
        public static function prepareFields(array $fields)
        {
        }
    }
    class BasketProperties extends \Bitrix\Sale\Controller\Controller
    {
        public function getPrimaryAutoWiredParameter()
        {
        }
        //region Actions
        public function getFieldsAction()
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function getAction(\Bitrix\Sale\BasketPropertyItem $basketProperty)
        {
        }
        public function addAction(array $fields)
        {
        }
        public function updateAction(\Bitrix\Sale\BasketPropertyItem $basketProperty, array $fields)
        {
        }
        public function deleteAction(\Bitrix\Sale\BasketPropertyItem $basketProperty)
        {
        }
        //endregion
        protected function get(\Bitrix\Sale\BasketPropertyItem $basketProperty, array $fields = [])
        {
        }
        private function save(\Bitrix\Sale\BasketPropertyItem $basketProperty)
        {
        }
    }
    class TradePlatform extends \Bitrix\Sale\Controller\Controller
    {
        public function getFieldsAction()
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
    }
    class PropertyGroups extends \Bitrix\Sale\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        public function addAction(array $fields)
        {
        }
        public function updateAction($id, array $fields)
        {
        }
        public function deleteAction($id)
        {
        }
        public function getAction($id)
        {
        }
        public function listAction($select = [], $filter, $order = [], $start = 0)
        {
        }
        //end region
        protected function get($propertyGroupId)
        {
        }
        protected function exists($id)
        {
        }
    }
    class Payment extends \Bitrix\Sale\Controller\Controller
    {
        public function getPrimaryAutoWiredParameter()
        {
        }
        //region Actions
        public function getFieldsAction()
        {
        }
        public function modifyAction($fields)
        {
        }
        public function addAction(array $fields)
        {
        }
        public function updateAction(\Bitrix\Sale\Payment $payment, array $fields)
        {
        }
        public function deleteAction(\Bitrix\Sale\Payment $payment)
        {
        }
        public function getAction(\Bitrix\Sale\Payment $payment)
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function getOrderIdAction(\Bitrix\Sale\Payment $payment)
        {
        }
        public function getPaymentSystemIdAction(\Bitrix\Sale\Payment $payment)
        {
        }
        public function getPaymentSystemNameAction(\Bitrix\Sale\Payment $payment)
        {
        }
        public function getPersonTypeIdAction(\Bitrix\Sale\Payment $payment)
        {
        }
        public function getSumAction(\Bitrix\Sale\Payment $payment)
        {
        }
        public function getSumPaidAction(\Bitrix\Sale\Payment $payment)
        {
        }
        public function isInnerAction(\Bitrix\Sale\Payment $payment)
        {
        }
        public function isMarkedAction(\Bitrix\Sale\Payment $payment)
        {
        }
        public function isPaidAction(\Bitrix\Sale\Payment $payment)
        {
        }
        public function isReturnAction(\Bitrix\Sale\Payment $payment)
        {
        }
        public function setPaidAction(\Bitrix\Sale\Payment $payment, $value)
        {
        }
        /*
        	public function setAccountNumberAction(\Bitrix\Sale\Payment $payment, $id)
        	{
        		$r = $payment->setAccountNumber($id);
        		return $this->save($payment, $r);
        	}
        */
        public function setReturnAction(\Bitrix\Sale\Payment $payment, $value)
        {
        }
        //endregion
        private function save(\Bitrix\Sale\Payment $payment, \Bitrix\Sale\Result $r)
        {
        }
        protected function get(\Bitrix\Sale\Payment $payment, array $fields = [])
        {
        }
        public static function prepareFields($fields)
        {
        }
        protected function checkPermissionEntity($name)
        {
        }
    }
    class Tracking extends \Bitrix\Main\Engine\Controller
    {
        private $manager;
        const PERMISSION_READ = 'D';
        const PERMISSION_WRITE = 'W';
        public function __construct(\Bitrix\Main\Request $request = null)
        {
        }
        public function getStatusByShipmentIdAction(int $shipmentId, string $trackingNumber = '')
        {
        }
        protected function checkPermission($permissionType)
        {
        }
        protected static function getApplication()
        {
        }
    }
    class Basket extends \Bitrix\Sale\Controller\Controller
    {
        public function getPrimaryAutoWiredParameter()
        {
        }
        public function getAutoWiredParameters()
        {
        }
        //region Actions
        public function getFieldsAction()
        {
        }
        public function modifyAction(array $fields)
        {
        }
        public function addAction(array $fields)
        {
        }
        public function updateAction(\Bitrix\Sale\BasketItem $basket, array $fields)
        {
        }
        public function getAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function deleteAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function listAction($select = [], $filter, $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function canBuyAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function getBasePriceAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function getBasePriceWithVatAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function getCurrencyAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function getDefaultPriceAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function getDiscountPriceAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function getFinalPriceAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function getInitialPriceAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function getPriceAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function getPriceWithVatAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function getProductIdAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function getQuantityAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function getReservedQuantityAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function getVatAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function getVatRateAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function getWeightAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function isBarcodeMultiAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function isCustomMultiAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function isCustomPriceAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function isDelayAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function isVatInPriceAction(\Bitrix\Sale\BasketItem $basket)
        {
        }
        public function checkProductBarcodeAction(\Bitrix\Sale\BasketItem $basket, array $fields)
        {
        }
        //endregion
        protected function get(\Bitrix\Sale\BasketItem $basketItem, array $fields = [])
        {
        }
        public static function prepareFields($fields)
        {
        }
        protected function checkPermission($name)
        {
        }
    }
    class PropertyVariant extends \Bitrix\Sale\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        public function addAction(array $fields)
        {
        }
        public function updateAction($id, array $fields)
        {
        }
        public function deleteAction($id)
        {
        }
        public function getAction($id)
        {
        }
        public function listAction($select = [], $filter = [], $order = [], $start = 0)
        {
        }
        //end region
        protected function get($id)
        {
        }
        protected function exists($id)
        {
        }
        protected function existsProperty($id)
        {
        }
    }
    class TradeBinding extends \Bitrix\Sale\Controller\Controller
    {
        public function getFieldsAction()
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public static function prepareFields($fields)
        {
        }
    }
    class Property extends \Bitrix\Sale\Controller\Controller
    {
        protected $property;
        protected $dbProperty;
        protected $propertySettings;
        protected $errors = [];
        protected $personTypeId;
        protected $siteId;
        //region Actions
        public function getFieldsByTypeAction($type)
        {
        }
        public function updateAction($id, array $fields)
        {
        }
        public function getAction($id)
        {
        }
        public function deleteAction($id)
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function addAction($fields)
        {
        }
        //endregion
        protected function checkFileds($fields)
        {
        }
        public function getTypes()
        {
        }
        protected function exists($id)
        {
        }
        protected function get($id)
        {
        }
        protected function getPropertyGroupOptions()
        {
        }
        protected function getPersonType($personTypeId)
        {
        }
        protected static function getCommonFields()
        {
        }
        protected function getCommonSettings()
        {
        }
        protected function getInputSettings($property)
        {
        }
        protected function getStringSettings()
        {
        }
        protected function getLocationSettings()
        {
        }
        protected function getVariantSettings()
        {
        }
        protected function getRelationSettings()
        {
        }
        protected function checkMultipleField($property)
        {
        }
        protected function modifyInputSettingsByType(&$propertySettings)
        {
        }
        protected function initializePropertySettings()
        {
        }
        protected function validateFields()
        {
        }
        protected function validateVariants()
        {
        }
        protected function validateRelations()
        {
        }
        protected function validateProperty()
        {
        }
        protected function hasErrors()
        {
        }
        protected function saveRelations()
        {
        }
        protected function saveProperty()
        {
        }
        protected function saveFiles(&$property)
        {
        }
        protected function initializeDbProperty($propertyId)
        {
        }
        protected function loadProperty($propertyId)
        {
        }
        protected function modifyDataDependedByType($property)
        {
        }
        protected function modifyRelationsDataDependedByType($property)
        {
        }
        protected function updateProperty($propertiesToSave)
        {
        }
        protected function addProperty($propertiesToSave)
        {
        }
        protected function cleanUpFiles($savedFiles)
        {
        }
        protected function saveVariants()
        {
        }
        public static function prepareFields(array $fields)
        {
        }
        protected function checkPermissionEntity($name)
        {
        }
    }
    class Status extends \Bitrix\Sale\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        public function addAction($fields)
        {
        }
        public function updateAction($id, array $fields)
        {
        }
        public function deleteAction($id)
        {
        }
        public function getAction($id)
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        //endregion
        protected function prepareFields($fields)
        {
        }
        protected function validate(array $fields)
        {
        }
        protected function getLockedStatusType($statusId)
        {
        }
        protected function get($id)
        {
        }
        protected function exists($id)
        {
        }
    }
    /**
     * Class TaxiDelivery
     * @package Bitrix\Sale\Controller
     */
    class TaxiDelivery extends \Bitrix\Main\Engine\Controller
    {
        /**
         * @param int $shipmentId
         * @return array|null
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\SystemException
         */
        public function sendRequestAction(int $shipmentId)
        {
        }
        /**
         * @param int $shipmentId
         * @param int $requestId
         * @return array|null
         */
        public function cancelRequestAction(int $shipmentId, int $requestId)
        {
        }
        /**
         * @param int $shipmentId
         * @return Shipment|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function getShipmentById(int $shipmentId)
        {
        }
    }
    class PropertyValue extends \Bitrix\Sale\Controller\Controller
    {
        public function getPrimaryAutoWiredParameter()
        {
        }
        //region Actions
        public function getFieldsAction()
        {
        }
        public function modifyAction(array $fields)
        {
        }
        public function deleteAction(\Bitrix\Sale\PropertyValue $propertyValue)
        {
        }
        public function getAction(\Bitrix\Sale\PropertyValue $propertyValue)
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        //end region
        protected function get(\Bitrix\Sale\PropertyValue $propertyValue, array $fields = [])
        {
        }
        public static function prepareFields($fields)
        {
        }
    }
    class ShipmentItem extends \Bitrix\Sale\Controller\Controller
    {
        public function getPrimaryAutoWiredParameter()
        {
        }
        //region Actions
        public function getFieldsAction()
        {
        }
        public function getAction(\Bitrix\Sale\ShipmentItem $shipmentItem)
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function addAction(array $fields)
        {
        }
        public function updateAction(\Bitrix\Sale\ShipmentItem $shipmentItem, array $fields)
        {
        }
        public function deleteAction(\Bitrix\Sale\ShipmentItem $shipmentItem)
        {
        }
        //endregion
        protected function get(\Bitrix\Sale\ShipmentItem $shipmentItem, array $fields = [])
        {
        }
        private function save(\Bitrix\Sale\ShipmentItem $shipmentItem)
        {
        }
    }
    class Synchronizer extends \Bitrix\Main\Engine\Controller
    {
        protected function isB24()
        {
        }
        public function getDefaultSettingsAction()
        {
        }
        public function setDefaultSettingsAction()
        {
        }
        public function isActiveAction()
        {
        }
        protected function getSettings()
        {
        }
        public function addTimelineAfterOrderModifyAction($orderId, array $params)
        {
        }
    }
    class PropertyRelation extends \Bitrix\Sale\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        public function addAction(array $fields)
        {
        }
        public function deleteByFilterAction($fields)
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        //endregion
        protected function existsByFilter($filter)
        {
        }
        protected function checkFields($fields)
        {
        }
        protected function checkPermissionEntity($name)
        {
        }
        protected function existsProperty($id)
        {
        }
    }
    class Barcode extends \Bitrix\Main\Engine\Controller
    {
        const PERMISSION_READ = 'D';
        public function isBarcodeExistAction(string $barcode, int $basketId, int $orderId, int $storeId)
        {
        }
        protected function checkPermission($permissionType)
        {
        }
        protected static function getApplication()
        {
        }
    }
    class PropertyGroup extends \Bitrix\Sale\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        public function addAction(array $fields)
        {
        }
        public function updateAction($id, array $fields)
        {
        }
        public function deleteAction($id)
        {
        }
        public function getAction($id)
        {
        }
        public function listAction($select = [], $filter = [], $order = [], $start = 0)
        {
        }
        //end region
        protected function get($propertyGroupId)
        {
        }
        protected function exists($id)
        {
        }
    }
    class StatusLang extends \Bitrix\Sale\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        public function addAction(array $fields)
        {
        }
        public function deleteByFilterAction($fields)
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function getListLangsAction()
        {
        }
        //endregion
        protected function validate(array $fields)
        {
        }
        protected function getListLangs()
        {
        }
        protected function existsByFilter($filter)
        {
        }
        protected function checkFields($fields)
        {
        }
        protected function checkPermissionEntity($name)
        {
        }
    }
    class BusinessValuePersonDomain extends \Bitrix\Sale\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function addAction(array $fields)
        {
        }
        /** @deprecated  */
        public function getAction($personTypeId)
        {
        }
        /** @deprecated  */
        public function deleteAction($personTypeId)
        {
        }
        public function deleteByFilterAction($fields)
        {
        }
        //endregion
        protected function getPersonType($id)
        {
        }
        protected function personTypeExists($id)
        {
        }
        protected function get($personTypeId)
        {
        }
        protected function exists($personTypeId)
        {
        }
        protected function existsByFilter($filter)
        {
        }
        protected function checkFields($fields)
        {
        }
        protected function checkPermissionEntity($name)
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform {
    /**
     * Class Platform
     * Base class for trading platforms.
     * @package Bitrix\Sale\TradingPlatform
     */
    abstract class Platform
    {
        const LINK_TYPE_PUBLIC_DETAIL_ORDER = 'PUBLIC_DETAIL_ORDER';
        protected $logger;
        protected $logLevel = \Bitrix\Sale\TradingPlatform\Logger::LOG_LEVEL_ERROR;
        protected $code;
        protected $isActive = false;
        protected $settings = array();
        protected $isInstalled = false;
        protected $isNeedCatalogSectionsTab = false;
        protected $id;
        protected $fields = [];
        protected static $instances = array();
        const TRADING_PLATFORM_CODE = "";
        /**
         * Constructor
         * @param $code
         */
        protected function __construct($code)
        {
        }
        protected function __clone()
        {
        }
        /**
         * @param $code
         * @return \Bitrix\Sale\TradingPlatform\Platform
         * @throws ArgumentNullException
         */
        public static function getInstanceByCode($code)
        {
        }
        /**
         * @return mixed Id of the current trading platform.
         */
        public function getId()
        {
        }
        /**
         * @param int $level The level of event.
         * @param string $type Type of event.
         * @param string $itemId Item idenifyer.
         * @param string $description Description of event.
         * @return bool Success or not.
         */
        public function addLogRecord($level, $type, $itemId, $description)
        {
        }
        public function getField($fieldName)
        {
        }
        public function getRealName()
        {
        }
        /**
         * @return bool Is the platfor active?.
         */
        public function isActive()
        {
        }
        /**
         * Sets the platform active.
         * @return bool
         */
        public function setActive()
        {
        }
        /**
         * Sets  the platform inactive.
         * @return bool
         */
        public function unsetActive()
        {
        }
        protected static function isActiveItemsExist()
        {
        }
        public static function setShipmentTableOnAfterUpdateEvent()
        {
        }
        protected static function unSetShipmentTableOnAfterUpdateEvent()
        {
        }
        /**
         * Shows is another platforms using the iblock section edit page, "trading platforms" tab.
         * @return bool
         */
        protected function isSomebodyUseCatalogSectionsTab()
        {
        }
        protected function setCatalogSectionsTabEvent()
        {
        }
        protected function unSetCatalogSectionsTabEvent()
        {
        }
        /**
         * @return array Platform settings.
         */
        public function getSettings()
        {
        }
        /**
         * @param array $settings Platform settings.
         * @return bool Is success?.
         */
        public function saveSettings(array $settings)
        {
        }
        public function resetSettings($siteId)
        {
        }
        /**
         * @return bool Is platfom installed?.
         */
        public function isInstalled()
        {
        }
        /**
         * Installs platform
         * @return int Platform Id.
         */
        public function install()
        {
        }
        /**
         * @return bool Is deletion successful?.
         */
        public function uninstall()
        {
        }
        /**
         * @return string Platform code.
         */
        public function getCode()
        {
        }
        public static function onAfterUpdateShipment(\Bitrix\Main\Event $event, array $additional)
        {
        }
        /**
         * @return array
         */
        public function getInfo()
        {
        }
        /**
         * @param $type
         * @param Sale\Order $order
         * @return string
         */
        public function getExternalLink($type, \Bitrix\Sale\Order $order)
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform\Landing {
    /**
     * Class Landing
     * @package Bitrix\Sale\TradingPlatform\Landing
     */
    class Landing extends \Bitrix\Sale\TradingPlatform\Platform
    {
        const TRADING_PLATFORM_CODE = 'landing';
        const CODE_DELIMITER = '_';
        protected $site = [];
        /**
         * @return bool|int
         * @throws \Exception
         */
        public function install()
        {
        }
        /**
         * @return string
         */
        protected static function generateXmlId()
        {
        }
        /**
         * @return int
         */
        protected function getSiteId()
        {
        }
        /**
         * @return void
         */
        public static function setShipmentTableOnAfterUpdateEvent()
        {
        }
        /**
         * @return void
         */
        protected static function unSetShipmentTableOnAfterUpdateEvent()
        {
        }
        /**
         * @return void
         */
        protected function setCatalogSectionsTabEvent()
        {
        }
        /**
         * @return void
         */
        protected function unSetCatalogSectionsTabEvent()
        {
        }
        /**
         * @param Event $event
         * @throws \Bitrix\Main\ArgumentNullException
         * @return void
         */
        public static function onLandingSiteAdd(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Event $event
         * @throws ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         * @return void
         */
        public static function onLandingSiteDelete(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Event $event
         * @throws \Bitrix\Main\ArgumentNullException
         * @return void
         */
        public static function onLandingBeforeSiteRecycle(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param $id
         * @return string
         */
        public static function getCodeBySiteId($id)
        {
        }
        /**
         * @return array|false
         * @throws \Bitrix\Main\LoaderException
         */
        public function getInfo()
        {
        }
        /**
         * @param $type
         * @param Sale\Order $order
         * @return string
         * @throws ArgumentException
         * @throws \Bitrix\Main\LoaderException
         */
        public function getExternalLink($type, \Bitrix\Sale\Order $order)
        {
        }
        /**
         * @return mixed
         * @throws \Bitrix\Main\LoaderException
         */
        public function getRealName()
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform {
    /**
     * Class Logger
     * Recoring operations for trading platforms.
     * @package Bitrix\Sale\TradingPlatform
     */
    class Logger
    {
        const LOG_LEVEL_DISABLE = 0;
        const LOG_LEVEL_ERROR = 10;
        const LOG_LEVEL_INFO = 20;
        const LOG_LEVEL_DEBUG = 30;
        protected $logLevel = self::LOG_LEVEL_ERROR;
        protected $severities = array();
        /**
         * Constructor
         * @param int $logLevel Log level..
         */
        public function __construct($logLevel = self::LOG_LEVEL_ERROR)
        {
        }
        /**
         * @param int $level Record level.
         * @param string $type Record type.
         * @param string $itemId Identifier of record object.
         * @param string $description Record description.
         * @return bool
         * @throws \Bitrix\Main\SystemException
         */
        public function addRecord($level, $type, $itemId, $description)
        {
        }
        /**
         * Sets log level
         * @param int $logLevel Log level.
         */
        public function setLevel($logLevel)
        {
        }
    }
    /**
     * Class OrderTable
     * Links external order id with internal order id.
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ORDER_ID int mandatory
     * <li> TRADING_PLATFORM_ID int mandatory
     * <li> EXTERNAL_ORDER_ID string(100) mandatory
     * <li> EXTERNAL_ORDER \Bitrix\Sale\TradingPlatform optional
     * </ul>
     *
     * @package Bitrix\Sale\TradingPlatform
     **/
    class OrderTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function validateExternalOrderId()
        {
        }
        public static function deleteByOrderId($orderId)
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform\YMarket {
    class Order
    {
        /**
         * @param array $params
         * @return Result
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\NotSupportedException
         * @throws \Bitrix\Main\ObjectNotFoundException
         */
        public static function create(array $params)
        {
        }
        public static function createShipment(\Bitrix\Sale\Order &$order, $deliveryId = 0, $deliveryPrice = false)
        {
        }
        public static function createPayment(\Bitrix\Sale\Order &$order, $paySystemId = 0)
        {
        }
    }
    class YandexMarket extends \Bitrix\Sale\TradingPlatform\Platform
    {
        const TRADING_PLATFORM_CODE = "ymarket";
        public static function getInstance()
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform {
    /**
     * Class MapTable
     * Maps external and internal things.
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ENTITY_ID int mandatory
     * <li> VALUE_EXTERNAL string(255) mandatory
     * <li> VALUE_INTERNAL string(255) mandatory
     * </ul>
     *
     * @package Bitrix\Sale\TradingPlatform
     **/
    class MapTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function validateValueExternal()
        {
        }
        public static function validateValueInternal()
        {
        }
        /**
         * Deletes all records with mapEntityId.
         * @param string $mapEntityId Map entity id.
         */
        public static function deleteByMapEntityId($mapEntityId)
        {
        }
    }
    /**
     * Class Sftp
     * Transfer files via sftp
     * @package Bitrix\Sale\TradingPlatform
     */
    class Sftp
    {
        protected $login;
        protected $pass;
        protected $host;
        protected $port;
        protected $fingerprint;
        protected $connection;
        protected $sftp;
        /**
         * Constructor.
         * @param string $login Sftp login.
         * @param string $pass Sftp password.
         * @param string $host Sftp host.
         * @param int $port Sftp port.
         * @param string $fingerprint Hostkey hash.
         */
        public function __construct($login, $pass, $host, $port, $fingerprint = "")
        {
        }
        /**
         * Makes connection via SFTP
         * @return bool.
         * @throws \Bitrix\Main\SystemException
         */
        public function connect()
        {
        }
        /**
         * @param string $localFile Path to local file.
         * @param string $remoteFile Path to remote file.
         * @return bool.
         * @throws \Bitrix\Main\SystemException
         */
        public function uploadFile($localFile, $remoteFile)
        {
        }
        /**
         * @param string $remoteFile Path to remote file.
         * @param string $localFile Path to local file.
         * @return bool.
         * @throws \Bitrix\Main\SystemException
         */
        public function downloadFile($remoteFile, $localFile)
        {
        }
        /**
         * @param string $remotePath Remote path.
         * @return array List of files from remote path.
         * @throws \Bitrix\Main\SystemException
         */
        public function getFilesList($remotePath)
        {
        }
        /**
         * @param string $remoteFile Remote file.
         * @return int Filesize.
         */
        public function getFileSize($remoteFile)
        {
        }
    }
    /**
     * Class TabHandler
     * The hairs of this class can penetrate to iblock module, section edit admin page, tab Trading platforms.
     * @package Bitrix\Sale\TradingPlatform
     */
    abstract class TabHandler
    {
        public $name = "";
        public $description = "";
        public abstract function action($arArgs);
        public abstract function check($arArgs);
        public abstract function showTabSection($divName, $arArgs, $bVarsFromForm);
    }
}
namespace Bitrix\Sale\TradingPlatform\Ebay {
    /**
     * Class CategoryTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> NAME int mandatory
     * <li> CATEGORY_ID int mandatory
     * <li> PARENT_ID int mandatory
     * <li> LEVEL int mandatory
     * <li> CONDITION_ID_VALUES string(255) optional
     * <li> CONDITION_ID_DEFINITION_URL string(255) optional
     * <li> ITEM_SPECIFIC_ENABLED string(1) optional
     * <li> VARIATIONS_ENABLED string(1) optional
     * <li> PRODUCT_CREATION_ENABLED string(1) optional
     * <li> LAST_UPDATE string(1) optional
     * </ul>
     *
     * @package Bitrix\Sale\TradingPlatform\Ebay
     **/
    class CategoryTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        /**
         * @param string $ebayCategoryId Ebay category Id.
         * @return array Ebay category parents chain till top level.
         */
        public static function getCategoryParents($ebayCategoryId)
        {
        }
        /**
         * Overrides parent update  to sate update date to current.
         * @param mixed $primary Primary key.
         * @param array $data Data fields.
         * @return Entity\UpdateResult
         */
        public static function update($primary, array $data)
        {
        }
        public static function validateName()
        {
        }
    }
    /**
     * Class Agent
     * For periodically exchange data with sftp.
     * @package Bitrix\Sale\TradingPlatform\Ebay
     */
    class Agent
    {
        /**
         * Starts data exchange.
         * @param $feedType
         * @param $siteId
         * @param string $startPosition
         * @param bool|false $once
         * @return string
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         */
        public static function start($feedType, $siteId, $startPosition = "", $once = false)
        {
        }
        /**
         * @param $feedType
         * @param $siteId
         * @param $interval
         * @param bool|false $once
         * @return bool|int
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         */
        public static function add($feedType, $siteId, $interval, $once = false)
        {
        }
        protected static function createAgentNameForAdd($feedType, $siteId, $once = false)
        {
        }
        /**
         * Update agent's params.
         * @param string $siteId Site id.
         * @param array $feedSettings Feed settings.
         * @return array Feed settings with renew agents ids.
         */
        public static function update($siteId, array $feedSettings)
        {
        }
    }
    class Policy
    {
        protected $http;
        protected $authToken = "";
        protected $siteId = "";
        const TYPE_RETURN = 0;
        const TYPE_PAYMENT = 1;
        const TYPE_SHIPPING = 2;
        const URL = "https://svcs.ebay.com/services/selling/v1/SellerProfilesManagementService";
        public function __construct($authToken, $siteId)
        {
        }
        public function getItemsList()
        {
        }
        /**
         * @param int $type Policy::TYPE_RETURN||Policy::TYPE_PAYMENT||Policy::TYPE_SHIPPING
         * @return array
         */
        public function getPoliciesNames($type)
        {
        }
        protected function getItems()
        {
        }
        protected function sendRequest($operationName, $data)
        {
        }
    }
    class Ebay extends \Bitrix\Sale\TradingPlatform\Platform
    {
        //todo: check if token for sftp is expired
        const TRADING_PLATFORM_CODE = "ebay";
        const API_URL = "https://api.ebay.com/ws/api.dll";
        /**
         * @return Ebay
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getInstance()
        {
        }
        public static function getSftpTokenUrl($accountName)
        {
        }
        public static function getApiTokenUrl()
        {
        }
        protected static function getLicenseHash()
        {
        }
        protected static function getServiceHost()
        {
        }
        /**
         * Sets Ebay active.
         * @return bool
         * @throws \Bitrix\Main\SystemException
         */
        public function setActive()
        {
        }
        /**
         * Sets Ebay inactive.
         * @return bool
         */
        public function unsetActive()
        {
        }
        /**
         * Installs all necessary stuff for Ebay.
         * @return bool
         */
        public function install()
        {
        }
        /**
         * Sends error description to e-mail
         * @param string $type Type of error.
         * @param string $details Error details.
         * @param string $siteId Site id.
         * @return bool
         */
        public function sendErrorMail($type, $details, $siteId)
        {
        }
        /**
         * Log events to system log & sends error to email.
         * @param int $level Log level of event.
         * @param string $type Event type.
         * @param string $itemId Item id.
         * @param string $description Event description.
         * @param string $siteId Site id.
         * @return bool
         */
        public static function log($level, $type, $itemId, $description, $siteId)
        {
        }
        public static function onAfterUpdateShipment(\Bitrix\Main\Event $event, array $additional)
        {
        }
        public static function getApiUrl()
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform\Ebay\Feed {
    class Feed
    {
        /** @var  Data\Converters\DataConverter $dataConvertor */
        protected $dataConvertor;
        /** @var  Data\Sources\DataSource $sourceDataIterator */
        protected $sourceDataIterator;
        /** @var  Data\Processors\DataProcessor $dataProcessor */
        protected $dataProcessor;
        /** @var \Bitrix\Sale\TradingPlatform\Timer|null $timer */
        protected $timer = null;
        protected $siteId = "";
        public function __construct($params)
        {
        }
        public function processData($startPosition = "")
        {
        }
        public function setSourceData($data)
        {
        }
    }
    /**
     * Class ResultsTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> FILENAME string(255) mandatory
     * <li> FEED_TYPE string(255) mandatory
     * <li> UPLOAD_TIME datetime mandatory
     * <li> PROCESSING_REQUEST_ID string(50) optional
     * <li> PROCESSING_RESULT string(100) optional
     * <li> RESULTS string optional
     * </ul>
     *
     * @package Bitrix\Sale\TradingPlatform\Ebay\Feed
     **/
    class ResultsTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function validateProcessingIsSuccess()
        {
        }
        public static function validateFilename()
        {
        }
        public static function validateFeedType()
        {
        }
        public static function validateProcessingRequestId()
        {
        }
        public static function validateProcessingResult()
        {
        }
    }
    /**
     * Class QueueTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> QUEUE_TYPE string(50) mandatory
     * <li> DATA string optional
     * </ul>
     *
     * @package Bitrix\Sale\TradingPlatform\Ebay\Feed;
     **/
    class QueueTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function validateFeedType()
        {
        }
    }
    class Manager
    {
        public static function createSftpQueue($feedType, $siteId, \Bitrix\Sale\TradingPlatform\Timer $timer = null)
        {
        }
        /**
         * @param $feedType
         * @param $siteId
         * @param int $timeLimit
         * @return Feed|bool
         * @throws SystemException
         */
        public static function createFeed($feedType, $siteId, $timeLimit = 0)
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Converters {
    abstract class DataConverter
    {
        public abstract function convert($data);
    }
    class Shipment extends \Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Converters\DataConverter
    {
        //todo: multiply track numbers
        public function convert($data)
        {
        }
    }
    class Inventory extends \Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Converters\DataConverter
    {
        protected $maxProductQuantity = null;
        public function __construct($params)
        {
        }
        public function convert($data)
        {
        }
        protected function getItemData($data, $skuPrefix = "")
        {
        }
    }
    class Product extends \Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Converters\DataConverter
    {
        protected $ebayCategories;
        protected $attributesList;
        protected $attributesItem;
        protected $variationsVector;
        protected $bitrixCategories;
        protected $siteId;
        public function __construct($params)
        {
        }
        public function convert($data)
        {
        }
        protected function getItemDataOffersOffer($data, $parentSKU)
        {
        }
        protected function getItemDataOffers($data)
        {
        }
        protected function getEbayCategoryAttrName($ebeyAttributeId)
        {
        }
        protected function getAttributesItem($attributesList, $data)
        {
        }
        protected function getItemData($data)
        {
        }
        protected function getListingDetails($iBlockId, $ebayCategory)
        {
        }
        protected function getBitrixItemPropValue($propId, array $props)
        {
        }
        protected function getAttributesList($iblockId, array $ebayCategories)
        {
        }
        /* note:  limitation for Russia - product can be just in one category */
        protected function bitrixToEbayCategories($iblockId, array $bitrixCategories)
        {
        }
        protected static function getEbayCategoriesParams($iblockId, array $bitrixCategories = array())
        {
        }
        protected function getPolicyForCategory($iblockId, $ebayCategory)
        {
        }
    }
    class Order extends \Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Converters\DataConverter
    {
        public function convert($data)
        {
        }
    }
    class Results extends \Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Converters\DataConverter
    {
        public function convert($data)
        {
        }
    }
    class OrderAck extends \Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Converters\DataConverter
    {
        public function convert($data)
        {
        }
    }
    class Image extends \Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Converters\DataConverter
    {
        protected $siteId;
        protected $morePhotoProp;
        protected $domainName;
        public function __construct($params)
        {
        }
        public function convert($data)
        {
        }
        protected function getItemData($data, $sku)
        {
        }
        protected function getPictureUrl($pictNo)
        {
        }
    }
    class ProcessResult extends \Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Converters\DataConverter
    {
        public function convert($data)
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Processors {
    abstract class DataProcessor
    {
        public abstract function process($data);
    }
    class Order extends \Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Processors\DataProcessor
    {
        protected $siteId;
        public function __construct($params)
        {
        }
        public function process($data)
        {
        }
        protected function getSku($ebaySku)
        {
        }
        protected function getSkuVariation($ebaySku)
        {
        }
        protected function normalizeTransactionsArray($transactArray)
        {
        }
        public function processOrder($orderEbay)
        {
        }
        protected function createUser($email, $name)
        {
        }
    }
    class Results extends \Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Processors\DataProcessor
    {
        protected $siteId;
        public function __construct($params)
        {
        }
        public function process($data)
        {
        }
        protected function getProductsString($products)
        {
        }
        protected function getProductInfo($product)
        {
        }
        protected function getErrorsString($errors)
        {
        }
        protected function getWarningsString($warnings)
        {
        }
    }
    class SftpQueue extends \Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Processors\DataProcessor
    {
        // todo: check if the record alredy exist
        protected $feedType;
        protected $coverTag = null;
        protected $schemeFileName = null;
        protected $fileNameSalt;
        protected $remotePath;
        protected $siteId;
        protected $timer = null;
        protected $path;
        public function __construct(array $params)
        {
        }
        protected function prepareFile($file)
        {
        }
        protected function flushData()
        {
        }
        public function process($data)
        {
        }
        public function addData($data)
        {
        }
        public function sendData()
        {
        }
        protected function packData($xmlFile)
        {
        }
        protected function sendDataSftp()
        {
        }
        protected function checkOuterConditions($sftp)
        {
        }
    }
    class ProcessResult extends \Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Processors\DataProcessor
    {
        public function process($data)
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Sources {
    abstract class DataSource implements \Iterator
    {
        public function setStartPosition($startPosition)
        {
        }
        public function setData(array $data)
        {
        }
    }
    class Product extends \Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Sources\DataSource implements \Iterator
    {
        protected $productFeeds = array();
        protected $currentFeed;
        protected $ebay;
        protected $siteId;
        protected $startPos = 0;
        protected $startProductFeed = 0;
        public function __construct($params)
        {
        }
        protected function getIblockIds()
        {
        }
        protected function getMappedGroups($iblockId)
        {
        }
        protected function getXmlData()
        {
        }
        protected function getDomainName()
        {
        }
        public function setStartPosition($startPos = "")
        {
        }
        //Proxy offers iterator methods
        public function current()
        {
        }
        public function key()
        {
        }
        public function next()
        {
        }
        public function rewind()
        {
        }
        public function valid()
        {
        }
    }
    class Order extends \Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Sources\DataSource implements \Iterator
    {
        protected $remotePath;
        protected $siteId;
        protected $dataFiles = array();
        protected $currentFileIdx = 0;
        protected $startFileIdx = 0;
        protected $orderLatest = "";
        public function __construct($params)
        {
        }
        public function setStartPosition($startPos = "")
        {
        }
        public function current()
        {
        }
        public function key()
        {
        }
        public function next()
        {
        }
        public function rewind()
        {
        }
        public function valid()
        {
        }
        protected function receiveFiles()
        {
        }
    }
    class Results extends \Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Sources\DataSource implements \Iterator
    {
        protected $siteId;
        protected $feedsToCheck = array();
        protected $resultFileContent = "";
        protected $remotePathTmpl = "";
        protected $filter = array();
        public function __construct($params)
        {
        }
        public function current()
        {
        }
        public function key()
        {
        }
        public function next()
        {
        }
        public function rewind()
        {
        }
        public function valid()
        {
        }
        protected function createRemotePath($feedData)
        {
        }
        protected function getFileContent($feedData)
        {
        }
    }
    class SimpleArray extends \Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Sources\DataSource implements \Iterator
    {
        protected $data = array();
        protected $currentPos = 0;
        public function current()
        {
        }
        public function key()
        {
        }
        public function next()
        {
        }
        public function rewind()
        {
        }
        public function valid()
        {
        }
        public function setData(array $data)
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform\Ebay {
    /**
     * Class CategoryVariationTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> CATEGORY_ID int mandatory
     * <li> NAME string(255) mandatory
     * <li> REQUIRED string(1) mandatory
     * <li> MIN_VALUES int mandatory
     * <li> MAX_VALUES int mandatory
     * <li> SELECTION_MODE string(255) mandatory
     * <li> ALLOWED_AS_VARIATION string(1) optional
     * <li> HELP_URL string(255) optional
     * <li> VALUE text optional
     * </ul>
     *
     * @package Bitrix\Sale\TradingPlatform\Ebay
     **/
    class CategoryVariationTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function validateName()
        {
        }
        public static function validateValue()
        {
        }
        public static function validateRequired()
        {
        }
        public static function validateSelectionMode()
        {
        }
        public static function validateAllowedAsVariation()
        {
        }
        public static function validateHelpUrl()
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform\Ebay\Api {
    class Caller
    {
        protected $http;
        protected $apiUrl;
        public function __construct($params)
        {
        }
        public function sendRequest($callName, $data, $devId = "", $apiAppId = "", $certId = "")
        {
        }
    }
    abstract class Entity
    {
        protected $siteId;
        protected $apiCaller;
        protected $authToken;
        protected $ebaySiteId;
        protected $warningLevel = "High";
        public function __construct($siteId)
        {
        }
        protected function array2Tags(array $params)
        {
        }
    }
    class Details extends \Bitrix\Sale\TradingPlatform\Ebay\Api\Entity
    {
        protected function requestData()
        {
        }
        protected function getData()
        {
        }
        public function getListShipping()
        {
        }
        public static function getUsableDeliveries()
        {
        }
        public function getListPayments()
        {
        }
        public static function getUsablePaySystems()
        {
        }
    }
    class Categories extends \Bitrix\Sale\TradingPlatform\Ebay\Api\Entity
    {
        protected function getItems(array $params = array())
        {
        }
        protected function getTopItems()
        {
        }
        public function refreshTableData()
        {
        }
        public function getItemSpecifics(array $params)
        {
        }
        protected function getMappedCategories()
        {
        }
        public function refreshVariationsTableData(array $ebayCategoriesIds = array())
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform\Ebay {
    /**
     * Class Helper
     * Useful methods to work with ebay.
     * @package Bitrix\Sale\TradingPlatform\Ebay
     */
    class Helper
    {
        /**
         * Checks all necessary extensions etc.
         * @return Result
         * @throws SystemException
         */
        public static function checkEnveronment()
        {
        }
        /**
         * @return string Path to SFTP exchange folders.
         */
        public static function getSftpPath()
        {
        }
        /**
         * Creates filestructure for information exchange via sftp.
         * @return bool
         */
        public static function createFeedFileStructure()
        {
        }
        /**
         * Creates events for sending e-mail.
         * @return bool
         */
        public static function installEvents()
        {
        }
        /**
         * @return array Ebay order statuses.
         */
        public static function getEbayOrderStatuses()
        {
        }
        /**
         * Sends tracknumber to ebay.
         * @param string $orderId Order id.
         * @param string $val "Y"|"N"
         * @return bool
         */
        public static function onSaleDeductOrder($orderId, $val)
        {
        }
        /**
         * @return array Audit types.
         * Before using it needs to execute:
         * RegisterModuleDependences('main', 'OnEventLogGetAuditTypes', 'sale', 'Bitrix\Sale\TradingPlatform\Ebay\Ebay', 'OnEventLogGetAuditTypes');
         */
        public static function OnEventLogGetAuditTypes()
        {
        }
        /**
         * @param string $siteId
         * @return \Bitrix\Sale\TradingPlatform\Sftp
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getSftp($siteId)
        {
        }
        /**
         * Returns category variations.
         * If variations no found in table get them through API and saves to table.
         * @param string $ebayCategoryId Ebay category id.
         * @param string $siteId Sitte id.
         * @param bool $localInfoOnly Get it from Ebay site if not found in table.
         * @return array
         */
        public static function getEbayCategoryVariations($ebayCategoryId, $siteId, $localInfoOnly = false)
        {
        }
    }
    /**
     * Class CatalogSectionTabHandler
     * Work with iblock section / catalog category edit page.
     * @package Bitrix\Sale\TradingPlatform\Ebay
     */
    class CatalogSectionTabHandler extends \Bitrix\Sale\TradingPlatform\TabHandler
    {
        public $name = "Ebay";
        public $description = "Ebay section mappings";
        protected static $ebayCategoriesVariations = array();
        protected static $ebayRequiredVariations = array();
        public function Action($arArgs)
        {
        }
        protected function saveCategoryPropsMap($iblockId, $ebayCategoryId, array $ebayCatVar, array $bitrixCatProps)
        {
        }
        protected function saveCategoryMap($bitrixCategoryId, $iblockId, array $ebayCategoriesIds, $params = array())
        {
        }
        public function Check($arArgs)
        {
        }
        public function ShowTabSection($divName, $arArgs, $bVarsFromForm)
        {
        }
    }
    /**
     * Class MapHelper
     * Useful mapping methods
     * @package Bitrix\Sale\TradingPlatform\Ebay
     */
    class MapHelper
    {
        /**
         * @param int $iblockId Iblock id.
         * @return string Category map entity code.
         */
        public static function getCategoryEntityCode($iblockId)
        {
        }
        /**
         * @param int $iblockId Iblock id.
         * @param int $ebayCategoryId Category id.
         * @return string Category variation entity code.
         */
        public static function getCategoryVariationEntityCode($iblockId, $ebayCategoryId)
        {
        }
        /**
         * @param string  $siteId Site id.
         * @return string Delivery entity code.
         */
        public static function getDeliveryEntityCode($siteId)
        {
        }
        /**
         * @param string $siteId Site id.
         * @return int Delivery entity id.
         */
        public static function getDeliveryEntityId($siteId)
        {
        }
        /**
         * @param int $iblockId Iblock id.
         * @return int Category entity id.
         */
        public static function getCategoryEntityId($iblockId)
        {
        }
        /**
         * @param int $iblockId Iblock id.
         * @param int $ebayCategoryId Category id.
         * @return int Category variation entity id.
         */
        public static function getCategoryVariationEntityId($iblockId, $ebayCategoryId)
        {
        }
        /**
         * @param string $mapEntityCode Map entity code
         * @return int Map entity id.
         * @throws \Bitrix\Main\SystemException
         */
        protected static function getMapEntityId($mapEntityCode)
        {
        }
        /**
         * @param array $ebayDelivery Ebay deliveries ids.
         * @param string $siteId Site id.
         * @return array Bitrix delivery ids.
         */
        public function getBitrixDeliveryIds(array $ebayDelivery, $siteId)
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform {
    /**
     * Class Xml2Array
     * @package Bitrix\Sale\TradingPlatform
     */
    class Xml2Array
    {
        /**
         * @param string $xmlData XML.
         * @return array Converted.
         */
        public static function convert($xmlData, $convertCharset = true)
        {
        }
        /**
         * @param array $branch.
         * @return array
         */
        public static function normalize(array $branch)
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform\Vk {
    /**
     * Class VkCategories
     * Download categories from vk, save them in cache, get from cache
     * @package Bitrix\Sale\TradingPlatform\Vk
     */
    class VkCategories
    {
        const CACHE_DIR = '/sale/vkexport/';
        const CACHE_TTL = 86400;
        const CACHE_ID_PREFIX = "vkcategory_cache";
        private $exportId;
        /**
         * VkCategories constructor.
         * @param $exportId - int, ID of export profile
         */
        public function __construct($exportId)
        {
        }
        /**
         * Create agent for pereodical update vk-categories in values (main function)
         *
         * @return array|bool|false|mixed|null - ID of created or existing agent
         */
        public function createAgent()
        {
        }
        /**
         * @return array|bool|false|mixed|null
         * Check if exist agent for update vk-categories.
         * Return agent ID
         */
        private function getAgentId()
        {
        }
        /**
         * @param $exportid
         * Remove agent for current export ID
         */
        public function deleteAgent()
        {
        }
        /**
         * Remove agents for ALL export IDs
         */
        public function deleteAllAgents()
        {
        }
        /**
         * @return string
         * Create name for cache
         */
        private static function createCacheId()
        {
        }
        /**
         * @param $exportId
         * @return string
         * Create name for agent
         */
        private static function createAgentName($exportId)
        {
        }
        /**
         * If cache exist - get values from it.
         * Else - download categories via API
         *
         * @param bool $isTree
         * @return array|bool
         */
        public function getList($isTree = true)
        {
        }
        /**
         * Load vk-categories from VK and save them to cache.
         *
         * @param $exportId
         * @return array of VkCategories or null if error
         */
        private static function updateDataToCache($exportId)
        {
        }
        /**
         * get vk categories from vk-api
         *
         * @param $exportId
         * @return array
         */
        private static function getDataFromVk($exportId)
        {
        }
        /**
         * Convert category list to tree
         *
         * @param $categoriesList
         * @return array
         */
        private static function convertVkCategoriesToTree($categoriesList)
        {
        }
        /**
         * Convert category list from VK to correct list
         *
         * @param $categoriesList
         * @return array
         */
        private static function convertVkCategoriesToList($categoriesList)
        {
        }
        /**
         * Formmatted selector to HTML. Not create <select> tag. only inner options.
         *
         * @param null $catVkSelected - ID of item, which it is necessary to ckecked
         * @param string $defaultItemText - if set - rename first element. Default - 'Check category'
         * @return string
         */
        public function getVkCategorySelector($catVkSelected = NULL, $defaultItemText = '')
        {
        }
        /**
         * Agent wrap-method for update cache
         *
         * @param $exportId
         * @return string
         */
        public function updateVkCategoriesAgent($exportId)
        {
        }
    }
    /**
     * Class Logger
     * Manage errors in Log Table.
     *
     * @package Bitrix\Sale\TradingPlatform\Vk
     */
    class Logger
    {
        private $exportId;
        private $ritchLog = false;
        const MAX_SHOWING_ERRORS_ITEMS = 5;
        /**
         * Logger constructor.
         * @param $exportId - int, ID of export profile
         */
        public function __construct($exportId)
        {
        }
        /**
         * Return list of saved on log errors
         *
         * @param null $errCode
         * @param null $itemId
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        private function getExistingErrors($errCode = null, $itemId = null)
        {
        }
        /**
         * Log is like error, but not error.
         * It is equal entities, but we always set ErrorCode in "log".
         */
        public function addLog($itemId = null, $params = null)
        {
        }
        /**
         * Add new error in log.
         * If error by this code already exist - match time. Use newer error,
         * If set Item - adding in items list, if not - set only text error.
         *
         * @param $errCode - string of error code, from predetermined list
         * @param null $itemId
         * @return bool
         * @throws ExecuteException
         * @throws \Exception
         */
        public function addError($errCode, $itemId = null, $errParams = null)
        {
        }
        /**
         * Write new error to table
         *
         * @param $errCode
         * @param null $itemId
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Exception
         */
        private function addErrorToTable($errCode, $itemId = null, $errParams = null)
        {
        }
        /**
         * @param $errCode - string of error code, from predetermined list
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Exception
         */
        public function clearOneError($errCode)
        {
        }
        /**
         * Delete all errors from log (for one export ID)
         *
         * @return bool
         * @throws \Exception
         */
        public function clearLog()
        {
        }
        /**
         * Return existing errors in text format for view on page
         *
         * @return array|string
         */
        public function getErrorsList($flagCritical = false)
        {
        }
        /**
         * Return string with js-script for expand not critical errors
         */
        public function getErrorExpandScript()
        {
        }
        public static function createLogFileContent($exportId)
        {
        }
        /**
         * Format error items to string (wrapper). If unknown type of error - just return item ID
         *
         * @param $item
         * @param $errCode
         * @return string
         */
        private function createItemErrorString($item, $errCode)
        {
        }
        /**
         * Format error items to string
         *
         * @param $item
         * @param $type
         * @return string
         */
        private static function createItemErrorStringByType($item, $type)
        {
        }
        /**
         * Preset known errors and descriptions.
         * Unknown type of errors will be added in OTHER.
         * Number codes - errors from api-methods, other errors catch in runtime.
         *
         *
         * @param null $key
         * @return array|mixed|null
         */
        private function getErrorsDescriptions($key = null)
        {
        }
    }
    /**
     * Class ExecuteException
     * Throw various errors occuring during vk-export
     *
     * @package Bitrix\Sale\TradingPlatform\Vk
     */
    class ExecuteException extends \Bitrix\Main\SystemException
    {
        protected $errCode;
        protected $method;
        protected $needLink = false;
        const API_DESC_PAGE = 'https://new.vk.com/dev/errors';
        public function __construct($message = "", $errCode = "", $method = "", \Exception $previous = NULL)
        {
        }
        /**
         * Return formatted message for showing
         *
         * @return string
         */
        public function getFullMessage()
        {
        }
    }
    class ExportProfileTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function validateDesc()
        {
        }
    }
    /**
     * Class Agent
     * Working with agent for VK-export: running, update, delete. Provide multistep processing.
     * @package Bitrix\Sale\TradingPlatform\Vk
     */
    class Agent
    {
        /**
         * Starting agents from start position. Need for multisteps.
         *
         * @param $feedType - type of export. May be ALL - then after ending ALBUMS export will be created PRODUCTS agent
         * @param $exportId
         * @param string $startPosition - in first run must be ""
         * @param bool $once - if true - agent will be deleted after ending process
         * @param int $execNumber - number of repeated running without changing position. Need for alert of slow agent.
         * @return string
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws \Bitrix\Main\SystemException
         */
        public static function start($feedType, $exportId, $startPosition = "", $once = false, $execNumber = 1)
        {
        }
        /**
         * @param $feedType - type of export. May be ALL - then after ending ALBUMS export will be created PRODUCTS agent
         * @param $exportId
         * @param string $startPosition - in first run must be ""
         * @param $interval - time of repeating
         * @param bool $once - if true - agent will be deleted after ending process
         * @return bool|int
         * @throws ArgumentNullException
         *
         * Add new agent for export products, albums or all
         */
        public static function add($feedType, $exportId, $startPosition = "", $interval, $once = false)
        {
        }
        /**
         * @param $feedType - type of export. May be ALL - then after ending ALBUMS export will be created PRODUCTS agent
         * @param $exportId
         * @param $startPosition
         * @param bool $once - if true - agent will be deleted after ending process
         * @param int $execNumber
         * @return string
         *
         * Create name for creating new agent
         */
        protected static function createAgentNameForAdd($feedType, $exportId, $startPosition, $once = false, $execNumber = 1)
        {
        }
        /**
         * Update params for existing agent. If agent if not exist - create new
         *
         * @param $exportId
         * @param $feedType - type of export. May be ALL - then after ending ALBUMS export will be created PRODUCTS agent
         * @param $interval - time of repeating
         * @param bool $once - if true - agent will be deleted after ending process
         * @return bool|int
         * @throws ArgumentNullException
         */
        public static function update($exportId, $feedType, $interval, $once = false)
        {
        }
        /**
         * Remove all agents, saving in VK settings
         */
        public static function deleteAll()
        {
        }
        /**
         * Delete agent by ID
         */
        public static function deleteAgent($agentId)
        {
        }
        /**
         * Find vk-export agents which running once.
         * Return array of IDs.
         *
         * @param $feedType - type of export. May be ALL - then after ending ALBUMS export will be created PRODUCTS agent
         * @param $exportId
         * @return array - IDs of existing agents
         */
        public static function getExistingOnceAgent($feedType, $exportId)
        {
        }
        /**
         * Find vk-export agents which was running but not finished (have not null start position)
         * Return array of IDs.
         *
         * @param $feedType
         * @param $exportId
         * @return array
         */
        public static function getRunningPereodicalAgents($feedType, $exportId)
        {
        }
        /**
         * Create name for vk-export agents which running onced.
         * @param $feedType
         * @param $exportId
         * @return string
         */
        protected static function createOnceAgentName($feedType, $exportId)
        {
        }
        /**
         * Create name for vk-export agents which was running but not finished (have not null start position)
         *
         * @param $feedType
         * @param $exportId
         * @return string
         */
        protected static function createRunningPereodicalAgentName($feedType, $exportId)
        {
        }
    }
    /**
     * Class Vk - manage VKontakte object - create, delete, install, uninstall, get and save settings etc.
     * @package Bitrix\Sale\TradingPlatform\Vk
     */
    class Vk extends \Bitrix\Sale\TradingPlatform\Platform
    {
        const TRADING_PLATFORM_CODE = "vk";
        private $accessToken;
        private $api = array();
        private $executer = array();
        const OAUTH_URL = "https://oauth.vk.com/authorize";
        const TOKEN_URL = "https://oauth.vk.com/access_token";
        const VK_URL = 'https://vk.com/';
        const VK_URL__MARKET_PREFIX = 'market-';
        const VK_URL__ALBUM_PREFIX = '?section=album_';
        const GROUP_GET_STEP = 1000;
        const MAX_EXECUTION_ITEMS = 25;
        const MAX_ALBUMS = 100;
        const MAX_PRODUCTS = 15000;
        const MAX_PRODUCTS_IN_ALBUM = 1000;
        const PRODUCTS_GET_STEP = 200;
        const MAX_PHOTOS_IN_PRODUCT = 4;
        const MAX_PHOTOS_IN_ALBUM = 1;
        const MAX_VK_CATEGORIES = 1000;
        const MIN_ALBUM_PHOTO_WIDTH = 1280;
        const MIN_ALBUM_PHOTO_HEIGHT = 720;
        const MAX_ALBUM_PHOTO_SIZES_SUM = 14000;
        //sum height and width
        const MAX_ALBUM_PHOTO_SIZE = 52428800;
        //Bites
        const MAX_ALBUM_RATIO_V = 0.25;
        // width / height
        const MAX_ALBUM_RATIO_H = 3;
        const MIN_PRODUCT_PHOTO_WIDTH = 400;
        const MIN_PRODUCT_PHOTO_HEIGHT = 400;
        const MAX_PRODUCT_PHOTO_SIZES_SUM = 14000;
        //sum height and width
        const MAX_PRODUCT_PHOTO_SIZE = 52428800;
        //Bites
        const MAX_PRODUCT_RATIO_V = 0.1;
        // width / height
        const MAX_PRODUCT_RATIO_H = 10;
        const DEFAULT_TIMELIMIT = 40;
        //seconds
        const DEFAULT_EXECUTION_ITEMS = 6;
        const VERY_DEFAULT_VK_CATEGORY = 1;
        //very very default, not true, but only for preserve errors
        const VK_CATEGORY_TO_CHANGE = -1;
        //category "change category"
        /**
         * Return singltone object of VK
         *
         * @return Vk
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getInstance()
        {
        }
        /**
         * Get settings from profiles table. If passed esportId - return only one item
         *
         * @param null $exportId
         * @return mixed
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getSettings($exportId = NULL)
        {
        }
        /**
         * Formatted export profile settings and save them in own table.
         *
         * @param array $settings
         * @param null $exportId
         * @return bool|int
         * @throws \Exception
         */
        public function saveSettings(array $settings)
        {
        }
        /**
         * Sets Vk active.
         * @return bool
         * @throws \Bitrix\Main\SystemException
         */
        public function setActive()
        {
        }
        /**
         * Sets Vk inactive.
         * @return bool
         */
        public function unsetActive()
        {
        }
        /**
         * Installs all necessary stuff for Vk.
         * @return bool
         */
        public function install()
        {
        }
        /**
         * Clear all items related with VK - settings, agents, mapping
         *
         * @throws \Bitrix\Main\SystemException
         */
        public function uninstall()
        {
        }
        /**
         * Remove one export profile. If it last profile - uninstall all VK-platform
         *
         * @param $exportId
         * @return \Bitrix\Main\Entity\DeleteResult
         * @throws \Exception
         */
        public function removeProfile($exportId)
        {
        }
        /**
         * Create user field in catalog iblock
         *
         * @param $props
         * @return array
         */
        private function createCatalogField($props)
        {
        }
        /**
         * Check existing user field in section by code
         *
         * @param $iblockId
         * @return bool
         */
        private function checkExistingCatalogField($iblockId, $code)
        {
        }
        /**
         * Delete field for VK-image from sections
         *
         * @param $iblockId
         * @return bool|\CDBResult
         */
        private function deleteSectionFieldVkImage($iblockId)
        {
        }
        /**
         * Create field for VK-image from sections
         *
         * @param $iblockId
         * @return array
         */
        private function createSectionFieldVkImage($iblockId)
        {
        }
        /**
         * Create code for field for VK-image from sections
         *
         * @param $iblockId
         * @return string
         */
        private function createCodeForSectionFieldVkImage($iblockId)
        {
        }
        /**
         * Get VK-group ID from settings
         *
         * @param $exportId
         * @return bool
         */
        public function getGroupId($exportId)
        {
        }
        /**
         * Return param Agressive_export
         *
         * @param $exportId
         * @return bool
         */
        public function isAgressiveExport($exportId)
        {
        }
        /**
         * Return ore create new API object
         *
         * @param $exportId
         * @return Api
         */
        public function getApi($exportId)
        {
        }
        /**
         * Return ore create new executer object
         *
         * @param $exportId
         * @return Executer
         */
        public function getExecuter($exportId)
        {
        }
        /**
         * Return access token from settings
         *
         * @param $exportId
         * @return bool
         */
        private function getAccessToken($exportId)
        {
        }
        /**
         * Return list of all possible exports type
         *
         * @return array
         */
        public static function getExportTypes()
        {
        }
        /**
         * Log events to system log & sends error to email.
         * @param int $level Log level of event.
         * @param string $type Event type.
         * @param string $itemId Item id.
         * @param string $description Event description.
         * @return bool
         */
        //	todo: need a use only one logger, tp or vk
        public function log($level, $type, $itemId, $description)
        {
        }
        /**
         * Change params and set ACTIVE flag to one export profile
         *
         * @param $exportId
         */
        public function changeActiveById($exportId)
        {
        }
        /**
         * Set ACTIVE flag to one export profile
         *
         * @param $exportId
         * @return bool|int
         */
        private function setActiveById($exportId)
        {
        }
        /**
         * Unset ACTIVE flag to one export profile
         *
         * @param $exportId
         * @return bool|int
         */
        public function unsetActiveById($exportId)
        {
        }
        /**
         * Return value of ACTIVE flag to one export profile
         *
         * @param $exportId
         * @return bool
         */
        public function isActiveById($exportId)
        {
        }
        /**
         * Create URL for link to authorize in VK Oauth server
         *
         * @param $exportId
         * @param $redirectUrl
         * @return bool|string
         */
        public function getAuthUrl($exportId, $redirectUrl)
        {
        }
        /**
         * Create link to getting access token
         *
         * @param $exportId
         * @param $redirectUrl
         * @param $code
         * @return bool|string
         */
        public function getTokenUrl($exportId, $redirectUrl, $code)
        {
        }
        /**
         * Decoding url and adding protocol
         *
         * @param $redirectUrl
         * @return string
         */
        private static function formatRedirectUrl($redirectUrl)
        {
        }
        /**
         * Return array of permissions to authorize in VK
         *
         * @param $params - array of needed permissions names
         * @return int|mixed
         */
        public static function getScope($params)
        {
        }
        /**
         * Get timelimit from settings
         * @param $exportId
         * @return mixed - timelimit or false
         */
        public function getTimelimit($exportId)
        {
        }
        /**
         * Get max item count to export
         * @param $exportId
         * @return mixed - max item count to export or false
         */
        public function getExecutionItemsLimit($exportId)
        {
        }
        /**
         * Return true if set option "Use rich log". Else return false.
         * Rich log white more information about export, need for debug unknown errors.
         *
         * @param $exportId
         * @return bool
         */
        public function getRichLog($exportId)
        {
        }
        public function getAvailableFlag($exportId)
        {
        }
        /**
         * Return array of existings profiles IDs
         *
         * @$onlyActive - if true - return only active profiles. If false - return all
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getExportProfilesList($onlyActive = true)
        {
        }
        /**
         * Error types for event log
         *
         * @return array
         */
        public static function OnEventLogGetAuditTypes()
        {
        }
    }
    /**
     * Class Map
     * Work with map - create, update, delete entity end etc
     *
     * @package Bitrix\Sale\TradingPlatform\Vk
     */
    class Map
    {
        private static function getProductEntityCode($exportId)
        {
        }
        private static function getPhotoEntityCode($exportId)
        {
        }
        private static function getAlbumEntityCode($exportId)
        {
        }
        private static function getSectionsEntityCode($exportId)
        {
        }
        private static function getGeneralCodePrefix()
        {
        }
        private static function getProductEntityId($exportId)
        {
        }
        private static function getPhotoEntityId($exportId)
        {
        }
        private static function getAlbumEntityId($exportId)
        {
        }
        private static function getSectionsEntityId($exportId)
        {
        }
        //	--------------------------------------------------------
        public static function addProductMapping($values, $exportId)
        {
        }
        public static function removeProductMapping($values, $exportId, $flagKeys = '')
        {
        }
        public static function updateProductMapping($values, $exportId, $flagKeys = '')
        {
        }
        //	--------------------------------------------------------
        public static function addPhotoMapping($values, $exportId)
        {
        }
        public static function removePhotoMapping($values, $exportId, $flagKeys = '')
        {
        }
        public static function updatePhotoMapping($values, $exportId, $flagKeys = '')
        {
        }
        //	--------------------------------------------------------
        public static function addAlbumMapping($values, $exportId)
        {
        }
        public static function removeAlbumMapping($values, $exportId, $flagKeys = '')
        {
        }
        public static function updateAlbumMapping($values, $exportId, $flagKeys = '')
        {
        }
        //	--------------------------------------------------------
        public static function addSectionsMapping($values, $exportId)
        {
        }
        public static function removeSectionsMapping($values, $exportId, $flagKeys = '')
        {
        }
        public static function updateSectionsMapping($values, $exportId, $flagKeys = '')
        {
        }
        /**
         * Return ID of map entity code. If code not exist - create new item.
         *
         * @param string $mapEntityCode Map entity code
         * @return int Map entity id.
         * @throws \Bitrix\Main\SystemException
         */
        private static function getMapEntityId($mapEntityCode)
        {
        }
        /**
         * Add item for mapping by entity ID
         *
         * @param $values
         * @param $mapEntityID
         * @return bool
         * @throws \Exception
         */
        private static function addEntityMapping($values, $mapEntityID)
        {
        }
        /**
         * Update or create new entity mapping
         *
         * @param $values
         * @param $mapEntityID
         * @param $flagKeys
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Exception
         */
        private static function updateEntityMapping($values, $mapEntityID, $flagKeys)
        {
        }
        /**
         * Remove item from mapping if exists
         *
         * @param $values
         * @param $mapEntityID
         * @param string $flagKey
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Exception
         */
        private static function removeEntityMapping($values, $mapEntityID, $flagKey = '')
        {
        }
        /**
         * Get albums, saved in mapping by export ID
         *
         * @param $exportId
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getMappedAlbums($exportId)
        {
        }
        /**
         * Get products, saved in mapping by export ID
         *
         * @param $exportId
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getMappedProducts($exportId)
        {
        }
        /**
         * Get sections, saved in mapping by export ID
         *
         * @param $exportId
         * @param null $sectionId
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getMappedSections($exportId, $sectionId = NULL)
        {
        }
        /**
         * Matched items between site and VK.
         * Set flag edit, if item was be exported and export is agressive.
         * Remove items from mapping, if item was deleted.
         *
         * @param $data
         * @param $dataFromVk
         * @param $exportId
         * @param $type
         * @param $isAgressive
         * @return array
         * @throws SystemException
         */
        public static function checkMappingMatches(array $data, array $dataFromVk, $exportId, $type, $isAgressive)
        {
        }
        /**
         * Remove mapping of ALL types and ALL exports IDs.
         * Running where platform is deleted.
         *
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Exception
         */
        public static function deleteAllMapping()
        {
        }
    }
    /**
     * Owerwrite system image resize method, because we need increase image
     *
     * Class PhotoResizer
     * @package Bitrix\Sale\TradingPlatform\Vk
     */
    class PhotoResizer
    {
        const RESIZE_NO = 0;
        const RESIZE_UP = 10;
        const RESIZE_UP_CROP = 20;
        const RESIZE_DOWN = 30;
        const RESIZE_DOWN_CROP = 40;
        /**
         * Return picture URL by picture src
         *
         * @param $src
         * @param string $domain - old param. May be empty
         * @return string
         */
        protected function buildPictureUrl($src, $domain = '')
        {
        }
        public static function sortPhotoArray($photos, $type)
        {
        }
        /**
         * Check photo sizes by type of converter
         *
         * @param $photos - array of photo IDs, ore one photo ID
         * @param $type
         * @return array - only photos with satisfy of requirements.
         */
        public static function checkPhotos($photos, $type)
        {
        }
        /**
         * Check sizes and filesize of one photo.
         * Return only check passed photos
         *
         * @param $photoId
         * @param $sizesLimits
         * @return mixed
         */
        private function checkPhoto($photoId, $sizesLimits)
        {
        }
        /**
         * Overwrite system ResizeImageGet. Need for increase images
         *
         * @param $file
         * @param $arSize
         * @param int $resizeType
         * @param bool $bInitSizes
         * @param bool $arFilters
         * @param bool $bImmediate
         * @param bool $jpgQuality
         * @return bool|mixed
         */
        public static function ResizeImageGet($file, $arSize, $resizeType = BX_RESIZE_IMAGE_PROPORTIONAL, $bInitSizes = false, $arFilters = false, $bImmediate = false, $jpgQuality = false)
        {
        }
        /**
         * Overwrite system ResizeImageFile. Need for increase images
         *
         * @param $sourceFile
         * @param $destinationFile
         * @param $arSize
         * @param int $resizeType
         * @param array $arWaterMark
         * @param bool $jpgQuality
         * @param bool $arFilters
         * @return bool
         */
        private static function ResizeImageFile($sourceFile, &$destinationFile, $arSize, $resizeType = BX_RESIZE_IMAGE_PROPORTIONAL, $arWaterMark = array(), $jpgQuality = false, $arFilters = false)
        {
        }
        /**
         * Overwrite system ScaleImage. Need for increase images
         *
         * @param $sourceImageWidth
         * @param $sourceImageHeight
         * @param $arSize
         * @param $resizeType
         * @param $bNeedCreatePicture
         * @param $arSourceSize
         * @param $arDestinationSize
         */
        private static function ScaleImage($sourceImageWidth, $sourceImageHeight, $arSize, $resizeType, &$bNeedCreatePicture, &$arSourceSize, &$arDestinationSize)
        {
        }
    }
    /**
     * Class Journal
     * Work with statistic of exports: time of start end finish of export, count of processed items
     *
     * @package Bitrix\Sale\TradingPlatform\Vk
     */
    class Journal
    {
        private $exportId;
        private $type;
        /**
         * Journal constructor.
         * @param $exportId - int, ID of export profile
         * @param $type - string, type of current journal. May be ALBUMS or PRODUCTS.
         */
        public function __construct($exportId, $type)
        {
        }
        public static function getCurrentProcess($exportId)
        {
        }
        public static function getProgressMessage($exportId, $type)
        {
        }
        public static function getProgressFinishMessage($ok = true)
        {
        }
        public static function getTooMuchTimeExportMessage()
        {
        }
        public static function getCriticalErrorsMessage($exportId, $txt)
        {
        }
        public static function saveProcessParams($exportId, $type = false, $position = false, $execCount = false)
        {
        }
        /**
         * Remove process STOP flag
         * @param $exportId
         * @return bool
         */
        public static function clearStopProcessParams($exportId)
        {
        }
        /**
         * set flag STOP in params - preserve repeated process run
         * @param $exportId
         * @return bool
         */
        public static function stopProcessParams($exportId)
        {
        }
        public static function checkStopProcessFlag($exportId)
        {
        }
        /**
         * Return journal for current export ID
         *
         * @return mixed
         * @throws \Bitrix\Main\ArgumentException
         */
        private function getJournal()
        {
        }
        /**
         * Increase number of processed items for current type of export.
         *
         * @param $count
         * @return bool
         * @throws \Exception
         */
        public function addItemsCount($count)
        {
        }
        /**
         * Init log for current export type and set starting time.
         *
         * @return bool
         * @throws \Exception
         */
        public function start()
        {
        }
        /**
         * Close log for current type by set finish time
         *
         * @return bool
         * @throws \Exception
         */
        public function end()
        {
        }
        private static function getStatistic($type, $exportId)
        {
        }
        /**
         * Get formatted string of statistic to selected type and export ID
         *
         * @param $type
         * @param $exportId
         * @return bool|string
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getStatisticText($type, $exportId)
        {
        }
        /**
         * Check if export was aborted by user or if journal still not start process
         * Return journal with modify values
         *
         * @param $type
         * @param $exportId
         * @param $journal
         * @return mixed
         * @throws \Exception
         */
        private static function getCheckedEndingJournal($type, $exportId, $journal)
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform\Vk\Feed {
    /**
     * Class for manage Feed - object, which manipulate exporter - fetching items, converted and processed them
     * @package Bitrix\Sale\TradingPlatform\Vk\Feed
     */
    class Feed
    {
        /** @var  Data\Converters\DataConverter $dataConvertor */
        protected $dataConvertor;
        /** @var  Data\Sources\DataSource $sourceDataIterator */
        protected $sourceDataIterator;
        /** @var  Data\Processors\DataProcessor $dataProcessor */
        protected $dataProcessor;
        protected $feedType;
        protected $startPosition;
        /** @var \Bitrix\Sale\TradingPlatform\Timer|null $t iimer */
        static $timer = NULL;
        /**
         * Feed constructor.
         *
         * @param $params
         * @param $startPosition string - ID of first element to export
         */
        public function __construct($params, $startPosition)
        {
        }
        /**
         * Return Timer
         * @return Timer|null
         */
        private static function getTimer()
        {
        }
        /**
         * Consistently get data from source, convert them and processing export.
         * Export process runs on the steps.
         * Export controlling by timer. When timer expired - throw exception.
         *
         * @param null $exportId
         */
        public function processData($exportId = NULL)
        {
        }
    }
    /**
     * Class Manager
     * Create FEED object for export
     *
     * @package Bitrix\Sale\TradingPlatform\Vk\Feed
     */
    class Manager
    {
        const DEFAULT_PROCESS_TYPE = 'ALL';
        const FIRST_PROCESS_TYPE = 'ALBUMS';
        const SECOND_PROCESS_TYPE = 'PRODUCTS';
        const DEFAULT_START_POSITION = '';
        const DEFAULT_EXEC_COUNT = 1;
        const MAX_EXEC_COUNT = 3;
        public static function runProcess($exportId, $processType)
        {
        }
        /**
         * Created params for feed. Return FEED object
         *
         * @param $feedType
         * @param $exportId
         * @param int $timeLimit
         * @param $startPosition - position of first element to export
         * @return Feed
         * @throws SystemException
         */
        private static function createFeed($feedType, $exportId, $timeLimit = 0, $startPosition = '')
        {
        }
        /**
         * Convert export type if type ALL (return ALBUMS type)
         * @param $type
         * @return string of type
         */
        public static function prepareType($type)
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Converters {
    abstract class DataConverter
    {
        const PAD_STRING = '_';
        const END_STRING = ' ...';
        protected $exportId;
        public abstract function convert($data);
        /**
         * VK don't understand specialchars-quotes. Change them to the yolochki
         *
         * @param $str
         * @return mixed
         */
        protected static function convertQuotes($str)
        {
        }
        private static $specialCharsLength = [
            //		commented chars has no effect on the length
            //		'"' => [
            //			'count' => 5,
            //			'regexp' => '"',
            //		],
            '&' => ['count' => 5, 'regexp' => '&'],
            '\\' => ['count' => 6, 'regexp' => '\\\\'],
            //		'\'' => [
            //			'count' => 5,
            //			'regexp' => '\\\'',
            //		],
            '>' => ['count' => 4, 'regexp' => '>'],
            '<' => ['count' => 4, 'regexp' => '<'],
            //		',' => [
            //			'count' => 5,
            //			'regexp' => ',',
            //		],
            '!' => ['count' => 5, 'regexp' => '!'],
            '$' => ['count' => 6, 'regexp' => '$'],
        ];
        protected static function matchLength($string)
        {
        }
        /**
         * Add placeholders to the string
         *
         * @param $string
         * @param $currLength
         * @param $needLength
         * @return string
         */
        protected static function extendString($string, $currLength, $needLength)
        {
        }
        protected static function mb_str_pad($string, $padLength, $padString = " ", $padType = STR_PAD_RIGHT)
        {
        }
        /**
         * Crop string by special chars length
         *
         * @param $string
         * @param $currLength
         * @param $needLength
         * @return string
         */
        protected static function reduceString($string, $currLength, $needLength)
        {
        }
    }
    class Product extends \Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Converters\DataConverter
    {
        protected $selectOfferProps;
        protected $sectionsList;
        private $result;
        const DESCRIPTION_LENGHT_MIN = 10;
        const DESCRIPTION_LENGHT_MAX = 3300;
        // it is not entirely accurate value, but in doc i can't find true info
        const NAME_LENGHT_MIN = 4;
        const NAME_LENGHT_MAX = 100;
        /**
         * Product constructor.
         * @param $exportId - int ID of export
         */
        public function __construct($exportId)
        {
        }
        /**
         * Main method for convert
         *
         * @param $data - Array of albums data from source.
         * @return array
         */
        public function convert($data)
        {
        }
        /**
         * Valid length of name
         *
         * @param $name
         * @param Vk\Logger|NULL $logger
         * @return string
         */
        private function validateName($name, \Bitrix\Sale\TradingPlatform\Vk\Logger $logger = NULL)
        {
        }
        /**
         * Valid length of description
         *
         * @param $name
         * @param Vk\Logger|NULL $logger
         * @return string
         */
        private function validateDescription($desc, \Bitrix\Sale\TradingPlatform\Vk\Logger $logger = NULL)
        {
        }
        /**
         * Create description of SKU depending of prices.
         * If all SKU prices equal main price - hide them.
         * If prices a different - add them to description
         *
         * @param $offers
         * @return string - string of SKUs description
         */
        private function createOffersDescriptionByPrices($offers)
        {
        }
        /**
         * Sorted different photos types by priority
         *
         * @return array - Array of sorted photos
         */
        private function sortPhotosArray()
        {
        }
        /**
         * Get description, prices and photos by SKUs
         *
         * @param $data
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        private function getItemDataOffersOffer($data)
        {
        }
        /**
         * Get main (not SKU) data.
         *
         * @param $data
         * @return array
         */
        private function getNotSkuItemData($data)
        {
        }
    }
    /**
     * Class Album
     * Convert album data from source.
     *
     * @package Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Converters
     */
    class Album extends \Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Converters\DataConverter
    {
        const TITLE_LENGHT_MAX = 128;
        private $result;
        /**
         * Album constructor.
         *
         * @param $exportId - int ID of export
         */
        public function __construct($exportId)
        {
        }
        /**
         * Main method for convert
         *
         * @param $data - Array of albums data from source.
         * @return array
         */
        public function convert($data)
        {
        }
        /**
         * Valid length of TITLE
         *
         * @param string $title
         * @param Vk\Logger|NULL $logger
         * @return string
         */
        private function validateTitle($title, \Bitrix\Sale\TradingPlatform\Vk\Logger $logger = NULL)
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Processors {
    abstract class DataProcessor
    {
        protected static $vk;
        protected $api;
        protected $executer;
        protected $vkGroupId;
        protected $exportId;
        public abstract function process($data, \Bitrix\Sale\TradingPlatform\Timer $timer = NULL);
        /**
         * DataProcessor constructor.
         * @param $exportId - int ID of export
         */
        public function __construct($exportId)
        {
        }
    }
    /**
     * Class ProductsDeleteAll - processing delete all products from VK
     * @package Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Processors
     */
    class ProductsDeleteAll extends \Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Processors\DataProcessor
    {
        /**
         * Main export process method. Delete from VK ALL products
         * Have not input params - get values from VK and from mapping and delete them all.
         *
         * @return bool - return true if OK or if errors it not critical. Expression if timer is over
         */
        public function process($data = NULL, \Bitrix\Sale\TradingPlatform\Timer $timer = NULL)
        {
        }
    }
    /**
     * Class AlbumsDelete - processor for delete from VK only exported products
     * @package Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Processors
     */
    class AlbumsDelete extends \Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Processors\DataProcessor
    {
        /**
         * Main export process method. Delete from VK only albums, which were adding via export
         * Have not input params - get values from VK and from mapping and compare them.
         *
         * @return bool - return true if OK or if errors it not critical. Expression if timer is over
         */
        public function process($data = NULL, \Bitrix\Sale\TradingPlatform\Timer $timer = NULL)
        {
        }
    }
    /**
     * Class AlbumAdd - Processor for adding albums to VK
     * @package Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Processors
     */
    class AlbumAdd extends \Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Processors\DataProcessor
    {
        private static $firstRunning = true;
        private static $apiHelper;
        private static $isAgressive;
        /**
         * Main export process method. Adding albums in VK
         *
         * @param $data - array of albums to export. Max 25 items
         * @param null $timer - Tradingplatform\Timer to control execution time
         * @return bool - return true if OK or if errors it not critical. Expression if timer is over
         * @throws SystemException
         * @throws TimeIsOverException
         * @throws Vk\ExecuteException
         */
        public function process($data = null, \Bitrix\Sale\TradingPlatform\Timer $timer = null)
        {
        }
    }
    /**
     * Class AlbumsDeleteAll - processor for delete all albums from VK
     * @package Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Processors
     */
    class AlbumsDeleteAll extends \Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Processors\DataProcessor
    {
        /**
         * Main export process method. Delete from VK ALL albums
         * Have not input params - get values from VK and from mapping and delete them all.
         *
         * @return bool - return true if OK or if errors it not critical. Expression if timer is over
         */
        public function process($data = NULL, \Bitrix\Sale\TradingPlatform\Timer $timer = NULL)
        {
        }
    }
    /**
     * Class ProductAdd - Processor for adding product to VK
     * @package Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Processors
     */
    class ProductAdd extends \Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Processors\DataProcessor
    {
        private static $firstRunning = true;
        private static $albumsMapped;
        private static $apiHelper;
        private static $isAgressive;
        /**
         * Main export process method. Adding products in VK
         *
         * @param $data
         * @param Timer $timer - Tradingplatform\Timer to control execution time
         * @return bool - return true if OK or if errors it not critical. Expression if timer is over
         * @throws SystemException
         * @throws TimeIsOverException
         * @throws Vk\ExecuteException
         */
        public function process($data, \Bitrix\Sale\TradingPlatform\Timer $timer = null)
        {
        }
    }
    /**
     * Class ProductsDelete - processor for delete from VK only exported products
     * @package Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Processors
     */
    class ProductsDelete extends \Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Processors\DataProcessor
    {
        /**
         * Main export process method. Delete from VK only products, which were adding via export
         * Have not input params - get values from VK and from mapping and compare them.
         * 
         * @return bool - return true if OK or if errors it not critical. Expression if timer is over
         */
        public function process($data = NULL, \Bitrix\Sale\TradingPlatform\Timer $timer = NULL)
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Sources {
    abstract class DataSource
    {
        protected $startPos = 0;
        protected $startFeed = 0;
        /**
         * Set start position for complex source iterator
         *
         * @param string $startPos - string in format iBlockNumber_RecordNumber
         */
        protected abstract function setStartPosition($startPosition);
    }
    /**
     * Class Product
     * Complex iterator for processing products from several iblocks
     *
     * @package Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Sources
     */
    class Product extends \Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Sources\DataSource implements \Iterator
    {
        protected $feeds = array();
        protected $currentFeed;
        protected $startPosition = array();
        protected $vk;
        protected $exportId;
        /**
         * Product constructor.
         * @param $exportId	- int value of export ID
         * @param $startPosition - can be null. ID of first element to process
         */
        public function __construct($exportId, $startPosition)
        {
        }
        protected function setStartPosition($startPosition)
        {
        }
        /**
         * Owerwrite ITERATOR method
         * @return mixed
         */
        public function current()
        {
        }
        /**
         * Owerwrite ITERATOR method
         * @return string
         */
        public function key()
        {
        }
        /**
         * Owerwrite ITERATOR method
         */
        public function next()
        {
        }
        /**
         * Owerwrite ITERATOR method
         */
        public function rewind()
        {
        }
        /**
         * Owerwrite ITERATOR method
         * @return mixed
         */
        public function valid()
        {
        }
    }
    /**
     * Class Section
     * Complex iterator for processing albums from several iblocks
     *
     * @package Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Sources
     */
    class Section extends \Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Sources\DataSource implements \Iterator
    {
        protected $sections;
        protected $resSections;
        protected $currentKey = 0;
        protected $currentRecord = array();
        protected $vk;
        protected $exportId;
        protected $sectionsToExport;
        protected $sectionsAliases;
        protected $startPosition = 0;
        /**
         * Section constructor.
         * @param $exportId
         * @param $startPosition
         */
        public function __construct($exportId, $startPosition)
        {
        }
        /**
         * Create object for get values. Later we well Fetch them
         *
         * @return array|bool|\CDBResult|\CIBlockResult
         */
        private function createSectionsDbObject()
        {
        }
        /**
         * More simply setStartPosition for albums
         *
         * @param string $startPosition - number of start position
         */
        protected function setStartPosition($startPosition)
        {
        }
        /**
         * Owerwrite ITERATOR method
         * @return array
         */
        public function current()
        {
        }
        /**
         * Owerwrite ITERATOR method
         * @return int
         */
        public function key()
        {
        }
        /**
         * Owerwrite ITERATOR method
         */
        public function next()
        {
        }
        /**
         * Fetch once next item from bd object
         *
         * @return null
         */
        private function nextItem()
        {
        }
        /**
         * Owerwrite ITERATOR method
         */
        public function rewind()
        {
        }
        /**
         * Owerwrite ITERATOR method
         * @return bool
         */
        public function valid()
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform\Vk\Api {
    class Executer
    {
        private $api;
        private $scriptPath;
        public function __construct($api)
        {
        }
        /**
         * Load .vks script from file
         *
         * @param $name
         * @return bool|null|string
         */
        private function getScript($name)
        {
        }
        /**
         * Main method to call vk-script from .vks files
         *
         * @param $methodName - must be string in format "execute" + name of script file
         * @param $arguments - various array of scripts arguments
         * @return mixed response from VK
         */
        public function __call($methodName, $arguments)
        {
        }
        /**
         * Replace params names to params values from in script string.
         * Return encoded script string in JSON
         *
         * @param $script
         * @param $params
         * @return mixed
         */
        private function prepareParams($script, $params)
        {
        }
        /**
         * Decode \uXXXX from JSON-converted string, because VK has lenght limit for values.
         *
         * @param $str
         * @return mixed
         */
        private function decodeMultibyteUnicode($str)
        {
        }
    }
    /**
     * Class Api
     * Work with VK API through http requsts
     * @package Bitrix\Sale\TradingPlatform\Vk\Api
     */
    class PhotoUploader
    {
        private $exportId;
        private $vk;
        private $api;
        private $logger;
        private $type;
        private $timer;
        private $vkGroupId;
        private $params = [];
        const TYPE_PRODUCT_MAIN_PHOTO = 'PRODUCT_MAIN_PHOTO';
        const TYPE_PRODUCT_PHOTOS = 'PRODUCT_PHOTOS';
        const TYPE_ALBUM_PHOTO = 'ALBUM_PHOTO';
        public function __construct($exportId, $photoType, \Bitrix\Sale\TradingPlatform\Timer $timer = null)
        {
        }
        /**
         * Save params for different upload types
         * Like a fabric, but no )
         */
        protected function initByType()
        {
        }
        /**
         * Check photo size, get upload server, upload photo and save them
         *
         * @param $data
         * @return array - array of save photos results
         * @throws SystemException
         */
        public function upload($data)
        {
        }
        /**
         * Execute http requst
         *
         * @param $uploadServer
         * @param $params
         * @return bool|string - result of http request
         * @throws TimeIsOverException
         */
        private function uploadHttp($data, $uploadServer)
        {
        }
        /**
         * Save photo after http upload
         *
         * @param $uploadResult - array of http upload result
         */
        private function savePhoto($uploadResult)
        {
        }
        /**
         * When loaded product main photo need additional params
         *
         * @param $photoId
         * @return array
         */
        private static function setUploadServerMainPhotoParams($photoId)
        {
        }
    }
    /**
     * Class Api
     * Work with VK API through http requsts
     * @package Bitrix\Sale\TradingPlatform\Vk\Api
     */
    class Api
    {
        private $accessToken = NULL;
        public static $apiUrl = 'https://api.vk.com/method/';
        public static $apiVersion = "5.52";
        private $exportId;
        private $response;
        const TOO_MANY_REQUESTS_ERROR_CODE = 6;
        /**
         * Api constructor.
         * @param $accessToken - string of accesstoken from VK
         * @param $exportId - int
         * @throws ArgumentNullException
         */
        public function __construct($accessToken, $exportId)
        {
        }
        /**
         * Send a request to single VK API method with params.
         *
         * @param string $method - Name of VK-API method (see VK manual).
         * @param array $params
         * @return mixed|null
         */
        public function run($method, $params = array())
        {
        }
        /**
         * Parse response string from VK and find errors.
         * If find errors - add them to vk-log
         *
         * @param $response
         * @param $params - array of request params
         * @return null
         */
        private function checkError($method, $params)
        {
        }
        private function checkRequestsLimit()
        {
        }
    }
    /**
     * Class ApiHelper - formatted and run requests to VK Api. Provide utility functions for help.
     * @package Bitrix\Sale\TradingPlatform\Vk\Api
     */
    class ApiHelper
    {
        private $vk;
        private $api;
        private $executer;
        private $exportId;
        private $logger;
        /**
         * ApiHelper constructor.
         * @param $exportId - int, ID of export profile
         */
        public function __construct($exportId)
        {
        }
        /**
         * Extract specified elements from array. Need to decrease of array size to post
         *
         * @param array $data - source array
         * @param array $keys - array of keys, thst needed in new array
         * @return array - array of extracted items
         */
        public static function extractItemsFromArray($data = array(), $keys = array())
        {
        }
        /**
         * Merge to arrays by reference key
         *
         * @param array $data
         * @param array $result
         * @param $referenceKey - main key in both arrays
         * @return array
         */
        public static function addResultToData($data = array(), $result = array(), $referenceKey)
        {
        }
        /**
         * Reformat array - change main (top level) key.
         *
         * @param array $data
         * @param $mainKey
         * @param string $keyRename - if isset, new main key will be rename
         * @return array
         */
        public static function changeArrayMainKey($data = array(), $mainKey, $keyRename = '')
        {
        }
        /**
         * Check photo size, get upload server, upload photo and save them
         * @deprecated use PhotoUploader class
         *
         * @param $data
         * @param $vkGroupId
         * @param $uploadType - type of photo. For other types used other params and methods
         * @param null $timer - timer for control time of upload
         * @return array - array of save photos results
         * @throws SystemException
         */
        public function uploadPhotos($data, $vkGroupId, $uploadType, \Bitrix\Sale\TradingPlatform\Timer $timer = NULL)
        {
        }
        /**
         * Formatted params and run http-upload process
         * @deprecated use PhotoUploader class
         *
         * @param $data
         * @param $uploadServer
         * @param $uploadType
         * @param null $timer
         * @return bool|string
         * @throws SystemException
         * @throws TimeIsOverException
         */
        private function uploadPhotoHttp($data, $uploadServer, $uploadType, \Bitrix\Sale\TradingPlatform\Timer $timer = NULL)
        {
        }
        /**
         * Build params for http photo upload
         *
         * @deprecated use PhotoUploader class
         * @param $photoId
         * @return array
         */
        private static function setUploadServerMainPhotoParams($photoId)
        {
        }
        /**
         * Execute http requst
         *
         * @param $uploadServer
         * @param $params
         * @return bool|string - result of http request
         * @throws TimeIsOverException
         */
        private function uploadHttp($uploadServer, $params)
        {
        }
        public function getUserGroupsSelector($selectedValue = null, $name = null, $id = null)
        {
        }
        private function getUserGroups($offset = null)
        {
        }
        /**
         * Get list of VK albums from VK API
         *
         * @param $vkGroupId
         * @param bool $flip
         * @return array - list of VK albums
         */
        public function getALbumsFromVk($vkGroupId, $flip = true)
        {
        }
        /**
         * Get list of VK products from VK API
         *
         * @param $vkGroupId
         * @return array -  list of VK products
         */
        public function getProductsFromVk($vkGroupId)
        {
        }
        /**
         * Check params for save products data.
         * Check photos, description, vk-category
         *
         * @param $data
         * @return array - prepared to save data array
         */
        public static function prepareProductsDataToVk($data)
        {
        }
        /**
         * Get list of VK product categories from VK API
         *
         * @param int $count
         * @param int $offset
         * @return array - Get list of VK product categories. Return false if error
         */
        public function getVkCategories($count = \Bitrix\Sale\TradingPlatform\Vk\Vk::MAX_VK_CATEGORIES, $offset = 0)
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform\Vk {
    class LogTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    /**
     * Class SectionsList
     * Work with iblock sections - get export settings, get list of saving sections, formatted settings to save etc
     *
     * @package Bitrix\Sale\TradingPlatform\Vk
     */
    class SectionsList
    {
        private static $sections;
        private $mappedSections;
        private $mappedAlbums;
        private $exportId;
        private $iblocksIds = array();
        private $currSectionSettings = array();
        const CACHE_DIR = '/sale/vkexport/';
        const CACHE_TTL = 86400;
        const CACHE_ID_PREFIX = "vk_sectionslist_cache";
        const CACHE_ID_SECTIONS = "iblock_sections";
        const CACHE_ID_MAPPED_SECTIONS = "mapped_sections";
        const CACHE_ID_MAPPED_SECTIONS_LIST = "mapped_sections_list";
        const VK_ICON = '<img src="/bitrix/images/sale/vk/vk_icon.png" style="height:16px; width:16px; margin-right: 1em;" />';
        const VK_ICON_EMPTY = '<span style="width:16px; margin-right: 1em; display:inline-block;"></span>';
        /**
         * SectionsList constructor.
         * @param $exportId
         */
        public function __construct($exportId)
        {
        }
        /**
         * @return string
         * Create name for cache
         */
        private function createCacheId($cacheName = null)
        {
        }
        /**
         * Create cache ID for iblock sections
         * @return string
         */
        public function createCacheIdSections($onlyMapped = true)
        {
        }
        /**
         * Create cache ID for mapped sections list
         * @return string
         */
        public function createCacheIdMappedSections()
        {
        }
        /**
         * Create cache ID for mapped sections list
         * @return string
         */
        public function createCacheIdMappedSectionsList()
        {
        }
        /**
         * Clean all caches for class. Run in moment of changed sections settings
         */
        public function clearCaches()
        {
        }
        /**
         * Return list of iblock sections. At the first run saving list in cache.
         *
         * @param bool $tree - is true - list will be converted to tree
         * @return array
         * @throws \Bitrix\Main\SystemException
         */
        public function getSections($tree = false, $onlyMapped = true)
        {
        }
        protected function getIblockIds($onlyMapped)
        {
        }
        /**
         * Collect IBLOCK for all mapped sections. Need at creation FEEDs for product export
         *
         * @return array of iblocks IDs
         */
        public function getMappedIblocks()
        {
        }
        /**
         * Find and converted all section to product export.
         * Check inhering of parameters and define which sections will be exported
         *
         * @return array - array of sections ID
         */
        public function getSectionsToProductExport()
        {
        }
        private function getListMappedSections()
        {
        }
        /**
         * Find and converted all section to albums export.
         * Check inhering of parameters and define which sections will be exported
         *
         * @return array - in field "SECTIONS" - array of sections ID. In field "ALIASES" - aliases for sections.
         */
        public function getSectionsToAlbumsExport()
        {
        }
        public function getMultiSectionsToProduct($pdoructsIds)
        {
        }
        /**
         * Prepare mapped sections to print export map
         */
        public function getSectionMapToPrint()
        {
        }
        /**
         * Get extend sections array - group sections by VK-album, add URL to VK album, add URL to section edit page,
         * add count of element
         *
         * @return array
         */
        public function getSectionsToMap()
        {
        }
        private static function sortMapElementItems($sectionsFormatted)
        {
        }
        /**
         * Create URL to VK album by VK album ID
         * @param $albumVkId
         * @return bool|string
         */
        private function createVkAlbumLink($albumVkId)
        {
        }
        /**
         * Create URL to section setting page, to trading platform settings TAB, by iblock ID and section ID
         * @param $iblockId
         * @param $sectionId
         * @return string
         */
        private function createSectionLink($iblockId, $sectionId)
        {
        }
        /**
         * Find parameter TO_ALBUM to section. Check INHERING and parent settings
         *
         * @param $sectionId
         * @return int ID of section to adding
         */
        public function getToAlbumBySection($sectionId)
        {
        }
        /**
         * Create selector for HTML. Not create <select> tag, only inner <options>
         *
         * @param null $checkedSection - ID of section. If not NULL - this option will be checked
         * @return string
         * @throws \Bitrix\Main\SystemException
         */
        public function getSectionsSelector($checkedSection = null, $onlyMapped = true)
        {
        }
        /**
         * Return vk default category from settings.
         *
         * @param $sectionId
         * @return int
         */
        public function getVkCategory($sectionId)
        {
        }
        /**
         * Get saved values for selected section and export ID and format them.
         * Check settings dependence, adjust them if needed or set default values.
         * Set visibility for controls according by settings
         *
         * @param $sectionId
         * @return array
         */
        public function prepareSectionToShow($sectionId)
        {
        }
        /**
         * Set visibility for controls according by settings. Return settings array
         *
         * @param $params
         * @param $section
         * @return mixed
         */
        public function prepareSettingsVisibility($params, $sectionId)
        {
        }
        /**
         * Prepare setting of parent settings to showing inhering in current section
         *
         * @param $settings - array of parent settings
         * @param $section - array of section values
         * @return array - preparing settins
         */
        private function prepareParentSettingToShow($settings, $section)
        {
        }
        /**
         * Default params for current section - need if have not current and parent params
         *
         * @param $sectionId
         * @return array
         */
        private function getDefaultExportParams($sectionId)
        {
        }
        /**
         * @param $settings array
         */
        public function setCurrSectionSettings($settings)
        {
        }
        /**
         * Validate settings before saving
         * Check settings dependence, adjust them if neede or set default values.
         * Return array to mappng
         *
         * @param $sectionId
         * @return array
         */
        public function prepareSectionToSave($sectionId)
        {
        }
        /**
         * Create settings for childs.
         * For childs set only INHERIT option and VK CATEGORY. Other settings will be getting in export
         *
         * @param $sectionId
         * @return array
         */
        public function prepareChildsToSave($sectionId)
        {
        }
    }
    /**
     * Class CatalogSectionTabHandler
     * Work with iblock section / catalog category edit page.
     * @package Bitrix\Sale\TradingPlatform\Vk
     */
    class CatalogSectionTabHandler extends \Bitrix\Sale\TradingPlatform\TabHandler
    {
        protected static $vkCategoriesVariations = array();
        protected static $vkRequiredVariations = array();
        protected $section = array();
        /**
         * CatalogSectionTabHandler constructor.
         */
        public function __construct()
        {
        }
        /**
         * Save POST data
         *
         * @param $arArgs
         * @return bool
         */
        public function action($arArgs)
        {
        }
        /**
         * Check POST values
         *
         * @param $arArgs
         * @return bool
         * @throws SystemException
         */
        public function check($arArgs)
        {
        }
        /**
         * Format HTML for showing. Return HTML string.
         *
         * @param $divName
         * @param $arArgs
         * @param $bVarsFromForm
         * @return string
         */
        public function showTabSection($divName, $arArgs, $bVarsFromForm)
        {
        }
        /**
         * Load values from post if page was be refreshed
         *
         * @param $settings array of settings
         * @param $exportId
         * @return mixed
         */
        private function compareSettingsWithPost($settings, $exportId)
        {
        }
        private static function setUnactiveExport($exportId)
        {
        }
    }
    /**
     * Class VkExportedData
     * Short-time cqche of exported vk-albums or products.
     * Need for accelerate, because this data requested all step and waste more time.
     *
     * @package Bitrix\Sale\TradingPlatform\Vk
     */
    class VkExportedData
    {
        const CACHE_DIR = '/sale/vkexport/';
        const CACHE_TTL = 3600;
        // one hour, for update during long export
        const CACHE_ID_PREFIX = "vkexporteddata_cache";
        private $exportId;
        private $type;
        private $cacheId;
        /**
         * VkExportedData constructor.
         * @param $exportId - int, ID of export profile
         * @param $type - string of export type
         */
        public function __construct($exportId, $type)
        {
        }
        /**
         * Get data from cache or load them from VK
         *
         * @return array|bool|mixed|null - data
         */
        public function getData()
        {
        }
        /**
         * Clean cache
         * @return void
         */
        public function removeData()
        {
        }
        /**
         * Add data to saveed array
         *
         * @param $newData - array to special format
         * @return void
         */
        public function addData($newData)
        {
        }
        /**
         * Generate name for cache
         *
         * @return string
         */
        private function getCacheId()
        {
        }
        /**
         * Get Albums or Products data from VK for current export ID
         *
         * @return array|bool    - array of data or false in data is null or errors
         */
        private function getDataFromVk()
        {
        }
        /**
         * Get VK group ID for current export ID
         *
         * @return string -    export ID
         */
        private function getVkGroupId()
        {
        }
    }
}
namespace Bitrix\Sale\TradingPlatform {
    /**
     * Class Timer
     * @package Bitrix\Sale\TradingPlatform
     */
    class Timer
    {
        protected $finishTime;
        protected $timeLimit;
        /**
         * Constructor.
         * @param int $newTimeLimit Timelimit seconds.
         */
        public function __construct($newTimeLimit = 0, $increaseTimeLimit = true)
        {
        }
        /**
         * Checks if time is over.
         * @param int $reserveTime Insurance time.
         * @return bool
         */
        public function check($reserveTime = 0)
        {
        }
    }
    /**
     * Class CatalogSectionTab
     * Work with iblock section / catalog category.
     * @package Bitrix\Sale\TradingPlatform
     */
    class CatalogSectionTab
    {
        protected static $tabHandlers = array();
        function OnInit($args)
        {
        }
        function Action($arArgs)
        {
        }
        function Check($arArgs)
        {
        }
        function GetTabs($arArgs)
        {
        }
        // arArgs = array("ID" => $ID, "IBLOCK"=>$arIBlock, "IBLOCK_TYPE"=>$arIBTYPE)
        function ShowTab($divName, $arArgs, $bVarsFromForm)
        {
        }
    }
    /**
     * Class MapEntityTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> TRADING_PLATFORM_ID int mandatory
     * <li> CODE string(255) mandatory
     * </ul>
     *
     * @package Bitrix\Sale\TradingPlatform
     **/
    class MapEntityTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function validateCode()
        {
        }
    }
    /**
     * Class Helper
     * Collections of different useful static methods.
     * @package Bitrix\Sale\TradingPlatform
     */
    class Helper
    {
        /**
         * Wraps  Product Provider Class::GetProductData from module catalog.
         * @param int $productId Product Id.
         * @param int $quantity Product quantity.
         * @param string $siteId Site id.
         * @return array.
         * @throws \Bitrix\Main\SystemException
         */
        static $arIBlockIDs;
        public static function getProductById($productId, $quantity, $siteId)
        {
        }
        /**
         * @param string $siteId Site id.
         * @return array List of person types for given site.
         */
        public static function getPersonTypesList($siteId)
        {
        }
        /**
         * @param string $siteId Site id.
         * @return array List of diliveries for given site.
         */
        public static function getDeliveryList($siteId)
        {
        }
        /**
         * @param int $personTypeId Person type Id.
         * @return array Orders properties.
         */
        public static function getOrderPropsList($personTypeId)
        {
        }
        /**
         * @return array List of properties wich required for order creation.
         */
        public static function getRequiredOrderProps()
        {
        }
        /**
         * @param string $selectName Name of input element.
         * @param string $psIdValue Selected value.
         * @param int $personTypeId Person type Id.
         * @return string html element <select>...</select>
         */
        public static function makeSelectorFromPaySystems($selectName, $psIdValue, $personTypeId)
        {
        }
        /**
         * @param string $name Name of select.
         * @param array $data to use in select,
         * @param string $selected Selected value.
         * @param bool $bShowNotUse Show or not empty value.
         * @return string Html select element <select>....</select>
         */
        public static function getSelectHtml($name, array $data, $selected = "", $bShowNotUse = true)
        {
        }
        /**
         * @param array $params
         * @return array Additional order properties.
         */
        public static function makeAdditionalOrderProps(array $params)
        {
        }
        /**
         * @return array Order's statuses & flags.
         */
        public static function getBitrixStatuses($siteId)
        {
        }
        /**
         * @param string $selectName Name of select.
         * @param int $iblockId Iblock Id.
         * @param int $bitrixCategoryId Iblock section Id.
         * @param string $value Selected value.
         * @return string Html element <select>....
         */
        public static function getBitrixCategoryPropsHtml($selectName, $iblockId, $bitrixCategoryId = 0, $value = '')
        {
        }
        /**
         * @param int $iblockId Iblock Id.
         * @param int $sectionId Section Id.
         * @return array Iblock properties list.
         */
        public static function getPropertiesList($iblockId, $sectionId = 0)
        {
        }
        public function notifyNewOrder($newOrderId, $siteId, $buyerEmail = "", $buyerFio = "")
        {
        }
        public static function onAfterUpdateShipment(\Bitrix\Main\Event $event)
        {
        }
        public static function getIblocksIds($withSku = false)
        {
        }
        public static function getDefaultFeedIntervals()
        {
        }
    }
    /**
     * Class TimeIsOverException
     * Throws, then timelimit is over.
     * For multistep actions.
     * @package Bitrix\Sale\TradingPlatform
     */
    class TimeIsOverException extends \Bitrix\Main\SystemException
    {
        protected $endPosition;
        /**
         * @param string $message Message to show.
         * @param string  $endPosition Position from witch must be start ed next step.
         * @param \Exception $previous.
         */
        public function __construct($message = "", $endPosition = "", \Exception $previous = null)
        {
        }
        /**
         * Returns position from witch next step must be started.
         * @return string
         */
        public function getEndPosition()
        {
        }
    }
}
namespace Bitrix\Sale\Internals {
    /**
     * Class DiscountCouponTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> DISCOUNT_ID int mandatory
     * <li> ACTIVE bool optional default 'Y'
     * <li> ACTIVE_FROM datetime optional
     * <li> ACTIVE_TO datetime optional
     * <li> COUPON string(32) mandatory
     * <li> TYPE int mandatory
     * <li> MAX_USE int mandatory
     * <li> USE_COUNT int mandatory
     * <li> USER_ID int mandatory
     * <li> DATE_APPLY datetime optional
     * <li> TIMESTAMP_X datetime optional
     * <li> MODIFIED_BY int optional
     * <li> DATE_CREATE datetime optional
     * <li> CREATED_BY int optional
     * <li> DESCRIPTION text optional
     * <li> CREATED_BY_USER reference to {@link \Bitrix\Main\UserTable}
     * <li> MODIFIED_BY_USER reference to {@link \Bitrix\Main\UserTable}
     * <li> DISCOUNT reference to {@link \Bitrix\Sale\Internals\DiscountTable}
     * </ul>
     *
     * @package Bitrix\Sale\Internals
     **/
    class DiscountCouponTable extends \Bitrix\Main\Entity\DataManager
    {
        const TYPE_UNKNOWN = 0x0;
        const TYPE_BASKET_ROW = 0x1;
        const TYPE_ONE_ORDER = 0x2;
        const TYPE_MULTI_ORDER = 0x4;
        const TYPE_ARCHIVED = 0x8;
        const EVENT_ON_GENERATE_COUPON = 'onGenerateCoupon';
        const EVENT_ON_AFTER_DELETE_DISCOUNT = 'onAfterDeleteDiscountCoupons';
        protected static $discountCheckList = array();
        protected static $checkDiscountCouponsUse = 0;
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for DISCOUNT_ID field.
         *
         * @return array
         */
        public static function validateDiscountId()
        {
        }
        /**
         * Returns validators for COUPON field.
         *
         * @return array
         */
        public static function validateCoupon()
        {
        }
        /**
         * Returns validators for TYPE field.
         *
         * @return array
         */
        public static function validateType()
        {
        }
        /**
         * Check discount id.
         *
         * @param int $value					Discount id.
         * @param array|int $primary			Primary key.
         * @param array $row					Current data.
         * @param Main\Entity\Field $field		Field object.
         * @return bool|string
         */
        public static function checkDiscountId($value, $primary, array $row, \Bitrix\Main\Entity\Field $field)
        {
        }
        /**
         * Check coupon type.
         *
         * @param int $value					Coupon type.
         * @param array|int $primary			Primary key.
         * @param array $row					Current data.
         * @param Main\Entity\Field $field		Field object.
         * @return bool|string
         */
        public static function checkType($value, $primary, array $row, \Bitrix\Main\Entity\Field $field)
        {
        }
        /**
         * Check coupon - unique and exist.
         *
         * @param int $value					Coupon.
         * @param array|int $primary			Primary key.
         * @param array $row					Current data.
         * @param Main\Entity\Field $field		Field object.
         * @return bool|string
         */
        public static function checkCoupon($value, $primary, array $row, \Bitrix\Main\Entity\Field $field)
        {
        }
        /**
         * Default onBeforeAdd handler. Absolutely necessary.
         *
         * @param Main\Entity\Event $event		Current data for add.
         * @return Main\Entity\EventResult
         */
        public static function onBeforeAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Default onAfterAdd handler. Absolutely necessary.
         *
         * @param Main\Entity\Event $event		Current data for add.
         * @return void
         */
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Default onBeforeUpdate handler. Absolutely necessary.
         *
         * @param Main\Entity\Event $event		Current data for update.
         * @return Main\Entity\EventResult
         */
        public static function onBeforeUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Default onUpdate handler. Absolutely necessary.
         *
         * @param Main\Entity\Event $event		Current data for update.
         * @return void
         */
        public static function onUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Default onAfterUpdate handler. Absolutely necessary.
         *
         * @param Main\Entity\Event $event		Current data for update.
         * @return void
         */
        public static function onAfterUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Default onDelete handler. Absolutely necessary.
         *
         * @param Main\Entity\Event $event		Current data for delete.
         * @return void
         */
        public static function onDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Default onAfterDelete handler. Absolutely necessary.
         *
         * @param Main\Entity\Event $event		Current data for delete.
         * @return void
         */
        public static function onAfterDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Returns coupon types list.
         *
         * @param bool $extendedMode			Get type ids or ids with title.
         * @return array
         */
        public static function getCouponTypes($extendedMode = false)
        {
        }
        /**
         * Disable checking use coupons for discount before multiuse add/update/delete.
         *
         * @return void
         */
        public static function disableCheckCouponsUse()
        {
        }
        /**
         * Enable checking use coupons for discount after multiuse add/update/delete.
         *
         * @return void
         */
        public static function enableCheckCouponsUse()
        {
        }
        /**
         * Returns current checking use coupons mode.
         *
         * @return bool
         */
        public static function isCheckedCouponsUse()
        {
        }
        /**
         * Clear discount list for update use coupons flag.
         *
         * @return void
         */
        public static function clearDiscountCheckList()
        {
        }
        /**
         * Fill discount list for update use coupons flag.
         *
         * @param array|int $discountList			Discount ids for check.
         * @return void
         */
        public static function setDiscountCheckList($discountList)
        {
        }
        /**
         * Update use coupon flag for discount list.
         *
         * @return void
         */
        public static function updateUseCoupons()
        {
        }
        /**
         * Delete all coupons for discount.
         *
         * @param int $discount			Discount id.
         * @return void
         */
        public static function deleteByDiscount($discount)
        {
        }
        /**
         * Save coupons applyed info.
         *
         * @param array $coupons				Coupons list.
         * @param int $userId					User id.
         * @param Main\Type\DateTime $currentTime	Current datetime.
         * @return array|bool
         */
        public static function saveApplied($coupons, $userId, \Bitrix\Main\Type\DateTime $currentTime)
        {
        }
        /**
         * Create coupon code.
         *
         * @param bool $check		Check new coupon or no.
         * @return string
         */
        public static function generateCoupon($check = false)
        {
        }
        /**
         * Create one and more coupons for discount.
         *
         * @param array $data				Coupon data.
         * @param int $count				Coupos count.
         * @param int $limit				Maximum number of attempts.
         * @return Main\Entity\Result
         */
        public static function addPacket(array $data, $count, $limit = 0)
        {
        }
        /**
         * Check data for create one or more coupons.
         *
         * @param array $data				Coupon data.
         * @param bool $newDiscount			New discount flag.
         * @return Main\Entity\Result
         */
        public static function checkPacket(array $data, $newDiscount = false)
        {
        }
        /**
         * Prepare coupon data. Only for admin list pages.
         *
         * @param array &$fields				Coupon data.
         * @return Main\Entity\Result
         */
        public static function prepareCouponData(&$fields)
        {
        }
        /**
         * Check valid coupon type.
         *
         * @param int $couponType			Coupon type.
         * @return bool
         */
        public static function isValidCouponType($couponType)
        {
        }
        /**
         * Fill user id fields.
         *
         * @param array &$result			Modified data for add/update discount.
         * @param array $data				Current data for add/update discount.
         * @param array $keys				List with checked keys (userId info).
         * @return void
         */
        protected static function setUserID(array &$result, array $data, array $keys)
        {
        }
        /**
         * Fill datetime fields.
         *
         * @param array &$result			Modified data for add/update discount.
         * @param array $data				Current data for add/update discount.
         * @param array $keys				List with checked keys (datetime info).
         * @return void
         */
        protected static function setTimestamp(array &$result, array $data, array $keys)
        {
        }
    }
    /**
     * Class EntityMarkerTable
     * @package Bitrix\Sale
     **/
    class EntityMarkerTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for CODE field.
         *
         * @return array
         */
        public static function validateCode()
        {
        }
        /**
         * Returns validators for MESSAGE field.
         *
         * @return array
         */
        public static function validateMessage()
        {
        }
        /**
         * Returns validators for COMMENT field.
         *
         * @return array
         */
        public static function validateComment()
        {
        }
        /**
         * Returns validators for SUCCESS field.
         *
         * @return array
         */
        public static function validateSuccess()
        {
        }
    }
    /**
     * Class ShipmentTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ORDER_ID int mandatory
     * <li> STATUS_ID string(1) mandatory
     * <li> PRICE_DELIVERY unknown mandatory
     * <li> ALLOW_DELIVERY string(1) optional
     * <li> DATE_ALLOW_DELIVERY datetime optional
     * <li> EMP_ALLOW_DELIVERY int optional
     * <li> DEDUCTED string(1) optional
     * <li> DATE_DEDUCTED datetime optional
     * <li> EMP_DEDUCTED_ID int optional
     * <li> REASON_UNDO_DEDUCTED string(255) optional
     * <li> RESERVED string(1) optional
     * <li> DELIVERY_ID int mandatory
     * <li> DELIVERY_DOC_NUM string(20) optional
     * <li> DELIVERY_DOC_DATE datetime optional
     * <li> TRACKING_NUMBER string(255) optional
     * <li> XML_ID string(255) optional
     * <li> PARAMS string mandatory
     * <li> DELIVERY_NAME string(128) mandatory
     * <li> CANCELED string(1) optional
     * <li> DATE_CANCELED datetime optional
     * <li> EMP_CANCELED_ID int optional
     * <li> REASON_CANCELED string(255) optional
     * <li> MARKED string(1) optional
     * <li> DATE_MARKED datetime optional
     * <li> EMP_MARKED_ID int optional
     * <li> REASON_MARKED string(255) optional
     * </ul>
     *
     * @package Bitrix\Sale
     **/
    class ShipmentTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns path to the file which contains definition of the class.
         *
         * @return string
         */
        public static function getFilePath()
        {
        }
        public static function getUfId()
        {
        }
        /**
         * @param $id
         * @return Main\Entity\DeleteResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        public static function deleteWithItems($id)
        {
        }
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for ALLOW_DELIVERY field.
         *
         * @return array
         */
        public static function validateAllowDelivery()
        {
        }
        /**
         * Returns validators for DEDUCTED field.
         *
         * @return array
         */
        public static function validateDeducted()
        {
        }
        /**
         * Returns validators for REASON_UNDO_DEDUCTED field.
         *
         * @return array
         */
        public static function validateReasonUndoDeducted()
        {
        }
        /**
         * Returns validators for RESERVED field.
         *
         * @return array
         */
        public static function validateReserved()
        {
        }
        /**
         * Returns validators for DELIVERY_DOC_NUM field.
         *
         * @return array
         */
        public static function validateDeliveryDocNum()
        {
        }
        /**
         * Returns validators for TRACKING_NUMBER field.
         *
         * @return array
         */
        public static function validateTrackingNumber()
        {
        }
        /**
         * Returns validators for XML_ID field.
         *
         * @return array
         */
        public static function validateXmlId()
        {
        }
        /**
         * Returns validators for DELIVERY_NAME field.
         *
         * @return array
         */
        public static function validateDeliveryName()
        {
        }
        /**
         * Returns validators for CANCELED field.
         *
         * @return array
         */
        public static function validateCanceled()
        {
        }
        /**
         * Returns validators for REASON_CANCELED field.
         *
         * @return array
         */
        public static function validateReasonCanceled()
        {
        }
        /**
         * Returns validators for MARKED field.
         *
         * @return array
         */
        public static function validateMarked()
        {
        }
        /**
         * Returns validators for REASON_MARKED field.
         *
         * @return array
         */
        public static function validateReasonMarked()
        {
        }
        /**
         * Returns validators for SYSTEM field.
         *
         * @return array
         */
        public static function validateSystem()
        {
        }
        /**
         * Returns validators for TRACKING_DESCRIPTION field.
         *
         * @return array
         */
        public static function validateTrackingDescription()
        {
        }
    }
    /**
     * Class OrderDiscountTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> MODULE_ID string(50) mandatory
     * <li> DISCOUNT_ID int mandatory
     * <li> NAME string(255) mandatory
     * <li> DISCOUNT_HASH string(32) mandatory
     * <li> CONDITIONS string optional
     * <li> UNPACK string optional
     * <li> ACTIONS string optional
     * <li> APPLICATION string optional
     * <li> USE_COUPONS bool mandatory
     * <li> SORT int mandatory
     * <li> PRIORITY int mandatory
     * <li> LAST_DISCOUNT bool mandatory
     * </ul>
     *
     * @package Bitrix\Sale\Internals
     **/
    class OrderDiscountTable extends \Bitrix\Main\Entity\DataManager
    {
        protected static $requiredFields = array('MODULE_ID', 'DISCOUNT_ID', 'NAME', 'CONDITIONS', 'UNPACK', 'ACTIONS', 'APPLICATION', 'USE_COUPONS', 'SORT', 'PRIORITY', 'LAST_DISCOUNT', 'ACTIONS_DESCR');
        protected static $replaceFields = array('DISCOUNT_ID' => 'ID', 'CONDITIONS' => 'CONDITIONS_LIST', 'ACTIONS' => 'ACTIONS_LIST', 'MODULE_ID' => 'MODULE');
        protected static $revertFields = array('CONDITIONS' => 'CONDITIONS_LIST', 'ACTIONS' => 'ACTIONS_LIST');
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for MODULE_ID field.
         *
         * @return array
         */
        public static function validateModuleId()
        {
        }
        /**
         * Returns validators for NAME field.
         *
         * @return array
         */
        public static function validateName()
        {
        }
        /**
         * Returns validators for DISCOUNT_HASH field.
         *
         * @return array
         */
        public static function validateDiscountHash()
        {
        }
        /**
         * Return discount id by hash.
         *
         * @param string $hash				Discount hash.
         * @return int|bool
         */
        public static function getDiscountByHash($hash)
        {
        }
        /**
         * Calculate discount hash.
         *
         * @param array $discount			Discount data.
         * @return bool|string
         */
        public static function calculateHash($discount)
        {
        }
        /**
         * Calculate hash for fields CONDITIONS and ACTIONS.
         *
         * @param array $discount			Discount data.
         * @return bool|string
         */
        public static function calculateRuleHash($discount)
        {
        }
        /**
         * Prepare discount data for save.
         *
         * @param array $discount			Discount data.
         * @return array|bool
         */
        public static function prepareDiscountData($discount)
        {
        }
        /**
         * Return fields list, need for prepareDiscountData.
         *
         * @param array $discount			Discount data.
         * @return array|bool
         */
        public static function getEmptyFields($discount)
        {
        }
        /**
         * Return discount modules list.
         * @deprecated
         *
         * @param array $discount			Discount data.
         * @return array
         */
        public static function getDiscountModules($discount)
        {
        }
        /**
         * Remove discount list.
         *
         * @param array|int $discount			Order discount list.
         * @return void
         */
        public static function clearList($discount)
        {
        }
    }
    /**
     * Class OrderCouponsTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ORDER_ID int mandatory
     * <li> BASKET_ID int mandatory
     * <li> ORDER_DISCOUNT_ID int mandatory
     * <li> COUPON string(32) mandatory
     * <li> TYPE int mandatory
     * </ul>
     *
     * @package Bitrix\Sale\Internals
     **/
    class OrderCouponsTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for COUPON field.
         *
         * @return array
         */
        public static function validateCoupon()
        {
        }
        /**
         * Returns validators for TYPE field.
         *
         * @return array
         */
        public static function validateType()
        {
        }
        /**
         * Check coupon type.
         *
         * @param int $value					Coupon type.
         * @param array|int $primary			Primary key.
         * @param array $row					Current data.
         * @param Main\Entity\Field $field		Field object.
         * @return bool|string
         */
        public static function checkType($value, $primary, array $row, \Bitrix\Main\Entity\Field $field)
        {
        }
        /**
         * Remove order coupons.
         *
         * @param int $order			Order id.
         * @return void
         */
        public static function clearByOrder($order)
        {
        }
        /**
         * Remove coupon list.
         *
         * @param array|int $coupon			Order coupon list.
         * @return void
         */
        public static function clearList($coupon)
        {
        }
        /**
         * Save order in order coupons.
         *
         * @param array $coupons			Coupons id list.
         * @param int $order				Order id.
         * @return void
         */
        public static function applyOrder($coupons, $order)
        {
        }
    }
    /**
     * Class OrderModulesTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ORDER_DISCOUNT_ID int mandatory
     * <li> MODULE_ID string(50) mandatory
     * </ul>
     *
     * @package Bitrix\Sale\Internals
     **/
    class OrderModulesTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for MODULE_ID field.
         *
         * @return array
         */
        public static function validateModuleId()
        {
        }
        /**
         * Save order discount modules.
         *
         * @param int $discountId			Order discount id.
         * @param array $moduleList			Module list.
         * @return bool
         */
        public static function saveOrderDiscountModules($discountId, $moduleList)
        {
        }
        /**
         * Remove module discount list.
         *
         * @param array|int $discount			Discount list.
         * @return void
         */
        public static function clearByDiscount($discount)
        {
        }
    }
    /**
     * Class OrderDiscountDataTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ORDER_ID int mandatory
     * <li> ENTITY_TYPE int mandatory
     * <li> ENTITY_ID int mandatory
     * <li> ENTITY_VALUE string(255) optional
     * <li> ENTITY_DATA string mandatory
     * </ul>
     *
     * @package Bitrix\Sale\Internals
     **/
    class OrderDiscountDataTable extends \Bitrix\Main\Entity\DataManager
    {
        const ENTITY_TYPE_BASKET_ITEM = 0x1;
        /** @deprecated */
        const ENTITY_TYPE_BASKET = self::ENTITY_TYPE_BASKET_ITEM;
        const ENTITY_TYPE_DELIVERY = 0x2;
        const ENTITY_TYPE_SHIPMENT = 0x4;
        const ENTITY_TYPE_DISCOUNT = 0x8;
        const ENTITY_TYPE_ORDER = 0x10;
        const ENTITY_TYPE_ROUND = 0x20;
        const ENTITY_TYPE_DISCOUNT_STORED_DATA = 0x40;
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for ENTITY_VALUE field.
         *
         * @return array
         */
        public static function validateEntityValue()
        {
        }
        /**
         * Upsert basket item data.
         *
         * @param int $order				Order id.
         * @param int $basket				Basket id.
         * @param array $data				Data list.
         * @param bool $clear				Clear old values or update.
         * @return bool
         */
        public static function saveBasketItemData($order, $basket, $data, $clear = false)
        {
        }
        /**
         * Clear data for basket item.
         *
         * @param int $basket			Basket id.
         * @return bool
         */
        public static function clearByBasketItem($basket)
        {
        }
        /**
         * Delete data by order.
         *
         * @param int $order		Order id.
         * @return bool
         */
        public static function clearByOrder($order)
        {
        }
        /**
         * Clear data by discount list.
         *
         * @param array|int $discountList			Discount ids list.
         * @return bool
         */
        public static function clearByDiscount($discountList)
        {
        }
    }
    /**
     * Class OrderRulesTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ORDER_DISCOUNT_ID int mandatory
     * <li> ORDER_ID int mandatory
     * <li> ENTITY_TYPE int mandatory
     * <li> ENTITY_ID int mandatory
     * <li> ENTITY_VALUE string(255) optional
     * <li> COUPON_ID int mandatory
     * <li> APPLY bool mandatory
     * <li> ACTION_BLOCK_LIST text optional
     * <li> APPLY_BLOCK_COUNTER int mandatory default -1
     * </ul>
     *
     * @package Bitrix\Sale\Internals
     **/
    class OrderRulesTable extends \Bitrix\Main\Entity\DataManager
    {
        const ENTITY_TYPE_BASKET_ITEM = 0x1;
        /** @deprecated */
        const ENTITY_TYPE_BASKET = self::ENTITY_TYPE_BASKET_ITEM;
        const ENTITY_TYPE_DELIVERY = 0x2;
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for MODULE_ID field.
         *
         * @return array
         */
        public static function validateModuleId()
        {
        }
        /**
         * Returns validators for ENTITY_VALUE field.
         *
         * @return array
         */
        public static function validateEntityValue()
        {
        }
        /**
         * Clear apply list by basket item.
         *
         * @param int $basket			Basket id.
         * @return void
         */
        public static function clearByBasketItem($basket)
        {
        }
        /**
         * Clear sale discount rules.
         *
         * @param array $basketList				Basket id.
         * @return void
         */
        public static function clearBasketSaleDiscount($basketList)
        {
        }
        /**
         * Clear rules by order.
         *
         * @param int $order				Order id.
         * @return void
         */
        public static function clearByOrder($order)
        {
        }
        /**
         * Check use discount list for other basket items. Return list of unused order discount id.
         *
         * @param array &$orderDiscountList				Order discount list.
         * @param array &$ruleList						Rule id list.
         * @return void
         */
        protected static function checkUseOrderDiscounts(&$orderDiscountList, &$ruleList)
        {
        }
        /**
         * Check use coupon discount list for other basket items. Return list of unused order discount.
         *
         * @param array &$orderCouponList			Order coupon id list.
         * @param array &$ruleList					Rule id list.
         * @return void
         */
        protected static function checkUseOrderCoupons(&$orderCouponList, &$ruleList)
        {
        }
        /**
         * Clear rule list.
         *
         * @param array $filter				Filter for clear rules.
         * @return void
         */
        protected static function clear($filter)
        {
        }
    }
    /**
     * Class OrderRulesDescrTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> MODULE_ID string(50) mandatory
     * <li> ORDER_DISCOUNT_ID int mandatory
     * <li> ORDER_ID int mandatory
     * <li> RULE_ID int mandatory
     * <li> DESCR string mandatory
     * </ul>
     *
     * @package Bitrix\Sale\Internals
     **/
    class OrderRulesDescrTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for MODULE_ID field.
         *
         * @return array
         */
        public static function validateModuleId()
        {
        }
    }
    class OrderPropsTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        // value
        public static function getValueValidators()
        {
        }
        public static function validateValue($value, $primary, array $row, $field)
        {
        }
        public static function getValueSaveModifiers()
        {
        }
        public static function modifyValueForSave($value)
        {
        }
        public static function getValueFetchModifiers()
        {
        }
        public static function modifyValueForFetch($value, $query, $property, $alias)
        {
        }
        // filtered
        public static function getFilteredSaveModifiers()
        {
        }
        public static function modifyFilteredForSave($value, array $data)
        {
        }
        // settings
        public static function getSettingsValidators()
        {
        }
        public static function validateSettings($value)
        {
        }
        public static function getSettingsSaveModifiers()
        {
        }
        public static function modifySettingsForSave($value)
        {
        }
        public static function getSettingsFetchModifiers()
        {
        }
        public static function modifySettingsForFetch($value)
        {
        }
        // required
        public static function getRequiredSaveModifiers()
        {
        }
        public static function modifyRequiredForSave($value, array $property)
        {
        }
        // validators
        public static function getNameValidators()
        {
        }
        public static function getTypeValidators()
        {
        }
        public static function getDescriptionValidators()
        {
        }
        public static function getCodeValidators()
        {
        }
        public static function generateXmlId()
        {
        }
    }
    class FuserTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Return user id for fuser id from database
         *
         * @param int $id			Fuser id.
         * @return bool|int
         * @throws Main\ArgumentException
         */
        public static function getUserById($id)
        {
        }
    }
    /**
     * Class DiscountEntitiesTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> DISCOUNT_ID int mandatory
     * <li> MODULE_ID string(50) mandatory
     * <li> ENTITY string(255) mandatory
     * <li> FIELD_ENTITY string(255) mandatory
     * <li> FIELD_TABLE string(255) mandatory
     * </ul>
     *
     * @package Bitrix\Sale\Internals
     **/
    class DiscountEntitiesTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for MODULE_ID field.
         *
         * @return array
         */
        public static function validateModuleId()
        {
        }
        /**
         * Returns validators for ENTITY field.
         *
         * @return array
         */
        public static function validateEntity()
        {
        }
        /**
         * Returns validators for FIELD_ENTITY field.
         *
         * @return array
         */
        public static function validateFieldEntity()
        {
        }
        /**
         * Returns validators for FIELD_TABLE field.
         *
         * @return array
         */
        public static function validateFieldTable()
        {
        }
        /**
         * Delete entity list by discount.
         *
         * @param int $discount			Discount id.
         * @return void
         */
        public static function deleteByDiscount($discount)
        {
        }
        /**
         * Update entity list by discount.
         *
         * @param int $discount				Discount id.
         * @param array $entityList			Discount entity list.
         * @param bool $clear				Clear old values.
         * @return bool
         */
        public static function updateByDiscount($discount, $entityList, $clear)
        {
        }
        /**
         * Return entity by discount list.
         *
         * @param array $discountList			Discount id list.
         * @param array $filter				Additional filter.
         * @param bool $groupModule			Group by modules.
         * @return array
         */
        public static function getByDiscount($discountList, $filter = array(), $groupModule = true)
        {
        }
    }
    class CompanyServiceTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    class BusinessValuePersonDomainTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    final class CompanyLocationTable extends \Bitrix\Sale\Location\Connector
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public function getLinkField()
        {
        }
        public static function getLocationLinkField()
        {
        }
        public function getTargetEntityName()
        {
        }
        public static function getMap()
        {
        }
    }
    class StatusLangTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function deleteByStatus($statusId)
        {
        }
    }
    class Fields implements \ArrayAccess, \Iterator, \Countable
    {
        /** @var  array */
        protected $values = array();
        /** @var array */
        protected $changedValues = array();
        /** @var  array */
        private $originalValues = array();
        /** @var  array */
        private $customFields = array();
        /** @var bool  */
        protected $isClone = false;
        public function __construct(array $values = null)
        {
        }
        /**
         * @param $name
         * @return bool
         */
        public function isChanged($name)
        {
        }
        /**
         * Returns any variable by its name. Null if variable is not set.
         *
         * @param string $name
         * @return string | null
         */
        public function get($name)
        {
        }
        /**
         * @param string $field
         */
        public function markCustom(string $field)
        {
        }
        /**
         * @param string $field
         * @return bool
         */
        public function isMarkedCustom(string $field) : bool
        {
        }
        /**
         * @param string $field
         */
        public function unmarkCustom(string $field)
        {
        }
        /**
         * @param string $name
         * @param mixed $value
         * @return bool
         */
        public function set($name, $value)
        {
        }
        /**
         * @internal
         *
         * @param string $name
         * @param mixed $value
         * @return bool
         */
        public function init($name, $value)
        {
        }
        public function clear()
        {
        }
        public function clearChanged()
        {
        }
        /**
         * @return array
         */
        public function getValues()
        {
        }
        /**
         * @ine
         * @return array
         */
        public function getOriginalValues()
        {
        }
        /**
         * @param array $values
         */
        public function setValues(array $values)
        {
        }
        /**
         * @param array $values
         */
        public function resetValues(array $values)
        {
        }
        /**
         * @param $name
         * @param $value
         * @return bool
         */
        protected function markChanged($name, $value)
        {
        }
        /**
         * @return array
         */
        public function getChangedKeys()
        {
        }
        /**
         * @return array
         */
        public function getChangedValues()
        {
        }
        /**
         * Return the current element
         */
        public function current()
        {
        }
        /**
         * Move forward to next element
         */
        public function next()
        {
        }
        /**
         * Return the key of the current element
         */
        public function key()
        {
        }
        /**
         * Checks if current position is valid
         */
        public function valid()
        {
        }
        /**
         * Rewind the Iterator to the first element
         */
        public function rewind()
        {
        }
        /**
         * Whether a offset exists
         *
         * @param mixed $offset
         *
         * @return bool
         */
        public function offsetExists($offset)
        {
        }
        /**
         * Offset to retrieve
         *
         * @param mixed $offset
         *
         * @return null|string
         */
        public function offsetGet($offset)
        {
        }
        /**
         * Offset to set
         *
         * @param mixed $offset
         * @param mixed $value
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * Offset to unset
         *
         * @param mixed $offset
         */
        public function offsetUnset($offset)
        {
        }
        /**
         * Count elements of an object
         */
        public function count()
        {
        }
        /**
         * @internal
         * @param \SplObjectStorage $cloneEntity
         *
         * @return Fields
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * @return bool
         */
        public function isClone()
        {
        }
    }
    /**
     * Class CustomFieldsController
     * @package Bitrix\Sale\Internals
     */
    final class CustomFieldsController
    {
        private static $instance = null;
        /**
         * CustomFieldsController constructor.
         */
        private function __construct()
        {
        }
        /**
         * @return CustomFieldsController
         */
        public static function getInstance() : \Bitrix\Sale\Internals\CustomFieldsController
        {
        }
        /**
         * @param Entity $entity
         * @return Entity
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function save(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param Entity $entity
         * @return Entity
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function initialize(\Bitrix\Sale\Internals\Entity $entity) : \Bitrix\Sale\Internals\Entity
        {
        }
        /**
         * @param EntityCollection $collection
         * @return EntityCollection
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function initializeCollection(\Bitrix\Sale\Internals\EntityCollection $collection) : \Bitrix\Sale\Internals\EntityCollection
        {
        }
        /**
         * @param EntityCollection $collection
         * @return array
         * @throws Main\NotImplementedException
         */
        private function buildFilter(\Bitrix\Sale\Internals\EntityCollection $collection)
        {
        }
    }
    /**
     * Class TransferProvider
     */
    abstract class TransferProviderBase
    {
        protected $providerClass = null;
        protected $context = null;
        /**
         * TransferProvider constructor.
         */
        protected function __construct()
        {
        }
        /**
         * @return null|mixed
         */
        protected function getProviderClass()
        {
        }
        /**
         * @return null|mixed
         */
        protected function getProviderName()
        {
        }
        /**
         * @return null|array
         */
        protected function getContext()
        {
        }
        /**
         * @param $providerClass
         * @param array $context
         *
         * @return static
         * @throws Main\ArgumentNullException
         */
        public static function create($providerClass, array $context)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public abstract function getProductData(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException|Main\SystemException
         */
        public abstract function tryShip(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException|Main\SystemException
         */
        public abstract function isNeedShip(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public abstract function ship(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public abstract function reserve(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\SystemException
         */
        public abstract function deliver(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\SystemException
         */
        public abstract function viewProduct(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\SystemException
         */
        public abstract function getProductListStores(array $products);
        /**
         * @param PoolQuantity $pool
         * @param array $products
         * @param array $productTryShipList
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public abstract function setItemsResultAfterTryShip(\Bitrix\Sale\Internals\PoolQuantity $pool, array $products, array $productTryShipList);
        /**
         * @param array $products
         * @param Sale\Result $resultAfterShip
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function setItemsResultAfterShip(array $products, \Bitrix\Sale\Result $resultAfterShip)
        {
        }
        /**
         * @param array $products
         * @param Sale\Result $reserveResult
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function setItemsResultAfterReserve(array $products, \Bitrix\Sale\Result $reserveResult)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public abstract function getAvailableQuantity(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public abstract function getAvailableQuantityAndPrice(array $products);
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public abstract function getBundleItems(array $products);
        /**
         * @return Sale\Result
         */
        public abstract function getStoresCount();
    }
    /**
     * Class ProviderCreator
     * @package Bitrix\Sale\Internals
     */
    class ProviderCreator
    {
        private $context = array();
        private $pool = array();
        /**
         * @param array $context
         *
         * @return static
         */
        public static function create(array $context)
        {
        }
        /**
         * @param Sale\BasketItemBase $basketItem
         */
        public function addBasketItem(\Bitrix\Sale\BasketItemBase $basketItem)
        {
        }
        /**
         * @param Sale\ShipmentItem $shipmentItem
         */
        public function addShipmentItem(\Bitrix\Sale\ShipmentItem $shipmentItem)
        {
        }
        /**
         * @param array $shipmentProductData
         */
        public function addShipmentProductData(array $shipmentProductData)
        {
        }
        /**
         * @param array $productData
         *
         * @throws Main\ArgumentNullException
         */
        public function addProductData(array $productData)
        {
        }
        /**
         * @param Sale\BasketItem $basketItem
         * @param array $barcodeParams
         */
        public function addBasketItemBarcodeData(\Bitrix\Sale\BasketItem $basketItem, array $barcodeParams)
        {
        }
        /**
         * @param Sale\ShipmentItem $shipmentItem
         * @param array $needShipList
         *
         * @return array
         * @throws Main\ObjectNotFoundException
         */
        public function createItemForShip(\Bitrix\Sale\ShipmentItem $shipmentItem, array $needShipList = [])
        {
        }
        /**
         * @param Sale\ShipmentItem $shipmentItem
         *
         * @return array
         * @throws Main\ObjectNotFoundException
         */
        public function createItemForReserve(\Bitrix\Sale\ShipmentItem $shipmentItem)
        {
        }
        /**
         * @param Sale\ShipmentItem $shipmentItem
         *
         * @return array
         * @throws Main\ObjectNotFoundException
         */
        public function createItemForUnreserve(\Bitrix\Sale\ShipmentItem $shipmentItem)
        {
        }
        /**
         * @param Sale\ShipmentItem $shipmentItem
         * @param bool $reserve
         *
         * @return array
         * @throws Main\ObjectNotFoundException
         */
        private function createMapForReserve(\Bitrix\Sale\ShipmentItem $shipmentItem, $reserve = true)
        {
        }
        /**
         * @return Sale\Result
         */
        public function getProductData()
        {
        }
        /**
         * @return Sale\Result
         */
        public function getAvailableQuantity()
        {
        }
        /**
         * @return Sale\Result
         */
        public function getAvailableQuantityAndPrice()
        {
        }
        /**
         * @param PoolQuantity $pool
         * @param array $productTryShipList
         *
         * @return Sale\Result
         */
        public function setItemsResultAfterTryShip(\Bitrix\Sale\Internals\PoolQuantity $pool, array $productTryShipList)
        {
        }
        /**
         * @param Sale\Result $resultAfterReserve
         *
         * @return Sale\Result
         */
        public function setItemsResultAfterReserve(\Bitrix\Sale\Result $resultAfterReserve)
        {
        }
        /**
         * @param Sale\Result $resultAfterShip
         *
         * @return Sale\Result
         */
        public function setItemsResultAfterShip(\Bitrix\Sale\Result $resultAfterShip)
        {
        }
        /**
         * @param Sale\Result $resultAfterDeliver
         *
         * @return Sale\Result
         */
        public function createItemsResultAfterDeliver(\Bitrix\Sale\Result $resultAfterDeliver)
        {
        }
        /**
         * @return Sale\Result
         */
        public function tryShip()
        {
        }
        /**
         * @return Sale\Result
         */
        public function isNeedShip()
        {
        }
        /**
         * @return Sale\Result
         */
        public function checkBarcode()
        {
        }
        /**
         * @return Sale\Result
         */
        public function reserve()
        {
        }
        /**
         * @return Sale\Result
         */
        public function ship()
        {
        }
        /**
         * @return Sale\Result
         */
        public function getBundleItems()
        {
        }
        /**
         * @return Sale\Result
         */
        public function deliver()
        {
        }
        /**
         * @return Sale\Result
         */
        public function viewProduct()
        {
        }
        /**
         * @return Sale\Result
         */
        public function getProductStores()
        {
        }
        /**
         * @return Sale\Result
         */
        public function recurring()
        {
        }
        /**
         * @param Sale\Result $resultAfterDeliver
         *
         * @return Sale\Result
         */
        public function createItemsResultAfterRecurring(\Bitrix\Sale\Result $resultAfterDeliver)
        {
        }
        /**
         * @param $method
         * @param $outputName
         * @param null $methodParameters
         *
         * @return Sale\Result
         * @throws Main\ArgumentOutOfRangeException
         */
        private function callBuilderMethod($method, $outputName, $methodParameters = null)
        {
        }
        /**
         * @param $providerName
         *
         * @return ProviderBuilderBase
         */
        private function createBuilder($providerName)
        {
        }
        /**
         * @param string $providerName
         * @param ProviderBuilderBase $builder
         */
        private function addBuilder($providerName, \Bitrix\Sale\Internals\ProviderBuilderBase $builder)
        {
        }
        /**
         * @param $providerName
         *
         * @return ProviderBuilderBase|bool
         */
        private function getBuilder($providerName)
        {
        }
        /**
         * @param $providerName
         *
         * @return bool
         */
        private function isExistsProvider($providerName)
        {
        }
        /**
         * @return array
         */
        private function getContext()
        {
        }
        /**
         * @param $providerName
         *
         * @return string
         */
        private function clearProviderName($providerName)
        {
        }
    }
    class UserPropsTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function getNameValidators()
        {
        }
        public static function getXmlValidators()
        {
        }
        public static function get1CValidators()
        {
        }
    }
    class StoreProductTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    class CompanyResponsibleGroupTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function deleteByCompanyId($id)
        {
        }
        public static function getCompanyGroups($id)
        {
        }
    }
    /**
     * Class CustomFieldsTable
     * @package Bitrix\Sale\Internals
     */
    class CustomFieldsTable extends \Bitrix\Main\Entity\DataManager
    {
        const ENTITY_TYPE_SHIPMENT = 'SHIPMENT';
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    class BusinessValueCode1CTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    /**
     * Class DiscountTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> XML_ID string(255) optional
     * <li> LID string(2) mandatory
     * <li> NAME string(255) optional
     * <li> PRICE_FROM float optional
     * <li> PRICE_TO float optional
     * <li> CURRENCY string(3) optional
     * <li> DISCOUNT_VALUE float mandatory
     * <li> DISCOUNT_TYPE string(1) mandatory default 'P'
     * <li> ACTIVE bool optional default 'Y'
     * <li> SORT int optional default 100
     * <li> ACTIVE_FROM datetime optional
     * <li> ACTIVE_TO datetime optional
     * <li> TIMESTAMP_X datetime optional
     * <li> MODIFIED_BY int optional
     * <li> DATE_CREATE datetime optional
     * <li> CREATED_BY int optional
     * <li> PRIORITY int optional default 1
     * <li> LAST_DISCOUNT bool optional default 'Y'
     * <li> VERSION int optional default 3
     * <li> CONDITIONS text optional
     * <li> CONDITIONS_LIST text optional
     * <li> UNPACK text optional
     * <li> ACTIONS text optional
     * <li> ACTIONS_LIST text optional
     * <li> APPLICATION text optional
     * <li> PREDICTION_TEXT text optional
     * <li> PREDICTIONS text optional
     * <li> PREDICTIONS_APP text optional
     * <li> USE_COUPONS bool optional default 'N'
     * <li> USE_INDEX bool optional default 'N'
     * <li> PRESET_ID string optional
     * <li> EXECUTE_MODULE string(50) mandatory default 'all'
     * <li> EXECUTE_MODE int default 0
     * <li> CREATED_BY_USER reference to {@link \Bitrix\Main\UserTable}
     * <li> MODIFIED_BY_USER reference to {@link \Bitrix\Main\UserTable}
     * </ul>
     *
     * @package Bitrix\Sale\Internals
     **/
    class DiscountTable extends \Bitrix\Main\Entity\DataManager
    {
        const VERSION_OLD = 0x1;
        const VERSION_NEW = 0x2;
        const VERSION_15 = 0x3;
        const EXECUTE_MODE_GENERAL = 0;
        const EXECUTE_MODE_SEPARATELY = 2;
        protected static $deleteCoupons = false;
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for XML_ID field.
         *
         * @return array
         */
        public static function validateXmlId()
        {
        }
        /**
         * Returns validators for LID field.
         *
         * @return array
         */
        public static function validateLid()
        {
        }
        /**
         * Returns validators for NAME field.
         *
         * @return array
         */
        public static function validateName()
        {
        }
        /**
         * Returns validators for CURRENCY field.
         *
         * @return array
         */
        public static function validateCurrency()
        {
        }
        /**
         * Returns validators for DISCOUNT_TYPE field.
         *
         * @return array
         */
        public static function validateDiscountType()
        {
        }
        /**
         * Returns validators for EXECUTE_MODULE field.
         *
         * @return array
         */
        public static function validateExecuteModule()
        {
        }
        /**
         * Returns validators for PRESET_ID field.
         *
         * @return array
         */
        public static function validatePresetId()
        {
        }
        /**
         * Default onBeforeAdd handler. Absolutely necessary.
         *
         * @param Main\Entity\Event $event		Event object.
         * @return Main\Entity\EventResult
         */
        public static function onBeforeAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Default onAfterAdd handler. Absolutely necessary.
         *
         * @param Main\Entity\Event $event		Event object.
         * @return void
         */
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Resolves execute mode of discount. Yes, we are getting whole discount by id. But id is necessary to know and
         * we can do analyze only whole discount.
         * @param $discountId
         *
         * @return int
         */
        protected static function resolveExecuteModeByDiscountId($discountId)
        {
        }
        /**
         * Updates discount configuration. For example the method sets possibility of separately discount calculation.
         *
         * @param array $fields Fields.
         * @param array $specificFields Specific fields which based on fields and calculated.
         * @return void
         */
        protected static function updateConfigurationIfNeeded(array $fields, array $specificFields)
        {
        }
        /**
         * Updates fields without ORM logic.
         * @param $id
         * @param array $fields
         */
        protected static function updateSpecificFields($id, array $fields)
        {
        }
        /**
         * Default onBeforeUpdate handler. Absolutely necessary.
         *
         * @param Main\Entity\Event $event		Event object.
         * @return Main\Entity\EventResult
         */
        public static function onBeforeUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Default onAfterUpdate handler. Absolutely necessary.
         *
         * @param Main\Entity\Event $event		Event object.
         * @return void
         */
        public static function onAfterUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Default onDelete handler. Absolutely necessary.
         *
         * @param Main\Entity\Event $event		Event object.
         * @return void
         */
        public static function onDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Default onAfterDelete handler. Absolutely necessary.
         *
         * @param Main\Entity\Event $event		Event object.
         * @return void
         */
        public static function onAfterDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Set exist coupons flag for discount list.
         *
         * @param array $discountList			Discount ids for update.
         * @param string $use				Value for update use coupons.
         * @return void
         */
        public static function setUseCoupons($discountList, $use)
        {
        }
        /**
         * Set exist coupons flag for all discounts.
         *
         * @param string $use				Value for update use coupons for all discount.
         * @return void
         */
        public static function setAllUseCoupons($use)
        {
        }
        /**
         * Fill user id fields.
         *
         * @param array &$result			Modified data for add/update discount.
         * @param array $data				Current data for add/update discount.
         * @param array $keys				List with checked keys (userId info).
         * @return void
         */
        protected static function setUserID(&$result, $data, $keys)
        {
        }
        protected static function setShortDescription(&$result, array $data)
        {
        }
        /**
         * Fill datetime fields.
         *
         * @param array &$result			Modified data for add/update discount.
         * @param array $data				Current data for add/update discount.
         * @param array $keys				List with checked keys (datetime info).
         * @return void
         */
        protected static function setTimestamp(&$result, $data, $keys)
        {
        }
        /**
         * Remove values from old fields conditions and actions (for compatibility with old api).
         *
         * @param array &$result			Modified data for add/update discount.
         * @param array $data				Current data for add/update discount.
         * @return void
         */
        protected static function copyOldFields(&$result, $data)
        {
        }
        /**
         * Temporary drop iblock cache method.
         *
         * @return void
         * @throws Main\LoaderException
         */
        private static function dropIblockCache()
        {
        }
    }
    class ProductTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    class OrderTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        public static function getUfId()
        {
        }
        protected static function replaceDateTime()
        {
        }
    }
    /**
     * Class PersonTypeSiteTable
     *
     * Fields:
     * <ul>
     * <li> PERSON_TYPE_ID int mandatory
     * <li> SITE_ID string(2) mandatory
     * </ul>
     *
     * @package Bitrix\Sale
     **/
    class PersonTypeSiteTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
    class PaySystemActionTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        /**
         * Deletes row in entity table by primary key
         *
         * @param mixed $primary
         *
         * @return DeleteResult
         *
         * @throws \Exception
         */
        public static function delete($primary)
        {
        }
    }
    class PaySystemInner
    {
        const OPERATION_DEBIT = 0;
        //from account
        const OPERATION_CREDIT = 1;
        //to account
        const OPERATION_RETURN = 2;
        //to account (return)
        const ACTION_FILE_TEXT = 'INNER_BUDGET';
        const CACHE_ID = "BITRIX_SALE_INNER_BUDGET_ID";
        const TTL = 31536000;
        /**
         * @param bool $useCache
         * @return int
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getId($useCache = true)
        {
        }
        /**
         * @param Order $order
         * @param Payment $payment
         * @param $operation
         * @return Result
         * @throws \Exception
         */
        public static function createOperation(\Bitrix\Sale\Order &$order, \Bitrix\Sale\Payment &$payment, $operation)
        {
        }
        /**
         * @return int
         */
        public static function add()
        {
        }
    }
    class BasketArchiveTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Adds row to entity table
         *
         * @param array $data An array with fields like
         * 	array(
         * 		"fields" => array(
         * 			"FIELD1" => "value1",
         * 			"FIELD2" => "value2",
         * 		),
         * 		"auth_context" => \Bitrix\Main\Authentication\Context object
         *	)
         *	or just a plain array of fields.
         *
         * @return Main\Entity\AddResult Contains ID of inserted row
         *
         * @throws \Exception
         */
        public static function add(array $data)
        {
        }
        /**
         * Deletes row in entity table by primary key
         *
         * @param mixed $primary
         *
         * @return Main\Entity\DeleteResult
         *
         * @throws \Exception
         */
        public static function delete($primary)
        {
        }
    }
    /**
     * Class LocalDeliveryRequest
     * @package Bitrix\Sale\Internals
     */
    class LocalDeliveryRequestTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * @inheritdoc
         */
        public static function getTableName()
        {
        }
        /**
         * @inheritdoc
         */
        public static function getMap()
        {
        }
    }
    /**
     * Class PersonTypeTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> LID string(2) mandatory
     * <li> NAME string(255) mandatory
     * <li> SORT int optional default 150
     * <li> ACTIVE bool optional default 'Y'
     * </ul>
     *
     * @package Bitrix\Sale
     **/
    class PersonTypeTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns path to the file which contains definition of the class.
         *
         * @return string
         */
        public static function getFilePath()
        {
        }
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for LID field.
         *
         * @return array
         */
        public static function validateLid()
        {
        }
        /**
         * Returns validators for NAME field.
         *
         * @return array
         */
        public static function validateName()
        {
        }
    }
    /**
     * Class PaySystemRestHandlersTable
     * @package Bitrix\Sale\Internals
     */
    class PaySystemRestHandlersTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
    }
    class UserPropsValueTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function getNameValidators()
        {
        }
        public static function getValueValidators()
        {
        }
    }
    /**
     * Class TransferProvider
     */
    class TransferProvider extends \Bitrix\Sale\Internals\TransferProviderBase
    {
        /**
         * @param $methodName
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ArgumentOutOfRangeException
         */
        private function callProviderMethod($methodName, array $products = array())
        {
        }
        /**
         * @param array $products
         *
         * @return mixed
         * @throws Main\SystemException
         */
        public function tryShip(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return mixed
         * @throws Main\SystemException
         */
        public function isNeedShip(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function ship(array $products)
        {
        }
        /**
         * @param array $items
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function checkBarcode(array $items)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function reserve(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return mixed
         * @throws Main\SystemException
         */
        public function deliver(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function viewProduct(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function recurring(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function getProductListStores(array $products)
        {
        }
        /**
         * @param PoolQuantity $pool
         * @param array $products
         * @param array $productTryList
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function setItemsResultAfterTryShip(\Bitrix\Sale\Internals\PoolQuantity $pool, array $products, array $productTryList)
        {
        }
        /**
         * @param PoolQuantity $pool
         * @param array $products
         * @param array $productTryList
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function setItemsResultAfterTryUnship(\Bitrix\Sale\Internals\PoolQuantity $pool, array $products, array $productTryList)
        {
        }
        /**
         * @param PoolQuantity $pool
         * @param array $products
         * @param array $productTryList
         * @param $coefficient
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        private function setItemsResultAfterTryShipByCoefficient(\Bitrix\Sale\Internals\PoolQuantity $pool, array $products, array $productTryList, $coefficient)
        {
        }
        /**
         * @param array $products
         * @param Sale\Result $reserveResult
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function setItemsResultAfterGetData(array $products, \Bitrix\Sale\Result $reserveResult)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function getAvailableQuantity(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function getAvailableQuantityAndPrice(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public function getProductData(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public function getBundleItems(array $products)
        {
        }
        /**
         * @return Sale\Result
         */
        public function getStoresCount()
        {
        }
    }
    /**
     * Class ProviderBuilderBase
     * @package Bitrix\Sale\Internals
     */
    abstract class ProviderBuilderBase
    {
        protected $items = array();
        protected $providerClass = null;
        protected $callbackFunction = null;
        protected $context = array();
        /**
         * @param $providerClass
         * @param $context
         *
         * @return ProviderBuilderBase
         */
        public static function createBuilder($providerClass, $context)
        {
        }
        /**
         * @param $providerClass
         * @param $context
         *
         * @return ProviderBuilderBase
         */
        public static function create($providerClass, $context)
        {
        }
        /**
         * @param string $className
         * @param string $methodName
         * @param Sale\Result|null $result
         *
         * @return Sale\Result
         * @throws Main\ArgumentOutOfRangeException
         */
        protected function callTransferMethod($className, $methodName, \Bitrix\Sale\Result $result = null)
        {
        }
        /**
         * @param Sale\BasketItemBase $basketItem
         */
        public abstract function addProductByBasketItem(\Bitrix\Sale\BasketItemBase $basketItem);
        /**
         * @param Sale\ShipmentItem $shipmentItem
         */
        public abstract function addProductByShipmentItem(\Bitrix\Sale\ShipmentItem $shipmentItem);
        /**
         * @param array $shipmentProductData
         */
        public abstract function addProductByShipmentProductData(array $shipmentProductData);
        /**
         * @param array $barcodeParams
         */
        public function addBasketItemBarcodeData(array $barcodeParams)
        {
        }
        /**
         * @param int $productId
         */
        public function addProductById($productId)
        {
        }
        /**
         * @param $outputName
         *
         * @return Sale\Result
         */
        public function getProductData($outputName)
        {
        }
        /**
         * @param $outputName
         *
         * @return Sale\Result
         */
        public function getAvailableQuantity($outputName)
        {
        }
        /**
         * @param $outputName
         *
         * @return Sale\Result
         */
        public function getAvailableQuantityAndPrice($outputName)
        {
        }
        /**
         * @param Sale\Result $resultProvider
         * @param $outputName
         *
         * @return Sale\Result
         */
        protected function decomposeIntoProvider(\Bitrix\Sale\Result $resultProvider, $outputName)
        {
        }
        /**
         * @return Sale\Result
         */
        public function tryShip()
        {
        }
        /**
         * @return Sale\Result
         */
        public function isNeedShip()
        {
        }
        /**
         * @return Sale\Result
         */
        public function getBundleItems()
        {
        }
        /**
         * @return Sale\Result
         */
        public function deliver()
        {
        }
        /**
         * @return Sale\Result
         */
        public function viewProduct()
        {
        }
        /**
         * @return Sale\Result
         */
        public function getProductStores()
        {
        }
        /**
         * @return Sale\Result
         */
        public function checkBarcode()
        {
        }
        /**
         * @return Sale\Result
         */
        public function recurring()
        {
        }
        /**
         * @param PoolQuantity $pool
         * @param array $productTryShipList
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public abstract function setItemsResultAfterTryShip(\Bitrix\Sale\Internals\PoolQuantity $pool, array $productTryShipList);
        /**
         * @param Sale\Result $result
         *
         * @return Sale\Result
         */
        public function setItemsResultAfterReserve(\Bitrix\Sale\Result $result)
        {
        }
        /**
         * @param Sale\Result $result
         *
         * @return Sale\Result
         */
        public function setItemsResultAfterShip(\Bitrix\Sale\Result $result)
        {
        }
        /**
         * @return Sale\Result
         */
        public function reserve()
        {
        }
        /**
         * @return Sale\Result
         */
        public function ship()
        {
        }
        /**
         * @param Sale\Result $resultAfterDeliver
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function createItemsResultAfterDeliver(\Bitrix\Sale\Result $resultAfterDeliver)
        {
        }
        /**
         * @param array $productData
         */
        protected function addProduct(array $productData)
        {
        }
        /**
         * @internal
         * @return string|null
         */
        public function getProviderClass()
        {
        }
        /**
         * @internal
         * @return string|null
         */
        public function getCallbackFunction()
        {
        }
        /**
         * @internal
         * @return string
         */
        public function getProviderName()
        {
        }
        /**
         * @param $providerName
         *
         * @return string
         */
        protected function clearProviderName($providerName)
        {
        }
        /**
         * @internal
         * @return array
         */
        protected function getContext()
        {
        }
        /**
         * @return array
         */
        protected function getItems()
        {
        }
        /**
         * @param integer $productId
         * @param array $productData
         */
        protected function addItem($productId, array $productData)
        {
        }
        /**
         * @param $productId
         *
         * @return bool|array
         */
        protected function getItem($productId)
        {
        }
        /**
         * @param $productId
         *
         * @return bool
         */
        protected function isExistsProductIdInItems($productId)
        {
        }
        /**
         * @return string
         */
        public static function getClassName()
        {
        }
        public abstract function getTransferClassName();
    }
    /**
     * Class ProviderBuilderCompatibility
     * @package Bitrix\Sale\Internals
     */
    class ProviderBuilderCompatibility extends \Bitrix\Sale\Internals\ProviderBuilderBase
    {
        /**
         * @param $providerClass
         * @param $context
         *
         * @return ProviderBuilderBase
         */
        public static function create($providerClass, $context)
        {
        }
        /**
         * @param Sale\BasketItemBase $basketItem
         */
        public function addProductByBasketItem(\Bitrix\Sale\BasketItemBase $basketItem)
        {
        }
        /**
         * @param Sale\ShipmentItem $shipmentItem
         */
        public function addProductByShipmentItem(\Bitrix\Sale\ShipmentItem $shipmentItem)
        {
        }
        /**
         * @param array $shipmentProductData
         *
         * @return bool
         */
        public function addProductByShipmentProductData(array $shipmentProductData)
        {
        }
        /**
         * @param PoolQuantity $pool
         * @param array $productTryShipList
         *
         * @return Sale\Result
         */
        public function setItemsResultAfterTryShip(\Bitrix\Sale\Internals\PoolQuantity $pool, array $productTryShipList)
        {
        }
        /**
         * @return string
         */
        public function getTransferClassName()
        {
        }
    }
    class OrderPropsRelationTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function getEntityValidators()
        {
        }
    }
}
namespace Bitrix\Sale\Internals\Catalog {
    /**
     * Class Provider
     *
     * @package Bitrix\Sale\Internals
     */
    final class Provider
    {
        const SALE_TRANSFER_PROVIDER_SHIPMENT_NEED_SHIP = true;
        const SALE_TRANSFER_PROVIDER_SHIPMENT_NEED_NOT_SHIP = false;
        const SALE_TRANSFER_PROVIDER_SHIPMENT_NEED_EMPTY = null;
        private static $ignoreErrors = false;
        /**
         * @param $basketList
         * @param array $context
         *
         * @return Sale\Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         */
        public static function getProductData($basketList, array $context)
        {
        }
        /**
         * @param Sale\BasketItemBase $basketItem
         * @param array $context
         *
         * @return Sale\Result
         * @throws Main\ArgumentNullException
         */
        public static function getBundleItems(\Bitrix\Sale\BasketItemBase $basketItem, array $context)
        {
        }
        /**
         * @param Sale\BasketItemBase $basketItem
         * @param array|null $context
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public static function checkAvailableQuantityByBasketItem(\Bitrix\Sale\BasketItemBase $basketItem, array $context = array())
        {
        }
        /**
         * @param Sale\BasketItemBase $basketItem
         * @param array|null $context
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public static function getAvailableQuantityAndPriceByBasketItem(\Bitrix\Sale\BasketItemBase $basketItem, array $context = array())
        {
        }
        /**
         * @param Sale\Shipment $shipment
         * @param array $context
         *
         * @return Sale\Result
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectNotFoundException
         */
        public static function tryReserveShipment(\Bitrix\Sale\Shipment $shipment, array $context = array())
        {
        }
        /**
         * @param Sale\ShipmentItem $shipmentItem
         * @param array $context
         *
         * @return Sale\Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        public static function tryReserveShipmentItem(\Bitrix\Sale\ShipmentItem $shipmentItem, array $context = array())
        {
        }
        /**
         * @param Sale\ShipmentItem $shipmentItem
         *
         * @return Sale\Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        public static function tryUnreserveShipmentItem(\Bitrix\Sale\ShipmentItem $shipmentItem)
        {
        }
        /**
         * @param Sale\ShipmentItemCollection $shipmentItemCollection
         *
         * @return Sale\Result
         */
        private static function getNeedQuantityByShipmentItemCollection(\Bitrix\Sale\ShipmentItemCollection $shipmentItemCollection)
        {
        }
        /**
         * @param Sale\ShipmentItem $shipmentItem
         *
         * @return Sale\Result
         */
        private static function getNeedQuantityByShipmentItem(\Bitrix\Sale\ShipmentItem $shipmentItem)
        {
        }
        /**
         * @param Sale\Shipment $shipment
         *
         * @return Sale\Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        public static function tryUnreserveShipment(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param $needQuantity
         * @param $reservedQuantity
         *
         * @return float|int
         */
        private static function countNeedQuantity($needQuantity, $reservedQuantity)
        {
        }
        /**
         * @param Sale\ShipmentItemCollection $shipmentItemCollection
         *
         * @return array
         */
        private static function createProductShipmentItemMapByShipmentItemCollection(\Bitrix\Sale\ShipmentItemCollection $shipmentItemCollection)
        {
        }
        /**
         * @param Sale\ShipmentItem $shipmentItem
         *
         * @return array
         */
        private static function createProductShipmentItemMapByShipmentItem(\Bitrix\Sale\ShipmentItem $shipmentItem)
        {
        }
        /**
         * @param PoolQuantity $pool
         * @param array $shipmentProductIndex
         * @param array $items
         *
         * @return Sale\Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        private static function setAvailableQuantityToShipmentItemCollection(\Bitrix\Sale\Internals\PoolQuantity $pool, array $shipmentProductIndex, array $items)
        {
        }
        /**
         * @param Sale\Shipment $shipment
         * @param array $context
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public static function tryShipShipment(\Bitrix\Sale\Shipment $shipment, array $context = array())
        {
        }
        /**
         * @param Sale\ShipmentItemCollection $shipmentItemCollection
         *
         * @return array
         * @throws Main\LoaderException
         * @throws Main\ObjectNotFoundException
         */
        public static function createProviderItemsMap(\Bitrix\Sale\ShipmentItemCollection $shipmentItemCollection)
        {
        }
        /**
         * @param array $rulesProducts
         *
         * @return array
         * @throws Main\ObjectNotFoundException
         */
        public static function createProviderItemsMapByRules(array $rulesProducts)
        {
        }
        /**
         * @internal
         * @param Sale\ShipmentItem $shipmentItem
         *
         * @return array|bool
         * @throws Main\ObjectNotFoundException
         */
        public static function createMapShipmentItemStoreData(\Bitrix\Sale\ShipmentItem $shipmentItem)
        {
        }
        /**
         * @internal
         * @param $shipmentItemList
         *
         * @return array
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public static function createMapShipmentItemCollectionStoreData($shipmentItemList)
        {
        }
        /**
         * @param Sale\Order $order
         * @param array|null $context
         *
         * @return Sale\Result
         * @throws Main\SystemException
         */
        public static function save(\Bitrix\Sale\Order $order, array $context = array())
        {
        }
        /**
         * @param Sale\Shipment $shipment
         *
         * @return Sale\Order
         * @throws Main\ObjectNotFoundException
         */
        public static function getOrderByShipment(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param Sale\Shipment $shipment
         * @param array $context
         *
         * @return array
         * @throws Main\ObjectNotFoundException
         */
        private static function prepareContextByShipment(\Bitrix\Sale\Shipment $shipment, array $context = array())
        {
        }
        /**
         * @param Sale\OrderBase $order
         * @param array $context
         *
         * @return array
         */
        private static function prepareContext(\Bitrix\Sale\OrderBase $order, array $context = array())
        {
        }
        /**
         * @param array $context
         *
         * @return Sale\Result
         * @throws Main\ArgumentNullException
         */
        private static function checkContext(array $context)
        {
        }
        /**
         * @param $module
         * @param $name
         *
         * @return string|null
         * @throws Main\LoaderException
         */
        public static function getProviderName($module, $name)
        {
        }
        /**
         * @param $name
         *
         * @return mixed|null
         */
        public static function getProviderEntity($name)
        {
        }
        /**
         * @param $name
         *
         * @return bool
         */
        public static function isProviderCallbackFunction($name)
        {
        }
        /**
         * @param $providerName
         *
         * @return string
         */
        private static function clearProviderName($providerName)
        {
        }
        /**
         * @internal
         * @param $value
         */
        public static function setIgnoreErrors($value)
        {
        }
        /**
         * @internal
         * @return bool
         */
        public static function isIgnoreErrors()
        {
        }
    }
}
namespace Bitrix\Sale\Internals {
    /**
     * Class BasketPropsTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> BASKET_ID int mandatory
     * <li> NAME string(255) mandatory
     * <li> VALUE string(255) optional
     * <li> CODE string(255) optional
     * <li> SORT int optional default 100
     * </ul>
     *
     * @package Bitrix\Sale
     **/
    class BasketPropertyTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for NAME field.
         *
         * @return array
         */
        public static function validateName()
        {
        }
        /**
         * Returns validators for VALUE field.
         *
         * @return array
         */
        public static function validateValue()
        {
        }
        /**
         * Returns validators for CODE field.
         *
         * @return array
         */
        public static function validateCode()
        {
        }
    }
    class Events
    {
        /**
         * @internal
         * @param Main\Event $event
         *
         * @return Main\EventResult
         */
        public static function onSaleBasketItemEntitySaved(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @internal
         * @param Main\Event $event
         *
         * @return Main\EventResult
         */
        public static function onSaleBasketItemDeleted(\Bitrix\Main\Event $event)
        {
        }
    }
    class OrderArchiveTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Adds row to entity table
         *
         * @param array $data An array with fields like
         * 	array(
         * 		"fields" => array(
         * 			"FIELD1" => "value1",
         * 			"FIELD2" => "value2",
         * 		),
         * 		"auth_context" => \Bitrix\Main\Authentication\Context object
         *	)
         *	or just a plain array of fields.
         *
         * @return Main\Entity\AddResult Contains ID of inserted row
         *
         * @throws \Exception
         */
        public static function add(array $data)
        {
        }
        /**
         * Deletes row in entity table by primary key
         *
         * @param mixed $primary
         *
         * @return Main\Entity\DeleteResult
         *
         * @throws \Exception
         */
        public static function delete($primary)
        {
        }
        /**
         * Renew table records from serialized data.
         *
         * @param array $filter.		Filter for selection updating entries.
         *
         * @return Main\Result
         */
        public static function renew(array $filter = array())
        {
        }
    }
    class Pool
    {
        /** @var array */
        protected $quantities = array();
        /** @var array */
        protected $items = array();
        public function __construct()
        {
        }
        /**
         * Returns any variable by its name. Null if variable is not set.
         *
         * @param $code
         * @return float | null
         */
        public function get($code)
        {
        }
        /**
         * @param $code
         * @param $quantity
         */
        public function set($code, $quantity)
        {
        }
        /**
         * @param $code
         */
        public function delete($code)
        {
        }
        /**
         * @param $code
         * @param $item
         */
        public function addItem($code, $item)
        {
        }
        /**
         * @return array
         */
        public function getQuantities()
        {
        }
        /**
         * @return array
         */
        public function getItems()
        {
        }
    }
    /**
     * Class UserGroupRestrictionTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ENTITY_ID int mandatory
     * <li> ENTITY_TYPE_ID int mandatory
     * <li> GROUP_ID int mandatory
     * </ul>
     *
     * @package Bitrix\Sale\Internals
     **/
    class UserGroupRestrictionTable extends \Bitrix\Main\ORM\Data\DataManager
    {
        const ENTITY_TYPE_SHIPMENT = 1;
        const ENTITY_TYPE_PAYMENT = 2;
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        public static function deleteByEntity($entityType, $entityId)
        {
        }
    }
    /**
     * Class PoolQuantity
     * @package Bitrix\Sale\Internals
     */
    class PoolQuantity
    {
        const POOL_RESERVE_TYPE = 'R';
        const POOL_QUANTITY_TYPE = 'Q';
        private static $poolList = array();
        private $typeList = array();
        /**
         * @param $key
         *
         * @return PoolQuantity
         */
        public static function getInstance($key)
        {
        }
        /**
         * @param $type
         * @param $code
         *
         * @return float|null
         */
        public function get($type, $code)
        {
        }
        /**
         * @internal
         * @param $type
         *
         * @return Pool
         */
        public function getByType($type)
        {
        }
        /**
         * @param $type
         *
         * @return array
         */
        public function getQuantities($type)
        {
        }
        /**
         * @param $type
         * @param $code
         * @param $value
         */
        public function add($type, $code, $value)
        {
        }
        /**
         * @param $type
         * @param $code
         * @param $value
         */
        public function set($type, $code, $value)
        {
        }
        /**
         * @param $type
         * @param $code
         */
        public function delete($type, $code)
        {
        }
        /**
         * @param $type
         */
        public function reset($type)
        {
        }
    }
    class UserGroupRestrictions extends \Bitrix\Sale\Internals\EO_UserGroupRestriction
    {
    }
    class SectionTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    /**
     * Class OrderConverterCrmErrorTable
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ORDER_ID int mandatory
     * <li> ERROR string(255) optional
     * </ul>
     *
     * @package Bitrix\Sale\Internals
     */
    class OrderConverterCrmErrorTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
    /**
     * Class DiscountModuleTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> DISCOUNT_ID int mandatory
     * <li> MODULE_ID string(50) mandatory
     * </ul>
     *
     * @package Bitrix\Sale\Internals
     **/
    class DiscountModuleTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for MODULE_ID field.
         *
         * @return array
         */
        public static function validateModuleId()
        {
        }
        /**
         * Delete modules by discount.
         *
         * @param int $discount				Discount id.
         * @return void
         */
        public static function deleteByDiscount($discount)
        {
        }
        /**
         * Update module list by discount.
         *
         * @param int $discount			Discount id.
         * @param array $moduleList		Modules list.
         * @param bool $clear			Clear old values.
         * @return bool
         */
        public static function updateByDiscount($discount, $moduleList, $clear)
        {
        }
        /**
         * Returns modules by discount list.
         *
         * @param array $discountList			Discount list.
         * @param array $filter				Additional filter.
         * @return array
         */
        public static function getByDiscount($discountList, $filter = array())
        {
        }
    }
    class PaymentTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getUfId()
        {
        }
        public static function getMap()
        {
        }
        /**
         * Returns validators for PAID field.
         *
         * @return array
         */
        public static function validatePaid()
        {
        }
        /**
         * Returns validators for PS_STATUS field.
         *
         * @return array
         */
        public static function validatePsStatus()
        {
        }
        /**
         * Returns validators for PS_STATUS_CODE field.
         *
         * @return array
         */
        public static function validatePsStatusCode()
        {
        }
        /**
         * Returns validators for PS_STATUS_DESCRIPTION field.
         *
         * @return array
         */
        public static function validatePsStatusDescription()
        {
        }
        /**
         * Returns validators for PS_STATUS_MESSAGE field.
         *
         * @return array
         */
        public static function validatePsStatusMessage()
        {
        }
        /**
         * Returns validators for PS_CURRENCY field.
         *
         * @return array
         */
        public static function validatePsCurrency()
        {
        }
        /**
         * Returns validators for PAY_VOUCHER_NUM field.
         *
         * @return array
         */
        public static function validatePayVoucherNum()
        {
        }
        /**
         * Returns validators for PAY_RETURN_NUM field.
         *
         * @return array
         */
        public static function validatePayReturnNum()
        {
        }
        /**
         * Returns validators for XML_ID field.
         *
         * @return array
         */
        public static function validateXmlId()
        {
        }
        /**
         * Returns validators for CURRENCY field.
         *
         * @return array
         */
        public static function validateCurrency()
        {
        }
        /**
         * Returns validators for PAY_SYSTEM_NAME field.
         *
         * @return array
         */
        public static function validatePaySystemName()
        {
        }
        /**
         * Returns validators for REASON_MARKED field.
         *
         * @return array
         */
        public static function validateReasonMarked()
        {
        }
        /**
         * Returns validators for PS_RECURRING_TOKEN field.
         *
         * @return array
         */
        public static function validatePsRecurringToken()
        {
        }
    }
    class PaySystemRestrictionTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    /**
     * Class DiscountGroupTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> DISCOUNT_ID int mandatory
     * <li> ACTIVE string(1) optional
     * <li> GROUP_ID int mandatory
     * <li> DISCOUNT reference to {@link \Bitrix\Sale\Internals\DiscountTable}
     * </ul>
     *
     * @package Bitrix\Sale\Internals
     **/
    class DiscountGroupTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Delete user group list by discount.
         *
         * @param int $discount			Discount id.
         * @return void
         */
        public static function deleteByDiscount($discount)
        {
        }
        /**
         * Update user group list by discount.
         *
         * @param int $discount			Discount id.
         * @param array $groupList		User group list.
         * @param string $active		Discount active flag.
         * @param bool $clear			Clear old values.
         * @return bool
         */
        public static function updateByDiscount($discount, $groupList, $active, $clear)
        {
        }
        /**
         * Change active flag in table by discount.
         *
         * @param int $discount			Discount id.
         * @param string $active		Discount active flag.
         * @return void
         */
        public static function changeActiveByDiscount($discount, $active)
        {
        }
        /**
         * Returns discount list by user groups.
         *
         * @param array $groupList			User group list.
         * @param array $filter				Additional filter.
         * @return array
         */
        public static function getDiscountByGroups($groupList, $filter = array())
        {
        }
        /**
         * Return active discounts by user group list.
         *
         * @param array $groupList			User group list.
         * @return array
         */
        public static function getActiveDiscountByGroups($groupList)
        {
        }
    }
    class OrderArchivePackedTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
    class BasketTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * @param $id
         * @return Main\Entity\DeleteResult
         * @throws Main\ArgumentException
         */
        public static function deleteBundle($id)
        {
        }
        /**
         * @param $id
         * @return Main\Entity\DeleteResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        public static function deleteWithItems($id)
        {
        }
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for CURRENCY field.
         *
         * @return array
         */
        public static function validateCurrency()
        {
        }
        /**
         * Returns validators for LID field.
         *
         * @return array
         */
        public static function validateLid()
        {
        }
        /**
         * Returns validators for DISCOUNT_NAME field.
         *
         * @return array
         */
        public static function validateDiscountName()
        {
        }
        /**
         * Returns validators for DISCOUNT_VALUE field.
         *
         * @return array
         */
        public static function validateDiscountValue()
        {
        }
        /**
         * Returns validators for DISCOUNT_COUPON field.
         *
         * @return array
         */
        public static function validateDiscountCoupon()
        {
        }
    }
    class SiteCurrencyTable extends \Bitrix\Main\Entity\DataManager
    {
        private static $cache = array();
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        /**
         * Returns site currency data.
         *
         * @param string $siteId		Site id.
         * @return bool|array
         */
        public static function getCurrency($siteId)
        {
        }
        /**
         * Returns site currency.
         *
         * @param string $siteId				Site id.
         * @return string
         */
        public static function getSiteCurrency($siteId)
        {
        }
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onAfterUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onAfterDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
    /**
     * Class AccountNumberGenerator
     * @package Bitrix\Sale\Internals
     */
    class AccountNumberGenerator
    {
        const ACCOUNT_NUMBER_SEPARATOR = "/";
        /**
         * @param Sale\OrderBase $order
         * @return mixed
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\SystemException
         */
        public static function generateForOrder(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * @param Sale\OrderBase $order
         * @return null|string|int
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private static function generateBySettings(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * @param Sale\OrderBase $order
         * @return int|string
         * @throws Main\NotImplementedException
         */
        private static function generateById(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * @param Sale\OrderBase $order
         * @return mixed
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        private static function generateCustom(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * @param CollectableEntity $item
         * @return null
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public static function generateForPayment(\Bitrix\Sale\Internals\CollectableEntity $item)
        {
        }
        /**
         * @param CollectableEntity $item
         * @return null
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        public static function generateForShipment(\Bitrix\Sale\Internals\CollectableEntity $item)
        {
        }
        /**
         * @param CollectableEntity $item
         *
         * @return null
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         */
        private static function generate(\Bitrix\Sale\Internals\CollectableEntity $item)
        {
        }
        /**
         * Generates next account number according to the scheme selected in the module options
         *
         * @param Sale\OrderBase $order
         * @return null|int|string
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private static function getNextNumber(\Bitrix\Sale\OrderBase $order)
        {
        }
    }
    class CompanyTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function getUfId()
        {
        }
    }
    class BuyerStatisticTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Renew buyer statistic by recalculation of order table and archive order table.
         */
        public static function recalculate()
        {
        }
    }
    /** @internal */
    final class ConversionHandlers
    {
        public static function onGetCounterTypes()
        {
        }
        public static function onGetRateTypes()
        {
        }
        public static function onGenerateInitialData(\Bitrix\Main\Type\Date $from, \Bitrix\Main\Type\Date $to)
        {
        }
        // Cart Counters
        // Events can be stacked!!!
        // 1) OnBeforeBasketAdd -> OnBasketAdd
        // 2) OnBeforeBasketAdd -> OnBeforeBasketUpdate -> OnBasketUpdate -> OnBasketAdd
        // 3) and other variations with mixed arguments as well, sick!!!
        public static function onSaleBasketItemSaved(\Bitrix\Main\Event $event)
        {
        }
        static $onBeforeBasketAddQuantity = 0;
        public static function onBeforeBasketAdd($fields)
        {
        }
        public static function onBasketAdd($id, $fields)
        {
        }
        //static private $onBeforeBasketUpdate = 0;
        public static function onBeforeBasketUpdate($id, $fields = null)
        {
        }
        public static function onBasketUpdate($id, $fields)
        {
        }
        //static private $onBeforeBasketDeleteSum = 0;
        //static private $onBeforeBasketDeleteCurrency; // TODO same to all other
        public static function onBeforeBasketDelete($id)
        {
        }
        public static function onBasketDelete($id)
        {
        }
        // Order Counters
        public static function onSaleOrderSaved(\Bitrix\Main\Event $event)
        {
        }
        public static function onOrderAdd($id, array $fields)
        {
        }
        // Payment Counters
        public static function onSaleOrderPaid(\Bitrix\Main\Event $event)
        {
        }
        public static function onSalePayOrder($id, $paid)
        {
        }
    }
    class OrderProcessingTable extends \Bitrix\Main\Entity\DataManager
    {
        protected $orderProcessedCache = array();
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        /**
         * Wether order was processed
         *
         * @param int $orderId
         *
         * @return bool
         */
        public static function hasAddedProducts($orderId = 0)
        {
        }
        /**
         * Wether order was processed
         *
         * @param int $orderId
         *
         * @return bool|null
         */
        public static function hasRemovedProducts($orderId = 0)
        {
        }
        /**
         * Mark order as processed
         *
         * @param int $orderId
         */
        public static function markProductsAdded($orderId = 0)
        {
        }
        /**
         * Mark orders as processed
         *
         * @param array $orderIds
         */
        public static function markProductsAddedByList(array $orderIds)
        {
        }
        /**
         * Mark order as processed
         *
         * @param int $orderId
         */
        public static function markProductsRemoved($orderId = 0)
        {
        }
        /**
         * @param $orderId
         *
         * @return bool
         */
        public static function deleteByOrderId($orderId)
        {
        }
        /**
         * Clear table
         *
         */
        public static function clear()
        {
        }
    }
    class StatusTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        /**
         * @param mixed $primary
         * @param array $data
         *
         * @return Main\Entity\UpdateResult
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws \Exception
         */
        public static function update($primary, array $data)
        {
        }
        /**
         * @param array $data
         *
         * @return Main\Entity\AddResult
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws \Exception
         */
        public static function add(array $data)
        {
        }
        /**
         * @return string
         */
        public static function generateXmlId()
        {
        }
    }
    /**
     * Class CollectionFilterIterator
     * @package Bitrix\Sale\Internals
     */
    class CollectionFilterIterator extends \FilterIterator
    {
        protected $callback = null;
        /**
         * CustomFilterIterator constructor.
         * @param \Iterator $iterator
         * @param $callback
         */
        public function __construct(\Iterator $iterator, $callback)
        {
        }
        /**
         * @return mixed
         */
        public function accept()
        {
        }
        /**
         * @return int
         */
        public function count()
        {
        }
    }
    /**
     * Class OrderRoundTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ORDER_ID int mandatory
     * <li> APPLY_BLOCK_COUNTER int mandatory
     * <li> ORDER_ROUND string(1) mandatory
     * <li> ENTITY_TYPE int mandatory
     * <li> ENTITY_ID int mandatory
     * <li> ENTITY_VALUE string(255) optional
     * <li> APPLY string(1) mandatory
     * <li> ROUND_RULE string mandatory
     * </ul>
     *
     * @package Bitrix\Sale
     **/
    class OrderRoundTable extends \Bitrix\Main\Entity\DataManager
    {
        const ENTITY_TYPE_BASKET_ITEM = 0x1;
        /** @deprecated */
        const ENTITY_TYPE_BASKET = self::ENTITY_TYPE_BASKET_ITEM;
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for ENTITY_VALUE field.
         *
         * @return array
         */
        public static function validateEntityValue()
        {
        }
        /**
         * Delete data by order.
         *
         * @param int $order		Order id.
         * @return bool
         */
        public static function clearByOrder($order)
        {
        }
    }
    class PaySystemErrLogTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    class OrderPropsGroupTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function getNameValidators()
        {
        }
        public static function getCodeValidators()
        {
        }
    }
    /**
     * Class ProviderBuilder
     * @package Bitrix\Sale\Internals
     */
    class ProviderBuilder extends \Bitrix\Sale\Internals\ProviderBuilderBase
    {
        /**
         * @param Sale\BasketItemBase $basketItem
         */
        public function addProductByBasketItem(\Bitrix\Sale\BasketItemBase $basketItem)
        {
        }
        /**
         * @param array $basketItemProductData
         */
        public function addProductByBasketItemProductData(array $basketItemProductData)
        {
        }
        /**
         * @param Sale\ShipmentItem $shipmentItem
         */
        public function addProductByShipmentItem(\Bitrix\Sale\ShipmentItem $shipmentItem)
        {
        }
        /**
         * @param array $shipmentProductData
         *
         * @return bool
         */
        public function addProductByShipmentProductData(array $shipmentProductData)
        {
        }
        /**
         * @param PoolQuantity $pool
         * @param array $productTryShipList
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function setItemsResultAfterTryShip(\Bitrix\Sale\Internals\PoolQuantity $pool, array $productTryShipList)
        {
        }
        /**
         * @return string
         */
        public function getTransferClassName()
        {
        }
    }
    class PoolBase
    {
        protected static $pool = array();
        protected static $index = 0;
        public static function getPoolByCode($code)
        {
        }
        public static function get($code, $type)
        {
        }
        /**
         * @param $code
         * @param $type
         * @param int $index
         *
         * @return null|mixed
         */
        public static function getByIndex($code, $type, $index)
        {
        }
        /**
         * @param $code
         * @param $type
         * @param $value
         */
        public static function add($code, $type, $value)
        {
        }
        /**
         * @param $code
         * @param $type
         * @param $index
         */
        public static function delete($code, $type, $index)
        {
        }
        /**
         * @param $code
         * @param $type
         *
         * @return bool
         */
        public static function isTypeExists($code, $type)
        {
        }
        /**
         * @param null $code
         * @param null $type
         */
        public static function resetPool($code = null, $type = null)
        {
        }
    }
    class ActionEntity extends \Bitrix\Sale\Internals\PoolBase
    {
        protected static $pool = array();
        const ACTION_ENTITY_SHIPMENT_COLLECTION_RESERVED_QUANTITY = 'shipment_collection_reserved_quantity';
        const ACTION_ENTITY_SHIPMENT_RESERVED_QUANTITY = 'shipment_reserved_quantity';
        /**
         * @param $code
         * @param array $typeList
         *
         * @return Result
         */
        public static function runActions($code, array $typeList = array())
        {
        }
    }
    class Product2ProductTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        /**
         *
         * Remove old products from b_sale_product2product table.
         * Used in agents.
         *
         * @param int $liveTime in days
         *
         * @return string
         */
        public static function deleteOldProducts($liveTime = 10)
        {
        }
        /**
         * Refresh order statistic
         *
         * @param $liveTime.			Counting statistic period in days
         *
         * @return Main\DB\Result
         */
        public static function refreshProductStatistic($liveTime = 10)
        {
        }
        /**
         * Add products from order or updates existing.
         *
         * @param $orderId
         *
         * @return void
         */
        public static function addProductsFromOrder($orderId = 0)
        {
        }
        /**
         * Add products from order by an agent
         *
         * @param int $limit			Count of orders is added per hit.
         * @return string
         */
        public static function addProductsByAgent($limit = 100)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         */
        public static function onSaleOrderAddEvent(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         */
        public static function onSaleStatusOrderHandlerEvent(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         */
        public static function onSaleDeliveryOrderHandlerEvent(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         */
        public static function onSaleDeductOrderHandlerEvent(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         */
        public static function onSaleCancelOrderHandlerEvent(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Main\Event $event
         *
         * @return Main\EventResult
         */
        public static function onSalePayOrderHandlerEvent(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Executes when order status added.
         *
         * @param $orderId
         * @return void
         */
        public static function onSaleOrderAdd($orderId)
        {
        }
        /**
         * Executes when order status has changed.
         *
         * @param $orderId
         * @param $status
         * @return void
         */
        public static function onSaleStatusOrderHandler($orderId, $status)
        {
        }
        /**
         * Executes when order status Delivered.
         *
         * @param $orderId
         * @param $status
         * @return void
         */
        public static function onSaleDeliveryOrderHandler($orderId, $status)
        {
        }
        /**
         * Executes when order status has deducted.
         *
         * @param $orderId
         * @param $status
         * @return void
         */
        public static function onSaleDeductOrderHandler($orderId, $status)
        {
        }
        /**
         * Executes when order status has canceled.
         *
         * @param $orderId
         * @param $status
         * @return void
         */
        public static function onSaleCancelOrderHandler($orderId, $status)
        {
        }
        /**
         * Executes when order status has canceled.
         *
         * @param $orderId
         * @param $status
         * @return void
         */
        public static function onSalePayOrderHandler($orderId, $status)
        {
        }
        /**
         * Add order id in order processing table.
         *
         * @param $orderId
         * @param $statusName.		Handler status name.
         * @return void
         */
        protected static function addOrderProcessing($orderId, $statusName)
        {
        }
    }
    class OrderChangeTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    class PaymentExtraServiceTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function validateValue()
        {
        }
        public static function deleteByPaymentId($paymentId)
        {
        }
    }
    class YandexSettingsTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    /**
     * Class CallbackRegistryTable
     * @package Bitrix\Sale\Internals
     */
    class CallbackRegistryTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
    /**
     * Class ShipmentRules
     * @package Bitrix\Sale\Internals
     */
    class ShipmentRules
    {
        /**
         * ShipmentRules constructor.
         */
        protected function __construct()
        {
        }
        /**
         * @param Sale\Order $order
         * @param PoolQuantity $pool
         *
         * @return array
         */
        public static function createOrderRuleMap(\Bitrix\Sale\Order $order, \Bitrix\Sale\Internals\PoolQuantity $pool)
        {
        }
        /**
         * @param Sale\ShipmentItem $shipmentItem
         * @param PoolQuantity $pool
         *
         * @return array|bool
         * @throws Main\ObjectNotFoundException
         */
        private static function createShipRule(\Bitrix\Sale\ShipmentItem $shipmentItem, \Bitrix\Sale\Internals\PoolQuantity $pool)
        {
        }
        /**
         * @param Sale\ShipmentItem $shipmentItem
         * @param PoolQuantity $pool
         *
         * @return array|bool
         * @throws Main\ObjectNotFoundException
         */
        private static function createReserveRule(\Bitrix\Sale\ShipmentItem $shipmentItem, \Bitrix\Sale\Internals\PoolQuantity $pool)
        {
        }
        /**
         * @param array $rules
         * @param array $context
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public static function saveRules(array $rules, array $context)
        {
        }
    }
    class GoodsSectionTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Sale\Internals\Input {
    // TODO integrate with input.js on adding multiple item
    class Manager
    {
        static function initJs()
        {
        }
        protected static $types = array();
        /** Return html representation of value.
         * @param array $input - input settings values
         * @param mixed $value - value to render
         * @return string - html
         * @throws SystemException
         */
        static function getViewHtml(array $input, $value = null)
        {
        }
        /** Return html input control for value.
         * @param string $name - name for input control (eg: 'email', 'person[1][name]')
         * @param array $input - input settings values
         * @param mixed $value - value to render
         * @return string - html
         * @throws SystemException
         */
        static function getEditHtml($name, array $input, $value = null)
        {
        }
        /**
         * @param $name
         * @param array $input
         * @param null $value
         * @return mixed
         * @throws SystemException
         */
        static function getFilterEditHtml($name, array $input, $value = null)
        {
        }
        /** Get user input validation errors.
         * @param array $input - input settings values
         * @param string|array|null $value - value to validate
         * @return array - empty array on success OR array ([error code] => error message) on failure
         * @throws \Bitrix\Main\SystemException
         */
        static function getError(array $input, $value)
        {
        }
        /**
         * @param array $input
         * @param $value
         *
         * @return mixed
         * @throws SystemException
         */
        static function getRequiredError(array $input, $value)
        {
        }
        /** Get normalized user input value (for example to save to database).
         * Before saving to database check value for errors with Manager::getError!
         * @param array $input - input settings values
         * @param string|array|null $value - value to normalize
         * @return mixed result
         * @throws \Bitrix\Main\SystemException
         */
        static function getValue(array $input, $value)
        {
        }
        /** Get multiple value.
         * @param array $input
         * @param mixed $value
         * @return array - if value is single, wrap it in array (except null, which gets empty array)
         * @throws \Bitrix\Main\SystemException
         */
        static function asMultiple(array $input, $value)
        {
        }
        /** Get settings inputs for user control.
         * @param array $input - input settings values
         * @param string|null $reload - javascript form reload action
         * @return array - ([setting name] => input array)
         * @throws \Bitrix\Main\SystemException
         */
        static function getSettings(array $input, $reload = null)
        {
        }
        /** Get settings, common to all input types.
         * @param array $input - input settings values
         * @param string|null $reload - javascript form reload action
         * @return array - ([setting name] => input array)
         */
        static function getCommonSettings(array $input, $reload = null)
        {
        }
        /** Get all registered types.
         * @return array - ([TYPE NAME] => array('CLASS', 'NAME', ...))
         */
        static function getTypes()
        {
        }
        /** Register new type.
         * @param string $name - type name
         * @param array $type - type parameters
         *      'CLASS' => __NAMESPACE__.'ClassName'
         *      'NAME' => Loc::getMessage('CLASS_LOCALIZED_NAME')
         * @return void
         * @throws SystemException
         */
        static function register($name, array $type)
        {
        }
        protected static $initialized;
        protected function initialize()
        {
        }
    }
    /**
     * String
     */
    class StringInput extends \Bitrix\Sale\Internals\Input\Base
    {
        protected static $patternDelimiters = array('/', '#', '~');
        public static function getEditHtmlSingle($name, array $input, $value)
        {
        }
        /**
         * @param $name
         * @param array $input
         * @param $value
         * @return string
         */
        public static function getFilterEditHtml($name, array $input, $value)
        {
        }
        public static function getErrorSingle(array $input, $value)
        {
        }
        static function getSettings(array $input, $reload)
        {
        }
        /**
         * @param $value
         *
         * @return bool
         */
        public static function isDeletedSingle($value)
        {
        }
    }
    /**
     * Number
     */
    class Number extends \Bitrix\Sale\Internals\Input\Base
    {
        public static function getEditHtmlSingle($name, array $input, $value)
        {
        }
        /**
         * @param $name
         * @param array $input
         * @param $value
         * @return string
         */
        public static function getFilterEditHtml($name, array $input, $value)
        {
        }
        public static function getErrorSingle(array $input, $value)
        {
        }
        public static function getSettings(array $input, $reload)
        {
        }
    }
    /**
     * Either Y or N
     */
    class EitherYN extends \Bitrix\Sale\Internals\Input\Base
    {
        public static function getViewHtmlSingle(array $input, $value)
        {
        }
        public static function getEditHtmlSingle($name, array $input, $value)
        {
        }
        /**
         * @param $name
         * @param array $input
         * @param $value
         * @return string
         */
        public static function getFilterEditHtml($name, array $input, $value)
        {
        }
        public static function getErrorSingle(array $input, $value)
        {
        }
        public static function getValueSingle(array $input, $value)
        {
        }
    }
    /**
     * Enumeration
     */
    class Enum extends \Bitrix\Sale\Internals\Input\Base
    {
        private static function flatten(array $array)
        {
        }
        public static function getViewHtmlSingle(array $input, $value)
        {
        }
        /**
         * @param $name
         * @param array $input
         * @param $value
         * @return string
         */
        public static function getFilterEditHtml($name, array $input, $value)
        {
        }
        public static function getEditHtml($name, array $input, $value = null)
        {
        }
        private static function getEditOptionsHtml(array $options, array $selected, $selector, $group, $option)
        {
        }
        public static function getErrorSingle(array $input, $value)
        {
        }
        static function getSettings(array $input, $reload)
        {
        }
    }
    /**
     * File
     * Must use: File::getPostWithFiles before using this type!
     */
    class File extends \Bitrix\Sale\Internals\Input\Base
    {
        /** Normalize $_FILES structure and join it with $_POST.
         * Must be called before using File type!
         *
         * PHP default $_FILES structure:
         *
         * Array([name]     => Array([0] => photo.jpg     , [1] =>  )
         *       [type]     => Array([0] => image/jpeg    , [1] =>  )
         *       [tmp_name] => Array([0] => /tmp/dsk4le5se, [1] =>  )
         *       [error]    => Array([0] => 0             , [1] => 4)
         *       [size]     => Array([0] => 45673         , [1] => 0))
         *
         * Normalized files structure:
         *
         * Array(
         *     [0] => Array(
         *         [name]     => photo.jpg
         *         [type]     => image/jpeg
         *         [tmp_name] => /tmp/dsk4le5se
         *         [error]    => 0
         *         [size]     => 45673
         *     )
         *     [1] => Array(
         *         [name]     =>
         *         [type]     =>
         *         [tmp_name] =>
         *         [error]    => 4
         *         [size]     =>
         *     )
         * )
         *
         * Example: <input type="file" name="PROFILE[5][PHOTOS][]"> - will be normalized as expected in post
         *
         * @param array $post  - $_POST
         * @param array $files - $_FILES
         * @return array       - post + fixed files
         */
        static function getPostWithFiles(array $post, array $files)
        {
        }
        private static function getPostWithFilesRecursive(array &$root, array $values, $property)
        {
        }
        /** @deprecated
         * Load file array from database.
         * @param $value
         * @return array - file array
         */
        static function loadInfo($value)
        {
        }
        /** deprecated */
        static function loadInfoSingle($file)
        {
        }
        /** Check if file is marked for deletion.
         * @param $value
         * @return bool
         */
        static function isDeletedSingle($value)
        {
        }
        /** Check if file is uploaded.
         * @param $value
         * @return bool
         */
        static function isUploadedSingle($value)
        {
        }
        // input methods ///////////////////////////////////////////////////////////////////////////////////////////////////
        static function isMultiple($value)
        {
        }
        public static function getViewHtmlSingle(array $input, $value)
        {
        }
        /**
         * @param $name
         * @param array $input
         * @param $value
         * @return string
         */
        public static function getFilterEditHtml($name, array $input, $value)
        {
        }
        public static function getEditHtmlSingle($name, array $input, $value)
        {
        }
        public static function getEditHtmlSingleDelete($name, array $input)
        {
        }
        public static function getErrorSingle(array $input, $value)
        {
        }
        public static function getValueSingle(array $input, $value)
        {
        }
        public static function getSettings(array $input, $reload)
        {
        }
    }
    /**
     * Date
     */
    class Date extends \Bitrix\Sale\Internals\Input\Base
    {
        public static function getEditHtmlSingle($name, array $input, $value)
        {
        }
        /**
         * @param $name
         * @param array $input
         * @param $value
         * @return string
         */
        public static function getFilterEditHtml($name, array $input, $value)
        {
        }
        public static function getEditHtmlSingleDelete($name, array $input)
        {
        }
        public static function getErrorSingle(array $input, $value)
        {
        }
        static function getSettings(array $input, $reload)
        {
        }
    }
    /**
     * Location
     */
    class Location extends \Bitrix\Sale\Internals\Input\Base
    {
        public static function getViewHtmlSingle(array $input, $value)
        {
        }
        /**
         * @param $name
         * @param array $input
         * @param $value
         * @return string
         */
        public static function getFilterEditHtml($name, array $input, $value)
        {
        }
        public static function getEditHtml($name, array $input, $value = null)
        {
        }
        public static function getEditHtmlSingle($name, array $input, $value)
        {
        }
        public static function getErrorSingle(array $input, $value)
        {
        }
    }
    /**
     * Class Address
     * @package Bitrix\Sale\Internals\Input
     */
    class Address extends \Bitrix\Sale\Internals\Input\Base
    {
        /**
         * @inheritdoc
         */
        static function isMultiple($value)
        {
        }
        /**
         * @inheritdoc
         */
        public static function hasMultipleValuesSupport()
        {
        }
        /**
         * @param array $input
         * @param \Bitrix\Location\Entity\Address $value
         * @return string
         */
        public static function getViewHtml(array $input, $value = null)
        {
        }
        /**
         * @inheritdoc
         */
        public static function getFilterEditHtml($name, array $input, $value)
        {
        }
        /**
         * @param array $input
         * @param $value
         * @return array
         */
        public static function getErrorSingle(array $input, $value)
        {
        }
        /**
         * @param array $input
         * @param $value
         * @return array
         */
        public static function getRequiredError(array $input, $value)
        {
        }
        /**
         * @inheritdoc
         */
        public static function getEditHtmlSingle($name, array $input, $value)
        {
        }
    }
}
namespace Bitrix\Sale\Internals {
    class StatusGroupTaskTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function deleteByStatus($statusId)
        {
        }
    }
    /**
     * Class OrderDeliveryBasketTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ORDER_DELIVERY_ID int mandatory
     * <li> BASKET_ID int mandatory
     * <li> QUANTITY unknown mandatory
     * <li> RESERVED_QUANTITY unknown mandatory
     * </ul>
     *
     * @package Bitrix\Sale
     **/
    class ShipmentItemTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns path to the file which contains definition of the class.
         *
         * @return string
         */
        public static function getFilePath()
        {
        }
        /**
         * @param $id
         * @return Main\Entity\DeleteResult
         * @throws Main\ArgumentException
         */
        public static function deleteWithItems($id)
        {
        }
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
    class BasketArchivePackedTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
    class SynchronizerLogTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        /**
         * Clears old logging data
         */
        public static function deleteOldRecords($direction)
        {
        }
    }
    /**
     * Class DeliveryPaySystemTable
     *
     * Fields:
     * <ul>
     * <li> DELIVERY_ID string(35) mandatory
     * <li> PAYSYSTEM_ID int mandatory
     * </ul>
     *
     * @package Bitrix\Sale
     **/
    class DeliveryPaySystemTable extends \Bitrix\Main\Entity\DataManager
    {
        const LINK_DIRECTION_DELIVERY_PAYSYSTEM = "D";
        const LINK_DIRECTION_PAYSYSTEM_DELIVERY = "P";
        const ENTITY_TYPE_DELIVERY = "DELIVERY_ID";
        const ENTITY_TYPE_PAYSYSTEM = "PAYSYSTEM_ID";
        protected static $unLinked = null;
        protected static $entityItemsFullList = array();
        protected static $entityItemsFieldsList = array();
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function validateLinkDirection()
        {
        }
        /**
         * @param int $entityId
         * @param string $entityType self::ENTITY_TYPE_DELIVERY || self::ENTITY_TYPE_PAYSYSTEM
         * @param int[] $linkedIds Empty means all
         * @return \Bitrix\Main\Entity\Result
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function setLinks($entityId, $entityType, array $linkedIds = array(), $actualizeRestrictions = true)
        {
        }
        protected static function isValidParent($parentId, $entityType)
        {
        }
        protected static function actualizeDeliveriesRestrictionByPS()
        {
        }
        protected static function actualizePaySystemRestrictionByDelivery()
        {
        }
        protected static function insertLinks($entityId, $linkDirection, $entityType, $linkedIds)
        {
        }
        /**
         * @param int $entityId
         * @param string $entityType self::ENTITY_TYPE_DELIVERY || self::ENTITY_TYPE_PAYSYSTEM
         * @return int[]
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getLinks($entityId, $entityType, array $preparedData = array(), $considerParent = true)
        {
        }
        protected static function getActiveDeliveryData()
        {
        }
        protected static function excludeDeliveryByParent(array $dlvIds)
        {
        }
        protected static function includeDeliveryByParent(array $dlvIds)
        {
        }
        protected static function considerDeliveryParent(array $profilePsIds, $profileId, $parentId, $preparedData)
        {
        }
        protected static function getDeliveryParentId($deliveryId)
        {
        }
        protected static function getUnlinkedEnityItems($entityType, $linkDirection = null)
        {
        }
        protected static function getEntityItemsFieldsList($entityType)
        {
        }
        protected static function getEntityItemsFullList($entityType)
        {
        }
        public static function prepareData(array $entityIds, $entityType)
        {
        }
    }
    /**
     * Class OrderDeliveryReqTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ORDER_ID int mandatory
     * <li> DELIVERY_LOCATION string(50) optional
     * <li> DATE_REQUEST datetime optional
     * <li> PARAMS string optional
     * </ul>
     *
     * @package Bitrix\Sale\Delivery
     **/
    class OrderDeliveryReqTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function validateLocation()
        {
        }
    }
    /**
     * Class Table
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> DELIVERY_ID int mandatory
     * <li> SORT int sorting
     * <li> CLASS_NAME string(255) mandatory
     * <li> PARAMS string optional
     * </ul>
     *
     * @package Bitrix\Sale\Delivery\Restrictions
     **/
    class ServiceRestrictionTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function validateClassName()
        {
        }
    }
}
namespace Bitrix\Sale {
    /**
     * Class TradingPlatformTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> CODE string(20) mandatory
     * <li> NAME string(50) mandatory
     * <li> DESCRIPTION string(255) mandatory
     * <li> SETTINGS string mandatory
     * </ul>
     *
     * @package Bitrix\Sale
     **/
    class TradingPlatformTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function validateCode()
        {
        }
        public static function validateActive()
        {
        }
        public static function validateName()
        {
        }
        public static function validateDescription()
        {
        }
        public static function validateCatalogSectionTabClassName()
        {
        }
        public static function validateClass()
        {
        }
    }
}
namespace Bitrix\Sale\Internals {
    class BusinessValueTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        const COMMON_PERSON_TYPE_ID = 0;
        const COMMON_CONSUMER_KEY = 'COMMON';
        public static function getMap()
        {
        }
    }
    class PaySystemServiceTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        /**
         * Returns validators for LID field.
         *
         * @return array
         */
        public static function validateLid()
        {
        }
        /**
         * Returns validators for CURRENCY field.
         *
         * @return array
         */
        public static function validateCurrency()
        {
        }
        /**
         * Returns validators for NAME field.
         *
         * @return array
         */
        public static function validateName()
        {
        }
        /**
         * Returns validators for DESCRIPTION field.
         *
         * @return array
         */
        public static function validateDescription()
        {
        }
        public static function getListWithInner(array $parameters = array())
        {
        }
    }
    /**
     * Class Table
     * @package Bitrix\Sale\Internals
     * @internal
     */
    class ReliabilityTable extends \Bitrix\Main\ORM\Data\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        public static function getObjectClass()
        {
        }
        public static function getCollectionClass()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
    class OrderPropsVariantTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function generateXmlId()
        {
        }
    }
    /**
     * Class ShipmentExtraServiceTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> SHIPMENT_ID int mandatory
     * <li> EXTRA_SERVICE_ID int mandatory
     * <li> VALUE string(255) optional
     * </ul>
     *
     * @package Bitrix\Sale\Internals
     **/
    class ShipmentExtraServiceTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function validateValue()
        {
        }
        public static function deleteByShipmentId($shipmentId)
        {
        }
    }
    /**
     * Class TransferProviderCompatibility
     */
    class TransferProviderCompatibility extends \Bitrix\Sale\Internals\TransferProviderBase
    {
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function tryShip(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function isNeedShip(array $products)
        {
        }
        /**
         * @param Sale\Shipment $shipment
         *
         * @return array
         * @throws Main\ObjectNotFoundException
         */
        private static function getReservedQuantity(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param Sale\ShipmentItem[] $shipmentItemList
         * @param array $reservedQuantityList
         *
         * @throws Main\ObjectNotFoundException
         */
        private static function setReservedQuantityToShipmentItem($shipmentItemList, array $reservedQuantityList)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function ship(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function reserve(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return array
         */
        private static function getShipmentItemListFromProducts(array $products)
        {
        }
        /**
         * @param Sale\ShipmentItem[] $shipmentItemList
         * @param Sale\Result $result
         *
         * @return array
         * @throws Main\ObjectNotFoundException
         */
        private static function createListFromTryShipmentResult($shipmentItemList, \Bitrix\Sale\Result $result)
        {
        }
        /**
         * @param PoolQuantity $pool
         * @param array $products
         * @param array $productTryShipList
         *
         * @return Sale\Result
         * @throws Main\ArgumentException
         */
        public function setItemsResultAfterTryShip(\Bitrix\Sale\Internals\PoolQuantity $pool, array $products, array $productTryShipList)
        {
        }
        /**
         * @param PoolQuantity $pool
         * @param array $products
         * @param array $productTryShipList
         *
         * @return Sale\Result
         * @throws Main\ArgumentException
         */
        public function setItemsResultAfterTryUnship(\Bitrix\Sale\Internals\PoolQuantity $pool, array $products, array $productTryShipList)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function getAvailableQuantity(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function getAvailableQuantityAndPrice(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function getProductData(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public function getBundleItems(array $products)
        {
        }
        /**
         * @return Sale\Result
         */
        public function getStoresCount()
        {
        }
        /**
         * @param array $products
         *
         * @return mixed
         * @throws Main\SystemException
         */
        public function deliver(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return mixed
         * @throws Main\SystemException
         */
        public function viewProduct(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return mixed
         * @throws Main\SystemException
         */
        public function getProductListStores(array $products)
        {
        }
        /**
         * @param array $items
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function checkBarcode(array $items)
        {
        }
        /**
         * @param array $products
         *
         * @return mixed
         * @throws Main\SystemException
         */
        public function recurring(array $products)
        {
        }
    }
    class CompanyGroupTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function deleteByCompanyId($id)
        {
        }
    }
    class EventsPool extends \Bitrix\Sale\Internals\PoolBase
    {
        protected static $events = array();
        public static function getEvents($code)
        {
        }
        public static function getEventsByType($code, $type)
        {
        }
        /**
         * @param $code
         * @param $type
         * @param $event
         */
        public static function addEvent($code, $type, $event)
        {
        }
        /**
         * @param $code
         * @param $type
         *
         * @return bool
         */
        public static function isEventTypeExists($code, $type)
        {
        }
        /**
         * @param null $code
         * @param null $type
         */
        public static function resetEvents($code = null, $type = null)
        {
        }
    }
    /**
     * Class ShipmentItemStoreTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> BASKET_ID int mandatory
     * <li> BARCODE string(100) optional
     * <li> STORE_ID int mandatory
     * <li> QUANTITY double mandatory
     * <li> DATE_CREATE datetime optional
     * <li> DATE_MODIFY datetime optional
     * <li> CREATED_BY int optional
     * <li> MODIFIED_BY int optional
     * </ul>
     *
     * @package Bitrix\Sale
     **/
    class ShipmentItemStoreTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for BARCODE field.
         *
         * @return array
         */
        public static function validateBarcode()
        {
        }
    }
}
namespace Bitrix\Sale\Internals\Analytics {
    /**
     * Class Factory
     * @package Bitrix\Sale\Internals\Analytics
     */
    final class Factory
    {
        /**
         * @param string $type
         * @return Provider|null
         */
        public static function create(string $type) : ?\Bitrix\Sale\Internals\Analytics\Provider
        {
        }
    }
    /**
     * Class Sender
     * @package Bitrix\Sale\Internals\Analytics
     */
    final class Sender
    {
        protected const URL = 'https://util.1c-bitrix.ru/analytics.php';
        /** @var Provider $provider */
        private $provider;
        /**
         * Service constructor.
         * @param Provider $provider
         */
        public function __construct(\Bitrix\Sale\Internals\Analytics\Provider $provider)
        {
        }
        /**
         * @param DateTime $dateFrom
         * @param DateTime $dateTo
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\LoaderException
         */
        public function sendForPeriod(\Bitrix\Main\Type\DateTime $dateFrom, \Bitrix\Main\Type\DateTime $dateTo) : bool
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\LoaderException
         */
        private function getCommonData() : array
        {
        }
        /**
         * @param array $request
         * @return string
         * @throws \Bitrix\Main\LoaderException
         */
        private static function signRequest(array $request) : string
        {
        }
    }
}
namespace Bitrix\Sale\Internals {
    /**
     * Class ItemsPool
     * @package Bitrix\Sale\Internals
     */
    class ItemsPool extends \Bitrix\Sale\Internals\PoolBase
    {
        protected static $pool = array();
    }
    class OrderPropsValueTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function getNameValidators()
        {
        }
        public static function getCodeValidators()
        {
        }
    }
    class PaySystemExtraServiceTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function validateCode()
        {
        }
        public static function validateName()
        {
        }
        public static function validateDescription()
        {
        }
        public static function validateClassName()
        {
        }
        public static function validateShowMode()
        {
        }
        public static function validateDefaultValue()
        {
        }
        public static function validateActive()
        {
        }
        public static function onBeforeDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
    class UserBudgetPool
    {
        protected static $userBudgetPool = array();
        protected $items = array();
        const BUDGET_TYPE_ORDER_CANCEL_PART = 'ORDER_CANCEL_PART';
        //
        const BUDGET_TYPE_ORDER_UNPAY = 'ORDER_UNPAY';
        //
        const BUDGET_TYPE_ORDER_PART_RETURN = 'ORDER_PART_RETURN';
        //
        const BUDGET_TYPE_OUT_CHARGE_OFF = 'OUT_CHARGE_OFF';
        //
        const BUDGET_TYPE_EXCESS_SUM_PAID = 'EXCESS_SUM_PAID';
        //
        const BUDGET_TYPE_MANUAL = 'MANUAL';
        //
        const BUDGET_TYPE_ORDER_PAY = 'ORDER_PAY';
        //
        const BUDGET_TYPE_ORDER_PAY_PART = 'ORDER_PAY_PART';
        //
        public function __construct()
        {
        }
        /**
         * @param $sum
         * @param $type
         * @param Sale\Order $order
         * @param Sale\Payment $payment
         */
        public function add($sum, $type, \Bitrix\Sale\Order $order, \Bitrix\Sale\Payment $payment = null)
        {
        }
        /**
         * @return array
         */
        public function get()
        {
        }
        /**
         * @param $index
         * @return bool
         */
        public function delete($index)
        {
        }
        /**
         * @param $key
         * @return UserBudgetPool
         */
        public static function getUserBudgetPool($key)
        {
        }
        /**
         * @param Sale\Order $order
         * @param $value
         * @param $type
         * @param Sale\Payment $payment
         */
        public static function addPoolItem(\Bitrix\Sale\Order $order, $value, $type, \Bitrix\Sale\Payment $payment = null)
        {
        }
        /**
         * @param $userId
         * @return Sale\Result
         */
        public static function onUserBudgetSave($userId)
        {
        }
        /**
         * @param Sale\Order $order
         * @return int
         */
        public static function getUserBudgetTransForOrder(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param Sale\Order $order
         * @return int
         */
        public static function getUserBudgetByOrder(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param $userId
         * @param $currency
         * @return float|null
         */
        public static function getUserBudget($userId, $currency)
        {
        }
    }
}
namespace Bitrix\Sale {
    /**
     * Class Basket
     * @package Bitrix\Sale
     */
    class Basket extends \Bitrix\Sale\BasketBase
    {
        const BASKET_DELETE_LIMIT = 2000;
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @param array $parameters
         * @return Main\DB\Result|mixed
         * @throws Main\ArgumentException
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * @param $idOrder
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\NotImplementedException
         */
        public static function deleteNoDemand($idOrder)
        {
        }
        /**
         * @param int $days
         *
         * @return bool
         */
        public static function deleteOld($days)
        {
        }
        /**
         * @param $days
         * @param int $speed
         * @return string
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function deleteOldAgent($days, $speed = 0)
        {
        }
        /**
         * @return array|bool
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\NotImplementedException
         */
        // must be moved to notify
        public function getListOfFormatText()
        {
        }
        /**
         * Save basket
         *
         * @return Result
         */
        public function save()
        {
        }
        /**
         * @param array $itemValues
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\NotImplementedException
         */
        protected function deleteInternal(array $itemValues)
        {
        }
        /**
         * @param $itemValues
         * @throws Main\ArgumentException
         * @return void
         */
        protected function callEventOnSaleBasketItemDeleted($itemValues)
        {
        }
        /**
         * @internal
         *
         * @param $index
         * @return BasketItemBase
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public function deleteItem($index)
        {
        }
    }
    class SiteCurrencyTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        private static $cache = array();
        /**
         * @param string $siteId - LID
         * @return array - LID, CURRENCY
         */
        public static function getCurrency($siteId)
        {
        }
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onAfterUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onAfterDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
    class CompanyTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function getUfId()
        {
        }
    }
    /**
     * Class PropertyValueCollectionBase
     * @package Bitrix\Sale
     */
    abstract class PropertyValueCollectionBase extends \Bitrix\Sale\Internals\EntityCollection
    {
        /** @var OrderBase */
        protected $order;
        protected $propertyGroups = null;
        /**
         * @param OrderBase $order
         * @return PropertyValueCollectionBase
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function load(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * @return OrderBase
         */
        protected function getEntityParent()
        {
        }
        /**
         * @param array $prop
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        public function createItem(array $prop)
        {
        }
        /**
         * @param Internals\CollectableEntity $property
         * @return Internals\CollectableEntity|Result
         * @throws Main\ArgumentTypeException
         */
        public function addItem(\Bitrix\Sale\Internals\CollectableEntity $property)
        {
        }
        /**
         * @internal
         *
         * @param $index
         * @return Result|mixed
         * @throws ArgumentOutOfRangeException
         */
        public function deleteItem($index)
        {
        }
        /**
         * @param Internals\CollectableEntity $item
         * @param null $name
         * @param null $oldValue
         * @param null $value
         * @return Result
         * @throws Main\NotSupportedException
         */
        public function onItemModify(\Bitrix\Sale\Internals\CollectableEntity $item, $name = null, $oldValue = null, $value = null)
        {
        }
        /**
         * @param $name
         * @param $oldValue
         * @param $value
         * @return Result
         */
        public function onOrderModify($name, $oldValue, $value)
        {
        }
        /**
         * @return OrderBase
         */
        public function getOrder()
        {
        }
        /**
         * @param OrderBase $order
         */
        public function setOrder(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * @return static
         */
        private static function createPropertyValueCollectionObject()
        {
        }
        /**
         * @param $name
         * @return PropertyValueBase
         * @throws ArgumentOutOfRangeException
         */
        public function getAttribute($name)
        {
        }
        /**
         * @return PropertyValueBase
         * @throws ArgumentOutOfRangeException
         */
        public function getUserEmail()
        {
        }
        /**
         * @return PropertyValueBase
         * @throws ArgumentOutOfRangeException
         */
        public function getPayerName()
        {
        }
        /**
         * @return PropertyValueBase
         * @throws ArgumentOutOfRangeException
         */
        public function getDeliveryLocation()
        {
        }
        /**
         * @return PropertyValueBase
         * @throws ArgumentOutOfRangeException
         */
        public function getTaxLocation()
        {
        }
        /**
         * @return PropertyValueBase
         * @throws ArgumentOutOfRangeException
         */
        public function getProfileName()
        {
        }
        /**
         * @return PropertyValueBase
         * @throws ArgumentOutOfRangeException
         */
        public function getDeliveryLocationZip()
        {
        }
        /**
         * @return PropertyValueBase
         * @throws ArgumentOutOfRangeException
         */
        public function getPhone()
        {
        }
        /**
         * @return PropertyValueBase
         * @throws ArgumentOutOfRangeException
         */
        public function getAddress()
        {
        }
        /**
         * @param $post
         * @param $files
         * @return Result
         * @throws ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        public function setValuesFromPost($post, $files)
        {
        }
        /**
         * @param $fields
         * @param $files
         * @param bool $skipUtils
         * @return Result
         * @throws Main\SystemException
         */
        public function checkErrors($fields, $files, $skipUtils = false)
        {
        }
        /**
         * @param array $rules
         * @param array $fields
         *
         * @return Result
         */
        public function checkRequired(array $rules, array $fields)
        {
        }
        /**
         * @return array|null
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function getGroups()
        {
        }
        /**
         * @param $groupId
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function getPropertiesByGroupId($groupId)
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function getArray()
        {
        }
        /**
         * @param $orderPropertyId
         * @return PropertyValueBase|null
         */
        public function getItemByOrderPropertyId($orderPropertyId)
        {
        }
        /**
         * @param string $propertyCode
         * @return PropertyValueBase[]
         */
        public function getItemsByOrderPropertyCode(string $propertyCode)
        {
        }
        /**
         * @param string $propertyCode
         * @return PropertyValueBase|null
         */
        public function getItemByOrderPropertyCode(string $propertyCode)
        {
        }
        /**
         * @param callable $filter
         * @return PropertyValueBase[]
         */
        public function getItemsByFilter(callable $filter)
        {
        }
        /**
         * @return Result
         * @throws Main\ObjectNotFoundException
         */
        public function verify()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        public function save()
        {
        }
        /**
         * @param $values
         * @throws Main\NotImplementedException
         */
        protected function callEventOnSalePropertyValueDeleted($values)
        {
        }
        /**
         * @param $values
         * @throws Main\NotImplementedException
         */
        protected function callEventOnBeforeSalePropertyValueDeleted($values)
        {
        }
        /**
         * @return array
         * @throws Main\NotImplementedException
         * @throws Main\ObjectNotFoundException
         */
        private function getOriginalItemsValues()
        {
        }
        /**
         * @param $primary
         * @throws Main\NotImplementedException
         * @return Entity\DeleteResult
         */
        protected static function deleteInternal($primary)
        {
        }
        /**
         * @param array $parameters
         * @throws Main\NotImplementedException
         * @return Main\DB\Result
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * @internal
         *
         * @param $idOrder
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        public static function deleteNoDemand($idOrder)
        {
        }
        /**
         * @param $value
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         */
        private static function delete(array $value)
        {
        }
        /**
         * @internal
         *
         * @throws ArgumentOutOfRangeException
         * @throws Main\ArgumentException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectNotFoundException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function refreshRelated()
        {
        }
        /**
         * @deprecated
         * @use \Bitrix\Sale\PropertyValueCollectionBase::getPropertiesByGroupId
         *
         * @param $groupId
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function getGroupProperties($groupId)
        {
        }
    }
    class BuyerStatistic
    {
        /**
         * Executes the query and returns selection by parameters of the query. This function is an alias to the Query object functions
         *
         * @return Main\DB\Result
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getList($filter)
        {
        }
        /**
         * Fill statistic for user for certain site and currency.
         * The function'll update values if user entry exists or it'll create new if user entry doesn't exist
         *
         * @param $userId
         * @param $currency
         * @param $lid
         *
         * @return Main\Result
         */
        public static function calculate($userId, $currency, $lid)
        {
        }
        /**
         * Collect statistic (last order date, count of full paid orders, count of partially paid orders and sum of paid payments) for user, certain site and currency.
         *
         * @param $userId
         * @param $currency
         * @param $lid
         *
         * @return Result
         */
        protected static function collectUserData($userId, $currency, $lid)
        {
        }
    }
    class OrderProcessingTable extends \Bitrix\Main\Entity\DataManager
    {
        protected $orderProcessedCache = array();
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        /**
         * Wether order was processed
         *
         * @param int $orderId
         *
         * @return bool
         */
        public static function hasAddedProducts($orderId = 0)
        {
        }
        /**
         * Wether order was processed
         *
         * @param int $orderId
         *
         * @return bool|null
         */
        public static function hasRemovedProducts($orderId = 0)
        {
        }
        /**
         * Mark order as processed
         *
         * @param int $orderId
         */
        public static function markProductsAdded($orderId = 0)
        {
        }
        /**
         * Mark order as processed
         *
         * @param int $orderId
         */
        public static function markProductsRemoved($orderId = 0)
        {
        }
        /**
         * Clear table
         *
         * @param int $orderId
         */
        public static function clear()
        {
        }
    }
    class Tax
    {
        /** @var OrderBase|null */
        protected $order = null;
        /** @var array */
        protected $list = null;
        /** @var array  */
        protected $availableList = null;
        /** @var array */
        protected $changedValues = array();
        /** @var bool  */
        protected $deliveryTax = null;
        /** @var bool  */
        protected $isClone = false;
        /** @var bool  */
        protected $isExternal = false;
        /**
         * Tax constructor.
         */
        protected function __construct()
        {
        }
        /**
         * @return string
         */
        protected static function getTaxClassName()
        {
        }
        /**
         * @return string
         */
        protected static function getOrderTaxClassName()
        {
        }
        /**
         * @return array
         */
        public function getTaxList()
        {
        }
        /**
         * @param array $list
         */
        public function initTaxList(array $list)
        {
        }
        /**
         * @return OrderBase
         */
        public function getOrder()
        {
        }
        /**
         * Calculation of taxes
         *
         * @return Result
         * @throws Main\ObjectNotFoundException
         */
        public function calculate()
        {
        }
        /**
         * @return Result
         * @throws Main\ObjectNotFoundException
         */
        public function calculateDelivery()
        {
        }
        /**
         * @param array $taxList
         * @return array
         */
        protected function checkModifyTaxList(array $taxList)
        {
        }
        /**
         * @return Result
         * @throws Main\ObjectNotFoundException
         */
        public function save()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         */
        private static function createTaxObject()
        {
        }
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @param OrderBase $order
         *
         * @return Tax
         */
        public static function load(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * @return array
         */
        protected function loadList()
        {
        }
        public function resetTaxList()
        {
        }
        public function resetAvailableTaxList()
        {
        }
        /**
         *
         */
        public function refreshData()
        {
        }
        /**
         * @param $userId
         * @return array
         */
        public static function loadExemptList($userId)
        {
        }
        /**
         * @return array
         */
        public function getAvailableList()
        {
        }
        /**
         * @return array
         */
        protected function loadAvailableList()
        {
        }
        /**
         * @param $value
         */
        public function setDeliveryCalculate($value)
        {
        }
        /**
         * @return bool
         */
        public function isDeliveryCalculate()
        {
        }
        /**
         * @internal
         * @param \SplObjectStorage $cloneEntity
         *
         * @return Tax
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * @return bool
         */
        public function isClone()
        {
        }
    }
    /**
     * Class Basket
     * @package Bitrix\Sale
     */
    class Recurring
    {
        /**
         * @param Order $order
         * @param array $resultList
         *
         * @throws Main\ObjectNotFoundException
         */
        public static function repeat(\Bitrix\Sale\Order $order, array $resultList)
        {
        }
    }
    /**
     * Class PropertyValueBase
     * @package Bitrix\Sale
     */
    abstract class PropertyBase
    {
        protected $fields = [];
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @param $name
         * @return mixed
         */
        public function getField($name)
        {
        }
        /**
         * @param array $parameters
         * @throws Main\NotImplementedException
         * @return Main\DB\Result
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * @param $propertyId
         * @return PropertyBase
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getObjectById($propertyId)
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function getGroupInfo()
        {
        }
        /**
         * PropertyBase constructor.
         * @param array $property
         * @param array|null $relation
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function __construct(array $property, array $relation = null)
        {
        }
        /**
         * @param $value
         * @return array|mixed|string|null
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function normalizeValue($value)
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function loadOptions()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function loadRelations()
        {
        }
        /**
         * @param $personTypeId
         * @param $request
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\SystemException
         */
        public static function getMeaningfulValues($personTypeId, $request)
        {
        }
        /**
         * @param $value
         * @return Result
         * @throws Main\SystemException
         */
        public function checkValue($value)
        {
        }
        /**
         * @param $key
         * @param $value
         *
         * @return Result
         * @throws Main\SystemException
         */
        public function checkRequiredValue($value)
        {
        }
        /**
         * @param PropertyValueBase $propertyValue
         * @return array|mixed|string|null
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        public function getPreparedValueForSave(\Bitrix\Sale\PropertyValueBase $propertyValue)
        {
        }
        /**
         * @param $value
         * @return string
         * @throws Main\SystemException
         */
        public function getViewHtml($value)
        {
        }
        /**
         * @param array $values
         * @return string
         * @throws Main\SystemException
         */
        public function getEditHtml(array $values)
        {
        }
        /**
         * @return mixed
         */
        public function getFields()
        {
        }
        /**
         * @return mixed
         */
        public function getId()
        {
        }
        /**
         * @return mixed
         */
        public function getPersonTypeId()
        {
        }
        /**
         * @return mixed
         */
        public function getGroupId()
        {
        }
        /**
         * @return mixed
         */
        public function getName()
        {
        }
        /**
         * @return mixed
         */
        public function getRelations()
        {
        }
        /**
         * @return mixed
         */
        public function getDescription()
        {
        }
        /**
         * @return mixed
         */
        public function getType()
        {
        }
        /**
         * @return bool
         */
        public function isRequired()
        {
        }
        /**
         * @return bool
         */
        public function isUtil()
        {
        }
        /**
         * @return mixed
         */
        public function getOptions()
        {
        }
        /**
         * @param $value
         */
        public function onValueDelete($value)
        {
        }
    }
    /**
     * Class PropertyValueBase
     * @package Bitrix\Sale
     */
    class Property extends \Bitrix\Sale\PropertyBase
    {
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @param array $parameters
         * @return Main\ORM\Query\Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getList(array $parameters = array())
        {
        }
    }
}
namespace Bitrix\Sale\PaySystem {
    /**
     * Functions for interacting with ASN.1 data streams.
     *
     * Note that this class only implements a small subset of the ASN.1 DER, and should
     * not be used as a general-purpose ASN.1 encoder/decoder.
     */
    class ASN1
    {
        const UNIVERSAL_CLASS = 0x0;
        const APPLICATION_CLASS = 0x40;
        const CONTEXT_CLASS = 0x80;
        const PRIVATE_CLASS = 0xc0;
        const INTEGER_TYPE = 0x2;
        const BIT_STRING = 0x3;
        const OCTET_STRING = 0x4;
        const NULL_TYPE = 0x5;
        const OID = 0x6;
        const SEQUENCE = 0x10;
        /**
         * Reads a DER stream and decodes a single object
         *
         * @param string $der the data stream
         * @param int $offset the offset of the data stream containing the object
         * to decode
         * @param mixed &$data the decoded object
         * @param bool $ignore_bit_strings whether to refrain from moving the
         * offset when reading a bit string - this allows the caller to read the
         * bit string manually
         * @return int the number of bytes read, or 0 if there is an error
         */
        static function readDER($der, $offset, &$data, $ignore_bit_strings = FALSE)
        {
        }
        /**
         * Encodes a value into a DER object.
         *
         * @param int $type the DER tag of the object
         * @param string $value the value to encode
         * @param bool $primitive whether the object is of a primitive or
         * constructed type
         * @return string the encoded object
         */
        static function encodeDER($type, $value = '', $primitive = true, $class = 0)
        {
        }
        /**
         * Decodes a DER-encoded object identifier into a string.
         *
         * @param $string oid the binary DER-encoded object identifier
         * @return $string the decoded string
         */
        static function decodeOID($oid)
        {
        }
        /**
         * Encodes a string into a DER-encoded object identifier.
         *
         * @param $string $str the object identifier string
         * @return $string the binary DER-encoded object identifier
         */
        static function encodeOID($str)
        {
        }
    }
    /**
     * Class Logger
     * @package Bitrix\Sale\PaySystem
     */
    class Logger
    {
        const E_ALL = 0;
        const E_ERROR = 1;
        /**
         * @param $error
         * @throws ArgumentTypeException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ObjectException
         */
        public static function addError($error)
        {
        }
        /**
         * @param $debugInfo
         * @throws ArgumentTypeException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ObjectException
         */
        public static function addDebugInfo($debugInfo)
        {
        }
        /**
         * @return int
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        private static function getLevel()
        {
        }
        /**
         * @param array $fields
         * @throws \Exception
         *
         * @deprecated Use \Bitrix\Sale\PaySystem\Logger::addError instead
         */
        public static function add(array $fields)
        {
        }
    }
    interface IRefund
    {
        public function refund(\Bitrix\Sale\Payment $payment, $refundableSum);
    }
    /**
     * Class ServiceResult
     * @package Bitrix\Sale\PaySystem
     */
    class ServiceResult extends \Bitrix\Main\Entity\Result
    {
        const MONEY_COMING = 'money_coming';
        const MONEY_LEAVING = 'money_leaving';
        private $psData = array();
        private $resultApplied = true;
        private $operationType = null;
        private $template = '';
        private $paymentUrl = '';
        /**
         * @param array $psData
         */
        public function setPsData($psData)
        {
        }
        /**
         * @return array
         */
        public function getPsData()
        {
        }
        /**
         * @return bool
         */
        public function isResultApplied()
        {
        }
        /**
         * @param $operationType
         */
        public function setOperationType($operationType)
        {
        }
        /**
         * @return null
         */
        public function getOperationType()
        {
        }
        /**
         * @param $resultApplied
         */
        public function setResultApplied($resultApplied)
        {
        }
        /**
         * @return string
         */
        public function getTemplate()
        {
        }
        /**
         * @param string $template
         */
        public function setTemplate($template)
        {
        }
        /**
         * @return string
         */
        public function getPaymentUrl() : string
        {
        }
        /**
         * @param $paymentUrl
         */
        public function setPaymentUrl($paymentUrl) : void
        {
        }
        /**
         * @return Error[]
         */
        public function getBuyerErrors() : array
        {
        }
        /**
         * @return array
         */
        public function getBuyerErrorMessages() : array
        {
        }
        /**
         * @return Internals\CollectionFilterIterator
         */
        public function getBuyerErrorIterator() : \Bitrix\Sale\Internals\CollectionFilterIterator
        {
        }
    }
    interface IRequested
    {
        /**
         * @param Request $request
         * @return ServiceResult
         */
        public function createMovementListRequest(\Bitrix\Main\Request $request);
        /**
         * @param $requestId
         * @return ServiceResult
         */
        public function getMovementListStatus($requestId = null);
        /**
         * @param $requestId
         * @return ServiceResult
         */
        public function getMovementList($requestId = null);
    }
    /**
     * Class Service
     * @package Bitrix\Sale\PaySystem
     */
    class Service
    {
        const EVENT_ON_BEFORE_PAYMENT_PAID = 'OnSalePsServiceProcessRequestBeforePaid';
        const EVENT_INITIATE_PAY_SUCCESS = 'onSalePsInitiatePaySuccess';
        const EVENT_INITIATE_PAY_ERROR = 'onSalePsInitiatePayError';
        const PAY_SYSTEM_PREFIX = 'PAYSYSTEM_';
        /** @var ServiceHandler|IHold|IPartialHold|IRefund|IPrePayable|ICheckable|IPayable|IRequested|IPdf|IDocumentGeneratePdf|IRecurring $handler */
        private $handler = null;
        /** @var array */
        private $fields = array();
        /** @var bool */
        protected $isClone = false;
        /** @var Context  */
        protected $context;
        /**
         * Service constructor.
         * @param $fields
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function __construct($fields)
        {
        }
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @param int $mode
         * @return ServiceResult
         * @throws NotSupportedException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\ObjectException
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null, $mode = \Bitrix\Sale\PaySystem\BaseServiceHandler::STREAM)
        {
        }
        /**
         * @return bool
         */
        public function isRefundable()
        {
        }
        /**
         * @param Payment $payment
         * @param int $refundableSum
         * @return ServiceResult|Result
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function refund(\Bitrix\Sale\Payment $payment, $refundableSum = 0)
        {
        }
        /**
         * @param Request $request
         * @return Result
         * @throws NotSupportedException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\ObjectException
         * @throws \Bitrix\Main\ObjectNotFoundException
         */
        public function processRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @return string
         */
        public function getConsumerName()
        {
        }
        /**
         * @return array
         */
        public function getHandlerDescription()
        {
        }
        /**
         * @return bool
         */
        public function isBlockable()
        {
        }
        /**
         * @param Payment $payment
         * @return ServiceResult
         * @throws SystemException
         */
        public function cancel(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @param int $sum
         * @return ServiceResult
         * @throws SystemException
         */
        public function confirm(\Bitrix\Sale\Payment $payment, $sum = 0)
        {
        }
        /**
         * @param $name
         * @return mixed
         */
        public function getField($name)
        {
        }
        /**
         * @return array
         */
        public function getCurrency()
        {
        }
        /**
         * @return bool
         */
        public function isCash()
        {
        }
        /**
         * @param Payment $payment
         * @return ServiceResult
         */
        public function creditNoDemand(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return ServiceResult
         */
        public function debitNoDemand(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @return bool
         */
        public function isPayable()
        {
        }
        /**
         * @return bool
         */
        public function isAffordPdf()
        {
        }
        /**
         * @return bool
         */
        public function isAffordDocumentGeneratePdf()
        {
        }
        /**
         * @param Payment $payment
         * @return mixed
         * @throws NotSupportedException
         */
        public function getPdfContent(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed
         * @throws NotSupportedException
         */
        public function getPdf(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @param $params
         * @return mixed
         * @throws NotSupportedException
         */
        public function registerCallbackOnGenerate(\Bitrix\Sale\Payment $payment, $params)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed
         * @throws NotSupportedException
         */
        public function isPdfGenerated(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed
         */
        public function getPaymentPrice(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param array $params
         */
        public function setTemplateParams(array $params)
        {
        }
        /**
         * @param Payment|null $payment
         * @param $templateName
         * @return ServiceResult
         */
        public function showTemplate(\Bitrix\Sale\Payment $payment = null, $templateName)
        {
        }
        /**
         * @return bool
         */
        public function isPrePayable()
        {
        }
        /**
         * @param Payment|null $payment
         * @param Request $request
         * @throws NotSupportedException
         */
        public function initPrePayment(\Bitrix\Sale\Payment $payment = null, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @return mixed
         * @throws NotSupportedException
         */
        public function getPrePaymentProps()
        {
        }
        /**
         * @param array $orderData
         * @return mixed
         * @throws NotSupportedException
         */
        public function basketButtonAction(array $orderData = array())
        {
        }
        /**
         * @param array $orderData
         * @return mixed
         * @throws NotSupportedException
         */
        public function setOrderDataForPrePayment($orderData = array())
        {
        }
        /**
         * @param $orderData
         * @return mixed
         * @throws NotSupportedException
         */
        public function payOrderByPrePayment($orderData)
        {
        }
        /**
         * @return array
         */
        public function getFieldsValues()
        {
        }
        /**
         * @return bool
         */
        public function isAllowEditPayment()
        {
        }
        /**
         * @return bool
         */
        public function isCheckable()
        {
        }
        /**
         * @param Payment $payment
         * @return ServiceResult
         */
        public function check(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param \SplObjectStorage $cloneEntity
         *
         * @return Service
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * @return bool
         */
        public function isClone()
        {
        }
        /**
         * @return bool
         */
        public function isCustom()
        {
        }
        /**
         * @param Payment $payment
         * @return array
         */
        public function getParamsBusValue(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @return bool
         */
        public function isRequested()
        {
        }
        /**
         * @param $requestId
         * @return ServiceResult
         * @throws NotSupportedException
         */
        public function checkMovementListStatus($requestId)
        {
        }
        /**
         * @param $requestId
         * @return ServiceResult
         * @throws NotSupportedException
         */
        public function getMovementList($requestId)
        {
        }
        /**
         * @param Request $request
         * @return ServiceResult
         */
        public function processAccountMovementList(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @param $movementList
         * @param string $registryType
         * @return ServiceResult
         */
        private function applyAccountMovementList($movementList, $registryType = \Bitrix\Sale\Registry::REGISTRY_TYPE_ORDER)
        {
        }
        /**
         * @param $item
         * @return array
         * @throws \Bitrix\Main\LoaderException
         */
        private function findEntityIds($item)
        {
        }
        /**
         * @return bool
         */
        public function isTuned()
        {
        }
        /**
         * @return array
         */
        public function getDemoParams()
        {
        }
        /**
         * @param $mode
         */
        public function setTemplateMode($mode)
        {
        }
        /**
         * @return Context
         */
        public function getContext() : \Bitrix\Sale\PaySystem\Context
        {
        }
        /**
         * @param Payment $payment
         * @return bool
         */
        public function isRecurring(\Bitrix\Sale\Payment $payment) : bool
        {
        }
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return ServiceResult
         */
        public function repeatRecurrent(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return ServiceResult
         */
        public function cancelRecurrent(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
    }
    abstract class BaseServiceHandler
    {
        const STREAM = 1;
        const STRING = 2;
        const TEST_URL = 'test';
        const ACTIVE_URL = 'active';
        protected $handlerType = '';
        protected $service = null;
        protected $extraParams = array();
        protected $initiateMode = self::STREAM;
        /** @var bool */
        protected $isClone = false;
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return ServiceResult
         */
        public abstract function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null);
        /**
         * BaseServiceHandler constructor.
         * @param $type
         * @param Service $service
         */
        public function __construct($type, \Bitrix\Sale\PaySystem\Service $service)
        {
        }
        /**
         * @param Payment|null $payment
         * @param string $template
         * @return ServiceResult
         */
        public function showTemplate(\Bitrix\Sale\Payment $payment = null, $template = '')
        {
        }
        /**
         * @param string $template
         * @return string
         */
        private function searchTemplate($template)
        {
        }
        /**
         * @param Payment $payment
         * @return array
         */
        public function getParamsBusValue(\Bitrix\Sale\Payment $payment = null)
        {
        }
        /**
         * @return mixed|string
         */
        protected static function getName()
        {
        }
        /**
         * @param Payment $payment
         * @param $code
         * @return mixed
         */
        protected function getBusinessValue(\Bitrix\Sale\Payment $payment = null, $code)
        {
        }
        /**
         * @return array
         */
        public function getDescription()
        {
        }
        /**
         * @param $codes
         * @return array
         */
        protected function filterDescriptionCodes($codes)
        {
        }
        /**
         * @return array
         */
        protected function getBusinessCodes()
        {
        }
        /**
         * @return array
         */
        protected function getExtraParams()
        {
        }
        /**
         * @param array $values
         */
        public function setExtraParams(array $values)
        {
        }
        /**
         * @return array
         */
        public abstract function getCurrencyList();
        /**
         * @param Payment $payment
         * @return ServiceResult
         */
        public function creditNoDemand(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return ServiceResult
         */
        public function debitNoDemand(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @return array
         */
        public static function getHandlerModeList()
        {
        }
        /**
         * @param int $mode
         */
        public function setInitiateMode($mode)
        {
        }
        /**
         * @param Payment $payment
         * @param string $action
         * @return string
         */
        protected function getUrl(\Bitrix\Sale\Payment $payment = null, $action)
        {
        }
        /**
         * @param Payment $payment
         * @return bool
         */
        protected function isTestMode(\Bitrix\Sale\Payment $payment = null)
        {
        }
        /**
         * @return array
         */
        protected function getUrlList()
        {
        }
        /**
         * @param \SplObjectStorage $cloneEntity
         *
         * @return BaseServiceHandler
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * @return bool
         */
        public function isClone()
        {
        }
        /**
         * @return string
         */
        public function getHandlerType()
        {
        }
        /**
         * @param $content
         */
        public function OnEndBufferContent(&$content)
        {
        }
        /**
         * @return array
         */
        public function getDemoParams()
        {
        }
        /**
         * @return bool
         */
        public function isTuned()
        {
        }
    }
    interface ICheckable
    {
        /**
         * @param Payment $payment
         * @return ServiceResult
         */
        public function check(\Bitrix\Sale\Payment $payment);
    }
    abstract class ServiceHandler extends \Bitrix\Sale\PaySystem\BaseServiceHandler
    {
        /**
         * @return array
         */
        public static function getIndicativeFields()
        {
        }
        /**
         * @param Request $request
         * @param int $paySystemId
         * @return bool
         */
        public static function isMyResponse(\Bitrix\Main\Request $request, $paySystemId)
        {
        }
        /**
         * @param Request $request
         * @param $paySystemId
         * @return bool
         */
        protected static function isMyResponseExtended(\Bitrix\Main\Request $request, $paySystemId)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return ServiceResult
         */
        public abstract function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request);
        /**
         * @param ServiceResult $result
         * @param Request $request
         * @return mixed
         */
        public function sendResponse(\Bitrix\Sale\PaySystem\ServiceResult $result, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Request $request
         * @return mixed
         */
        public abstract function getPaymentIdFromRequest(\Bitrix\Main\Request $request);
        /**
         * @param array $paySystemList
         * @return array
         */
        public static function findMyDataRefundablePage(array $paySystemList)
        {
        }
    }
    /**
     * Class CompatibilityHandler
     * @package Bitrix\Sale\PaySystem
     */
    class CompatibilityHandler extends \Bitrix\Sale\PaySystem\ServiceHandler implements \Bitrix\Sale\PaySystem\ICheckable
    {
        /**
         * @param Request $request
         * @return mixed
         */
        public function getPaymentIdFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed
         */
        protected function isTestMode(\Bitrix\Sale\Payment $payment = null)
        {
        }
        /**
         * @return mixed
         */
        protected function getUrlList()
        {
        }
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return ServiceResult
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @param Payment|null $payment
         * @param string $template
         * @return ServiceResult
         */
        public function showTemplate(\Bitrix\Sale\Payment $payment = null, $template = '')
        {
        }
        /**
         * @param Payment $payment
         * @return mixed
         */
        public function getParamsBusValue(\Bitrix\Sale\Payment $payment = null)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return string
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param $file
         * @return string
         */
        private function includeFile($file)
        {
        }
        /**
         * @param Request $request
         * @return mixed
         */
        public function getEntityIds(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        public function getPrice(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @return bool
         */
        public function isPayableCompatibility()
        {
        }
        /**
         * @return bool
         */
        public function isCheckableCompatibility()
        {
        }
        /**
         * @param Payment $payment
         * @return string|boolean
         */
        public function check(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @return array
         */
        public function getDescription()
        {
        }
        /**
         * @param array $arPSCorrespondence
         * @return array
         */
        private function convertCodesToNewFormat(array $arPSCorrespondence)
        {
        }
        /**
         * @return array
         */
        public function getDemoParams()
        {
        }
    }
    /**
     * Interface IPdf
     * @package Bitrix\Sale\PaySystem
     */
    interface IPdf
    {
        /**
         * @param Payment $payment
         * @return mixed
         */
        public function getContent(\Bitrix\Sale\Payment $payment);
        /**
         * @param Payment $payment
         * @return mixed
         */
        public function getFile(\Bitrix\Sale\Payment $payment);
        /**
         * @param Payment $payment
         * @return mixed
         */
        public function isGenerated(\Bitrix\Sale\Payment $payment);
    }
    /**
     * Class ApplePay
     * @package Bitrix\Sale\PaySystem
     */
    final class ApplePay
    {
        private const MERCHANT_SESSION_GATEWAY = "https://apple-pay-gateway.apple.com/paymentservices/paymentSession";
        private const FILE_PREFIX = "apple_pay_cert_";
        private const HTTP_RESPONSE_CODE_OK = 200;
        /** @var string */
        private $merchantIdentifier;
        /** @var string */
        private $displayName;
        /** @var string */
        private $domainName;
        /** @var string */
        private $initiativeContext;
        /** @var string */
        private $applePayCert;
        /**
         * ApplePay constructor.
         *
         * @param $merchantIdentifier
         * @param $displayName
         * @param $domainName
         * @param $applePayCert
         */
        public function __construct(string $merchantIdentifier, string $displayName, string $domainName, string $applePayCert)
        {
        }
        /**
         * @param string $initiativeContext
         */
        public function setInitiativeContext(string $initiativeContext) : void
        {
        }
        /**
         * @param $url
         * @return ServiceResult
         */
        public function getWebSession($url) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @return ServiceResult
         */
        public function getIMessageSession() : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @param array $config
         * @return ServiceResult
         * @throws Main\ArgumentNullException
         */
        public function getIMessagePayment(\Bitrix\Sale\Payment $payment, array $config) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @param array $config
         * @return ServiceResult
         * @throws Main\ArgumentNullException
         */
        private function prepareIMessageData(\Bitrix\Sale\Payment $payment, array $config) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param array $config
         * @return ServiceResult
         */
        private function checkConfig(array $config) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param $url
         * @param array $params
         * @return ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function sendRequest($url, array $params = array()) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @return array
         */
        private function getHeaders() : array
        {
        }
        /**
         * @param $applePayCert
         * @return array
         */
        private function getContextOptions($applePayCert) : array
        {
        }
        /**
         * @param $data
         * @return string
         */
        private function createTmpFile($data) : string
        {
        }
        /**
         * @param array $data
         * @return mixed
         * @throws Main\ArgumentException
         */
        private static function encode(array $data)
        {
        }
        /**
         * @param string $data
         * @return mixed
         */
        private static function decode($data)
        {
        }
        /**
         * @return string
         */
        private static function getUuid() : string
        {
        }
    }
}
namespace Bitrix\Sale\PaySystem\Internals\Analytics {
    /**
     * Class Agent
     * @package Bitrix\Sale\Cashbox\Internals\Analytics
     */
    final class Agent extends \Bitrix\Sale\Internals\Analytics\Agent
    {
        protected static function getProviderCode() : string
        {
        }
    }
    /**
     * Class PaySystem
     * @package Bitrix\Sale\PaySystem\Internals\Analytics
     */
    final class Provider extends \Bitrix\Sale\Internals\Analytics\Provider
    {
        private const TYPE = 'paysystem';
        /**
         * @return string
         */
        public static function getCode() : string
        {
        }
        /**
         * @param DateTime $dateFrom
         * @param DateTime $dateTo
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         */
        protected function getProviderData(\Bitrix\Main\Type\DateTime $dateFrom, \Bitrix\Main\Type\DateTime $dateTo) : array
        {
        }
        /**
         * @return string[]
         */
        private function getPaySystemHandlers() : array
        {
        }
        /**
         * @param string $paySystemHandler
         * @param DateTime $dateFrom
         * @param DateTime $dateTo
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         */
        private function getPayment(string $paySystemHandler, \Bitrix\Main\Type\DateTime $dateFrom, \Bitrix\Main\Type\DateTime $dateTo) : array
        {
        }
        /**
         * @param string $paySystemHandler
         * @return int[]
         * @throws \Bitrix\Main\ArgumentException
         */
        private function getPaySystemIdList(string $paySystemHandler) : array
        {
        }
        /**
         * @param array $data
         * @return string
         */
        protected function getHash(array $data) : string
        {
        }
    }
}
namespace Bitrix\Sale\PaySystem {
    /**
     * Class Context
     *
     * @package Bitrix\Sale\PaySystem
     */
    final class Context
    {
        private $url;
        /**
         * Context constructor.
         */
        public function __construct()
        {
        }
        /**
         * @param string $url
         */
        public function setUrl(string $url) : void
        {
        }
        /**
         * @return string
         */
        public function getUrl() : string
        {
        }
        /**
         * @return string
         */
        private function getCurrentUrl() : string
        {
        }
    }
    interface IHold
    {
        public function cancel(\Bitrix\Sale\Payment $payment);
        public function confirm(\Bitrix\Sale\Payment $payment);
    }
    /**
     * Class Error
     * @package Bitrix\Sale\PaySystem
     */
    final class Error extends \Bitrix\Main\Error
    {
        private const BINDING_LEVEL_BUYER = 10;
        private $bindingLevel = null;
        protected function setBindingLevel($level) : self
        {
        }
        public function isVisibleForBuyer() : bool
        {
        }
        public static function createForBuyer($message, $code = 0, $customData = null) : self
        {
        }
        public static function create($message, $code = 0, $customData = null) : self
        {
        }
    }
}
namespace {
    class IRestService
    {
        const LIST_LIMIT = 50;
        protected static function getNavData($start, $bORM = \false)
        {
        }
        protected static function setNavData($result, $dbRes)
        {
        }
        public function getDescription()
        {
        }
        protected static function sanitizeFilter($filter, array $availableFields = \null, $valueCallback = \null, array $availableOperations = \null)
        {
        }
        protected static function sanitizeOrder($order, array $availableFields = \null)
        {
        }
    }
}
namespace Bitrix\Sale\PaySystem {
    /**
     * Class RestService
     * @package Bitrix\Sale\PaySystem
     */
    class RestService extends \IRestService
    {
        const SCOPE = 'pay_system';
        const ERROR_CHECK_FAILURE = 'ERROR_CHECK_FAILURE';
        const ERROR_HANDLER_ALREADY_EXIST = 'ERROR_HANDLER_ALREADY_EXIST';
        const ERROR_HANDLER_NOT_FOUND = 'ERROR_HANDLER_NOT_FOUND';
        const ERROR_PERSON_TYPE_NOT_FOUND = 'ERROR_PERSON_TYPE_NOT_FOUND';
        const ERROR_PAY_SYSTEM_ADD = 'ERROR_PAY_SYSTEM_ADD';
        const ERROR_PAY_SYSTEM_NOT_FOUND = 'ERROR_PAY_SYSTEM_NOT_FOUND';
        const ERROR_PAY_SYSTEM_DELETE = 'ERROR_PAY_SYSTEM_DELETE';
        const ERROR_INTERNAL_INVOICE_NOT_FOUND = 'ERROR_INTERNAL_INVOICE_NOT_FOUND';
        const ERROR_INTERNAL_ORDER_NOT_FOUND = 'ERROR_INTERNAL_ORDER_NOT_FOUND';
        const ERROR_PROCESS_REQUEST_RESULT = 'ERROR_PROCESS_REQUEST_RESULT';
        const ERROR_PAY_INVOICE_NOT_SUPPORTED = 'ERROR_INVOICE_NO_SUPPORTED';
        /**
         * @return array
         */
        public static function onRestServiceBuildDescription()
        {
        }
        /**
         * @param array $params
         * @return array|int
         * @throws AccessException
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\IO\FileNotFoundException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        public static function addPaySystem(array $params)
        {
        }
        /**
         * @param $params
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\IO\FileNotFoundException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        protected static function checkParamsBeforePaySystemAdd($params)
        {
        }
        /**
         * @param $serviceId
         * @param $personTypeId
         * @throws \Exception
         */
        private static function savePersonTypeId($serviceId, $personTypeId)
        {
        }
        /**
         * @param array $params
         * @return bool
         * @throws AccessException
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\IO\FileNotFoundException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        public static function updatePaySystem(array $params)
        {
        }
        /**
         * @param $params
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\IO\FileNotFoundException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        protected static function checkParamsBeforePaySystemUpdate($params)
        {
        }
        /**
         * @param $params
         * @return bool
         * @throws AccessException
         * @throws Main\LoaderException
         * @throws RestException
         */
        public static function updateSettings($params)
        {
        }
        /**
         * @param $params
         * @throws RestException
         */
        protected static function checkParamsBeforeSettingsUpdate($params)
        {
        }
        /**
         * @param $params
         * @return array
         * @throws AccessException
         * @throws Main\LoaderException
         * @throws Main\SystemException
         * @throws RestException
         */
        public static function getSettings($params)
        {
        }
        /**
         * @param $params
         * @throws RestException
         */
        protected static function checkParamsBeforeSettingsGet($params)
        {
        }
        /**
         * @param array $params
         * @return bool
         * @throws AccessException
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        public static function deletePaySystem(array $params)
        {
        }
        /**
         * @param $params
         * @throws RestException
         */
        protected static function checkParamsBeforePaySystemDelete($params)
        {
        }
        /**
         * @param array $params
         * @return array|bool|int
         * @throws AccessException
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        public static function addHandler(array $params)
        {
        }
        /**
         * @param array $params
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        private static function checkParamsOnAddHandler(array $params)
        {
        }
        /**
         * @param array $params
         * @return bool
         * @throws AccessException
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        public static function updateHandler(array $params)
        {
        }
        /**
         * @param array $params
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        private static function checkParamsOnUpdateHandler(array $params)
        {
        }
        /**
         * @param array $params
         * @return bool
         * @throws AccessException
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        public static function deleteHandler(array $params)
        {
        }
        /**
         * @return array
         * @throws AccessException
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getHandlerList()
        {
        }
        /**
         * @param array $params
         * @return array
         * @throws AccessException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         */
        public static function getPaySystemList(array $params = [])
        {
        }
        /**
         * @param array $params
         * @return array
         * @throws AccessException
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        public static function getSettingsByInvoice(array $params)
        {
        }
        /**
         * @param array $params
         * @return array
         * @throws AccessException
         * @throws RestException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         */
        public static function getSettingsByPayment(array $params)
        {
        }
        /**
         * @param array $params
         * @return bool
         * @throws AccessException
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        public static function payInvoice(array $params)
        {
        }
        /**
         * @param array $params
         * @return bool
         * @throws AccessException
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws RestException
         */
        public static function payPayment(array $params)
        {
        }
        /**
         * @param array $params
         * @return bool
         * @throws RestException
         */
        private static function payPaymentInternal(array $params)
        {
        }
        /**
         * @param array $data
         * @return array
         */
        private static function prepareParams(array $data)
        {
        }
        /**
         * @param array $params
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        private static function checkParamsForInvoice(array $params)
        {
        }
        /**
         * @param array $params
         * @throws Main\ArgumentException
         * @throws RestException
         */
        private static function checkParamsForPayment(array $params)
        {
        }
        /**
         * @throws AccessException
         * @throws Main\LoaderException
         */
        protected static function checkOrderPermission()
        {
        }
        /**
         * @throws AccessException
         * @throws Main\LoaderException
         */
        protected static function checkPaySystemPermission()
        {
        }
        private static function saveFile($fileContent)
        {
        }
    }
    /**
     * Class PaySystemManager
     * @package Bitrix\Sale\Payment
     */
    final class Manager
    {
        const HANDLER_AVAILABLE_TRUE = true;
        const HANDLER_AVAILABLE_FALSE = false;
        const HANDLER_INDEPENDENT_TRUE = true;
        const HANDLER_INDEPENDENT_FALSE = false;
        const EVENT_ON_GET_HANDLER_DESC = 'OnSaleGetHandlerDescription';
        const CACHE_ID = "BITRIX_SALE_INNER_PS_ID";
        const TTL = 31536000;
        /**
         * @var array
         */
        private static $handlerDirectories = array('CUSTOM' => '', 'LOCAL' => '/local/php_interface/include/sale_payment/', 'SYSTEM' => '/bitrix/modules/sale/handlers/paysystem/', 'SYSTEM_OLD' => '/bitrix/modules/sale/payment/');
        /**
         * @return mixed
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function getHandlerDirectories()
        {
        }
        /**
         * @param array $params
         * @return \Bitrix\Main\DB\Result
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getList(array $params = array())
        {
        }
        /**
         * @param $id
         * @return array|false
         */
        public static function getById($id)
        {
        }
        /**
         * @param $code
         * @return array|bool
         */
        public static function getByCode($code)
        {
        }
        /**
         * @param $primary
         * @param array $data
         * @return \Bitrix\Main\Entity\UpdateResult
         * @throws \Exception
         */
        public static function update($primary, array $data)
        {
        }
        /**
         * @param array $data
         * @return \Bitrix\Main\Entity\AddResult
         */
        public static function add(array $data)
        {
        }
        /**
         * @return string
         */
        public static function generateXmlId()
        {
        }
        /**
         * @param Request $request
         * @return array|false
         * @throws ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\ObjectException
         */
        public static function searchByRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @param string $className
         * @return mixed|string
         */
        public static function getFolderFromClassName($className)
        {
        }
        /**
         * @param string $name
         * @return mixed
         */
        public static function sanitize($name)
        {
        }
        /**
         * @param $paymentId
         * @param string $registryType
         * @return array
         */
        public static function getIdsByPayment($paymentId, $registryType = \Bitrix\Sale\Registry::REGISTRY_TYPE_ORDER)
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getConsumersList()
        {
        }
        /**
         * @param $paySystemId
         * @return string
         */
        public static function getPsType($paySystemId)
        {
        }
        /**
         * @param Payment $payment
         * @param int $mode
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getListWithRestrictions(\Bitrix\Sale\Payment $payment, $mode = \Bitrix\Sale\Services\PaySystem\Restrictions\Manager::MODE_CLIENT)
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\IO\FileNotFoundException
         */
        public static function getHandlerList()
        {
        }
        /**
         * @param $path
         * @return string
         */
        public static function getClassNameFromPath($path)
        {
        }
        /**
         * @param $handler
         * @param null $psMode
         * @return array
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function getHandlerDescription($handler, $psMode = null)
        {
        }
        /**
         * @param $folder
         * @return null|string
         */
        public static function getPathToHandlerFolder($folder)
        {
        }
        /**
         * @return int
         */
        public static function getInnerPaySystemId()
        {
        }
        /**
         * @return int
         * @throws \Exception
         */
        private static function createInnerPaySystem()
        {
        }
        /**
         * @param $id
         * @return bool
         */
        public static function isExist($id)
        {
        }
        /**
         * @param $id
         * @return Service|null
         */
        public static function getObjectById($id)
        {
        }
        /**
         * @param $folder
         * @param int $paySystemId
         * @return array|mixed
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function getTariff($folder, $paySystemId = 0)
        {
        }
        /**
         * @return array
         */
        public static function getBusValueGroups()
        {
        }
        /**
         * @param $primary
         * @return \Bitrix\Main\Entity\DeleteResult
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function delete($primary)
        {
        }
        /**
         * @param $paySystemId
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getPersonTypeIdList($paySystemId)
        {
        }
        /**
         * @param array $data
         * @return Payment|null
         * @throws ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\NotSupportedException
         * @throws \Bitrix\Main\ObjectException
         * @throws \Bitrix\Main\ObjectNotFoundException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getPaymentObjectByData(array $data)
        {
        }
        /**
         * @return array
         */
        public static function getDataRefundablePage()
        {
        }
        /**
         * @return array
         */
        private static function getRestHandlers()
        {
        }
        /**
         * @param $handler
         * @return bool
         */
        public static function isRestHandler($handler)
        {
        }
        /**
         * @param $actionFile
         * @return array
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function includeHandler($actionFile)
        {
        }
    }
    interface IPayable
    {
        public function getPrice(\Bitrix\Sale\Payment $payment);
    }
    class YandexCert
    {
        public static $pkey = null;
        public static $csr = null;
        public static $sign = null;
        public static $cn = '';
        public static $errors = array();
        /**
         * @param $shopId
         * @param $companyName
         */
        public static function generate($shopId, $companyName)
        {
        }
        /**
         * @param $shopId
         * @param bool $all
         * @throws \Exception
         */
        public static function clear($shopId, $all = false)
        {
        }
        /**
         * @param $shopId
         * @return string
         */
        public static function getCn($shopId)
        {
        }
        /**
         * @param $shopId
         * @return string
         */
        private static function loadFromOptions($shopId)
        {
        }
        /**
         * @param $shopId
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function isLoaded($shopId)
        {
        }
        /**
         * @param $file
         * @param $shopId
         */
        public static function setCert($file, $shopId)
        {
        }
        /**
         * @param $shopId
         * @return mixed
         */
        public static function getSign($shopId)
        {
        }
        /**
         * @param $shopId
         * @return mixed
         */
        public static function getCert($shopId)
        {
        }
        /**
         * @param $shopId
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getCsr($shopId)
        {
        }
        /**
         * @param $field
         * @param $shopId
         * @return mixed|string
         */
        public static function getValue($field, $shopId)
        {
        }
    }
    interface IPartialHold extends \Bitrix\Sale\PaySystem\IHold
    {
        public function confirm(\Bitrix\Sale\Payment $payment, $sum = 0);
    }
    /**
     * Class RestHandler
     * @package Sale\Handlers\PaySystem
     */
    class RestHandler extends \Bitrix\Sale\PaySystem\ServiceHandler
    {
        private $handlerSettings = array();
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return ServiceResult
         * @throws \Bitrix\Main\SystemException
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @param Payment $payment
         * @return string
         */
        private function getPaymentUrl(\Bitrix\Sale\Payment $payment) : string
        {
        }
        /**
         * @return bool
         */
        private function isAllowAutoRedirect() : bool
        {
        }
        /**
         * @param Payment $payment
         * @param array $fields
         * @return array
         */
        private function getQueryDataFromFields(\Bitrix\Sale\Payment $payment, array $fields) : array
        {
        }
        /**
         * @param Payment $payment
         * @return string
         * @throws \Bitrix\Main\SystemException
         */
        private function getDefaultTemplate(\Bitrix\Sale\Payment $payment) : string
        {
        }
        /**
         * @param Payment $payment
         * @param array $fields
         * @return string
         * @throws \Bitrix\Main\SystemException
         */
        private function getTemplateFromFields(\Bitrix\Sale\Payment $payment, array $fields) : string
        {
        }
        /**
         * @param Payment $payment
         * @param $value
         * @return string[]
         */
        private function getInputParams(\Bitrix\Sale\Payment $payment, $value) : array
        {
        }
        /**
         * @param string $name
         * @param array $input
         * @return string
         * @throws \Bitrix\Main\SystemException
         */
        private function createInput(string $name, array $input) : string
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        /**
         * @return array
         */
        public function getDescription()
        {
        }
        /**
         * @return array
         */
        private function getHandlerSettings()
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return ServiceResult
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Request $request
         * @return array
         */
        private function getPsData(\Bitrix\Main\Request $request) : array
        {
        }
        /**
         * @param Request $request
         * @return mixed
         */
        public function getPaymentIdFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * For PARAMS compatibility
         *
         * @param Payment $payment
         * @param array $params
         * @return array
         */
        private function getQueryDataFromParams(\Bitrix\Sale\Payment $payment, array $params) : array
        {
        }
        /**
         * For PARAMS compatibility
         *
         * @param Payment $payment
         * @param array $params
         * @return string
         */
        private function getTemplateFromParams(\Bitrix\Sale\Payment $payment, array $params) : string
        {
        }
    }
}
namespace Bitrix\Sale\Domain\Verification {
    /**
     * Interface IVerificationable
     * @package Bitrix\Sale\Domain\Verification
     */
    interface IVerificationable
    {
    }
}
namespace Bitrix\Sale\PaySystem\Domain\Verification {
    /**
     * Interface IVerificationable
     * @package Bitrix\Sale\PaySystem\Domain\Verification
     */
    interface IVerificationable extends \Bitrix\Sale\Domain\Verification\IVerificationable
    {
        /**
         * @return array
         */
        public static function getModeList() : array;
    }
}
namespace Bitrix\Sale\Domain\Verification {
    /**
     * Class Manager
     * @package Bitrix\Main\Domain
     */
    abstract class BaseManager
    {
        private const ON_BUILD_VERIFICATION_MANAGER_LIST = "onBuildVerificationManagerList";
        /**
         * @return string
         */
        public static abstract function getPathPrefix() : string;
        /**
         * @return string
         */
        protected static abstract function getUrlRewritePath() : string;
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getSiteList() : array
        {
        }
        /**
         * @return array
         * @throws Main\LoaderException
         */
        public static function getLandingSiteList() : array
        {
        }
        /**
         * @param $domain
         * @return bool
         * @throws Main\LoaderException
         */
        public static function isLandingSite($domain) : bool
        {
        }
        /**
         * @param array $parameters
         * @return Main\ORM\Query\Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getList(array $parameters = []) : \Bitrix\Main\ORM\Query\Result
        {
        }
        /**
         * @param $data
         * @param $file (from $_FILES)
         * @return Main\ORM\Data\AddResult|Main\ORM\Data\UpdateResult|Main\Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\IO\FileNotFoundException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function save($data, $file)
        {
        }
        /**
         * @param array $data
         * @return array
         */
        private static function prepareData(array $data) : array
        {
        }
        /**
         * @param $data
         * @return Main\Result
         */
        private static function checkData($data) : \Bitrix\Main\Result
        {
        }
        /**
         * @param $id
         * @return Main\ORM\Data\DeleteResult
         * @throws \Exception
         */
        public static function delete($id) : \Bitrix\Main\ORM\Data\DeleteResult
        {
        }
        /**
         * @param $path
         * @return bool|false|string
         * @throws Main\IO\FileNotFoundException
         */
        private static function readFile($path)
        {
        }
        /**
         * @param $domain
         * @return mixed|string
         */
        private static function prepareDomain($domain)
        {
        }
        /**
         * @param $entityName
         * @return bool
         * @throws NotImplementedException
         */
        public static function needVerification($entityName) : bool
        {
        }
        /**
         * @return array
         * @throws NotImplementedException
         */
        protected static abstract function getEntityList() : array;
        /**
         * @param string $domain
         * @param string $path
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private static function addUrlRewrite(string $domain, string $path) : bool
        {
        }
        /**
         * @param string $domain
         * @param string $path
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private static function deleteUrlRewrite(string $domain, string $path) : bool
        {
        }
        /**
         * @param $domain
         * @return mixed|null
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private static function getSiteIdByDomain($domain)
        {
        }
        /**
         * @param $serverName
         * @param $requestUri
         * @return array|false
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function searchByRequest($serverName, $requestUri)
        {
        }
        /**
         * @return bool
         */
        private static function isB24() : bool
        {
        }
        /**
         * @return array|string[]
         * @throws Main\LoaderException
         */
        public static function getManagerList() : array
        {
        }
        /**
         * @param $domain
         * @return bool
         * @throws Main\LoaderException
         */
        private static function canUseUrlRewrite($domain) : bool
        {
        }
        private static function registerLandingEventHandler() : void
        {
        }
        private static function registerB24EventHandler() : void
        {
        }
        private static function unRegisterEventHandlers() : void
        {
        }
        private static function unRegisterLandingEventHandler() : void
        {
        }
        private static function unRegisterB24EventHandler() : void
        {
        }
    }
}
namespace Bitrix\Sale\PaySystem\Domain\Verification {
    /**
     * Class Manager
     * @package Bitrix\Sale\PaySystem\Domain\Verification
     */
    final class Manager extends \Bitrix\Sale\Domain\Verification\BaseManager
    {
        /** @var array */
        private static $entityList = [];
        /**
         * @inheritDoc
         */
        public static function getPathPrefix() : string
        {
        }
        /**
         * @inheritDoc
         */
        protected static function getUrlRewritePath() : string
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\IO\FileNotFoundException
         */
        protected static function getEntityList() : array
        {
        }
    }
}
namespace Bitrix\Sale\PaySystem {
    interface IPrePayable
    {
        public function initPrePayment(\Bitrix\Sale\Payment $payment = null, \Bitrix\Main\Request $request);
        public function getProps();
        public function payOrder($orderData = array());
        public function setOrderConfig($orderData = array());
        public function basketButtonAction($orderData);
    }
    /**
     * Interface IRefundExtended
     * @package Bitrix\Sale\PaySystem
     */
    interface IRefundExtended extends \Bitrix\Sale\PaySystem\IRefund
    {
        /**
         * @return bool
         */
        public function isRefundableExtended();
    }
    /**
     * Interface IRecurring
     *
     * @package Bitrix\Sale\PaySystem
     */
    interface IRecurring
    {
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return ServiceResult
         */
        public function repeatRecurrent(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null) : \Bitrix\Sale\PaySystem\ServiceResult;
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return ServiceResult
         */
        public function cancelRecurrent(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null) : \Bitrix\Sale\PaySystem\ServiceResult;
        /**
         * @param Payment $payment
         * @return bool
         */
        public function isRecurring(\Bitrix\Sale\Payment $payment) : bool;
    }
    /**
     * Interface IPdfDocumentGeneratable
     * @package Bitrix\Sale\PaySystem
     */
    interface IDocumentGeneratePdf extends \Bitrix\Sale\PaySystem\IPdf
    {
        /**
         * @param Payment $payment
         * @param $params
         * @return mixed
         */
        public function registerCallbackOnGenerate(\Bitrix\Sale\Payment $payment, $params);
    }
}
namespace Bitrix\Sale {
    class Notify
    {
        const EVENT_ORDER_STATUS_SEND_EMAIL = "OnOrderStatusSendEmail";
        const EVENT_ORDER_STATUS_EMAIL = "OnSaleStatusEMail";
        const EVENT_ON_ORDER_NEW_SEND_EMAIL = "OnOrderNewSendEmail";
        const EVENT_ORDER_NEW_SEND_EMAIL_EVENT_NAME = "SALE_NEW_ORDER";
        const EVENT_ON_SHIPMENT_DELIVER_SEND_EMAIL = "OnOrderDeliverSendEmail";
        const EVENT_SHIPMENT_DELIVER_SEND_EMAIL_EVENT_NAME = "SALE_ORDER_DELIVERY";
        const EVENT_ON_CHECK_PRINT_SEND_EMAIL = "SALE_CHECK_PRINT";
        const EVENT_ON_CHECK_PRINT_ERROR_SEND_EMAIL = "SALE_CHECK_PRINT_ERROR";
        const EVENT_ON_ORDER_PAID_SEND_EMAIL = "OnOrderPaySendEmail";
        const EVENT_ON_ORDER_CANCEL_SEND_EMAIL = "OnOrderCancelSendEmail";
        const EVENT_ORDER_PAID_SEND_EMAIL_EVENT_NAME = "SALE_ORDER_PAID";
        const EVENT_ORDER_CANCEL_SEND_EMAIL_EVENT_NAME = "SALE_ORDER_CANCEL";
        const EVENT_ORDER_TRACKING_NUMBER_SEND_EMAIL_EVENT_NAME = "SALE_ORDER_TRACKING_NUMBER";
        const EVENT_ORDER_STATUS_CHANGED_SEND_EMAIL_EVENT_NAME = "SALE_STATUS_CHANGED";
        const EVENT_SHIPMENT_TRACKING_NUMBER_SEND_EMAIL_EVENT_NAME = "SALE_ORDER_TRACKING_NUMBER";
        const EVENT_DEFAULT_STATUS_CHANGED_ID = "SALE_STATUS_CHANGED_";
        const EVENT_SHIPMENT_STATUS_SEND_EMAIL = "OnSaleShipmentStatusSendEmail";
        const EVENT_SHIPMENT_STATUS_EMAIL = "OnSaleShipmentStatusEMail";
        const EVENT_ORDER_ALLOW_PAY_SEND_EMAIL_EVENT_NAME = "SALE_ORDER_ALLOW_PAY";
        const EVENT_ON_ORDER_ALLOW_PAY_STATUS_EMAIL = "OnSaleOrderAllowPayStatusEMail";
        const EVENT_MOBILE_PUSH_ORDER_CREATED = "ORDER_CREATED";
        const EVENT_MOBILE_PUSH_ORDER_STATUS_CHANGE = "ORDER_STATUS_CHANGED";
        const EVENT_MOBILE_PUSH_ORDER_CANCELED = "ORDER_CANCELED";
        const EVENT_MOBILE_PUSH_ORDER_PAID = "ORDER_PAYED";
        const EVENT_MOBILE_PUSH_ORDER_CHECK_ERROR = "ORDER_CHECK_ERROR";
        const EVENT_MOBILE_PUSH_SHIPMENT_ALLOW_DELIVERY = "ORDER_DELIVERY_ALLOWED";
        protected static $cacheUserData = array();
        protected static $sentEventList = array();
        protected static $disableNotify = false;
        protected function __construct()
        {
        }
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @param Internals\Entity $entity
         *
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         */
        public static function sendOrderNew(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param Internals\Entity $entity
         *
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         */
        public static function sendOrderCancel(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param Internals\Entity $entity
         *
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         */
        public static function sendOrderPaid(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param Internals\Entity $entity
         *
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         */
        public static function sendOrderStatusChange(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param Internals\Entity $entity
         *
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         */
        public static function sendShipmentStatusChange(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param Internals\Entity $entity
         *
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         */
        public static function sendOrderAllowPayStatusChange(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param Internals\Entity $entity
         *
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         */
        public static function sendShipmentTrackingNumberChange(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param Internals\Entity $entity
         *
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         */
        public static function sendShipmentAllowDelivery(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param Internals\Entity $entity
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         */
        public static function sendPrintableCheck(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param Order $order
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected static function getSiteInfo(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param Order $order
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected static function getOrderPersonalDetailLink(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param Internals\Entity $entity
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function sendCheckError(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param Order $order
         *
         * @return null|string
         * @throws Main\ArgumentException
         */
        protected static function getUserEmail(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param Order $order
         *
         * @return mixed|null|string
         * @throws Main\ArgumentException
         */
        protected static function getUserName(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param Order $order
         *
         * @return Result
         */
        protected static function getAllFieldsFromOrder(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param Order $order
         *
         * @return array
         * @throws Main\ObjectNotFoundException
         */
        protected static function getOrderFields(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param BasketItem $basketItem
         *
         * @return array
         * @throws Main\ObjectNotFoundException
         */
        protected static function getBasketItemFields(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param Order $order
         *
         * @return mixed
         */
        public static function getOrderLanguageId(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * Convert an array of dates from the object to a string
         *
         * @param array $fields   The array of dates
         * @return array
         */
        public static function convertDateFieldsToOldFormat(array $fields)
        {
        }
        /**
         * Convert date object to a string
         *
         * @param string $value    Field value
         * @return string
         */
        protected static function convertDateFieldToOldFormat($value)
        {
        }
        /**
         * @param $code
         * @param $event
         *
         * @return bool
         */
        private static function hasSentEvent($code, $event)
        {
        }
        /**
         * @param $code
         * @param $event
         *
         * @return bool
         */
        private static function addSentEvent($code, $event)
        {
        }
        /**
         * @param Internals\Entity $entity
         * @param $eventName
         */
        public static function callNotify(\Bitrix\Sale\Internals\Entity $entity, $eventName)
        {
        }
        /**
         * @param $value
         */
        public static function setNotifyDisable($value)
        {
        }
        /**
         * @return bool
         */
        public static function isNotifyDisabled()
        {
        }
    }
    /**
     * Class PropertyValueCollection
     * @package Bitrix\Sale
     */
    class PropertyValueCollection extends \Bitrix\Sale\PropertyValueCollectionBase
    {
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @return Entity\Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        public function save()
        {
        }
        /**
         * @param $values
         * @throws Main\ObjectNotFoundException
         */
        protected function callEventOnSalePropertyValueDeleted($values)
        {
        }
        /**
         * @param $primary
         * @return Entity\DeleteResult
         */
        protected static function deleteInternal($primary)
        {
        }
        /**
         * @param array $parameters
         * @return Main\DB\Result
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * @return void
         */
        public static function initJs()
        {
        }
    }
    class DeliveryHandlerTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    /**
     * Class SalesZone
     * @package Bitrix\Sale *
     */
    class SalesZone
    {
        const CONN_ENTITY_NAME = 'Bitrix\\Sale\\Location\\SiteLocation';
        const LOCATION_ENTITY_NAME = 'Bitrix\\Sale\\Location\\Location';
        static $zoneCache = array();
        // functionality is called hell number of times outside, so a little cache is provided
        /**
         * @param string $lang - language Id
         * @return array - list of all regions
         */
        public static function getAllRegions($lang)
        {
        }
        /**
         * @param string $lang - language Id
         * @return array - list of all cities
         */
        public static function getAllCities($lang)
        {
        }
        /**
         * Checks if country Id is in list of sales zone countries Ids.
         * @param int $countryId
         * @param string $siteId
         * @return bool
         */
        public static function checkCountryId($countryId, $siteId)
        {
        }
        /**
         * Checks if regionId is in list of sales zone regions Ids
         * @param int $regionId
         * @param string $siteId
         * @return bool
         */
        public static function checkRegionId($regionId, $siteId)
        {
        }
        /**
         * Checks if citiy Id is in list of sales zone cities Ids
         * @param int $cityId
         * @param string $siteId
         * @return bool
         */
        public static function checkCityId($cityId, $siteId)
        {
        }
        /**
         * Checks if location id is in sales zone
         * @param int $locationId
         * @param string $siteId
         * @return bool
         */
        public static function checkLocationId($locationId, $siteId)
        {
        }
        private static function checkLocationIsInLinkedPart($locationId, $siteId)
        {
        }
        public static function setSelectedIds($siteId, $ids)
        {
        }
        public static function getSelectedIds($siteId)
        {
        }
        // returns a list of IDs of locations that are linked with $siteId and have type of $type
        private static function getSelectedTypeIds($type, $siteId)
        {
        }
        /**
         * @param string $siteId
         * @return array - sales zones cities Ids
         */
        public static function getCitiesIds($siteId)
        {
        }
        /**
         * @param string $siteId
         * @return array - sales zones regions Ids
         */
        public static function getRegionsIds($siteId)
        {
        }
        /**
         * @param string $siteId
         * @return array - sales zones countries Ids
         */
        public static function getCountriesIds($siteId)
        {
        }
        /**
         * A very important function. Here we decide what locations we need to take, 
         * making a descision based on $_REQUEST from sales zone selector.
         * 
         * Then we normalize the selection and store to database.
         * 
         * Also this function is used in data migrator.
         */
        public static function saveSelectedTypes($typeList, $siteId)
        {
        }
        /**
         * Returns filter for using in queries such as in bitrix/modules/sale/install/components/bitrix/sale.ajax.locations/search.php
         * @param string $object (city|region|country)
         * @param string $siteId
         * @return array
         */
        public static function makeSearchFilter($object, $siteId)
        {
        }
        /**
         * @param array $countriesIds
         * @param string $lang
         * @return array - regions from sales zone
         */
        public static function getRegions($countriesIds = array(), $lang = LANGUAGE_ID)
        {
        }
        /**
         * @param array $countriesIds
         * @param array $regionsIds
         * @param string $lang
         * @return array cities list from sales zone
         */
        public static function getCities($countriesIds = array(), $regionsIds = array(), $lang)
        {
        }
    }
    /**
     * Class PropertyValue
     * @package Bitrix\Sale
     */
    class PropertyValue extends \Bitrix\Sale\PropertyValueBase
    {
        /**
         * @return array
         */
        protected static function getFieldsMap()
        {
        }
        /**
         * @param OrderBase $order
         * @return array
         * @throws Main\ObjectNotFoundException
         */
        protected static function extractPaySystemIdList(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * @param OrderBase $order
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        protected static function extractDeliveryIdList(\Bitrix\Sale\OrderBase $order)
        {
        }
        /**
         * @return Result
         * @throws Main\ObjectNotFoundException
         */
        protected function update()
        {
        }
        /**
         * @return array
         */
        private function getLogFieldsForUpdate()
        {
        }
        /**
         * @return array
         */
        private function getLogFieldsForAdd()
        {
        }
        /**
         * @param $type
         * @param $fields
         * @throws Main\ArgumentException
         * @throws Main\ObjectNotFoundException
         */
        private function addToLog($type, $fields)
        {
        }
        /**
         * @return Result
         * @throws Main\ObjectNotFoundException
         */
        protected function add()
        {
        }
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @param array $data
         * @throws Main\NotImplementedException
         * @return Main\Entity\AddResult
         */
        protected function addInternal(array $data)
        {
        }
        /**
         * @param $primary
         * @param array $data
         * @throws Main\NotImplementedException
         * @return Main\Entity\UpdateResult
         */
        protected function updateInternal($primary, array $data)
        {
        }
        /**
         * @param array $parameters
         * @return Main\DB\Result|Main\ORM\Query\Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getList(array $parameters = array())
        {
        }
    }
}
namespace Bitrix\Sale\Delivery {
    class DeliveryTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Sale\Delivery\ExtraServices {
    abstract class Base
    {
        protected $id;
        protected $code;
        protected $name = "";
        protected $description = "";
        protected $className = __CLASS__;
        protected $params = array();
        protected $rights = array(\Bitrix\Sale\Delivery\ExtraServices\Manager::RIGHTS_ADMIN_IDX => "N", \Bitrix\Sale\Delivery\ExtraServices\Manager::RIGHTS_MANAGER_IDX => "N", \Bitrix\Sale\Delivery\ExtraServices\Manager::RIGHTS_CLIENT_IDX => "N");
        protected $deliveryId = 0;
        protected $initial = "";
        protected $active = false;
        protected $sort = 100;
        protected $value = null;
        protected $currency = "";
        protected $operatingCurrency = "";
        public abstract function getClassTitle();
        public function __construct($id, array $initParams, $currency, $value = null, array $additionalParams = array())
        {
        }
        public function setValue($value)
        {
        }
        public function getName()
        {
        }
        public function getDescription()
        {
        }
        public function getValue()
        {
        }
        public function getEditControl($prefix = "", $value = false)
        {
        }
        public function getViewControl()
        {
        }
        /**
         * @return float
         * @deprecated
         * use \Bitrix\Sale\Delivery\ExtraServices\Base::getPriceShipment()
         */
        public function getPrice()
        {
        }
        protected function convertToOtherCurrency($value, $currency)
        {
        }
        protected function convertToOperatingCurrency($value)
        {
        }
        public static function prepareParamsToSave(array $params)
        {
        }
        public function canUserEditValue()
        {
        }
        public function canManagerEditValue()
        {
        }
        public function getAdminDefaultControl($prefix = "", $value = false)
        {
        }
        public static function getAdminParamsControl($name, array $params, $currency = "")
        {
        }
        public function isStore()
        {
        }
        public function getParams()
        {
        }
        public static function isInner()
        {
        }
        public function setOperatingCurrency($currency)
        {
        }
        public function getOperatingCurrency()
        {
        }
        public function getCode()
        {
        }
        public function getId()
        {
        }
        public function getCostShipment(\Bitrix\Sale\Shipment $shipment = null)
        {
        }
        /**
         * @return float
         * @deprecated
         * use \Bitrix\Sale\Delivery\ExtraServices\Base::getCostShipment()
         */
        public function getCost()
        {
        }
        public static function isEmbeddedOnly()
        {
        }
        public function getPriceShipment(\Bitrix\Sale\Shipment $shipment = null)
        {
        }
    }
    class Quantity extends \Bitrix\Sale\Delivery\ExtraServices\Base
    {
        public function __construct($id, array $structure, $currency, $value = null, array $additionalParams = array())
        {
        }
        public function getClassTitle()
        {
        }
        public function setValue($value)
        {
        }
        public function getCost()
        {
        }
        public static function getAdminParamsName()
        {
        }
        public static function getAdminParamsControl($name, array $params = array(), $currency = "")
        {
        }
        public function setOperatingCurrency($currency)
        {
        }
        protected function createJSOnchange($id, $price)
        {
        }
    }
    class Store extends \Bitrix\Sale\Delivery\ExtraServices\Base
    {
        protected static function getStoresList($nameOnly = true, $siteId = "")
        {
        }
        public function getClassTitle()
        {
        }
        public function getCost()
        {
        }
        public static function getAdminParamsName()
        {
        }
        public static function getAdminParamsControl($name, array $params, $currency = "")
        {
        }
        public function getAdminDefaultControl($name = "", $value = false)
        {
        }
        public function getEditControl($prefix = "", $value = false)
        {
        }
        public function getViewControl()
        {
        }
        public static function isInner()
        {
        }
        public static function getStoresIdsFromParams(array $params)
        {
        }
    }
    class Enum extends \Bitrix\Sale\Delivery\ExtraServices\Base
    {
        public function __construct($id, array $structure, $currency, $value = null, array $additionalParams = array())
        {
        }
        public function getClassTitle()
        {
        }
        public function getCost()
        {
        }
        public static function prepareParamsToSave(array $params)
        {
        }
        public static function getAdminParamsName()
        {
        }
        public static function getAdminParamsControl($name, array $params, $currency = "")
        {
        }
        protected static function getValueHtml($name, $id, $title = "", $price = "", $currency = "")
        {
        }
        protected static function getJSPrice(array $prices)
        {
        }
        public function setOperatingCurrency($currency)
        {
        }
        protected function createOptions()
        {
        }
        public function getEditControl($prefix = "", $value = false)
        {
        }
        public function getViewControl()
        {
        }
        protected function createJSOnchange($id, array $prices)
        {
        }
    }
    class Manager
    {
        /** @var Base[] */
        protected $items = array();
        protected static $classes = null;
        protected static $cachedFields = array();
        const RIGHTS_ADMIN_IDX = 0;
        const RIGHTS_MANAGER_IDX = 1;
        const RIGHTS_CLIENT_IDX = 2;
        const STORE_PICKUP_CODE = 'BITRIX_STORE_PICKUP';
        const STORE_PICKUP_CLASS = '\\Bitrix\\Sale\\Delivery\\ExtraServices\\Store';
        /** @var bool  */
        protected $isClone = false;
        /**
         * Manager constructor.
         * @param array|int $initParam
         * @param string $currency
         * @param array $values
         * @param array $additionalParams
         */
        public function __construct($initParam, $currency = "", $values = array(), array $additionalParams = array())
        {
        }
        /**
         * @return array Classes list
         */
        public static function getClassesList()
        {
        }
        /**
         * @return bool|null
         * @throws SystemException
         * @throws \Bitrix\Main\LoaderException
         */
        public static function initClassesList()
        {
        }
        /**
         * @return Base[]
         */
        public function getItems()
        {
        }
        /**
         * @param int $id
         * @return Base|null
         */
        public function getItem($id)
        {
        }
        /**
         * @param $code
         * @return Base|null
         */
        public function getItemByCode($code)
        {
        }
        /**
         * @param Shipment|null $shipment
         * @return float
         */
        public function getTotalCostShipment(\Bitrix\Sale\Shipment $shipment = null)
        {
        }
        /**
         * Prepares fields for saving
         * @param $params
         * @return mixed
         */
        public static function prepareParamsToSave($params)
        {
        }
        /**
         * @param string $className
         * @param string $name
         * @param array $params
         * @return string Html for extra service administration
         * @throws ArgumentNullException
         * @throws SystemException
         */
        public static function getAdminParamsControl($className, $name, array $params)
        {
        }
        /**
         * @param array $params
         * @param string $currency
         * @param mixed $value
         * @param array $additionalParams
         * @return bool
         * @throws ArgumentNullException
         * @throws SystemException
         */
        public function addItem($params, $currency, $value = null, array $additionalParams = array())
        {
        }
        /**
         * @param array $values
         */
        public function setValues(array $values = array())
        {
        }
        /**
         * @param string $currency
         */
        public function setOperationCurrency($currency)
        {
        }
        /**
         * @param int $shipmentId
         * @param int $deliveryId
         * @return array
         */
        public static function getValuesForShipment($shipmentId, $deliveryId)
        {
        }
        /**
         * @param int $shipmentId
         * @param array $extraServices
         * @return Result
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Exception
         */
        public static function saveValuesForShipment($shipmentId, $extraServices)
        {
        }
        /**
         * @param int $shipmentId
         * @param int $deliveryId
         * @return int
         */
        public static function getStoreIdForShipment($shipmentId, $deliveryId)
        {
        }
        /**
         * @param int $shipmentId
         * @param int $deliveryId
         * @param int $storeId
         * @return Result
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Exception
         */
        public static function saveStoreIdForShipment($shipmentId, $deliveryId, $storeId)
        {
        }
        /**
         * @param int $deliveryId
         * @return int
         */
        protected static function getStoresValueId($deliveryId)
        {
        }
        /**
         * @param int $deliveryId
         * @param bool $onlyActive
         * @return array
         */
        public static function getStoresFields($deliveryId, $onlyActive = true)
        {
        }
        /**
         * @param int $deliveryId
         * @return array
         */
        public static function getStoresList($deliveryId)
        {
        }
        /**
         * @param int $deliveryId
         * @return Result
         * @throws \Exception
         */
        public static function deleteStores($deliveryId)
        {
        }
        /**
         * @param int $deliveryId
         * @return Result
         * @throws \Exception
         */
        public static function setStoresUnActive($deliveryId)
        {
        }
        /**
         * @param int $deliveryId
         * @param array $storesList
         * @return Result
         * @throws \Exception
         */
        public static function saveStores($deliveryId, array $storesList)
        {
        }
        /**
         * @param int $deliveryId
         * @param bool $stores
         * @return array
         * @throws SystemException
         */
        public static function getExtraServicesList($deliveryId, $stores = false)
        {
        }
        /**
         * @param array $servicesIds
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         * @internal
         */
        public static function prepareData(array $servicesIds)
        {
        }
        /**
         * @internal
         * @param \SplObjectStorage $cloneEntity
         *
         * @return Manager
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * @return bool
         */
        public function isClone()
        {
        }
        /**
         * @return float total cost
         * @deprecated
         * @use \Bitrix\Sale\Delivery\ExtraServices\Manager::getTotalCostShipment()
         */
        public function getTotalCost()
        {
        }
    }
    class Checkbox extends \Bitrix\Sale\Delivery\ExtraServices\Base
    {
        public function __construct($id, array $structure, $currency, $value = null, array $additionalParams = array())
        {
        }
        public function getClassTitle()
        {
        }
        public function getCost()
        {
        }
        public static function getAdminParamsName()
        {
        }
        public static function getAdminParamsControl($name, array $params, $currency = "")
        {
        }
        public function setOperatingCurrency($currency)
        {
        }
        protected function createJSOnchange($id, $price)
        {
        }
    }
    /**
     * Class Table
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> CODE string(50) optional
     * <li> NAME string(255) mandatory
     * <li> DESCRIPTION string(255) optional
     * <li> CLASS_NAME string(255) mandatory
     * <li> PARAMS string optional
     * <li> RIGHTS string(3) mandatory
     * <li> DELIVERY_ID int mandatory
     * <li> INIT_VALUE string(255) optional
     * <li> ACTIVE string(1) mandatory
     * <li> SORT int optional default 100
     * </ul>
     *
     * @package Bitrix\Sale\Delivery\ExtraServices
     **/
    class Table extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function validateCode()
        {
        }
        public static function validateName()
        {
        }
        public static function validateDescription()
        {
        }
        public static function validateClassName()
        {
        }
        public static function validateRights()
        {
        }
        public static function validateInitial()
        {
        }
        public static function validateActive()
        {
        }
        public static function onBeforeDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
}
namespace Bitrix\Sale\Delivery\Inputs {
    class Period extends \Bitrix\Sale\Internals\Input\Base
    {
        public static function getViewHtmlSingle(array $input, $values)
        {
        }
        public static function getEditHtmlSingle($name, array $input, $values)
        {
        }
        public static function getError(array $input, $values)
        {
        }
        public static function getErrorSingle(array $input, $values)
        {
        }
        public static function getValueSingle(array $input, $userValue)
        {
        }
        public static function getSettings(array $input, $reload)
        {
        }
        protected static function checkArgs(array $input, array $values)
        {
        }
    }
    class ReadOnly extends \Bitrix\Sale\Internals\Input\Base
    {
        public static function getViewHtmlSingle(array $input, $value)
        {
        }
        public static function getEditHtmlSingle($name, array $input, $value)
        {
        }
        public static function getError(array $input, $values)
        {
        }
        public static function getErrorSingle(array $input, $values)
        {
        }
        public static function getValueSingle(array $input, $userValue)
        {
        }
        public static function getSettings(array $input, $reload)
        {
        }
    }
    class MultiControlString extends \Bitrix\Sale\Internals\Input\Base
    {
        protected $items = array();
        protected $myParams = array();
        protected $myKey = array();
        public function addItem($key, array $control)
        {
        }
        public function setParams($key, array $params)
        {
        }
        public function getParams()
        {
        }
        public function setKey($key)
        {
        }
        public function getKey()
        {
        }
        public function isClean()
        {
        }
        public function clean()
        {
        }
        public static function getViewHtmlSingle(array $input, $values)
        {
        }
        public static function getEditHtmlSingle($name, array $input, $values)
        {
        }
        public static function getErrorSingle(array $input, $values)
        {
        }
        public static function getValueSingle(array $input, $userValue)
        {
        }
        public static function getSettings(array $input, $reload)
        {
        }
        /** Get single value.
         * @param $value
         * @return mixed - if value is multiple, get first meaningful value (which is not null)
         */
        static function asSingle($value)
        {
        }
        /**
         * @inherit
         */
        public static function getError(array $input, $value)
        {
        }
        /**
         * @inherit
         */
        public static function getRequiredError(array $input, $value)
        {
        }
    }
    class LocationMulti extends \Bitrix\Sale\Internals\Input\Base
    {
        protected static $d2LClass = '\\Bitrix\\Sale\\Delivery\\DeliveryLocationTable';
        public static function getViewHtml(array $input, $value = null)
        {
        }
        public static function getEditHtml($name, array $input, $values = null)
        {
        }
        public static function getError(array $input, $values)
        {
        }
        public static function getValueSingle(array $input, $userValue)
        {
        }
        public static function getSettings(array $input, $reload)
        {
        }
    }
    class LocationMultiExclude extends \Bitrix\Sale\Delivery\Inputs\LocationMulti
    {
        protected static $d2LClass = '\\Bitrix\\Sale\\Delivery\\DeliveryLocationExcludeTable';
    }
    class ProductCategories extends \Bitrix\Sale\Internals\Input\Base
    {
        public static function getViewHtml(array $input, $values = null)
        {
        }
        public static function getEditHtml($name, array $input, $values = null)
        {
        }
        protected static function getCategoriesList($ids)
        {
        }
        public static function getValueSingle(array $input, $userValue)
        {
        }
        public static function getError(array $input, $values)
        {
        }
        public static function getErrorSingle(array $input, $values)
        {
        }
        public static function getSettings(array $input, $reload)
        {
        }
    }
    class ButtonSelector extends \Bitrix\Sale\Internals\Input\Base
    {
        public static function getViewHtmlSingle(array $input, $values)
        {
        }
        public static function getEditHtmlSingle($name, array $input, $values)
        {
        }
        public static function getValueSingle(array $input, $userValue)
        {
        }
        public static function getSettings(array $input, $reload)
        {
        }
        public static function getError(array $input, $values)
        {
        }
        public static function getErrorSingle(array $input, $values)
        {
        }
        static function asSingle($value)
        {
        }
    }
}
namespace Bitrix\Sale\Delivery {
    /**
     * Class CalculationResult
     * @package Bitrix\Sale\Delivery
     * Used by delivery services as a calculations result structure
     */
    class CalculationResult extends \Bitrix\Sale\ResultSerializable
    {
        const PERIOD_TYPE_MIN = "MIN";
        const PERIOD_TYPE_HOUR = "H";
        const PERIOD_TYPE_DAY = "D";
        const PERIOD_TYPE_MONTH = "M";
        /** @var string */
        protected $description = "";
        /** @var string */
        protected $periodDescription = "";
        /** @var int */
        protected $periodFrom = null;
        /** @var int  */
        protected $periodTo = null;
        /** @var string  */
        protected $periodType = self::PERIOD_TYPE_DAY;
        /** @var bool */
        protected $nextStep = false;
        /** @var int */
        protected $packsCount = 0;
        /** @var float */
        protected $extraServicesPrice = 0;
        /** @var float */
        protected $deliveryPrice = 0;
        /** @var string $tmpData */
        protected $tmpData = "";
        /**
         * CalculationResult constructor.
         */
        public function __construct()
        {
        }
        /**	@return float */
        public function getDeliveryPrice()
        {
        }
        /** @param float $price */
        public function setDeliveryPrice($price)
        {
        }
        /** @return float  */
        public function getExtraServicesPrice()
        {
        }
        /** @param float $price */
        public function setExtraServicesPrice($price)
        {
        }
        /**	@return float */
        public function getPrice()
        {
        }
        /** @param string $description */
        public function setDescription($description)
        {
        }
        /** @return string */
        public function getDescription()
        {
        }
        /** @param string $description */
        public function setPeriodDescription($description)
        {
        }
        /** @return string */
        public function getPeriodDescription()
        {
        }
        /**
         * If calculation needs several steps.
         */
        public function setAsNextStep()
        {
        }
        /** @return string */
        public function isNextStep()
        {
        }
        /**	@return int */
        public function getPacksCount()
        {
        }
        /** @param int $count */
        public function setPacksCount($count)
        {
        }
        /**	@return int */
        public function getTmpData()
        {
        }
        /** @param string $data */
        public function setTmpData($data)
        {
        }
        /** @return int */
        public function getPeriodFrom()
        {
        }
        /** @param int $periodFrom */
        public function setPeriodFrom($periodFrom)
        {
        }
        /** @return int */
        public function getPeriodTo()
        {
        }
        /** @param int $periodTo */
        public function setPeriodTo($periodTo)
        {
        }
        /** @return int */
        public function getPeriodType()
        {
        }
        /** @param int $periodType */
        public function setPeriodType($periodType)
        {
        }
    }
}
namespace Bitrix\Sale\Delivery\Restrictions {
    /**
     * Class Base.
     * Base class for delivery services restrictions.
     * @package Bitrix\Sale\Delivery
     */
    class Base extends \Bitrix\Sale\Services\Base\Restriction
    {
    }
    /**
     * Class TradeBinding
     * @package Bitrix\Sale\Delivery\Restrictions
     */
    class ByTradeBinding extends \Bitrix\Sale\Delivery\Restrictions\Base
    {
        /**
         * @return string
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param int $entityId
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getParamsStructure($entityId = 0)
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\SystemException
         */
        protected static function getTradePlatformList()
        {
        }
        /**
         * @param Sale\Internals\Entity $entity
         * @return array|bool|mixed
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param Sale\Internals\Entity $entity
         * @return Sale\Order|null
         */
        protected static function getOrder(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param $params
         * @param array $restrictionParams
         * @param int $serviceId
         * @return bool
         */
        public static function check($params, array $restrictionParams, $serviceId = 0)
        {
        }
        /**
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function isAvailable()
        {
        }
    }
    /**
     * Class ByPublicMode
     * @package Bitrix\Sale\Delivery\Restrictions
     */
    class ByPublicMode extends \Bitrix\Sale\Delivery\Restrictions\Base
    {
        public static function getClassTitle()
        {
        }
        public static function getClassDescription()
        {
        }
        public static function check($dummy, array $restrictionParams, $deliveryId = 0)
        {
        }
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $shipment)
        {
        }
        public static function getParamsStructure($entityId = 0)
        {
        }
    }
    /**
     * Class ByLocation
     * Restricts delivery by location(s)
     * @package Bitrix\Sale\Delivery\Restrictions
     */
    class ByLocation extends \Bitrix\Sale\Delivery\Restrictions\Base
    {
        public static $easeSort = 200;
        public static function getClassTitle()
        {
        }
        public static function getClassDescription()
        {
        }
        protected static function getD2LClass()
        {
        }
        /**
         * This function should accept only location CODE, not ID, being a part of modern API
         * @param string $locationCode
         * @param array $restrictionParams
         * @param int $deliveryId
         * @return bool
         */
        public static function check($locationCode, array $restrictionParams, $deliveryId = 0)
        {
        }
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        protected static function prepareParamsForSaving(array $params = array(), $deliveryId = 0)
        {
        }
        public static function getParamsStructure($deliveryId = 0)
        {
        }
        public static function save(array $fields, $restrictionId = 0)
        {
        }
        public static function delete($restrictionId, $deliveryId = 0)
        {
        }
        /**
         * @param Shipment $shipment
         * @param array $restrictionFields
         * @return array
         */
        public static function filterServicesArray(\Bitrix\Sale\Shipment $shipment, array $restrictionFields)
        {
        }
        /**
         * @param array $restrictionFields
         * @param $leftMargin
         * @param $rightMargin
         * @return array
         */
        protected static function getLocationsCompat(array $restrictionFields, $leftMargin, $rightMargin)
        {
        }
    }
}
namespace Bitrix\Sale\Services\Base {
    /**
     * Class UserGroupRestriction
     * Restricts entity by users groups
     * @package Bitrix\Sale\Services\Base
     */
    class UserGroupRestriction extends \Bitrix\Sale\Services\Base\Restriction
    {
        public static $easeSort = 200;
        /**
         * @inheritdoc
         */
        public static function getClassTitle()
        {
        }
        /**
         * @inheritdoc
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param array $groups User groups
         * @param array $restrictionParams Restriction params.
         * @param int $entityId Service Identifier.
         * @return bool
         */
        public static function check($groups, array $restrictionParams, $entityId = 0)
        {
        }
        /**
         * @param Entity $entity
         * @return Order
         * @throws NotImplementedException
         */
        protected static function getOrder(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @return int
         * @throws NotImplementedException
         */
        protected static function getEntityTypeId()
        {
        }
        /**
         * @param Entity $entity Delivery or
         * @return array
         */
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @inheritdoc
         */
        protected static function prepareParamsForSaving(array $params = array(), $entityId = 0)
        {
        }
        protected static function getUserGroups()
        {
        }
        public static function getParamsStructure($entityId = 0)
        {
        }
        public static function prepareParamsValues(array $paramsValues, $entityId = 0)
        {
        }
        public static function save(array $fields, $restrictionId = 0)
        {
        }
        public static function delete($restrictionId, $entityId = 0)
        {
        }
        /**
         * @param Entity $entity
         * @param array $restrictionFields
         * @return array
         */
        public static function filterServicesArray(\Bitrix\Sale\Internals\Entity $entity, array $restrictionFields)
        {
        }
        public static function isAvailable()
        {
        }
    }
}
namespace Bitrix\Sale\Delivery\Restrictions {
    /**
     * Class ByUserGroup
     * @package Bitrix\Sale\Delivery\Restrictions
     */
    class ByUserGroup extends \Bitrix\Sale\Services\Base\UserGroupRestriction
    {
        protected static function getEntityTypeId()
        {
        }
        /**
         * @param Sale\Internals\Entity $entity
         * @return Sale\Order|null
         */
        protected static function getOrder(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
    }
    /**
     * Class ByDimensions
     * Restricts delivery by order dimensions.
     * @package Bitrix\Sale\Delivery\Restrictions
     */
    class ByDimensions extends \Bitrix\Sale\Delivery\Restrictions\Base
    {
        public static function getClassTitle()
        {
        }
        public static function getClassDescription()
        {
        }
        /**
         * @param array $dimensionsList keys:(LENGTH, WIDTH, HEIGHT)
         * @param array $restrictionParams
         * @param int $deliveryId
         * @return bool
         * @internal
         */
        public static function check($dimensionsList, array $restrictionParams, $deliveryId = 0)
        {
        }
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        public static function getParamsStructure($entityId = 0)
        {
        }
    }
    class ByPersonType extends \Bitrix\Sale\Delivery\Restrictions\Base
    {
        /**
         * @param $personTypeId
         * @param array $params
         * @param int $deliveryId
         * @return bool
         */
        public static function check($personTypeId, array $params, $deliveryId = 0)
        {
        }
        /**
         * @param Entity $entity
         * @return int
         */
        public static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @return mixed
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return mixed
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param $deliveryId
         * @return array
         */
        public static function getParamsStructure($deliveryId = 0)
        {
        }
        /**
         * @param $mode
         * @return int
         */
        public static function getSeverity($mode)
        {
        }
    }
    /**
     * Class ByWeight
     * Restricts delivery by weight
     * @package Bitrix\Sale\Delivery\Restrictions
     */
    class ByPrice extends \Bitrix\Sale\Delivery\Restrictions\Base
    {
        public static function getClassTitle()
        {
        }
        public static function getClassDescription()
        {
        }
        public static function check($price, array $restrictionParams, $deliveryId = 0)
        {
        }
        public static function checkByEntity(\Bitrix\Sale\Internals\Entity $shipment, array $restrictionParams, $mode, $deliveryId = 0)
        {
        }
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        public static function getParamsStructure($entityId = 0)
        {
        }
    }
    /**
     * Class ByMaxSize
     * Restricts delivery by basket items max size.
     * @package Bitrix\Sale\Delivery\Restrictions
     */
    class ByMaxSize extends \Bitrix\Sale\Delivery\Restrictions\Base
    {
        public static function getClassTitle()
        {
        }
        public static function getClassDescription()
        {
        }
        /**
         * @param array $dimensionsList
         * @param array $restrictionParams
         * @param int $deliveryId
         * @return bool
         */
        public static function check($dimensionsList, array $restrictionParams, $deliveryId = 0)
        {
        }
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        public static function getParamsStructure($entityId = 0)
        {
        }
    }
    /**
     * Class ByProductCategory
     * Restricts delivery by product category
     * @package Bitrix\Sale\Delivery\Restrictions
     */
    class ByProductCategory extends \Bitrix\Sale\Delivery\Restrictions\Base
    {
        public static $easeSort = 400;
        public static function getClassTitle()
        {
        }
        public static function getClassDescription()
        {
        }
        public static function check($categoriesList, array $restrictionParams, $deliveryId = 0)
        {
        }
        protected static function getCategoriesPath($categoryId)
        {
        }
        public static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        protected static function getGroupsIds(array $productIds)
        {
        }
        public static function getParamsStructure($deliveryId = 0)
        {
        }
    }
    class Manager extends \Bitrix\Sale\Services\Base\RestrictionManager
    {
        protected static $classNames = null;
        /**
         * @return int
         */
        protected static function getServiceType()
        {
        }
        /**
         * @return array
         */
        protected static function getBuildInRestrictions()
        {
        }
        /**
         * @return string
         */
        public static function getEventName()
        {
        }
        /**
         * @param int $deliveryId
         * @param string $className
         */
        public static function deleteByDeliveryIdClassName($deliveryId, $className)
        {
        }
        /**
         * Returns services wich have restrictions, but successfully pass checks.
         * @param \Bitrix\Sale\Shipment|null $shipment
         * @param int $restrictionMode RestrictionManager::MODE_CLIENT | RestrictionManager::MODE_MANAGER
         * @return int[]
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getRestrictedIds(\Bitrix\Sale\Shipment $shipment = null, $restrictionMode)
        {
        }
        protected function isClassSupportGroupFiltering($className)
        {
        }
        protected static function isClassValid($className)
        {
        }
    }
    /**
     * Class ByWeight
     * Restricts delivery by weight
     * @package Bitrix\Sale\Delivery\Restrictions
     */
    class ByWeight extends \Bitrix\Sale\Delivery\Restrictions\Base
    {
        public static function getClassTitle()
        {
        }
        public static function getClassDescription()
        {
        }
        public static function check($weight, array $restrictionParams, $deliveryId = 0)
        {
        }
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        public static function getParamsStructure($entityId = 0)
        {
        }
    }
    /**
     * Class ByPaySystem
     * @package Bitrix\Sale\Delivery\Restrictions
     */
    class ByPaySystem extends \Bitrix\Sale\Delivery\Restrictions\Base
    {
        public static $easeSort = 200;
        protected static $preparedData = array();
        public static function getClassTitle()
        {
        }
        public static function getClassDescription()
        {
        }
        public static function check($paySystemIds, array $restrictionParams, $deliveryId = 0)
        {
        }
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        protected static function getPaySystemsList()
        {
        }
        public static function getParamsStructure($entityId = 0)
        {
        }
        protected static function getPaySystemsByDeliveryId($deliveryId = 0)
        {
        }
        protected static function prepareParamsForSaving(array $params = array(), $deliveryId = 0)
        {
        }
        public static function save(array $fields, $restrictionId = 0)
        {
        }
        public static function prepareParamsValues(array $paramsValues, $deliveryId = 0)
        {
        }
        public static function delete($restrictionId, $deliveryId = 0)
        {
        }
        public static function prepareData(array $deliveryIds)
        {
        }
    }
    /**
     * Class BySite
     * Restricts delivery by site
     * @package Bitrix\Sale\Delivery\Restrictions
     */
    class BySite extends \Bitrix\Sale\Delivery\Restrictions\Base
    {
        public static function getClassTitle()
        {
        }
        public static function getClassDescription()
        {
        }
        public static function check($siteId, array $restrictionParams, $deliveryId = 0)
        {
        }
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        public static function getParamsStructure($entityId = 0)
        {
        }
        public static function getSeverity($mode)
        {
        }
        /**
         * @return bool
         */
        public static function isAvailable()
        {
        }
    }
    /**
     * Class ExcludeLocation
     * Exclude delivery by location(s)
     * @package Bitrix\Sale\Delivery\Restrictions
     */
    class ExcludeLocation extends \Bitrix\Sale\Delivery\Restrictions\ByLocation
    {
        public static $easeSort = 200;
        public static function getClassTitle()
        {
        }
        public static function getClassDescription()
        {
        }
        protected static function getD2LClass()
        {
        }
        /**
         * This function should accept only location CODE, not ID, being a part of modern API
         * @inheritdoc
         */
        public static function check($locationCode, array $restrictionParams, $deliveryId = 0)
        {
        }
        public static function getParamsStructure($deliveryId = 0)
        {
        }
        /**
         * @param Shipment $shipment
         * @param array $restrictionFields
         * @return array
         */
        public static function filterServicesArray(\Bitrix\Sale\Shipment $shipment, array $restrictionFields)
        {
        }
    }
}
namespace Bitrix\Sale\Delivery {
    class DeliveryLocationTable extends \Bitrix\Sale\Location\Connector
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public function getLinkField()
        {
        }
        public static function getLocationLinkField()
        {
        }
        public function getTargetEntityName()
        {
        }
        public static function getMap()
        {
        }
    }
    /**
     * Class DeliveryLocationExcludeTable
     * @package Bitrix\Sale\Delivery
     */
    final class DeliveryLocationExcludeTable extends \Bitrix\Sale\Delivery\DeliveryLocationTable
    {
        const DB_LOCATION_FLAG = 'LE';
        const DB_GROUP_FLAG = 'GE';
        public static function getFilePath()
        {
        }
    }
}
namespace Bitrix\Sale\Delivery\Requests {
    /**
     * Class ShipmentTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> SHIPMENT_ID int mandatory *
     * <li> REQUEST_ID int optional
     * <li> EXTERNAL_ID int optional
     * <li> ERROR_DESCRIPTION string
     * </ul>
     *
     * @package Bitrix\Sale\Delivery\Requests
     **/
    class ShipmentTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * @return array
         */
        public static function validateType()
        {
        }
        /**
         * @return array
         */
        public static function validateErrorDescription()
        {
        }
        public static function setShipment(array $fields)
        {
        }
    }
}
namespace Bitrix\Main {
    class Result
    {
        /** @var bool */
        protected $isSuccess = true;
        /** @var ErrorCollection */
        protected $errors;
        /** @var  array */
        protected $data = array();
        public function __construct()
        {
        }
        /**
         * Returns the result status.
         *
         * @return bool
         */
        public function isSuccess()
        {
        }
        /**
         * Adds the error.
         *
         * @param Error $error
         * @return $this
         */
        public function addError(\Bitrix\Main\Error $error)
        {
        }
        /**
         * Returns an array of Error objects.
         *
         * @return Error[]
         */
        public function getErrors()
        {
        }
        /**
         * Returns the error collection.
         *
         * @return ErrorCollection
         */
        public function getErrorCollection()
        {
        }
        /**
         * Returns array of strings with error messages
         *
         * @return array
         */
        public function getErrorMessages()
        {
        }
        /**
         * Adds array of Error objects
         *
         * @param Error[] $errors
         * @return $this
         */
        public function addErrors(array $errors)
        {
        }
        /**
         * Sets data of the result.
         * @param array $data
         * @return $this
         */
        public function setData(array $data)
        {
        }
        /**
         * Returns data array saved into the result.
         * @return array
         */
        public function getData()
        {
        }
    }
}
namespace Bitrix\Sale\Delivery\Requests {
    /**
     * Class Result
     * @package Bitrix\Sale\Delivery\Requests
     */
    class Result extends \Bitrix\Main\Result
    {
        protected $messages = array();
        /** @var RequestResult[] || ShipmentResult[]  */
        protected $results = array();
        /**
         * Result constructor.
         */
        public function __construct()
        {
        }
        /**
         * @param Message $message
         */
        public function addMessage(\Bitrix\Sale\Delivery\Requests\Message $message)
        {
        }
        /**
         * @return Message[]
         */
        public function getMessages()
        {
        }
        /**
         * @return array|MessagesCollection
         */
        public function getMessagesCollection()
        {
        }
        /**
         * @return array
         */
        public function getMessagesMessages()
        {
        }
        /**
         * Adds array of Message objects
         *
         * @param Message[] $messages
         * @return $this
         */
        public function addMessages(array $messages)
        {
        }
        /**
         * @return array
         */
        public function getResults()
        {
        }
        /**
         * @return ShipmentResult[]
         */
        public function getShipmentResults()
        {
        }
        /**
         * @return RequestResult[]
         */
        public function getRequestResults()
        {
        }
        /**
         * @param array $results
         */
        public function setResults($results)
        {
        }
        /**
         * @param Result
         */
        public function addResult(\Bitrix\Sale\Delivery\Requests\Result $result)
        {
        }
        /**
         * @param Result[] $results
         */
        public function addResults(array $results)
        {
        }
    }
    class ResultFile extends \Bitrix\Sale\Delivery\Requests\Result
    {
        protected $fileName = '';
        protected $fileContent = '';
        /**
         * ResultFile constructor.
         * @param string $fileName
         * @param string $fileContent
         */
        public function __construct($fileName = '', $fileContent = '')
        {
        }
        /**
         * @return string
         */
        public function getFileName()
        {
        }
        /**
         * @return string
         */
        public function getFileContent()
        {
        }
        /**
         * @param string $fileName
         */
        public function setFileName($fileName)
        {
        }
        /**
         * @param string $fileContent
         */
        public function setFileContent($fileContent)
        {
        }
    }
}
namespace Bitrix\Main {
    class ErrorCollection extends \Bitrix\Main\Type\Dictionary
    {
        /**
         * Constructor ErrorCollection.
         * @param Error[] $values Initial errors in the collection.
         */
        public function __construct(array $values = null)
        {
        }
        /**
         * Adds an array of errors to the collection.
         * @param Error[] $errors
         * @return void
         */
        public function add(array $errors)
        {
        }
        /**
         * Returns an error with the necessary code.
         * @param string|int $code The code of the error.
         * @return Error|null
         */
        public function getErrorByCode($code)
        {
        }
        /**
         * Adds an error to the collection.
         * @param Error $error An error object.
         * @param mixed $offset Offset in the array.
         * @return void
         */
        public function setError(\Bitrix\Main\Error $error, $offset = null)
        {
        }
        /**
         * \ArrayAccess thing.
         * @param mixed $offset
         * @param mixed $value
         */
        public function offsetSet($offset, $value)
        {
        }
    }
}
namespace Bitrix\Sale\Delivery\Requests {
    class MessagesCollection extends \Bitrix\Main\ErrorCollection
    {
    }
    class Message extends \Bitrix\Main\Error
    {
    }
    /**
     * Class RequestTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> DATE datetime mandatory
     * <li> DELIVERY_ID int mandatory
     * <li> STATUS int optional
     * <li> EXTERNAL_ID string(100) optional
     * </ul>
     *
     * @package Bitrix\Sale\Delivery\Requests
     **/
    class RequestTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for EXTERNAL_ID field.
         *
         * @return array
         */
        public static function validateExternalId()
        {
        }
    }
    /**
     * Class ShipmentResult
     * @package Bitrix\Sale\Delivery\Requests
     */
    class ShipmentResult extends \Bitrix\Sale\Delivery\Requests\Result
    {
        protected $externalId = '';
        protected $internalId = 0;
        protected $trackingNumber = '';
        protected $deliveryDocNum = '';
        protected $deliveryDocDate = '';
        /**
         * ShipmentResult constructor.
         * @param int $internalId
         * @param string $externalId
         */
        public function __construct($internalId, $externalId = '')
        {
        }
        /**
         * @return string
         */
        public function getDeliveryDocNum()
        {
        }
        /**
         * @param string $deliveryDocNum
         */
        public function setDeliveryDocNum($deliveryDocNum)
        {
        }
        /**
         * @return string
         */
        public function getDeliveryDocDate()
        {
        }
        /**
         * @param string $deliveryDocDate
         */
        public function setDeliveryDocDate($deliveryDocDate)
        {
        }
        /**
         * @return string
         */
        public function getTrackingNumber()
        {
        }
        /**
         * @param string $trackingNumber
         */
        public function setTrackingNumber($trackingNumber)
        {
        }
        /**
         * @return string
         */
        public function getExternalId()
        {
        }
        /**
         * @param string $externalId
         */
        public function setExternalId($externalId)
        {
        }
        /**
         * @return int
         */
        public function getInternalId()
        {
        }
        /**
         * @param int $internalId
         */
        public function setInternalId($internalId)
        {
        }
    }
    /**
     * Class Manager
     * @package Bitrix\Sale\Delivery\Requests
     * Manages the lifecycle of delivery requests items
     */
    final class Manager
    {
        const STATUS_PREPARED = 0;
        const STATUS_SENT = 10;
        const STATUS_PROCESSED = 20;
        const FORM_FIELDS_TYPE_CREATE = 10;
        const FORM_FIELDS_TYPE_ADD = 20;
        const FORM_FIELDS_TYPE_ACTION = 30;
        protected static $isChangedShipmentNeedsMark = true;
        /**
         * @param int $shipmentId
         * @param int $requestId
         * @return Result
         * @throws Main\ArgumentException
         */
        public static function getDeliveryRequestShipmentContent($requestId, $shipmentId)
        {
        }
        /**
         * @param Shipment $shipment
         * @return array Shipment actions
         * @throws Main\ArgumentNullException
         */
        public static function getDeliveryRequestShipmentActions(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param int $requestId
         * @return array Request actions
         * @throws Main\ArgumentNullException
         */
        public static function getDeliveryRequestActions($requestId)
        {
        }
        /**
         * @param int $requestId
         * @return HandlerBase|null  Delivery request handler
         * @throws Main\ArgumentNullException
         */
        protected static function getDeliveryRequestHandlerByRequestId($requestId)
        {
        }
        /**
         * @param int $deliveryId
         * @return HandlerBase|null Delivery request handler
         * @throws Main\ArgumentNullException
         * @throws Main\SystemException
         */
        public static function getDeliveryRequestHandlerByDeliveryId($deliveryId)
        {
        }
        /**
         * @param int $deliveryId
         * @param int[] $shipmentIds
         * @param array $additional Additional info required for creation. Depends on delivery service.
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\SystemException
         * @throws \Exception
         */
        public static function createDeliveryRequest($deliveryId, array $shipmentIds, array $additional = array())
        {
        }
        /**
         * @param ShipmentResult $result
         * @param int $requestId
         * @return ShipmentResult
         */
        protected static function processShipmentResult($result, $requestId = 0)
        {
        }
        /**
         * @param int $deliveryId
         * @param int $formFieldsType FORM_FIELDS_TYPE_ACTION | FORM_FIELDS_TYPE_ADD | FORM_FIELDS_TYPE_CREATE
         * @param int[] $shipmentIds
         * @param array $additional
         * @return array Form fields
         * @throws Main\ArgumentNullException
         */
        public static function getDeliveryRequestFormFields($deliveryId, $formFieldsType, array $shipmentIds, array $additional = array())
        {
        }
        /**
         * @param int $requestId
         * @return Result
         * @throws \Exception
         */
        public static function deleteDeliveryRequest($requestId)
        {
        }
        /**
         * @param int $requestId
         * @param int[] $shipmentIds
         * @return Result
         */
        public static function deleteShipmentsFromDeliveryRequest($requestId, array $shipmentIds)
        {
        }
        /**
         * @param int $requestId
         * @return Result
         */
        public static function getDeliveryRequestContent($requestId)
        {
        }
        /**
         * @param int $requestId
         * @param string $actionType
         * @param array $additional
         * @return Result
         */
        public static function executeDeliveryRequestAction($requestId, $actionType, array $additional = array())
        {
        }
        /**
         * @param int $requestId
         * @param int $shipmentId
         * @param string $actionType
         * @param array $additional
         * @return Result
         */
        public static function executeDeliveryRequestShipmentAction($requestId, $shipmentId, $actionType, array $additional = array())
        {
        }
        /**
         * @param int[] $shipmentIds
         * @return ShipmentResult[]
         * @throws \Bitrix\Main\ArgumentException
         */
        protected static function checkShipmentIdsBeforeAdd(array $shipmentIds)
        {
        }
        /**
         * @param int[] $shipmentIds
         * @return int[] Choose ids only for existing shipments.
         */
        protected static function filterExistIds(array $shipmentIds)
        {
        }
        /**
         * @param int[] $shipmentIds
         * @return int[]
         */
        protected static function filterAddedIds(array $shipmentIds)
        {
        }
        /**
         * @param int[] $shipmentIds
         * @return int[]
         */
        protected static function filterPositiveIds(array $shipmentIds)
        {
        }
        /**
         * @param int[] $shipmentIds
         * @return ShipmentResult[]
         */
        protected static function checkShipmentIdsBeforeDelete(array $shipmentIds)
        {
        }
        /**
         * @param int[] $shipmentIds
         * @return ShipmentResult[]
         * @throws \Bitrix\Main\ArgumentException
         */
        protected static function checkShipmentIdsBeforeUpdate(array $shipmentIds)
        {
        }
        /**
         * @param int $shipmentId
         * @return bool
         */
        public static function isShipmentSent($shipmentId)
        {
        }
        /**
         * @param int $shipmentId
         * @return int Request ID
         */
        public static function getRequestIdByShipmentId($shipmentId)
        {
        }
        /**
         * @param int $requestId
         * @param int [] $shipmentIds
         * @return Result
         * @throws \Exception
         */
        public static function addShipmentsToDeliveryRequest($requestId, array $shipmentIds)
        {
        }
        /**
         * @param int $requestId
         * @param int [] $shipmentIds
         * @return Result
         * @throws \Exception
         */
        public static function updateShipmentsFromDeliveryRequest($requestId, array $shipmentIds)
        {
        }
        /**
         * @param $shipmentId
         * @param ShipmentResult $shipmentResult
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        protected static function saveShipmentResult($shipmentId, \Bitrix\Sale\Delivery\Requests\ShipmentResult $shipmentResult)
        {
        }
        /**
         * @param Order $order
         * @param Shipment $shipment
         */
        public static function onBeforeShipmentSave(&$order, &$shipment)
        {
        }
        /**
         * @param Shipment $shipment
         */
        public static function onBeforeShipmentDelete(&$shipment)
        {
        }
        /**
         * @param Order $order
         * @param Shipment $shipment
         */
        protected static function setMarkerShipmentChanged(&$order, &$shipment)
        {
        }
        /**
         * @param int  $shipmentId
         */
        protected static function unSetMarkerShipmentChanged($shipmentId)
        {
        }
        public static function initJs()
        {
        }
    }
    /**
     * Class Helper
     * @package Bitrix\Sale\Delivery\Requests
     * @internal
     */
    class Helper
    {
        /**
         * @param int $shipmentId
         * @param string $text Link text
         * @param int $orderId
         * @param string $languageId
         * @return string <a...>...</> Link to shipment edit form
         */
        public static function getShipmentEditLink($shipmentId, $text = '', $orderId = 0, $languageId = LANGUAGE_ID)
        {
        }
        /**
         * @param int $deliveryId
         * @param string $deliveryName
         * @param string $languageId
         * @return string <a...>...</> Link to delivery edit form
         */
        public static function getDeliveryEditLink($deliveryId, $deliveryName = '', $languageId = LANGUAGE_ID)
        {
        }
        /**
         * @param int $requestId
         * @param string $text
         * @param string $languageId
         * @return string <a...>...</> Link to request view form
         */
        public static function getRequestViewLink($requestId, $text = '', $languageId = LANGUAGE_ID)
        {
        }
        /**
         * @param int[] $shipmentIds
         * @return Shipment[]
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getShipmentsByIds(array $shipmentIds)
        {
        }
    }
    /**
     * Class RequestResult
     * @package Bitrix\Sale\Delivery\Requests
     */
    class RequestResult extends \Bitrix\Sale\Delivery\Requests\Result
    {
        protected $externalId = '';
        protected $internalId = 0;
        const ERROR_NOT_FOUND = 1;
        /**
         * @return string
         */
        public function getExternalId()
        {
        }
        /**
         * @param string $externalId
         */
        public function setExternalId($externalId)
        {
        }
        /**
         * @return string
         */
        public function getInternalId()
        {
        }
        /**
         * @param string $internalId
         */
        public function setInternalId($internalId)
        {
        }
    }
    /**
     * Class HandlerBase
     * @package Bitrix\Sale\Delivery\Requests
     * Base class for delivery requests handlers
     */
    abstract class HandlerBase
    {
        /** @var Delivery\Services\Base */
        protected $deliveryService = null;
        /**
         * Base constructor.
         * @param Delivery\Services\Base $deliveryService
         */
        public function __construct(\Bitrix\Sale\Delivery\Services\Base $deliveryService)
        {
        }
        /**
         * Creates delivery request.
         * @param int[] $shipmentIds
         * @param array $additional
         * @return Result
         */
        public function create(array $shipmentIds, array $additional = array())
        {
        }
        /**
         * @param int $requestId
         * @return array Actions list.
         * For example array( 'ACTION1' => 'ACTION1_NAME', 'ACTION2' => 'ACTION2_NAME').
         */
        public function getActions($requestId)
        {
        }
        /**
         * @param Shipment $shipment
         * @return array Actions list
         * For example array( 'ACTION1' => 'ACTION1_NAME', 'ACTION2' => 'ACTION2_NAME').
         */
        public function getShipmentActions(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * Executes delivery request action
         * @param int $requestId
         * @param string $actionType
         * @param array $additional
         * @return Result
         */
        public function executeAction($requestId, $actionType, array $additional)
        {
        }
        /**
         * Executes action for shipment from delivery request
         * @param int $requestId
         * @param int $shipmentId
         * @param string $actionType
         * @param array $additional
         * @return Result
         */
        public function executeShipmentAction($requestId, $shipmentId, $actionType, array $additional)
        {
        }
        /**
         * Add shipments to delivery request
         * @param int $requestId
         * @param int[] $shipmentIds
         * @return Result
         */
        public function addShipments($requestId, $shipmentIds)
        {
        }
        /**
         * Delete delivery request
         * @param int $requestId
         * @return Result
         */
        public function delete($requestId)
        {
        }
        /**
         * Delete shipment from delivery request
         * @param int $requestId
         * @param int[] $shipmentIds
         * @return Result
         */
        public function deleteShipments($requestId, array $shipmentIds = array())
        {
        }
        /**
         * Update shipment from delivery request
         * @param int $requestId
         * @param int[] $shipmentIds
         * @return Result
         */
        public function updateShipments($requestId, array $shipmentIds = array())
        {
        }
        /**
         * Returns array of fields if we need some additional information
         * during creation, or action execution, etc.
         * @param string $formFieldsType (FORM_FIELDS_TYPE_CREATE | FORM_FIELDS_TYPE_ADD | FORM_FIELDS_TYPE_ACTION)
         * @param int[] $shipmentIds
         * @param array $additional
         * @return array
         */
        public function getFormFields($formFieldsType, array $shipmentIds, array $additional = array())
        {
        }
        /**
         * Returns content of delivery request
         * @param int $requestId
         * @return Result
         */
        public function getContent($requestId)
        {
        }
        /**
         * Returns content of shipment from delivery request
         * @param int $requestId
         * @param int $shipmentId
         * @return Result. Data contain array of shipment fields on delivery side
         */
        public function getShipmentContent($requestId, $shipmentId)
        {
        }
        /**
         * Returns id of delivery service witch actually handles delivery requests
         * @return int
         */
        public function getHandlingDeliveryServiceId()
        {
        }
    }
}
namespace Bitrix\Sale\Delivery {
    class Menu
    {
        protected $currentDeliveryId;
        public function __construct($currentDeliveryId = 0)
        {
        }
        public function getItems()
        {
        }
        protected function getChildren(array $parentIds = array(0))
        {
        }
    }
}
namespace Bitrix\Sale\Delivery\Tracking {
    /**
     * Class Base
     * @package Bitrix\Sale\Delivery\Tracking
     *
     * Base class for shipment tracking services handlers
     */
    abstract class Base
    {
        /** @var array */
        protected $params;
        /** @var  Services\Base */
        protected $deliveryService;
        /**
         * @param array $params
         * @param Services\Base $deliveryService
         */
        public function __construct(array $params, \Bitrix\Sale\Delivery\Services\Base $deliveryService)
        {
        }
        /**
         * Returns class name for administration interface
         * @return string
         */
        public abstract function getClassTitle();
        /**
         * Returns class description for administration interface
         * @return string
         */
        public abstract function getClassDescription();
        /**
         * @param $trackingNumber
         * @return \Bitrix\Sale\Delivery\Tracking\StatusResult.
         */
        public function getStatus($trackingNumber)
        {
        }
        /**
         * @param array $shipmentData
         * @return StatusResult
         */
        public function getStatusShipment($shipmentData)
        {
        }
        /**
         * @param string[] $trackingNumbers
         * @return \Bitrix\Sale\Result.
         */
        public function getStatuses(array $trackingNumbers)
        {
        }
        /**
         * @param array $shipmentsData
         * @return \Bitrix\Sale\Result
         */
        public function getStatusesShipment(array $shipmentsData)
        {
        }
        /**
         * Returns params structure
         * @return array
         */
        public abstract function getParamsStructure();
        /**
         * @param string $paramKey
         * @param string $inputName
         * @return string Html
         * @throws \Bitrix\Main\SystemException
         */
        public function getEditHtml($paramKey, $inputName)
        {
        }
        /**
         * @param string $trackingNumber
         * @return string Url were we can see tracking information
         */
        public function getTrackingUrl($trackingNumber = '')
        {
        }
    }
    /**
     * Class RusPost
     * @package Bitrix\Sale\Delivery\Tracking
     * https://tracking.pochta.ru/specification
     */
    class RusPost extends \Bitrix\Sale\Delivery\Tracking\Base
    {
        /**
         * @return string
         */
        public function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public function getClassDescription()
        {
        }
        /**
         * @param $trackingNumber
         * @return \Bitrix\Sale\Delivery\Tracking\StatusResult.
         */
        public function getStatus($trackingNumber)
        {
        }
        /**
         * @param array $trackingNumbers
         * @return StatusResult[]
         * todo: by package of 3000 items
         */
        public function getStatuses(array $trackingNumbers)
        {
        }
        /**
         * @return array
         */
        public function getParamsStructure()
        {
        }
        /**
         * Checks if tracknumber matches to required format.
         * 14 - digit,
         * 13 symbols like pattern XX123456789YY (UPU-S10)
         * @param string $trackNumber
         * @return bool
         */
        protected function checkTrackNumberFormat($trackNumber)
        {
        }
        /**
         * @param string $trackingNumber
         * @return string Url were we can see tracking information
         */
        public function getTrackingUrl($trackingNumber = '')
        {
        }
    }
    /**
     * Class RusPostSingle
     * @package Bitrix\Sale\Delivery\Tracking
     */
    class RusPostSingle
    {
        const LANG_RUS = "RUS";
        const LANG_ENG = "ENG";
        protected $client = null;
        protected $lang = "";
        protected $login = "";
        protected $password = "";
        protected static $url = 'https://tracking.russianpost.ru/rtm34';
        /**
         * @param string $login
         * @param string $password
         * @param string $lang
         */
        public function __construct($login, $password, $lang = self::LANG_RUS)
        {
        }
        public function sendRequest($requestData)
        {
        }
        /**
         * @param string $trackingNumber
         * @return StatusResult
         */
        public function getOperationHistory($trackingNumber)
        {
        }
        /**
         * @param $lastOperation
         * @return int
         */
        protected function extractLastChangeDate($lastOperation)
        {
        }
        /**
         * @param $answer
         * @return mixed|null
         */
        protected function getLastOperation(array $answer)
        {
        }
        /**
         * @param string $trackingNumber
         * @return string
         */
        protected function createDescription($trackingNumber)
        {
        }
        /**
         * @param $lastOperation
         * @return int
         */
        protected function extractStatus(array $lastOperation)
        {
        }
        /**
         * Maps outer operationCode and attributeCode to inner status enumerated in class Statuses
         * @param $oper
         * @param $attr
         * @return int
         */
        protected function mapStatus($oper, $attr)
        {
        }
    }
    /**
     * Class Statuses
     * @package Bitrix\Sale\Delivery\Tracking
     *
     * Possible internals variants of tracking statuses
     */
    class Statuses
    {
        const NO_INFORMATION = 0;
        //No tracking (may be yet)
        const WAITING_SHIPMENT = 10;
        const ON_THE_WAY = 20;
        const ARRIVED = 30;
        const HANDED = 40;
        //shipping definitely finished
        const PROBLEM = 50;
        const UNKNOWN = 60;
        //Incorrect status mapping made by tracking handler.
        const RETURNED = 70;
    }
    /**
     * Class StatusResult
     * @package Bitrix\Sale\Delivery\Tracking
     */
    class StatusResult extends \Bitrix\Sale\Result
    {
        /**	@var int */
        public $status;
        /**	@var string */
        public $description;
        /** @var  string */
        public $trackingNumber;
        /**	@var int */
        public $lastChangeTimestamp;
    }
    /**
     * Class StatusChangeEventParam
     * @package Bitrix\Sale\Delivery\Tracking
     */
    class StatusChangeEventParam
    {
        /**	@var int */
        public $status;
        /**	@var string */
        public $description;
        /** @var  string */
        public $trackingNumber;
        /**	@var int */
        public $lastChangeTimestamp;
        /**	@var int */
        public $orderId;
        /**	@var int */
        public $shipmentId;
        /**	@var int */
        public $deliveryId;
    }
    /**
     * Class Manager
     * @package Bitrix\Sale\Delivery\Tracking
     *
     * Singleton
     *
     * All job with tracking numbers must must be done through this class
     */
    class Manager
    {
        protected static $instance = null;
        protected static $classNames = null;
        //If status didn't changed for a long time let's stop update it.
        protected static $activeStatusLiveTime = 5184000;
        //60 days
        /** @var bool  */
        protected $isClone = false;
        protected function __clone()
        {
        }
        protected function __construct()
        {
        }
        /**
         * @return static
         */
        public static function getInstance()
        {
        }
        /**
         * @param int $status
         * @return string
         */
        public static function getStatusName($status)
        {
        }
        /**
         * @return array
         */
        public static function getStatusesList()
        {
        }
        /**
         * @param int $deliveryId Delivery service id.
         * @param string $trackingNumber Trcking number.
         * @return string  Url were we can see tracking information.
         * @throws ArgumentNullException
         */
        public function getTrackingUrl($deliveryId, $trackingNumber = '')
        {
        }
        /**
         * @param int $shipmentId
         * @param string  $trackingNumber if changed
         * @return StatusResult
         * @throws ArgumentNullException
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getStatusByShipmentId($shipmentId, $trackingNumber = '')
        {
        }
        /**
         * Returns mapping tracking statuses to shipment statuses.
         * @return array
         * @throws ArgumentNullException
         */
        protected static function getMappedStatuses()
        {
        }
        protected static function getCheckPeriod()
        {
        }
        /**
         * @param array shipment
         * @return StatusResult
         * @throws ArgumentNullException
         * @throws SystemException
         */
        protected function getStatus($shipment)
        {
        }
        /**
         * @param $deliveryId
         * @return Base|null
         * @throws ArgumentNullException
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getTrackingObjectByDeliveryId($deliveryId)
        {
        }
        /**
         * @param string $className Class name delivered from \Bitrix\Sale\Delivery\Tracking\Base
         * @param array $params
         * @param Services\Base $deliveryService
         * @return Base
         * @throws ArgumentNullException
         * @throws SystemException
         */
        protected function createTrackingObject($className, array $params, \Bitrix\Sale\Delivery\Services\Base $deliveryService)
        {
        }
        /**
         * Starts statuses refreshing
         */
        public static function startRefreshingStatuses()
        {
        }
        /**
         * @return Result
         * todo: timelimit
         */
        protected function updateStatuses()
        {
        }
        protected function processStatusesByDelivery($deliveryId, $shipmentsData)
        {
        }
        /**
         * @param StatusChangeEventParam[] $params
         * @return Result
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\NotSupportedException
         */
        protected function processStatusChange($params)
        {
        }
        /**
         * @param StatusChangeEventParam[] $params
         * @return bool|int
         */
        protected function sendStatusChangedMail($params)
        {
        }
        /**
         * @param StatusChangeEventParam[] $params
         */
        protected function sendOnStatusesChangedEvent(array $params)
        {
        }
        /**
         * @throws SystemException
         * @throws \Bitrix\Main\LoaderException
         *
         * For custom handlers use (for example in init.php)
         * paste code like this:
         *
         * function addCustomDeliveryTrackingServices()
         * {
         *		return new \Bitrix\Main\EventResult(
         *			\Bitrix\Main\EventResult::SUCCESS,
         *			array(
         *				'\Custom\Name\Space\TrackingHandlerClass' => '/custom/path/tracking_handler_class.php'
         *			),
         *			'sale'
         *		);
         * }
         *
         * $eventManager->addEventHandler('sale', 'onSaleDeliveryTrackingClassNamesBuildList', 'addCustomDeliveryTrackingServices');
         */
        protected function initClassNames()
        {
        }
        /**
         * Returns list of known class names
         * @return array
         */
        public function getClassNames()
        {
        }
        /**
         * @param int $shipmentId
         * @param StatusResult $params
         * @return UpdateResult
         * @throws ArgumentNullException
         * @throws \Exception
         */
        public function updateShipment($shipmentId, \Bitrix\Sale\Delivery\Tracking\StatusResult $params)
        {
        }
        /**
         * @internal 
         * @param \SplObjectStorage $cloneEntity
         *
         * @return Manager
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * @return bool
         */
        public function isClone()
        {
        }
    }
}
namespace Bitrix\Sale\Delivery {
    /**
     * Class Helper
     * @package Bitrix\Sale\Delivery
     */
    class Helper
    {
        /**
         * Return currencies list.
         *
         * @return array Currencies list.
         * @throws SystemException
         * @throws \Bitrix\Main\LoaderException
         */
        public static function getCurrenciesList()
        {
        }
        /**
         * Return tree groups.
         *
         * @param array $flatGroups				Group list.
         * @return array
         */
        protected static function createTreeFromGroups($flatGroups)
        {
        }
        /**
         * Return html for choose group control.
         *
         * @param int|string $selectedGroupId			Selected group.
         * @param string $name							Group name.
         * @param string $addParams						Additional params for select tag.
         * @param bool $anyGroup						Allowed select any group.
         * @return string
         */
        public static function getGroupChooseControl($selectedGroupId, $name, $addParams = "", $anyGroup = false)
        {
        }
        /**
         * @return string Default site id.
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         */
        public static function getDefaultSiteId()
        {
        }
        /**
         * Clean additional delivery cache
         */
        public static function additionalHandlerCacheClean()
        {
        }
    }
}
namespace Bitrix\Sale\Delivery\Services {
    /**
     * Class Base (abstract)
     * Base class for delivery services
     * @package Bitrix\Sale\Delivery
     */
    abstract class Base
    {
        protected $id = 0;
        protected $name = "";
        protected $code = "";
        protected $vatId = 0;
        protected $sort = 100;
        protected $logotip = 0;
        protected $parentId = 0;
        protected $currency = "";
        protected $active = false;
        protected $description = "";
        protected $config = array();
        protected $restricted = false;
        protected $trackingClass = "";
        /** @var Requests\HandlerBase  */
        protected $deliveryRequestHandler = null;
        protected $extraServices = array();
        protected $trackingParams = array();
        protected $allowEditShipment = array();
        protected static $isProfile = false;
        protected static $canHasProfiles = false;
        protected static $isCalculatePriceImmediately = false;
        protected static $whetherAdminExtraServicesShow = false;
        const EVENT_ON_CALCULATE = "onSaleDeliveryServiceCalculate";
        /** @var bool  */
        protected $isClone = false;
        /**
         * Constructor
         * @param array $initParams Delivery service params
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\SystemException
         */
        public function __construct(array $initParams)
        {
        }
        /**
         * Calculates delivery price
         * @param \Bitrix\Sale\Shipment $shipment.
         * @param array $extraServices.
         * @return \Bitrix\Sale\Delivery\CalculationResult
         */
        public function calculate(\Bitrix\Sale\Shipment $shipment = null, $extraServices = array())
        {
        }
        /**
         * @return Delivery\ExtraServices\Manager
         */
        public function getExtraServices()
        {
        }
        /**
         * @return string The currency of delivery service.
         */
        public function getCurrency()
        {
        }
        /**
         * @param Shipment $shipment
         * @return float|int
         */
        protected static function calculateShipmentPrice(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * Returns class name
         * @return string
         */
        public static function getClassTitle()
        {
        }
        /**
         * Returns class description
         * @return string
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param \Bitrix\Sale\Shipment $shipment.
         * @return Delivery\CalculationResult
         */
        protected function calculateConcrete(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param array $fields
         * @return array
         * @throws SystemException
         */
        public function prepareFieldsForSaving(array $fields)
        {
        }
        /**
         * Returns service configuration (only structure without values)
         * @return array
         * @throws \Exception
         */
        protected function getConfigStructure()
        {
        }
        /**
         * @param array $confStructure The structure of configuration
         * @param array $confValues The configuration's values
         * @return array glued config with values
         */
        protected function glueValuesToConfig(array $confStructure, $confValues = array())
        {
        }
        /**
         * @return array
         * @throws SystemException
         */
        public function getConfig()
        {
        }
        /**
         * @return array
         */
        public function getConfigValues()
        {
        }
        /**
         * @return array Fields witch user will see on delivery admin page
         */
        public static function getAdminFieldsList()
        {
        }
        /**
         * @return bool Show or not restrictions on admin page
         * For example lib/delivery/services/group.php: we must hide it on public page always, and nobody can cancel this.
         */
        public static function whetherAdminRestrictionsShow()
        {
        }
        /**
         * @return bool Can this services has children.
         */
        public static function canHasChildren()
        {
        }
        /**
         * @return bool Can this services has profiles.
         */
        public static function canHasProfiles()
        {
        }
        /**
         * @return array profiles handlers class names
         */
        public static function getChildrenClassNames()
        {
        }
        /**
         * @return int
         */
        public function getId()
        {
        }
        /**
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * @return string
         */
        public function getName()
        {
        }
        /**
         * @return string
         */
        public function getDescription()
        {
        }
        /**
         * @return int
         */
        public function getParentId()
        {
        }
        /**
         * @return mixed
         */
        public function getSort()
        {
        }
        /**
         * @return string
         */
        public function getNameWithParent()
        {
        }
        /**
         * @return int
         */
        public function getLogotip()
        {
        }
        /**
         * @return string
         */
        public function getLogotipPath()
        {
        }
        /**
         * @return Base|null
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function getParentService()
        {
        }
        /**
         * @param array $fields
         * @return array
         */
        public function prepareFieldsForUsing(array $fields)
        {
        }
        /**
         * @return array
         */
        public function getEmbeddedExtraServicesList()
        {
        }
        /**
         * @return bool If admin could edit extra services
         */
        public static function whetherAdminExtraServicesShow()
        {
        }
        /**
         * @param array $fields
         * @return \Bitrix\Main\Result
         */
        public static function onBeforeAdd(array &$fields = array()) : \Bitrix\Main\Result
        {
        }
        /**
         * @param int $serviceId
         * @param array $fields
         * @return bool
         */
        public static function onAfterAdd($serviceId, array $fields = array())
        {
        }
        /**
         * @param int $serviceId
         * @param array $fields
         * @return bool
         */
        public static function onAfterUpdate($serviceId, array $fields = array())
        {
        }
        /**
         * @param int $serviceId
         * @return bool
         */
        public static function onAfterDelete($serviceId)
        {
        }
        /**
         * @param Shipment $shipment
         * @return bool
         */
        public function isCompatible(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @return array Profiles list
         */
        public function getProfilesList()
        {
        }
        /**
         * @return bool
         */
        public static function isProfile()
        {
        }
        /**
         * @return string Class name inherited from \Bitrix\Sale\Delivery\Tracking\Base
         */
        public function getTrackingClass()
        {
        }
        /**
         * @param string $class Class name inherited from \Bitrix\Sale\Delivery\Tracking\Base
         */
        public function setTrackingClass($class)
        {
        }
        /**
         * @return array
         */
        public function getTrackingParams()
        {
        }
        /**
         * @return bool
         */
        public function isTrackingInherited()
        {
        }
        /**
         * @return bool
         */
        public function isCalculatePriceImmediately()
        {
        }
        /**
         * @return bool
         */
        public function isRestricted()
        {
        }
        /**
         * @return array
         */
        public static function onGetBusinessValueConsumers()
        {
        }
        /**
         * @return array
         */
        public static function onGetBusinessValueGroups()
        {
        }
        /**
         * @return bool
         */
        public static function isInstalled()
        {
        }
        public static function install()
        {
        }
        public static function unInstall()
        {
        }
        /**
         * @return bool
         */
        public function isAllowEditShipment()
        {
        }
        /**
         * Show message on service edit page.
         * @return array
         * array("MESSAGE"=>"", "TYPE"=>("ERROR"|"OK"|"PROGRESS"), "DETAILS"=>"", "HTML"=>true)
         * @see \CAdminMessage::CAdminMessage
         */
        public function getAdminMessage()
        {
        }
        /**
         * Execute some code on service edit page if need.
         * @return Result
         */
        public function execAdminAction()
        {
        }
        /**
         * @param Shipment $shipment
         * @return array
         */
        public function getAdditionalInfoShipmentEdit(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param Shipment $shipment
         * @param array $requestData
         * @return Shipment|null
         */
        public function processAdditionalInfoShipmentEdit(\Bitrix\Sale\Shipment $shipment, array $requestData)
        {
        }
        /**
         * @param Shipment $shipment
         * @return array
         */
        public function getAdditionalInfoShipmentView(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param Shipment $shipment
         * @return array
         */
        public function getAdditionalInfoShipmentPublic(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @internal
         * @param \SplObjectStorage $cloneEntity
         *
         * @return EmptyDeliveryService
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * @return bool
         */
        public function isClone()
        {
        }
        /**
         * Returns names of supported delivery services
         * @return array
         */
        public static function getSupportedServicesList()
        {
        }
        /**
         * @return array Additional tabs to show on edit admin page.
         */
        public function getAdminAdditionalTabs()
        {
        }
        /**
         * @return int
         */
        public function getVatId()
        {
        }
        /**
         * @param int $vatId
         */
        public function setVatId($vatId)
        {
        }
        /**
         * @return Requests\HandlerBase
         */
        public function getDeliveryRequestHandler()
        {
        }
        public function createProfileObject($fields)
        {
        }
        /**
         * @return bool
         * @throws \Bitrix\Main\LoaderException
         */
        public static function isHandlerCompatible()
        {
        }
    }
    class Group extends \Bitrix\Sale\Delivery\Services\Base
    {
        public function __construct(array $initParams)
        {
        }
        public static function getClassTitle()
        {
        }
        public static function getClassDescription()
        {
        }
        protected function calculateConcrete(\Bitrix\Sale\Shipment $shipment)
        {
        }
        protected function getConfigStructure()
        {
        }
        public static function getAdminFieldsList()
        {
        }
        public static function whetherAdminRestrictionsShow()
        {
        }
        public static function canHasChildren()
        {
        }
        public static function isHandlerCompatible()
        {
        }
    }
    /**
     * Class ObjectPool
     * @package Bitrix\Sale\Delivery\Services
     * @internal
     */
    final class ObjectPool
    {
        protected $usage = array();
        /** @var Base[] $objects */
        protected $objects = array();
        protected $maxObjectsCount = 0;
        public function __construct($maxObjectsCount = 0)
        {
        }
        public function getObject(array $fields)
        {
        }
        protected function createObject($index, array $fields)
        {
        }
        protected function deleteOutdatedObject()
        {
        }
        protected function createIndex(array $fields)
        {
        }
    }
}
namespace Bitrix\Sale\Delivery\Services\Crm {
    /**
     * Interface ICrmEstimationMessageProvider
     * @package Bitrix\Crm\Order\Shipment
     * @internal
     */
    interface ICrmEstimationMessageProvider
    {
        /**
         * @param Shipment $shipment
         * @return EstimationMessage
         */
        public function provideCrmEstimationMessage(\Bitrix\Crm\Order\Shipment $shipment) : \Bitrix\Sale\Delivery\Services\Crm\EstimationMessage;
    }
    /**
     * Class EstimationMessage
     * @package Bitrix\Sale\Delivery\Services\Crm
     * @internal
     */
    final class EstimationMessage
    {
        /** @var int|null */
        private $typeId;
        /** @var int|null */
        private $authorId;
        /** @var array */
        private $fields = [];
        /** @var array */
        private $bindings = [];
        /**
         * @return int|null
         */
        public function getTypeId() : ?int
        {
        }
        /**
         * @param int|null $typeId
         * @return EstimationMessage
         */
        public function setTypeId(?int $typeId) : \Bitrix\Sale\Delivery\Services\Crm\EstimationMessage
        {
        }
        /**
         * @return int|null
         */
        public function getAuthorId() : ?int
        {
        }
        /**
         * @param int|null $authorId
         * @return EstimationMessage
         */
        public function setAuthorId(?int $authorId) : \Bitrix\Sale\Delivery\Services\Crm\EstimationMessage
        {
        }
        /**
         * @return array
         */
        public function getFields() : array
        {
        }
        /**
         * @param array $fields
         * @return EstimationMessage
         */
        public function setFields(array $fields) : \Bitrix\Sale\Delivery\Services\Crm\EstimationMessage
        {
        }
        /**
         * @return array
         */
        public function getBindings() : array
        {
        }
        /**
         * @param array $bindings
         * @return EstimationMessage
         */
        public function setBindings(array $bindings) : \Bitrix\Sale\Delivery\Services\Crm\EstimationMessage
        {
        }
    }
    /**
     * Interface ICrmActivityProvider
     * @package Bitrix\Crm\Order\Shipment
     * @internal
     */
    interface ICrmActivityProvider
    {
        /**
         * @param Shipment $shipment
         * @return Activity
         */
        public function provideCrmActivity(\Bitrix\Crm\Order\Shipment $shipment) : \Bitrix\Sale\Delivery\Services\Crm\Activity;
    }
    /**
     * Class Activity
     * @package Bitrix\Sale\Delivery\Services\Crm
     * @internal
     */
    final class Activity
    {
        /** @var string|null */
        private $subject;
        /** @var bool */
        private $isHandleable = true;
        /** @var bool */
        private $isCompleted = false;
        /** @var string|null */
        private $status;
        /** @var int|null */
        private $responsibleId;
        /** @var int|null */
        private $priority;
        /** @var int|null */
        private $authorId;
        /** @var array */
        private $bindings = [];
        /** @var array */
        private $fields = [];
        /**
         * @return string|null
         */
        public function getSubject() : ?string
        {
        }
        /**
         * @param string|null $subject
         * @return Activity
         */
        public function setSubject(?string $subject) : \Bitrix\Sale\Delivery\Services\Crm\Activity
        {
        }
        /**
         * @return bool
         */
        public function isHandleable() : bool
        {
        }
        /**
         * @param bool $isHandleable
         * @return Activity
         */
        public function setIsHandleable(bool $isHandleable) : \Bitrix\Sale\Delivery\Services\Crm\Activity
        {
        }
        /**
         * @return bool
         */
        public function isCompleted() : bool
        {
        }
        /**
         * @param bool $isCompleted
         * @return Activity
         */
        public function setIsCompleted(bool $isCompleted) : \Bitrix\Sale\Delivery\Services\Crm\Activity
        {
        }
        /**
         * @return string|null
         */
        public function getStatus() : ?string
        {
        }
        /**
         * @param string|null $status
         * @return Activity
         */
        public function setStatus(?string $status) : \Bitrix\Sale\Delivery\Services\Crm\Activity
        {
        }
        /**
         * @return int|null
         */
        public function getResponsibleId() : ?int
        {
        }
        /**
         * @param int|null $responsibleId
         * @return Activity
         */
        public function setResponsibleId(?int $responsibleId) : \Bitrix\Sale\Delivery\Services\Crm\Activity
        {
        }
        /**
         * @return int|null
         */
        public function getPriority() : ?int
        {
        }
        /**
         * @param int|null $priority
         * @return Activity
         */
        public function setPriority(?int $priority) : \Bitrix\Sale\Delivery\Services\Crm\Activity
        {
        }
        /**
         * @return int|null
         */
        public function getAuthorId() : ?int
        {
        }
        /**
         * @param int|null $authorId
         * @return Activity
         */
        public function setAuthorId(?int $authorId) : \Bitrix\Sale\Delivery\Services\Crm\Activity
        {
        }
        /**
         * @return array
         */
        public function getBindings() : array
        {
        }
        /**
         * @param array $bindings
         * @return Activity
         */
        public function setBindings(array $bindings) : \Bitrix\Sale\Delivery\Services\Crm\Activity
        {
        }
        /**
         * @return array
         */
        public function getFields() : array
        {
        }
        /**
         * @param array $fields
         * @return Activity
         */
        public function setFields(array $fields) : \Bitrix\Sale\Delivery\Services\Crm\Activity
        {
        }
    }
}
namespace Bitrix\Sale\Delivery\Services {
    /**
     * Class NewToAutomatic
     * Proxy for using new delivery services with old API for back compatibility.
     * Desn't support updating, saving etc. via admin pages.
     * Just show details & calculate for public components.
     * @package Bitrix\Sale\Delivery\Services
     */
    class NewToAutomatic
    {
        /** @var Base $service Real service, we want to wrap.*/
        protected $service = null;
        const HANDLER = __FILE__;
        /**
         * @param Base $service
         */
        public function __construct(\Bitrix\Sale\Delivery\Services\Base $service)
        {
        }
        /**
         * @return array
         */
        public function Init()
        {
        }
        /**
         * Check if this service is compatible.
         * @param array $arOrder Order details.
         * @param array $arConfig Useless.
         * @return array with profile.
         */
        public function compatibility($arOrder, $arConfig)
        {
        }
        /**
         * @param string $profile Useless.
         * @param array $arConfig Useless.
         * @param array $arOrder Order details.
         * @param int $STEP Useless.
         * @param bool|false $TEMP Useless.
         * @return array Delivery price.
         */
        public function calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = false)
        {
        }
        /**
         * Converts new service fields to old.
         * @param array $service Delivery service fields from new table.
         * @return array Service fields as it was in old API.
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function convertNewServiceToOld($service)
        {
        }
    }
    /**
     * Class Configurable
     * Simple class for delivery service.
     * Old configurable type converted to this type.
     * @package Bitrix\Sale\Delivery\Services
     */
    class Configurable extends \Bitrix\Sale\Delivery\Services\Base
    {
        protected static $isCalculatePriceImmediately = true;
        protected static $whetherAdminExtraServicesShow = true;
        /**
         * @param array $initParams Initial data params from table record.
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function __construct(array $initParams)
        {
        }
        /**
         * @return string Class title.
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string Class, service description.
         */
        public static function getClassDescription()
        {
        }
        /**
         * @return string Period text.
         */
        protected function getPeriodText()
        {
        }
        protected function calculateConcrete(\Bitrix\Sale\Shipment $shipment = null)
        {
        }
        /**
         * @return array
         * @throws \Exception
         */
        protected function getConfigStructure()
        {
        }
        public static function getAdminFieldsList()
        {
        }
        public function prepareFieldsForSaving(array $fields)
        {
        }
        public static function onAfterAdd($serviceId, array $fields = array())
        {
        }
        public function isCalculatePriceImmediately()
        {
        }
        public static function whetherAdminExtraServicesShow()
        {
        }
        public static function isHandlerCompatible()
        {
        }
    }
    /**
     * Class Manager
     * Helps to manage delivery services.
     * @package Bitrix\Sale\Delivery\Services
     */
    class Manager
    {
        const SKIP_PROFILE_PARENT_CHECK = 0;
        const SKIP_CHILDREN_PARENT_CHECK = 1;
        protected static $handlers = null;
        protected static $restHandlers = [];
        protected static $cachedFields = array();
        /* Directories where we can found handlers */
        protected static $handlersDirectories = array();
        /** @var null|Pool  */
        protected static $objectsPool = null;
        /**
         * Returns service field, caches results during hit.
         * @param int $deliveryId
         * @return array Service fields
         * @throws SystemException
         */
        public static function getById($deliveryId)
        {
        }
        /**
         * @param array $params
         * @return \Bitrix\Main\ORM\Query\Result
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         */
        public static function getList(array $params = array()) : \Bitrix\Main\ORM\Query\Result
        {
        }
        /**
         * @param Shipment $shipment.
         * @param int $restrictionMode MODE_CLIENT or MODE_MANAGER from Restrictions\Manager.
         * @return Base[] delivery services objects
         */
        public static function getRestrictedObjectsList(\Bitrix\Sale\Shipment $shipment, $restrictionMode = \Bitrix\Sale\Delivery\Restrictions\Manager::MODE_CLIENT)
        {
        }
        /**
         * @param $deliveryId
         * @return bool is service exists or not
         * @throws SystemException
         */
        public static function isServiceExist($deliveryId)
        {
        }
        /**
         * Prepares and caches data during the hit
         * @param bool $calculatingOnly If we need absolutely all, or calculating items only.
         * @param array $restrictedIds If we have list of services ids, successful checked restrictions.
         * @return array Array of active delivery services fields.
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getActiveList($calculatingOnly = false, $restrictedIds = null)
        {
        }
        /**
         * @param Shipment $shipment
         * @param int $restrictionMode MODE_CLIENT or MODE_MANAGER from Restrictions\Manager.
         * @param array $skipChecks self::SKIP_CHILDREN_PARENT_CHECK || self::SKIP_PROFILE_PARENT_CHECK
         * @return array Array of active delivery services fields filtered by restrictions.
         */
        public static function getRestrictedList(\Bitrix\Sale\Shipment $shipment = null, $restrictionMode, array $skipChecks = array())
        {
        }
        /**
         * @param array $srvParams Delivery service fields from DataBase to construct service object.
         * @return Base|null Delivery service object
         * All errors it writes to system log.
         * It's better to use \Bitrix\Sale\Delivery\Services\Manager::getPooledObject for performance purposes
         */
        public static function createObject(array $srvParams)
        {
        }
        public static function getPooledObject(array $fields)
        {
        }
        /**
         * @param int $deliveryId Delivery service id
         * @return Base Delivery service object
         * @throws ArgumentNullException
         * @throws SystemException
         */
        public static function getObjectById($deliveryId)
        {
        }
        /**
         * @param string $serviceCode Delivery service code
         * @return Base Delivery service object.
         * @throws ArgumentNullException
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getObjectByCode($serviceCode)
        {
        }
        /**
         * Gets info about existing delivery services handlers
         * Stores this information during the hit
         * @return bool
         * @throws SystemException
         * @throws \Bitrix\Main\LoaderException
         */
        protected static function initHandlers()
        {
        }
        /**
         * @return array Handler Classes
         * @throws \Bitrix\Main\IO\FileNotFoundException
         */
        protected static function getHandlersClasses()
        {
        }
        /**
         * @return array Known delivery services handlers
         * @throws SystemException
         */
        public static function getHandlersList()
        {
        }
        /**
         * @return array|null
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         */
        public static function getRestHandlerList() : ?array
        {
        }
        /**
         * Calculates the price of the shipment
         * @param Shipment $shipment
         * @param int $deliveryId optional
         * @param array  $extraServices optional
         * @return \Bitrix\Sale\Delivery\CalculationResult
         * @throws ArgumentNullException
         */
        public static function calculateDeliveryPrice(\Bitrix\Sale\Shipment $shipment, $deliveryId = 0, $extraServices = array())
        {
        }
        /**
         * Returns id of delivery service group.
         * Creates if such group does not exist.
         * @param string $name Group name
         * @return int Group id
         * @throws SystemException
         * @throws \Exception
         */
        public static function getGroupId($name)
        {
        }
        /**
         * @param int $parentId Delivery service parent id
         * @return array Delivery service fields
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getByParentId($parentId)
        {
        }
        /**
         * Returns entity link name for connection with Locations
         * @return string
         */
        public static function getLocationConnectorEntityName()
        {
        }
        /**
         * Adds delivery service
         * @param array $fields
         * @return AddResult
         * @throws SystemException
         * @throws \Exception
         */
        public static function add(array $fields)
        {
        }
        /**
         * @return string
         */
        public static function generateXmlId()
        {
        }
        /**
         * Updates delivery service
         * @param int $id
         * @param array $fields
         * @return \Bitrix\Main\Entity\UpdateResult
         * @throws SystemException
         * @throws \Exception
         */
        public static function update($id, array $fields)
        {
        }
        /**
         * Deletes delivery service
         * @param int $id
         * @return \Bitrix\Main\Result
         * @throws ArgumentNullException
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Exception
         */
        public static function delete($id)
        {
        }
        /**
         * @return array
         * registerEventHandler(
         * 	'sale', 'OnGetBusinessValueConsumers', 'sale',
         * 	'\Bitrix\Sale\Delivery\Services\Manager',
         * 	'onGetBusinessValueConsumers');
         */
        public static function onGetBusinessValueConsumers()
        {
        }
        public static function onGetBusinessValueGroups()
        {
        }
        /**
         * Sets fields values to all children
         * @param int $id
         * @param array $fields
         * @return int count modified children
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function setChildrenFieldsValues($id, array $fields)
        {
        }
        /**
         * @param string $code
         * @return int Service id
         */
        public static function getIdByCode($code)
        {
        }
        /**
         * @param int $id
         * @return string Delivery service code
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getCodeById($id)
        {
        }
        /**
         *
         * @param $value
         * @param $type
         * @return int|string Id or Code of delivery service
         */
        protected static function getIdCodeCached($value, $type)
        {
        }
        /**
         * Saves relation between Id an code of delivery service
         * @param int $id
         * @param string $code
         */
        protected static function setIdCodeCached($id, $code)
        {
        }
        /**
         * Cleans cache of delivery service id-code relation
         * @param int $id
         */
        protected static function cleanIdCodeCached($id)
        {
        }
        /**
         * Returns is delivery service is already used in shipments
         * @param $deliveryId
         * @return bool
         */
        protected static function isDeliveryInShipments($deliveryId)
        {
        }
        /**
         * Returns if delivery service and it's children are used in shipments
         * @param $deliveryId
         * @return Result
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function checkServiceUsage($deliveryId)
        {
        }
        /**
         * Deletes related entities
         * @param int $deliveryId
         * @return bool
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentException
         * todo: restrictions, extra_services - can require some actions after deletion
         */
        protected static function deleteRelatedEntities($deliveryId)
        {
        }
        /**
         * @return int Empty delivery service id
         * @throws SystemException
         */
        public static function getEmptyDeliveryServiceId()
        {
        }
        /**
         * @internal
         * @param int|int[] $deliveryId
         * @param mixed $checkParams
         * @param string $restrictionClassName
         * @return bool|int[]
         * @throws ArgumentNullException
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         */
        public static function checkServiceRestriction($deliveryId, $checkParams, $restrictionClassName)
        {
        }
        /**
         * Check if given class is valid delivery service class
         * inheritance of Bitrix\Sale\Delivery\Services\Base.
         * @param string $class Checking class.
         * @return bool
         */
        public static function isDeliveryServiceClassValid($class)
        {
        }
        /*
         * Deprecated methods. Will be removed in future versions.
         */
        /**
         * @deprecated  use \Bitrix\Sale\Delivery\Services\Manager::calculateDeliveryPrice()
         */
        public static function calculate(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @deprecated will be remove in next versions
         */
        public static function getRestrictionObject($className)
        {
        }
        /**
         * @deprecated use Restrictions\Manager::checkService()
         */
        public static function checkServiceRestrictions($deliveryId, \Bitrix\Sale\Shipment $shipment, $restrictionsClassesToSkip = array())
        {
        }
        /**
         * @deprecated use \Bitrix\Sale\Delivery\Services\Manager::getRestrictedObjectsList()
         */
        public static function getServicesForShipment(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @deprecated use \Bitrix\Sale\Delivery\Services\Manager::isServiceExist()
         */
        public static function isExistService($deliveryId)
        {
        }
        /**
         * @deprecated use \Bitrix\Sale\Delivery\Services\Manager::getActiveList()
         */
        public static function getActive()
        {
        }
        /**
         * @deprecated use \Bitrix\Sale\Delivery\Services\Manager::getRestrictedList()
         */
        public static function getServicesBriefsForShipment(\Bitrix\Sale\Shipment $shipment = null, array $skipChecks = array(), $getAll = false)
        {
        }
        /**
         * @deprecated use \Bitrix\Sale\Delivery\Services\Manager::createObject()
         */
        public static function createServiceObject(array $srvParams)
        {
        }
        /**
         * @deprecated use \Bitrix\Sale\Delivery\Services\Manager::getObjectById()
         */
        public static function getService($deliveryId)
        {
        }
        /**
         * @deprecated use \Bitrix\Sale\Delivery\Services\Manager::getServiceByCode()
         */
        public static function getServiceByCode($serviceCode)
        {
        }
        /**
         * @deprecated use \Bitrix\Sale\Delivery\Services\Manager::getHandlersList()
         */
        public static function getHandlersClassNames()
        {
        }
        /**
         * @deprecated use Restrictions\Manager::getClassesList()
         */
        public static function getRestrictionClassNames()
        {
        }
        /**
         * @deprecated use Restrictions\Manager::getRestrictionsList()
         */
        public static function getRestrictionsByDeliveryId($deliveryId)
        {
        }
    }
    /**
     * Class OrderPropsDictionary
     * @package Bitrix\Sale\Delivery\Services
     * @internal
     */
    final class OrderPropsDictionary
    {
        public const PROPERTY_GROUP_CODE = 'DELIVERY_SERVICE';
        public const ADDRESS_FROM_PROPERTY_CODE = 'DELIVERY_SERVICE_ADDRESS_FROM';
        public const ADDRESS_TO_PROPERTY_CODE = 'DELIVERY_SERVICE_ADDRESS_TO';
    }
}
namespace Bitrix\Sale\Delivery\Services\Taxi {
    /**
     * Interface ITaxiDeliveryService
     * @package Bitrix\Sale\Delivery\Services\Taxi
     * @internal
     */
    interface ITaxiDeliveryService
    {
        /**
         * @param Shipment $shipment
         * @return CreationRequestResult
         */
        public function createTaxiRequest(\Bitrix\Sale\Shipment $shipment) : \Bitrix\Sale\Delivery\Services\Taxi\CreationRequestResult;
        /**
         * @param int $requestId
         * @return CancellationRequestResult
         */
        public function cancelTaxiRequest(int $requestId) : \Bitrix\Sale\Delivery\Services\Taxi\CancellationRequestResult;
    }
    /**
     * Class Taxi
     * @package Bitrix\Sale\Delivery\Services\Taxi
     * @internal
     */
    abstract class Taxi extends \Bitrix\Sale\Delivery\Services\Base implements \Bitrix\Sale\Delivery\Services\Taxi\ITaxiDeliveryService
    {
        const TAXI_REQUEST_CREATED_EVENT_CODE = 'OnDeliveryTaxiRequestCreated';
        const TAXI_REQUEST_CANCELLED_EVENT_CODE = 'OnDeliveryTaxiRequestCancelled';
        /**
         * @inheritdoc
         */
        public function createTaxiRequest(\Bitrix\Sale\Shipment $shipment) : \Bitrix\Sale\Delivery\Services\Taxi\CreationRequestResult
        {
        }
        /**
         * @param Shipment $shipment
         * @return CreationExternalRequestResult
         */
        protected abstract function createTaxiExternalRequest(\Bitrix\Sale\Shipment $shipment) : \Bitrix\Sale\Delivery\Services\Taxi\CreationExternalRequestResult;
        /**
         * @inheritdoc
         */
        public function cancelTaxiRequest(int $requestId) : \Bitrix\Sale\Delivery\Services\Taxi\CancellationRequestResult
        {
        }
        /**
         * @param string $externalRequestId
         * @return CancellationRequestResult
         */
        protected abstract function cancelTaxiExternalRequest(string $externalRequestId) : \Bitrix\Sale\Delivery\Services\Taxi\CancellationRequestResult;
    }
    /**
     * Class StatusDictionary
     * @package Bitrix\Sale\Delivery\Services\Taxi
     */
    class StatusDictionary
    {
        public const INITIAL = 'initial';
        public const ON_ITS_WAY = 'on_its_way';
        public const SEARCHING = 'searching';
        public const SUCCESS = 'success';
        public const UNKNOWN = 'unknown';
        /**
         * @return string[]
         */
        private static function getList() : array
        {
        }
        /**
         * @param string $statusCode
         * @return bool
         */
        public static function isStatusValid(string $statusCode) : bool
        {
        }
    }
    /**
     * Class CreationExternalRequestResult
     * @package Bitrix\Sale\Delivery\Services\Taxi
     * @internal
     */
    final class CreationExternalRequestResult extends \Bitrix\Main\Result
    {
        /** @var string */
        private $status;
        /** @var string */
        private $externalRequestId;
        /**
         * @return string
         */
        public function getStatus() : ?string
        {
        }
        /**
         * @param string $status
         * @return CreationExternalRequestResult
         * @throws ArgumentException
         */
        public function setStatus(string $status) : \Bitrix\Sale\Delivery\Services\Taxi\CreationExternalRequestResult
        {
        }
        /**
         * @return string
         */
        public function getExternalRequestId() : ?string
        {
        }
        /**
         * @param string $externalRequestId
         * @return $this
         */
        public function setExternalRequestId(string $externalRequestId) : \Bitrix\Sale\Delivery\Services\Taxi\CreationExternalRequestResult
        {
        }
    }
    /**
     * Class CreationRequestResult
     * @package Bitrix\Sale\Delivery\Services\Taxi
     * @internal
     */
    final class CreationRequestResult extends \Bitrix\Main\Result
    {
        /** @var string */
        private $status;
        /** @var int */
        private $requestId;
        /**
         * @param string $status
         * @return CreationRequestResult
         * @throws ArgumentException
         */
        public function setStatus(string $status) : \Bitrix\Sale\Delivery\Services\Taxi\CreationRequestResult
        {
        }
        /**
         * @param int $requestId
         * @return CreationRequestResult
         */
        public function setRequestId(int $requestId) : \Bitrix\Sale\Delivery\Services\Taxi\CreationRequestResult
        {
        }
        /**
         * @return string|null
         */
        public function getStatus() : ?string
        {
        }
        /**
         * @return int|null
         */
        public function getRequestId() : ?int
        {
        }
    }
    /**
     * Class CancellationRequestResult
     * @package Bitrix\Sale\Delivery\Services\Taxi
     * @internal
     */
    final class CancellationRequestResult extends \Bitrix\Main\Result
    {
        /** @var bool */
        private $isPaid = false;
        /**
         * @return bool
         */
        public function isPaid() : bool
        {
        }
        /**
         * @param bool $isPaid
         * @return CancellationRequestResult
         */
        public function setIsPaid(bool $isPaid) : \Bitrix\Sale\Delivery\Services\Taxi\CancellationRequestResult
        {
        }
    }
}
namespace Bitrix\Sale\Delivery\Services {
    /**
     * Class Automatic
     * Proxy for old delivery handlers to work with new API.
     * @package Bitrix\Sale\Delivery\Services
     */
    class Automatic extends \Bitrix\Sale\Delivery\Services\Base
    {
        protected $sid = "";
        protected $oldConfig = array();
        protected $handlerInitParams = array();
        protected static $canHasProfiles = true;
        public function __construct(array $initParams)
        {
        }
        public static function getClassTitle()
        {
        }
        public static function getClassDescription()
        {
        }
        protected function getConfigStructure()
        {
        }
        public function prepareFieldsForSaving(array $fields)
        {
        }
        public static function convertNewSettingsToOld(array $newSettings = array())
        {
        }
        public static function convertOldConfigToNew($oldConfig)
        {
        }
        protected static function convertOldConfigParamToNew(array $oldParam)
        {
        }
        protected static function convertNewOrderToOld(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public static function getHandlerInitParams($sid)
        {
        }
        public static function initHandlers()
        {
        }
        public static function getRegisteredHandlers($indexBy = "")
        {
        }
        public static function convertNewServiceToOld($service, $sid = false)
        {
        }
        public function getOldDbSettings($settings)
        {
        }
        public static function createConfig($initHandlerParams, $settings, $siteId = false)
        {
        }
        protected function getCalcultor()
        {
        }
        protected function getCompability()
        {
        }
        protected static function getCompatibleProfiles($sid, $compatibilityFunc, array $config, \Bitrix\Sale\Shipment $shipment)
        {
        }
        public function isProfileCompatible($profileId, $config, \Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getOldConfig()
        {
        }
        public function getSid()
        {
        }
        /**
         * @param $profileId
         * @param array $profileConfig
         * @param \Bitrix\Sale\Shipment $shipment
         * @return CalculationResult
         * @throws SystemException
         * @throws \Bitrix\Main\LoaderException
         */
        public function calculateProfile($profileId, array $profileConfig, \Bitrix\Sale\Shipment $shipment)
        {
        }
        public static function getChildrenClassNames()
        {
        }
        public function getConfigValues()
        {
        }
        protected function getMarginPrice($price, $shipmentCurrency = '')
        {
        }
        public function getProfilesDefaultParams(array $fields = array())
        {
        }
        public static function onAfterAdd($serviceId, array $fields = array())
        {
        }
        public function getProfilesList()
        {
        }
        public static function canHasProfiles()
        {
        }
        public function getAdminMessage()
        {
        }
        public function execAdminAction()
        {
        }
        public function getAdditionalInfoShipmentEdit(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function processAdditionalInfoShipmentEdit(\Bitrix\Sale\Shipment $shipment, array $requestData)
        {
        }
        public function getAdditionalInfoShipmentView(\Bitrix\Sale\Shipment $shipment)
        {
        }
    }
    /**
     * Class Table
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> CODE string(50) optional
     * <li> PARENT_ID int optional
     * <li> NAME string(255) mandatory
     * <li> ACTIVE string(1) mandatory
     * <li> DESCRIPTION string(255) optional
     * <li> SORT int mandatory
     * <li> LOGOTIP int optional
     * <li> CONFIG string mandatory
     * <li> CURRENCY string(3) mandatory
     * <li> STORE string(255) optional
     * <li> CLASS_NAME string(255) optional
     * </ul>
     *
     * @package Bitrix\Sale\Delivery *
     **/
    class Table extends \Bitrix\Main\Entity\DataManager
    {
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function validateCode()
        {
        }
        public static function validateName()
        {
        }
        public static function validateCurrency()
        {
        }
        public static function validateClassName()
        {
        }
        /* Deprecated methods moved to manager. Will be removed in future versions. */
        /**
         * @deprecated use Services\Manager::getIdByCode()
         */
        public static function getIdByCode($code)
        {
        }
        /**
         * @deprecated use Services\Manager::getCodeById()
         */
        public static function getCodeById($id)
        {
        }
        /**
         * @param mixed $primary
         *	@return DeleteResult
         * @throws \Exception
         */
        public static function delete($primary)
        {
        }
    }
    /**
     * Class EmptyDeliveryService
     * @package Bitrix\Sale\Delivery\Services
     */
    class EmptyDeliveryService extends \Bitrix\Sale\Delivery\Services\Configurable
    {
        const CACHE_ID = 'BITRIX_SALE_EMPTY_DELIVERY_SRV_ID';
        const TTL = 31536000;
        /**
         * @return string Class title.
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string Class, service description.
         */
        public static function getClassDescription()
        {
        }
        /**
         * @return int
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getEmptyDeliveryServiceId()
        {
        }
        /**
         * @return int
         */
        private static function create()
        {
        }
        public static function isHandlerCompatible()
        {
        }
    }
    /**
     * Class AutomaticProfile
     * Adapter for old delivery services profile to work with new API.
     * @package Bitrix\Sale\Delivery\Services
     */
    class AutomaticProfile extends \Bitrix\Sale\Delivery\Services\Base
    {
        protected $profileId = "";
        protected $oldConfig;
        protected $parentSid;
        /** @var Automatic|null $parentAutomatic */
        protected $parentAutomatic = null;
        protected $parentHandlerInitParams = array();
        protected $profileConfig = null;
        protected $profileOldConfig = null;
        protected $profileOldConfigActualized = false;
        protected static $isProfile = true;
        public function __construct(array $initParams)
        {
        }
        protected function inheritParams()
        {
        }
        /**
         * @param bool $actualizeProfiles
         * @return array Old config.
         * @internal
         */
        public function getOldConfig($actualizeProfiles = false)
        {
        }
        /**
         * @param array $oldConfig
         * @return array
         */
        protected function actualizeProfilesConfig(array $oldConfig)
        {
        }
        public function getConfig()
        {
        }
        public static function getClassTitle()
        {
        }
        public static function getClassDescription()
        {
        }
        protected function calculateConcrete(\Bitrix\Sale\Shipment $shipment)
        {
        }
        protected function getMarginPrice($price)
        {
        }
        protected function getConfigStructure()
        {
        }
        public function prepareFieldsForSaving(array $fields)
        {
        }
        public function getParentService()
        {
        }
        public function isCompatible(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public static function isProfile()
        {
        }
        public function getAdditionalInfoShipmentEdit(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function processAdditionalInfoShipmentEdit(\Bitrix\Sale\Shipment $shipment, array $requestData)
        {
        }
        public function getAdditionalInfoShipmentView(\Bitrix\Sale\Shipment $shipment)
        {
        }
    }
}
namespace Bitrix\Sale\Delivery\Rest\Internals {
    /**
     * Class DeliveryRestHandlerTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> NAME string(255) mandatory
     * <li> CODE string(50) mandatory
     * <li> SORT int optional default 100
     * <li> DESCRIPTION text optional
     * <li> SETTINGS text mandatory
     * <li> PROFILES text mandatory
     * </ul>
     *
     * @package Bitrix\Sale
     **/
    class DeliveryRestHandlerTable extends \Bitrix\Main\ORM\Data\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         * @throws \Bitrix\Main\SystemException
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for NAME field.
         *
         * @return array
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public static function validateName()
        {
        }
        /**
         * Returns validators for CODE field.
         *
         * @return array
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public static function validateCode()
        {
        }
    }
}
namespace Bitrix\Sale\Delivery\Rest {
    class BaseService extends \IRestService
    {
        /**
         * @throws AccessException
         * @throws Main\LoaderException
         */
        protected static function checkDeliveryPermission() : void
        {
        }
        /**
         * @param array $data
         * @return array
         */
        protected static function prepareParams(array $data) : array
        {
        }
    }
    /**
     * Class RestHandler
     * @package Bitrix\Sale\Delivery\Rest
     */
    class HandlerService extends \Bitrix\Sale\Delivery\Rest\BaseService
    {
        private const ERROR_HANDLER_ADD = 'ERROR_HANDLER_ADD';
        private const ERROR_HANDLER_UPDATE = 'ERROR_HANDLER_UPDATE';
        private const ERROR_HANDLER_DELETE = 'ERROR_HANDLER_DELETE';
        private const ERROR_CHECK_FAILURE = 'ERROR_CHECK_FAILURE';
        private const ERROR_HANDLER_ALREADY_EXIST = 'ERROR_HANDLER_ALREADY_EXIST';
        private const ERROR_HANDLER_NOT_FOUND = 'ERROR_HANDLER_NOT_FOUND';
        /**
         * @param array $params
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        private static function checkParamsOnAddHandler(array $params) : void
        {
        }
        /**
         * @param array $params
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        private static function checkParamsOnUpdateHandler(array $params) : void
        {
        }
        /**
         * @param $params
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        private static function checkParamsOnDeleteHandler($params) : void
        {
        }
        /**
         * @param $query
         * @param $n
         * @param \CRestServer $server
         * @return array|false|int
         * @throws AccessException
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        public static function addHandler($query, $n, \CRestServer $server)
        {
        }
        /**
         * @param $query
         * @param $n
         * @param \CRestServer $server
         * @return bool
         * @throws AccessException
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        public static function updateHandler($query, $n, \CRestServer $server) : bool
        {
        }
        /**
         * @param $query
         * @param $n
         * @param \CRestServer $server
         * @return bool
         * @throws AccessException
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws RestException
         */
        public static function deleteHandler($query, $n, \CRestServer $server) : bool
        {
        }
        /**
         * @return array
         * @throws AccessException
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getHandlerList() : array
        {
        }
    }
    /**
     * Class Handlers
     * @package Bitrix\Sale\Delivery\Rest
     */
    class Handlers
    {
        private const SCOPE = 'delivery';
        /**
         * @return \array[][]
         */
        public static function OnRestServiceBuildDescription() : array
        {
        }
    }
    /**
     * Class DeliveryManager
     * @package Bitrix\Sale\Delivery\Rest
     */
    class DeliveryService extends \Bitrix\Sale\Delivery\Rest\BaseService
    {
        private const ERROR_CHECK_FAILURE = 'ERROR_CHECK_FAILURE';
        private const ERROR_HANDLER_NOT_FOUND = 'ERROR_HANDLER_NOT_FOUND';
        private const ERROR_DELIVERY_ADD = 'ERROR_DELIVERY_ADD';
        private const ERROR_DELIVERY_UPDATE = 'ERROR_DELIVERY_UPDATE';
        private const ERROR_DELIVERY_DELETE = 'ERROR_DELIVERY_DELETE';
        private const ERROR_DELIVERY_CONFIG_UPDATE = 'ERROR_DELIVERY_CONFIG_UPDATE';
        private const ERROR_DELIVERY_NOT_FOUND = 'ERROR_DELIVERY_NOT_FOUND';
        /**
         * @param $params
         * @throws Main\SystemException
         * @throws RestException
         */
        private static function checkParamsBeforeDeliveryAdd($params) : void
        {
        }
        /**
         * @param $params
         * @throws Main\SystemException
         * @throws RestException
         */
        private static function checkParamsBeforeDeliveryUpdate($params) : void
        {
        }
        /**
         * @param $params
         * @throws Main\SystemException
         * @throws RestException
         */
        private static function checkParamsBeforeDeliveryDelete($params) : void
        {
        }
        /**
         * @param $params
         * @throws RestException
         */
        private static function checkParamsBeforeDeliveryConfigGet($params) : void
        {
        }
        private static function checkParamsBeforeDeliveryConfigUpdate($params) : void
        {
        }
        private static function saveFile($fileContent)
        {
        }
        /**
         * @param $query
         * @param $n
         * @param \CRestServer $server
         * @return array|int
         * @throws AccessException
         * @throws Main\LoaderException
         * @throws Main\SystemException
         * @throws RestException
         */
        public static function addDelivery($query, $n, \CRestServer $server)
        {
        }
        /**
         * @param $query
         * @param $n
         * @param \CRestServer $server
         * @return bool
         * @throws AccessException
         * @throws Main\LoaderException
         * @throws Main\SystemException
         * @throws RestException
         */
        public static function updateDelivery($query, $n, \CRestServer $server) : bool
        {
        }
        /**
         * @param $query
         * @param $n
         * @param \CRestServer $server
         * @return bool
         * @throws AccessException
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\LoaderException
         * @throws Main\SystemException
         * @throws RestException
         */
        public static function deleteDelivery($query, $n, \CRestServer $server) : bool
        {
        }
        /**
         * @param $query
         * @param $n
         * @param \CRestServer $server
         * @return array
         * @throws AccessException
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getDeliveryList($query, $n, \CRestServer $server) : array
        {
        }
        /**
         * @param $query
         * @param $n
         * @param \CRestServer $server
         * @return array
         * @throws AccessException
         * @throws Main\LoaderException
         * @throws Main\SystemException
         * @throws RestException
         */
        public static function getConfig($query, $n, \CRestServer $server) : array
        {
        }
        /**
         * @param $query
         * @param $n
         * @param \CRestServer $server
         * @return bool
         * @throws AccessException
         * @throws Main\LoaderException
         * @throws Main\SystemException
         * @throws RestException
         */
        public static function updateConfig($query, $n, \CRestServer $server) : bool
        {
        }
    }
}
namespace Bitrix\Sale\Delivery\Packing {
    /**
     * Class Container
     * Contains Boxes
     * @package Bitrix\Sale\Delivery\Packing
     */
    class Container
    {
        /** @var Box[] Boxes list.*/
        protected $boxes = array();
        protected $availableVertexes = array(array(0, 0, 0));
        /**
         * @param int[] $boxDims Point move box to
         * @return bool
         */
        public function addBox(array $boxDims)
        {
        }
        public function addBoxToVertex(array $boxDims, $vertexIdx)
        {
        }
        public function extractLastBox()
        {
        }
        public function insertBox(\Bitrix\Sale\Delivery\Packing\Box $box, $vertexId = 0)
        {
        }
        protected function refreshVertexesAfterBoxAdd(\Bitrix\Sale\Delivery\Packing\Box $box)
        {
        }
        /**
         * @return Box[]
         */
        public function getBoxes()
        {
        }
        public function getAvailableVertexes()
        {
        }
        /**
         * Check if box can be added
         * @param Box $newBox
         * @return bool
         */
        protected function isVertexSuitable(\Bitrix\Sale\Delivery\Packing\Box $newBox)
        {
        }
        /**
         * Checks if boxes intersect
         * @param Box $box1
         * @param Box $box2
         * @return bool
         */
        protected static function isBoxesIntersects(\Bitrix\Sale\Delivery\Packing\Box $box1, \Bitrix\Sale\Delivery\Packing\Box $box2)
        {
        }
        /**
         * Are edges intersect
         * @param int $min1
         * @param int $max1
         * @param int $min2
         * @param int $max2
         * @return bool
         */
        protected static function isEdgesIntersects($min1, $max1, $min2, $max2)
        {
        }
        /**
         * @return array Dimensions of space filled by boxes
         */
        public function getFilledDimensions()
        {
        }
        /**
         * @return int Volume of space filled by boxes
         */
        public function getFilledVolume()
        {
        }
        /**
         * @param int[] $p1
         * @param int[] $p2
         * @return int
         * @internal
         */
        public static function distanceCompare(array $p1, array $p2)
        {
        }
        /**
         * Calculate distance between two points
         * @param array $p1
         * @param array $p2
         * @return float
         */
        public static function calculateDistance(array $p1, array $p2)
        {
        }
    }
    /**
     * Class Packer
     * @package Bitrix\Sale\Delivery\Packing
     */
    class Packer
    {
        /**
         * Returns Dimensions of space filled by boxes
         * @param array $boxesSizes
         * @return array
         * todo: optimize
         */
        public static function countMinContainerSize(array $boxesSizes)
        {
        }
    }
    /**
     * Class Box
     * @package Bitrix\Sale\Delivery\Packing
     */
    class Box
    {
        /** @var int[] Vertex closest to origin */
        protected $vMin = array(0, 0, 0);
        /** @var int[] Vertex most far from origin */
        protected $vMax = array(0, 0, 0);
        /**
         * Box constructor.
         * @param int[] $sizes Box sizes array($sizeX, $sizeY, $sizeZ).
         */
        public function __construct(array $sizes)
        {
        }
        /**
         * @return int[]
         */
        public function getVMin()
        {
        }
        public function getSizes()
        {
        }
        /**
         * @return int[]
         */
        public function getVMax()
        {
        }
        /**
         * @return array[]
         */
        public function getVertexes()
        {
        }
        /**
         * @param int[] $vertex
         */
        public function setVMin(array $vertex)
        {
        }
        /**
         * @param int[] $vertex
         */
        public function setVMax(array $vertex)
        {
        }
        /**
         * Set nearest to origin vertex to given point.
         * @param int[] $point Point coordinates.
         */
        public function move(array $point)
        {
        }
        /**
         * Rotates box around given axe pi/2 degree
         * @param bool[] $axes Axes for rotation
         */
        public function rotate(array $axes)
        {
        }
    }
}
namespace Bitrix\Sale {
    /**
     * Class TradeBindingCollection
     * @package Bitrix\Sale
     */
    class TradeBindingCollection extends \Bitrix\Sale\Internals\EntityCollection
    {
        protected $order = null;
        /**
         * @return Internals\Entity
         */
        protected function getEntityParent()
        {
        }
        /**
         * @return null
         */
        public function getOrder()
        {
        }
        /**
         * @return TradeBindingCollection
         * @throws \Bitrix\Main\ArgumentException
         */
        private static function createCollectionObject()
        {
        }
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @param Order $order
         */
        public function setOrder(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param Order $order
         * @return TradeBindingCollection
         * @throws Main\ArgumentException
         * @throws Main\ArgumentTypeException
         * @throws Main\SystemException
         */
        public static function load(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param array $parameters
         * @return \Bitrix\Main\DB\Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * @param TradingPlatform\Platform|null $platform
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         * @throws Main\SystemException
         */
        public function createItem(\Bitrix\Sale\TradingPlatform\Platform $platform = null)
        {
        }
        /**
         * @param Internals\CollectableEntity $item
         * @return Internals\CollectableEntity
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         */
        public function addItem(\Bitrix\Sale\Internals\CollectableEntity $item)
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectNotFoundException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws \Exception
         */
        public function save()
        {
        }
        /**
         * @internal
         *
         * @param $idOrder
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function deleteNoDemand($idOrder)
        {
        }
        /**
         * @param $primary
         * @return Main\ORM\Data\DeleteResult
         * @throws \Exception
         */
        protected static function deleteInternal($primary)
        {
        }
        /**
         * @internal
         * @param \SplObjectStorage $cloneEntity
         *
         * @return TradeBindingCollection
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
    }
    class OrderHistory
    {
        protected static $pool = array();
        protected static $poolFields = array();
        const SALE_ORDER_HISTORY_UPDATE = 'UPDATE';
        const SALE_ORDER_HISTORY_RECORD_TYPE_ACTION = 'ACTION';
        const SALE_ORDER_HISTORY_RECORD_TYPE_FIELD = 'FIELD';
        const SALE_ORDER_HISTORY_RECORD_TYPE_DEBUG = 'DEBUG';
        const FIELD_TYPE_NAME = 'NAME';
        const FIELD_TYPE_TYPE = 'TYPE';
        const SALE_ORDER_HISTORY_LOG_LEVEL_0 = 0;
        const SALE_ORDER_HISTORY_LOG_LEVEL_1 = 1;
        const SALE_ORDER_HISTORY_ACTION_LOG_LEVEL_0 = 0;
        const SALE_ORDER_HISTORY_ACTION_LOG_LEVEL_1 = 1;
        protected function __construct()
        {
        }
        /**
         * @param string $entityName
         * @param int $orderId
         * @param string $field
         * @param null|string $oldValue
         * @param null|string $value
         * @param int $id
         * @param $entity
         * @param array $fields
         */
        public static function addField($entityName, $orderId, $field, $oldValue = null, $value = null, $id = null, $entity = null, array $fields = array())
        {
        }
        /**
         * @param $entityName
         * @param $orderId
         * @param $type
         * @param null $id
         * @param null $entity
         * @param array $fields
         * @param null $level
         *
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function addAction($entityName, $orderId, $type, $id = null, $entity = null, array $fields = array(), $level = null)
        {
        }
        /**
         * @param $entityName
         * @param $orderId
         * @param null|int $id
         * @return bool
         */
        public static function collectEntityFields($entityName, $orderId, $id = null)
        {
        }
        /**
         * @param $entity
         * @param $orderId
         * @return bool|array
         */
        protected static function getPoolByEntity($entity, $orderId)
        {
        }
        /**
         * @param $entityName
         * @param $type
         * @param Entity $entity
         * @param array $data
         * @return array
         */
        protected static function prepareDataForAdd($entityName, $type, $entity = null, array $data = array())
        {
        }
        /**
         * @param $entityName
         * @param $orderId
         * @param $type
         * @param null $id
         * @param null|Entity $entity
         * @param array $data
         */
        protected static function addRecord($entityName, $orderId, $type, $id = null, $entity = null, array $data = array())
        {
        }
        /**
         * @param $fields
         * @return Main\Entity\AddResult
         * @throws \Exception
         */
        protected static function addInternal($fields)
        {
        }
        /**
         * @param $entityName
         * @param $type
         *
         * @return bool
         */
        protected static function getOperationType($entityName, $type)
        {
        }
        /**
         * @param $value
         * @return bool
         */
        private static function isDate($value)
        {
        }
        /**
         * @param $value
         * @return string
         */
        private static function convertDateField($value)
        {
        }
        /**
         * @param $id
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws \Exception
         */
        public static function deleteByOrderId($id)
        {
        }
        /**
         * @param array $parameters
         * @return Main\DB\Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected static function getList(array $parameters = array())
        {
        }
        /**
         * @param $primary
         * @return Main\Entity\DeleteResult
         * @throws \Exception
         */
        protected static function deleteInternal($primary)
        {
        }
        /**
         * @param $entityName
         * @param $orderId
         * @param $type
         * @param null $id
         * @param null $entity
         * @param array $fields
         * @param null $level
         *
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function addLog($entityName, $orderId, $type, $id = null, $entity = null, array $fields = array(), $level = null)
        {
        }
        /**
         * @param $level
         *
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function checkLogLevel($level)
        {
        }
        /**
         * @param $level
         *
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function checkActionLogLevel($level)
        {
        }
        /**
         * @param $days
         * @param null $limit
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\ObjectException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws \Exception
         */
        protected static function deleteOldInternal($days, $limit = null)
        {
        }
        /**
         * Delete old records on an agent
         *
         * @param $days
         * @param null $hitLimit
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\ObjectException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws \Exception
         */
        public static function deleteOldAgent($days, $hitLimit = null)
        {
        }
        /**
         * @return array
         */
        public static function getManagerLogItems()
        {
        }
    }
    class GoodsSectionTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    class ShipmentItem extends \Bitrix\Sale\Internals\CollectableEntity implements \IEntityMarker
    {
        /** @var BasketItem */
        protected $basketItem;
        /** @var  ShipmentItemStoreCollection */
        protected $shipmentItemStoreCollection;
        /** @var array */
        protected static $errors = [];
        /**
         * @return array
         */
        public static function getAvailableFields()
        {
        }
        /**
         * @return array
         */
        protected static function getMeaningfulFields()
        {
        }
        /**
         * Internal method, use ShipmentItemCollection::createItem()
         *
         * @internal
         * @see ShipmentItemCollection::createItem()
         *
         * @param ShipmentItemCollection $collection
         * @param BasketItem $basketItem
         * @return ShipmentItem
         */
        public static function create(\Bitrix\Sale\ShipmentItemCollection $collection, \Bitrix\Sale\BasketItem $basketItem = null)
        {
        }
        /**
         * @return string
         */
        protected static function generateXmlId()
        {
        }
        /**
         * Deletes shipment item
         *
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws \Exception
         */
        public function delete()
        {
        }
        /**
         * @return float
         */
        public function getQuantity()
        {
        }
        /**
         * @param string $name
         * @param mixed $oldValue
         * @param mixed $value
         *
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        protected function onFieldModify($name, $oldValue, $value)
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function checkMarkingCodeOnDeducted()
        {
        }
        /**
         * @param float $quantity
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotSupportedException
         * @throws \Exception
         */
        public function setQuantity($quantity)
        {
        }
        /**
         * @return float
         */
        public function getReservedQuantity()
        {
        }
        /**
         * @return int
         */
        public function getBasketId()
        {
        }
        /**
         * @return int
         * @throws Main\SystemException
         */
        public function getBasketCode()
        {
        }
        /**
         * @return int
         * @throws Main\SystemException
         */
        public function getProductId()
        {
        }
        /**
         * @internal
         *
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectException
         * @throws Main\ObjectNotFoundException
         */
        public function save()
        {
        }
        /**
         * @throws Main\ObjectNotFoundException
         */
        private function checkCallingContext()
        {
        }
        private function getParentShipmentId()
        {
        }
        /**
         * @param $id
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        public static function loadForShipment($id)
        {
        }
        /**
         * @param $itemData
         * @return ShipmentItem
         */
        private static function createShipmentItemObject(array $itemData = [])
        {
        }
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @return string
         */
        public static function getRegistryEntity()
        {
        }
        /**
         * @return Internals\CollectableEntity|bool
         * @throws Main\ObjectNotFoundException
         */
        protected function loadBasketItem()
        {
        }
        /**
         * @return BasketItem
         */
        public function getBasketItem()
        {
        }
        /**
         * @return ShipmentItemStoreCollection
         */
        public function getShipmentItemStoreCollection()
        {
        }
        /**
         * @param $action
         * @param BasketItem $basketItem
         * @param null $name
         * @param null $oldValue
         * @param null $value
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public function onBasketModify($action, \Bitrix\Sale\BasketItem $basketItem, $name = null, $oldValue = null, $value = null)
        {
        }
        /**
         * @return Result
         * @throws Main\NotSupportedException
         */
        protected function calculateDelivery()
        {
        }
        /**
         * @param string $name
         * @param null|string $oldValue
         * @param null|string $value
         * @throws Main\ObjectNotFoundException
         */
        protected function addChangesToHistory($name, $oldValue = null, $value = null)
        {
        }
        /**
         * @return bool
         */
        public function isChanged()
        {
        }
        /**
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws \Exception
         */
        public function tryReserve()
        {
        }
        /**
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws \Exception
         */
        public function tryUnreserve()
        {
        }
        /**
         * @return Result
         * @throws Main\ObjectNotFoundException
         */
        public function verify()
        {
        }
        /**
         * @param array $parameters
         *
         * @return Main\DB\Result
         * @throws Main\ArgumentException
         */
        public static function getList(array $parameters)
        {
        }
        /**
         * @internal
         *
         * @param \SplObjectStorage $cloneEntity
         * @return Internals\CollectableEntity|ShipmentItem|object
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws Main\ObjectNotFoundException
         */
        public function createClone(\SplObjectStorage $cloneEntity)
        {
        }
        /**
         * @param $value
         *
         * @return string
         */
        public function getErrorEntity($value)
        {
        }
        /**
         * @param $value
         *
         * @return bool
         */
        public function canAutoFixError($value)
        {
        }
        /**
         * @return array
         */
        public function getAutoFixErrorsList()
        {
        }
        /**
         * @param $code
         *
         * @return Result
         */
        public function tryFixError($code)
        {
        }
        public function canMarked()
        {
        }
        public function getMarkField()
        {
        }
        /**
         * @internal
         */
        public function clearChanged()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectNotFoundException
         */
        public function needReserve()
        {
        }
        /**
         * @return int
         * @throws Main\ObjectNotFoundException
         */
        public function getNeedReserveQuantity()
        {
        }
        /**
         * @param array $data
         * @return Main\ORM\Data\AddResult
         * @throws \Exception
         */
        protected function addInternal(array $data)
        {
        }
        /**
         * @param $primary
         * @param array $data
         * @return Main\ORM\Data\UpdateResult
         * @throws \Exception
         */
        protected function updateInternal($primary, array $data)
        {
        }
        /**
         * @return array
         */
        protected static function getFieldsMap()
        {
        }
        /**
         * @return null|string
         * @internal
         *
         */
        public static function getEntityEventName()
        {
        }
    }
    class BasketBundleCollection extends \Bitrix\Sale\Basket
    {
        /** @var null|BasketItem */
        protected $parentBasketItem = null;
        /**
         * @param BasketItem $basketItem
         */
        public function setParentBasketItem(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @return BasketItem|null
         */
        public function getParentBasketItem()
        {
        }
        /**
         * @return Basket
         */
        protected static function createBasketObject()
        {
        }
    }
    /**
     * Class ProviderAccountPay
     * @package Bitrix\Sale
     */
    class ProviderAccountPay implements \IBXSaleProductProvider
    {
        /**
         * @param array $fields
         * @return array
         */
        public static function GetProductData($fields)
        {
        }
        public static function OrderProduct($fields)
        {
        }
        public static function CancelProduct($fields)
        {
        }
        public static function DeliverProduct($fields)
        {
        }
        public static function ViewProduct($fields)
        {
        }
        public static function RecurringOrderProduct($fields)
        {
        }
        public static function GetStoresCount($arParams = array())
        {
        }
        public static function GetProductStores($fields)
        {
        }
        public static function ReserveProduct($fields)
        {
        }
        public static function CheckProductBarcode($fields)
        {
        }
        /**
         * @param array $fields
         * @return array
         */
        public static function DeductProduct($fields)
        {
        }
    }
    class Provider extends \Bitrix\Sale\ProviderBase
    {
    }
    class OrderProcessor
    {
        function __construct()
        {
        }
        public static function calculate()
        {
        }
    }
    class DiscountCouponsManagerBase
    {
        const MODE_CLIENT = 0x1;
        const MODE_MANAGER = 0x2;
        const MODE_ORDER = 0x4;
        const MODE_SYSTEM = 0x8;
        const MODE_EXTERNAL = 0x10;
        const STATUS_NOT_FOUND = 0x1;
        const STATUS_ENTERED = 0x2;
        const STATUS_APPLYED = 0x4;
        const STATUS_NOT_APPLYED = 0x8;
        const STATUS_FREEZE = 0x10;
        const COUPON_CHECK_OK = 0x0;
        const COUPON_CHECK_NOT_FOUND = 0x1;
        const COUPON_CHECK_NO_ACTIVE = 0x2;
        const COUPON_CHECK_RANGE_ACTIVE_FROM = 0x4;
        const COUPON_CHECK_RANGE_ACTIVE_TO = 0x8;
        const COUPON_CHECK_NO_ACTIVE_DISCOUNT = 0x10;
        const COUPON_CHECK_RANGE_ACTIVE_FROM_DISCOUNT = 0x20;
        const COUPON_CHECK_RANGE_ACTIVE_TO_DISCOUNT = 0x40;
        const COUPON_CHECK_BAD_USER_ID = 0x80;
        const COUPON_CHECK_ALREADY_MAX_USED = 0x100;
        const COUPON_CHECK_UNKNOWN_TYPE = 0x200;
        const COUPON_CHECK_CORRUPT_DATA = 0x400;
        const COUPON_CHECK_NOT_APPLIED = 0x800;
        const COUPON_MODE_SIMPLE = 0x1;
        const COUPON_MODE_FULL = 0x2;
        const EVENT_ON_BUILD_COUPON_PROVIDES = 'onBuildCouponProviders';
        const EVENT_ON_SAVE_APPLIED_COUPONS = 'onManagerSaveApplied';
        const EVENT_ON_COUPON_ADD = 'onManagerCouponAdd';
        const EVENT_ON_COUPON_DELETE = 'onManagerCouponDelete';
        const EVENT_ON_COUPON_APPLY_PRODUCT = 'onManagerCouponApplyByProduct';
        const EVENT_ON_COUPON_APPLY = 'onManagerCouponApply';
        const STORAGE_MANAGER_COUPONS = 'CATALOG_MANAGE_COUPONS';
        const STORAGE_CLIENT_COUPONS = 'CATALOG_USER_COUPONS';
        protected static $coupons = array();
        protected static $init = false;
        protected static $useMode = self::MODE_CLIENT;
        protected static $errors = array();
        protected static $onlySaleDiscount = null;
        protected static $userId = null;
        protected static $couponProviders = array();
        protected static $couponTypes = array();
        protected static $couponIndex = 0;
        protected static $orderId = null;
        protected static $allowedSave = false;
        protected static $checkActivity = true;
        protected static $useOrderCoupons = true;
        protected static $clearFields = array('STATUS', 'CHECK_CODE', 'DISCOUNT_NAME', 'DISCOUNT_ACTIVE', 'SAVED', 'BASKET', 'DELIVERY');
        protected static $timeFields = array('DISCOUNT_ACTIVE_FROM', 'DISCOUNT_ACTIVE_TO', 'ACTIVE_FROM', 'ACTIVE_TO');
        protected static $allowCouponStorage = 0;
        /**
         * @throws Main\NotImplementedException
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * Init use mode and user id.
         *
         * @param int $mode			Discount manager mode.
         * @param array $params		Initial params (userId, orderId, oldUserId)
         * 		keys are case sensitive:
         * 			<ul>
         * 			<li>int userId		Order owner (for MODE_MANAGER or MODE_ORDER only)
         * 			<li>int orderId		Edit order id (for MODE_ORDER only(!))
         * 			<li>int oldUserId	Old order owner for MODE_MANAGER or MODE_ORDER only)
         * 			</ul>.
         * @return void
         */
        public static function initUseMode($mode = self::MODE_CLIENT, $params = array())
        {
        }
        /**
         * Returns use mode.
         *
         * @return int
         */
        public static function getUseMode()
        {
        }
        /**
         * Verifies that the client mode being used.
         *
         * @return bool
         */
        public static function usedByClient()
        {
        }
        /**
         * Verifies that the manager mode being used.
         *
         * @return bool
         */
        public static function usedByManager()
        {
        }
        /**
         * Verifies that the external order mode being used.
         *
         * @return bool
         */
        public static function usedByExternal()
        {
        }
        /**
         * Returns user id.
         *
         * @return null|int
         */
        public static function getUserId()
        {
        }
        /**
         * Returns order id, if current use mode self::MODE_ORDER.
         *
         * @return null|int
         */
        public static function getOrderId()
        {
        }
        /**
         * Returns a sign of success.
         *
         * @return bool
         */
        public static function isSuccess()
        {
        }
        /**
         * Returns error list.
         *
         * @return array
         */
        public static function getErrors()
        {
        }
        /**
         * Clear errors list.
         *
         * @return void
         */
        public static function clearErrors()
        {
        }
        /**
         * Returns coupon status list.
         *
         * @param bool $extendedMode	Get status Ids or Ids with description.
         * @return array
         */
        public static function getStatusList($extendedMode = false)
        {
        }
        /**
         * Returns check code list.
         *
         * @param bool $extendedMode	Get codes or codes with description.
         * @return array
         */
        public static function getCheckCodeList($extendedMode = false)
        {
        }
        /**
         * Returns description of check code.
         * @param int $code Code value.
         *
         * @return string|null
         */
        public static function getCheckCodeMessage($code)
        {
        }
        /**
         * Set use ordered coupons for apply.
         *
         * @param bool $state		Use state.
         * @return void
         */
        public static function useSavedCouponsForApply($state)
        {
        }
        /**
         * Returns use ordered coupons for apply.
         *
         * @return bool
         */
        public static function isUsedOrderCouponsForApply()
        {
        }
        /**
         * Enable get coupons for calculate discounts.
         *
         * @return void
         */
        public static function unFreezeCouponStorage()
        {
        }
        /**
         * Disable get coupons for calculate discounts.
         *
         * @return void
         */
        public static function freezeCouponStorage()
        {
        }
        /**
         * Returns true, if disallow get coupons for calculate discounts.
         *
         * @return bool
         */
        public static function isFrozenCouponStorage()
        {
        }
        /**
         * Initialization coupon manager.
         *
         * @param int $mode				Discount manager mode.
         * @param array $params			Initial params (userId, orderId, oldUserId)
         * 		keys are case sensitive:
         * 			<ul>
         * 			<li>int userId		Order owner (for MODE_MANAGER or MODE_ORDER only)
         * 			<li>int orderId		Edit order id (for MODE_ORDER only(!))
         * 			<li>int oldUserId	Old order owner for MODE_MANAGER or MODE_ORDER only)
         * 			</ul>.
         * @param bool $clearStorage	Clear coupon session storage.
         * @return void
         */
        public static function init($mode = self::MODE_CLIENT, $params = array(), $clearStorage = false)
        {
        }
        /**
         * Unconditional reinitialization coupon manager.
         *
         * @param int $mode				Discount manager mode.
         * @param array $params			Initial params (userId, orderId, oldUserId)
         * 		keys are case sensitive:
         * 			<ul>
         * 			<li>int userId		Order owner (for MODE_MANAGER or MODE_ORDER only)
         * 			<li>int orderId		Edit order id (for MODE_ORDER only(!))
         * 			<li>int oldUserId	Old order owner for MODE_MANAGER or MODE_ORDER only)
         * 			</ul>.
         * @param bool $clearStorage	Clear coupon session storage.
         * @return void
         */
        public static function reInit($mode = self::MODE_CLIENT, $params = array(), $clearStorage = false)
        {
        }
        /**
         * Returns true, if coupons were are entered.
         *
         * @return bool
         */
        public static function isEntered()
        {
        }
        /**
         * Add coupon in manager.
         *
         * @param string $coupon	Added coupon.
         * @return bool
         */
        public static function add($coupon)
        {
        }
        /**
         * Delete coupon from manager.
         *
         * @param string $coupon	Deleted coupon.
         * @return bool
         */
        public static function delete($coupon)
        {
        }
        /**
         * Clear coupon storage.
         *
         * @param bool $clearStorage		Clear coupon session storage.
         * @return bool
         */
        public static function clear($clearStorage = false)
        {
        }
        /**
         * Clear coupon storage for order.
         *
         * @param int $order			Order id.
         * @return bool
         */
        public static function clearByOrder($order)
        {
        }
        /**
         * Change coupons owner in manager or order mode.
         *
         * @param int $oldUser				Old user id.
         * @return void
         */
        public static function migrateStorage($oldUser)
        {
        }
        /**
         * Load coupons for existing order.
         *
         * @return void
         */
        public static function load()
        {
        }
        /**
         * Get coupons list.
         *
         * @param bool $extMode			Get full information or coupons only.
         * @param array $filter			Coupons filter.
         * @param bool $show			Get for show or apply.
         * @param bool $final			Change status ENTERED to NOT_APPLIED.
         * @return array|bool
         */
        public static function get($extMode = true, $filter = array(), $show = false, $final = false)
        {
        }
        /**
         * Get coupons list for apply.
         *
         * @param array $filter					Coupons filter.
         * @param array $product				Product description.
         * @param bool $uniqueDiscount			Get one coupon for discount.
         * @return array|bool
         */
        public static function getForApply($filter, $product = array(), $uniqueDiscount = false)
        {
        }
        /**
         * Returns coupons for current order.
         *
         * @param bool $extMode					Get full information or coupons only.
         * @param array $filter					Coupons filter.
         * @return array
         */
        public static function getOrderedCoupons($extMode = true, $filter = array())
        {
        }
        /**
         * Verifies the current status of new applied coupons. Used before order save.
         *
         * @return Result
         */
        public static function verifyApplied()
        {
        }
        /**
         * Save applied coupons.
         *
         * @return void
         */
        public static function saveApplied()
        {
        }
        /**
         * Set applied information for product.
         *
         * @param array $product		Product description.
         * @param array $couponsList	Coupons for product.
         * @param bool $oldMode			Compatibility mode with old custom providers.
         * @return bool
         */
        public static function setApplyByProduct($product, $couponsList, $oldMode = false)
        {
        }
        /**
         * Set applied information for basket.
         *
         * @param string $coupon		Coupon.
         * @param array $data				Apply data (basket, delivery).
         * @return bool
         */
        public static function setApply($coupon, $data)
        {
        }
        /**
         * Clear applied information for product.
         *
         * @param array $product		Product description.
         * @return bool
         */
        public static function deleteApplyByProduct($product)
        {
        }
        /**
         * Change status coupons for save.
         *
         * @return void
         */
        public static function finalApply()
        {
        }
        /**
         * Clear applied data for coupon.
         *
         * @param string $coupon			Coupon.
         * @return bool
         */
        public static function clearApplyCoupon($coupon)
        {
        }
        /**
         * Clear applied data for coupons.
         *
         * @param bool $all					Clear for coupons or not saved.
         * @return bool
         */
        public static function clearApply($all = true)
        {
        }
        /**
         * Returns information about coupon.
         *
         * @param string $coupon			Coupon for search.
         * @param bool $checkCoupon			Check coupon data.
         * @return array|false
         */
        public static function getData($coupon, $checkCoupon = true)
        {
        }
        /**
         * Checks if a coupon exists.
         *
         * @param string $coupon		Coupon for check.
         * @return array|bool
         */
        public static function isExist($coupon)
        {
        }
        /**
         * Returns entered coupon data.
         *
         * @param string $coupon			Coupon code.
         * @param bool $clearData			Clear data for save order coupon.
         * @return bool|array
         */
        public static function getEnteredCoupon($coupon, $clearData = false)
        {
        }
        /**
         * Clear coupons storage with logout from public.
         *
         * @return void
         */
        public static function logout()
        {
        }
        /**
         * Returns true if the coupon was used in the order and saved.
         *
         * @param array $coupon			Coupon data.
         * @return bool
         */
        public static function filterOrderCoupons($coupon)
        {
        }
        /**
         * Reload discount coupons providers.
         * @internal
         *
         * @param bool $mode		true, if use only sale discounts.
         * @return void
         */
        public static function setUseOnlySaleDiscounts($mode)
        {
        }
        /**
         * Checks the basic coupon fields.
         *
         * @param array &$data			Coupon data.
         * @param int $checkCode		Start status.
         * @return int
         */
        protected static function checkBaseData(&$data, $checkCode = self::COUPON_CHECK_OK)
        {
        }
        /**
         * Checks the extended coupon fields.
         *
         * @param array &$data			Coupon data.
         * @param int $mode				Coupon mode (full or simple).
         * @param int $checkCode		Start check status.
         * @param int $currentTimestamp		Current time.
         * @return int
         */
        protected static function checkFullData(&$data, $mode = self::COUPON_MODE_FULL, $checkCode = self::COUPON_CHECK_OK, $currentTimestamp)
        {
        }
        /**
         * Fill client information.
         *
         * @param array &$result			Coupon data.
         * @param array $existCoupon	User data.
         * @param int $checkCode		Checked result.
         * @return void
         */
        protected static function fillUserInfo(&$result, $existCoupon, $checkCode)
        {
        }
        /**
         * Get user by fuser id.
         *
         * @return void
         */
        protected static function initUserId()
        {
        }
        /**
         * Save current coupons to session storage.
         *
         * @return void
         */
        protected static function saveToStorage()
        {
        }
        /**
         * Clear applied coupons.
         *
         * @param array $result		Applied coupons.
         * @return void
         */
        protected static function eraseAppliedCoupons($result)
        {
        }
        /**
         * Create applied fields.
         *
         * @param array &$couponData	Coupon data.
         * @return void
         */
        protected static function createApplyFields(&$couponData)
        {
        }
        /**
         * Load coupon providers from modules.
         *
         * @return void
         */
        protected static function loadCouponProviders()
        {
        }
        /**
         * Initialization coupons providers.
         *
         * @return void
         */
        protected static function initUseDiscount()
        {
        }
        /**
         * Filter for remove unknown coupons.
         *
         * @param array $coupon		Coupon data.
         * @return bool
         */
        protected static function filterUnknownCoupons($coupon)
        {
        }
        /**
         * Filter for remove freeze coupons.
         *
         * @param array $coupon		Coupon data.
         * @return bool
         */
        protected static function filterFreezeCoupons($coupon)
        {
        }
        /**
         * Filter for remove freeze ordered coupons.
         *
         * @param array $coupon		Coupon data.
         * @return bool
         */
        protected static function filterFreezeOrderedCoupons($coupon)
        {
        }
        /**
         * Clear one row coupons.
         *
         * @param array $coupon		Coupon data.
         * @param string $hash		Product hash.
         * @return bool
         */
        protected static function filterOneRowCoupons($coupon, $hash)
        {
        }
        /**
         * Returns one coupon for one discount.
         *
         * @param array &$coupons		Coupons list.
         * @return void
         */
        protected static function filterUniqueDiscount(&$coupons)
        {
        }
        /**
         * Filter manager coupons list.
         *
         * @param array $filter			Filter for coupons.
         * @param bool $getId			Resturn Id or full data.
         * @return array
         */
        protected static function filterCoupons($filter, $getId = false)
        {
        }
        /**
         * Filter coupons list.
         *
         * @param array &$coupons		Coupons list.
         * @param array $filter			Coupon filter.
         * @return void
         */
        protected static function filterArrayCoupons(&$coupons, $filter)
        {
        }
        /**
         * Create product hash.
         *
         * @param array $product		Product description.
         * @return string
         */
        protected static function getProductHash($product)
        {
        }
        /**
         * Create catalog product hash for old custom providers.
         *
         * @param array $product		Product description.
         * @return string
         */
        protected static function getCatalogProductHash($product)
        {
        }
        /**
         * Fill coupon hints.
         *
         * @param array &$coupons			Coupons list.
         * @return void
         */
        protected static function fillCouponHints(&$coupons)
        {
        }
        /**
         * Set coupons list.
         *
         * @param array $couponsList			Coupons list.
         * @param bool $checkCoupons			Find coupons.
         * @return void
         */
        protected static function setCoupons($couponsList, $checkCoupons = true)
        {
        }
        /**
         * Clear order saved coupons.
         *
         * @internal
         * @param array $coupon		Coupon data.
         * @return bool
         */
        protected static function clearSavedCoupons($coupon)
        {
        }
        /**
         * Clear system data.
         *
         * @internal
         * @param array &$coupons			Coupons.
         * @return void
         */
        protected static function clearSystemData(&$coupons)
        {
        }
        /**
         * Convert old filter fields.
         *
         * @internal
         * @param array &$filter		Coupons filter.
         * @return void
         */
        protected static function convertOldFilterFields(array &$filter)
        {
        }
        /**
         * Returns empty coupon (default field values).
         *
         * @internal
         * @param string $coupon		Coupon code.
         * @return array
         */
        protected static function getEmptyCouponFields($coupon)
        {
        }
    }
    class DiscountCouponsManager extends \Bitrix\Sale\DiscountCouponsManagerBase
    {
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
    }
    final class BusinessValue
    {
        const ENTITY_DOMAIN = 'E';
        const INDIVIDUAL_DOMAIN = 'I';
        private static $redefinedFields = array();
        private static $consumers = array();
        private static $consumerCodePersonMapping = array();
        /** @deprecated */
        public static function getValueFromProvider(\Bitrix\Sale\IBusinessValueProvider $provider = null, $codeKey, $consumerKey)
        {
        }
        /**
         * @param array $fields
         */
        public static function redefineProviderField(array $fields)
        {
        }
        /** Get business value.
         * @param string $codeKey
         * @param string|null $consumerKey
         * @param IBusinessValueProvider|string|integer|null $personTypeId
         * @param mixed $providerInstance
         * @return mixed
         */
        public static function get($codeKey, $consumerKey = null, $personTypeId = null, $providerInstance = null)
        {
        }
        /** Check if mapping has been set.
         * @param string $codeKey
         * @param string|null $consumerKey
         * @param string|integer|null $personTypeId
         * @return bool
         */
        public static function isSetMapping($codeKey, $consumerKey = null, $personTypeId = null)
        {
        }
        const MATCH_ALL = -1;
        const MATCH_EXACT = 1;
        const MATCH_COMMON = 2;
        const MATCH_DEFAULT = 4;
        /** Get mapping.
         * @param string $codeKey
         * @param string|null $consumerKey
         * @param string|integer|null $personTypeId
         * @param array $options
         * @return array with PROVIDER_KEY and PROVIDER_VALUE if mapping was found, or empty array
         */
        public static function getMapping($codeKey, $consumerKey = null, $personTypeId = null, array $options = array())
        {
        }
        /** Set mapping.
         * @param string $codeKey
         * @param string|null $consumerKey
         * @param string|integer|null $personTypeId
         * @param array $mapping
         * @param bool $withCommon internal, do not use!
         * @return \Bitrix\Main\Entity\Result
         * @throws \Exception
         */
        public static function setMapping($codeKey, $consumerKey, $personTypeId, array $mapping, $withCommon = false)
        {
        }
        /**
         * @param $consumerKey
         * @param null $personTypeId
         * @throws SystemException
         */
        public static function delete($consumerKey, $personTypeId = null)
        {
        }
        /**
         * @param $consumerKey
         * @param $code
         * @param $personTypeId
         * @param $mapping
         * @throws SystemException
         */
        private static function deleteInternal($consumerKey, $code, $personTypeId, $mapping)
        {
        }
        /** @internal do not use! */
        public static function getConsumerCodePersonMapping()
        {
        }
        /**
         * Get all registered providers.
         * @return array
         * @throws SystemException
         */
        public static function getProviders()
        {
        }
        private static $commonConsumer = array();
        /** Get all registered consumers.
         * @return array
         * @throws SystemException
         */
        public static function getConsumers()
        {
        }
        private static function addConsumerByRef($consumerKey, array &$consumer)
        {
        }
        public static function addConsumer($consumerKey, array $consumer)
        {
        }
        public static function changeConsumer($consumerKey, array $consumer)
        {
        }
        public static function changeConsumerKey($fromConsumerKey, $toConsumerKey)
        {
        }
        public static function getGroups()
        {
        }
        /** @internal */
        private static function sortArray(array &$data)
        {
        }
        /** @internal */
        public static function getPersonTypes($all = false, array $resetAllPersonTypes = null)
        {
        }
        /**
         * @param $codeKey
         * @param array $oldMapping
         * @param array $newMapping
         * @param null $consumerKey
         * @param null $personTypeId
         * @return \Bitrix\Main\Entity\Result
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         */
        public static function updateMapping($codeKey, array $oldMapping, array $newMapping, $consumerKey = null, $personTypeId = null) : \Bitrix\Main\Entity\Result
        {
        }
        // DEPRECATED API //////////////////////////////////////////////////////////////////////////////////////////////////
        /** @deprecated */
        public static function install($parentName, $translationSource, $data)
        {
        }
        /** @deprecated */
        const COMMON_PERSON_ID = 0;
        // person type id
        /** @deprecated */
        const COMMON_DOMAIN = 'C';
    }
    /** @deprecated */
    class BusinessValueHandlers
    {
        public static function getProviders()
        {
        }
        public static function getConsumers()
        {
        }
        public static function getGroups()
        {
        }
    }
    /** @internal */
    class BusinessValueConsumer1C
    {
        const CONSUMER_KEY = '1C';
        private static $codes, $personMaxIndex;
        private static $systemProviderKeys = array('', 'VALUE', 'USER', 'ORDER', 'PROPERTY', 'COMPANY', 'PAYMENT', 'SHIPMENT');
        private static $rekvProviderKeys = array('VALUE', 'USER', 'ORDER', 'PROPERTY', 'COMPANY', 'PAYMENT', 'SHIPMENT');
        private static $codeNameInput = array('TYPE' => 'STRING', 'SIZE' => 40, 'MAXLENGTH' => 50);
        public static function &getConsumers()
        {
        }
        public static function getRekvCodeKey($personTypeId, $codeIndex)
        {
        }
        private static function getRekvCode($personTypeId, $codeIndex, $name)
        {
        }
        public static function sanitizeMapping($codeKey, $personTypeId, array &$mapping)
        {
        }
        public static function setMapping($codeKey, $personTypeId, array $mapping)
        {
        }
        public static function renderColumns($codeKey, $personTypeId, array $mappings, $inputNamePrefix)
        {
        }
        public static function getJavaScript()
        {
        }
    }
    class UserMessageException extends \Bitrix\Main\SystemException
    {
        public function __construct($message = "", \Exception $previous = null)
        {
        }
    }
}
namespace Bitrix\Sale\Domain\Verification {
    /**
     * Class Service
     * @package Bitrix\Main\Domain
     */
    final class Service
    {
        /**
         * @param Main\Event $event
         * @return Main\Entity\EventResult
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @noinspection PhpUnused
         */
        public static function landingDomainVerificationHandler(\Bitrix\Main\Event $event) : \Bitrix\Main\Entity\EventResult
        {
        }
        /**
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @noinspection PhpUnused
         */
        public static function b24DomainVerificationHandler() : void
        {
        }
        /**
         * @param $content
         */
        public static function setEndBufferContentHandler($content) : void
        {
        }
    }
}
namespace Bitrix\Sale\Domain\Verification\Internals {
    /**
     * Class DomainVerificationTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> DOMAIN string(255) mandatory
     * <li> PATH string(255) mandatory
     * <li> CONTENT string optional
     * <li> ENTITY string(1024) mandatory
     * </ul>
     *
     * @package Bitrix\Main
     **/
    class DomainVerificationTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for DOMAIN field.
         *
         * @return array
         * @throws Main\ArgumentTypeException
         */
        public static function validateDomain()
        {
        }
        /**
         * Returns validators for PATH field.
         *
         * @return array
         * @throws Main\ArgumentTypeException
         */
        public static function validatePath()
        {
        }
        /**
         * Returns validators for ENTITY field.
         *
         * @return array
         * @throws Main\ArgumentTypeException
         */
        public static function validateEntity()
        {
        }
    }
}
namespace Bitrix\Sale\Helpers\Order\Builder {
    interface IOrderBuilderDelegate
    {
        /**
         * IOrderBuilderDelegate constructor.
         * @param OrderBuilder $builder
         */
        public function __construct(\Bitrix\Sale\Helpers\Order\Builder\OrderBuilder $builder);
        /**
         * @param array $data
         * @return mixed
         */
        public function createOrder(array $data);
        /**
         * @return mixed
         */
        public function setUser();
        /**
         * @return mixed
         */
        public function buildBasket();
        /**
         * @param Shipment $shipment
         * @param array $fields
         * @return mixed
         */
        public function setShipmentPriceFields(\Bitrix\Sale\Shipment $shipment, array $fields);
        /**
         * @param int $orderPropsCountBefore
         * @param Order $order
         */
        public function recalculateDeliveryPrice(int $orderPropsCountBefore, \Bitrix\Sale\Order $order);
    }
    /**
     * Class OrderBuilder
     * @package Bitrix\Sale\Helpers\Order\Builder
     * @internal
     */
    abstract class OrderBuilder
    {
        /** @var OrderBuilderExist|OrderBuilderNew */
        protected $delegate = null;
        /** @var BasketBuilder  */
        protected $basketBuilder = null;
        /** @var SettingsContainer */
        protected $settingsContainer = null;
        /** @var Order  */
        protected $order = null;
        /** @var array */
        protected $formData = array();
        /** @var ErrorsContainer  */
        protected $errorsContainer = null;
        /** @var bool */
        protected $isStartField;
        /** @var Registry */
        protected $registry = null;
        public function __construct(\Bitrix\Sale\Helpers\Order\Builder\SettingsContainer $settings)
        {
        }
        public function build($data)
        {
        }
        public function setBasketBuilder(\Bitrix\Sale\Helpers\Order\Builder\BasketBuilder $basketBuilder)
        {
        }
        public function getRegistry()
        {
        }
        protected function prepareFields(array $fields)
        {
        }
        public function initFields(array $data)
        {
        }
        /**
         * @param array $data
         * @return $this
         * @deprecated
         */
        public function initOrder(array $data)
        {
        }
        public function delegate()
        {
        }
        public function createOrder()
        {
        }
        protected function getSettableTradeBindingFields()
        {
        }
        protected function getSettableShipmentFields()
        {
        }
        protected function getSettablePaymentFields()
        {
        }
        protected function getSettableOrderFields()
        {
        }
        public function setFields()
        {
        }
        public function setProperties()
        {
        }
        public function setUser()
        {
        }
        public function setDiscounts()
        {
        }
        public function buildBasket()
        {
        }
        protected function createEmptyShipment()
        {
        }
        protected function removeShipments()
        {
        }
        protected function prepareFieldsStatusId($isNew, $item, $defaultFields)
        {
        }
        public function buildShipments()
        {
        }
        protected function removeShipmentItems(\Bitrix\Sale\Shipment $shipment, $products, $idsFromForm)
        {
        }
        /**
         * @param Shipment $shipment
         * @param array $shipmentBasket
         * @return Result
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\NotSupportedException
         * @throws \Bitrix\Main\ObjectNotFoundException
         * @throws \Bitrix\Main\SystemException
         * @throws \Exception
         */
        public function buildShipmentBasket(&$shipment, $shipmentBasket)
        {
        }
        protected function prepareDataForSetFields(\Bitrix\Sale\Shipment $shipment, $items)
        {
        }
        protected function modifyQuantityShipmentItem(\Bitrix\Sale\ShipmentItem $shipmentItem, array $params)
        {
        }
        protected function setBarcodeShipmentItem(\Bitrix\Sale\ShipmentItem $shipmentItem, array $params)
        {
        }
        protected function createEmptyPayment()
        {
        }
        protected function removePayments()
        {
        }
        public function buildPayments()
        {
        }
        public function buildTradeBindings()
        {
        }
        protected function tradingPlatformExists($id)
        {
        }
        protected function removeTradeBindings()
        {
        }
        public function finalActions()
        {
        }
        public function getOrder()
        {
        }
        public function getSettingsContainer()
        {
        }
        public function getErrorsContainer()
        {
        }
        public function getFormData($fieldName = '')
        {
        }
        public function getBasketBuilder()
        {
        }
        public static function getDefaultPersonType($siteId)
        {
        }
        public static function getBuyerTypesList($siteId)
        {
        }
        public function getUserId()
        {
        }
        protected function createUserFromFormData()
        {
        }
    }
    /**
     * Class OrderBuilderRestSale
     * @package Bitrix\Sale\Helpers\Order\Builder
     * @internal
     */
    class OrderBuilderRest extends \Bitrix\Sale\Helpers\Order\Builder\OrderBuilder
    {
        public function __construct(\Bitrix\Sale\Helpers\Order\Builder\SettingsContainer $settings)
        {
        }
        protected function prepareFields(array $fields)
        {
        }
        protected function createEmptyPayment()
        {
        }
        protected function createEmptyShipment()
        {
        }
        protected function prepareFieldsStatusId($isNew, $item, $defaultFields)
        {
        }
        protected function removeShipmentItems(\Bitrix\Sale\Shipment $shipment, $products, $idsFromForm)
        {
        }
        protected function prepareDataForSetFields(\Bitrix\Sale\Shipment $shipment, $items)
        {
        }
        protected function modifyQuantityShipmentItem(\Bitrix\Sale\ShipmentItem $shipmentItem, array $params)
        {
        }
        private function getQuantityBasketItemFromShipmentCollection(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        protected function setQuantityShipmentItem(\Bitrix\Sale\ShipmentItem $shipmentItem, $value, $oldValue)
        {
        }
        public function synchronizeQuantityShipmentItems(\Bitrix\Sale\ShipmentItem $shipmentItem, $needQuantity)
        {
        }
        public function setProperties()
        {
        }
        public function setUser()
        {
        }
        public function setDiscounts()
        {
        }
        protected function removePropertyValues()
        {
        }
        protected function getSettableOrderFields()
        {
        }
        protected function checkDeliveryRestricted($shipment, $deliveryService, $shipmentFields)
        {
        }
        public function buildEntityShipments(array $fields)
        {
        }
        public function buildEntityPayments(array $fields)
        {
        }
        public function buildEntityBasket(array $fields)
        {
        }
        public function buildEntityOrder(array $fields)
        {
        }
        public function buildEntityProperties(array $fields)
        {
        }
    }
    /**
     * Class BasketBuilder
     * @package Bitrix\Sale\Helpers\Order\Builder
     * @internal
     */
    abstract class BasketBuilder
    {
        const BASKET_CODE_NEW = 'new';
        /** @var IBasketBuilderDelegate */
        protected $delegate = null;
        /** @var OrderBuilder  */
        protected $builder = null;
        /** @var int  */
        protected $maxBasketCodeIdx = 0;
        /** @var array  */
        protected $formData = [];
        /** @var array  */
        protected $needDataUpdate = array();
        /** @var array  */
        protected $basketCodeMap = [];
        /** @var array  */
        protected $cacheProductProviderData = false;
        /** @var array  */
        protected $catalogProductsIds = [];
        /** @var array  */
        protected $catalogProductsData = [];
        /** @var array  */
        protected $providerData = [];
        /** @var array  */
        protected $trustData = [];
        /** @var bool */
        protected $isProductAdded = false;
        public function __construct(\Bitrix\Sale\Helpers\Order\Builder\OrderBuilder $builder)
        {
        }
        public function initBasket()
        {
        }
        /**
         * @param int $orderId
         * @return IBasketBuilderDelegate
         */
        protected function getDelegate($orderId)
        {
        }
        /**
         * @return bool
         */
        public function isNeedUpdateNewProductPrice()
        {
        }
        public function checkProductData(array $productData)
        {
        }
        public function preliminaryDataPreparation()
        {
        }
        protected function getExistsItem($moduleId, $productId, array $properties = array())
        {
        }
        public function removeDeletedItems()
        {
        }
        public function itemsDataPreparation()
        {
        }
        public function basketCodeMap()
        {
        }
        // Preparing fields needed by provider
        protected function setItemsFieldsByFormData()
        {
        }
        protected function obtainCatalogProductsData(array $fields = array())
        {
        }
        protected function obtainProviderProductsData()
        {
        }
        protected function isProductAvailable($basketCode, $productFormData, $productProviderData, $isProductDataNeedUpdate)
        {
        }
        //todo: \Bitrix\Catalog\Product\Basket::addProductToBasket()
        public function setItemsFields()
        {
        }
        public function getOrder()
        {
        }
        public function getSettingsContainer()
        {
        }
        public function getErrorsContainer()
        {
        }
        public function getFormData()
        {
        }
        public function getBasket()
        {
        }
        public static function isBasketItemNew($basketCode)
        {
        }
        protected function getItemFromBasket($basketCode, $productData)
        {
        }
        protected function setItemData($basketCode, &$productData, &$item)
        {
        }
        protected function createItem($basketCode, &$productData)
        {
        }
        public function getCatalogMeasures()
        {
        }
        public function sendProductCachedDataToProvider(\Bitrix\Sale\BasketItem $item, \Bitrix\Sale\Order $order, array &$productData)
        {
        }
        public function setBasketItemFields(\Bitrix\Sale\BasketItem &$item, array $fields = array())
        {
        }
        public function finalActions()
        {
        }
        public function isProductAdded()
        {
        }
    }
    class BasketBuilderSale extends \Bitrix\Sale\Helpers\Order\Builder\BasketBuilder
    {
    }
    interface IBasketBuilderDelegate
    {
        public function __construct(\Bitrix\Sale\Helpers\Order\Builder\BasketBuilder $builder);
        public function getItemFromBasket($basketCode, $productData);
        public function setItemData($basketCode, &$productData, &$item);
        public function finalActions();
    }
    class BasketBuilderExist implements \Bitrix\Sale\Helpers\Order\Builder\IBasketBuilderDelegate
    {
        /** @var BasketBuilder */
        protected $builder = null;
        public function __construct(\Bitrix\Sale\Helpers\Order\Builder\BasketBuilder $builder)
        {
        }
        public function getItemFromBasket($basketCode, $productData)
        {
        }
        /**
         * @param $basketCode
         * @param BasketItem $item
         * @param array $productData
         */
        public function setItemData($basketCode, &$productData, &$item)
        {
        }
        public function finalActions()
        {
        }
    }
    /**
     * Class BasketBuildeRestExist
     * @package Bitrix\Sale\Helpers\Order\Builder
     * @internal
     */
    final class BasketBuildeRestExist extends \Bitrix\Sale\Helpers\Order\Builder\BasketBuilderExist
    {
        public function getItemFromBasket($basketCode, $productData)
        {
        }
    }
    final class ErrorsContainer extends \Bitrix\Sale\Result
    {
        protected $acceptableErrorCodes = [];
        /**
         * Adds the error.
         * @param Error $error
         */
        public function addError(\Bitrix\Main\Error $error)
        {
        }
        /**
         * Adds array of Error objects
         *
         * @param Error[] $errors
         * @return $this
         */
        public function addErrors(array $errors)
        {
        }
        public function setAcceptableErrorCodes(array $errorCodes)
        {
        }
        private function isErrorAcceptable(\Bitrix\Main\Error $error)
        {
        }
    }
    final class OrderBuilderNew implements \Bitrix\Sale\Helpers\Order\Builder\IOrderBuilderDelegate
    {
        protected $builder = null;
        /** @var array */
        protected $deliveryCalculationErrors = [];
        public function __construct(\Bitrix\Sale\Helpers\Order\Builder\OrderBuilder $builder)
        {
        }
        public function createOrder(array $data)
        {
        }
        public function buildBasket()
        {
        }
        public function setUser()
        {
        }
        public function setShipmentPriceFields(\Bitrix\Sale\Shipment $shipment, array $fields)
        {
        }
        /**
         * @inheritdoc
         */
        public function recalculateDeliveryPrice(int $orderPropsCountBefore, \Bitrix\Sale\Order $order)
        {
        }
    }
    /**
     * Exception is thrown if errors occurs during order building
     */
    class BuildingException extends \Bitrix\Main\SystemException
    {
    }
    final class Director
    {
        public function createOrder(\Bitrix\Sale\Helpers\Order\Builder\OrderBuilder $builder, array $fields)
        {
        }
        /**
         * @param OrderBuilder $builder
         * @param array $shipmentData
         * @return Shipment
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function getUpdatedShipment(\Bitrix\Sale\Helpers\Order\Builder\OrderBuilder $builder, array $shipmentData)
        {
        }
        /**
         * @param OrderBuilder $builder
         * @param array $shipmentData
         * @return \Bitrix\Sale\Payment
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function getUpdatedPayment(\Bitrix\Sale\Helpers\Order\Builder\OrderBuilder $builder, array $paymentData)
        {
        }
    }
    final class OrderBuilderSale extends \Bitrix\Sale\Helpers\Order\Builder\OrderBuilder
    {
        public function __construct(\Bitrix\Sale\Helpers\Order\Builder\SettingsContainer $settings)
        {
        }
    }
    class BasketBuilderNew implements \Bitrix\Sale\Helpers\Order\Builder\IBasketBuilderDelegate
    {
        protected $builder = null;
        public function __construct(\Bitrix\Sale\Helpers\Order\Builder\BasketBuilder $builder)
        {
        }
        public function getItemFromBasket($basketCode, $productData)
        {
        }
        /**
         * @param string $basketCode
         * @param array $productData
         * @param BasketItem $item
         */
        public function setItemData($basketCode, &$productData, &$item)
        {
        }
        public function finalActions()
        {
        }
    }
    /**
     * Class BasketBuilderRest
     * @package Bitrix\Sale\Helpers\Order\Builder
     * @internal
     */
    final class BasketBuilderRest extends \Bitrix\Sale\Helpers\Order\Builder\BasketBuilder
    {
        protected function getDelegate($orderId)
        {
        }
        public static function isBasketItemNew($basketCode)
        {
        }
        // ïåðåîïðåäåëÿåì ðîäèòåëüñêèé ìåòîä,
        // êàê âðåìåííîå ðåøåíèå ò.ê. â àäìèíêå íå ïîääåðæèâàåòñÿ ðàáîòà ñ êîðçèíîé â êîòîðîé îäèíàêîâûé òîâàð
        protected function getExistsItem($moduleId, $productId, array $properties = array())
        {
        }
        public function preliminaryDataPreparation()
        {
        }
        public function itemsDataPreparation()
        {
        }
        public function basketCodeMap()
        {
        }
        public function setItemsFields()
        {
        }
        public function finalActions()
        {
        }
    }
    /**
     * Class OrderBuilderExist
     * @package Bitrix\Sale\Helpers\Order\Builder
     * @internal
     */
    final class OrderBuilderExist implements \Bitrix\Sale\Helpers\Order\Builder\IOrderBuilderDelegate
    {
        /** @var OrderBuilder|null  */
        protected $builder = null;
        /**
         * OrderBuilderExist constructor.
         * @param OrderBuilder $builder
         */
        public function __construct(\Bitrix\Sale\Helpers\Order\Builder\OrderBuilder $builder)
        {
        }
        /**
         * @param array $data Form data.
         * @return Order
         * @throws BuildingException
         * @throws \Bitrix\Main\ArgumentException
         */
        public function createOrder(array $data)
        {
        }
        public function setUser()
        {
        }
        public function buildBasket()
        {
        }
        public function setShipmentPriceFields(\Bitrix\Sale\Shipment $shipment, array $fields)
        {
        }
        /**
         * @inheritdoc
         */
        public function recalculateDeliveryPrice(int $orderPropsCountBefore, \Bitrix\Sale\Order $order)
        {
        }
    }
    final class SettingsContainer
    {
        const DISALLOW_NEW_USER_CREATION = 0;
        const ALLOW_NEW_USER_CREATION = 1;
        const SET_ANONYMOUS_USER = 2;
        private $settings = [
            //Delete clients which is not in the parameters
            'deleteClientsIfNotExists' => false,
            //Allow creation new user if it doesn't exist yet.
            'createUserIfNeed' => self::ALLOW_NEW_USER_CREATION,
            //Delete tradeBindings which is not in the parameters
            'deleteTradeBindingIfNotExists' => false,
            //Delete basketItems which is not in the parameters
            'deleteBaketItemsIfNotExists' => true,
            //Delete payment which is not in the parameters
            'deletePaymentIfNotExists' => false,
            //Delete shipment which is not in the parameters
            'deleteShipmentIfNotExists' => false,
            //Delete shipmentItem which is not in the parameters
            'deleteShipmentItemIfNotExists' => false,
            //Delete propertyValues which is not in the parameters
            'deletePropertyValuesIfNotExists' => false,
            //Do we need to create a new payment by default, if payments empty?
            'createDefaultPaymentIfNeed' => true,
            //Do we need to create a new shipment by default, if shipments empty?
            'createDefaultShipmentIfNeed' => true,
            //Do we need update the price of just added products.
            //Now it is used only after the buyerId was changed.
            'needUpdateNewProductPrice' => false,
            //Refresh all products data.
            //Now it is used only during order recalculation
            'isRefreshData' => false,
            //For performance purposes
            'cacheProductProviderData' => true,
            //Other errors will be ignored.
            //We need this mostly during order creation
            //empty means - all acceptable
            'acceptableErrorCodes' => [],
            //We need this if some of order properties upload files.
            'propsFiles' => [],
        ];
        public function __construct(array $settings)
        {
        }
        public function getItemValue($name)
        {
        }
        private function getAvailableItems()
        {
        }
    }
}
namespace Bitrix\Sale\Helpers {
    class Order
    {
        /**
         * Check ability to view order is not an authorized user
         *
         * @param Sale\Order $order
         *
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function isAllowGuestView(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * Return link to order for an unauthorized users.
         *
         * @param Sale\Order $order
         *
         * @return string
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getPublicLink(\Bitrix\Sale\Order $order)
        {
        }
    }
}
namespace Bitrix\Sale\Helpers\Admin\Blocks {
    class Factory
    {
        public static function create($type, $params = [])
        {
        }
    }
    class OrderMarker
    {
        /**
         * @param int $orderId
         *
         * @return array
         */
        public static function getView($orderId)
        {
        }
        /**
         * @param int $orderId
         * @param int $entityId
         *
         * @return array
         */
        public static function getViewForEntity($orderId, $entityId)
        {
        }
        /**
         * @param int $orderId
         * @param null|int $entityId
         *
         * @return array
         */
        protected static function getViewList($orderId, $entityId = null)
        {
        }
        /**
         * @param $orderId
         * @param $id
         * @param $text
         * @param $entityId
         * @param null $type
         * @param bool $forEntity
         *
         * @return string
         */
        protected static function getShipmentBlockHtml($orderId, $id, $text, $entityId, $type = null, $forEntity = false)
        {
        }
        /**
         * @param $orderId
         * @param $id
         * @param $text
         * @param $entityId
         * @param $type
         * @param bool $forEntity
         *
         * @return string
         */
        protected static function getPaymentBlockHtml($orderId, $id, $text, $entityId, $type = null, $forEntity = false)
        {
        }
        /**
         * @param $orderId
         * @param $id
         * @param $text
         * @param null $type
         *
         * @return string
         */
        protected static function getOrderBlockHtml($orderId, $id, $text, $type = null)
        {
        }
    }
    class OrderShipment
    {
        public static $shipmentObjJs = null;
        /** @var \Bitrix\Sale\Shipment */
        protected static $shipment = null;
        protected static $defaultFields = null;
        protected static $backUrl = '';
        public static function getEditTemplate($data, $index, $formType, $post)
        {
        }
        public static function getWeightUnit($siteId)
        {
        }
        public static function getWeightKoef($siteId)
        {
        }
        public function getImgDeliveryServiceList($items)
        {
        }
        public static function getDeliveryServiceProfiles($parentId)
        {
        }
        public static function initJsShipment($params)
        {
        }
        private static function getDeliveryServiceInfoById($id)
        {
        }
        public static function getDeliveryServiceList($shipment = null)
        {
        }
        private static function getMainImgPath($logotip)
        {
        }
        private static function getShortImgPath($logotip)
        {
        }
        public static function getExtraServiceEditControl($extraService, $index, $view = false, \Bitrix\Sale\Shipment $shipment = null)
        {
        }
        /**
         * @param $shipment
         * @param int $index
         * @param string $formType
         * @param array $dataForRecovery
         * @return string
         */
        public static function getEdit($shipment, $index = 0, $formType = '', $dataForRecovery = array())
        {
        }
        public static function modifyData($data)
        {
        }
        public static function getStoresList($deliveryId, $storeId)
        {
        }
        public static function getMap($deliveryId, $index, $storeId = 0, $formType = "")
        {
        }
        private static function getDeliverySelectHtml($deliveryServices, $selected = '', $index)
        {
        }
        public static function getScripts()
        {
        }
        public static function registerShipmentFieldsUpdaters()
        {
        }
        /**
         * @param $profiles
         * @param Shipment $shipment
         * @return mixed
         */
        public static function checkProfilesRestriction($profiles, $shipment)
        {
        }
        /**
         * @param $profiles
         * @param $index
         * @param int $selectedProfileId
         * @return string
         */
        public static function getProfileEditControl($profiles, $index = 1, $selectedProfileId = 0)
        {
        }
        /**
         * @param $items
         * @return array
         */
        public static function makeDeliveryServiceTree($items)
        {
        }
        /**
         * @param $deliveries
         * @param string $selected
         * @return string
         */
        public static function getTemplate($deliveries, $selected = '')
        {
        }
        /**
         * @param \Bitrix\Sale\Shipment $shipment
         * @param int $index
         * @param string $formType
         * @return string
         */
        public static function getView($shipment, $index = 0, $formType = '')
        {
        }
        /**
         * @param $data
         * @param $index
         * @param $formType
         * @return string
         * @throws Main\ArgumentNullException
         */
        public static function getViewTemplate($data, $index, $formType)
        {
        }
        protected static function renderShipmentEditLink($data)
        {
        }
        private static function getShortViewTemplate($data, $index, $logo, $formType)
        {
        }
        public static function createNewShipmentButton($params = [])
        {
        }
        /**
         * @param bool $error
         * @param bool $needRecalculate
         * @return mixed
         */
        protected static function prepareData($error = false, $needRecalculate = true)
        {
        }
        private static function getDisallowFields()
        {
        }
        /**
         * @param Order $order
         * @param array $shipments
         * @return Result
         * @throws SystemException
         */
        public static function updateData(\Bitrix\Sale\Order &$order, array $shipments)
        {
        }
        /**
         * @param Shipment $shipment
         * @return CalculationResult
         * @throws Main\ArgumentNullException
         */
        public static function calculateDeliveryPrice(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param \Bitrix\Sale\Shipment $shipment
         * @throws Main\NotSupportedException
         */
        public static function setShipmentByDefaultValues(&$shipment)
        {
        }
        public static function setBackUrl($backUrl)
        {
        }
        /**
         * @param $checkList
         *
         * @return string
         */
        public static function buildCheckHtml($checkList)
        {
        }
    }
    class OrderPayment
    {
        /** @var $order \Bitrix\Sale\Order */
        private static $order = null;
        private static $defaultFields = null;
        private static function prepareData($item, $error = false)
        {
        }
        private static function getDisallowFields()
        {
        }
        /**
         * @param $paySystemId
         * @return mixed
         * @throws Main\ArgumentException
         */
        public static function getPaySystemParams($paySystemId)
        {
        }
        /**
         * @param $payment
         * @param $data
         * @return mixed
         */
        public static function modifyData($payment, $data)
        {
        }
        /**
         * @param \Bitrix\Sale\Payment $payment
         * @param int $index
         * @param $dataForRecovery
         * @return string
         */
        public static function getEdit($payment, $index = 1, $dataForRecovery = array())
        {
        }
        /**
         * @param $payment
         * @param int $index
         * @param string $form
         * @return string
         */
        public static function getView($payment, $index = 1, $form = '')
        {
        }
        /**
         * @return string
         */
        public static function getScripts()
        {
        }
        private static function getEditTemplate($data, $index, $post = array())
        {
        }
        private static function getViewTemplate($data, $index, $form)
        {
        }
        private static function getShortViewTemplate($data, $index, $form)
        {
        }
        private static function initJsPayment($params)
        {
        }
        /**
         * @param $checkList
         *
         * @return string
         */
        public static function buildCheckHtml($checkList)
        {
        }
        /**
         * @param Payment $payment
         * @return array
         */
        public static function getPaySystemList(\Bitrix\Sale\Payment $payment)
        {
        }
        private static function getImgPathList()
        {
        }
        /**
         * @param $formType
         * @return string
         */
        public static function createButtonAddPayment($params = [])
        {
        }
        /**
         * @param Sale\Order $order
         * @param $payments
         * @param bool $canSetPaid
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectNotFoundException
         * @throws UserMessageException
         */
        public static function updateData(\Bitrix\Sale\Order &$order, $payments, $canSetPaid = false)
        {
        }
    }
}
namespace Bitrix\Sale\Helpers\Admin\Blocks\Archive {
    abstract class Template
    {
        /** @var  Order $order*/
        protected $order;
        protected $name = "";
        /**
         * Template constructor.
         */
        function __construct()
        {
        }
        /**
         * @param Order $order
         * 
         * @return void
         */
        public function setOrder(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @return string
         * 
         * @return void
         */
        public function getName()
        {
        }
        /**
         * Build block's html.
         */
        public abstract function buildBlock();
    }
}
namespace Bitrix\Sale\Helpers\Admin\Blocks\Archive\TypeFirst {
    class OrderShipment extends \Bitrix\Sale\Helpers\Admin\Blocks\Archive\Template
    {
        protected $name = "delivery";
        /**
         * @return string $result
         */
        public function buildBlock()
        {
        }
    }
    class OrderPayment extends \Bitrix\Sale\Helpers\Admin\Blocks\Archive\Template
    {
        protected $name = "payment";
        /**
         * @return string $result
         */
        public function buildBlock()
        {
        }
    }
    class OrderStatus extends \Bitrix\Sale\Helpers\Admin\Blocks\Archive\Template
    {
        protected $name = "statusorder";
        /**
         * @return string $result
         */
        public function buildBlock()
        {
        }
        /**
         * @param Sale\Order $order
         * @param array $data
         *
         * @return string
         */
        protected static function getCancelBlockHtml(\Bitrix\Sale\Order $order, array $data)
        {
        }
    }
    class OrderBasket extends \Bitrix\Sale\Helpers\Admin\Blocks\Archive\Template
    {
        protected $name = "basket";
        /**
         * @return string $result
         */
        public function buildBlock()
        {
        }
    }
    class OrderFinanceInfo extends \Bitrix\Sale\Helpers\Admin\Blocks\Archive\Template
    {
        protected $name = "financeinfo";
        /**
         * @return string $result
         */
        public function buildBlock()
        {
        }
    }
}
namespace Bitrix\Sale\Helpers\Admin\Blocks\Archive {
    abstract class Schema
    {
        protected $order;
        /**
         * Schema constructor.
         */
        function __construct()
        {
        }
        /**
         * Collect blocks into array.
         * 
         * @param Sale\Order $order
         *
         * @return array $html
         */
        public function getBlocks(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * Return list of blocks's names.
         */
        protected abstract function collectBlocks();
    }
}
namespace Bitrix\Sale\Helpers\Admin\Blocks\Archive\TypeFirst {
    class Schema extends \Bitrix\Sale\Helpers\Admin\Blocks\Archive\Schema
    {
        /**
         * Return list of blocks's names
         * 
         * @return array		List of block names for archived order with version "1"
         */
        protected function collectBlocks()
        {
        }
    }
    class OrderBuyer extends \Bitrix\Sale\Helpers\Admin\Blocks\Archive\Template
    {
        protected $name = "buyer";
        /**
         * @return string $result
         */
        public function buildBlock()
        {
        }
    }
    class OrderAdditional extends \Bitrix\Sale\Helpers\Admin\Blocks\Archive\Template
    {
        protected $name = "additional";
        /**
         * @return string $result
         */
        public function buildBlock()
        {
        }
    }
}
namespace Bitrix\Sale\Helpers\Admin\Blocks\Archive {
    class View
    {
        /** @var Sale\Archive\Order  */
        protected $order;
        /**
         * View constructor.
         *
         * @param int $id
         */
        function __construct($id)
        {
        }
        /**
         * @return Sale\Order
         */
        public function loadOrder()
        {
        }
        /**
         * Return blocks appropriate archive version.
         *
         * @return array
         *
         * @throws Main\ObjectNotFoundException
         */
        public function getTemplates()
        {
        }
        private function getSchema()
        {
        }
    }
}
namespace Bitrix\Sale\Helpers\Admin\Blocks {
    class OrderBasket
    {
        protected static $jsInited = false;
        protected static $arSkuProps = array();
        protected static $offersCatalog = array();
        protected static $iblockPropsParams = array();
        protected static $iblockPropsParamsOrder = array();
        protected static $productsOffersSkuParams = array();
        public $settingsDialog = null;
        /** @var Order $order  */
        protected $order = null;
        protected $data = null;
        protected $dataLight = null;
        protected $jsObjName = "";
        protected $idPrefix = "";
        protected $visibleColumns = array();
        protected $createProductBasement = true;
        protected $mode;
        protected $weightUnit;
        protected $weightKoef;
        protected $isShowXmlId;
        protected static $iblockIncluded = null;
        protected static $catalogIncluded = null;
        protected static $highloadIncluded = null;
        const VIEW_MODE = 0;
        const EDIT_MODE = 1;
        public function __construct(\Bitrix\Sale\Order $order, $jsObjName = "", $idPrefix = "", $createProductBasement = true, $mode = self::EDIT_MODE)
        {
        }
        /**
         * @param bool|false $defTails
         * @return string
         * @throws Main\ArgumentNullException
         */
        public function getEdit($defTails = false)
        {
        }
        public static function getBasePrice(\Bitrix\Sale\Order $order)
        {
        }
        public function getTotalHtml($needRecalculate = true)
        {
        }
        public function getCouponsHtml($mode, $needRecalculate = true)
        {
        }
        /**
         * @param int $index
         * @return string
         */
        public function getView($index = 0)
        {
        }
        /**
         * @param bool|false $defTails deferred or not loading of tails.
         * @return string
         * @throws Main\ArgumentNullException
         */
        public function getScripts($defTails = false)
        {
        }
        protected function getTotalBlockFieldsJs($totalPrices, $data)
        {
        }
        /**
         * @param int $productId
         * @param array $products
         * @return array
         */
        protected function getOffersIds($productId, array $products)
        {
        }
        public function getOffersSkuParams(array $productsParams, array $visibleColumns = array())
        {
        }
        /**
         * @param array $productsParams
         * @param array $visibleColumns
         * @param int $mode
         * @return array
         * @throws Main\LoaderException
         */
        public static function getOffersSkuParamsMode(array $productsParams, array $visibleColumns = array(), $mode = 0)
        {
        }
        /**
         * @param int $productId
         * @param int $quantity
         * @param int $userId
         * @param string $siteId
         * @param array $columns
         * @return array
         * @throws SystemException
         * @deprecated use OrderBasket::getProductsData instead.
         */
        public static function getProductDetails($productId, $quantity, $userId, $siteId, array $columns = array())
        {
        }
        /**
         * @param int[] $productsIds
         * @param string $siteId
         * @param array $fields
         * @param int $userId
         * @return array
         * @throws Main\ArgumentNullException
         */
        public static function getProductsData(array $productsIds, $siteId, array $fields = array(), $userId = 0)
        {
        }
        protected static function getPropsParams($iblockId, array $visibleColumns = array(), array $iblockPropsUsed = array())
        {
        }
        protected static function getPropsFromOffers2(array $items, array $existOffers)
        {
        }
        protected static function getSkuProps($flagAll = false, $iblockId)
        {
        }
        protected function getOffersCatalog($iblockId)
        {
        }
        protected function getPropsList($iblockId, $skuPropertyId = 0)
        {
        }
        protected function filterProps(&$props)
        {
        }
        public function getSettingsDialogContent()
        {
        }
        public static function loadVisibleColumns($idPrefix)
        {
        }
        protected static function getDefaultVisibleColumns()
        {
        }
        protected function getVisibleColumns($idPrefix)
        {
        }
        public static function getProductEditDialogHtml($currency, $objName)
        {
        }
        public static function getCatalogMeasures()
        {
        }
        public static function getDefaultMeasures()
        {
        }
        /**
         * @param $productId
         * @param $quantity
         * @param $userId
         * @param $LID
         * @param $userColumns
         * @param string $tmpId we can suggest that this mean the set_item
         * @return array
         * @throws Main\LoaderException
         * @deprecated use \Bitrix\Sale\Helpers\Admin\Product::getData() instead it.
         */
        public static function getProductDataToFillBasket($productId, $quantity, $userId, $LID, $userColumns, $tmpId = "")
        {
        }
        /**
         * @param array $inParams
         * @return array
         * @throws Main\LoaderException
         */
        public function prepareData(array $inParams = array())
        {
        }
        public function getPrices($discounts = null)
        {
        }
        protected function getPropsForBasketItem($item, array $preparedData = array())
        {
        }
    }
    class PresetBasket extends \Bitrix\Sale\Helpers\Admin\Blocks\OrderBasket
    {
        /**
         * PresetBasket constructor.
         */
        public function __construct(\Bitrix\Sale\Order $order, $jsObjName = "", $idPrefix = "", $createProductBasement = true, $mode = self::EDIT_MODE)
        {
        }
        protected static function getDefaultVisibleColumns()
        {
        }
        public function getScripts($defTails = false)
        {
        }
        public function getEdit($defTails = false)
        {
        }
    }
    class OrderShipmentStatus
    {
        public static function getEdit($shipment, $index = 0)
        {
        }
        public static function getEditTemplate($data, $index)
        {
        }
        /**
         * @param $status
         *
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getShipmentStatusList($status)
        {
        }
        public static function getView(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param \Bitrix\Sale\ShipmentItem $shipment
         * @return mixed
         */
        protected static function prepareData($shipment)
        {
        }
    }
    class FactoryMode
    {
        /**
         * @param $type
         * @return \Bitrix\Sale\Exchange\Integration\Admin\Blocks\Factory|Factory
         * @throws \Bitrix\Main\NotSupportedException
         */
        public static function create($type)
        {
        }
    }
    class OrderFinanceInfo
    {
        public static function getView(\Bitrix\Sale\Order $order, $useCurrentBudget = true)
        {
        }
        public static function prepareData(\Bitrix\Sale\Order $order)
        {
        }
        public static function getScripts()
        {
        }
    }
    class ModeType
    {
        const DEFAULT_TYPE = 'default';
        const APP_LAYOUT_TYPE = 'appLayout';
    }
    class OrderBasketSettings
    {
        protected $idPrefix = "";
        protected $allColumns = array();
        protected $visibleColumns = array();
        protected static $jsInited = false;
        public function __construct(array $params)
        {
        }
        public function getScripts()
        {
        }
        public function getHtml()
        {
        }
    }
    class BlockType
    {
        const UNDEFINED = 0;
        const SHIPMENT_STATUS = 1;
        const SHIPMENT_BASKET = 2;
        const FINANCE_INFO = 3;
        const ADDITIONAL = 4;
        const SHIPMENT = 5;
        const PAYMENT = 6;
        const STATUS = 7;
        const BASKET = 8;
        const BUYER = 9;
        const INFO = 10;
        const MARKER = 11;
        const ANALYSIS = 12;
        const DELIVERY = 13;
        const DISCOUNT = 14;
        const SHIPMENT_BASKET_NAME = "goodsList";
        const SHIPMENT_STATUS_NAME = "shipmentStatus";
        const FINANCE_INFO_NAME = "financeinfo";
        const ADDITIONAL_NAME = "additional";
        const SHIPMENT_NAME = "shipment";
        const PAYMENT_NAME = "payment";
        const STATUS_NAME = "statusorder";
        const BASKET_NAME = "basket";
        const BUYER_NAME = "buyer";
        const INFO_NAME = "";
        const MARKER_NAME = "";
        const ANALYSIS_NAME = "analysis";
        const DELIVERY_NAME = "delivery";
        const DISCOUNT_NAME = "discount";
        const FIRST_TYPE = 1;
        const LAST_TYPE = 14;
        public static function isDefined($typeId)
        {
        }
        public static function resolveId($name)
        {
        }
        public static function resolveName($typeId)
        {
        }
    }
    class OrderBasketShipment extends \Bitrix\Sale\Helpers\Admin\Blocks\OrderBasket
    {
        protected $shipment = null;
        protected static $useStoreControl = null;
        protected $systemJsObjName = 'BX.Sale.Admin.SystemShipmentBasketObj';
        /**
         * @param \Bitrix\Sale\Shipment $shipment
         * @param string $jsObjName
         * @param string $idPrefix
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function __construct(\Bitrix\Sale\Shipment $shipment, $jsObjName = "", $idPrefix = "")
        {
        }
        public function getEdit($defTails = false)
        {
        }
        public function getView($index = 0)
        {
        }
        protected static function getDefaultVisibleColumns()
        {
        }
        /**
         * @return array
         */
        protected static function getDefaultUnShippedVisibleColumns()
        {
        }
        /**
         * @param array $inParams
         * @return array|null
         */
        public function prepareData(array $inParams = array())
        {
        }
        /**
         * @param \Bitrix\Sale\ShipmentItemCollection $shipmentItemCollection
         * @return array
         * @throws \Bitrix\Main\LoaderException
         */
        public function getProductsInfo($shipmentItemCollection)
        {
        }
        /**
         * @param $data
         * @param $request
         * @return mixed
         */
        public function modifyFromRequest($data, $request)
        {
        }
        public function getScripts($recoveryData = array())
        {
        }
        public function getViewScript($index, $visibleColumns)
        {
        }
        public static function updateData(\Bitrix\Sale\Order &$order, &$shipment, $shipmentBasket)
        {
        }
    }
}
namespace Bitrix\Sale\Helpers\Admin {
    /**
     * Class SkuPropsV1
     * @package Bitrix\Sale\Helpers\Admin
     * Helper class to find offer id by sku properties
     */
    class SkuProps
    {
        /**
         * @param array $skuProps
         * @param array $offersIds
         * @return array
         * @throws \Bitrix\Main\LoaderException
         */
        protected static function filterByProps(array $skuProps, array $offersIds = array())
        {
        }
        /**
         * @param array $skuProps
         * @param array $skuOrder
         * @param $changedSkuId
         * @return array
         */
        protected static function extractRequiredProps(array $skuProps, array $skuOrder, $changedSkuId)
        {
        }
        /**
         * @param array $skuProps
         * @param array $skuOrder
         * @param $changedSkuId
         * @return array
         */
        protected static function extractOptionalProps(array $skuProps, array $skuOrder, $changedSkuId)
        {
        }
        /**
         * @param array $skuProps
         * @param int $productId
         * @param array $skuOrder
         * @param $changedSkuId
         * @return int|mixed
         * @internal
         */
        public static function getProductId(array $skuProps, $productId, array $skuOrder, $changedSkuId)
        {
        }
        /**
         * @param int|array $productIds
         * @return array
         * @throws \Bitrix\Main\LoaderException
         */
        protected static function getOffersIds($productIds)
        {
        }
        /**
         * @param $propId
         * @param $currentValue
         * @param array $offersIds
         * @return array
         * @throws \Bitrix\Main\LoaderException
         */
        protected static function getSkuPropValues($propId, $currentValue, array &$offersIds)
        {
        }
        /**
         * @param array $params
         * @return array
         * @internal
         */
        public static function getPossibleSkuPropsValues(array $params)
        {
        }
    }
    /**
     * Class OrderEdit
     * Helper class for order administration.
     * @package Bitrix\Sale\Helpers\Admin
     */
    class OrderEdit
    {
        protected static $productsDetails = null;
        public static $isTrustProductFormData = false;
        public static $needUpdateNewProductPrice = false;
        public static $isBuyerIdChanged = false;
        public static $isRefreshData = false;
        const BASKET_CODE_NEW = 'new';
        /**
         * @param string $name
         * @param array $data
         * @param string $selected
         * @param bool $showNotUse
         * @param array $attributes
         * @return string "<select>....</select>"
         * @throws ArgumentTypeException
         */
        public static function makeSelectHtml($name, array $data, $selected = "", $showNotUse = true, $attributes = array())
        {
        }
        /**
         * @param $name
         * @param array $data
         * @param string $selected
         * @param bool|true $showNotUse
         * @param array $attributes
         * @return string
         * @throws ArgumentTypeException
         */
        public static function makeSelectHtmlWithRestricted($name, array $data, $selected = "", $showNotUse = true, $attributes = array())
        {
        }
        /**
         * @param $data
         * @param string $selected
         * @param bool|true $showNotUse
         * @return string
         */
        public static function makeSelectHtmlBodyWithRestricted($data, $selected = '', $showNotUse = true)
        {
        }
        /**
         * @param Order $order
         * @param $formId
         * @return string
         */
        public static function getScripts(\Bitrix\Sale\Order $order, $formId)
        {
        }
        /**
         * @param int $userId.
         * @param string $siteId.
         * @return string User name.
         */
        public static function getUserName($userId, $siteId = "")
        {
        }
        /**
         * @param string $text The order problem description.
         * @param int $orderId
         * @return string HTML Problem block.
         */
        public static function getProblemBlockHtml($text, $orderId)
        {
        }
        /**
         * @param array $items .
         * @param string $formId
         * @param string $tabId
         * @return string HTML Navigation block.
         */
        public static function getFastNavigationHtml(array $items, $formId = '', $tabId = '')
        {
        }
        /**
         * @param Order $order
         * @param array $formData
         * @return bool|int|string
         * @throws UserMessageException
         */
        protected static function createUserFromForm(\Bitrix\Sale\Order &$order, array $formData)
        {
        }
        public static function getUserId($order, $formData, $createUserIfNeed, \Bitrix\Sale\Result &$result)
        {
        }
        /**
         * @param array $formData
         * @param $creatorUserId
         * @param bool $createUserIfNeed
         * @param array $files
         * @param Result &$opResult
         * @return Order
         * @throws ArgumentNullException
         * @throws SystemException
         */
        public static function createOrderFromForm(array $formData, $creatorUserId, $createUserIfNeed = true, array $files = array(), \Bitrix\Sale\Result &$opResult)
        {
        }
        public static function fillOrderProperties(\Bitrix\Sale\OrderBase $order, $formData, $files = [])
        {
        }
        public static function isBasketItemNew($basketCode)
        {
        }
        public static function saveCoupons($userId, $formData)
        {
        }
        public static function saveProfileData($profileId, \Bitrix\Sale\Order $order, array $formData)
        {
        }
        /**
         * @param array $formData
         * @param Order $order
         * @param int $userId
         * @param bool $createUserIfNeed
         * @param array $files
         * @param \Bitrix\Sale\Result $result
         * @return \Bitrix\Sale\Order
         * @throws SystemException
         * @throws \Bitrix\Main\ObjectNotFoundException
         */
        public static function editOrderByFormData(array $formData, \Bitrix\Sale\Order $order, $userId, $createUserIfNeed = true, array $files = array(), \Bitrix\Sale\Result &$result)
        {
        }
        /**
         * @param Order $order
         * @param array $formData
         * @param int $userId
         *
         * @return \Bitrix\Sale\Result
         */
        public static function fillSimpleFields(\Bitrix\Sale\Order $order, array $formData, $userId = 0)
        {
        }
        public static function fillBasketItems(\Bitrix\Sale\Basket &$basket, array $productsFormData, \Bitrix\Sale\Order $order, array $needDataUpdate = array())
        {
        }
        /**
         * @deprecated use \Bitrix\Sale\Helpers\Admin\OrderEdit::fillBasketItems()
         *
         * @param BasketItem $item
         * @param array $productData
         * @param Order $order
         * @param Basket $basket
         * @param bool $needDataUpdate
         * @return \Bitrix\Sale\Result
         * @throws ArgumentNullException
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\NotSupportedException
         * @throws \Bitrix\Main\ObjectNotFoundException
         */
        public static function fillBasketItem(\Bitrix\Sale\BasketItem &$item, array $productData, \Bitrix\Sale\Order $order, \Bitrix\Sale\Basket $basket, $needDataUpdate = false)
        {
        }
        public static function setProviderTrustData(\Bitrix\Sale\BasketItem $item, \Bitrix\Sale\Order $order, array $data)
        {
        }
        public static function setBasketItemFields(\Bitrix\Sale\BasketItem &$item, array $fields = array())
        {
        }
        public static function getSiteName(&$siteId)
        {
        }
        public static function restoreFieldsNames(array $data, $path = "")
        {
        }
        /**
         * @param $newUserId
         * @param int $orderId
         * @param int|null $oldUserId
         */
        public static function initCouponsData($newUserId, $orderId = 0, $oldUserId = 0)
        {
        }
        public static function getCouponsData()
        {
        }
        /**
         * @param Order $order
         * @param bool $needRecalculate
         * @return array
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\NotSupportedException
         */
        public static function getDiscountsApplyResult(\Bitrix\Sale\Order $order, $needRecalculate = false)
        {
        }
        public static function getOrderedDiscounts(\Bitrix\Sale\Order $order, $needRecalculate = true)
        {
        }
        public static function getCouponList(\Bitrix\Sale\Order $order = null, $needRecalculate = true)
        {
        }
        public static function getTotalPrices(\Bitrix\Sale\Order $order, \Bitrix\Sale\Helpers\Admin\Blocks\OrderBasket $orderBasket, $needRecalculate = true)
        {
        }
        /**
         * @param $productId
         * @param $userId
         * @param $siteId
         * @param array $params
         * @throws ArgumentNullException
         */
        public static function setProductDetails($productId, $userId, $siteId, array $params)
        {
        }
        public static function getProductDetails($productId, $userId, $siteId)
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getCompanyList()
        {
        }
        public static function getLockingMessage($orderId)
        {
        }
    }
    /**
     * Class Product
     * @package Bitrix\Sale\Helpers\Admin
     */
    class Product
    {
        private $groupByIblock = array();
        private $columnsList = null;
        private $parentsIds = array();
        private $measuresIds = null;
        private $siteId = null;
        private $storesCount = null;
        /** @var $productProvider \IBXSaleProductProvider */
        private $provider = null;
        private $productsIds = array();
        private $tmpId = '';
        private $iblockData = null;
        private $catalogData = null;
        private $resultData = array();
        private $useSliderCard = null;
        /**
         * @param array $productsIds
         * @param $siteId
         * @param array $columnsList
         * @param string $tmpId
         * @return array
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         */
        public static function getData(array $productsIds, $siteId, array $columnsList = array(), $tmpId = "")
        {
        }
        /**
         * @param array $productsData
         * @param string $siteId
         * @param int $userId
         * @param array $errors
         * @return array
         * @throws \Bitrix\Main\NotSupportedException
         * @throws \Bitrix\Main\ObjectNotFoundException
         */
        public static function getProviderData(array $productsData, $siteId, $userId = null, array &$errors = array())
        {
        }
        private function __construct(array $productsIds, $siteId, array $columnsList = array(), $tmpId = "")
        {
        }
        private function getResultData()
        {
        }
        private function fillCatalogData()
        {
        }
        private function fillSetInfo($setIds)
        {
        }
        private function fillIblockData()
        {
        }
        private static function isOffer($productData)
        {
        }
        private function completeResultData()
        {
        }
        private function fillPropsData()
        {
        }
        //creators
        private static function formatProps(array $properties)
        {
        }
        private function createProductPropsValues($productId)
        {
        }
        private function preparePropertyInfo()
        {
        }
        private function getPropertyInfo($fieldId)
        {
        }
        private function createImageUrl($productId)
        {
        }
        private function getImageId(array $product) : int
        {
        }
        private static function createEditPageUrl(array $productData)
        {
        }
        private function fillMeasures()
        {
        }
        private function fillMeasuresRatio()
        {
        }
        private function getStoresData($productId)
        {
        }
        private static function getIblockPropInfo($value, $propData, $arSize = array("WIDTH" => 90, "HEIGHT" => 90), $orderId = 0)
        {
        }
        private static function showImageOrDownloadLink($fileId, $orderId = 0, $arSize = array("WIDTH" => 90, "HEIGHT" => 90))
        {
        }
    }
    class FormRecovery
    {
        public static function getDataFromForm(array $collectionAvailableFields, array $fieldsFromForm, array $specialFields)
        {
        }
    }
    final class BusinessValueControl
    {
        private $name;
        private $consumerCodePersonMapping = array();
        private $errors = array();
        public function __construct($name)
        {
        }
        public function setMapFromPost()
        {
        }
        /** @internal @deprecated */
        public static function sanitizeMapping($personTypeId, array &$mapping, array $providerKeys = null)
        {
        }
        public function changeConsumerKey($fromConsumerKey, $toConsumerKey)
        {
        }
        public function saveMap()
        {
        }
        private static function getTabControl($name, $personGroupCodes)
        {
        }
        private static function getPersonGroupCodes(array $consumers, array $filter)
        {
        }
        public function renderMap(array $options = array())
        {
        }
        /** @internal */
        public static function renderMapping(array $mappings, $inputNamePrefix, array $providerInput, array $providerValueInput, array $commonProviderInput = null, array $commonProviderValueInput = null)
        {
        }
        private static function correctMapping(array $providerInput, array $providerValueInput, array $mapping)
        {
        }
        private static function renderScript()
        {
        }
        /** @internal */
        public static function getFilter($filter)
        {
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private static $personTypes;
        private static $personProviderInput, $personProviderValueInput;
        private static $groups, $consumerInput, $consumerCodeInput;
        /** @internal */
        public static function initialize()
        {
        }
        /** @internal */
        public static function getProviderInput($personTypeId, array $providerKeys = null)
        {
        }
        /** @internal */
        public static function getValueInput($personTypeId, $providerKey = null)
        {
        }
        /** @internal */
        public static function getConsumerInput()
        {
        }
        /** @internal */
        public static function getConsumerCodeInput()
        {
        }
        private static function getProviderInputs(array $providers, array $personTypes)
        {
        }
        private static function getConsumerInputs(array $consumers, array $groups)
        {
        }
        private static function sortRenameGroups(array &$groupedItems, array $groups, $flattenEmptyGroup = false)
        {
        }
    }
    /**
     * Class - marker. It Can be terminal.
     * Class Result
     * @package Bitrix\Sale\Helpers\Admin
     */
    class OrderEditResult extends \Bitrix\Sale\Result
    {
        protected $isTerminal = false;
        /**
         * @return bool
         */
        public function isTerminal()
        {
        }
        /**
         * @param bool $isTerminal
         */
        public function setIsTerminal($isTerminal)
        {
        }
    }
}
namespace Bitrix\Sale\Helpers {
    class ReservedProductCleaner extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "sale";
        public function execute(array &$result)
        {
        }
    }
}
namespace Bitrix\Sale\Services\PaySystem\Restrictions {
    class Price extends \Bitrix\Sale\Services\Base\Restriction
    {
        /**
         * @param $params
         * @param array $restrictionParams
         * @param int $serviceId
         * @return bool
         */
        public static function check($params, array $restrictionParams, $serviceId = 0)
        {
        }
        /**
         * @param Entity $entity
         * @return array
         */
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param $entityParams
         * @param $paramValue
         * @return float
         */
        protected static function getPrice($entityParams, $paramValue)
        {
        }
        /**
         * @return mixed
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return mixed
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param $entityId
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getParamsStructure($entityId = 0)
        {
        }
        /**
         * @param Payment $payment
         * @param $params
         * @return array
         * @throws ArgumentTypeException
         */
        public static function getRange(\Bitrix\Sale\Payment $payment, $params)
        {
        }
        /**
         * @param $mode
         * @return int
         */
        public static function getSeverity($mode)
        {
        }
    }
    class PercentPrice extends \Bitrix\Sale\Services\PaySystem\Restrictions\Price
    {
        /**
         * @param $entityParams
         * @param $paramValue
         * @return float
         */
        protected static function getPrice($entityParams, $paramValue)
        {
        }
        /**
         * @return mixed
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return mixed
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param $entityId
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getParamsStructure($entityId = 0)
        {
        }
    }
    /**
     * Class Delivery
     * @package Bitrix\Sale\Services\PaySystem\Restrictions
     */
    class Delivery extends \Bitrix\Sale\Services\Base\Restriction
    {
        public static $easeSort = 200;
        protected static $preparedData = array();
        /**
         * @return string
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param $params
         * @param array $restrictionParams
         * @param int $serviceId
         * @return bool
         */
        public static function check($params, array $restrictionParams, $serviceId = 0)
        {
        }
        /**
         * @param Entity $entity
         * @return array
         */
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @return array
         */
        protected static function getDeliveryServiceList()
        {
        }
        /**
         * @param int $entityId
         * @return array
         */
        public static function getParamsStructure($entityId = 0)
        {
        }
        /**
         * @param int $paySystemId
         * @return array|\int[]
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        protected static function getDeliveryByPaySystemsId($paySystemId = 0)
        {
        }
        /**
         * @param array $params
         * @param int $paySystemId
         * @return array
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        protected static function prepareParamsForSaving(array $params = array(), $paySystemId = 0)
        {
        }
        /**
         * @param array $fields
         * @param int $restrictionId
         * @return \Bitrix\Main\Entity\AddResult|\Bitrix\Main\Entity\UpdateResult
         */
        public static function save(array $fields, $restrictionId = 0)
        {
        }
        /**
         * @param array $paramsValues
         * @param int $entityId
         * @return array
         */
        public static function prepareParamsValues(array $paramsValues, $entityId = 0)
        {
        }
        /**
         * @param $restrictionId
         * @param int $entityId
         * @return \Bitrix\Main\Entity\DeleteResult
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function delete($restrictionId, $entityId = 0)
        {
        }
        /**
         * @param array $servicesIds
         * @return string
         */
        public static function prepareData(array $servicesIds)
        {
        }
    }
    class PersonType extends \Bitrix\Sale\Services\Base\Restriction
    {
        /**
         * @param $params
         * @param array $restrictionParams
         * @param int $serviceId
         * @return bool
         */
        public static function check($params, array $restrictionParams, $serviceId = 0)
        {
        }
        /**
         * @param Entity $entity
         * @return int
         */
        public static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @return mixed
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return mixed
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param $entityId
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getParamsStructure($entityId = 0)
        {
        }
        /**
         * @param $mode
         * @return int
         */
        public static function getSeverity($mode)
        {
        }
    }
    /**
     * Class TradeBinding
     * @package Bitrix\Sale\Services\PaySystem\Restrictions
     */
    class TradeBinding extends \Bitrix\Sale\Services\Base\TradeBindingRestriction
    {
        /**
         * @param Sale\Internals\Entity $entity
         * @return Sale\Order|null
         */
        protected static function getOrder(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
    }
    class Manager extends \Bitrix\Sale\Services\Base\RestrictionManager
    {
        protected static $classNames = null;
        /**
         * @return string
         */
        public static function getEventName()
        {
        }
        /**
         * @return array
         */
        protected static function getBuildInRestrictions()
        {
        }
        /**
         * @return int
         */
        protected static function getServiceType()
        {
        }
        public static function getPriceRange(\Bitrix\Sale\Payment $payment, $paySystemId)
        {
        }
    }
    class Currency extends \Bitrix\Sale\Services\Base\Restriction
    {
        /**
         * @param $params
         * @param array $restrictionParams
         * @param int $serviceId
         * @return bool
         */
        public static function check($params, array $restrictionParams, $serviceId = 0)
        {
        }
        /**
         * @param Entity $entity
         * @return string
         * @throws ArgumentTypeException
         */
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @return string
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public static function getClassDescription()
        {
        }
        public static function getParamsStructure($entityId = 0)
        {
        }
        public static function save(array $fields, $restrictionId = 0)
        {
        }
    }
}
namespace Bitrix\Sale\Services\Base {
    /**
     * Class SiteRestriction
     * @package Bitrix\Sale\Services\Base
     */
    abstract class SiteRestriction extends \Bitrix\Sale\Delivery\Restrictions\Base
    {
        /**
         * @return string
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param $siteId
         * @param array $restrictionParams
         * @param int $deliveryId
         * @return bool
         */
        public static function check($siteId, array $restrictionParams, $deliveryId = 0)
        {
        }
        /**
         * @param Entity $entity
         * @throws NotImplementedException
         */
        protected static function getOrder(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param Entity $entity
         * @return bool|mixed|null|string
         * @throws NotImplementedException
         */
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param int $entityId
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getParamsStructure($entityId = 0)
        {
        }
        /**
         * @param int $mode
         * @return int
         */
        public static function getSeverity($mode)
        {
        }
        /**
         * @return bool
         */
        public static function isAvailable()
        {
        }
    }
}
namespace Bitrix\Sale\Services\PaySystem\Restrictions {
    /**
     * Class Site
     * @package Bitrix\Sale\Services\PaySystem\Restrictions
     */
    class Site extends \Bitrix\Sale\Services\Base\SiteRestriction
    {
        /**
         * @param Sale\Internals\Entity $entity
         * @return Sale\Order|null
         */
        protected static function getOrder(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
    }
}
namespace Bitrix\Sale\Services\Base {
    class RestClient
    {
        const REST_URI = '/rest/';
        const REGISTER_URI = '/oauth/register/';
        const SCOPE = 'sale';
        const SERVICE_ACCESS_OPTION = 'saleservices_access';
        const ERROR_WRONG_INPUT = 1;
        const ERROR_WRONG_LICENSE = 2;
        const ERROR_SERVICE_UNAVAILABLE = 3;
        const ERROR_NOTHING_FOUND = 4;
        const UNSUCCESSFUL_CALL_OPTION = 'sale_hda_last_unsuccessful_call';
        const UNSUCCESSFUL_CALL_TRYINGS = 3;
        //times
        const UNSUCCESSFUL_CALL_WAIT_INTERVAL = 300;
        //sec
        protected $httpTimeout = 10;
        protected $accessSettings = null;
        protected $serviceHost = 'https://saleservices.bitrix.info';
        protected $version = 5;
        /**
         * Performs call to the REST method and returns decoded results of the call.
         * define SALE_SRVS_RESTCLIENT_DISABLE_SRV_ALIVE_CHECK to disable server alive checking.
         * @param string $methodName Name of the REST method.
         * @param array $additionalParams Parameters, that should be passed to the method.
         * @param bool $licenseCheck Should client send license key as a parameter of the http request.
         * @param bool $clearAccessSettings Should client clear authorization before performing http request.
         * @return Result $result
         */
        protected function call($methodName, $additionalParams = null, $licenseCheck = false, $clearAccessSettings = false)
        {
        }
        /**
         * @return string Host.
         * Define const SALE_SRVS_RESTCLIENT_SRV_HOST to change server host.
         */
        public function getServiceHost()
        {
        }
        /**
         * Decodes answer of the method.
         * @param string $result Json-encoded answer.
         * @return array|bool|mixed|string Decoded answer.
         */
        protected function prepareAnswer($result)
        {
        }
        /**
         * Registers client on the properties service.
         * @return Result
         */
        protected function register()
        {
        }
        public static function signLicenseRequest(array $request, $licenseKey)
        {
        }
        /**
         * Stores access credentials.
         * @param array $params Access credentials.
         * @return void
         */
        protected static function setAccessSettings(array $params)
        {
        }
        /**
         * Reads and returns access credentials.
         * @return array|false Access credentials or false in case of errors.
         */
        protected function getAccessSettings()
        {
        }
        /**
         * Drops current stored access credentials.
         * @return void
         */
        public function clearAccessSettings()
        {
        }
        /**
         * Internal method for usage in registration process.
         * @return string URL of the host.
         */
        protected static function getRedirectUri()
        {
        }
        /**
         * Returns md5 hash of the license key.
         * @return string md5 hash of the license key.
         */
        protected static function getLicenseHash()
        {
        }
        protected static function getLicense()
        {
        }
        protected static function getLastUnSuccessCallInfo()
        {
        }
        /**
         * @param bool|false $reset
         */
        protected static function setLastUnSuccessCallInfo($reset = false)
        {
        }
        /**
         * Check if server is alive.
         * @return bool
         */
        public static function isServerAlive()
        {
        }
        /**
         * @return int Counts
         */
        protected function getLastUnSuccessCount()
        {
        }
    }
}
namespace Bitrix\Sale\Company\Inputs {
    class LocationMulti extends \Bitrix\Sale\Internals\Input\Base
    {
        public static function getViewHtml(array $input, $value = null)
        {
        }
        public static function getEditHtml($name, array $input, $values = null)
        {
        }
        public static function getError(array $input, $values)
        {
        }
        public static function getValueSingle(array $input, $userValue)
        {
        }
        public static function getSettings(array $input, $reload)
        {
        }
    }
}
namespace Bitrix\Sale\Services\Company\Restrictions {
    class EntityType extends \Bitrix\Sale\Services\Base\Restriction
    {
        const ENTITY_NONE = 'N';
        const ENTITY_PAYMENT = 'P';
        const ENTITY_SHIPMENT = 'S';
        const ENTITY_ORDER = 'O';
        /**
         * @return string
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param int $entityId
         * @return array
         */
        public static function getParamsStructure($entityId = 0)
        {
        }
        /**
         * @param Internals\Entity $entity
         * @return string
         */
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param $params
         * @param array $restrictionParams
         * @param int $serviceId
         * @return bool
         */
        public static function check($params, array $restrictionParams, $serviceId = 0)
        {
        }
        /**
         * @param $mode
         * @return int
         */
        public static function getSeverity($mode)
        {
        }
    }
    class Delivery extends \Bitrix\Sale\Services\Base\Restriction
    {
        public static $easeSort = 200;
        /**
         * @return string
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param $params
         * @param array $restrictionParams
         * @param int $serviceId
         * @return bool
         */
        public static function check($params, array $restrictionParams, $serviceId = 0)
        {
        }
        /**
         * @param Sale\Internals\Entity $entity
         *
         * @return array
         */
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @return array
         */
        protected static function getDeliveryList()
        {
        }
        /**
         * @param int $entityId
         * @return array
         */
        public static function getParamsStructure($entityId = 0)
        {
        }
        /**
         * @param int $companyId
         * @return array
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        protected static function getDeliveryByCompanyId($companyId = 0)
        {
        }
        /**
         * @param array $fields
         * @param int $restrictionId
         * @return \Bitrix\Main\Entity\AddResult|\Bitrix\Main\Entity\UpdateResult
         */
        public static function save(array $fields, $restrictionId = 0)
        {
        }
        /**
         * @param array $paramsValues
         * @param int $entityId
         * @return array
         */
        public static function prepareParamsValues(array $paramsValues, $entityId = 0)
        {
        }
        /**
         * @param $restrictionId
         * @param int $entityId
         * @return \Bitrix\Main\Entity\DeleteResult
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function delete($restrictionId, $entityId = 0)
        {
        }
    }
    class PersonType extends \Bitrix\Sale\Services\PaySystem\Restrictions\PersonType
    {
        /**
         * @param $mode
         * @return mixed
         */
        public static function getSeverity($mode)
        {
        }
    }
    class PaySystem extends \Bitrix\Sale\Services\Base\Restriction
    {
        public static $easeSort = 200;
        /**
         * @return string
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param $params
         * @param array $restrictionParams
         * @param int $serviceId
         * @return bool
         */
        public static function check($params, array $restrictionParams, $serviceId = 0)
        {
        }
        /**
         * @param Sale\Internals\Entity $entity
         *
         * @return array
         */
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @return array
         */
        protected static function getPaySystemList()
        {
        }
        /**
         * @param int $entityId
         * @return array
         */
        public static function getParamsStructure($entityId = 0)
        {
        }
        /**
         * @param int $companyId
         * @return array
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        protected static function getPaySystemsByCompanyId($companyId = 0)
        {
        }
        /**
         * @param array $fields
         * @param int $restrictionId
         * @return \Bitrix\Main\Entity\AddResult|\Bitrix\Main\Entity\UpdateResult
         */
        public static function save(array $fields, $restrictionId = 0)
        {
        }
        /**
         * @param array $paramsValues
         * @param int $entityId
         * @return array
         */
        public static function prepareParamsValues(array $paramsValues, $entityId = 0)
        {
        }
        /**
         * @param $restrictionId
         * @param int $entityId
         * @return \Bitrix\Main\Entity\DeleteResult
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function delete($restrictionId, $entityId = 0)
        {
        }
    }
    class Price extends \Bitrix\Sale\Services\PaySystem\Restrictions\Price
    {
        /**
         * @param Entity $entity
         *
         * @return array
         */
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
    }
    class Manager extends \Bitrix\Sale\Services\Base\RestrictionManager
    {
        protected static $classNames = null;
        /**
         * @param array $parameters
         * @return Main\DB\Result
         * @throws Main\ArgumentException
         */
        public static function getList(array $parameters)
        {
        }
        /**
         * @return array
         */
        protected static function getBuildInRestrictions()
        {
        }
        /**
         * @return string
         */
        public static function getEventName()
        {
        }
        /**
         * @return int
         */
        protected static function getServiceType()
        {
        }
    }
    /**
     * Class Location
     * @package Bitrix\Sale\Services\Company\Restrictions
     */
    class Location extends \Bitrix\Sale\Services\Base\Restriction
    {
        public static $easeSort = 200;
        /**
         * @return string
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param $params
         * @param array $restrictionParams
         * @param int $serviceId
         * @return bool
         */
        public static function check($params, array $restrictionParams, $serviceId = 0)
        {
        }
        /**
         * @param Entity $entity
         *
         * @return null|string
         */
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @param array $params
         * @param int $companyId
         * @return array
         */
        protected static function prepareParamsForSaving(array $params = array(), $companyId = 0)
        {
        }
        /**
         * @param int $entityId
         * @return array
         */
        public static function getParamsStructure($entityId = 0)
        {
        }
        /**
         * @param array $fields
         * @param int $restrictionId
         * @return \Bitrix\Main\Entity\AddResult|\Bitrix\Main\Entity\UpdateResult
         */
        public static function save(array $fields, $restrictionId = 0)
        {
        }
        /**
         * @param $restrictionId
         * @param int $entityId
         * @return \Bitrix\Main\Entity\DeleteResult
         */
        public static function delete($restrictionId, $entityId = 0)
        {
        }
    }
    /**
     * Class Currency
     * @package Bitrix\Sale\Services\Company\Restrictions
     */
    class Currency extends \Bitrix\Sale\Services\Base\Restriction
    {
        /**
         * @param Internals\Entity $entity
         * @return string
         */
        protected static function extractParams(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
        /**
         * @return string
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public static function getClassDescription()
        {
        }
        /**
         * @param int $entityId
         * @return array
         */
        public static function getParamsStructure($entityId = 0)
        {
        }
        /**
         * @param $params
         * @param array $restrictionParams
         * @param int $serviceId
         * @return bool
         */
        public static function check($params, array $restrictionParams, $serviceId = 0)
        {
        }
    }
    /**
     * Class Site
     * @package Bitrix\Sale\Services\Company\Restrictions
     */
    class Site extends \Bitrix\Sale\Services\Base\SiteRestriction
    {
        /**
         * @param Internals\Entity $entity
         * @return Internals\Entity|Order|null
         */
        protected static function getOrder(\Bitrix\Sale\Internals\Entity $entity)
        {
        }
    }
}
namespace Bitrix\Sale\Services\Company {
    class Manager
    {
        /**
         * @param $parameters
         * @return Main\DB\Result
         * @throws Main\ArgumentException
         */
        public static function getList($parameters)
        {
        }
        /**
         * @param $id
         * @return Main\DB\Result
         * @throws Main\ArgumentException
         */
        public static function getById($id)
        {
        }
        /**
         * @param Internals\Entity $entity
         * @param int $mode
         * @return array
         */
        public static function getListWithRestrictions(\Bitrix\Sale\Internals\Entity $entity, $mode = \Bitrix\Sale\Services\Company\Restrictions\Manager::MODE_CLIENT)
        {
        }
        /**
         * @param Internals\Entity $entity
         * @param int $mode
         * @return int
         */
        public static function getAvailableCompanyIdByEntity(\Bitrix\Sale\Internals\Entity $entity, $mode = \Bitrix\Sale\Services\Company\Restrictions\Manager::MODE_CLIENT)
        {
        }
        /**
         * Returns entity link name for connection with Locations
         * @return string
         */
        public static function getLocationConnectorEntityName()
        {
        }
        /**
         * @param $id
         *
         * @return array
         */
        public static function getUserCompanyList($id)
        {
        }
    }
}
namespace Bitrix\Sale\Rest {
    class Attributes
    {
        const Undefined = '';
        const Hidden = 'HID';
        const ReadOnly = 'R-O';
        const Immutable = 'IM';
        //User can define field value only on create
        const Required = 'REQ';
        const Multiple = 'MUL';
        const Dynamic = 'DYN';
        const Computable = 'COM';
        const Deprecated = 'DEP';
    }
}
namespace Bitrix\Sale\Rest\Synchronization {
    class LoggerDiag extends \Bitrix\Sale\Exchange\Internals\LoggerDiagBase
    {
        protected static function getNameOptionEndTime()
        {
        }
        protected static function getNameOptionIntervalDayOption()
        {
        }
        public function save()
        {
        }
        public static function log(array $params)
        {
        }
        public static function addMessage($messageId, $message = '')
        {
        }
        protected static function getMessage()
        {
        }
    }
}
namespace Bitrix\Sale\Rest\Synchronization\Loader {
    class Entity
    {
        protected $params;
        protected $typeName;
        public function __construct($typeName, $params = [])
        {
        }
        protected function getAdditionalFilterFileds()
        {
        }
        protected function getExternalNameField()
        {
        }
        protected function getFields()
        {
        }
        public function getParams()
        {
        }
        public function getFieldsByExternalId($xmlId)
        {
        }
        public function getRegistryType()
        {
        }
        protected function getEntityTable()
        {
        }
    }
    class Shipment extends \Bitrix\Sale\Rest\Synchronization\Loader\Entity
    {
        protected function getAdditionalFilterFileds()
        {
        }
    }
    class Factory
    {
        public static function create($typeName, $params = [])
        {
        }
    }
    class BasketItem extends \Bitrix\Sale\Rest\Synchronization\Loader\Entity
    {
        protected function getAdditionalFilterFileds()
        {
        }
    }
    class Product extends \Bitrix\Sale\Rest\Synchronization\Loader\Entity
    {
        public function getFieldsByExternalId($code)
        {
        }
        public function getCodeAfterDelimiter($code)
        {
        }
        private static function getIBlockProduct($iblockId)
        {
        }
    }
    class PersonType extends \Bitrix\Sale\Rest\Synchronization\Loader\Entity
    {
        protected function getEntityTable()
        {
        }
    }
    class BasketProperties extends \Bitrix\Sale\Rest\Synchronization\Loader\Entity
    {
        protected function getAdditionalFilterFileds()
        {
        }
    }
    class PaySystem extends \Bitrix\Sale\Rest\Synchronization\Loader\Entity
    {
        protected function getEntityTable()
        {
        }
        protected function getAdditionalFilterFileds()
        {
        }
    }
    class Payment extends \Bitrix\Sale\Rest\Synchronization\Loader\Entity
    {
        protected function getAdditionalFilterFileds()
        {
        }
    }
    class TradeBinding extends \Bitrix\Sale\Rest\Synchronization\Loader\Entity
    {
        protected function getAdditionalFilterFileds()
        {
        }
    }
    class Property extends \Bitrix\Sale\Rest\Synchronization\Loader\Entity
    {
        protected function getAdditionalFilterFileds()
        {
        }
    }
    class ShipmentItem extends \Bitrix\Sale\Rest\Synchronization\Loader\Entity
    {
        protected function getAdditionalFilterFileds()
        {
        }
    }
    class DeliverySystem extends \Bitrix\Sale\Rest\Synchronization\Loader\Entity
    {
        public function getFieldsByExternalId($xmlId)
        {
        }
    }
    class TradingPlatform extends \Bitrix\Sale\Rest\Synchronization\Loader\Entity
    {
        protected function getEntityTable()
        {
        }
    }
}
namespace Bitrix\Sale\Rest\Synchronization {
    class Manager
    {
        protected $action;
        protected $handlerExecuted;
        protected $client;
        protected $clientOAuth;
        protected $clientId;
        protected $clientSecret;
        protected $serviceUrl;
        protected $oauthKey;
        protected $accessToken;
        protected $refreshToken;
        /** @var  HttpRequest */
        protected $request;
        protected static $instance = null;
        const B24_APP_GRANT_TYPE = 'refresh_token';
        const ACTION_UNDEFINED = 'undefined';
        const ACTION_DELETED = 'deleted';
        const ACTION_IMPORT = 'import';
        const END_POINT = '/bitrix/services/sale/synchronizer/push.php';
        public static function getInstance()
        {
        }
        public function isActive()
        {
        }
        public function activate()
        {
        }
        public function deactivate()
        {
        }
        public function pushHandlerExecuted($name)
        {
        }
        public function isExecutedHandler($name)
        {
        }
        public function checkDefaultSettings()
        {
        }
        public function getClient()
        {
        }
        public function setSchemeServiceUrl($code)
        {
        }
        public function getSchemeServiceUrl()
        {
        }
        public function setServiceUrl($code)
        {
        }
        public function getServiceUrl()
        {
        }
        public function getClientId()
        {
        }
        public function getClientSecret()
        {
        }
        public function setAccessToken($accessToken)
        {
        }
        public function getAccessToken()
        {
        }
        public function setRefreshToken($refreshToken)
        {
        }
        public function getRefreshToken()
        {
        }
        public function setOauthKey($key)
        {
        }
        public function getOauthKey()
        {
        }
        public function setAction($action)
        {
        }
        public function getAction()
        {
        }
        public function getDefaultDeliverySystemId()
        {
        }
        public function setDefaultDeliverySystemId($code)
        {
        }
        public function getDefaultPaySystemId()
        {
        }
        public function setDefaultPaySystemId($code)
        {
        }
        public function getDefaultSiteId()
        {
        }
        public function setDefaultSiteId($code)
        {
        }
        public function getDefaultPersonTypeId()
        {
        }
        public function setDefaultPersonTypeId($code)
        {
        }
        public function getDefaultOrderStatusId()
        {
        }
        public function setDefaultOrderStatusId($code)
        {
        }
        public function getDefaultDeliveryStatusId()
        {
        }
        public function setDefaultDeliveryStatusId($code)
        {
        }
        public function getTradePlatformsXmlId($siteId)
        {
        }
        public function setTradePlatformsXmlId($siteId, $code)
        {
        }
        public function isMarked()
        {
        }
        public function marked($code)
        {
        }
    }
    /**
     * Class Synchronizer
     * @package Bitrix\Sale\Rest\Synchronization
     * @intrnal
     */
    final class Synchronizer
    {
        protected $request;
        const SYNCHRONIZER_MARKER_ERROR = 'SYNCHRONIZER_ERROR';
        const MODE_SAVE = 'save';
        const MODE_DELETE = 'delete';
        public function __construct()
        {
        }
        public function incomingReplication($id = '', $xmlId = '', $action = '', $accessToken = '')
        {
        }
        public function onSaleOrderSaved(\Bitrix\Sale\Order $order)
        {
        }
        public function onSaleBeforeOrderDelete(\Bitrix\Sale\Order $order)
        {
        }
        public static function outcomingReplication(\Bitrix\Sale\Order $order, $mode)
        {
        }
        public function refreshToken()
        {
        }
        public function requesPrepareData(array $fields)
        {
        }
        protected function import(array $fields)
        {
        }
        protected static function addMarkedTimelineExternalSystem($externalOrderId, array $params)
        {
        }
        /**
         * @param array $params
         * çàïèñü â èñòîðèþ îñóùåñòâëÿåòñÿ òîëüêî äëÿ ÁÓÑ. Äëÿ Á24 èçìåíåíèÿ ïî çàêàçó ïèøóòñÿ â òàéì ëàéí
         */
        private static function addActionOrderHistory(array $params)
        {
        }
        protected static function getSites()
        {
        }
    }
    class Client
    {
        protected $clientId;
        protected $clientSecret;
        protected $serviceUrl;
        protected $refreshToken;
        const HTTP_SOCKET_TIMEOUT = 10;
        const HTTP_STREAM_TIMEOUT = 10;
        const SERVICE_PATH = "/rest/";
        const B24_APP_GRANT_TYPE = 'refresh_token';
        public function __construct($clientId, $clientSecret, $serviceUrl)
        {
        }
        protected function getHttpClient()
        {
        }
        protected function getRequestUrl($methodName)
        {
        }
        public function call($methodName, $additionalParams = [])
        {
        }
        protected function prepareResponse($result)
        {
        }
        protected function prepareRequest($params)
        {
        }
        public function refreshToken($refreshToken)
        {
        }
        public function checkAccessToken($accessToken)
        {
        }
    }
}
namespace Bitrix\Sale\Rest {
    class RestManager
    {
        //RegisterModuleDependences("rest", "onRestGetModule", "sale", "\\Bitrix\\Sale\\Rest\\RestManager", "onRestGetModule");
        //RegisterModuleDependences("rest", "OnRestServiceBuildDescription", "sale", "\\Bitrix\\Sale\\Rest\\RestManager", "onRestServiceBuildDescription");
        ///rest/event.bind.json?auth=423f8e5b0000cdb90000cdb8000000010000030eb629c718430b3c900e901aa414b84c&auth_type=0&event=OnSaleOrderSaved&handler=http://evgenik.office.bitrix.ru/handler/
        ///rest/event.bind.json?auth=423f8e5b0000cdb90000cdb8000000010000030eb629c718430b3c900e901aa414b84c&auth_type=0&event=OnSaleBeforeOrderDelete&handler=http://evgenik.office.bitrix.ru/handler/
        //	public static function onRestGetModule()
        //	{
        //		return ['MODULE_ID' => 'sale'];
        //	}
        public static function onRestServiceBuildDescription()
        {
        }
        public static function processEvent(array $params, array $handlerFields)
        {
        }
    }
}
namespace Bitrix\Sale\Rest\Entity {
    abstract class Base
    {
        const TYPE_INT = 'integer';
        const TYPE_FLOAT = 'double';
        const TYPE_STRING = 'string';
        const TYPE_CHAR = 'char';
        const TYPE_LIST = 'list';
        const TYPE_TEXT = 'text';
        const TYPE_FILE = 'file';
        const TYPE_DATE = 'date';
        const TYPE_DATETIME = 'datetime';
        const TYPE_DATATYPE = 'datatype';
        public abstract function getFields();
        public function prepareFieldInfos($fields)
        {
        }
        public function getSettableFields()
        {
        }
        public function getListFieldInfo(array $fieldsInfo, $params = [])
        {
        }
        protected function isNewItem($fields)
        {
        }
        //region convert keys to snake case
        public function convertKeysToSnakeCaseFields($fields)
        {
        }
        public function convertKeysToSnakeCaseSelect($fields)
        {
        }
        public function convertKeysToSnakeCaseFilter($fields)
        {
        }
        public function convertKeysToSnakeCaseOrder($fields)
        {
        }
        public function convertKeysToSnakeCaseArguments($name, $arguments)
        {
        }
        protected function convertKeysToSnakeCase($data)
        {
        }
        //endregion
        //region internalize fields
        /**
         * @param $name
         * @param $arguments
         * @throws NotImplementedException
         * @return array
         */
        public function internalizeArguments($name, $arguments)
        {
        }
        public function internalizeFieldsList($arguments)
        {
        }
        public function internalizeFieldsAdd($fields)
        {
        }
        public function internalizeFieldsUpdate($fields)
        {
        }
        /**
         * @param $fields
         * @param array $fieldsInfo
         * @return array
         * @throws NotImplementedException
         */
        public function internalizeFieldsModify($fields)
        {
        }
        public function internalizeFieldsTryAdd($fields)
        {
        }
        public function internalizeFieldsTryUpdate($fields)
        {
        }
        public function internalizeFieldsTryModify($fields)
        {
        }
        protected function internalizeFields($fields, array $fieldsInfo)
        {
        }
        protected function internalizeFilterFields($fields, array $fieldsInfo)
        {
        }
        protected function internalizeSelectFields($fields, array $fieldsInfo)
        {
        }
        protected function internalizeOrderFields($fields, array $fieldsInfo)
        {
        }
        public function rewriteFieldsList($arguments)
        {
        }
        protected function rewriteSelectFields($fields)
        {
        }
        protected function rewriteFilterFields($fields)
        {
        }
        protected function rewriteOrderFields($fields)
        {
        }
        /**
         * @throws NotImplementedException
         * @return array
         */
        protected function getRewritedFields()
        {
        }
        protected function internalizeListFields($list, $fieldsInfo = [])
        {
        }
        //endregion
        // region externalize fields
        public function externalizeFields($fields)
        {
        }
        public function externalizeListFields($list)
        {
        }
        /**
         * @param $fields
         * @throws NotImplementedException
         * @return array
         */
        protected function externalizeFieldsModify($fields)
        {
        }
        public function externalizeFieldsTryModify($fields)
        {
        }
        /**
         * @param $name
         * @param $fields
         * @throws NotImplementedException
         * @return array
         */
        public function externalizeResult($name, $fields)
        {
        }
        // endregion
        //region convert keys to camel case
        public function convertKeysToCamelCase($fields)
        {
        }
        // endregion
        //region check fields
        public function checkFieldsAdd($fields)
        {
        }
        public function checkFieldsUpdate($fields)
        {
        }
        public function checkFieldsModify($fields)
        {
        }
        public function checkArguments($name, $arguments)
        {
        }
        protected function checkRequiredFieldsAdd($fields)
        {
        }
        protected function checkRequiredFieldsUpdate($fields)
        {
        }
        /**
         * @param $fields
         * @throws NotImplementedException
         * @return Result
         */
        protected function checkRequiredFieldsModify($fields)
        {
        }
        protected function checkRequiredFields($fields, array $fieldsInfo, $params = [])
        {
        }
    }
    class Shipment extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
        public function internalizeFieldsModify($fields, $fieldsInfo = [])
        {
        }
        protected function getRewritedFields()
        {
        }
        public function externalizeFields($fields)
        {
        }
        public function externalizeFieldsModify($fields)
        {
        }
        public function checkFieldsModify($fields)
        {
        }
        public function checkRequiredFieldsModify($fields)
        {
        }
        public function internalizeArguments($name, $arguments)
        {
        }
    }
    class BusinessValuePersonDomainType
    {
        const UNDEFINED = 0;
        const TYPE_I = 1;
        const TYPE_E = 2;
        const TYPE_I_NAME = 'I';
        const TYPE_E_NAME = 'E';
        private static $descriptions = [];
        public static function isDefined($typeID)
        {
        }
        public static function resolveName($typeID)
        {
        }
        public static function resolveID($name)
        {
        }
        public static function getAllDescriptions()
        {
        }
        public static function getDescription($typeId)
        {
        }
    }
    class BasketItem extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
        public function getFieldsCatalogProduct()
        {
        }
        private function getFieldsInfoItem()
        {
        }
        private function getFieldsInfoCatalogProduct()
        {
        }
        private function getCustomProductFieldsInfo()
        {
        }
        public function convertKeysToSnakeCaseArguments($name, $arguments)
        {
        }
        public function checkArguments($name, $arguments)
        {
        }
        public function internalizeArguments($name, $arguments)
        {
        }
        public function externalizeResult($name, $fields)
        {
        }
        protected function isNewItem($fields)
        {
        }
        public function internalizeFieldsModify($fields, $fieldsInfo = [])
        {
        }
        public function externalizeFields($fields)
        {
        }
        public function externalizeFieldsModify($fields)
        {
        }
        public function checkFieldsModify($fields)
        {
        }
        public function checkRequiredFieldsModify($fields)
        {
        }
    }
    class DeliveryServices extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
        public function internalizeArguments($name, $arguments)
        {
        }
        public function externalizeResult($name, $fields)
        {
        }
    }
    class Order extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
        public function internalizeFieldsModify($fields, $fieldsInfo = [])
        {
        }
        public function convertKeysToSnakeCaseArguments($name, $arguments)
        {
        }
        public function internalizeArguments($name, $arguments)
        {
        }
        protected function internalizeFieldsImport($fields)
        {
        }
        protected function getRewritedFields()
        {
        }
        public function externalizeFields($fields)
        {
        }
        public function externalizeFieldsModify($fields)
        {
        }
        public function externalizeFieldsTryModify($fields)
        {
        }
        public function externalizeResult($name, $fields)
        {
        }
        public function checkRequiredFieldsModify($fields)
        {
        }
    }
    class Enum extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
        public function externalizeResult($name, $fields)
        {
        }
        public function internalizeArguments($name, $arguments)
        {
        }
    }
    class PersonType extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
        public function internalizeFieldsModify($fields, $fieldsInfo = [])
        {
        }
        public function externalizeFieldsModify($fields)
        {
        }
    }
    class BasketProperties extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
        public function internalizeFieldsModify($fields, $fieldsInfo = [])
        {
        }
        public function checkFieldsModify($fields)
        {
        }
        public function checkRequiredFieldsModify($fields)
        {
        }
    }
    class TradePlatform extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
    }
    class PropertyGroups extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
    }
    class Payment extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
        public function internalizeFieldsModify($fields, $fieldsInfo = [])
        {
        }
        protected function getRewritedFields()
        {
        }
        public function internalizeArguments($name, $arguments)
        {
        }
        public function externalizeFieldsModify($fields)
        {
        }
        public function checkFieldsModify($fields)
        {
        }
        public function checkRequiredFieldsModify($fields)
        {
        }
    }
    class Basket extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
        public function internalizeFieldsModify($fields)
        {
        }
        public function externalizeFields($fields)
        {
        }
        public function externalizeFieldsModify($fields)
        {
        }
    }
    class PropertyVariant extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
    }
    class TradeBinding extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
        protected function getRewritedFields()
        {
        }
        public function checkRequiredFieldsModify($fields)
        {
        }
        public function internalizeFieldsModify($fields, $fieldsInfo = [])
        {
        }
    }
    class Property extends \Bitrix\Sale\Rest\Entity\Base
    {
        const PROPERTY_TYPE_STRING = 'STRING';
        const PROPERTY_TYPE_YN = 'Y/N';
        const PROPERTY_TYPE_NUMBER = 'NUMBER';
        const PROPERTY_TYPE_ENUM = 'ENUM';
        const PROPERTY_TYPE_FILE = 'FILE';
        const PROPERTY_TYPE_DATE = 'DATE';
        const PROPERTY_TYPE_LOCATION = 'LOCATION';
        public function prepareFieldInfos($fields)
        {
        }
        public function getFields()
        {
        }
        public function getFieldsByType($type)
        {
        }
        protected function getFieldsSettingsByType($type)
        {
        }
        protected function getFieldsByTypeString()
        {
        }
        protected function getFieldsByTypeLocation()
        {
        }
        protected function getFieldsSettingsByTypeString()
        {
        }
        protected function getFieldsSettingsByEitherYNType()
        {
        }
        protected function getFieldsSettingsByNumberType()
        {
        }
        protected function getFieldsSettingsByEnumType()
        {
        }
        protected function getFieldsSettingsByFileType()
        {
        }
        protected function getFieldsSettingsByDateType()
        {
        }
        protected function getFieldsSettingsByLocation()
        {
        }
        public function convertKeysToSnakeCaseArguments($name, $arguments)
        {
        }
        public function internalizeArguments($name, $arguments)
        {
        }
        public function externalizeResult($name, $fields)
        {
        }
    }
    class Status extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
    }
    class RelationType
    {
        const UNDEFINED = 0;
        const PAYSYSTEM = 1;
        const DELIVERY = 2;
        const PAYSYSTEM_NAME = 'P';
        const DELIVERY_NAME = 'D';
        private static $descriptions = [];
        public static function isDefined($typeID)
        {
        }
        public static function resolveName($typeID)
        {
        }
        public static function resolveID($name)
        {
        }
        public static function getAllDescriptions()
        {
        }
        public static function getDescription($typeId)
        {
        }
    }
    class PropertyValue extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
        public function internalizeFieldsModify($fields, $fieldsInfo = [])
        {
        }
        protected function getRewritedFields()
        {
        }
        public function externalizeFieldsModify($fields)
        {
        }
        public function checkFieldsModify($fields)
        {
        }
        public function checkRequiredFieldsModify($fields)
        {
        }
    }
    class ShipmentItem extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
        public function internalizeFieldsModify($fields, $fieldsInfo = [])
        {
        }
        public function checkFieldsModify($fields)
        {
        }
        public function checkRequiredFieldsModify($fields)
        {
        }
    }
    class PropertyRelation extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
        public function convertKeysToSnakeCaseArguments($name, $arguments)
        {
        }
        public function checkArguments($name, $arguments)
        {
        }
        public function internalizeArguments($name, $arguments)
        {
        }
    }
    class PropertyGroup extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
    }
    class StatusLang extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
        public function convertKeysToSnakeCaseArguments($name, $arguments)
        {
        }
        public function checkArguments($name, $arguments)
        {
        }
        public function internalizeArguments($name, $arguments)
        {
        }
        public function externalizeResult($name, $fields)
        {
        }
    }
    class BusinessValuePersonDomain extends \Bitrix\Sale\Rest\Entity\Base
    {
        public function getFields()
        {
        }
        public function convertKeysToSnakeCaseArguments($name, $arguments)
        {
        }
        public function checkArguments($name, $arguments)
        {
        }
        public function internalizeArguments($name, $arguments)
        {
        }
    }
}
namespace Bitrix\Main\Type\Contract {
    interface Arrayable
    {
        /**
         * @return array
         */
        public function toArray();
    }
}
namespace Bitrix\Sale\Rest {
    class ModificationFieldsBase
    {
        const TO_WHITE_LIST = 0x10;
        const TO_CAMEL = 0x20;
        const TO_SNAKE = 0x30;
        const SORTING_KEYS = 0x40;
        const CHECK_REQUIRED = 0x50;
        protected $format;
        protected $data;
        protected $scope;
        public static function buildByAction(\Bitrix\Main\Engine\Action $action, $data = [], $scope = '')
        {
        }
        public function __construct($name, $arguments, $controller, $data = [], $scope = '')
        {
        }
        public function getName()
        {
        }
        public function getArguments()
        {
        }
        public function setArguments($arguments)
        {
        }
        public function getController()
        {
        }
        public function getScope()
        {
        }
        public function getData()
        {
        }
        /**
         * @param Controller $controller
         * @return Entity\BasketItem|Entity\Order|Entity\Payment|Entity\PersonType|Entity\Property|Entity\PropertyGroup|null
         * @throws RestException
         */
        protected function getEntity(\Bitrix\Main\Engine\Controller $controller)
        {
        }
    }
    /**
     * Class Externalizer
     * @package Bitrix\Sale\Rest
     * ýêñòåðíàëàéçåð äëÿ ðàáîòû ñ èìåíîâàííûìè ñïèñêàìè|îòâåòàìè
     */
    class Externalizer extends \Bitrix\Sale\Rest\ModificationFieldsBase implements \Bitrix\Main\Type\Contract\Arrayable
    {
        public function __construct($name, $arguments, $controller, array $data = [], $scope = '')
        {
        }
        public function process()
        {
        }
        public function toArray()
        {
        }
        protected function multiSortKeysArray(array $data)
        {
        }
        /**
         * @param $data
         * @return array
         * ýêñòåðíàëàéçåð ðàáîòàåò òîëüêî ñ ÍÅ èìåííîâàíûì ñïèñêîì. id ñïèñêà íå ïåðåäàåòñÿ
         */
        private function externalize($fields)
        {
        }
        /**
         * @param $data
         * @return int|null|string
         * îáÿçàòåëüíîå èìåíîâàíèå (êëþ÷ â ìàññèâå) ñïèñêà èëè ðåçóëüòàòà â îòâåòå
         */
        private function getIdList($data)
        {
        }
        protected function convertKeysToCamelCase($fields)
        {
        }
        public function getPage(\Bitrix\Main\Engine\Response\DataType\Page $page)
        {
        }
    }
}
namespace Bitrix\Sale\Rest\Normalizer {
    /**
     * Class ObjectNormalizer
     * @package Bitrix\Sale\Rest\Normalizer
     * íîòàöèÿ âñåõ êëþ÷åé â ðåçóëüòàòå äîëæíà áûòü SNAKE_CASE
     */
    class ObjectNormalizer
    {
        protected $externalFields;
        protected $fields;
        protected $order;
        public function __construct(array $data = [])
        {
        }
        public function init(\Bitrix\Sale\Order $order)
        {
        }
        public function orderNormalize()
        {
        }
        public function basketNormalize()
        {
        }
        public function propertiesValueNormalize()
        {
        }
        public function paymentsNormalize()
        {
        }
        public function shipmentsNormalize()
        {
        }
        public function applyDiscountNormalize()
        {
        }
        public function taxNormalize()
        {
        }
        public function tradeBindingsNormalize()
        {
        }
        public function getFields()
        {
        }
        /**
         * @return \Bitrix\Sale\Order
         */
        protected function getOrder()
        {
        }
    }
    class Director
    {
        public function normalize(\Bitrix\Sale\Rest\Normalizer\ObjectNormalizer $normalizer, \Bitrix\Sale\Order $order)
        {
        }
    }
}
namespace Bitrix\Sale\Rest {
    class Internalizer extends \Bitrix\Sale\Rest\ModificationFieldsBase
    {
        public function __construct($name, $arguments, $controller, array $data = [], $scope = '')
        {
        }
        /**
         * @return Result
         */
        public function process()
        {
        }
        protected function convertToSnakeCase($arguments = [])
        {
        }
        private function internalize($arguments)
        {
        }
        protected function check($arguments)
        {
        }
    }
}
namespace Bitrix\Sale {
    class EventsPool
    {
        protected static $events = array();
        public static function getEvents(\Bitrix\Sale\Order $order)
        {
        }
        /**
         * @param Order $order
         * @param $type
         * @param $event
         */
        public static function addEvent(\Bitrix\Sale\Order $order, $type, $event)
        {
        }
        /**
         * @param Order $order
         */
        public static function resetEvents(\Bitrix\Sale\Order $order = null)
        {
        }
    }
}
namespace Bitrix\Sale\Bigdata {
    class TargetSaleMailConnector extends \Bitrix\Sender\Connector
    {
        public function getName()
        {
        }
        public function getCode()
        {
        }
        public function getData()
        {
        }
        public static function getPersonalizeList()
        {
        }
        public function getForm()
        {
        }
        public static function onConnectorList()
        {
        }
    }
    class Cloud
    {
        protected static $url = 'https://analytics.bitrix.info/crecoms/v1_0/recoms.php';
        public static function getPersonalRecommendation($userId, $count = 10)
        {
        }
        public static function getFollowUpProducts($productIds)
        {
        }
        public static function getPotentialConsumers($productId)
        {
        }
        protected static function makeQuery($params)
        {
        }
    }
}
namespace Bitrix\Sale {
    class StatusLangTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    /**
     * Class ShipmentItemStore
     * @package Bitrix\Sale
     */
    class ShipmentItemStore extends \Bitrix\Sale\Internals\CollectableEntity implements \IEntityMarker
    {
        /**
         * @return array
         */
        public static function getAvailableFields()
        {
        }
        /**
         * @return array
         */
        protected static function getMeaningfulFields()
        {
        }
        /**
         * @param array $itemData
         * @return mixed
         * @throws Main\ArgumentException
         */
        private static function createShipmentItemStoreObject(array $itemData = array())
        {
        }
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @return string
         */
        public static function getRegistryEntity()
        {
        }
        /**
         * @param ShipmentItemStoreCollection $collection
         * @param BasketItem $basketItem
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        public static function create(\Bitrix\Sale\ShipmentItemStoreCollection $collection, \Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param string $name
         * @param mixed $oldValue
         * @param mixed $value
         * @return Result
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectException
         */
        protected function onFieldModify($name, $oldValue, $value)
        {
        }
        /**
         * Deletes shipment item
         *
         * @throws Main\ArgumentOutOfRangeException
         * @throws \Exception
         */
        public function delete()
        {
        }
        /**
         * @return int
         */
        public function getBasketId() : int
        {
        }
        /**
         * @return float
         */
        public function getQuantity() : float
        {
        }
        /**
         * @return int
         */
        public function getStoreId() : int
        {
        }
        /**
         * @return string
         */
        public function getBarcode() : string
        {
        }
        /**
         * @return string
         */
        public function getMarkingCode() : string
        {
        }
        /**
         * @param $id
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function loadForShipmentItem($id)
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function verify()
        {
        }
        /**
         * @return void
         */
        protected function checkCallingContext()
        {
        }
        /**
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectException
         * @throws Main\ObjectNotFoundException
         */
        public function save()
        {
        }
        /**
         * @return void
         */
        protected function callEventOnBeforeItemStoreEntitySaved()
        {
        }
        /**
         * @return void
         */
        protected function callEventOnItemStoreEntitySaved()
        {
        }
        /**
         * @param $errors
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        protected function addErrorMessagesToHistory($errors)
        {
        }
        /**
         * @param string $name
         * @param null $oldValue
         * @param null $value
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        protected function addChangesToHistory($name, $oldValue = null, $value = null)
        {
        }
        /**
         * @param array $parameters
         * @return Main\ORM\Query\Result|Internals\EO_ShipmentItemStore_Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * @param $value
         *
         * @return string
         */
        public function getErrorEntity($value)
        {
        }
        /**
         * @param $value
         *
         * @return bool
         */
        public function canAutoFixError($value)
        {
        }
        /**
         * @return array
         */
        public function getAutoFixErrorsList()
        {
        }
        /**
         * @param $code
         *
         * @return Result
         */
        public function tryFixError($code)
        {
        }
        /**
         * @return bool
         */
        public function canMarked()
        {
        }
        /**
         * @return string|null
         */
        public function getMarkField()
        {
        }
        /**
         * @param array $data
         * @return Main\Entity\AddResult
         */
        protected function addInternal(array $data)
        {
        }
        /**
         * @param $primary
         * @param array $data
         * @return Main\Entity\UpdateResult
         */
        protected function updateInternal($primary, array $data)
        {
        }
        /**
         * @return array
         */
        protected static function getFieldsMap()
        {
        }
        /**
         * @return null|string
         * @internal
         *
         */
        public static function getEntityEventName()
        {
        }
    }
    /**
     * Class BundleCollection
     * @package Bitrix\Sale
     */
    class BundleCollection extends \Bitrix\Sale\BasketItemCollection
    {
        /** @var null|BasketItem */
        protected $parentBasketItem = null;
        /**
         * @param BasketItem $basketItem
         */
        public function setParentBasketItem(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @return BasketItem|null
         */
        public function getParentBasketItem()
        {
        }
        /**
         * @return BasketItem|null
         */
        protected function getEntityParent()
        {
        }
        /**
         * @param CollectableEntity $item
         * @return CollectableEntity
         * @throws Main\ArgumentTypeException
         */
        public function addItem(\Bitrix\Sale\Internals\CollectableEntity $item)
        {
        }
        /**
         * @param array $parameters
         * @return Main\DB\Result
         * @throws Main\ArgumentException
         */
        public static function getList(array $parameters)
        {
        }
        /**
         * @param $index
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public function deleteItem($index)
        {
        }
        /**
         * @return BundleCollection
         * @throws Main\ArgumentException
         */
        public static function createBundleCollectionObject()
        {
        }
        /**
         * @param array $filter
         * @return BundleCollection
         * @throws Main\ArgumentException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         */
        public function loadFromDb(array $filter)
        {
        }
        /**
         * @internal
         *
         * @param \SplObjectStorage|null $cloneEntity
         * @return BundleCollection|EntityCollection
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws Main\ObjectNotFoundException
         * @throws \Exception
         */
        public function createClone(\SplObjectStorage $cloneEntity = null)
        {
        }
        /**
         * @return BasketBase
         */
        public function getBasket()
        {
        }
        /**
         * @return string
         */
        public static function getRegistryType()
        {
        }
        /**
         * @param CollectableEntity $item
         * @param null $name
         * @param null $oldValue
         * @param null $value
         * @return Result
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\NotSupportedException
         * @throws Main\ObjectNotFoundException
         * @throws Main\SystemException
         */
        public function onItemModify(\Bitrix\Sale\Internals\CollectableEntity $item, $name = null, $oldValue = null, $value = null)
        {
        }
    }
}
namespace {
    class CDeliverySimple
    {
        function Init()
        {
        }
        function GetConfig()
        {
        }
        function GetSettings($strSettings)
        {
        }
        function SetSettings($arSettings)
        {
        }
        function __GetLocationPrice($LOCATION_ID, $arConfig)
        {
        }
        function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = \false)
        {
        }
        function Compability($arOrder, $arConfig)
        {
        }
    }
    class CDeliveryUPS
    {
        function Init()
        {
        }
        function GetConfig()
        {
        }
        function GetSettings($strSettings)
        {
        }
        function SetSettings($arSettings)
        {
        }
        function __parseZonesFile($file)
        {
        }
        function __parseExportFile($file)
        {
        }
        function __GetZones($file)
        {
        }
        function __GetExport($file)
        {
        }
        function __GetLocation(&$arLocation, $arConfig)
        {
        }
        function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = \false)
        {
        }
        function Compability($arOrder, $arConfig)
        {
        }
    }
    class CDeliveryDHLUSA
    {
        function Init()
        {
        }
        function GetConfig()
        {
        }
        function GetSettings($strSettings)
        {
        }
        function SetSettings($arSettings)
        {
        }
        function __GetLocation($location_id)
        {
        }
        function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = \false)
        {
        }
        function Compability($arOrder)
        {
        }
        function __Write2Log($data)
        {
        }
    }
    class CSaleExportCML2 extends \CSaleExport
    {
        /**
         * @param array $arFilter
         * @return array
         */
        protected static function prepareFilter($arFilter = array())
        {
        }
        /**
         * @param array $arOrder
         */
        protected static function saveExportParams(array $arOrder)
        {
        }
        protected static function outputXmlUnit($arBasket)
        {
        }
        /**
         * @param array $fields
         * @return \Bitrix\Main\Entity\AddResult
         * @deprecated
         */
        public static function log(array $fields)
        {
        }
        protected static function getLastOrderExported($timeUpdate)
        {
        }
    }
}
namespace Sale\Handlers\PaySystem {
    /**
     * Class BillHandler
     * @package Sale\Handlers\PaySystem
     */
    class BillHandler extends \Bitrix\Sale\PaySystem\BaseServiceHandler implements \Bitrix\Sale\PaySystem\IPdf
    {
        /**
         * @param Sale\Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\NotImplementedException
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @param Sale\Payment|null $payment
         * @param string $template
         * @return PaySystem\ServiceResult
         */
        public function showTemplate(\Bitrix\Sale\Payment $payment = null, $template = '')
        {
        }
        /**
         * @param Sale\Payment $payment
         * @param Request|null $request
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\NotImplementedException
         */
        protected function getPreparedParams(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        /**
         * @return bool
         */
        public function isAffordPdf()
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectException
         */
        public function getDemoParams()
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\NotImplementedException
         */
        public function getContent(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return array|bool|false|mixed|null
         * @throws \Bitrix\Main\ObjectException
         */
        public function getFile(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed
         */
        public function isGenerated(\Bitrix\Sale\Payment $payment)
        {
        }
    }
    /**
     * Class BillDeHandler
     * @package Sale\Handlers\PaySystem
     */
    class BillDeHandler extends \Sale\Handlers\PaySystem\BillHandler
    {
        /**
         * @param Sale\Payment $payment
         * @param Request|null $request
         * @return array
         */
        protected function getPreparedParams(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public function getDemoParams()
        {
        }
    }
    /**
     * Class BillBrHandler
     * @package Sale\Handlers\PaySystem
     */
    class BillBrHandler extends \Sale\Handlers\PaySystem\BillHandler
    {
        /**
         * @param Sale\Payment $payment
         * @param Request|null $request
         * @return array
         */
        protected function getPreparedParams(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public function getDemoParams()
        {
        }
    }
    /**
     * Class BillKzHandler
     * @package Sale\Handlers\PaySystem
     */
    class BillKzHandler extends \Sale\Handlers\PaySystem\BillHandler
    {
        /**
         * @return array
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectException
         */
        public function getDemoParams()
        {
        }
    }
    class AssistHandler extends \Bitrix\Sale\PaySystem\ServiceHandler implements \Bitrix\Sale\PaySystem\IRefund, \Bitrix\Sale\PaySystem\ICheckable
    {
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public static function getIndicativeFields()
        {
        }
        /**
         * @param Payment $payment
         * @param int $refundableSum
         * @return PaySystem\ServiceResult
         */
        public function refund(\Bitrix\Sale\Payment $payment, $refundableSum)
        {
        }
        /**
         * @param Payment $payment
         * @param $request
         * @return bool
         */
        private function isCorrectHash(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return bool
         */
        private function isCorrectSum(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param PaySystem\ServiceResult $result
         * @param Request $request
         * @return mixed
         */
        public function sendResponse(\Bitrix\Sale\PaySystem\ServiceResult $result, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Request $request
         * @return mixed
         */
        public function getPaymentIdFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @return bool
         */
        protected function isTestMode(\Bitrix\Sale\Payment $payment = null)
        {
        }
        /**
         * @return array
         */
        protected function getUrlList()
        {
        }
        /**
         * @param Payment $payment
         * @param string $action
         * @return string
         */
        protected function getUrl(\Bitrix\Sale\Payment $payment = null, $action)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        /**
         * @param Payment $payment
         * @return PaySystem\ServiceResult
         */
        public function check(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getSuccessUrl(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getFailUrl(\Bitrix\Sale\Payment $payment)
        {
        }
    }
    /**
     * Class SkbHandler
     * @package Sale\Handlers\PaySystem
     */
    class SkbHandler extends \Bitrix\Sale\PaySystem\ServiceHandler implements \Bitrix\Sale\PaySystem\IRefund
    {
        private const MODE_SKB = 'skb';
        private const MODE_DELOBANK = 'delobank';
        private const MODE_GAZENERGOBANK = 'gazenergobank';
        private const RESPONSE_CODE_SUCCESS = ['0', 'RQ00000'];
        private const HTTP_CODE_OK = 200;
        private const HTTP_CODE_LOCKED = 423;
        private const PAYMENT_STATUS_ACCEPTED = 'ACWP';
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function changeUserPassword(\Bitrix\Sale\Payment $payment) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @param string $password
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function updatePassword(\Bitrix\Sale\Payment $payment, string $password) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function createPayment(\Bitrix\Sale\Payment $payment) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList() : array
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getSkbPaymentStatus(\Bitrix\Sale\Payment $payment) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Request $request
         * @return mixed
         */
        public function getPaymentIdFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @return array
         */
        public static function getIndicativeFields() : array
        {
        }
        /**
         * @param Payment $payment
         * @param $sum
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function isSumCorrect(\Bitrix\Sale\Payment $payment, $sum) : bool
        {
        }
        /**
         * @param Request $request
         * @param $secretKey
         * @return bool
         */
        protected function isSignCorrect(\Bitrix\Main\Request $request, $secretKey) : bool
        {
        }
        /**
         * @param Payment $payment
         * @param $refundableSum
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        public function refund(\Bitrix\Sale\Payment $payment, $refundableSum) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @param $refundableSum
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function checkRefundTransfer(\Bitrix\Sale\Payment $payment, $refundableSum) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @param string $corelationId
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function approveRefundTransfer(\Bitrix\Sale\Payment $payment, string $corelationId) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @param $action
         * @param array $params
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function send(\Bitrix\Sale\Payment $payment, $action, array $params = []) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param $url
         * @param array $params
         * @param array $headers
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function makeQuery($url, array $params = [], array $headers = []) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param $response
         * @return PaySystem\ServiceResult
         */
        private function verifyResponse($response) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment|null $payment
         * @return bool
         */
        protected function isTestMode(\Bitrix\Sale\Payment $payment = null) : bool
        {
        }
        /**
         * @return array
         */
        protected function getUrlList() : array
        {
        }
        /**
         * @param Payment $payment
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function getAdditionalInfo(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return string
         */
        private function getBasicAuthString(\Bitrix\Sale\Payment $payment) : string
        {
        }
        /**
         * @param Payment $payment
         * @return array
         */
        private function getHeaders(\Bitrix\Sale\Payment $payment) : array
        {
        }
        /**
         * @return string
         */
        private static function getMessageId() : string
        {
        }
        /**
         * @return string
         */
        private function getAgentId() : string
        {
        }
        /**
         * @return array
         */
        public static function getHandlerModeList() : array
        {
        }
        /**
         * @param array $data
         * @return mixed
         * @throws Main\ArgumentException
         */
        private static function encode(array $data)
        {
        }
        /**
         * @param string $data
         * @return mixed
         */
        private static function decode($data)
        {
        }
    }
    class InnerHandler extends \Bitrix\Sale\PaySystem\BaseServiceHandler implements \Bitrix\Sale\PaySystem\IRefund
    {
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        /**
         * @param Payment $payment
         * @param int $refundableSum
         * @return PaySystem\ServiceResult
         */
        public function refund(\Bitrix\Sale\Payment $payment, $refundableSum)
        {
        }
        /**
         * @param Payment $payment
         * @return PaySystem\ServiceResult
         */
        public function creditNoDemand(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return PaySystem\ServiceResult
         */
        public function debitNoDemand(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Order $order
         * @return bool
         */
        private function isUserBudgetLock(\Bitrix\Sale\Order $order)
        {
        }
    }
    class AlfaBankB2BHandler extends \Bitrix\Sale\PaySystem\BaseServiceHandler implements \Bitrix\Sale\PaySystem\IRequested
    {
        /**
         * @param Sale\Payment $payment
         * @param Main\Request|null $request
         * @return PaySystem\ServiceResult
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @param $data
         * @return string
         */
        private function createRequest($data)
        {
        }
        /**
         * @param array $data
         * @return bool
         */
        private function verifySign(array $data)
        {
        }
        /**
         * @param $data
         * @return string
         */
        private function getHash($data)
        {
        }
        /**
         * @param $url
         * @param $action
         * @param $data
         * @return ServiceResult
         */
        private function sendRequest($url, $action, $data)
        {
        }
        /**
         * @param $data
         * @return false|string
         */
        private function sign($data)
        {
        }
        /**
         * @return string
         */
        private function getCert()
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        /**
         * @return array
         */
        protected function getUrlList()
        {
        }
        /**
         * @param Main\Request $request
         * @return ServiceResult
         */
        public function createMovementListRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @param $requestId
         * @return ServiceResult
         */
        public function getMovementListStatus($requestId = null)
        {
        }
        /**
         * @param $requestId
         * @return ServiceResult
         */
        public function getMovementList($requestId = null)
        {
        }
        /**
         * @param $data
         * @return mixed
         */
        private function convertToUtf8($data)
        {
        }
        /**
         * @return bool
         */
        public function isTuned()
        {
        }
        /**
         * @param Payment $payment
         * @param $code
         * @return mixed
         */
        protected function getBusinessValue(\Bitrix\Sale\Payment $payment = null, $code)
        {
        }
        /**
         * @param Payment $payment
         * @return bool
         */
        protected function isTestMode(\Bitrix\Sale\Payment $payment = null)
        {
        }
    }
    /**
     * Class AdyenHandler
     * @package Sale\Handlers\PaySystem
     */
    class AdyenHandler extends \Bitrix\Sale\PaySystem\ServiceHandler implements \Bitrix\Sale\PaySystem\IRefundExtended, \Bitrix\Sale\PaySystem\Domain\Verification\IVerificationable
    {
        private const APPLE_PAY_INITIATIVE_CONTEXT = '/bitrix/tools/sale/applepay_gateway.php';
        /** @var string version of Payment Service API */
        private const PAYMENT_API_VERSION = "v51";
        /** @var string version of Checkout Service API */
        private const CHECKOUT_API_VERSION = "v51";
        /** @var string field informs you of the outcome of a payment request */
        private const EVENT_CODE_AUTHORISATION = "AUTHORISATION";
        private const HTTP_RESPONSE_CODE_OK = 200;
        private const RESULT_CODE_AUTHORISED = "Authorised";
        private const RESULT_CODE_ERROR = "Error";
        private const RESULT_CODE_REFUSED = "Refused";
        private const RESPONSE_REFUND_RECEIVED = "[refund-received]";
        private const NOTIFICATION_RESPONSE_ACCEPTED = "[accepted]";
        private const MAX_REQUEST_ATTEMPT = 3;
        public const PAYMENT_METHOD_APPLE_PAY = "apple_pay";
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function initiatePayInternal(\Bitrix\Sale\Payment $payment) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * Checks whether component implements selected action.
         *
         * @param $action
         * @return bool
         */
        private function isActionExists($action) : bool
        {
        }
        /**
         * @return array
         */
        public static function getHandlerModeList() : array
        {
        }
        /**
         * @param Request $request
         * @param int $paySystemId
         * @return bool
         */
        public static function isMyResponse(\Bitrix\Main\Request $request, $paySystemId) : bool
        {
        }
        /**
         * @return array|bool
         */
        private static function getNotificationItem()
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList() : array
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param $notificationItem
         * @param $secretKey
         * @return bool
         */
        private function isSignatureCorrect($notificationItem, $secretKey) : bool
        {
        }
        /**
         * @param $notificationItem
         * @return string
         */
        private function getDataToSign($notificationItem) : string
        {
        }
        /**
         * @param Payment $payment
         * @param $sum
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function isSumCorrect(\Bitrix\Sale\Payment $payment, $sum) : bool
        {
        }
        /**
         * @param Request $request
         * @return mixed
         */
        public function getPaymentIdFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param string $channel
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function getPaymentMethods(\Bitrix\Sale\Payment $payment, string $channel) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         * @noinspection PhpUnused
         */
        private function getApplePayWebSessionAction(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         * @noinspection PhpUnused
         */
        public function makePaymentAction(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         * @noinspection PhpUnusedPrivateMethodInspection
         */
        private function getIMessagePaymentAction(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Request $request
         * @return array
         */
        private function getRequestPaymentMethod(\Bitrix\Main\Request $request) : array
        {
        }
        /**
         * @param Payment|null $payment
         * @param string $action
         * @return mixed|string
         */
        protected function getUrl(\Bitrix\Sale\Payment $payment = null, $action)
        {
        }
        /**
         * @return array
         */
        protected function getUrlList() : array
        {
        }
        /**
         * @param Payment $payment
         * @return bool
         */
        protected function isTestMode(\Bitrix\Sale\Payment $payment = null) : bool
        {
        }
        /**
         * @param Payment $payment
         * @return array
         */
        private function getHeaders(\Bitrix\Sale\Payment $payment) : array
        {
        }
        /**
         * @return string
         */
        private function getIdempotenceKey() : string
        {
        }
        /**
         * @param Payment $payment
         * @param $refundableSum
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        public function refund(\Bitrix\Sale\Payment $payment, $refundableSum) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param $url
         * @param array $params
         * @param array $headers
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function send($url, array $params, array $headers = array()) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @return bool
         */
        public function isRefundableExtended() : bool
        {
        }
        /**
         * @param Payment $payment
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function getModeParams(\Bitrix\Sale\Payment $payment) : array
        {
        }
        /**
         * @param Payment $payment
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function getApplePayParams(\Bitrix\Sale\Payment $payment) : array
        {
        }
        /**
         * @param Payment $payment
         * @return array
         * @throws Main\ArgumentNullException
         */
        private function getAmount(\Bitrix\Sale\Payment $payment) : array
        {
        }
        /**
         * @return bool|string
         */
        private static function readFromStream()
        {
        }
        /**
         * @param array $data
         * @return mixed
         * @throws Main\ArgumentException
         */
        private static function encode(array $data)
        {
        }
        /**
         * @param string $data
         * @return mixed
         */
        private static function decode($data)
        {
        }
        /**
         * @param PaySystem\ServiceResult $result
         * @param Request $request
         * @return mixed|void
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        public function sendResponse(\Bitrix\Sale\PaySystem\ServiceResult $result, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @inheritDoc
         */
        public static function getModeList() : array
        {
        }
    }
    /**
     * Class LiqPayHandler
     * @package Sale\Handlers\PaySystem
     */
    class LiqPayHandler extends \Bitrix\Sale\PaySystem\ServiceHandler
    {
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public static function getIndicativeFields()
        {
        }
        /**
         * @param Payment $payment
         * @param $request
         * @return bool
         */
        private function isCorrectHash(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return bool
         */
        private function isCorrectSum(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Request $request
         * @return mixed
         */
        public function getPaymentIdFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @return mixed
         */
        protected function getUrlList()
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         */
        private function processNoticeAction(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        /**
         * @param $string
         * @param $tag
         * @return string
         */
        private function getValueByTag($string, $tag)
        {
        }
        /**
         * @param Request $request
         * @return string
         */
        private function getOperationXml(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        private function getPaymentDescription(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getPathResultUrl(\Bitrix\Sale\Payment $payment)
        {
        }
    }
    /**
     * Class CashHandler
     */
    class CashHandler extends \Bitrix\Sale\PaySystem\BaseServiceHandler
    {
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
    }
    class RoboxchangeHandler extends \Bitrix\Sale\PaySystem\ServiceHandler
    {
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public static function getIndicativeFields()
        {
        }
        /**
         * @param Request $request
         * @param $paySystemId
         * @return bool
         */
        protected static function isMyResponseExtended(\Bitrix\Main\Request $request, $paySystemId)
        {
        }
        /**
         * @param Payment $payment
         * @param $request
         * @return bool
         */
        private function isCorrectHash(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return bool
         */
        private function isCorrectSum(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Request $request
         * @return mixed
         */
        public function getPaymentIdFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @return mixed
         */
        protected function getUrlList()
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         */
        private function processNoticeAction(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @return bool
         */
        protected function isTestMode(\Bitrix\Sale\Payment $payment = null)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        /**
         * @param PaySystem\ServiceResult $result
         * @param Request $request
         * @return mixed
         */
        public function sendResponse(\Bitrix\Sale\PaySystem\ServiceResult $result, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @return array
         */
        public static function getHandlerModeList()
        {
        }
    }
    /**
     * Class CashOnDeliveryCalcHandler
     */
    class CashOnDeliveryCalcHandler extends \Bitrix\Sale\PaySystem\BaseServiceHandler implements \Bitrix\Sale\PaySystem\IPayable
    {
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        /**
         * @param Payment $payment
         * @return float|int
         */
        public function getPrice(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param $params
         * @return array
         */
        private static function extractFromField($params)
        {
        }
        /**
         * @param $tarifs
         * @return array
         */
        private static function getTariffArrayCSV($tarifs)
        {
        }
        /**
         * @param int $paySystemId
         * @return array|mixed
         */
        public static function getValues($paySystemId = 0)
        {
        }
        /**
         * @param $tariff
         * @return string
         */
        public function prepareToField($tariff)
        {
        }
        /**
         * @param int $paySystemId
         * @return array
         */
        public static function getStructure($paySystemId = 0)
        {
        }
        /**
         * @param $tariffId
         * @param $tariffTitle
         * @param $arTarifs
         * @param $arConfig
         */
        private static function setTariffConfig($tariffId, $tariffTitle, $arTarifs, &$arConfig)
        {
        }
        private static function getRegionsList()
        {
        }
        /**
         * @param $regionNameLang
         * @return array|bool
         */
        public function getCMTarifsByRegionFromCsv($regionNameLang)
        {
        }
        /**
         * @return array
         */
        public static function getAllCMTarifsFromCsv()
        {
        }
    }
    class YandexInvoiceHandler extends \Bitrix\Sale\PaySystem\ServiceHandler
    {
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return mixed
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param array $payload
         * @return PaySystem\ServiceResult
         */
        private function processNoticeAction(\Bitrix\Sale\Payment $payment, array $payload)
        {
        }
        /**
         * @param Request $request
         * @return string
         */
        public function getPaymentIdFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @return array
         */
        protected function getUrlList()
        {
        }
        /**
         * @return array
         */
        public static function getHandlerModeList()
        {
        }
        /**
         * @param Payment $payment
         * @param array $payload
         * @return string
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        private function prepareRequest(\Bitrix\Sale\Payment $payment, array $payload)
        {
        }
        /**
         * @param $data
         * @return mixed
         */
        private static function base64Encode($data)
        {
        }
        /**
         * @param $data
         * @return mixed
         */
        private static function base64Decode($data)
        {
        }
        /**
         * @param PaySystem\ServiceResult $result
         * @param Request $request
         * @return mixed
         */
        public function sendResponse(\Bitrix\Sale\PaySystem\ServiceResult $result, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param $data
         * @param $sign
         * @return bool
         */
        private function isSignCorrect(\Bitrix\Sale\Payment $payment, $data, $sign)
        {
        }
        /**
         * @param $input
         * @param $keyResource
         * @return null|string
         */
        private function sign($input, $keyResource)
        {
        }
        /**
         * @param $key
         * @return mixed
         */
        private function getKeyResource($key)
        {
        }
        /**
         * @param Payment|null $payment
         * @return bool
         */
        protected function isTestMode(\Bitrix\Sale\Payment $payment = null)
        {
        }
        /**
         * @return array
         */
        public static function getIndicativeFields()
        {
        }
        /**
         * @param Request $request
         * @param $paySystemId
         * @return bool
         */
        protected static function isMyResponseExtended(\Bitrix\Main\Request $request, $paySystemId)
        {
        }
        /**
         * @return bool
         */
        public function isTuned()
        {
        }
    }
    /**
     * Class BillLaHandler
     * @package Sale\Handlers\PaySystem
     */
    class BillLaHandler extends \Sale\Handlers\PaySystem\BillHandler
    {
        /**
         * @param Sale\Payment $payment
         * @param Request|null $request
         * @return array
         */
        protected function getPreparedParams(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public function getDemoParams()
        {
        }
    }
    /**
     * Class CashOnDeliveryHandler
     */
    class CashOnDeliveryHandler extends \Bitrix\Sale\PaySystem\BaseServiceHandler
    {
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
    }
    /**
     * Class BillEnHandler
     * @package Sale\Handlers\PaySystem
     */
    class BillEnHandler extends \Sale\Handlers\PaySystem\BillHandler
    {
        /**
         * @return array
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectException
         */
        public function getDemoParams()
        {
        }
    }
    /**
     * Class BillFrHandler
     * @package Sale\Handlers\PaySystem
     */
    class BillFrHandler extends \Sale\Handlers\PaySystem\BillHandler
    {
        /**
         * @param Sale\Payment $payment
         * @param Request|null $request
         * @return array
         */
        protected function getPreparedParams(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public function getDemoParams()
        {
        }
    }
    /**
     * Class SberbankOnlineHandler
     * @package Sale\Handlers\PaySystem
     */
    class SberbankOnlineHandler extends \Bitrix\Sale\PaySystem\ServiceHandler implements \Bitrix\Sale\PaySystem\IRefund
    {
        const PAYMENT_OPERATION_DEPOSITED = 'deposited';
        const PAYMENT_STATUS_SUCCESS = 1;
        const PAYMENT_STATUS_FAIL = 0;
        const RESPONSE_CODE_SUCCESS = 0;
        const PAYMENT_STATE_CREATED = 'CREATED';
        const PAYMENT_DELIMITER = '_';
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @param Payment $payment
         * @return ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function checkOrder(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @param $orderAttemptNumber
         * @return ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         */
        private function createOrder(\Bitrix\Sale\Payment $payment, $orderAttemptNumber)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Request $request
         * @return mixed
         */
        public function getPaymentIdFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @return array
         */
        public static function getIndicativeFields()
        {
        }
        /**
         * @param Request $request
         * @param $paySystemId
         * @return bool
         */
        protected static function isMyResponseExtended(\Bitrix\Main\Request $request, $paySystemId)
        {
        }
        /**
         * @param Payment $payment
         * @param array $paymentData
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function isSumCorrect(\Bitrix\Sale\Payment $payment, array $paymentData)
        {
        }
        /**
         * @param Request $request
         * @param $secretKey
         * @return bool
         */
        protected function isCheckSumCorrect(\Bitrix\Main\Request $request, $secretKey)
        {
        }
        /**
         * @param Payment $payment
         * @param int $attempt
         * @return ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         */
        protected function registerOrder(\Bitrix\Sale\Payment $payment, $attempt = 0)
        {
        }
        /**
         * @param Payment $payment
         * @return ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        protected function getOrderStatus(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @param $refundableSum
         * @return ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        public function refund(\Bitrix\Sale\Payment $payment, $refundableSum)
        {
        }
        /**
         * @param $url
         * @param array $params
         * @param array $headers
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function send($url, array $params = array(), array $headers = array())
        {
        }
        /**
         * @param Payment $payment
         * @return bool
         */
        protected function isTestMode(\Bitrix\Sale\Payment $payment = null)
        {
        }
        /**
         * @return mixed
         */
        protected function getUrlList()
        {
        }
        /**
         * @param Payment $payment
         * @return array
         */
        protected function getMerchantParams(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @param int $attempt
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        protected function getRegisterOrderParams(\Bitrix\Sale\Payment $payment, $attempt)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getSuccessUrl(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getFailUrl(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        protected function getOrderDescription(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param array $data
         * @return mixed
         * @throws Main\ArgumentException
         */
        private static function encode(array $data)
        {
        }
        /**
         * @param string $data
         * @return mixed
         */
        private static function decode($data)
        {
        }
    }
    class WebMoneyHandler extends \Bitrix\Sale\PaySystem\ServiceHandler
    {
        /**
         * @return array
         */
        public static function getIndicativeFields()
        {
        }
        /**
         * @param Request $request
         * @param $paySystemId
         * @return bool
         */
        protected static function isMyResponseExtended(\Bitrix\Main\Request $request, $paySystemId)
        {
        }
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Request $request
         * @return array
         */
        public function getPaymentIdFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed
         */
        protected function isTestMode(\Bitrix\Sale\Payment $payment = null)
        {
        }
        /**
         * @return array
         */
        protected function getUrlList()
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return bool
         */
        protected function checkSum(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return bool
         */
        protected function checkHash(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        /**
         * @param ServiceResult $result
         * @param Request $request
         * @return mixed
         */
        public function sendResponse(\Bitrix\Sale\PaySystem\ServiceResult $result, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getSuccessUrl(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getFailUrl(\Bitrix\Sale\Payment $payment)
        {
        }
    }
    /**
     * Class PayMasterHandler
     * @package Sale\Handlers\PaySystem
     */
    class PayMasterHandler extends \Sale\Handlers\PaySystem\WebMoneyHandler
    {
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public static function getIndicativeFields()
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @return array
         */
        protected function getUrlList()
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return bool
         */
        protected function checkHash(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param PaySystem\ServiceResult $result
         * @param Request $request
         * @return mixed
         */
        public function sendResponse(\Bitrix\Sale\PaySystem\ServiceResult $result, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getSuccessUrl(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getFailUrl(\Bitrix\Sale\Payment $payment)
        {
        }
    }
    /**
     * Class BillByHandler
     * @package Sale\Handlers\PaySystem
     */
    class BillByHandler extends \Sale\Handlers\PaySystem\BillHandler
    {
        /**
         * @return array
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectException
         */
        public function getDemoParams()
        {
        }
    }
    /**
     * Class BillUaHandler
     * @package Sale\Handlers\PaySystem
     */
    class BillUaHandler extends \Sale\Handlers\PaySystem\BillHandler
    {
        /**
         * @return array
         */
        public function getDemoParams()
        {
        }
    }
    /**
     * Class PayPalHandler
     * @package Sale\Handlers\PaySystem
     */
    class PayPalHandler extends \Bitrix\Sale\PaySystem\ServiceHandler implements \Bitrix\Sale\PaySystem\IPrePayable
    {
        const DELIMITER_PAYMENT_ID = ':';
        private $prePaymentSetting = array();
        /**
         * @return array
         */
        public static function getIndicativeFields()
        {
        }
        /**
         * @param Request $request
         * @param $paySystemId
         * @return bool
         */
        protected static function isMyResponseExtended(\Bitrix\Main\Request $request, $paySystemId)
        {
        }
        /**
         * @param Request $request
         * @return mixed
         */
        private static function getRegistryType(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @param $lines
         * @return PaySystem\ServiceResult
         */
        protected function processSuccessAction(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request, $lines)
        {
        }
        /**
         * @param Request $request
         * @param Payment $payment
         * @return PaySystem\ServiceResult
         */
        protected function processVerifiedAction(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return string
         */
        protected function getPdtRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Request $request
         * @return string
         */
        protected function getIpnRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @return array
         */
        protected function getUrlList()
        {
        }
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @param Payment $payment
         * @return array
         */
        public function getParamsBusValue(\Bitrix\Sale\Payment $payment = null)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        /**
         * @param Request $request
         * @return mixed
         */
        public function getPaymentIdFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @return bool
         */
        protected function isTestMode(\Bitrix\Sale\Payment $payment = null)
        {
        }
        /**
         * @param PaySystem\ServiceResult $result
         * @param Request $request
         * @return mixed
         */
        public function sendResponse(\Bitrix\Sale\PaySystem\ServiceResult $result, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return bool
         */
        public function initPrePayment(\Bitrix\Sale\Payment $payment = null, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param $data
         * @return array
         */
        protected function parsePrePaymentResult($data)
        {
        }
        /**
         * @return array
         */
        public function getProps()
        {
        }
        /**
         * @param array $orderData
         */
        public function payOrder($orderData = array())
        {
        }
        /**
         * @param array $orderData
         * @return bool|string
         */
        public function BasketButtonAction($orderData = array())
        {
        }
        /**
         * @param array $orderData
         */
        public function setOrderConfig($orderData = array())
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getReturnUrl(\Bitrix\Sale\Payment $payment)
        {
        }
    }
    /**
     * Class YandexHandler
     * @package Sale\Handlers\PaySystem
     */
    class YandexHandler extends \Bitrix\Sale\PaySystem\ServiceHandler implements \Bitrix\Sale\PaySystem\IRefundExtended, \Bitrix\Sale\PaySystem\IHold
    {
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public static function getIndicativeFields()
        {
        }
        /**
         * @param Request $request
         * @param $paySystemId
         * @return bool
         */
        protected static function isMyResponseExtended(\Bitrix\Main\Request $request, $paySystemId)
        {
        }
        /**
         * @param Payment $payment
         * @param int $refundableSum
         * @return PaySystem\ServiceResult
         */
        public function refund(\Bitrix\Sale\Payment $payment, $refundableSum)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ObjectException
         */
        private function isCorrectHash(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ObjectException
         */
        private function isCorrectSum(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param PaySystem\ServiceResult $result
         * @param Request $request
         * @return mixed
         */
        public function sendResponse(\Bitrix\Sale\PaySystem\ServiceResult $result, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Request $request
         * @return mixed
         */
        public function getPaymentIdFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         */
        private function processCheckAction(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Request $request
         * @return array
         */
        private function extractDataFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         */
        private function processNoticeAction(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         */
        private function processCancelAction(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @return mixed
         */
        protected function getUrlList()
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @return bool
         */
        protected function isTestMode(\Bitrix\Sale\Payment $payment = null)
        {
        }
        /**
         * @param Payment $payment
         * @return PaySystem\ServiceResult
         */
        public function confirm(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return PaySystem\ServiceResult
         */
        public function cancel(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param $operation
         * @param $requestString
         * @return \CDataXMLNode
         */
        private function parseXmlResponse($operation, $requestString)
        {
        }
        /**
         * @param Payment $payment
         * @param $xml
         * @return PaySystem\ServiceResult
         * @throws \Bitrix\Main\ArgumentNullException
         */
        private function signRequest(\Bitrix\Sale\Payment $payment, $xml)
        {
        }
        /**
         * @param null $data
         * @return mixed
         */
        private static function createTmpFile($data = null)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        /**
         * @return array
         */
        public static function getHandlerModeList()
        {
        }
        /**
         * @return bool
         */
        public function isRefundableExtended()
        {
        }
        /**
         * @return bool
         */
        public function isTuned()
        {
        }
        /**
         * @param array $paySystemList
         * @return array
         */
        public static function findMyDataRefundablePage(array $paySystemList)
        {
        }
    }
    class AuthorizeHandler extends \Bitrix\Sale\PaySystem\BaseServiceHandler
    {
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return ServiceResult
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        /**
         * @return array
         */
        protected function getUrlList()
        {
        }
    }
    /**
     * Class OrderDocumentHandler
     * @package Sale\Handlers\PaySystem
     */
    class OrderDocumentHandler extends \Bitrix\Sale\PaySystem\BaseServiceHandler implements \Bitrix\Sale\PaySystem\IDocumentGeneratePdf
    {
        /**
         * @return string
         */
        protected static function getDataProviderClass()
        {
        }
        /**
         * @param Sale\Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentTypeException
         * @throws Main\LoaderException
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        /**
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getHandlerModeList()
        {
        }
        /**
         * @param Payment $payment
         * @param $params
         * @return PaySystem\ServiceResult|mixed
         * @throws Main\ArgumentException
         * @throws Main\ObjectException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function registerCallbackOnGenerate(\Bitrix\Sale\Payment $payment, $params)
        {
        }
        /**
         * @param Payment $payment
         * @return DocumentGenerator\Document|false|null
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function getDocument(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return string
         * @throws Main\ObjectException
         */
        protected function getFileName(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param $payment
         * @return mixed
         */
        protected function getInvoiceNumber(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return bool|false|mixed|string|null
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function getContent(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return array|bool|false|mixed|null
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function getFile(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return bool|mixed
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function isGenerated(\Bitrix\Sale\Payment $payment)
        {
        }
    }
    /**
     * Class YandexCheckout
     * @package Sale\Handlers\PaySystem
     */
    class YandexCheckoutHandler extends \Bitrix\Sale\PaySystem\ServiceHandler implements \Bitrix\Sale\PaySystem\IRefund, \Bitrix\Sale\PaySystem\IPartialHold, \Bitrix\Sale\PaySystem\Domain\Verification\IVerificationable, \Bitrix\Sale\PaySystem\IRecurring
    {
        const CMS_NAME = 'api_1c-bitrix';
        const PAYMENT_STATUS_WAITING_FOR_CAPTURE = 'waiting_for_capture';
        const PAYMENT_STATUS_SUCCEEDED = 'succeeded';
        const PAYMENT_STATUS_CANCELED = 'canceled';
        const PAYMENT_STATUS_PENDING = 'pending';
        const PAYMENT_METHOD_SMART = '';
        const PAYMENT_METHOD_ALFABANK = 'alfabank';
        const PAYMENT_METHOD_BANK_CARD = 'bank_card';
        const PAYMENT_METHOD_YANDEX_MONEY = 'yandex_money';
        const PAYMENT_METHOD_SBERBANK = 'sberbank';
        const PAYMENT_METHOD_QIWI = 'qiwi';
        const PAYMENT_METHOD_WEBMONEY = 'webmoney';
        const PAYMENT_METHOD_CASH = 'cash';
        const PAYMENT_METHOD_MOBILE_BALANCE = 'mobile_balance';
        const PAYMENT_METHOD_EMBEDDED = 'embedded';
        const PAYMENT_METHOD_TINKOFF_BANK = 'tinkoff_bank';
        const MODE_SMART = '';
        const MODE_ALFABANK = 'alfabank';
        const MODE_BANK_CARD = 'bank_card';
        const MODE_YANDEX_MONEY = 'yandex_money';
        const MODE_SBERBANK = 'sberbank';
        const MODE_SBERBANK_SMS = 'sberbank_sms';
        const MODE_QIWI = 'qiwi';
        const MODE_WEBMONEY = 'webmoney';
        const MODE_CASH = 'cash';
        const MODE_MOBILE_BALANCE = 'mobile_balance';
        const MODE_EMBEDDED = 'embedded';
        const MODE_TINKOFF_BANK = 'tinkoff_bank';
        const URL = 'https://payment.yandex.net/api/v3';
        const AUTH_TYPE = 'yandex';
        private const CALLBACK_IP_LIST = ['185.71.76.0/27', '185.71.77.0/27', '77.75.153.0/25', '77.75.154.128/25'];
        private const CONFIRMATION_TYPE_REDIRECT = "redirect";
        private const CONFIRMATION_TYPE_EXTERNAL = "external";
        private const CONFIRMATION_TYPE_EMBEDDED = "embedded";
        private const SEND_METHOD_HTTP_POST = "POST";
        private const SEND_METHOD_HTTP_GET = "GET";
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @param array $additionalParams
         * @return bool
         */
        protected function needCreateYandexPayment(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request, $additionalParams = []) : bool
        {
        }
        /**
         * @param Payment $payment
         * @param $template
         * @param array $additionalParams
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function getTemplateParams(\Bitrix\Sale\Payment $payment, $template, $additionalParams = []) : array
        {
        }
        /**
         * @param Request $request
         * @param array $additionalParams
         * @return string
         */
        protected function getTemplateName(\Bitrix\Main\Request $request, $additionalParams = []) : string
        {
        }
        /**
         * @return bool
         */
        private function isSetExternalPaymentType() : bool
        {
        }
        /**
         * @return bool
         */
        private function isSetEmbeddedPaymentType() : bool
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @param bool $isRepeated
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws Main\SystemException
         */
        private function createYandexPayment(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request, bool $isRepeated = false) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param $response
         * @return PaySystem\ServiceResult
         */
        private function verifyYandexPayment($response) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @return string
         */
        private function getIdempotenceKey() : string
        {
        }
        /**
         * @param $method
         * @param $url
         * @param array $headers
         * @param array $params
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function send($method, $url, array $headers, array $params = array()) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\SystemException
         */
        private function getYandexBasePaymentQueryParams(\Bitrix\Sale\Payment $payment) : array
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\SystemException
         */
        protected function getYandexPaymentQueryParams(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\SystemException
         */
        private function getYandexRepeatedPaymentQueryParams(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request) : array
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getReturnUrl(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function getPaymentDescription(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return string|null
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getPhoneNumber(\Bitrix\Sale\Payment $payment) : ?string
        {
        }
        /**
         * @param Payment $payment
         * @return string
         */
        private function getBasicAuthString(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param array $data
         * @return mixed
         * @throws Main\ArgumentException
         */
        private static function encode(array $data)
        {
        }
        /**
         * @param string $data
         * @return mixed
         */
        private static function decode($data)
        {
        }
        /**
         * @return array|string[]
         */
        public function getCurrencyList()
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         * @throws Main\ObjectException
         * @throws \Exception
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param array $paymentData
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function isSumCorrect(\Bitrix\Sale\Payment $payment, array $paymentData)
        {
        }
        /**
         * @param Payment $payment
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function getYandexPayment(\Bitrix\Sale\Payment $payment) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function getYandexSettings(\Bitrix\Sale\Payment $payment) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function checkYandexSettings(\Bitrix\Sale\Payment $payment) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @param $refundableSum
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentNullException
         * @throws \Exception
         */
        public function refund(\Bitrix\Sale\Payment $payment, $refundableSum)
        {
        }
        /**
         * @param Payment $payment
         * @return PaySystem\ServiceResult
         * @throws \Exception
         */
        public function cancel(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @param int $sum
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        public function confirm(\Bitrix\Sale\Payment $payment, $sum = 0)
        {
        }
        /**
         * @param Payment $payment
         * @return array
         */
        private function getHeaders(\Bitrix\Sale\Payment $payment) : array
        {
        }
        /**
         * @param Payment $payment
         * @return string
         * @throws Main\LoaderException
         * @throws Main\SystemException
         */
        private function getAuthorizationHeader(\Bitrix\Sale\Payment $payment) : string
        {
        }
        /**
         * @param $authType
         * @return mixed|null
         * @throws Main\LoaderException
         * @throws Main\SystemException
         */
        private function getYandexToken($authType)
        {
        }
        /**
         * @param Payment $payment
         * @param $refundableSum
         * @return array
         * @throws Main\ArgumentNullException
         */
        private function getRefundQueryParams(\Bitrix\Sale\Payment $payment, $refundableSum)
        {
        }
        /**
         * @param Request $request
         * @return mixed
         */
        public function getPaymentIdFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @return array
         */
        public static function getHandlerModeList()
        {
        }
        /**
         * @param $psMode
         * @return mixed
         */
        protected function getYandexHandlerType($psMode)
        {
        }
        /**
         * @return array
         */
        protected function getUrlList()
        {
        }
        /**
         * @param Request $request
         * @param int $paySystemId
         * @return bool
         */
        public static function isMyResponse(\Bitrix\Main\Request $request, $paySystemId)
        {
        }
        /**
         * @return bool|string
         */
        private static function readFromStream()
        {
        }
        /**
         * @param Payment $payment
         * @param string $action
         * @return string
         */
        protected function getUrl(\Bitrix\Sale\Payment $payment = null, $action)
        {
        }
        /**
         * @return array
         */
        private function getPaymentMethodFields() : array
        {
        }
        /**
         * @param Request $request
         * @return bool
         */
        private function isFillPaymentMethodFields(\Bitrix\Main\Request $request) : bool
        {
        }
        /**
         * @param $field
         * @return bool
         */
        private function isPhone($field) : bool
        {
        }
        /**
         * @return array
         */
        private function getPhoneFields() : array
        {
        }
        /**
         * @param $number
         * @return bool|string|string[]|null
         */
        private function normalizePhone($number)
        {
        }
        /**
         * @return bool
         */
        private function hasPaymentMethodFields() : bool
        {
        }
        /**
         * @inheritDoc
         */
        public static function getModeList() : array
        {
        }
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws Main\SystemException
         */
        public function repeatRecurrent(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         */
        public function cancelRecurrent(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @return bool
         */
        public function isRecurring(\Bitrix\Sale\Payment $payment) : bool
        {
        }
        /**
         * @return PaySystem\ServiceResult
         */
        private function checkIpAddress() : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        private static function isOAuth() : bool
        {
        }
    }
    /**
     * Class WooppayHandler
     * @package Sale\Handlers\PaySystem
     */
    class WooppayHandler extends \Bitrix\Sale\PaySystem\ServiceHandler implements \Bitrix\Sale\PaySystem\IRefund
    {
        private const API_VERSION_V1 = 'v1';
        private const MODE_CHECKOUT = 'checkout';
        private const SEND_METHOD_GET = 'get';
        private const SEND_METHOD_POST = 'post';
        private const HTTP_CODE_OK = 200;
        private const HTTP_CODE_UNAUTHORIZED = 401;
        private const HTTP_CODE_UNPROCESSABLE_ENTITY = 422;
        private const HTTP_CODE_INTERNAL_SERVER_ERROR = 500;
        private const BITRIX_LABEL = 'wp_bitrix';
        private const REQUEST_PAY_SYSTEM_ID_PARAM = 'paySystemId';
        private const REQUEST_PAYMENT_ID_PARAM = 'paymentId';
        private const REQUEST_SOURCE_PARAM = 'source';
        private const HISTORY_STATUS_PAID = 14;
        private const INVOICE_ID_DELIMITER = '#';
        private const REFERENCE_ID_DELIMITER = '_';
        /**
         * @return array
         */
        public static function getHandlerModeList() : array
        {
        }
        /**
         * @return bool
         */
        private function isCheckoutMode() : bool
        {
        }
        /**
         * @param Sale\Payment $payment
         * @param Main\Request|null $request
         * @return Sale\PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Sale\Payment $payment
         * @return array
         * @throws Main\ArgumentNullException
         */
        private function getTemplateParams(\Bitrix\Sale\Payment $payment) : array
        {
        }
        /**
         * @return string
         */
        private function getTemplateName() : string
        {
        }
        /**
         * @param Sale\Payment $payment
         * @return Sale\PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function auth(\Bitrix\Sale\Payment $payment) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Sale\Payment $payment
         * @param string $token
         * @return Sale\PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function createInvoice(\Bitrix\Sale\Payment $payment, string $token) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Sale\Payment $payment
         * @return string
         */
        private function getReferenceId(\Bitrix\Sale\Payment $payment) : string
        {
        }
        /**
         * @param Sale\Payment $payment
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function getPaymentDescription(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Sale\Payment $payment
         * @return string
         */
        private function getRequestUrl(\Bitrix\Sale\Payment $payment) : string
        {
        }
        /**
         * @param Sale\Payment $payment
         * @return mixed|string
         */
        private function getBackUrl(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @todo use business value in future
         *
         * @param Sale\Payment $payment
         * @return string|null
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getPhoneNumber(\Bitrix\Sale\Payment $payment) : ?string
        {
        }
        /**
         * @param $phoneNumber
         * @return string|string[]|null
         */
        private function normalizePhone($phoneNumber)
        {
        }
        /**
         * @param string $method
         * @param string $url
         * @param array $headers
         * @param array $params
         * @return Sale\PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function send(string $method, string $url, array $headers, array $params = []) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param string $response
         * @param int $httpStatus
         * @return Sale\PaySystem\ServiceResult
         */
        private function verifyResponse(string $response, int $httpStatus) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @return string[]
         */
        private function getHeaders() : array
        {
        }
        /**
         * @param Sale\Payment|null $payment
         * @return bool
         */
        protected function isTestMode(\Bitrix\Sale\Payment $payment = null) : bool
        {
        }
        /**
         * @return array
         */
        protected function getUrlList() : array
        {
        }
        /**
         * @param Sale\Payment|null $payment
         * @param string $action
         * @return string
         */
        protected function getUrl(\Bitrix\Sale\Payment $payment = null, $action) : string
        {
        }
        /**
         * @return array|string[]
         */
        public function getCurrencyList() : array
        {
        }
        /**
         * @return array
         */
        public static function getIndicativeFields() : array
        {
        }
        /**
         * @param Sale\Payment $payment
         * @param $refundableSum
         * @return Sale\PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        public function refund(\Bitrix\Sale\Payment $payment, $refundableSum) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param string $agent
         * @return bool
         */
        private function isMobileAgent(string $agent) : bool
        {
        }
        /**
         * @param Sale\Payment $payment
         * @param Main\Request $request
         * @return Sale\PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Sale\Payment $payment
         * @param string $token
         * @return Sale\PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function getInvoiceHistory(\Bitrix\Sale\Payment $payment, string $token) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Sale\Payment $payment
         * @param string $token
         * @return Sale\PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function getInvoiceHistoryReceipt(\Bitrix\Sale\Payment $payment, string $token) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Sale\Payment $payment
         * @param $sum
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function isSumCorrect(\Bitrix\Sale\Payment $payment, $sum) : bool
        {
        }
        /**
         * @param Main\Request $request
         * @return array|mixed|string|null
         */
        public function getPaymentIdFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Sale\Payment $payment
         * @return string|null
         */
        private function getOperationId(\Bitrix\Sale\Payment $payment) : ?string
        {
        }
        /**
         * @param array $data
         * @return mixed
         * @throws Main\ArgumentException
         */
        private static function encode(array $data)
        {
        }
        /**
         * @param $data
         * @return false|mixed
         */
        private static function decode($data)
        {
        }
        /**
         * @param Sale\PaySystem\ServiceResult $result
         * @param Main\Request $request
         * @return mixed|string|void
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        public function sendResponse(\Bitrix\Sale\PaySystem\ServiceResult $result, \Bitrix\Main\Request $request)
        {
        }
    }
    /**
     * Class InvoiceDocumentHandler
     * @package Sale\Handlers\PaySystem
     */
    class InvoiceDocumentHandler extends \Sale\Handlers\PaySystem\OrderDocumentHandler
    {
        /**
         * @return string
         */
        protected static function getDataProviderClass()
        {
        }
        /**
         * @param $payment
         * @return mixed
         */
        protected function getInvoiceNumber(\Bitrix\Sale\Payment $payment)
        {
        }
    }
    /**
     * Class BePaidHandler
     * @package Sale\Handlers\PaySystem
     */
    class BePaidHandler extends \Bitrix\Sale\PaySystem\ServiceHandler implements \Bitrix\Sale\PaySystem\IRefund
    {
        private const MODE_CHECKOUT = 'checkout';
        private const MODE_WIDGET = 'widget';
        private const CHECKOUT_API_URL = 'https://checkout.bepaid.by';
        private const GATEWAY_API_URL = 'https://gateway.bepaid.by';
        private const API_VERSION = '2.1';
        private const TRACKING_ID_DELIMITER = '#';
        private const STATUS_SUCCESSFUL_CODE = 'successful';
        private const STATUS_ERROR_CODE = 'error';
        private const SEND_METHOD_HTTP_POST = "POST";
        private const SEND_METHOD_HTTP_GET = "GET";
        /**
         * @return array
         */
        public static function getHandlerModeList() : array
        {
        }
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @return string
         */
        private function getTemplateName() : string
        {
        }
        /**
         * @param Payment $payment
         * @param array $paymentTokenData
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getTemplateParams(\Bitrix\Sale\Payment $payment, array $paymentTokenData) : array
        {
        }
        /**
         * @param Payment $payment
         * @return ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function createPaymentToken(\Bitrix\Sale\Payment $payment) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @return ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function getBePaidPayment(\Bitrix\Sale\Payment $payment) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @param $refundableSum
         * @return ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        public function refund(\Bitrix\Sale\Payment $payment, $refundableSum) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param string $method
         * @param string $url
         * @param array $params
         * @param array $headers
         * @return ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function send(string $method, string $url, array $params = [], array $headers = []) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param array $response
         * @return ServiceResult
         */
        private function verifyResponse(array $response) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @return array|string[]
         */
        public function getCurrencyList() : array
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request) : \Bitrix\Sale\PaySystem\ServiceResult
        {
        }
        /**
         * @param Payment $payment
         * @param $sum
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function isSumCorrect(\Bitrix\Sale\Payment $payment, $sum) : bool
        {
        }
        /**
         * @param Request $request
         * @param int $paySystemId
         * @return bool
         */
        public static function isMyResponse(\Bitrix\Main\Request $request, $paySystemId) : bool
        {
        }
        /**
         * @param Request $request
         * @return bool|int|mixed
         */
        public function getPaymentIdFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getPaymentDescription(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getSuccessUrl(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getDeclineUrl(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getFailUrl(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getCancelUrl(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return array
         */
        private function getHeaders(\Bitrix\Sale\Payment $payment) : array
        {
        }
        /**
         * @param Payment $payment
         * @return string
         */
        private function getBasicAuthString(\Bitrix\Sale\Payment $payment) : string
        {
        }
        /**
         * @return bool
         */
        private function isWidgetMode() : bool
        {
        }
        /**
         * @return bool
         */
        private function isCheckoutMode() : bool
        {
        }
        /**
         * @return string
         */
        private function getIdempotenceKey() : string
        {
        }
        /**
         * @param Payment $payment
         * @param string $action
         * @return string
         */
        protected function getUrl(\Bitrix\Sale\Payment $payment = null, $action) : string
        {
        }
        /**
         * @return array
         */
        protected function getUrlList() : array
        {
        }
        /**
         * @param Payment $payment
         * @return bool
         */
        protected function isTestMode(\Bitrix\Sale\Payment $payment = null) : bool
        {
        }
        /**
         * @return bool|string
         */
        private static function readFromStream()
        {
        }
        /**
         * @param array $data
         * @return mixed
         * @throws Main\ArgumentException
         */
        private static function encode(array $data)
        {
        }
        /**
         * @param string $data
         * @return mixed
         */
        private static function decode($data)
        {
        }
    }
    /**
     * Class UaPayHandler
     * @package Sale\Handlers\PaySystem
     */
    class UaPayHandler extends \Bitrix\Sale\PaySystem\ServiceHandler implements \Bitrix\Sale\PaySystem\IRefund
    {
        const PAYMENT_STATUS_FINISHED = "FINISHED";
        const INVOICE_ID_DELIMITER = "#";
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @param Payment $payment
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function createSession(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectException
         */
        private function createInvoice(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getRedirectUrl(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @param $refundableSum
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        public function refund(\Bitrix\Sale\Payment $payment, $refundableSum)
        {
        }
        /**
         * @param Payment $payment
         * @param $url
         * @param array $params
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function send(\Bitrix\Sale\Payment $payment, $url, array $params)
        {
        }
        /**
         * @param Payment $payment
         * @param $response
         * @return PaySystem\ServiceResult
         */
        private function validationResponse(\Bitrix\Sale\Payment $payment, $response)
        {
        }
        /**
         * @return array
         */
        private function getHeaders()
        {
        }
        /**
         * @param $token
         * @return mixed|null
         */
        private static function getPayload($token)
        {
        }
        /**
         * @param $token
         * @param Payment $payment
         * @return bool
         */
        private function isTokenCorrect($token, \Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @param array $payload
         * @return string
         * @throws Main\ArgumentException
         */
        private function getJwt(\Bitrix\Sale\Payment $payment, array $payload)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param $amount
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ArgumentTypeException
         * @throws Main\ObjectException
         */
        private function isSumCorrect(\Bitrix\Sale\Payment $payment, $amount)
        {
        }
        /**
         * @param Request $request
         * @param int $paySystemId
         * @return bool
         */
        public static function isMyResponse(\Bitrix\Main\Request $request, $paySystemId)
        {
        }
        /**
         * @param Request $request
         * @return mixed
         */
        public function getPaymentIdFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @return array
         */
        protected function getUrlList()
        {
        }
        /**
         * @param Payment $payment
         * @return bool
         */
        protected function isTestMode(\Bitrix\Sale\Payment $payment = null)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\NotImplementedException
         */
        private function getPaymentDescription(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param array $data
         * @return mixed
         * @throws Main\ArgumentException
         */
        private static function encode(array $data)
        {
        }
        /**
         * @param string $data
         * @return mixed
         */
        private static function decode($data)
        {
        }
        /**
         * @param $input
         * @return bool|string
         */
        private static function urlSafeBase64Decode($input)
        {
        }
        /**
         * @return bool|string
         */
        private static function readFromStream()
        {
        }
    }
    class QiwiHandler extends \Bitrix\Sale\PaySystem\ServiceHandler implements \Bitrix\Sale\PaySystem\ICheckable
    {
        /**
         * @param Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return string
         */
        private function getPhone(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request) : string
        {
        }
        /**
         * @param $number
         * @return bool|string|string[]|null
         */
        private function normalizePhone($number)
        {
        }
        /**
         * @return array
         */
        public static function getIndicativeFields()
        {
        }
        /**
         * @param Request $request
         * @return mixed
         */
        public function getPaymentIdFromRequest(\Bitrix\Main\Request $request)
        {
        }
        /**
         * @return mixed
         */
        protected function getUrlList()
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         */
        public function processRequest(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @param Request $request
         * @return PaySystem\ServiceResult
         */
        private function processNoticeAction(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @param Payment $payment
         * @return bool
         */
        protected function isTestMode(\Bitrix\Sale\Payment $payment = null)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
        /**
         * @param PaySystem\ServiceResult $result
         * @param Request $request
         * @return mixed
         */
        public function sendResponse(\Bitrix\Sale\PaySystem\ServiceResult $result, \Bitrix\Main\Request $request)
        {
        }
        /**
         * @return bool|null|string
         */
        protected function getAuthHeader()
        {
        }
        /**
         * @param $login
         * @param $password
         * @return bool
         */
        protected function checkAuth($login, $password)
        {
        }
        /**
         * @param $code
         * @return mixed
         */
        protected function getErrorCodeValue($code)
        {
        }
        /**
         * @param Payment $payment
         * @return PaySystem\ServiceResult
         */
        public function check(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getSuccessUrl(\Bitrix\Sale\Payment $payment)
        {
        }
        /**
         * @param Payment $payment
         * @return mixed|string
         */
        private function getFailUrl(\Bitrix\Sale\Payment $payment)
        {
        }
    }
    class SberbankHandler extends \Bitrix\Sale\PaySystem\BaseServiceHandler
    {
        /**
         * @param Sale\Payment $payment
         * @param Request|null $request
         * @return PaySystem\ServiceResult
         */
        public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
        {
        }
        /**
         * @return array
         */
        public function getCurrencyList()
        {
        }
    }
}
namespace Sale\Handlers\Delivery\YandexTaxi {
    /**
     * Class RateCalculator
     * @package Sale\Handlers\Delivery\YandexTaxi
     * @internal
     */
    final class RateCalculator
    {
        private const ERROR_CODE = 'DELIVERY_CALCULATION';
        /** @var Api */
        protected $api;
        /** @var ClaimBuilder */
        protected $claimBuilder;
        /**
         * RateCalculator constructor.
         * @param Api $api
         * @param ClaimBuilder $claimBuilder
         */
        public function __construct(\Sale\Handlers\Delivery\YandexTaxi\Api\Api $api, \Sale\Handlers\Delivery\YandexTaxi\ClaimBuilder\ClaimBuilder $claimBuilder)
        {
        }
        /**
         * @param Shipment $shipment
         * @return CalculationResult
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ObjectNotFoundException
         */
        public function calculateRate(\Bitrix\Sale\Shipment $shipment) : \Bitrix\Sale\Delivery\CalculationResult
        {
        }
        /**
         * @param array $errors
         * @return array
         */
        private function getFormattedErrors(array $errors)
        {
        }
    }
}
namespace Sale\Handlers\Delivery {
    /**
     * Class YandextaxiHandler
     * @package Sale\Handlers\Delivery\YandexTaxi
     */
    final class YandextaxiHandler extends \Bitrix\Sale\Delivery\Services\Taxi\Taxi implements \Bitrix\Sale\Delivery\Services\Crm\ICrmActivityProvider, \Bitrix\Sale\Delivery\Services\Crm\ICrmEstimationMessageProvider
    {
        public const SERVICE_CODE = 'YANDEX_TAXI';
        /** @var RateCalculator */
        private $rateCalculator;
        /** @var Api */
        private $api;
        /** @var ClaimBuilder */
        private $claimBuilder;
        /** @var StatusMapper */
        private $statusMapper;
        /** @var JournalProcessor */
        private $journalProcessor;
        /** @var Installator */
        private $installator;
        /** @var ShipmentDataExtractor */
        private $extractor;
        /** @var Crm\BindingsMaker */
        private $crmBindingsMaker;
        /** @var bool */
        protected static $whetherAdminExtraServicesShow = true;
        /**
         * @inheritdoc
         */
        public function __construct(array $initParams)
        {
        }
        /**
         * @inheritdoc
         */
        public static function getClassTitle()
        {
        }
        /**
         * @inheritdoc
         */
        public static function getClassDescription()
        {
        }
        /**
         * @inheritdoc
         */
        protected function calculateConcrete(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @inheritDoc
         */
        protected function createTaxiExternalRequest(\Bitrix\Sale\Shipment $shipment) : \Bitrix\Sale\Delivery\Services\Taxi\CreationExternalRequestResult
        {
        }
        /**
         * @inheritDoc
         */
        protected function cancelTaxiExternalRequest(string $externalRequestId) : \Bitrix\Sale\Delivery\Services\Taxi\CancellationRequestResult
        {
        }
        /**
         * @inheritDoc
         */
        public function provideCrmActivity(\Bitrix\Crm\Order\Shipment $shipment) : \Bitrix\Sale\Delivery\Services\Crm\Activity
        {
        }
        /**
         * @inheritDoc
         */
        public function provideCrmEstimationMessage(\Bitrix\Crm\Order\Shipment $shipment) : \Bitrix\Sale\Delivery\Services\Crm\EstimationMessage
        {
        }
        /**
         * @param \Bitrix\Crm\Order\Shipment $shipment
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function makeCrmEntitySharedFields(\Bitrix\Crm\Order\Shipment $shipment)
        {
        }
        /**
         * @inheritdoc
         */
        public static function onBeforeAdd(array &$fields = array()) : \Bitrix\Main\Result
        {
        }
        /**
         * @inheritdoc
         */
        public static function onAfterAdd($serviceId, array $fields = [])
        {
        }
        /**
         * @inheritDoc
         */
        public static function onAfterDelete($serviceId)
        {
        }
        /**
         * @return JournalProcessor
         */
        public function getYandexTaxiJournalProcessor() : \Sale\Handlers\Delivery\YandexTaxi\EventJournal\JournalProcessor
        {
        }
        /**
         * @inheritdoc
         */
        protected function getConfigStructure()
        {
        }
        /**
         * @inheritdoc
         */
        public static function isHandlerCompatible()
        {
        }
        /**
         * @inheritDoc
         */
        public static function whetherAdminExtraServicesShow()
        {
        }
    }
}
namespace Sale\Handlers\Delivery\YandexTaxi\ContextDependent {
    /**
     * Interface IListenerRegisterer
     * @package Sale\Handlers\Delivery\YandexTaxi\ContextDependent
     * @internal
     */
    interface IListenerRegisterer
    {
        /**
         * @param YandextaxiHandler $deliveryService
         * @return IListenerRegisterer
         */
        public function registerOnClaimCreated(\Sale\Handlers\Delivery\YandextaxiHandler $deliveryService) : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\IListenerRegisterer;
        /**
         * @param YandextaxiHandler $deliveryService
         * @return IListenerRegisterer
         */
        public function registerOnClaimCancelled(\Sale\Handlers\Delivery\YandextaxiHandler $deliveryService) : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\IListenerRegisterer;
        /**
         * @param YandextaxiHandler $deliveryService
         * @return IListenerRegisterer
         */
        public function registerOnClaimUpdated(\Sale\Handlers\Delivery\YandextaxiHandler $deliveryService) : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\IListenerRegisterer;
        /**
         * @param YandextaxiHandler $deliveryService
         * @return IListenerRegisterer
         */
        public function registerOnNeedContactTo(\Sale\Handlers\Delivery\YandextaxiHandler $deliveryService) : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\IListenerRegisterer;
    }
}
namespace Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Sale {
    /**
     * Class ListenerRegisterer
     * @package Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Sale
     * @internal
     */
    final class ListenerRegisterer implements \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\IListenerRegisterer
    {
        /**
         * @inheritDoc
         */
        public function registerOnClaimCreated(\Sale\Handlers\Delivery\YandextaxiHandler $deliveryService) : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\IListenerRegisterer
        {
        }
        /**
         * @inheritDoc
         */
        public function registerOnClaimCancelled(\Sale\Handlers\Delivery\YandextaxiHandler $deliveryService) : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\IListenerRegisterer
        {
        }
        /**
         * @inheritDoc
         */
        public function registerOnClaimUpdated(\Sale\Handlers\Delivery\YandextaxiHandler $deliveryService) : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\IListenerRegisterer
        {
        }
        /**
         * @inheritDoc
         */
        public function registerOnNeedContactTo(\Sale\Handlers\Delivery\YandextaxiHandler $deliveryService) : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\IListenerRegisterer
        {
        }
    }
}
namespace Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm {
    /**
     * Class ActivityManager
     * @package Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm
     * @internal
     */
    final class ActivityManager
    {
        /** @var BindingsMaker */
        protected $bindingsMaker;
        /**
         * ActivityManager constructor.
         * @param BindingsMaker $bindingsMaker
         */
        public function __construct(\Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\BindingsMaker $bindingsMaker)
        {
        }
        /**
         * @param int $shipmentId
         * @param array $fields
         * @param int|null $requestId
         */
        public function updateActivity(int $shipmentId, array $fields, int $requestId = null)
        {
        }
        /**
         * @param int $shipmentId
         * @param int $requestId
         */
        public function resetActivity(int $shipmentId, int $requestId)
        {
        }
        /**
         * @param int $shipmentId
         * @param int|null $requestId
         */
        public function completeActivity(int $shipmentId, int $requestId = null)
        {
        }
        /**
         * @param int $shipmentId
         * @param int|null $requestId
         * @return array|null
         */
        private function getByShipmentId(int $shipmentId, int $requestId = null)
        {
        }
    }
    /**
     * Class ContactToRequiredListener
     * @package Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm
     * @internal
     */
    final class ContactToRequiredListener
    {
        /**
         * @param Event $event
         */
        public function listen(\Bitrix\Main\Event $event)
        {
        }
    }
    /**
     * Class ClaimCancelledListener
     * @package Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm
     * @internal
     */
    final class ClaimCancelledListener
    {
        /** @var ActivityManager */
        protected $activityManager;
        /** @var ShipmentDataExtractor */
        protected $extractor;
        /** @var BindingsMaker */
        protected $bindingsMaker;
        /**
         * ClaimCancelledListener constructor.
         * @param ActivityManager $activityManager
         * @param ShipmentDataExtractor $extractor
         * @param BindingsMaker $bindingsMaker
         */
        public function __construct(\Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\ActivityManager $activityManager, \Sale\Handlers\Delivery\YandexTaxi\Common\ShipmentDataExtractor $extractor, \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\BindingsMaker $bindingsMaker)
        {
        }
        /**
         * @param Event $event
         */
        public function listen(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param int $shipmentId
         * @param CancellationRequestResult $cancellationResult
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function createCancelledMessage(int $shipmentId, \Bitrix\Sale\Delivery\Services\Taxi\CancellationRequestResult $cancellationResult)
        {
        }
    }
    /**
     * Class ClaimUpdatesListener
     * @package Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm
     * @internal
     */
    final class ClaimUpdatesListener
    {
        /** @var ActivityManager */
        protected $activityManager;
        /** @var StatusMapper */
        protected $statusMapper;
        /** @var Api */
        protected $api;
        /** @var ShipmentDataExtractor */
        protected $extractor;
        /** @var BindingsMaker */
        protected $bindingsMaker;
        /** @var Base */
        protected $deliveryService;
        /**
         * ClaimUpdatesListener constructor.
         * @param ActivityManager $activityManager
         * @param StatusMapper $statusMapper
         * @param Api $api
         * @param ShipmentDataExtractor $extractor
         * @param BindingsMaker $bindingsMaker
         */
        public function __construct(\Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\ActivityManager $activityManager, \Sale\Handlers\Delivery\YandexTaxi\Common\StatusMapper $statusMapper, \Sale\Handlers\Delivery\YandexTaxi\Api\Api $api, \Sale\Handlers\Delivery\YandexTaxi\Common\ShipmentDataExtractor $extractor, \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\BindingsMaker $bindingsMaker)
        {
        }
        /**
         * @param Event $event
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function listen(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Shipment $shipment
         * @param array $performer
         * @param array $claim
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function sendSmsToClient(\Bitrix\Crm\Order\Shipment $shipment, array $performer, array $claim)
        {
        }
        /**
         * @param Order $order
         * @return Company|Contact|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\SystemException
         */
        private function getEntityCommunication(\Bitrix\Crm\Order\Order $order)
        {
        }
        /**
         * @param ContactCompanyEntity $entity
         * @return mixed|string
         * @throws \Bitrix\Main\NotImplementedException
         */
        private function getEntityCommunicationPhone(\Bitrix\Crm\Order\ContactCompanyEntity $entity)
        {
        }
        /**
         * @param array $claim
         * @return array
         */
        private function getPerformer(array $claim)
        {
        }
        /**
         * @param array $request
         * @param array $performer
         */
        private function updateTaxiActivityWithPerformer(array $request, array $performer)
        {
        }
        /**
         * @param string $claimId
         * @return string
         */
        private function getTrackingLink(string $claimId) : string
        {
        }
        /**
         * @return Uri
         */
        private function getSmsProviderSetupLink()
        {
        }
        /**
         * @param array $claim
         * @return string
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        private function getSmsBody(array $claim) : string
        {
        }
        /**
         * @param Base $deliveryService
         * @return ClaimUpdatesListener
         */
        public function setDeliveryService(\Bitrix\Sale\Delivery\Services\Base $deliveryService) : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\ClaimUpdatesListener
        {
        }
    }
    /**
     * Class BindingsMaker
     * @package Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm
     * @internal
     */
    final class BindingsMaker
    {
        /**
         * @param Shipment $shipment
         * @param string $prefix
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\SystemException
         */
        public function makeByShipment(\Bitrix\Crm\Order\Shipment $shipment, string $prefix = 'ENTITY') : array
        {
        }
        /**
         * @param Shipment $shipment
         * @return |null
         * @throws \Bitrix\Main\ArgumentNullException
         */
        private function getDealId(\Bitrix\Crm\Order\Shipment $shipment)
        {
        }
        /**
         * @param Shipment $shipment
         * @return int|null
         */
        private function getOrderId(\Bitrix\Crm\Order\Shipment $shipment)
        {
        }
    }
    /**
     * Class ClaimCreatedListener
     * @package Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm
     * @internal
     */
    final class ClaimCreatedListener
    {
        /** @var ActivityManager */
        protected $activityManager;
        /** @var ShipmentDataExtractor */
        protected $extractor;
        /** @var RateCalculator */
        protected $calculator;
        /** @var BindingsMaker */
        protected $bindingsMaker;
        /**
         * ClaimCreatedListener constructor.
         * @param ActivityManager $activityManager
         * @param ShipmentDataExtractor $extractor
         * @param RateCalculator $calculator
         * @param BindingsMaker $bindingsMaker
         */
        public function __construct(\Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\ActivityManager $activityManager, \Sale\Handlers\Delivery\YandexTaxi\Common\ShipmentDataExtractor $extractor, \Sale\Handlers\Delivery\YandexTaxi\RateCalculator $calculator, \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\BindingsMaker $bindingsMaker)
        {
        }
        /**
         * @param Event $event
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\SystemException
         */
        public function listen(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param Shipment $shipment
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\SystemException
         */
        private function createCallMessage(\Bitrix\Crm\Order\Shipment $shipment)
        {
        }
        /**
         * @param Shipment $shipment
         * @param CreationRequestResult $creationRequestResult
         */
        private function updateActivity(\Bitrix\Crm\Order\Shipment $shipment, \Bitrix\Sale\Delivery\Services\Taxi\CreationRequestResult $creationRequestResult)
        {
        }
    }
    /**
     * Class ListenerRegisterer
     * @package Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm
     * @internal
     */
    final class ListenerRegisterer implements \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\IListenerRegisterer
    {
        /** @var ClaimCreatedListener */
        private $claimCreatedListener;
        /** @var ClaimCancelledListener */
        private $claimCancelledListener;
        /** @var ClaimUpdatesListener */
        private $claimUpdatesListener;
        /** @var ContactToRequiredListener */
        private $contactToRequiredListener;
        /**
         * ListenerRegisterer constructor.
         * @param ClaimCreatedListener $claimCreatedListener
         * @param ClaimCancelledListener $claimCancelledListener
         * @param ClaimUpdatesListener $claimUpdatesListener
         * @param ContactToRequiredListener $needContactToListener
         */
        public function __construct(\Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\ClaimCreatedListener $claimCreatedListener, \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\ClaimCancelledListener $claimCancelledListener, \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\ClaimUpdatesListener $claimUpdatesListener, \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\ContactToRequiredListener $needContactToListener)
        {
        }
        /**
         * @inheritDoc
         */
        public function registerOnClaimCreated(\Sale\Handlers\Delivery\YandextaxiHandler $deliveryService) : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\IListenerRegisterer
        {
        }
        /**
         * @inheritDoc
         */
        public function registerOnClaimCancelled(\Sale\Handlers\Delivery\YandextaxiHandler $deliveryService) : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\IListenerRegisterer
        {
        }
        /**
         * @inheritDoc
         */
        public function registerOnClaimUpdated(\Sale\Handlers\Delivery\YandextaxiHandler $deliveryService) : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\IListenerRegisterer
        {
        }
        /**
         * @inheritDoc
         */
        public function registerOnNeedContactTo(\Sale\Handlers\Delivery\YandextaxiHandler $deliveryService) : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\IListenerRegisterer
        {
        }
    }
}
namespace Sale\Handlers\Delivery\YandexTaxi {
    /**
     * Class ServiceLocator
     * @package Sale\Handlers\Delivery\YandexTaxi
     * @internal
     */
    final class ServiceContainer
    {
        /** @var Api */
        private static $api;
        /** @var OauthTokenProvider */
        private static $oauthTokenProvider;
        /** @var ClaimReader */
        private static $claimReader;
        /** @var EventBuilder */
        private static $eventJournalBuilder;
        /** @var Logger */
        private static $logger;
        /** @var Client */
        private static $transport;
        /** @var JournalProcessor */
        private static $journalProcessor;
        /** @var EventReader */
        private static $eventReader;
        /** @var EventProcessor */
        private static $eventProcessor;
        /** @var RateCalculator */
        private static $rateCalculator;
        /** @var Installator */
        private static $installator;
        /** @var ClaimBuilder */
        private static $claimBuilder;
        /** @var Crm\ListenerRegisterer */
        private static $crmListenerRegisterer;
        /** @var Crm\ClaimCreatedListener */
        private static $crmClaimCreatedListener;
        /** @var Crm\ClaimCancelledListener */
        private static $crmClaimCancelledListener;
        /** @var Crm\ClaimUpdatesListener */
        private static $crmClaimUpdatesListener;
        /** @var Crm\ContactToRequiredListener */
        private static $crmContactToRequiredListener;
        /** @var Crm\ActivityManager */
        private static $crmActivityManager;
        /** @var StatusMapper */
        private static $statusMapper;
        /** @var Sale\ListenerRegisterer */
        private static $saleListenerRegisterer;
        /** @var ShipmentDataExtractor */
        private static $shipmentDataExtractor;
        /** @var Crm\BindingsMaker */
        private static $crmBindingsMaker;
        /**
         * @return Logger
         */
        private static function getLogger() : \Sale\Handlers\Delivery\YandexTaxi\Common\Logger
        {
        }
        /**
         * @return ClaimReader
         */
        private static function getClaimReader() : \Sale\Handlers\Delivery\YandexTaxi\Api\ClaimReader\ClaimReader
        {
        }
        /**
         * @return EventBuilder
         */
        private static function getEventJournalBuilder() : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal\EventBuilder
        {
        }
        /**
         * @return Client
         */
        private static function getTransport() : \Sale\Handlers\Delivery\YandexTaxi\Api\Transport\Client
        {
        }
        /**
         * @return OauthTokenProvider
         */
        public static function getOauthTokenProvider() : \Sale\Handlers\Delivery\YandexTaxi\Api\Transport\OauthTokenProvider
        {
        }
        /**
         * @return Api
         */
        public static function getApi() : \Sale\Handlers\Delivery\YandexTaxi\Api\Api
        {
        }
        /**
         * @return JournalProcessor
         */
        public static function getJournalProcessor() : \Sale\Handlers\Delivery\YandexTaxi\EventJournal\JournalProcessor
        {
        }
        /**
         * @return EventReader
         */
        private static function getEventReader() : \Sale\Handlers\Delivery\YandexTaxi\EventJournal\EventReader
        {
        }
        /**
         * @return EventProcessor
         */
        private static function getEventProcessor() : \Sale\Handlers\Delivery\YandexTaxi\EventJournal\EventProcessor
        {
        }
        /**
         * @return RateCalculator
         */
        public static function getRateCalculator() : \Sale\Handlers\Delivery\YandexTaxi\RateCalculator
        {
        }
        /**
         * @return Installator
         */
        public static function getInstallator() : \Sale\Handlers\Delivery\YandexTaxi\Installator\Installator
        {
        }
        /**
         * @return ClaimBuilder
         */
        public static function getClaimBuilder() : \Sale\Handlers\Delivery\YandexTaxi\ClaimBuilder\ClaimBuilder
        {
        }
        /**
         * @return IListenerRegisterer
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\LoaderException
         */
        public static function getListenerRegisterer() : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\IListenerRegisterer
        {
        }
        /**
         * @return IListenerRegisterer
         */
        private static function getCrmListenerRegisterer() : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\IListenerRegisterer
        {
        }
        /**
         * @return Crm\ClaimCreatedListener
         */
        private static function getCrmClaimCreatedListener() : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\ClaimCreatedListener
        {
        }
        /**
         * @return Crm\ClaimCancelledListener
         */
        private static function getCrmClaimCancelledListener() : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\ClaimCancelledListener
        {
        }
        /**
         * @return Crm\ClaimUpdatesListener
         */
        private static function getCrmClaimUpdatesListener() : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\ClaimUpdatesListener
        {
        }
        /**
         * @return Crm\ContactToRequiredListener
         */
        private static function getCrmContactToRequiredListener() : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\ContactToRequiredListener
        {
        }
        /**
         * @return Crm\ActivityManager
         */
        private static function getCrmClaimActivityManager() : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\ActivityManager
        {
        }
        /**
         * @return StatusMapper
         */
        public static function getStatusMapper() : \Sale\Handlers\Delivery\YandexTaxi\Common\StatusMapper
        {
        }
        /**
         * @return IListenerRegisterer
         */
        private static function getSaleListenerRegisterer() : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\IListenerRegisterer
        {
        }
        /**
         * @return ShipmentDataExtractor
         */
        public static function getShipmentDataExtractor() : \Sale\Handlers\Delivery\YandexTaxi\Common\ShipmentDataExtractor
        {
        }
        /**
         * @return Crm\BindingsMaker
         */
        public static function getCrmBindingsMaker() : \Sale\Handlers\Delivery\YandexTaxi\ContextDependent\Crm\BindingsMaker
        {
        }
    }
}
namespace Sale\Handlers\Delivery\YandexTaxi\Internals {
    /**
     * Class ClaimsTable
     * @package Sale\Handlers\Delivery\YandexTaxi\Internals
     * @internal
     */
    class ClaimsTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * @inheritdoc
         */
        public static function getTableName()
        {
        }
        /**
         * @inheritdoc
         */
        public static function getMap()
        {
        }
    }
}
namespace Sale\Handlers\Delivery\YandexTaxi\Common {
    /**
     * Class Logger
     * @package Sale\Handlers\Delivery\YandexTaxi\Common
     * @internal
     */
    final class Logger
    {
        /**
         * @param string $source
         * @param string $code
         * @param Result|string $messages
         */
        public function log(string $source, string $code, $messages = null)
        {
        }
    }
    /**
     * Class StatusMapper
     * @package Sale\Handlers\Delivery\YandexTaxi\Common
     * @internal
     */
    class StatusMapper
    {
        /**
         * @param string $externalStatus
         * @return string
         */
        public function getMappedStatus(string $externalStatus) : string
        {
        }
    }
    /**
     * Class OrderEntitiesCodeDictionary
     * @package Sale\Handlers\Delivery\YandexTaxi\Common
     * @internal
     */
    class OrderEntitiesCodeDictionary
    {
        public const COMMENT_FOR_DRIVER_PROPERTY_CODE = 'COMMENT_FOR_DRIVER';
        public const DOOR_DELIVERY_EXTRA_SERVICE_CODE = 'DOOR_DELIVERY';
        public const VEHICLE_TYPE_EXTRA_SERVICE_CODE = 'VEHICLE_TYPE';
    }
    /**
     * Class ShipmentDataExtractor
     * @package Sale\Handlers\Delivery\YandexTaxi\Common
     * @internal
     */
    final class ShipmentDataExtractor
    {
        /**
         * @param Shipment $shipment
         * @return string
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function getShortenedAddressFrom(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param Shipment $shipment
         * @return string
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function getShortenedAddressTo(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param Shipment $shipment
         * @return bool|mixed|string|string[]|null
         */
        public function getDeliveryPriceFormatted(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param Shipment $shipment
         * @return float|null
         */
        public function getExpectedDeliveryPrice(\Bitrix\Sale\Shipment $shipment) : ?float
        {
        }
        /**
         * @param Shipment $shipment
         * @return bool|mixed|string|string[]|null
         */
        public function getExpectedDeliveryPriceFormatted(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param Shipment $shipment
         * @return string
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\SystemException
         */
        public function getDeliverySystemName(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param Shipment $shipment
         * @return string
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\SystemException
         */
        public function getDeliverySystemLogo(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param Shipment $shipment
         * @return mixed
         */
        public function getDeliveryMethod(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param Shipment $shipment
         * @return int
         */
        public function getResponsibleUserId(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param Shipment $shipment
         * @return array|null
         */
        public function getResponsibleUser(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param PropertyValueBase $propertyValue
         * @return string
         * @throws \Bitrix\Main\LoaderException
         */
        private function getShortenedAddress($propertyValue) : string
        {
        }
    }
}
namespace Sale\Handlers\Delivery\YandexTaxi\ClaimBuilder {
    /**
     * Class ShippingItemCollection
     * @package Sale\Handlers\Delivery\YandexTaxi\ClaimBuilder
     * @internal
     */
    final class ShippingItemCollection implements \IteratorAggregate
    {
        /** @var ShippingItem[] */
        private $items = [];
        /**
         * @param ShippingItem $item
         * @return $this
         */
        public function addItem(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\ShippingItem $item)
        {
        }
        /**
         * @return Result
         */
        public function isValid() : \Bitrix\Main\Result
        {
        }
        /**
         * @inheritDoc
         */
        public function getIterator()
        {
        }
    }
    /**
     * Class Result
     * @package Sale\Handlers\Delivery\YandexTaxi
     * @internal
     */
    final class Result extends \Bitrix\Main\Result
    {
        /** @var Claim */
        private $claim;
        /**
         * @return Claim
         */
        public function getClaim()
        {
        }
        /**
         * @param Claim $claim
         * @return Result
         */
        public function setClaim(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim $claim) : \Sale\Handlers\Delivery\YandexTaxi\ClaimBuilder\Result
        {
        }
    }
    /**
     * Class ClaimBuilder
     * @package Sale\Handlers\Delivery\YandexTaxi\ClaimBuilder
     * @internal
     */
    final class ClaimBuilder
    {
        public const NEED_CONTACT_TO_EVENT_CODE = 'OnDeliveryYandexTaxiNeedContactTo';
        /** @var ShipmentDataExtractor */
        protected $extractor;
        /** @var Result */
        protected $result;
        /**
         * ClaimBuilder constructor.
         * @param ShipmentDataExtractor $extractor
         */
        public function __construct(\Sale\Handlers\Delivery\YandexTaxi\Common\ShipmentDataExtractor $extractor)
        {
        }
        /**
         * @param Shipment $shipment
         * @return Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ObjectNotFoundException
         */
        public function build(\Bitrix\Sale\Shipment $shipment) : \Bitrix\Main\Result
        {
        }
        /**
         * @param Shipment $shipment
         * @return ShippingItemCollection
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ObjectNotFoundException
         */
        public function getShippingItemCollection(\Bitrix\Sale\Shipment $shipment) : \Sale\Handlers\Delivery\YandexTaxi\ClaimBuilder\ShippingItemCollection
        {
        }
        /**
         * @param Shipment $shipment
         * @return array
         * @throws \Bitrix\Main\SystemException
         */
        private function getExtraServiceValues(\Bitrix\Sale\Shipment $shipment) : array
        {
        }
        /**
         * @param Shipment $shipment
         * @return bool
         * @throws \Bitrix\Main\SystemException
         */
        public function isDoorDeliveryRequired(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param Shipment $shipment
         * @return bool|string
         * @throws \Bitrix\Main\SystemException
         */
        public function getVehicleType(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param Shipment $shipment
         * @return Contact|null
         */
        protected function buildContactFrom(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param array $responsibleUser
         * @return string
         */
        private function getResponsibleUserName(array $responsibleUser)
        {
        }
        /**
         * @param array $responsibleUser
         * @return string|null
         */
        private function getResponsibleUserEmail(array $responsibleUser)
        {
        }
        /**
         * @param array $responsibleUser
         * @return string|null
         */
        private function getResponsibleUserPhone(array $responsibleUser)
        {
        }
        /**
         * @param Shipment $shipment
         * @return Result
         */
        public function buildAddressFrom(\Bitrix\Sale\Shipment $shipment) : \Bitrix\Main\Result
        {
        }
        /**
         * @param Shipment $shipment
         * @return Result
         */
        public function buildAddressTo(\Bitrix\Sale\Shipment $shipment) : \Bitrix\Main\Result
        {
        }
        /**
         * @param Shipment $shipment
         * @param string $propertyCode
         * @return Result
         * @throws \Bitrix\Main\LoaderException
         */
        private function buildAddress(\Bitrix\Sale\Shipment $shipment, string $propertyCode)
        {
        }
        /**
         * @param Shipment $shipment
         * @param string $propertyCode
         * @return array|string|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function getPropertyValue(\Bitrix\Sale\Shipment $shipment, string $propertyCode)
        {
        }
        /**
         * @param Shipment $shipment
         * @param string $propertyCode
         * @return mixed|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function getPropertyName(\Bitrix\Sale\Shipment $shipment, string $propertyCode)
        {
        }
        /**
         * @param Shipment $shipment
         * @param string $propertyCode
         * @return \Bitrix\Sale\PropertyValue|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function getPropertyValueObject(\Bitrix\Sale\Shipment $shipment, string $propertyCode)
        {
        }
    }
}
namespace Sale\Handlers\Delivery\YandexTaxi\Api {
    /**
     * Class StatusDictionary
     * @package Sale\Handlers\Delivery\YandexTaxi\Api
     * @internal
     */
    final class StatusDictionary
    {
        public const NEW = 'new';
        public const FAILED = 'failed';
        public const ESTIMATING = 'estimating';
        public const ESTIMATING_FAILED = 'estimating_failed';
        public const READY_FOR_APPROVAL = 'ready_for_approval';
        public const ACCEPTED = 'accepted';
        public const PERFORMER_LOOKUP = 'performer_lookup';
        public const PERFORMER_DRAFT = 'performer_draft';
        public const PERFORMER_FOUND = 'performer_found';
        public const PERFORMER_NOT_FOUND = 'performer_not_found';
        public const PICKUP_ARRIVED = 'pickup_arrived';
        public const READY_FOR_PICKUP_CONFIRMATION = 'ready_for_pickup_confirmation';
        public const PICKUPED = 'pickuped';
        public const PAY_WAITING = 'pay_waiting';
        public const DELIVERY_ARRIVED = 'delivery_arrived';
        public const READY_FOR_DELIVERY_CONFIRMATION = 'ready_for_delivery_confirmation';
        public const DELIVERED = 'delivered';
        public const RETURNING = 'returning';
        public const RETURN_ARRIVED = 'return_arrived';
        public const READY_FOR_RETURN_CONFIRMATION = 'ready_for_return_confirmation';
        public const RETURNED = 'returned';
        public const RETURNED_FINISH = 'returned_finish';
        public const CANCELLED = 'cancelled';
        public const CANCELLED_WITH_PAYMENT = 'cancelled_with_payment';
        public const CANCELLED_BY_TAXI = 'cancelled_by_taxi';
        public const CANCELLED_WITH_ITEMS_ON_HANDS = 'cancelled_with_items_on_hands';
        public const DELIVERED_FINISH = 'delivered_finish';
    }
}
namespace Sale\Handlers\Delivery\YandexTaxi\Api\Transport {
    /**
     * Class OauthTokenProvider
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\Transport
     * @internal
     */
    final class OauthTokenProvider
    {
        /** @var string */
        private $token;
        /**
         * @param string $token
         * @return OauthTokenProvider
         */
        public function setToken(string $token) : \Sale\Handlers\Delivery\YandexTaxi\Api\Transport\OauthTokenProvider
        {
        }
        /**
         * @return string|null
         */
        public function getToken()
        {
        }
    }
    /**
     * Class Response
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\Transport
     * @internal
     */
    final class Response
    {
        /** @var int */
        private $status;
        /** @var array */
        private $body;
        /**
         * Response constructor.
         * @param int $status
         * @param array $body
         */
        public function __construct(int $status, array $body)
        {
        }
        /**
         * @return int
         */
        public function getStatus() : int
        {
        }
        /**
         * @return array
         */
        public function getBody() : array
        {
        }
    }
    /**
     * Class RequestException
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\Transport
     * @internal
     */
    final class Exception extends \Bitrix\Main\SystemException
    {
    }
    /**
     * Class Client
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\Transport
     * @internal
     */
    final class Client
    {
        private const LOG_SOURCE = 'transport';
        /** @var OauthTokenProvider */
        private $oauthTokenProvider;
        /** @var Logger */
        private $logger;
        /** @var int */
        private $socketTimeOut = 30;
        /** @var int */
        private $streamTimeOut = 30;
        /** @var bool */
        private $isTestEnvironment = false;
        /** @var int */
        private $apiVersion = 1;
        /**
         * Client constructor.
         * @param OauthTokenProvider $oauthTokenProvider
         * @param Logger $logger
         */
        public function __construct(\Sale\Handlers\Delivery\YandexTaxi\Api\Transport\OauthTokenProvider $oauthTokenProvider, \Sale\Handlers\Delivery\YandexTaxi\Common\Logger $logger)
        {
        }
        /**
         * @param string $uri
         * @param array $body
         * @param array $options
         * @return Response
         * @throws Exception
         * @throws \Bitrix\Main\ArgumentException
         */
        public function post(string $uri, $body = [], $options = [])
        {
        }
        /**
         * @param string $uri
         * @param array $options
         * @return Response
         * @throws Exception
         * @throws \Bitrix\Main\ArgumentException
         */
        public function get(string $uri, $options = [])
        {
        }
        /**
         * @param string $method
         * @param string $uri
         * @param null $body
         * @param array $options
         * @return Response
         * @throws Exception
         * @throws \Bitrix\Main\ArgumentException
         */
        private function request(string $method, string $uri, $body = null, $options = [])
        {
        }
        /**
         * @return HttpClient
         */
        private function makeHttpClient() : \Bitrix\Main\Web\HttpClient
        {
        }
        /**
         * @param array $options
         * @return string
         */
        private function getBase($options = []) : string
        {
        }
        /**
         * @param bool $isTestEnvironment
         * @return Client
         */
        public function setIsTestEnvironment(bool $isTestEnvironment) : \Sale\Handlers\Delivery\YandexTaxi\Api\Transport\Client
        {
        }
        /**
         * @param int $apiVersion
         * @return Client
         */
        public function setApiVersion(int $apiVersion) : \Sale\Handlers\Delivery\YandexTaxi\Api\Transport\Client
        {
        }
        /**
         * @param int $socketTimeOut
         * @return Client
         */
        public function setSocketTimeOut(int $socketTimeOut) : \Sale\Handlers\Delivery\YandexTaxi\Api\Transport\Client
        {
        }
        /**
         * @param int $streamTimeOut
         * @return Client
         */
        public function setStreamTimeOut(int $streamTimeOut) : \Sale\Handlers\Delivery\YandexTaxi\Api\Transport\Client
        {
        }
        /**
         * @return OauthTokenProvider
         */
        public function getOauthTokenProvider() : \Sale\Handlers\Delivery\YandexTaxi\Api\Transport\OauthTokenProvider
        {
        }
    }
}
namespace Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity {
    /**
     * Class Base
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity
     * @internal
     */
    abstract class RequestEntity implements \JsonSerializable
    {
        /**
         * @return array
         */
        public function jsonSerialize()
        {
        }
        /**
         * @param string $name
         * @return string
         */
        protected function castToUnderscore(string $name)
        {
        }
    }
    /**
     * Class SearchOptions
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity
     * @internal
     */
    final class SearchOptions extends \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RequestEntity
    {
        /** @var int */
        protected $offset = 0;
        /** @var int */
        protected $limit = 100;
        /**
         * @return int
         */
        public function getOffset() : int
        {
        }
        /**
         * @param int $offset
         * @return SearchOptions
         */
        public function setOffset(int $offset) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\SearchOptions
        {
        }
        /**
         * @return int
         */
        public function getLimit() : int
        {
        }
        /**
         * @param int $limit
         * @return SearchOptions
         */
        public function setLimit(int $limit) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\SearchOptions
        {
        }
    }
    /**
     * Class Warning
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity
     * @internal
     */
    final class Warning extends \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RequestEntity
    {
        /** @var  string */
        protected $source;
        /** @var  string */
        protected $code;
        /** @var string */
        protected $message;
        /**
         * @return string
         */
        public function getSource()
        {
        }
        /**
         * @param string $source
         * @return Warning
         */
        public function setSource(string $source) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Warning
        {
        }
        /**
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * @param string $code
         * @return Warning
         */
        public function setCode(string $code) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Warning
        {
        }
        /**
         * @return string
         */
        public function getMessage()
        {
        }
        /**
         * @param string $message
         * @return Warning
         */
        public function setMessage(string $message) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Warning
        {
        }
    }
    /**
     * Class ErrorMessage
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity
     * @internal
     */
    final class ErrorMessage extends \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RequestEntity
    {
        /** @var  string */
        protected $code;
        /** @var string */
        protected $message;
        /**
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * @param string $code
         * @return ErrorMessage
         */
        public function setCode(string $code) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\ErrorMessage
        {
        }
        /**
         * @return string
         */
        public function getMessage()
        {
        }
        /**
         * @param string $message
         * @return ErrorMessage
         */
        public function setMessage(string $message) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\ErrorMessage
        {
        }
    }
    /**
     * Class TransportClassification
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity
     * @internal
     */
    final class TransportClassification extends \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RequestEntity
    {
        /** @var string */
        protected $taxiClass;
        /** @var string */
        protected $cargoType;
        /** @var int */
        protected $cargoLoaders;
        /**
         * @return string
         */
        public function getTaxiClass()
        {
        }
        /**
         * @param string $taxiClass
         * @return TransportClassification
         */
        public function setTaxiClass(string $taxiClass) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\TransportClassification
        {
        }
        /**
         * @return string
         */
        public function getCargoType()
        {
        }
        /**
         * @param string $cargoType
         * @return TransportClassification
         */
        public function setCargoType(string $cargoType) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\TransportClassification
        {
        }
        /**
         * @return int
         */
        public function getCargoLoaders()
        {
        }
        /**
         * @param int $cargoLoaders
         * @return TransportClassification
         */
        public function setCargoLoaders(int $cargoLoaders) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\TransportClassification
        {
        }
    }
    /**
     * Class Offer
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity
     * @internal
     */
    final class Offer extends \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RequestEntity
    {
        /** @var string */
        protected $offerId;
        /** @var string */
        protected $price;
        /**
         * @return string
         */
        public function getOfferId()
        {
        }
        /**
         * @param string $offerId
         * @return Offer
         */
        public function setOfferId(string $offerId) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Offer
        {
        }
        /**
         * @return string
         */
        public function getPrice()
        {
        }
        /**
         * @param string $price
         * @return Offer
         */
        public function setPrice(string $price) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Offer
        {
        }
    }
    /**
     * Class RoutePoints
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity
     * @internal
     */
    final class RoutePoints extends \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RequestEntity
    {
        /** @var RoutePoint */
        protected $source;
        /** @var RoutePoint */
        protected $destination;
        /** @var RoutePoint */
        protected $return;
        /**
         * @return RoutePoint
         */
        public function getSource()
        {
        }
        /**
         * @param RoutePoint $source
         * @return RoutePoints
         */
        public function setSource(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RoutePoint $source) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RoutePoints
        {
        }
        /**
         * @return RoutePoint
         */
        public function getDestination()
        {
        }
        /**
         * @param RoutePoint $destination
         * @return RoutePoints
         */
        public function setDestination(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RoutePoint $destination) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RoutePoints
        {
        }
        /**
         * @return RoutePoint
         */
        public function getReturn()
        {
        }
        /**
         * @param RoutePoint $return
         * @return RoutePoints
         */
        public function setReturn(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RoutePoint $return) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RoutePoints
        {
        }
    }
    /**
     * Class Claim
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity
     * @internal
     */
    final class Claim extends \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RequestEntity
    {
        /** @var Contact */
        protected $emergencyContact;
        /** @var ShippingItem[] */
        protected $items = [];
        /** @var RoutePoints */
        protected $routePoints;
        /** @var string */
        protected $id;
        /** @var string */
        protected $corpClientId;
        /** @var string */
        protected $status;
        /** @var int */
        protected $version;
        /** @var Pricing */
        protected $pricing;
        /** @var bool */
        protected $skipClientNotify;
        /** @var bool */
        protected $skipEmergencyNotify;
        /** @var bool */
        protected $skipDoorToDoor;
        /** @var bool */
        protected $optionalReturn;
        /** @var string */
        protected $comment;
        /** @var string */
        protected $availableCancelState;
        /** @var TransportClassification */
        protected $clientRequirements;
        /** @var TransportClassification[] */
        protected $matchedCars = [];
        /** @var PerformerInfo */
        protected $performerInfo;
        /** @var ErrorMessage[] */
        protected $errorMessages = [];
        /** @var Warning[] */
        protected $warnings = [];
        /** @var string */
        protected $createdTs;
        /** @var string */
        protected $updatedTs;
        /** @var string */
        private $referralSource;
        /**
         * @return Contact
         */
        public function getEmergencyContact()
        {
        }
        /**
         * @param Contact $emergencyContact
         * @return Claim
         */
        public function setEmergencyContact(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Contact $emergencyContact) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return ShippingItem[]
         */
        public function getItems() : array
        {
        }
        /**
         * @param ShippingItem $shippingItem
         * @return Claim
         */
        public function addItem(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\ShippingItem $shippingItem) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return RoutePoints
         */
        public function getRoutePoints() : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RoutePoints
        {
        }
        /**
         * @param RoutePoints $routePoints
         * @return Claim
         */
        public function setRoutePoints(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RoutePoints $routePoints) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return string
         */
        public function getId()
        {
        }
        /**
         * @param string $id
         * @return Claim
         */
        public function setId(string $id) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return string
         */
        public function getCorpClientId()
        {
        }
        /**
         * @param string $corpClientId
         * @return Claim
         */
        public function setCorpClientId(string $corpClientId) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return string
         */
        public function getStatus()
        {
        }
        /**
         * @param string $status
         * @return Claim
         */
        public function setStatus(string $status) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return int
         */
        public function getVersion()
        {
        }
        /**
         * @param int $version
         * @return Claim
         */
        public function setVersion(int $version) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return Pricing
         */
        public function getPricing()
        {
        }
        /**
         * @param Pricing $pricing
         * @return Claim
         */
        public function setPricing(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Pricing $pricing) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return bool
         */
        public function isSkipClientNotify()
        {
        }
        /**
         * @param bool $skipClientNotify
         * @return Claim
         */
        public function setSkipClientNotify(bool $skipClientNotify) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return bool
         */
        public function isSkipEmergencyNotify()
        {
        }
        /**
         * @param bool $skipEmergencyNotify
         * @return Claim
         */
        public function setSkipEmergencyNotify(bool $skipEmergencyNotify) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return bool
         */
        public function isSkipDoorToDoor()
        {
        }
        /**
         * @param bool $skipDoorToDoor
         * @return Claim
         */
        public function setSkipDoorToDoor(bool $skipDoorToDoor) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return bool
         */
        public function isOptionalReturn()
        {
        }
        /**
         * @param bool $optionalReturn
         * @return Claim
         */
        public function setOptionalReturn(bool $optionalReturn) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return string
         */
        public function getComment()
        {
        }
        /**
         * @param string $comment
         * @return Claim
         */
        public function setComment(string $comment) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return string
         */
        public function getAvailableCancelState()
        {
        }
        /**
         * @param string $availableCancelState
         * @return Claim
         */
        public function setAvailableCancelState(string $availableCancelState) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return string
         */
        public function getCreatedTs()
        {
        }
        /**
         * @param string $createdTs
         * @return Claim
         */
        public function setCreatedTs(string $createdTs) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return string
         */
        public function getUpdatedTs()
        {
        }
        /**
         * @param string $updatedTs
         * @return Claim
         */
        public function setUpdatedTs(string $updatedTs) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return TransportClassification
         */
        public function getClientRequirements()
        {
        }
        /**
         * @param TransportClassification $clientRequirements
         * @return Claim
         */
        public function setClientRequirements(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\TransportClassification $clientRequirements) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return TransportClassification[]
         */
        public function getMatchedCars() : array
        {
        }
        /**
         * @param TransportClassification $transportClassification
         * @return Claim
         */
        public function addMatchedCar(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\TransportClassification $transportClassification) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return PerformerInfo
         */
        public function getPerformerInfo()
        {
        }
        /**
         * @param PerformerInfo $performerInfo
         * @return Claim
         */
        public function setPerformerInfo(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\PerformerInfo $performerInfo) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return ErrorMessage[]
         */
        public function getErrorMessages() : array
        {
        }
        /**
         * @param ErrorMessage $error
         * @return Claim
         */
        public function addErrorMessage(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\ErrorMessage $error) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return Warning[]
         */
        public function getWarnings() : array
        {
        }
        /**
         * @param Warning $warning
         * @return Claim
         */
        public function addWarning(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Warning $warning) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
        /**
         * @return string
         */
        public function getReferralSource()
        {
        }
        /**
         * @param string $referralSource
         * @return Claim
         */
        public function setReferralSource(string $referralSource) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim
        {
        }
    }
    /**
     * Class Pricing
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity
     * @internal
     */
    final class Pricing extends \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RequestEntity
    {
        /** @var string */
        protected $currency;
        /** @var string */
        protected $finalPrice;
        /** @var Offer */
        protected $offer;
        /**
         * @return string
         */
        public function getCurrency()
        {
        }
        /**
         * @param string $currency
         * @return Pricing
         */
        public function setCurrency(string $currency) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Pricing
        {
        }
        /**
         * @return string
         */
        public function getFinalPrice()
        {
        }
        /**
         * @param string $finalPrice
         * @return Pricing
         */
        public function setFinalPrice(string $finalPrice) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Pricing
        {
        }
        /**
         * @return Offer
         */
        public function getOffer()
        {
        }
        /**
         * @param Offer $offer
         * @return Pricing
         */
        public function setOffer(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Offer $offer) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Pricing
        {
        }
    }
    /**
     * Class Address
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity
     * @internal
     */
    final class Address extends \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RequestEntity
    {
        /** @var string */
        protected $fullname;
        /** @var string */
        protected $country;
        /** @var string */
        protected $city;
        /** @var string */
        protected $street;
        /** @var string */
        protected $building;
        /** @var string */
        protected $porch;
        /** @var int */
        protected $floor;
        /** @var int */
        protected $flat;
        /** @var string */
        protected $doorCode;
        /** @var string */
        protected $comment;
        /** @var array */
        protected $coordinates;
        /**
         * @return string
         */
        public function getFullName()
        {
        }
        /**
         * @param string $fullname
         * @return Address
         */
        public function setFullName(string $fullname) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Address
        {
        }
        /**
         * @return string
         */
        public function getCountry()
        {
        }
        /**
         * @param string $country
         * @return Address
         */
        public function setCountry(string $country) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Address
        {
        }
        /**
         * @return string
         */
        public function getCity()
        {
        }
        /**
         * @param string $city
         * @return Address
         */
        public function setCity(string $city) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Address
        {
        }
        /**
         * @return string
         */
        public function getStreet()
        {
        }
        /**
         * @param string $street
         * @return Address
         */
        public function setStreet(string $street) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Address
        {
        }
        /**
         * @return string
         */
        public function getBuilding()
        {
        }
        /**
         * @param string $building
         * @return Address
         */
        public function setBuilding(string $building) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Address
        {
        }
        /**
         * @return string
         */
        public function getPorch()
        {
        }
        /**
         * @param string $porch
         * @return Address
         */
        public function setPorch(string $porch) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Address
        {
        }
        /**
         * @return int
         */
        public function getFloor()
        {
        }
        /**
         * @param int $floor
         * @return Address
         */
        public function setFloor(int $floor) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Address
        {
        }
        /**
         * @return int
         */
        public function getFlat()
        {
        }
        /**
         * @param int $flat
         * @return Address
         */
        public function setFlat(int $flat) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Address
        {
        }
        /**
         * @return string
         */
        public function getDoorCode()
        {
        }
        /**
         * @param string $doorCode
         * @return Address
         */
        public function setDoorCode(string $doorCode) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Address
        {
        }
        /**
         * @return string
         */
        public function getComment()
        {
        }
        /**
         * @param string $comment
         * @return Address
         */
        public function setComment(string $comment) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Address
        {
        }
        /**
         * @return array
         */
        public function getCoordinates()
        {
        }
        /**
         * @param array $coordinates
         * @return Address
         */
        public function setCoordinates(array $coordinates) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Address
        {
        }
    }
    /**
     * Class ShippingItemSize
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity
     * @internal
     */
    final class ShippingItemSize extends \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RequestEntity
    {
        /** @var float */
        protected $length;
        /** @var float */
        protected $width;
        /** @var float */
        protected $height;
        /**
         * @return float Length in meters
         */
        public function getLength()
        {
        }
        /**
         * @param float $length Length in meters
         * @return ShippingItemSize
         */
        public function setLength(float $length) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\ShippingItemSize
        {
        }
        /**
         * @return float Width in meters
         */
        public function getWidth()
        {
        }
        /**
         * @param float $width Width in meters
         * @return ShippingItemSize
         */
        public function setWidth(float $width) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\ShippingItemSize
        {
        }
        /**
         * @return float Height in meters
         */
        public function getHeight()
        {
        }
        /**
         * @param float $height Height in meters
         * @return ShippingItemSize
         */
        public function setHeight(float $height) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\ShippingItemSize
        {
        }
    }
    /**
     * Class Estimation
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity
     * @internal
     */
    final class Estimation extends \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RequestEntity
    {
        /** @var ShippingItem[] */
        protected $items = [];
        /** @var TransportClassification */
        protected $requirements;
        /** @var Address[] */
        protected $routePoints;
        /** @var bool */
        protected $skipDoorToDoor;
        /**
         * @return ShippingItem[]
         */
        public function getItems() : array
        {
        }
        /**
         * @param ShippingItem $shippingItem
         * @return Estimation
         */
        public function addItem(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\ShippingItem $shippingItem) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Estimation
        {
        }
        /**
         * @return TransportClassification
         */
        public function getRequirements()
        {
        }
        /**
         * @param TransportClassification $requirements
         * @return $this
         */
        public function setRequirements(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\TransportClassification $requirements) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Estimation
        {
        }
        /**
         * @return Address[]
         */
        public function getRoutePoints()
        {
        }
        /**
         * @param Address $address
         * @return $this
         */
        public function addRoutePoint(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Address $address) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Estimation
        {
        }
        /**
         * @return bool
         */
        public function isSkipDoorToDoor()
        {
        }
        /**
         * @param bool $skipDoorToDoor
         * @return Estimation
         */
        public function setSkipDoorToDoor(bool $skipDoorToDoor) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Estimation
        {
        }
    }
    /**
     * Class Contact
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity
     * @internal
     */
    final class Contact extends \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RequestEntity
    {
        /** @var string */
        protected $phone;
        /** @var string */
        protected $name;
        /** @var string */
        protected $email;
        /**
         * @return string
         */
        public function getPhone()
        {
        }
        /**
         * @param string $phone
         * @return Contact
         */
        public function setPhone(string $phone) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Contact
        {
        }
        /**
         * @return string
         */
        public function getName()
        {
        }
        /**
         * @param string $name
         * @return Contact
         */
        public function setName(string $name) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Contact
        {
        }
        /**
         * @return string
         */
        public function getEmail()
        {
        }
        /**
         * @param string $email
         * @return Contact
         */
        public function setEmail(string $email) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Contact
        {
        }
    }
    /**
     * Class PerformerInfo
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity
     * @internal
     */
    final class PerformerInfo extends \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RequestEntity
    {
        /** @var string */
        protected $courierName;
        /** @var string */
        protected $legalName;
        /** @var string */
        protected $carModel;
        /** @var string */
        protected $carNumber;
        /**
         * @return string
         */
        public function getCourierName()
        {
        }
        /**
         * @param string $courierName
         * @return PerformerInfo
         */
        public function setCourierName(string $courierName) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\PerformerInfo
        {
        }
        /**
         * @return string
         */
        public function getLegalName()
        {
        }
        /**
         * @param string $legalName
         * @return PerformerInfo
         */
        public function setLegalName(string $legalName) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\PerformerInfo
        {
        }
        /**
         * @return string
         */
        public function getCarModel()
        {
        }
        /**
         * @param string $carModel
         * @return PerformerInfo
         */
        public function setCarModel(string $carModel) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\PerformerInfo
        {
        }
        /**
         * @return string
         */
        public function getCarNumber()
        {
        }
        /**
         * @param string $carNumber
         * @return PerformerInfo
         */
        public function setCarNumber(string $carNumber) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\PerformerInfo
        {
        }
    }
    /**
     * Class RoutePoint
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity
     * @internal
     */
    final class RoutePoint extends \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RequestEntity
    {
        /** @var Contact */
        protected $contact;
        /** @var Address */
        protected $address;
        /** @var bool */
        protected $skipConfirmation;
        /**
         * @return Contact
         */
        public function getContact()
        {
        }
        /**
         * @param Contact $contact
         * @return RoutePoint
         */
        public function setContact(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Contact $contact) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RoutePoint
        {
        }
        /**
         * @return Address
         */
        public function getAddress()
        {
        }
        /**
         * @param Address $address
         * @return RoutePoint
         */
        public function setAddress(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Address $address) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RoutePoint
        {
        }
        /**
         * @return bool
         */
        public function isSkipConfirmation()
        {
        }
        /**
         * @param bool $skipConfirmation
         * @return RoutePoint
         */
        public function setSkipConfirmation(bool $skipConfirmation) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RoutePoint
        {
        }
    }
    /**
     * Class ShippingItem
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity
     * @internal
     */
    final class ShippingItem extends \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RequestEntity
    {
        /** @var string */
        protected $title;
        /** @var ShippingItemSize */
        protected $size;
        /** @var string */
        protected $costValue;
        /** @var string */
        protected $costCurrency;
        /** @var int */
        protected $weight;
        /** @var int */
        protected $quantity;
        /**
         * @return string
         */
        public function getTitle()
        {
        }
        /**
         * @param string $title
         * @return ShippingItem
         */
        public function setTitle(string $title)
        {
        }
        /**
         * @return ShippingItemSize
         */
        public function getSize()
        {
        }
        /**
         * @param ShippingItemSize $size
         * @return ShippingItem
         */
        public function setSize(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\ShippingItemSize $size)
        {
        }
        /**
         * @return string
         */
        public function getCostValue()
        {
        }
        /**
         * @param string $costValue
         * @return ShippingItem
         */
        public function setCostValue(string $costValue)
        {
        }
        /**
         * @return string
         */
        public function getCostCurrency()
        {
        }
        /**
         * @param string $costCurrency
         * @return ShippingItem
         */
        public function setCostCurrency(string $costCurrency)
        {
        }
        /**
         * @return int Weight in kg
         */
        public function getWeight()
        {
        }
        /**
         * @param int $weight Weight in kg
         * @return ShippingItem
         */
        public function setWeight(int $weight)
        {
        }
        /**
         * @return int
         */
        public function getQuantity()
        {
        }
        /**
         * @param int $quantity
         * @return ShippingItem
         */
        public function setQuantity(int $quantity)
        {
        }
    }
}
namespace Sale\Handlers\Delivery\YandexTaxi\Api\ClaimReader {
    /**
     * Class Result
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\ClaimReader
     * @internal
     */
    final class Result extends \Bitrix\Main\Result
    {
        /** @var Claim */
        private $claim;
        /**
         * @return Claim
         */
        public function getClaim()
        {
        }
        /**
         * @param Claim $claim
         * @return Result
         */
        public function setClaim(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim $claim) : \Sale\Handlers\Delivery\YandexTaxi\Api\ClaimReader\Result
        {
        }
    }
    /**
     * Class ClaimReader
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\ClaimReader
     * @internal
     */
    final class ClaimReader
    {
        /**
         * @param array $response
         * @return Result
         */
        public function readFromArray(array $response) : \Sale\Handlers\Delivery\YandexTaxi\Api\ClaimReader\Result
        {
        }
        /**
         * @param array $node
         * @return ErrorMessage
         */
        private function buildErrorMessage(array $node) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\ErrorMessage
        {
        }
        /**
         * @param array $node
         * @return Warning
         */
        private function buildWarning(array $node) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Warning
        {
        }
        /**
         * @param array $node
         * @return RoutePoint
         */
        private function buildRoutePoint(array $node) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\RoutePoint
        {
        }
        /**
         * @param array $node
         * @return Contact
         */
        private function buildContact(array $node) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Contact
        {
        }
        /**
         * @param array $node
         * @return Address
         */
        private function buildAddress(array $node) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Address
        {
        }
        /**
         * @param array $node
         * @return TransportClassification
         */
        private function buildTransportClassification(array $node) : \Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\TransportClassification
        {
        }
    }
}
namespace Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal {
    /**
     * Class Event
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult
     * @internal
     */
    abstract class Event
    {
        /** @var string */
        protected $claimId;
        /** @var string */
        protected $updatedTs;
        /**
         * @return string
         */
        public abstract function getCode() : string;
        /**
         * @return string
         */
        public function getClaimId()
        {
        }
        /**
         * @param string $claimId
         * @return Event
         */
        public function setClaimId(string $claimId) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal\Event
        {
        }
        /**
         * @return string
         */
        public function getUpdatedTs()
        {
        }
        /**
         * @param string $updatedTs
         * @return Event
         */
        public function setUpdatedTs(string $updatedTs) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal\Event
        {
        }
        /**
         * @return array
         */
        public abstract function provideUpdateFields() : array;
    }
    /**
     * Class EventBuilder
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal
     * @internal
     */
    final class EventBuilder
    {
        /**
         * @param array $fields
         * @return Event|null
         */
        public function build(array $fields)
        {
        }
    }
    /**
     * Class Result
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal
     * @internal
     */
    final class Result extends \Bitrix\Main\Result
    {
        /** @var string */
        private $cursor;
        /** @var Event[]  */
        private $events = [];
        /**
         * @return string
         */
        public function getCursor()
        {
        }
        /**
         * @param string $cursor
         * @return Result
         */
        public function setCursor(string $cursor) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal\Result
        {
        }
        /**
         * @param Event $event
         */
        public function addEvent(\Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal\Event $event)
        {
        }
        /**
         * @return Event[]
         */
        public function getEvents() : array
        {
        }
    }
    /**
     * Class PriceChanged
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal
     * @internal
     */
    final class PriceChanged extends \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal\Event
    {
        public const EVENT_CODE = 'price_changed';
        /** @var string */
        protected $newPrice;
        /** @var string */
        protected $newCurrency;
        /**
         * @return string
         */
        public function getCode() : string
        {
        }
        /**
         * @return string
         */
        public function getNewPrice()
        {
        }
        /**
         * @param string $newPrice
         * @return PriceChanged
         */
        public function setNewPrice(string $newPrice) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal\PriceChanged
        {
        }
        /**
         * @return string
         */
        public function getNewCurrency()
        {
        }
        /**
         * @param string $newCurrency
         * @return PriceChanged
         */
        public function setNewCurrency(string $newCurrency) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal\PriceChanged
        {
        }
        /**
         * @inheritdoc
         */
        public function provideUpdateFields() : array
        {
        }
    }
    /**
     * Class StatusChanged
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult
     * @internal
     */
    final class StatusChanged extends \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal\Event
    {
        public const EVENT_CODE = 'status_changed';
        /** @var string */
        protected $newStatus;
        /** @var string */
        protected $resolution;
        /**
         * @return string
         */
        public function getCode() : string
        {
        }
        /**
         * @return string
         */
        public function getNewStatus()
        {
        }
        /**
         * @param string $newStatus
         * @return StatusChanged
         */
        public function setNewStatus(string $newStatus) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal\StatusChanged
        {
        }
        /**
         * @return string
         */
        public function getResolution()
        {
        }
        /**
         * @param string $resolution
         * @return StatusChanged
         */
        public function setResolution(string $resolution) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal\StatusChanged
        {
        }
        /**
         * @inheritdoc
         */
        public function provideUpdateFields() : array
        {
        }
    }
}
namespace Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult {
    /**
     * Class PriceResult
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult
     * @internal
     */
    final class PriceResult extends \Bitrix\Main\Result
    {
        /** @var float */
        private $price;
        /** @var string */
        private $currency;
        /** @var int|null */
        private $eta;
        /**
         * @return float
         */
        public function getPrice()
        {
        }
        /**
         * @param float $price
         * @return PriceResult
         */
        public function setPrice(float $price) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\PriceResult
        {
        }
        /**
         * @return string
         */
        public function getCurrency()
        {
        }
        /**
         * @param string $currency
         * @return PriceResult
         */
        public function setCurrency(string $currency) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\PriceResult
        {
        }
        /**
         * @return int|null
         */
        public function getEta() : ?int
        {
        }
        /**
         * @param int|null $eta
         * @return PriceResult
         */
        public function setEta(?int $eta) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\PriceResult
        {
        }
    }
    /**
     * Class MultiClaimResult
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult
     * @internal
     */
    final class MultiClaimResult extends \Bitrix\Main\Result
    {
        /** @var Claim[] */
        private $claims = [];
        /**
         * @param Claim $claim
         * @return $this
         */
        public function addClaim(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim $claim)
        {
        }
        /**
         * @return Claim[]
         */
        public function getClaims() : array
        {
        }
    }
    /**
     * Class PhoneResult
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult
     * @internal
     */
    final class PhoneResult extends \Bitrix\Main\Result
    {
        /** @var string */
        private $phone;
        /** @var string */
        private $ext;
        /** @var int */
        private $ttlSeconds;
        /**
         * @return string
         */
        public function getPhone()
        {
        }
        /**
         * @param string $phone
         */
        public function setPhone(string $phone)
        {
        }
        /**
         * @return string
         */
        public function getExt()
        {
        }
        /**
         * @param string $ext
         */
        public function setExt(string $ext)
        {
        }
        /**
         * @return int
         */
        public function getTtlSeconds()
        {
        }
        /**
         * @param int $ttlSeconds
         * @return PhoneResult
         */
        public function setTtlSeconds(int $ttlSeconds) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\PhoneResult
        {
        }
    }
    /**
     * Class SingleClaimResult
     * @package Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult
     * @internal
     */
    final class SingleClaimResult extends \Bitrix\Main\Result
    {
        /** @var Claim */
        private $claim;
        /**
         * @param Claim $claim
         * @return $this
         */
        public function setClaim(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim $claim)
        {
        }
        /**
         * @return Claim
         */
        public function getClaim()
        {
        }
    }
}
namespace Sale\Handlers\Delivery\YandexTaxi\Api {
    /**
     * Class Api
     * @package Sale\Handlers\Delivery\YandexTaxi\Api
     * @internal
     */
    final class Api
    {
        private const LOG_SOURCE = 'api';
        /** @var Transport\Client */
        private $transport;
        /** @var ClaimReader */
        private $claimReader;
        /** @var EventBuilder */
        private $eventBuilder;
        /** @var Logger */
        private $logger;
        /**
         * Api constructor.
         * @param Transport\Client $transport
         * @param ClaimReader $claimReader
         * @param EventBuilder $eventBuilder
         * @param Logger $logger
         */
        public function __construct(\Sale\Handlers\Delivery\YandexTaxi\Api\Transport\Client $transport, \Sale\Handlers\Delivery\YandexTaxi\Api\ClaimReader\ClaimReader $claimReader, \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal\EventBuilder $eventBuilder, \Sale\Handlers\Delivery\YandexTaxi\Common\Logger $logger)
        {
        }
        /**
         * @param Estimation $estimation
         * @return PriceResult
         * @throws \Bitrix\Main\ArgumentException
         */
        public function checkPrice(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Estimation $estimation) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\PriceResult
        {
        }
        /**
         * @param Claim $claim
         * @return SingleClaimResult
         * @throws \Bitrix\Main\ArgumentException
         */
        public function createClaim(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\Claim $claim) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\SingleClaimResult
        {
        }
        /**
         * @param string $claimId
         * @param int $version
         * @return Result
         * @throws \Bitrix\Main\ArgumentException
         */
        public function acceptClaim(string $claimId, int $version) : \Bitrix\Main\Result
        {
        }
        /**
         * @param string $claimId
         * @param int $version
         * @param string $cancelState
         * @return Result
         * @throws \Bitrix\Main\ArgumentException
         */
        public function cancelClaim(string $claimId, int $version, string $cancelState) : \Bitrix\Main\Result
        {
        }
        /**
         * @param string $claimId
         * @return SingleClaimResult
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getClaim(string $claimId) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\SingleClaimResult
        {
        }
        /**
         * @param SearchOptions $searchOptions
         * @param bool $onlyActive
         * @return MultiClaimResult
         * @throws \Bitrix\Main\ArgumentException
         */
        public function searchClaims(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\SearchOptions $searchOptions, $onlyActive = false) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\MultiClaimResult
        {
        }
        /**
         * @param SearchOptions $searchOptions
         * @return MultiClaimResult
         * @throws \Bitrix\Main\ArgumentException
         */
        public function searchActiveClaims(\Sale\Handlers\Delivery\YandexTaxi\Api\RequestEntity\SearchOptions $searchOptions) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\MultiClaimResult
        {
        }
        /**
         * @param string $claimId
         * @return PhoneResult
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getPhone(string $claimId) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\PhoneResult
        {
        }
        /**
         * @param $cursor
         * @return ApiResult\Journal\Result
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getJournalRecords($cursor) : \Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal\Result
        {
        }
        /**
         * @param $result
         * @param int $statusCode
         * @param string $method
         * @return mixed
         */
        private function respondStatusError($result, int $statusCode, string $method)
        {
        }
        /**
         * @param $result
         * @return mixed
         */
        private function respondTransportError($result)
        {
        }
        /**
         * @return Transport\Client
         */
        public function getTransport() : \Sale\Handlers\Delivery\YandexTaxi\Api\Transport\Client
        {
        }
    }
}
namespace Sale\Handlers\Delivery\YandexTaxi\Installator {
    /**
     * Class Installator
     * @package Sale\Handlers\Delivery\YandexTaxi\Installator
     * @internal
     */
    final class Installator
    {
        /**
         * @param int $serviceId
         * @return Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function install(int $serviceId) : \Bitrix\Main\Result
        {
        }
        /**
         * @param int $serviceId
         * @return Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        protected function installOrderProperties(int $serviceId) : \Bitrix\Main\Result
        {
        }
        /**
         * @param int $serviceId
         * @return Result
         * @throws \Exception
         */
        protected function installExtraServices(int $serviceId) : \Bitrix\Main\Result
        {
        }
        protected function installClaimsDbTable()
        {
        }
        protected function installRestriction(int $serviceId)
        {
        }
    }
}
namespace Sale\Handlers\Delivery\YandexTaxi\EventJournal {
    /**
     * Class EventCollectionResult
     * @package Sale\Handlers\Delivery\YandexTaxi\EventJournal
     * @internal
     */
    final class EventCollectionResult extends \Bitrix\Main\Result
    {
        /** @var Event[] */
        private $events = [];
        /**
         * @return Event[]
         */
        public function getEvents() : array
        {
        }
        /**
         * @param Event $event
         */
        public function addEvent(\Sale\Handlers\Delivery\YandexTaxi\Api\ApiResult\Journal\Event $event)
        {
        }
    }
    /**
     * Class EventReader
     * @package Sale\Handlers\Delivery\YandexTaxi\EventJournal
     * @internal
     */
    final class EventReader
    {
        /** @var Api */
        protected $api;
        /**
         * Reader constructor.
         * @param Api $api
         */
        public function __construct(\Sale\Handlers\Delivery\YandexTaxi\Api\Api $api)
        {
        }
        /**
         * @param int $deliveryServiceId
         * @param string|null $prevCursor
         * @return EventCollectionResult
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function read(int $deliveryServiceId, $prevCursor) : \Sale\Handlers\Delivery\YandexTaxi\EventJournal\EventCollectionResult
        {
        }
    }
    /**
     * Class EventProcessor
     * @package Sale\Handlers\Delivery\YandexTaxi\EventJournal
     * @internal
     */
    final class EventProcessor
    {
        public const CLAIM_UPDATED_EVENT_CODE = 'OnDeliveryYandexTaxiClaimUpdated';
        /** @var Api */
        protected $api;
        /** @var array */
        private $claims = [];
        /** @var Event[] */
        private $events = [];
        /**
         * Processor constructor.
         * @param Api $api
         */
        public function __construct(\Sale\Handlers\Delivery\YandexTaxi\Api\Api $api)
        {
        }
        /**
         * @param array $events
         */
        public function process(array $events)
        {
        }
        /**
         * @param Event[] $events
         */
        private function prepareClaims(array $events)
        {
        }
        /**
         * @param Event[] $events
         */
        private function prepareEvents(array $events)
        {
        }
        /**
         * @return array
         */
        private function getKnownEventTypes()
        {
        }
        /**
         * @return void
         */
        private function findChanges()
        {
        }
        /**
         * @return void
         */
        private function applyChanges()
        {
        }
        /**
         * @param int $id
         * @param string $newUpdatedTs
         * @param array $fields
         */
        private function updateClaim(int $id, string $newUpdatedTs, array $fields)
        {
        }
        /**
         * @param string $dateTime
         * @return bool|\DateTime
         */
        private function readDate(string $dateTime)
        {
        }
    }
    /**
     * Class JournalProcessor
     * @package Sale\Handlers\Delivery\YandexTaxi\EventJournal
     * @internal
     */
    final class JournalProcessor
    {
        /** @var EventReader */
        protected $eventReader;
        /** @var EventProcessor */
        protected $eventProcessor;
        /**
         * Process constructor.
         * @param EventReader $eventReader
         * @param EventProcessor $eventProcessor
         */
        public function __construct(\Sale\Handlers\Delivery\YandexTaxi\EventJournal\EventReader $eventReader, \Sale\Handlers\Delivery\YandexTaxi\EventJournal\EventProcessor $eventProcessor)
        {
        }
        /**
         * @param int $serviceId
         * @return string|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function processJournal(int $serviceId)
        {
        }
        /**
         * @param int $serviceId
         * @return string
         */
        public function getAgentName(int $serviceId) : string
        {
        }
        /**
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function hasMore()
        {
        }
    }
}
namespace Sale\Handlers\Delivery {
    /*
     * @package Bitrix\Sale\Delivery\Services
     */
    class SimpleHandler extends \Bitrix\Sale\Delivery\Services\Base
    {
        protected static $isCalculatePriceImmediately = true;
        protected static $whetherAdminExtraServicesShow = true;
        /**
         * @param array $initParams
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function __construct(array $initParams)
        {
        }
        /**
         * @return string Class title.
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string Class, service description.
         */
        public static function getClassDescription()
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        protected function getLocationGroups()
        {
        }
        /**
         * @param \Bitrix\Sale\Shipment|null $shipment
         * @return CalculationResult
         * @throws \Bitrix\Main\ArgumentException
         */
        protected function calculateConcrete(\Bitrix\Sale\Shipment $shipment = null)
        {
        }
        /**
         * @return array
         * @throws \Exception
         */
        protected function getConfigStructure()
        {
        }
        public function isCalculatePriceImmediately()
        {
        }
        public static function whetherAdminExtraServicesShow()
        {
        }
    }
    class SpsrHandler extends \Bitrix\Sale\Delivery\Services\Base
    {
        protected static $url_test_request = "http://spsr.ru/testxml";
        /** @var bool $canHasProfiles This handler can has profiles */
        protected static $canHasProfiles = true;
        /** @var bool $whetherAdminExtraServicesShow This handler uses extra services */
        protected static $whetherAdminExtraServicesShow = true;
        /** @var string Tracking class */
        protected $trackingClass = '\\Sale\\Handlers\\Delivery\\SpsrTracking';
        /**
         * @return string
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public static function getClassDescription()
        {
        }
        /**
         * Returns string for http request.
         * @param Shipment $shipment
         * @return Result
         */
        protected function getTarifsReq(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * Calculates prices for concrete service
         * @param Shipment $shipment
         * @param $tariff
         * @return CalculationResult
         */
        public function calculateTariff(\Bitrix\Sale\Shipment $shipment, $tariff)
        {
        }
        /**
         * @return array Configuration structure
         */
        protected function getConfigStructure()
        {
        }
        /**
         * @return int[] Natures of the cargo code => names
         */
        protected static function getNaturesList()
        {
        }
        /**
         * @param int $profileId
         * @return int[]
         */
        protected static function getProfileNatures($profileId = 0)
        {
        }
        public function isCalculatePriceImmediately()
        {
        }
        /**
         * @return array Business values.
         */
        public static function onGetBusinessValueConsumers()
        {
        }
        public static function onGetBusinessValueGroups()
        {
        }
        private static function isHoldingUsed()
        {
        }
        /**
         * Decodes income data if it needs
         * @param $str
         * @return array|bool|string
         */
        protected static function utfDecode($str)
        {
        }
        /**
         * @return array Class names for profiles.
         */
        public static function getChildrenClassNames()
        {
        }
        /**
         * @return string Company name.
         */
        public static function getCompanyName()
        {
        }
        /**
         * Returns SID required for requests.
         * @return Result
         */
        public function getSidResult($shipment = null)
        {
        }
        /**
         * @param string $fieldName
         * @param Shipment|null $shipment
         * @return string
         */
        protected function getAuthField($fieldName, $shipment = null)
        {
        }
        /**
         * @param Shipment|null $shipment
         * @return string
         */
        protected function getLogin($shipment = null)
        {
        }
        /**
         * @param Shipment|null $shipment
         * @return string
         */
        protected function getPass($shipment = null)
        {
        }
        /**
         * @param Shipment|null $shipment
         * @return string
         */
        public function getICN($shipment = null)
        {
        }
        /**
         * Returns services list with parameters.
         * @return Result
         */
        public function getServiceTypes($shipment = null)
        {
        }
        protected static function getOnLineSrvs()
        {
        }
        /**
         * @return int[] Services ids we can process.
         */
        protected function getKnownServices()
        {
        }
        /**
         * @return array Extra services list we can use
         */
        public function getEmbeddedExtraServicesList()
        {
        }
        public static function getAlltExtraServices()
        {
        }
        /**
         * @param Shipment|null $shipment
         * @return array Profiles list code => name
         */
        public function getProfilesList($shipment = null)
        {
        }
        /**
         * @param Shipment $shipment
         * @return int[] Services types ids compatible with shipment
         */
        public function getCompatibleProfiles(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public static function onAfterUpdate($serviceId, array $fields = array())
        {
        }
        /**
         * @param int $serviceId
         * @param array $fields
         * @return bool
         */
        public static function onAfterAdd($serviceId, array $fields = array())
        {
        }
        public static function install()
        {
        }
        public static function unInstall()
        {
        }
        public static function onSaleDeliveryTrackingClassNamesBuildList()
        {
        }
        public static function isInstalled()
        {
        }
        public function getProfilesDefaultParams()
        {
        }
        public static function canHasProfiles()
        {
        }
        public static function whetherAdminExtraServicesShow()
        {
        }
        public function getAdminAdditionalTabs()
        {
        }
        public static function isHandlerCompatible()
        {
        }
    }
}
namespace Sale\Handlers\Delivery\Spsr {
    /**
     * Working with cache for faster work.
     * Class Cache
     * @package Sale\Handlers\Delivery\Spsr
     */
    class Cache
    {
        protected static function getCache($ttl, $cacheId)
        {
        }
        protected static function setCache($cacheId, $value)
        {
        }
        protected static function cleanCache($cacheId)
        {
        }
        public static function cleanAll()
        {
        }
        public static function getSidResult($login, $pass)
        {
        }
        public static function setSid($sid, $login, $pass)
        {
        }
        public static function cleanSid()
        {
        }
        public static function getServiceTypes($login, $pass)
        {
        }
        public static function setServiceTypes(array $serviceTypes, $login, $pass)
        {
        }
        public static function cleanServiceTypes()
        {
        }
        public static function getCalcRes($request)
        {
        }
        public static function setCalcRes(array $calcRes, $request)
        {
        }
        public static function cleanCalcRes()
        {
        }
    }
}
namespace Sale\Handlers\Delivery {
    /**
     * Class SpsrTracking
     * @package \Sale\Handlers\Delivery;
     */
    class SpsrTracking extends \Bitrix\Sale\Delivery\Tracking\Base
    {
        /** @var  \Sale\Handlers\Delivery\SpsrHandler */
        protected $deliveryService;
        /**
         * @return string
         */
        public function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public function getClassDescription()
        {
        }
        /**
         * @param array $shipmentData
         * @return StatusResult.
         */
        public function getStatusShipment($shipmentData)
        {
        }
        /**
         * @param int $orderId
         * @param int $shipmentId
         * @return \Bitrix\Sale\Internals\CollectableEntity|bool|null
         * @throws \Bitrix\Main\ArgumentNullException
         */
        private function getShipment($orderId, $shipmentId)
        {
        }
        /**
         * @param array $shipmentsData
         * @return Result
         */
        public function getStatusesShipment(array $shipmentsData)
        {
        }
        public function requestStatuses($sid, $icn, $trackingNumbers)
        {
        }
        protected static function translateStatus($externalStatus)
        {
        }
        protected static function translateDate($externalDate)
        {
        }
        /**
         * @return array
         */
        public function getParamsStructure()
        {
        }
        protected static function utfDecode($str)
        {
        }
        /**
         * @param string $trackingNumber
         * @return string Url were we can see tracking information
         */
        public function getTrackingUrl($trackingNumber = '')
        {
        }
    }
}
namespace Sale\Handlers\Delivery\Spsr {
    class Replacement
    {
        public static function getVariants()
        {
        }
    }
    class Request
    {
        protected $httpClient;
        protected static $url_http = "http://api.spsr.ru:8020/waExec";
        protected static $url_https = "https://api.spsr.ru/";
        public function __construct()
        {
        }
        /**
         * @param $requestData
         * @return Result
         */
        public function send($requestData)
        {
        }
        protected static function utfDecode($str)
        {
        }
        public function getServiceTypes($sid, array $knownServices)
        {
        }
        public function getSidResult($login, $pass, $companyName)
        {
        }
        public function getInvoicesInfo($sid, $icn, $lang, array $invoiceNumbers)
        {
        }
    }
    class Calculator
    {
        protected static $url = "http://www.cpcr.ru/cgi-bin/postxml.pl";
        protected static function getHttpClient()
        {
        }
        protected static function getLocationCode(\Bitrix\Sale\Shipment $shipment)
        {
        }
        protected static function buildRequest(\Bitrix\Sale\Shipment $shipment, array $additional)
        {
        }
        public static function calculate(\Bitrix\Sale\Shipment $shipment, $additional)
        {
        }
        protected static function sendRequest($request)
        {
        }
        protected static function utfDecode($str)
        {
        }
    }
    final class Location extends \Bitrix\Sale\Location\Comparator\Mapper
    {
        const EXTERNAL_SERVICE_CODE = 'SPSR';
        const CSV_FILE_PATH = '/bitrix/modules/sale/handlers/delivery/spsr/location.csv';
        protected $tmpTable = null;
        protected $serviceId = 0;
        public function __construct()
        {
        }
        protected function getLocationsRequest($cityName = '', $countryName = '')
        {
        }
        protected function mapByNames($startId = 0, $timeout = 0)
        {
        }
        public static function install()
        {
        }
        public function mapStepless()
        {
        }
        public function map($stage, $step = '', $progress = 0, $timeout = 0)
        {
        }
        protected function calculateProgress($id, $maxId, $progress, $minProgress, $maxProgress)
        {
        }
    }
}
namespace Sale\Handlers\Delivery {
    class SpsrProfile extends \Bitrix\Sale\Delivery\Services\Base
    {
        /** @var SpsrHandler Parent service. */
        protected $spsrHandler = null;
        /** @var int Service type */
        protected $serviceType = 0;
        protected static $whetherAdminExtraServicesShow = true;
        /** @var bool This handler is profile */
        protected static $isProfile = true;
        /**
         * @param array $initParams
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function __construct(array $initParams)
        {
        }
        /**
         * @return string
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public static function getClassDescription()
        {
        }
        /**
         * Defines inheritance behavior.
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\SystemException
         */
        protected function inheritParams()
        {
        }
        /**
         * Calculates price
         * @param Shipment $shipment
         * @return CalculationResult
         */
        protected function calculateConcrete(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function isCalculatePriceImmediately()
        {
        }
        /**
         * @return array Handler's configuration
         */
        protected function getConfigStructure()
        {
        }
        /**
         * @return \Bitrix\Sale\Delivery\Services\Base|\Sale\Handlers\Delivery\SpsrHandler Parent sevice.
         */
        public function getParentService()
        {
        }
        /**
         * @return array
         */
        public function getEmbeddedExtraServicesList()
        {
        }
        /**
         * @param Shipment $shipment
         * @return bool
         */
        public function isCompatible(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param $profileId
         * @return array
         */
        public static function getProfileES($profileId)
        {
        }
        public static function install()
        {
        }
        public static function unInstall()
        {
        }
        public static function isInstalled()
        {
        }
        public static function isProfile()
        {
        }
        public static function whetherAdminExtraServicesShow()
        {
        }
    }
}
namespace Sale\Handlers\Delivery\Additional\RusPost\Reliability {
    /**
     * Class ReliabilityCollection
     * @package Sale\Handlers\Delivery\Additional\RusPost\Reliability
     */
    class ReliabilityCollection extends \Bitrix\Sale\Internals\EO_Reliability_Collection
    {
        /**
         * @param array $hashes
         * @return ReliabilityCollection
         */
        public function filterByHashes(array $hashes)
        {
        }
        /**
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function saveItems()
        {
        }
        /**
         * @param Reliability[] $items
         */
        public function setItems(array $items)
        {
        }
    }
    /**
     * Class Service
     * @package Sale\Handlers\Delivery\Additional\RusPost\Reliability
     */
    class Service
    {
        const UNKNOWN = 0;
        const RELIABLE = 10;
        const FRAUD = 20;
        /**
         * @param int $deliveryId
         * @param ReliabilityCollection $collection
         * @return ReliabilityCollection
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getReliabilityCollection(int $deliveryId, \Sale\Handlers\Delivery\Additional\RusPost\Reliability\ReliabilityCollection $collection)
        {
        }
        /**
         * @param int $deliveryId
         * @param string $fullName
         * @param string $address
         * @param string $phone
         * @return int
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getReliabilityValue(int $deliveryId, string $fullName, string $address, string $phone)
        {
        }
        /**
         * @param int $deliveryId
         * @return string
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public static function prepareData(int $deliveryId, int $attempt = 0)
        {
        }
        /**
         * @param Shipment $shipment
         * @return PropertyValueCollectionBase|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         */
        private static function extractProperties(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param PropertyValueCollectionBase $props
         * @return array|null
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        private static function extractDataFromProps(\Bitrix\Sale\PropertyValueCollectionBase $props)
        {
        }
        /**
         * @param $expectedDeliveryId
         * @param Event $event
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function onShipmentSave($expectedDeliveryId, \Bitrix\Main\Event $event)
        {
        }
        /**
         * @param $expectedDeliveryId
         * @param Event $event
         * @return \Bitrix\Main\EventResult
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\SystemException
         */
        public static function onSaleAdminOrderInfoBlockShow($expectedDeliveryId, \Bitrix\Main\Event $event)
        {
        }
        /**
         * @param int $deliveryId
         * @param ReliabilityCollection $collection
         * @return bool|ReliabilityCollection
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\SystemException
         */
        private static function requestReliability(int $deliveryId, \Sale\Handlers\Delivery\Additional\RusPost\Reliability\ReliabilityCollection $collection)
        {
        }
        /**
         * @param Delivery\Services\Base $delivery
         * @return bool
         */
        private static function isDeliverySuitable(\Bitrix\Sale\Delivery\Services\Base $delivery, $expectedDeliveryId = 0)
        {
        }
        /**
         * @param string $address
         * @param string $fullName
         * @param string $phone
         * @return string
         */
        public static function createHash(string $fullName, string $address, string $phone)
        {
        }
        /**
         * @param int $deliveryId
         */
        public static function install(int $deliveryId)
        {
        }
        /**
         * @param int $deliveryId
         */
        public static function unInstall(int $deliveryId)
        {
        }
        /**
         * @return HttpClient
         */
        private static function createHttpClient()
        {
        }
        /**
         * @param int $deliveryId
         */
        private static function addAgent(int $deliveryId, int $attempts)
        {
        }
        /**
         * @param int $deliveryId
         * @param int $attempts
         * @return string
         */
        private static function createAgentName(int $deliveryId, int $attempts)
        {
        }
        /**
         * @return ReliabilityTable
         */
        private static function getTableClass()
        {
        }
    }
    /**
     * Class Requester
     * @package Sale\Handlers\Delivery\Additional\RusPost\Reliability
     * @internal
     */
    class Requester
    {
        private $deliveryRequestsHandler = null;
        /**
         * Requester constructor.
         * @param Additional\DeliveryRequests\RusPost\Handler $deliveryRequestsHandler
         */
        public function __construct(\Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Handler $deliveryRequestsHandler)
        {
        }
        /**
         * @param ReliabilityCollection $collection
         * @return bool|ReliabilityCollection
         */
        public function request(\Sale\Handlers\Delivery\Additional\RusPost\Reliability\ReliabilityCollection $collection)
        {
        }
        private function obtainDataFromRequestResult(\Bitrix\Sale\Delivery\Requests\Result $result, \Sale\Handlers\Delivery\Additional\RusPost\Reliability\ReliabilityCollection $collection)
        {
        }
        /**
         * @param ReliabilityCollection $collection
         * @return array
         */
        private function createRequestData(\Sale\Handlers\Delivery\Additional\RusPost\Reliability\ReliabilityCollection $collection)
        {
        }
    }
    /**
     * Class Reliability
     * @package Sale\Handlers\Delivery\Additional\RusPost\Reliability
     */
    class Reliability extends \Bitrix\Sale\Internals\EO_Reliability
    {
        /**
         * @param string $fullName
         * @param string $address
         * @param string $phone
         * @return Reliability
         */
        public static function create(string $fullName, string $address, string $phone)
        {
        }
    }
}
namespace Sale\Handlers\Delivery\Additional\RusPost {
    /**
     * Class Helper
     * @package Sale\Handlers\Delivery\Additional\RusPost
     */
    class Helper
    {
        /**
         * @param int $deliveryId
         * @param bool $useCache
         * @return array
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getEnabledShippingPointsList($deliveryId, $useCache = true)
        {
        }
        /**
         * @param int $deliveryId
         * @return Result
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getEnabledShippingPointsListResult($deliveryId)
        {
        }
        /**
         * @param \Sale\Handlers\Delivery\AdditionalHandler $deliveryService
         * @return array
         */
        public static function getSelectedShippingPoint($deliveryService)
        {
        }
    }
}
namespace Sale\Handlers\Delivery {
    /**
     * Class AdditionalHandler
     * Allows to use additional delivery services
     * @package Sale\Handlers\Delivery
     */
    class AdditionalHandler extends \Bitrix\Sale\Delivery\Services\Base
    {
        /** @var string The real type of the handler */
        protected $serviceType = "";
        protected static $canHasProfiles = true;
        protected static $whetherAdminExtraServicesShow = true;
        protected $trackingClass = '\\Sale\\Handlers\\Delivery\\AdditionalTracking';
        protected $trackingTitle = '';
        protected $trackingDescription = '';
        protected $profilesListFull = null;
        protected $extraServicesList = null;
        const LOGO_FILE_ID_OPTION = 'handlers_dlv_add_lgotip';
        /**
         * AdditionalHandler constructor.
         * @param array $initParams
         * @throws ArgumentNullException
         */
        public function __construct(array $initParams)
        {
        }
        public function getDeliveryRequestHandler()
        {
        }
        /**
         * @return string Class title.
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string Class, service description.
         */
        public static function getClassDescription()
        {
        }
        /**
         * @return array
         * @throws SystemException
         * todo: business values for default values
         */
        protected function getConfigStructure()
        {
        }
        /**
         * @return array Supported types of services.
         */
        public static function getSupportedServicesList()
        {
        }
        /**
         * @return array
         */
        protected function getServiceParams()
        {
        }
        protected function getLogoFileId()
        {
        }
        protected function setLogoFileId($logoId)
        {
        }
        /**
         * @return array
         */
        public static function getChildrenClassNames()
        {
        }
        /**
         * @return array profiles ids and names
         */
        public function getProfilesList()
        {
        }
        public function getTrackingStatuses(array $trackingNumbers = array())
        {
        }
        public function getTrackingClassTitle()
        {
        }
        public function getTrackingClassDescription()
        {
        }
        /**
         * @return array All profile fields.
         */
        public function getProfilesListFull()
        {
        }
        /**
         * @return bool
         */
        public static function whetherAdminExtraServicesShow()
        {
        }
        /**
         * @return string
         */
        public function getServiceType()
        {
        }
        /**
         * @param $shipment
         * @return array
         */
        public function getCompatibleProfiles($shipment)
        {
        }
        /**
         * @return bool
         */
        public static function canHasProfiles()
        {
        }
        public static function onAfterUpdate($serviceId, array $fields = array())
        {
        }
        /**
         * @param int $serviceId
         * @param array $fields
         * @return bool
         */
        public static function onAfterAdd($serviceId, array $fields = array())
        {
        }
        protected static function installReliability(int $serviceId, bool $doInstall)
        {
        }
        /**
         * @param string $type
         * @param string $profileId
         * @param array $params
         * @throws \Exception
         */
        protected function addRestriction($type, $profileId, array $params)
        {
        }
        /**
         * @param string $type
         * @param array $fields
         * @return array
         */
        protected function getProfileDefaultParams($type, array $fields)
        {
        }
        public function getAdminMessage()
        {
        }
        protected function isLicenseWrong()
        {
        }
        public function execAdminAction()
        {
        }
        public function getAdminAdditionalTabs()
        {
        }
        public static function install()
        {
        }
        public static function unInstall()
        {
        }
        public static function onSaleDeliveryTrackingClassNamesBuildList()
        {
        }
        public function getEmbeddedExtraServicesList()
        {
        }
        public static function onSaleDeliveryExtraServicesClassNamesBuildList()
        {
        }
        public function isCompatible(\Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getTrackingUrlTempl()
        {
        }
        /**
         * @param Shipment $shipment
         * @param string $serviceType
         * @return array
         */
        public static function getShipmentParams(\Bitrix\Sale\Shipment $shipment, $serviceType)
        {
        }
        /**
         * @param $locationCode
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        protected static function getLocationForRequest($locationCode)
        {
        }
        /**
         * @param int $locationCode Location code.
         * @param string $lang Language identifier.
         * @return array Location components by type.
         * @throws \Bitrix\Main\ArgumentException
         */
        protected static function getLocationChainByTypes($locationCode, $lang = LANGUAGE_ID)
        {
        }
        public function prepareFieldsForSaving(array $fields)
        {
        }
    }
}
namespace Sale\Handlers\Delivery\Additional {
    /**
     * Class Action
     * @package Sale\Handlers\Delivery\Additional
     */
    class Action
    {
        const EXECUTED_OPTION = 'handlers_dlv_add_action_executed';
        /**
         * @param array $params
         * @return Result
         */
        public static function execute(array $params)
        {
        }
        /**
         * @param string $id Action identifier.
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         */
        private static function isExecuted($id)
        {
        }
        /**
         * @param string $id Action identifier.
         * @throws \Bitrix\Main\ArgumentNullException
         */
        private static function setExecuted($id)
        {
        }
    }
    /**
     * Class Cache
     * @package Sale\Handlers\Delivery\Additional
     * define const SALE_HNDL_DLV_ADD_CACHE_DISABLE to avoid caching.
     */
    class Cache
    {
        protected $ttl = 0;
        protected $cacheIdBase = '';
        /** @var \Bitrix\Main\Data\ManagedCache */
        protected static $cacheManager = null;
        /**
         * Cache constructor.
         * @param string $type
         * @param int $ttl
         */
        public function __construct($type, $ttl)
        {
        }
        /**
         * @param string[] $ids
         * @return mixed
         */
        public function get(array $ids = array())
        {
        }
        public function getAll()
        {
        }
        /**
         * @param mixed $value
         * @param string[] $ids
         */
        public function set($value, array $ids)
        {
        }
        /**
         *
         */
        public function clean()
        {
        }
        /**
         * @param string[] $ids
         * @return string
         */
        protected function getCacheId(array $ids = array())
        {
        }
        /**
         * @param string $type
         * @return string
         */
        protected static function createCacheId($type)
        {
        }
    }
    /**
     * Class CacheSession
     * Use session for cache purposes
     * We suggest that smt. (tariffs) will be constant during user shopping.
     * We increase the load on usual cache.
     * @package Sale\Handlers\Delivery\Additional
     */
    class CacheSession extends \Sale\Handlers\Delivery\Additional\Cache
    {
        public function __construct($type, $ttl)
        {
        }
        /**
         * @param mixed $value
         * @param string[] $ids
         */
        public function set($value, array $ids)
        {
        }
        /**
         * @param string[] $ids
         * @return bool
         */
        public function get(array $ids = array())
        {
        }
        /**
         * @param array $ids
         */
        public function clean(array $ids = array())
        {
        }
    }
    /**
     * Class CacheManager
     * @package Sale\Handlers\Delivery\Additional
     */
    class CacheManager
    {
        protected static $items = array();
        const TYPE_NONE = 0;
        const TYPE_PROFILES_LIST = 1;
        const TYPE_DELIVERY_FIELDS = 2;
        const TYPE_DELIVERY_PRICE = 3;
        const TYPE_PROFILE_FIELDS = 4;
        const TYPE_DELIVERY_LIST = 5;
        const TYPE_PROFILE_CONFIG = 6;
        const TYPE_EXTRA_SERVICES = 7;
        // types of cache
        const LOC_CACHE = 1;
        const LOC_SESSION = 2;
        //Possible cache types & some params
        protected static $types = array(
            self::TYPE_PROFILES_LIST => array('TTL' => 2419200, 'LOC' => self::LOC_CACHE),
            // month cache
            self::TYPE_DELIVERY_FIELDS => array('TTL' => 2419200, 'LOC' => self::LOC_CACHE),
            // month cache
            self::TYPE_DELIVERY_PRICE => array('TTL' => 0, 'LOC' => self::LOC_SESSION),
            // session
            self::TYPE_PROFILE_FIELDS => array('TTL' => 2419200, 'LOC' => self::LOC_CACHE),
            // month cache
            self::TYPE_DELIVERY_LIST => array('TTL' => 2419200, 'LOC' => self::LOC_CACHE),
            // month cache
            self::TYPE_PROFILE_CONFIG => array('TTL' => 0, 'LOC' => self::LOC_SESSION),
            // session
            self::TYPE_EXTRA_SERVICES => array('TTL' => 2419200, 'LOC' => self::LOC_CACHE),
        );
        /**
         * @param string $type Cache type
         * @return Cache
         * @throws ArgumentOutOfRangeException
         */
        public static function getItem($type)
        {
        }
        public static function cleanAll()
        {
        }
        public static function getAll()
        {
        }
    }
}
namespace Sale\Handlers\Delivery\Additional\Location {
    class Replacement
    {
        public static function getLocalityTypes()
        {
        }
        public static function getRegionTypes()
        {
        }
        public static function getRegionExceptions()
        {
        }
        public static function getDistrictTypes()
        {
        }
        public static function getNameRussia()
        {
        }
        public static function getCountryName()
        {
        }
    }
}
namespace Sale\Handlers\Delivery\Additional\ExtraServices {
    class Lift extends \Bitrix\Sale\Delivery\ExtraServices\Base
    {
        public function __construct($id, array $structure, $currency, $value = null, array $additionalParams = array())
        {
        }
        public function getClassTitle()
        {
        }
        public function setValue($value)
        {
        }
        public function getCostShipment(\Bitrix\Sale\Shipment $shipment = null)
        {
        }
        public static function getAdminParamsName()
        {
        }
        public static function getAdminParamsControl($name, array $params = array(), $currency = "")
        {
        }
        protected function createJSOnchange($id)
        {
        }
        public static function prepareParamsToSave(array $params)
        {
        }
        public static function isEmbeddedOnly()
        {
        }
    }
    class Insurance extends \Bitrix\Sale\Delivery\ExtraServices\Base
    {
        public function __construct($id, array $structure, $currency, $value = null, array $additionalParams = array())
        {
        }
        public function getClassTitle()
        {
        }
        public function getCostShipment(\Bitrix\Sale\Shipment $shipment = null)
        {
        }
        protected function getShipmentProductsPrice(\Bitrix\Sale\Shipment $shipment = null)
        {
        }
        public static function getAdminParamsName()
        {
        }
        public static function getAdminParamsControl($name, array $params, $currency = "")
        {
        }
        protected function createJSOnchange($id)
        {
        }
        public static function isEmbeddedOnly()
        {
        }
        public function getPriceShipment(\Bitrix\Sale\Shipment $shipment = null)
        {
        }
    }
}
namespace Sale\Handlers\Delivery {
    /**
     * Class AdditionalTracking
     * @package \Sale\Handlers\Delivery;
     */
    class AdditionalTracking extends \Bitrix\Sale\Delivery\Tracking\Base
    {
        /** @var  \Sale\Handlers\Delivery\AdditionalHandler */
        protected $deliveryService;
        protected $classTitle = '';
        protected $classDescription = '';
        public function __construct(array $params, \Bitrix\Sale\Delivery\Services\Base $deliveryService)
        {
        }
        /**
         * @return string
         */
        public function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public function getClassDescription()
        {
        }
        /**
         * @param $trackingNumber
         * @return StatusResult.
         */
        public function getStatus($trackingNumber)
        {
        }
        /**
         * @param array $trackingNumbers
         * @return Result
         */
        public function getStatuses(array $trackingNumbers)
        {
        }
        protected static function translateDate($externalDate)
        {
        }
        /**
         * @return array
         */
        public function getParamsStructure()
        {
        }
        /**
         * @param string $trackingNumber
         * @return string Url were we can see tracking information
         */
        public function getTrackingUrl($trackingNumber = '')
        {
        }
    }
}
namespace Sale\Handlers\Delivery\Additional {
    /**
     * Class RestClient
     * Allows exchanging information with server via rest
     * Caches some requests if it possible
     * @package Sale\Handlers\Delivery\Additional
     */
    class RestClient extends \Bitrix\Sale\Services\Base\RestClient
    {
        const WRONG_LICENSE_OPTION = 'handlers_dlv_add_rest_wrong_license';
        /**
         * @return \Bitrix\Sale\Result
         */
        public function getDeliveryList()
        {
        }
        /**
         * @param string $serviceType
         * @return \Bitrix\Sale\Result
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function getDeliveryProfilesList($serviceType)
        {
        }
        /**
         * @param string $serviceType
         * @param string $profileType
         * @return \Bitrix\Sale\Result
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function getDeliveryProfileFields($serviceType, $profileType)
        {
        }
        /**
         * @param string $serviceType
         * @return \Bitrix\Sale\Result
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function getDeliveryFields($serviceType)
        {
        }
        /**
         * @param string $serviceType
         * @param string $profileType
         * @param array $serviceParams
         * @param array $profileParams
         * @param Shipment $shipment
         * @return CalculationResult
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function getDeliveryPrice($serviceType, $profileType, array $serviceParams, array $profileParams, \Bitrix\Sale\Shipment $shipment)
        {
        }
        public function getProfileConfig($serviceType, $profileType)
        {
        }
        public function getDeliveryExtraServices($serviceType)
        {
        }
        public function getProfileExtraServices($serviceType, $profileType, array $profileParams)
        {
        }
        public function getTrackingStatuses($serviceType, array $serviceParams, array $trackingNumbers = array())
        {
        }
        protected function setCacheItem($result, $cacheType, array $cacheIds)
        {
        }
        protected function getItem($callMethod, $cacheType, array $callParams = array(), array $cacheIds = array())
        {
        }
        private function processActions(array $actions)
        {
        }
    }
    /**
     * Class Location
     * Convert service locations to local and back
     * @package Sale\Handlers\Delivery\Additional
     * We explain that Location types codes are:
     * COUNTRY, REGION, SUBREGION, CITY, VILLAGE
     */
    class Location extends \Bitrix\Sale\Delivery\ExternalLocationMap
    {
        const EXTERNAL_SERVICE_CODE = 'ADD_DLV';
        //public path
        const ETHALON_LOCATIONS_PATH = '/bitrix/services/saleservices/locations.zip';
        public static function compareStepless()
        {
        }
        public static function compare($stage, $step = '', $progress = 0, $timeout = 0)
        {
        }
        protected static function getLastEthalonLoc()
        {
        }
        protected static function getLocationsFilePath()
        {
        }
        protected static function getReplacementClass()
        {
        }
        protected static function getCountryName()
        {
        }
        protected static function mapByNames($srvId, $startId = 0, $timeout = 0)
        {
        }
        protected static function mapByCodes($srvId)
        {
        }
        protected static function updateLinksInfo($srvId)
        {
        }
        protected static function saveCsvToTmpTable($path)
        {
        }
        protected static function unpackLocations($archivePath)
        {
        }
        protected static function downloadLocations()
        {
        }
    }
}
namespace Sale\Handlers\Delivery {
    class AdditionalProfile extends \Bitrix\Sale\Delivery\Services\Base
    {
        /** @var AdditionalHandler Parent service. */
        protected $additionalHandler = null;
        /** @var string Service type */
        protected $profileType = "";
        protected $trackingTitle = "";
        protected $trackingDescription = "";
        protected static $whetherAdminExtraServicesShow = true;
        /** @var bool This handler is profile */
        protected static $isProfile = true;
        /**
         * @param array $initParams
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function __construct(array $initParams)
        {
        }
        protected function isRusPost()
        {
        }
        /**
         * @return array
         */
        protected function getProfileParams()
        {
        }
        /**
         * @return string
         */
        public static function getClassTitle()
        {
        }
        /**
         * @return string
         */
        public static function getClassDescription()
        {
        }
        /**
         * Defines inheritance behavior.
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\SystemException
         */
        protected function inheritParams()
        {
        }
        /**
         * Calculates price
         * @param Shipment $shipment
         * @return CalculationResult
         * @throws SystemException
         * todo: Send default values if some params added to config, but not saved yet.
         */
        protected function calculateConcrete(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param array $config
         * @return array
         */
        public static function extractConfigValues(array $config)
        {
        }
        /**
         * @return bool
         */
        public function isCalculatePriceImmediately()
        {
        }
        /**
         * @return array Handler's configuration
         */
        protected function getConfigStructure()
        {
        }
        /**
         * @return \Bitrix\Sale\Delivery\Services\Base|\Sale\Handlers\Delivery\SpsrHandler Parent sevice.
         */
        public function getParentService()
        {
        }
        /**
         * @param Shipment $shipment
         * @return bool
         */
        public function isCompatible(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * Install handler
         */
        public static function install()
        {
        }
        /**
         * Uninstall
         */
        public static function unInstall()
        {
        }
        /**
         * Is handler installed
         */
        public static function isInstalled()
        {
        }
        /**
         * @return bool
         */
        public static function isProfile()
        {
        }
        /**
         * @return bool
         */
        public static function whetherAdminExtraServicesShow()
        {
        }
        /**
         * @return array
         */
        public function getEmbeddedExtraServicesList()
        {
        }
        public function getTrackingClassTitle()
        {
        }
        public function getTrackingClassDescription()
        {
        }
        /**
         * @return bool
         */
        public function isTrackingInherited()
        {
        }
        public function execAdminAction()
        {
        }
    }
}
namespace Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost {
    class Handler extends \Bitrix\Sale\Delivery\Requests\HandlerBase
    {
        /** @var HttpClient */
        protected $httpClient = null;
        /**
         * Handler constructor.
         * @param Services\Base $deliveryService
         */
        public function __construct(\Bitrix\Sale\Delivery\Services\Base $deliveryService)
        {
        }
        /**
         * @return null
         */
        protected function getHttpClient()
        {
        }
        /**
         * @param HttpClient $httpClient
         */
        public function setHttpClient(\Bitrix\Main\Web\HttpClient $httpClient) : void
        {
        }
        /**
         * Register local classes.
         * @throws \Bitrix\Main\LoaderException
         */
        protected static function registerLocalClasses()
        {
        }
        /**
         * @param int $requestId
         * @return array
         */
        public function getActions($requestId)
        {
        }
        /**
         * @param int $requestId
         * @param string $actionType
         * @param array $additional
         * @return Requests\Result
         */
        public function executeAction($requestId, $actionType, array $additional)
        {
        }
        /**
         * @param Shipment $shipment
         * @return array
         */
        public function getShipmentActions(\Bitrix\Sale\Shipment $shipment)
        {
        }
        /**
         * @param int $requestId
         * @param int $shipmentId
         * @param string $actionType
         * @param array $additional
         * @return Requests\Result
         */
        public function executeShipmentAction($requestId, $shipmentId, $actionType, array $additional)
        {
        }
        /**
         * @param string $requestType
         * @param array $requestData
         * @return Requests\Result
         */
        public function send($requestType, array $requestData)
        {
        }
        /**
         * Creates delivery request
         * @param int[] $shipmentIds
         * @param array $additional
         * @return Requests\Result
         */
        public function create(array $shipmentIds, array $additional = array())
        {
        }
        /**
         * @param int $requestId
         * @param \int[] $shipmentIds
         * @return Requests\Result
         */
        public function addShipments($requestId, $shipmentIds)
        {
        }
        /**
         * @param int $requestId
         * @return Requests\Result
         */
        public function delete($requestId)
        {
        }
        /**
         * @param int $formFieldsType
         * @param int[] $entityIds
         * @param array $additional
         * @return array
         */
        public function getFormFields($formFieldsType, array $entityIds, array $additional = array())
        {
        }
        protected function getDeliveryServiceOps()
        {
        }
        /**
         * @param string $type
         * @return null|RequestBase
         */
        public function getRequestObject($type)
        {
        }
        /**
         * @param string $field
         * @return mixed
         */
        protected function getContentFieldName($field)
        {
        }
        /**
         * @param string $field
         * @param mixed $value
         * @return string
         */
        protected function getContentFieldValue($field, $value)
        {
        }
        /**
         * @param int $requestId
         * @return Requests\Result
         */
        public function getContent($requestId)
        {
        }
        /**
         * @param int $requestId
         * @param array $shipmentIds
         * @return Requests\Result
         * @throws \Bitrix\Main\ArgumentException
         */
        public function deleteShipments($requestId, array $shipmentIds = array())
        {
        }
        /**
         * Update shipment from delivery request
         * @param int $requestId
         * @param int[] $shipmentIds
         * @return Requests\Result
         */
        public function updateShipments($requestId, array $shipmentIds = array())
        {
        }
        /**
         * @param string $field
         * @return mixed
         */
        protected function getShipmentContentFieldName($field)
        {
        }
        /**
         * @param string $field
         * @param mixed $value
         * @return string
         */
        protected function getShipmentContentFieldValue($field, $value)
        {
        }
        /**
         * @param int $requestId
         * @param int $shipmentId
         * @return Requests\Result
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getShipmentContent($requestId, $shipmentId)
        {
        }
    }
    class Reference
    {
        /**
         * @return array
         */
        public static function getRpoCategoriesMap()
        {
        }
        /**
         * @return array
         */
        public static function getQualityCodesList()
        {
        }
        /**
         * @return array
         */
        public static function getProfilesCategoriesMap()
        {
        }
        /**
         * @param string $kind
         * @return string
         */
        public static function getRpoKind($kind)
        {
        }
        /**
         * @param string $category
         * @return string
         */
        public static function getRpoCategory($category)
        {
        }
        /**
         * @param string $status
         * @return string
         */
        public static function getBatchStatus($status)
        {
        }
        /**
         * @param string $errorCode
         * @param string $method
         * @return string
         */
        public static function getErrorDescription($errorCode, $method)
        {
        }
        /**
         * @param string $method
         * @return string
         */
        public static function getPaymentMethod($method)
        {
        }
        /**
         * @param string $type
         * @return string
         */
        public static function getShipmentNoticeType($type)
        {
        }
        /**
         * @param string $type
         * @return string
         */
        public static function getTransportType($type)
        {
        }
        /**
         * @param string $type
         * @return string
         */
        public static function getPostmarkType($type)
        {
        }
        /**
         * @param string $type
         * @return string
         */
        public static function getAddressType($type)
        {
        }
        /**
         * @param string $type
         * @return string
         */
        public static function getEnvelopeType($type)
        {
        }
        /**
         * @param string $attr
         * @return string
         */
        public static function getTrackingAttr($attr)
        {
        }
        /**
         * @param string $operation
         * @return string
         */
        public static function getTrackingOper($operation)
        {
        }
        /**
         * @param string $rank
         * @return string
         */
        public static function getMailRank($rank)
        {
        }
    }
}
namespace Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests {
    /**
     * Class Base
     * Base class for requests of all types.
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     */
    abstract class Base
    {
        /** @var HttpClient */
        protected $httpClient = null;
        protected $url = "https://otpravka-api.pochta.ru";
        protected $path = "";
        protected $type = "";
        /** @var AdditionalHandler  */
        protected $deliveryService = null;
        /**
         * Base constructor.
         * @param Delivery\Services\Base $deliveryService
         */
        public function __construct(\Bitrix\Sale\Delivery\Services\Base $deliveryService, \Bitrix\Main\Web\HttpClient $httpClient)
        {
        }
        /**
         * @return string
         */
        protected function getUrl()
        {
        }
        /**
         * @param array $rawData
         * @param array $requestData
         * @return Requests\Result
         */
        protected function convertResponse($rawData, $requestData)
        {
        }
        /**
         * @param int[] $shipmentIds
         * @param array $additional
         * @return Requests\Result
         */
        public function process(array $shipmentIds, array $additional = array())
        {
        }
        /**
         * @param int[] $shipmentIds
         * @param array $additional
         * @return Requests\Result
         */
        public function createBody(array $shipmentIds, array $additional = array())
        {
        }
        /**
         * @param array $requestData
         * @param array $additional
         * @return Requests\Result
         */
        public function send(array $requestData = array(), array $additional = array())
        {
        }
        /**
         * @param int[] $entityIds
         * @return array
         */
        public function getFormFields(array $entityIds)
        {
        }
    }
    /**
     * Class Batch
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Searches batch by name
     * https://otpravka.pochta.ru/specification#/batches-find_batch
     */
    class Batch extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\Base
    {
        protected $path = "/1.0/batch/{name}";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_GET;
        protected $internalId = 0;
        protected $externalId = '';
        /**
         * @param array $rawData
         * @param array $requestData
         * @return Requests\RequestResult
         */
        protected function convertResponse($rawData, $requestData)
        {
        }
        /**
         * @param int[] $requestIds
         * @param array $additional
         * @return Requests\Result
         */
        public function process(array $requestIds, array $additional = array())
        {
        }
    }
    /**
     * Class BaseFile
     * Base class for downloading requests.
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     */
    abstract class BaseFile extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\Base
    {
        /**
         * @param int[] $shipmentIds
         * @param array $additional
         * @return Requests\ResultFile
         */
        public function process(array $shipmentIds, array $additional = array())
        {
        }
        /**
         * @param array $requestData
         * @param array $additional
         * @return Requests\ResultFile
         */
        public function send(array $requestData = array(), array $additional = array())
        {
        }
    }
    /**
     * Class OrderDocF112EK
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Generates printing form F112EK
     * https://otpravka.pochta.ru/specification#/documents-create_f112
     */
    class OrderDocF112EK extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\BaseFile
    {
        protected $path = "/1.0/forms/{id}/f112pdf";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_GET;
    }
    /**
     * Class BatchOrders
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Receives data about shipments from the batch
     * https://otpravka.pochta.ru/specification#/batches-get_info_about_orders_in_batch
     */
    class BatchOrders extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\Base
    {
        protected $path = "/1.0/batch/{name}/shipment";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_GET;
        /**
         * @param array $requestData
         * @param array $additional
         * @return Requests\Result
         */
        public function send(array $requestData = array(), array $additional = array())
        {
        }
    }
    /**
     * Class BatchDocF103
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Generates printing form F103
     * https://otpravka.pochta.ru/specification#/documents-create_f103
     */
    class BatchDocF103 extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\BaseFile
    {
        protected $path = "/1.0/forms/{name}/f103pdf";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_GET;
        /**
         * @param int[] $requestIds
         * @param array $additional
         * @return Requests\Result|Requests\ResultFile
         * @throws Main\ArgumentException
         */
        public function process(array $requestIds, array $additional = array())
        {
        }
    }
    /**
     * Class CleanAddress
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Normalize addresses
     * https://otpravka.pochta.ru/specification#/nogroup-normalization_adress
     */
    class CleanAddress extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\Base
    {
        protected $path = "/1.0/clean/address";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_POST;
    }
    /**
     * Class OrderDelete
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Deletes order
     * https://otpravka.pochta.ru/specification#/orders-delete_new_order
     */
    class OrderDelete extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\Base
    {
        protected $path = "/1.0/shipment";
        protected $type = 'DELETE';
        protected $idsMap = array();
        // array('internalId' => 'externalId', ....)
        /**
         * @param array $rawData
         * @param array $requestData
         * @return Requests\Result
         */
        protected function convertResponse($rawData, $requestData)
        {
        }
        /**
         * @param int[] $shipmentIds
         * @param array $additional
         * @return Requests\Result
         */
        public function createBody(array $shipmentIds, array $additional = array())
        {
        }
    }
    /**
     * Class NormalizeFio
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Normalizes names
     * https://otpravka.pochta.ru/specification#/nogroup-normalization_fio
     */
    class NormalizeFio extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\Base
    {
        protected $path = "/1.0/clean/physical";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_POST;
    }
    /**
     * Class BatchDocAll
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Generates and receives full set of documents
     * https://otpravka.pochta.ru/specification#/documents-create_all_docs
     */
    class BatchDocAll extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\BaseFile
    {
        protected $path = "/1.0/forms/{name}/zip-all";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_GET;
        /**
         * @param int[] $requestIds
         * @param array $additional
         * @return Requests\Result|Requests\ResultFile
         * @throws Main\ArgumentException
         */
        public function process(array $requestIds, array $additional = array())
        {
        }
    }
    /**
     * Class UnreliableRecipient
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Normalizes names
     * https://otpravka.pochta.ru/specification#/nogroup-unreliable_recipient
     */
    class UnreliableRecipient extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\Base
    {
        protected $path = "/1.0/unreliable-recipient";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_POST;
    }
    /**
     * Class OrderCreate
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Creates shipment
     * https://otpravka.pochta.ru/specification#/orders-creating_order
     */
    class OrderCreate extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\Base
    {
        protected $path = "/1.0/user/backlog";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_PUT;
        /** @var AdditionalHandler */
        protected $deliveryService = null;
        /**
         * @param array $rawData
         * @param array $requestData
         * @return Requests\Result
         */
        protected function convertResponse($rawData, $requestData)
        {
        }
        /**
         * @param int[] $successIds
         * @param int[] $errorPositions
         * @param array $requestData
         * @return array
         */
        protected function getShipmentsMap($successIds, $errorPositions, $requestData)
        {
        }
        /**
         * @param array $addresses
         * @return Requests\Result
         */
        protected function normalizeAddresses(array $addresses)
        {
        }
        /**
         * @param array $fios
         * @return Requests\Result
         */
        protected function normalizeFios(array $fios)
        {
        }
        /**
         * @param array $address
         * @return bool
         */
        protected function isAddressGood(array $address)
        {
        }
        /**
         * @param int[] $shipmentIds
         * @param array $additional
         * @return Requests\Result
         */
        public function createBody(array $shipmentIds, array $additional = array())
        {
        }
    }
    /**
     * Class BatchCreate
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Creates batch from shipments
     * https://otpravka.pochta.ru/specification#/batches-create_batch_from_N_orders
     */
    class BatchCreate extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\Base
    {
        protected $path = "/1.0/user/shipment";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_POST;
        /** @var AdditionalHandler */
        protected $deliveryService = null;
        protected $shipmentIdsMap = array();
        // array( internalId => externalId, ....)
        /**
         * @param array $rawData
         * @param array $requestData
         * @return Requests\Result
         */
        protected function convertResponse($rawData, $requestData)
        {
        }
        /**
         * @param string $batchName
         * @return Requests\Result
         */
        protected function getBatchOrders($batchName)
        {
        }
        /**
         * @param int[] $shipmentIds
         * @param array $additional
         * @return Requests\Result
         */
        public function createBody(array $shipmentIds, array $additional = array())
        {
        }
        /**
         * @param int[] $shipmentIds
         * @param array $additional
         * @return Requests\Result
         */
        public function process(array $shipmentIds, array $additional = array())
        {
        }
    }
    /**
     * Class OrderDocForms
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Generates printing forms for shipments before creating the batch
     * https://otpravka.pochta.ru/specification#/documents-create_forms_backlog
     */
    class OrderDocForms extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\BaseFile
    {
        protected $path = "/1.0/forms/{id}/forms";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_GET;
    }
    /**
     * Class OPS
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Receives shipping points for user
     * https://otpravka.pochta.ru/specification#/settings-shipping_points
     */
    class UserSettings extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\Base
    {
        protected $path = "/1.0/settings";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_GET;
    }
    /**
     * Class BatchDateUpdate
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Changes sending date
     * https://otpravka.pochta.ru/specification#/batches-sending_date
     */
    class BatchDateUpdate extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\Base
    {
        protected $path = "/1.0/batch/{name}/sending/{year}/{month}/{dayOfMonth}";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_POST;
        /**
         * @param array $rawData
         * @param array $requestData
         * @return Requests\Result
         */
        protected function convertResponse($rawData, $requestData)
        {
        }
        /**
         * @param int[] $requestIds
         * @param array $additional
         * @return Requests\Result
         */
        public function process(array $requestIds, array $additional = array())
        {
        }
        /**
         * @param int[] $requestIds
         * @return array
         */
        public function getFormFields(array $requestIds)
        {
        }
    }
    /**
     * Class BatchOrder
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Searching for shipment by id
     * https://otpravka.pochta.ru/specification#/batches-find_order_by_id
     */
    class BatchOrder extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\Base
    {
        protected $path = "/1.0/shipment/{id}";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_GET;
        /**
         * @param int[] $shipmentIds
         * @param array $additional
         * @return Requests\Result
         */
        public function process(array $shipmentIds, array $additional = array())
        {
        }
    }
    /**
     * Class BatchesList
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Searching of all batches
     * https://otpravka.pochta.ru/specification#/batches-search_all_batches
     */
    class BatchesList extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\Base
    {
        protected $path = "/1.0/batch";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_GET;
        /**
         * @param array $rawData
         * @param array $requestData
         * @return Requests\Result
         * @throws \Bitrix\Main\ArgumentException
         */
        protected function convertResponse($rawData, $requestData)
        {
        }
    }
    /**
     * Class BatchOrderAdd
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Add shipment to the batch
     * https://otpravka.pochta.ru/specification#/batches-add_orders_to_batch
     */
    class BatchOrderAdd extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\Base
    {
        protected $path = "/1.0/batch/{name}/shipment";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_PUT;
        protected $name = '';
        protected $internalRequestId = 0;
        /**
         * @param array $rawData
         * @param array $requestData
         * @return Requests\Result
         */
        protected function convertResponse($rawData, $requestData)
        {
        }
        /**
         * @param int[] $shipmentIds
         * @param array $additional
         * @return Requests\Result
         */
        public function createBody(array $shipmentIds, array $additional = array())
        {
        }
        /**
         * @param int[] $shipmentIds
         * @param array $additional
         * @return Requests\Result
         */
        public function process(array $shipmentIds, array $additional = array())
        {
        }
    }
    /**
     * Class OPS
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Receives shipping points for user
     * https://otpravka.pochta.ru/specification#/settings-shipping_points
     */
    class OPS extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\Base
    {
        protected $path = "/1.0/user-shipping-points";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_GET;
    }
    /**
     * Class OrderDocF7P
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Genere\ates printing form F7p
     * https://otpravka.pochta.ru/specification#/documents-create_f7_f22
     */
    class OrderDocF7P extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\BaseFile
    {
        protected $path = "/1.0/forms/{id}/f7pdf";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_GET;
    }
    /**
     * Class BatchDocPrepare
     * @package Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests
     * Preparing and sending form 103
     * https://otpravka.pochta.ru/specification#/documents-checkin
     */
    class BatchDocPrepare extends \Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests\Base
    {
        protected $path = "/1.0/batch/{name}/checkin?sendEmail=true";
        protected $type = \Bitrix\Main\Web\HttpClient::HTTP_POST;
        /**
         * @param array $rawData
         * @param array $requestData
         * @return Requests\Result
         */
        protected function convertResponse($rawData, $requestData)
        {
        }
        /**
         * @param int[] $requestIds
         * @param array $additional
         * @return Requests\Result
         * @throws Main\ArgumentException
         */
        public function process(array $requestIds, array $additional = array())
        {
        }
    }
}
namespace Sale\Handlers\Delivery {
    /**
     * Class RestHandler
     * @package Sale\Handlers\Delivery
     */
    final class RestHandler extends \Bitrix\Sale\Delivery\Services\Base
    {
        protected static $canHasProfiles = true;
        protected static $whetherAdminExtraServicesShow = true;
        private $handlerCode = '';
        /**
         * Returns class name
         * @return string
         */
        public static function getClassTitle() : string
        {
        }
        /**
         * @return string Class, service description.
         */
        public static function getClassDescription() : string
        {
        }
        /**
         * @param array $initParams Initial data params from table record.
         * @throws Main\ArgumentTypeException
         * @throws Main\SystemException
         */
        public function __construct(array $initParams)
        {
        }
        /**
         * @return mixed|string
         */
        public function getHandlerCode()
        {
        }
        private function getHandlerSettings()
        {
        }
        /**
         * @return array
         * @throws \Exception
         */
        protected function getConfigStructure() : array
        {
        }
        /**
         * @param int $serviceId
         * @param array $fields
         * @return bool
         * @throws Main\ArgumentTypeException
         * @throws Main\SystemException
         */
        public static function onAfterAdd($serviceId, array $fields = array()) : bool
        {
        }
        /**
         * @return array All profile fields.
         */
        public function getProfilesListFull() : array
        {
        }
        /**
         * @param string $type
         * @param array $fields
         * @return array
         */
        private function getProfileDefaultParams($type, array $fields) : array
        {
        }
        /**
         * @return bool
         */
        public function isCalculatePriceImmediately() : bool
        {
        }
        /**
         * @return bool
         */
        public static function whetherAdminExtraServicesShow() : bool
        {
        }
        /**
         * @return array
         */
        public static function getChildrenClassNames() : array
        {
        }
        /**
         * @return array profiles ids and names
         */
        public function getProfilesList() : array
        {
        }
        /**
         * @return bool
         */
        public static function canHasProfiles() : bool
        {
        }
    }
    class RestProfile extends \Bitrix\Sale\Delivery\Services\Base
    {
        /** @var RestHandler Parent service. */
        protected $restHandler = null;
        /** @var string Service type */
        protected $profileType = '';
        protected static $whetherAdminExtraServicesShow = true;
        /** @var bool This handler is profile */
        protected static $isProfile = true;
        /**
         * @param array $initParams
         * @throws ArgumentNullException
         * @throws Main\ArgumentTypeException
         * @throws Main\SystemException
         */
        public function __construct(array $initParams)
        {
        }
        /**
         * @return string
         */
        public static function getClassTitle() : string
        {
        }
        /**
         * @return string
         */
        public static function getClassDescription() : string
        {
        }
        /**
         * @param Sale\Shipment $shipment
         * @return CalculationResult
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function calculateConcrete(\Bitrix\Sale\Shipment $shipment) : \Bitrix\Sale\Delivery\CalculationResult
        {
        }
        /**
         * @param Sale\Shipment $shipment
         * @return array
         * @throws ArgumentNullException
         * @throws Main\ArgumentException
         * @throws Main\NotImplementedException
         * @throws Main\ObjectNotFoundException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getRequestParams(\Bitrix\Sale\Shipment $shipment) : array
        {
        }
        /**
         * @param string $url
         * @param array $params
         * @return Sale\Result
         */
        private function sendRequest(string $url, array $params) : \Bitrix\Sale\Result
        {
        }
        /**
         * @return mixed|string
         */
        private function getProfileType()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getProfileParams()
        {
        }
        /**
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getHandlerParams()
        {
        }
        /**
         * @return bool
         */
        public function isCalculatePriceImmediately() : bool
        {
        }
        /**
         * @return array Handler's configuration
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function getConfigStructure() : array
        {
        }
        public function getParentService()
        {
        }
        /**
         * @return bool
         */
        public static function isProfile() : bool
        {
        }
        /**
         * @return bool
         */
        public static function whetherAdminExtraServicesShow() : bool
        {
        }
    }
}
namespace Sale\Handlers\DiscountPreset {
    final class Cumulative extends \Bitrix\Sale\Discount\Preset\BasePreset
    {
        const TYPE_FIXED = \Bitrix\Sale\Discount\Actions::VALUE_TYPE_FIX;
        const TYPE_PERCENT = \Bitrix\Sale\Discount\Actions::VALUE_TYPE_PERCENT;
        const TYPE_COUNT_PERIOD_ALL_TIME = \Bitrix\Sale\Discount\CumulativeCalculator::TYPE_COUNT_PERIOD_ALL_TIME;
        const TYPE_COUNT_PERIOD_INTERVAL = \Bitrix\Sale\Discount\CumulativeCalculator::TYPE_COUNT_PERIOD_INTERVAL;
        const TYPE_COUNT_PERIOD_RELATIVE = \Bitrix\Sale\Discount\CumulativeCalculator::TYPE_COUNT_PERIOD_RELATIVE;
        const MARK_DEFAULT_EMPTY_ROW = PHP_INT_MIN;
        public function getTitle()
        {
        }
        public function getDescription()
        {
        }
        /**
         * Tells if preset is available or not. It's possible that preset can't work in some license.
         * @return bool
         */
        public function isAvailable()
        {
        }
        /**
         * @return int
         */
        public function getCategory()
        {
        }
        public function getFirstStepName()
        {
        }
        public function processShowInputName(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveInputName(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processShowInputRanges(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        protected function generateJavascript()
        {
        }
        protected function generateRows(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        private function fillValueInsteadMarkedEmpty(&$value)
        {
        }
        protected function generateRow($index, array $range, $style = '')
        {
        }
        protected function generateSelectWithDiscountType($name, $selectedValue)
        {
        }
        protected function buildRangesFromState(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveInputRanges(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        protected function getAllowableUserGroups()
        {
        }
        public function processShowCommonSettings(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveCommonSettings(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function generateState(array $discountFields)
        {
        }
        public function generateDiscount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        /**
         * @return array
         */
        protected function getDefaultRowValues()
        {
        }
    }
    class ProductPerDay extends \Bitrix\Sale\Discount\Preset\SelectProductPreset
    {
        public function getSort()
        {
        }
        protected function init()
        {
        }
        public function getTitle()
        {
        }
        public function getDescription()
        {
        }
        /**
         * @return int
         */
        public function getCategory()
        {
        }
        public function getFirstStepName()
        {
        }
        public function processShowInputName(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveInputName(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processShowInputAmount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveInputAmount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processShowCommonSettings(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveCommonSettings(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function generateState(array $discountFields)
        {
        }
        public function generateDiscount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
    }
    class PaySystem extends \Bitrix\Sale\Discount\Preset\BasePreset
    {
        public function getTitle()
        {
        }
        public function getDescription()
        {
        }
        /**
         * @return int
         */
        public function getCategory()
        {
        }
        public function getFirstStepName()
        {
        }
        public function processShowInputName(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveInputName(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        protected function getPaymentSystems()
        {
        }
        public function processShowInputAmount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveInputAmount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processShowCommonSettings(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveCommonSettings(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function generateState(array $discountFields)
        {
        }
        public function generateDiscount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
    }
    class PaySystemExtra extends \Sale\Handlers\DiscountPreset\PaySystem
    {
        public function getTitle()
        {
        }
        protected function getLabelDiscountValue()
        {
        }
        protected function getTypeOfDiscount()
        {
        }
        public function getSort()
        {
        }
    }
    class Delivery extends \Bitrix\Sale\Discount\Preset\SelectProductPreset
    {
        public function getTitle()
        {
        }
        public function getDescription()
        {
        }
        /**
         * @return int
         */
        public function getCategory()
        {
        }
        public function getFirstStepName()
        {
        }
        public function processShowInputName(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveInputName(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        /**
         * @param $siteId
         *
         * @return \Bitrix\Sale\Delivery\Services\Base[]
         */
        protected function getDeliverySystems($siteId)
        {
        }
        protected function getLabelDiscountValue()
        {
        }
        public function processShowInputAmount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        protected function renderDiscountValue(\Bitrix\Sale\Discount\Preset\State $state, $currency)
        {
        }
        public function processSaveInputAmount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processShowCommonSettings(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveCommonSettings(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function generateState(array $discountFields)
        {
        }
        public function generateDiscount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
    }
    class OrderAmount extends \Bitrix\Sale\Discount\Preset\BasePreset
    {
        protected function init()
        {
        }
        public function getTitle()
        {
        }
        public function getDescription()
        {
        }
        /**
         * @return int
         */
        public function getCategory()
        {
        }
        public function getFirstStepName()
        {
        }
        public function processShowInputName(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveInputName(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processShowInputAmount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveInputAmount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processShowCommonSettings(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveCommonSettings(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function generateState(array $discountFields)
        {
        }
        public function generateDiscount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
    }
    class FreeDelivery extends \Sale\Handlers\DiscountPreset\Delivery
    {
        public function getTitle()
        {
        }
        public function getDescription()
        {
        }
        /**
         * @return int
         */
        public function getCategory()
        {
        }
        protected function renderDiscountValue(\Bitrix\Sale\Discount\Preset\State $state, $currency)
        {
        }
        public function processSaveInputAmount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
    }
    class ProductDelivery extends \Sale\Handlers\DiscountPreset\Delivery
    {
        public function getTitle()
        {
        }
        public function getDescription()
        {
        }
        /**
         * @return int
         */
        public function getCategory()
        {
        }
        public function processShowInputAmount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveInputAmount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function generateState(array $discountFields)
        {
        }
        public function generateDiscount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
    }
    class OrderPerDay extends \Bitrix\Sale\Discount\Preset\BasePreset
    {
        public function getSort()
        {
        }
        public function getTitle()
        {
        }
        public function getDescription()
        {
        }
        /**
         * @return int
         */
        public function getCategory()
        {
        }
        public function getFirstStepName()
        {
        }
        public function processShowInputName(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveInputName(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processShowInputAmount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveInputAmount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processShowCommonSettings(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveCommonSettings(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function generateState(array $discountFields)
        {
        }
        public function generateDiscount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
    }
    class SimpleProduct extends \Bitrix\Sale\Discount\Preset\SelectProductPreset
    {
        public function getTitle()
        {
        }
        public function getDescription()
        {
        }
        /**
         * @return int
         */
        public function getCategory()
        {
        }
        public function getFirstStepName()
        {
        }
        public function processShowInputName(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveInputName(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processShowInputAmount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveInputAmount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processShowCommonSettings(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveCommonSettings(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function generateState(array $discountFields)
        {
        }
        public function generateDiscount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
    }
    class SimpleProductExtra extends \Sale\Handlers\DiscountPreset\SimpleProduct
    {
        public function getTitle()
        {
        }
        protected function getLabelDiscountValue()
        {
        }
        protected function getTypeOfDiscount()
        {
        }
        public function getSort()
        {
        }
    }
    class ConnectedProduct extends \Bitrix\Sale\Discount\Preset\SelectProductPreset
    {
        const TYPE_PRODUCT = 'p';
        const TYPE_SECTION = 's';
        const PREDICTION_TEXT_TYPE_ACTION = 'a';
        const PREDICTION_TEXT_TYPE_CONDITION = 'c';
        protected function init()
        {
        }
        public function getSort()
        {
        }
        public function getTitle()
        {
        }
        public function getDescription()
        {
        }
        /**
         * @return int
         */
        public function getCategory()
        {
        }
        public function getFirstStepName()
        {
        }
        public function processShowInputName(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveInputName(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processShowProductForDiscount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveProductForDiscount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processShowProductWhenDiscount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveProductWhenDiscount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processShowCommonSettings(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function processSaveCommonSettings(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        /**
         * @param array $discountFields
         * @return State
         * @throws Main\ArgumentException
         */
        public function generateState(array $discountFields)
        {
        }
        private function generatePredictions(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function generateDiscount(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function getDescribedDataProductCondition(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function getDescribedDataProductAction(\Bitrix\Sale\Discount\Preset\State $state)
        {
        }
        public function getPredictionText(\Bitrix\Sale\Discount\Preset\State $state, $type)
        {
        }
    }
}
namespace {
    class UI extends \CModule
    {
        public $MODULE_ID = 'ui';
        public $MODULE_VERSION;
        public $MODULE_VERSION_DATE;
        public $MODULE_NAME;
        public $MODULE_DESCRIPTION;
        private $errors;
        public function __construct()
        {
        }
        function doInstall()
        {
        }
        function doUninstall()
        {
        }
        function installFiles()
        {
        }
        function installDB()
        {
        }
        function installEvents()
        {
        }
        function uninstallDB()
        {
        }
        function uninstallEvents()
        {
        }
        function uninstallFiles()
        {
        }
    }
    /**
     * Class UIFormComponent
     */
    class UIFormComponent extends \CBitrixComponent
    {
        public const COLUMN_DEFAULT = 'default_column';
        public const SECTION_MAIN = 'main';
        public const SECTION_REQUIRED = 'required';
        public const SECTION_ADDITIONAL = 'additional';
        protected const COLUMN_TYPE = 'column';
        protected const SECTION_TYPE = 'section';
        protected const INCLUDED_AREA_TYPE = 'included_area';
        /** @var int */
        protected $userID = 0;
        /** @var string */
        protected $entityTypeName = '';
        /** @var int */
        protected $entityID = 0;
        /** @var string */
        protected $guid = '';
        /** @var string */
        protected $configID = '';
        protected $configuration;
        /**
         * Execute component.
         */
        public function executeComponent()
        {
        }
        protected function getConfiguration() : \Bitrix\UI\Form\EntityEditorConfiguration
        {
        }
        protected function getConfigurationCategoryName() : string
        {
        }
        protected function getConfigurationOptionCategoryName() : string
        {
        }
        protected function emitOnUIFormInitializeEvent()
        {
        }
        protected function getDefaultParameters() : array
        {
        }
        protected function prepareParameters(array $params) : array
        {
        }
        protected function getSavedScopeAndConfiguration(\Bitrix\UI\Form\EntityEditorConfiguration $configuration, $configScope, bool $isForceDefaultConfig) : array
        {
        }
        protected function processParamsConfig(array $config, bool $isForceDefaultSectionName, array $entityConfig = []) : array
        {
        }
        protected function getFieldsInfo(array $entityFields, array $entityData) : array
        {
        }
        protected function processScheme(array $config, array $defaultConfig, string $configScope, array &$fieldsInfo) : array
        {
        }
        protected function prepareConfig()
        {
        }
        protected function loadLanguages() : array
        {
        }
        protected function initialize()
        {
        }
        protected function getEntityConfigOptions() : array
        {
        }
        protected function getDefaultEntityConfigOptions() : array
        {
        }
        private function initializeConfigWithColumns(array $config) : array
        {
        }
    }
    class CUIFormComponentAjaxController extends \Bitrix\Main\Engine\Controller
    {
        /** @var UI\Form\EntityEditorConfiguration  */
        protected static $configuration;
        protected function getConfiguration(string $categoryName = \null) : \Bitrix\UI\Form\EntityEditorConfiguration
        {
        }
        public function saveConfigurationAction($guid, array $config, array $params, string $categoryName = '')
        {
        }
        public function resetConfigurationAction($guid, array $params, string $categoryName = '')
        {
        }
        public function setScopeAction($guid, $scope, string $categoryName = '')
        {
        }
        public function forceCommonScopeForAllAction($guid, string $categoryName = '')
        {
        }
        public static function renderImageInputAction($moduleId, $name, $value)
        {
        }
    }
    /**
     * Class UISliderContentComponent
     */
    class UISliderContentComponent extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    class UIToolbarComponent extends \CBitrixComponent
    {
        private $toolbarId;
        /**
         * Execute component.
         *
         * @return void
         */
        public function executeComponent()
        {
        }
        public function includeTemplate()
        {
        }
        private function shouldPreventOutputBuffering()
        {
        }
    }
    /**
     * Class UiFormConfig
     */
    class UiFormConfig extends \CBitrixComponent
    {
        protected $navParamName = 'page', $defaultGridSort = ['ID' => 'desc'];
        public function executeComponent()
        {
        }
        protected function prepareData() : array
        {
        }
        /**
         * @return string
         */
        protected function getGridId() : string
        {
        }
        /**
         * @return array
         */
        protected function getColumns() : array
        {
        }
        /**
         * @return Onchange
         */
        protected function getOnChange() : \Bitrix\Main\Grid\Panel\Snippet\Onchange
        {
        }
        /**
         * @return Onchange
         */
        protected function getOnRemove() : \Bitrix\Main\Grid\Panel\Snippet\Onchange
        {
        }
    }
    class UiFormConfigAjaxController extends \Bitrix\Main\Engine\Controller
    {
        /**
         * @param string $moduleId
         * @param string $entityTypeId
         * @param string $name
         * @param array $accessCodes
         * @param array $config
         * @param string $common
         * @return int|AjaxJson
         */
        public function saveAction(string $moduleId, string $entityTypeId, array $config, string $common, string $name = '', array $accessCodes = [])
        {
        }
        /**
         * @param string $moduleId
         * @param string $guid
         * @param string $scope
         * @param int $userScopeId
         * @return void|AjaxJson
         */
        public function setScopeAction(string $moduleId, string $categoryName, string $guid, string $scope, int $userScopeId = 0)
        {
        }
        /**
         * @param string $moduleId
         * @param int $scopeId
         * @param array $accessCodes
         * @return array|AjaxJson
         */
        public function updateScopeAccessCodesAction(string $moduleId, int $scopeId, array $accessCodes = [])
        {
        }
        /**
         * @return AjaxJson
         */
        private function getAccessDenied() : \Bitrix\Main\Engine\Response\AjaxJson
        {
        }
    }
    /**
     * Class UIPageSliderWrapperComponent
     */
    class UIPageSliderWrapperComponent extends \CBitrixComponent
    {
        /** @var bool $isWrapperCalled */
        protected static $isWrapperCalled = \false;
        /**
         * Is page slider context.
         */
        protected function isPageSliderContext()
        {
        }
        /**
         * Execute component.
         */
        public function executeComponent()
        {
        }
    }
    /**
     * Class UiButtonPanel
     */
    class UiButtonPanel extends \CBitrixComponent
    {
        /**
         * Execute component.
         *
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    final class CUITooltipComponent extends \CBitrixComponent
    {
        /** @var  ErrorCollection */
        protected $errorCollection;
        private $userId = 0;
        private $errors = [];
        private function init()
        {
        }
        /**
         * Getting array of errors.
         * @return Error[]
         */
        public function getErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class CUITooltipComponentAjaxController extends \Bitrix\Main\Engine\Controller
    {
        private $userId = 0;
        private $context = array();
        private $birthday = \false;
        private function setUserId($userId = 0)
        {
        }
        private function getUserId()
        {
        }
        private function setBirthday()
        {
        }
        private function getBirthday()
        {
        }
        private function getHonored()
        {
        }
        private function getAbsent()
        {
        }
        private function getPosition()
        {
        }
        private function getDepartmentUrl()
        {
        }
        private function getUserFields($userId = \false)
        {
        }
        private function getTooltipUserFields()
        {
        }
        private function getCurrentUserFields()
        {
        }
        private function getCardFields()
        {
        }
        private function getCardProperties()
        {
        }
        private function getCardFieldsValues()
        {
        }
        private function currentEmailUser()
        {
        }
        private function isExtranetUser()
        {
        }
        private function getUserData()
        {
        }
        private function setContext($params = array())
        {
        }
        private function getContext()
        {
        }
        private function getUserUrlTemplate()
        {
        }
        private function getUserUrl()
        {
        }
        private function getNameTemplate()
        {
        }
        private function getDateTimeFormat()
        {
        }
        private function getUserManagers($userData = array())
        {
        }
        private function getCurrentUserPermissions()
        {
        }
        public function getDataAction($userId, array $params = array())
        {
        }
    }
    class CUiInfoHelperComponent extends \CBitrixComponent
    {
        private function getHostName()
        {
        }
        public function executeComponent()
        {
        }
    }
    /**
     * Class UiFeedbackForm
     */
    class UiFeedbackForm extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    /**
     * Class UiTileListComponent
     */
    class UiTileListComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    /**
     * Class UISidepanelMenuComponent
     */
    class UISidepanelMenuComponent extends \CBitrixComponent
    {
        /**
         * Check page has been opened in slider
         *
         * @return bool
         */
        protected function isPageSliderContext()
        {
        }
        /**
         * Prepare menu item for view
         *
         * @param array $item
         *
         * @return array
         */
        protected function prepareItem(array $item)
        {
        }
        /**
         * Prepare attribute array items for output
         *
         * @param array $attributes
         *
         * @return array
         */
        protected function prepareAttributes(array $attributes)
        {
        }
        /**
         * @return array
         */
        protected function prepareResult()
        {
        }
        /**
         * Execute component.
         *
         * @return mixed|void
         */
        public function executeComponent()
        {
        }
    }
    class UiTileSelectorComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class TourComponent extends \CBitrixComponent
    {
        protected $tour = \null;
        protected function prepareParams()
        {
        }
        protected function prepareData()
        {
        }
        public function getTour()
        {
        }
        public function executeComponent()
        {
        }
    }
}
namespace Bitrix\Main {
    /**
     * @implements Bitrix\Main\Errorable
     */
    trait ErrorableImplementation
    {
        /** @var ErrorCollection */
        protected $errorCollection;
        /**
         * Return true if collection has errors.
         *
         * @return boolean
         */
        public function hasErrors()
        {
        }
        /**
         * Getting array of errors.
         *
         * @return Error[]
         */
        public function getErrors()
        {
        }
        /**
         * Returns an error with the necessary code.
         *
         * @param string|int $code The code of the error.
         *
         * @return Error|null
         */
        public function getErrorByCode($code)
        {
        }
    }
}
namespace {
    class UIImageInput extends \CBitrixComponent implements \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        protected function showErrors() : void
        {
        }
        public function onPrepareComponentParams($params) : array
        {
        }
        public function executeComponent() : void
        {
        }
        private function initializeFileInstance() : void
        {
        }
    }
}
namespace Bitrix\Ui\EntityForm {
    /**
     * EO_EntityFormConfigAc
     * @see \Bitrix\Ui\EntityForm\EntityFormConfigAcTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getAccessCode()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc setAccessCode(\string|\Bitrix\Main\DB\SqlExpression $accessCode)
     * @method bool hasAccessCode()
     * @method bool isAccessCodeFilled()
     * @method bool isAccessCodeChanged()
     * @method \string remindActualAccessCode()
     * @method \string requireAccessCode()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc resetAccessCode()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc unsetAccessCode()
     * @method \string fillAccessCode()
     * @method \Bitrix\Main\EO_UserAccess getUserAccess()
     * @method \Bitrix\Main\EO_UserAccess remindActualUserAccess()
     * @method \Bitrix\Main\EO_UserAccess requireUserAccess()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc setUserAccess(\Bitrix\Main\EO_UserAccess $object)
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc resetUserAccess()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc unsetUserAccess()
     * @method bool hasUserAccess()
     * @method bool isUserAccessFilled()
     * @method bool isUserAccessChanged()
     * @method \Bitrix\Main\EO_UserAccess fillUserAccess()
     * @method \int getConfigId()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc setConfigId(\int|\Bitrix\Main\DB\SqlExpression $configId)
     * @method bool hasConfigId()
     * @method bool isConfigIdFilled()
     * @method bool isConfigIdChanged()
     * @method \int remindActualConfigId()
     * @method \int requireConfigId()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc resetConfigId()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc unsetConfigId()
     * @method \int fillConfigId()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig getConfig()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig remindActualConfig()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig requireConfig()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc setConfig(\Bitrix\Ui\EntityForm\EO_EntityFormConfig $object)
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc resetConfig()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc unsetConfig()
     * @method bool hasConfig()
     * @method bool isConfigFilled()
     * @method bool isConfigChanged()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig fillConfig()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc set($fieldName, $value)
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc reset($fieldName)
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc wakeUp($data)
     */
    class EO_EntityFormConfigAc
    {
        /* @var \Bitrix\Ui\EntityForm\EntityFormConfigAcTable */
        public static $dataClass = '\\Bitrix\\Ui\\EntityForm\\EntityFormConfigAcTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_EntityFormConfigAc_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getAccessCodeList()
     * @method \string[] fillAccessCode()
     * @method \Bitrix\Main\EO_UserAccess[] getUserAccessList()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc_Collection getUserAccessCollection()
     * @method \Bitrix\Main\EO_UserAccess_Collection fillUserAccess()
     * @method \int[] getConfigIdList()
     * @method \int[] fillConfigId()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig[] getConfigList()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc_Collection getConfigCollection()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig_Collection fillConfig()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Ui\EntityForm\EO_EntityFormConfigAc $object)
     * @method bool has(\Bitrix\Ui\EntityForm\EO_EntityFormConfigAc $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc getByPrimary($primary)
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc[] getAll()
     * @method bool remove(\Bitrix\Ui\EntityForm\EO_EntityFormConfigAc $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_EntityFormConfigAc_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Ui\EntityForm\EntityFormConfigAcTable */
        public static $dataClass = '\\Bitrix\\Ui\\EntityForm\\EntityFormConfigAcTable';
    }
    /**
     * @method static EO_EntityFormConfigAc_Query query()
     * @method static EO_EntityFormConfigAc_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_EntityFormConfigAc_Result getById($id)
     * @method static EO_EntityFormConfigAc_Result getList(array $parameters = array())
     * @method static EO_EntityFormConfigAc_Entity getEntity()
     * @method static \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc createObject($setDefaultValues = true)
     * @method static \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc_Collection createCollection()
     * @method static \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc wakeUpObject($row)
     * @method static \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc_Collection wakeUpCollection($rows)
     */
    class EntityFormConfigAcTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_EntityFormConfigAc_Result exec()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc fetchObject()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_EntityFormConfigAc_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc fetchObject()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc_Collection fetchCollection()
     */
    class EO_EntityFormConfigAc_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc createObject($setDefaultValues = true)
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc_Collection createCollection()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc wakeUpObject($row)
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfigAc_Collection wakeUpCollection($rows)
     */
    class EO_EntityFormConfigAc_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_EntityFormConfig
     * @see \Bitrix\Ui\EntityForm\EntityFormConfigTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getCategory()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig setCategory(\string|\Bitrix\Main\DB\SqlExpression $category)
     * @method bool hasCategory()
     * @method bool isCategoryFilled()
     * @method bool isCategoryChanged()
     * @method \string remindActualCategory()
     * @method \string requireCategory()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig resetCategory()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig unsetCategory()
     * @method \string fillCategory()
     * @method \string getEntityTypeId()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig setEntityTypeId(\string|\Bitrix\Main\DB\SqlExpression $entityTypeId)
     * @method bool hasEntityTypeId()
     * @method bool isEntityTypeIdFilled()
     * @method bool isEntityTypeIdChanged()
     * @method \string remindActualEntityTypeId()
     * @method \string requireEntityTypeId()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig resetEntityTypeId()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig unsetEntityTypeId()
     * @method \string fillEntityTypeId()
     * @method \string getName()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig resetName()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig unsetName()
     * @method \string fillName()
     * @method \string getConfig()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig setConfig(\string|\Bitrix\Main\DB\SqlExpression $config)
     * @method bool hasConfig()
     * @method bool isConfigFilled()
     * @method bool isConfigChanged()
     * @method \string remindActualConfig()
     * @method \string requireConfig()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig resetConfig()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig unsetConfig()
     * @method \string fillConfig()
     * @method \boolean getCommon()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig setCommon(\boolean|\Bitrix\Main\DB\SqlExpression $common)
     * @method bool hasCommon()
     * @method bool isCommonFilled()
     * @method bool isCommonChanged()
     * @method \boolean remindActualCommon()
     * @method \boolean requireCommon()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig resetCommon()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig unsetCommon()
     * @method \boolean fillCommon()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig set($fieldName, $value)
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig reset($fieldName)
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Ui\EntityForm\EO_EntityFormConfig wakeUp($data)
     */
    class EO_EntityFormConfig
    {
        /* @var \Bitrix\Ui\EntityForm\EntityFormConfigTable */
        public static $dataClass = '\\Bitrix\\Ui\\EntityForm\\EntityFormConfigTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_EntityFormConfig_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getCategoryList()
     * @method \string[] fillCategory()
     * @method \string[] getEntityTypeIdList()
     * @method \string[] fillEntityTypeId()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getConfigList()
     * @method \string[] fillConfig()
     * @method \boolean[] getCommonList()
     * @method \boolean[] fillCommon()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Ui\EntityForm\EO_EntityFormConfig $object)
     * @method bool has(\Bitrix\Ui\EntityForm\EO_EntityFormConfig $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig getByPrimary($primary)
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig[] getAll()
     * @method bool remove(\Bitrix\Ui\EntityForm\EO_EntityFormConfig $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Ui\EntityForm\EO_EntityFormConfig_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_EntityFormConfig_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Ui\EntityForm\EntityFormConfigTable */
        public static $dataClass = '\\Bitrix\\Ui\\EntityForm\\EntityFormConfigTable';
    }
    /**
     * @method static EO_EntityFormConfig_Query query()
     * @method static EO_EntityFormConfig_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_EntityFormConfig_Result getById($id)
     * @method static EO_EntityFormConfig_Result getList(array $parameters = array())
     * @method static EO_EntityFormConfig_Entity getEntity()
     * @method static \Bitrix\Ui\EntityForm\EO_EntityFormConfig createObject($setDefaultValues = true)
     * @method static \Bitrix\Ui\EntityForm\EO_EntityFormConfig_Collection createCollection()
     * @method static \Bitrix\Ui\EntityForm\EO_EntityFormConfig wakeUpObject($row)
     * @method static \Bitrix\Ui\EntityForm\EO_EntityFormConfig_Collection wakeUpCollection($rows)
     */
    class EntityFormConfigTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_EntityFormConfig_Result exec()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig fetchObject()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_EntityFormConfig_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig fetchObject()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig_Collection fetchCollection()
     */
    class EO_EntityFormConfig_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig createObject($setDefaultValues = true)
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig_Collection createCollection()
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig wakeUpObject($row)
     * @method \Bitrix\Ui\EntityForm\EO_EntityFormConfig_Collection wakeUpCollection($rows)
     */
    class EO_EntityFormConfig_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\UI\EntitySelector {
    class PreselectedItem implements \JsonSerializable
    {
        protected $id;
        protected $entityId;
        protected $item;
        public function __construct(array $options)
        {
        }
        public function getId()
        {
        }
        public function getEntityId() : string
        {
        }
        public function setItem(\Bitrix\UI\EntitySelector\Item $item)
        {
        }
        public function getItem() : ?\Bitrix\UI\EntitySelector\Item
        {
        }
        public function isLoaded()
        {
        }
        public function jsonSerialize()
        {
        }
    }
    class RecentItem implements \JsonSerializable
    {
        protected $id;
        protected $entityId;
        protected $lastUseDate;
        protected $loaded = false;
        protected $available = true;
        public function __construct(array $options)
        {
        }
        public function getId()
        {
        }
        public function getEntityId() : string
        {
        }
        public function getLastUseDate()
        {
        }
        public function setLastUseDate(int $lastUseDate)
        {
        }
        public function isLoaded()
        {
        }
        public function setLoaded(bool $flag)
        {
        }
        public function isAvailable()
        {
        }
        public function setAvailable(bool $flag)
        {
        }
        public function jsonSerialize()
        {
        }
    }
    class ItemCollection implements \IteratorAggregate, \JsonSerializable
    {
        private $items = [];
        private $itemsByEntity = [];
        public function __construct()
        {
        }
        public function add(\Bitrix\UI\EntitySelector\Item $item)
        {
        }
        public function get(string $entityId, $itemId) : ?\Bitrix\UI\EntitySelector\Item
        {
        }
        public function has(\Bitrix\UI\EntitySelector\Item $item) : bool
        {
        }
        public function getAll()
        {
        }
        public function count() : int
        {
        }
        public function getEntityItems(string $entityId) : array
        {
        }
        public function toJsObject()
        {
        }
        public function jsonSerialize()
        {
        }
        public function getIterator()
        {
        }
    }
    class Tab implements \JsonSerializable
    {
        protected $id;
        protected $title = '';
        protected $visible = true;
        protected $itemOrder = [];
        protected $itemMaxDepth;
        protected $icon = [];
        protected $textColor = [];
        protected $bgColor = [];
        protected $stub;
        protected $stubOptions;
        /** @var string */
        protected $footer;
        /** @var array */
        protected $footerOptions;
        public function __construct(array $options)
        {
        }
        public function getId() : ?string
        {
        }
        public function getTitle() : string
        {
        }
        public function setTitle(string $title) : self
        {
        }
        public function getIcon()
        {
        }
        public function setIcon(array $icon) : self
        {
        }
        public function getTextColor()
        {
        }
        public function setTextColor(array $textColor) : self
        {
        }
        public function getBgColor()
        {
        }
        public function setBgColor(array $bgColor) : self
        {
        }
        public function setVisible(bool $flag)
        {
        }
        public function isVisible()
        {
        }
        public function setItemOrder(array $order)
        {
        }
        public function getItemOrder() : array
        {
        }
        public function setItemMaxDepth(int $depth)
        {
        }
        public function getItemMaxDepth() : ?int
        {
        }
        public function setStub($stub)
        {
        }
        public function getStub()
        {
        }
        public function setStubOptions(array $options)
        {
        }
        public function getStubOptions() : ?array
        {
        }
        public function setFooter(string $footer, array $options = [])
        {
        }
        public function getFooter() : ?string
        {
        }
        public function getFooterOptions() : ?array
        {
        }
        public function jsonSerialize()
        {
        }
    }
    class PreselectedCollection implements \IteratorAggregate, \JsonSerializable
    {
        private $items = [];
        private $itemsByEntity = [];
        public function __construct()
        {
        }
        public function add(\Bitrix\UI\EntitySelector\PreselectedItem $preselectedItem)
        {
        }
        public function load(array $ids)
        {
        }
        public function get(string $entityId, $itemId) : ?\Bitrix\UI\EntitySelector\PreselectedItem
        {
        }
        public function has(\Bitrix\UI\EntitySelector\PreselectedItem $preselectedItem) : bool
        {
        }
        public function getByItem(\Bitrix\UI\EntitySelector\Item $item) : ?\Bitrix\UI\EntitySelector\PreselectedItem
        {
        }
        public function getAll()
        {
        }
        public function getItems()
        {
        }
        public function count() : int
        {
        }
        /**
         * @param string $entityId
         *
         * @return PreselectedItem[]
         *
         */
        public function getEntityItems(string $entityId) : array
        {
        }
        /**
         * @return string[]
         */
        public function getEntities()
        {
        }
        public function jsonSerialize()
        {
        }
        public function getIterator()
        {
        }
    }
    final class Configuration
    {
        private static $loaded = false;
        private static $entities = [];
        private static $providers = [];
        private static $extensions = [];
        public static function getExtensions() : array
        {
        }
        /**
         * @param string $entityId
         *
         * @param array $options
         *
         * @return BaseProvider|null
         */
        public static function getProvider($entityId, $options = [])
        {
        }
        public static function getEntities()
        {
        }
        private static function load()
        {
        }
        private static function createProvider($moduleId, $className, $options = [])
        {
        }
    }
    class RecentCollection implements \IteratorAggregate, \JsonSerializable
    {
        private $items = [];
        private $itemsByEntity = [];
        public function __construct()
        {
        }
        public function add(\Bitrix\UI\EntitySelector\RecentItem $recentItem)
        {
        }
        public function get(string $entityId, $itemId) : ?\Bitrix\UI\EntitySelector\RecentItem
        {
        }
        public function has(\Bitrix\UI\EntitySelector\RecentItem $recentItem) : bool
        {
        }
        public function getByItem(\Bitrix\UI\EntitySelector\Item $item) : ?\Bitrix\UI\EntitySelector\RecentItem
        {
        }
        public function getAll()
        {
        }
        public function count() : int
        {
        }
        public function getEntityItems(string $entityId) : array
        {
        }
        public function jsonSerialize()
        {
        }
        public function getIterator()
        {
        }
    }
    class NodeOptions implements \JsonSerializable
    {
        protected $itemOrder = [];
        protected $open = false;
        protected $dynamic = false;
        public function __construct(array $options)
        {
        }
        public function setOpen(bool $open = true)
        {
        }
        public function isOpen()
        {
        }
        public function setDynamic(bool $dynamic = true)
        {
        }
        public function isDynamic()
        {
        }
        public function setItemOrder(array $order)
        {
        }
        public function getItemOrder()
        {
        }
        public function jsonSerialize()
        {
        }
    }
    class Dialog implements \JsonSerializable
    {
        protected $id;
        /** @var ItemCollection */
        protected $itemCollection;
        /** @var Tab[] */
        protected $tabs = [];
        /** @var array<string, Entity> */
        protected $entities = [];
        /** @var RecentCollection */
        protected $recentItems;
        /** @var RecentCollection */
        protected $globalRecentItems;
        /** @var PreselectedCollection */
        protected $preselectedItems;
        /** @var string */
        protected $context;
        /** @var string */
        protected $footer;
        /** @var array */
        protected $footerOptions;
        /** @var boolean */
        protected $clearUnavailableItems = false;
        public function __construct(array $options)
        {
        }
        public function getId() : ?string
        {
        }
        public function getContext() : ?string
        {
        }
        public function getItemCollection() : \Bitrix\UI\EntitySelector\ItemCollection
        {
        }
        public function getCurrentUserId() : int
        {
        }
        public function addEntity(\Bitrix\UI\EntitySelector\Entity $entity)
        {
        }
        public function addItem(\Bitrix\UI\EntitySelector\Item $item)
        {
        }
        public function addItems(array $items)
        {
        }
        public function addRecentItem(\Bitrix\UI\EntitySelector\Item $item)
        {
        }
        public function addRecentItems(array $items)
        {
        }
        public function setFooter(string $footer, array $options = [])
        {
        }
        public function getFooter() : ?string
        {
        }
        public function getFooterOptions() : ?array
        {
        }
        public function handleItemAdd(\Bitrix\UI\EntitySelector\Item $item)
        {
        }
        public function getRecentItems() : \Bitrix\UI\EntitySelector\RecentCollection
        {
        }
        public function getGlobalRecentItems() : \Bitrix\UI\EntitySelector\RecentCollection
        {
        }
        public function addTab(\Bitrix\UI\EntitySelector\Tab $tab)
        {
        }
        /**
         * @return Entity[]
         */
        public function getEntities()
        {
        }
        /**
         * @param string $entityId
         *
         * @return Entity
         */
        public function getEntity(string $entityId) : ?\Bitrix\UI\EntitySelector\Entity
        {
        }
        /**
         * @return Tab[]
         */
        public function getTabs()
        {
        }
        public function load() : void
        {
        }
        public function doSearch(\Bitrix\UI\EntitySelector\SearchQuery $searchQuery)
        {
        }
        public function getChildren(\Bitrix\UI\EntitySelector\Item $parentItem)
        {
        }
        public function setPreselectedItems(array $preselectedItems)
        {
        }
        public function getPreselectedItems() : \Bitrix\UI\EntitySelector\PreselectedCollection
        {
        }
        public function loadPreselectedItems()
        {
        }
        public function shouldClearUnavailableItems() : bool
        {
        }
        public static function createHiddenItem($id, $entityId) : \Bitrix\UI\EntitySelector\Item
        {
        }
        public static function getSelectedItems(array $ids, array $options = []) : \Bitrix\UI\EntitySelector\ItemCollection
        {
        }
        public static function getItems(array $ids, array $options = [])
        {
        }
        public function saveRecentItems(array $recentItems)
        {
        }
        private function fillRecentItems(array $entities)
        {
        }
        private function fillGlobalRecentItems(array $entities)
        {
        }
        private function getContextUsages(array $entities)
        {
        }
        private function getGlobalUsages(array $entities, int $limit = 200)
        {
        }
        private function loadRecentItems()
        {
        }
        public function jsonSerialize()
        {
        }
    }
    class Item implements \JsonSerializable
    {
        protected $id = '';
        protected $entityId = '';
        protected $entityType;
        protected $tabs = [];
        protected $title = '';
        protected $subtitle;
        protected $supertitle;
        protected $caption;
        protected $avatar;
        protected $link;
        protected $linkTitle;
        protected $badges;
        protected $searchable = true;
        protected $saveable = true;
        protected $deselectable = true;
        protected $hidden = false;
        protected $children;
        protected $nodeOptions;
        protected $tagOptions;
        protected $customData;
        protected $sort;
        protected $contextSort;
        protected $globalSort;
        protected $dialog;
        protected $availableInRecentTab = true;
        public function __construct(array $options)
        {
        }
        public function getId()
        {
        }
        public function getEntityId() : string
        {
        }
        public function getEntityType() : ?string
        {
        }
        public function setEntityType(string $type) : self
        {
        }
        public function getTitle() : string
        {
        }
        public function setTitle(string $title) : self
        {
        }
        public function getSubtitle() : ?string
        {
        }
        public function setSubtitle(?string $subtitle) : self
        {
        }
        public function getSupertitle() : ?string
        {
        }
        public function setSupertitle(?string $supertitle) : self
        {
        }
        public function getCaption() : ?string
        {
        }
        public function setCaption(?string $caption) : self
        {
        }
        public function getAvatar() : ?string
        {
        }
        public function setAvatar(?string $avatar) : self
        {
        }
        public function getLink() : ?string
        {
        }
        public function setLink(?string $link) : self
        {
        }
        public function getLinkTitle() : ?string
        {
        }
        public function setLinkTitle(?string $linkTitle) : self
        {
        }
        public function getBadges() : ?array
        {
        }
        public function addBadges(array $badges) : self
        {
        }
        public function setBadges(array $badges) : self
        {
        }
        public function getTabs() : array
        {
        }
        public function addTab($tabId) : self
        {
        }
        public function getChildren() : \Bitrix\UI\EntitySelector\ItemCollection
        {
        }
        public function addChildren(array $children)
        {
        }
        public function addChild(\Bitrix\UI\EntitySelector\Item $item)
        {
        }
        public function setNodeOptions(array $nodeOptions)
        {
        }
        public function getNodeOptions()
        {
        }
        public function setTagOptions(array $nodeOptions)
        {
        }
        public function getTagOptions()
        {
        }
        public function isSearchable() : bool
        {
        }
        public function setSearchable(bool $flag = true) : self
        {
        }
        public function isSaveable() : bool
        {
        }
        public function setSaveable(bool $flag = true) : self
        {
        }
        public function isDeselectable() : bool
        {
        }
        public function setDeselectable(bool $flag = true) : self
        {
        }
        public function isHidden() : bool
        {
        }
        public function setHidden(bool $flag = true) : self
        {
        }
        public function isAvailableInRecentTab() : bool
        {
        }
        public function setAvailableInRecentTab(bool $flag = true) : self
        {
        }
        public function setCustomData(array $customData)
        {
        }
        /**
         * @return Dictionary
         */
        public function getCustomData() : \Bitrix\Main\Type\Dictionary
        {
        }
        public function setSort(?int $sort)
        {
        }
        public function getSort() : ?int
        {
        }
        public function setContextSort(?int $sort)
        {
        }
        public function getContextSort() : ?int
        {
        }
        public function setGlobalSort(?int $sort)
        {
        }
        public function getGlobalSort() : ?int
        {
        }
        public function setDialog(\Bitrix\UI\EntitySelector\Dialog $dialog)
        {
        }
        public function getDialog() : ?\Bitrix\UI\EntitySelector\Dialog
        {
        }
        public function jsonSerialize()
        {
        }
    }
    abstract class BaseProvider
    {
        protected $options = [];
        protected function __construct()
        {
        }
        public abstract function isAvailable() : bool;
        /**
         * @param array $ids
         *
         * @return Item[]
         */
        public abstract function getItems(array $ids) : array;
        /**
         * @param array $ids
         *
         * @return Item[]
         */
        public abstract function getSelectedItems(array $ids) : array;
        public function getOptions() : array
        {
        }
        public function fillDialog(\Bitrix\UI\EntitySelector\Dialog $dialog) : void
        {
        }
        public function getChildren(\Bitrix\UI\EntitySelector\Item $parentItem, \Bitrix\UI\EntitySelector\Dialog $dialog) : void
        {
        }
        public function doSearch(\Bitrix\UI\EntitySelector\SearchQuery $searchQuery, \Bitrix\UI\EntitySelector\Dialog $dialog) : void
        {
        }
        public function handleBeforeItemSave(\Bitrix\UI\EntitySelector\Item $item) : void
        {
        }
    }
    class SearchQuery implements \JsonSerializable
    {
        protected $queryWords = [];
        protected $query = '';
        protected $cacheable = true;
        protected $dynamicSearchEntities = [];
        public function __construct(array $options)
        {
        }
        public function getQueryWords()
        {
        }
        public function getQuery()
        {
        }
        protected function setQueryWords(array $queryWords)
        {
        }
        public function isCacheable()
        {
        }
        public function setDynamicSearchEntities(array $entities) : void
        {
        }
        public function hasDynamicSearchEntity(string $entityId) : bool
        {
        }
        public function setCacheable(bool $flag = true)
        {
        }
        public function jsonSerialize()
        {
        }
    }
    class Entity implements \JsonSerializable
    {
        protected $id;
        protected $options = [];
        protected $searchable = true;
        protected $dynamicLoad = false;
        protected $dynamicSearch = false;
        protected $provider;
        public function __construct(array $options)
        {
        }
        public static function create(array $entityOptions) : ?\Bitrix\UI\EntitySelector\Entity
        {
        }
        public function getId()
        {
        }
        public function getOptions()
        {
        }
        public function getProvider() : \Bitrix\UI\EntitySelector\BaseProvider
        {
        }
        public function setProvider(\Bitrix\UI\EntitySelector\BaseProvider $provider)
        {
        }
        public function isSearchable()
        {
        }
        public function setSearchable(bool $flag = true)
        {
        }
        public function hasDynamicSearch()
        {
        }
        public function setDynamicSearch(bool $flag = true)
        {
        }
        public function hasDynamicLoad()
        {
        }
        public function setDynamicLoad(bool $flag = true)
        {
        }
        public function jsonSerialize()
        {
        }
    }
}
namespace Bitrix\UI\Form {
    class EntityEditorConfiguration
    {
        protected $categoryName;
        public static function canEditOtherSettings() : bool
        {
        }
        public function __construct(string $categoryName = null)
        {
        }
        protected function getCategoryName() : string
        {
        }
        protected function prepareName(string $configID, string $scope) : string
        {
        }
        protected function prepareScopeName(string $configID) : string
        {
        }
        public static function prepareOptionsName(string $configID, string $scope, int $userScopeId = 0) : string
        {
        }
        public function getScope($configID)
        {
        }
        public function get($configID, $scope)
        {
        }
        public function set($configID, array $config, array $params)
        {
        }
        public function reset($configID, array $params)
        {
        }
        public function setScope($configID, $scope)
        {
        }
        public function forceCommonScopeForAll($configID)
        {
        }
    }
    class FeedbackForm
    {
        protected $id;
        protected $isCloud;
        protected $formParams = [];
        protected $presets = [];
        protected $title;
        protected $portalUri;
        public function __construct(string $id)
        {
        }
        public function getId()
        {
        }
        public function getFormParams()
        {
        }
        public function getPresets()
        {
        }
        public function getTitle()
        {
        }
        public function getPortalUri()
        {
        }
        public function getJsObjectParams()
        {
        }
        public function setFormParams(array $forms)
        {
        }
        public function setPresets(array $presets = [])
        {
        }
        public function setTitle(string $title)
        {
        }
        public function setPortalUri(string $portalUri)
        {
        }
    }
    class EntityEditorConfigScope
    {
        const UNDEFINED = '';
        const PERSONAL = 'P';
        const COMMON = 'C';
        const CUSTOM = 'CUSTOM';
        private static $captions = array();
        public static function isDefined(string $scope) : bool
        {
        }
        /**
         * @param string $entityTypeId
         * @param string $moduleId
         * @return mixed
         */
        public static function getCaptions(string $entityTypeId = '', ?string $moduleId = null) : array
        {
        }
        /**
         * @param string $scope
         * @param string $moduleId
         * @param string $entityTypeId
         * @param int|null $scopeId
         * @return string
         */
        public static function getCaption(string $scope, string $entityTypeId = '', ?int $scopeId = null, ?string $moduleId = null) : string
        {
        }
    }
}
namespace Bitrix\UI\Contract {
    interface Renderable
    {
        /**
         * Returns content as string.
         *
         * @param bool $jsInit
         *
         * @return string
         */
        public function render($jsInit = true);
    }
}
namespace Bitrix\UI\Buttons {
    class BaseButton implements \Bitrix\UI\Contract\Renderable
    {
        const UNIQ_ID_DATA_ATTR = 'btn-uniqid';
        const JSON_OPTIONS_DATA_ATTR = 'json-options';
        /** @var string */
        protected $id;
        /** @var string */
        protected $text;
        /** @var string */
        protected $tag = \Bitrix\UI\Buttons\Tag::BUTTON;
        /** @var string */
        protected $baseClass = "ui-btn";
        /** @var string */
        protected $link;
        /** @var integer|string */
        protected $counter;
        /** @var array */
        protected $events = [];
        /** @var ButtonAttributes */
        private $attributes;
        public final function __construct(array $params = [])
        {
        }
        /**
         * @return array
         */
        protected function getDefaultParameters()
        {
        }
        protected function init(array $params = [])
        {
        }
        public static final function create(array $params = [])
        {
        }
        protected function buildFromArray($params)
        {
        }
        protected function listExtensions()
        {
        }
        public static function getJsClass()
        {
        }
        protected function appendDefaultJsonOption(\Bitrix\UI\Buttons\ButtonAttributes $attributes)
        {
        }
        public function render($jsInit = true)
        {
        }
        protected function generateUniqid()
        {
        }
        public function isInputTag()
        {
        }
        public function isInputType()
        {
        }
        protected function renderInner()
        {
        }
        protected function renderJavascript()
        {
        }
        protected function getQuerySelector()
        {
        }
        public function getUniqId()
        {
        }
        public function getId()
        {
        }
        public function setId($id)
        {
        }
        public function getMaxWidth()
        {
        }
        public function setMaxWidth($width)
        {
        }
        public function getLink()
        {
        }
        public function setLink($link)
        {
        }
        public function getCounter()
        {
        }
        public function setCounter($counter)
        {
        }
        public function addClass($className)
        {
        }
        public function unsetClass($className)
        {
        }
        public function removeClass($className)
        {
        }
        public function hasClass($className)
        {
        }
        public function getClassList()
        {
        }
        public function addAttribute($name, $value = null)
        {
        }
        public function unsetAttribute($name)
        {
        }
        public function removeAttribute($name)
        {
        }
        public function getAttribute($name, $defaultValue = null)
        {
        }
        public function addDataAttribute($name, $value = null)
        {
        }
        public function getDataAttribute($name, $defaultValue = null)
        {
        }
        public function setDataRole($dataRole)
        {
        }
        public function getDataRole()
        {
        }
        public function setStyles(array $styles)
        {
        }
        public function getStyles()
        {
        }
        /**
         * @return ButtonAttributes
         */
        public function getAttributeCollection()
        {
        }
        /**
         * @return string
         */
        public function getText()
        {
        }
        /**
         * @param string $text
         *
         * @return static
         */
        public function setText($text)
        {
        }
        /**
         * @return string
         */
        public function getTag()
        {
        }
        /**
         * @param string $tag
         *
         * @return static
         */
        public function setTag($tag)
        {
        }
        /**
         * @return string
         */
        public function getBaseClass()
        {
        }
        /**
         * @param bool $flag
         * @return static
         */
        public function setDisabled($flag = true)
        {
        }
        /**
         * @return bool
         */
        public function isDisabled()
        {
        }
        /**
         * @return array
         */
        public function getEvents()
        {
        }
        /**
         * @param string $eventName
         * @param string|JsHandler $fn Link to js function which will be invoked.
         * @see in js BX.UI.BaseButton.handleEvent to know order of arguments in event handler.
         *
         * @return $this
         */
        public function bindEvent($eventName, $fn)
        {
        }
        /**
         * @param array $events
         *
         * @return $this
         */
        public function bindEvents(array $events)
        {
        }
        /**
         * @param string $eventName
         *
         * @return $this
         */
        public function unbindEvent($eventName)
        {
        }
        /**
         * @return $this
         */
        public function unbindEvents()
        {
        }
    }
}
namespace Bitrix\UI\Buttons\Split {
    class SubButton extends \Bitrix\UI\Buttons\BaseButton
    {
        protected $buttonType = \Bitrix\UI\Buttons\Split\Type::MAIN;
        /** @var Button */
        protected $splitButton;
        protected function init(array $params = [])
        {
        }
        public static function getJsClass()
        {
        }
        protected function renderJavascript()
        {
        }
        protected function renderInner()
        {
        }
        /**
         * @return bool
         */
        public function isMainButton()
        {
        }
        /**
         * @return bool
         */
        public function isMenuButton()
        {
        }
        /**
         * @return string
         */
        public function getButtonType()
        {
        }
        /**
         * @return Button
         */
        public function getSplitButton()
        {
        }
        /**
         * @param Button $splitButton
         *
         * @return SubButton
         */
        public function setSplitButton($splitButton)
        {
        }
        /**
         * @param bool $flag
         *
         * @return static
         */
        public function setActive($flag = true)
        {
        }
        /**
         * @return bool
         */
        public function isActive()
        {
        }
        /**
         * @param bool $flag
         *
         * @return static
         */
        public function setDisabled($flag = true)
        {
        }
        /**
         * @param bool $flag
         *
         * @return static
         */
        public function setHovered($flag = true)
        {
        }
        /**
         * @return bool
         */
        public function isHovered()
        {
        }
        /**
         * @param $flag
         * @param $globalState
         * @param $mainState
         * @param $menuState
         *
         * @return static
         */
        public function toggleState($flag, $globalState, $mainState, $menuState)
        {
        }
    }
    abstract class Type
    {
        const MAIN = "ui-btn-main";
        const MENU = "ui-btn-menu";
    }
}
namespace Bitrix\UI\Buttons {
    class Button extends \Bitrix\UI\Buttons\BaseButton
    {
        /** @var array  */
        protected $properties = [];
        protected function init(array $params = [])
        {
        }
        /**
         * @param $value
         * @param $enum
         *
         * @return bool
         */
        protected function isEnumValue($value, $enum)
        {
        }
        /**
         * @param $propertyName
         * @param $value
         * @param $enum
         *
         * @return $this
         */
        protected function setProperty($propertyName, $value, $enum)
        {
        }
        /**
         * @param $name
         * @param null $defaultValue
         *
         * @return mixed|null
         */
        protected function getProperty($name, $defaultValue = null)
        {
        }
        protected function buildFromArray($params)
        {
        }
        public function setIcon($icon)
        {
        }
        public function getIcon()
        {
        }
        /**
         * @param string $color
         * @see Color
         *
         * @return Button
         */
        public function setColor($color)
        {
        }
        /**
         * @return string|null
         */
        public function getColor()
        {
        }
        /**
         * @param $size
         *
         * @return Button
         * @see Size
         *
         */
        public function setSize($size)
        {
        }
        /**
         * @return string|null
         */
        public function getSize()
        {
        }
        /**
         * @param string $state
         * @see State
         *
         * @return Button
         */
        public function setState($state)
        {
        }
        /**
         * @return bool
         */
        public function getState()
        {
        }
        /**
         * @param bool $flag
         *
         * @return $this
         */
        public function setActive($flag = true)
        {
        }
        /**
         * @return bool
         */
        public function isActive()
        {
        }
        /**
         * @param bool $flag
         *
         * @return $this
         */
        public function setHovered($flag = true)
        {
        }
        /**
         * @return bool
         */
        public function isHover()
        {
        }
        /**
         * @param bool $flag
         *
         * @return BaseButton
         */
        public function setDisabled($flag = true)
        {
        }
        /**
         * @return bool
         */
        public function isDisabled()
        {
        }
        /**
         * @param bool $flag
         *
         * @return $this
         */
        public function setWaiting($flag = true)
        {
        }
        /**
         * @return bool
         */
        public function isWaiting()
        {
        }
        /**
         * @param bool $flag
         *
         * @return $this
         */
        public function setClocking($flag = true)
        {
        }
        /**
         * @return bool
         */
        public function isClocking()
        {
        }
        /**
         * @param bool $flag
         * @return static
         */
        public function setNoCaps($flag = true)
        {
        }
        /**
         * @return bool
         */
        public function isNoCaps()
        {
        }
        /**
         * @param bool $flag
         * @return static
         */
        public function setRound($flag = true)
        {
        }
        /**
         * @return bool
         */
        public function isRound()
        {
        }
        /**
         * @param bool $flag
         * @return static
         */
        public function setDropdown($flag = true)
        {
        }
        /**
         * @return bool
         */
        public function isDropdown()
        {
        }
        /**
         * @param bool $flag
         * @return static
         */
        public function setCollapsed($flag = true)
        {
        }
        /**
         * @return bool
         */
        public function isCollapsed()
        {
        }
        /**
         * @param array $options
         *
         * @return $this
         */
        public function setMenu($options)
        {
        }
    }
}
namespace Bitrix\UI\Buttons\Split {
    class Button extends \Bitrix\UI\Buttons\Button
    {
        /** @var SubButton */
        protected $mainButton;
        /** @var SubButton */
        protected $menuButton;
        protected $menuTarget = \Bitrix\UI\Buttons\Split\Type::MAIN;
        protected $baseClass = 'ui-btn-split';
        /**
         * @return string
         */
        public static function getJsClass()
        {
        }
        /**
         * @param $params
         */
        protected function buildFromArray($params)
        {
        }
        /**
         * @param bool $jsInit
         *
         * @return string
         * @throws \Bitrix\Main\LoaderException
         */
        public function render($jsInit = true)
        {
        }
        protected function renderInner()
        {
        }
        protected function getQuerySelector()
        {
        }
        protected function appendDefaultJsonOption(\Bitrix\UI\Buttons\ButtonAttributes $attributes)
        {
        }
        /**
         * @return SubButton
         */
        public function getMainButton()
        {
        }
        /**
         * @return SubButton
         */
        public function getMenuButton()
        {
        }
        /**
         * @return string
         */
        public function getMenuTarget()
        {
        }
        /**
         * @return string
         */
        public function getText()
        {
        }
        /**
         * @param string $text
         *
         * @return $this
         */
        public function setText($text)
        {
        }
        /**
         * @return int|string
         */
        public function getCounter()
        {
        }
        /**
         * @param string|integer $counter
         *
         * @return $this
         */
        public function setCounter($counter)
        {
        }
        /**
         * @param string $state
         *
         * @return $this
         */
        public function setState($state)
        {
        }
        /**
         * @param bool $flag
         *
         * @return Buttons\Button|void
         * @throws InvalidOperationException
         */
        public function setRound($flag = true)
        {
        }
        /**
         * @param bool $flag
         * @return static
         */
        public function setDropdown($flag = true)
        {
        }
        /**
         * @param bool $flag
         *
         * @return $this
         */
        public function setDisabled($flag = true)
        {
        }
    }
    class CancelButton extends \Bitrix\UI\Buttons\Split\Button
    {
        /**
         * @return array
         */
        protected function getDefaultParameters()
        {
        }
    }
}
namespace Bitrix\UI\Buttons {
    abstract class State
    {
        const HOVER = "ui-btn-hover";
        const ACTIVE = "ui-btn-active";
        const DISABLED = "ui-btn-disabled";
        const CLOCKING = "ui-btn-clock";
        const WAITING = "ui-btn-wait";
    }
}
namespace Bitrix\UI\Buttons\Split {
    abstract class State extends \Bitrix\UI\Buttons\State
    {
        const MAIN_HOVER = "ui-btn-main-hover";
        const MENU_HOVER = "ui-btn-menu-hover";
        const MAIN_ACTIVE = "ui-btn-main-active";
        const MENU_ACTIVE = "ui-btn-menu-active";
        const MAIN_DISABLED = "ui-btn-main-disabled";
        const MENU_DISABLED = "ui-btn-menu-disabled";
    }
    class SendButton extends \Bitrix\UI\Buttons\Split\Button
    {
        /**
         * @return array
         */
        protected function getDefaultParameters()
        {
        }
    }
    class SaveButton extends \Bitrix\UI\Buttons\Split\Button
    {
        /**
         * @return array
         */
        protected function getDefaultParameters()
        {
        }
    }
    class CreateButton extends \Bitrix\UI\Buttons\Split\Button
    {
        /**
         * @return array
         */
        protected function getDefaultParameters()
        {
        }
    }
    class CloseButton extends \Bitrix\UI\Buttons\Split\Button
    {
        /**
         * @return array
         */
        protected function getDefaultParameters()
        {
        }
    }
    class ApplyButton extends \Bitrix\UI\Buttons\Split\Button
    {
        /**
         * @return array
         */
        protected function getDefaultParameters()
        {
        }
    }
    class AddButton extends \Bitrix\UI\Buttons\Split\Button
    {
        /**
         * @return array
         */
        protected function getDefaultParameters()
        {
        }
    }
}
namespace Bitrix\UI\Buttons {
    abstract class Icon
    {
        const UNFOLLOW = "ui-btn-icon-unfollow";
        const FOLLOW = "ui-btn-icon-follow";
        const ADD = "ui-btn-icon-add";
        const STOP = "ui-btn-icon-stop";
        const START = "ui-btn-icon-start";
        const ADD_FOLDER = "ui-btn-icon-add-folder";
        const PAUSE = "ui-btn-icon-pause";
        const SETTING = "ui-btn-icon-setting";
        const SETTINGS = "ui-btn-icon-setting";
        const TASK = "ui-btn-icon-task";
        const INFO = "ui-btn-icon-info";
        const SEARCH = "ui-btn-icon-search";
        const PRINTER = "ui-btn-icon-print";
        const MENU = "ui-btn-icon-list";
        //todo only in php7
        //	const PRINT            = "ui-btn-icon-print";
        //	const LIST             = "ui-btn-icon-list";
        const BUSINESS = "ui-btn-icon-business";
        const BUSINESS_CONFIRM = "ui-btn-icon-business-confirm";
        const BUSINESS_WARNING = "ui-btn-icon-business-warning";
        const CAMERA = "ui-btn-icon-camera";
        const PHONE_UP = "ui-btn-icon-phone-up";
        const PHONE_DOWN = "ui-btn-icon-phone-down";
        const BACK = "ui-btn-icon-back";
        const DISK = "ui-btn-icon-disk";
        const DONE = "ui-btn-icon-done";
        const REMOVE = "ui-btn-icon-remove";
    }
    final class JsEvent implements \JsonSerializable
    {
        /**
         * @var string
         */
        private $event;
        /**
         *
         * @param string $event
         */
        public function __construct($event)
        {
        }
        /**
         * @return string
         */
        public function getEvent()
        {
        }
        /**
         * @param string $event
         *
         * @return $this
         */
        public function setEvent($event)
        {
        }
        /**
         * Specify data which should be serialized to JSON
         * @link https://php.net/manual/en/jsonserializable.jsonserialize.php
         * @return mixed data which can be serialized by <b>json_encode</b>,
         * which is a value of any type other than a resource.
         * @since 5.4.0
         */
        public function jsonSerialize()
        {
        }
    }
    abstract class Size
    {
        const LARGE = "ui-btn-lg";
        const MEDIUM = "ui-btn-md";
        const SMALL = "ui-btn-sm";
        const EXTRA_SMALL = "ui-btn-xs";
    }
    abstract class Tag
    {
        const BUTTON = "button";
        const LINK = "a";
        const SUBMIT = "submit";
        const INPUT = "input";
    }
    final class ButtonAttributes implements \ArrayAccess, \IteratorAggregate, \Countable, \Bitrix\Main\Type\Contract\Arrayable
    {
        const JSON_OPTIONS_DATA_ATTR = 'data-json-options';
        /** @var array */
        private $attributes = [];
        /** @var array */
        private $dataAttributes = [];
        public function __construct(array $attributes = [])
        {
        }
        public function setAttributes(array $attributes)
        {
        }
        /**
         * @param string $name
         * @param mixed|null $defaultValue
         *
         * @return mixed|null
         */
        public function getAttribute($name, $defaultValue = null)
        {
        }
        /**
         * @param string $name
         * @param mixed|null $value
         *
         * @return $this
         */
        public function addDataAttribute($name, $value = null)
        {
        }
        /**
         * @param string $name
         * @param mixed|null $defaultValue
         *
         * @return mixed|null
         */
        public function getDataAttribute($name, $defaultValue = null)
        {
        }
        /**
         * @return array
         */
        public function getDataAttributes()
        {
        }
        public function addJsonOption($key, $value)
        {
        }
        public function removeJsonOption($key)
        {
        }
        public function setJsonOptions(array $options)
        {
        }
        public function getJsonOptions()
        {
        }
        /**
         * @param string $className
         *
         * @return $this
         */
        public function addClass($className)
        {
        }
        /**
         * @param string $className
         *
         * @return bool
         */
        public function hasClass($className)
        {
        }
        public function setClassList(array $classList)
        {
        }
        /**
         * @param string $className
         *
         * @return $this
         */
        public function removeClass($className)
        {
        }
        /**
         * Retrieve an external iterator
         * @link https://php.net/manual/en/iteratoraggregate.getiterator.php
         * @return \Traversable An instance of an object implementing <b>Iterator</b> or
         * <b>Traversable</b>
         * @since 5.0.0
         */
        public function getIterator()
        {
        }
        /**
         * Whether a offset exists
         * @link https://php.net/manual/en/arrayaccess.offsetexists.php
         *
         * @param mixed $offset <p>
         * An offset to check for.
         * </p>
         *
         * @return boolean true on success or false on failure.
         * </p>
         * <p>
         * The return value will be casted to boolean if non-boolean was returned.
         * @since 5.0.0
         */
        public function offsetExists($offset)
        {
        }
        /**
         * Offset to retrieve
         * @link https://php.net/manual/en/arrayaccess.offsetget.php
         *
         * @param mixed $offset <p>
         * The offset to retrieve.
         * </p>
         *
         * @return mixed Can return all value types.
         * @since 5.0.0
         */
        public function &offsetGet($offset)
        {
        }
        /**
         * Offset to set
         * @link https://php.net/manual/en/arrayaccess.offsetset.php
         *
         * @param mixed $offset <p>
         * The offset to assign the value to.
         * </p>
         * @param mixed $value <p>
         * The value to set.
         * </p>
         *
         * @return void
         * @since 5.0.0
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * Offset to unset
         * @link https://php.net/manual/en/arrayaccess.offsetunset.php
         *
         * @param mixed $offset <p>
         * The offset to unset.
         * </p>
         *
         * @return void
         * @since 5.0.0
         */
        public function offsetUnset($offset)
        {
        }
        /**
         * Count elements of an object
         * @link https://php.net/manual/en/countable.count.php
         * @return int The custom count as an integer.
         * </p>
         * <p>
         * The return value is cast to an integer.
         * @since 5.1.0
         */
        public function count()
        {
        }
        /**
         * @return string
         */
        public function toString()
        {
        }
        /**
         * @return string
         */
        public function __toString()
        {
        }
        protected static function convertClassesToString($classes)
        {
        }
        protected static function convertStylesToString($styles)
        {
        }
        /**
         * @return array
         */
        public function toArray()
        {
        }
        protected static function addDataPrefix($name)
        {
        }
        protected static function hasDataPrefix($name)
        {
        }
        protected static function deleteDataPrefix($name)
        {
        }
        protected static function convertDataAttributesToAttributes(array $dataAttributes)
        {
        }
        protected static function splitDataAttributesAndAnother(array $attributes)
        {
        }
    }
    final class JsHandler implements \JsonSerializable
    {
        /**
         * @var string
         */
        private $handler;
        /**
         * @var string|null
         */
        private $context;
        /**
         * JsHandler constructor.
         *
         * @param string $handler
         * @param string|null $context
         */
        public function __construct($handler, $context = null)
        {
        }
        /**
         * @return string
         */
        public function getHandler()
        {
        }
        /**
         * @param string $handler
         *
         * @return JsHandler
         */
        public function setHandler($handler)
        {
        }
        /**
         * @return string|null
         */
        public function getContext()
        {
        }
        /**
         * @param string|null $context
         *
         * @return JsHandler
         */
        public function setContext($context)
        {
        }
        /**
         * Specify data which should be serialized to JSON
         * @link https://php.net/manual/en/jsonserializable.jsonserialize.php
         * @return mixed data which can be serialized by <b>json_encode</b>,
         * which is a value of any type other than a resource.
         * @since 5.4.0
         */
        public function jsonSerialize()
        {
        }
    }
    class CancelButton extends \Bitrix\UI\Buttons\Button
    {
        /**
         * @return array
         */
        protected function getDefaultParameters()
        {
        }
    }
    class SendButton extends \Bitrix\UI\Buttons\Button
    {
        /**
         * @return array
         */
        protected function getDefaultParameters()
        {
        }
    }
    class SaveButton extends \Bitrix\UI\Buttons\Button
    {
        /**
         * @return array
         */
        protected function getDefaultParameters()
        {
        }
    }
    abstract class Color
    {
        const DANGER = "ui-btn-danger";
        const DANGER_DARK = "ui-btn-danger-dark";
        const DANGER_LIGHT = "ui-btn-danger-light";
        const SUCCESS = "ui-btn-success";
        const SUCCESS_LIGHT = "ui-btn-success-light";
        const PRIMARY_DARK = "ui-btn-primary-dark";
        const PRIMARY = "ui-btn-primary";
        const SECONDARY = "ui-btn-secondary";
        const LINK = "ui-btn-link";
        const LIGHT = "ui-btn-light";
        const LIGHT_BORDER = "ui-btn-light-border";
    }
    class CreateButton extends \Bitrix\UI\Buttons\Button
    {
        /**
         * @return array
         */
        protected function getDefaultParameters()
        {
        }
    }
    class CloseButton extends \Bitrix\UI\Buttons\Button
    {
        /**
         * @return array
         */
        protected function getDefaultParameters()
        {
        }
    }
    abstract class Style
    {
        const NO_CAPS = "ui-btn-no-caps";
        const ROUND = "ui-btn-round";
        const DROPDOWN = "ui-btn-dropdown";
        const COLLAPSED = "ui-btn-collapsed";
    }
    class SettingsButton extends \Bitrix\UI\Buttons\Button
    {
        /**
         * @return array
         */
        protected function getDefaultParameters()
        {
        }
        /**
         * @return string
         */
        public static function getJsClass()
        {
        }
    }
    final class JsCode implements \JsonSerializable
    {
        /**
         * @var string
         */
        private $code;
        /**
         *
         * @param string $code
         */
        public function __construct($code)
        {
        }
        /**
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * @param string $code
         *
         * @return $this
         */
        public function setCode($code)
        {
        }
        /**
         * Specify data which should be serialized to JSON
         * @link https://php.net/manual/en/jsonserializable.jsonserialize.php
         * @return mixed data which can be serialized by <b>json_encode</b>,
         * which is a value of any type other than a resource.
         * @since 5.4.0
         */
        public function jsonSerialize()
        {
        }
    }
    class ApplyButton extends \Bitrix\UI\Buttons\Button
    {
        /**
         * @return array
         */
        protected function getDefaultParameters()
        {
        }
    }
    class AddButton extends \Bitrix\UI\Buttons\Button
    {
        /**
         * @return array
         */
        protected function getDefaultParameters()
        {
        }
    }
}
namespace Bitrix\UI\Toolbar {
    abstract class ButtonLocation
    {
        const AFTER_TITLE = "after_title";
        const RIGHT = "right";
        const AFTER_FILTER = "after_filter";
        /** @deprecated  */
        const FILTER_RIGHT = self::AFTER_FILTER;
    }
    class Toolbar
    {
        private $id;
        private $filter;
        private $titleMinWidth;
        private $titleMaxWidth;
        private $favoriteStar = true;
        /**
         * @param Button[] $buttons
         */
        private $afterTitleButtons = [];
        /**
         * @param Button[] $buttons
         */
        private $buttons = [];
        private $filterButtons = [];
        private $options;
        /**
         * Toolbar constructor.
         *
         * @param string $id
         * @param array $options
         */
        public function __construct($id, $options)
        {
        }
        /**
         * @return string
         */
        public function getId()
        {
        }
        /**
         * @param array|Button $button
         * @param string $location
         * @see ButtonLocation
         *
         * @throws ArgumentTypeException
         */
        public function addButton($button, $location = \Bitrix\UI\Toolbar\ButtonLocation::RIGHT)
        {
        }
        public function deleteButtons(\Closure $closure)
        {
        }
        public function shuffleButtons(\Closure $closure, $buttonLocation)
        {
        }
        public function hasFavoriteStar()
        {
        }
        public function addFavoriteStar()
        {
        }
        public function deleteFavoriteStar()
        {
        }
        public function addFilter(array $filterOptions = [])
        {
        }
        public function getFilter()
        {
        }
        /**
         * @return BaseButton[]
         */
        public function getButtons()
        {
        }
        public function renderAfterTitleButtons()
        {
        }
        public function renderRightButtons()
        {
        }
        public function renderAfterFilterButtons()
        {
        }
        /**
         * @deprecated
         * @return string
         */
        public function renderFilterRightButtons()
        {
        }
        protected function processButtonRender(\Bitrix\UI\Buttons\Button $button)
        {
        }
        public function setTitleMinWidth($width)
        {
        }
        public function getTitleMinWidth()
        {
        }
        public function setTitleMaxWidth($width)
        {
        }
        public function getTitleMaxWidth()
        {
        }
    }
}
namespace Bitrix\UI\Toolbar\Facade {
    /**
     * Class Toolbar
     * @package Bitrix\UI\Toolbar\Facade
     * @method static addButton($button, $location = ButtonLocation::RIGHT);
     * @see \Bitrix\UI\Toolbar\Toolbar::addButton
     * @method static addFilter($options = []);
     * @see \Bitrix\UI\Toolbar\Toolbar::addFilter
     * @method static hasFavoriteStar();
     * @see \Bitrix\UI\Toolbar\Toolbar::hasFavoriteStar
     * @method static addFavoriteStar();
     * @see \Bitrix\UI\Toolbar\Toolbar::addFavoriteStar
     * @method static deleteFavoriteStar();
     * @see \Bitrix\UI\Toolbar\Toolbar::deleteFavoriteStar
     * @method static getId();
     * @see \Bitrix\UI\Toolbar\Toolbar::getId
     * @method static getFilter();
     * @see \Bitrix\UI\Toolbar\Toolbar::getFilter
     * @method static renderAfterTitleButtons();
     * @see \Bitrix\UI\Toolbar\Toolbar::renderAfterTitleButtons
     * @method static renderRightButtons();
     * @see \Bitrix\UI\Toolbar\Toolbar::renderRightButtons
     * @method static renderAfterFilterButtons();
     * @see \Bitrix\UI\Toolbar\Toolbar::renderAfterFilterButtons
     * @method static renderFilterRightButtons();
     * @see \Bitrix\UI\Toolbar\Toolbar::renderFilterRightButtons
     * @method static setTitleMinWidth($width);
     * @see \Bitrix\UI\Toolbar\Toolbar::setTitleMinWidth
     * @method static getTitleMinWidth();
     * @see \Bitrix\UI\Toolbar\Toolbar::getTitleMinWidth
     * @method static setTitleMaxWidth($width);
     * @see \Bitrix\UI\Toolbar\Toolbar::setTitleMaxWidth
     * @method static getTitleMaxWidth();
     * @see \Bitrix\UI\Toolbar\Toolbar::getTitleMaxWidth
     * @method static deleteButtons(\Closure $closure)
     * @see \Bitrix\UI\Toolbar\Toolbar::deleteButtons
     * @method static shuffleButtons(\Closure $closure, $buttonLocation)
     * @see \Bitrix\UI\Toolbar\Toolbar::shuffleButtons
     * @method static getButtons()
     * @see \Bitrix\UI\Toolbar\Toolbar::getButtons
     */
    final class Toolbar
    {
        const DEFAULT_ID = 'default-toolbar';
        public static function __callStatic($name, $arguments)
        {
        }
    }
}
namespace Bitrix\UI\Toolbar {
    final class Manager
    {
        /** @var  Manager */
        private static $instance;
        /** @var Toolbar[] */
        protected $toolbars = [];
        private function __construct()
        {
        }
        private function __clone()
        {
        }
        /**
         * Returns Singleton of Manager
         * @return Manager
         */
        public static function getInstance()
        {
        }
        /**
         * @param $id
         *
         * @return Toolbar|null
         */
        public function getToolbarById($id)
        {
        }
        public function createToolbar($id, $options)
        {
        }
    }
}
namespace Bitrix\Main\Engine {
    /**
     * Class JsonController
     * @package Bitrix\Main\Engine
     */
    class JsonController extends \Bitrix\Main\Engine\Controller
    {
        /**
         * Returns default pre-filters for action.
         * @return array
         */
        protected function getDefaultPreFilters()
        {
        }
    }
}
namespace Bitrix\UI\Controller {
    class EntitySelector extends \Bitrix\Main\Engine\JsonController
    {
        protected function getDefaultPreFilters()
        {
        }
        public function loadAction(\Bitrix\Main\Engine\JsonPayload $payload)
        {
        }
        public function getChildrenAction(\Bitrix\Main\Engine\JsonPayload $payload)
        {
        }
        public function doSearchAction(\Bitrix\Main\Engine\JsonPayload $payload)
        {
        }
        public function saveRecentItemsAction(\Bitrix\Main\Engine\JsonPayload $payload)
        {
        }
    }
}
namespace Bitrix\Ui\EntityForm {
    /**
     * Class Scope
     * @package Bitrix\Ui\EntityForm
     */
    class Scope
    {
        protected $user;
        protected static $instance = null;
        /**
         * @return Scope
         */
        public static function getInstance() : \Bitrix\Ui\EntityForm\Scope
        {
        }
        public function getUserScopes(string $entityTypeId, ?string $moduleId = null) : array
        {
        }
        /**
         * @param int $scopeId
         * @return bool
         */
        public function isHasScope(int $scopeId) : bool
        {
        }
        /**
         * @return \CAllUser|\CUser
         */
        protected function getUser()
        {
        }
        private function getScopesIdByUser(?string $moduleId = null) : array
        {
        }
        /**
         * @param int $scopeId
         * @return array|null
         */
        public function getScopeById(int $scopeId) : ?array
        {
        }
        /**
         * @param int $scopeId
         * @return array|null
         */
        public function getById(int $scopeId) : ?array
        {
        }
        /**
         * @param iterable $ids
         * @throws \Exception
         */
        public function removeByIds(iterable $ids) : void
        {
        }
        /**
         * @param int $id
         * @return DeleteResult
         */
        private function removeById(int $id) : \Bitrix\Main\ORM\Data\DeleteResult
        {
        }
        /**
         * Set user option with config scope type and scopeId if selected custom scope
         * @param string $categoryName
         * @param string $guid
         * @param string $scope
         * @param int $userScopeId
         */
        public function setScope(string $categoryName, string $guid, string $scope, int $userScopeId = 0) : void
        {
        }
        public function setScopeConfig(string $category, string $entityTypeId, string $name, array $accessCodes, array $config, string $common)
        {
        }
        public function updateScopeConfig(int $id, array $config)
        {
        }
        /**
         * @param int $configId
         * @param array $accessCodes
         * @return array
         */
        public function updateScopeAccessCodes(int $configId, array $accessCodes = []) : array
        {
        }
        /**
         * @param int $configId
         * @return array
         */
        public function getScopeMembers(int $configId) : array
        {
        }
        /**
         * @param int $configId
         */
        private function removeScopeMembers(int $configId) : void
        {
        }
    }
    class ScopeAccess
    {
        public const SETTINGS_ENTITYFORM_SCOPE_KEY = 'entityFormScope';
        public const SETTINGS_ACCESS_CLASS_KEY = 'access';
        protected $userId;
        protected $moduleId;
        public function __construct(string $moduleId = null, int $userId = null)
        {
        }
        protected function getDefaultUserId() : int
        {
        }
        public static function getInstance(string $moduleId, int $userId = null) : \Bitrix\Ui\EntityForm\ScopeAccess
        {
        }
        public function canRead(int $scopeId) : bool
        {
        }
        public function canAdd() : bool
        {
        }
        public function canUpdate(int $scopeId) : bool
        {
        }
        public function canDelete($scopeIds) : bool
        {
        }
        public function isAdmin() : bool
        {
        }
    }
}
namespace Bitrix\UI {
    /**
     * Class Util
     * @package Bitrix\UI
     */
    class Util
    {
        public static function getHelpdeskUrl($byLang = false)
        {
        }
        /**
         * @param string $code article code.
         * @return string
         */
        public static function getArticleUrlByCode(string $code) : ?string
        {
        }
    }
}
namespace Bitrix\UI\Timeline {
    class Comment
    {
        protected $filesUserFieldEntityId;
        protected $filesUserFieldName;
        public function __construct(string $filesUserFieldEntityId, string $filesUserFieldName)
        {
        }
        public function getVisualEditorResponse(string $name, int $id = 0, string $text = '') : \Bitrix\Main\Engine\Response\Component
        {
        }
        public function saveFiles(int $id, array $files) : bool
        {
        }
        public function getFileUserFields(int $id = 0) : array
        {
        }
        public function getFilesContentResponse(int $id) : ?\Bitrix\Main\Engine\Response\Component
        {
        }
        public function sendMentions(int $id, int $fromUserId, string $text, string $message, array $previouslyMentionedUserIds = []) : array
        {
        }
        public function getUserGenderSuffix(int $userId) : string
        {
        }
        protected function getUserFieldManager() : ?\CUserTypeManager
        {
        }
    }
    class CommentParser
    {
        protected $parser;
        protected $userFields;
        public function __construct(array $userFields = [])
        {
        }
        public function setUserFields(array $userFields) : \Bitrix\UI\Timeline\CommentParser
        {
        }
        public function getHtml(string $text) : string
        {
        }
        public function getText(string $text) : string
        {
        }
        public function getMentionedUserIds(string $text) : array
        {
        }
        protected function getParser() : \CTextParser
        {
        }
    }
}
namespace {
    class bitrix_sitecommunity extends \CModule
    {
        var $MODULE_ID = "bitrix.sitecommunity";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function bitrix_sitecommunity()
        {
        }
        function InstallDB($install_wizard = \true)
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function InstallPublic()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
    class CSelectSiteWizardStep extends \CWizardStep
    {
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class SelectSiteStep extends \CSelectSiteWizardStep
    {
        function InitStep()
        {
        }
    }
    class CSelectTemplateWizardStep extends \CWizardStep
    {
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class SelectTemplateStep extends \CSelectTemplateWizardStep
    {
    }
    class CSelectThemeWizardStep extends \CWizardStep
    {
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class SelectThemeStep extends \CSelectThemeWizardStep
    {
    }
    class CSiteSettingsWizardStep extends \CWizardStep
    {
        function InitStep()
        {
        }
        function GetFileContent($filename, $default_value)
        {
        }
        function GetFileContentImgSrc($filename, $default_value)
        {
        }
    }
    class SiteSettingsStep extends \CSiteSettingsWizardStep
    {
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class CSiteCommunity
    {
        public static function ShowPanel()
        {
        }
    }
}
namespace Bitrix\Landing {
    class LandingBlock
    {
        /**
         * Some params array.
         * @var array
         */
        protected $params = [];
        /**
         * LandingBlock constructor.
         */
        public function __construct()
        {
        }
        /**
         * Get state of edit mode.
         * @return boolean
         */
        public function getEditMode()
        {
        }
        /**
         * Get mixed stored data of block.
         * @param string $code Data code.
         * @return mixed|null
         */
        public function get($code)
        {
        }
        /**
         * Method, which will be called once time.
         * @param array Params array.
         * @return void
         */
        public function init(array $params = [])
        {
        }
        /**
         *  Method, which executes just before block.
         * @param Block $block Block instance.
         * @return void
         */
        public function beforeView(\Bitrix\Landing\Block $block)
        {
        }
    }
}
namespace {
    class StorePersonalBlock extends \Bitrix\Landing\LandingBlock
    {
        public function init(array $params = [])
        {
        }
    }
    class StoreCartBlock extends \Bitrix\Landing\LandingBlock
    {
        public function init(array $params = [])
        {
        }
        public function beforeView(\Bitrix\Landing\Block $block)
        {
        }
    }
    class StoreOrderBlock extends \Bitrix\Landing\LandingBlock
    {
        public function init(array $params = [])
        {
        }
    }
    class StoreCompareBlock extends \Bitrix\Landing\LandingBlock
    {
        public function init(array $params = [])
        {
        }
    }
    class ThreeColsFixTariffsBlock extends \Bitrix\Landing\LandingBlock
    {
        /**
         * Url to get Bitrix24 prices.
         */
        const B24_PRICE_URL = 'https://www.1c-bitrix.ru/buy_tmp/b24_catalog.php?currency=RUR&area=ru';
        /**
         * Available Bitrix24 tariffs.
         */
        const B24_TARIFF_CODES = ['START_20191', 'CRM_20191', 'CRM_20191', 'TEAM_20191', 'COMPANY1'];
        /**
         * Returns actual Bitrix24 prices.
         * @return array
         */
        protected function getPrices() : array
        {
        }
        /**
         * Method, which executes just before block to view.
         * @param Block $block Block instance.
         * @return void
         */
        public function beforeView(\Bitrix\Landing\Block $block)
        {
        }
    }
    class StoreCatalogFilterBlock extends \Bitrix\Landing\LandingBlock
    {
        public function init(array $params = [])
        {
        }
    }
    class OlWidgetBlock extends \Bitrix\Landing\LandingBlock
    {
        public function init(array $params = [])
        {
        }
    }
    class StoreCatalogListBlock extends \Bitrix\Landing\LandingBlock
    {
        /**
         * Set cart position (top, left, ...).
         * @return void
         */
        protected function setCartPosition()
        {
        }
        /**
         * Method, which will be called once time.
         * @param array Params array.
         * @return void
         */
        public function init(array $params = [])
        {
        }
        /**
         *  Method, which executes just before block.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @return void
         */
        public function beforeView(\Bitrix\Landing\Block $block)
        {
        }
    }
    class StoreCatalogDetailBlock extends \Bitrix\Landing\LandingBlock
    {
        /**
         * Set cart position (top, left, ...).
         * @return void
         */
        protected function setCartPosition()
        {
        }
        /**
         * Method, which will be called once time.
         * @param array Params array.
         * @return void
         */
        public function init(array $params = [])
        {
        }
        /**
         *  Method, which executes just before block.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @return void
         */
        public function beforeView(\Bitrix\Landing\Block $block)
        {
        }
    }
    class StoreSalesCenterOrderDetails extends \Bitrix\Landing\LandingBlock
    {
        public function init(array $params = [])
        {
        }
    }
    class Landing extends \CModule
    {
        public $MODULE_ID = 'landing';
        public $MODULE_GROUP_RIGHTS = 'Y';
        public $MODULE_VERSION;
        public $MODULE_VERSION_DATE;
        public $MODULE_NAME;
        public $MODULE_DESCRIPTION;
        public $docRoot = '';
        public $eventsData = ['bitrix24' => ['onDomainChange' => ['\\Bitrix\\Landing\\Update\\Block\\NodeAttributes', 'updateFormDomain']], 'intranet' => ['onBuildBindingMenu' => ['\\Bitrix\\Landing\\Connector\\Intranet', 'onBuildBindingMenu']], 'landing' => ['onBuildSourceList' => ['\\Bitrix\\Landing\\Connector\\Landing', 'onSourceBuildHandler']], 'main' => ['onBeforeSiteDelete' => ['\\Bitrix\\Landing\\Site', 'onBeforeMainSiteDelete'], 'onSiteDelete' => ['\\Bitrix\\Landing\\Site', 'onMainSiteDelete'], 'onUserConsentProviderList' => ['\\Bitrix\\Landing\\Site\\Cookies', 'onUserConsentProviderList']], 'mobile' => ['onMobileMenuStructureBuilt' => ['\\Bitrix\\Landing\\Connector\\Mobile', 'onMobileMenuStructureBuilt']], 'rest' => [
            'onRestServiceBuildDescription' => ['\\Bitrix\\Landing\\Publicaction', 'restBase'],
            'onBeforeApplicationUninstall' => ['\\Bitrix\\Landing\\Publicaction', 'beforeRestApplicationDelete'],
            'onRestAppDelete' => ['\\Bitrix\\Landing\\Publicaction', 'restApplicationDelete'],
            // sites transfer
            'onRestApplicationConfigurationGetManifest' => ['\\Bitrix\\Landing\\Transfer\\AppConfiguration', 'getManifestList'],
            'onRestApplicationConfigurationExport' => ['\\Bitrix\\Landing\\Transfer\\AppConfiguration', 'onEventExportController'],
            'onRestApplicationConfigurationGetManifestSetting' => ['\\Bitrix\\Landing\\Transfer\\AppConfiguration', 'onInitManifest'],
            'onRestApplicationConfigurationEntity' => ['\\Bitrix\\Landing\\Transfer\\AppConfiguration', 'getEntityList'],
            'onRestApplicationConfigurationImport' => ['\\Bitrix\\Landing\\Transfer\\AppConfiguration', 'onEventImportController'],
            'onRestApplicationConfigurationFinish' => ['\\Bitrix\\Landing\\Transfer\\AppConfiguration', 'onFinish'],
        ], 'socialnetwork' => ['onFillSocNetFeaturesList' => ['\\Bitrix\\Landing\\Connector\\SocialNetwork', 'onFillSocNetFeaturesList'], 'onFillSocNetMenu' => ['\\Bitrix\\Landing\\Connector\\SocialNetwork', 'onFillSocNetMenu'], 'onSocNetGroupDelete' => ['\\Bitrix\\Landing\\Connector\\SocialNetwork', 'onSocNetGroupDelete']], 'socialservices' => ['\\Bitrix\\Socialservices\\ApTable::OnAfterAdd' => ['\\Bitrix\\Landing\\Update\\Block\\NodeAttributes', 'updateFormDomainByConnector']]];
        public $installDirs = array('admin' => 'admin', 'js' => 'landing', 'images' => 'landing', 'tools' => 'landing', 'blocks' => 'bitrix', 'components' => 'bitrix', 'templates' => 'landing24');
        /**
         * Constructor.
         */
        public function __construct()
        {
        }
        /**
         * Call all install methods.
         * @returm void
         */
        public function doInstall()
        {
        }
        /**
         * Call all uninstall methods, include several steps.
         * @returm void
         */
        public function doUninstall()
        {
        }
        /**
         * Install DB, events, etc.
         * @return boolean
         */
        public function installDB()
        {
        }
        /**
         * Is B24 portal?
         * @return bool
         */
        private function isB24()
        {
        }
        /**
         * Install or uninstall main site templates.
         * @param boolean $install Call type.
         * @return void
         */
        public function setSiteTemplates($install = \true)
        {
        }
        /**
         * Set router handlers for post preview.
         * @return void
         */
        private function setRouteHandlers()
        {
        }
        /**
         * Settings required options.
         * @return void
         */
        public function setOptions()
        {
        }
        /**
         * Install templates of landing.
         * @return boolean
         */
        public function installTemplates()
        {
        }
        /**
         * Install files.
         * @return boolean
         */
        public function installFiles()
        {
        }
        /**
         * Remove all pages and sites first.
         * @return void
         */
        public function removeData()
        {
        }
        /**
         * Uninstall DB, events, etc.
         * @param array $arParams Some params.
         * @return boolean
         */
        public function uninstallDB($arParams = array())
        {
        }
        /**
         * Uninstall files.
         * @return boolean
         */
        public function uninstallFiles()
        {
        }
        /**
         * Get module rights.
         * @return array
         */
        public function getModuleRightList()
        {
        }
        /**
         * Get access tasks for module.
         * @return array
         */
        public function getModuleTasks()
        {
        }
        /**
         * Method for migrate from cloud version.
         * @return void
         */
        public function migrateToBox()
        {
        }
    }
    class LandingBaseComponent extends \CBitrixComponent
    {
        /**
         * @deprecated
         */
        const B24_SERVICE_DETECT_IP = 'https://ip.bitrix24.site/getipforzone/?bx24_zone=';
        const B24_DEFAULT_DNS_IP = '52.59.124.117';
        /**
         * Manifest path template.
         */
        const FILE_PATH_SITE_MANIFEST = '/bitrix/components/bitrix/landing.demo/data/site/#code#/.theme.php';
        /**
         * Http status OK.
         */
        const ERROR_STATUS_OK = '200 OK';
        /**
         * Http status Forbidden.
         */
        const ERROR_STATUS_FORBIDDEN = '403 Forbidden';
        /**
         * Http status Not Found.
         */
        const ERROR_STATUS_NOT_FOUND = '404 Not Found';
        /**
         * Http status Service Unavailable.
         */
        const ERROR_STATUS_UNAVAILABLE = '503 Service Unavailable';
        /**
         * Navigation id.
         */
        const NAVIGATION_ID = 'nav';
        /**
         * Current user options.
         * @var array|null
         */
        protected $userOptions = \null;
        /**
         * Current errors.
         * @var array
         */
        protected $errors = array();
        /**
         * Current template.
         * @var string
         */
        protected $template = '';
        /**
         * Last navigation result.
         * @var \Bitrix\Main\UI\PageNavigation
         */
        protected $lastNavigation = \null;
        /**
         * Current request
         * @var \Bitrix\Main\HttpRequest
         */
        protected $currentRequest = \null;
        /**
         * Init class' vars, check conditions.
         * @return bool
         */
        protected function init()
        {
        }
        /**
         * Returns current user GEO data.
         * @return array
         */
        public function getUserGeoData() : array
        {
        }
        /**
         * Returns true if current request is ajax.
         * @return bool
         */
        public function isAjax() : bool
        {
        }
        /**
         * Returns feedback parameters.
         * @param string $id Feedback code.
         * @return array|null
         */
        public function getFeedbackParameters(string $id) : ?array
        {
        }
        /**
         * Returns IP for DNS record for custom domains.
         * @return string
         */
        protected function getIpForDNS()
        {
        }
        /**
         * Get preview picture from cloud or not
         * @return bool
         */
        protected function previewFromCloud()
        {
        }
        /**
         * Http request initialization.
         *
         * @return void
         * @throws \Bitrix\Main\SystemException
         */
        protected function initRequest()
        {
        }
        /**
         * Send only first http status.
         * @param string $code Http status code.
         * @return void
         */
        protected function setHttpStatusOnce($code)
        {
        }
        /**
         * Returns true if it is repo sever.
         * @return bool
         */
        protected function isRepo() : bool
        {
        }
        /**
         * Check var in arParams. If no exists, create with default val.
         * @param string|int $var Variable.
         * @param mixed $default Default value.
         * @return void
         */
        protected function checkParam($var, $default)
        {
        }
        /**
         * Add one more error.
         * @param string $code Code of error (lang code).
         * @param string $message Optional message.
         * @param bool $fatal Is fatal error.
         * @return void
         */
        protected function addError($code, $message = '', $fatal = \false)
        {
        }
        /**
         * Collect errors from result.
         * @param Entity\AddResult|Entity\UpdateResult|Entity\DeleteResult $result Result.
         * @return void
         */
        protected function addErrorFromResult($result)
        {
        }
        /**
         * Copy Error from one to this.
         * @param array|\Bitrix\Main\Error $errors Error or array of errors.
         * @return void
         */
        protected function setErrors($errors)
        {
        }
        /**
         * Get current errors.
         * @param bool $string Convert Errors to string.
         * @return array
         */
        public function getErrors($string = \true)
        {
        }
        /**
         * Get error from current by string code.
         * @param string $code Error code.
         * @return false|\Bitrix\Main\Error
         */
        protected function getErrorByCode($code)
        {
        }
        /**
         * Get __FILE__.
         * @return string
         */
        protected function getFile()
        {
        }
        /**
         * Refresh current page.
         * @param array $add New params.
         * @param array $delete Params to remove.
         * @return void
         */
        public function refresh(array $add = [], array $delete = [])
        {
        }
        /**
         * Get some var from request.
         * @param string $var Code of var.
         * @return mixed
         */
        public function request($var)
        {
        }
        /**
         * Return valid class from module.
         * @param string $class Class name.
         * @return string|false Full class name or false on failure.
         */
        protected function getValidClass($class)
        {
        }
        /**
         * Gets last navigation object.
         * @return \Bitrix\Main\UI\PageNavigation
         */
        public function getLastNavigation()
        {
        }
        /**
         * Get items from some table.
         * @param string $class Class code.
         * @param array $params Params.
         * @return array
         */
        protected function getItems($class, $params = array())
        {
        }
        /**
         * Get current sites.
         * @param array $params Params.
         * @return array
         */
        protected function getSites($params = array())
        {
        }
        /**
         * Get current domains.
         * @param array $params Params.
         * @return array
         */
        protected function getDomains($params = array())
        {
        }
        /**
         * Get current templates.
         * @param array $params Params.
         * @return array
         */
        protected function getTemplates($params = array())
        {
        }
        /**
         * Get some landings.
         * @param array $params Params.
         * @return array
         */
        protected function getLandings($params = array())
        {
        }
        /**
         * Init script for initialization API keys.
         * @return void
         */
        public function initAPIKeys()
        {
        }
        /**
         * Get loc::getMessage by type of site.
         * @param string $code Mess code.
         * @param array $replace Array for replace, e.g. array('#NUM#' => 5).
         * @return string
         */
        public function getMessageType($code, $replace = \null)
        {
        }
        /**
         * Get actual rest path.
         * @deprecated since 20.2.100
         * @return string
         */
        public function getRestPath() : string
        {
        }
        /**
         * Set timestamp for url.
         * @param string $url Url.
         * @return string
         */
        protected function getTimestampUrl($url)
        {
        }
        /**
         * Gets instance of URI without some external params.
         * @return \Bitrix\Main\Web\Uri
         */
        protected function getUriInstance()
        {
        }
        /**
         * Get URI without some external params.
         * @param array $add Additional params for adding.
         * @param array $remove Additional params for deleting.
         * @return string
         */
        public function getUri(array $add = [], array $remove = [])
        {
        }
        /**
         * Get URI path.
         * @return string
         */
        protected function getUriPath()
        {
        }
        /**
         * Gets current file real name.
         * @return string
         */
        protected function getRealFile()
        {
        }
        /**
         * Gets tasks for access part.
         * @return array
         */
        protected function getAccessTasks()
        {
        }
        /**
         * Gets settings link by error code.
         * @param string $errorCode Error code.
         * @return string
         */
        public function getSettingLinkByError($errorCode)
        {
        }
        /**
         * Detect, if error occurred on small tarrifs.
         * @param string $errorCode Error code.
         * @return bool
         */
        public function isTariffError($errorCode)
        {
        }
        /**
         * Proxy rest methods, that we can redefine an answer.
         * @throws ReflectionException
         * @throws \Bitrix\Main\ArgumentException
         * @return void
         */
        protected function restProxy()
        {
        }
        /**
         * Initiates user options from storage.
         * @return void
         */
        protected function initUserOption() : void
        {
        }
        /**
         * Save some data for current user.
         * @param string $key Key of value.
         * @param mixed $value Mixed value.
         * @return void
         */
        protected function setUserOption(string $key, $value) : void
        {
        }
        /**
         * Returns some user data by key.
         * @param string $key Option key.
         * @return mixed|null
         */
        protected function getUserOption(string $key)
        {
        }
        /**
         * Returns site theme manifest.
         * @param string $tplCode Site template code.
         * @return array|null
         */
        protected function getThemeManifest(string $tplCode) : ?array
        {
        }
        /**
         * Get users from admin group.
         * @return array
         */
        protected function getAdmins() : array
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingRolesComponent extends \LandingBaseComponent
    {
        /**
         * Action for switch mode.
         * @return bool
         */
        protected function actionMode()
        {
        }
        /**
         * Save action (extended mode).
         * @return bool
         */
        protected function actionSaveExtended()
        {
        }
        /**
         * Save action (role mode).
         * @return bool
         */
        protected function actionSave()
        {
        }
        /**
         * Get all access codes from roles.
         * @return array
         */
        protected function getAccessCodes()
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingSiteCookiesComponent extends \LandingBaseComponent
    {
        /**
         * Saves agreements.
         * @return bool
         */
        protected function actionSave() : bool
        {
        }
        /**
         * Check access to settings edit.
         * @return bool
         */
        protected function checkAccess() : bool
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent() : void
        {
        }
    }
    class LandingBlocksMessageComponent extends \CBitrixComponent
    {
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingSocialnetworkPreviewComponent extends \CBitrixComponent
    {
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingBaseFormComponent extends \LandingBaseComponent
    {
        /**
         * Current element id.
         * @var int
         */
        protected $id = 0;
        /**
         * Class of current element.
         * @var string
         */
        protected $class = \null;
        /**
         * Page after success save.
         * @var string
         */
        protected $successSavePage = '';
        /**
         * Redirect on $successSavePage after save.
         * @var bool
         */
        protected $redirectAfterSave = \false;
        /**
         * POST key.
         * @var string
         */
        protected $postCode = 'fields';
        /**
         * POST fields.
         * @var null
         */
        protected $postFields = \null;
        /**
         * Local version of table map with available fields for change.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Get some var from request.
         * @param string $var Code of var.
         * @param bool $strict Strict check of var.
         * @return mixed
         */
        public function request($var, $strict = \false)
        {
        }
        /**
         * Current form is saving now.
         * @return boolean
         */
        protected function isSaving()
        {
        }
        /**
         * Fill or not row data from Request.
         * @return boolean
         */
        protected function fillFromRequest()
        {
        }
        /**
         * Allowed or not additional fields for this form.
         * @return boolean
         */
        protected function additionalFieldsAllowed()
        {
        }
        /**
         * Get additional fields, which must be un-wafed.
         * @return array
         */
        protected function getAdditionalFieldsRaw()
        {
        }
        /**
         * Get additional fields values.
         * @return array
         */
        protected function getAdditionalFieldsValue()
        {
        }
        /**
         * Gets rights value for saving.
         * @param bool $integer Return task id in integer vals.
         * @return array
         */
        protected function getRightsValue($integer = \false)
        {
        }
        /**
         * Fill default fields from exist another row.
         * @return int
         */
        protected function getCopyId()
        {
        }
        /**
         * Get hooks for current entity.
         * @param string|bool $class Get hooks from this class.
         * @param int|bool $id Get hooks from this entity id.
         * @return array
         */
        protected function getHooks($class = \false, $id = \false)
        {
        }
        /**
         * Get current item from table (or request) with map description.
         * @return array
         */
        protected function getRow()
        {
        }
        /**
         * Save current item.
         * @return boolean
         */
        protected function updateRow()
        {
        }
        /**
         * Delete current item.
         * @return boolean
         */
        protected function deleteRow()
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingEditComponent extends \LandingBaseFormComponent
    {
        /**
         * Detect or not og image from landing content.
         */
        const DETECT_OG_IMAGE = \false;
        /**
         * Min width/height for og:image.
         */
        const OG_IMAGE_MIN_SIZE = 200;
        /**
         * Max width/height for og:image.
         */
        const OG_IMAGE_MAX_SIZE = 1500;
        /**
         * Class of current element.
         * @var string
         */
        protected $class = 'Landing';
        /**
         * Local version of table map with available fields for change.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Allowed or not additional fields for this form.
         * @return boolean
         */
        protected function additionalFieldsAllowed()
        {
        }
        /**
         * Detect image in landing content.
         * @param int $lid Landing id.
         * @param int $limit Limit for pictures.
         * @return array
         */
        protected function detectLandingImage($lid, $limit = 0)
        {
        }
        /**
         * Get meta tags for current landing.
         * @return array
         */
        protected function getMeta()
        {
        }
        /**
         * Returns true, if this site without external domain.
         * @return bool
         */
        protected function isIntranet()
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingViewComponent extends \LandingBaseComponent
    {
        /**
         * Total this type sites count.
         * @deprecated since 19.0.0
         * @var int
         */
        protected $sitesCount;
        /**
         * Total pages count in current site.
         * @deprecated since 19.0.0
         * @var int
         */
        protected $pagesCount;
        /**
         * Just redirect to the landing preview page.
         * @param int $id Landing id.
         * @return boolean
         */
        protected function actionPreview($id)
        {
        }
        /**
         * User try change top panel and need new data.
         * @param int $lid Landing id.
         * @return array
         */
        protected function actionChangeTop($lid)
        {
        }
        /**
         * Gets config for top panel.
         * @param Landing $landing Landing instance.
         * @param array $site Site landing's array.
         * @param array $rights Rights landing's array.
         * @return array
         */
        protected function getTopPanelConfig(\Bitrix\Landing\Landing $landing, array $site, array $rights)
        {
        }
        /**
         * In some times we need show popup about site is now creating.
         * @param int $siteId Site id.
         * @return boolean
         */
        protected function isNeedFirstPreparePopup($siteId)
        {
        }
        /**
         * Publication landing.
         * @param int $id Landing id.
         * @param bool $disabledRedirect Disable redirect after publication.
         * @return boolean
         */
        protected function actionPublication($id, $disabledRedirect = \false)
        {
        }
        /**
         * Publication all landing in site of current landing.
         * @param int $id Landing id.
         * @return boolean
         */
        protected function actionPublicationAll($id)
        {
        }
        /**
         * Cancel publication the landing.
         * @param int $id Landing id.
         * @return boolean
         */
        protected function actionUnpublic($id)
        {
        }
        /**
         * Gets sites count.
         * @return int
         */
        public function getSitesCount()
        {
        }
        /**
         * Gets pages count of current site.
         * @param int $siteId Site id.
         * @return int
         */
        public function getPagesCount($siteId = \null)
        {
        }
        /**
         * Returns block section, opened by default.
         * @param string $type Site type.
         * @return string
         */
        protected function getCurrentBlockSection(string $type) : string
        {
        }
        /**
         * Handler on view landing.
         * @return void
         */
        protected function onLandingView()
        {
        }
        /**
         * Handler on template epilog.
         * @return void
         */
        protected function onEpilog()
        {
        }
        /**
         * Gets get some system urls for template.
         * @param Landing $landing Landing instance.
         * @param array $site Site row.
         * @return \Bitrix\Main\Web\Uri[]
         */
        protected function getUrls(\Bitrix\Landing\Landing $landing, $site = \null)
        {
        }
        /**
         * Gets conditions for slider init.
         * @return array
         */
        protected function getSliderConditions()
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    /** @noinspection PhpUnused */
    class LandingBlocksPhoneButtonComponent extends \CBitrixComponent
    {
        /**
         * Base executable method.
         * @return void
         * @noinspection PhpMissingParentCallCommonInspection
         */
        public function executeComponent() : void
        {
        }
    }
    class LandingLandingsComponent extends \LandingBaseComponent
    {
        /**
         * Count items per page.
         */
        const COUNT_PER_PAGE = 23;
        /**
         * Copy some landing.
         * @param int $id Landing id.
         * @param array $additional Additional params.
         * @return boolean
         */
        protected function actionCopy($id, $additional = array())
        {
        }
        /**
         * Move some landing.
         * @param int $id Landing id.
         * @param array $additional Additional params.
         * @return boolean
         */
        protected function actionMove($id, $additional = array())
        {
        }
        /**
         * Get previews from folder.
         * @param int $folderId Folder id.
         * @return array
         */
        protected function getFolderPreviews($folderId)
        {
        }
        /**
         * Returns true, if this site without external domain.
         * @return bool
         */
        protected function isIntranet()
        {
        }
        /**
         * Detect areas and requests some additional info.
         * @return void
         */
        protected function prepareAreas()
        {
        }
        /**
         * Returns sites and folders array.
         * @param array $sites Sites array.
         * @return array
         */
        protected function getTreeForCopy(array $sites) : array
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingPubComponent extends \LandingBaseComponent
    {
        /**
         * Special page - robots.txt
         * @var boolean
         */
        protected $isRobotsTxt = \false;
        /**
         * Special page - sitemap.xml
         * @var boolean
         */
        protected $isSitemapXml = \false;
        /**
         * Is preview mode.
         * @var boolean
         */
        protected $isPreviewMode = \false;
        /**
         * SEF variables.
         * @var array
         */
        protected $sefVariables = array();
        /**
         * Dynamic filter id.
         * @var int
         */
        protected $dynamicFilterId = 0;
        /**
         * Dynamic element id.
         * @var int
         */
        protected $dynamicElementId = 0;
        /**
         * Current zone.
         * @var string
         */
        protected $zone = '';
        /**
         * Http status was send.
         * @var bool
         */
        protected $httpStatusSend = \false;
        /**
         * Current http status.
         * @var string
         */
        protected $currentHttpStatus = self::ERROR_STATUS_OK;
        /**
         * Main instance of current page.
         * @var array
         */
        protected static $landingMain = \null;
        /**
         * Gets main instance of current page.
         * @return array
         */
        public static function getMainInstance()
        {
        }
        /**
         * Get base domain of service by lang.
         * @return string
         */
        protected function getParentDomain()
        {
        }
        /**
         * Gets path for copyright link.
         * @param string $section Code of section.
         * @return string
         */
        protected function getCopyLinkPath($section = 'websites')
        {
        }
        /**
         * Get adv campaign code.
         * @param string $type Type of the link.
         * @return string
         */
        protected function getAdvCode($type = 'bitrix24_logo')
        {
        }
        /**
         * Build and gets link for different links in the copyright.
         * @param string $type Type of the link.
         * @param bool $addAdvCode Add or not adv code.
         * @return string
         */
        public function getRefLink($type, $addAdvCode = \true)
        {
        }
        /**
         * Send only first http status.
         * @param string $code Http status code.
         * @return void
         */
        protected function setHttpStatusOnce($code)
        {
        }
        /**
         * Clear status that http status was send.
         * @return void
         */
        protected function clearHttpStatus()
        {
        }
        /**
         * Returns current http status.
         * @return string
         */
        public function getCurrentHttpStatus() : string
        {
        }
        /**
         * Detect landing by path.
         * @return int|false Detected landing id or false.
         */
        protected function detectPage()
        {
        }
        /**
         * Get sitemap.xml content.
         * @param int $siteId Site Id.
         * @return string
         */
        protected function getSitemap($siteId)
        {
        }
        /**
         * Handler for localRedirect.
         * @return void
         */
        protected function onBeforeLocalRedirect()
        {
        }
        /**
         * On search title.
         * @return void
         */
        protected function onSearchGetURL()
        {
        }
        /**
         * Redefined basket item before save.
         * @see Also called from landing/install/blocks/bitrix/store.cart/ajax.php:59
         * @return void
         */
        public function onSaleBasketItemBeforeSaved()
        {
        }
        /**
         * Register callback for replace url in all letter.
         * @param int $siteId Site id for get url.
         * @return void
         */
        public static function replaceUrlInLetter($siteId)
        {
        }
        /**
         * For replace some fields in sending letters.
         * @return void
         */
        protected function onBeforeEventSend()
        {
        }
        /**
         * Handler on epilog finish.
         * @return void
         */
        protected function onEpilog() : void
        {
        }
        /**
         * Handler on view block.
         * @return void
         */
        protected function onBlockPublicView() : void
        {
        }
        /**
         * Fill params urls with landing data.
         * @param Landing $landing Landing instance.
         * @return void
         */
        protected function replaceParamsUrls(\Bitrix\Landing\Landing $landing)
        {
        }
        /**
         * Sets canonical url.
         * @param Landing $landing Landing instance.
         * @return void
         */
        public function setCanonical(\Bitrix\Landing\Landing $landing)
        {
        }
        /**
         * Returns force content for robots.txt
         * @return string
         */
        protected function getForceRobots()
        {
        }
        /**
         * Sends request for getting access to current site.
         * @return array
         */
        protected function actionAskAccess() : array
        {
        }
        /**
         * Checks if this site is binding to socialnet opened group.
         * @param int $siteId Site id.
         * @return bool
         */
        protected function isOpenedGroupSite(int $siteId) : bool
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingSocialnetworkGroupRedirectComponent extends \LandingBaseComponent
    {
        /**
         * If for site id exist group, then returns group id.
         * @param int $siteId Site id.
         * @return int
         */
        public static function getGroupIdBySiteId($siteId)
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingBindingMenuComponent extends \LandingBaseComponent
    {
        /**
         * Bind entity to specific menu.
         * @param int $id Entity id.
         * @return boolean
         */
        protected function actionBind($id)
        {
        }
        /**
         * Unbind entity from specific menu.
         * @param int $id Entity id.
         * @return boolean
         */
        protected function actionUnbind($id)
        {
        }
        /**
         * Excludes binded entities from data.
         * @return void
         */
        protected function excludeBindings()
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingSiteEditComponent extends \LandingBaseFormComponent
    {
        /**
         * Class of current element.
         * @var string
         */
        protected $class = 'Site';
        /**
         * Local version of table map with available fields for change.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Allowed or not additional fields for this form.
         * @return boolean
         */
        protected function additionalFieldsAllowed()
        {
        }
        /**
         * Gets lang codes.
         * @return array
         */
        protected function getLangCodes()
        {
        }
        /**
         * Returns true, if this site without external domain.
         * @return bool
         */
        protected function isIntranet()
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingDomainRenameComponent extends \LandingSiteEditComponent
    {
        /**
         * Returns postfix for domain.
         * @return string
         */
        protected function getPostFix()
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingCookiesComponent extends \LandingBaseComponent
    {
        /**
         * Returns landing site id.
         * @return int
         */
        protected function getLandingSiteId() : int
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent() : void
        {
        }
    }
    class LandingEmptyComponent extends \LandingBaseComponent
    {
    }
    class LandingDomainEditComponent extends \LandingBaseFormComponent
    {
        /**
         * Class of current element.
         * @var string
         */
        protected $class = 'Domain';
        /**
         * Local version of table map with available fields for change.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingRoleEditComponent extends \LandingBaseFormComponent
    {
        /**
         * Class of current element.
         * @var string
         */
        protected $class = 'Role';
        /**
         * Local version of table map with available fields for change.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Action for switch mode.
         * @return bool
         */
        protected function actionMode()
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingUtilsCmpFilterComponent extends \CBitrixComponent
    {
        /**
         * Search or not by search module.
         */
        const ENABLED_SEARCH_MODULE = \true;
        /**
         * Get filter for main.ui.filter used.
         * @return array
         */
        public static function getFilterFields()
        {
        }
        /**
         * Get additional filter by query string.
         * @param string $q Query string.
         * @return array
         */
        protected static function search($q)
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    /**
     * Class LandingRestPendingComponent
     * This component for situation when during the import some application
     * blocks are not installed yet. After block will appear, this component
     * will rewrite the block content.
     */
    class LandingRestPendingComponent extends \CBitrixComponent
    {
        /**
         * Returns application info by its code.
         * @param string $appCode Application code.
         * @return array|null
         */
        protected function getAppInfo(string $appCode) : ?array
        {
        }
        /**
         * Finds repository block and return it id.
         * @param string $appCode Application code.
         * @param string $xmlId External id application.
         * @return array|null
         */
        protected function getRepoId(string $appCode, string $xmlId) : ?array
        {
        }
        /**
         * Updates site in Bitrix24 env for clearing cache.
         * @param int $id Site id.
         * @return void
         */
        protected function updateSite(int $id) : void
        {
        }
        /**
         * Save new data in the block.
         * @param int $blockId Block id.
         * @param int $repoId Repo id.
         * @param array $data New data for block.
         * @param bool $view Output new block content after save.
         * @return bool
         */
        protected function updateBlock(int $blockId, int $repoId, array $data, bool $view = \true) : bool
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent() : void
        {
        }
    }
    class LandingDomainsComponent extends \LandingBaseComponent
    {
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingUserConsentSelector extends \LandingBaseComponent
    {
        /**
         * Preparing params array.
         * @return void
         */
        protected function initParams()
        {
        }
        /**
         * Preparing result array.
         * @return void
         */
        protected function prepareResult()
        {
        }
        /**
         * Main executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
}
namespace Bitrix\Main\UserConsent\Internals {
    abstract class ComponentController
    {
        protected $errors = array();
        protected $action = null;
        protected $responseData = array();
        protected $requestData = array();
        /** @var HttpRequest $request */
        protected $request = array();
        protected abstract function getActions();
        protected abstract function checkPermissions();
        protected function prepareRequestData()
        {
        }
        protected function giveResponse()
        {
        }
        protected function getActionCall()
        {
        }
        protected function hasErrors()
        {
        }
        protected function check()
        {
        }
        /**
         * Exec.
         *
         * @return void
         */
        public function exec()
        {
        }
    }
}
namespace {
    class LandingUserConsentSelectorAjaxController extends \Bitrix\Main\UserConsent\Internals\ComponentController
    {
        /**
         * Gets available agreements.
         * @return void
         */
        protected function getAgreements()
        {
        }
        /**
         * Gets available actions of controller.
         * @return array
         */
        protected function getActions()
        {
        }
        /**
         * Checks permissions.
         * @return bool
         */
        protected function checkPermissions()
        {
        }
    }
    class LandingBlocksHtmlComponent extends \CBitrixComponent
    {
        /**
         * Sanitizes bad code.
         * @param string $str Very bad html with <script>, etc.
         * @return string
         */
        public function sanitize($str)
        {
        }
        /**
         * Local htmlspecialcharsback funciton.
         * @param string $code Code for decoding.
         * @return string
         */
        public function htmlspecialcharsback($code)
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    /** @noinspection PhpUnused */
    class LandingBlocksOlComponent extends \CBitrixComponent
    {
        /**
         * Base executable method.
         * @return void
         * @noinspection PhpMissingParentCallCommonInspection
         */
        public function executeComponent() : void
        {
        }
        protected function checkNoWidgetError() : bool
        {
        }
        protected function getWidgetsForButton($buttonId)
        {
        }
        protected static function getAvailableChannelTypes() : array
        {
        }
        protected function prepareWidgetsToPrint() : void
        {
        }
    }
    class LandingSiteDemoComponent extends \LandingBaseComponent
    {
        /**
         * Count items per page.
         */
        const COUNT_PER_PAGE = 48;
        /**
         * Days count during which templates marked as 'new'.
         */
        const LABEL_NEW_PERIOD_DAY = 12;
        /**
         * Tag for managed cache.
         */
        const DEMO_TAG = 'landing_demo';
        /**
         * Path with demo templates data for site.
         */
        const DEMO_DIR_SITE = 'site';
        /**
         * Path with demo templates data for page.
         */
        const DEMO_DIR_PAGE = 'page';
        /**
         * Remote repository url.
         */
        const REMOTE_REPOSITORY_URL = 'https://preview.bitrix24.site/rest/1/gvsn3ngrn7vb4t1m/';
        /**
         * Steps constant for catalog import.
         */
        const STEP_STATUS_ERROR = 'ERROR';
        const STEP_STATUS_CONTINUE = 'CONTINUE';
        const STEP_STATUS_COMPLETE = 'COMPLETE';
        const STEP_ID_HIGHLOADBLOCK = 'CREATE_HIGHLOADBLOCK';
        const STEP_ID_PREPARE_CRM_CATALOG = 'CRM_CATALOG';
        const STEP_ID_XML_IMPORT = 'XML_IMPORT';
        const STEP_ID_ADDITIONAL_UPDATE = 'ADDITIONAL';
        const STEP_ID_REINDEX = 'REINDEX';
        const STEP_ID_CATALOG_REINDEX = 'CATALOG_REINDEX';
        const STEP_ID_FINAL = 'FINAL';
        private $catalogStepList = [self::STEP_ID_HIGHLOADBLOCK, self::STEP_ID_PREPARE_CRM_CATALOG, self::STEP_ID_XML_IMPORT, self::STEP_ID_ADDITIONAL_UPDATE, self::STEP_ID_CATALOG_REINDEX, self::STEP_ID_FINAL];
        protected const DEMO_TEMPLATE_FIRST = 'empty';
        protected const DEMO_NFR_APP = 'bitrix.partnerlanding';
        protected const DEMO_SORT_OFFSET = 100;
        protected const DEMO_SORT_SCOPE_FIRST = 0;
        protected const DEMO_SORT_SCOPE_NEW = 1;
        protected const DEMO_SORT_SCOPE_HOLIDAYS = 2;
        protected const DEMO_SORT_SCOPE_REST = 3;
        protected const DEMO_SORT_SCOPE_LOCAL = 5;
        protected const DEMO_SORT_SCOPE_LAST = 6;
        protected const DEMO_HOLIDAYS = ["holidays/holiday.blackfriday" => [11, 01, 11, 30], "holidays/holiday.easter1" => [2, 21, 4, 4], "holidays/holiday.easter2" => [3, 21, 5, 2], "holidays/holiday.halloween" => [10, 10, 10, 31], "holidays/holiday.new-year" => [12, 8, 12, 31], "holidays/holiday.thanksgiving" => [11, 01, 11, 30], "holidays/holiday.valentine1" => [1, 24, 2, 14], "holidays/holiday.valentine2" => [1, 24, 2, 14], "holidays/holiday.valentine3" => [1, 24, 2, 14], "holidays/holiday.xmas" => [12, 1, 12, 25], "holidays/holiday.8march1" => [2, 15, 3, 8], "holidays/holiday.8march2" => [2, 15, 3, 8], "holidays/holiday.8march3" => [2, 15, 3, 8], "holidays/holiday.23february.1" => [2, 2, 2, 23], "holidays/holiday.23february.2" => [2, 2, 2, 23], "holidays/holiday.23february.3" => [2, 2, 2, 23], "holidays/holiday.april-fool" => [3, 11, 4, 1]];
        /**
         * Relative url for new site.
         * @var string
         */
        protected $urlTpl = '/#rand#/';
        /**
         * Landing old ids for version 3.
         * @var array
         */
        protected $oldIds = [];
        /**
         * Predefined additional fields.
         * @var array
         */
        protected $presetAdditionalFields = [];
        /**
         * Gets remote templates from repository.
         * @var bool
         */
        protected $getRemoteTemplates = \false;
        /**
         * Different layouts for pages.
         * @var array
         */
        protected $pagesLayouts = [];
        /**
         * Redirect to the landing.
         * @param int $landingId Landing id.
         * @return boolean If error.
         */
        protected function redirectToLanding($landingId)
        {
        }
        /**
         * Preset additional fields before create.
         * @param array $fields Additional fields.
         * @return void
         */
        public function setAdditionalFields(array $fields)
        {
        }
        /**
         * Prepare additional fields for page.
         * @param array $data Data array.
         * @param bool $request Get data from request.
         * @return array
         */
        protected function prepareAdditionalFieldsPage($data, $request = \true)
        {
        }
        /**
         * Prepare additional fields for site.
         * @param array $data Data array.
         * @return array
         */
        protected function prepareAdditionalFieldsSite($data)
        {
        }
        /**
         * Prepare array of additional data.
         * @param array $data Data item array.
         * @param bool $request Get data from request.
         * @return array
         */
        protected function prepareAdditionalFields($data, $request = \true)
        {
        }
        /**
         * Prepare array of main data.
         * @param array $data Data item array.
         * @param bool $request Get data from request.
         * @return array
         */
        protected function prepareMainFields(array $data, $request = \true)
        {
        }
        /**
         * Get template manifest.
         * @param int $id Template id.
         * @return array
         */
        protected function getTemplateManifest($id)
        {
        }
        /**
         * Create one page in site.
         * @param int $siteId Site id.
         * @param string $code Page code.
         * @param \Bitrix\Landing\Landing $landing Landing instance after create.
         * @return boolean|int Id of new landing.
         */
        public function createPage($siteId, $code, &$landing = \null)
        {
        }
        /**
         * Get domain id for new site.
         * @deprecated since 20.0.0
         * @return int|string
         */
        protected function getDomainId()
        {
        }
        /**
         * Create demo page for preview.
         * @param string $code Code of page.
         * @param array $template Template data.
         * @return string
         */
        public function getUrlPreview($code, $template = []) : string
        {
        }
        /**
         * Binding site if, if binding params specified.
         * @param int $siteId Site id.
         * @return void
         */
        protected function bindingSite($siteId)
        {
        }
        /**
         * Create site or page by template.
         * @param string $code Demo site code.
         * @param mixed $additional Data from form.
         * @return boolean
         */
        public function actionSelect($code, $additional = \null)
        {
        }
        /**
         * Returns true, if allow create store data.
         *
         * @param array $demo
         * @return bool
         */
        private static function checkAllowDemoData(array $demo)
        {
        }
        /**
         * Create store step.
         * @param string $code Step code.
         * @param null $additional
         * @return array
         */
        private function stepperStore($code, $additional = \null)
        {
        }
        /**
         * Final create store step.
         * @param string $code Step code.
         * @param null $additional
         * @return string
         */
        private function stepperStoreFinalUrl($code, $additional = \null)
        {
        }
        /**
         * Localize the array.
         * @param array $item Item for localization
         * @param array $lang Localization array.
         * @return array
         */
        protected function translate(array $item, $lang)
        {
        }
        /**
         * Gets demo templates.
         * @param string $subDir Subdir for data dir.
         * @param string $code Item code.
         * @return array
         */
        protected function getDemo($subDir, $code = \null)
        {
        }
        protected static function getExtDemoPerms() : array
        {
        }
        protected static function applyExtDemoPerms(array $data) : array
        {
        }
        public static function isDemoNew(int $timestamp) : bool
        {
        }
        protected static function matchFullSort(string $code, int $scope, int $timestamp = \null, int $sort = 0) : int
        {
        }
        /**
         * Return true if NOW in period
         *
         * @param $dateFrom
         * @param $dateTo
         * @return bool
         */
        public static function checkActivePeriod(array $params) : bool
        {
        }
        /**
         * Gets demo site templates.
         * @return array
         */
        public function getDemoSite()
        {
        }
        /**
         * Gets demo page templates.
         * @param string $code Item code.
         * @return array
         */
        public function getDemoPage($code = \null)
        {
        }
        /**
         * Checking site or page activity depending on portal zone
         * Format:
         * $zones['ONLY_IN'] - show site only in these zones
         * $zones['EXCEPT'] - not show site, if zone in this list
         * @param array $zones Zones array.
         * @return bool
         */
        public static function checkActive($zones = array()) : bool
        {
        }
        /**
         * Create some highloadblocks.
         * @return void
         */
        public static function createHLblocks()
        {
        }
        /**
         * Create catalog step.
         * @param string $xmlcode Step code.
         * @return array
         */
        private function createCatalogStep($xmlcode)
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
        private static function changeProductPropertyXmlId(int $iblockId) : void
        {
        }
        private static function changeOfferPropertyXmlId(int $iblockId) : void
        {
        }
        private static function changePropertyXmlId(int $iblockId, array $list) : void
        {
        }
        /**
         * Checking iblock by xml id.
         * @param int $iblockId Iblock id.
         * @param string $xmlId External code.
         * @return void
         */
        private static function checkIblockXmlId($iblockId, $xmlId)
        {
        }
        /**
         * Prepare crm iblocks XML_ID for xml import.
         * @return void
         */
        private function transferCrmCatalogXmlId()
        {
        }
        /**
         * Set base currency for xml.
         * @return void
         */
        private function setXmlBaseCurrency()
        {
        }
        /**
         * Xml import with internal steps.
         * @return array
         */
        private function importXmlFile()
        {
        }
        /**
         * Internal updates.
         * @param int $parentIblock Parent iblock id.
         * @param int $offerIblock Offers iblock id.
         * @return void
         */
        private function updateImportedIblocks($parentIblock, $offerIblock)
        {
        }
        /**
         * Reindex catalog.
         * @param int $parentIblock Parent iblock id.
         * @param int $offerIblock Offers iblock id.
         * @return void
         */
        private function reindexCatalog($parentIblock, $offerIblock)
        {
        }
        /**
         * Init steps in session.
         * @return void
         */
        private function initStepStorage()
        {
        }
        /**
         * Gets current step from session.
         * @return mixed
         */
        private function getCurrentStep()
        {
        }
        /**
         * Set current step to session.
         * @param mixed $step Step.
         * @return void
         */
        private function setCurrentStep($step)
        {
        }
        /**
         * Go to the next step.
         * @return void
         */
        private function nextStep()
        {
        }
        /**
         * Reset step params.
         * @return void
         */
        private function resetStepParameters()
        {
        }
        /**
         * Get current xml.
         * @return mixed
         */
        private function getCurrentXml()
        {
        }
        /**
         * Gets next xml.
         * @return mixed
         */
        private function getNextXml()
        {
        }
        /**
         * Set current xml.
         * @param mixed $xmlId External code.
         * @return void
         */
        private function setCurrentXml($xmlId)
        {
        }
        /*
         * Gets current xml in progress.
         * @return mixed
         */
        private function getCurrentXmlProgress()
        {
        }
        /**
         * Gets xml of iblock id from session.
         * @param string $xmlId External code.
         * @return mixed
         */
        private function getXmlIblockId($xmlId)
        {
        }
        /**
         * Set xml of iblock id to session.
         * @param string $xmlId External code.
         * @param int $iblockId Iblock id.
         * @return void
         */
        private function setXmlIblockId($xmlId, $iblockId)
        {
        }
        /**
         * Gets result message for different steps.
         * @param string $xmlId External code.
         * @param bool $complete Complete step.
         * @return string
         */
        private function importXmlFileResultMessage($xmlId, $complete = \true)
        {
        }
        /**
         * Clear session vars.
         * @return void.
         */
        private function destroyStepStorage()
        {
        }
        /**
         * Gets parent section id for iblock id, if exists.
         * @param int $iblockId Iblock id.
         * @param string|null $xmlId Parent section external code.
         * @return int|null
         */
        private function getParentCatalogSectionId($iblockId, $xmlId = \null)
        {
        }
    }
    class LandingSiteDomainSwitchComponent extends \LandingBaseComponent
    {
        /**
         * Switches domains between current site and selected.
         * @param string $siteId Site id.
         * @return bool
         */
        protected function actionSwitch(string $siteId) : bool
        {
        }
        /**
         * Check access to settings edit.
         * @param int $siteId Site id.
         * @return bool
         */
        protected function checkAccess(int $siteId) : bool
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent() : void
        {
        }
    }
    class LandingSiteDomainComponent extends \LandingBaseComponent
    {
        /**
         * Sets new private domain to the site.
         * @param string $param Domain name.
         * @return bool
         */
        protected function actionSavePrivate(string $param) : bool
        {
        }
        /**
         * Sets new Bitrix24 sub domain to the site.
         * @param string $param Sub domain name.
         * @return bool
         */
        protected function actionSaveBitrix24(string $param) : bool
        {
        }
        /**
         * Sets new domain to the site by internal provider.
         * @param string $param Domain name.
         * @return bool
         */
        protected function actionSaveProvider(string $param) : bool
        {
        }
        /**
         * Switches domains between current site and another one.
         * @param string $siteId Site id.
         * @return bool
         */
        protected function actionSwitch(string $siteId) : bool
        {
        }
        /**
         * Returns domains with any provider.
         * @return array
         */
        protected function getDomainsWithProvider() : array
        {
        }
        /**
         * Returns postfix for domain.
         * @return string
         */
        protected function getPostFix() : string
        {
        }
        /**
         * Check access to settings edit.
         * @return bool
         */
        protected function checkAccess() : bool
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent() : void
        {
        }
    }
    class LandingBindingGroupComponent extends \LandingBaseComponent
    {
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingBlocksCatalogmenuComponent extends \CBitrixComponent
    {
        /**
         * Get sections from iblock by filter.
         * @param array $filter Filter.
         * @return array
         */
        public static function getCatalogSections(array $filter = array())
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingSiteDemoPreviewComponent extends \LandingSiteDemoComponent
    {
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
        /**
         * Temp function for register external instagram import.
         * @return void
         */
        private function instagramUrlRegister()
        {
        }
        /**
         * Mark some color for default set.
         * @param string $color Color code.
         * @return void
         */
        private function addColorToPallete($color)
        {
        }
        /**
         * If try to using unknown color - set default from pallete
         * @param $color
         */
        private function checkColorExists(&$color)
        {
        }
    }
    class LandingFilterComponent extends \LandingBaseComponent
    {
        /**
         * Filter type.
         */
        const TYPE_SITE = 'SITE';
        const TYPE_LANDING = 'LANDING';
        /**
         * Entity pseudo status.
         */
        const STATUS_ACTIVE = 'active';
        const STATUS_NOT_ACTIVE = 'not_active';
        const STATUS_ACTIVE_CHANGED = 'active_changed';
        /**
         * Some prefix and suffix for filter.
         */
        const FILTER_PREFIX = 'LANDING_';
        const FILTER_SUFFIX = '';
        /**
         * Filter id prefix.
         * @deprecated since 19.500.0
         * @var string
         */
        protected static $prefix = 'LANDING_';
        /**
         * Filter contains deleted items.
         * @var bool
         */
        protected static $isDeleted = \false;
        /**
         * External filter.
         * @var array
         */
        protected static $externalFilter = [];
        /**
         * Allowed or not some type.
         * @param string $type Type.
         * @return boolean
         */
        protected static function isTypeAllowed($type)
        {
        }
        /**
         * Get instance of grid.
         * @param string $type Filter type.
         * @param string $siteType Site type.
         * @return \CGridOptions
         */
        protected static function getGrid($type, $siteType)
        {
        }
        /**
         * Sets external filter.
         * @param string $key Filter row key.
         * @param mixed $value Filter row value.
         * @return void
         */
        public static function setExternalFilter($key, $value)
        {
        }
        /**
         * Returns current raw filter by type.
         * @param string $type Filter type.
         * @param string $siteType Site type.
         * @return array
         */
        public static function getFilterRaw($type, $siteType = 'PAGE')
        {
        }
        /**
         * Get current filter by type.
         * @param string $type Filter type.
         * @param string $siteType Site type.
         * @return array
         */
        public static function getFilter($type, $siteType = 'PAGE')
        {
        }
        /**
         * Filter contains deleted items.
         * @return bool
         */
        public static function isDeleted()
        {
        }
        /**
         * Gets filter fields.
         * @return array
         */
        protected function getFilterFields()
        {
        }
        /**
         * Gets presets for filter.
         * @return array
         */
        protected static function getFilterPresets()
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class LandingSitesComponent extends \LandingBaseComponent
    {
        /**
         * Count items per page.
         */
        const COUNT_PER_PAGE = 11;
        /**
         * Rights array of sites.
         * @var array
         */
        protected $rights = [];
        /**
         * Gets additional access filter for sites.
         * @param string $accessCode Access code for filter.
         * @return array
         */
        protected function getAdditionalAccessFilter(string $accessCode)
        {
        }
        /**
         * Returns sites of main module.
         * @return array
         */
        protected function getSmnSites()
        {
        }
        /**
         * Base executable method.
         * @return mixed
         */
        public function executeComponent()
        {
        }
    }
}
namespace Bitrix\Landing\Internals {
    /**
     * EO_Binding
     * @see \Bitrix\Landing\Internals\BindingTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_Binding setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getEntityId()
     * @method \Bitrix\Landing\Internals\EO_Binding setEntityId(\int|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \int remindActualEntityId()
     * @method \int requireEntityId()
     * @method \Bitrix\Landing\Internals\EO_Binding resetEntityId()
     * @method \Bitrix\Landing\Internals\EO_Binding unsetEntityId()
     * @method \int fillEntityId()
     * @method \string getEntityType()
     * @method \Bitrix\Landing\Internals\EO_Binding setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \string remindActualEntityType()
     * @method \string requireEntityType()
     * @method \Bitrix\Landing\Internals\EO_Binding resetEntityType()
     * @method \Bitrix\Landing\Internals\EO_Binding unsetEntityType()
     * @method \string fillEntityType()
     * @method \string getBindingId()
     * @method \Bitrix\Landing\Internals\EO_Binding setBindingId(\string|\Bitrix\Main\DB\SqlExpression $bindingId)
     * @method bool hasBindingId()
     * @method bool isBindingIdFilled()
     * @method bool isBindingIdChanged()
     * @method \string remindActualBindingId()
     * @method \string requireBindingId()
     * @method \Bitrix\Landing\Internals\EO_Binding resetBindingId()
     * @method \Bitrix\Landing\Internals\EO_Binding unsetBindingId()
     * @method \string fillBindingId()
     * @method \string getBindingType()
     * @method \Bitrix\Landing\Internals\EO_Binding setBindingType(\string|\Bitrix\Main\DB\SqlExpression $bindingType)
     * @method bool hasBindingType()
     * @method bool isBindingTypeFilled()
     * @method bool isBindingTypeChanged()
     * @method \string remindActualBindingType()
     * @method \string requireBindingType()
     * @method \Bitrix\Landing\Internals\EO_Binding resetBindingType()
     * @method \Bitrix\Landing\Internals\EO_Binding unsetBindingType()
     * @method \string fillBindingType()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Binding set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_Binding reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Binding unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_Binding wakeUp($data)
     */
    class EO_Binding
    {
        /* @var \Bitrix\Landing\Internals\BindingTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\BindingTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Binding_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getEntityIdList()
     * @method \int[] fillEntityId()
     * @method \string[] getEntityTypeList()
     * @method \string[] fillEntityType()
     * @method \string[] getBindingIdList()
     * @method \string[] fillBindingId()
     * @method \string[] getBindingTypeList()
     * @method \string[] fillBindingType()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_Binding $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_Binding $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Binding getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Binding[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_Binding $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_Binding_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_Binding current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Binding_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\BindingTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\BindingTable';
    }
    /**
     * @method static EO_Binding_Query query()
     * @method static EO_Binding_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Binding_Result getById($id)
     * @method static EO_Binding_Result getList(array $parameters = array())
     * @method static EO_Binding_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_Binding createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_Binding_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_Binding wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_Binding_Collection wakeUpCollection($rows)
     */
    class BindingTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Binding_Result exec()
     * @method \Bitrix\Landing\Internals\EO_Binding fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Binding_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Binding_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Binding fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Binding_Collection fetchCollection()
     */
    class EO_Binding_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Binding createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_Binding_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_Binding wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_Binding_Collection wakeUpCollection($rows)
     */
    class EO_Binding_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Block
     * @see \Bitrix\Landing\Internals\BlockTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_Block setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getParentId()
     * @method \Bitrix\Landing\Internals\EO_Block setParentId(\int|\Bitrix\Main\DB\SqlExpression $parentId)
     * @method bool hasParentId()
     * @method bool isParentIdFilled()
     * @method bool isParentIdChanged()
     * @method \int remindActualParentId()
     * @method \int requireParentId()
     * @method \Bitrix\Landing\Internals\EO_Block resetParentId()
     * @method \Bitrix\Landing\Internals\EO_Block unsetParentId()
     * @method \int fillParentId()
     * @method \int getLid()
     * @method \Bitrix\Landing\Internals\EO_Block setLid(\int|\Bitrix\Main\DB\SqlExpression $lid)
     * @method bool hasLid()
     * @method bool isLidFilled()
     * @method bool isLidChanged()
     * @method \int remindActualLid()
     * @method \int requireLid()
     * @method \Bitrix\Landing\Internals\EO_Block resetLid()
     * @method \Bitrix\Landing\Internals\EO_Block unsetLid()
     * @method \int fillLid()
     * @method \Bitrix\Landing\Internals\EO_Landing getLanding()
     * @method \Bitrix\Landing\Internals\EO_Landing remindActualLanding()
     * @method \Bitrix\Landing\Internals\EO_Landing requireLanding()
     * @method \Bitrix\Landing\Internals\EO_Block setLanding(\Bitrix\Landing\Internals\EO_Landing $object)
     * @method \Bitrix\Landing\Internals\EO_Block resetLanding()
     * @method \Bitrix\Landing\Internals\EO_Block unsetLanding()
     * @method bool hasLanding()
     * @method bool isLandingFilled()
     * @method bool isLandingChanged()
     * @method \Bitrix\Landing\Internals\EO_Landing fillLanding()
     * @method \string getCode()
     * @method \Bitrix\Landing\Internals\EO_Block setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Landing\Internals\EO_Block resetCode()
     * @method \Bitrix\Landing\Internals\EO_Block unsetCode()
     * @method \string fillCode()
     * @method \string getXmlId()
     * @method \Bitrix\Landing\Internals\EO_Block setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Landing\Internals\EO_Block resetXmlId()
     * @method \Bitrix\Landing\Internals\EO_Block unsetXmlId()
     * @method \string fillXmlId()
     * @method \string getInitiatorAppCode()
     * @method \Bitrix\Landing\Internals\EO_Block setInitiatorAppCode(\string|\Bitrix\Main\DB\SqlExpression $initiatorAppCode)
     * @method bool hasInitiatorAppCode()
     * @method bool isInitiatorAppCodeFilled()
     * @method bool isInitiatorAppCodeChanged()
     * @method \string remindActualInitiatorAppCode()
     * @method \string requireInitiatorAppCode()
     * @method \Bitrix\Landing\Internals\EO_Block resetInitiatorAppCode()
     * @method \Bitrix\Landing\Internals\EO_Block unsetInitiatorAppCode()
     * @method \string fillInitiatorAppCode()
     * @method \string getAnchor()
     * @method \Bitrix\Landing\Internals\EO_Block setAnchor(\string|\Bitrix\Main\DB\SqlExpression $anchor)
     * @method bool hasAnchor()
     * @method bool isAnchorFilled()
     * @method bool isAnchorChanged()
     * @method \string remindActualAnchor()
     * @method \string requireAnchor()
     * @method \Bitrix\Landing\Internals\EO_Block resetAnchor()
     * @method \Bitrix\Landing\Internals\EO_Block unsetAnchor()
     * @method \string fillAnchor()
     * @method \int getSort()
     * @method \Bitrix\Landing\Internals\EO_Block setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Landing\Internals\EO_Block resetSort()
     * @method \Bitrix\Landing\Internals\EO_Block unsetSort()
     * @method \int fillSort()
     * @method \string getActive()
     * @method \Bitrix\Landing\Internals\EO_Block setActive(\string|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \string remindActualActive()
     * @method \string requireActive()
     * @method \Bitrix\Landing\Internals\EO_Block resetActive()
     * @method \Bitrix\Landing\Internals\EO_Block unsetActive()
     * @method \string fillActive()
     * @method \string getPublic()
     * @method \Bitrix\Landing\Internals\EO_Block setPublic(\string|\Bitrix\Main\DB\SqlExpression $public)
     * @method bool hasPublic()
     * @method bool isPublicFilled()
     * @method bool isPublicChanged()
     * @method \string remindActualPublic()
     * @method \string requirePublic()
     * @method \Bitrix\Landing\Internals\EO_Block resetPublic()
     * @method \Bitrix\Landing\Internals\EO_Block unsetPublic()
     * @method \string fillPublic()
     * @method \string getDeleted()
     * @method \Bitrix\Landing\Internals\EO_Block setDeleted(\string|\Bitrix\Main\DB\SqlExpression $deleted)
     * @method bool hasDeleted()
     * @method bool isDeletedFilled()
     * @method bool isDeletedChanged()
     * @method \string remindActualDeleted()
     * @method \string requireDeleted()
     * @method \Bitrix\Landing\Internals\EO_Block resetDeleted()
     * @method \Bitrix\Landing\Internals\EO_Block unsetDeleted()
     * @method \string fillDeleted()
     * @method \string getAccess()
     * @method \Bitrix\Landing\Internals\EO_Block setAccess(\string|\Bitrix\Main\DB\SqlExpression $access)
     * @method bool hasAccess()
     * @method bool isAccessFilled()
     * @method bool isAccessChanged()
     * @method \string remindActualAccess()
     * @method \string requireAccess()
     * @method \Bitrix\Landing\Internals\EO_Block resetAccess()
     * @method \Bitrix\Landing\Internals\EO_Block unsetAccess()
     * @method \string fillAccess()
     * @method array getSourceParams()
     * @method \Bitrix\Landing\Internals\EO_Block setSourceParams(array|\Bitrix\Main\DB\SqlExpression $sourceParams)
     * @method bool hasSourceParams()
     * @method bool isSourceParamsFilled()
     * @method bool isSourceParamsChanged()
     * @method array remindActualSourceParams()
     * @method array requireSourceParams()
     * @method \Bitrix\Landing\Internals\EO_Block resetSourceParams()
     * @method \Bitrix\Landing\Internals\EO_Block unsetSourceParams()
     * @method array fillSourceParams()
     * @method \string getContent()
     * @method \Bitrix\Landing\Internals\EO_Block setContent(\string|\Bitrix\Main\DB\SqlExpression $content)
     * @method bool hasContent()
     * @method bool isContentFilled()
     * @method bool isContentChanged()
     * @method \string remindActualContent()
     * @method \string requireContent()
     * @method \Bitrix\Landing\Internals\EO_Block resetContent()
     * @method \Bitrix\Landing\Internals\EO_Block unsetContent()
     * @method \string fillContent()
     * @method \string getSearchContent()
     * @method \Bitrix\Landing\Internals\EO_Block setSearchContent(\string|\Bitrix\Main\DB\SqlExpression $searchContent)
     * @method bool hasSearchContent()
     * @method bool isSearchContentFilled()
     * @method bool isSearchContentChanged()
     * @method \string remindActualSearchContent()
     * @method \string requireSearchContent()
     * @method \Bitrix\Landing\Internals\EO_Block resetSearchContent()
     * @method \Bitrix\Landing\Internals\EO_Block unsetSearchContent()
     * @method \string fillSearchContent()
     * @method array getAssets()
     * @method \Bitrix\Landing\Internals\EO_Block setAssets(array|\Bitrix\Main\DB\SqlExpression $assets)
     * @method bool hasAssets()
     * @method bool isAssetsFilled()
     * @method bool isAssetsChanged()
     * @method array remindActualAssets()
     * @method array requireAssets()
     * @method \Bitrix\Landing\Internals\EO_Block resetAssets()
     * @method \Bitrix\Landing\Internals\EO_Block unsetAssets()
     * @method array fillAssets()
     * @method \int getCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Block setCreatedById(\int|\Bitrix\Main\DB\SqlExpression $createdById)
     * @method bool hasCreatedById()
     * @method bool isCreatedByIdFilled()
     * @method bool isCreatedByIdChanged()
     * @method \int remindActualCreatedById()
     * @method \int requireCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Block resetCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Block unsetCreatedById()
     * @method \int fillCreatedById()
     * @method \int getModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Block setModifiedById(\int|\Bitrix\Main\DB\SqlExpression $modifiedById)
     * @method bool hasModifiedById()
     * @method bool isModifiedByIdFilled()
     * @method bool isModifiedByIdChanged()
     * @method \int remindActualModifiedById()
     * @method \int requireModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Block resetModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Block unsetModifiedById()
     * @method \int fillModifiedById()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Block setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Block resetDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Block unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateModify()
     * @method \Bitrix\Landing\Internals\EO_Block setDateModify(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateModify)
     * @method bool hasDateModify()
     * @method bool isDateModifyFilled()
     * @method bool isDateModifyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateModify()
     * @method \Bitrix\Main\Type\DateTime requireDateModify()
     * @method \Bitrix\Landing\Internals\EO_Block resetDateModify()
     * @method \Bitrix\Landing\Internals\EO_Block unsetDateModify()
     * @method \Bitrix\Main\Type\DateTime fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Block set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_Block reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Block unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_Block wakeUp($data)
     */
    class EO_Block
    {
        /* @var \Bitrix\Landing\Internals\BlockTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\BlockTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Block_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getParentIdList()
     * @method \int[] fillParentId()
     * @method \int[] getLidList()
     * @method \int[] fillLid()
     * @method \Bitrix\Landing\Internals\EO_Landing[] getLandingList()
     * @method \Bitrix\Landing\Internals\EO_Block_Collection getLandingCollection()
     * @method \Bitrix\Landing\Internals\EO_Landing_Collection fillLanding()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \string[] getInitiatorAppCodeList()
     * @method \string[] fillInitiatorAppCode()
     * @method \string[] getAnchorList()
     * @method \string[] fillAnchor()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \string[] getActiveList()
     * @method \string[] fillActive()
     * @method \string[] getPublicList()
     * @method \string[] fillPublic()
     * @method \string[] getDeletedList()
     * @method \string[] fillDeleted()
     * @method \string[] getAccessList()
     * @method \string[] fillAccess()
     * @method array[] getSourceParamsList()
     * @method array[] fillSourceParams()
     * @method \string[] getContentList()
     * @method \string[] fillContent()
     * @method \string[] getSearchContentList()
     * @method \string[] fillSearchContent()
     * @method array[] getAssetsList()
     * @method array[] fillAssets()
     * @method \int[] getCreatedByIdList()
     * @method \int[] fillCreatedById()
     * @method \int[] getModifiedByIdList()
     * @method \int[] fillModifiedById()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateModifyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_Block $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_Block $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Block getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Block[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_Block $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_Block_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_Block current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Block_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\BlockTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\BlockTable';
    }
    /**
     * @method static EO_Block_Query query()
     * @method static EO_Block_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Block_Result getById($id)
     * @method static EO_Block_Result getList(array $parameters = array())
     * @method static EO_Block_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_Block createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_Block_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_Block wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_Block_Collection wakeUpCollection($rows)
     */
    class BlockTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Block_Result exec()
     * @method \Bitrix\Landing\Internals\EO_Block fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Block_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Block_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Block fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Block_Collection fetchCollection()
     */
    class EO_Block_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Block createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_Block_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_Block wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_Block_Collection wakeUpCollection($rows)
     */
    class EO_Block_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Chat
     * @see \Bitrix\Landing\Internals\ChatTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_Chat setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getChatId()
     * @method \Bitrix\Landing\Internals\EO_Chat setChatId(\int|\Bitrix\Main\DB\SqlExpression $chatId)
     * @method bool hasChatId()
     * @method bool isChatIdFilled()
     * @method bool isChatIdChanged()
     * @method \int remindActualChatId()
     * @method \int requireChatId()
     * @method \Bitrix\Landing\Internals\EO_Chat resetChatId()
     * @method \Bitrix\Landing\Internals\EO_Chat unsetChatId()
     * @method \int fillChatId()
     * @method \string getTitle()
     * @method \Bitrix\Landing\Internals\EO_Chat setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Landing\Internals\EO_Chat resetTitle()
     * @method \Bitrix\Landing\Internals\EO_Chat unsetTitle()
     * @method \string fillTitle()
     * @method \int getAvatar()
     * @method \Bitrix\Landing\Internals\EO_Chat setAvatar(\int|\Bitrix\Main\DB\SqlExpression $avatar)
     * @method bool hasAvatar()
     * @method bool isAvatarFilled()
     * @method bool isAvatarChanged()
     * @method \int remindActualAvatar()
     * @method \int requireAvatar()
     * @method \Bitrix\Landing\Internals\EO_Chat resetAvatar()
     * @method \Bitrix\Landing\Internals\EO_Chat unsetAvatar()
     * @method \int fillAvatar()
     * @method \int getCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Chat setCreatedById(\int|\Bitrix\Main\DB\SqlExpression $createdById)
     * @method bool hasCreatedById()
     * @method bool isCreatedByIdFilled()
     * @method bool isCreatedByIdChanged()
     * @method \int remindActualCreatedById()
     * @method \int requireCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Chat resetCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Chat unsetCreatedById()
     * @method \int fillCreatedById()
     * @method \Bitrix\Main\EO_User getCreatedBy()
     * @method \Bitrix\Main\EO_User remindActualCreatedBy()
     * @method \Bitrix\Main\EO_User requireCreatedBy()
     * @method \Bitrix\Landing\Internals\EO_Chat setCreatedBy(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Landing\Internals\EO_Chat resetCreatedBy()
     * @method \Bitrix\Landing\Internals\EO_Chat unsetCreatedBy()
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \Bitrix\Main\EO_User fillCreatedBy()
     * @method \int getModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Chat setModifiedById(\int|\Bitrix\Main\DB\SqlExpression $modifiedById)
     * @method bool hasModifiedById()
     * @method bool isModifiedByIdFilled()
     * @method bool isModifiedByIdChanged()
     * @method \int remindActualModifiedById()
     * @method \int requireModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Chat resetModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Chat unsetModifiedById()
     * @method \int fillModifiedById()
     * @method \Bitrix\Main\EO_User getModifiedBy()
     * @method \Bitrix\Main\EO_User remindActualModifiedBy()
     * @method \Bitrix\Main\EO_User requireModifiedBy()
     * @method \Bitrix\Landing\Internals\EO_Chat setModifiedBy(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Landing\Internals\EO_Chat resetModifiedBy()
     * @method \Bitrix\Landing\Internals\EO_Chat unsetModifiedBy()
     * @method bool hasModifiedBy()
     * @method bool isModifiedByFilled()
     * @method bool isModifiedByChanged()
     * @method \Bitrix\Main\EO_User fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Chat setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Chat resetDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Chat unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateModify()
     * @method \Bitrix\Landing\Internals\EO_Chat setDateModify(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateModify)
     * @method bool hasDateModify()
     * @method bool isDateModifyFilled()
     * @method bool isDateModifyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateModify()
     * @method \Bitrix\Main\Type\DateTime requireDateModify()
     * @method \Bitrix\Landing\Internals\EO_Chat resetDateModify()
     * @method \Bitrix\Landing\Internals\EO_Chat unsetDateModify()
     * @method \Bitrix\Main\Type\DateTime fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Chat set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_Chat reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Chat unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_Chat wakeUp($data)
     */
    class EO_Chat
    {
        /* @var \Bitrix\Landing\Internals\ChatTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\ChatTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Chat_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getChatIdList()
     * @method \int[] fillChatId()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \int[] getAvatarList()
     * @method \int[] fillAvatar()
     * @method \int[] getCreatedByIdList()
     * @method \int[] fillCreatedById()
     * @method \Bitrix\Main\EO_User[] getCreatedByList()
     * @method \Bitrix\Landing\Internals\EO_Chat_Collection getCreatedByCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCreatedBy()
     * @method \int[] getModifiedByIdList()
     * @method \int[] fillModifiedById()
     * @method \Bitrix\Main\EO_User[] getModifiedByList()
     * @method \Bitrix\Landing\Internals\EO_Chat_Collection getModifiedByCollection()
     * @method \Bitrix\Main\EO_User_Collection fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateModifyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_Chat $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_Chat $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Chat getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Chat[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_Chat $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_Chat_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_Chat current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Chat_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\ChatTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\ChatTable';
    }
    /**
     * @method static EO_Chat_Query query()
     * @method static EO_Chat_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Chat_Result getById($id)
     * @method static EO_Chat_Result getList(array $parameters = array())
     * @method static EO_Chat_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_Chat createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_Chat_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_Chat wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_Chat_Collection wakeUpCollection($rows)
     */
    class ChatTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Chat_Result exec()
     * @method \Bitrix\Landing\Internals\EO_Chat fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Chat_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Chat_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Chat fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Chat_Collection fetchCollection()
     */
    class EO_Chat_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Chat createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_Chat_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_Chat wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_Chat_Collection wakeUpCollection($rows)
     */
    class EO_Chat_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_ChatBinding
     * @see \Bitrix\Landing\Internals\ChatBindingTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_ChatBinding setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getInternalChatId()
     * @method \Bitrix\Landing\Internals\EO_ChatBinding setInternalChatId(\int|\Bitrix\Main\DB\SqlExpression $internalChatId)
     * @method bool hasInternalChatId()
     * @method bool isInternalChatIdFilled()
     * @method bool isInternalChatIdChanged()
     * @method \int remindActualInternalChatId()
     * @method \int requireInternalChatId()
     * @method \Bitrix\Landing\Internals\EO_ChatBinding resetInternalChatId()
     * @method \Bitrix\Landing\Internals\EO_ChatBinding unsetInternalChatId()
     * @method \int fillInternalChatId()
     * @method \int getEntityId()
     * @method \Bitrix\Landing\Internals\EO_ChatBinding setEntityId(\int|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \int remindActualEntityId()
     * @method \int requireEntityId()
     * @method \Bitrix\Landing\Internals\EO_ChatBinding resetEntityId()
     * @method \Bitrix\Landing\Internals\EO_ChatBinding unsetEntityId()
     * @method \int fillEntityId()
     * @method \string getEntityType()
     * @method \Bitrix\Landing\Internals\EO_ChatBinding setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \string remindActualEntityType()
     * @method \string requireEntityType()
     * @method \Bitrix\Landing\Internals\EO_ChatBinding resetEntityType()
     * @method \Bitrix\Landing\Internals\EO_ChatBinding unsetEntityType()
     * @method \string fillEntityType()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_ChatBinding set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_ChatBinding reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_ChatBinding unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_ChatBinding wakeUp($data)
     */
    class EO_ChatBinding
    {
        /* @var \Bitrix\Landing\Internals\ChatBindingTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\ChatBindingTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_ChatBinding_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getInternalChatIdList()
     * @method \int[] fillInternalChatId()
     * @method \int[] getEntityIdList()
     * @method \int[] fillEntityId()
     * @method \string[] getEntityTypeList()
     * @method \string[] fillEntityType()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_ChatBinding $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_ChatBinding $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_ChatBinding getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_ChatBinding[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_ChatBinding $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_ChatBinding_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_ChatBinding current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_ChatBinding_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\ChatBindingTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\ChatBindingTable';
    }
    /**
     * @method static EO_ChatBinding_Query query()
     * @method static EO_ChatBinding_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_ChatBinding_Result getById($id)
     * @method static EO_ChatBinding_Result getList(array $parameters = array())
     * @method static EO_ChatBinding_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_ChatBinding createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_ChatBinding_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_ChatBinding wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_ChatBinding_Collection wakeUpCollection($rows)
     */
    class ChatBindingTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_ChatBinding_Result exec()
     * @method \Bitrix\Landing\Internals\EO_ChatBinding fetchObject()
     * @method \Bitrix\Landing\Internals\EO_ChatBinding_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_ChatBinding_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_ChatBinding fetchObject()
     * @method \Bitrix\Landing\Internals\EO_ChatBinding_Collection fetchCollection()
     */
    class EO_ChatBinding_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_ChatBinding createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_ChatBinding_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_ChatBinding wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_ChatBinding_Collection wakeUpCollection($rows)
     */
    class EO_ChatBinding_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_CookiesAgreement
     * @see \Bitrix\Landing\Internals\CookiesAgreementTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getActive()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement setActive(\string|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \string remindActualActive()
     * @method \string requireActive()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement resetActive()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement unsetActive()
     * @method \string fillActive()
     * @method \int getSiteId()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement setSiteId(\int|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \int remindActualSiteId()
     * @method \int requireSiteId()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement resetSiteId()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement unsetSiteId()
     * @method \int fillSiteId()
     * @method \string getCode()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement resetCode()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement unsetCode()
     * @method \string fillCode()
     * @method \string getTitle()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement resetTitle()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement unsetTitle()
     * @method \string fillTitle()
     * @method \string getContent()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement setContent(\string|\Bitrix\Main\DB\SqlExpression $content)
     * @method bool hasContent()
     * @method bool isContentFilled()
     * @method bool isContentChanged()
     * @method \string remindActualContent()
     * @method \string requireContent()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement resetContent()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement unsetContent()
     * @method \string fillContent()
     * @method \int getCreatedById()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement setCreatedById(\int|\Bitrix\Main\DB\SqlExpression $createdById)
     * @method bool hasCreatedById()
     * @method bool isCreatedByIdFilled()
     * @method bool isCreatedByIdChanged()
     * @method \int remindActualCreatedById()
     * @method \int requireCreatedById()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement resetCreatedById()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement unsetCreatedById()
     * @method \int fillCreatedById()
     * @method \int getModifiedById()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement setModifiedById(\int|\Bitrix\Main\DB\SqlExpression $modifiedById)
     * @method bool hasModifiedById()
     * @method bool isModifiedByIdFilled()
     * @method bool isModifiedByIdChanged()
     * @method \int remindActualModifiedById()
     * @method \int requireModifiedById()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement resetModifiedById()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement unsetModifiedById()
     * @method \int fillModifiedById()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement resetDateCreate()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateModify()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement setDateModify(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateModify)
     * @method bool hasDateModify()
     * @method bool isDateModifyFilled()
     * @method bool isDateModifyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateModify()
     * @method \Bitrix\Main\Type\DateTime requireDateModify()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement resetDateModify()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement unsetDateModify()
     * @method \Bitrix\Main\Type\DateTime fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_CookiesAgreement wakeUp($data)
     */
    class EO_CookiesAgreement
    {
        /* @var \Bitrix\Landing\Internals\CookiesAgreementTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\CookiesAgreementTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_CookiesAgreement_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getActiveList()
     * @method \string[] fillActive()
     * @method \int[] getSiteIdList()
     * @method \int[] fillSiteId()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getContentList()
     * @method \string[] fillContent()
     * @method \int[] getCreatedByIdList()
     * @method \int[] fillCreatedById()
     * @method \int[] getModifiedByIdList()
     * @method \int[] fillModifiedById()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateModifyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_CookiesAgreement $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_CookiesAgreement $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_CookiesAgreement $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_CookiesAgreement_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_CookiesAgreement_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\CookiesAgreementTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\CookiesAgreementTable';
    }
    /**
     * @method static EO_CookiesAgreement_Query query()
     * @method static EO_CookiesAgreement_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_CookiesAgreement_Result getById($id)
     * @method static EO_CookiesAgreement_Result getList(array $parameters = array())
     * @method static EO_CookiesAgreement_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_CookiesAgreement createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_CookiesAgreement_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_CookiesAgreement wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_CookiesAgreement_Collection wakeUpCollection($rows)
     */
    class CookiesAgreementTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_CookiesAgreement_Result exec()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement fetchObject()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_CookiesAgreement_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement fetchObject()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement_Collection fetchCollection()
     */
    class EO_CookiesAgreement_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_CookiesAgreement_Collection wakeUpCollection($rows)
     */
    class EO_CookiesAgreement_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Demos
     * @see \Bitrix\Landing\Internals\DemosTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_Demos setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getXmlId()
     * @method \Bitrix\Landing\Internals\EO_Demos setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Landing\Internals\EO_Demos resetXmlId()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetXmlId()
     * @method \string fillXmlId()
     * @method \string getAppCode()
     * @method \Bitrix\Landing\Internals\EO_Demos setAppCode(\string|\Bitrix\Main\DB\SqlExpression $appCode)
     * @method bool hasAppCode()
     * @method bool isAppCodeFilled()
     * @method bool isAppCodeChanged()
     * @method \string remindActualAppCode()
     * @method \string requireAppCode()
     * @method \Bitrix\Landing\Internals\EO_Demos resetAppCode()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetAppCode()
     * @method \string fillAppCode()
     * @method \string getActive()
     * @method \Bitrix\Landing\Internals\EO_Demos setActive(\string|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \string remindActualActive()
     * @method \string requireActive()
     * @method \Bitrix\Landing\Internals\EO_Demos resetActive()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetActive()
     * @method \string fillActive()
     * @method \string getType()
     * @method \Bitrix\Landing\Internals\EO_Demos setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\Landing\Internals\EO_Demos resetType()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetType()
     * @method \string fillType()
     * @method \string getTplType()
     * @method \Bitrix\Landing\Internals\EO_Demos setTplType(\string|\Bitrix\Main\DB\SqlExpression $tplType)
     * @method bool hasTplType()
     * @method bool isTplTypeFilled()
     * @method bool isTplTypeChanged()
     * @method \string remindActualTplType()
     * @method \string requireTplType()
     * @method \Bitrix\Landing\Internals\EO_Demos resetTplType()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetTplType()
     * @method \string fillTplType()
     * @method \string getShowInList()
     * @method \Bitrix\Landing\Internals\EO_Demos setShowInList(\string|\Bitrix\Main\DB\SqlExpression $showInList)
     * @method bool hasShowInList()
     * @method bool isShowInListFilled()
     * @method bool isShowInListChanged()
     * @method \string remindActualShowInList()
     * @method \string requireShowInList()
     * @method \Bitrix\Landing\Internals\EO_Demos resetShowInList()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetShowInList()
     * @method \string fillShowInList()
     * @method \string getTitle()
     * @method \Bitrix\Landing\Internals\EO_Demos setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Landing\Internals\EO_Demos resetTitle()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetTitle()
     * @method \string fillTitle()
     * @method \string getDescription()
     * @method \Bitrix\Landing\Internals\EO_Demos setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Landing\Internals\EO_Demos resetDescription()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetDescription()
     * @method \string fillDescription()
     * @method \string getPreviewUrl()
     * @method \Bitrix\Landing\Internals\EO_Demos setPreviewUrl(\string|\Bitrix\Main\DB\SqlExpression $previewUrl)
     * @method bool hasPreviewUrl()
     * @method bool isPreviewUrlFilled()
     * @method bool isPreviewUrlChanged()
     * @method \string remindActualPreviewUrl()
     * @method \string requirePreviewUrl()
     * @method \Bitrix\Landing\Internals\EO_Demos resetPreviewUrl()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetPreviewUrl()
     * @method \string fillPreviewUrl()
     * @method \string getPreview()
     * @method \Bitrix\Landing\Internals\EO_Demos setPreview(\string|\Bitrix\Main\DB\SqlExpression $preview)
     * @method bool hasPreview()
     * @method bool isPreviewFilled()
     * @method bool isPreviewChanged()
     * @method \string remindActualPreview()
     * @method \string requirePreview()
     * @method \Bitrix\Landing\Internals\EO_Demos resetPreview()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetPreview()
     * @method \string fillPreview()
     * @method \string getPreview2x()
     * @method \Bitrix\Landing\Internals\EO_Demos setPreview2x(\string|\Bitrix\Main\DB\SqlExpression $preview2x)
     * @method bool hasPreview2x()
     * @method bool isPreview2xFilled()
     * @method bool isPreview2xChanged()
     * @method \string remindActualPreview2x()
     * @method \string requirePreview2x()
     * @method \Bitrix\Landing\Internals\EO_Demos resetPreview2x()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetPreview2x()
     * @method \string fillPreview2x()
     * @method \string getPreview3x()
     * @method \Bitrix\Landing\Internals\EO_Demos setPreview3x(\string|\Bitrix\Main\DB\SqlExpression $preview3x)
     * @method bool hasPreview3x()
     * @method bool isPreview3xFilled()
     * @method bool isPreview3xChanged()
     * @method \string remindActualPreview3x()
     * @method \string requirePreview3x()
     * @method \Bitrix\Landing\Internals\EO_Demos resetPreview3x()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetPreview3x()
     * @method \string fillPreview3x()
     * @method \string getManifest()
     * @method \Bitrix\Landing\Internals\EO_Demos setManifest(\string|\Bitrix\Main\DB\SqlExpression $manifest)
     * @method bool hasManifest()
     * @method bool isManifestFilled()
     * @method bool isManifestChanged()
     * @method \string remindActualManifest()
     * @method \string requireManifest()
     * @method \Bitrix\Landing\Internals\EO_Demos resetManifest()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetManifest()
     * @method \string fillManifest()
     * @method \string getLang()
     * @method \Bitrix\Landing\Internals\EO_Demos setLang(\string|\Bitrix\Main\DB\SqlExpression $lang)
     * @method bool hasLang()
     * @method bool isLangFilled()
     * @method bool isLangChanged()
     * @method \string remindActualLang()
     * @method \string requireLang()
     * @method \Bitrix\Landing\Internals\EO_Demos resetLang()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetLang()
     * @method \string fillLang()
     * @method \string getSiteTemplateId()
     * @method \Bitrix\Landing\Internals\EO_Demos setSiteTemplateId(\string|\Bitrix\Main\DB\SqlExpression $siteTemplateId)
     * @method bool hasSiteTemplateId()
     * @method bool isSiteTemplateIdFilled()
     * @method bool isSiteTemplateIdChanged()
     * @method \string remindActualSiteTemplateId()
     * @method \string requireSiteTemplateId()
     * @method \Bitrix\Landing\Internals\EO_Demos resetSiteTemplateId()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetSiteTemplateId()
     * @method \string fillSiteTemplateId()
     * @method \int getCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Demos setCreatedById(\int|\Bitrix\Main\DB\SqlExpression $createdById)
     * @method bool hasCreatedById()
     * @method bool isCreatedByIdFilled()
     * @method bool isCreatedByIdChanged()
     * @method \int remindActualCreatedById()
     * @method \int requireCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Demos resetCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetCreatedById()
     * @method \int fillCreatedById()
     * @method \int getModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Demos setModifiedById(\int|\Bitrix\Main\DB\SqlExpression $modifiedById)
     * @method bool hasModifiedById()
     * @method bool isModifiedByIdFilled()
     * @method bool isModifiedByIdChanged()
     * @method \int remindActualModifiedById()
     * @method \int requireModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Demos resetModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetModifiedById()
     * @method \int fillModifiedById()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Demos setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Demos resetDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateModify()
     * @method \Bitrix\Landing\Internals\EO_Demos setDateModify(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateModify)
     * @method bool hasDateModify()
     * @method bool isDateModifyFilled()
     * @method bool isDateModifyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateModify()
     * @method \Bitrix\Main\Type\DateTime requireDateModify()
     * @method \Bitrix\Landing\Internals\EO_Demos resetDateModify()
     * @method \Bitrix\Landing\Internals\EO_Demos unsetDateModify()
     * @method \Bitrix\Main\Type\DateTime fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Demos set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_Demos reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Demos unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_Demos wakeUp($data)
     */
    class EO_Demos
    {
        /* @var \Bitrix\Landing\Internals\DemosTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\DemosTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Demos_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \string[] getAppCodeList()
     * @method \string[] fillAppCode()
     * @method \string[] getActiveList()
     * @method \string[] fillActive()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \string[] getTplTypeList()
     * @method \string[] fillTplType()
     * @method \string[] getShowInListList()
     * @method \string[] fillShowInList()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getPreviewUrlList()
     * @method \string[] fillPreviewUrl()
     * @method \string[] getPreviewList()
     * @method \string[] fillPreview()
     * @method \string[] getPreview2xList()
     * @method \string[] fillPreview2x()
     * @method \string[] getPreview3xList()
     * @method \string[] fillPreview3x()
     * @method \string[] getManifestList()
     * @method \string[] fillManifest()
     * @method \string[] getLangList()
     * @method \string[] fillLang()
     * @method \string[] getSiteTemplateIdList()
     * @method \string[] fillSiteTemplateId()
     * @method \int[] getCreatedByIdList()
     * @method \int[] fillCreatedById()
     * @method \int[] getModifiedByIdList()
     * @method \int[] fillModifiedById()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateModifyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_Demos $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_Demos $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Demos getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Demos[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_Demos $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_Demos_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_Demos current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Demos_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\DemosTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\DemosTable';
    }
    /**
     * @method static EO_Demos_Query query()
     * @method static EO_Demos_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Demos_Result getById($id)
     * @method static EO_Demos_Result getList(array $parameters = array())
     * @method static EO_Demos_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_Demos createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_Demos_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_Demos wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_Demos_Collection wakeUpCollection($rows)
     */
    class DemosTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Demos_Result exec()
     * @method \Bitrix\Landing\Internals\EO_Demos fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Demos_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Demos_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Demos fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Demos_Collection fetchCollection()
     */
    class EO_Demos_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Demos createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_Demos_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_Demos wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_Demos_Collection wakeUpCollection($rows)
     */
    class EO_Demos_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Domain
     * @see \Bitrix\Landing\Internals\DomainTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_Domain setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getActive()
     * @method \Bitrix\Landing\Internals\EO_Domain setActive(\string|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \string remindActualActive()
     * @method \string requireActive()
     * @method \Bitrix\Landing\Internals\EO_Domain resetActive()
     * @method \Bitrix\Landing\Internals\EO_Domain unsetActive()
     * @method \string fillActive()
     * @method \string getDomain()
     * @method \Bitrix\Landing\Internals\EO_Domain setDomain(\string|\Bitrix\Main\DB\SqlExpression $domain)
     * @method bool hasDomain()
     * @method bool isDomainFilled()
     * @method bool isDomainChanged()
     * @method \string remindActualDomain()
     * @method \string requireDomain()
     * @method \Bitrix\Landing\Internals\EO_Domain resetDomain()
     * @method \Bitrix\Landing\Internals\EO_Domain unsetDomain()
     * @method \string fillDomain()
     * @method \string getXmlId()
     * @method \Bitrix\Landing\Internals\EO_Domain setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Landing\Internals\EO_Domain resetXmlId()
     * @method \Bitrix\Landing\Internals\EO_Domain unsetXmlId()
     * @method \string fillXmlId()
     * @method \string getProtocol()
     * @method \Bitrix\Landing\Internals\EO_Domain setProtocol(\string|\Bitrix\Main\DB\SqlExpression $protocol)
     * @method bool hasProtocol()
     * @method bool isProtocolFilled()
     * @method bool isProtocolChanged()
     * @method \string remindActualProtocol()
     * @method \string requireProtocol()
     * @method \Bitrix\Landing\Internals\EO_Domain resetProtocol()
     * @method \Bitrix\Landing\Internals\EO_Domain unsetProtocol()
     * @method \string fillProtocol()
     * @method \string getProvider()
     * @method \Bitrix\Landing\Internals\EO_Domain setProvider(\string|\Bitrix\Main\DB\SqlExpression $provider)
     * @method bool hasProvider()
     * @method bool isProviderFilled()
     * @method bool isProviderChanged()
     * @method \string remindActualProvider()
     * @method \string requireProvider()
     * @method \Bitrix\Landing\Internals\EO_Domain resetProvider()
     * @method \Bitrix\Landing\Internals\EO_Domain unsetProvider()
     * @method \string fillProvider()
     * @method \int getCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Domain setCreatedById(\int|\Bitrix\Main\DB\SqlExpression $createdById)
     * @method bool hasCreatedById()
     * @method bool isCreatedByIdFilled()
     * @method bool isCreatedByIdChanged()
     * @method \int remindActualCreatedById()
     * @method \int requireCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Domain resetCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Domain unsetCreatedById()
     * @method \int fillCreatedById()
     * @method \Bitrix\Main\EO_User getCreatedBy()
     * @method \Bitrix\Main\EO_User remindActualCreatedBy()
     * @method \Bitrix\Main\EO_User requireCreatedBy()
     * @method \Bitrix\Landing\Internals\EO_Domain setCreatedBy(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Landing\Internals\EO_Domain resetCreatedBy()
     * @method \Bitrix\Landing\Internals\EO_Domain unsetCreatedBy()
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \Bitrix\Main\EO_User fillCreatedBy()
     * @method \int getModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Domain setModifiedById(\int|\Bitrix\Main\DB\SqlExpression $modifiedById)
     * @method bool hasModifiedById()
     * @method bool isModifiedByIdFilled()
     * @method bool isModifiedByIdChanged()
     * @method \int remindActualModifiedById()
     * @method \int requireModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Domain resetModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Domain unsetModifiedById()
     * @method \int fillModifiedById()
     * @method \Bitrix\Main\EO_User getModifiedBy()
     * @method \Bitrix\Main\EO_User remindActualModifiedBy()
     * @method \Bitrix\Main\EO_User requireModifiedBy()
     * @method \Bitrix\Landing\Internals\EO_Domain setModifiedBy(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Landing\Internals\EO_Domain resetModifiedBy()
     * @method \Bitrix\Landing\Internals\EO_Domain unsetModifiedBy()
     * @method bool hasModifiedBy()
     * @method bool isModifiedByFilled()
     * @method bool isModifiedByChanged()
     * @method \Bitrix\Main\EO_User fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Domain setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Domain resetDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Domain unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateModify()
     * @method \Bitrix\Landing\Internals\EO_Domain setDateModify(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateModify)
     * @method bool hasDateModify()
     * @method bool isDateModifyFilled()
     * @method bool isDateModifyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateModify()
     * @method \Bitrix\Main\Type\DateTime requireDateModify()
     * @method \Bitrix\Landing\Internals\EO_Domain resetDateModify()
     * @method \Bitrix\Landing\Internals\EO_Domain unsetDateModify()
     * @method \Bitrix\Main\Type\DateTime fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Domain set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_Domain reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Domain unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_Domain wakeUp($data)
     */
    class EO_Domain
    {
        /* @var \Bitrix\Landing\Internals\DomainTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\DomainTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Domain_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getActiveList()
     * @method \string[] fillActive()
     * @method \string[] getDomainList()
     * @method \string[] fillDomain()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \string[] getProtocolList()
     * @method \string[] fillProtocol()
     * @method \string[] getProviderList()
     * @method \string[] fillProvider()
     * @method \int[] getCreatedByIdList()
     * @method \int[] fillCreatedById()
     * @method \Bitrix\Main\EO_User[] getCreatedByList()
     * @method \Bitrix\Landing\Internals\EO_Domain_Collection getCreatedByCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCreatedBy()
     * @method \int[] getModifiedByIdList()
     * @method \int[] fillModifiedById()
     * @method \Bitrix\Main\EO_User[] getModifiedByList()
     * @method \Bitrix\Landing\Internals\EO_Domain_Collection getModifiedByCollection()
     * @method \Bitrix\Main\EO_User_Collection fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateModifyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_Domain $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_Domain $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Domain getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Domain[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_Domain $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_Domain_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_Domain current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Domain_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\DomainTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\DomainTable';
    }
    /**
     * @method static EO_Domain_Query query()
     * @method static EO_Domain_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Domain_Result getById($id)
     * @method static EO_Domain_Result getList(array $parameters = array())
     * @method static EO_Domain_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_Domain createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_Domain_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_Domain wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_Domain_Collection wakeUpCollection($rows)
     */
    class DomainTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Domain_Result exec()
     * @method \Bitrix\Landing\Internals\EO_Domain fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Domain_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Domain_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Domain fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Domain_Collection fetchCollection()
     */
    class EO_Domain_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Domain createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_Domain_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_Domain wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_Domain_Collection wakeUpCollection($rows)
     */
    class EO_Domain_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_File
     * @see \Bitrix\Landing\Internals\FileTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_File setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getEntityId()
     * @method \Bitrix\Landing\Internals\EO_File setEntityId(\int|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \int remindActualEntityId()
     * @method \int requireEntityId()
     * @method \Bitrix\Landing\Internals\EO_File resetEntityId()
     * @method \Bitrix\Landing\Internals\EO_File unsetEntityId()
     * @method \int fillEntityId()
     * @method \string getEntityType()
     * @method \Bitrix\Landing\Internals\EO_File setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \string remindActualEntityType()
     * @method \string requireEntityType()
     * @method \Bitrix\Landing\Internals\EO_File resetEntityType()
     * @method \Bitrix\Landing\Internals\EO_File unsetEntityType()
     * @method \string fillEntityType()
     * @method \int getFileId()
     * @method \Bitrix\Landing\Internals\EO_File setFileId(\int|\Bitrix\Main\DB\SqlExpression $fileId)
     * @method bool hasFileId()
     * @method bool isFileIdFilled()
     * @method bool isFileIdChanged()
     * @method \int remindActualFileId()
     * @method \int requireFileId()
     * @method \Bitrix\Landing\Internals\EO_File resetFileId()
     * @method \Bitrix\Landing\Internals\EO_File unsetFileId()
     * @method \int fillFileId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_File set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_File reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_File unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_File wakeUp($data)
     */
    class EO_File
    {
        /* @var \Bitrix\Landing\Internals\FileTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\FileTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_File_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getEntityIdList()
     * @method \int[] fillEntityId()
     * @method \string[] getEntityTypeList()
     * @method \string[] fillEntityType()
     * @method \int[] getFileIdList()
     * @method \int[] fillFileId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_File $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_File $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_File getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_File[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_File $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_File_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_File current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_File_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\FileTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\FileTable';
    }
    /**
     * @method static EO_File_Query query()
     * @method static EO_File_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_File_Result getById($id)
     * @method static EO_File_Result getList(array $parameters = array())
     * @method static EO_File_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_File createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_File_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_File wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_File_Collection wakeUpCollection($rows)
     */
    class FileTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_File_Result exec()
     * @method \Bitrix\Landing\Internals\EO_File fetchObject()
     * @method \Bitrix\Landing\Internals\EO_File_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_File_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_File fetchObject()
     * @method \Bitrix\Landing\Internals\EO_File_Collection fetchCollection()
     */
    class EO_File_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_File createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_File_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_File wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_File_Collection wakeUpCollection($rows)
     */
    class EO_File_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_FilterBlock
     * @see \Bitrix\Landing\Internals\FilterBlockTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_FilterBlock setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getFilterId()
     * @method \Bitrix\Landing\Internals\EO_FilterBlock setFilterId(\int|\Bitrix\Main\DB\SqlExpression $filterId)
     * @method bool hasFilterId()
     * @method bool isFilterIdFilled()
     * @method bool isFilterIdChanged()
     * @method \int remindActualFilterId()
     * @method \int requireFilterId()
     * @method \Bitrix\Landing\Internals\EO_FilterBlock resetFilterId()
     * @method \Bitrix\Landing\Internals\EO_FilterBlock unsetFilterId()
     * @method \int fillFilterId()
     * @method \int getBlockId()
     * @method \Bitrix\Landing\Internals\EO_FilterBlock setBlockId(\int|\Bitrix\Main\DB\SqlExpression $blockId)
     * @method bool hasBlockId()
     * @method bool isBlockIdFilled()
     * @method bool isBlockIdChanged()
     * @method \int remindActualBlockId()
     * @method \int requireBlockId()
     * @method \Bitrix\Landing\Internals\EO_FilterBlock resetBlockId()
     * @method \Bitrix\Landing\Internals\EO_FilterBlock unsetBlockId()
     * @method \int fillBlockId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_FilterBlock set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_FilterBlock reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_FilterBlock unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_FilterBlock wakeUp($data)
     */
    class EO_FilterBlock
    {
        /* @var \Bitrix\Landing\Internals\FilterBlockTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\FilterBlockTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_FilterBlock_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getFilterIdList()
     * @method \int[] fillFilterId()
     * @method \int[] getBlockIdList()
     * @method \int[] fillBlockId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_FilterBlock $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_FilterBlock $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_FilterBlock getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_FilterBlock[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_FilterBlock $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_FilterBlock_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_FilterBlock current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_FilterBlock_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\FilterBlockTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\FilterBlockTable';
    }
    /**
     * @method static EO_FilterBlock_Query query()
     * @method static EO_FilterBlock_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_FilterBlock_Result getById($id)
     * @method static EO_FilterBlock_Result getList(array $parameters = array())
     * @method static EO_FilterBlock_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_FilterBlock createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_FilterBlock_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_FilterBlock wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_FilterBlock_Collection wakeUpCollection($rows)
     */
    class FilterBlockTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_FilterBlock_Result exec()
     * @method \Bitrix\Landing\Internals\EO_FilterBlock fetchObject()
     * @method \Bitrix\Landing\Internals\EO_FilterBlock_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_FilterBlock_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_FilterBlock fetchObject()
     * @method \Bitrix\Landing\Internals\EO_FilterBlock_Collection fetchCollection()
     */
    class EO_FilterBlock_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_FilterBlock createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_FilterBlock_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_FilterBlock wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_FilterBlock_Collection wakeUpCollection($rows)
     */
    class EO_FilterBlock_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_FilterEntity
     * @see \Bitrix\Landing\Internals\FilterEntityTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getSourceId()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity setSourceId(\string|\Bitrix\Main\DB\SqlExpression $sourceId)
     * @method bool hasSourceId()
     * @method bool isSourceIdFilled()
     * @method bool isSourceIdChanged()
     * @method \string remindActualSourceId()
     * @method \string requireSourceId()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity resetSourceId()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity unsetSourceId()
     * @method \string fillSourceId()
     * @method \string getFilterHash()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity setFilterHash(\string|\Bitrix\Main\DB\SqlExpression $filterHash)
     * @method bool hasFilterHash()
     * @method bool isFilterHashFilled()
     * @method bool isFilterHashChanged()
     * @method \string remindActualFilterHash()
     * @method \string requireFilterHash()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity resetFilterHash()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity unsetFilterHash()
     * @method \string fillFilterHash()
     * @method \string getFilter()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity setFilter(\string|\Bitrix\Main\DB\SqlExpression $filter)
     * @method bool hasFilter()
     * @method bool isFilterFilled()
     * @method bool isFilterChanged()
     * @method \string remindActualFilter()
     * @method \string requireFilter()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity resetFilter()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity unsetFilter()
     * @method \string fillFilter()
     * @method \int getCreatedById()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity setCreatedById(\int|\Bitrix\Main\DB\SqlExpression $createdById)
     * @method bool hasCreatedById()
     * @method bool isCreatedByIdFilled()
     * @method bool isCreatedByIdChanged()
     * @method \int remindActualCreatedById()
     * @method \int requireCreatedById()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity resetCreatedById()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity unsetCreatedById()
     * @method \int fillCreatedById()
     * @method \int getModifiedById()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity setModifiedById(\int|\Bitrix\Main\DB\SqlExpression $modifiedById)
     * @method bool hasModifiedById()
     * @method bool isModifiedByIdFilled()
     * @method bool isModifiedByIdChanged()
     * @method \int remindActualModifiedById()
     * @method \int requireModifiedById()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity resetModifiedById()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity unsetModifiedById()
     * @method \int fillModifiedById()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity resetDateCreate()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateModify()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity setDateModify(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateModify)
     * @method bool hasDateModify()
     * @method bool isDateModifyFilled()
     * @method bool isDateModifyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateModify()
     * @method \Bitrix\Main\Type\DateTime requireDateModify()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity resetDateModify()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity unsetDateModify()
     * @method \Bitrix\Main\Type\DateTime fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_FilterEntity set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_FilterEntity reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_FilterEntity unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_FilterEntity wakeUp($data)
     */
    class EO_FilterEntity
    {
        /* @var \Bitrix\Landing\Internals\FilterEntityTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\FilterEntityTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_FilterEntity_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getSourceIdList()
     * @method \string[] fillSourceId()
     * @method \string[] getFilterHashList()
     * @method \string[] fillFilterHash()
     * @method \string[] getFilterList()
     * @method \string[] fillFilter()
     * @method \int[] getCreatedByIdList()
     * @method \int[] fillCreatedById()
     * @method \int[] getModifiedByIdList()
     * @method \int[] fillModifiedById()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateModifyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_FilterEntity $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_FilterEntity $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_FilterEntity getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_FilterEntity[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_FilterEntity $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_FilterEntity_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_FilterEntity current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_FilterEntity_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\FilterEntityTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\FilterEntityTable';
    }
    /**
     * @method static EO_FilterEntity_Query query()
     * @method static EO_FilterEntity_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_FilterEntity_Result getById($id)
     * @method static EO_FilterEntity_Result getList(array $parameters = array())
     * @method static EO_FilterEntity_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_FilterEntity createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_FilterEntity_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_FilterEntity wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_FilterEntity_Collection wakeUpCollection($rows)
     */
    class FilterEntityTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_FilterEntity_Result exec()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity fetchObject()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_FilterEntity_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_FilterEntity fetchObject()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity_Collection fetchCollection()
     */
    class EO_FilterEntity_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_FilterEntity createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_FilterEntity_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_FilterEntity wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_FilterEntity_Collection wakeUpCollection($rows)
     */
    class EO_FilterEntity_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_HookData
     * @see \Bitrix\Landing\Internals\HookDataTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_HookData setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getEntityId()
     * @method \Bitrix\Landing\Internals\EO_HookData setEntityId(\int|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \int remindActualEntityId()
     * @method \int requireEntityId()
     * @method \Bitrix\Landing\Internals\EO_HookData resetEntityId()
     * @method \Bitrix\Landing\Internals\EO_HookData unsetEntityId()
     * @method \int fillEntityId()
     * @method \string getEntityType()
     * @method \Bitrix\Landing\Internals\EO_HookData setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \string remindActualEntityType()
     * @method \string requireEntityType()
     * @method \Bitrix\Landing\Internals\EO_HookData resetEntityType()
     * @method \Bitrix\Landing\Internals\EO_HookData unsetEntityType()
     * @method \string fillEntityType()
     * @method \string getHook()
     * @method \Bitrix\Landing\Internals\EO_HookData setHook(\string|\Bitrix\Main\DB\SqlExpression $hook)
     * @method bool hasHook()
     * @method bool isHookFilled()
     * @method bool isHookChanged()
     * @method \string remindActualHook()
     * @method \string requireHook()
     * @method \Bitrix\Landing\Internals\EO_HookData resetHook()
     * @method \Bitrix\Landing\Internals\EO_HookData unsetHook()
     * @method \string fillHook()
     * @method \string getCode()
     * @method \Bitrix\Landing\Internals\EO_HookData setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Landing\Internals\EO_HookData resetCode()
     * @method \Bitrix\Landing\Internals\EO_HookData unsetCode()
     * @method \string fillCode()
     * @method \string getValue()
     * @method \Bitrix\Landing\Internals\EO_HookData setValue(\string|\Bitrix\Main\DB\SqlExpression $value)
     * @method bool hasValue()
     * @method bool isValueFilled()
     * @method bool isValueChanged()
     * @method \string remindActualValue()
     * @method \string requireValue()
     * @method \Bitrix\Landing\Internals\EO_HookData resetValue()
     * @method \Bitrix\Landing\Internals\EO_HookData unsetValue()
     * @method \string fillValue()
     * @method \string getPublic()
     * @method \Bitrix\Landing\Internals\EO_HookData setPublic(\string|\Bitrix\Main\DB\SqlExpression $public)
     * @method bool hasPublic()
     * @method bool isPublicFilled()
     * @method bool isPublicChanged()
     * @method \string remindActualPublic()
     * @method \string requirePublic()
     * @method \Bitrix\Landing\Internals\EO_HookData resetPublic()
     * @method \Bitrix\Landing\Internals\EO_HookData unsetPublic()
     * @method \string fillPublic()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_HookData set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_HookData reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_HookData unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_HookData wakeUp($data)
     */
    class EO_HookData
    {
        /* @var \Bitrix\Landing\Internals\HookDataTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\HookDataTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_HookData_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getEntityIdList()
     * @method \int[] fillEntityId()
     * @method \string[] getEntityTypeList()
     * @method \string[] fillEntityType()
     * @method \string[] getHookList()
     * @method \string[] fillHook()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \string[] getValueList()
     * @method \string[] fillValue()
     * @method \string[] getPublicList()
     * @method \string[] fillPublic()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_HookData $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_HookData $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_HookData getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_HookData[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_HookData $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_HookData_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_HookData current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_HookData_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\HookDataTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\HookDataTable';
    }
    /**
     * @method static EO_HookData_Query query()
     * @method static EO_HookData_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_HookData_Result getById($id)
     * @method static EO_HookData_Result getList(array $parameters = array())
     * @method static EO_HookData_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_HookData createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_HookData_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_HookData wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_HookData_Collection wakeUpCollection($rows)
     */
    class HookDataTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_HookData_Result exec()
     * @method \Bitrix\Landing\Internals\EO_HookData fetchObject()
     * @method \Bitrix\Landing\Internals\EO_HookData_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_HookData_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_HookData fetchObject()
     * @method \Bitrix\Landing\Internals\EO_HookData_Collection fetchCollection()
     */
    class EO_HookData_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_HookData createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_HookData_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_HookData wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_HookData_Collection wakeUpCollection($rows)
     */
    class EO_HookData_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Landing
     * @see \Bitrix\Landing\Internals\LandingTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_Landing setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getCode()
     * @method \Bitrix\Landing\Internals\EO_Landing setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Landing\Internals\EO_Landing resetCode()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetCode()
     * @method \string fillCode()
     * @method \string getInitiatorAppCode()
     * @method \Bitrix\Landing\Internals\EO_Landing setInitiatorAppCode(\string|\Bitrix\Main\DB\SqlExpression $initiatorAppCode)
     * @method bool hasInitiatorAppCode()
     * @method bool isInitiatorAppCodeFilled()
     * @method bool isInitiatorAppCodeChanged()
     * @method \string remindActualInitiatorAppCode()
     * @method \string requireInitiatorAppCode()
     * @method \Bitrix\Landing\Internals\EO_Landing resetInitiatorAppCode()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetInitiatorAppCode()
     * @method \string fillInitiatorAppCode()
     * @method \string getRule()
     * @method \Bitrix\Landing\Internals\EO_Landing setRule(\string|\Bitrix\Main\DB\SqlExpression $rule)
     * @method bool hasRule()
     * @method bool isRuleFilled()
     * @method bool isRuleChanged()
     * @method \string remindActualRule()
     * @method \string requireRule()
     * @method \Bitrix\Landing\Internals\EO_Landing resetRule()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetRule()
     * @method \string fillRule()
     * @method \string getActive()
     * @method \Bitrix\Landing\Internals\EO_Landing setActive(\string|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \string remindActualActive()
     * @method \string requireActive()
     * @method \Bitrix\Landing\Internals\EO_Landing resetActive()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetActive()
     * @method \string fillActive()
     * @method \string getDeleted()
     * @method \Bitrix\Landing\Internals\EO_Landing setDeleted(\string|\Bitrix\Main\DB\SqlExpression $deleted)
     * @method bool hasDeleted()
     * @method bool isDeletedFilled()
     * @method bool isDeletedChanged()
     * @method \string remindActualDeleted()
     * @method \string requireDeleted()
     * @method \Bitrix\Landing\Internals\EO_Landing resetDeleted()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetDeleted()
     * @method \string fillDeleted()
     * @method \string getPublic()
     * @method \Bitrix\Landing\Internals\EO_Landing setPublic(\string|\Bitrix\Main\DB\SqlExpression $public)
     * @method bool hasPublic()
     * @method bool isPublicFilled()
     * @method bool isPublicChanged()
     * @method \string remindActualPublic()
     * @method \string requirePublic()
     * @method \Bitrix\Landing\Internals\EO_Landing resetPublic()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetPublic()
     * @method \string fillPublic()
     * @method \string getSys()
     * @method \Bitrix\Landing\Internals\EO_Landing setSys(\string|\Bitrix\Main\DB\SqlExpression $sys)
     * @method bool hasSys()
     * @method bool isSysFilled()
     * @method bool isSysChanged()
     * @method \string remindActualSys()
     * @method \string requireSys()
     * @method \Bitrix\Landing\Internals\EO_Landing resetSys()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetSys()
     * @method \string fillSys()
     * @method \int getViews()
     * @method \Bitrix\Landing\Internals\EO_Landing setViews(\int|\Bitrix\Main\DB\SqlExpression $views)
     * @method bool hasViews()
     * @method bool isViewsFilled()
     * @method bool isViewsChanged()
     * @method \int remindActualViews()
     * @method \int requireViews()
     * @method \Bitrix\Landing\Internals\EO_Landing resetViews()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetViews()
     * @method \int fillViews()
     * @method \string getTitle()
     * @method \Bitrix\Landing\Internals\EO_Landing setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Landing\Internals\EO_Landing resetTitle()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetTitle()
     * @method \string fillTitle()
     * @method \string getXmlId()
     * @method \Bitrix\Landing\Internals\EO_Landing setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Landing\Internals\EO_Landing resetXmlId()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetXmlId()
     * @method \string fillXmlId()
     * @method \string getDescription()
     * @method \Bitrix\Landing\Internals\EO_Landing setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Landing\Internals\EO_Landing resetDescription()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetDescription()
     * @method \string fillDescription()
     * @method \int getTplId()
     * @method \Bitrix\Landing\Internals\EO_Landing setTplId(\int|\Bitrix\Main\DB\SqlExpression $tplId)
     * @method bool hasTplId()
     * @method bool isTplIdFilled()
     * @method bool isTplIdChanged()
     * @method \int remindActualTplId()
     * @method \int requireTplId()
     * @method \Bitrix\Landing\Internals\EO_Landing resetTplId()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetTplId()
     * @method \int fillTplId()
     * @method \string getTplCode()
     * @method \Bitrix\Landing\Internals\EO_Landing setTplCode(\string|\Bitrix\Main\DB\SqlExpression $tplCode)
     * @method bool hasTplCode()
     * @method bool isTplCodeFilled()
     * @method bool isTplCodeChanged()
     * @method \string remindActualTplCode()
     * @method \string requireTplCode()
     * @method \Bitrix\Landing\Internals\EO_Landing resetTplCode()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetTplCode()
     * @method \string fillTplCode()
     * @method \int getSiteId()
     * @method \Bitrix\Landing\Internals\EO_Landing setSiteId(\int|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \int remindActualSiteId()
     * @method \int requireSiteId()
     * @method \Bitrix\Landing\Internals\EO_Landing resetSiteId()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetSiteId()
     * @method \int fillSiteId()
     * @method \Bitrix\Landing\Internals\EO_Site getSite()
     * @method \Bitrix\Landing\Internals\EO_Site remindActualSite()
     * @method \Bitrix\Landing\Internals\EO_Site requireSite()
     * @method \Bitrix\Landing\Internals\EO_Landing setSite(\Bitrix\Landing\Internals\EO_Site $object)
     * @method \Bitrix\Landing\Internals\EO_Landing resetSite()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetSite()
     * @method bool hasSite()
     * @method bool isSiteFilled()
     * @method bool isSiteChanged()
     * @method \Bitrix\Landing\Internals\EO_Site fillSite()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef getAreas()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef remindActualAreas()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef requireAreas()
     * @method \Bitrix\Landing\Internals\EO_Landing setAreas(\Bitrix\Landing\Internals\EO_TemplateRef $object)
     * @method \Bitrix\Landing\Internals\EO_Landing resetAreas()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetAreas()
     * @method bool hasAreas()
     * @method bool isAreasFilled()
     * @method bool isAreasChanged()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef fillAreas()
     * @method \string getSitemap()
     * @method \Bitrix\Landing\Internals\EO_Landing setSitemap(\string|\Bitrix\Main\DB\SqlExpression $sitemap)
     * @method bool hasSitemap()
     * @method bool isSitemapFilled()
     * @method bool isSitemapChanged()
     * @method \string remindActualSitemap()
     * @method \string requireSitemap()
     * @method \Bitrix\Landing\Internals\EO_Landing resetSitemap()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetSitemap()
     * @method \string fillSitemap()
     * @method \string getFolder()
     * @method \Bitrix\Landing\Internals\EO_Landing setFolder(\string|\Bitrix\Main\DB\SqlExpression $folder)
     * @method bool hasFolder()
     * @method bool isFolderFilled()
     * @method bool isFolderChanged()
     * @method \string remindActualFolder()
     * @method \string requireFolder()
     * @method \Bitrix\Landing\Internals\EO_Landing resetFolder()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetFolder()
     * @method \string fillFolder()
     * @method \int getFolderId()
     * @method \Bitrix\Landing\Internals\EO_Landing setFolderId(\int|\Bitrix\Main\DB\SqlExpression $folderId)
     * @method bool hasFolderId()
     * @method bool isFolderIdFilled()
     * @method bool isFolderIdChanged()
     * @method \int remindActualFolderId()
     * @method \int requireFolderId()
     * @method \Bitrix\Landing\Internals\EO_Landing resetFolderId()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetFolderId()
     * @method \int fillFolderId()
     * @method \string getSearchContent()
     * @method \Bitrix\Landing\Internals\EO_Landing setSearchContent(\string|\Bitrix\Main\DB\SqlExpression $searchContent)
     * @method bool hasSearchContent()
     * @method bool isSearchContentFilled()
     * @method bool isSearchContentChanged()
     * @method \string remindActualSearchContent()
     * @method \string requireSearchContent()
     * @method \Bitrix\Landing\Internals\EO_Landing resetSearchContent()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetSearchContent()
     * @method \string fillSearchContent()
     * @method \int getVersion()
     * @method \Bitrix\Landing\Internals\EO_Landing setVersion(\int|\Bitrix\Main\DB\SqlExpression $version)
     * @method bool hasVersion()
     * @method bool isVersionFilled()
     * @method bool isVersionChanged()
     * @method \int remindActualVersion()
     * @method \int requireVersion()
     * @method \Bitrix\Landing\Internals\EO_Landing resetVersion()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetVersion()
     * @method \int fillVersion()
     * @method \int getCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Landing setCreatedById(\int|\Bitrix\Main\DB\SqlExpression $createdById)
     * @method bool hasCreatedById()
     * @method bool isCreatedByIdFilled()
     * @method bool isCreatedByIdChanged()
     * @method \int remindActualCreatedById()
     * @method \int requireCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Landing resetCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetCreatedById()
     * @method \int fillCreatedById()
     * @method \Bitrix\Main\EO_User getCreatedBy()
     * @method \Bitrix\Main\EO_User remindActualCreatedBy()
     * @method \Bitrix\Main\EO_User requireCreatedBy()
     * @method \Bitrix\Landing\Internals\EO_Landing setCreatedBy(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Landing\Internals\EO_Landing resetCreatedBy()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetCreatedBy()
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \Bitrix\Main\EO_User fillCreatedBy()
     * @method \int getModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Landing setModifiedById(\int|\Bitrix\Main\DB\SqlExpression $modifiedById)
     * @method bool hasModifiedById()
     * @method bool isModifiedByIdFilled()
     * @method bool isModifiedByIdChanged()
     * @method \int remindActualModifiedById()
     * @method \int requireModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Landing resetModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetModifiedById()
     * @method \int fillModifiedById()
     * @method \Bitrix\Main\EO_User getModifiedBy()
     * @method \Bitrix\Main\EO_User remindActualModifiedBy()
     * @method \Bitrix\Main\EO_User requireModifiedBy()
     * @method \Bitrix\Landing\Internals\EO_Landing setModifiedBy(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Landing\Internals\EO_Landing resetModifiedBy()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetModifiedBy()
     * @method bool hasModifiedBy()
     * @method bool isModifiedByFilled()
     * @method bool isModifiedByChanged()
     * @method \Bitrix\Main\EO_User fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Landing setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Landing resetDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateModify()
     * @method \Bitrix\Landing\Internals\EO_Landing setDateModify(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateModify)
     * @method bool hasDateModify()
     * @method bool isDateModifyFilled()
     * @method bool isDateModifyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateModify()
     * @method \Bitrix\Main\Type\DateTime requireDateModify()
     * @method \Bitrix\Landing\Internals\EO_Landing resetDateModify()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetDateModify()
     * @method \Bitrix\Main\Type\DateTime fillDateModify()
     * @method \Bitrix\Main\Type\DateTime getDatePublic()
     * @method \Bitrix\Landing\Internals\EO_Landing setDatePublic(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $datePublic)
     * @method bool hasDatePublic()
     * @method bool isDatePublicFilled()
     * @method bool isDatePublicChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDatePublic()
     * @method \Bitrix\Main\Type\DateTime requireDatePublic()
     * @method \Bitrix\Landing\Internals\EO_Landing resetDatePublic()
     * @method \Bitrix\Landing\Internals\EO_Landing unsetDatePublic()
     * @method \Bitrix\Main\Type\DateTime fillDatePublic()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Landing set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_Landing reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Landing unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_Landing wakeUp($data)
     */
    class EO_Landing
    {
        /* @var \Bitrix\Landing\Internals\LandingTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\LandingTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Landing_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \string[] getInitiatorAppCodeList()
     * @method \string[] fillInitiatorAppCode()
     * @method \string[] getRuleList()
     * @method \string[] fillRule()
     * @method \string[] getActiveList()
     * @method \string[] fillActive()
     * @method \string[] getDeletedList()
     * @method \string[] fillDeleted()
     * @method \string[] getPublicList()
     * @method \string[] fillPublic()
     * @method \string[] getSysList()
     * @method \string[] fillSys()
     * @method \int[] getViewsList()
     * @method \int[] fillViews()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \int[] getTplIdList()
     * @method \int[] fillTplId()
     * @method \string[] getTplCodeList()
     * @method \string[] fillTplCode()
     * @method \int[] getSiteIdList()
     * @method \int[] fillSiteId()
     * @method \Bitrix\Landing\Internals\EO_Site[] getSiteList()
     * @method \Bitrix\Landing\Internals\EO_Landing_Collection getSiteCollection()
     * @method \Bitrix\Landing\Internals\EO_Site_Collection fillSite()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef[] getAreasList()
     * @method \Bitrix\Landing\Internals\EO_Landing_Collection getAreasCollection()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef_Collection fillAreas()
     * @method \string[] getSitemapList()
     * @method \string[] fillSitemap()
     * @method \string[] getFolderList()
     * @method \string[] fillFolder()
     * @method \int[] getFolderIdList()
     * @method \int[] fillFolderId()
     * @method \string[] getSearchContentList()
     * @method \string[] fillSearchContent()
     * @method \int[] getVersionList()
     * @method \int[] fillVersion()
     * @method \int[] getCreatedByIdList()
     * @method \int[] fillCreatedById()
     * @method \Bitrix\Main\EO_User[] getCreatedByList()
     * @method \Bitrix\Landing\Internals\EO_Landing_Collection getCreatedByCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCreatedBy()
     * @method \int[] getModifiedByIdList()
     * @method \int[] fillModifiedById()
     * @method \Bitrix\Main\EO_User[] getModifiedByList()
     * @method \Bitrix\Landing\Internals\EO_Landing_Collection getModifiedByCollection()
     * @method \Bitrix\Main\EO_User_Collection fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateModifyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateModify()
     * @method \Bitrix\Main\Type\DateTime[] getDatePublicList()
     * @method \Bitrix\Main\Type\DateTime[] fillDatePublic()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_Landing $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_Landing $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Landing getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Landing[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_Landing $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_Landing_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_Landing current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Landing_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\LandingTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\LandingTable';
    }
    /**
     * @method static EO_Landing_Query query()
     * @method static EO_Landing_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Landing_Result getById($id)
     * @method static EO_Landing_Result getList(array $parameters = array())
     * @method static EO_Landing_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_Landing createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_Landing_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_Landing wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_Landing_Collection wakeUpCollection($rows)
     */
    class LandingTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Landing_Result exec()
     * @method \Bitrix\Landing\Internals\EO_Landing fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Landing_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Landing_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Landing fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Landing_Collection fetchCollection()
     */
    class EO_Landing_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Landing createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_Landing_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_Landing wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_Landing_Collection wakeUpCollection($rows)
     */
    class EO_Landing_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Placement
     * @see \Bitrix\Landing\Internals\PlacementTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_Placement setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getAppId()
     * @method \Bitrix\Landing\Internals\EO_Placement setAppId(\int|\Bitrix\Main\DB\SqlExpression $appId)
     * @method bool hasAppId()
     * @method bool isAppIdFilled()
     * @method bool isAppIdChanged()
     * @method \int remindActualAppId()
     * @method \int requireAppId()
     * @method \Bitrix\Landing\Internals\EO_Placement resetAppId()
     * @method \Bitrix\Landing\Internals\EO_Placement unsetAppId()
     * @method \int fillAppId()
     * @method \string getPlacement()
     * @method \Bitrix\Landing\Internals\EO_Placement setPlacement(\string|\Bitrix\Main\DB\SqlExpression $placement)
     * @method bool hasPlacement()
     * @method bool isPlacementFilled()
     * @method bool isPlacementChanged()
     * @method \string remindActualPlacement()
     * @method \string requirePlacement()
     * @method \Bitrix\Landing\Internals\EO_Placement resetPlacement()
     * @method \Bitrix\Landing\Internals\EO_Placement unsetPlacement()
     * @method \string fillPlacement()
     * @method \string getPlacementHandler()
     * @method \Bitrix\Landing\Internals\EO_Placement setPlacementHandler(\string|\Bitrix\Main\DB\SqlExpression $placementHandler)
     * @method bool hasPlacementHandler()
     * @method bool isPlacementHandlerFilled()
     * @method bool isPlacementHandlerChanged()
     * @method \string remindActualPlacementHandler()
     * @method \string requirePlacementHandler()
     * @method \Bitrix\Landing\Internals\EO_Placement resetPlacementHandler()
     * @method \Bitrix\Landing\Internals\EO_Placement unsetPlacementHandler()
     * @method \string fillPlacementHandler()
     * @method \string getTitle()
     * @method \Bitrix\Landing\Internals\EO_Placement setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Landing\Internals\EO_Placement resetTitle()
     * @method \Bitrix\Landing\Internals\EO_Placement unsetTitle()
     * @method \string fillTitle()
     * @method \int getCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Placement setCreatedById(\int|\Bitrix\Main\DB\SqlExpression $createdById)
     * @method bool hasCreatedById()
     * @method bool isCreatedByIdFilled()
     * @method bool isCreatedByIdChanged()
     * @method \int remindActualCreatedById()
     * @method \int requireCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Placement resetCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Placement unsetCreatedById()
     * @method \int fillCreatedById()
     * @method \int getModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Placement setModifiedById(\int|\Bitrix\Main\DB\SqlExpression $modifiedById)
     * @method bool hasModifiedById()
     * @method bool isModifiedByIdFilled()
     * @method bool isModifiedByIdChanged()
     * @method \int remindActualModifiedById()
     * @method \int requireModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Placement resetModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Placement unsetModifiedById()
     * @method \int fillModifiedById()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Placement setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Placement resetDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Placement unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateModify()
     * @method \Bitrix\Landing\Internals\EO_Placement setDateModify(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateModify)
     * @method bool hasDateModify()
     * @method bool isDateModifyFilled()
     * @method bool isDateModifyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateModify()
     * @method \Bitrix\Main\Type\DateTime requireDateModify()
     * @method \Bitrix\Landing\Internals\EO_Placement resetDateModify()
     * @method \Bitrix\Landing\Internals\EO_Placement unsetDateModify()
     * @method \Bitrix\Main\Type\DateTime fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Placement set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_Placement reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Placement unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_Placement wakeUp($data)
     */
    class EO_Placement
    {
        /* @var \Bitrix\Landing\Internals\PlacementTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\PlacementTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Placement_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getAppIdList()
     * @method \int[] fillAppId()
     * @method \string[] getPlacementList()
     * @method \string[] fillPlacement()
     * @method \string[] getPlacementHandlerList()
     * @method \string[] fillPlacementHandler()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \int[] getCreatedByIdList()
     * @method \int[] fillCreatedById()
     * @method \int[] getModifiedByIdList()
     * @method \int[] fillModifiedById()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateModifyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_Placement $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_Placement $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Placement getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Placement[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_Placement $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_Placement_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_Placement current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Placement_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\PlacementTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\PlacementTable';
    }
    /**
     * @method static EO_Placement_Query query()
     * @method static EO_Placement_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Placement_Result getById($id)
     * @method static EO_Placement_Result getList(array $parameters = array())
     * @method static EO_Placement_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_Placement createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_Placement_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_Placement wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_Placement_Collection wakeUpCollection($rows)
     */
    class PlacementTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Placement_Result exec()
     * @method \Bitrix\Landing\Internals\EO_Placement fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Placement_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Placement_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Placement fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Placement_Collection fetchCollection()
     */
    class EO_Placement_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Placement createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_Placement_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_Placement wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_Placement_Collection wakeUpCollection($rows)
     */
    class EO_Placement_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Repo
     * @see \Bitrix\Landing\Internals\RepoTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_Repo setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getXmlId()
     * @method \Bitrix\Landing\Internals\EO_Repo setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Landing\Internals\EO_Repo resetXmlId()
     * @method \Bitrix\Landing\Internals\EO_Repo unsetXmlId()
     * @method \string fillXmlId()
     * @method \string getAppCode()
     * @method \Bitrix\Landing\Internals\EO_Repo setAppCode(\string|\Bitrix\Main\DB\SqlExpression $appCode)
     * @method bool hasAppCode()
     * @method bool isAppCodeFilled()
     * @method bool isAppCodeChanged()
     * @method \string remindActualAppCode()
     * @method \string requireAppCode()
     * @method \Bitrix\Landing\Internals\EO_Repo resetAppCode()
     * @method \Bitrix\Landing\Internals\EO_Repo unsetAppCode()
     * @method \string fillAppCode()
     * @method \string getActive()
     * @method \Bitrix\Landing\Internals\EO_Repo setActive(\string|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \string remindActualActive()
     * @method \string requireActive()
     * @method \Bitrix\Landing\Internals\EO_Repo resetActive()
     * @method \Bitrix\Landing\Internals\EO_Repo unsetActive()
     * @method \string fillActive()
     * @method \string getName()
     * @method \Bitrix\Landing\Internals\EO_Repo setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Landing\Internals\EO_Repo resetName()
     * @method \Bitrix\Landing\Internals\EO_Repo unsetName()
     * @method \string fillName()
     * @method \string getDescription()
     * @method \Bitrix\Landing\Internals\EO_Repo setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Landing\Internals\EO_Repo resetDescription()
     * @method \Bitrix\Landing\Internals\EO_Repo unsetDescription()
     * @method \string fillDescription()
     * @method \string getSections()
     * @method \Bitrix\Landing\Internals\EO_Repo setSections(\string|\Bitrix\Main\DB\SqlExpression $sections)
     * @method bool hasSections()
     * @method bool isSectionsFilled()
     * @method bool isSectionsChanged()
     * @method \string remindActualSections()
     * @method \string requireSections()
     * @method \Bitrix\Landing\Internals\EO_Repo resetSections()
     * @method \Bitrix\Landing\Internals\EO_Repo unsetSections()
     * @method \string fillSections()
     * @method \string getSiteTemplateId()
     * @method \Bitrix\Landing\Internals\EO_Repo setSiteTemplateId(\string|\Bitrix\Main\DB\SqlExpression $siteTemplateId)
     * @method bool hasSiteTemplateId()
     * @method bool isSiteTemplateIdFilled()
     * @method bool isSiteTemplateIdChanged()
     * @method \string remindActualSiteTemplateId()
     * @method \string requireSiteTemplateId()
     * @method \Bitrix\Landing\Internals\EO_Repo resetSiteTemplateId()
     * @method \Bitrix\Landing\Internals\EO_Repo unsetSiteTemplateId()
     * @method \string fillSiteTemplateId()
     * @method \string getPreview()
     * @method \Bitrix\Landing\Internals\EO_Repo setPreview(\string|\Bitrix\Main\DB\SqlExpression $preview)
     * @method bool hasPreview()
     * @method bool isPreviewFilled()
     * @method bool isPreviewChanged()
     * @method \string remindActualPreview()
     * @method \string requirePreview()
     * @method \Bitrix\Landing\Internals\EO_Repo resetPreview()
     * @method \Bitrix\Landing\Internals\EO_Repo unsetPreview()
     * @method \string fillPreview()
     * @method \string getManifest()
     * @method \Bitrix\Landing\Internals\EO_Repo setManifest(\string|\Bitrix\Main\DB\SqlExpression $manifest)
     * @method bool hasManifest()
     * @method bool isManifestFilled()
     * @method bool isManifestChanged()
     * @method \string remindActualManifest()
     * @method \string requireManifest()
     * @method \Bitrix\Landing\Internals\EO_Repo resetManifest()
     * @method \Bitrix\Landing\Internals\EO_Repo unsetManifest()
     * @method \string fillManifest()
     * @method \string getContent()
     * @method \Bitrix\Landing\Internals\EO_Repo setContent(\string|\Bitrix\Main\DB\SqlExpression $content)
     * @method bool hasContent()
     * @method bool isContentFilled()
     * @method bool isContentChanged()
     * @method \string remindActualContent()
     * @method \string requireContent()
     * @method \Bitrix\Landing\Internals\EO_Repo resetContent()
     * @method \Bitrix\Landing\Internals\EO_Repo unsetContent()
     * @method \string fillContent()
     * @method \int getCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Repo setCreatedById(\int|\Bitrix\Main\DB\SqlExpression $createdById)
     * @method bool hasCreatedById()
     * @method bool isCreatedByIdFilled()
     * @method bool isCreatedByIdChanged()
     * @method \int remindActualCreatedById()
     * @method \int requireCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Repo resetCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Repo unsetCreatedById()
     * @method \int fillCreatedById()
     * @method \int getModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Repo setModifiedById(\int|\Bitrix\Main\DB\SqlExpression $modifiedById)
     * @method bool hasModifiedById()
     * @method bool isModifiedByIdFilled()
     * @method bool isModifiedByIdChanged()
     * @method \int remindActualModifiedById()
     * @method \int requireModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Repo resetModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Repo unsetModifiedById()
     * @method \int fillModifiedById()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Repo setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Repo resetDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Repo unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateModify()
     * @method \Bitrix\Landing\Internals\EO_Repo setDateModify(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateModify)
     * @method bool hasDateModify()
     * @method bool isDateModifyFilled()
     * @method bool isDateModifyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateModify()
     * @method \Bitrix\Main\Type\DateTime requireDateModify()
     * @method \Bitrix\Landing\Internals\EO_Repo resetDateModify()
     * @method \Bitrix\Landing\Internals\EO_Repo unsetDateModify()
     * @method \Bitrix\Main\Type\DateTime fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Repo set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_Repo reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Repo unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_Repo wakeUp($data)
     */
    class EO_Repo
    {
        /* @var \Bitrix\Landing\Internals\RepoTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\RepoTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Repo_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \string[] getAppCodeList()
     * @method \string[] fillAppCode()
     * @method \string[] getActiveList()
     * @method \string[] fillActive()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getSectionsList()
     * @method \string[] fillSections()
     * @method \string[] getSiteTemplateIdList()
     * @method \string[] fillSiteTemplateId()
     * @method \string[] getPreviewList()
     * @method \string[] fillPreview()
     * @method \string[] getManifestList()
     * @method \string[] fillManifest()
     * @method \string[] getContentList()
     * @method \string[] fillContent()
     * @method \int[] getCreatedByIdList()
     * @method \int[] fillCreatedById()
     * @method \int[] getModifiedByIdList()
     * @method \int[] fillModifiedById()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateModifyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_Repo $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_Repo $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Repo getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Repo[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_Repo $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_Repo_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_Repo current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Repo_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\RepoTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\RepoTable';
    }
    /**
     * @method static EO_Repo_Query query()
     * @method static EO_Repo_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Repo_Result getById($id)
     * @method static EO_Repo_Result getList(array $parameters = array())
     * @method static EO_Repo_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_Repo createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_Repo_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_Repo wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_Repo_Collection wakeUpCollection($rows)
     */
    class RepoTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Repo_Result exec()
     * @method \Bitrix\Landing\Internals\EO_Repo fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Repo_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Repo_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Repo fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Repo_Collection fetchCollection()
     */
    class EO_Repo_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Repo createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_Repo_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_Repo wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_Repo_Collection wakeUpCollection($rows)
     */
    class EO_Repo_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Rights
     * @see \Bitrix\Landing\Internals\RightsTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_Rights setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getEntityId()
     * @method \Bitrix\Landing\Internals\EO_Rights setEntityId(\int|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \int remindActualEntityId()
     * @method \int requireEntityId()
     * @method \Bitrix\Landing\Internals\EO_Rights resetEntityId()
     * @method \Bitrix\Landing\Internals\EO_Rights unsetEntityId()
     * @method \int fillEntityId()
     * @method \string getEntityType()
     * @method \Bitrix\Landing\Internals\EO_Rights setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \string remindActualEntityType()
     * @method \string requireEntityType()
     * @method \Bitrix\Landing\Internals\EO_Rights resetEntityType()
     * @method \Bitrix\Landing\Internals\EO_Rights unsetEntityType()
     * @method \string fillEntityType()
     * @method \int getTaskId()
     * @method \Bitrix\Landing\Internals\EO_Rights setTaskId(\int|\Bitrix\Main\DB\SqlExpression $taskId)
     * @method bool hasTaskId()
     * @method bool isTaskIdFilled()
     * @method bool isTaskIdChanged()
     * @method \int remindActualTaskId()
     * @method \int requireTaskId()
     * @method \Bitrix\Landing\Internals\EO_Rights resetTaskId()
     * @method \Bitrix\Landing\Internals\EO_Rights unsetTaskId()
     * @method \int fillTaskId()
     * @method \string getAccessCode()
     * @method \Bitrix\Landing\Internals\EO_Rights setAccessCode(\string|\Bitrix\Main\DB\SqlExpression $accessCode)
     * @method bool hasAccessCode()
     * @method bool isAccessCodeFilled()
     * @method bool isAccessCodeChanged()
     * @method \string remindActualAccessCode()
     * @method \string requireAccessCode()
     * @method \Bitrix\Landing\Internals\EO_Rights resetAccessCode()
     * @method \Bitrix\Landing\Internals\EO_Rights unsetAccessCode()
     * @method \string fillAccessCode()
     * @method \int getRoleId()
     * @method \Bitrix\Landing\Internals\EO_Rights setRoleId(\int|\Bitrix\Main\DB\SqlExpression $roleId)
     * @method bool hasRoleId()
     * @method bool isRoleIdFilled()
     * @method bool isRoleIdChanged()
     * @method \int remindActualRoleId()
     * @method \int requireRoleId()
     * @method \Bitrix\Landing\Internals\EO_Rights resetRoleId()
     * @method \Bitrix\Landing\Internals\EO_Rights unsetRoleId()
     * @method \int fillRoleId()
     * @method \Bitrix\Landing\Internals\EO_Role getRole()
     * @method \Bitrix\Landing\Internals\EO_Role remindActualRole()
     * @method \Bitrix\Landing\Internals\EO_Role requireRole()
     * @method \Bitrix\Landing\Internals\EO_Rights setRole(\Bitrix\Landing\Internals\EO_Role $object)
     * @method \Bitrix\Landing\Internals\EO_Rights resetRole()
     * @method \Bitrix\Landing\Internals\EO_Rights unsetRole()
     * @method bool hasRole()
     * @method bool isRoleFilled()
     * @method bool isRoleChanged()
     * @method \Bitrix\Landing\Internals\EO_Role fillRole()
     * @method \Bitrix\Main\EO_UserAccess getUserAccess()
     * @method \Bitrix\Main\EO_UserAccess remindActualUserAccess()
     * @method \Bitrix\Main\EO_UserAccess requireUserAccess()
     * @method \Bitrix\Landing\Internals\EO_Rights setUserAccess(\Bitrix\Main\EO_UserAccess $object)
     * @method \Bitrix\Landing\Internals\EO_Rights resetUserAccess()
     * @method \Bitrix\Landing\Internals\EO_Rights unsetUserAccess()
     * @method bool hasUserAccess()
     * @method bool isUserAccessFilled()
     * @method bool isUserAccessChanged()
     * @method \Bitrix\Main\EO_UserAccess fillUserAccess()
     * @method \Bitrix\Main\EO_TaskOperation getTaskOperation()
     * @method \Bitrix\Main\EO_TaskOperation remindActualTaskOperation()
     * @method \Bitrix\Main\EO_TaskOperation requireTaskOperation()
     * @method \Bitrix\Landing\Internals\EO_Rights setTaskOperation(\Bitrix\Main\EO_TaskOperation $object)
     * @method \Bitrix\Landing\Internals\EO_Rights resetTaskOperation()
     * @method \Bitrix\Landing\Internals\EO_Rights unsetTaskOperation()
     * @method bool hasTaskOperation()
     * @method bool isTaskOperationFilled()
     * @method bool isTaskOperationChanged()
     * @method \Bitrix\Main\EO_TaskOperation fillTaskOperation()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Rights set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_Rights reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Rights unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_Rights wakeUp($data)
     */
    class EO_Rights
    {
        /* @var \Bitrix\Landing\Internals\RightsTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\RightsTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Rights_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getEntityIdList()
     * @method \int[] fillEntityId()
     * @method \string[] getEntityTypeList()
     * @method \string[] fillEntityType()
     * @method \int[] getTaskIdList()
     * @method \int[] fillTaskId()
     * @method \string[] getAccessCodeList()
     * @method \string[] fillAccessCode()
     * @method \int[] getRoleIdList()
     * @method \int[] fillRoleId()
     * @method \Bitrix\Landing\Internals\EO_Role[] getRoleList()
     * @method \Bitrix\Landing\Internals\EO_Rights_Collection getRoleCollection()
     * @method \Bitrix\Landing\Internals\EO_Role_Collection fillRole()
     * @method \Bitrix\Main\EO_UserAccess[] getUserAccessList()
     * @method \Bitrix\Landing\Internals\EO_Rights_Collection getUserAccessCollection()
     * @method \Bitrix\Main\EO_UserAccess_Collection fillUserAccess()
     * @method \Bitrix\Main\EO_TaskOperation[] getTaskOperationList()
     * @method \Bitrix\Landing\Internals\EO_Rights_Collection getTaskOperationCollection()
     * @method \Bitrix\Main\EO_TaskOperation_Collection fillTaskOperation()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_Rights $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_Rights $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Rights getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Rights[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_Rights $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_Rights_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_Rights current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Rights_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\RightsTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\RightsTable';
    }
    /**
     * @method static EO_Rights_Query query()
     * @method static EO_Rights_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Rights_Result getById($id)
     * @method static EO_Rights_Result getList(array $parameters = array())
     * @method static EO_Rights_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_Rights createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_Rights_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_Rights wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_Rights_Collection wakeUpCollection($rows)
     */
    class RightsTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Rights_Result exec()
     * @method \Bitrix\Landing\Internals\EO_Rights fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Rights_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Rights_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Rights fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Rights_Collection fetchCollection()
     */
    class EO_Rights_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Rights createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_Rights_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_Rights wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_Rights_Collection wakeUpCollection($rows)
     */
    class EO_Rights_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Role
     * @see \Bitrix\Landing\Internals\RoleTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_Role setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getTitle()
     * @method \Bitrix\Landing\Internals\EO_Role setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Landing\Internals\EO_Role resetTitle()
     * @method \Bitrix\Landing\Internals\EO_Role unsetTitle()
     * @method \string fillTitle()
     * @method \string getXmlId()
     * @method \Bitrix\Landing\Internals\EO_Role setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Landing\Internals\EO_Role resetXmlId()
     * @method \Bitrix\Landing\Internals\EO_Role unsetXmlId()
     * @method \string fillXmlId()
     * @method \string getType()
     * @method \Bitrix\Landing\Internals\EO_Role setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\Landing\Internals\EO_Role resetType()
     * @method \Bitrix\Landing\Internals\EO_Role unsetType()
     * @method \string fillType()
     * @method \string getAccessCodes()
     * @method \Bitrix\Landing\Internals\EO_Role setAccessCodes(\string|\Bitrix\Main\DB\SqlExpression $accessCodes)
     * @method bool hasAccessCodes()
     * @method bool isAccessCodesFilled()
     * @method bool isAccessCodesChanged()
     * @method \string remindActualAccessCodes()
     * @method \string requireAccessCodes()
     * @method \Bitrix\Landing\Internals\EO_Role resetAccessCodes()
     * @method \Bitrix\Landing\Internals\EO_Role unsetAccessCodes()
     * @method \string fillAccessCodes()
     * @method \string getAdditionalRights()
     * @method \Bitrix\Landing\Internals\EO_Role setAdditionalRights(\string|\Bitrix\Main\DB\SqlExpression $additionalRights)
     * @method bool hasAdditionalRights()
     * @method bool isAdditionalRightsFilled()
     * @method bool isAdditionalRightsChanged()
     * @method \string remindActualAdditionalRights()
     * @method \string requireAdditionalRights()
     * @method \Bitrix\Landing\Internals\EO_Role resetAdditionalRights()
     * @method \Bitrix\Landing\Internals\EO_Role unsetAdditionalRights()
     * @method \string fillAdditionalRights()
     * @method \int getCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Role setCreatedById(\int|\Bitrix\Main\DB\SqlExpression $createdById)
     * @method bool hasCreatedById()
     * @method bool isCreatedByIdFilled()
     * @method bool isCreatedByIdChanged()
     * @method \int remindActualCreatedById()
     * @method \int requireCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Role resetCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Role unsetCreatedById()
     * @method \int fillCreatedById()
     * @method \Bitrix\Main\EO_User getCreatedBy()
     * @method \Bitrix\Main\EO_User remindActualCreatedBy()
     * @method \Bitrix\Main\EO_User requireCreatedBy()
     * @method \Bitrix\Landing\Internals\EO_Role setCreatedBy(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Landing\Internals\EO_Role resetCreatedBy()
     * @method \Bitrix\Landing\Internals\EO_Role unsetCreatedBy()
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \Bitrix\Main\EO_User fillCreatedBy()
     * @method \int getModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Role setModifiedById(\int|\Bitrix\Main\DB\SqlExpression $modifiedById)
     * @method bool hasModifiedById()
     * @method bool isModifiedByIdFilled()
     * @method bool isModifiedByIdChanged()
     * @method \int remindActualModifiedById()
     * @method \int requireModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Role resetModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Role unsetModifiedById()
     * @method \int fillModifiedById()
     * @method \Bitrix\Main\EO_User getModifiedBy()
     * @method \Bitrix\Main\EO_User remindActualModifiedBy()
     * @method \Bitrix\Main\EO_User requireModifiedBy()
     * @method \Bitrix\Landing\Internals\EO_Role setModifiedBy(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Landing\Internals\EO_Role resetModifiedBy()
     * @method \Bitrix\Landing\Internals\EO_Role unsetModifiedBy()
     * @method bool hasModifiedBy()
     * @method bool isModifiedByFilled()
     * @method bool isModifiedByChanged()
     * @method \Bitrix\Main\EO_User fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Role setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Role resetDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Role unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateModify()
     * @method \Bitrix\Landing\Internals\EO_Role setDateModify(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateModify)
     * @method bool hasDateModify()
     * @method bool isDateModifyFilled()
     * @method bool isDateModifyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateModify()
     * @method \Bitrix\Main\Type\DateTime requireDateModify()
     * @method \Bitrix\Landing\Internals\EO_Role resetDateModify()
     * @method \Bitrix\Landing\Internals\EO_Role unsetDateModify()
     * @method \Bitrix\Main\Type\DateTime fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Role set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_Role reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Role unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_Role wakeUp($data)
     */
    class EO_Role
    {
        /* @var \Bitrix\Landing\Internals\RoleTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\RoleTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Role_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \string[] getAccessCodesList()
     * @method \string[] fillAccessCodes()
     * @method \string[] getAdditionalRightsList()
     * @method \string[] fillAdditionalRights()
     * @method \int[] getCreatedByIdList()
     * @method \int[] fillCreatedById()
     * @method \Bitrix\Main\EO_User[] getCreatedByList()
     * @method \Bitrix\Landing\Internals\EO_Role_Collection getCreatedByCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCreatedBy()
     * @method \int[] getModifiedByIdList()
     * @method \int[] fillModifiedById()
     * @method \Bitrix\Main\EO_User[] getModifiedByList()
     * @method \Bitrix\Landing\Internals\EO_Role_Collection getModifiedByCollection()
     * @method \Bitrix\Main\EO_User_Collection fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateModifyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_Role $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_Role $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Role getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Role[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_Role $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_Role_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_Role current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Role_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\RoleTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\RoleTable';
    }
    /**
     * @method static EO_Role_Query query()
     * @method static EO_Role_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Role_Result getById($id)
     * @method static EO_Role_Result getList(array $parameters = array())
     * @method static EO_Role_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_Role createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_Role_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_Role wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_Role_Collection wakeUpCollection($rows)
     */
    class RoleTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Role_Result exec()
     * @method \Bitrix\Landing\Internals\EO_Role fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Role_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Role_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Role fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Role_Collection fetchCollection()
     */
    class EO_Role_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Role createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_Role_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_Role wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_Role_Collection wakeUpCollection($rows)
     */
    class EO_Role_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Site
     * @see \Bitrix\Landing\Internals\SiteTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_Site setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getCode()
     * @method \Bitrix\Landing\Internals\EO_Site setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Landing\Internals\EO_Site resetCode()
     * @method \Bitrix\Landing\Internals\EO_Site unsetCode()
     * @method \string fillCode()
     * @method \string getActive()
     * @method \Bitrix\Landing\Internals\EO_Site setActive(\string|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \string remindActualActive()
     * @method \string requireActive()
     * @method \Bitrix\Landing\Internals\EO_Site resetActive()
     * @method \Bitrix\Landing\Internals\EO_Site unsetActive()
     * @method \string fillActive()
     * @method \string getDeleted()
     * @method \Bitrix\Landing\Internals\EO_Site setDeleted(\string|\Bitrix\Main\DB\SqlExpression $deleted)
     * @method bool hasDeleted()
     * @method bool isDeletedFilled()
     * @method bool isDeletedChanged()
     * @method \string remindActualDeleted()
     * @method \string requireDeleted()
     * @method \Bitrix\Landing\Internals\EO_Site resetDeleted()
     * @method \Bitrix\Landing\Internals\EO_Site unsetDeleted()
     * @method \string fillDeleted()
     * @method \string getTitle()
     * @method \Bitrix\Landing\Internals\EO_Site setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Landing\Internals\EO_Site resetTitle()
     * @method \Bitrix\Landing\Internals\EO_Site unsetTitle()
     * @method \string fillTitle()
     * @method \string getXmlId()
     * @method \Bitrix\Landing\Internals\EO_Site setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Landing\Internals\EO_Site resetXmlId()
     * @method \Bitrix\Landing\Internals\EO_Site unsetXmlId()
     * @method \string fillXmlId()
     * @method \string getDescription()
     * @method \Bitrix\Landing\Internals\EO_Site setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Landing\Internals\EO_Site resetDescription()
     * @method \Bitrix\Landing\Internals\EO_Site unsetDescription()
     * @method \string fillDescription()
     * @method \string getType()
     * @method \Bitrix\Landing\Internals\EO_Site setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\Landing\Internals\EO_Site resetType()
     * @method \Bitrix\Landing\Internals\EO_Site unsetType()
     * @method \string fillType()
     * @method \int getTplId()
     * @method \Bitrix\Landing\Internals\EO_Site setTplId(\int|\Bitrix\Main\DB\SqlExpression $tplId)
     * @method bool hasTplId()
     * @method bool isTplIdFilled()
     * @method bool isTplIdChanged()
     * @method \int remindActualTplId()
     * @method \int requireTplId()
     * @method \Bitrix\Landing\Internals\EO_Site resetTplId()
     * @method \Bitrix\Landing\Internals\EO_Site unsetTplId()
     * @method \int fillTplId()
     * @method \string getTplCode()
     * @method \Bitrix\Landing\Internals\EO_Site setTplCode(\string|\Bitrix\Main\DB\SqlExpression $tplCode)
     * @method bool hasTplCode()
     * @method bool isTplCodeFilled()
     * @method bool isTplCodeChanged()
     * @method \string remindActualTplCode()
     * @method \string requireTplCode()
     * @method \Bitrix\Landing\Internals\EO_Site resetTplCode()
     * @method \Bitrix\Landing\Internals\EO_Site unsetTplCode()
     * @method \string fillTplCode()
     * @method \int getDomainId()
     * @method \Bitrix\Landing\Internals\EO_Site setDomainId(\int|\Bitrix\Main\DB\SqlExpression $domainId)
     * @method bool hasDomainId()
     * @method bool isDomainIdFilled()
     * @method bool isDomainIdChanged()
     * @method \int remindActualDomainId()
     * @method \int requireDomainId()
     * @method \Bitrix\Landing\Internals\EO_Site resetDomainId()
     * @method \Bitrix\Landing\Internals\EO_Site unsetDomainId()
     * @method \int fillDomainId()
     * @method \Bitrix\Landing\Internals\EO_Domain getDomain()
     * @method \Bitrix\Landing\Internals\EO_Domain remindActualDomain()
     * @method \Bitrix\Landing\Internals\EO_Domain requireDomain()
     * @method \Bitrix\Landing\Internals\EO_Site setDomain(\Bitrix\Landing\Internals\EO_Domain $object)
     * @method \Bitrix\Landing\Internals\EO_Site resetDomain()
     * @method \Bitrix\Landing\Internals\EO_Site unsetDomain()
     * @method bool hasDomain()
     * @method bool isDomainFilled()
     * @method bool isDomainChanged()
     * @method \Bitrix\Landing\Internals\EO_Domain fillDomain()
     * @method \string getSmnSiteId()
     * @method \Bitrix\Landing\Internals\EO_Site setSmnSiteId(\string|\Bitrix\Main\DB\SqlExpression $smnSiteId)
     * @method bool hasSmnSiteId()
     * @method bool isSmnSiteIdFilled()
     * @method bool isSmnSiteIdChanged()
     * @method \string remindActualSmnSiteId()
     * @method \string requireSmnSiteId()
     * @method \Bitrix\Landing\Internals\EO_Site resetSmnSiteId()
     * @method \Bitrix\Landing\Internals\EO_Site unsetSmnSiteId()
     * @method \string fillSmnSiteId()
     * @method \int getLandingIdIndex()
     * @method \Bitrix\Landing\Internals\EO_Site setLandingIdIndex(\int|\Bitrix\Main\DB\SqlExpression $landingIdIndex)
     * @method bool hasLandingIdIndex()
     * @method bool isLandingIdIndexFilled()
     * @method bool isLandingIdIndexChanged()
     * @method \int remindActualLandingIdIndex()
     * @method \int requireLandingIdIndex()
     * @method \Bitrix\Landing\Internals\EO_Site resetLandingIdIndex()
     * @method \Bitrix\Landing\Internals\EO_Site unsetLandingIdIndex()
     * @method \int fillLandingIdIndex()
     * @method \int getLandingId404()
     * @method \Bitrix\Landing\Internals\EO_Site setLandingId404(\int|\Bitrix\Main\DB\SqlExpression $landingId404)
     * @method bool hasLandingId404()
     * @method bool isLandingId404Filled()
     * @method bool isLandingId404Changed()
     * @method \int remindActualLandingId404()
     * @method \int requireLandingId404()
     * @method \Bitrix\Landing\Internals\EO_Site resetLandingId404()
     * @method \Bitrix\Landing\Internals\EO_Site unsetLandingId404()
     * @method \int fillLandingId404()
     * @method \int getLandingId503()
     * @method \Bitrix\Landing\Internals\EO_Site setLandingId503(\int|\Bitrix\Main\DB\SqlExpression $landingId503)
     * @method bool hasLandingId503()
     * @method bool isLandingId503Filled()
     * @method bool isLandingId503Changed()
     * @method \int remindActualLandingId503()
     * @method \int requireLandingId503()
     * @method \Bitrix\Landing\Internals\EO_Site resetLandingId503()
     * @method \Bitrix\Landing\Internals\EO_Site unsetLandingId503()
     * @method \int fillLandingId503()
     * @method \int getLang()
     * @method \Bitrix\Landing\Internals\EO_Site setLang(\int|\Bitrix\Main\DB\SqlExpression $lang)
     * @method bool hasLang()
     * @method bool isLangFilled()
     * @method bool isLangChanged()
     * @method \int remindActualLang()
     * @method \int requireLang()
     * @method \Bitrix\Landing\Internals\EO_Site resetLang()
     * @method \Bitrix\Landing\Internals\EO_Site unsetLang()
     * @method \int fillLang()
     * @method \string getSpecial()
     * @method \Bitrix\Landing\Internals\EO_Site setSpecial(\string|\Bitrix\Main\DB\SqlExpression $special)
     * @method bool hasSpecial()
     * @method bool isSpecialFilled()
     * @method bool isSpecialChanged()
     * @method \string remindActualSpecial()
     * @method \string requireSpecial()
     * @method \Bitrix\Landing\Internals\EO_Site resetSpecial()
     * @method \Bitrix\Landing\Internals\EO_Site unsetSpecial()
     * @method \string fillSpecial()
     * @method \int getCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Site setCreatedById(\int|\Bitrix\Main\DB\SqlExpression $createdById)
     * @method bool hasCreatedById()
     * @method bool isCreatedByIdFilled()
     * @method bool isCreatedByIdChanged()
     * @method \int remindActualCreatedById()
     * @method \int requireCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Site resetCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Site unsetCreatedById()
     * @method \int fillCreatedById()
     * @method \Bitrix\Main\EO_User getCreatedBy()
     * @method \Bitrix\Main\EO_User remindActualCreatedBy()
     * @method \Bitrix\Main\EO_User requireCreatedBy()
     * @method \Bitrix\Landing\Internals\EO_Site setCreatedBy(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Landing\Internals\EO_Site resetCreatedBy()
     * @method \Bitrix\Landing\Internals\EO_Site unsetCreatedBy()
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \Bitrix\Main\EO_User fillCreatedBy()
     * @method \int getModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Site setModifiedById(\int|\Bitrix\Main\DB\SqlExpression $modifiedById)
     * @method bool hasModifiedById()
     * @method bool isModifiedByIdFilled()
     * @method bool isModifiedByIdChanged()
     * @method \int remindActualModifiedById()
     * @method \int requireModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Site resetModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Site unsetModifiedById()
     * @method \int fillModifiedById()
     * @method \Bitrix\Main\EO_User getModifiedBy()
     * @method \Bitrix\Main\EO_User remindActualModifiedBy()
     * @method \Bitrix\Main\EO_User requireModifiedBy()
     * @method \Bitrix\Landing\Internals\EO_Site setModifiedBy(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Landing\Internals\EO_Site resetModifiedBy()
     * @method \Bitrix\Landing\Internals\EO_Site unsetModifiedBy()
     * @method bool hasModifiedBy()
     * @method bool isModifiedByFilled()
     * @method bool isModifiedByChanged()
     * @method \Bitrix\Main\EO_User fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Site setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Site resetDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Site unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateModify()
     * @method \Bitrix\Landing\Internals\EO_Site setDateModify(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateModify)
     * @method bool hasDateModify()
     * @method bool isDateModifyFilled()
     * @method bool isDateModifyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateModify()
     * @method \Bitrix\Main\Type\DateTime requireDateModify()
     * @method \Bitrix\Landing\Internals\EO_Site resetDateModify()
     * @method \Bitrix\Landing\Internals\EO_Site unsetDateModify()
     * @method \Bitrix\Main\Type\DateTime fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Site set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_Site reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Site unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_Site wakeUp($data)
     */
    class EO_Site
    {
        /* @var \Bitrix\Landing\Internals\SiteTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\SiteTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Site_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \string[] getActiveList()
     * @method \string[] fillActive()
     * @method \string[] getDeletedList()
     * @method \string[] fillDeleted()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \int[] getTplIdList()
     * @method \int[] fillTplId()
     * @method \string[] getTplCodeList()
     * @method \string[] fillTplCode()
     * @method \int[] getDomainIdList()
     * @method \int[] fillDomainId()
     * @method \Bitrix\Landing\Internals\EO_Domain[] getDomainList()
     * @method \Bitrix\Landing\Internals\EO_Site_Collection getDomainCollection()
     * @method \Bitrix\Landing\Internals\EO_Domain_Collection fillDomain()
     * @method \string[] getSmnSiteIdList()
     * @method \string[] fillSmnSiteId()
     * @method \int[] getLandingIdIndexList()
     * @method \int[] fillLandingIdIndex()
     * @method \int[] getLandingId404List()
     * @method \int[] fillLandingId404()
     * @method \int[] getLandingId503List()
     * @method \int[] fillLandingId503()
     * @method \int[] getLangList()
     * @method \int[] fillLang()
     * @method \string[] getSpecialList()
     * @method \string[] fillSpecial()
     * @method \int[] getCreatedByIdList()
     * @method \int[] fillCreatedById()
     * @method \Bitrix\Main\EO_User[] getCreatedByList()
     * @method \Bitrix\Landing\Internals\EO_Site_Collection getCreatedByCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCreatedBy()
     * @method \int[] getModifiedByIdList()
     * @method \int[] fillModifiedById()
     * @method \Bitrix\Main\EO_User[] getModifiedByList()
     * @method \Bitrix\Landing\Internals\EO_Site_Collection getModifiedByCollection()
     * @method \Bitrix\Main\EO_User_Collection fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateModifyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_Site $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_Site $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Site getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Site[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_Site $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_Site_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_Site current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Site_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\SiteTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\SiteTable';
    }
    /**
     * @method static EO_Site_Query query()
     * @method static EO_Site_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Site_Result getById($id)
     * @method static EO_Site_Result getList(array $parameters = array())
     * @method static EO_Site_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_Site createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_Site_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_Site wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_Site_Collection wakeUpCollection($rows)
     */
    class SiteTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Site_Result exec()
     * @method \Bitrix\Landing\Internals\EO_Site fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Site_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Site_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Site fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Site_Collection fetchCollection()
     */
    class EO_Site_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Site createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_Site_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_Site wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_Site_Collection wakeUpCollection($rows)
     */
    class EO_Site_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Syspage
     * @see \Bitrix\Landing\Internals\SyspageTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_Syspage setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getSiteId()
     * @method \Bitrix\Landing\Internals\EO_Syspage setSiteId(\int|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \int remindActualSiteId()
     * @method \int requireSiteId()
     * @method \Bitrix\Landing\Internals\EO_Syspage resetSiteId()
     * @method \Bitrix\Landing\Internals\EO_Syspage unsetSiteId()
     * @method \int fillSiteId()
     * @method \string getType()
     * @method \Bitrix\Landing\Internals\EO_Syspage setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\Landing\Internals\EO_Syspage resetType()
     * @method \Bitrix\Landing\Internals\EO_Syspage unsetType()
     * @method \string fillType()
     * @method \int getLandingId()
     * @method \Bitrix\Landing\Internals\EO_Syspage setLandingId(\int|\Bitrix\Main\DB\SqlExpression $landingId)
     * @method bool hasLandingId()
     * @method bool isLandingIdFilled()
     * @method bool isLandingIdChanged()
     * @method \int remindActualLandingId()
     * @method \int requireLandingId()
     * @method \Bitrix\Landing\Internals\EO_Syspage resetLandingId()
     * @method \Bitrix\Landing\Internals\EO_Syspage unsetLandingId()
     * @method \int fillLandingId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Syspage set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_Syspage reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Syspage unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_Syspage wakeUp($data)
     */
    class EO_Syspage
    {
        /* @var \Bitrix\Landing\Internals\SyspageTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\SyspageTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Syspage_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getSiteIdList()
     * @method \int[] fillSiteId()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \int[] getLandingIdList()
     * @method \int[] fillLandingId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_Syspage $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_Syspage $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Syspage getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Syspage[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_Syspage $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_Syspage_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_Syspage current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Syspage_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\SyspageTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\SyspageTable';
    }
    /**
     * @method static EO_Syspage_Query query()
     * @method static EO_Syspage_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Syspage_Result getById($id)
     * @method static EO_Syspage_Result getList(array $parameters = array())
     * @method static EO_Syspage_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_Syspage createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_Syspage_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_Syspage wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_Syspage_Collection wakeUpCollection($rows)
     */
    class SyspageTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Syspage_Result exec()
     * @method \Bitrix\Landing\Internals\EO_Syspage fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Syspage_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Syspage_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Syspage fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Syspage_Collection fetchCollection()
     */
    class EO_Syspage_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Syspage createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_Syspage_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_Syspage wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_Syspage_Collection wakeUpCollection($rows)
     */
    class EO_Syspage_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Template
     * @see \Bitrix\Landing\Internals\TemplateTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_Template setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getActive()
     * @method \Bitrix\Landing\Internals\EO_Template setActive(\string|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \string remindActualActive()
     * @method \string requireActive()
     * @method \Bitrix\Landing\Internals\EO_Template resetActive()
     * @method \Bitrix\Landing\Internals\EO_Template unsetActive()
     * @method \string fillActive()
     * @method \string getTitle()
     * @method \Bitrix\Landing\Internals\EO_Template setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Landing\Internals\EO_Template resetTitle()
     * @method \Bitrix\Landing\Internals\EO_Template unsetTitle()
     * @method \string fillTitle()
     * @method \int getSort()
     * @method \Bitrix\Landing\Internals\EO_Template setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Landing\Internals\EO_Template resetSort()
     * @method \Bitrix\Landing\Internals\EO_Template unsetSort()
     * @method \int fillSort()
     * @method \string getXmlId()
     * @method \Bitrix\Landing\Internals\EO_Template setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Landing\Internals\EO_Template resetXmlId()
     * @method \Bitrix\Landing\Internals\EO_Template unsetXmlId()
     * @method \string fillXmlId()
     * @method \string getContent()
     * @method \Bitrix\Landing\Internals\EO_Template setContent(\string|\Bitrix\Main\DB\SqlExpression $content)
     * @method bool hasContent()
     * @method bool isContentFilled()
     * @method bool isContentChanged()
     * @method \string remindActualContent()
     * @method \string requireContent()
     * @method \Bitrix\Landing\Internals\EO_Template resetContent()
     * @method \Bitrix\Landing\Internals\EO_Template unsetContent()
     * @method \string fillContent()
     * @method \int getAreaCount()
     * @method \Bitrix\Landing\Internals\EO_Template setAreaCount(\int|\Bitrix\Main\DB\SqlExpression $areaCount)
     * @method bool hasAreaCount()
     * @method bool isAreaCountFilled()
     * @method bool isAreaCountChanged()
     * @method \int remindActualAreaCount()
     * @method \int requireAreaCount()
     * @method \Bitrix\Landing\Internals\EO_Template resetAreaCount()
     * @method \Bitrix\Landing\Internals\EO_Template unsetAreaCount()
     * @method \int fillAreaCount()
     * @method \int getCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Template setCreatedById(\int|\Bitrix\Main\DB\SqlExpression $createdById)
     * @method bool hasCreatedById()
     * @method bool isCreatedByIdFilled()
     * @method bool isCreatedByIdChanged()
     * @method \int remindActualCreatedById()
     * @method \int requireCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Template resetCreatedById()
     * @method \Bitrix\Landing\Internals\EO_Template unsetCreatedById()
     * @method \int fillCreatedById()
     * @method \Bitrix\Main\EO_User getCreatedBy()
     * @method \Bitrix\Main\EO_User remindActualCreatedBy()
     * @method \Bitrix\Main\EO_User requireCreatedBy()
     * @method \Bitrix\Landing\Internals\EO_Template setCreatedBy(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Landing\Internals\EO_Template resetCreatedBy()
     * @method \Bitrix\Landing\Internals\EO_Template unsetCreatedBy()
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \Bitrix\Main\EO_User fillCreatedBy()
     * @method \int getModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Template setModifiedById(\int|\Bitrix\Main\DB\SqlExpression $modifiedById)
     * @method bool hasModifiedById()
     * @method bool isModifiedByIdFilled()
     * @method bool isModifiedByIdChanged()
     * @method \int remindActualModifiedById()
     * @method \int requireModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Template resetModifiedById()
     * @method \Bitrix\Landing\Internals\EO_Template unsetModifiedById()
     * @method \int fillModifiedById()
     * @method \Bitrix\Main\EO_User getModifiedBy()
     * @method \Bitrix\Main\EO_User remindActualModifiedBy()
     * @method \Bitrix\Main\EO_User requireModifiedBy()
     * @method \Bitrix\Landing\Internals\EO_Template setModifiedBy(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Landing\Internals\EO_Template resetModifiedBy()
     * @method \Bitrix\Landing\Internals\EO_Template unsetModifiedBy()
     * @method bool hasModifiedBy()
     * @method bool isModifiedByFilled()
     * @method bool isModifiedByChanged()
     * @method \Bitrix\Main\EO_User fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Template setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Template resetDateCreate()
     * @method \Bitrix\Landing\Internals\EO_Template unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateModify()
     * @method \Bitrix\Landing\Internals\EO_Template setDateModify(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateModify)
     * @method bool hasDateModify()
     * @method bool isDateModifyFilled()
     * @method bool isDateModifyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateModify()
     * @method \Bitrix\Main\Type\DateTime requireDateModify()
     * @method \Bitrix\Landing\Internals\EO_Template resetDateModify()
     * @method \Bitrix\Landing\Internals\EO_Template unsetDateModify()
     * @method \Bitrix\Main\Type\DateTime fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Template set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_Template reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_Template unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_Template wakeUp($data)
     */
    class EO_Template
    {
        /* @var \Bitrix\Landing\Internals\TemplateTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\TemplateTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Template_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getActiveList()
     * @method \string[] fillActive()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \string[] getContentList()
     * @method \string[] fillContent()
     * @method \int[] getAreaCountList()
     * @method \int[] fillAreaCount()
     * @method \int[] getCreatedByIdList()
     * @method \int[] fillCreatedById()
     * @method \Bitrix\Main\EO_User[] getCreatedByList()
     * @method \Bitrix\Landing\Internals\EO_Template_Collection getCreatedByCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCreatedBy()
     * @method \int[] getModifiedByIdList()
     * @method \int[] fillModifiedById()
     * @method \Bitrix\Main\EO_User[] getModifiedByList()
     * @method \Bitrix\Landing\Internals\EO_Template_Collection getModifiedByCollection()
     * @method \Bitrix\Main\EO_User_Collection fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateModifyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_Template $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_Template $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Template getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_Template[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_Template $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_Template_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_Template current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Template_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\TemplateTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\TemplateTable';
    }
    /**
     * @method static EO_Template_Query query()
     * @method static EO_Template_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Template_Result getById($id)
     * @method static EO_Template_Result getList(array $parameters = array())
     * @method static EO_Template_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_Template createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_Template_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_Template wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_Template_Collection wakeUpCollection($rows)
     */
    class TemplateTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Template_Result exec()
     * @method \Bitrix\Landing\Internals\EO_Template fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Template_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Template_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Template fetchObject()
     * @method \Bitrix\Landing\Internals\EO_Template_Collection fetchCollection()
     */
    class EO_Template_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_Template createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_Template_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_Template wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_Template_Collection wakeUpCollection($rows)
     */
    class EO_Template_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_TemplateRef
     * @see \Bitrix\Landing\Internals\TemplateRefTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getEntityId()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef setEntityId(\int|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \int remindActualEntityId()
     * @method \int requireEntityId()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef resetEntityId()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef unsetEntityId()
     * @method \int fillEntityId()
     * @method \string getEntityType()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \string remindActualEntityType()
     * @method \string requireEntityType()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef resetEntityType()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef unsetEntityType()
     * @method \string fillEntityType()
     * @method \int getArea()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef setArea(\int|\Bitrix\Main\DB\SqlExpression $area)
     * @method bool hasArea()
     * @method bool isAreaFilled()
     * @method bool isAreaChanged()
     * @method \int remindActualArea()
     * @method \int requireArea()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef resetArea()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef unsetArea()
     * @method \int fillArea()
     * @method \int getLandingId()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef setLandingId(\int|\Bitrix\Main\DB\SqlExpression $landingId)
     * @method bool hasLandingId()
     * @method bool isLandingIdFilled()
     * @method bool isLandingIdChanged()
     * @method \int remindActualLandingId()
     * @method \int requireLandingId()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef resetLandingId()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef unsetLandingId()
     * @method \int fillLandingId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_TemplateRef set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_TemplateRef reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_TemplateRef unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_TemplateRef wakeUp($data)
     */
    class EO_TemplateRef
    {
        /* @var \Bitrix\Landing\Internals\TemplateRefTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\TemplateRefTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_TemplateRef_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getEntityIdList()
     * @method \int[] fillEntityId()
     * @method \string[] getEntityTypeList()
     * @method \string[] fillEntityType()
     * @method \int[] getAreaList()
     * @method \int[] fillArea()
     * @method \int[] getLandingIdList()
     * @method \int[] fillLandingId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_TemplateRef $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_TemplateRef $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_TemplateRef getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_TemplateRef[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_TemplateRef $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_TemplateRef_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_TemplateRef current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_TemplateRef_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\TemplateRefTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\TemplateRefTable';
    }
    /**
     * @method static EO_TemplateRef_Query query()
     * @method static EO_TemplateRef_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_TemplateRef_Result getById($id)
     * @method static EO_TemplateRef_Result getList(array $parameters = array())
     * @method static EO_TemplateRef_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_TemplateRef createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_TemplateRef_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_TemplateRef wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_TemplateRef_Collection wakeUpCollection($rows)
     */
    class TemplateRefTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_TemplateRef_Result exec()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef fetchObject()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_TemplateRef_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_TemplateRef fetchObject()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef_Collection fetchCollection()
     */
    class EO_TemplateRef_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_TemplateRef createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_TemplateRef_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_TemplateRef wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_TemplateRef_Collection wakeUpCollection($rows)
     */
    class EO_TemplateRef_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UpdateBlock
     * @see \Bitrix\Landing\Internals\UpdateBlockTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getCode()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock resetCode()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock unsetCode()
     * @method \string fillCode()
     * @method \int getLastBlockId()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock setLastBlockId(\int|\Bitrix\Main\DB\SqlExpression $lastBlockId)
     * @method bool hasLastBlockId()
     * @method bool isLastBlockIdFilled()
     * @method bool isLastBlockIdChanged()
     * @method \int remindActualLastBlockId()
     * @method \int requireLastBlockId()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock resetLastBlockId()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock unsetLastBlockId()
     * @method \int fillLastBlockId()
     * @method \string getParams()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock setParams(\string|\Bitrix\Main\DB\SqlExpression $params)
     * @method bool hasParams()
     * @method bool isParamsFilled()
     * @method bool isParamsChanged()
     * @method \string remindActualParams()
     * @method \string requireParams()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock resetParams()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock unsetParams()
     * @method \string fillParams()
     * @method \int getCreatedById()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock setCreatedById(\int|\Bitrix\Main\DB\SqlExpression $createdById)
     * @method bool hasCreatedById()
     * @method bool isCreatedByIdFilled()
     * @method bool isCreatedByIdChanged()
     * @method \int remindActualCreatedById()
     * @method \int requireCreatedById()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock resetCreatedById()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock unsetCreatedById()
     * @method \int fillCreatedById()
     * @method \int getModifiedById()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock setModifiedById(\int|\Bitrix\Main\DB\SqlExpression $modifiedById)
     * @method bool hasModifiedById()
     * @method bool isModifiedByIdFilled()
     * @method bool isModifiedByIdChanged()
     * @method \int remindActualModifiedById()
     * @method \int requireModifiedById()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock resetModifiedById()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock unsetModifiedById()
     * @method \int fillModifiedById()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock resetDateCreate()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateModify()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock setDateModify(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateModify)
     * @method bool hasDateModify()
     * @method bool isDateModifyFilled()
     * @method bool isDateModifyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateModify()
     * @method \Bitrix\Main\Type\DateTime requireDateModify()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock resetDateModify()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock unsetDateModify()
     * @method \Bitrix\Main\Type\DateTime fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_UpdateBlock wakeUp($data)
     */
    class EO_UpdateBlock
    {
        /* @var \Bitrix\Landing\Internals\UpdateBlockTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\UpdateBlockTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UpdateBlock_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \int[] getLastBlockIdList()
     * @method \int[] fillLastBlockId()
     * @method \string[] getParamsList()
     * @method \string[] fillParams()
     * @method \int[] getCreatedByIdList()
     * @method \int[] fillCreatedById()
     * @method \int[] getModifiedByIdList()
     * @method \int[] fillModifiedById()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateModifyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_UpdateBlock $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_UpdateBlock $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_UpdateBlock $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_UpdateBlock_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UpdateBlock_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\UpdateBlockTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\UpdateBlockTable';
    }
    /**
     * @method static EO_UpdateBlock_Query query()
     * @method static EO_UpdateBlock_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UpdateBlock_Result getById($id)
     * @method static EO_UpdateBlock_Result getList(array $parameters = array())
     * @method static EO_UpdateBlock_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_UpdateBlock createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_UpdateBlock_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_UpdateBlock wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_UpdateBlock_Collection wakeUpCollection($rows)
     */
    class UpdateBlockTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UpdateBlock_Result exec()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock fetchObject()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UpdateBlock_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock fetchObject()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock_Collection fetchCollection()
     */
    class EO_UpdateBlock_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_UpdateBlock_Collection wakeUpCollection($rows)
     */
    class EO_UpdateBlock_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UrlRewrite
     * @see \Bitrix\Landing\Internals\UrlRewriteTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getSiteId()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite setSiteId(\int|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \int remindActualSiteId()
     * @method \int requireSiteId()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite resetSiteId()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite unsetSiteId()
     * @method \int fillSiteId()
     * @method \string getRule()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite setRule(\string|\Bitrix\Main\DB\SqlExpression $rule)
     * @method bool hasRule()
     * @method bool isRuleFilled()
     * @method bool isRuleChanged()
     * @method \string remindActualRule()
     * @method \string requireRule()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite resetRule()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite unsetRule()
     * @method \string fillRule()
     * @method \int getLandingId()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite setLandingId(\int|\Bitrix\Main\DB\SqlExpression $landingId)
     * @method bool hasLandingId()
     * @method bool isLandingIdFilled()
     * @method bool isLandingIdChanged()
     * @method \int remindActualLandingId()
     * @method \int requireLandingId()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite resetLandingId()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite unsetLandingId()
     * @method \int fillLandingId()
     * @method \int getCreatedById()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite setCreatedById(\int|\Bitrix\Main\DB\SqlExpression $createdById)
     * @method bool hasCreatedById()
     * @method bool isCreatedByIdFilled()
     * @method bool isCreatedByIdChanged()
     * @method \int remindActualCreatedById()
     * @method \int requireCreatedById()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite resetCreatedById()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite unsetCreatedById()
     * @method \int fillCreatedById()
     * @method \int getModifiedById()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite setModifiedById(\int|\Bitrix\Main\DB\SqlExpression $modifiedById)
     * @method bool hasModifiedById()
     * @method bool isModifiedByIdFilled()
     * @method bool isModifiedByIdChanged()
     * @method \int remindActualModifiedById()
     * @method \int requireModifiedById()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite resetModifiedById()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite unsetModifiedById()
     * @method \int fillModifiedById()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite resetDateCreate()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateModify()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite setDateModify(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateModify)
     * @method bool hasDateModify()
     * @method bool isDateModifyFilled()
     * @method bool isDateModifyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateModify()
     * @method \Bitrix\Main\Type\DateTime requireDateModify()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite resetDateModify()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite unsetDateModify()
     * @method \Bitrix\Main\Type\DateTime fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_UrlRewrite wakeUp($data)
     */
    class EO_UrlRewrite
    {
        /* @var \Bitrix\Landing\Internals\UrlRewriteTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\UrlRewriteTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UrlRewrite_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getSiteIdList()
     * @method \int[] fillSiteId()
     * @method \string[] getRuleList()
     * @method \string[] fillRule()
     * @method \int[] getLandingIdList()
     * @method \int[] fillLandingId()
     * @method \int[] getCreatedByIdList()
     * @method \int[] fillCreatedById()
     * @method \int[] getModifiedByIdList()
     * @method \int[] fillModifiedById()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateModifyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateModify()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_UrlRewrite $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_UrlRewrite $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_UrlRewrite $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_UrlRewrite_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UrlRewrite_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\UrlRewriteTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\UrlRewriteTable';
    }
    /**
     * @method static EO_UrlRewrite_Query query()
     * @method static EO_UrlRewrite_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UrlRewrite_Result getById($id)
     * @method static EO_UrlRewrite_Result getList(array $parameters = array())
     * @method static EO_UrlRewrite_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_UrlRewrite createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_UrlRewrite_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_UrlRewrite wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_UrlRewrite_Collection wakeUpCollection($rows)
     */
    class UrlRewriteTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UrlRewrite_Result exec()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite fetchObject()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UrlRewrite_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite fetchObject()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite_Collection fetchCollection()
     */
    class EO_UrlRewrite_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_UrlRewrite_Collection wakeUpCollection($rows)
     */
    class EO_UrlRewrite_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_View
     * @see \Bitrix\Landing\Internals\ViewTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Landing\Internals\EO_View setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getLid()
     * @method \Bitrix\Landing\Internals\EO_View setLid(\int|\Bitrix\Main\DB\SqlExpression $lid)
     * @method bool hasLid()
     * @method bool isLidFilled()
     * @method bool isLidChanged()
     * @method \int remindActualLid()
     * @method \int requireLid()
     * @method \Bitrix\Landing\Internals\EO_View resetLid()
     * @method \Bitrix\Landing\Internals\EO_View unsetLid()
     * @method \int fillLid()
     * @method \int getUserId()
     * @method \Bitrix\Landing\Internals\EO_View setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Landing\Internals\EO_View resetUserId()
     * @method \Bitrix\Landing\Internals\EO_View unsetUserId()
     * @method \int fillUserId()
     * @method \int getViews()
     * @method \Bitrix\Landing\Internals\EO_View setViews(\int|\Bitrix\Main\DB\SqlExpression $views)
     * @method bool hasViews()
     * @method bool isViewsFilled()
     * @method bool isViewsChanged()
     * @method \int remindActualViews()
     * @method \int requireViews()
     * @method \Bitrix\Landing\Internals\EO_View resetViews()
     * @method \Bitrix\Landing\Internals\EO_View unsetViews()
     * @method \int fillViews()
     * @method \Bitrix\Main\Type\DateTime getFirstView()
     * @method \Bitrix\Landing\Internals\EO_View setFirstView(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $firstView)
     * @method bool hasFirstView()
     * @method bool isFirstViewFilled()
     * @method bool isFirstViewChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualFirstView()
     * @method \Bitrix\Main\Type\DateTime requireFirstView()
     * @method \Bitrix\Landing\Internals\EO_View resetFirstView()
     * @method \Bitrix\Landing\Internals\EO_View unsetFirstView()
     * @method \Bitrix\Main\Type\DateTime fillFirstView()
     * @method \Bitrix\Main\Type\DateTime getLastView()
     * @method \Bitrix\Landing\Internals\EO_View setLastView(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastView)
     * @method bool hasLastView()
     * @method bool isLastViewFilled()
     * @method bool isLastViewChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastView()
     * @method \Bitrix\Main\Type\DateTime requireLastView()
     * @method \Bitrix\Landing\Internals\EO_View resetLastView()
     * @method \Bitrix\Landing\Internals\EO_View unsetLastView()
     * @method \Bitrix\Main\Type\DateTime fillLastView()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Landing\Internals\EO_View set($fieldName, $value)
     * @method \Bitrix\Landing\Internals\EO_View reset($fieldName)
     * @method \Bitrix\Landing\Internals\EO_View unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Landing\Internals\EO_View wakeUp($data)
     */
    class EO_View
    {
        /* @var \Bitrix\Landing\Internals\ViewTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\ViewTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_View_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getLidList()
     * @method \int[] fillLid()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \int[] getViewsList()
     * @method \int[] fillViews()
     * @method \Bitrix\Main\Type\DateTime[] getFirstViewList()
     * @method \Bitrix\Main\Type\DateTime[] fillFirstView()
     * @method \Bitrix\Main\Type\DateTime[] getLastViewList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastView()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Landing\Internals\EO_View $object)
     * @method bool has(\Bitrix\Landing\Internals\EO_View $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_View getByPrimary($primary)
     * @method \Bitrix\Landing\Internals\EO_View[] getAll()
     * @method bool remove(\Bitrix\Landing\Internals\EO_View $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Landing\Internals\EO_View_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Landing\Internals\EO_View current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_View_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Landing\Internals\ViewTable */
        public static $dataClass = '\\Bitrix\\Landing\\Internals\\ViewTable';
    }
    /**
     * @method static EO_View_Query query()
     * @method static EO_View_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_View_Result getById($id)
     * @method static EO_View_Result getList(array $parameters = array())
     * @method static EO_View_Entity getEntity()
     * @method static \Bitrix\Landing\Internals\EO_View createObject($setDefaultValues = true)
     * @method static \Bitrix\Landing\Internals\EO_View_Collection createCollection()
     * @method static \Bitrix\Landing\Internals\EO_View wakeUpObject($row)
     * @method static \Bitrix\Landing\Internals\EO_View_Collection wakeUpCollection($rows)
     */
    class ViewTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_View_Result exec()
     * @method \Bitrix\Landing\Internals\EO_View fetchObject()
     * @method \Bitrix\Landing\Internals\EO_View_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_View_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_View fetchObject()
     * @method \Bitrix\Landing\Internals\EO_View_Collection fetchCollection()
     */
    class EO_View_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Landing\Internals\EO_View createObject($setDefaultValues = true)
     * @method \Bitrix\Landing\Internals\EO_View_Collection createCollection()
     * @method \Bitrix\Landing\Internals\EO_View wakeUpObject($row)
     * @method \Bitrix\Landing\Internals\EO_View_Collection wakeUpCollection($rows)
     */
    class EO_View_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    class BaseTable
    {
        public static $internalClass = null;
        /**
         * Get internal class (must declarated in external class).
         * @return string
         */
        private static function getCallingClass()
        {
        }
        /**
         * Get Map of table.
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Create new record and return it new id.
         * @param array $fields Fields array.
         * @return \Bitrix\Main\ORM\Data\AddResult
         */
        public static function add($fields)
        {
        }
        /**
         * Update record.
         * @param int $id Record key.
         * @param array $fields Fields array.
         * @return \Bitrix\Main\Result
         */
        public static function update($id, $fields = array())
        {
        }
        /**
         * Delete record.
         * @param int $id Record key.
         * @return \Bitrix\Main\Result
         */
        public static function delete($id)
        {
        }
        /**
         * Get records of table.
         * @param array $params Params array like ORM style.
         * @return \Bitrix\Main\DB\Result
         */
        public static function getList($params = array())
        {
        }
        /**
         * Register calllback for internal table.
         * @param string $code Type of callback.
         * @param callable $callback Callback.
         * @return void
         */
        public static function callback($code, $callback)
        {
        }
    }
}
namespace Bitrix\Landing {
    class Domain extends \Bitrix\Landing\Internals\BaseTable
    {
        /**
         * Bitrix24 domains.
         */
        const B24_DOMAINS = ['bitrix24.site', 'bitrix24.shop', 'bitrix24site.by', 'bitrix24shop.by', 'bitrix24site.ua'];
        /**
         * Internal class.
         * @var string
         */
        public static $internalClass = 'DomainTable';
        /**
         * Gets domain name.
         * @return string.
         */
        protected static function getDomainName()
        {
        }
        /**
         * Gets Bitrix24 sub domain name.
         * @param string $domainName Full domain name.
         * @return string Null, if $domainName is't sub domain of B24.
         */
        public static function getBitrix24Subdomain($domainName)
        {
        }
        /**
         * Create current domain and return new id..
         * @return int
         */
        public static function createDefault()
        {
        }
        /**
         * Get current domain id.
         * @return int
         */
        public static function getCurrentId()
        {
        }
        /**
         * Get available protocol list.
         * @return array
         */
        public static function getProtocolList()
        {
        }
        /**
         * Gets current host url.
         * @return string
         */
        public static function getHostUrl()
        {
        }
    }
}
namespace Bitrix\Landing\Note\Source {
    class Parser
    {
        /**
         * Download URL for files in text.
         */
        const ACTION_DOWNLOAD_FILE = '/bitrix/tools/disk/uf.php?attachedId=#attachedId#&amp;action=download&amp;ncc=1';
        /**
         * Returns converted to html bb text.
         * @param string $text Text to convert.
         * @return string
         */
        protected static function convertText(string $text) : string
        {
        }
        /**
         * Returns video data by video src.
         * @param string $videoSrc Video source url.
         * @return array|null
         */
        protected static function getVideoContent(string $videoSrc) : ?array
        {
        }
        /**
         * Returns img content by attache id.
         * @param int|string $attacheId Attache id.
         * @param array $files Files array.
         * @return array|null
         */
        protected static function getImgContent($attacheId, array $files = []) : ?array
        {
        }
        /**
         * Replaces files in text content.
         * @param string $text Content.
         * @param array $files Files array.
         * @return string
         */
        protected static function replaceFilesInContent(string $text, array $files = []) : string
        {
        }
        /**
         * Returns block info from DOM Node.
         * @param DOM\Node $node Node instance.
         * @param array $params Additional params.
         * @return array|null
         */
        protected static function getBlockFromNode(\Bitrix\Main\Web\DOM\Node $node, array $params = []) : ?array
        {
        }
        /**
         * Converts bb text to semantic blocks.
         * @param string $text BB text.
         * @param array $params Additional params.
         * @return array
         */
        public static function textToBlocks(string $text, array $params = []) : array
        {
        }
    }
    abstract class Entity
    {
        /**
         * Length for landing title.
         */
        const TITLE_LENGTH = 30;
        /**
         * Returns Disk files for module entity.
         * @param int $sourceId Source id (post id).
         * @param string $entityType Entity type.
         * @param string $module Module id.
         * @return array
         */
        protected static function getDiskFiles(int $sourceId, string $entityType, string $module) : array
        {
        }
        /**
         * Returns prepared data for landing by entity (post) id.
         * @param int $sourceId Source id.
         * @return array|null
         */
        public static abstract function getData(int $sourceId) : ?array;
    }
    class LiveFeed extends \Bitrix\Landing\Note\Source\Entity
    {
        /**
         * Returns prepared data for landing by entity ('live feed' comment) id.
         * @param int $sourceId Source id.
         * @return array|null
         */
        public static function getData(int $sourceId) : ?array
        {
        }
    }
    class BlogComment extends \Bitrix\Landing\Note\Source\Entity
    {
        /**
         * Returns prepared data for landing by entity (blog comment) id.
         * @param int $sourceId Source id.
         * @return array|null
         */
        public static function getData(int $sourceId) : ?array
        {
        }
    }
    class Blog extends \Bitrix\Landing\Note\Source\Entity
    {
        /**
         * Returns prepared data for landing by entity (post) id.
         * @param int $sourceId Source id.
         * @return array|null
         */
        public static function getData(int $sourceId) : ?array
        {
        }
    }
    class TaskComment extends \Bitrix\Landing\Note\Source\Entity
    {
        /**
         * Returns prepared data for landing by entity (task comment) id.
         * @param int $sourceId Source id.
         * @return array|null
         */
        public static function getData(int $sourceId) : ?array
        {
        }
    }
}
namespace Bitrix\Landing\Note {
    class Target
    {
        /**
         * User option code for storage notes last sites.
         */
        const UO_CODE_NOTES_LAST = 'notes_last';
        /**
         * By landing id remembers user opt.
         * @param int $landingId Landing id.
         * @return void
         */
        public static function rememberLastSite(int $landingId) : void
        {
        }
        /**
         * Returns available entities short pop list for note creating.
         * @return array
         */
        public static function getShortList() : array
        {
        }
    }
    class Source
    {
        /**
         * Supported sources (modules).
         */
        const AVAILABLE_SOURCES = ['blog', 'blogcomment', 'taskcomment', 'livefeed'];
        /**
         * Block codes for different content types.
         */
        const BLOCKS = ['header' => ['code' => '27.2.one_col_full_title', 'selector' => '.landing-block-node-title'], 'text' => ['code' => '27.6.one_col_fix_text_with_headings', 'selector' => '.landing-block-node-text'], 'quote' => ['code' => '27.5.one_col_fix_text_with_border', 'selector' => '.landing-block-node-text'], 'code' => ['code' => '27.7.one_col_fix_text_on_bg', 'selector' => '.landing-block-node-text'], 'img' => ['code' => '32.2.img_one_big', 'selector' => '.landing-block-node-img'], 'table' => ['code' => '27.6.one_col_fix_text_with_headings', 'selector' => '.landing-block-node-text'], 'video' => ['code' => '49.1.video_just_video', 'selector' => '.landing-block-node-embed']];
        /**
         * Returns self::BLOCKS item by code.
         * @param string $type Content type.
         * @return array
         */
        protected static function getBlockMetaByType(string $type) : ?array
        {
        }
        /**
         * Returns last created site id.
         * @return int
         */
        protected static function getLastCreatedSite() : int
        {
        }
        /**
         * Creates new knowledge page and returns info about it.
         * @param int $kbId Knowledge id.
         * @param string $sourceType Source type.
         * @param int $sourceId Source id.
         * @return array|null
         */
        public static function createFromSource(int $kbId, string $sourceType, int $sourceId) : ?array
        {
        }
    }
}
namespace Bitrix\Landing\Landing {
    class Cache
    {
        /**
         * Tag prefix.
         */
        const TAG_PREFIX = 'landing_page_';
        /**
         * Cache is enabled.
         * @return bool
         */
        public static function isCaching()
        {
        }
        /**
         * Registers the page in the cache.
         * @param int $id Landing id.
         * @return void
         */
        public static function register($id)
        {
        }
        /**
         * Clears cache for the page.
         * @param int $id Landing id.
         * @return void
         */
        public static function clear($id)
        {
        }
    }
    class Seo
    {
        /**
         * Stored seo keys.
         * @var array
         */
        private static $storedKeys = ['title' => null, 'description' => null, 'keywords' => null];
        /**
         * Changed seo keys.
         * @var array
         */
        private static $changedKeys = ['title' => null, 'description' => null, 'keywords' => null];
        /**
         * Keep seo keys for analyze in future.
         * @return void
         */
        public static function beforeLandingView()
        {
        }
        /**
         * Analyze stored seo keys.
         * @return void
         */
        public static function afterLandingView()
        {
        }
        /**
         * If seo key was changed then returns changed value, else returns $value.
         * @param string $key Seo key.
         * @param string $value Seo value.
         * @return string
         */
        public static function processValue($key, $value)
        {
        }
        /**
         * Manually changes some seo key.
         * @param string $key Seo key.
         * @param string $value Seo value.
         * @return void
         */
        public static function changeValue($key, $value)
        {
        }
    }
    class View
    {
        /**
         * Key for session array for storing viewed landings.
         */
        const SESSION_VIEWS_KEY = 'LANDING_VIEWS';
        /**
         * Inc views for page.
         * @param int $lid Landing id.
         * @return void
         */
        protected static function incViewsPage($lid)
        {
        }
        /**
         * Inc views of page.
         * @param int $lid Landing id.
         * @param int $uid User id (current by default).
         * @return void
         */
        public static function inc($lid, $uid = null)
        {
        }
    }
    class UrlPreview
    {
        /**
         * Gets preview for landing.
         * @param int $landingId Landing id.
         * @return array
         */
        public static function getPreview($landingId)
        {
        }
        /**
         * Returns landing id by site path.
         * @param string $code Site path.
         * @return int|null
         */
        public static function getPreviewByCode($code)
        {
        }
        /**
         * Gets landing id by url part.
         * @param string $code Url part.
         * @return int|null
         */
        protected static function detectByCode($code)
        {
        }
        /**
         * Detect page by codes array.
         * @param array $params Params array.
         * @return int|null
         */
        protected static function routeCodes($params)
        {
        }
        /**
         * Prepares params for different scopes.
         * @param array &$params Params.
         * @return void
         */
        protected static function prepareParams(array &$params)
        {
        }
        /**
         * Returns HTML code for page preview.
         * @param array $params Expected keys: siteCode[, folderCode, pageCode].
         * @return string
         */
        public static function buildPreview(array $params)
        {
        }
        /**
         * Returns attach to display in the messenger.
         * @param array $params Expected keys: siteCode[, folderCode, pageCode].
         * @return \CIMMessageParamAttach | false
         */
        public static function getImAttach(array $params)
        {
        }
        /**
         * Returns true if current user has read access to the page.
         * @param array $params Expected keys: siteCode[, folderCode, pageCode].
         * @param int $userId Current user's id.
         * @return bool
         */
        public static function checkUserReadAccess(array $params, $userId)
        {
        }
    }
}
namespace Bitrix\Landing\PublicAction {
    class Domain
    {
        /**
         * Get available domains.
         * @param array $params Params ORM array.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getList(array $params = array())
        {
        }
        /**
         * Create new domain.
         * @param array $fields Domain data.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function add(array $fields)
        {
        }
        /**
         * Update domain.
         * @param int $id Domain id.
         * @param array $fields Domain new data.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function update($id, array $fields)
        {
        }
        /**
         * Delete domain.
         * @param int $id Domain id.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function delete($id)
        {
        }
        /**
         * Punycode the domain name.
         * @param string $domain Domain for code.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function punycode($domain)
        {
        }
        /**
         * Checks if domain is available and puny it.
         * @param string $domain Domain name.
         * @param array $filter Additional filter for exclude in domain search.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function check($domain, array $filter = [])
        {
        }
        /**
         * Returns info about domain registration.
         * @param string $domainName Domain name.
         * @param array $tld Domain tld.
         * @return PublicActionResult
         */
        public static function whois(string $domainName, array $tld) : \Bitrix\Landing\PublicActionResult
        {
        }
    }
    class Demos
    {
        /**
         * Return true, if item of data is suitable by filter.
         * @param array $item One data element.
         * @param array $filter Filter for separate allowed items.
         * @return bool
         */
        protected static function isItemSuitable(array $item, array $filter = [])
        {
        }
        /**
         * Get demo items from files in component.
         * @param string $type Type of demo-template (page, store, etc...).
         * @param bool $page If true, list of pages, not site.
         * @param array $filter Additional filter.
         * @return PublicActionResult
         */
        protected static function getFilesList($type, $page = false, array $filter = [])
        {
        }
        /**
         * Get demo sites.
         * @param string $type Type of demo-template (page, store, etc...).
         * @param array $filter Additional filter.
         * @return PublicActionResult
         */
        public static function getSiteList($type, array $filter = [])
        {
        }
        /**
         * Get demo pages.
         * @param string $type Type of demo-template (page, store, etc...).
         * @param array $filter Additional filter.
         * @return PublicActionResult
         */
        public static function getPageList($type, array $filter = [])
        {
        }
        /**
         * Get preview of url by code.
         * @param string $code Code of page.
         * @param string $type Code of content.
         * @return PublicActionResult
         */
        public static function getUrlPreview($code, $type)
        {
        }
        /**
         * Register new demo template (site [and pages]).
         * @param array $data Full data from \Bitrix\Landing\Site::fullExport.
         * @param array $params Additional params.
         * @see \Bitrix\Landing\Site::fullExport
         * @return PublicActionResult
         */
        public static function register(array $data = array(), array $params = array())
        {
        }
        /**
         * Unregister demo template.
         * @param string $code Code of item.
         * @return PublicActionResult
         */
        public static function unregister($code)
        {
        }
        /**
         * Get items of current app.
         * @param array $params Params ORM array.
         * @return PublicActionResult
         */
        public static function getList(array $params = array())
        {
        }
    }
    class Role
    {
        /**
         * Check feature enabled and if current user is admin.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function init()
        {
        }
        /**
         * Gets available roles.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getList()
        {
        }
        /**
         * Gets rights for each site in this role.
         * @param int $id Role id.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getRights($id)
        {
        }
        /**
         * Set rights for role.
         * @param int $id Role id.
         * @param array $rights Rights array ([[site_id] => [right1, right2]].
         * @param array $additional Addition rights array ([Rights::ADDITIONAL_RIGHTS]].
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function setRights($id, array $rights, $additional = null)
        {
        }
        /**
         * Set new access codes for role and refresh all rights.
         * @param int $id Role id.
         * @param array $codes Codes array.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function setAccessCodes($id, array $codes = array())
        {
        }
        /**
         * Return true if role model is switch on.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function isEnabled()
        {
        }
        /**
         * Switch on/off role model.
         * @param bool $mode Mode: on/off.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function enable($mode)
        {
        }
    }
    class Block
    {
        /**
         * Local function for minimization code.
         * @param string $action Action code.
         * @param int $lid Landing id.
         * @param int $block Block id.
         * @param string $selector Selector.
         * @param array $params Additional params.
         * @return \Bitrix\Landing\PublicActionResult
         */
        private static function cardAction($action, $lid, $block, $selector, array $params = array())
        {
        }
        /**
         * Clone card in block by selector.
         * @param int $lid Landing id.
         * @param int $block Block id.
         * @param string $selector Selector.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function cloneCard($lid, $block, $selector)
        {
        }
        /**
         * Add card in block by selector.
         * @param int $lid Landing id.
         * @param int $block Block id.
         * @param string $selector Selector.
         * @param string $content Content of card.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function addCard($lid, $block, $selector, $content)
        {
        }
        /**
         * Remove card from block by selector.
         * @param int $lid Landing id.
         * @param int $block Block id.
         * @param string $selector Selector.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function removeCard($lid, $block, $selector)
        {
        }
        /**
         * Change cards multiple.
         * @param int $lid Landing id.
         * @param int $block Block id.
         * @param array $data Array with cards.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function updateCards($lid, $block, array $data)
        {
        }
        /**
         * Change node name.
         * @param int $lid Landing id.
         * @param int $block Block id.
         * @param array $data Array with selector and value.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function changeNodeName($lid, $block, array $data)
        {
        }
        /**
         * Set new anchor to the block.
         * @param int $lid Landing id.
         * @param int $block Block id.
         * @param string $data New anchor.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function changeAnchor($lid, $block, $data)
        {
        }
        /**
         * Update nodes in block by selector.
         * @param int $lid Landing id.
         * @param int $block Block id.
         * @param array $data Array with selector and value.
         * @param array $additional Additional prams for save.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function updateNodes($lid, $block, array $data, array $additional = array())
        {
        }
        /**
         * Update any attributes in block by selector.
         * @param int $lid Landing id.
         * @param int $block Block id.
         * @param array $data Array with selector and data.
         * @param string $method Method for update.
         * @return \Bitrix\Landing\PublicActionResult
         */
        private static function updateAttributes($lid, $block, array $data, $method)
        {
        }
        /**
         * Update classes in block by selector.
         * @param int $lid Landing id.
         * @param int $block Block id.
         * @param array $data Array with selector and data.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function updateStyles($lid, $block, array $data)
        {
        }
        /**
         * Update attributes in block by selector.
         * @param int $lid Landing id.
         * @param int $block Block id.
         * @param array $data Array with selector and data.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function updateAttrs($lid, $block, array $data)
        {
        }
        /**
         * Get content as is from Block.
         * @param int $lid Landing id.
         * @param int $block Block id.
         * @param boolean $editMode Edit mode if true.
         * @param array $params Some params.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getContent($lid, $block, $editMode = false, array $params = array())
        {
        }
        /**
         * Update content in the Block.
         * @param int $lid Landing id.
         * @param int $block Block id.
         * @param string $content Block content.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function updateContent($lid, $block, $content)
        {
        }
        /**
         * Get available blocks of landing.
         * @param int $lid Landing id.
         * @param array $params Some params.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getList($lid, array $params = array())
        {
        }
        /**
         * Get one block of landing.
         * @param int $block Block id.
         * @param array $params Some params.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getById($block, array $params = array())
        {
        }
        /**
         * Get available blocks of landing.
         * @param int $lid Landing id.
         * @param int $block Block id.
         * @param array $params Some params.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getManifest($lid, $block, array $params = array())
        {
        }
        /**
         * Get manifest array as is from block.
         * @param string $code Code name, format "namespace:code".
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getManifestFile($code)
        {
        }
        /**
         * Get content of block from repository.
         * @param string $code Block code.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getContentFromRepository($code)
        {
        }
        /**
         * Get blocks from repository.
         * @param string $section Section code.
         * @param bool $withManifest Get repo with manifest.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getRepository($section = null, $withManifest = false)
        {
        }
        /**
         * Upload file by url or from FILE.
         * @param int $block Block id.
         * @param mixed $picture File url / file array.
         * @param string $ext File extension.
         * @param array $params Some file params.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function uploadFile($block, $picture, $ext = false, array $params = array())
        {
        }
    }
    class Landing
    {
        /**
         * Clear disallow keys from add/update fields.
         * @param array $fields
         * @return array
         */
        protected static function clearDisallowFields(array $fields)
        {
        }
        /**
         * Get preview picture of landing.
         * @param int $lid Id of landing.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getPreview($lid)
        {
        }
        /**
         * Get public url of landing.
         * @param int $lid Id of landing.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getPublicUrl($lid)
        {
        }
        /**
         * Get additional fields of landing.
         * @param int $lid Id of landing.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getAdditionalFields($lid)
        {
        }
        /**
         * Publication of landing.
         * @param int $lid Id of landing.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function publication($lid)
        {
        }
        /**
         * Cancel publication of landing.
         * @param int $lid Id of landing.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function unpublic($lid)
        {
        }
        /**
         * Add new block to the landing.
         * @param int $lid Id of landing.
         * @param array $fields Data array of block.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function addBlock($lid, array $fields)
        {
        }
        /**
         * Delete the block from the landing.
         * @param int $lid Id of landing.
         * @param int $block Block id.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function deleteBlock($lid, $block)
        {
        }
        /**
         * Mark delete or not the block.
         * @param int $lid Id of landing.
         * @param int $block Block id.
         * @param boolean $mark Mark.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function markDeletedBlock($lid, $block, $mark = true)
        {
        }
        /**
         * Mark undelete the block.
         * @param int $lid Id of landing.
         * @param int $block Block id.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function markUnDeletedBlock($lid, $block)
        {
        }
        /**
         * Sort the block on the landing.
         * @param int $lid Id of landing.
         * @param int $block Block id.
         * @param string $action Code: up or down.
         * @return \Bitrix\Landing\PublicActionResult
         */
        private static function sort($lid, $block, $action)
        {
        }
        /**
         * Sort up the block on the landing.
         * @param int $lid Id of landing.
         * @param int $block Block id.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function upBlock($lid, $block)
        {
        }
        /**
         * Sort down the block on the landing.
         * @param int $lid Id of landing.
         * @param int $block Block id.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function downBlock($lid, $block)
        {
        }
        /**
         * Show/hide the block on the landing.
         * @param int $lid Id of landing.
         * @param int $block Block id.
         * @param string $action Code: show or hide.
         * @return \Bitrix\Landing\PublicActionResult
         */
        private static function activate($lid, $block, $action)
        {
        }
        /**
         * Activate the block on the landing.
         * @param int $lid Id of landing.
         * @param int $block Block id.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function showBlock($lid, $block)
        {
        }
        /**
         * Dectivate the block on the landing.
         * @param int $lid Id of landing.
         * @param int $block Block id.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function hideBlock($lid, $block)
        {
        }
        /**
         * Copy/move other block to this landing.
         * @param int $lid Id of landing.
         * @param int $block Block id.
         * @param array $params Params array.
         * @return \Bitrix\Landing\PublicActionResult
         */
        private static function changeParentOfBlock($lid, $block, array $params)
        {
        }
        /**
         * Copy other block to this landing.
         * @param int $lid Id of landing.
         * @param int $block Block id.
         * @param array $params Params array.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function copyBlock($lid, $block, array $params = array())
        {
        }
        /**
         * Move other block to this landing.
         * @param int $lid Id of landing.
         * @param int $block Block id.
         * @param array $params Params array.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function moveBlock($lid, $block, array $params = array())
        {
        }
        /**
         * Remove entities of Landing - images / blocks.
         * @param int $lid Landing id.
         * @param array $data Data for remove.
         * @return PublicActionResult
         */
        public static function removeEntities($lid, array $data)
        {
        }
        /**
         * Get available landings.
         * @param array $params Params ORM array.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getList(array $params = array())
        {
        }
        /**
         * Checks that page also adding in some menu.
         * @param array $fields Landing data array.
         * @param bool $willAdded Flag that menu item will be added.
         * @return array
         */
        protected static function checkAddingInMenu(array $fields, ?bool &$willAdded = null) : array
        {
        }
        /**
         * Create new landing.
         * @param array $fields Landing data.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function add(array $fields)
        {
        }
        /**
         * Create a page by template.
         * @param int $siteId Site id.
         * @param string $code Code of template.
         * @param array $fields Landing fields.
         * @return PublicActionResult
         */
        public static function addByTemplate($siteId, $code, array $fields = [])
        {
        }
        /**
         * Update landing.
         * @param int $lid Landing id.
         * @param array $fields Landing new data.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function update($lid, array $fields)
        {
        }
        /**
         * Delete landing.
         * @param int $lid Landing id.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function delete($lid)
        {
        }
        /**
         * Copy landing.
         * @param int $lid Landing id.
         * @param int $toSiteId Site id (if you want copy in another site).
         * @param int $toFolderId Folder id (if you want copy in some folder).
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function copy($lid, $toSiteId = null, $toFolderId = null)
        {
        }
        /**
         * Mark entity as deleted.
         * @param int $lid Entity id.
         * @param boolean $mark Mark.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function markDelete($lid, $mark = true)
        {
        }
        /**
         * Mark entity as undeleted.
         * @param int $lid Entity id.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function markUnDelete($lid)
        {
        }
        /**
         * Upload file by url or from FILE.
         * @param int $lid Landing id.
         * @param string $picture File url / file array.
         * @param string $ext File extension.
         * @param array $params Some file params.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function uploadFile($lid, $picture, $ext = false, array $params = array())
        {
        }
        /**
         * Set some content to the Head section.
         * @param int $lid Landing id.
         * @param string $content Some content.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function updateHead($lid, $content)
        {
        }
    }
    class Cloud
    {
        /**
         * Get blocks from repository.
         * @return PublicActionResult
         */
        public static function getRepository()
        {
        }
        /**
         * Returns demo sites or pages.
         * @param string $type Type of demo-template (page, store, etc...).
         * @param bool $isPage Returns templates for page section or not.
         * @param array $filter Additional filter.
         * @return PublicActionResult
         */
        protected static function getDemoItemList(string $type, bool $isPage, array $filter = []) : \Bitrix\Landing\PublicActionResult
        {
        }
        /**
         * Returns demo sites.
         * @param string $type Type of demo-template (page, store, etc...).
         * @param array $filter Additional filter.
         * @return PublicActionResult
         */
        public static function getDemoSiteList(string $type, array $filter = []) : \Bitrix\Landing\PublicActionResult
        {
        }
        /**
         * Returns demo pages.
         * @param string $type Type of demo-template (page, store, etc...).
         * @param array $filter Additional filter.
         * @return PublicActionResult
         */
        public static function getDemoPageList(string $type, array $filter = []) : \Bitrix\Landing\PublicActionResult
        {
        }
        /**
         * Get preview of url by code.
         * @param string $code Code of page.
         * @param string $type Code of content.
         * @return PublicActionResult
         */
        public static function getUrlPreview($code, $type)
        {
        }
        /**
         * Returns template items for the application.
         * @param string $appCode Application code.
         * @return PublicActionResult
         */
        public static function getAppItems(string $appCode) : \Bitrix\Landing\PublicActionResult
        {
        }
        /**
         * Returns single item manifest.
         * @param int $id Application item id.
         * @return PublicActionResult
         */
        public static function getAppItemManifest(int $id) : \Bitrix\Landing\PublicActionResult
        {
        }
    }
    class Utils
    {
        /**
         * Entity type catalog.
         */
        const TYPE_CATALOG = 'catalog';
        /**
         * Entity type catalog element.
         */
        const TYPE_CATALOG_ELEMENT = 'element';
        /**
         * Entity type section.
         */
        const TYPE_CATALOG_SECTION = 'section';
        /**
         * Entity type any.
         */
        const TYPE_CATALOG_ALL = 'all';
        /**
         * Get meta-data by URL.
         * @param string $url Url.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getUrlPreview($url)
        {
        }
        /**
         * Search in the catalog.
         * @param null $query Query string.
         * @param string $type Search type.
         * @param int $iblock Iblock id optional.
         * @param int $siteId Site id optional.
         * @return PublicActionResult|\CIBlockResult|int
         */
        public static function catalogSearch($query = null, $type = self::TYPE_CATALOG_ALL, $iblock = null, $siteId = null)
        {
        }
        /**
         * Makes nav chain of catalog entity.
         * @param int $sectionId Section id.
         * @param array $chain Chain array.
         * @return void
         */
        protected static function makeCatalogEntityNavChain($sectionId, array &$chain)
        {
        }
        /**
         * Gets catalog element or section by id.
         * @param int $entityId Entity id.
         * @param string $entityType Entity type.
         * @return array
         */
        protected static function getCatalogEntity($entityId, $entityType)
        {
        }
        /**
         * Gets catalog element by id.
         * @param int $elementId Element id.
         * @return PublicActionResult
         */
        public static function getCatalogElement($elementId)
        {
        }
        /**
         * Gets catalog section by id.
         * @param int $sectionId Section id.
         * @return PublicActionResult
         */
        public static function getCatalogSection($sectionId)
        {
        }
        /**
         * Build element/section url.
         * @param int $elementId Element / section id.
         * @param string $urlType Type of url (section / detail).
         * @return string
         */
        public static function getIblockURL($elementId, $urlType)
        {
        }
        /**
         * Check feature enabling by codes.
         * @param array $code Feature code.
         * @param array $params Additional params array.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function checkMultiFeature(array $code, array $params = [])
        {
        }
        /**
         * Save some internal settings.
         * @param array $settings Settings array.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function saveSettings(array $settings)
        {
        }
        /**
         * Check if it is boolean and true.
         * @param mixed $value Some value
         * @return bool
         */
        public static function isTrue($value)
        {
        }
    }
    class Repo
    {
        /**
         * Check content for bad substring.
         * @param string $content
         * @param string $splitter
         * @return PublicActionResult
         */
        public static function checkContent($content, $splitter = '#SANITIZE#')
        {
        }
        /**
         * Register new block.
         * @param string $code Unique code of block (for one app context).
         * @param array $fields Block data.
         * @param array $manifest Manifest data.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function register($code, array $fields, array $manifest = array())
        {
        }
        /**
         * Unregister block.
         * @param string $code Code of block.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function unregister($code)
        {
        }
        /**
         * Get info about app from Repo.
         * @param string $code App code.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getAppInfo($code)
        {
        }
        /**
         * Bind the placement.
         * @param array $fields Fields array.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function bind(array $fields)
        {
        }
        /**
         * Unbind the placement.
         * @param string $code Placement code.
         * @param string $handler Handler path (if you want delete specific).
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function unbind($code, $handler = null)
        {
        }
        /**
         * Get items of current app.
         * @param array $params Params ORM array.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getList(array $params = array())
        {
        }
    }
    class Template
    {
        /**
         * Get available templates.
         * @param array $params Params ORM array.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getList(array $params = array())
        {
        }
        /**
         * Set new template refs for site.
         * @param int $id Entity id.
         * @param string $type Entity type.
         * @param string $method Method: set or get.
         * @param array $data Ref array (area => landing).
         * @return \Bitrix\Landing\PublicActionResult
         */
        protected static function refProcess($id, $type, $method, array $data = array())
        {
        }
        /**
         * Set new template refs for site.
         * @param int $id Site id.
         * @param array $data Ref array (area => landing).
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function setSiteRef($id, array $data = array())
        {
        }
        /**
         * Set new template refs for landing.
         * @param int $id Landing id.
         * @param array $data Ref array (area => landing).
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function setLandingRef($id, array $data = array())
        {
        }
        /**
         * Get template refs for site.
         * @param int $id Site id.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getSiteRef($id)
        {
        }
        /**
         * Get template refs for landing.
         * @param int $id Site id.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getLandingRef($id)
        {
        }
    }
    class Chat
    {
        /**
         * Returns chat list.
         * @param array $params Additional params.
         * @return PublicActionResult
         */
        public static function getList(array $params = [])
        {
        }
        /**
         * Invite current user to the chat and returns IM chat id.
         * @param int $internalId Internal chat id.
         * @return PublicActionResult
         */
        public static function joinChat($internalId)
        {
        }
    }
    class Syspage
    {
        /**
         * Set new system page for site.
         * @param int $id Site id.
         * @param string $type System page type.
         * @param int $lid Landing id (if not set, ref was deleted).
         * @return void
         */
        public static function set($id, $type, $lid = false)
        {
        }
        /**
         * Get pages for site.
         * @param integer $id Site id.
         * @param bool $active Only active items.
         * @return PublicActionResult
         */
        public static function get($id, $active = false)
        {
        }
        /**
         * Delete all sys pages by site id.
         * @param integer $id Site id.
         * @return void
         */
        public static function deleteForSite($id)
        {
        }
        /**
         * Delete all sys pages by id.
         * @param integer $id Landing id.
         * @return void
         */
        public static function deleteForLanding($id)
        {
        }
        /**
         * Get url of special page of site.
         * @param int $siteId Site id.
         * @param string $type Type of special page.
         * @param array $additional Additional params for uri.
         * @return PublicActionResult
         */
        public static function getSpecialPage($siteId, $type, array $additional = [])
        {
        }
    }
    class Site
    {
        /**
         * Clear disallow keys from add/update fields.
         * @param array $fields Array fields.
         * @return array
         */
        protected static function clearDisallowFields(array $fields)
        {
        }
        /**
         * Get additional fields of site.
         * @param int $id Id of site.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getAdditionalFields($id)
        {
        }
        /**
         * Gets public url of site (or sites).
         * @param int[] $id Site id or array of ids.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getPublicUrl($id)
        {
        }
        /**
         * Get available sites.
         * @param array $params Params ORM array.
         * @param string $initiator Initiator code.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getList(array $params = [], $initiator = null)
        {
        }
        /**
         * Create new site.
         * @param array $fields Site data.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function add(array $fields)
        {
        }
        /**
         * Update site.
         * @param int $id Site id.
         * @param array $fields Site new data.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function update($id, array $fields)
        {
        }
        /**
         * Delete site.
         * @param int $id Site id.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function delete($id)
        {
        }
        /**
         * Mark entity as deleted.
         * @param int $id Entity id.
         * @param boolean $mark Mark.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function markDelete($id, $mark = true)
        {
        }
        /**
         * Mark entity as undeleted.
         * @param int $id Entity id.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function markUnDelete($id)
        {
        }
        /**
         * Make site public.
         * @param int $id Entity id.
         * @param boolean $mark Mark.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function publication($id, $mark = true)
        {
        }
        /**
         * Mark site unpublic.
         * @param int $id Entity id.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function unpublic($id)
        {
        }
        /**
         * Full export of the site.
         * @param int $id Site id.
         * @param array $params Params array.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function fullExport($id, array $params = array())
        {
        }
        /**
         * Set rights for site.
         * @param int $id Site id.
         * @param array $rights Array of rights for site.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function setRights($id, $rights = [])
        {
        }
        /**
         * Get rights about site.
         * @param int $id Site id.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function getRights($id)
        {
        }
        /**
         * Upload file by url or from FILE.
         * @param int $id Site id.
         * @param string $picture File url / file array.
         * @param string $ext File extension.
         * @param array $params Some file params.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function uploadFile($id, $picture, $ext = false, array $params = array())
        {
        }
        /**
         * Sets scope for work with module.
         * @param string $type Scope code.
         * @return \Bitrix\Landing\PublicActionResult
         */
        public static function setScope($type)
        {
        }
    }
}
namespace Bitrix\Landing {
    class Agent
    {
        /**
         * Tech method for adding new unique agent.
         * @param string $funcName Function name from this class.
         * @param array $params Some params for agent function.
         * @param int $time Time in seconds for executing period.
         * @return void
         */
        public static function addUniqueAgent($funcName, array $params = [], $time = 7200)
        {
        }
        /**
         * Clear recycle bin for scope.
         * @param string $scope Scope code.
         * @param int $days After this time items will be deleted.
         * @return string
         */
        public static function clearRecycleScope($scope, $days = null)
        {
        }
        /**
         * Clear recycle bin.
         * @param int $days After this time items will be deleted.
         * @return string
         */
        public static function clearRecycle($days = null)
        {
        }
        /**
         * Remove marked for deleting files.
         * @param int $count Count of files wich will be deleted per once.
         * @return string
         */
        public static function clearFiles($count = null)
        {
        }
        /**
         * Send used rest statistic.
         * @return string
         */
        public static function sendRestStatistic() : string
        {
        }
    }
    class PublicActionResult
    {
        /**
         * Instance of Error.
         * @var \Bitrix\Landing\Error
         */
        protected $error = null;
        /**
         * Result of Public Action.
         * @var mixed
         */
        protected $result = null;
        /**
         * Constructor.
         */
        public function __construct()
        {
        }
        /**
         * Result is success.
         * @return boolean
         */
        public function isSuccess()
        {
        }
        /**
         * Set Error of Public Action.
         * @param \Bitrix\Landing\Error $error Error.
         * @return void
         */
        public function setError(\Bitrix\Landing\Error $error)
        {
        }
        /**
         * Get error collection
         * @return \Bitrix\Landing\Error
         */
        public function getError()
        {
        }
        /**
         * Set some result of Public Action.
         * @param mixed $result Some result.
         * @return void
         */
        public function setResult($result)
        {
        }
        /**
         * Get result of Public Action.
         * @return mixed
         */
        public function getResult()
        {
        }
        /**
         * Sanitizes data's keys, if data is array.
         * @param mixed $data Some data.
         * @param bool $sanitizeValue Sanitize value of key too.
         * @return mixed
         */
        public function sanitizeKeys($data, $sanitizeValue = false)
        {
        }
    }
}
namespace Bitrix\Landing\Update\Landing {
    /**
     * Class SearchContent
     * Index hook data.
     * @package Bitrix\Landing\Update\Landing
     */
    class SearchContent extends \Bitrix\Main\Update\Stepper
    {
        /**
         * Option code for store
         */
        const OPTION_CODE = 'update_landing_search_content';
        const OPTION_CODE_SCOPES = 'update_landing_search_content_scopes';
        /**
         * Module id for parent class.
         * @var string
         */
        protected static $moduleId = 'landing';
        /**
         * One step of converter.
         * @param array &$result Result array.
         * @return bool
         */
        public function execute(array &$result)
        {
        }
    }
    /**
     * Class InitApp
     * Set to all pages field 'INITIATOR_APP_CODE'.
     * @package Bitrix\Landing\Update\Landing
     */
    class InitApp extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = 'landing';
        /**
         * One step of converter.
         * @param array &$result Result array.
         * @return bool
         */
        public function execute(array &$result)
        {
        }
    }
}
namespace Bitrix\Landing\Update {
    class Block extends \Bitrix\Main\Update\Stepper
    {
        /**
         * Items count for one step.
         */
        const STEPPER_COUNT = 1;
        /**
         * Target module for stepper.
         * @var string
         */
        protected static $moduleId = 'landing';
        /**
         * Register new block for stepper update.
         * @param string|string[] $codes Block codes.
         * @param array $params Additional params.
         * @return void
         */
        public static function register($codes, array $params = [])
        {
        }
        /**
         * Unregister block for stepper update.
         * @param string[] $codes Block codes.
         * @return void
         */
        public static function unregister($codes)
        {
        }
        /**
         * Preparing css classes array before set to node.
         * @param array|string $classes Base classes to set.
         * @param array $addClasses New classes for base array.
         * @param array $removeClasses Classes to remove from base array.
         * @return array
         */
        protected static function prepareClassesToSet($classes, array $addClasses = [], array $removeClasses = [])
        {
        }
        /**
         * Execute one step.
         * @param array $filter Filter for step.
         * @param int &$count Updated count.
         * @param int $limit Select limit.
         * @param array $params Additional params.
         * @return int Last updated id.
         */
        public static function executeStep(array $filter, &$count = 0, $limit = 0, array $params = [])
        {
        }
        /**
         * One step of stepper.
         * @param array &$result Result array.
         * @return bool
         */
        public function execute(array &$result)
        {
        }
        protected static function updateVideoToLazyload($nodes)
        {
        }
    }
    class Stepper
    {
        /**
         * list of updaters classes, then can be show in progress bar
         * @return array
         */
        private static function getUpdaterClasses()
        {
        }
        /**
         * Show some stepper if need.
         * @return void
         */
        public static function show()
        {
        }
        /**
         * Exist or not the agent?
         * @param string $className Class name.
         * @return bool
         */
        public static function checkAgentActivity($className)
        {
        }
    }
}
namespace Bitrix\Landing\Update\Assets {
    final class WebpackClear extends \Bitrix\Main\Update\Stepper
    {
        protected const CONTINUE_EXECUTING = true;
        protected const STOP_EXECUTING = false;
        protected const STEP_PORTION = 100;
        protected const WEBPACK_NAME_MASK = 'landing_assets_webpack';
        protected const MODULE_ID = 'landing';
        /**
         * IDs of files
         * @var array
         */
        protected $filesToDelete;
        protected static $moduleId = 'landing';
        /**
         * Execute
         * @param array $result
         * @return bool
         */
        public function execute(array &$result) : bool
        {
        }
        protected function getFilesToDelete() : array
        {
        }
        /**
         * Find files, than exist in b_file, but not attached to any landing
         */
        protected function findFilesToDelete() : void
        {
        }
        /**
         * In first version of webpack we not bind files to landing.
         * Now we can remove them to free space.
         *
         * Util method, not for regular use
         */
        public static function clearNotBindedFiles() : void
        {
        }
    }
}
namespace Bitrix\Landing\Update\Domain {
    class Check extends \Bitrix\Main\Update\Stepper
    {
        /**
         * Target module for stepper.
         * @var string
         */
        protected static $moduleId = 'landing';
        /**
         * Items count for one step.
         */
        const STEPPER_COUNT = 1;
        /**
         * One step of converter.
         * @param array &$result Result array.
         * @return bool
         */
        public function execute(array &$result)
        {
        }
    }
}
namespace Bitrix\Landing\Update\Block {
    class FontWeight
    {
        // todo: check this!
        protected const FONT_BOLD_MATCHER = '/font-weight-bold/i';
        /**
         * @var integer
         */
        protected $blockId;
        /**
         * @var string
         */
        protected $content;
        public function __construct($blockId, $content)
        {
        }
        public function update() : void
        {
        }
        protected function save() : void
        {
        }
        protected function changeWeightClass()
        {
        }
        public static function updateLanding(int $lid) : void
        {
        }
    }
    class FixSrcImg extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = 'landing';
        /**
         * One step of converter.
         * @param array &$result Result array.
         * @return bool
         */
        public function execute(array &$result)
        {
        }
    }
    class Buttons
    {
        protected const BTN_CLASS_MATCHER = '/class=(["\'][^"\']*\\s|["\'])btn(\\s[^"\']*["\']|["\'])/i';
        protected const OLD_BUTTON_MATCHER = '/class=["\'][^"\']*u-btn-\\w+[^"\']*["\']/i';
        protected const BUTTON_COLOR_MATCHER = '/(?<=[\\s\'"])u-btn-(\\w+)([\\s\'"])/i';
        protected const BUTTON_COLOR_OUTLINE_MATCHER = '/(?<=[\\s\'"])u-btn-outline-(\\w+)([\\s\'"])/i';
        protected const BUTTON_COLOR_THEME_MATCHER = '/(?<=[\\s\'"])u-(theme-bitrix-btn-v)(\\d{1,})([\\s\'"])/i';
        protected const BUTTON_COLOR_THEME_OUTLINE_MATCHER = '/(?<=[\\s\'"])u-(theme-bitrix-btn-outline-v)(\\d{1,})([\\s\'"])/i';
        protected const BUTTON_BORDER_MATCHER = '/(?<=[\\s\'"])g-brd-[\\d]{1,2}([\\s\'"])/i';
        protected const PADDING_MATCHER = '/(?<=[\\s\'"])(g-p[abtlrxy]-\\d{1,3}(--\\w\\w)?)([\\s\'"])/i';
        /**
         * @var integer
         */
        protected $blockId;
        /**
         * @var string
         */
        protected $content;
        public function __construct($blockId, $content)
        {
        }
        public function update() : void
        {
        }
        protected function save() : void
        {
        }
        protected function changeColor($content)
        {
        }
        protected function changeBorder($content)
        {
        }
        protected function changeRound($content)
        {
        }
        protected function changePadding($content)
        {
        }
        public static function isOldButton($content) : bool
        {
        }
        public static function updateLanding(int $lid) : void
        {
        }
    }
    final class NodeAttributes extends \Bitrix\Main\Update\Stepper
    {
        const CONTINUE_EXECUTING = true;
        const STOP_EXECUTING = false;
        const OPTION_NAME = 'blocks_attrs_update';
        const OPTION_STATUS_NAME = 'blocks_attrs_update_status';
        const STEP_PORTION = 1;
        //count of block CODES to step
        protected static $moduleId = 'landing';
        protected $dataToUpdate = array();
        protected $blocksToUpdate = array();
        protected $sitesToUpdate = array();
        protected $status = array();
        protected $codesToStep = array();
        /**
         * get progress from option or set default
         */
        private function loadCurrentStatus()
        {
        }
        /**
         * May be several Options for update data. They have uniqueId. Find ID of first option
         *
         * @return string
         */
        private function getUpdaterUniqueId()
        {
        }
        public function execute(array &$result)
        {
        }
        /**
         * Additional operations before stop executing
         */
        private static function finish()
        {
        }
        /**
         * If no more blocks to update - remove all data options and status
         *
         * @throws \Bitrix\Main\ArgumentNullException
         */
        private static function clearOptions()
        {
        }
        /**
         * Create option name by base name and unique ID
         * @return string
         */
        private function getOptionName()
        {
        }
        private function collectBlocks()
        {
        }
        private function processBlocks()
        {
        }
        private function updateBlock(\Bitrix\Landing\Block $block)
        {
        }
        private function finishStep()
        {
        }
        private function finishOption()
        {
        }
        private function updateSites()
        {
        }
        /**
         * Before delete block handler.
         * @param Entity\Event $event Event instance.
         * @return Entity\EventResult
         */
        public static function disableBlockDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Before publication landing handler.
         * @param \Bitrix\Main\Event $event Event instance.
         * @return Entity\EventResult
         */
        public static function disablePublication(\Bitrix\Main\Event $event)
        {
        }
        /**
         * If agent not exist - we must broke events, to preserve infinity blocking publication and delete
         */
        public static function removeCustomEvents()
        {
        }
        /**
         * Update form domain, when updated b24 connector
         * F.e., when user remove and new portal
         * Other method, because different params
         *
         * @param Event $event
         */
        public static function updateFormDomainByConnector($event)
        {
        }
        /**
         * Set data for NodeUpdater to updating form domain
         *
         * @param array $domains
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function updateFormDomain($domains = array())
        {
        }
    }
    class SearchContent extends \Bitrix\Main\Update\Stepper
    {
        /**
         * Option code for store
         */
        const OPTION_CODE = 'update_block_search_content';
        /**
         * Module id for parent class.
         * @var string
         */
        protected static $moduleId = 'landing';
        /**
         * One step of converter.
         * @param array &$result Result array.
         * @return bool
         */
        public function execute(array &$result)
        {
        }
    }
    class NodeImg extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = 'landing';
        /**
         * Get hash by file id.
         * @param int $id File id.
         * @return string
         */
        public function getFileHash($id)
        {
        }
        /**
         * One step of converter.
         * @param array &$result Result array.
         * @return bool
         */
        public function execute(array &$result)
        {
        }
        /**
         * Before delete block handler.
         * @param Entity\Event $event Event instance.
         * @return Entity\EventResult
         */
        public static function disableBlockDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Before publication landing handler.
         * @param \Bitrix\Main\Event $event Event instance.
         * @return Entity\EventResult
         */
        public static function disablePublication(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Landing\Chat {
    class Chat extends \Bitrix\Landing\Internals\BaseTable
    {
        /**
         * Internal class.
         * @var string
         */
        public static $internalClass = 'ChatTable';
        /**
         * Check file id and returns id.
         * @param int $avatarId Avatar (file) id.
         * @return int
         */
        protected static function getAvatarId($avatarId)
        {
        }
        /**
         * Creates new record and return it.
         * @param array $fields Fields array.
         * @return \Bitrix\Main\ORM\Data\AddResult
         */
        public static function add($fields)
        {
        }
        /**
         * Returns records of table.
         * @param array $params Params array like ORM style.
         * @return \Bitrix\Main\DB\Result
         */
        public static function getList($params = [])
        {
        }
        /**
         * Return chat row by id.
         * @param int $id Chat id.
         * @return array
         */
        public static function getRow($id) : array
        {
        }
        /**
         * Updates record.
         * @param int $id Record key.
         * @param array $fields Fields array.
         * @return \Bitrix\Main\Result
         */
        public static function update($id, $fields = [])
        {
        }
        /**
         * Returns chat members ids.
         * @param int $chatId Chat id.
         * @return array
         */
        public static function getMembersId(int $chatId) : array
        {
        }
        /**
         * Invite current user to the chat and returns IM chat id.
         * @param int $internalId Internal chat id.
         * @return int
         */
        public static function joinChat(int $internalId) : int
        {
        }
    }
    class Binding extends \Bitrix\Landing\Internals\BaseTable
    {
        /**
         * Block binding type.
         */
        const BINDING_TYPE_BLOCK = 'B';
        /**
         * Internal class.
         * @var string
         */
        public static $internalClass = 'ChatBindingTable';
        /**
         * Clears all cache by chat id.
         * @param int $chatId Internal chat id.
         * @return void
         */
        public static function clearCache(int $chatId) : void
        {
        }
        /**
         * Binds block with chat.
         * @param int $chatId Internal chat id.
         * @param int $blockId Block id.
         * @return void
         */
        public static function bindingBlock(int $chatId, int $blockId) : void
        {
        }
        /**
         * Unbinds block from chat.
         * @param int $blockId Block id.
         * @return void
         */
        public static function unbindingBlock(int $blockId) : void
        {
        }
    }
}
namespace Bitrix\Landing {
    class Demos extends \Bitrix\Landing\Internals\BaseTable
    {
        /**
         * Item for show in 'create site'.
         */
        const TPL_TYPE_SITE = 'S';
        /**
         * Item for show in 'create page'.
         */
        const TPL_TYPE_PAGE = 'P';
        /**
         * Internal class.
         * @var string
         */
        public static $internalClass = 'DemosTable';
        /**
         * Delete all app items from repo.
         * @param string $code App code.
         * @return void
         */
        public static function deleteByAppCode($code)
        {
        }
    }
    class Hook
    {
        /**
         * If true, hook work in edit mode (form settings).
         * @var boolean
         */
        protected static $editMode = false;
        /**
         * Entity type site.
         */
        const ENTITY_TYPE_SITE = 'S';
        /**
         * Entity type landing.
         */
        const ENTITY_TYPE_LANDING = 'L';
        /**
         * Dir of repository of common hooks.
         */
        const HOOKS_PAGE_DIR = '/bitrix/modules/landing/lib/hook/page';
        /**
         * Namespace of repoitory of common hooks (relative current).
         */
        const HOOKS_NAMESPACE = '\\Hook\\Page\\';
        /**
         * Hook codes which contains file ids.
         */
        const HOOKS_CODES_FILES = ['METAOG_IMAGE', 'BACKGROUND_PICTURE'];
        /**
         * Get classes from dir.
         * @param string $dir Relative dir.
         * @return array
         */
        protected static function getClassesFromDir($dir)
        {
        }
        /**
         * Get data by entity id ant type.
         * @param int $id Entity id.
         * @param string $type Entity type.
         * @param boolean $asIs Return row as is.
         * @return array
         */
        public static function getData($id, $type, $asIs = false)
        {
        }
        /**
         * Get available hooks for this landing.
         * @param int $id Entity id.
         * @param string $type Entity type.
         * @param array $data Data array (optional).
         * @return \Bitrix\Landing\Hook\Page[]
         */
        protected static function getList($id, $type, array $data = array())
        {
        }
        /**
         * Set edit mode to true.
         * @param bool $mode Edit mode (true by default).
         * @return void
         */
        public static function setEditMode(bool $mode = true) : void
        {
        }
        /**
         * Returns edit mode state.
         * @return bool
         */
        public static function getEditMode() : bool
        {
        }
        /**
         * Get hooks for site.
         * @param int $id Site id.
         * @return \Bitrix\Landing\Hook\Page[]
         */
        public static function getForSite($id)
        {
        }
        /**
         * Get hooks for landing.
         * @param int $id Landing id.
         * @return \Bitrix\Landing\Hook\Page[]
         */
        public static function getForLanding($id)
        {
        }
        /**
         * Get row hooks for landing.
         * @param int $id Landing id.
         * @return array
         */
        public static function getForLandingRow($id)
        {
        }
        /**
         * Copy data for entity.
         * @param int $from From entity id.
         * @param int $to To entity id.
         * @param string $type Entity type.
         * @param bool $publication It's not copy, but publication.
         * @return void
         */
        protected static function copy($from, $to, $type, $publication = false)
        {
        }
        /**
         * Copy data for site.
         * @param int $from From site id.
         * @param int $to To site id.
         * @return void
         */
        public static function copySite($from, $to)
        {
        }
        /**
         * Copy data for landing.
         * @param int $from From landing id.
         * @param int $to To landing id.
         * @return void
         */
        public static function copyLanding($from, $to)
        {
        }
        /**
         * Publication data for site.
         * @param int $siteId Site id.
         * @return void
         */
        public static function publicationSite($siteId)
        {
        }
        /**
         * Publication data for landing.
         * @param int $lid Landing id.
         * @return void
         */
        public static function publicationLanding($lid)
        {
        }
        /**
         * Prepare data for save in hooks.
         * @param array $data Input data.
         * @return array
         */
        protected static function prepareData(array $data)
        {
        }
        /**
         * Set data hooks for entity.
         * @param int $id Entity id.
         * @param string $type Entity type.
         * @param array $data Data array.
         * @return void
         */
        protected static function saveData($id, $type, array $data)
        {
        }
        /**
         * Index hook's content for entities.
         * @param int $id Entity id.
         * @param string $type Entity type.
         * @return void
         */
        protected static function indexContent($id, $type)
        {
        }
        /**
         * Set data hooks for site.
         * @param int $id Site id.
         * @param array $data Data array.
         * @return void
         */
        public static function saveForSite($id, array $data)
        {
        }
        /**
         * Get hooks for landing.
         * @param int $id Landing id.
         * @param array $data Data array.
         * @return void
         */
        public static function saveForLanding($id, array $data)
        {
        }
        /**
         * Index hook's content for landing.
         * @param int $id Landing id.
         * @return void
         */
        public static function indexLanding($id)
        {
        }
        /**
         * Delete data hooks for entity.
         * @param int $id Entity id.
         * @param string $type Entity type.
         * @return void
         */
        protected static function deleteData($id, $type)
        {
        }
        /**
         * Delete data hooks for site.
         * @param int $id Landing id.
         * @return void
         */
        public static function deleteForSite($id)
        {
        }
        /**
         * Delete data hooks for landing.
         * @param int $id Landing id.
         * @return void
         */
        public static function deleteForLanding($id)
        {
        }
    }
    class File
    {
        /**
         * Entity type site.
         */
        const ENTITY_TYPE_SITE = 'S';
        /**
         * Entity type landing.
         */
        const ENTITY_TYPE_LANDING = 'L';
        /**
         * Entity type block.
         */
        const ENTITY_TYPE_BLOCK = 'B';
        /**
         * Entity type asset.
         */
        const ENTITY_TYPE_ASSET = 'A';
        /**
         * Returns sanitized file name.
         * @param string $fileName File name.
         * @return string
         */
        public static function sanitizeFileName(string $fileName) : string
        {
        }
        /**
         * Add new record.
         * @param int $fileId File id.
         * @param int $entityId Entity id.
         * @param int $entityType Entity type.
         * @return void
         */
        protected static function add($fileId, $entityId, $entityType)
        {
        }
        /**
         * Get all files id from entity.
         * @param int $entityId Entity id.
         * @param int $entityType Entity type.
         * @return array
         */
        protected static function getFiles($entityId, $entityType)
        {
        }
        /**
         * Mark records for delete.
         * @param int|array $fileId File id.
         * @param int $entityId Entity id.
         * @param int $entityType Entity type.
         * @return void
         */
        protected static function delete($fileId, $entityId, $entityType)
        {
        }
        /**
         * Final delete all marked files.
         * @param int $limit Records limit for one iteration.
         * @return void
         */
        public static function deleteFinal($limit = null)
        {
        }
        /**
         * Add new record for Site.
         * @param int $id Site id.
         * @param int $fileId File id.
         * @return void
         */
        public static function addToSite($id, $fileId)
        {
        }
        /**
         * Gets files id from site.
         * @param int $siteId Site id.
         * @return array
         */
        public static function getFilesFromSite($siteId)
        {
        }
        /**
         * Delete record from Site.
         * @param int $id Site id.
         * @param int|array $fileId File id (by default delete all files from landing).
         * @return void
         */
        public static function deleteFromSite($id, $fileId = array())
        {
        }
        /**
         * Add new record for Landing.
         * @param int $lid Landing id.
         * @param int $fileId File id.
         * @return void
         */
        public static function addToLanding($lid, $fileId)
        {
        }
        /**
         * Gets files id from landing.
         * @param int $landingId Landing id.
         * @return array
         */
        public static function getFilesFromLanding($landingId)
        {
        }
        /**
         * Delete record from Landing.
         * @param int $lid Landing id.
         * @param int|array $fileId File id (by default delete all files from landing).
         * @return void
         */
        public static function deleteFromLanding($lid, $fileId = array())
        {
        }
        /**
         * Add new record(s) for Block.
         * @param int $blockId Block id.
         * @param int|array $fileId File id (or file ids).
         * @return void
         */
        public static function addToBlock($blockId, $fileId)
        {
        }
        /**
         * Add new record(s) for Block (old records will be deleted).
         * @param int $blockId Block id.
         * @param int|array $fileId File id (or file ids).
         * @return void
         */
        public static function replaceInBlock($blockId, $fileId)
        {
        }
        /**
         * Delete record from Block.
         * @param int $blockId Block id.
         * @param int|array $fileId File id (by default delete all files from block).
         * @return void
         */
        public static function deleteFromBlock($blockId, $fileId = array())
        {
        }
        /**
         * Parse some content for search data-fileid for the block.
         * @param int $blockId Block id for content.
         * @param string $content Content.
         * @return array
         */
        public static function getFilesFromBlockContent($blockId, $content)
        {
        }
        /**
         * Gets files id from block.
         * @param int $blockId Block id.
         * @return array
         */
        public static function getFilesFromBlock($blockId)
        {
        }
        /**
         * Add new record for Asset.
         * @param int $assetId Id of landing to which attached asset.
         * @param int $fileId File id.
         * @return void
         */
        public static function addToAsset($assetId, $fileId)
        {
        }
        /**
         * Gets asset files for current landing.
         * @param int $assetId Id of landing to which attached asset.
         * @return array
         */
        public static function getFilesFromAsset($assetId)
        {
        }
        /**
         * Delete asset files for current landing.
         * Not remove from disk immediately, just marked for agent
         * @param int $assetId Id of landing to which attached asset.
         * @param int|int[] $fileId File id (by default delete all files from Asset).
         * @return void
         */
        public static function deleteFromAsset($assetId, $fileId = [])
        {
        }
        /**
         * Mark file as "need rebuild", but not delete them. File will be exist until not created new file.
         * @param int|int[] $assetId Id of landing to which attached asset. If not set - will marked all.
         * @return void
         */
        public static function markAssetToRebuild($assetId = [])
        {
        }
        /**
         * When file rebuilded - delete old files (marked as "need rebuild") for current asset ID (current landing)
         * @param int|int[] $assetId Id of landing to which attached asset.
         * @return void
         */
        public static function markAssetRebuilded($assetId)
        {
        }
        /**
         * Copy files from one entity to another.
         * @param int $from Entity id.
         * @param int $to Entity id.
         * @param string $entityType Entity type.
         * @return void
         */
        protected static function copyEntityFiles($from, $to, $entityType)
        {
        }
        /**
         * Copy files from one site to another.
         * @param int $from Site id.
         * @param int $to Site id.
         * @return void
         */
        public static function copySiteFiles($from, $to)
        {
        }
        /**
         * Copy files from one landing to another.
         * @param int $from Landing id.
         * @param int $to Landing id.
         * @return void
         */
        public static function copyLandingFiles($from, $to)
        {
        }
        /**
         * Copy files from one block to another.
         * @param int $from Block id.
         * @param int $to Block id.
         * @return void
         */
        public static function copyBlockFiles($from, $to)
        {
        }
        /**
         * Gets core file array.
         * @param int $fileId File id.
         * @return mixed
         */
        public static function getFileArray($fileId)
        {
        }
        /**
         * Gets core file path.
         * @param int $fileId File id.
         * @return string
         */
        public static function getFilePath($fileId)
        {
        }
        /**
         * Delete all file Id from File table.
         * @param int $fileId File id to delete.
         * @return void
         */
        public static function releaseFile(int $fileId) : void
        {
        }
        /**
         * Physical delete file.
         * @param int $fileId File id.
         * @return void
         */
        public static function deletePhysical(int $fileId) : void
        {
        }
    }
}
namespace Bitrix\Landing\Source {
    abstract class DataLoader
    {
        protected $config = ['select' => [], 'filter' => [], 'order' => [], 'limit' => 0, 'internal_filter' => []];
        protected $options = [];
        /** @var Seo */
        protected $seo = null;
        public function __construct()
        {
        }
        /**
         * @param array $config
         * @return void
         */
        public function setConfig(array $config)
        {
        }
        /**
         * @param array $options
         * @return void
         */
        public function setOptions(array $options)
        {
        }
        /**
         * @return array
         */
        public abstract function getElementListData();
        /**
         * @param mixed $element
         * @return array
         */
        public abstract function getElementData($element);
        /**
         * @param mixed $filter
         * @return array
         */
        public function normalizeFilter($filter)
        {
        }
        /**
         * @param mixed $filter
         * @return string
         */
        public function calculateFilterHash($filter)
        {
        }
        /**
         * @param mixed $filter
         * @return string
         */
        public function getFilterHash($filter)
        {
        }
        /**
         * Returns showed fields list, if exists.
         *
         * @return array|null
         */
        protected function getSelectFields()
        {
        }
        /**
         * Returns showed fields prepared list.
         *
         * @return array
         */
        protected function getPreparedSelectFields()
        {
        }
        /**
         * Returns user filter, if exists.
         *
         * @return array|null
         */
        protected function getFilter()
        {
        }
        /**
         * Returns prepared filter.
         *
         * @param array $fields
         * @return array
         */
        protected function getPreparedFilter(array $fields)
        {
        }
        /**
         * Returns element order.
         *
         * @return array|null
         */
        protected function getOrder()
        {
        }
        /**
         * Returns max element count for showing.
         *
         * @return int
         */
        protected function getLimit()
        {
        }
        /**
         * Returns additional user-uncontrolled filter. Can be absent.
         *
         * @return array|null
         */
        protected function getInternalFilter()
        {
        }
        /**
         * Returns settings option, if exists.
         *
         * @param string $index Option name.
         * @return mixed|null
         */
        protected function getSettingsValue($index)
        {
        }
        /**
         * Returns additinal option value, if exists.
         *
         * @param string $index Option name.
         * @return mixed|null
         */
        protected function getOptionsValue($index)
        {
        }
        /**
         * @return Seo
         */
        public function getSeo()
        {
        }
        /**
         * @param string $name
         * @return string|null
         */
        public function getSeoProperty($name)
        {
        }
        /**
         * @return string|null
         */
        public function getSeoTitle()
        {
        }
    }
    class Selector
    {
        /* default path to open the selector in the slider */
        const SOURCE_PATH = '/bitrix/tools/landing/source.php';
        /* default event id for get sources */
        const EVENT_BUILD_SOURCE_LIST = 'OnBuildSourceList';
        /* site mode for sources */
        const SITE_MODE_UNKNOWN = 'UNKNOWN';
        const SITE_MODE_SYSTEM = 'SYSTEM';
        const SITE_MODE_PAGE = 'PAGE';
        const SITE_MODE_STORE = 'STORE';
        const SITE_MODE_KNOWLEDGE = 'KNOWLEDGE';
        /* selector type */
        const SOURCE_TYPE_COMPONENT = 'C';
        // component selector
        const SOURCE_TYPE_PRESET = 'P';
        // without selector - fixed preset
        /* transfer type source filter after selecting items to display */
        const ACTION_TYPE_EVENT = 'event';
        // use javascript event directly
        const ACTION_TYPE_SLIDER = 'slider';
        // use standart slider method BX.SidePanel.Instance.postMessageTop
        const ACTION_NAME = 'save';
        // default event name for Selector::ACTION_TYPE_SLIDER
        /* config for current landing */
        protected $config = [
            'SOURCE_EVENT_ID' => self::EVENT_BUILD_SOURCE_LIST,
            // Event ID for a list of sources
            'SOURCE_PATH' => self::SOURCE_PATH,
            // path for open source filter (component, include page, etc)
            'RESULT_ACTION_TYPE' => self::ACTION_TYPE_SLIDER,
            //
            'RESULT_ACTION_NAME' => self::ACTION_NAME,
        ];
        /** @var string */
        protected $siteMode = self::SITE_MODE_UNKNOWN;
        /** @var array */
        protected $restrictions = null;
        /** @var array */
        protected $sourceList = null;
        /**
         * Selector constructor.
         *
         * @param array $config Initialization parameters.
         * The array must contain all or part of the elements of the \Bitrix\Landing\Source\Selector::$config.
         *
         * @return void
         */
        public function __construct(array $config = [])
        {
        }
        /**
         * Getting a list of sources.
         * Calls the event handlers and processes their results (checks the accuracy of the data returned by the handlers).
         *
         * @return void
         */
        protected function initSourceList()
        {
        }
        /**
         * Returns base uri for source filter form. Should be used to build page navigation when selecting items, filter operation.
         *
         * @param string $module
         * @param string $sourceId
         * @return Main\Web\Uri
         */
        public function getSourceFilterBaseUri($module, $sourceId)
        {
        }
        /**
         * Returns a full description of the sources: the URL to open the filter, a list of possible fields of elements, etc
         *
         * @return array
         */
        public function getSourcesDescription()
        {
        }
        /**
         * Searches for source by index.
         * @see \Bitrix\Landing\Source\Selector::getSourceIndex
         *
         * @param string $index
         * @return array|null
         */
        public function findSource($index)
        {
        }
        /**
         * Displays a source filter for selecting which items are shown.
         *
         * @param string $index
         * @return void
         */
        public function showSourceFilter($index)
        {
        }
        /**
         * Internal method for show a filter of source from request id.
         *
         * @return void
         */
        public function showSourceFilterByRequest()
        {
        }
        /**
         * @param string $index
         * @param array $parameters
         * @param array $options
         * @return DataLoader|null
         */
        public function getDataLoader($index, array $parameters, array $options = [])
        {
        }
        /**
         * Returns a full description of the sources: the URL to open the filter, a list of possible fields of elements, etc
         *
         * @param array $config
         * @return array
         */
        public static function getSources(array $config = [])
        {
        }
        /**
         * Returns a short description of the sources: id and name
         *
         * @param array $config
         * @return array
         */
        public static function getSourceNames(array $config = [])
        {
        }
        /**
         * Returns current site mode for sources.
         *
         * @return string
         */
        public function getSiteMode()
        {
        }
        /**
         * @param array $modeList
         * @return bool
         */
        public function checkSiteMode(array $modeList)
        {
        }
        /**
         * Returns a list of constraints that module sources must satisfy (for example, information block ID).
         *
         * @param string $module
         * @return array|null
         */
        public function getModuleRestrictions($module)
        {
        }
        /* Public tools */
        /**
         * @param string $module
         * @param string $sourceId
         * @return string
         */
        public static function getSourceIndex($module, $sourceId)
        {
        }
        /**
         * @return array
         */
        public function getResultAction()
        {
        }
        /**
         * @return array
         */
        public function getDefaultLinkActions()
        {
        }
        /* Public tools end */
        /**
         * Set/update selector config.
         *
         * @param array $config
         * @return void
         */
        protected function setConfig(array $config)
        {
        }
        /**
         * Checks selector config.
         *
         * @param array $config
         * @return array
         */
        protected function prepareConfig(array $config)
        {
        }
        /**
         * Filter for array_filter - remove items with NULL value.
         *
         * @param mixed $value
         * @return bool
         */
        protected function clearFilter($value)
        {
        }
        /**
         * Load current landing mode
         *
         * @return void
         */
        protected function initSiteMode()
        {
        }
        /**
         * Load constraints that sources must satisfy (for example, information block ID).
         *
         * @return void
         */
        protected function initRestrictions()
        {
        }
        /**
         * Check source description.
         *
         * @param string $module
         * @param array $parameters
         * @return array|null
         */
        protected function prepareSourceParameters($module, $parameters)
        {
        }
        /**
         * Check common settings.
         *
         * @param array $settings
         * @return array
         */
        protected function checkSystemSettings(array $settings)
        {
        }
        /**
         * Check settings for component filter.
         *
         * @param array $settings
         * @return array|null
         */
        protected function checkComponentSettings(array $settings)
        {
        }
        /**
         * Check fixed block filter.
         *
         * @param array $settings
         * @return array|null
         */
        protected function checkPresetSettings(array $settings)
        {
        }
        /**
         * Check additional settings for component bitrix:ui.sidepanel.wrapper
         *
         * @param array $settings
         * @return array
         */
        protected function checkWrapperSettings(array $settings)
        {
        }
        /**
         * Checks the validity of the description of the source fields available.
         *
         * @param array $settings
         * @return array|null
         */
        protected function checkDataSettings(array $settings)
        {
        }
        /**
         * Returns required parameters for base url.
         *
         * @param string $index
         * @return array
         */
        protected function getBaseUrlParams($index)
        {
        }
        /**
         * Returns system parameters (language, site, template) for urls.
         *
         * @return array
         */
        protected function getUrlSystemParams()
        {
        }
        /**
         * @param mixed $item
         * @return bool
         */
        protected static function isNotEmptyField($item)
        {
        }
        /**
         * @param array $field
         * @return array|null
         */
        protected function prepareOrderField(array $field)
        {
        }
        /**
         * @param array $row
         * @param string $name
         * @return string|null
         */
        protected function prepareStringValue(array $row, $name)
        {
        }
    }
    class Seo
    {
        const TITLE = 'title';
        const BROWSER_TITLE = 'browser_title';
        const KEYWORDS = 'keywords';
        const DESCRIPTION = 'description';
        /** @var array seo properties */
        protected $properties = [];
        public function __construct()
        {
        }
        /**
         * @param array $values
         * @return void
         */
        public function setProperties(array $values)
        {
        }
        /**
         * @param string $name
         * @param string|array $value
         * @return void
         */
        public function setProperty($name, $value)
        {
        }
        /**
         * @return array|null
         */
        public function getProperties()
        {
        }
        /**
         * @param string $name
         * @return string|array|null
         */
        public function getProperty($name)
        {
        }
        /**
         * @return void
         */
        public function clear()
        {
        }
        /**
         * @return void
         */
        public function clearProperties()
        {
        }
        /**
         * @param string $name
         * @return void
         */
        public function clearProperty($name)
        {
        }
        /**
         * @param string $value
         * @return void
         */
        public function setTitle($value)
        {
        }
        /**
         * @param string $value
         * @return void
         */
        public function setBrowserTitle($value)
        {
        }
        /**
         * @param string|array $value
         * @return void
         */
        public function setKeywords($value)
        {
        }
        /**
         * @param string $value
         * @return void
         */
        public function setDescription($value)
        {
        }
        /**
         * @return string|null
         */
        public function getTitle()
        {
        }
        /**
         * @return string|null
         */
        public function getBrowserTitle()
        {
        }
        /**
         * @return string|null
         */
        public function getKeywords()
        {
        }
        /**
         * @return string|null
         */
        public function getDescription()
        {
        }
        /**
         * @param string $value
         * @param mixed $name
         * @return bool
         */
        protected static function clearValues($value, $name)
        {
        }
    }
    class BlockFilter
    {
        /**
         * @param array $row
         * @return bool
         */
        public static function checkRow($row)
        {
        }
        /**
         * @param array $row
         * @return bool
         */
        public static function checkPreparedRow($row)
        {
        }
        /**
         * @param string $name
         * @param string $key
         * @param array $value
         * @return array|null
         */
        public static function createRow(string $name, string $key, array $value)
        {
        }
    }
    abstract class Filter
    {
        /** @var array Filter field list */
        protected $fields = [];
        protected $fieldTypeHandlers = [];
        /**
         * Filter constructor.
         * @return void
         */
        public function __construct()
        {
        }
        /**
         * @param array $fields
         * @return void
         */
        public function setFields(array $fields)
        {
        }
        /**
         * @param array $sourceFilter
         * @return array
         */
        public function create(array $sourceFilter)
        {
        }
        /**
         * @return void
         */
        protected function initFieldTypeHandlers()
        {
        }
        /**
         * @param array $field
         * @return string
         */
        protected function getFieldHandler(array $field)
        {
        }
        /**
         * @return string|null
         */
        protected function getQuickSearchField()
        {
        }
        /**
         * @param array &$result
         * @param string $fieldId
         * @param array $field
         * @param array $value
         * @return void
         */
        protected function addQuickSearchValue(array &$result, $fieldId, array $field, array $value)
        {
        }
    }
    class DataFilter extends \Bitrix\Landing\Source\Filter
    {
        /**
         * DataFilter constructor.
         * @return void
         */
        public function __construct()
        {
        }
        /**
         * @return void
         */
        protected function initFieldTypeHandlers()
        {
        }
        /**
         * @param array $field
         * @param string $operator
         * @return string
         */
        protected static function getFilterOperator(array $field, $operator)
        {
        }
        /**
         * @param array &$result
         * @param array $items
         * @param array $field
         * @return void
         */
        protected function addRows(array &$result, array $items, array $field)
        {
        }
        /**
         * @param array &$filter
         * @param string $fieldId
         * @param array $field
         * @param array $value
         * @return void
         */
        protected function addQuickSearchValue(array &$filter, $fieldId, array $field, array $value)
        {
        }
        /**
         * @param array &$result
         * @param string $fieldId
         * @param array $field
         * @param array $value
         * @return void
         */
        protected function addStringValue(array &$result, $fieldId, array $field, array $value)
        {
        }
        /**
         * @param array &$result
         * @param string $fieldId
         * @param array $field
         * @param array $value
         * @return void
         */
        protected function addNumberValue(array &$result, $fieldId, array $field, array $value)
        {
        }
        /**
         * @param array &$result
         * @param string $fieldId
         * @param array $field
         * @param array $value
         * @return void
         */
        protected function addDateValue(array &$result, $fieldId, array $field, array $value)
        {
        }
        /**
         * @param array &$result
         * @param string $fieldId
         * @param array $field
         * @param array $value
         * @return void
         */
        protected function addListValue(array &$result, $fieldId, array $field, array $value)
        {
        }
        /**
         * @param array &$result
         * @param string $fieldId
         * @param array $field
         * @param array $value
         * @return void
         */
        protected function addCheckboxValue(array &$result, $fieldId, array $field, array $value)
        {
        }
        /**
         * @param array &$result
         * @param string $fieldId
         * @param array $field
         * @param array $value
         * @return void
         */
        protected function addDestSelectorValue(array &$result, $fieldId, array $field, array $value)
        {
        }
    }
    class UiFilterPreset extends \Bitrix\Landing\Source\Filter
    {
        /**
         * UiFilterPreset constructor.
         * @return void
         */
        public function __construct()
        {
        }
        /**
         * @param array $sourceFilter
         * @return array
         */
        public function create(array $sourceFilter)
        {
        }
        /**
         * @return void
         */
        protected function initFieldTypeHandlers()
        {
        }
        /**
         * @param array &$result
         * @param string $fieldId
         * @param array $field
         * @param array $value
         * @return void
         */
        protected function addQuickSearchValue(array &$result, $fieldId, array $field, array $value)
        {
        }
        /**
         * @param array &$result
         * @param string $fieldId
         * @param array $field
         * @param array $value
         * @return void
         */
        protected function addStringValue(array &$result, $fieldId, array $field, array $value)
        {
        }
        /**
         * @param array &$result
         * @param string $fieldId
         * @param array $field
         * @param array $value
         * @return void
         */
        protected function addNumberValue(array &$result, $fieldId, array $field, array $value)
        {
        }
        /**
         * @param array &$result
         * @param string $fieldId
         * @param array $field
         * @param array $value
         * @return void
         */
        protected function addDateValue(array &$result, $fieldId, array $field, array $value)
        {
        }
        /**
         * @param array &$result
         * @param string $fieldId
         * @param array $field
         * @param array $value
         * @return void
         */
        protected function addCustomDateValue(array &$result, $fieldId, array $field, array $value)
        {
        }
        /**
         * @param array &$result
         * @param string $fieldId
         * @param array $field
         * @param array $value
         * @return void
         */
        protected function addListValue(array &$result, $fieldId, array $field, array $value)
        {
        }
        /**
         * @param array &$result
         * @param string $fieldId
         * @param array $field
         * @param array $value
         * @return void
         */
        protected function addCheckboxValue(array &$result, $fieldId, array $field, array $value)
        {
        }
        /**
         * @param array &$result
         * @param string $fieldId
         * @param array $field
         * @param array $value
         * @return void
         */
        protected function addDestSelectorValue(array &$result, $fieldId, array $field, array $value)
        {
        }
    }
    class FilterEntity extends \Bitrix\Landing\Internals\BaseTable
    {
        /**
         * Internal class.
         * @var string
         */
        public static $internalClass = 'FilterEntityTable';
        /**
         * Gets selector object.
         * @return Selector
         */
        protected static function getSourceSelector()
        {
        }
        /**
         * Gets filter row by id.
         * @param int $filterId Filter id.
         * @return array
         */
        public static function getFilter($filterId)
        {
        }
        /**
         * Store the filter for the block.
         * @param int $blockId Block id.
         * @param array $sourceParams Source params for this block.
         * @return void
         */
        public static function setFilter($blockId, array &$sourceParams = [])
        {
        }
        /**
         * Remove the block from all filters.
         * @param int $blockId Block id.
         * @return void
         */
        public static function removeBlock($blockId)
        {
        }
    }
}
namespace Bitrix\Landing\Transfer {
    /**
     * Class AppConfiguration
     * @see rest/dev/configuration/readme.php
     */
    class AppConfiguration
    {
        /**
         * Block and component for replace unknown rest blocks.
         */
        const SYSTEM_BLOCK_REST_PENDING = 'system.rest.pending';
        const SYSTEM_COMPONENT_REST_PENDING = 'bitrix:landing.rest.pending';
        /**
         * Prefix code.
         */
        const PREFIX_CODE = 'landing_';
        /**
         * If transfer are processing.
         * @var bool
         */
        protected static $processing = false;
        /**
         * With which entities we can work.
         * @var array
         */
        private static $entityList = ['LANDING' => 500];
        /**
         * Additional magic manifest.
         * @var array
         */
        private static $accessManifest = ['total', 'landing_page', 'landing_store', 'landing_knowledge'];
        /**
         * Returns true if transfer are processing.
         * @return bool
         */
        public static function inProcess() : bool
        {
        }
        /**
         * Returns known entities.
         * @return array
         */
        public static function getEntityList() : array
        {
        }
        /**
         * Builds manifests for each placement.
         * @param Event $event Event instance.
         * @return array
         */
        public static function getManifestList(\Bitrix\Main\Event $event) : array
        {
        }
        /**
         * Preparing steps before export start.
         * @param Event $event Event instance.
         * @return array|null
         */
        public static function onInitManifest(\Bitrix\Main\Event $event) : ?array
        {
        }
        /**
         * Export step.
         * @param Event $event Event instance.
         * @return array|null
         */
        public static function onEventExportController(\Bitrix\Main\Event $event) : ?array
        {
        }
        /**
         * Import step.
         * @param Event $event Event instance.
         * @return array|null
         */
        public static function onEventImportController(\Bitrix\Main\Event $event) : ?array
        {
        }
        /**
         * Final step.
         * @param Event $event Event instance.
         * @return array
         */
        public static function onFinish(\Bitrix\Main\Event $event) : array
        {
        }
        /**
         * Saves file to DB and returns id ID.
         * @param array $file File data from getUnpackFile.
         * @return int|null
         */
        public static function saveFile(array $file) : ?int
        {
        }
    }
}
namespace Bitrix\Landing\Transfer\Export {
    class Landing
    {
        /**
         * Exports landing.
         * @param int $landingId Landing id.
         * @param string $fileName File name.
         * @return array|null
         */
        public static function exportLanding(int $landingId, string $fileName) : ?array
        {
        }
    }
    class Site
    {
        /**
         * Maximum sites for export.
         */
        const MAX_SITE_FOR_EXPORT = 10;
        /**
         * File name for step when called site meta data.
         */
        const FILENAME_EXPORT_STEP_META = 'page_#site_id#_00';
        /**
         * File name for step when called ste page.
         */
        const FILENAME_EXPORT_STEP_PAGE = 'page_#site_id#_10_#landing_id#';
        /**
         * Returns export url for the site.
         * @param string $type Site type.
         * @param int $siteId Site id.
         * @return string
         */
        public static function getUrl(string $type, int $siteId) : string
        {
        }
        /**
         * Returns applications id by it codes.
         * @param array $appCodes Applications codes.
         * @return array
         */
        protected static function getRestAppIds(array $appCodes) : array
        {
        }
        /**
         * Returns prepare manifest settings for export.
         * @param Event $event Event instance.
         * @return array|null
         */
        public static function getInitManifest(\Bitrix\Main\Event $event) : ?array
        {
        }
        /**
         * Exports site meta information.
         * @param int $siteId Site id.
         * @return array|null
         */
        protected static function exportSiteMeta(int $siteId) : ?array
        {
        }
        /**
         * Process one export step.
         * @param Event $event Event instance.
         * @return array
         */
        public static function nextStep(\Bitrix\Main\Event $event) : array
        {
        }
        /**
         * Final step.
         * @param Event $event Event instance.
         * @return array
         */
        public static function onFinish(\Bitrix\Main\Event $event) : array
        {
        }
    }
}
namespace Bitrix\Landing\Transfer\Import {
    class Landing
    {
        /**
         * Finds repository block and return it id.
         * @param string $appCode Application code.
         * @param string $xmlId External id application.
         * @return int|null
         */
        public static function getRepoId(string $appCode, string $xmlId) : ?int
        {
        }
        /**
         * Checks files in update data and replace files paths.
         * @param Block $block Block instance.
         * @param array $data Data for passing to updateNodes.
         * @param Configuration\Structure $structure Additional instance for unpacking files.
         * @param bool $ignoreManifest Ignore manifest for detecting files.
         * @return array
         */
        protected static function addFilesToBlock(\Bitrix\Landing\Block $block, array $data, \Bitrix\Rest\Configuration\Structure $structure, $ignoreManifest = false) : array
        {
        }
        /**
         * Save new data to the block.
         * @param Block $blockInstance Block instance.
         * @param array $block Block data.
         */
        public static function saveDataToBlock(\Bitrix\Landing\Block $blockInstance, array $block) : void
        {
        }
        /**
         * Imports block in to the landing and returns it new id.
         * @param LandingCore $landing Landing instance.
         * @param array $block Block data.
         * @param Configuration\Structure $structure Additional instance for unpacking files.
         * @param bool &$pending This block in pending mode.
         * @return int
         */
        protected static function importBlock(\Bitrix\Landing\Landing $landing, array $block, \Bitrix\Rest\Configuration\Structure $structure, &$pending = false) : int
        {
        }
        /**
         * Imports landing.
         * @param Event $event Event instance.
         * @return array|null
         */
        public static function importLanding(\Bitrix\Main\Event $event) : ?array
        {
        }
    }
    class Site
    {
        /**
         * Returns export url for the site.
         * @param string $type Site type.
         * @return string
         */
        public static function getUrl(string $type) : string
        {
        }
        /**
         * Returns prepare manifest settings for export.
         * @param Event $event Event instance.
         * @return array|null
         */
        public static function getInitManifest(\Bitrix\Main\Event $event) : ?array
        {
        }
        /**
         * Import site data.
         * @param array $data Site data.
         * @param Configuration\Structure $structure Instance for getting files.
         * @return AddResult
         */
        protected static function importSite(array $data, \Bitrix\Rest\Configuration\Structure $structure) : \Bitrix\Main\ORM\Data\AddResult
        {
        }
        /**
         * Process one export step.
         * @param Event $event Event instance.
         * @return array|null
         */
        public static function nextStep(\Bitrix\Main\Event $event) : ?array
        {
        }
        /**
         * Sets replace array to the pending blocks.
         * @param array $pendingIds Pending block ids.
         * @param array $replace Array for future linking.
         * @return void
         */
        protected static function linkingPendingBlocks(array $pendingIds, array $replace) : void
        {
        }
        /**
         * Final step.
         * @param Event $event
         * @return array
         */
        public static function onFinish(\Bitrix\Main\Event $event) : array
        {
        }
    }
}
namespace Bitrix\Landing {
    /**
     * Class Role.
     * In now time Role entity exist only for sites.
     * @package Bitrix\Landing
     */
    class Role extends \Bitrix\Landing\Internals\BaseTable
    {
        /**
         * Expected type for role.
         * @var string
         */
        protected static $expectedType = null;
        /**
         * Internal class.
         * @var string
         */
        public static $internalClass = 'RoleTable';
        /**
         * Gets all roles. Install demo data if need.
         * @return array
         */
        public static function fetchAll()
        {
        }
        /**
         * Install demo data.
         * @param string $type Type of roles.
         * @return void
         */
        public static function installDemo($type = null)
        {
        }
        /**
         * Set new access codes for role and refresh all rights.
         * @param int $roleId Role id.
         * @param array $codes Codes array.
         * @return void
         */
        public static function setAccessCodes($roleId, array $codes = array())
        {
        }
        /**
         * Gets rights for each site in this role.
         * @param int $roleId
         * @return array
         */
        public static function getRights($roleId)
        {
        }
        /**
         * Set rights for role.
         * @param int $roleId Role id.
         * @param array $rights Rights array ([[site_id] => [right1, right2]]
         * @param array $additionalRights Additional rights array ([Rights::ADDITIONAL_RIGHTS]).
         * @return void
         */
        public static function setRights($roleId, $rights = [], $additionalRights = null)
        {
        }
        /**
         * Sets new expected type for role.
         * @param string|null $type New expected type;
         * @return void
         */
        public static function setExpectedType($type)
        {
        }
        /**
         * Gets expected role type.
         * @return string
         */
        public static function getExpectedType()
        {
        }
        /**
         * Gets expected roles id.
         * @return array
         */
        public static function getExpectedRoleIds()
        {
        }
    }
    abstract class Field
    {
        /**
         * Field id.
         * @var string
         */
        protected $id;
        /**
         * Field code.
         * @var string
         */
        protected $code;
        /**
         * Field value.
         * @var string
         */
        protected $value;
        /**
         * Field title.
         * @var string
         */
        protected $title;
        /**
         * Default value.
         * @var string
         */
        protected $default;
        /**
         * Field help.
         * @var string
         */
        protected $help;
        /**
         * Searchable flag of field.
         * @var bool
         */
        protected $searchable = false;
        /**
         * Modificator, which called within getting value.
         * @var callable
         */
        protected $fetchModificator = null;
        /**
         * Class constructor.
         * @param string $code Field code.
         * @param array $params Field params.
         */
        public function __construct($code, array $params = array())
        {
        }
        /**
         * Gets true, if current value is empty.
         * @return bool
         */
        public function isEmptyValue()
        {
        }
        /**
         * Set value to the field.
         * @param string $value Value.
         * @return void
         */
        public function setValue($value)
        {
        }
        /**
         * Get value of the field.
         * @return mixed
         */
        public function getValue()
        {
        }
        /**
         * Get help value of the field.
         * @return string
         */
        public function getHelpValue()
        {
        }
        /**
         * Returns searchable flag of field.
         * @return bool
         */
        public function isSearchable()
        {
        }
        /**
         * Set new code of the field..
         * @param string $code Code.
         * @return void
         */
        public function setCode($code)
        {
        }
        /**
         * Get code of the field.
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get label (title) of the field.
         * @return mixed
         */
        public function getLabel()
        {
        }
        /**
         * Get type.
         * @return string
         */
        public function getType()
        {
        }
        /**
         * Magic method return value as string.
         * @return string
         */
        public function __toString()
        {
        }
        /**
         * Vew field.
         * @param array $params Array params:
         * name_format - format for field name (for example ADDITIONAL[#field_code#])
         * class - css-class for this element
         * additional - some additional params as is.
         * @return html
         */
        public abstract function viewForm(array $params = array());
    }
    class Debug
    {
        /**
         * Gets last query in ORM.
         * @return string
         */
        public static function q()
        {
        }
        /**
         * Logging in system log.
         * @param string $itemId Log item id.
         * @param mixed $itemDesc Log item description.
         * @param string $typeId Log type id.
         * @return void
         */
        public static function log($itemId, $itemDesc, $typeId = 'LANDING_LOG')
        {
        }
    }
}
namespace Bitrix\Landing\Field {
    class Hidden extends \Bitrix\Landing\Field
    {
        /**
         * Vew field.
         * @param array $params Array params:
         * name - field name
         * class - css-class for this element
         * additional - some additional params as is.
         * @return void
         */
        public function viewForm(array $params = array())
        {
        }
        /**
         * Gets true, if current value is empty.
         * @return bool
         */
        public function isEmptyValue()
        {
        }
    }
    class Text extends \Bitrix\Landing\Field
    {
        /**
         * Max length of the field.
         * @var int
         */
        protected $maxlength;
        /**
         * Placeholder for input.
         * @var string
         */
        protected $placeholder;
        /**
         * Class constructor.
         * @param string $code Field code.
         * @param array $params Field params.
         */
        public function __construct($code, array $params = array())
        {
        }
        /**
         * Gets true, if current value is empty.
         * @return bool
         */
        public function isEmptyValue()
        {
        }
        /**
         * Vew field.
         * @param array $params Array params:
         * name - field name
         * class - css-class for this element
         * additional - some additional params as is.
         * @return void
         */
        public function viewForm(array $params = array())
        {
        }
        /**
         * Set value to the field.
         * @param string $value Value.
         * @return void
         */
        public function setValue($value)
        {
        }
    }
    class Textarea extends \Bitrix\Landing\Field\Text
    {
        /**
         * Vew field.
         * @param array $params Array params:
         * name - field name
         * class - css-class for this element
         * additional - some additional params as is.
         * @return void
         */
        public function viewForm(array $params = array())
        {
        }
        /**
         * Gets true, if current value is empty.
         * @return bool
         */
        public function isEmptyValue()
        {
        }
    }
    class Select extends \Bitrix\Landing\Field
    {
        /**
         * Select options.
         * @var array
         */
        protected $options = array();
        /**
         * Multiple list.
         * @var bool
         */
        protected $multiple = false;
        /**
         * Class constructor.
         * @param string $code Field code.
         * @param array $params Field params.
         */
        public function __construct($code, array $params = array())
        {
        }
        /**
         * Gets true, if current value is empty.
         * @return bool
         */
        public function isEmptyValue()
        {
        }
        /**
         * Multiple or not current field.
         * @return bool
         */
        public function isMulti()
        {
        }
        /**
         * Vew field.
         * @param array $params Array params:
         * name - field name
         * class - css-class for this element
         * additional - some additional params as is.
         * @return void
         */
        public function viewForm(array $params = array())
        {
        }
        /**
         * Creates select name in correct format.
         * @return string $nameFormat Formatted name.
         * @return string
         */
        public function getName($nameFormat)
        {
        }
        /**
         * Get options as array
         * @return array
         */
        public function getOptions()
        {
        }
    }
    class Checkbox extends \Bitrix\Landing\Field
    {
        /**
         * Vew field.
         * @param array $params Array params:
         * name - field name
         * class - css-class for this element
         * additional - some additional params as is.
         * @return void
         */
        public function viewForm(array $params = array())
        {
        }
        /**
         * Gets true, if current value is empty.
         * @return bool
         */
        public function isEmptyValue()
        {
        }
        /**
         * Magic method return value as string.
         * @return string
         */
        public function __toString()
        {
        }
    }
}
namespace Bitrix\Landing {
    class Config
    {
        /**
         * Gets default config.
         * @return array
         */
        protected static function getDefaultConfig()
        {
        }
        /**
         * Will loaded local or default config and return it.
         * @return array
         */
        protected static function loadConfig()
        {
        }
        /**
         * Gets value from config by code.
         * @param string $code Var code.
         * @return mixed
         */
        public static function get($code)
        {
        }
    }
}
namespace Bitrix\Landing\Binding {
    abstract class Entity
    {
        /**
         * Entity type 'SITE'.
         */
        const ENTITY_TYPE_SITE = 'S';
        /**
         * Entity type 'LANDING'.
         */
        const ENTITY_TYPE_LANDING = 'L';
        /**
         * Binding type, should specified in any child class.
         * @var null|string
         */
        protected static $bindingType = null;
        /**
         * Current binding id.
         * @var mixed
         */
        protected $bindingId = null;
        /**
         * Entity constructor.
         * @param mixed $code Binding code.
         */
        public function __construct($code)
        {
        }
        /**
         * Returns row id for current binding and entity.
         * @param int $entityId Entity id.
         * @param string $entityType Entity type.
         * @return int
         */
        private function getBindingId($entityId, $entityType)
        {
        }
        /**
         * Add new binding row.
         * @param int $entityId Entity id.
         * @param string $entityType Entity type.
         * @return int|null New row id.
         */
        private function addBinding($entityId, $entityType)
        {
        }
        /**
         * Delete binding row by id.
         * @param int $bindingId Row id.
         * @return void
         */
        private function deleteBindingId($bindingId)
        {
        }
        /**
         * Bind entity for current binding type/id.
         * @param int $entityId Entity id.
         * @param string $entityType Entity type.
         * @return bool Success adding.
         */
        private function bind($entityId, $entityType)
        {
        }
        /**
         * Unbind entity for current binding type/id.
         * @param int $entityId Entity id.
         * @param string $entityType Entity type.
         * @return bool Success on exist.
         */
        private function unbind($entityId, $entityType)
        {
        }
        /**
         * Local method for selecting binding entities.
         * @param mixed $bindingId Binding code.
         * @return array
         */
        private static function getBindings($bindingId)
        {
        }
        /**
         * Returns binding list of entities by specified binding type.
         * @param mixed $code Binding code.
         * @return array
         */
        public static function getList($code = null)
        {
        }
        /**
         * Bind site for current entity.
         * @param int $siteId Site id.
         * @return void
         */
        public function bindSite($siteId)
        {
        }
        /**
         * Unbind site for current entity.
         * @param int $siteId Site id.
         * @return void
         */
        public function unbindSite($siteId)
        {
        }
        /**
         * Bind landing for current entity.
         * @param int $landingId Landing id.
         * @return void
         */
        public function bindLanding($landingId)
        {
        }
        /**
         * Unbind landing for current entity.
         * @param int $landingId Landing id.
         * @return void
         */
        public function unbindLanding($landingId)
        {
        }
    }
    class Group extends \Bitrix\Landing\Binding\Entity
    {
        /**
         * Type of role for group's type.
         */
        const ROLE_TYPE = 'GROUP';
        /**
         * Binding type.
         * @var string
         */
        protected static $bindingType = 'G';
        /**
         * Accepts array with site data and replaces site title to group title.
         * @param array $input Site data ([ID] at least).
         * @return array
         */
        public static function recognizeSiteTitle(array $input) : array
        {
        }
        /**
         * Returns tasks for access.
         * @return array
         */
        protected static function getAccessTasks()
        {
        }
        /**
         * Returns role id for access to new site.
         * @return int
         */
        protected static function getRoleId()
        {
        }
        /**
         * Call when binding new group.
         * @param int $siteId Site id.
         * @return void
         */
        protected function addSiteRights($siteId)
        {
        }
        /**
         * Call when unbinding group.
         * @param int $siteId Site id.
         * @return void
         */
        protected function removeSiteRights($siteId)
        {
        }
    }
    class Menu extends \Bitrix\Landing\Binding\Entity
    {
        /**
         * Binding type.
         * @var string
         */
        protected static $bindingType = 'M';
    }
}
namespace Bitrix\Landing\Controller {
    class Note extends \Bitrix\Main\Engine\Controller
    {
        public function getDefaultPreFilters()
        {
        }
        /**
         * Returns true if current user have 'edit' right.
         * @return bool
         */
        protected static function canCreateNew() : bool
        {
        }
        /**
         * Returns available entities short list for note creating.
         * @return array
         */
        public static function getTargetsAction() : array
        {
        }
        /**
         * Creates new knowledge page and returns info about it.
         * @param int $kbId Knowledge id.
         * @param string $sourceType Source type.
         * @param int $sourceId Source id.
         * @param string $scope Scope.
         * @return array|null
         */
        public function createNoteAction(int $kbId, string $sourceType, int $sourceId, ?string $scope = null) : ?array
        {
        }
    }
    class Cookies extends \Bitrix\Main\Engine\Controller
    {
        public function getDefaultPreFilters()
        {
        }
        /**
         * Returns site cookie agreements.
         * @param int $siteId Site id.
         * @return array
         */
        public function getAgreementsAction(int $siteId) : array
        {
        }
        /**
         * Accepts agreements from user.
         * @param int $siteId Site id.
         * @param array $accepted Agreements codes which user has accepted.
         * @return void
         */
        public function acceptAgreementsAction(int $siteId, array $accepted = []) : void
        {
        }
    }
}
namespace Bitrix\Landing {
    class Block extends \Bitrix\Landing\Internals\BaseTable
    {
        /**
         * Dir of repository of blocks.
         */
        const BLOCKS_DIR = 'blocks';
        /**
         * Tag for managed cache.
         */
        const BLOCKS_TAG = 'landing_blocks';
        /**
         * Block preview filename.
         */
        const PREVIEW_FILE_NAME = 'preview.jpg';
        /**
         * Local css filename.
         */
        const CSS_FILE_NAME = 'style.css';
        /**
         * Local js filename.
         */
        const JS_FILE_NAME = 'script.js';
        /**
         * Pattern for repo code.
         */
        const REPO_MASK = '/^repo_([\\d]+)$/';
        /**
         * Life time for mark new block.
         */
        const NEW_BLOCK_LT = 1209600;
        //86400 * 14
        /**
         * Access level: any access denied to all blocks.
         */
        const ACCESS_A = 'A';
        /**
         * Access level: access denied.
         */
        const ACCESS_D = 'D';
        /**
         * Access level: edit only design.
         */
        const ACCESS_V = 'V';
        /**
         * Access level: edit content and design (not delete).
         */
        const ACCESS_W = 'W';
        /**
         * Access level: full access.
         */
        const ACCESS_X = 'X';
        /**
         * Symbolic code of card.
         */
        const CARD_SYM_CODE = 'card';
        /**
         * Symbolic code of preset.
         */
        const PRESET_SYM_CODE = 'preset';
        /**
         * Internal class.
         * @var string
         */
        public static $internalClass = 'BlockTable';
        /**
         * Id of current block.
         * @var int
         */
        protected $id = 0;
        /**
         * Id of landing.
         * @var int
         */
        protected $lid = 0;
        /**
         * Id of site of landing.
         * @var int
         */
        protected $siteId = 0;
        /**
         * Sort of current block.
         * @var int
         */
        protected $sort = 0;
        /**
         * Is the rest block if > 0.
         * @var int
         */
        protected $repoId = 0;
        /**
         * REST repository some info.
         * @var array
         */
        protected $repoInfo = [];
        /**
         * Code of current block.
         * @var string
         */
        protected $code = '';
        /**
         * Custom anchor of the block.
         * @var string
         */
        protected $anchor = '';
        /**
         * Actually content of current block.
         * @var string
         */
        protected $content = '';
        /**
         * Required user action just added.
         * @var array
         */
        protected $runtimeRequiredUserAction = [];
        /**
         * Access for this block.
         * @see ACCESS_* constants.
         * @var string
         */
        protected $access = 'X';
        /**
         * Additional data of current block.
         * @var array
         */
        protected $metaData = array();
        /**
         * Additional block assets.
         * @var array
         */
        protected $assets = array();
        /**
         * Active or not current block.
         * @var boolean
         */
        protected $active = false;
        /**
         * Active or not page of current block.
         * @var boolean
         */
        protected $landingActive = false;
        /**
         * Deleted or not current block.
         * @var boolean
         */
        protected $deleted = false;
        /**
         * Public or not current block.
         * @var boolean
         */
        protected $public = false;
        /**
         * Public or not current block.
         * @var boolean
         */
        protected $block = false;
        /**
         * Document root.
         * @var string
         */
        protected $docRoot = '';
        /**
         * Instance of Error.
         * @var Error
         */
        protected $error = null;
        /**
         * Dynamic params.
         * @var array
         */
        protected $dynamicParams = [];
        /**
         * Allowed extensions for developers.
         * @var array
         */
        protected $allowedExtensions = ['landing_form', 'landing_carousel', 'landing_google_maps_new', 'landing_countdown', 'landing_gallery_cards', 'landing_chat'];
        /**
         * Constructor.
         * @param int $id Block id.
         * @param array $data Data row from BlockTable (by default get from DB).
         * @param array $params Some additional params.
         */
        public function __construct($id, $data = [], array $params = [])
        {
        }
        /**
         * Fill landing with blocks.
         * @param Landing $landing Landing instance.
         * @param int $limit Limit count for blocks.
         * @param array $params Additional params.
         * @return boolean
         */
        public static function fillLanding(\Bitrix\Landing\Landing $landing, $limit = 0, array $params = array())
        {
        }
        /**
         * Create copy of blocks for draft version.
         * @param \Bitrix\Landing\Landing $landing Landing instance.
         * @return void
         */
        public static function cloneForEdit(\Bitrix\Landing\Landing $landing)
        {
        }
        /**
         * Publication blocks for landing.
         * @param \Bitrix\Landing\Landing $landing Landing instance.
         * @return void
         */
        public static function publicationBlocks(\Bitrix\Landing\Landing $landing)
        {
        }
        /**
         * Recognize landing id by block id.
         * @param int|array $id Block id (id array).
         * @return int|array|false
         */
        public static function getLandingIdByBlockId($id)
        {
        }
        /**
         * Gets row by block id.
         * @param int|array $id Block id (id array).
         * @param array $select Select row.
         * @deprecated since 18.5.0
         * @return int|array|false
         */
        public static function getLandingRowByBlockId($id, array $select = array('ID'))
        {
        }
        /**
         * Gets landing row by block id.
         * @param int|array $id Block id (id array).
         * @param array $select Select row.
         * @return int|array|false
         */
        public static function getRowByBlockId($id, array $select = array('ID'))
        {
        }
        /**
         * Get content from repository by code.
         * @param string $code Block code.
         * @param string $namespace Namespace (optional).
         * @return string
         */
        public static function getContentFromRepository($code, $namespace = null)
        {
        }
        /**
         * Create instance by string code.
         * @param Landing $landing Landing - owner for new block.
         * @param string $code Code of block from repository.
         * @param array $data Additional data array.
         * @return Block|false
         */
        public static function createFromRepository(\Bitrix\Landing\Landing $landing, $code, $data = array())
        {
        }
        /**
         * New or not the block.
         * @param string $block Block code.
         * @return boolean
         */
        protected static function isNewBlock($block)
        {
        }
        /**
         * Gets general paths, where blocks can be found.
         * @return array
         */
        protected static function getGeneralPaths()
        {
        }
        /**
         * Clear cache repository.
         * @return void
         */
        public static function clearRepositoryCache()
        {
        }
        /**
         * Gets all available namespaces.
         * @return array
         */
        protected static function getNamespaces()
        {
        }
        /**
         * Get blocks from repository.
         * @param bool $withManifest Get repo with manifest files of blocks.
         * @return array
         */
        public static function getRepository($withManifest = false)
        {
        }
        /**
         * Get last used blocks by current user.
         * @param int $count Count of blocks.
         * @return array
         */
        public static function getLastUsed($count = 10)
        {
        }
        /**
         * Returns blocks style manifests from repository.
         * @return array
         */
        public static function getStyle() : array
        {
        }
        /**
         * Returns blocks semantic manifests from repository.
         * @return array
         */
        public static function getSemantic() : array
        {
        }
        /**
         * Returns blocks style manifest from repository.
         * @return array
         */
        protected static function getSpecialManifest(string $type) : array
        {
        }
        /**
         * Get block content array.
         * @param int $id Block id.
         * @param boolean $editMode Edit mode if true.
         * @param array $params Some params.
         * @return array
         */
        public static function getBlockContent($id, $editMode = false, array $params = array())
        {
        }
        /**
         * Get block anchor.
         * @param int $id Block id.
         * @return string
         */
        public static function getAnchor($id)
        {
        }
        /**
         * Get namespace for block.
         * @param string $code Code of block.
         * @return string
         */
        protected static function getBlockNamespace($code)
        {
        }
        /**
         * Get local path for block.
         * @param string $code Code of block.
         * @param string $namespace Namespace (optional).
         * @return string
         */
        protected static function getBlockPath($code, $namespace = null)
        {
        }
        /**
         * Exist or not block in current instance.
         * @return boolean
         */
        public function exist()
        {
        }
        /**
         * Get id of the block.
         * @return int
         */
        public function getId()
        {
        }
        /**
         * Gets landing id.
         * @return int
         */
        public function getLandingId()
        {
        }
        /**
         * Gets site id (of landing).
         * @return int
         */
        public function getSiteId()
        {
        }
        /**
         * Get code of the block.
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get anchor of the block.
         * @return string
         */
        public function getLocalAnchor()
        {
        }
        /**
         * Get content of the block.
         * @return string
         */
        public function getContent()
        {
        }
        /**
         * Reset content of current block.
         * @return void
         */
        public function resetContent()
        {
        }
        /**
         * Active or not the block.
         * @return boolean
         */
        public function isActive()
        {
        }
        /**
         * Public or not the block.
         * @return boolean
         */
        public function isPublic()
        {
        }
        /**
         * Get current access.
         * @return string
         */
        public function getAccess()
        {
        }
        /**
         * Set new access to the block.
         * @param string $letter Access letter.
         * @return void
         */
        public function setAccess($letter)
        {
        }
        /**
         * Set active to the block.
         * @param boolean $active Bool: true or false.
         * @return boolean
         */
        public function setActive($active)
        {
        }
        /**
         * Get repo id, if block from repo.
         * @return int
         */
        public function getRepoId()
        {
        }
        /**
         * Gets site row.
         * @return array
         */
        public function getSite()
        {
        }
        /**
         * Get preview picture of the block.
         * @return string
         */
        public function getPreview()
        {
        }
        /**
         * Get error collection
         * @return \Bitrix\Landing\Error
         */
        public function getError()
        {
        }
        /**
         * Get class handler for type of node.
         *
         * @deprecated
         * @see Node\Type::getClassName
         *
         * @param string $type Type.
         * @return string
         */
        protected function getTypeClass($type)
        {
        }
        /**
         * Get manifest array from block.
         * @param bool $extended Get extended manifest.
         * @param bool $missCache Don't save in static cache.
         * @param array $params Additional params.
         * @return array
         */
        public function getManifest($extended = false, $missCache = false, array $params = array())
        {
        }
        /**
         * Localize manifest.
         * @param array $manifest Manifest array.
         * @param array $lang Lang array.
         * @return void
         */
        protected function localizationManifest(array &$manifest, array $lang)
        {
        }
        /**
         * Get manifest array as is from block.
         * @param string $code Code name, format "namespace:code" or just "code".
         * @return array
         */
        public static function getManifestFile($code)
        {
        }
        /**
         * Get some assets of block.
         * @param string $type What return: css, js, ext, class.
         * @return array
         */
        public function getAsset($type = null)
        {
        }
        /**
         * Get css file path, if exists.
         * @return array
         */
        public function getCSS()
        {
        }
        /**
         * Get js file path, if exists.
         * @return array
         */
        public function getJS()
        {
        }
        /**
         * Get extensions.
         * @return array
         */
        public function getExt()
        {
        }
        /**
         * Get executable classes.
         * @return array
         */
        public function getClass()
        {
        }
        /**
         * Include class of block.
         * @param string $path Path of block class.
         * @return \Bitrix\Landing\LandingBlock
         */
        protected function includeBlockClass($path)
        {
        }
        /**
         * Gets message string.
         * @param array $params Component's params.
         * @param string $template Template name.
         * @return string
         */
        protected static function getMessageBlock($params, $template = '')
        {
        }
        /**
         * Out the block.
         * @param boolean $edit Out block in edit mode.
         * @param Landing|null $landing Landing of this block.
         * @param array $params Some params.
         * @return void
         */
        public function view($edit = false, \Bitrix\Landing\Landing $landing = null, array $params = array())
        {
        }
        /**
         * Save assets to the block.
         * @param array $assets New assets array.
         * @return void
         */
        public function saveAssets(array $assets) : void
        {
        }
        /**
         * Returns the block assets.
         * @return array
         */
        public function getAssets() : array
        {
        }
        /**
         * Set new content.
         * @param string $content New content.
         * @return void
         */
        public function saveContent($content)
        {
        }
        /**
         * Save current block in DB.
         * @param array $additionalFields Additional fields for saving.
         * @return boolean
         */
        public function save(array $additionalFields = [])
        {
        }
        /**
         * Change landing of current block.
         * @param int $lid New landing id.
         * @return boolean
         *
         */
        public function changeLanding($lid)
        {
        }
        /**
         * Delete current block.
         * @return boolean
         */
        public function unlink()
        {
        }
        /**
         * Mark delete or not current block.
         * @param boolean $mark Mark.
         * @return void
         */
        public function markDeleted($mark)
        {
        }
        /**
         * Set new sort to current block.
         * @param int $sort New sort.
         * @return void
         */
        public function setSort($sort)
        {
        }
        /**
         * Set new anchor to current block.
         * @param string $anchor New anchor.
         * @return boolean
         */
        public function setAnchor($anchor)
        {
        }
        /**
         * Save new sort to current block to DB.
         * @param int $sort New sort.
         * @return void
         */
        public function saveSort($sort)
        {
        }
        /**
         * Get sort of current block.
         * @return int
         */
        public function getSort()
        {
        }
        /**
         * Gets dynamic source params.
         * @param int $id Not current block id.
         * @return array
         */
        public function getDynamicParams($id = null)
        {
        }
        /**
         * @param array $data
         * @param array $replace
         * @return array
         */
        private function dynamicLinkReplacer(array $data, array $replace)
        {
        }
        /**
         * Save dynamic params for the block.
         * @param array $sourceParams Source params.
         * @param array $params Additional params.
         * @return void
         */
        public function saveDynamicParams(array $sourceParams = [], array $params = [])
        {
        }
        /**
         * Build dynamic content for the block.
         * @param bool $edit Edit mode.
         * @return void
         */
        protected function setDynamic($edit)
        {
        }
        /**
         * Make block not dynamic.
         * @return void
         */
        public function clearDynamic()
        {
        }
        /**
         * Gets only runtime required actions.
         * @return array
         */
        public function getRuntimeRequiredUserAction()
        {
        }
        /**
         * Load current content in DOM html structure.
         * @param bool $clear CLear static cache.
         * @return DOM\Document
         */
        public function getDom($clear = false)
        {
        }
        /**
         * Get metadata of current block.
         * @return array
         */
        public function getMeta()
        {
        }
        /**
         * Adjust cards count by selector.
         * @param string $selector Selector.
         * @param int $count Needed cards count.
         * @param bool &$changed Changed.
         * @return boolean Success or failure.
         */
        public function adjustCards($selector, $count, &$changed = false)
        {
        }
        /**
         * Clone one card in block by selector.
         * @param string $selector Selector.
         * @param int $position Card position.
         * @param string $content New content for cloned card.
         * @return boolean Success or failure.
         */
        public function cloneCard($selector, $position, $content = '')
        {
        }
        /**
         * Set card content from block by selector.
         * @param string $selector Selector.
         * @param int $position Card position.
         * @param string $content New content.
         * @return boolean Success or failure.
         */
        public function setCardContent($selector, $position, $content)
        {
        }
        /**
         * Gets card content from block by selector.
         * @param string $selector Selector.
         * @param int $position Card position.
         * @return string
         */
        public function getCardContent($selector, $position)
        {
        }
        /**
         * Gets count of cards from block by selector.
         * @param string $selector Selector.
         * @return int
         */
        public function getCardCount($selector)
        {
        }
        /**
         * Remove one card from block by selector.
         * @param string $selector Selector.
         * @param int $position Card position.
         * @return boolean Success or failure.
         */
        public function removeCard($selector, $position)
        {
        }
        /**
         * Set new names for nodes of block.
         * @param array $data Nodes data array.
         * @return boolean
         */
        public function changeNodeName($data)
        {
        }
        /**
         * Set new content to nodes of block.
         * @param array $data Nodes data array.
         * @param array $additional Additional prams for save.
         * @return boolean
         */
        public function updateNodes($data, $additional = array())
        {
        }
        /**
         * Returns menu html with child submenu.
         * @param array $data Data array.
         * @param array $manifestNode Manifest node for current selector.
         * @param string $level Level (root or children).
         * @return string
         */
        protected function getMenuHtml($data, $manifestNode, $level = 'root')
        {
        }
        /**
         * Change cards multiple.
         * @param array $data Array with cards.
         * @return boolean
         */
        public function updateCards(array $data = array())
        {
        }
        /**
         * Recursive styles remove in Node.
         * @param \Bitrix\Main\Web\DOM\Node $node Node for clear.
         * @param array $styleToRemove Array of styles to remove.
         * @return \Bitrix\Main\Web\DOM\Node
         */
        protected function removeStyle(\Bitrix\Main\Web\DOM\Node $node, array $styleToRemove)
        {
        }
        /**
         * Set new classes to nodes of block.
         * @param array $data Classes data array.
         * @return boolean
         */
        public function setClasses($data)
        {
        }
        /**
         * Collects and returns allowed attributes ([selector] => [data-test, data-test2]).
         * @param string $selector Selector, if attr have't own selector.
         * @param array &$allowed Array for collecting.
         * @return void
         */
        protected static function collectAllowedAttrs(array $mixed, array &$allowed, $selector = null)
        {
        }
        /**
         * Set attributes to nodes of block.
         * @param array $data Attrs data array.
         * @return void
         */
        public function setAttributes($data)
        {
        }
        /**
         * Replace title and breadcrumb marker in the block.
         * @param string $content Some content.
         * @return string
         */
        protected static function replaceMetaMarkers($content)
        {
        }
        /**
         * Delete all blocks from db by codes.
         * @param array $code Array of codes to delete.
         * @return void
         */
        public static function deleteByCode($code)
        {
        }
        /**
         * Delete block row.
         * @param int $id Block id.
         * @return \Bitrix\Main\Result
         */
        private static function parentDelete($id)
        {
        }
        /**
         * Delete all blocks for the landing.
         * @param int $lid Landing id.
         * @return void
         */
        public static function deleteAll($lid)
        {
        }
        /**
         * Returns search content for this block.
         * @return string
         */
        public function getSearchContent()
        {
        }
        /**
         * Export nodes, style, attrs, etc. from block.
         * @param array $params Some params.
         * @return array
         */
        public function export(array $params = [])
        {
        }
        /**
         * Search in blocks.
         * @param string $query Query string.
         * @param array $filter Filter array.
         * @param array $select Select fields.
         * @param array $group Group fields.
         * @return array
         */
        public static function search($query, array $filter = [], array $select = ['LID'], array $group = ['LID'])
        {
        }
        /**
         * Add block row.
         * @param array $fields Block data.
         * @return \Bitrix\Main\Result
         */
        public static function add($fields)
        {
        }
        /**
         * Update block row.
         * @param int $id Primary key.
         * @param array $fields Block data.
         * @return \Bitrix\Main\Result
         */
        public static function update($id, $fields = array())
        {
        }
        /**
         * Delete block row.
         * @param int $id Primary key.
         * @return \Bitrix\Main\Result
         */
        public static function delete($id)
        {
        }
        /**
         * Gets block's rows.
         * @param array $fields Block orm data.
         * @return \Bitrix\Main\DB\Result
         */
        public static function getList($fields = array())
        {
        }
        /**
         * In ajax hit may be initiated some assets (JS extensions), but will not be added on page.
         * We need get them all and add to output.
         * @return array
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        protected static function getAjaxInitiatedAssets()
        {
        }
    }
}
namespace Bitrix\Landing\Zip\Nginx {
    class Archive
    {
        /**
         * Archive name.
         * @var string
         */
        protected $name;
        /**
         * Archive Entries.
         * @var ArchiveEntry[]
         */
        protected $entries = [];
        /**
         * Archive constructor.
         * @param string $name Archive name.
         */
        public function __construct($name)
        {
        }
        /**
         * Add one entry. in current archive.
         * @param ArchiveEntry $archiveEntry Entry for archive.
         */
        public function addEntry($archiveEntry)
        {
        }
        /**
         * Returns true if the archive does not have entries.
         * @return bool
         */
        public function isEmpty()
        {
        }
        /**
         * Return entries as string.
         * @return string
         */
        protected function getFileList()
        {
        }
        /**
         * Add necessary headers.
         * @return void
         * @throws \Bitrix\Main\ArgumentNullException
         */
        protected function addHeaders()
        {
        }
        /**
         * Sends content to output stream and sets necessary headers.
         * @return void
         */
        public function send()
        {
        }
        /**
         * Disable compression of module compression.
         */
        protected function disableCompression()
        {
        }
    }
    class ArchiveEntry
    {
        /**
         * File name in entry.
         * @var string
         */
        protected $name;
        /**
         * File path in entry.
         * @var string
         */
        protected $path;
        /**
         * File id.
         * @var string
         */
        protected $fileId;
        /**
         * File size in entry.
         * @var string
         */
        protected $size;
        /**
         * Entry constructor.
         */
        protected function __construct()
        {
        }
        /**
         * Creates Entry from file path.
         * @param string $filePath File id from b_file.
         * @return static
         */
        public static function createFromFilePath($filePath)
        {
        }
        /**
         * Creates Entry from file id (from b_file).
         * @param int $fileId File id from b_file.
         * @return static
         */
        public static function createFromFileId($fileId)
        {
        }
        /**
         * Creates Entry from file array.
         * @param array $fileArray File id from b_file.
         * @return static
         */
        protected static function createFromFile(array $fileArray)
        {
        }
        /**
         * Encodes uri: explodes uri by / and encodes in UTF-8 and rawurlencodes.
         * @param string $uri Uri.
         * @return string
         */
        protected function encodeUrn($uri)
        {
        }
        /**
         * Returns representation zip entry as string.
         * @return string
         */
        public function __toString()
        {
        }
    }
    class Config
    {
        /**
         * Enable or not main option.
         * @return bool
         */
        public static function serviceEnabled()
        {
        }
    }
}
namespace Bitrix\Landing {
    class PublicAction
    {
        /**
         * Scope for REST (default commands).
         */
        const REST_SCOPE_DEFAULT = 'landing';
        /**
         * Scope for REST (cloud repo commands).
         */
        const REST_SCOPE_CLOUD = 'landing_cloud';
        /**
         * Code indicating used blocks in REST statistics.
         */
        public const REST_USAGE_TYPE_BLOCK = 'blocks';
        /**
         * Code indicating used pages in REST statistics.
         */
        public const REST_USAGE_TYPE_PAGE = 'pages';
        /**
         * REST application.
         * @var array
         */
        protected static $restApp = null;
        /**
         * Raw data from waf.
         * @var mixed
         */
        protected static $rawData = null;
        /**
         * Get full namespace for public classes.
         * @return string
         */
        protected static function getNamespacePublicClasses()
        {
        }
        /**
         * Get info about method - class/method/params.
         * @param string $action Full name of action (\Namespace\Class::method).
         * @param array $data Array of data.
         * @return array
         * @throws \ReflectionException
         */
        protected static function getMethodInfo($action, $data = array())
        {
        }
        /**
         * Processing the AJAX/REST action.
         * @param string $action Action name.
         * @param mixed $data Data.
         * @param boolean $isRest Is rest call.
         * @return array|null
         * @throws \ReflectionException
         */
        protected static function actionProcessing($action, $data, $isRest = false)
        {
        }
        /**
         * Get raw data of curring processing.
         * @return mixed
         */
        public static function getRawData()
        {
        }
        /**
         * Listen commands from ajax.
         * @return array|null
         * @throws \ReflectionException
         */
        public static function ajaxProcessing()
        {
        }
        /**
         * Register methods in REST.
         * @return array
         * @throws \ReflectionException
         */
        public static function restBase()
        {
        }
        /**
         * Gateway between REST and publicaction.
         * @param array $fields Rest fields.
         * @param mixed $t Var.
         * @param \CRestServer $server Server instance.
         * @return mixed
         * @throws \ReflectionException
         */
        public static function restGateway($fields, $t, $server)
        {
        }
        /**
         * Get current REST application.
         * @return array
         */
        public static function restApplication()
        {
        }
        /**
         * On REST app delete.
         * @param array $app App info.
         * @return void
         */
        public static function restApplicationDelete($app)
        {
        }
        /**
         * Before REST app delete.
         * @param \Bitrix\Main\Event $event Event data.
         * @return \Bitrix\Main\EventResult
         */
        public static function beforeRestApplicationDelete(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Gets stat data of using rest app.
         * @param bool $humanFormat Gets data in human format.
         * @param bool $onlyActive Gets data only in active states.
         * @param array $additionalFilter Additional filter array.
         * @return array
         */
        public static function getRestStat($humanFormat = false, $onlyActive = true, array $additionalFilter = [])
        {
        }
    }
    abstract class Node
    {
        /**
         * Must return js class - frontend handler.
         * @return string
         */
        public static abstract function getHandlerJS();
        /**
         * Save data for this node.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @param array $data Data array.
         * @return void
         */
        public static abstract function saveNode(\Bitrix\Landing\Block $block, $selector, array $data);
        /**
         * Get data for this node.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @return array
         */
        public static abstract function getNode(\Bitrix\Landing\Block $block, $selector);
        /**
         * Prepare item-node of manifest.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param array $manifest Manifest of current node.
         * @param array $manifestFull Full manifest of block (by ref).
         * @return array|null Return null no delete from manifest.
         */
        //abstract public static function prepareManifest(\Bitrix\Landing\Block $block, array $manifest, array &$manifestFull = array());
        /**
         * If exists, means that this node may participate in searching. Must returns content for search.
         * @param Block &$block Block instance.
         * @param string $selector Selector.
         * @return array
         */
        //abstract public static function getSearchableNode($block, $selector);
        /**
         * Prepares some content for search.
         * @param string $value Text value.
         * @return string
         */
        protected static function prepareSearchContent($value)
        {
        }
        /**
         * Prepare field definition for node.
         *
         * @param array $field
         * @return array|null
         */
        public static function prepareFieldDefinition(array $field)
        {
        }
        /**
         * @param array $field
         * @return array|null
         */
        protected static function validateFieldDefinition(array $field)
        {
        }
        /**
         * @param array $row
         * @param string $name
         * @return string|null
         */
        protected static function prepareStringValue(array $row, $name)
        {
        }
    }
    class Landing extends \Bitrix\Landing\Internals\BaseTable
    {
        /**
         * Internal class.
         * @var string
         */
        public static $internalClass = 'LandingTable';
        /**
         * Enabled updated or not.
         * @var bool
         */
        protected static $enabledUpdate = true;
        /**
         * Check deleted pages or not.
         * @var bool
         */
        protected static $checkDelete = true;
        /**
         * Current mode is edit.
         * @var boolean
         */
        protected static $editMode = false;
        /**
         * Current mode is preview.
         * @var boolean
         */
        protected static $previewMode = false;
        /**
         * External variables of Landing.
         * @var array
         */
        protected static $variables = array();
        /**
         * Dynamic filter id.
         * @var int
         */
        protected static $dynamicFilterId = 0;
        /**
         * Dynamic element id.
         * @var int
         */
        protected static $dynamicElementId = 0;
        /**
         * Landing's site code.
         * @var string
         */
        protected static $siteCode = '';
        /**
         * Set false if landing view as area.
         * @var boolean
         */
        protected $mainInstance = true;
        /**
         * Additional data of current landing.
         * @var array
         */
        protected $metaData = array();
        /**
         * All blocks of current landing.
         * @var Block[]
         */
        protected $blocks = array();
        /**
         * Id of current landing.
         * @var int
         */
        protected $id = 0;
        /**
         * Title of current landing.
         * @var string
         */
        protected $title = '';
        /**
         * Code (part of URL) of current landing.
         * @var string
         */
        protected $code = '';
        /**
         * XMl Id of current landing.
         * @var string
         */
        protected $xmlId = '';
        /**
         * Some fields from landing's site.
         * @var array
         */
        protected $siteRow = [];
        /**
         * Site id of current landing.
         * @var int
         */
        protected $siteId = 0;
        /**
         * Site title of current landing.
         * @var string
         */
        protected $siteTitle = '';
        /**
         * Domain id.
         * @var int
         */
        protected $domainId = 0;
        /**
         * Folder id of current landing.
         * @var int
         */
        protected $folderId = 0;
        /**
         * Current template id.
         * @var int
         */
        protected $tplId = 0;
        /**
         * Current template type (site or landing).
         * @var string
         */
        protected $tplType = 'landing';
        /**
         * Active or not current landing.
         * @var boolean
         */
        protected $active = false;
        /**
         * Instance of Error.
         * @var Error
         */
        protected $error = null;
        /**
         * Current landing rights.
         * @var string[]
         */
        protected $rights = [];
        /**
         * Current version.
         * @var int
         */
        protected $version = 1;
        /**
         * Disable /preview for link in replace method.
         * @var bool
         */
        protected $disableLinkPreview = false;
        /**
         * Constructor.
         * @param int $id Landing id.
         * @param array $params Some params.
         */
        protected function __construct($id, $params = array())
        {
        }
        /**
         * Set work mode to edit.
         * @param boolean $mode Edit mode.
         * @return void
         */
        public static function setEditMode($mode = true)
        {
        }
        /**
         * Get state of edit mode.
         * @return boolean
         */
        public static function getEditMode()
        {
        }
        /**
         * Set work mode to preview.
         * @param boolean $mode Preview mode.
         * @return void
         */
        public static function setPreviewMode($mode = true)
        {
        }
        /**
         * Get state of preview mode.
         * @return boolean
         */
        public static function getPreviewMode()
        {
        }
        /**
         * Check delete pages or not.
         * @return bool
         */
        public static function checkDeleted()
        {
        }
        /**
         * Disable check delete.
         * @return void
         */
        public static function disableCheckDeleted()
        {
        }
        /**
         * Enable check delete.
         * @return void
         */
        public static function enableCheckDeleted()
        {
        }
        /**
         * Disable update.
         * @return void
         */
        public static function disableUpdate()
        {
        }
        /**
         * Enable update.
         * @return void
         */
        public static function enableUpdate()
        {
        }
        /**
         * Create current instance.
         * @param int $id Landing id.
         * @param array $params Additional params.
         * @return Landing
         */
        public static function createInstance($id, array $params = array())
        {
        }
        /**
         * Mark entity as deleted.
         * @param int $id Entity id.
         * @return \Bitrix\Main\Result
         */
        public static function markDelete($id)
        {
        }
        /**
         * Mark entity as restored.
         * @param int $id Entity id.
         * @return \Bitrix\Main\Result
         */
        public static function markUnDelete($id)
        {
        }
        /**
         * Delete landing by id and its blocks.
         * @param int $id Landing id.
         * @param bool $forceDeleted Force delete throw an errors.
         * @return \Bitrix\Main\Result
         */
        public static function delete($id, $forceDeleted = false)
        {
        }
        /**
         * Get hooks of Landing.
         * @param int $id Landing id.
         * @return array Array of Hook.
         */
        public static function getHooks($id)
        {
        }
        /**
         * Get additional fields of Landing.
         * @param int $id Landing id.
         * @return array Array of Field.
         */
        public static function getAdditionalFields($id)
        {
        }
        /**
         * Save additional fields for Landing.
         * @param int $id Landing id.
         * @param array $data Data array.
         * @return void
         */
        public static function saveAdditionalFields($id, array $data)
        {
        }
        /**
         * Set external variables of Landing.
         * @param array $vars Additional vars.
         * @return void
         */
        public static function setVariables(array $vars)
        {
        }
        /**
         * Get external variables of Landing.
         * @return array
         */
        public static function getVariables()
        {
        }
        /**
         * Set dynamic params (filter id and dynamic element id).
         * @param int $filterId Id of filter.
         * @param int $elementId Id of dynamic element id.
         * @return void
         */
        public static function setDynamicParams($filterId, $elementId)
        {
        }
        /**
         * Get dynamic filter.
         * @return array
         */
        public static function getDynamicFilter()
        {
        }
        /**
         * Get dynamic element id.
         * @return int
         */
        public static function getDynamicElementId()
        {
        }
        /**
         * Return true, if current page is dynamic detail page.
         * @return bool
         */
        public static function isDynamicDetailPage()
        {
        }
        /**
         * Get preview picture of the landing.
         * Is the preview of first block.
         * @param int $id Landing id (if null, gets for $this->id).
         * @param bool $skipCloud Skip getting picture from cloud.
         * @return string
         */
        public function getPreview($id = null, $skipCloud = false)
        {
        }
        /**
         * Get full pubic URL for this landing.
         * @param int|array $id Landing id (id array), optional.
         * @param boolean $absolute Full url.
         * @param bool $createPubPath Create pub path (checking and create).
         * @param array &$fullUrl Returns full url of landings.
         * @return string|array
         */
        public function getPublicUrl($id = false, $absolute = true, $createPubPath = false, &$fullUrl = [])
        {
        }
        /**
         * View landing in public or edit mode.
         * @param array $params Some additional params.
         * @return void
         */
        public function view(array $params = array())
        {
        }
        /**
         * Get included areas of this page.
         * @return array
         */
        public function getAreas()
        {
        }
        /**
         * Apply template for this landing.
         * @param string $content Landing content.
         * @return string
         */
        protected function applyTemplate($content = null)
        {
        }
        /**
         * Parse between-landings url in landing content.
         * @param string $content Landing content.
         * @return string
         */
        protected function parseLocalUrl($content)
        {
        }
        /**
         * Exec hooks for landing (site and landing).
         * @return void
         */
        protected function execHooks()
        {
        }
        /**
         * Exist or not landing in current instance.
         * @return boolean
         */
        public function exist()
        {
        }
        /**
         * Active or not the landing.
         * @return boolean
         */
        public function isActive()
        {
        }
        /**
         * Get id of current landing.
         * @return int
         */
        public function getId()
        {
        }
        /**
         * Get xml id of current landing.
         * @return int
         */
        public function getXmlId()
        {
        }
        /**
         * Get title of current landing.
         * @return int
         */
        public function getTitle()
        {
        }
        /**
         * Returns code of current landing.
         * @return string
         */
        public function getCode() : string
        {
        }
        /**
         * Get metadata of current landing.
         * @return array
         */
        public function getMeta()
        {
        }
        /**
         * Can current user edit this landing.
         * @return bool
         */
        public function canEdit()
        {
        }
        /**
         * Can current user publication this landing.
         * @return bool
         */
        public function canPublication()
        {
        }
        /**
         * Can current user delete this landing.
         * @return bool
         */
        public function canDelete()
        {
        }
        /**
         * Gets folder id of current landing.
         * @return int
         */
        public function getFolderId()
        {
        }
        /**
         * Get site id of current landing.
         * @return int
         */
        public function getSiteId()
        {
        }
        /**
         * Get site title of current landing.
         * @return string
         */
        public function getSiteTitle()
        {
        }
        /**
         * Gets domain id of landing site.
         * @return int
         */
        public function getDomainId()
        {
        }
        /**
         * Get site id of current landing.
         * @return int
         */
        public static function getSiteType()
        {
        }
        /**
         * Get site id of main, if exist.
         * @return string|null
         */
        public function getSmnSiteId() : ?string
        {
        }
        /**
         * Get all blocks of current landing.
         * @return Block[]
         */
        public function getBlocks()
        {
        }
        /**
         * Get the block by id of current landing.
         * @param int $id Block id.
         * @return Block
         */
        public function getBlockById($id)
        {
        }
        /**
         * Add new Block to the current landing.
         * @param \Bitrix\Landing\Block $block New block instance.
         * @return void
         */
        public function addBlockToCollection(\Bitrix\Landing\Block $block)
        {
        }
        /**
         * Get error collection
         * @return \Bitrix\Landing\Error
         */
        public function getError()
        {
        }
        /**
         * Change modified user and date for current landing.
         * @return void
         */
        public function touch()
        {
        }
        /**
         * If current version is not actual, making update.
         * @return void
         */
        public function updateVersion()
        {
        }
        /**
         * Publication current landing.
         * @return boolean
         */
        public function publication()
        {
        }
        /**
         * Cancel publication of landing.
         * @return boolean
         */
        public function unpublic()
        {
        }
        /**
         * Add new block to the landing.
         * @param string $code Code of block.
         * @param array $data Data array of block.
         * @return int|false Id of new block or false on failure.
         */
        public function addBlock($code, $data = array())
        {
        }
        /**
         * Delete one block from current landing.
         * @param int $id Block id.
         * @return boolean
         */
        public function deleteBlock($id)
        {
        }
        /**
         * Mark delete or not the block.
         * @param int $id Block id.
         * @param boolean $mark Mark.
         * @return boolean
         */
        public function markDeletedBlock($id, $mark)
        {
        }
        /**
         * Transfer one block to another landing.
         * @param int $id Block id.
         * @param int $lid Landing id.
         * @return boolean
         */
        protected function transferBlock($id, $lid)
        {
        }
        /**
         * Resort current blocks.
         * @return void
         */
        public function resortBlocks()
        {
        }
        /**
         * Sort the block on the landing.
         * @param int $id Block id.
         * @param string $action Code: up or down.
         * @return boolean
         */
        protected function sortBlock($id, $action)
        {
        }
        /**
         * Sort up the block on the landing.
         * @param int $id Block id.
         * @return boolean
         */
        public function upBlock($id)
        {
        }
        /**
         * Sort down the block on the landing.
         * @param int $id Block id.
         * @return boolean
         */
        public function downBlock($id)
        {
        }
        /**
         * Show/hide the block on the landing.
         * @param int $id Block id.
         * @param string $action Code: up or down.
         * @return boolean
         */
        protected function activateBlock($id, $action)
        {
        }
        /**
         * Activate the block on the landing.
         * @param int $id Block id.
         * @return boolean
         */
        public function showBlock($id)
        {
        }
        /**
         * Dectivate the block on the landing.
         * @param int $id Block id.
         * @return boolean
         */
        public function hideBlock($id)
        {
        }
        /**
         * Copy/move other block to this landing.
         * @param int $block Block id.
         * @param array $params Params array.
         * @return int New Block id.
         */
        protected function changeParentOfBlock($block, $params)
        {
        }
        /**
         * Copy other block to this landing.
         * @param int $id Block id (from another landing).
         * @param int $afterId Put after this block id (in this landing).
         * @return int New Block id.
         */
        public function copyBlock($id, $afterId)
        {
        }
        /**
         * Copy all blocks from another landing to this.
         * @param int $lid Landing id.
         * @param boolean $replaceLinks Replace links to the old blocks.
         * @param array &$references Array that will contain references between old and new IDs.
         * @return void
         */
        public function copyAllBlocks($lid, $replaceLinks = true, array &$references = [])
        {
        }
        /**
         * Copy landing.
         * @param int $toSiteId Site id (if you want copy in another site).
         * @param int $toFolderId Folder id (if you want copy in some folder).
         * @param bool $withoutBlocks Copy only pages, without blocks.
         * @return int New landing id.
         */
        public function copy($toSiteId = null, $toFolderId = null, $withoutBlocks = false)
        {
        }
        /**
         * Move other block to this landing.
         * @param int $id Block id (from another landing).
         * @param int $afterId Put after this block id (in this landing).
         * @return int New Block id.
         */
        public function moveBlock($id, $afterId)
        {
        }
        /**
         * Update the landing.
         * @param int $id Landing id.
         * @param array $fields Fields.
         * @return \Bitrix\Main\Result
         */
        public static function update($id, $fields = array())
        {
        }
        /**
         * Creates new page in the site by template.
         * @param int $siteId Site id.
         * @param string $code Template code.
         * @param array $fields Landing fields.
         * @return \Bitrix\Main\Entity\AddResult
         */
        public static function addByTemplate(int $siteId, string $code, array $fields = []) : \Bitrix\Main\Entity\AddResult
        {
        }
    }
    class Error
    {
        /**
         * Current errors.
         * @var array
         */
        protected $errors = array();
        /**
         * Add error to the current collection.
         * @param string $code Error code.
         * @param string $message Error message.
         * @return void
         */
        public function addError($code, $message = '')
        {
        }
        /**
         * Copy Error from one to this.
         * @param \Bitrix\Landing\Error $error Error.
         * @return void
         */
        public function copyError(\Bitrix\Landing\Error $error)
        {
        }
        /**
         * Returns first error frm errors stack.
         * @return \Bitrix\Main\Error|null
         */
        public function getFirstError()
        {
        }
        /**
         * Get current errors.
         * @return array
         */
        public function getErrors()
        {
        }
        /**
         * Exist or not errors.
         * @return boolean
         */
        public function isEmpty()
        {
        }
        /**
         * Collect errors from result.
         * @param \Bitrix\Main\Result $result Result.
         * @return void
         */
        public function addFromResult($result)
        {
        }
    }
    class Help
    {
        const DEFAULT_ZONE_ID = 'en';
        /**
         * @var array B24 domains.
         */
        protected static $domains = array('ru' => 'bitrix24.ru', 'by' => 'bitrix24.by', 'kz' => 'bitrix24.kz', 'ua' => 'bitrix24.ua', 'en' => 'bitrix24.com', 'de' => 'bitrix24.de', 'es' => 'bitrix24.es', 'br' => 'bitrix24.com.br', 'pl' => 'bitrix24.pl', 'fr' => 'bitrix24.fr', 'cn' => 'bitrix24.cn', 'in' => 'bitrix24.in', 'eu' => 'bitrix24.eu', 'tr' => 'bitrix24.com.tr', 'it' => 'bitrix24.it', 'id' => 'bitrix24.id', 'vn' => 'bitrix24.vn', 'jp' => 'bitrix24.jp');
        /**
         * @var array Help url's ids.
         */
        protected static $helpUrl = array('SITE_LIMIT_REACHED' => array('ru' => '6519197', 'ua' => '6524403', 'en' => '6588287', 'de' => '6630821', 'es' => '6529315', 'br' => '7014601', 'fr' => '8460105', 'pl' => '10187232'), 'LANDING_EDIT' => array('ru' => 's105667', 'ua' => 's105681', 'en' => 's95157', 'de' => 's95161', 'es' => 's95265', 'br' => 's119713', 'fr' => 's110613', 'pl' => 's127232'), 'DOMAIN_EDIT' => array('ru' => '6624333', 'ua' => '6626953', 'en' => '7389089', 'de' => '6637101', 'es' => '8479199', 'br' => '8513557', 'fr' => '8460145', 'pl' => '10187266'), 'DOMAIN_BITRIX24' => array('ru' => '11341354'), 'COOKIES_EDIT' => array(), 'DOMAIN_FREE' => array('ru' => '11341378'), 'GMAP_EDIT' => array('ru' => '8203739', 'ua' => '8223491', 'en' => '8218073', 'de' => '8208835', 'es' => '8210537', 'br' => '8234081', 'fr' => '9221199'), 'PIXEL' => array('ru' => '9022893', 'ua' => '9028735', 'en' => '9025097', 'de' => '9024719', 'es' => '9023659', 'br' => '9029347', 'fr' => '9392177'), 'GTM' => array('ru' => '9488927', 'ua' => '9490499', 'en' => '9510537', 'de' => '9492673', 'es' => '9496717', 'br' => '9497065', 'fr' => '9493337'), 'GACOUNTER' => array('ru' => '9485227', 'ua' => '9490499', 'en' => '9510537', 'de' => '9492673', 'es' => '9496717', 'br' => '9497065', 'fr' => '9493337'), 'META_GOOGLE_VERIFICATION' => array('ru' => '7908779', 'ua' => '7917063', 'en' => '7949461', 'de' => '7920223', 'es' => '7993185', 'br' => '8828551', 'fr' => '9203285', 'pl' => '10187376'), 'DYNAMIC_BLOCKS' => array('ru' => '10104989', 'ua' => '10119783', 'en' => '10134346', 'de' => '10119494', 'es' => '10133942', 'fr' => '10133930'), 'YACOUNTER' => array('ru' => '9494147'), 'META_YANDEX_VERIFICATION' => array('ru' => '7919271'), 'SPEED' => array('ru' => '11565144', 'ua' => '11567047'));
        /**
         * Gets domain's array.
         * @return array
         */
        public static function getDomains()
        {
        }
        /**
         * Gets url to help article by code.
         * @param string $code Help code.
         * @return string
         */
        public static function getHelpUrl($code)
        {
        }
        /**
         * Replaces in content all help links by format #HELP_LINK_*CODE*#.
         * @param string $content Some content.
         * @return string
         */
        public static function replaceHelpUrl($content)
        {
        }
    }
    class Placement extends \Bitrix\Landing\Internals\BaseTable
    {
        /**
         * Internal class.
         * @var string
         */
        public static $internalClass = 'PlacementTable';
        /**
         * Delete records by app id.
         * @param int $id App id.
         * @return void
         */
        public static function deleteByAppId($id)
        {
        }
    }
    class Manager
    {
        /**
         * User agreement actual version.
         * @see Manager::getOption('user_agreement_version')
         */
        const USER_AGREEMENT_VERSION = 4;
        /**
         * Publication default path.
         * @see Manager::getPublicationPathConst()
         */
        const PUBLICATION_PATH = '/pub/site/';
        const PUBLICATION_PATH_SITEMAN = '/lp/';
        /**
         * Path, where user can buy upgrade.
         */
        const BUY_LICENSE_PATH = '/settings/license_all.php';
        /**
         * Features codes for backward compatibility.
         */
        const FEATURE_CREATE_SITE = 'create_site';
        const FEATURE_CREATE_PAGE = 'create_page';
        const FEATURE_CUSTOM_DOMAIN = 'custom_domain';
        const FEATURE_ENABLE_ALL_HOOKS = 'enable_all_hooks';
        const FEATURE_PUBLICATION_SITE = 'publication_site';
        const FEATURE_PUBLICATION_PAGE = 'publication_page';
        const FEATURE_PERMISSIONS_AVAILABLE = 'permissions_available';
        const FEATURE_DYNAMIC_BLOCK = 'dynamic_block';
        const FEATURE_FREE_DOMAIN = 'free_domain';
        const FEATURE_ALLOW_EXPORT = 'allow_export';
        const FEATURE_ALLOW_VIEW_PAGE = 'allow_view_page';
        /**
         * If true, that self::isB24() returns false always.
         * @var bool
         */
        protected static $forceB24disable = false;
        /**
         * Current temporary functions.
         * @var array
         */
        protected static $tmpFeatures = [];
        /**
         * Selected template theme id.
         * @var string
         */
        private static $themeId = '';
        /**
         * And ID for typography settings.
         * @var string
         * @deprecated since 20.3.0, use THEMEFONTS hook settings
         */
        private static $themeTypoId = '';
        /**
         * Get main instance of \CMain.
         * @return \CMain
         */
        public static function getApplication()
        {
        }
        /**
         * Get main instance of \CUser.
         * @return \CUser
         */
        public static function getUserInstance()
        {
        }
        /**
         * Get instance of CACHE_MANAGER;
         * @return \CCacheManager
         */
        public static function getCacheManager()
        {
        }
        /**
         * Get instance of USER_FIELD_MANAGER.
         * @return \CUserTypeManager
         */
        public static function getUfManager()
        {
        }
        /**
         * Get current user id.
         * @return int
         */
        public static function getUserId() : int
        {
        }
        /**
         * Get current user full name.
         * @return int
         */
        public static function getUserFullName()
        {
        }
        /**
         * Admin or not.
         * @return boolean
         */
        public static function isAdmin()
        {
        }
        /**
         * Get option from module settings.
         * @param string $code Option code.
         * @param mixed $default Default value.
         * @return mixed
         */
        public static function getOption($code, $default = null)
        {
        }
        /**
         * Set option for module settings.
         * @param string $code Option code.
         * @param string $value Option value.
         * @return void
         */
        public static function setOption($code, $value)
        {
        }
        /**
         * Famous document root.
         * @return string
         */
        public static function getDocRoot()
        {
        }
        /**
         * Returns current dir.
         * @return false|string|null
         */
        public static function getCurDir()
        {
        }
        /**
         * Set page title.
         * @param string $title Page title.
         * @param bool $single If true, then set title only once.
         * @return void
         */
        public static function setPageTitle($title, $single = false)
        {
        }
        /**
         * Create system dir for publication sites.
         * @param string $basePath Publication physical dir.
         * @return void
         */
        protected static function createPublicationPath($basePath, $siteId = null)
        {
        }
        /**
         * Get main site local dir.
         * @param string $siteId Site LID.
         * @return string
         */
        protected static function getSmnSiteDir($siteId)
        {
        }
        /**
         * Get constantly publication path.
         * @return string
         */
        public static function getPublicationPathConst()
        {
        }
        /**
         * Get path for publication sites.
         * @param string|int $siteCode Site id or site code.
         * @param string $siteId Main site id.
         * @param bool $createPubPath Create path for publication.
         * @return string
         */
        public static function getPublicationPath($siteCode = null, $siteId = null, $createPubPath = false)
        {
        }
        /**
         * Add some class to some marker.
         * @param string $marker Marker.
         * @param string $class Class.
         * @deprecated since version 18.1.5
         * @return void
         */
        public static function setPageClass($marker, $class)
        {
        }
        /**
         * Add some content to some marker.
         * @param string $marker Marker.
         * @param string $content Content.
         * @return void
         */
        public static function setPageView($marker, $content)
        {
        }
        /**
         * Clears view by marker code.
         * @param string $marker Marker code.
         * @return void
         */
        public static function clearPageView($marker) : void
        {
        }
        /**
         * Get some content from some marker.
         * @param string $marker Marker.
         * @return string
         */
        public static function getPageView($marker)
        {
        }
        /**
         * Get themes entity from template dir.
         * @param string $tplId Site template id.
         * @param string $entityType - entity folder name.
         * @return array
         */
        protected static function getThemesEntity($tplId, $entityType)
        {
        }
        /**
         * Get themes from template dir.
         * @param string $tplId Site template id.
         * @return array
         */
        public static function getThemes($tplId)
        {
        }
        /**
         * Get themes typo from template dir.
         * @param string $tplId Site template id.
         * @return array
         *
         * @deprecated since 20.3.0, use THEMEFONTS hook settings
         */
        public static function getThemesTypo($tplId)
        {
        }
        /**
         * Gets site template id.
         * @param string $siteId Site id (siteman).
         * @return string
         */
        public static function getTemplateId($siteId = null)
        {
        }
        /**
         * Gets true, if this template id is system.
         * @param string $templateId Site template id.
         * @return bool
         */
        public static function isTemplateIdSystem($templateId)
        {
        }
        /**
         * Gets site id from main module.
         * @return string
         */
        public static function getMainSiteId()
        {
        }
        /**
         * Set new colored theme id.
         * @param string $themeId Theme id.
         * @return void
         */
        public static function setThemeId($themeId)
        {
        }
        /**
         * Set new colored theme id.
         * @param string $themeTypoId Theme id.
         * @return void
         * @deprecated since 20.3.0, use THEMEFONTS hook settings
         */
        public static function setThemeTypoId($themeTypoId)
        {
        }
        /**
         * Get current theme id.
         * @return string
         */
        public static function getThemeId()
        {
        }
        /**
         * Add assets to page from hooks and themes
         * @param int $lid Landing id.
         * @return void
         */
        public static function initAssets($lid = 0)
        {
        }
        /**
         * Set assets for theme.
         * @return void
         */
        protected static function setThemeAssets()
        {
        }
        /**
         * Set current selected or default color theme.
         * @return void
         */
        public static function setTheme()
        {
        }
        /**
         * Find all theme files.
         * @param string $themeId Theme id.
         * @param string $themeEntityId Entity code.
         * @param $tplId Site template id.
         * @return array
         */
        protected static function findThemeFiles($themeId, $themeEntityId, $tplId)
        {
        }
        /**
         * Save picture to db.
         * @param mixed $file File array or path to file.
         * @param string $ext File extension (if can't detected by file name).
         * @param array $params Some file params.
         * @return array|false Local file array or false on error.
         */
        public static function savePicture($file, $ext = false, $params = array())
        {
        }
        /**
         * Enable some feature for moment.
         * @param string $feature Feature code.
         * @return void
         */
        public static function enableFeatureTmp($feature)
        {
        }
        /**
         * Disable some tmp feature.
         * @param string $feature Feature code.
         * @return void
         */
        public static function disableFeatureTmp($feature)
        {
        }
        /**
         * Disable all tmp feature.
         * @return void
         */
        public static function disableAllFeaturesTmp()
        {
        }
        /**
         * Returns true, if all of features array is enabled.
         * @param array $features Feature name.
         * @param array $params Params array.
         * @return bool
         */
        public static function checkMultiFeature(array $features, array $params = [])
        {
        }
        /**
         * Checks that the feature is enabled.
         * @param string $feature Feature code.
         * @param array $params Additional params array.
         * @return boolean
         */
        public static function checkFeature(string $feature, array $params = array()) : bool
        {
        }
        /**
         * Get site zone (ru, ua, en, etc).
         * @return string
         */
        public static function getZone()
        {
        }
        /**
         * Check if something is available in current country.
         * @param string $zone Zone code.
         * @return bool
         */
        public static function availableOnlyForZone($zone)
        {
        }
        /**
         * Is https?
         * @return bool
         */
        public static function isHttps()
        {
        }
        /**
         * Get current host.
         * @return string
         */
        public static function getHttpHost()
        {
        }
        /**
         * Get full url of local file.
         * @param string $file Local file name.
         * @return string
         */
        public static function getUrlFromFile($file)
        {
        }
        /**
         * Is B24 portal?
         * @return bool
         */
        public static function isB24() : bool
        {
        }
        /**
         * Is Site Manager and B24 connector
         * @return bool|null
         */
        public static function isB24Connector() : bool
        {
        }
        /**
         * Sets local flag to new state.
         * @param boolean $flag Disable or not.
         * @return void
         */
        public static function forceB24disable($flag)
        {
        }
        /**
         * Returns true, if SMN is extended for CRM.
         * @return bool
         */
        public static function isExtendedSMN()
        {
        }
        /**
         * Enable or not shops in this edition.
         * @return bool
         */
        public static function isStoreEnabled()
        {
        }
        /**
         * Get current REST url for work with cloud.
         * @deprecated since 20.2.100
         * @return string
         */
        public static function getRestPath() : string
        {
        }
        /**
         * Check if cloud is disabled by settings.
         * @return bool
         */
        public static function isCloudDisable()
        {
        }
        /**
         * Get module version.
         * @return string
         */
        public static function getVersion()
        {
        }
        /**
         * Check if license is expired.
         * @return bool
         */
        public static function licenseIsValid()
        {
        }
        /**
         * Sanitize bad value.
         * @param string $value Bad value.
         * @param bool &$bad Return true, if value is bad.
         * @param string $splitter Splitter for bad content.
         * @return string Good value.
         */
        public static function sanitize($value, &$bad = false, $splitter = ' ')
        {
        }
        /**
         * Get deleted life time days.
         * @return int
         */
        public static function getDeletedLT()
        {
        }
        /**
         * Return site controller class, or pseudo.
         * @return string
         */
        public static function getExternalSiteController()
        {
        }
        /**
         * In cloud version reset highest plans to free.
         * @return void
         */
        public static function resetToFree()
        {
        }
        /**
         * Clear cache, if repository version and current is different.
         * @deprecated since 20.2.100
         * @return void
         */
        public static function checkRepositoryVersion()
        {
        }
    }
    class Rights
    {
        /**
         * Option for debug, set full access for admin.
         */
        const MODE_ADMIN_FULL_ACCESS = true;
        /**
         * Site entity type.
         */
        const ENTITY_TYPE_SITE = 'S';
        /**
         * Access types for different levels.
         */
        const ACCESS_TYPES = ['denied' => 'denied', 'read' => 'read', 'edit' => 'edit', 'sett' => 'sett', 'public' => 'public', 'delete' => 'delete'];
        /**
         * Additional rights for some functionality.
         */
        const ADDITIONAL_RIGHTS = [
            'menu24' => 'menu24',
            //show in main menu of Bitrix24
            'create' => 'create',
            //can create new sites
            'knowledge_menu24' => 'knowledge_menu24',
            // show Knowledge in main menu of Bitrix24
            'knowledge_create' => 'knowledge_create',
            //can create new Knowledge base
            'group_create' => 'group_create',
            //can create new social network group base
            'group_menu24' => 'group_menu24',
        ];
        /**
         * If true, rights is not checking.
         * @var bool
         */
        protected static $available = true;
        /**
         * If true, rights is not checking (global mode).
         * @var bool
         */
        protected static $globalAvailable = true;
        /**
         * Context user id.
         * @var int
         */
        protected static $userId = null;
        /**
         * Set rights checking to 'no'.
         * @return void
         */
        public static function setOff()
        {
        }
        /**
         * Set rights checking to 'yes'.
         * @return void
         */
        public static function setOn()
        {
        }
        /**
         * Set rights checking to 'no' (global mode).
         * @return void
         */
        public static function setGlobalOff()
        {
        }
        /**
         * Set rights checking to 'yes' (global mode).
         * @return void
         */
        public static function setGlobalOn()
        {
        }
        /**
         * Check current status for checking rights.
         * @return bool
         */
        public static function isOn()
        {
        }
        /**
         * Current user is admin or not.
         * @return bool
         */
        public static function isAdmin()
        {
        }
        /**
         * Sets context user id.
         * @param int $uid
         * @return void
         */
        public static function setContextUserId(int $uid) : void
        {
        }
        /**
         * Clears context user id.
         * @return void
         */
        public static function clearContextUserId() : void
        {
        }
        /**
         * Returns context user id (current by default).
         * @return int
         */
        public static function getContextUserId() : int
        {
        }
        /**
         * Available or not permission feature by current plan.
         * @return bool
         */
        protected static function isFeatureOn()
        {
        }
        /**
         * Gets tasks for access.
         * @return array
         */
        public static function getAccessTasks()
        {
        }
        /**
         * Gets tasks for access.
         * @return array
         */
        public static function getAccessTasksReferences()
        {
        }
        /**
         * Remove all rows for entity.
         * @param int|array $entityId Entity id (id or array of id).
         * @param string $entityType Entity type.
         * @return void
         */
        protected static function removeData($entityId, $entityType)
        {
        }
        /**
         * Remove all rows for site.
         * @param int|array $siteId Site id (id or array of id).
         * @return void
         */
        public static function removeDataForSite($siteId)
        {
        }
        /**
         * Get all rows for entity.
         * @param int|array $entityId Entity id (id or array of id).
         * @param string $entityType Entity type.
         * @param array $preDefined Predefined array of rights.
         * @return array
         */
        protected static function getData($entityId, $entityType, array $preDefined = [])
        {
        }
        /**
         * Get all rows for site.
         * @param int|array $siteId Site id (id or array of id).
         * @param array $preDefined Predefined array of rights.
         * @return array
         */
        public static function getDataForSite($siteId, array $preDefined = [])
        {
        }
        /**
         * Get all available operations for entity (for current user).
         * @param int|array $entityId Entity id (id or array of id).
         * @param string $entityType Entity type.
         * @return array
         */
        protected static function getOperations($entityId, $entityType)
        {
        }
        /**
         * Gets all available operations for site (for current user).
         * @param int|array $siteId Site id (id or array of id).
         * @return array
         */
        public static function getOperationsForSite($siteId)
        {
        }
        /**
         * Can current user do something.
         * @param int $siteId Site id.
         * @param string $accessType Access type code.
         * @param bool $deleted And from recycle bin.
         * @return boolean
         */
        public static function hasAccessForSite($siteId, $accessType, $deleted = false)
        {
        }
        /**
         * Can current user do something.
         * @param int $landingId Landing id.
         * @param string $accessType Access type code.
         * @return boolean
         */
        public static function hasAccessForLanding($landingId, $accessType)
        {
        }
        /**
         * Set operations for entity.
         * @param int $entityId Entity id.
         * @param string $entityType Entity type.
         * @param array $rights Rights array (set empty for clear rights).
         * @return boolean
         */
        protected static function setOperations($entityId, $entityType, array $rights = [])
        {
        }
        /**
         * Set operations for site.
         * @param int $siteId Site id.
         * @param array $rights Rights array (set empty for clear rights).
         * @return bool
         */
        public static function setOperationsForSite($siteId, array $rights = [])
        {
        }
        /**
         * If any records of rights exists.
         * @return bool
         */
        protected static function exist()
        {
        }
        /**
         * Gets access filter for current user.
         * @return array
         */
        public static function getAccessFilter()
        {
        }
        /**
         * Extended mode available.
         * @return bool
         */
        public static function isExtendedMode()
        {
        }
        /**
         * Switch extended mode.
         * @return void
         */
        public static function switchMode()
        {
        }
        /**
         * Refresh additional rights for all roles.
         * @param array $additionalRights Array for set additional.
         * @return void
         */
        public static function refreshAdditionalRights(array $additionalRights = [])
        {
        }
        /**
         * Set additional right.
         * @param string $code Code from ADDITIONAL_RIGHTS.
         * @param array $accessCodes Additional rights array.
         * @return void
         */
        public static function setAdditionalRightExtended($code, array $accessCodes = [])
        {
        }
        /**
         * Gets additional right.
         * @param string $code Code from ADDITIONAL_RIGHTS.
         * @return array
         */
        public static function getAdditionalRightExtended($code)
        {
        }
        /**
         * Gets additional rights with labels.
         * @return array
         */
        public static function getAdditionalRightsLabels()
        {
        }
        /**
         * Has current user additional right or not.
         * @param string $code Code from ADDITIONAL_RIGHTS.
         * @param string $type Scope type.
         * @return bool
         */
        public static function hasAdditionalRight($code, $type = null)
        {
        }
    }
}
namespace Bitrix\Landing\Connector {
    class SocialNetwork
    {
        /**
         * Binding code short.
         */
        const SETTINGS_CODE_SHORT = 'knowledge';
        /**
         * Binding code.
         */
        const SETTINGS_CODE = 'landing_knowledge';
        /**
         * Path for binding group with new site.
         * @todo: it's not good, specify path in the code, but temporary it's ok
         */
        const PATH_GROUP_BINDING = 'kb/binding/group/create.php?groupId=#groupId#';
        /**
         * Gets binding row by group id.
         * @param int $groupId Group id.
         * @param bool $checkAccess Check read access.
         * @return array
         */
        public static function getBindingRow(int $groupId, bool $checkAccess = true)
        {
        }
        /**
         * Builds and returns social group menu link.
         * @param int $groupId Group id.
         * @param bool $returnCreateLink If true and link is no exist, returns create link.
         * @return string
         */
        public static function getSocNetMenuUrl($groupId, $returnCreateLink = true)
        {
        }
        /**
         * Fill settings array for social network group.
         * @param array &$socNetFeaturesSettings Settings array.
         * @return void
         */
        public static function onFillSocNetFeaturesList(&$socNetFeaturesSettings)
        {
        }
        /**
         * Fill menu array for social network group.
         * @param array &$result Menu array.
         * @return void
         */
        public static function onFillSocNetMenu(&$result)
        {
        }
        /**
         * Returns true, if current site is extranet.
         * @return bool
         */
        protected static function isExtranet()
        {
        }
        /**
         * If current hit is for opening url.
         * @param string $url Url for opening.
         * @return void
         */
        protected static function processTabHit($url)
        {
        }
        /**
         * Returns group path by id.
         * @param int $groupId Group id.
         * @param string $pagePath Page of landing.
         * @return string
         */
        public static function getTabUrl($groupId, $pagePath = null)
        {
        }
        /**
         * Returns true, if current user are member of group.
         * @param int $groupId Group id.
         * @return bool
         */
        public static function userInGroup($groupId)
        {
        }
        /**
         * On social network group delete.
         * @param int $groupId Group id.
         * @return void
         */
        public static function onSocNetGroupDelete($groupId)
        {
        }
    }
    class Landing
    {
        /**
         * Register new source.
         * @param Event $event Event instance.
         * @return EventResult
         */
        public static function onSourceBuildHandler(\Bitrix\Main\Event $event)
        {
        }
    }
    class Iblock
    {
        /**
         * Gets element's url in site context.
         * @param int $siteId
         * @param int $elementId
         * @return string
         */
        public static function getElementUrl($siteId, $elementId)
        {
        }
    }
    class Intranet
    {
        /**
         * Service component paths.
         */
        const PATH_SERVICE_LIST = 'kb/binding/menu/';
        /**
         * Returns one service menu item for bind entity.
         * @param string $bindCode Binding code.
         * @return array
         */
        protected static function getMenuItemBind($bindCode)
        {
        }
        /**
         * Returns one service menu item for unbind entity.
         * @param string $bindCode Binding code.
         * @param string $entityId Entity id.
         * @param string $title Custom title.
         * @return array
         */
        protected static function getMenuItemUnbind($bindCode, $entityId, $title)
        {
        }
        /**
         * Returns menu items for different binding places in Intranet.
         * @param \Bitrix\Main\Event $event Event instance.
         * @return array
         */
        public static function onBuildBindingMenu(\Bitrix\Main\Event $event)
        {
        }
    }
    class Mobile
    {
        /**
         * Current hit is mobile.
         * @var bool
         */
        protected static $isMobileHit = false;
        /**
         * Handler on build global mobile menu.
         * @param array $menu Mobile menu.
         * @return array
         */
        public static function onMobileMenuStructureBuilt($menu)
        {
        }
        /**
         * Set current hit as mobile.
         * @return void
         */
        public static function forceMobile()
        {
        }
        /**
         * Returns true, if current destination is mobile app dir.
         * @return bool
         */
        public static function isMobileHit()
        {
        }
        /**
         * This code should execute on every mobile hit.
         * @return void
         */
        public static function prologMobileHit()
        {
        }
    }
}
namespace Bitrix\Landing {
    class Mutator
    {
        public static function landingPublication(\Bitrix\Landing\Landing $landing)
        {
        }
        public static function blocksPublication(\Bitrix\Landing\Landing $landing)
        {
        }
    }
}
namespace Bitrix\Landing\Site {
    class Type
    {
        /**
         * Scope group.
         */
        const SCOPE_CODE_GROUP = 'GROUP';
        /**
         * Scope knowledge.
         */
        const SCOPE_CODE_KNOWLEDGE = 'KNOWLEDGE';
        /**
         * Current scope class name.
         * @var Scope
         */
        protected static $currentScopeClass = null;
        /**
         * Scope already init.
         * @var bool
         */
        protected static $scopeInit = false;
        /**
         * Returns scope class, if exist.
         * @param string $scope Scope code.
         * @return string|null
         */
        protected static function getScopeClass($scope)
        {
        }
        /**
         * Set global scope.
         * @param string $scope Scope code.
         * @param array $params Additional params.
         * @return void
         */
        public static function setScope($scope, array $params = [])
        {
        }
        /**
         * Clear selected scope.
         * @return void
         */
        public static function clearScope()
        {
        }
        /**
         * Returns publication path string.
         * @return string|null
         */
        public static function getPublicationPath()
        {
        }
        /**
         * Return general key for site path (ID or CODE).
         * @return string
         */
        public static function getKeyCode()
        {
        }
        /**
         * Returns domain id for new site.
         * @return int|string
         */
        public static function getDomainId()
        {
        }
        /**
         * Returns current scope id.
         * @return string|null
         */
        public static function getCurrentScopeId()
        {
        }
        /**
         * Returns filter value for 'TYPE' key.
         * @param bool $strict If strict, returns without default.
         * @return string|string[]
         */
        public static function getFilterType($strict = false)
        {
        }
        /**
         * Returns array of hook's codes, which excluded by scope.
         * @return array
         */
        public static function getExcludedHooks() : array
        {
        }
        /**
         * Returns true, if type is enabled in system.
         * @param string $code Type code.
         * @return bool
         */
        public static function isEnabled($code)
        {
        }
    }
    class Cookies
    {
        /**
         * System cookie codes.
         */
        const SYSTEM_COOKIES = [
            'ga' => ['type' => 'analytic'],
            // google analytics
            'gtm' => ['type' => 'analytic'],
            // google tag manager
            'ym' => ['type' => 'analytic'],
            // yandex metrika
            'fbp' => ['type' => 'analytic'],
            // facebook pixel
            'vkp' => ['type' => 'analytic'],
            // vkontakte pixel
            'yt' => ['type' => 'technical'],
            // youtube
            'gmap' => ['type' => 'technical'],
        ];
        /**
         * Unique code for user consent table.
         */
        const USER_CONSENT_CODE = 'landing_cookies';
        /**
         * Creates new agreement for current language, if not exists.
         * @param int|null Agreement id.
         * @return array
         */
        public static function getMainAgreement(?int $agreementId = null) : ?array
        {
        }
        /**
         * Returns cookie type by cookie code.
         * @param string $code Cookie code.
         * @return string
         */
        protected static function getCookieType(string $code) : string
        {
        }
        /**
         * Returns system agreements for site.
         * @param int $siteId Site id.
         * @param bool $viewMode Skip raw data with tilda-key and prepare content.
         * @return array
         */
        public static function getAgreements(int $siteId, bool $viewMode = false) : array
        {
        }
        /**
         * Add new agreements for the site.
         * @param int $siteId Site id.
         * @param array $fields Data array ([CODE, TITLE, CONTENT]).
         * @return AddResult
         */
        public static function addAgreementForSite(int $siteId, array $fields) : \Bitrix\Main\ORM\Data\AddResult
        {
        }
        /**
         * Update agreements for the site.
         * @param int $agreementId Agreement id.
         * @param array $fields Data array ([TITLE, CONTENT]).
         * @return UpdateResult
         */
        public static function updateAgreementForSite(int $agreementId, array $fields) : \Bitrix\Main\ORM\Data\UpdateResult
        {
        }
        /**
         * Removes all agreements for the site.
         * @param int $siteId Site id.
         * @param string $code Cookie code.
         * @return void
         */
        public static function removeAgreementsForSite(int $siteId, ?string $code = null) : void
        {
        }
        /**
         * Accepts agreement with specific cookies codes.
         * @param int $siteId Site id.
         * @param array $accepted Accepted cookies codes.
         * @return void
         */
        public static function acceptAgreement(int $siteId, array $accepted = []) : void
        {
        }
        /**
         * Checks if site (site itself, any site page and any blocks on the pages in this site)
         * includes any javascript code.
         * @param int $siteId Site id.
         * @return bool
         */
        public static function isSiteIncludesScript(int $siteId) : bool
        {
        }
        /**
         * Prepares cookies codes for user consents grid.
         * @return EventResult
         */
        public static function onUserConsentProviderList() : \Bitrix\Main\EventResult
        {
        }
    }
    abstract class Scope
    {
        protected static $currentScopeId = null;
        /**
         * Method for first time initialization scope.
         * @param array $params Additional params.
         * @return void
         */
        public static function init(array $params = [])
        {
        }
        /**
         * Returns current scope id.
         * @return string|null
         */
        public static function getCurrentScopeId()
        {
        }
        /**
         * Should return publication path string.
         * @return string
         */
        public static abstract function getPublicationPath();
        /**
         * Should return general key for site path (ID or CODE).
         * @return string
         */
        public static abstract function getKeyCode();
        /**
         * Should return domain id for new site.
         * @return int|string
         */
        public static abstract function getDomainId();
        /**
         * Should return filter value for 'TYPE' key.
         * @return mixed
         */
        public static abstract function getFilterType();
        /**
         * Returns array of hook's codes, which excluded by scope.
         * @return array
         */
        public static abstract function getExcludedHooks() : array;
    }
}
namespace Bitrix\Landing\Site\Scope {
    class Knowledge extends \Bitrix\Landing\Site\Scope
    {
        /**
         * Method for first time initialization scope.
         * @param array $params Additional params.
         * @return void
         */
        public static function init(array $params = [])
        {
        }
        /**
         * Returns publication path string.
         * @return string
         */
        public static function getPublicationPath()
        {
        }
        /**
         * Return general key for site path.
         * @return string
         */
        public static function getKeyCode()
        {
        }
        /**
         * Returns domain id for new site.
         * @return int
         */
        public static function getDomainId()
        {
        }
        /**
         * Returns filter value for 'TYPE' key.
         * @return string
         */
        public static function getFilterType()
        {
        }
        /**
         * Returns array of hook's codes, which excluded by scope.
         * @return array
         */
        public static function getExcludedHooks() : array
        {
        }
    }
    class Group extends \Bitrix\Landing\Site\Scope
    {
        /**
         * Method for first time initialization scope.
         * @param array $params Additional params.
         * @return void
         */
        public static function init(array $params = [])
        {
        }
        /**
         * Returns publication path string.
         * @return string
         */
        public static function getPublicationPath()
        {
        }
        /**
         * Return general key for site path.
         * @return string
         */
        public static function getKeyCode()
        {
        }
        /**
         * Returns domain id for new site.
         * @return int
         */
        public static function getDomainId()
        {
        }
        /**
         * Returns filter value for 'TYPE' key.
         * @return string
         */
        public static function getFilterType()
        {
        }
        /**
         * Returns array of hook's codes, which excluded by scope.
         * @return array
         */
        public static function getExcludedHooks() : array
        {
        }
    }
}
namespace Bitrix\Landing\Site {
    class CookiesAgreement extends \Bitrix\Landing\Internals\BaseTable
    {
        /**
         * Internal class.
         * @var string
         */
        public static $internalClass = 'CookiesAgreementTable';
    }
}
namespace Bitrix\Socialnetwork\Copy\Integration {
    interface Feature
    {
        /**
         * Starts the copy process.
         * @param int $groupId Origin group id.
         * @param int $copiedGroupId Copied group id.
         */
        public function copy($groupId, $copiedGroupId);
    }
}
namespace Bitrix\Landing\Copy\Integration {
    class Group implements \Bitrix\Socialnetwork\Copy\Integration\Feature
    {
        const MODULE_ID = "landing";
        const QUEUE_OPTION = "LandingGroupQueue";
        const CHECKER_OPTION = "LandingGroupChecker_";
        const STEPPER_OPTION = "LandingGroupStepper_";
        const STEPPER_CLASS = \Bitrix\Landing\Copy\Integration\GroupStepper::class;
        const ERROR_OPTION = "LandingGroupError_";
        private $executiveUserId;
        private $features = [];
        public function __construct($executiveUserId = 0, array $features = [])
        {
        }
        /**
         * Initializes the start of copying the group’s knowledge base.
         * @param int $groupId Group id.
         * @param int $copiedGroupId Copied group id.
         * @throws ArgumentOutOfRangeException
         */
        public function copy($groupId, $copiedGroupId)
        {
        }
        private function addToQueue(int $copiedGroupId)
        {
        }
    }
    class GroupStepper extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = 'landing';
        protected $queueName = 'LandingGroupQueue';
        protected $checkerName = 'LandingGroupChecker_';
        protected $baseName = 'LandingGroupStepper_';
        protected $errorName = 'LandingGroupError_';
        const LIMIT = 5;
        public function execute(array &$option)
        {
        }
        private function getPageIdsBySiteId(int $siteId) : array
        {
        }
        private function getPageCopier(int $copiedSiteId) : \Bitrix\Main\Copy\EntityCopier
        {
        }
        private function saveCopiedMapIds(\Bitrix\Main\Copy\EntityCopier $pageCopier, array $queueOption, \Bitrix\Main\Result $result) : void
        {
        }
        private function onAfterCopy(array $queueOption)
        {
        }
        private function clearContextUserId()
        {
        }
        private function updateFolderIds(array $pageMapIds) : void
        {
        }
        private function updateBlockIds(array $pageMapIds, array $blockMapIds) : void
        {
        }
        private function updateCopiedSite(int $siteId, int $copiedSiteId, array $pageMapIds) : void
        {
        }
        private function getSiteData(int $siteId) : array
        {
        }
        private function getSiteDataForUpdateCopiedSite(array $siteData, array $pageMapIds) : array
        {
        }
        private function copyTemplate(int $siteId, int $copiedSiteId, array $pageMapIds) : void
        {
        }
        protected function getQueue() : array
        {
        }
        protected function setQueue(array $queue) : void
        {
        }
        protected function getQueueOption()
        {
        }
        protected function saveQueueOption(array $data)
        {
        }
        protected function deleteQueueOption()
        {
        }
        protected function deleteCurrentQueue(array $queue) : void
        {
        }
        protected function isQueueEmpty()
        {
        }
        protected function getOptionData($optionName)
        {
        }
        protected function deleteOption($optionName)
        {
        }
    }
}
namespace Bitrix\Landing\Copy\Implement {
    /**
     * Class copies landings.
     *
     * if you want copy in another site then set $targetSiteId.
     * To put landing in folders, set the map ids of old and new folders.
     *
     * @package Bitrix\Landing\Copy\Implement
     */
    class Landing extends \Bitrix\Main\Copy\CopyImplementer
    {
        private $targetSiteId = 0;
        private $folderMapIds = [];
        public function __construct($folderMapIds = [])
        {
        }
        /**
         * Set $targetSiteId if you want copy in another site.
         * @param int $targetSiteId
         */
        public function setTargetSiteId(int $targetSiteId) : void
        {
        }
        /**
         * Adds landing.
         *
         * @param Container $container Container with data that is needed in the process of copying the entity.
         * @param array $fields The landing fields.
         * @return int|bool return landing id or false.
         */
        public function add(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Returns landing fields.
         *
         * @param Container $container Container with data that is needed in the process of copying the entity.
         * @param int $landingId Landing id.
         * @return array $fields
         */
        public function getFields(\Bitrix\Main\Copy\Container $container, $landingId)
        {
        }
        /**
         * Preparing data before creating a new landing.
         *
         * @param Container $container Container with data that is needed in the process of copying the entity.
         * @param array $fields List landing fields.
         * @return array $fields
         */
        public function prepareFieldsToCopy(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Starts copying children entities.
         *
         * @param Container $container
         * @param int $landingId Landing id.
         * @param int $copiedLandingId Copied landing id.
         * @return Result
         */
        public function copyChildren(\Bitrix\Main\Copy\Container $container, $landingId, $copiedLandingId)
        {
        }
        private function getSiteId(array $fields) : int
        {
        }
        private function getFolderId(int $siteId, array $fields)
        {
        }
        private function copyBlocks(int $landingId, int $copiedLandingId) : \Bitrix\Main\Result
        {
        }
    }
}
namespace Bitrix\Landing\Restriction {
    class Knowledge
    {
        /**
         * Checks restriction for accessing to view knowledge base.
         * @param string $code Restriction code (not used here).
         * @param array $params Additional params.
         * @return bool
         */
        public static function isViewAllowed(string $code, array $params) : bool
        {
        }
    }
    class Hook
    {
        /**
         * Codes under limits.
         */
        const MAP = ['gtm' => 'limit_sites_google_analytics', 'gacounter' => 'limit_sites_google_analytics', 'yacounter' => 'limit_sites_google_analytics', 'copyright' => 'limit_sites_powered_by', 'headblock' => 'limit_sites_html_js'];
        /**
         * Returns restriction code by hook code.
         * @param string $hookCode Hook code.
         * @return string|null
         */
        public static function getRestrictionCodeByHookCode(string $hookCode) : ?string
        {
        }
        /**
         * Checks hook restriction by hook code.
         * @param string $hookCode Hook code.
         * @return bool
         */
        public static function isHookAllowed(string $hookCode) : bool
        {
        }
        /**
         * Checks hook restriction existing by code.
         * @param string $code Restriction code.
         * @return bool
         */
        public static function isAllowed(string $code) : bool
        {
        }
    }
    class Block
    {
        /**
         * Checks dynamic block restriction.
         * @param string $code Restriction code (not used here).
         * @param array $params Additional params.
         * @return bool
         */
        public static function isDynamicEnabled(string $code, array $params) : bool
        {
        }
    }
    class Landing
    {
        /**
         * Checks restriction for creating and publication page.
         * @param string $code Restriction code (not used here).
         * @param array $params Additional params.
         * @return bool
         */
        public static function isCreatingAllowed(string $code, array $params) : bool
        {
        }
    }
    class Manager
    {
        /**
         * Restrictions map.
         */
        const MAP = ['limit_sites_google_analytics' => ['check_callback' => ['\\Bitrix\\Landing\\Restriction\\Hook', 'isAllowed']], 'limit_sites_powered_by' => ['check_callback' => ['\\Bitrix\\Landing\\Restriction\\Hook', 'isAllowed']], 'limit_sites_html_js' => ['check_callback' => ['\\Bitrix\\Landing\\Restriction\\Hook', 'isAllowed']], 'limit_sites_access_permissions' => ['check_callback' => ['\\Bitrix\\Landing\\Restriction\\Rights', 'isAllowed']], 'limit_sites_transfer' => ['check_callback' => ['\\Bitrix\\Landing\\Restriction\\Site', 'isExportAllowed']], 'limit_free_domen' => ['check_callback' => ['\\Bitrix\\Landing\\Restriction\\Site', 'isFreeDomainAllowed']], 'limit_sites_number' => ['check_callback' => ['\\Bitrix\\Landing\\Restriction\\Site', 'isCreatingAllowed'], 'scope_alias' => ['knowledge' => 'limit_knowledge_base_number_page', 'group' => 'limit_knowledge_base_number_page']], 'limit_sites_number_page' => ['check_callback' => ['\\Bitrix\\Landing\\Restriction\\Landing', 'isCreatingAllowed'], 'scope_alias' => ['knowledge' => 'limit_knowledge_base_number_page', 'group' => 'limit_knowledge_base_number_page']], 'limit_knowledge_base_number_page' => ['check_callback' => ['\\Bitrix\\Landing\\Restriction\\Site', 'isCreatingAllowed']], 'limit_knowledge_base_number_page_view' => ['check_callback' => ['\\Bitrix\\Landing\\Restriction\\Knowledge', 'isViewAllowed']], 'limit_sites_dynamic_blocks' => ['check_callback' => ['\\Bitrix\\Landing\\Restriction\\Block', 'isDynamicEnabled']]];
        /**
         * Returns map's item by code.
         * @param string $code Item code.
         * @return array
         */
        protected static function getMapItem(string $code) : ?array
        {
        }
        /**
         * Returns JS action for the restriction.
         * @param string|null $code Restriction code.
         * @return string|null
         */
        public static function getActionCode(string $code) : ?string
        {
        }
        /**
         * Includes necessary component.
         * @return void
         */
        protected static function includeInformerComponent() : void
        {
        }
        /**
         * Returns lock icon html by restriction code.
         * @param string|null $code Restriction code.
         * @param array $nodes Html nodes for binding click event.
         * @return string|null
         */
        public static function getLockIcon(?string $code, array $nodes = []) : ?string
        {
        }
        /**
         * @param string|null $code Restriction code.
         * @return string|null
         */
        public static function getSystemErrorMessage($code) : ?string
        {
        }
        /**
         * Checks restriction existing by code.
         * @param string $code Restriction code.
         * @param array $params Additional params.
         * @return bool
         */
        public static function isAllowed(string $code, array $params = []) : bool
        {
        }
    }
    class Rights
    {
        /**
         * Checks restriction.
         * @return bool
         */
        public static function isAllowed() : bool
        {
        }
    }
    class Site
    {
        /**
         * Checks restriction for creating and publication site.
         * @param string $code Restriction code (not used here).
         * @param array $params Additional params.
         * @return bool
         */
        public static function isCreatingAllowed(string $code, array $params) : bool
        {
        }
        /**
         * Checks restriction for free domain.
         * @return bool
         */
        public static function isFreeDomainAllowed() : bool
        {
        }
        /**
         * Checks restriction for site export.
         * @return bool
         */
        public static function isExportAllowed() : bool
        {
        }
    }
}
namespace Bitrix\Landing\External {
    class Site24
    {
        /**
         * Update domain by name.
         * @param string $domain Current domain name.
         * @param string $newName New domain name.
         * @param string $url Local url of site.
         *
         * @return mixed
         * @throws SystemException
         */
        public static function updateDomain($domain, $newName, $url)
        {
        }
        /**
         * Activate domain by name.
         * @param string $domain Domain name.
         * @param string $active Activate (Y) or deactivate (N).
         * @param string $lang Lang code.
         *
         * @return mixed
         * @throws SystemException
         */
        public static function activateDomain($domain, $active = 'Y', $lang = '')
        {
        }
        /**
         * Add new domain.
         * @param string $domain Domain name.
         * @param string $url Local url of site.
         * @param string string $active Activate (Y) or deactivate (N).
         * @param string string $type Site type.
         * @param string $lang Lang code.
         *
         * @return mixed
         * @throws SystemException
         */
        public static function addDomain($domain, $url, $active = 'Y', $type = 'site', $lang = '')
        {
        }
        /**
         * Exist or not domain.
         * 0 - domain name is available
         * 1 - domain name is not available, but you are owner
         * 2 - domain name is not available
         * @param string $domain Domain name.
         *
         * @return mixed
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function isDomainExists($domain)
        {
        }
        /**
         * Delete domain by name.
         * @param string $domain Domain name.
         *
         * @return mixed
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function deleteDomain($domain)
        {
        }
        /**
         * Add domain with random name.
         * @param string $url Local url of site.
         * @param string $type Site type.
         * @param string $lang Lang code.
         *
         * @return mixed
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function addRandomDomain($url, $type = 'site', $lang = '')
        {
        }
        /**
         * General executable method.
         * @param string $operation Operation code.
         * @param array $params Additional params.
         * @return mixed
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        protected static function Execute($operation, $params = array())
        {
        }
    }
}
namespace Bitrix\Landing\Node {
    class Icon extends \Bitrix\Landing\Node
    {
        /**
         * Get class - frontend handler.
         * @return string
         */
        public static function getHandlerJS()
        {
        }
        /**
         * Save data for this node.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @param array $data Data array.
         * @return void
         */
        public static function saveNode(\Bitrix\Landing\Block $block, $selector, array $data)
        {
        }
        /**
         * Get data for this node.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @return array
         */
        public static function getNode(\Bitrix\Landing\Block $block, $selector)
        {
        }
    }
    class Type
    {
        const COMPONENT = 'component';
        const MEDIA = 'embed';
        const ICON = 'icon';
        const IMAGE = 'img';
        const LINK = 'link';
        const MAP = 'map';
        const TEXT = 'text';
        protected static $classes = [];
        /**
         * Gets class handler for type of node.
         * @param string $type Node type.
         * @return string
         */
        public static function getClassName($type)
        {
        }
    }
    class Link extends \Bitrix\Landing\Node
    {
        /**
         * Get class - frontend handler.
         * @return string
         */
        public static function getHandlerJS()
        {
        }
        /**
         * Allowed or not this target.
         * @param string $target Type of target.
         * @return boolean
         */
        protected static function isAllowedTarget($target)
        {
        }
        /**
         * Allowed attrs.
         * @return array
         */
        protected static function allowedAttrs()
        {
        }
        /**
         * Detects if we are in iframe.
         * @return bool
         */
        protected static function isFrame() : bool
        {
        }
        /**
         * Save data for this node.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @param array $data Data array.
         * @return void
         */
        public static function saveNode(\Bitrix\Landing\Block $block, $selector, array $data)
        {
        }
        /**
         * Get data for this node.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @return array
         */
        public static function getNode(\Bitrix\Landing\Block $block, $selector)
        {
        }
        /**
         * This node may participate in searching.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @return array
         */
        public static function getSearchableNode($block, $selector)
        {
        }
        /**
         * @param array $field
         * @return array|null
         */
        protected static function validateFieldDefinition(array $field)
        {
        }
        /**
         * @param array $field
         * @return array|null
         */
        protected static function prepareActions(array $field)
        {
        }
    }
    class Map extends \Bitrix\Landing\Node
    {
        /**
         * Get class - frontend handler.
         * @return string
         */
        public static function getHandlerJS()
        {
        }
        /**
         * Save data for this node.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @param array $data Data array.
         * @return void
         */
        public static function saveNode(\Bitrix\Landing\Block $block, $selector, array $data)
        {
        }
        /**
         * Get data for this node.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @return array
         */
        public static function getNode(\Bitrix\Landing\Block $block, $selector)
        {
        }
    }
    class Img extends \Bitrix\Landing\Node
    {
        /**
         * Get class - frontend handler.
         * @return string
         */
        public static function getHandlerJS()
        {
        }
        /**
         * Save data for this node.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @param array $data Data array.
         * @return void
         */
        public static function saveNode(\Bitrix\Landing\Block $block, $selector, array $data)
        {
        }
        /**
         * Get data for this node.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @return array
         */
        public static function getNode(\Bitrix\Landing\Block $block, $selector)
        {
        }
        /**
         * This node may participate in searching.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @return array
         */
        public static function getSearchableNode($block, $selector)
        {
        }
    }
    class Component extends \Bitrix\Landing\Node
    {
        /**
         * Predefined values for some dynamic props.
         * @var array
         */
        protected static $predefineForDynamicProps = array();
        /**
         * Get class - frontend handler.
         * @return string
         */
        public static function getHandlerJS()
        {
        }
        /**
         * Fill predefined values for some dynamic props.
         * @param array $additionalVals Additional vals.
         * @return void
         */
        public static function setPredefineForDynamicProps(array $additionalVals)
        {
        }
        /**
         * Save component with new params.
         * @param string $content Content of block.
         * @param string $code Code of component.
         * @param array $params Params for replace in component.
         * @return string Modified content.
         */
        protected static function saveComponent($content, $code, array $params)
        {
        }
        /**
         * Check if part of array or string is php code (for component).
         * @param mixed $code Some content.
         * @return bool
         */
        protected static function checkPhpCode($code)
        {
        }
        /**
         * Save data for this node.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @param array $data Data array.
         * @return void
         */
        public static function saveNode(\Bitrix\Landing\Block $block, $selector, array $data)
        {
        }
        /**
         * Prepare item-node of manifest.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param array $manifest Manifest of current node.
         * @param array &$manifestFull Full manifest of block (by ref).
         * @return array|null Return null for delete from manifest.
         */
        public static function prepareManifest(\Bitrix\Landing\Block $block, array $manifest, array &$manifestFull = array())
        {
        }
        /**
         * Additional transform type of prop item to attr item.
         * @param array $item One attr.
         * @param mixed $prop One prop.
         * @return array
         */
        protected static function transformPropType(array $item, $prop)
        {
        }
        /**
         * Prepare prop value before output in edit form.
         * @param mixed $value Mixed value.
         * @param array $prop Array of field from manifest.
         * @return mixed
         */
        protected static function preparePropValue($value, $prop)
        {
        }
        /**
         * Additional transform prop value before saving.
         * @param mixed $value Mixed value.
         * @param array $prop Array of prop.
         * @return mixed
         */
        protected static function transformPropValue($value, $prop)
        {
        }
        /**
         * Build element/section url.
         * @param int $elementId Element / section id.
         * @param string $urlType Type of url (section / detail).
         * @deprecated since 18.4.0
         * @return string
         */
        public static function getIblockURL($elementId, $urlType)
        {
        }
        /**
         * Tmp function for gets iblock params.
         * @param string $key If isset, return value for this key.
         * @deprecated since 18.4.0
         * @return array|string
         */
        public static function getIblockParams($key = false)
        {
        }
        /**
         * Get data for this node.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @return array
         */
        public static function getNode(\Bitrix\Landing\Block $block, $selector)
        {
        }
    }
    class Embed extends \Bitrix\Landing\Node
    {
        /**
         * Get class - frontend handler.
         * @return string
         */
        public static function getHandlerJS()
        {
        }
        /**
         * Save data for this node.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @param array $data Data array.
         * @return void
         */
        public static function saveNode(\Bitrix\Landing\Block $block, $selector, array $data)
        {
        }
        /**
         * Get data for this node.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @return array
         */
        public static function getNode(\Bitrix\Landing\Block $block, $selector)
        {
        }
    }
    class Text extends \Bitrix\Landing\Node
    {
        /**
         * Get class - frontend handler.
         * @return string
         */
        public static function getHandlerJS()
        {
        }
        /**
         * Save data for this node.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @param array $data Data array.
         * @param array $additional Additional prams for save.
         * @return void
         */
        public static function saveNode(\Bitrix\Landing\Block $block, $selector, array $data, $additional = [])
        {
        }
        /**
         * Get data for this node.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @return array
         */
        public static function getNode(\Bitrix\Landing\Block $block, $selector)
        {
        }
        /**
         * This node may participate in searching.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param string $selector Selector.
         * @return array
         */
        public static function getSearchableNode($block, $selector)
        {
        }
    }
}
namespace Bitrix\Landing {
    class Repo extends \Bitrix\Landing\Internals\BaseTable
    {
        /**
         * Internal class.
         * @var string
         */
        public static $internalClass = 'RepoTable';
        /**
         * Create new record and return it new id.
         * @param array $fields Fields array.
         * @return \Bitrix\Main\Result
         */
        public static function add($fields)
        {
        }
        /**
         * Update the record.
         * @param int $id Record id.
         * @param array $fields New fields record.
         * @return \Bitrix\Main\Result
         */
        public static function update($id, $fields = array())
        {
        }
        /**
         * Delete the record.
         * @param int $id Record id.
         * @return \Bitrix\Main\Result
         */
        public static function delete($id)
        {
        }
        /**
         * Get repository.
         * @return array
         */
        public static function getRepository()
        {
        }
        /**
         * Return full info from rest block.
         * @param int $id Block id.
         * @return array
         */
        public static function getBlock($id)
        {
        }
        /**
         * Get row by Id.
         * @param int $id Id.
         * @return Bitrix\Main\DB\Result
         */
        public static function getById($id)
        {
        }
        /**
         * Delete all app blocks from repo.
         * @param string $code App code.
         * @return void
         */
        public static function deleteByAppCode($code)
        {
        }
        /**
         * Return info about installed app(s).
         * @param array|int $id Repo block id(s).
         * @return array
         */
        public static function getAppInfo($id)
        {
        }
        /**
         * Get info about app by code(s) from Repo.
         * @param string|array $code App code(s).
         * @return array
         */
        public static function getAppByCode($code)
        {
        }
    }
    class TemplateRef
    {
        /**
         * Entity type site.
         */
        const ENTITY_TYPE_SITE = 'S';
        /**
         * Entity type landing.
         */
        const ENTITY_TYPE_LANDING = 'L';
        /**
         * Set new template refs for entity.
         * @param int $id Entity id.
         * @param string $type Entity type.
         * @param array $data Ref array.
         * @return void
         */
        protected static function set($id, $type, array $data = array())
        {
        }
        /**
         * Get template refs for entity.
         * @param int $id Entity id.
         * @param string $type Entity type.
         * @return array
         */
        protected static function get($id, $type)
        {
        }
        /**
         * Set new template refs for site.
         * @param int $id Site id.
         * @param array $data Ref array (area => landing).
         * @return void
         */
        public static function setForSite($id, array $data = array())
        {
        }
        /**
         * Set new template refs for landing.
         * @param int $id Landing id.
         * @param array $data Ref array (area => landing).
         * @return void
         */
        public static function setForLanding($id, array $data = array())
        {
        }
        /**
         * Get template refs for site.
         * @param int $id Site id.
         * @return array
         */
        public static function getForSite($id)
        {
        }
        /**
         * Get template refs for site.
         * @param int $id Landing id.
         * @return array
         */
        public static function getForLanding($id)
        {
        }
        /**
         * This landing id is used as a area?
         * @param int|array $lid Landing id.
         * @return boolean|array
         */
        public static function landingIsArea($lid)
        {
        }
        /**
         * Delete all area-landing by id.
         * @param integer $lid Landing id.
         * @return void
         */
        public static function deleteArea($lid)
        {
        }
        /**
         * Resolves class by type.
         * @param string $type Entity type.
         * @return string
         */
        public static function resolveClassByType($type)
        {
        }
    }
    class Template extends \Bitrix\Landing\Internals\BaseTable
    {
        /**
         * Internal class.
         * @var string
         */
        public static $internalClass = 'TemplateTable';
    }
}
namespace Bitrix\Landing\Assets {
    /**
     * Class Manager
     * Collect assets, sort by locations, set output in different modes (webpack or default)
     *
     * @package Bitrix\Landing
     */
    class ResourceCollection
    {
        protected const KEY_PATH = 'path';
        protected const KEY_TYPE = 'type';
        protected const KEY_LOCATION = 'location';
        protected const KEY_ORDER = 'order';
        /**
         * Collection of added resources. Key of array - path, values - array of parameters
         * @var array
         */
        protected $resources;
        /**
         * Order variable for save added asset position
         * @var int
         */
        protected $order;
        /**
         * Save assets string, like a <script> and <link>. May be external links, or local inline scripts e.g.
         * @var array
         */
        protected $strings = [];
        /**
         * ResourceCollection constructor.
         */
        public function __construct()
        {
        }
        /**
         * @param string $path
         * @param string $type
         * @param int $location
         */
        public function add(string $path, string $type, int $location) : void
        {
        }
        protected function isResourceAdded(string $path) : bool
        {
        }
        protected function isNeedRaiseLocation(string $path, int $location) : bool
        {
        }
        /**
         * Save asset string in collection (like a <script> or <link>)
         * @param string $string
         */
        public function addString(string $string) : void
        {
        }
        /**
         * Return added strings
         * @return array of strings
         */
        public function getStrings() : array
        {
        }
        /**
         * @param mixed $pathes
         */
        public function remove($pathes) : void
        {
        }
        protected function removeOnce(string $path) : void
        {
        }
        /**
         * Create new ResourceCollection object by location
         * @param int $location
         * @return ResourceCollection
         */
        public function getSliceByLocation(int $location) : \Bitrix\Landing\Assets\ResourceCollection
        {
        }
        /**
         * Create new ResourceCollection object by filter
         *
         * @param $field - field name
         * @param $value - value of field
         * @return ResourceCollection
         */
        protected function getSliceByFilter($field, $value) : \Bitrix\Landing\Assets\ResourceCollection
        {
        }
        /**
         * Return pathes of added resources
         * @return array
         */
        public function getPathes() : array
        {
        }
        /**
         * Sort by location and group by types
         * @return array
         */
        public function getNormalized() : array
        {
        }
        protected function sortByLocation() : void
        {
        }
        /**
         * Return true is no added resources and no added strings
         * @return bool
         */
        public function isEmpty() : bool
        {
        }
    }
    class WebpackFile
    {
        protected const MODULE_ID = 'landing';
        protected const CORE_EXTENSION = 'ui.webpacker';
        protected const LANG_RESOURCE = '/bitrix/js/landing/webpackassets/message_loader.js';
        /**
         * @var WebPacker\FileController
         */
        protected $fileController;
        /**
         * @var int relation with file and landing in table
         */
        protected $landingId;
        /**
         * @var int - ID of file from b_file
         */
        protected $fileId;
        /**
         * @var WebPacker\Resource\Package
         */
        protected $package;
        /**
         * @var WebPacker\Resource\Profile
         */
        protected $profile;
        /**
         * Name of file. If not set - will be using default
         * @var
         */
        protected $filename;
        /**
         * WebpackFile constructor.
         */
        public function __construct()
        {
        }
        /**
         * Assets created for every landing.
         * @param int $lid - id of landing
         */
        public function setLandingId(int $lid) : void
        {
        }
        /**
         * Set unique name of file. If not set - will be using default
         * @param string $name
         */
        public function setFileName(string $name) : void
        {
        }
        protected function getFileName() : string
        {
        }
        /**
         * @param string $resource Relative path to asset.
         */
        public function addResource(string $resource) : void
        {
        }
        /**
         * Create new or get existing webpack file.
         */
        public function build() : void
        {
        }
        /**
         * Prepare fileController for build
         */
        protected function configureFile() : void
        {
        }
        /**
         * Search existing asset file for current landing
         * @return bool|int - ID of file or false if not exist
         */
        protected function findExistFile()
        {
        }
        public function setUseLang() : void
        {
        }
        protected function configureResources() : void
        {
        }
        /**
         * Return JS-string for load assets pack
         * File must be builded before
         * @return string
         */
        public function getOutput() : string
        {
        }
        /**
         * Mark webpack files for landing as "need rebuild", but not delete them. File will be exist until not created new file.
         * @param int|[int] $lid - array of landing IDs.
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static function markToRebuild($lid) : void
        {
        }
        /**
         * * Mark webpack files for landing as "need rebuild", but not delete them. File will be exist until not created new file.
         */
        public static function markAllToRebuild() : void
        {
        }
    }
    abstract class Builder
    {
        protected const TYPE_STANDART = 'STANDART';
        protected const TYPE_WEBPACK = 'WEBPACK';
        public const PACKAGE_NAME = 'landing_assets';
        /**
         * @var ResourceCollection
         */
        protected $resources;
        /**
         * @var array
         */
        protected $normalizedResources = [];
        /**
         * Asset pack may be attached to landing
         * @var int
         */
        protected $landingId = 0;
        /**
         * Builder constructor.
         * @param ResourceCollection $resources
         * @throws ArgumentTypeException
         */
        public function __construct(\Bitrix\Landing\Assets\ResourceCollection $resources)
        {
        }
        /**
         * @param ResourceCollection $resources	Resources object
         * @param string $type Builder type
         * @return Builder
         * @throws ArgumentException
         * @throws ArgumentTypeException
         */
        public static function createByType(\Bitrix\Landing\Assets\ResourceCollection $resources, string $type) : ?\Bitrix\Landing\Assets\Builder
        {
        }
        /**
         * Assets pack must be attached only to once landing. Set ID
         * @param int $lid - landing ID
         */
        public function attachToLanding(int $lid) : void
        {
        }
        /**
         * Add assets to page
         * @return mixed
         */
        public abstract function setOutput();
        protected abstract function normalizeResources();
        protected function initResourcesAsJsExtension(array $resources, $extName = null) : void
        {
        }
        /**
         * Add assets strings to page
         */
        protected function setStrings() : void
        {
        }
    }
    class StandartBuilder extends \Bitrix\Landing\Assets\Builder
    {
        /**
         * Add assets output at the page
         */
        public function setOutput() : void
        {
        }
        protected function normalizeResources() : void
        {
        }
        protected function normalizeLangResources() : void
        {
        }
        protected static function loadAdditionalLangPhrases(array $langResources) : array
        {
        }
    }
    class PreProcessing
    {
        /**
         * Processing the block on adding.
         * @param Block $block Block instance.
         * @return void
         */
        public static function blockAddProcessing(\Bitrix\Landing\Block $block) : void
        {
        }
        /**
         * Processing the block on nodes updating.
         * @param Block $block Block instance.
         * @return void
         */
        public static function blockUpdateNodeProcessing(\Bitrix\Landing\Block $block) : void
        {
        }
        /**
         * Processing the block on classes updating.
         * @param Block $block Block instance.
         * @return void
         */
        public static function blockUpdateClassesProcessing(\Bitrix\Landing\Block $block) : void
        {
        }
        /**
         * Processing the block on undeleting.
         * @param Block $block Block instance.
         * @return void
         */
        public static function blockUndeleteProcessing(\Bitrix\Landing\Block $block) : void
        {
        }
        /**
         * Processing the block on output.
         * @param Block $block Block instance.
         * @param bool $editMode Edit mode.
         * @return void
         */
        public static function blockViewProcessing(\Bitrix\Landing\Block $block, bool $editMode = false) : void
        {
        }
        /**
         * Processing the block on publication.
         * @param Block $block Block instance.
         * @return void
         */
        public static function blockPublicationProcessing(\Bitrix\Landing\Block $block) : void
        {
        }
        /**
         * Processing the dynamic setting to the block.
         * @param Block $block Block instance.
         * @return void
         */
        public static function blockSetDynamicProcessing(\Bitrix\Landing\Block $block) : void
        {
        }
        /**
         * Check Speed Use Lazy hook.
         * @param int $siteId Site id.
         * @return bool
         */
        protected static function isLazyloadEnable(int $siteId) : bool
        {
        }
    }
    /**
     * Class Manager
     * Collect assets, sort by locations, set output in different modes (webpack or default)
     *
     * @package Bitrix\Landing
     */
    class Manager
    {
        protected const MODE_STANDART = 'STANDART';
        protected const MODE_WEBPACK = 'WEBPACK';
        protected const REGISTERED_KEY_CODE = 'code';
        protected const REGISTERED_KEY_LOCATION = 'location';
        private static $instance;
        /**
         * webpack or standart
         * @var string
         */
        protected $mode;
        /**
         * Collection of already added assets
         * @var array
         */
        protected $registered = [];
        /**
         * @var ResourceCollection
         */
        protected $resources;
        /**
         * @var Builder
         */
        protected $builder;
        /**
         * Singleton instance.
         * @return Manager
         */
        public static function getInstance() : \Bitrix\Landing\Assets\Manager
        {
        }
        /**
         * Manager constructor.
         */
        public function __construct()
        {
        }
        /**
         * Set webpack mode of builder
         */
        public function setWebpackMode() : void
        {
        }
        /**
         * Set standart mode of builder
         */
        public function setStandartMode() : void
        {
        }
        /**
         * Get current mode
         * @return string
         */
        public function getMode() : string
        {
        }
        /**
         * @param string $code - Name of asset or CJSCore extension.
         * @return mixed
         */
        public function isAssetRegistered($code)
        {
        }
        /**
         * Return location of later added asset
         * @param string $code Code of added asset
         * @return bool|mixed asset location or false, if asset not added
         */
        public function getRegisteredAssetLocation(string $code)
        {
        }
        /**
         * @param string $code - Name of asset or CJSCore extension.
         */
        public function markAssetRegistered($code, $location) : void
        {
        }
        /**
         * Recursive (by 'rel' key) adding assets in WP packege
         *
         * @param [string]|string $code
         * @param int|null $location - Where will be placed asset.
         */
        public function addAsset($code, $location = null) : void
        {
        }
        /**
         * @param string $code
         * @param int|null $location
         */
        protected function addAssetRecursive(string $code, $location = null) : void
        {
        }
        /**
         * @param string $code
         * @param int $location
         * @return bool
         */
        protected function isNeedAddAsset(string $code, int $location) : bool
        {
        }
        /**
         * Get parts of asset and add them in pack
         *
         * @param array $asset - array of asset data
         * @param string $location - where will be placed asset.
         */
        protected function processAsset(array $asset, int $location) : void
        {
        }
        /**
         * Create <link> or <script> string for adding
         * @param string $path
         * @param string $type from Bitrix\Landing\Assets\Types
         * @return string
         */
        protected function createStringFromPath(string $path, string $type) : string
        {
        }
        /**
         * Detect type by path.
         *
         * @param string $path Relative path to asset.
         * @return null|string
         */
        public static function detectType(string $path) : ?string
        {
        }
        protected static function checkFontLinkType(string $path) : string
        {
        }
        /**
         * Add asset string
         *
         * @param string $string
         */
        public function addString(string $string) : void
        {
        }
        /**
         * Add extensions on page
         * @param int $lid - ID of current landing.
         */
        public function setOutput(int $lid = 0) : void
        {
        }
        /**
         * Create builder object by currently set mode
         * @throws Main\ArgumentException
         */
        protected function createBuilder() : void
        {
        }
        /**
         * When updated assets files - need rebuild webpack file. Marked packs for all landing as "need rebuild".
         */
        public static function rebuildWebpack() : void
        {
        }
        /**
         * When updated assets files - need rebuild webpack file. Marked packs for current landing as "need rebuild".
         * @param int|[int] $lid - ID of landing.
         */
        public static function rebuildWebpackForLanding($lid = []) : void
        {
        }
    }
    class Location
    {
        public const LOCATION_BEFORE_ALL = 1;
        // before all (critical). 1 to not equal with empty values (e.g. (int)null)
        public const LOCATION_KERNEL = 50;
        // first
        public const LOCATION_TEMPLATE = 100;
        // DEFAULT place
        public const LOCATION_AFTER_TEMPLATE = 150;
        // last
        /**
         * Return default location
         * @return string
         */
        public static function getDefaultLocation() : string
        {
        }
        /**
         * Available locations for assets adding
         *
         * @return array
         */
        public static function getAllLocations() : array
        {
        }
        /**
         * Check correctly location number
         *
         * @param mixed $location	- location to verify
         * @return int
         */
        public static function verifyLocation($location) : int
        {
        }
    }
    class Types
    {
        public const KEY_RELATIVE = 'rel';
        public const TYPE_CSS = 'css';
        public const TYPE_JS = 'js';
        public const TYPE_LANG = 'lang';
        public const TYPE_LANG_ADDITIONAL = 'lang_additional';
        public const TYPE_FONT = 'font';
        /**
         * Asset may use include.php, but we can overwriting them, or add unique extensions
         *
         * @return array
         */
        public static function getAssetTypes() : array
        {
        }
    }
}
namespace Bitrix\Landing\Assets\PreProcessing {
    class Icon
    {
        /**
         * File name with icon content.
         */
        const CONTENT_ICON_FILE_NAME = 'content.css';
        /**
         * File name with icon css rules.
         */
        const RULE_ICON_FILE_NAME = 'style.css';
        /**
         * File names of two types of fonts
         */
        const ICON_FONT_FILE_NAME = 'font.woff';
        const ICON_FONT_FILE_NAME_2 = 'font.woff2';
        /**
         * Tries to resolve and returns icon file path.
         * @param string $vendorName Vendor folder code.
         * @return string|null
         */
        protected static function getIconsPath(string $vendorName) : ?string
        {
        }
        /**
         * Parses icon file and returns content for each icon class.
         * @param string $vendorName Vendor folder code.
         * @return array
         */
        protected static function getIconsContentByVendor(string $vendorName) : array
        {
        }
        /**
         * Returns icon css content.
         * @param string $className Class name.
         * @param string $vendorName Vendor folder code.
         * @return string|null
         */
        protected static function getIconContentByClass(string $className, string $vendorName) : ?string
        {
        }
        /**
         * Tries to find any icons and save them assets to the block.
         * @param Block $block Bock instance.
         * @return void
         */
        protected static function saveAssets(\Bitrix\Landing\Block $block) : void
        {
        }
        /**
         * Processing icons in the block content.
         * @param Block $block Block instance.
         * @return void
         */
        public static function processing(\Bitrix\Landing\Block $block) : void
        {
        }
        /**
         * Processing entire landing.
         * @param int $landingId Landing id.
         * @return void
         */
        public static function processingLanding(int $landingId) : void
        {
        }
        /**
         * Shows icons styles on the block output.
         * @param Block $block Block instance.
         * @return void
         */
        public static function view(\Bitrix\Landing\Block $block) : void
        {
        }
    }
    class Theme
    {
        /**
         * Manifest path template.
         */
        const FILE_PATH_SITE_MANIFEST = '/bitrix/components/bitrix/landing.demo/data/site/#code#/.theme.php';
        /**
         * Default page template for page creating.
         */
        const DEFAULT_PAGE_TEMPLATE = 'empty';
        /**
         * Returns all class attribute from block content.
         * @param string $content Block content.
         * @return array
         */
        private static function getStyleClasses(string $content) : array
        {
        }
        /**
         * Returns manifest array by template code.
         * @param string $tplCode Template code.
         * @return array
         */
        private static function getThemeManifest(string $tplCode) : array
        {
        }
        /**
         * Removes siblings classes and returns new class attribute.
         * @param string $classString Attribute class string.
         * @param array $targetClasses New classes for this attribute.
         * @param string $namespace Namespace for getting styles data.
         * @return string
         */
        private static function removeSiblingsClasses(string $classString, array $targetClasses, string $namespace) : string
        {
        }
        /**
         * Processing theme manifest.
         * @param Block $block Block instance.
         * @return void
         */
        public static function processing(\Bitrix\Landing\Block $block) : void
        {
        }
        /**
         * Finds new page template in site manifest, returns DEFAULT_PAGE_TEMPLATE by default.
         * @param int $siteId Site id.
         * @return string
         */
        public static function getNewPageTemplate(int $siteId) : string
        {
        }
    }
    class Font
    {
        /**
         * Tries to find google fonts classes and save them assets to the block.
         * @param Block $block Bock instance.
         * @return void
         */
        protected static function saveAssets(\Bitrix\Landing\Block $block) : void
        {
        }
        /**
         * Processing fonts in the block content.
         * @param Block $block Block instance.
         * @return void
         */
        public static function processing(\Bitrix\Landing\Block $block) : void
        {
        }
        /**
         * Processing entire landing.
         * @param int $landingId Landing id.
         * @return void
         */
        public static function processingLanding(int $landingId) : void
        {
        }
        /**
         * Shows fonts on the block output.
         * @param Block $block Block instance.
         * @return void
         */
        public static function view(\Bitrix\Landing\Block $block) : void
        {
        }
    }
    class CrmContacts
    {
        protected const DEFAULT_COMPANY = 'Company24';
        protected const DEFAULT_PHONES = ['+123456789'];
        protected const DEFAULT_EMAILS = ['info@company24.com'];
        protected const DEFAULT_CONTACTS = [self::COMPANY_KEY => self::DEFAULT_COMPANY, self::PHONES_KEY => self::DEFAULT_PHONES, self::EMAILS_KEY => self::DEFAULT_EMAILS];
        protected const COMPANY_KEY = 'company';
        protected const PHONES_KEY = 'phones';
        protected const EMAILS_KEY = 'emails';
        public const STATUS_CRM_OK = 10;
        public const STATUS_CRM_DEFAULT = 11;
        public const STATUS_CRM_NO_SALESCENTER = 12;
        public const STATUS_CONNECTOR_OK = 20;
        public const STATUS_CONNECTOR_OLD_CRM = 21;
        public const STATUS_CONNECTOR_DEFAULT = 22;
        public const STATUS_SMN_DEFAULT = 30;
        protected static $status;
        /**
         * Processing fonts in the block content.
         * @param Block $block Block instance.
         * @return void
         */
        public static function processing(\Bitrix\Landing\Block $block) : void
        {
        }
        /**
         * Find CRM contacts for default company
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getContacts() : array
        {
        }
        /**
         * Get status. Status is where from getting contacts
         * @return mixed
         */
        public static function getStatus()
        {
        }
    }
    class CustomExtensions
    {
        protected const EXT_POPUP = 'landing_popup_link';
        protected const EXT_JQUERY = 'landing_jquery';
        protected const CRITICAL_EXTENSIONS = ['landing_jquery'];
        /**
         * @param Block $block Bock instance.
         * @return void
         */
        protected static function saveExtensions(\Bitrix\Landing\Block $block) : void
        {
        }
        /**
         * @param Block $block Block instance.
         * @return void
         */
        public static function processing(\Bitrix\Landing\Block $block) : void
        {
        }
        /**
         * Processing entire landing.
         * @param int $landingId Landing id.
         * @return void
         */
        // todo: add version landing updater
        public static function processingLanding(int $landingId) : void
        {
        }
        /**
         * Shows fonts on the block output.
         * @param Block $block Block instance.
         * @return void
         */
        public static function view(\Bitrix\Landing\Block $block) : void
        {
        }
    }
    class Lazyload
    {
        protected const MODULE_ID = 'landing';
        protected const IMG_PLACEHOLDER_SIZE_DEFAULT = 333;
        protected const BG_PLACEHOLDER_SIZE_DEFAULT = 10;
        protected $block;
        protected $content;
        protected $manifest;
        protected $dom;
        protected $skipDynamic = true;
        protected function __construct(\Bitrix\Landing\Block $block)
        {
        }
        /**
         * @param bool $flag
         */
        public function setSkipDynamic(bool $flag = true) : void
        {
        }
        protected function parse() : void
        {
        }
        protected function parseImgTag(\Bitrix\Main\Web\DOM\Element $node, string $selector) : void
        {
        }
        protected function parseBg(\Bitrix\Main\Web\DOM\Element $node, string $selector) : void
        {
        }
        protected function getPlaceholderSizeFromManifest(string $selector)
        {
        }
        /**
         * @param int $width
         * @param int $height
         * @return string path of placeholder
         */
        protected function createPlaceholderImage(int $width, int $height) : string
        {
        }
        /**
         * Parse style string and find image urls
         * @param $style
         * @return array|bool - false if find nothing
         */
        protected static function getSrcByBgStyle($style)
        {
        }
        /**
         * Processing icons in the block content.
         * @param Block $block Block instance.
         * @return void
         */
        public static function processing(\Bitrix\Landing\Block $block) : void
        {
        }
        public static function processingDynamic(\Bitrix\Landing\Block $block) : void
        {
        }
    }
}
namespace Bitrix\Landing\Assets {
    class WebpackBuilder extends \Bitrix\Landing\Assets\Builder
    {
        public const PACKAGE_NAME_SUFFIX = '_webpack';
        protected const PACKAGE_CRITICAL_NAME = 'landing_grid';
        /**
         * @var ResourceCollection
         */
        protected $criticalResources;
        /**
         * @var array
         */
        protected $normalizedCriticalResources = [];
        /**
         * @var WebpackFile
         */
        protected $webpackFile;
        /**
         * WebpackBuilder constructor.
         * @param ResourceCollection $resources
         * @throws Main\ArgumentTypeException
         */
        public function __construct(\Bitrix\Landing\Assets\ResourceCollection $resources)
        {
        }
        /**
         * Sorting resources by location, find critical resources
         */
        protected function normalizeResources() : void
        {
        }
        // todo: normalize lang in critical (like standartbuilder)
        protected function normalizeCriticalResources() : void
        {
        }
        protected function normalizeBaseResources() : void
        {
        }
        /**
         * Add assets output at the page
         */
        public function setOutput() : void
        {
        }
        /**
         * Create and configure webpack file. Get exist or create new.
         */
        protected function buildFile() : void
        {
        }
        /**
         * Put added resources to webpack file
         */
        protected function fillPackageWithResources() : void
        {
        }
        /**
         * Init critical resources like JS-extension. Need for primarily added on page
         */
        protected function setCriticalOutput() : void
        {
        }
        /**
         * Init base resources like webpack load script
         */
        protected function setBaseOutput() : void
        {
        }
        /**
         * Create unique name for currently asset set (with hash)
         * @return string
         */
        protected function createUniqueName() : string
        {
        }
    }
}
namespace Bitrix\Landing\Domain {
    class Register
    {
        /**
         * B24 service for detect IP for current lang zone.
         */
        const B24_SERVICE_DETECT_IP = 'https://ip.bitrix24.site/getipforzone/?bx24_zone=';
        /**
         * B24 service for detect that domain is available.
         */
        const B24_SERVICE_DETECT_DOMAIN = 'https://ip.bitrix24.site/getdomainstatus/?bx24_site_domain=';
        /**
         * Default IP for DNS.
         */
        const B24_DEFAULT_DNS_IP = '52.59.124.117';
        /**
         * Default CNAME for DNS.
         */
        const B24_DEFAULT_DNS_CNAME = 'lb.bitrix24.site.';
        /**
         * Finds registrator instance and returns it.
         * @return Provider|null
         */
        public static function getInstance() : ?\Bitrix\Landing\Domain\Provider
        {
        }
        /**
         * Returns INA && CNAME records value for domain registration.
         * @return array
         */
        public static function getDNSRecords() : array
        {
        }
        /**
         * Returns true if domain is enable and active now.
         * @param string $domainName Domain name.
         * @return bool
         */
        public static function isDomainActive(string $domainName) : bool
        {
        }
    }
    abstract class Provider
    {
        /**
         * Provider constructor.
         */
        public function __construct()
        {
        }
        /**
         * Returns unique provider code.
         * @return string
         */
        public abstract function getCode() : string;
        /**
         * Returns true, if provider is available.
         * @return bool
         */
        public abstract function enable() : bool;
        /**
         * Returns true, if domain is available for registration.
         * @param string $domainName Domain name
         * @return bool
         */
        public abstract function isEnableForRegistration(string $domainName) : bool;
        /**
         * Returns suggested domains by basic domain name.
         * @param string $domainName Domain name.
         * @param array $tld Domain tld.
         * @return array
         */
        public abstract function getSuggestedDomains(string $domainName, array $tld) : array;
        /**
         * Registration new domain. Returns true on success create.
         * @param string $domainName Domain name.
         * @param array $params Additional params.
         * @return bool
         */
        public abstract function registrationDomain(string $domainName, array $params = []) : bool;
        /**
         * Returns all current portal domains.
         * @return array
         */
        public abstract function getPortalDomains() : array;
    }
}
namespace Bitrix\Landing\Domain\Provider {
    class Bitrix24 extends \Bitrix\Landing\Domain\Provider
    {
        /**
         * Returns unique provider code.
         * @return string
         */
        public function getCode() : string
        {
        }
        /**
         * Returns true, if provider is available.
         * @return bool
         */
        public function enable() : bool
        {
        }
        /**
         * Returns available tld.
         * @return array
         */
        public function getTld() : array
        {
        }
        /**
         * Get agreement's URL.
         * @return string|null
         */
        public function getAgreementURL() : ?string
        {
        }
        /**
         * Returns true, if domain is available for registration.
         * @param string $domainName Domain name.
         * @return bool
         */
        public function isEnableForRegistration(string $domainName) : bool
        {
        }
        /**
         * Returns keywords by domain name.
         * @param string $domainName
         * @return array
         */
        protected function getKeywordsByDomain(string $domainName) : array
        {
        }
        /**
         * Returns suggested domains by basic domain name.
         * @param string $domainName Domain name.
         * @param array $tld Domain tld.
         * @return array
         */
        public function getSuggestedDomains(string $domainName, array $tld) : array
        {
        }
        /**
         * Registration new domain. Returns true on success create.
         * @param string $domainName Domain name.
         * @param array $params Additional params.
         * @return bool
         */
        public function registrationDomain(string $domainName, array $params = []) : bool
        {
        }
        /**
         * Returns all current portal domains.
         * @return array
         */
        public function getPortalDomains() : array
        {
        }
    }
}
namespace Bitrix\Landing\Hook {
    abstract class Page
    {
        /**
         * If true, hook work in edit mode (form settings).
         * @var boolean
         */
        protected $editMode = false;
        /**
         * Current Hook fields.
         * @var array
         */
        protected $fields = array();
        /**
         * Current Hook fields (for show in page context).
         * @var array
         */
        protected $fieldsPage = array();
        /**
         * This hook is instance for page.
         * @var bool
         */
        protected $isPage = true;
        /**
         * Custom exec method.
         * @var callable
         */
        protected $customExec = null;
        /**
         * Class constructor.
         * @param boolean $editMode Edit mode if true.
         * @param boolean $isPage Instance of page.
         */
        public function __construct($editMode = false, $isPage = true)
        {
        }
        /**
         * This hook is instance for page?
         * @return bool
         */
        public function isPage()
        {
        }
        /**
         * Title of Hook, if you want.
         * @return string
         */
        public function getTitle()
        {
        }
        /**
         * Description of Hook, if you want.
         * @return string
         */
        public function getDescription()
        {
        }
        /**
         * Edit mode or not.
         * @return boolean
         */
        protected function isEditMode()
        {
        }
        /**
         * Get sort of block (execute order).
         * @return int
         */
        public function getSort()
        {
        }
        /**
         * Enable only in high plan or not.
         * @return boolean
         */
        public function isFree()
        {
        }
        /**
         * Locked or not current hook in free plan.
         * @return bool
         */
        public function isLocked()
        {
        }
        /**
         * Gets message for locked state.
         * @return string
         */
        public function getLockedMessage()
        {
        }
        /**
         * Get code of hook.
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Set data to the fields current hook.
         * @param array $data Data array.
         * @return void
         */
        public function setData(array $data)
        {
        }
        /**
         * Get fields of current Page Hook in Page context.
         * @return array
         */
        public function getPageFields()
        {
        }
        /**
         * Get fields of current Page Hook.
         * @return \Bitrix\Landing\Field[]
         */
        public function getFields()
        {
        }
        /**
         * Exec or not hook in edit mode.
         * @return boolean
         */
        public function enabledInEditMode()
        {
        }
        /**
         * Exec or not hook in intranet mode.
         * @return boolean
         */
        public function enabledInIntranetMode()
        {
        }
        /**
         * Get unique hash from hook fields.
         * @return string
         */
        public function fieldsHash()
        {
        }
        /**
         * Exist or not data in this hook.
         * @return boolean
         */
        public function dataExist()
        {
        }
        /**
         * Set custom exec method.
         * @param callable $callback Callback function.
         * @return void
         */
        public function setCustomExec(callable $callback)
        {
        }
        /**
         * If isset custom exec method.
         * @return boolean
         */
        public function issetCustomExec()
        {
        }
        /**
         * Execute custom exec method if exist.
         * @return boolean
         */
        protected function execCustom()
        {
        }
        /**
         * Map of the fields.
         * @return array
         */
        protected abstract function getMap();
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public abstract function enabled();
        /**
         * Exec hook.
         * @return void
         */
        public abstract function exec();
    }
}
namespace Bitrix\Landing\Hook\Page {
    class Settings extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Block's code for get params.
         */
        const SOURCE_BLOCK = 'store.catalog.list';
        /**
         * Component's code for get params.
         */
        const SOURCE_COMPONENT = 'bitrix:catalog.section';
        /**
         * Default values for settings' code.
         * @var array
         */
        protected static $defValues = array('SECTION_ID' => '', 'HIDE_NOT_AVAILABLE' => 'L', 'HIDE_NOT_AVAILABLE_OFFERS' => 'N', 'PRODUCT_SUBSCRIPTION' => 'Y', 'USE_PRODUCT_QUANTITY' => 'Y', 'DISPLAY_COMPARE' => 'Y', 'PRICE_CODE' => ['BASE'], 'CURRENCY_ID' => '', 'PRICE_VAT_INCLUDE' => 'Y', 'SHOW_OLD_PRICE' => 'Y', 'SHOW_DISCOUNT_PERCENT' => 'Y', 'USE_PRICE_COUNT' => 'N', 'SHOW_PRICE_COUNT' => 1, 'USE_ENHANCED_ECOMMERCE' => 'Y', 'DATA_LAYER_NAME' => 'dataLayer', 'BRAND_PROPERTY' => 'BRAND_REF', 'CART_POSITION' => 'BL');
        /**
         * Returns transform $defValues.
         * @return array
         */
        protected static function getDefaultValues() : array
        {
        }
        /**
         * Build local allowed codes array.
         * @return array
         */
        protected static function getCodesValues()
        {
        }
        /**
         * Return Field by component's param's type.
         * @param string $type Type.
         * @param string $code Field code.
         * @param array $params Additional params.
         * @return Field
         */
        protected static function getFieldByType($type, $code, $params = array())
        {
        }
        /**
         * Get catalog's components params.
         * @return array
         */
        protected static function getComponentsParams()
        {
        }
        /**
         * Get allowed param's code.
         * @param bool $linear Linear
         * @return array
         */
        public static function getCodes($linear = false)
        {
        }
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Enable or not the hook - this is only for system settings.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
        /**
         * Get actual settings data for site.
         * @param int $id Site id.
         * @return array
         */
        public static function getDataForSite($id = null)
        {
        }
    }
    class MetaGoogleVerification extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec or not hook in edit mode.
         * @return bool
         */
        public function enabledInEditMode()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class GaCounter extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Enable only in high plan.
         * @return boolean
         */
        public function isFree()
        {
        }
        /**
         * Locked or not current hook in free plan.
         * @return bool
         */
        public function isLocked()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec or not hook in edit mode.
         * @return boolean
         */
        public function enabledInEditMode()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class Up extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class Cookies extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Cookies server is enabled.
         * @var bool
         */
        public static $enabled = false;
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap() : array
        {
        }
        /**
         * Hook title.
         * @return string
         */
        public function getTitle() : string
        {
        }
        /**
         * Exec or not hook in edit mode.
         * @return boolean
         */
        public function enabledInEditMode() : bool
        {
        }
        /**
         * Get sort of block (execute order).
         * @return int
         */
        public function getSort()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled() : bool
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec() : void
        {
        }
        /**
         * Set cookies js code on the page. Immediately if service off and after load otherwise.
         * @param string $cookieCode Cookie unique code.
         * @param string $functionBody JS function body.
         * @return void
         */
        public static function addCookieScript(string $cookieCode, string $functionBody) : void
        {
        }
        /**
         * Returns agreement id by site id.
         * @param int $siteId Site id.
         * @return int|null
         */
        public static function getAgreementIdBySiteId(int $siteId) : ?int
        {
        }
    }
    class GTM extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Enable only in high plan.
         * @return boolean
         */
        public function isFree()
        {
        }
        /**
         * Locked or not current hook in free plan.
         * @return bool
         */
        public function isLocked()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec or not hook in edit mode.
         * @return boolean
         */
        public function enabledInEditMode()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class Speed extends \Bitrix\Landing\Hook\Page
    {
        const LAZYLOAD_EXTENSION_NAME = 'landing_lazyload';
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Hook title.
         * @return string
         */
        public function getTitle()
        {
        }
        /**
         * Add data to serialize array
         * @param $field - name of hook field
         * @param $data - array of data
         * @return string
         */
        public function addData($field, $data)
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec() : void
        {
        }
        protected function disableWebpack() : void
        {
        }
        protected function execWebpack() : void
        {
        }
        protected function execLazyLoad() : void
        {
        }
    }
    class ThemeFonts extends \Bitrix\Landing\Hook\Page
    {
        protected const BASE_HTML_SIZE = '14px';
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap() : array
        {
        }
        protected static function getSelectOptions() : ?array
        {
        }
        protected static function getDefaultValues() : array
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled() : bool
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec() : void
        {
        }
        /**
         * Set fonts for ALL text in body, add style string
         * @param string $font
         */
        protected function setBaseFont(string $font) : void
        {
        }
        /**
         * Set fonts for headers, add style string
         * @param string $font
         */
        protected function setHFont(string $font) : void
        {
        }
        /**
         * Set base font size for ALL text in body, add style string
         * @param float $size
         */
        protected function setSize(float $size) : void
        {
        }
        /**
         * Replace THEME_CODE_TYPO hook to THEMEFONTS hooks.
         * @param int $lid Landing id.
         * @param int $siteId Site id.
         * @return void
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function migrateFromTypoThemes(int $lid, int $siteId) : void
        {
        }
    }
    class Theme extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Get all themes colors.
         * @return array
         */
        public static function getColorCodes()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * @param string $hexColor
         * @return array
         */
        protected static function convertHexToRgb($hexColor)
        {
        }
        /**
         * @param integer $red
         * @param integer $green
         * @param integer $blue
         * @return array
         */
        protected static function convertRgbToHsl($red, $green, $blue)
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class MetaYandexVerification extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec or not hook in edit mode.
         * @return bool
         */
        public function enabledInEditMode()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class Copyright extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Enable only in high plan.
         * @return boolean
         */
        public function isFree()
        {
        }
        /**
         * Locked or not current hook in free plan.
         * @return bool
         */
        public function isLocked()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec hook. Show or not any copyright.
         * @return boolean
         */
        public function exec()
        {
        }
    }
    class Background extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Title of Hook, if you want.
         * @return string
         */
        public function getTitle()
        {
        }
        /**
         * Description of Hook, if you want.
         * @return string
         */
        public function getDescription()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class Robots extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Title of Hook, if you want.
         * @return string
         */
        public function getTitle()
        {
        }
        /**
         * Exec or not hook in edit mode.
         * @return boolean
         */
        public function enabledInEditMode()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec hook.
         * @return string
         */
        public function exec()
        {
        }
    }
    class HeadBlock extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Last inserted code to the site or to the page.
         * @var string
         */
        protected static $lastInsertedCode = null;
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Gets last inserted code.
         * @return string
         */
        public static function getLastInsertedCode()
        {
        }
        /**
         * Enable only in high plan or not.
         * @return boolean
         */
        public function isFree()
        {
        }
        /**
         * Locked or not current hook in free plan.
         * @return bool
         */
        public function isLocked()
        {
        }
        /**
         * Locked or not current hook in free plan.
         * @return bool
         */
        public static function isLockedFeature()
        {
        }
        /**
         * Title of Hook, if you want.
         * @return string
         */
        public function getTitle()
        {
        }
        /**
         * Get sort of block (execute order).
         * @return int
         */
        public function getSort()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec or not hook in edit mode.
         * @return boolean
         */
        public function enabledInEditMode()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class Favicon extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Title of Hook, if you want.
         * @return string
         */
        public function getTitle()
        {
        }
        /**
         * Exec or not hook in edit mode.
         * @return boolean
         */
        public function enabledInEditMode()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class YaCounter extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Enable only in high plan.
         * @return boolean
         */
        public function isFree()
        {
        }
        /**
         * Locked or not current hook in free plan.
         * @return bool
         */
        public function isLocked()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec or not hook in edit mode.
         * @return boolean
         */
        public function enabledInEditMode()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class PixelFb extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Exec or not hook in edit mode.
         * @return bool
         */
        public function enabledInEditMode()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class Fonts extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Default font for backward compatibility.
         */
        public const DEFAULT_FONTS = ['g-font-open-sans' => ['name' => 'Open Sans', 'family' => '"Open Sans", Helvetica, Arial, sans-serif', 'url' => 'https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&subset=cyrillic'], 'g-font-roboto' => ['name' => 'Roboto', 'family' => '"Roboto", Arial, sans-serif', 'url' => 'https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&subset=cyrillic,cyrillic-ext,latin-ext'], 'g-font-roboto-slab' => ['name' => 'Roboto Slab', 'family' => '"Roboto Slab", Helvetica, Arial, sans-serif', 'url' => 'https://fonts.googleapis.com/css?family=Roboto+Slab:300,400,700&subset=cyrillic,cyrillic-ext,latin-ext'], 'g-font-montserrat' => ['name' => 'Montserrat', 'family' => '"Montserrat", Helvetica, Arial, sans-serif', 'url' => 'https://fonts.googleapis.com/css?family=Montserrat:300,400,600,700,900&subset=cyrillic'], 'g-font-alegreya-sans' => ['name' => 'Alegreya Sans', 'family' => '"Alegreya Sans", sans-serif', 'url' => 'https://fonts.googleapis.com/css?family=Alegreya+Sans:400,700,900&subset=cyrillic-ext,latin-ext'], 'g-font-cormorant-infant' => ['name' => 'Cormorant Infant', 'family' => '"Cormorant Infant", serif', 'url' => 'https://fonts.googleapis.com/css?family=Cormorant+Infant:400,400i,600,600i,700,700i&subset=cyrillic-ext,latin-ext'], 'g-font-pt-sans-caption' => ['name' => 'PT Sans Caption', 'family' => '"PT Sans Caption", sans-serif', 'url' => 'https://fonts.googleapis.com/css?family=PT+Sans+Caption:400,700&subset=cyrillic-ext,latin-ext'], 'g-font-pt-sans-narrow' => ['name' => 'PT Sans Narrow', 'family' => '"PT Sans Narrow", sans-serif', 'url' => 'https://fonts.googleapis.com/css?family=PT+Sans+Narrow:400,700|PT+Sans:400,700&subset=cyrillic-ext,latin-ext'], 'g-font-pt-sans' => ['name' => 'PT Sans', 'family' => '"PT Sans", sans-serif', 'url' => 'https://fonts.googleapis.com/css?family=PT+Sans:400,700&subset=cyrillic-ext,latin-ext'], 'g-font-lobster' => ['name' => 'Lobster', 'family' => '"Lobster", cursive', 'url' => 'https://fonts.googleapis.com/css?family=Lobster&subset=cyrillic-ext,latin-ext']];
        /**
         * Set fonts on the page.
         * @var array
         */
        protected static $setFonts = [];
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Sets font code as using on the page.
         * @param string $fontCode Font code.
         * @return void
         */
        public static function setFontCode(string $fontCode) : void
        {
        }
        /**
         * Outputs default font.
         * @param string $code Font code.
         * @return string
         */
        public static function outputDefaultFont(string $code) : string
        {
        }
        /**
         * Sets fonts data to the page.
         * @param array $fonts Fonts data ([fontCode => fontStyle]).
         * @return void
         */
        protected function outputFonts(array $fonts) : void
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class View extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Return view types.
         * @return array
         */
        public function getItems()
        {
        }
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Title of Hook, if you want.
         * @return string
         */
        public function getTitle()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class MetaRobots extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Title of Hook, if you want.
         * @return string
         */
        public function getTitle()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec or not hook in edit mode.
         * @return boolean
         */
        public function enabledInEditMode()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class GMap extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class MetaOg extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Specific method gor get all landing's images.
         * @param string $entityType Entity type.
         * @return array
         */
        public static function getAllImages($entityType = \Bitrix\Landing\Hook::ENTITY_TYPE_LANDING)
        {
        }
        /**
         * Title of Hook, if you want.
         * @return string
         */
        public function getTitle()
        {
        }
        /**
         * Exec or not hook in edit mode.
         * @return boolean
         */
        public function enabledInEditMode()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class CssBlock extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Title of Hook, if you want.
         * @return string
         */
        public function getTitle()
        {
        }
        /**
         * Get sort of block (execute order).
         * @return int
         */
        public function getSort()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec or not hook in edit mode.
         * @return boolean
         */
        public function enabledInEditMode()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class MetaMain extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Title of Hook, if you want.
         * @return string
         */
        public function getTitle()
        {
        }
        /**
         * Description of Hook, if you want.
         * @return string
         */
        public function getDescription()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec or not hook in edit mode.
         * @return boolean
         */
        public function enabledInEditMode()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class B24button extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Get script url from script-code.
         * @param string $script Script code.
         * @return string
         */
        protected static function getScriptUrl($script)
        {
        }
        /**
         * Get b24 buttons.
         * @return array
         */
        public static function getButtons() : array
        {
        }
        /**
         * Get raw data of b24 buttons
         *
         * @return array|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getButtonsData() : ?array
        {
        }
        /**
         * Find button ID by script code
         * @param $code - script for button
         * @return bool|string
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getButtonIdByCode($code)
        {
        }
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec or not hook in edit mode.
         * @return boolean
         */
        public function enabledInEditMode()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
    class PixelVk extends \Bitrix\Landing\Hook\Page
    {
        /**
         * Map of the field.
         * @return array
         */
        protected function getMap()
        {
        }
        /**
         * Exec or not hook in edit mode.
         * @return bool
         */
        public function enabledInEditMode()
        {
        }
        /**
         * Enable or not the hook.
         * @return boolean
         */
        public function enabled()
        {
        }
        /**
         * Exec hook.
         * @return void
         */
        public function exec()
        {
        }
    }
}
namespace Bitrix\Landing\Subtype {
    class Map
    {
        /**
         * Prepare manifest.
         * @param array $manifest Block's manifest.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param array $params Additional params.
         * @return array
         */
        public static function prepareManifest(array $manifest, \Bitrix\Landing\Block $block = null, array $params = array())
        {
        }
        /**
         * Add some settings for map.
         * @param array $manifest
         * @return array
         */
        private static function addVisualSettings($manifest)
        {
        }
    }
    class Search
    {
        /**
         * Returns search result page in block's site.
         * @param int $siteId Site id.
         * @param mixed $tplCode Landing template code.
         * @return int
         */
        public static function getSearchResultPage($siteId, $tplCode)
        {
        }
        /**
         * Prepares manifest only for search forms.
         * @param array $manifest Block's manifest.
         * @param array $params Additional params.
         * @return array Manifest.
         */
        protected static function prepareForm(array $manifest, array $params = [])
        {
        }
        /**
         * Prepares manifest.
         * @param array $manifest Block's manifest.
         * @param Block $block Block instance.
         * @param array $params Additional params.
         * @return array Manifest.
         */
        public static function prepareManifest(array $manifest, \Bitrix\Landing\Block $block = null, array $params = [])
        {
        }
    }
    class Component
    {
        /**
         * Prepare manifest.
         * @param array $manifest Block's manifest.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param array $params Additional params.
         * @return array
         */
        public static function prepareManifest(array $manifest, \Bitrix\Landing\Block $block = null, array $params = array())
        {
        }
    }
    class Menu
    {
        /**
         * Prepare manifest.
         * @param array $manifest Block's manifest.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param array $params Additional params.
         * @return array
         */
        public static function prepareManifest(array $manifest, \Bitrix\Landing\Block $block = null, array $params = []) : array
        {
        }
        /**
         * Redraws current block - add pages structure in this menu.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @return void
         */
        public static function redrawStructureMenu(\Bitrix\Landing\Block $block) : void
        {
        }
        /**
         * Gets catalog items for menu.
         * @param int $siteId Site id.
         * @param int $count Elements count.
         * @return array
         */
        protected static function getCatalogMenu($siteId, $count)
        {
        }
        /**
         * Get personal menu.
         * @return array
         */
        protected static function getPersonalMenu()
        {
        }
    }
    class Form
    {
        /**
         * Check if b24 or box portal
         * @return bool
         * @throws \Bitrix\Main\LoaderException
         */
        protected static function isCrm()
        {
        }
        /**
         * Gets web forms in system.
         * @return array
         */
        protected static function getForms()
        {
        }
        protected static function getFormsForPortal()
        {
        }
        protected static function getFormsViaConnector()
        {
        }
        /**
         * Move callback form to end.
         * @param array $forms Forms array.
         * @return array
         */
        protected static function prepareForms($forms)
        {
        }
        /**
         * Gets attrs for form.
         * @return array
         */
        protected static function getAttrs()
        {
        }
        /**
         * Prepare manifest.
         * @param array $manifest Block's manifest.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param array $params Additional params.
         * @return array
         */
        public static function prepareManifest(array $manifest, \Bitrix\Landing\Block $block = null, array $params = array())
        {
        }
        /**
         * Get original domain for web-forms.
         * @return string
         */
        public static function getOriginalFormDomain()
        {
        }
    }
    class Chat
    {
        /**
         * Prepare manifest.
         * @param array $manifest Block's manifest.
         * @param \Bitrix\Landing\Block $block Block instance.
         * @param array $params Additional params.
         * @return array
         */
        public static function prepareManifest(array $manifest, \Bitrix\Landing\Block $block = NULL, array $params = []) : array
        {
        }
        /**
         * Prepares and returns references array for dynamic block.
         * @param array $references Raw preferences array.
         * @return array
         */
        protected static function buildReferences(array $references) : array
        {
        }
        /**
         * Prepares and returns source params for dynamic block.
         * @param array $params Subtype params.
         * @return array
         */
        protected static function getSourceParams(array $params) : array
        {
        }
    }
}
namespace Bitrix\Landing {
    class UpdateBlock extends \Bitrix\Landing\Internals\BaseTable
    {
        /**
         * Internal class.
         * @var string
         */
        public static $internalClass = 'UpdateBlockTable';
    }
    class Syspage
    {
        /**
         * Allowed types.
         * @var array
         */
        protected static $allowedTypes = array('mainpage', 'catalog', 'personal', 'cart', 'order', 'payment', 'compare');
        /**
         * Set new system page for site.
         * @param int $id Site id.
         * @param string $type System page type.
         * @param int $lid Landing id (if not set, ref was deleted).
         * @return void
         */
        public static function set($id, $type, $lid = false)
        {
        }
        /**
         * Get pages for site.
         * @param int $id Site id.
         * @param bool $active Only active items.
         * @return array
         */
        public static function get($id, $active = false)
        {
        }
        /**
         * Delete all sys pages by site id.
         * @param int $id Site id.
         * @return void
         */
        public static function deleteForSite($id)
        {
        }
        /**
         * Delete all sys pages by id.
         * @param int $id Landing id.
         * @return void
         */
        public static function deleteForLanding($id)
        {
        }
        /**
         * Get url of special page of site.
         * @param int $siteId Site id.
         * @param string $type Type of special page.
         * @param array $additional Additional params for uri.
         *
         * @return string
         */
        public static function getSpecialPage($siteId, $type, array $additional = [])
        {
        }
    }
}
namespace Bitrix\Landing\Block {
    class Cache
    {
        /**
         * Tag prefix.
         */
        const TAG_PREFIX = 'landing_block_';
        protected static $cacheDisabled = false;
        /**
         * Disables caching.
         * @return void
         */
        public static function disableCache() : void
        {
        }
        /**
         * Enables caching.
         * @return void
         */
        public static function enableCache() : void
        {
        }
        /**
         * Cache is enabled.
         * @return bool
         */
        public static function isCaching() : bool
        {
        }
        /**
         * Registers the block in the cache.
         * @param int $id Block id.
         * @return void
         */
        public static function register($id) : void
        {
        }
        /**
         * Clears cache for the block.
         * @param int $id Block id.
         * @return void
         */
        public static function clear($id) : void
        {
        }
    }
}
namespace Bitrix\Landing\DataLoader {
    class Landing extends \Bitrix\Landing\Source\DataLoader
    {
        /**
         * Gets all meta data for landing's ids data.
         * @param array $ids
         * @return array
         */
        protected function getMetadata(array $ids)
        {
        }
        /**
         * Returns search parameter value.
         * @return string
         */
        protected function getSearchQuery()
        {
        }
        /**
         * Returns search snippet for each result item.
         * @param string $query Search query.
         * @param string $content Full search content.
         * @return string
         */
        protected function getSearchSnippet(string $query, string $content) : string
        {
        }
        /**
         * Gets data for dynamic blocks.
         * @return array
         */
        public function getElementListData()
        {
        }
        /**
         * Gets data item of dynamic blocks.
         * @param int $element Element's key.
         * @return array
         */
        public function getElementData($element)
        {
        }
    }
    class Chat extends \Bitrix\Landing\Source\DataLoader
    {
        /**
         * Personal chat type.
         */
        const CHAT_TYPE_PERSONAL = 'private';
        /**
         * Group chat type.
         */
        const CHAT_TYPE_GROUP = 'group';
        /**
         * Prepares params and return specific init array.
         * @return array
         */
        protected function getInitData() : array
        {
        }
        /**
         * Returns user list for chat id.
         * @param array $initData All init data.
         * @return array
         */
        protected function getUserList(array $initData) : array
        {
        }
        /**
         * Gets data for dynamic blocks.
         * @return array
         */
        public function getElementListData()
        {
        }
        /**
         * Gets data item of dynamic blocks.
         * @param int $element Element's key.
         * @return array
         */
        public function getElementData($element)
        {
        }
    }
}
namespace Bitrix\Landing {
    class Site extends \Bitrix\Landing\Internals\BaseTable
    {
        /**
         * Internal class.
         * @var string
         */
        public static $internalClass = 'SiteTable';
        /**
         * Return true if site exists and available.
         * @param int $id Site id.
         * @param bool $deleted And from recycle bin.
         * @return bool
         */
        public static function ping($id, $deleted = false)
        {
        }
        /**
         * Get public url for site.
         * @param int[]|int $id Site id or array of ids.
         * @param boolean $full Return full site url with relative path.
         * @return string|array
         */
        public static function getPublicUrl($id, $full = true)
        {
        }
        /**
         * Get hooks of Site.
         * @param int $id Site id.
         * @return array Array of Hook.
         */
        public static function getHooks($id)
        {
        }
        /**
         * Get additional fields of Landing.
         * @param int $id Landing id.
         * @return array Array of Field.
         */
        public static function getAdditionalFields($id)
        {
        }
        /**
         * Save additional fields for Site.
         * @param int $id Site id.
         * @param array $data Data array.
         * @return void
         */
        public static function saveAdditionalFields($id, array $data)
        {
        }
        /**
         * Get existed site types.
         * @return array
         */
        public static function getTypes()
        {
        }
        /**
         * Get default site type.
         * @return string
         */
        public static function getDefaultType()
        {
        }
        /**
         * Delete site by id.
         * @param int $id Site id.
         * @param bool $pagesDelete Delete all pages before.
         * @return \Bitrix\Main\Result
         */
        public static function delete($id, $pagesDelete = false)
        {
        }
        /**
         * Mark entity as deleted.
         * @param int $id Entity id.
         * @return \Bitrix\Main\Result
         */
        public static function markDelete($id)
        {
        }
        /**
         * Mark entity as restored.
         * @param int $id Entity id.
         * @return \Bitrix\Main\Result
         */
        public static function markUnDelete($id)
        {
        }
        /**
         * Copy site without site's pages.
         * @param int $siteId Site id.
         * @return \Bitrix\Main\Result
         */
        public static function copy($siteId)
        {
        }
        /**
         * Get full data for site with pages.
         * @param int $siteForExport Site id.
         * @param array $params Some params.
         * @return array
         */
        public static function fullExport($siteForExport, $params = array())
        {
        }
        /**
         * Get md5 hash for site, using http host.
         * @param int $id Site id.
         * @param string $domain Domain name for this site.
         * @return string
         */
        public static function getPublicHash($id, $domain = null)
        {
        }
        /**
         * Switch domains between two sites. Returns true on success.
         * @param int $siteId1 First site id.
         * @param int $siteId2 Second site id.
         * @return bool
         */
        public static function switchDomain(int $siteId1, int $siteId2) : bool
        {
        }
        /**
         * Sets new random domain to site. Actual for Bitrix24 only.
         * @param int $siteId Site id.
         * @return bool
         */
        public static function randomizeDomain(int $siteId) : bool
        {
        }
        /**
         * Tries to add page to the all menu on the site.
         * Detects blocks with menu-manifests only.
         * @param int $siteId Site id.
         * @param array $data Landing data ([ID, TITLE]).
         * @return void
         */
        public static function addLandingToMenu(int $siteId, array $data) : void
        {
        }
        /**
         * Change modified user and date for the site.
         * @param int $id Site id.
         * @return void
         */
        public static function touch(int $id) : void
        {
        }
        /**
         * Event handler for check existing pages of main module's site.
         * @param string $siteId Main site id.
         * @return bool
         */
        public static function onBeforeMainSiteDelete($siteId)
        {
        }
        /**
         * Event handler for delete pages of main module's site.
         * @param string $siteId Main site id.
         * @return void
         */
        public static function onMainSiteDelete($siteId)
        {
        }
    }
    class UrlRewrite
    {
        /**
         * Set rule for the site.
         * @param int $siteId Site id.
         * @param string $rule Rule.
         * @param int $landingId Landing id. If empty then remove.
         * @return void
         */
        public static function set($siteId, $rule, $landingId = null)
        {
        }
        /**
         * Unset rule for the site.
         * @param int $siteId Site id.
         * @param string $rule Rule.
         * @return void
         */
        public static function remove($siteId, $rule)
        {
        }
        /**
         * Matching rule for url.
         * @param int $siteId Site id.
         * @param string $url Some url.
         * @return int Landing id.
         */
        public static function matchUrl($siteId, $url)
        {
        }
        /**
         * Clear rules for one site.
         * @param int $siteId Site id.
         * @return void
         */
        public static function removeForSite($siteId)
        {
        }
        /**
         * Clear rules for one site.
         * @param int $landingId Landing id.
         * @return void
         */
        public static function removeForLanding($landingId)
        {
        }
    }
}
namespace {
    class mobileapp extends \CModule
    {
        var $MODULE_ID = "mobileapp";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        var $errors;
        function __construct()
        {
        }
        function InstallDB()
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallFiles()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
    class MobileDemoApiComponent extends \CBitrixComponent
    {
        public function onPrepareComponentParams($arParams)
        {
        }
        public function executeComponent()
        {
        }
    }
    /**
     * Class MobileJSComponent
     */
    class JNRouterComponent extends \CBitrixComponent
    {
        const VERSION = "1";
        private $name;
        private $namespace;
        public function onPrepareComponentParams($arParams)
        {
        }
        /**
         * @return mixed|void
         * @throws \Bitrix\Main\LoaderException
         * @throws Exception
         */
        public function executeComponent()
        {
        }
    }
    class CAdminMobileMenu
    {
        const DEFAULT_ITEM_SORT = 100;
        private static $arItems = array();
        public static function addItem($arItem)
        {
        }
        public static function buildMenu($arParams)
        {
        }
        public static function getDefaultUrl($arParams)
        {
        }
    }
    class CAdminMobileDetailTmpl
    {
        private static function getTitleHtml($title)
        {
        }
        private static function getUpperButtonsHtml($arButtons)
        {
        }
        private static function getSectionHtml($arSection)
        {
        }
        public static function getHtml($arAdminDetail)
        {
        }
    }
    class CAdminMobileDetail
    {
        private $arDetail;
        public function setTitle($strTitle)
        {
        }
        public function addUpperButton($arButton)
        {
        }
        public function addSection($arSection)
        {
        }
        public function getHtml()
        {
        }
        public function getItem()
        {
        }
    }
    class CAdminMobileInterface
    {
        public static function getCheckBoxesHtml($arCB, $strTitle = '', $arChecked = array(), $arParams = array())
        {
        }
    }
    class CMobileLazyLoad
    {
        public static function getBase64Stub()
        {
        }
    }
    class CAdminMobileEdit
    {
        private static function getCustomAttribs($arField)
        {
        }
        private static function getCommonAttribs($arField)
        {
        }
        public static function getFieldHtml($arField)
        {
        }
    }
    class CAdminMobileFilter
    {
        const SELECT_ALL = "AMFSelectAll";
        public static function setFields($filterId, $arFields)
        {
        }
        public static function getNonemptyFields($filterId, $arFieldsParams = \false)
        {
        }
        public static function getFields($filterId)
        {
        }
        public static function getHtml($arFields)
        {
        }
    }
}
namespace Bitrix\MobileApp {
    class Mobile
    {
        public static $platform = "ios";
        public static $apiVersion = 1;
        public static $pgVersion = "2.0.0";
        public static $supportedCordovaVersion = "3.6.3";
        public static $isDev = false;
        protected static $instance;
        protected static $isAlreadyInit = false;
        protected static $systemVersion = 9;
        private $pixelRatio = 1.0;
        private $minScale = false;
        private $iniScale = false;
        private $maxScale = false;
        private $scale = 1.2;
        private $width = false;
        private $userScalable = "no";
        private $deviceWidth = 320;
        private $deviceHeight = 480;
        private $screenCategory = "NORMAL";
        private $device = "";
        private $largeScreenSupport = true;
        private $isWebRtcSupported = false;
        private $isBXScriptSupported = false;
        private function __construct()
        {
        }
        /**
         * @param boolean $isWebRtcSupported
         */
        public function setWebRtcSupport($isWebRtcSupported)
        {
        }
        /**
         * @param boolean $isBXScriptSupported
         */
        public function setBXScriptSupported($isBXScriptSupported)
        {
        }
        /**
         * Return type of current device
         * @return string
         */
        public function getDevice()
        {
        }
        /**
         * Gets the value of pixelRatio.
         *
         * @return mixed
         */
        public function getPixelRatio()
        {
        }
        /**
         * Sets the value of pixelRatio.
         *
         * @param mixed $pixelRatio the pixelRatio
         */
        public function setPixelRatio($pixelRatio)
        {
        }
        /**
         * Returns true if mobile application made this request in background
         * @return bool
         */
        public static function isAppBackground()
        {
        }
        /**
         * Initiate the mobile platform
         */
        public static function Init()
        {
        }
        /**
         *  detects mobile platform and attaches all needed javascript files
         */
        protected function _Init()
        {
        }
        /**
         * @return \Bitrix\MobileApp\Mobile
         */
        public static function getInstance()
        {
        }
        /**
         * Sets viewport-metadata
         */
        public static function initScripts()
        {
        }
        /**
         * @return boolean
         */
        public function getBXScriptSupported()
        {
        }
        /**
         * Use it to get current value of "viewport"-metadata
         *
         * @param string $width
         *
         * @return mixed|string
         */
        public function getViewPort($width = "")
        {
        }
        /**
         * Gets the value of deviceWidth.
         *
         * @return mixed
         */
        public function getDeviceWidth()
        {
        }
        /**
         * Sets the value of deviceWidth.
         *
         * @param mixed $deviceWidth the deviceWidth
         */
        public function setDeviceWidth($deviceWidth)
        {
        }
        /**
         * Use it to get value of viewport-metadata for iPad.
         *
         * @param int $width
         *
         * @return mixed
         */
        public function getIPadViewPort($width = 320)
        {
        }
        /**
         * Gets the value of deviceDpi.
         *
         * @return mixed
         */
        public function getScreenCategory()
        {
        }
        /**
         * Sets the value of screenCategory.
         *
         * @param mixed $screenCategory the screenCategory
         */
        public function setScreenCategory($screenCategory)
        {
        }
        /**
         * Use it to get value of viewport-metadata for large screen of android based device.
         */
        public function getLargeScreenViewPort()
        {
        }
        /**
         * Gets target dpi for a viewport meta data
         *
         * @return string
         */
        public function getTargetDpi()
        {
        }
        /**
         * Gets the value of iniScale.
         *
         * @return mixed
         */
        public function getIniScale()
        {
        }
        /**
         * Sets the value of iniScale.
         *
         * @param mixed $iniScale the iniScale
         */
        public function setIniScale($iniScale)
        {
        }
        /**
         * Gets the value of maxScale.
         *
         * @return mixed
         */
        public function getMaxScale()
        {
        }
        /**
         * Sets the value of maxScale.
         *
         * @param mixed $maxScale the maxScale
         */
        public function setMaxScale($maxScale)
        {
        }
        /**
         * Gets the value of minScale.
         *
         * @return mixed
         */
        public function getMinScale()
        {
        }
        /**
         * Sets the value of minScale.
         *
         * @param mixed $minScale the minScale
         */
        public function setMinScale($minScale)
        {
        }
        /**
         * Return width of device's screen in pixels
         * @return integer
         */
        public function getWidth()
        {
        }
        /**
         * @param integer $width
         */
        public function setWidth($width)
        {
        }
        /**
         * Returns the value of  self::platform
         * @return string
         */
        public static function getPlatform()
        {
        }
        /**
         * Returns value of parameter user-scalable which will be used in viewport meta tag
         * @return string
         */
        public function getUserScalable()
        {
        }
        /**
         * Sets value of parameter "user-scalable" which will be used in viewport meta tag
         * @param boolean $userScalable
         */
        public function setUserScalable($userScalable)
        {
        }
        /**
         * Converts string from site charset in utf-8 and returns it
         *
         * @param string $s
         *
         * @return string
         */
        public static function PrepareStrToJson($s = '')
        {
        }
        /**
         * Converts string from utf-8 in site charset and returns it
         *
         * @param string $s
         *
         * @return string
         */
        public static function ConvertFromUtf($s = '')
        {
        }
        public static function onMobileInit()
        {
        }
        /**
         * Sets the value of self::$apiVersion
         *
         * @return int
         */
        public static function getApiVersion()
        {
        }
        /**
         * Returns phonegap version
         * @return string
         */
        public static function getPgVersion()
        {
        }
        /**
         * @return float
         */
        public static function getSystemVersion()
        {
        }
        /**
         * @return boolean
         */
        public function isWebRtcSupported()
        {
        }
        /**
         * Use it to get value of viewport-metadata for portrait orientation.
         *
         * @return string
         */
        public function getViewPortPortrait()
        {
        }
        /**
         * Use it to get value of viewport-metadata for landscape orientation.
         *
         * @return string
         */
        public function getViewPortLandscape()
        {
        }
        /**
         * Gets the value of deviceHeight.
         *
         * @return mixed
         */
        public function getDeviceHeight()
        {
        }
        /**
         * Sets the value of deviceHeight.
         *
         * @param mixed $deviceHeight the deviceHeight
         */
        public function setDeviceHeight($deviceHeight)
        {
        }
        /**
         * Gets the value of largeScreenSupport.
         *
         * @return mixed
         */
        public function getLargeScreenSupport()
        {
        }
        /**
         * Sets the value of largeScreenSupport.
         *
         * @param mixed $largeScreenSupport the $largeScreenSupport
         */
        public function setLargeScreenSupport($largeScreenSupport)
        {
        }
        /**
         * Gets the value of scale.
         *
         * @return mixed
         */
        public function getScale()
        {
        }
        /**
         * Sets the value of scale.
         *
         * @param $scale
         */
        public function setScale($scale)
        {
        }
        /**
         *  Returns true if device has a large screen
         * @return bool
         */
        public function isLarge()
        {
        }
        private function __clone()
        {
        }
    }
}
namespace {
    class CMobile extends \Bitrix\MobileApp\Mobile
    {
    }
    class CAdminMobilePush
    {
        private static $arData = array();
        public static function addData($branchName, $arData)
        {
        }
        public static function getData($path = "")
        {
        }
        public static function getOptions($path = "")
        {
        }
        public static function saveOptions($path = "", $arOpts)
        {
        }
        public static function OnAdminMobileGetPushSettings()
        {
        }
    }
    class CMobileAppPullSchema
    {
        public static function OnGetDependentModule()
        {
        }
    }
}
namespace Bitrix\MobileApp {
    /**
     * EO_App
     * @see \Bitrix\MobileApp\AppTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getCode()
     * @method \Bitrix\MobileApp\EO_App setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string getShortName()
     * @method \Bitrix\MobileApp\EO_App setShortName(\string|\Bitrix\Main\DB\SqlExpression $shortName)
     * @method bool hasShortName()
     * @method bool isShortNameFilled()
     * @method bool isShortNameChanged()
     * @method \string remindActualShortName()
     * @method \string requireShortName()
     * @method \Bitrix\MobileApp\EO_App resetShortName()
     * @method \Bitrix\MobileApp\EO_App unsetShortName()
     * @method \string fillShortName()
     * @method \string getName()
     * @method \Bitrix\MobileApp\EO_App setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\MobileApp\EO_App resetName()
     * @method \Bitrix\MobileApp\EO_App unsetName()
     * @method \string fillName()
     * @method \string getDescription()
     * @method \Bitrix\MobileApp\EO_App setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\MobileApp\EO_App resetDescription()
     * @method \Bitrix\MobileApp\EO_App unsetDescription()
     * @method \string fillDescription()
     * @method \string getFiles()
     * @method \Bitrix\MobileApp\EO_App setFiles(\string|\Bitrix\Main\DB\SqlExpression $files)
     * @method bool hasFiles()
     * @method bool isFilesFilled()
     * @method bool isFilesChanged()
     * @method \string remindActualFiles()
     * @method \string requireFiles()
     * @method \Bitrix\MobileApp\EO_App resetFiles()
     * @method \Bitrix\MobileApp\EO_App unsetFiles()
     * @method \string fillFiles()
     * @method \string getLaunchIcons()
     * @method \Bitrix\MobileApp\EO_App setLaunchIcons(\string|\Bitrix\Main\DB\SqlExpression $launchIcons)
     * @method bool hasLaunchIcons()
     * @method bool isLaunchIconsFilled()
     * @method bool isLaunchIconsChanged()
     * @method \string remindActualLaunchIcons()
     * @method \string requireLaunchIcons()
     * @method \Bitrix\MobileApp\EO_App resetLaunchIcons()
     * @method \Bitrix\MobileApp\EO_App unsetLaunchIcons()
     * @method \string fillLaunchIcons()
     * @method \string getLaunchScreens()
     * @method \Bitrix\MobileApp\EO_App setLaunchScreens(\string|\Bitrix\Main\DB\SqlExpression $launchScreens)
     * @method bool hasLaunchScreens()
     * @method bool isLaunchScreensFilled()
     * @method bool isLaunchScreensChanged()
     * @method \string remindActualLaunchScreens()
     * @method \string requireLaunchScreens()
     * @method \Bitrix\MobileApp\EO_App resetLaunchScreens()
     * @method \Bitrix\MobileApp\EO_App unsetLaunchScreens()
     * @method \string fillLaunchScreens()
     * @method \string getFolder()
     * @method \Bitrix\MobileApp\EO_App setFolder(\string|\Bitrix\Main\DB\SqlExpression $folder)
     * @method bool hasFolder()
     * @method bool isFolderFilled()
     * @method bool isFolderChanged()
     * @method \string remindActualFolder()
     * @method \string requireFolder()
     * @method \Bitrix\MobileApp\EO_App resetFolder()
     * @method \Bitrix\MobileApp\EO_App unsetFolder()
     * @method \string fillFolder()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\MobileApp\EO_App setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\MobileApp\EO_App resetDateCreate()
     * @method \Bitrix\MobileApp\EO_App unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\MobileApp\Designer\EO_Config getConfig()
     * @method \Bitrix\MobileApp\Designer\EO_Config remindActualConfig()
     * @method \Bitrix\MobileApp\Designer\EO_Config requireConfig()
     * @method \Bitrix\MobileApp\EO_App setConfig(\Bitrix\MobileApp\Designer\EO_Config $object)
     * @method \Bitrix\MobileApp\EO_App resetConfig()
     * @method \Bitrix\MobileApp\EO_App unsetConfig()
     * @method bool hasConfig()
     * @method bool isConfigFilled()
     * @method bool isConfigChanged()
     * @method \Bitrix\MobileApp\Designer\EO_Config fillConfig()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\MobileApp\EO_App set($fieldName, $value)
     * @method \Bitrix\MobileApp\EO_App reset($fieldName)
     * @method \Bitrix\MobileApp\EO_App unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\MobileApp\EO_App wakeUp($data)
     */
    class EO_App
    {
        /* @var \Bitrix\MobileApp\AppTable */
        public static $dataClass = '\\Bitrix\\MobileApp\\AppTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_App_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getCodeList()
     * @method \string[] getShortNameList()
     * @method \string[] fillShortName()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getFilesList()
     * @method \string[] fillFiles()
     * @method \string[] getLaunchIconsList()
     * @method \string[] fillLaunchIcons()
     * @method \string[] getLaunchScreensList()
     * @method \string[] fillLaunchScreens()
     * @method \string[] getFolderList()
     * @method \string[] fillFolder()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\MobileApp\Designer\EO_Config[] getConfigList()
     * @method \Bitrix\MobileApp\EO_App_Collection getConfigCollection()
     * @method \Bitrix\MobileApp\Designer\EO_Config_Collection fillConfig()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\MobileApp\EO_App $object)
     * @method bool has(\Bitrix\MobileApp\EO_App $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\MobileApp\EO_App getByPrimary($primary)
     * @method \Bitrix\MobileApp\EO_App[] getAll()
     * @method bool remove(\Bitrix\MobileApp\EO_App $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\MobileApp\EO_App_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\MobileApp\EO_App current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_App_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\MobileApp\AppTable */
        public static $dataClass = '\\Bitrix\\MobileApp\\AppTable';
    }
    /**
     * @method static EO_App_Query query()
     * @method static EO_App_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_App_Result getById($id)
     * @method static EO_App_Result getList(array $parameters = array())
     * @method static EO_App_Entity getEntity()
     * @method static \Bitrix\MobileApp\EO_App createObject($setDefaultValues = true)
     * @method static \Bitrix\MobileApp\EO_App_Collection createCollection()
     * @method static \Bitrix\MobileApp\EO_App wakeUpObject($row)
     * @method static \Bitrix\MobileApp\EO_App_Collection wakeUpCollection($rows)
     */
    class AppTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_App_Result exec()
     * @method \Bitrix\MobileApp\EO_App fetchObject()
     * @method \Bitrix\MobileApp\EO_App_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_App_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\MobileApp\EO_App fetchObject()
     * @method \Bitrix\MobileApp\EO_App_Collection fetchCollection()
     */
    class EO_App_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\MobileApp\EO_App createObject($setDefaultValues = true)
     * @method \Bitrix\MobileApp\EO_App_Collection createCollection()
     * @method \Bitrix\MobileApp\EO_App wakeUpObject($row)
     * @method \Bitrix\MobileApp\EO_App_Collection wakeUpCollection($rows)
     */
    class EO_App_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\MobileApp\Designer {
    /**
     * EO_App
     * @see \Bitrix\MobileApp\Designer\AppTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getCode()
     * @method \Bitrix\MobileApp\Designer\EO_App setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string getShortName()
     * @method \Bitrix\MobileApp\Designer\EO_App setShortName(\string|\Bitrix\Main\DB\SqlExpression $shortName)
     * @method bool hasShortName()
     * @method bool isShortNameFilled()
     * @method bool isShortNameChanged()
     * @method \string remindActualShortName()
     * @method \string requireShortName()
     * @method \Bitrix\MobileApp\Designer\EO_App resetShortName()
     * @method \Bitrix\MobileApp\Designer\EO_App unsetShortName()
     * @method \string fillShortName()
     * @method \string getName()
     * @method \Bitrix\MobileApp\Designer\EO_App setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\MobileApp\Designer\EO_App resetName()
     * @method \Bitrix\MobileApp\Designer\EO_App unsetName()
     * @method \string fillName()
     * @method \string getDescription()
     * @method \Bitrix\MobileApp\Designer\EO_App setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\MobileApp\Designer\EO_App resetDescription()
     * @method \Bitrix\MobileApp\Designer\EO_App unsetDescription()
     * @method \string fillDescription()
     * @method \string getFiles()
     * @method \Bitrix\MobileApp\Designer\EO_App setFiles(\string|\Bitrix\Main\DB\SqlExpression $files)
     * @method bool hasFiles()
     * @method bool isFilesFilled()
     * @method bool isFilesChanged()
     * @method \string remindActualFiles()
     * @method \string requireFiles()
     * @method \Bitrix\MobileApp\Designer\EO_App resetFiles()
     * @method \Bitrix\MobileApp\Designer\EO_App unsetFiles()
     * @method \string fillFiles()
     * @method \string getLaunchIcons()
     * @method \Bitrix\MobileApp\Designer\EO_App setLaunchIcons(\string|\Bitrix\Main\DB\SqlExpression $launchIcons)
     * @method bool hasLaunchIcons()
     * @method bool isLaunchIconsFilled()
     * @method bool isLaunchIconsChanged()
     * @method \string remindActualLaunchIcons()
     * @method \string requireLaunchIcons()
     * @method \Bitrix\MobileApp\Designer\EO_App resetLaunchIcons()
     * @method \Bitrix\MobileApp\Designer\EO_App unsetLaunchIcons()
     * @method \string fillLaunchIcons()
     * @method \string getLaunchScreens()
     * @method \Bitrix\MobileApp\Designer\EO_App setLaunchScreens(\string|\Bitrix\Main\DB\SqlExpression $launchScreens)
     * @method bool hasLaunchScreens()
     * @method bool isLaunchScreensFilled()
     * @method bool isLaunchScreensChanged()
     * @method \string remindActualLaunchScreens()
     * @method \string requireLaunchScreens()
     * @method \Bitrix\MobileApp\Designer\EO_App resetLaunchScreens()
     * @method \Bitrix\MobileApp\Designer\EO_App unsetLaunchScreens()
     * @method \string fillLaunchScreens()
     * @method \string getFolder()
     * @method \Bitrix\MobileApp\Designer\EO_App setFolder(\string|\Bitrix\Main\DB\SqlExpression $folder)
     * @method bool hasFolder()
     * @method bool isFolderFilled()
     * @method bool isFolderChanged()
     * @method \string remindActualFolder()
     * @method \string requireFolder()
     * @method \Bitrix\MobileApp\Designer\EO_App resetFolder()
     * @method \Bitrix\MobileApp\Designer\EO_App unsetFolder()
     * @method \string fillFolder()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\MobileApp\Designer\EO_App setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\MobileApp\Designer\EO_App resetDateCreate()
     * @method \Bitrix\MobileApp\Designer\EO_App unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\MobileApp\Designer\EO_Config getConfig()
     * @method \Bitrix\MobileApp\Designer\EO_Config remindActualConfig()
     * @method \Bitrix\MobileApp\Designer\EO_Config requireConfig()
     * @method \Bitrix\MobileApp\Designer\EO_App setConfig(\Bitrix\MobileApp\Designer\EO_Config $object)
     * @method \Bitrix\MobileApp\Designer\EO_App resetConfig()
     * @method \Bitrix\MobileApp\Designer\EO_App unsetConfig()
     * @method bool hasConfig()
     * @method bool isConfigFilled()
     * @method bool isConfigChanged()
     * @method \Bitrix\MobileApp\Designer\EO_Config fillConfig()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\MobileApp\Designer\EO_App set($fieldName, $value)
     * @method \Bitrix\MobileApp\Designer\EO_App reset($fieldName)
     * @method \Bitrix\MobileApp\Designer\EO_App unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\MobileApp\Designer\EO_App wakeUp($data)
     */
    class EO_App
    {
        /* @var \Bitrix\MobileApp\Designer\AppTable */
        public static $dataClass = '\\Bitrix\\MobileApp\\Designer\\AppTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_App_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getCodeList()
     * @method \string[] getShortNameList()
     * @method \string[] fillShortName()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getFilesList()
     * @method \string[] fillFiles()
     * @method \string[] getLaunchIconsList()
     * @method \string[] fillLaunchIcons()
     * @method \string[] getLaunchScreensList()
     * @method \string[] fillLaunchScreens()
     * @method \string[] getFolderList()
     * @method \string[] fillFolder()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\MobileApp\Designer\EO_Config[] getConfigList()
     * @method \Bitrix\MobileApp\Designer\EO_App_Collection getConfigCollection()
     * @method \Bitrix\MobileApp\Designer\EO_Config_Collection fillConfig()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\MobileApp\Designer\EO_App $object)
     * @method bool has(\Bitrix\MobileApp\Designer\EO_App $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\MobileApp\Designer\EO_App getByPrimary($primary)
     * @method \Bitrix\MobileApp\Designer\EO_App[] getAll()
     * @method bool remove(\Bitrix\MobileApp\Designer\EO_App $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\MobileApp\Designer\EO_App_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\MobileApp\Designer\EO_App current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_App_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\MobileApp\Designer\AppTable */
        public static $dataClass = '\\Bitrix\\MobileApp\\Designer\\AppTable';
    }
    /**
     * @method static EO_App_Query query()
     * @method static EO_App_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_App_Result getById($id)
     * @method static EO_App_Result getList(array $parameters = array())
     * @method static EO_App_Entity getEntity()
     * @method static \Bitrix\MobileApp\Designer\EO_App createObject($setDefaultValues = true)
     * @method static \Bitrix\MobileApp\Designer\EO_App_Collection createCollection()
     * @method static \Bitrix\MobileApp\Designer\EO_App wakeUpObject($row)
     * @method static \Bitrix\MobileApp\Designer\EO_App_Collection wakeUpCollection($rows)
     */
    class AppTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_App_Result exec()
     * @method \Bitrix\MobileApp\Designer\EO_App fetchObject()
     * @method \Bitrix\MobileApp\Designer\EO_App_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_App_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\MobileApp\Designer\EO_App fetchObject()
     * @method \Bitrix\MobileApp\Designer\EO_App_Collection fetchCollection()
     */
    class EO_App_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\MobileApp\Designer\EO_App createObject($setDefaultValues = true)
     * @method \Bitrix\MobileApp\Designer\EO_App_Collection createCollection()
     * @method \Bitrix\MobileApp\Designer\EO_App wakeUpObject($row)
     * @method \Bitrix\MobileApp\Designer\EO_App_Collection wakeUpCollection($rows)
     */
    class EO_App_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Config
     * @see \Bitrix\MobileApp\Designer\ConfigTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getAppCode()
     * @method \Bitrix\MobileApp\Designer\EO_Config setAppCode(\string|\Bitrix\Main\DB\SqlExpression $appCode)
     * @method bool hasAppCode()
     * @method bool isAppCodeFilled()
     * @method bool isAppCodeChanged()
     * @method \string getPlatform()
     * @method \Bitrix\MobileApp\Designer\EO_Config setPlatform(\string|\Bitrix\Main\DB\SqlExpression $platform)
     * @method bool hasPlatform()
     * @method bool isPlatformFilled()
     * @method bool isPlatformChanged()
     * @method \string getParams()
     * @method \Bitrix\MobileApp\Designer\EO_Config setParams(\string|\Bitrix\Main\DB\SqlExpression $params)
     * @method bool hasParams()
     * @method bool isParamsFilled()
     * @method bool isParamsChanged()
     * @method \string remindActualParams()
     * @method \string requireParams()
     * @method \Bitrix\MobileApp\Designer\EO_Config resetParams()
     * @method \Bitrix\MobileApp\Designer\EO_Config unsetParams()
     * @method \string fillParams()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\MobileApp\Designer\EO_Config setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\MobileApp\Designer\EO_Config resetDateCreate()
     * @method \Bitrix\MobileApp\Designer\EO_Config unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\MobileApp\EO_App getApp()
     * @method \Bitrix\MobileApp\EO_App remindActualApp()
     * @method \Bitrix\MobileApp\EO_App requireApp()
     * @method \Bitrix\MobileApp\Designer\EO_Config setApp(\Bitrix\MobileApp\EO_App $object)
     * @method \Bitrix\MobileApp\Designer\EO_Config resetApp()
     * @method \Bitrix\MobileApp\Designer\EO_Config unsetApp()
     * @method bool hasApp()
     * @method bool isAppFilled()
     * @method bool isAppChanged()
     * @method \Bitrix\MobileApp\EO_App fillApp()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\MobileApp\Designer\EO_Config set($fieldName, $value)
     * @method \Bitrix\MobileApp\Designer\EO_Config reset($fieldName)
     * @method \Bitrix\MobileApp\Designer\EO_Config unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\MobileApp\Designer\EO_Config wakeUp($data)
     */
    class EO_Config
    {
        /* @var \Bitrix\MobileApp\Designer\ConfigTable */
        public static $dataClass = '\\Bitrix\\MobileApp\\Designer\\ConfigTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Config_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getAppCodeList()
     * @method \string[] getPlatformList()
     * @method \string[] getParamsList()
     * @method \string[] fillParams()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\MobileApp\EO_App[] getAppList()
     * @method \Bitrix\MobileApp\Designer\EO_Config_Collection getAppCollection()
     * @method \Bitrix\MobileApp\EO_App_Collection fillApp()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\MobileApp\Designer\EO_Config $object)
     * @method bool has(\Bitrix\MobileApp\Designer\EO_Config $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\MobileApp\Designer\EO_Config getByPrimary($primary)
     * @method \Bitrix\MobileApp\Designer\EO_Config[] getAll()
     * @method bool remove(\Bitrix\MobileApp\Designer\EO_Config $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\MobileApp\Designer\EO_Config_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\MobileApp\Designer\EO_Config current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Config_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\MobileApp\Designer\ConfigTable */
        public static $dataClass = '\\Bitrix\\MobileApp\\Designer\\ConfigTable';
    }
    /**
     * @method static EO_Config_Query query()
     * @method static EO_Config_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Config_Result getById($id)
     * @method static EO_Config_Result getList(array $parameters = array())
     * @method static EO_Config_Entity getEntity()
     * @method static \Bitrix\MobileApp\Designer\EO_Config createObject($setDefaultValues = true)
     * @method static \Bitrix\MobileApp\Designer\EO_Config_Collection createCollection()
     * @method static \Bitrix\MobileApp\Designer\EO_Config wakeUpObject($row)
     * @method static \Bitrix\MobileApp\Designer\EO_Config_Collection wakeUpCollection($rows)
     */
    class ConfigTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Config_Result exec()
     * @method \Bitrix\MobileApp\Designer\EO_Config fetchObject()
     * @method \Bitrix\MobileApp\Designer\EO_Config_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Config_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\MobileApp\Designer\EO_Config fetchObject()
     * @method \Bitrix\MobileApp\Designer\EO_Config_Collection fetchCollection()
     */
    class EO_Config_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\MobileApp\Designer\EO_Config createObject($setDefaultValues = true)
     * @method \Bitrix\MobileApp\Designer\EO_Config_Collection createCollection()
     * @method \Bitrix\MobileApp\Designer\EO_Config wakeUpObject($row)
     * @method \Bitrix\MobileApp\Designer\EO_Config_Collection wakeUpCollection($rows)
     */
    class EO_Config_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\MobileApp {
    class AppResource
    {
        private static $map = array();
        private static function getMap()
        {
        }
        public static function get($platform_id)
        {
        }
        public static function getIconsSet($platform_id)
        {
        }
        public static function getImagesSet($platform_id)
        {
        }
        public static function getAdditionalSet($platform_id)
        {
        }
    }
}
namespace Bitrix\MobileApp\Janative\Entity {
    abstract class Base
    {
        protected static $modificationDates = [];
        protected static $dependencies = [];
        protected $path;
        protected $namespace;
        protected $baseFileName;
        public $name;
        public function getModificationTime()
        {
        }
        public function getDependencies()
        {
        }
        public function getPath()
        {
        }
        public function getRelativePathToFile()
        {
        }
        public function getLangMessages()
        {
        }
        public function getDependencyList()
        {
        }
        /**
         * @param $ext
         * @return array
         * @throws FileNotFoundException
         */
        private static function expandDependency($ext)
        {
        }
        public function getLangDefinitionExpression()
        {
        }
        protected abstract function onBeforeModificationDateSave(&$value);
        protected abstract function resolveDependencies();
    }
    class Component extends \Bitrix\MobileApp\Janative\Entity\Base
    {
        const VERSION = 2;
        protected static $modificationDates = [];
        protected static $dependencies = [];
        private $version;
        /**
         * Component constructor.
         * @param null $path
         * @throws \Exception
         */
        public function __construct($path = null)
        {
        }
        public function getPath()
        {
        }
        /**
         * @param $name
         * @param string $namespace
         * @return Component|null
         * @throws \Exception
         */
        public static function createInstanceByName($name, $namespace = "bitrix")
        {
        }
        public function getResult()
        {
        }
        /**
         * @param bool $resultOnly
         * @param bool $loadExtensionsSeparately
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\IO\FileNotFoundException
         * @throws \Bitrix\Main\LoaderException
         */
        public function execute($resultOnly = false, $loadExtensionsSeparately = false)
        {
        }
        public function getInfo()
        {
        }
        protected function onBeforeModificationDateSave(&$value)
        {
        }
        public function getVersion()
        {
        }
        public function getPublicPath()
        {
        }
        /**
         * @return array|null
         */
        public function resolveDependencies()
        {
        }
        private function getExtensionsContent($lazyLoad = false)
        {
        }
    }
    class Extension extends \Bitrix\MobileApp\Janative\Entity\Base
    {
        protected static $modificationDates = [];
        protected static $dependencies = [];
        /**
         * Extension constructor.
         * @param $identifier
         * @throws \Exception
         */
        public function __construct($identifier)
        {
        }
        /**
         * Returns content of extension without depending extensions
         * @return string
         * @throws \Bitrix\Main\IO\FileNotFoundException
         */
        public function getContent()
        {
        }
        public function getIncludeExpression($callbackName = "onExtensionsLoaded")
        {
        }
        /**
         * Returns list of dependencies by name of extensions
         * @param $name
         * @param array $list
         * @param array $alreadyResolved
         * @return array
         * @throws \Exception
         */
        public static function getResolvedDependencyList($name, &$list = [], &$alreadyResolved = [])
        {
        }
        protected function onBeforeModificationDateSave(&$value)
        {
        }
        /**
         * @return array
         * @throws \Exception
         */
        protected function resolveDependencies()
        {
        }
    }
}
namespace Bitrix\MobileApp\Janative {
    class Manager
    {
        /**
         * @var array
         */
        private static $workspaces;
        /**
         * @var array|null
         */
        private static $availableComponents;
        private $extensions;
        private $initiated;
        private function __construct()
        {
        }
        /**
         * @return array
         */
        private static function getWorkspaces()
        {
        }
        /**
         * @return mixed
         * @throws \Bitrix\Main\IO\FileNotFoundException
         */
        private static function fetchComponents()
        {
        }
        /**
         * @param $ext
         * @return string|string[]|null
         */
        public static function getExtensionPath($ext)
        {
        }
        public static function getExtensionResourceList($ext)
        {
        }
        /**
         * @param $componentName
         * @return float|int|string
         * @throws \Exception
         */
        public static function getComponentVersion($componentName)
        {
        }
        /**
         * @param $componentName
         * @return string
         * @throws \Exception
         */
        public static function getComponentPath($componentName)
        {
        }
        /**
         * @return mixed
         * @throws \Bitrix\Main\IO\FileNotFoundException
         */
        public static function getAvailableComponents()
        {
        }
        /**
         * @param $name
         * @return Component|null
         * @throws \Bitrix\Main\IO\FileNotFoundException
         */
        public static function getComponentByName($name)
        {
        }
    }
    class Utils
    {
        /**
         * @param $entityIdentifier
         * @param string $defaultNamespace
         * @return array["name", "namespace","fullname", "defaultFullname"]
         */
        public static function extractEntityDescription($entityIdentifier, $defaultNamespace = "bitrix")
        {
        }
        /**
         * @param $string
         * @param int $options
         * @return mixed
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function jsonEncode($string, $options = JSON_HEX_TAG | JSON_HEX_AMP | JSON_PRETTY_PRINT | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_UNESCAPED_UNICODE)
        {
        }
    }
}
namespace Bitrix\MobileApp\Designer {
    class Tools
    {
        private static $jsMobileCorePath = "/bitrix/cache/js/mobileapp_designer/mobile_core.js";
        public static function getMobileJSCorePath()
        {
        }
        private static function generateMobileJSFile()
        {
        }
        public static function getArrayFilesHash($fileList = array())
        {
        }
    }
    class ConfigMap
    {
        const VERSION = 1.1;
        private static $configMap;
        private static $configDescription;
        /**
         * @return array|mixed
         * @throws \Bitrix\Main\SystemException
         */
        function __construct()
        {
        }
        private function createMap()
        {
        }
        public function getMap()
        {
        }
        /**
         * Gets full description of the all parameters recursively
         * @return array
         * @throws \Bitrix\Main\SystemException
         */
        public function getDescriptionConfig()
        {
        }
        public function getParamDescription($name, $type)
        {
        }
        public function getParamsByGroups()
        {
        }
        /**
         * Gets parameters by passed type
         * @param $paramType
         * @return array
         */
        public function getParamsByType($paramType)
        {
        }
        /**
         * Gets all parameters with type "image"
         * @return array
         */
        public function getImageParams()
        {
        }
        /**
         * Gets all parameters with group types
         * @return mixed
         * @throws \Bitrix\Main\SystemException
         */
        public function getGroupParams()
        {
        }
        /**
         * Checks if parameter with passed $paramName is group
         * @param $paramName
         * @return bool
         * @throws \Bitrix\Main\SystemException
         */
        public function isGroup($paramName)
        {
        }
        /**
         * Returns group of the parameter by its name
         * @param $paramName
         * @return string
         */
        public function getGroupByParam($paramName)
        {
        }
        /**
         * Gets lang messages
         * @return array
         */
        public function getLangMessages()
        {
        }
        /**
         * Checks if parameter with passed name is exists in the map
         * @param $paramName
         * @return bool
         */
        public function has($paramName)
        {
        }
        /**
         * Gets list of values for parameter
         * @param $paramName
         * @return mixed
         * @throws \Bitrix\Main\SystemException
         */
        private function getValueList($paramName)
        {
        }
        private function getLimits($paramName)
        {
        }
    }
    class Manager
    {
        const IS_ALREADY_EXISTS = 3;
        const SUCCESS = 1;
        const FAIL = 0;
        const EMPTY_REQUIRED = 4;
        const APP_TEMPLATE_IS_NOT_EXISTS = 5;
        const PREVIEW_IMAGE_SIZE = 150;
        const SIMPLE_APP_TEMPLATE = "simple";
        /**
         * Creates a new application with "global" configuration by default
         *
         * @param string $appCode - application code
         * @param array $data - application data (name, short name, folder and etc)
         * @param array $initConfig
         *
         * @return int
         * @throws \Exception
         * @see AppTable::getMap to get a bit more information about possible keys in $data
         */
        public static function createApp($appCode = "", $data = array(), $initConfig = array())
        {
        }
        private static function getTemplateList()
        {
        }
        /**
         * Removes application by code
         *
         * @param string $appCode application code
         *
         * @return bool
         */
        public static function removeApp($appCode)
        {
        }
        /**
         * Binds file to the application
         *
         * @param $fileArray - file array
         * @param $appCode - application code
         */
        public static function registerFileInApp(&$fileArray, $appCode)
        {
        }
        /**
         *  Unbinds file
         *
         * @param $fileId - identifier of file in b_file table
         * @param $appCode - application code
         */
        public static function unregisterFileInApp($fileId, $appCode)
        {
        }
        /**
         * Add configuration to application
         *
         * @param string $appCode - application code
         * @param $platform - platform code
         *
         * @see ConfigTable::getSupportedPlatforms for details on availible platforms
         *
         * @param array $config - configuration
         *
         * @return bool
         */
        public static function addConfig($appCode = "", $platform, $config = array())
        {
        }
        /**
         * Removes configuration
         *
         * @param string $appCode - application code
         * @param array $platform - platform code
         *
         * @see ConfigTable::getSupportedPlatforms for details on availible platforms
         * @return bool
         */
        public static function removeConfig($appCode = "", $platform = array())
        {
        }
        /**
         * Updates configuration
         *
         * @param string $appCode  application code
         * @param array $platform  platform code
         * @param array $config  new configuration
         *
         * @see ConfigTable::getSupportedPlatforms
         *
         * @return bool
         */
        public static function updateConfig($appCode = "", $platform = "", $config = array())
        {
        }
        /**
         * Return configuration in JSON format
         *
         * @param $appCode - application code
         * @param bool $platform - platform code
         *
         * @see ConfigTable::getSupportedPlatforms for details on availible platforms
         * @return string
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getConfigJSON($appCode, $platform = false)
        {
        }
        /**
         * Checks if the configuration is already exists
         *
         * @param $folder
         * @param $appCode - application code
         * @param bool $useOffline
         * @param string $templateCode
         * @return bool
         * @throws \Bitrix\Main\IO\FileNotFoundException
         * @see ConfigTable::getSupportedPlatforms for details on availible platforms
         */
        public static function copyFromTemplate($folder, $appCode, $useOffline = false, $templateCode = "simple")
        {
        }
        /**
         * Binds (and creates if it's necessary) template to the application folder
         *
         * @param $templateId - symbolic code of the template
         * @param $folder - the application folder
         * @param bool $createNew - flag of the necessity of creating a new template
         */
        public static function bindTemplate($templateId, $folder, $createNew)
        {
        }
        /**
         * Return files of the application
         * @param $appCode - application code
         * @return array
         */
        public static function getAppFiles($appCode)
        {
        }
        /**
         * Converts the namespace string to the array
         * and assigns the given value to the key of deepest level of the namespace
         *
         * @param $namespace - namespace string
         * @param $value - value
         *
         * <br>
         *
         * Here is an example:
         * <code>
         * $namespace = "\depth0\depth1\depth3"
         * $value = "value1";
         * $resultArray = \Bitrix\MobileApp\Designer\Manager\nameSpaceToArray($namespace,$value));
         *
         * <b>Result:</b>
         * array(
         *  "depth0"=>array(
         *    "depth1"=>array(
         *      "depth2"=>"value1"
         *    )
         *  )
         *);
         *
         * </code>
         *
         * @return array
         */
        private function nameSpaceToArray($namespace, $value)
        {
        }
        private static function addVirtualParams(&$structuredConfig, $platform)
        {
        }
    }
    class ParameterType
    {
        /**
         * Group types
         */
        const GROUP_BACKGROUND = 1;
        const GROUP_BACKGROUND_LIGHT = 2;
        const GROUP = 13;
        /**
         * Value types
         */
        const SIZE = 3;
        const IMAGE_SET = 4;
        const VALUE_SET = 5;
        const IMAGE = 6;
        const COLOR = 7;
        const STRING = 8;
        const BOOLEAN = 9;
        const BUTTON_STRETCH = 10;
        const FILL_LIST = 11;
        const VALUE_LIST = 12;
        public static function getDesc($type, $paramName = false)
        {
        }
        public static function getStringType($intType)
        {
        }
    }
}
namespace Bitrix\MobileApp\Data {
    class Lists
    {
        private $categoryCodes = array();
        private $categoryNames = array();
        private $sections = array();
        private $items = array();
        public function addItem($categoryCode = "", $item = array())
        {
        }
        public function addItems($categoryCode = "", $items = array())
        {
        }
        public function addSection($categoryCode = "", $sectionCode, $sectionName)
        {
        }
        public function setCategoryName($categoryCode = "", $name = "")
        {
        }
        private function createCategory($categoryCode)
        {
        }
        public function showJSON()
        {
        }
    }
}
namespace {
    class form extends \CModule
    {
        var $MODULE_ID = "form";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_GROUP_RIGHTS = "Y";
        function form()
        {
        }
        function DoInstall()
        {
        }
        function InstallDB()
        {
        }
        function InstallFiles()
        {
        }
        function InstallEvents()
        {
        }
        function DoUninstall()
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function UnInstallFiles($arParams = array())
        {
        }
        function UnInstallEvents()
        {
        }
        function GetModuleRightList()
        {
        }
    }
    class CFormOutput_old
    {
        /**
         * Form initializing and checking. If form's wrong, returns false
         * Use ShowErrorMsg() to output error code
         *
         * @param array $arParams
         * @return bool
         */
        function Init($arParams, $admin = \false)
        {
        }
        function __checkFilter(&$str_error)
        {
        }
        function __prepareFilter()
        {
        }
        /**
         * Public output method
         * Use: $FORM->Out();
         *
         */
        function Out()
        {
        }
        function getData(&$arResult)
        {
        }
        function getListData()
        {
        }
        function __prepareDataForTpl()
        {
        }
        /**
         * Initialize Captcha
         *
         */
        function CaptchaInitialize()
        {
        }
        function ShowAnswer($FIELD_SID)
        {
        }
    }
    /**
     * Form output class - templates management & final output
     *
     */
    class CAllFormOutput extends \CFormOutput_old
    {
        var $__cache_path = "";
        var $__cache_file_header = "<?if(!defined(\"B_PROLOG_INCLUDED\") || B_PROLOG_INCLUDED!==true)die();?><?=\$FORM->ShowFormHeader();?>";
        var $__cache_file_footer = "<?=\$FORM->ShowFormFooter();?>";
        var $__admin;
        var $WEB_FORM_ID;
        var $WEB_FORM_NAME;
        var $arParams;
        var $arForm;
        var $arQuestions;
        var $arAnswers;
        var $arDropDown;
        var $arMultiSelect;
        var $arrRESULT_PERMISSION = array();
        var $arrVALUES;
        var $RESULT_ID;
        var $arResult;
        var $strFormNote;
        var $F_RIGHT;
        var $CAPTCHACode;
        var $bSimple;
        var $__error_msg = "";
        var $__form_validate_errors = "";
        var $__cache_file_name;
        var $__form_image_cache = "";
        var $__form_image_path_cache = "";
        var $__form_input_caption_image_cache = array();
        var $__form_input_caption_image_path_cache = array();
        var $comp2 = \false;
        var $bIsFormValidateErrors = \false;
        function CAllFormOutput()
        {
        }
        function InitializeTemplate($arParams, $arResult)
        {
        }
        function IncludeFormCustomTemplate()
        {
        }
        function IncludeFormTemplate()
        {
        }
        function isStatisticIncluded()
        {
        }
        /**
         * Private method used to check out for template and template cache file
         * Returns true whether tpl file exists and puts its path to private
         * property __cache_file_name. Otherwise returns false
         *
         * @return bool
         */
        function __check_form_cache()
        {
        }
        /*
        function __clear_form_cache_files()
        {
        	$path = $_SERVER['DOCUMENT_ROOT'].$this->__cache_path;
        	$fname_mask = "form_".$this->WEB_FORM_ID;
        
        	if ($dh = @opendir($path))
        	{
        		while (($fname = @readdir($dh)) !== false)
        		{
        			if (substr($fname, 0, strlen($fname_mask)) == $fname_mask) @unlink($path."/".$fname);
        		}
        		closedir($dh);
        	}
        }
        */
        /**
         * Public method used to check whether there were some form validation errors
         * Use: <?if($FORM->isFormErrors()):?>There're some errors!<?endif?>
         *
         * @return bool
         */
        function isFormErrors()
        {
        }
        /**
         * Public method used to show formatted form errors
         * Use: <?=$FORM->ShowFormErrors()?>
         *
         * @return string
         */
        function ShowFormErrors()
        {
        }
        /**
         * Public method used to show unformatted form errors
         * Use: <font color="red"><?=$FORM->ShowFormErrorsText()?></font>
         *
         * @return string
         */
        function ShowFormErrorsText()
        {
        }
        /**
         * Public: shows form note formatted string if any (like 'Changes saved')
         *
         * @return string
         */
        function ShowFormNote()
        {
        }
        /**
         * Public: shows form note unformatted string if any (like 'Changes saved')
         *
         * @return string
         */
        function ShowFormNoteText()
        {
        }
        /**
         * Public: check whether form has note string (like 'Changes saved')
         *
         * @return bool
         */
        function isFormNote()
        {
        }
        /**
         * Get current form runtime error code string
         * use $MESS from lang file to customize error messages
         *
         * @return string
         */
        function ShowErrorMsg()
        {
        }
        /**
         * Public method used to put form header (<form> tag and hidden fields)
         * Added to form template automatically
         *
         * @return string
         */
        function ShowFormHeader()
        {
        }
        /**
         * Public method used to put form footer (end <form> tag)
         * Added to form template automatically
         *
         * @return string
         */
        function ShowFormFooter()
        {
        }
        function __admin_GetInputType($FIELD_SID)
        {
        }
        function __admin_GetInputAnswersStructure($FIELD_SID)
        {
        }
        /**
         * Public method used to put input field title to template
         * Use: <?=$FORM->ShowInputCaption('MYFIELD_5')?>
         *
         * @param string $FIELD_SID
         * @param string $caption_css_class
         * @return string
         */
        function ShowInputCaption($FIELD_SID, $css_style = "")
        {
        }
        function __admin_ShowInputCaption($FIELD_SID, $caption_css_class = "", $unform = \false)
        {
        }
        /**
         * Public method used to put question image if exists onto form
         * Use: <?=$FORM->ShowInputCaptionImage('MYFIELD_5', 50, 50, "hspace=\"0\" vspace=\"0\" align=\"left\" border=\"0\"", "", true, GetMessage("FORM_ENLARGE"))?>
         * params like CFile::ShowImage()
         * Returns image code if image exists and empty string otherwise
         *
         * @param string $FIELD_SID
         * @param int $iMaxW
         * @param int $iMaxH
         * @param string $sParams
         * @param string $strImageUrl
         * @param bool $bPopup
         * @param string $strPopupTitle
         * @return string
         */
        function ShowInputCaptionImage($FIELD_SID, $sAlign = "", $iMaxW = "", $iMaxH = "", $bPopup = "N", $strPopupTitle = "", $sHSpace = "", $sVSpace = "", $sBorder = "")
        {
        }
        /**
         * Public method used to check wheter current question has image
         * Use: <?=($FORM->isInputCaptionImage('MYFIELD_5') ? "image: ".$FORM->ShowInputCaptionImage('MYFIELD_5') : "no image")?>
         *
         * @param string $FIELD_SID
         * @return bool
         */
        function isInputCaptionImage($FIELD_SID)
        {
        }
        /**
         * Public method used to put input fields to template
         * Use: <?=$FORM->ShowInput('MYFIELD_5')?>
         *
         * @param string $FIELD_SID
         * @param string $caption_css_class
         * @return string
         */
        function ShowInput($FIELD_SID, $caption_css_class = '')
        {
        }
        /**
         * Public method used to check whether current form uses captcha.
         * Use: <?if($FORM->isUseCaptcha()):?>form uses CAPTCHA<?else:?>form doesnt use CAPTCHA<?endif;?>
         *
         * @return bool
         */
        function isUseCaptcha()
        {
        }
        /**
         * Public method used to put CAPTCHA image onto form.
         * Use: <?=$FORM->ShowCaptchaImage()?>
         *
         * @return string
         */
        function ShowCaptchaImage()
        {
        }
        /**
         * Public method used to put CAPTCHA input field onto form.
         * Use: <?=$FORM->ShowCaptchaField()?>
         *
         * @return string
         */
        function ShowCaptchaField()
        {
        }
        /**
         * Public: show both CAPTCHA fields with default formating
         *
         * @return string
         */
        function ShowCaptcha()
        {
        }
        /**
         * Public method used to put submit button onto form.
         * Use: <?=$FORM->ShowSubmitButton()?>
         *
         * @return string
         */
        function ShowSubmitButton($caption = "", $css_style = "")
        {
        }
        /**
         * Public method used to put apply button onto form.
         * Use: <?=$FORM->ShowApplyButton()?>
         *
         * @return string
         */
        function ShowApplyButton($caption = "", $css_style = "")
        {
        }
        /**
         * Public method used to put reset button onto form.
         * Use: <?=$FORM->ShowResetButton()?>
         *
         * @return string
         */
        function ShowResetButton($caption = "", $css_style = "")
        {
        }
        /**
         * Public method used to put form description onto form page
         * Use: <?=$FORM->ShowFormDescription()?>
         *
         * @return string
         */
        function ShowFormDescription($css_style = "")
        {
        }
        /**
         * Public: check whether form has description
         *
         * @return bool
         */
        function isFormDescription()
        {
        }
        /**
         * Public: shows form image; params like CFile::ShowImage()
         * Use: <?=$FORM->ShowFormImage(250, 250, "hspace=\"0\" vspace=\"0\" align=\"left\" border=\"0\"", "", true, GetMessage("FORM_ENLARGE"))?>
         * Returns image code if image exists and empty string otherwise
         *
         * @param int $iMaxW
         * @param int $iMaxH
         * @param string $sParams
         * @param string $strImageUrl
         * @param bool $bPopup
         * @param mixed $strPopupTitle
         * @return string
         */
        //function ShowFormImage($iMaxW=0, $iMaxH=0, $sParams="border=\"0\"", $strImageUrl="", $bPopup=false, $strPopupTitle=false)
        function ShowFormImage($sAlign = "", $iMaxW = "", $iMaxH = "", $bPopup = "N", $strPopupTitle = "", $sHSpace = "", $sVSpace = "", $sBorder = "")
        {
        }
        /**
         * Public: check if form has image
         *
         * @return bool
         */
        function isFormImage()
        {
        }
        /**
         * Public: shows current form title
         *
         * @return string
         */
        function ShowFormTitle($css_style = "")
        {
        }
        /**
         * Public: check whether current form has title string
         *
         * @return bool
         */
        function isFormTitle()
        {
        }
        function ShowResultStatusForm()
        {
        }
        function ShowResultStatus($bNotShowCSS = "N")
        {
        }
        function ShowResultStatusText()
        {
        }
        function GetResultStatusCSSClass()
        {
        }
        function isResultStatusChangeAccess()
        {
        }
        function ShowDateFormat($css_style = "")
        {
        }
        /**
         * Public method used to show "required" label (red '*')
         * Use: <?=$FORM->ShowRequired()?>
         *
         * @return string
         */
        function ShowRequired()
        {
        }
        function CheckTemplate($FORM_TEMPLATE, &$arrFS)
        {
        }
        function PrepareFormData($arrFS)
        {
        }
        function setError($error)
        {
        }
        function isAccessFormParams()
        {
        }
        function isAccessForm()
        {
        }
        function isAccessFormResult($arrResult)
        {
        }
        function isAccessFormResultEdit()
        {
        }
        function isAccessFormResultView()
        {
        }
        function isAccessFormResultList()
        {
        }
        function getFormImagePath()
        {
        }
        function getInputCaptionImagePath($FIELD_SID)
        {
        }
        function setInputDefaultValue($FIELD_SID, $value, $ANSWER_ID = \false)
        {
        }
    }
    /***************************************
    	Form validator class
    ***************************************/
    class CAllFormValidator
    {
        function err_mess()
        {
        }
        /**
         * Get filtered list of validators assigned to current field
         *
         * @param int $FIELD_ID
         * @param array $arFilter
         * @return CDBResult
         */
        function GetList($FIELD_ID, $arFilter = array(), &$by, &$order)
        {
        }
        /**
         * Get filtered list of validators assigned to current form
         *
         * @param int $WEB_FORM_ID
         * @param array $arFilter
         * @return CDBResult
         */
        function GetListForm($WEB_FORM_ID, $arFilter = array(), &$by, &$order)
        {
        }
        function __getList($arFilter = array(), &$by, &$order)
        {
        }
        /**
         * Get filtered list of all registered validators. Filter params: TYPE = array|string;
         *
         * @param array $arFilter
         * @return false|CDBResult
         */
        function GetAllList($arFilter = array())
        {
        }
        /**
         * Apply validator to value
         *
         * @param string $sValSID
         * @param array $arParams
         * @param mixed $arValue
         * @return bool
         */
        function Execute($arValidator, $arQuestion, $arAnswers, $arAnswerValues)
        {
        }
        /**
         * Assign validator to the field
         *
         * @param int $WEB_FORM_ID
         * @param int $FIELD_ID
         * @param string $sValSID
         * @param array $arParams
         * @return int|bool
         */
        function Set($WEB_FORM_ID, $FIELD_ID, $sValSID, $arParams = array(), $C_SORT = 100)
        {
        }
        /**
         * Assign multiple validators to the field
         *
         * @param int $WEB_FORM_ID
         * @param int $FIELD_ID
         * @param array $arValidators
         */
        function SetBatch($WEB_FORM_ID, $FIELD_ID, $arValidators)
        {
        }
        function GetSettingsString($arValidator, $arParams)
        {
        }
        function GetSettingsArray($arValidator, $strParams)
        {
        }
        function GetSettings($arValidator)
        {
        }
        /**
         * Clear all field validators
         *
         * @param int $FIELD_ID
         */
        function Clear($FIELD_ID)
        {
        }
    }
    class CAllFormStatus
    {
        function err_mess()
        {
        }
        function GetPermissionList($STATUS_ID, &$arPERMISSION_VIEW, &$arPERMISSION_MOVE, &$arPERMISSION_EDIT, &$arPERMISSION_DELETE)
        {
        }
        function GetMaxPermissions()
        {
        }
        function GetPermissions($STATUS_ID)
        {
        }
        function GetNextSort($WEB_FORM_ID)
        {
        }
        function GetDefault($WEB_FORM_ID)
        {
        }
        function CheckFields($arFields, $STATUS_ID, $CHECK_RIGHTS = "Y")
        {
        }
        function Set($arFields, $STATUS_ID = \false, $CHECK_RIGHTS = "Y")
        {
        }
        function Delete($ID, $CHECK_RIGHTS = "Y")
        {
        }
        function Copy($ID, $CHECK_RIGHTS = "Y", $NEW_FORM_ID = \false)
        {
        }
        function SetMailTemplate($WEB_FORM_ID, $STATUS_ID, $ADD_NEW_TEMPLATE = "Y", $old_SID = "", $bReturnFullInfo = \false)
        {
        }
        function GetMailTemplateArray($STATUS_ID)
        {
        }
        function GetTemplateList($STATUS_ID)
        {
        }
    }
    abstract class CAllFormCrm
    {
        const LINK_AUTO = 'A';
        const LINK_MANUAL = 'M';
        private static $_ob;
        public static abstract function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array());
        public static function GetByID($ID)
        {
        }
        public static function GetByFormID($FORM_ID)
        {
        }
        public static function GetFields($LINK_ID)
        {
        }
        private static function _addField($FORM_ID, $CRM_ID, $crm_field)
        {
        }
        public static function SetForm($FORM_ID, $arParams)
        {
        }
        public static function onResultAdded($FORM_ID, $RESULT_ID)
        {
        }
        public static function AddLead($FORM_ID, $RESULT_ID, $arLink = \null)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        protected static function _getAllFormFieldsHTML($WEB_FORM_ID, $RESULT_ID, $arAnswers)
        {
        }
        protected static function _getAllFormFields($WEB_FORM_ID, $RESULT_ID, $arAnswers)
        {
        }
        protected static function CheckFields($action, &$arFields)
        {
        }
        protected static function GetFilterOperation($key)
        {
        }
        protected static function PrepareSql(&$arFields, $arOrder, &$arFilter, $arGroupBy, $arSelectFields)
        {
        }
    }
    class CFormCrmSender
    {
        const FIELDS_CACHE_TTL = 2592000;
        private $ID;
        private $arLink;
        private $arCRMFields;
        private $arAuth;
        private $authHash;
        private $lastResult = \null;
        public function __construct($ID, $arAuth = \null)
        {
        }
        public function AddLead($arLeadFields)
        {
        }
        public function GetFields($bReload = \false)
        {
        }
        public function GetAuthHash()
        {
        }
        public function GetLastResult()
        {
        }
        private function _setAuthHash($hash)
        {
        }
        private function _cacheId()
        {
        }
        private function _query($method, $params = array())
        {
        }
    }
    class _CFormCrmSenderResult
    {
        private $bProcess = \false;
        private $result_text;
        private $result;
        private $result_code;
        private $result_error;
        public function __construct($result_text)
        {
        }
        public function code()
        {
        }
        public function data()
        {
        }
        public function error()
        {
        }
        public function field($field)
        {
        }
        private function _process()
        {
        }
    }
    class CAllFormAnswer
    {
        function err_mess()
        {
        }
        function Copy($ID, $NEW_QUESTION_ID = \false)
        {
        }
        function Delete($ID, $QUESTION_ID = \false)
        {
        }
        function GetTypeList()
        {
        }
        function GetList($QUESTION_ID, &$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        function GetByID($ID)
        {
        }
        function CheckFields($arFields, $ANSWER_ID = \false)
        {
        }
        function Set($arFields, $ANSWER_ID = \false)
        {
        }
    }
    class CFormResult_old
    {
        function GetDataByIDForWeb($RESULT_ID, $GET_ADDITIONAL = "N")
        {
        }
        function GetMaxPermissions()
        {
        }
        function Edit($RESULT_ID, $arrVALUES, $TEMPLATE = "", $EDIT_ADDITIONAL = "N", $EDIT_STATUS = "N")
        {
        }
        function Show($RESULT_ID, $TEMPLATE = "", $TEMPLATE_TYPE = "show", $SHOW_ADDITIONAL = "N", $SHOW_ANSWER_VALUE = "Y", $SHOW_STATUS = "N")
        {
        }
    }
    class CAllFormField
    {
        function err_mess()
        {
        }
        function GetList($WEB_FORM_ID, $get_fields, &$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        function GetByID($ID)
        {
        }
        function GetBySID($SID, $FORM_ID = \false)
        {
        }
        function GetNextSort($WEB_FORM_ID)
        {
        }
        function Copy($ID, $CHECK_RIGHTS = "Y", $NEW_FORM_ID = \false)
        {
        }
        function Delete($ID, $CHECK_RIGHTS = "Y")
        {
        }
        function Reset($ID, $CHECK_RIGHTS = "Y")
        {
        }
        function GetFilterTypeList(&$arrUSER, &$arrANSWER_TEXT, &$arrANSWER_VALUE, &$arrFIELD)
        {
        }
        function GetTypeList()
        {
        }
        function GetFilterList($WEB_FORM_ID, $arFilter = array())
        {
        }
        function CheckFields(&$arFields, $FIELD_ID, $CHECK_RIGHTS = "Y")
        {
        }
        function Set($arFields, $FIELD_ID = \false, $CHECK_RIGHTS = "Y", $UPDATE_FILTER = "Y")
        {
        }
    }
    /***************************************
    		Web-form result
    ***************************************/
    class CAllFormResult extends \CFormResult_old
    {
        function err_mess()
        {
        }
        function GetFileByAnswerID($RESULT_ID, $ANSWER_ID)
        {
        }
        // return file data by file hash
        function GetFileByHash($RESULT_ID, $HASH)
        {
        }
        // create new event
        function SetEvent($RESULT_ID, $IN_EVENT1 = \false, $IN_EVENT2 = \false, $IN_EVENT3 = \false, $money = "", $currency = "", $goto = "", $chargeback = "N")
        {
        }
        //returns data for questions and answers array
        function GetDataByID($RESULT_ID, $arrFIELD_SID, &$arrRES, &$arrANSWER)
        {
        }
        // return array of result values for component
        function GetDataByIDForHTML($RESULT_ID, $GET_ADDITIONAL = "N")
        {
        }
        // add new form result
        function Add($WEB_FORM_ID, $arrVALUES = \false, $CHECK_RIGHTS = "Y", $USER_ID = \false)
        {
        }
        // update result
        function Update($RESULT_ID, $arrVALUES = \false, $UPDATE_ADDITIONAL = "N", $CHECK_RIGHTS = "Y")
        {
        }
        // set question or field value in existed result
        function SetField($RESULT_ID, $FIELD_SID, $VALUE = \false)
        {
        }
        // delete result
        function Delete($RESULT_ID, $CHECK_RIGHTS = "Y")
        {
        }
        // clear result
        function Reset($RESULT_ID, $DELETE_FILES = \true, $DELETE_ADDITIONAL = "N", $arrException = array())
        {
        }
        // update result status
        function SetStatus($RESULT_ID, $NEW_STATUS_ID, $CHECK_RIGHTS = "Y")
        {
        }
        //send form event notification;
        function Mail($RESULT_ID, $TEMPLATE_ID = \false)
        {
        }
        function GetCount($WEB_FORM_ID)
        {
        }
        // prepare array of parameters for result filter
        function PrepareFilter($WEB_FORM_ID, $arFilter)
        {
        }
        function SetCRMFlag($RESULT_ID, $flag_value)
        {
        }
    }
    class CForm_old
    {
        function GetFileValue($RESULT_ID, $ANSWER_ID)
        {
        }
        function Show($WEB_FORM_VARNAME, $arrVALUES = \false, $SHOW_TEMPLATE = \false, $PREVIEW = "N")
        {
        }
        function IsOldVersion()
        {
        }
        function GetClosedFields($WEB_FORM_ID, $arrFields)
        {
        }
        function GetByVarname($VARNAME)
        {
        }
        function GetResultList($WEB_FORM_ID, &$by, &$order, $arFilter = array(), &$is_filtered, $CHECK_RIGHTS = "Y", $records_limit = \false)
        {
        }
        function GetResultByID($RESULT_ID)
        {
        }
        function GetResultFields($RESULT_ID, $arrFIELD_VARNAME, &$arrRES, &$arrANSWER)
        {
        }
        function GetResultValuesFromDB($RESULT_ID, $GET_ADDITIONAL = "N")
        {
        }
        function Add($WEB_FORM_ID, $arrVALUES = \false, $CHECK_RIGHTS = "Y", $USER_ID = \false)
        {
        }
        function Update($RESULT_ID, $arrVALUES = \false, $UPDATE_ADDITIONAL = "N", $CHECK_RIGHTS = "Y")
        {
        }
        function SetResultField($RESULT_ID, $FIELD_VARNAME, $VALUE)
        {
        }
        function GetResultPermission($RESULT_ID, &$CURRENT_STATUS_ID)
        {
        }
        function AddResultAnswer($arFields)
        {
        }
        function UpdateResultField($arFields, $RESULT_ID, $FIELD_ID)
        {
        }
        function DeleteResult($ID, $CHECK_RIGHTS = "Y")
        {
        }
        function ResetResult($ID, $WEB_FORM_ID, $DELETE_IMAGES = \true, $DELETE_ADDITIONAL = "N", $arrException = array())
        {
        }
        function ShowResult($RESULT_ID, $TEMPLATE = "", $TEMPLATE_TYPE = "show", $SHOW_ADDITIONAL = "N", $SHOW_ANSWER_VALUE = "Y", $SHOW_STATUS = "N")
        {
        }
        function EditResult($RESULT_ID, $arrVALUES, $TEMPLATE = "", $EDIT_ADDITIONAL = "N", $EDIT_STATUS = "N")
        {
        }
        function SetResultStatus($WEB_FORM_ID, $RESULT_ID, $NEW_STATUS_ID, $CHECK_RIGHTS = "Y")
        {
        }
        function Mail($RESULT_ID, $TEMPLATE_ID = "")
        {
        }
        function GetResultsCount($WEB_FORM_ID)
        {
        }
        function PrepareResultFilter($WEB_FORM_ID, $arFilter)
        {
        }
        function SetEvent($RESULT_ID, $IN_EVENT1 = \false, $IN_EVENT2 = \false, $IN_EVENT3 = \false, $money = "", $currency = "", $goto = "", $chargeback = "N")
        {
        }
        function GetFieldList($WEB_FORM_ID, $additional, &$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        function GetFieldByID($ID)
        {
        }
        function GetFieldByVarname($SID)
        {
        }
        function DeleteField($WEB_FORM_ID, $ID, $CHECK_RIGHTS = "Y")
        {
        }
        function ResetField($WEB_FORM_ID, $ID, $CHECK_RIGHTS = "Y")
        {
        }
        function GetFilterTypeList(&$arrUSER, &$arrANSWER_TEXT, &$arrANSWER_VALUE, &$arrFIELD)
        {
        }
        function GetAdditionaFieldTypeList()
        {
        }
        function GetAnswerByID($ID)
        {
        }
        function DeleteAnswer($ID)
        {
        }
        function GetAnswerList($FIELD_ID, &$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        function GetAnswerTypeList()
        {
        }
        function GetFilterList($WEB_FORM_ID, $arFilter = array())
        {
        }
        function GetStatusPermission($STATUS_ID)
        {
        }
        function GetNextStatusSort($WEB_FORM_ID)
        {
        }
        function GetDefaultStatus($WEB_FORM_ID)
        {
        }
        function GetStatusList($WEB_FORM_ID, &$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        function GetStatusByID($ID)
        {
        }
        function GetStatusDropdown($WEB_FORM_ID, $PERMISSION = "MOVE", $OWNER_ID = 0)
        {
        }
    }
    class CAllForm extends \CForm_old
    {
        public static function err_mess()
        {
        }
        public static function IsAdmin()
        {
        }
        public static function GetResultAnswerArray($WEB_FORM_ID, &$arrColumns, &$arrAnswers, &$arrAnswersSID, $arFilter = array())
        {
        }
        public static function GetMailTemplateArray($FORM_ID)
        {
        }
        public static function GetSiteArray($FORM_ID)
        {
        }
        public static function ExecHandlerBeforeChangeStatus($RESULT_ID, $ACTION, $NEW_STATUS_ID = 0)
        {
        }
        public static function ExecHandlerAfterChangeStatus($RESULT_ID, $ACTION)
        {
        }
        public static function GetPermissionList($get_default = "Y")
        {
        }
        public static function GetPermission($form_id, $arGroups = \false, $get_from_database = "")
        {
        }
        public static function GetTemplateList($type = "SHOW", $path = "xxx", $WEB_FORM_ID = 0)
        {
        }
        public static function GetMenuList($arFilter = array(), $check_rights = "Y")
        {
        }
        public static function GetNextSort()
        {
        }
        public static function ShowRequired($flag)
        {
        }
        public static function GetTextFilter($FID, $size = "45", $field_text = "class=\"inputtext\"", $field_checkbox = "class=\"inputcheckbox\"")
        {
        }
        public static function GetDateFilter($FID, $form_name = "form1", $show_select = "Y", $field_select = "class=\"inputselect\"", $field_input = "class=\"inputtext\"")
        {
        }
        public static function GetNumberFilter($FID, $size = "10", $field = "class=\"inputtext\"")
        {
        }
        public static function GetExistFlagFilter($FID, $field = "class=\"inputcheckbox\"")
        {
        }
        public static function GetCrmFlagFilter($FID, $field = "class=\"inputselect\"")
        {
        }
        public static function GetDropDownFilter($ID, $PARAMETER_NAME, $FID, $field = "class=\"inputselect\"")
        {
        }
        public static function GetTextValue($FIELD_NAME, $arAnswer, $arrVALUES = \false)
        {
        }
        public static function GetHiddenValue($FIELD_NAME, $arAnswer, $arrVALUES = \false)
        {
        }
        public static function GetPasswordValue($FIELD_NAME, $arAnswer, $arrVALUES = \false)
        {
        }
        public static function GetEmailValue($FIELD_NAME, $arAnswer, $arrVALUES = \false)
        {
        }
        public static function GetUrlValue($FIELD_NAME, $arAnswer, $arrVALUES = \false)
        {
        }
        public static function GetTextField($FIELD_NAME, $VALUE = "", $SIZE = "", $PARAM = "")
        {
        }
        public static function GetHiddenField($FIELD_NAME, $VALUE = "", $PARAM = "")
        {
        }
        public static function GetEmailField($FIELD_NAME, $VALUE = "", $SIZE = "", $PARAM = "")
        {
        }
        public static function GetUrlField($FIELD_NAME, $VALUE = "", $SIZE = "", $PARAM = "")
        {
        }
        public static function GetPasswordField($FIELD_NAME, $VALUE = "", $SIZE = "", $PARAM = "")
        {
        }
        public static function GetDropDownValue($FIELD_NAME, $arDropDown, $arrVALUES = \false)
        {
        }
        public static function GetDropDownField($FIELD_NAME, $arDropDown, $VALUE, $PARAM = "")
        {
        }
        public static function GetMultiSelectValue($FIELD_NAME, $arMultiSelect, $arrVALUES = \false)
        {
        }
        public static function GetMultiSelectField($FIELD_NAME, $arMultiSelect, $arSELECTED = array(), $HEIGHT = "", $PARAM = "")
        {
        }
        public static function GetDateValue($FIELD_NAME, $arAnswer, $arrVALUES = \false)
        {
        }
        public static function GetDateField($FIELD_NAME, $FORM_NAME, $VALUE = "", $FIELD_WIDTH = "", $PARAM = "")
        {
        }
        public static function GetCheckBoxValue($FIELD_NAME, $arAnswer, $arrVALUES = \false)
        {
        }
        public static function GetCheckBoxField($FIELD_NAME, $FIELD_ID, $VALUE = "", $PARAM = "")
        {
        }
        public static function GetRadioValue($FIELD_NAME, $arAnswer, $arrVALUES = \false)
        {
        }
        public static function GetRadioField($FIELD_NAME, $FIELD_ID, $VALUE = "", $PARAM = "")
        {
        }
        public static function GetTextAreaValue($FIELD_NAME, $arAnswer, $arrVALUES = \false)
        {
        }
        public static function GetTextAreaField($FIELD_NAME, $WIDTH = "", $HEIGHT = "", $PARAM = "", $VALUE = "")
        {
        }
        public static function GetFileField($FIELD_NAME, $WIDTH = "", $FILE_TYPE = "IMAGE", $MAX_FILE_SIZE = 0, $VALUE = "", $PARAM_FILE = "", $PARAM_CHECKBOX = "")
        {
        }
        public static function GetDataByID($WEB_FORM_ID, &$arForm, &$arQuestions, &$arAnswers, &$arDropDown, &$arMultiSelect, $additional = "N", $active = "N")
        {
        }
        public static function __check_PushError(&$container, $MESSAGE, $key = \false)
        {
        }
        // check form field values for required fields, date format validation, file type validation, additional validators
        public static function Check($WEB_FORM_ID, $arrVALUES = \false, $RESULT_ID = \false, $CHECK_RIGHTS = "Y", $RETURN_ARRAY = "N")
        {
        }
        public static function CheckFields($arFields, $FORM_ID, $CHECK_RIGHTS = "Y")
        {
        }
        public static function Set($arFields, $FORM_ID = \false, $CHECK_RIGHTS = "Y")
        {
        }
        public static function Copy($ID, $CHECK_RIGHTS = "Y")
        {
        }
        public static function Delete($ID, $CHECK_RIGHTS = "Y")
        {
        }
        public static function Reset($ID, $CHECK_RIGHTS = "Y")
        {
        }
        public static function SetMailTemplate($WEB_FORM_ID, $ADD_NEW_TEMPLATE = "Y", $old_SID = "", $bReturnFullInfo = \false)
        {
        }
        public static function GetBySID($SID)
        {
        }
        /**
         * Check whether current field is on template
         *
         * @param string $FIELD_SID
         * @param string $tpl
         * @return bool
         */
        public static function isFieldInTemplate($FIELD_SID, $tpl)
        {
        }
        /**
         * Check whether CAPTCHA Fields is on template
         *
         * @param string $tpl
         * @return bool
         */
        public static function isCAPTCHAInTemplate($tpl)
        {
        }
        public static function GetByID_admin($WEB_FORM_ID, $current_section = \false)
        {
        }
    }
    /***************************************
    		Îòâåò íà âîïðîñ âåá-ôîðìû
    ***************************************/
    class CFormAnswer extends \CAllFormAnswer
    {
        function err_mess()
        {
        }
    }
    class CForm extends \CAllForm
    {
        public static function err_mess()
        {
        }
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered, $min_permission = 10)
        {
        }
        public static function GetByID($ID, $GET_BY_SID = "N")
        {
        }
        public static function GetFormTemplateByID($ID, $GET_BY_SID = "N")
        {
        }
    }
    class CFormStatus extends \CAllFormStatus
    {
        function err_mess()
        {
        }
        function GetList($FORM_ID, &$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        function GetByID($ID)
        {
        }
        function GetDropdown($FORM_ID, $PERMISSION = array("MOVE"), $OWNER_ID = 0)
        {
        }
    }
    /**
     * Form output class
     *
     */
    class CFormOutput extends \CAllFormOutput
    {
        function err_mess()
        {
        }
        function CFormOutput()
        {
        }
    }
    class CFormCrm extends \CAllFormCrm
    {
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    /**
     * Form validator class
     *
     */
    class CFormValidator extends \CAllFormValidator
    {
        function err_mess()
        {
        }
    }
    /***************************************
    		Âîïðîñ (ïîëå) âåá-ôîðìû
    ***************************************/
    class CFormField extends \CAllFormField
    {
        function err_mess()
        {
        }
    }
    class CFormResult extends \CAllFormResult
    {
        function err_mess()
        {
        }
        function GetList($WEB_FORM_ID, &$by, &$order, $arFilter = array(), &$is_filtered, $CHECK_RIGHTS = "Y", $records_limit = \false)
        {
        }
        function GetByID($ID)
        {
        }
        function GetPermissions($RESULT_ID, &$CURRENT_STATUS_ID)
        {
        }
        function AddAnswer($arFields)
        {
        }
        function UpdateField($arFields, $RESULT_ID, $FIELD_ID)
        {
        }
    }
    class CFormEventHandlers
    {
        function sendOnAfterResultStatusChange($WEB_FORM_ID, $RESULT_ID, $NEW_STATUS_ID = \false, $CHECK_RIGHTS = 'Y')
        {
        }
    }
}
namespace Bitrix\Form {
    class SenderEventHandler
    {
        /**
         * @param array $data
         * @return array
         */
        public static function onConnectorListForm($data)
        {
        }
    }
    class SenderConnectorForm extends \Bitrix\Sender\Connector
    {
        /**
         * @return string
         */
        public function getName()
        {
        }
        /**
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * @return bool
         */
        public function requireConfigure()
        {
        }
        /** @return \CDBResult */
        public function getData()
        {
        }
        /**
         * @return string
         */
        public function getForm()
        {
        }
    }
}
namespace {
    class CFormValidatorTextLen
    {
        function GetDescription()
        {
        }
        function GetSettings()
        {
        }
        function ToDB($arParams)
        {
        }
        function FromDB($strParams)
        {
        }
        function DoValidate($arParams, $arQuestion, $arAnswers, $arValues)
        {
        }
    }
    class CFormValidatorNumSelected
    {
        function GetDescription()
        {
        }
        function GetSettings()
        {
        }
        function ToDB($arParams)
        {
        }
        function FromDB($strParams)
        {
        }
        function DoValidate($arParams, $arQuestion, $arAnswers, $arValues)
        {
        }
    }
    class CFormValidatorDateAge
    {
        function GetDescription()
        {
        }
        function GetSettings()
        {
        }
        function ToDB($arParams)
        {
        }
        function FromDB($strParams)
        {
        }
        function DoValidate($arParams, $arQuestion, $arAnswers, $arValues)
        {
        }
    }
    class CFormValidatorINN
    {
        function GetDescription()
        {
        }
        function GetSettings()
        {
        }
        function ToDB($arParams)
        {
        }
        function FromDB($strParams)
        {
        }
        function DoValidate($arParams, $arQuestion, $arAnswers, $arValues)
        {
        }
        function __checkINN($value)
        {
        }
    }
    class CFormValidatorNumberEx
    {
        function GetDescription()
        {
        }
        function GetSettings()
        {
        }
        function ToDB($arParams)
        {
        }
        function FromDB($strParams)
        {
        }
        function DoValidate($arParams, $arQuestion, $arAnswers, $arValues)
        {
        }
    }
    class CFormValidatorImageSize
    {
        function GetDescription()
        {
        }
        function GetSettings()
        {
        }
        function ToDB($arParams)
        {
        }
        function FromDB($strParams)
        {
        }
        function DoValidate($arParams, $arQuestion, $arAnswers, $arValues)
        {
        }
    }
    class CFormValidatorNumber
    {
        function GetDescription()
        {
        }
        function DoValidate($arParams, $arQuestion, $arAnswers, $arValues)
        {
        }
    }
    class CFormValidatorFileSize
    {
        function GetDescription()
        {
        }
        function GetSettings()
        {
        }
        function ToDB($arParams)
        {
        }
        function FromDB($strParams)
        {
        }
        function DoValidate($arParams, $arQuestion, $arAnswers, $arValues)
        {
        }
    }
    class CFormValidatorFileType
    {
        function GetDescription()
        {
        }
        function GetSettings()
        {
        }
        function ToDB($arParams)
        {
        }
        function FromDB($strParams)
        {
        }
        function DoValidate($arParams, $arQuestion, $arAnswers, $arValues)
        {
        }
    }
    class CFormValidatorDateEx
    {
        function GetDescription()
        {
        }
        function GetSettings()
        {
        }
        function ToDB($arParams)
        {
        }
        function FromDB($strParams)
        {
        }
        function DoValidate($arParams, $arQuestion, $arAnswers, $arValues)
        {
        }
    }
    class CAdminListColumn
    {
        public $id = "";
        public $info = array();
        function __construct($id, $info)
        {
        }
        function getRowView($arRes)
        {
        }
        function getRowEdit($arRes)
        {
        }
        function getFilterInput()
        {
        }
    }
    class CAdminListColumnList extends \CAdminListColumn
    {
        public $list = array();
        function __construct($id, $info, array $list = array())
        {
        }
        function getRowView($arRes)
        {
        }
        function getRowEdit($arRes)
        {
        }
        function getFilterInput()
        {
        }
    }
    class CAdminListColumnNumber extends \CAdminListColumn
    {
        public $precision = 0;
        function __construct($id, $info, $precision)
        {
        }
        function getRowView($arRes)
        {
        }
    }
    class CAdminListPage
    {
        protected $pageTitle = "";
        protected $sTableID = "";
        protected $navLabel = "";
        protected $sort = \null;
        protected $list = \null;
        protected $data = \null;
        protected $columns = array();
        /**
         * @param string $pageTitle
         * @param string $sTableID
         * @param boolean|array[] $arSort
         * @param string $navLabel
         */
        function __construct($pageTitle, $sTableID, $arSort = \false, $navLabel = "")
        {
        }
        function addColumn(\CAdminListColumn $column)
        {
        }
        function initFilter()
        {
        }
        function getFilter()
        {
        }
        function getHeaders()
        {
        }
        function getSelectedFields()
        {
        }
        function getDataSource($arOrder, $arFilter, $arSelect)
        {
        }
        function getOrder()
        {
        }
        function getFooter()
        {
        }
        function getContextMenu()
        {
        }
        function displayFilter()
        {
        }
        function show()
        {
        }
    }
    class perfmon extends \CModule
    {
        var $MODULE_ID = "perfmon";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function perfmon()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function GetModuleRightList()
        {
        }
        public static function OnGetTableSchema()
        {
        }
    }
    class CPerfCluster
    {
        public static function Add($arFields)
        {
        }
        public static function Truncate()
        {
        }
        /**
         * @param boolean|array[] $arOrder
         * @param boolean|array[] $arFilter
         * @param boolean|array[] $arSelect
         *
         * @return boolean|CDBResult
         */
        public static function GetList($arOrder = \false, $arFilter = \false, $arSelect = \false)
        {
        }
        function Measure($host, $port, $url, $threads, $iterations = 3, $arOptions = array())
        {
        }
    }
    class CSqlFormatFormatter
    {
        public function format($tokens)
        {
        }
        public function removeSpaces($match)
        {
        }
        public function removeTrailingSpaces(&$str)
        {
        }
        public function getEol()
        {
        }
        public function getSpace()
        {
        }
        public function getTab()
        {
        }
    }
    class CSqlFormatText extends \CSqlFormatFormatter
    {
        public function getEol()
        {
        }
        public function getSpace()
        {
        }
        public function getTab()
        {
        }
    }
    class CSqlTokenizer
    {
        private $tokens = \null;
        private $current = 0;
        function parse($sql)
        {
        }
        protected function transform($token)
        {
        }
        protected function removeBalancedBrackets()
        {
        }
        protected function lookForwardFor($token)
        {
        }
    }
    class CSqlLevel
    {
        private $tokens = array();
        private $balance = 0;
        private $level = 0;
        private $current = 0;
        function addLevel(array $tokens)
        {
        }
        public function changeLevelBefore()
        {
        }
        public function changeLevelAfter()
        {
        }
        protected function lookForwardFor($token)
        {
        }
        protected function lookBackwardFor($token)
        {
        }
    }
    class CSqlFormat
    {
        /** @var CSqlTokenizer */
        private $tokenizer = \null;
        /** @var CSqlLevel */
        private $levelizer = \null;
        private $current = \null;
        private $level = 0;
        private $add = 0;
        private $result = "";
        /** @var CSqlFormatFormatter */
        private $formatter = \null;
        public function __construct()
        {
        }
        public static function reformatSql($sql, \CSqlFormatFormatter $formatter = \null)
        {
        }
        public function setFormatter(\CSqlFormatFormatter $formatter)
        {
        }
        public function format($sql)
        {
        }
    }
    class CPerfomanceCache
    {
        public static function GetList($arOrder, $arFilter, $bGroup, $arNavStartParams, $arSelect)
        {
        }
        public static function Clear()
        {
        }
    }
    class CAllPerfomanceSQL
    {
        /**
         * @param array $arSelect
         * @param array $arFilter
         * @param array $arOrder
         * @param boolean $bGroup
         * @param boolean|array $arNavStartParams
         *
         * @return boolean|CDBResult
         */
        public static function GetList($arSelect, $arFilter, $arOrder, $bGroup, $arNavStartParams = \false)
        {
        }
        public static function GetBacktraceList($sql_id)
        {
        }
        public static function Format($strSql)
        {
        }
    }
    class CPerfQueryStat
    {
        public static function IsBanned($table, $columns)
        {
        }
        public static function Ban($table, $columns)
        {
        }
        public static function GetTableColumns($table)
        {
        }
        /**
         * @param string $table
         * @param array $columns
         * @param CPerfQuery $q
         * @return boolean
         */
        public static function GatherExpressStat($table, $columns, $q)
        {
        }
        public static function GatherColumnStatByValue($table, $column, $value)
        {
        }
        public static function GatherColumnStatOverall($table, $column)
        {
        }
        public static function GatherTableStat($table)
        {
        }
        protected static function _gather_stat($table, $column, $value, $max_size = -1)
        {
        }
        protected static function _get_stat($table, $column = "", $value = "")
        {
        }
        public static function IsSelective($table, $columns)
        {
        }
    }
    class CPerfomanceHistory
    {
        public static function GetList($arOrder, $arFilter = array())
        {
        }
        public static function Delete($ID)
        {
        }
        public static function Add($arFields)
        {
        }
    }
    class CPerfomanceComponent
    {
        public static function GetList($arOrder, $arFilter, $bGroup, $arNavStartParams, $arSelect)
        {
        }
        public static function Clear()
        {
        }
    }
    class CPerfomanceHit
    {
        public static function GetList($arOrder, $arFilter, $bGroup, $arNavStartParams, $arSelect)
        {
        }
        public static function Clear()
        {
        }
    }
    class CPerfomanceError
    {
        public static function Delete($arFilter)
        {
        }
        public static function GetList($arSelect, $arFilter, $arOrder, $bGroup = \false)
        {
        }
        public static function Clear()
        {
        }
    }
    class CPerfomanceIndexComplete
    {
        public static function GetList($arFilter = array(), $arOrder = array())
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function DeleteByTableName($table, $columns)
        {
        }
        public static function IsBanned($table, $columns)
        {
        }
    }
    class CPerfomanceSchema
    {
        var $data_relations = \null;
        function Init()
        {
        }
        function GetChildren($table_name)
        {
        }
        function GetParents($table_name)
        {
        }
        private function _sort($a, $b)
        {
        }
    }
    class CPerfomanceMeasure
    {
        public static function GetPHPCPUMark()
        {
        }
        public static function GetPHPFilesMark()
        {
        }
        public static function GetPHPMailMark()
        {
        }
        public static function GetDBMark($type)
        {
        }
        public static function GetAccelerator()
        {
        }
        public static function GetAllAccelerators()
        {
        }
    }
    class CPerfAccel
    {
        public $enabled;
        public $cache_ttl;
        public $max_file_size;
        public $check_mtime;
        public $memory_total;
        public $memory_used;
        public $cache_limit;
        function __construct($enabled, $cache_ttl, $max_file_size, $check_mtime, $memory_total, $memory_used, $cache_limit = -1)
        {
        }
        function GetParams()
        {
        }
        function IsWorking()
        {
        }
        function GetRecommendations()
        {
        }
        public static function unformat($str)
        {
        }
    }
    class CPerfAccelZend extends \CPerfAccel
    {
        function __construct()
        {
        }
        function GetRecommendations()
        {
        }
        function GetParams()
        {
        }
    }
    class CPerfAccelAPC extends \CPerfAccel
    {
        var $is_enabled = \null;
        var $is_cache_by_default = \null;
        var $num_files_hint = \null;
        var $user_entries_hint = \null;
        function __construct()
        {
        }
        function GetParams()
        {
        }
    }
    class CPerfAccelXCache extends \CPerfAccel
    {
        function __construct()
        {
        }
        function GetParams()
        {
        }
    }
    class CPerfAccelWinCache extends \CPerfAccel
    {
        function __construct()
        {
        }
        function GetParams()
        {
        }
    }
    class CPerfAccelZendOpCache extends \CPerfAccel
    {
        function __construct()
        {
        }
        function GetRecommendations()
        {
        }
        function GetParams()
        {
        }
    }
    class CPerfQueryJoin
    {
        var $left_table = "";
        var $left_column = "";
        var $left_const = "";
        var $right_table = "";
        var $right_column = "";
        var $right_const = "";
        function _parse($sql, &$table, &$column, &$const)
        {
        }
        function parse_left($sql)
        {
        }
        function parse_right($sql)
        {
        }
    }
    class CPerfQueryWhere
    {
        var $table_aliases_regex = "";
        var $equation_regex = "";
        var $sql = "";
        var $simplified_sql = "";
        var $joins = array();
        function __construct($table_aliases_regex)
        {
        }
        function parse($sql)
        {
        }
        //Remove balanced braces around equals
        function _remove_braces($sql)
        {
        }
        function _or2in($or_match)
        {
        }
    }
    class CPerfQueryTable
    {
        var $sql = "";
        var $name = "";
        var $alias = "";
        var $join = "";
        function parse($sql)
        {
        }
    }
    class CPerfQueryFrom
    {
        var $sql = "";
        /** @var array[]CPerfQueryTable */
        var $tables = array();
        var $joins = array();
        function parse($sql)
        {
        }
        function getTableAliases()
        {
        }
    }
    class CPerfQuery
    {
        var $sql = "";
        var $type = "unknown";
        var $subqueries = array();
        /** @var CPerfQueryFrom */
        var $from = \null;
        /** @var CPerfQueryWhere */
        var $where = \null;
        public static function transform2select($sql)
        {
        }
        public static function removeSpaces($str)
        {
        }
        function parse($sql)
        {
        }
        function parse_subqueries()
        {
        }
        function cmp($table, $alias)
        {
        }
        function table_joins($table_alias)
        {
        }
        function suggest_index($table_alias)
        {
        }
        function array_power_set($array)
        {
        }
        function _adjust_columns($arColumns)
        {
        }
        function has_where($table_alias = \false)
        {
        }
        function find_value($table_name, $column_name)
        {
        }
        function find_join($table_name, $column_name)
        {
        }
        public static function remove_literals($sql)
        {
        }
    }
    class CPerfomanceIndexSuggest
    {
        public static function GetList($arSelect, $arFilter, $arOrder)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function UpdateStat($sql_md5, $count, $query_time, $sql_id)
        {
        }
        public static function Clear()
        {
        }
    }
    class CAllPerfomanceTable
    {
        public $TABLE_NAME = "";
        function GetList($arSelect, $arFilter, $arOrder = array(), $arNavParams = \false)
        {
        }
        function NavQuery($arNavParams, $arQuerySelect, $strTableName, $strQueryWhere, $arQueryOrder)
        {
        }
        public static function escapeColumn($column)
        {
        }
        public static function escapeTable($tableName)
        {
        }
        function GetTableFields($TABLE_NAME = \false, $bExtended = \false)
        {
        }
        function getCreateIndexDDL($TABLE_NAME, $INDEX_NAME, $INDEX_COLUMNS)
        {
        }
    }
    class CPerfomanceKeeper
    {
        public static function OnPageStart()
        {
        }
        function setDebugModeOn()
        {
        }
        function restoreDebugMode()
        {
        }
        public static function OnEpilog()
        {
        }
        public static function OnBeforeAfterEpilog()
        {
        }
        public static function OnAfterAfterEpilog()
        {
        }
        function writeToDatabase()
        {
        }
        public static function SetPageTimes($START_EXEC_CURRENT_TIME, &$arFields)
        {
        }
        function removeQueries(&$arQueryDebug, &$arIncludeDebug, $slow_sql_time, $preserveComponents = \false)
        {
        }
        function countQueries(&$query_count, &$query_time, $arQueryDebug, $arIncludeDebug)
        {
        }
        function countComponents(&$comps_count, &$comps_time, $arIncludeDebug)
        {
        }
        function removeCaches($large_cache_size, &$arCacheDebug, &$arIncludeDebug)
        {
        }
        function countCache($arCacheDebug, &$cache_count)
        {
        }
        function findCaller($trace, &$module_id, &$comp_id)
        {
        }
        function saveQueries($HIT_ID, $COMP_ID, $arQueryDebug, &$NN)
        {
        }
        function saveCaches($HIT_ID, $COMP_ID, $arCacheDebug, &$NN)
        {
        }
        public static function IsActive()
        {
        }
        public static function SetActive($bActive = \false, $end_time = 0)
        {
        }
    }
    /*
    if(!defined('LOG_FILENAME')) define('LOG_FILENAME', $_SERVER["DOCUMENT_ROOT"]."/debug.trc");
    if(CModule::IncludeModule('perfmon')) AddMessage2Log(CPerfomanceSQL::_console_explain($strSql));
    */
    class CPerfomanceSQL extends \CAllPerfomanceSQL
    {
        public static function _console_explain($strSQL)
        {
        }
        public static function Clear()
        {
        }
    }
    class CPerfomanceTableList extends \CDBResult
    {
        public static function GetList($bFull = \true)
        {
        }
        function Fetch()
        {
        }
    }
    class CPerfomanceTable extends \CAllPerfomanceTable
    {
        function Init($TABLE_NAME)
        {
        }
        function IsExists($TABLE_NAME = \false)
        {
        }
        function GetIndexes($TABLE_NAME = \false)
        {
        }
        function GetUniqueIndexes($TABLE_NAME = \false)
        {
        }
        function GetTableFields($TABLE_NAME = \false, $bExtended = \false)
        {
        }
        public static function escapeColumn($column)
        {
        }
        public static function escapeTable($tableName)
        {
        }
        function getCreateIndexDDL($TABLE_NAME, $INDEX_NAME, $INDEX_COLUMNS)
        {
        }
    }
    class CPerfmonHitList extends \CAdminListPage
    {
        function getSelectedFields()
        {
        }
        function getDataSource($arOrder, $arFilter, $arSelect)
        {
        }
        function getFooter()
        {
        }
    }
    class CPerfmonHitListColumnFullDate extends \CAdminListColumn
    {
        function getRowView($arRes)
        {
        }
    }
    class CPerfmonListColumnRequestUri extends \CAdminListColumn
    {
        public $max_display_url = 0;
        function __construct($id, $info, $max_display_url)
        {
        }
        function getRowView($arRes)
        {
        }
    }
    class CPerfmonListColumnTemplate extends \CAdminListColumnNumber
    {
        public $template = "";
        function __construct($id, $info, $precision, $template)
        {
        }
        function getRowView($arRes)
        {
        }
        function replace($match)
        {
        }
    }
}
namespace Bitrix\Perfmon\Php {
    class Statement
    {
        public $tableName = '';
        public $dependOn = '';
        protected $bodyLines = array();
        public $conditions = array();
        /**
         * Adds one more line to the body.
         *
         * @param string $line Line of code.
         *
         * @return Statement
         */
        public function addLine($line)
        {
        }
        /**
         * Adds condition on which statement have to be executed.
         *
         * @param string $predicate Condition predicate.
         *
         * @return Statement
         */
        public function addCondition($predicate)
        {
        }
        /**
         * Merges two statements.
         *
         * @param Statement $stmt Contains lines to be added.
         *
         * @return Statement
         */
        public function merge(\Bitrix\Perfmon\Php\Statement $stmt)
        {
        }
        /**
         * Return body aligned with tab characters.
         *
         * @param integer $level Code align level.
         *
         * @return string
         */
        public function formatBodyLines($level = 0)
        {
        }
    }
    class CodeTree
    {
        protected $statements = array();
        protected $tree = array();
        /**
         * @param array $statements Sequence of updater statements.
         */
        function __construct(array $statements)
        {
        }
        /**
         * Returns php code.
         *
         * @param integer $level Alignment level.
         *
         * @return string
         */
        public function getCode($level)
        {
        }
        /**
         * @param array $result Nested arrays of structured code.
         * @param integer $level Alignment level.
         *
         * @return string
         */
        protected function formatCodeTree($result, $level = 0)
        {
        }
        /**
         * @return array
         */
        public function getCodeTree()
        {
        }
        /**
         * Adds one more line to the body.
         *
         * @param Statement[] $updaterSteps Plain array of updater steps.
         * @param array &$result Nested arrays of structured code.
         *
         * @return void
         */
        protected function makeCodeTree(array $updaterSteps, &$result)
        {
        }
        /**
         * @param array $predicate Array describing predicate.
         *
         * @return integer
         */
        protected function getPredicateSort($predicate)
        {
        }
    }
    class Condition
    {
        protected $predicate = '';
        /**
         * @param string $predicate Php condition.
         */
        function __construct($predicate)
        {
        }
        /**
         * @return string
         */
        public function getPredicate()
        {
        }
    }
}
namespace Bitrix\Perfmon\Sql {
    /**
     * Class BaseObject
     * Base class for all schema objects such as tables, columns, indexes, etc.
     * @package Bitrix\Perfmon\Sql
     */
    abstract class BaseObject
    {
        /** @var BaseObject|null */
        public $parent = null;
        public $name = '';
        public $body = '';
        protected $ciName = '';
        /**
         * @param string $name Name of the table.
         */
        function __construct($name = '')
        {
        }
        /**
         * Sets source code for object.
         *
         * @param string $body The body.
         *
         * @return BaseObject
         */
        public function setBody($body)
        {
        }
        /**
         * Sets parent for object.
         * <p>
         * For example Table for Column.
         *
         * @param BaseObject $parent Parent object.
         *
         * @return BaseObject
         */
        public function setParent(\Bitrix\Perfmon\Sql\BaseObject $parent = null)
        {
        }
        /**
         * Returns "unquoted" name of the object.
         *
         * @param array|string $name Name or array of names to unquote.
         *
         * @return array|string
         */
        public final function getUnquotedName($name = null)
        {
        }
        /**
         * Returns "lowercased" name of the object.
         * <p>
         * If name is not quoted then it made lowercase.
         *
         * @return string
         */
        public final function getLowercasedName()
        {
        }
        /**
         * Returns "normalized" name of the table.
         * <p>
         * If name is not quoted then it made uppercase.
         *
         * @param string $name Table name.
         * @return string
         */
        public static final function getCompareName($name)
        {
        }
        /**
         * Compares name of the table with given.
         * <p>
         * If name has no quotes when comparison is case insensitive.
         *
         * @param string $name Table name to compare.
         * @return int
         * @see strcmp
         */
        public final function compareName($name)
        {
        }
        /**
         * Return DDL or commentary for object creation.
         *
         * @param string $dbType Database type.
         *
         * @return array|string
         */
        public function getCreateDdl($dbType = '')
        {
        }
        /**
         * Return DDL or commentary for object destruction.
         *
         * @param string $dbType Database type.
         *
         * @return array|string
         */
        public function getDropDdl($dbType = '')
        {
        }
        /**
         * Return DDL or commentary for object modification.
         *
         * @param BaseObject $target Target object.
         * @param string $dbType Database type.
         *
         * @return array|string
         */
        public function getModifyDdl(\Bitrix\Perfmon\Sql\BaseObject $target, $dbType = '')
        {
        }
    }
    class Index extends \Bitrix\Perfmon\Sql\BaseObject
    {
        public $unique = false;
        public $fulltext = false;
        public $columns = array();
        /**
         * @param string $name Index name.
         * @param boolean $unique Uniqueness flag.
         * @param boolean $fulltext Fulltext flag.
         */
        function __construct($name = '', $unique, $fulltext = false)
        {
        }
        /**
         * Adds column to the index definition.
         *
         * @param string $name Column name.
         *
         * @return Index
         */
        function addColumn($name)
        {
        }
        /**
         * Creates index object from tokens.
         * <p>
         * If parameter $indexName is not passed then current position should point to the name of the index.
         *
         * @param Tokenizer $tokenizer Tokens collection.
         * @param boolean $unique Uniqueness flag.
         * @param boolean $fulltext Fulltext flag.
         * @param string $indexName Optional name of the index.
         *
         * @return Index
         * @throws NotSupportedException
         */
        public static function create(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer, $unique = false, $fulltext = false, $indexName = '')
        {
        }
        /**
         * Searches token collection for 'ON' keyword.
         * <p>
         * Advances current position on to next token skipping whitespace.
         *
         * @param Tokenizer $tokenizer Tokens collection.
         *
         * @return void
         * @throws NotSupportedException
         */
        public static function searchTableName(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer)
        {
        }
        /**
         * Return DDL for index creation.
         *
         * @param string $dbType Database type (MYSQL, ORACLE or MSSQL).
         *
         * @return array|string
         */
        public function getCreateDdl($dbType = '')
        {
        }
        /**
         * Return DDL for index destruction.
         *
         * @param string $dbType Database type (MYSQL, ORACLE or MSSQL).
         *
         * @return array|string
         */
        public function getDropDdl($dbType = '')
        {
        }
        /**
         * Return DDL for index modification.
         *
         * @param BaseObject $target Target object.
         * @param string $dbType Database type (MYSQL, ORACLE or MSSQL).
         *
         * @return array|string
         */
        public function getModifyDdl(\Bitrix\Perfmon\Sql\BaseObject $target, $dbType = '')
        {
        }
    }
    class Sequence extends \Bitrix\Perfmon\Sql\BaseObject
    {
        /**
         * Creates sequence object from tokens.
         * <p>
         * Current position should point to the name of the sequence.
         *
         * @param Tokenizer $tokenizer Tokens collection.
         *
         * @return Sequence
         */
        public static function create(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer)
        {
        }
        /**
         * Return DDL for sequence creation.
         *
         * @param string $dbType Database type (ORACLE only).
         *
         * @return array|string
         */
        public function getCreateDdl($dbType = '')
        {
        }
        /**
         * Return DDL for sequence destruction.
         *
         * @param string $dbType Database type (ORACLE only).
         *
         * @return array|string
         */
        public function getDropDdl($dbType = '')
        {
        }
        /**
         * Return DDL for sequence modification (drop with subsequent create).
         *
         * @param BaseObject $target Target object.
         * @param string $dbType Database type (ORACLE only).
         *
         * @return array|string
         */
        public function getModifyDdl(\Bitrix\Perfmon\Sql\BaseObject $target, $dbType = '')
        {
        }
    }
    class Trigger extends \Bitrix\Perfmon\Sql\BaseObject
    {
        /**
         * Creates trigger object from tokens.
         * <p>
         * Current position should point to the name of the trigger.
         *
         * @param Tokenizer $tokenizer Tokens collection.
         *
         * @return Trigger
         */
        public static function create(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer)
        {
        }
        /**
         * Searches token collection for 'ON' keyword.
         * <p>
         * Advances current position on to next token skipping whitespace.
         *
         * @param Tokenizer $tokenizer Tokens collection.
         *
         * @return void
         * @throws NotSupportedException
         */
        public static function searchTableName(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer)
        {
        }
        /**
         * Return DDL for trigger creation.
         *
         * @param string $dbType Database type (MYSQL, ORACLE or MSSQL).
         *
         * @return array|string
         */
        public function getCreateDdl($dbType = '')
        {
        }
        /**
         * Return DDL for trigger destruction.
         *
         * @param string $dbType Database type (MYSQL, ORACLE or MSSQL).
         *
         * @return array|string
         */
        public function getDropDdl($dbType = '')
        {
        }
        /**
         * Return DDL for trigger modification (drop with subsequent create).
         *
         * @param BaseObject $target Target object.
         * @param string $dbType Database type (MYSQL, ORACLE or MSSQL).
         *
         * @return array|string
         */
        public function getModifyDdl(\Bitrix\Perfmon\Sql\BaseObject $target, $dbType = '')
        {
        }
    }
    class Procedure extends \Bitrix\Perfmon\Sql\BaseObject
    {
        public $type = '';
        /**
         * @param string $name Name of stored procedure.
         * @param string $type Type of stored procedure.
         */
        function __construct($name = '', $type = '')
        {
        }
        /**
         * Creates stored procedure object from tokens.
         * <p>
         * Current position should point to the type of the stored procedure (PROCEDURE, FUNCTION or TYPE).
         * <p>
         * Name may consist of two parts divided by '.'.
         *
         * @param Tokenizer $tokenizer Tokens collection.
         *
         * @return Procedure
         */
        public static function create(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer)
        {
        }
        /**
         * Return DDL for procedure creation.
         *
         * @param string $dbType Database type (MYSQL, ORACLE or MSSQL).
         *
         * @return array|string
         */
        public function getCreateDdl($dbType = '')
        {
        }
        /**
         * Return DDL for procedure destruction.
         *
         * @param string $dbType Database type (MYSQL, ORACLE or MSSQL).
         *
         * @return array|string
         */
        public function getDropDdl($dbType = '')
        {
        }
        /**
         * Return DDL for procedure modification.
         *
         * @param BaseObject $target Target object.
         * @param string $dbType Database type (MYSQL, ORACLE or MSSQL).
         *
         * @return array|string
         */
        public function getModifyDdl(\Bitrix\Perfmon\Sql\BaseObject $target, $dbType = '')
        {
        }
    }
    class Constraint extends \Bitrix\Perfmon\Sql\BaseObject
    {
        /**
         * Creates constraint object from tokens.
         * <p>
         * If parameter $constraintName is not passed then current position should point to the name of the constraint.
         *
         * @param Tokenizer $tokenizer Tokens collection.
         * @param string $constraintName Optional name of the constraint.
         *
         * @return Constraint
         */
        public static function create(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer, $constraintName = '')
        {
        }
        /**
         * Return DDL for constraint creation.
         *
         * @param string $dbType Database type (MYSQL, ORACLE or MSSQL).
         *
         * @return array|string
         */
        public function getCreateDdl($dbType = '')
        {
        }
        /**
         * Return DDL for constraint destruction.
         *
         * @param string $dbType Database type (MYSQL, ORACLE or MSSQL).
         *
         * @return array|string
         */
        public function getDropDdl($dbType = '')
        {
        }
        /**
         * Return DDL for constraint modification.
         *
         * @param BaseObject $target Target object.
         * @param string $dbType Database type (MYSQL, ORACLE or MSSQL).
         *
         * @return array|string
         */
        public function getModifyDdl(\Bitrix\Perfmon\Sql\BaseObject $target, $dbType = '')
        {
        }
    }
    class Token
    {
        const T_WHITESPACE = 0;
        const T_STRING = 1;
        const T_CHAR = 2;
        const T_SINGLE_QUOTE = 3;
        const T_DOUBLE_QUOTE = 4;
        const T_BACK_QUOTE = 5;
        const T_SQUARE_QUOTE = 6;
        const T_COMMENT = 7;
        public $type;
        public $text;
        public $upper;
        public $line;
        public $level;
        /**
         * @param integer $type Type of the token.
         * @param string $text Text of the token.
         */
        function __construct($type, $text)
        {
        }
        /**
         * Sets new text for the token.
         * <p>
         * And updates member $upper properly.
         *
         * @param string $text New text.
         *
         * @return void
         */
        function setText($text)
        {
        }
        /**
         * Adds new text for the token.
         * <p>
         * And updates member $upper properly.
         *
         * @param string $text A chunk to be added.
         *
         * @return void
         */
        function appendText($text)
        {
        }
    }
    class Tokenizer
    {
        protected $index = 0;
        protected $bookmark = 0;
        /** @var array[Token] */
        protected $tokens = array();
        /**
         * Splits a text into tokens, creates new Tokenizer object, and returns it.
         *
         * @param string $sql Sql text.
         *
         * @return Tokenizer
         */
        public static function createFromString($sql)
        {
        }
        /**
         * Creates new Tokenizer objects and sets its tokens into given.
         *
         * @param array[Token] $tokens New tokens.
         *
         * @return Tokenizer
         */
        public static function createFromTokens(array $tokens)
        {
        }
        /**
         * Returns all the tokens.
         *
         * @return array[Token]
         */
        public function getTokens()
        {
        }
        /**
         * Resets internal state.
         *
         * @return void
         */
        public function resetState()
        {
        }
        /**
         * Remembers current position.
         *
         * @return void
         * @see Tokenizer::restoreBookmark
         */
        public function setBookmark()
        {
        }
        /**
         * Restores previously remembered position.
         *
         * @return void
         * @see Tokenizer::setBookmark
         */
        public function restoreBookmark()
        {
        }
        /**
         * Moves current position one step back.
         *
         * @return void
         */
        public function putBack()
        {
        }
        /**
         * Checks if end of tokens reached.
         *
         * @return boolean
         */
        public function endOfInput()
        {
        }
        /**
         * Returns current token.
         * <p>
         * Leaves position intact.
         *
         * @return Token
         */
        public function getCurrentToken()
        {
        }
        /**
         * Returns next token.
         * <p>
         * Advances position one step forward.
         *
         * @return Token
         */
        public function nextToken()
        {
        }
        /**
         * Skips all whitespace and commentaries.
         *
         * @return void
         */
        public function skipWhiteSpace()
        {
        }
        /**
         * Checks if current token text is equal to $text.
         *<p>
         *In case of success advances position one step forward.
         *
         * @param string $text Text to compare.
         *
         * @return boolean
         */
        public function testUpperText($text)
        {
        }
        /**
         * Checks if current token text is equal to $text.
         *<p>
         *In case of success advances position one step forward.
         *
         * @param string $text Text to compare.
         *
         * @return boolean
         */
        public function testText($text)
        {
        }
        /**
         * Internal method to split text into tokens and store them.
         *
         * @param string $sql Sql text.
         *
         * @return void
         */
        private function _tokenize($sql)
        {
        }
        /**
         * Internal method to assign each token corresponded source code line number.
         *
         * @return void
         */
        private function makeLines()
        {
        }
        /**
         * Internal method to mark braces level on the tokens.
         *
         * @return void
         */
        private function makeParenthesis()
        {
        }
    }
    /**
     * Class Collection
     * This class represents collection of database objects such as table columns or indexes, schema procedures or sequences.
     * @package Bitrix\Perfmon\Sql
     */
    class Collection
    {
        /** @var array[BaseObject]  */
        private $list = array();
        /**
         * Add object into the tail of the collection.
         *
         * @param BaseObject $object Object to add.
         *
         * @return void
         */
        public function add(\Bitrix\Perfmon\Sql\BaseObject $object)
        {
        }
        /**
         * Searches collection for an object by it's name.
         *
         * @param string $name Object name to look up.
         *
         * @return BaseObject|null
         */
        public function search($name)
        {
        }
        /**
         * Returns all collection objects.
         *
         * @return array[BaseObject]
         */
        public function getList()
        {
        }
        /**
         * Compares two collections of objects and returns array of pairs.
         * <p>
         * Pair is the two element array:
         * - First element with index "0" is the object from the source collection.
         * - Second element with index "1" is the object from $targetList.
         * - if pair element is null when no such element found (by name) in the collection.
         *
         * @param Collection $targetList Collection to compare.
         * @param bool $compareBody Whenever to compare objects bodies or not.
         *
         * @return array
         */
        public function compare(\Bitrix\Perfmon\Sql\Collection $targetList, $compareBody = true)
        {
        }
    }
    class Updater
    {
        protected $dbType = '';
        protected $delimiter = '';
        /** @var \Bitrix\Perfmon\Sql\Table  */
        protected $tableCheck = null;
        protected $conditions = array();
        /** @var \Bitrix\Perfmon\Php\Statement[]*/
        protected $statements = array();
        /**
         * Sets database type. Currently supported:
         * - MYSQL
         * - ORACLE
         * - MSSQL
         *
         * @param string $dbType Database type.
         *
         * @return Updater
         */
        public function setDbType($dbType = '')
        {
        }
        /**
         * Sets DDL delimiter for parsing.
         *
         * @param string $delimiter DDL statements delimiter.
         *
         * @return Updater
         */
        public function setDelimiter($delimiter = '')
        {
        }
        /**
         * Returns array of generated statements.
         *
         * @return \Bitrix\Perfmon\Php\Statement[]
         */
        public function getStatements()
        {
        }
        /**
         * Produces updater code.
         *
         * @param string $sourceSql Source DDL statements.
         * @param string $targetSql Target DDL statements.
         *
         * @return string
         * @throws NotSupportedException
         */
        public function generate($sourceSql, $targetSql)
        {
        }
        /**
         * @param array $diff Difference pairs.
         *
         * @return string
         */
        protected function handle(array $diff)
        {
        }
        /**
         * @param BaseObject $object Database schema object.
         *
         * @return void
         */
        protected function handleCreate(\Bitrix\Perfmon\Sql\BaseObject $object)
        {
        }
        /**
         * @param BaseObject $object Database schema object.
         *
         * @return void
         */
        protected function handleDrop(\Bitrix\Perfmon\Sql\BaseObject $object)
        {
        }
        /**
         * @param BaseObject $source Source object.
         * @param BaseObject $target Target object.
         *
         * @return void
         */
        protected function handleChange(\Bitrix\Perfmon\Sql\BaseObject $source, \Bitrix\Perfmon\Sql\BaseObject $target)
        {
        }
        /**
         * Returns escaped php code repeated for body? prefixed with $prefix and suffixed with $suffix.
         *
         * @param string $prefix Prefix string for each from body.
         * @param array|string $body Strings to be escaped.
         * @param string $suffix Suffix string for each from body.
         *
         * @return string
         */
        protected function multiLinePhp($prefix, $body, $suffix)
        {
        }
        /**
         * Returns Php\Statement object with escaped php code repeated for body? prefixed with $prefix and suffixed with $suffix.
         *
         * @param string $prefix Prefix string for each from body.
         * @param array|string $body Strings to be escaped.
         * @param string $suffix Suffix string for each from body.
         *
         * @return \Bitrix\Perfmon\Php\Statement
         */
        protected function createStatement($prefix, $body, $suffix)
        {
        }
    }
    //Sample usage:
    /*
    \Bitrix\Main\Loader::includeModule('perfmon');
    $dir = new \Bitrix\Main\IO\Directory("/opt/php03.cp1251.www/mercurial/bitrix/modules");
    foreach ($dir->getChildren()  as $child)
    {
    	if ($child->isDirectory() && $child->getName()!=='xxx')
    	{
    		echo $child->getName(),": ";
    
    		foreach (array("mysql"=>";", "mssql"=>"GO", "oracle"=>"/") as $db=>$delimiter)
    		{
    			$path = $child->getPath()."/install/db/$db/install.sql";
    			if (!\Bitrix\Main\IO\File::isFileExists($path))
    				$path = $child->getPath()."/install/$db/install.sql";
    			if (!\Bitrix\Main\IO\File::isFileExists($path))
    				continue;
    			//echo "<br>$path<br>";
    			$sql = \Bitrix\Main\IO\File::getFileContents($path);
    			$s = new \Bitrix\Perfmon\Sql\Schema;
    			$s->createFromString($sql, $delimiter);
    			// p r i n t _ r ($s->tables);
    			echo count($s->tables->getList())," ";
    		}
    		echo "\n";
    	}
    }
    */
    class Schema
    {
        /** @var Collection */
        public $tables = null;
        /** @var Collection */
        public $procedures = null;
        /** @var Collection */
        public $sequences = null;
        function __construct()
        {
        }
        /**
         * Fills database schema from DDL text.
         *
         * @param string $str DDL text.
         * @param string $delimiter How to split DDL into statements.
         *
         * @return void
         * @throws NotSupportedException
         */
        public function createFromString($str, $delimiter)
        {
        }
        /**
         * Splits tokens array into bunch of individual DDL statements.
         *
         * @param Tokenizer $tokenizer Tokens container.
         * @param string $delimiter How to split DDL into statements.
         *
         * @return array[Tokenizer]
         */
        protected function splitStatements(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer, $delimiter = ';')
        {
        }
        /**
         * Fills some schema part with information from one DDL statement.
         *
         * @param Tokenizer $tokenizer Statement tokens.
         *
         * @return void
         * @throws NotSupportedException
         */
        protected function executeStatement(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer)
        {
        }
        /**
         * @param Tokenizer $tokenizer Statement tokens.
         *
         * @return void
         * @throws NotSupportedException
         */
        protected function executeCreate(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer)
        {
        }
        /**
         * @param Tokenizer $tokenizer Statement tokens.
         *
         * @return void
         * @throws NotSupportedException
         */
        protected function executeAlter(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer)
        {
        }
        /**
         * @param Tokenizer $tokenizer Statement tokens.
         *
         * @return void
         * @throws NotSupportedException
         */
        protected function executeCreateTable(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer)
        {
        }
        /**
         * @param Tokenizer $tokenizer Statement tokens.
         * @param boolean $unique Index uniqueness flag.
         *
         * @return void
         * @throws NotSupportedException
         */
        protected function executeCreateIndex(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer, $unique)
        {
        }
        /**
         * @param Tokenizer $tokenizer Statement tokens.
         *
         * @return void
         * @throws NotSupportedException
         */
        protected function executeCreateTrigger(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer)
        {
        }
        /**
         * @param Tokenizer $tokenizer Statement tokens.
         *
         * @return void
         * @throws NotSupportedException
         */
        protected function executeCreateProcedure(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer)
        {
        }
        /**
         * @param Tokenizer $tokenizer Statement tokens.
         *
         * @return void
         * @throws NotSupportedException
         */
        protected function executeCreateSequence(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer)
        {
        }
    }
    class Column extends \Bitrix\Perfmon\Sql\BaseObject
    {
        public $type = '';
        public $length = '';
        public $nullable = true;
        public $default = null;
        protected static $types = array('INT' => true, 'INTEGER' => true, 'TINYINT' => true, 'NUMERIC' => true, 'NUMBER' => true, 'FLOAT' => true, 'DOUBLE' => true, 'DECIMAL' => true, 'BIGINT' => true, 'SMALLINT' => true, 'MEDIUMINT' => true, 'VARCHAR' => true, 'VARCHAR2' => true, 'CHAR' => true, 'TIMESTAMP' => true, 'DATETIME' => true, 'DATE' => true, 'TIME' => true, 'TEXT' => true, 'LONGTEXT' => true, 'MEDIUMTEXT' => true, 'CLOB' => true, 'BLOB' => true, 'MEDIUMBLOB' => true, 'LONGBLOB' => true, 'VARBINARY' => true, 'IMAGE' => true, 'ENUM' => true);
        /**
         * Checks the $type against type list:
         * - INT
         * - INTEGER
         * - TINYINT
         * - NUMERIC
         * - NUMBER
         * - FLOAT
         * - DOUBLE
         * - DECIMAL
         * - BIGINT
         * - SMALLINT
         * - MEDIUMINT
         * - VARCHAR
         * - VARCHAR2
         * - CHAR
         * - TIMESTAMP
         * - DATETIME
         * - DATE
         * - TIME
         * - TEXT
         * - LONGTEXT
         * - MEDIUMTEXT
         * - CLOB
         * - BLOB
         * - MEDIUMBLOB
         * - LONGBLOB
         * - VARBINARY
         * - IMAGE
         * - ENUM
         *
         * @param string $type Type of a column.
         *
         * @return boolean
         */
        public static function checkType($type)
        {
        }
        /**
         * Creates column object from tokens.
         * <p>
         * Current position should point to the name of the column.
         *
         * @param Tokenizer $tokenizer Tokens collection.
         *
         * @return Column
         * @throws NotSupportedException
         */
        public static function create(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer)
        {
        }
        /**
         * Return DDL for table column creation.
         *
         * @param string $dbType Database type (MYSQL, ORACLE or MSSQL).
         *
         * @return array|string
         */
        public function getCreateDdl($dbType = '')
        {
        }
        /**
         * Return DDL for column destruction.
         *
         * @param string $dbType Database type (MYSQL, ORACLE or MSSQL).
         *
         * @return array|string
         */
        public function getDropDdl($dbType = '')
        {
        }
        /**
         * Return DDL for object modification.
         * <p>
         * Implemented only for MySQL database. For Oracle or MS SQL returns commentary.
         *
         * @param Column $target Target object.
         * @param string $dbType Database type (MYSQL, ORACLE or MSSQL).
         *
         * @return array|string
         */
        public function getModifyDdl(\Bitrix\Perfmon\Sql\Column $target, $dbType = '')
        {
        }
    }
    class Table extends \Bitrix\Perfmon\Sql\BaseObject
    {
        /** @var Collection */
        public $columns = null;
        /** @var Collection */
        public $indexes = null;
        /** @var Collection */
        public $constraints = null;
        /** @var Collection */
        public $triggers = null;
        /**
         * @param string $name Index name.
         */
        function __construct($name = '')
        {
        }
        /**
         * Creates trigger object from tokens.
         * <p>
         * And registers trigger in the table trigger registry.
         *
         * @param Tokenizer $tokenizer Tokens collection.
         *
         * @return Table
         * @see Constraint::create
         */
        public function createTrigger(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer)
        {
        }
        /**
         * Creates constraint object from tokens.
         * <p>
         * And registers constraint in the table constraint registry.
         *
         * @param Tokenizer $tokenizer Tokens collection.
         * @param string $constraintName Optional name of the constraint.
         *
         * @return Table
         * @see Constraint::create
         */
        public function createConstraint(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer, $constraintName = '')
        {
        }
        /**
         * Creates index object from tokens.
         * <p>
         * And registers index in the table index registry.
         *
         * @param Tokenizer $tokenizer Tokens collection.
         * @param boolean $unique Uniqueness flag.
         * @param boolean $fulltext Fulltext flag.
         * @param string $indexName Optional name of the index.
         *
         * @return Table
         * @see Index::create
         */
        public function createIndex(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer, $unique = false, $fulltext = false, $indexName = '')
        {
        }
        /**
         * Creates column object from tokens.
         * <p>
         * And registers column in the table column registry.
         *
         * @param Tokenizer $tokenizer Tokens collection.
         *
         * @return Table
         * @see Column::create
         */
        public function createColumn(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer)
        {
        }
        /**
         * Creates table object from tokens.
         * <p>
         * Current position should point to the name of the sequence or 'if not exists' clause.
         *
         * @param Tokenizer $tokenizer Tokens collection.
         *
         * @return Table
         * @throws NotSupportedException
         */
        public static function create(\Bitrix\Perfmon\Sql\Tokenizer $tokenizer)
        {
        }
        /**
         * Return DDL for table creation.
         *
         * @param string $dbType Database type (MYSQL, ORACLE or MSSQL).
         *
         * @return array|string
         */
        public function getCreateDdl($dbType = '')
        {
        }
        /**
         * Return DDL for table destruction.
         *
         * @param string $dbType Database type (MYSQL, ORACLE or MSSQL).
         *
         * @return array|string
         */
        public function getDropDdl($dbType = '')
        {
        }
    }
    class Compare
    {
        private $difference = array();
        /**
         * Compares two database schemas and returns array of pairs.
         * <p>
         * Pair is the two element array:
         * - First element with index "0" is the object from the source collection.
         * - Second element with index "1" is the object from $targetList.
         * - if pair element is null when no such element found (by name) in the collection.
         *
         * @param Schema $source Source schema.
         * @param Schema $target Target schema.
         *
         * @return array
         */
        public static function diff(\Bitrix\Perfmon\Sql\Schema $source, \Bitrix\Perfmon\Sql\Schema $target)
        {
        }
        /**
         * Compares sequences.
         *
         * @param Schema $source Source schema.
         * @param Schema $target Target schema.
         *
         * @return void
         */
        private function compareSequences(\Bitrix\Perfmon\Sql\Schema $source, \Bitrix\Perfmon\Sql\Schema $target)
        {
        }
        /**
         * Compares procedures.
         *
         * @param Schema $source Source schema.
         * @param Schema $target Target schema.
         *
         * @return void
         */
        private function compareProcedures(\Bitrix\Perfmon\Sql\Schema $source, \Bitrix\Perfmon\Sql\Schema $target)
        {
        }
        /**
         * Compares tables.
         *
         * @param Schema $source Source schema.
         * @param Schema $target Target schema.
         *
         * @return void
         */
        private function compareTables(\Bitrix\Perfmon\Sql\Schema $source, \Bitrix\Perfmon\Sql\Schema $target)
        {
        }
        /**
         * Compares tables columns, indexes, constraints, and triggers..
         *
         * @param Table $source Source table.
         * @param Table $target Target table.
         *
         * @return void
         */
        private function compareTable(\Bitrix\Perfmon\Sql\Table $source, \Bitrix\Perfmon\Sql\Table $target)
        {
        }
        /**
         * Compares columns
         *
         * @param Column $source Source column.
         * @param Column $target Target column.
         *
         * @return void
         */
        private function compareColumn(\Bitrix\Perfmon\Sql\Column $source, \Bitrix\Perfmon\Sql\Column $target)
        {
        }
    }
}
namespace {
    class calendar extends \CModule
    {
        var $MODULE_ID = "calendar";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function __construct()
        {
        }
        function GetModuleTasks()
        {
        }
        function InstallDB()
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallUserFields($id = "all")
        {
        }
        function InstallFiles()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function InstallDemoCalendarType()
        {
        }
    }
    abstract class CBPActivity
    {
        public $parent = \null;
        public $executionStatus = \CBPActivityExecutionStatus::Initialized;
        public $executionResult = \CBPActivityExecutionResult::None;
        private $arStatusChangeHandlers = array();
        const StatusChangedEvent = 0;
        const ExecutingEvent = 1;
        const CancelingEvent = 2;
        const ClosedEvent = 3;
        const FaultingEvent = 4;
        private const ValueSinglePattern = '\\{=\\s*(?<object>[a-z0-9_]+)\\s*\\:\\s*(?<field>[a-z0-9_\\.]+)(\\s*>\\s*(?<mod1>[a-z0-9_\\:]+)(\\s*,\\s*(?<mod2>[a-z0-9_]+))?)?\\s*\\}';
        const ValuePattern = '#^\\s*' . self::ValueSinglePattern . '\\s*$#i';
        private const ValueSimplePattern = '#^\\s*\\{\\{(.*?)\\}\\}\\s*$#i';
        const ValueInlinePattern = '#' . self::ValueSinglePattern . '#i';
        /** Internal pattern used in calc.php */
        const ValueInternalPattern = '\\{=\\s*([a-z0-9_]+)\\s*\\:\\s*([a-z0-9_\\.]+)(\\s*>\\s*([a-z0-9_\\:]+)(\\s*,\\s*([a-z0-9_]+))?)?\\s*\\}';
        const CalcPattern = '#^\\s*(=\\s*(.*)|\\{\\{=\\s*(.*)\\s*\\}\\})\\s*$#is';
        const CalcInlinePattern = '#\\{\\{=\\s*(.*?)\\s*\\}\\}([^\\}]|$)#is';
        protected $arProperties = array();
        protected $arPropertiesTypes = array();
        protected $name = "";
        /** @var CBPWorkflow $workflow */
        public $workflow = \null;
        public $arEventsMap = array();
        /************************  PROPERTIES  ************************************************/
        public function GetDocumentId()
        {
        }
        public function SetDocumentId($documentId)
        {
        }
        public function GetDocumentType()
        {
        }
        public function SetDocumentType($documentType)
        {
        }
        public function getDocumentEventType()
        {
        }
        public function GetWorkflowStatus()
        {
        }
        public function SetWorkflowStatus($status)
        {
        }
        public function SetFieldTypes($arFieldTypes = array())
        {
        }
        public function GetWorkflowTemplateId()
        {
        }
        public function getTemplateUserId()
        {
        }
        /**********************************************************/
        protected function ClearProperties()
        {
        }
        public function GetPropertyBaseType($propertyName)
        {
        }
        public function getTemplatePropertyType($propertyName)
        {
        }
        public function SetProperties($arProperties = array())
        {
        }
        public function SetPropertiesTypes($arPropertiesTypes = array())
        {
        }
        /**********************************************************/
        protected function ClearVariables()
        {
        }
        public function GetVariableBaseType($variableName)
        {
        }
        public function SetVariables($arVariables = array())
        {
        }
        public function SetVariablesTypes($arVariablesTypes = array())
        {
        }
        public function SetVariable($name, $value)
        {
        }
        public function GetVariable($name)
        {
        }
        public function getVariableType($name)
        {
        }
        private function GetConstantTypes()
        {
        }
        public function GetConstant($name)
        {
        }
        public function GetConstantType($name)
        {
        }
        public function IsVariableExists($name)
        {
        }
        /************************************************/
        public function GetName()
        {
        }
        public function GetRootActivity()
        {
        }
        public function SetWorkflow(\CBPWorkflow $workflow)
        {
        }
        public function GetWorkflowInstanceId()
        {
        }
        public function SetStatusTitle($title = '')
        {
        }
        public function AddStatusTitle($title = '')
        {
        }
        public function DeleteStatusTitle($title = '')
        {
        }
        private function GetPropertyValueRecursive($val, $convertToType = \null)
        {
        }
        private function GetRealParameterValue($objectName, $fieldName, &$result, array $modifiers = \null)
        {
        }
        private function applyPropertyValueModifiers($fieldName, $property, $value, array $modifiers)
        {
        }
        private function ParseStringParameter($matches)
        {
        }
        public function ParseValue($value, $convertToType = \null)
        {
        }
        protected function getRawProperty($name)
        {
        }
        public function __get($name)
        {
        }
        public function __set($name, $val)
        {
        }
        public function IsPropertyExists($name)
        {
        }
        public function CollectNestedActivities()
        {
        }
        public function collectUsages()
        {
        }
        private function collectUsagesRecursive($val, &$usages)
        {
        }
        protected function getObjectSourceType($objectName, $fieldName)
        {
        }
        /************************  CONSTRUCTORS  *****************************************************/
        public function __construct($name)
        {
        }
        /************************  DEBUG  ***********************************************************/
        public function ToString()
        {
        }
        public function Dump($level = 3)
        {
        }
        /************************  PROCESS  ***********************************************************/
        public function Initialize()
        {
        }
        public function Finalize()
        {
        }
        public function Execute()
        {
        }
        protected function ReInitialize()
        {
        }
        public function Cancel()
        {
        }
        public function HandleFault(\Exception $exception)
        {
        }
        /************************  LOAD / SAVE  *******************************************************/
        public function FixUpParentChildRelationship(\CBPActivity $nestedActivity)
        {
        }
        public static function Load($stream)
        {
        }
        protected function GetACNames()
        {
        }
        private static function SearchUsedActivities(\CBPActivity $activity, &$arUsedActivities)
        {
        }
        public function Save()
        {
        }
        /************************  STATUS CHANGE HANDLERS  **********************************************/
        public function AddStatusChangeHandler($event, $eventHandler)
        {
        }
        public function RemoveStatusChangeHandler($event, $eventHandler)
        {
        }
        /************************  EVENTS  **********************************************************************/
        private function FireStatusChangedEvents($event, $arEventParameters = array())
        {
        }
        public function SetStatus($newStatus, $arEventParameters = array())
        {
        }
        /************************  CREATE  *****************************************************************/
        public static function IncludeActivityFile($code)
        {
        }
        public static function CreateInstance($code, $data)
        {
        }
        public static function CallStaticMethod($code, $method, $arParameters = array())
        {
        }
        public function InitializeFromArray($arParams)
        {
        }
        /************************  MARK  ****************************************************************/
        public function MarkCanceled($arEventParameters = array())
        {
        }
        public function MarkCompleted($arEventParameters = array())
        {
        }
        public function MarkFaulted($arEventParameters = array())
        {
        }
        private function MarkClosed($arEventParameters = array())
        {
        }
        protected function WriteToTrackingService($message = "", $modifiedBy = 0, $trackingType = -1)
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function ValidateChild($childActivity, $bFirstChild = \false)
        {
        }
        public static function &FindActivityInTemplate(&$arWorkflowTemplate, $activityName)
        {
        }
        public static function isExpression($text)
        {
        }
        public static function parseExpression($exp) : ?array
        {
        }
    }
    class CBPCalendar2Activity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CCalendarRequest
    {
        private static $request, $reqId, $calendar;
        public static function Process($action = '', \CCalendar $calendar)
        {
        }
        public static function OutputJSRes($reqId = \false, $res = \false)
        {
        }
        public static function simpleSaveEntry()
        {
        }
        public static function editEntry()
        {
        }
        public static function moveEventToDate()
        {
        }
        public static function deleteEntry()
        {
        }
        public static function DeleteEvent()
        {
        }
        public static function LoadEntries()
        {
        }
        public static function SaveSettings()
        {
        }
        public static function SetStatus()
        {
        }
        public static function GetGroupMemberList()
        {
        }
        public static function GetAccessibility()
        {
        }
        public static function GetMeetingRoomAccessibility()
        {
        }
        public static function CheckMeetingRoom()
        {
        }
        public static function EditConnections()
        {
        }
        public static function DisconnectGoogle()
        {
        }
        public static function ClearSynchronizationInfo()
        {
        }
        public static function SyncExchange()
        {
        }
        public static function GetEditSlider()
        {
        }
        public static function GetViewSlider()
        {
        }
        public static function GetPlanner()
        {
        }
        public static function UpdatePlanner()
        {
        }
        public static function ChangeRecurciveEventUntil()
        {
        }
        public static function AddExcludeRecursionDate()
        {
        }
        public static function updateLocationList()
        {
        }
        public static function getDestinationItems()
        {
        }
        public static function getFilterData()
        {
        }
    }
    class CCalendarEvent
    {
        public static $eventUFDescriptions, $TextParser;
        private static $fields = [], $userIndex = [], $isAddIcalFailEmailError = \false;
        public static function CheckRRULE($RRule = array())
        {
        }
        /**
         * @param array $params
         * params['arFields'] event fields
         * params['userId'] user id
         * params['saveAttendeesStatus'] sending notification flag
         * @return bool|mixed
         */
        public static function Edit($params = [])
        {
        }
        public static function GetById($ID, $checkPermissions = \true)
        {
        }
        public static function GetList($params = array())
        {
        }
        private static function GetFields()
        {
        }
        public static function ConnectEventToSection($eventId, $sectionId)
        {
        }
        public static function getAttendeeList($entryIdList = array())
        {
        }
        public static function getUsersDetails($userIdList = [])
        {
        }
        public static function GetAttendees($eventIdList = array())
        {
        }
        public static function ApplyAccessRestrictions($event, $userId = \false)
        {
        }
        private static function PreHandleEvent($item, $params = array())
        {
        }
        public static function CheckRecurcion($event)
        {
        }
        public static function ParseText($text = "", $eventId = 0, $arUFWDValue = array())
        {
        }
        public static function __GetUFForParseText($eventId = 0, $arUFWDValue = array())
        {
        }
        public static function ParseRecursion(&$res, $event, $params = [])
        {
        }
        public static function ParseRRULE($rule = '')
        {
        }
        public static function GetExDate($exDate = '')
        {
        }
        private static function HandleEvent(&$res, $item = [], $userId = \null)
        {
        }
        public static function CheckFields(&$arFields, $currentEvent = array(), $userId = \false)
        {
        }
        public static function CheckEntryChanges($newFields = [], $currentFields = [])
        {
        }
        private static function PackRRule($RRule = array())
        {
        }
        //
        private static function CreateChildEvents($parentId, $arFields, $params, $changeFields)
        {
        }
        public static function sendEventInvitationUsingIcal($arEventManagerInstances)
        {
        }
        public static function UpdateParentEventExDate($recurrenceId, $exDate, $attendeeIds)
        {
        }
        public static function GetEventFromToForUser($params, $userId)
        {
        }
        public static function OnPullPrepareArFields($arFields = array())
        {
        }
        public static function UpdateUserFields($eventId, $arFields = array())
        {
        }
        public static function GetChildEvents($parentId)
        {
        }
        public static function Delete($params)
        {
        }
        public static function SetMeetingStatusEx($params)
        {
        }
        public static function SetMeetingStatus($params)
        {
        }
        /*
         * $params['dateFrom']
         * $params['dateTo']
         *
         * */
        public static function GetMeetingStatus($userId, $eventId)
        {
        }
        public static function GetAccessibilityForUsers($params = array())
        {
        }
        public static function GetAbsent($users = \false, $params = array())
        {
        }
        public static function DeleteEmpty()
        {
        }
        public static function CleanEventsWithDeadParents()
        {
        }
        public static function CheckEndUpdateAttendeesCodes($event)
        {
        }
        public static function CanView($eventId, $userId)
        {
        }
        public static function GetEventUserFields($event)
        {
        }
        public static function SetExDate($exDate = array(), $untilTimestamp = \false)
        {
        }
        public static function GetEventsByRecId($recurrenceId, $checkPermissions = \true)
        {
        }
        public static function GetEventCommentXmlId($event)
        {
        }
        public static function ExtractDateFromCommentXmlId($xmlId = '')
        {
        }
        public static function GetRRULEDescription($event, $html = \false, $showUntil = \true)
        {
        }
        public static function ExcludeInstance($eventId, $excludeDate)
        {
        }
        public static function getDiskUFFileNameList($valueList = array())
        {
        }
        public static function getSearchIndexContent($eventId)
        {
        }
        public static function getSearchIndexContentBatch($eventIdList = array())
        {
        }
        public static function updateSearchIndex($eventIdList = array(), $params = array())
        {
        }
        public static function formatSearchIndexContent($entry = array())
        {
        }
        public static function GetCount()
        {
        }
        public static function updateColor($eventId, $color = '')
        {
        }
        /**
         * Applies ROT13 transform to search token, in order to bypass default mysql search blacklist.
         * @param string $token Search token.
         * @return string
         */
        public static function prepareToken($token)
        {
        }
        public static function isFullTextIndexEnabled()
        {
        }
        public static function getUserIndex()
        {
        }
        public static function getEventForViewInterface($entryId, $params = [])
        {
        }
        public static function getEventForEditInterface($entryId, $params = [])
        {
        }
        public static function handleAccessCodes($accessCodes = [], $params = [])
        {
        }
        public static function getMailAttaches($fields, $userId, $parentId, &$isChangeFiles = \false)
        {
        }
        private static function getSenderEmailForIcal(string $serializedMeetingInfo = \null) : ?string
        {
        }
        /**
         * @param $userIndex
         * @param $organizerId
         * @return mixed
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private static function getSenderForIcal($userIndex, $organizerId)
        {
        }
    }
    class CCalendarSync
    {
        public static $handleExchangeMeeting;
        public static $doNotSendToGoogle = \false;
        private static $mobileBannerDisplay;
        const MINIMAL_LIMIT = 1;
        public static function doSync()
        {
        }
        public static function dataSync($connectionData = array())
        {
        }
        public static function syncConnection($connectionData, $forceSync = \false)
        {
        }
        public static function syncCalendarEvents($localCalendar) : string
        {
        }
        public static function ModifyEvent($calendarId, $arFields, $params = array())
        {
        }
        public static function ModifyReccurentInstances($params = array())
        {
        }
        public static function DoSaveToDav($params = array(), &$arFields, $event = \false)
        {
        }
        public static function DoDeleteToDav($params, $event)
        {
        }
        public static function syncCalendarSections($connectionType, $arCalendars, $entityType, $entityId, $connectionId = \null)
        {
        }
        public static function GetGoogleCalendarConnection()
        {
        }
        private static function GetGoogleOauthPrimaryId($data = array())
        {
        }
        public static function GetExchangeEmailForUser($idList = array())
        {
        }
        public static function GetUsersByEmailList($emailList = array())
        {
        }
        public static function isExchangeMeetingEnabled()
        {
        }
        public static function isTaskListSyncEnabled()
        {
        }
        public static function SyncLocalCalendars()
        {
        }
        private function GetPassDates($id, $exDates)
        {
        }
        public static function checkMobileBannerDisplay()
        {
        }
        private static function CutAttendeesFromDescription(?string $description, ?array $attendeesCodes)
        {
        }
        public static function isSetSyncCaldavSettings($type)
        {
        }
        /**
         * @param array $externalEvents
         * @param array $localEvents
         * @param $localCalendar
         */
        private static function SaveExternalEvents(array $externalEvents, array $localEvents, $localCalendar) : void
        {
        }
        /**
         * @param $localCalendar
         * @return array|mixed|null
         */
        private static function getLocalEventsList($localCalendar)
        {
        }
        public function GetUserSyncInfo($userId)
        {
        }
        public static function getSign($url = '')
        {
        }
        public static function GetSyncInfo($params = [])
        {
        }
        public static function GetSyncInfoItem($userId, $syncType)
        {
        }
        public static function GetMultipleSyncInfoItem($userId, $syncType)
        {
        }
        public static function GetCaldavItemsInfo($userId, $type)
        {
        }
        private static function GetGoogleAccountInfo($isGoogleApiEnabled, $userId, $type)
        {
        }
        public static function GetSyncLinks($params = [])
        {
        }
        public static function GetGoogleAuthLink($userId, $type)
        {
        }
        public static function SetSectionStatus($userId = 0, $sectionsStatus = [])
        {
        }
        public static function UpdateUserConnections()
        {
        }
        private static function isConnectionSuccess(string $lastResult = \null) : bool
        {
        }
    }
    class CCalendarLocation
    {
        const TYPE = 'location';
        public static function enabled()
        {
        }
        public static function getList($params = [])
        {
        }
        public static function getById($id)
        {
        }
        public static function update($params = array())
        {
        }
        public static function getRoomAccessibility($roomId, $from, $to, $params = array())
        {
        }
        public static function delete($id)
        {
        }
        public static function clearCache($params = array())
        {
        }
        public static function releaseRoom($params = array())
        {
        }
        public static function reserveRoom($params = array())
        {
        }
        public static function checkAccessibility($location = '', $params = [])
        {
        }
    }
    class CCalendarPlanner
    {
        public static function Init($config = [], $initialParams = \false)
        {
        }
        public static function InitJsCore($config = [], $initialParams)
        {
        }
        public static function prepareData($params = [])
        {
        }
    }
    /*
    RegisterModuleDependences('intranet', 'OnPlannerInit', 'calendar', 'CCalendarEventHandlers', 'OnPlannerInit');
    RegisterModuleDependences('intranet', 'OnPlannerAction', 'calendar', 'CCalendarEventHandlers', 'OnPlannerAction');
    */
    class CCalendarEventHandlers
    {
        public static function OnPlannerInit($params)
        {
        }
        public static function OnPlannerAction($action, $params)
        {
        }
        protected static function getEvent($arParams)
        {
        }
        protected static function MakeDateTime($date, $time)
        {
        }
        protected static function plannerActionAdd($arParams)
        {
        }
        protected static function plannerActionShow($arParams)
        {
        }
        private static function DateSort($a, $b)
        {
        }
    }
    class CCalendarSect
    {
        private static $sections, $Permissions = array(), $arOp = array(), $bClearOperationCache = \false, $authHashiCal = \null, $Fields = array();
        private static function GetFields()
        {
        }
        public static function GetList($params = array())
        {
        }
        public static function GetById($id = 0, $checkPermissions = \true, $bRerequest = \false)
        {
        }
        //
        public static function GetSuperposedList($params = array())
        {
        }
        public static function CheckFields($arFields)
        {
        }
        public static function Edit($params)
        {
        }
        public static function Delete($id, $checkPermissions = \true)
        {
        }
        public static function CreateDefault($params = array())
        {
        }
        public static function SavePermissions($sectId, $arTaskPerm)
        {
        }
        public static function GetArrayPermissions($arSections = array())
        {
        }
        public static function SetClearOperationCache($val = \true)
        {
        }
        public static function CanDo($operation, $sectId = 0, $userId = \false)
        {
        }
        public static function GetOperations($sectId, $userId = \false)
        {
        }
        public static function GetCalDAVConnectionId($section = 0)
        {
        }
        public static function GetExportLink($sectionId, $type = '', $ownerId = \false)
        {
        }
        function GetSPExportLink()
        {
        }
        public static function GetOutlookLink($Params)
        {
        }
        private static function GetUniqCalendarId()
        {
        }
        public static function GetSign($userId, $sectId)
        {
        }
        public static function CheckSign($sign, $userId, $sectId)
        {
        }
        //	public static function Hidden($userId, $ar = false)
        //	{
        //		if (!$userId && $ar === false)
        //			return array();
        //
        //		$res = array();
        //		if (class_exists('CUserOptions') && $userId > 0)
        //		{
        //			if ($ar === false) // Get
        //			{
        //				$str = CUserOptions::GetOption("calendar", "hidden_sections", false, $userId);
        //				if ($str !== false && CheckSerializedData($str))
        //					$res = unserialize($str);
        //			}
        //			elseif(is_array($ar)) // Set
        //			{
        //				$res = CUserOptions::SetOption("calendar", "hidden_sections", serialize($ar));
        //			}
        //		}
        //		return $res;
        //	}
        // * * * * EXPORT TO ICAL  * * * *
        public static function ReturnICal($Params)
        {
        }
        function ExtendExportEventsArray($arEvents, $arCalEx)
        {
        }
        private static function ShowICalHeaders()
        {
        }
        private static function FormatICal($section, $events)
        {
        }
        private static function _ICalPaste($str)
        {
        }
        public static function GetModificationLabel($calendarId)
        {
        }
        public static function UpdateModificationLabel($arId = array())
        {
        }
        public static function GetDefaultAccess($type, $ownerId)
        {
        }
        public static function GetAuthHash()
        {
        }
        public static function CheckAuthHash()
        {
        }
        public static function GetLastUsedSection($type, $ownerId, $userId)
        {
        }
        public static function GetSectionForOwner($type, $ownerId, $autoCreate = \true)
        {
        }
        public static function HandlePermission($section = [])
        {
        }
        public static function CleanAccessTable()
        {
        }
        public static function CheckGoogleVirtualSection($davXmlId = '')
        {
        }
        public static function GetCount()
        {
        }
        public static function GetSectionIdByEventId($id)
        {
        }
    }
    class CCalendarNotifySchema
    {
        public function __construct()
        {
        }
        public static function OnGetNotifySchema()
        {
        }
    }
    class CCalendarPullSchema
    {
        public static function OnGetDependentModule()
        {
        }
    }
    class CCalendarSceleton
    {
        public static function InitJS($config = array(), $data = array(), $additionalParams = array())
        {
        }
        public static function GetWeekDays()
        {
        }
        public static function GetWeekDaysEx($weekStart = 'MO')
        {
        }
        public static function GetAccessHTML($binging = 'calendar_section', $id = \false)
        {
        }
        public static function GetUserfieldsEditHtml($eventId, $url = '')
        {
        }
        public static function GetUserfieldsViewHtml($eventId)
        {
        }
        public static function DisplayColorSelector($id, $key = 'sect', $colors = \false)
        {
        }
        public static function CheckBitrix24Limits($params)
        {
        }
    }
    class CCalendarType
    {
        private static $Permissions = array(), $arOp = array(), $userOperationsCache = array();
        public static function GetList($params = array())
        {
        }
        public static function Edit($Params)
        {
        }
        public static function Delete($XML_ID)
        {
        }
        public static function SavePermissions($type, $arTaskPerm)
        {
        }
        public static function GetArrayPermissions($arTypes = array())
        {
        }
        public static function CanDo($operation, $xmlId = 0, $userId = \false)
        {
        }
        public static function GetOperations($xmlId, $userId = \false)
        {
        }
    }
    class CCalendarReminder
    {
        const TYPE_DAY_BEFORE = 'daybefore';
        const TYPE_SPECIFIC_DATETIME = 'date';
        const SIMPLE_TYPE_LIST = ['min', 'hour', 'day'];
        const REMINDER_INACCURACY = 30;
        const REMINDER_NEXT_DELAY = 120;
        public static function ReminderAgent($eventId = 0, $userId = 0, $viewPath = '', $calendarType = '', $ownerId = 0, $index = 0)
        {
        }
        public static function RemoveAgent($params)
        {
        }
        public static function getNotifyFields($params = [])
        {
        }
        public static function AddAgent($remindTime, $params)
        {
        }
        public static function UpdateReminders($params = [])
        {
        }
        public static function sortReminder($a, $b)
        {
        }
        private static function getReminderDelta($reminder)
        {
        }
        private static function getReminderTimestamp($eventTimestamp, $reminder, $timezoneName = \null)
        {
        }
        public static function prepareReminder($reminder = [])
        {
        }
        public static function GetTextReminders($valueList = array())
        {
        }
    }
    class CCalendarNotify
    {
        const PUSH_MESSAGE_MAX_LENGTH = 255;
        public static function Send($params)
        {
        }
        public static function Invite($fields = [], $params)
        {
        }
        public static function ChangeNotify($fields = [], $params = [])
        {
        }
        public static function Cancel($fields = [], $params)
        {
        }
        public static function CancelInstance($fields = [], $params)
        {
        }
        public static function CancelAllReccurent($fields = [], $params)
        {
        }
        public static function MeetingStatus($fields = [], $params)
        {
        }
        public static function MeetingStatusInfo($fields = [], $params)
        {
        }
        public static function NotifyComment($eventId, $params)
        {
        }
        public static function ClearNotifications($eventId = \false, $userId = \false)
        {
        }
        private static function NotifyFailIcalInvite($fields = [], $params)
        {
        }
    }
    /**
     * This class used for internal use only, not a part of public API.
     * It can be changed at any time without notification.
     *
     * @access private
     */
    final class CCalendarRestService extends \IRestService
    {
        const SCOPE_NAME = 'calendar';
        const PLACEMENT_GRID_VIEW = 'CALENDAR_GRIDVIEW';
        public static function OnRestServiceBuildDescription()
        {
        }
        /*
         * Returns array of events
         *
         * @param array $params - incomoning params:
         * $params['type'] - (required) calendar type ('user'|'group')
         * $params['ownerId'] - owner id
         * $params['from'] - datetime, "from" limit, default value - 1 month before current date
         * $params['to'] - datetime, "to" limit, default value - 3 month after current date
         * $params['section'] - inline or array of sections
         * @return array of events
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.event.get",
         * {
         * 		type: 'user',
         *		ownerId: '1',
         * 		from: '2013-06-20',
         * 		to: '2013-08-20',
         * 		section: [21, 44]
         * });
         *
         */
        public static function EventGet($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Returns event by it id
         *
         * @param array $params - incomoning params:
         * $params['id'] - int, (required) calendar event id
         * @return event or null
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.event.getbyid",
         * {
         * 		id: 324
         * });
         *
         */
        public static function EventGetById($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
        * Add new event
        *
        * @param array $params - incomoning params:
        * $params['type'] - (required), number, calendar type
        * $params['ownerId'] - (required), number, owner id
        * $params['from'] - (required) datetime, "from" limit
        * $params['to'] - (required) datetime, "to" limit
        * $params['timezone_from'] - string, timezone, dafault value - timezone of current user
        * $params['timezone_to'] - string, timezone, dafault value - timezone of current user
        * $params['from_ts'] - timestamp, "from" limit, can be set instead of $params['from']
        * $params['to_ts'] - timestamp, "to" limit, can be set instead of $params['to']
        * $params['section'] - (required if $params['auto_detect_section'] is not "Y"), number, id of the section
        * $params['auto_detect_section'] - "Y" | "N", if "Y" $params['section'] could be skipped
        * $params['name'] - (required), string, name of the event
        * $params['skip_time'] - "Y"|"N",
        * $params['description'] - string, description of the event
        * $params['color'] - background color of the event
        * $params['text_color'] - text color of the event
        * $params['accessibility'] - 'busy'|'quest'|'free'|'absent' - accessibility for user
        * $params['importance'] - 'high' | 'normal' | 'low' - importance for the event
        * $params['private_event'] - "Y" | "N"
        * $params['rrule'] - array of the recurence Rule
        * $params['is_meeting'] - "Y" | "N"
        * $params['location'] - location
        * $params['remind'] - array(
        * 	array(
        * 		'type' => 'min'|'hour'|'day', type of reminder
        * 		'count' => count of time
        * 	)
        * ) - reminders
        * $params['attendees'] - array of the attendees for meeting if ($params['is_meeting'] == "Y")
        * $params['host'] - host of the event
        * $params['meeting'] = array(
        		'text' =>  inviting text,
        		'open' => true|false if meeting is open,
        		'notify' => true|false,
        		'reinvite' => true|false
        	)
        * @return id of the new event.
        * @throws \Bitrix\Rest\RestException
        *
        * @example (Javascript)
        * BX24.callMethod("calendar.event.add",
        * {
        *		type: 'user',
        *	 	ownerId: '2',
        * 		name: 'New Event Name',
        * 		description: 'Description for event',
        * 		from: '2013-06-14',
        * 		to: '2013-06-14',
        * 		skip_time: 'Y',
        * 		section: 5,
        * 		color: '#9cbe1c',
        * 		text_color: '#283033',
        * 		accessibility: 'absent',
        * 		importance: 'normal',
        * 		is_meeting: 'Y',
        * 		private_event: 'N',
        * 		remind: [{type: 'min', count: 20}],
        * 		location: 'Kaliningrad',
        * 		attendees: [1, 2, 3],
        *		host: 2,
        * 		meeting: {
        * 			text: 'inviting text',
        * 			open: true,
        * 			notify: true,
        * 			reinvite: false
        * 		}
        * });
        */
        public static function EventAdd($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Edit existent event
         *
         * @param array $params - incomoning params:
         * $params['id'] - (required) event id,
         * $params['type'] - number, (required) calendar type
         * $params['ownerId'] - number, owner id
         * $params['from'] - datetime, "from" limit
         * $params['to'] - datetime, "to" limit
         * $params['timezone_from'] - string, timezone, dafault value - timezone of current user
         * $params['timezone_to'] - string, timezone, dafault value - timezone of current user
         * $params['from_ts'] - timestamp, "from" limit,
         * $params['to_ts'] - timestamp, "to" limit
         * $params['section'] - number,(required) id of the section
         * $params['name'] - string, (required) name of the event
         * $params['skip_time'] - "Y"|"N",
         * $params['description'] - string, description of the event
         * $params['color'] - background color of the event
         * $params['text_color'] - text color of the event
         * $params['accessibility'] - 'busy'|'quest'|'free'|'absent' - accessibility for user
         * $params['importance'] - 'high' | 'normal' | 'low' - importance for the event
         * $params['private_event'] - "Y" | "N"
         * $params['rrule'] - array of the recurence Rule
         * $params['is_meeting'] - "Y" | "N"
         * $params['location'] - location
         * $params['remind'] - array(
         * 	array(
         * 		'type' => 'min'|'hour'|'day', type of reminder
         * 		'count' => count of time
         * 	)
         * ) - reminders
         * $params['attendees'] - array of the attendees for meeting if ($params['is_meeting'] == "Y")
         * $params['host'] - host of the event
         * $params['meeting'] = array(
         * 		'text' =>  inviting text,
         * 		'open' => true|false if meeting is open,
         * 		'notify' => true|false,
         * 		'reinvite' => true|false
         * 	)
         * @return id of edited event
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.event.update",
         * {
         * 		id: 699
         *		type: 'user',
         *	 	ownerId: '2',
         * 		name: 'Changed Event Name',
         * 		description: 'New description for event',
         * 		from: '2013-06-17',
         * 		to: '2013-06-17',
         * 		skip_time: 'Y',
         * 		section: 5,
         * 		color: '#9cbe1c',
         * 		text_color: '#283033',
         * 		accessibility: 'free',
         * 		importance: 'normal',
         * 		is_meeting: 'N',
         * 		private_event: 'Y',
         * 		remind: [{type: 'min', count: 10}]
         * });
         */
        public static function EventUpdate($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Delete event
         *
         * @param array $params - incomoning params:
         * $params['type'] (required) calendar type
         * $params['ownerId'] (required) owner id
         * $params['id'] (required) event id
         * @return true if everything ok
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.event.delete",
         * {
         * 		id: 698
         *		type: 'user',
         *	 	ownerId: '2'
         * });
         */
        public static function EventDelete($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Return array of bearest events for current user
         *
         * @param array $params - incomoning params:
         * $params['ownerId'] - owner id
         * $params['type'] - calendar type
         * $params['days'] - future days count (default - 60)
         * $params['forCurrentUser'] - true/false - list of nearest events for current user
         * $params['maxEventsCount'] - maximum events count
         * $params['detailUrl'] - url for calendar
         *
         * @return array of events
         *
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.event.get.nearest",
         * {
         *		type: 'user',
         *	 	ownerId: '2',
         * 		days: 10,
         * 		forCurrentUser: true,
         *		detailUrl: '/company/personal/user/#user_id#/calendar/'
         * });
         *
         */
        public static function EventGetNearest($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Return list of sections
         *
         * @param array $params - incomoning params:
         * $params['type'] (required) calendar type
         * $params['ownerId'] (required) owner id
         *
         * @return array of sections
         *
         * @throws \Bitrix\Rest\RestException
         *
         *  @example (Javascript)
         * BX24.callMethod("calendar.section.get",
         * {
         * 		type: 'user',
         *		ownerId: '1'
         * });
         */
        public static function SectionGet($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
        * Add new section
        *
        * @param array $params - incomoning params:
        * $params['type'] - (required), number, calendar type
        * $params['ownerId'] - (required), number, owner id
        * $params['name'] - string, (required) name of the section
        * $params['description'] - string, description of the section
        * $params['color']
        * $params['text_color']
        * $params['export'] = array(
        		'ALLOW' => true|false,
        		'SET' => array
        	)
        * $params['access'] - array of access data
        *
        * @return id of created section
        *
        * @throws \Bitrix\Rest\RestException
        *
        * @example (Javascript)
        * BX24.callMethod("calendar.section.add",
        * {
        * 		type: 'user',
        *	 	ownerId: '2',
        * 		name: 'New Section',
        * 		description: 'Description for section',
        * 		color: '#9cbeee',
        * 		text_color: '#283000',
        * 		export: [{ALLOW: false}]
        * 		access: {
        * 			'D114': 17,
        * 			'G2': 13,
        * 			'U2':15
        * 		}
        * });
        */
        public static function SectionAdd($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
        * Update section
        *
        * @param array $params - incomoning params:
        * $params['id'] - (required) number, calendar type
        * $params['type'] - (required) number, calendar type
        * $params['ownerId'] - (required) number, owner id
        * $params['name'] - string, name of the section
        * $params['description'] - string, description of the section
        * $params['color']
        * $params['text_color']
        * $params['export'] = array(
        		'ALLOW' => true|false,
        		'SET' => array
        	)
        * $params['access'] - array of access data
        *
        * @return id of modified section
        *
        * @throws \Bitrix\Rest\RestException
        *
        * @example (Javascript)
        * BX24.callMethod("calendar.section.update",
        * {
        * 		id: 325,
        * 		type: 'user',
        *	 	ownerId: '2',
        * 		name: 'Changed Section Name',
        * 		description: 'New description for section',
        * 		color: '#9cbeAA',
        * 		text_color: '#283099',
        * 		export: [{ALLOW: false}]
        * 		access: {
        * 			'D114': 17,
        * 			'G2': 13,
        * 			'U2':15
        * 		}
        * });
        */
        public static function SectionUpdate($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Delete section
         *
         * @param array $params - incomoning params:
         * $params['type'] (required) calendar type
         * $params['ownerId'] (required) owner id
         * $params['id'] (required) section id
         *
         * @return true if everything ok
         *
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.section.delete",
         * {
         * 		type: 'user',
         *	 	ownerId: '2',
         * 		id: 521
         * });
         */
        public static function SectionDelete($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Set meeting status for current user
         *
         * @param array $params - incomoning params:
         * $params['eventId'] - event id
         * $params['status'] = 'Y' | 'N' | 'Q'
         *
         * @return true if everything ok
         *
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.meeting.status.set",
         * {
         * 		eventId: '651',
         *	 	status: 'Y'
         * });
         */
        public static function MeetingStatusSet($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Return meeting status for current user for given event
         *
         * @param array $params - incomoning params:
         * $params['eventId'] - (required) event id
         *
         * @return status - "Y" | "N" | "Q"
         *
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.meeting.status.get",
         * {
         * 		eventId: '651'
         * });
         */
        public static function MeetingStatusGet($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * @deprecated
         */
        public static function MeetingParamsSet($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Allow to get user's accessibility
         *
         * @param array $params - incomoning params:
         * $params['users'] - (required) array of user ids
         * $params['from'] - (required) date, from limit
         * $params['to'] - (required) date, to limit
         *
         * @return array - array('user_id' => array()) - information about accessibility for each asked user
         *
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.accessibility.get",
         * {
         * 		from: '2013-06-20',
         * 		to: '2013-12-20',
         * 		users: [1, 2, 34]
         * });
         */
        public static function MeetingAccessibilityGet($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Return calendar general settings
         *
         * @return array of settings
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.settings.get", {});
         */
        public static function SettingsGet($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Set calendar settings
         *
         * @param array $params - incomoning params:
         * $params['settings'] - (required) array of user's settings
         *
         * @return true if everything ok
         *
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.settings.set",
         * {
         * 		settings: {
         * 			work_time_start: 9,
         * 			work_time_end: 19,
         * 			year_holidays: '1.01,2.01,7.01,23.02,8.03,1.05,9.05,12.06,4.11,12.12,03.04,05.04',
         * 			week_holidays:['SA','SU'],
         *			week_start: 'MO'
         * 		}
         * });
         */
        public static function SettingsSet($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Clears calendar settings
         *
         * @return true if everything ok
         *
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.settings.clear",{});
         */
        public static function SettingsClear()
        {
        }
        /*
         * Returns user's settings
         *
         * @return array of settings
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.user.settings.get",{});
         */
        public static function UserSettingsGet($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Saves user's settings
         *
         * @param array $params - incomoning params:
         * $params['settings'] - (required) array of user's settings
         *
         * @return true if everything ok
         *
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.user.settings.set",
         * {
         * 		settings: {
         * 			tabId: 'month',
         * 			meetSection: '23',
         * 			blink: true,
         * 			showDeclined: false,
         *			showMuted: true
         * 		}
         * });
         */
        public static function UserSettingsSet($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Return list of all resources
         *
         * @return array of resources
         *
         * @throws \Bitrix\Rest\RestException
         *
         *  @example (Javascript)
         * BX24.callMethod("calendar.resource.list");
         */
        public static function ResourceList()
        {
        }
        /*
         * Add new resource
         *
         * @param array $params - incomoning params:
         * $params['name'] - string, (required) name of the resource
         *
         * @return id of created resource
         *
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.resource.add",
         * {
         * 		name: 'My resource title'
         * });
         */
        public static function ResourceAdd($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Update resource
         *
         * @param array $params - incomoning params:
         * $params['resourceId'] - (required) number,
         * $params['name'] - (required) string, name of the resource
         *
         * @return id of modified section
         *
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.resource.update",
         * {
         * 		resourceId: 325,
         * 		name: 'Changed Resource Name'
         * });
         */
        public static function ResourceUpdate($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Delete resource
         *
         * @param array $params - incomoning params:
         * $params['resourceId'] (required) resource id
         *
         * @return true if everything ok
         *
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.resource.delete",
         * {
         * 		resourceId: 521
         * });
         */
        public static function ResourceDelete($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Return list of booking for resources by id or by resource types
         *
         * @param array $params - incomoning params:
         * $params['filter'] - array of ids of resource bookings
         * 		$params['filter']['resourceIdList'] - array of ids of resource bookings, if this parameter is specified other filter params (resourceTypeIdList, from, to) in filter are not used.
         * 		$params['filter']['resourceTypeIdList'] - array, list of resource type ids. Required if resourceIdList is not specified.
         * 		$params['filter']['from'] - datetime, "from" limit, default value - 1 month before current date
         * 		$params['filter']['to'] - datetime, "to" limit, default value - 3 month after current date
         * @return array of booking for resources
         *
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.resource.booking.list", {
         * 		filter: {
         *			resourceTypeIdList: [10852, 10888, 10873, 10871, 10853]
         *			from: '2013-06-20',
         * 			to: '2013-08-20',
         * 		}
         *	};
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.resource.booking.list", {
         * 		filter: {
         *			resourceIdList: [10, 18, 17]
         * 		}
         *	};
         */
        public static function ResourceBookingList($params = [])
        {
        }
        /*
         * Books given resource
         *
         * @param array $params - incomoning params:
         * $params['resourceType'] - (required) string, type of the resource could be 'user' or 'resource'
         * $params['resourceId'] - (required) number, id of the resource or user
         * $params['from'] - (required) datetime, "from"
         * $params['to'] - (required) datetime, "to" limit
         * $params['timezone'] - string, timezone, dafault value - timezone of current user
         * $params['skipTime'] - is it booking for whole day(s) "Y"|"N" deafault value - "N",
         * $params['bookingName'] - string, name of the booking event
         * $params['serviceName'] - string, name of the booking event
         * $params['bindingEntityType'] - string, type of entity binded to the booking (example CRM_LEAD)
         * $params['bindingEntityId'] - number, id of entity binded to the booking
         *
         * @return array of booking for esources
         *
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.resource.booking.add", {
         *		resourceTypeIdList: [10852, 10888, 10873, 10871, 10853]
         *		from: '2013-06-20',
         * 		to: '2013-08-20',
         *	};
         */
        //	public static function ResourceBookingAdd($params = array())
        //	{
        //		$userId = CCalendar::GetCurUserId();
        //		$methodName = "calendar.resource.booking.add";
        //
        //		$necessaryParams = array('resourceType', 'resourceId', 'from', 'to');
        //
        //		if (isset($params['from']))
        //		{
        //			$params['from'] = CRestUtil::unConvertDateTime($params['from']);
        //		}
        //
        //		if (isset($params['to']))
        //		{
        //			$params['to'] = CRestUtil::unConvertDateTime($params['to']);
        //		}
        //
        //		if (isset($params['resourceId']))
        //		{
        //			$params['resourceId'] = intval($params['resourceId']);
        //		}
        //
        //		$params['bindingEntityType'] = isset($params['bindingEntityType']) ? $params['bindingEntityType'] : 'REST';
        //		$params['bindingEntityId'] = isset($params['bindingEntityId']) ? intval($params['bindingEntityId']) : 0;
        //
        //		foreach ($necessaryParams as $param)
        //		{
        //			if (!isset($params[$param]) || empty($params[$param]))
        //			{
        //				throw new RestException(Loc::getMessage('CAL_REST_PARAM_EXCEPTION', array('#PARAM_NAME#' => $param,'#REST_METHOD#' => $methodName)));
        //			}
        //		}
        //
        //		if (!in_array($params['resourceType'], ['user', 'resource']))
        //		{
        //			throw new RestException(Loc::getMessage('CAL_REST_RES_TYPE_ERROR', array('#ALLOWED_TYPES#' => 'user|resource')));
        //		}
        //
        //		$entryFields = array(
        //			"DATE_FROM" => $params['from'],
        //			"DATE_TO" => $params['to'],
        //			"SKIP_TIME" => $params['skip_time'],
        //			"NAME" => !empty($params['bookingName']) ? $params['bookingName'] : Loc::getMessage('CAL_REST_RES_BOOKING_DEFAULT_VALUE')
        //		);
        //
        //		if ($params['serviceName'] !== '')
        //		{
        //			$entryFields["DESCRIPTION"] = Loc::getMessage("CAL_REST_RES_BOOKING_SERVICE_LABEL").': '.$params['serviceName'];
        //		}
        //
        //		if (strtoupper($params['skipTime']) !== 'Y')
        //		{
        //			$userTimezoneName = \CCalendar::getUserTimezoneName($userId, true);
        //			if($userTimezoneName)
        //			{
        //				$entryFields['TZ_FROM'] = $userTimezoneName;
        //				$entryFields['TZ_TO'] = $userTimezoneName;
        //			}
        //		}
        //
        //		$resourceBookingId = \Bitrix\Calendar\UserField\ResourceBooking::saveResource(
        //			false,
        //			$params['resourceType'],
        //			$params['resourceId'],
        //			$entryFields,
        //			[
        //				'serviceName' => $params['serviceName'],
        //				'bindingEntityType' => $params['bindingEntityType'],
        //				'bindingEntityId' => $params['bindingEntityId'],
        //				'bindingUserfieldId' => $params['bindingUserfieldId']
        //			]
        //		);
        //
        //		if (!$resourceBookingId)
        //		{
        //			throw new RestException(Loc::getMessage("CAL_REST_RESOURCE_BOOKING_ADD_ERROR"));
        //		}
        //
        //		return $resourceBookingId;
        //	}
        /*
         * Edit resource booking
         *
         * @param array $params - incomoning params:
         * $params['id'] - (required) numper, booking id,
         * $params['resourceType'] - (required) string, type of the resource could be 'user' or 'resource'
         * $params['resourceId'] - (required) number, id of the resource or user
         * $params['from'] - (required) datetime, "from"
         * $params['to'] - (required) datetime, "to" limit
         * $params['timezone'] - string, timezone, dafault value - timezone of current user
         * $params['skipTime'] - is it booking for whole day(s) "Y"|"N" deafault value - "N",
         * $params['bookingName'] - string, name of the booking event
         * $params['serviceName'] - string, name of the booking event
         * $params['bindingEntityType'] - string, type of entity binded to the booking (example CRM_LEAD)
         * $params['bindingEntityId'] - number, id of entity binded to the booking
         *
         * @return array of booking for esources
         *
         * @throws \Bitrix\Rest\RestException
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.resource.booking.update", {
         * 		id:
         *		resourceTypeIdList: [10852, 10888, 10873, 10871, 10853]
         *		from: '2013-06-20',
         * 		to: '2013-08-20',
         *	};
         */
        //	public static function ResourceBookingUpdate($params = array())
        //	{
        //		$userId = CCalendar::GetCurUserId();
        //		$methodName = "calendar.resource.booking.update";
        //
        //		$necessaryParams = array('id', 'resourceType', 'resourceId', 'from', 'to');
        //
        //		if (isset($params['id']))
        //		{
        //			$params['id'] = intval($params['id']);
        //		}
        //
        //		if (isset($params['from']))
        //		{
        //			$params['from'] = CRestUtil::unConvertDateTime($params['from']);
        //		}
        //
        //		if (isset($params['to']))
        //		{
        //			$params['to'] = CRestUtil::unConvertDateTime($params['to']);
        //		}
        //
        //		if (isset($params['resourceId']))
        //		{
        //			$params['resourceId'] = intval($params['resourceId']);
        //		}
        //
        //		$params['bindingEntityType'] = isset($params['bindingEntityType']) ? $params['bindingEntityType'] : 'REST';
        //		$params['bindingEntityId'] = isset($params['bindingEntityId']) ? intval($params['bindingEntityId']) : 0;
        //
        //		foreach ($necessaryParams as $param)
        //		{
        //			if (!isset($params[$param]) || empty($params[$param]))
        //			{
        //				throw new RestException(Loc::getMessage('CAL_REST_PARAM_EXCEPTION', array('#PARAM_NAME#' => $param,'#REST_METHOD#' => $methodName)));
        //			}
        //		}
        //
        //		if (!in_array($params['resourceType'], ['user', 'resource']))
        //		{
        //			throw new RestException(Loc::getMessage('CAL_REST_RES_TYPE_ERROR', array('#ALLOWED_TYPES#' => 'user|resource')));
        //		}
        //
        //		$entryFields = array(
        //			"DATE_FROM" => $params['from'],
        //			"DATE_TO" => $params['to'],
        //			"SKIP_TIME" => $params['skip_time'],
        //			"NAME" => !empty($params['bookingName']) ? $params['bookingName'] : Loc::getMessage('CAL_REST_RES_BOOKING_DEFAULT_VALUE')
        //		);
        //
        //		if ($params['serviceName'] !== '')
        //		{
        //			$entryFields["DESCRIPTION"] = Loc::getMessage("CAL_REST_RES_BOOKING_SERVICE_LABEL").': '.$params['serviceName'];
        //		}
        //
        //		if (strtoupper($params['skipTime']) !== 'Y')
        //		{
        //			$userTimezoneName = \CCalendar::getUserTimezoneName($userId, true);
        //			if($userTimezoneName)
        //			{
        //				$entryFields['TZ_FROM'] = $userTimezoneName;
        //				$entryFields['TZ_TO'] = $userTimezoneName;
        //			}
        //		}
        //
        //		$resourceBookingId = \Bitrix\Calendar\UserField\ResourceBooking::saveResource(
        //			$params['id'],
        //			$params['resourceType'],
        //			$params['resourceId'],
        //			$entryFields,
        //			[
        //				'serviceName' => $params['serviceName'],
        //				'bindingEntityType' => $params['bindingEntityType'],
        //				'bindingEntityId' => $params['bindingEntityId'],
        //				'bindingUserfieldId' => $params['bindingUserfieldId']
        //			]
        //		);
        //
        //		if (!$resourceBookingId)
        //		{
        //			throw new RestException(Loc::getMessage("CAL_REST_RESOURCE_BOOKING_ADD_ERROR"));
        //		}
        //
        //		return $resourceBookingId;
        //	}
        //	public static function ResourceBookingDelete($params = array())
        //	{
        //		$userId = CCalendar::GetCurUserId();
        //		$methodName = "calendar.resource.booking.delete";
        //
        //		\CCalendar::deleteEvent(intVal($entry['EVENT_ID']), false, array('checkPermissions' => false));
        //		Internals\ResourceTable::delete($entry['ID']);
        //	}
        /*
         * Clears user's settings
         *
         * @return true if everything ok
         *
         * @example (Javascript)
         * BX24.callMethod("calendar.settings.clear",{});
         */
        public static function UserSettingsClear($params = array(), $nav = \null, $server = \null)
        {
        }
        /*
         * Filters data fields about entry for event handlers
         *
         * @return array - array('id' => number) - id of entry which triggered event
         */
        public static function PrepareOnCalendarEntryEvent($params, $handler)
        {
        }
        /*
         * Filters data fields about section for event handlers
         *
         * @return array - array('id' => number) - id of section which triggered event
         */
        public static function PrepareOnCalendarSectionEvent($params, $handler)
        {
        }
    }
    class CCalendar
    {
        const INTEGRATION_GOOGLE_API = "googleapi", CALENDAR_MAX_TIMESTAMP = 2145938400, DEFAULT_TASK_COLOR = '#ff5b55', TASK_SECTION_ID = '1_tasks', CALENDAR_CHAT_ENTITY_TYPE = 'CALENDAR', DAY_LENGTH = 86400;
        // 60 * 60 * 24
        private static $id = \false, $instance, $CALENDAR_MAX_DATE, $CALENDAR_MIN_DATE, $type, $arTypes, $ownerId = 0, $settings, $siteId, $userSettings = [], $pathToUser, $bOwner, $userId, $curUserId, $userMeetingSection, $meetingSections = [], $crmSections = [], $offset, $arTimezoneOffsets = [], $perm = [], $isArchivedGroup = \false, $userNameTemplate = "#NAME# #LAST_NAME#", $bSuperpose, $bExtranet, $bIntranet, $bWebservice, $arSPTypes = [], $showTasks, $viewTaskPath = '', $editTaskPath = '', $actionUrl, $path = '', $outerUrl, $accessNames = [], $bSocNet, $bAnonym, $allowReserveMeeting = \true, $SectionsControlsDOMId = 'sidebar', $arAccessTask = [], $ownerNames = [], $meetingRoomList, $cachePath = "calendar/", $cacheTime = 2592000, $bCache = \true, $readOnly, $pathesForSite = \false, $pathes = [], $userManagers = [], $arUserDepartment = [], $bAMPM = \false, $bWideDate = \false, $arExchEnabledCache = [], $silentErrorMode = \false, $weekStart, $bCurUserSocNetAdmin, $serverPath, $pathesList = array('path_to_user', 'path_to_user_calendar', 'path_to_group', 'path_to_group_calendar', 'path_to_vr', 'path_to_rm'), $pathesListEx = \null, $isGoogleApiEnabled = \null, $errors = [], $timezones = [];
        function Init($params)
        {
        }
        public function Show($params = [])
        {
        }
        public static function SetDisplayedSuperposed($userId = \false, $arIds = [])
        {
        }
        public static function DeleteSection($id)
        {
        }
        public static function CollectExchangeErrors($arErrors = [])
        {
        }
        /**
         * @param $id
         * @param bool $doExternalSync
         * @param array $params
         * params['sendNotification'] send notifications
         * params['checkPermissions'] check permissions
         * params['recursionMode'] check event recurrence (this|all)
         * @return bool|string
         */
        public static function DeleteEvent($id, $doExternalSync = \true, $params = [])
        {
        }
        public static function SetOffset($userId = \false, $value = 0)
        {
        }
        public static function CollectCalDAVErros($arErrors = [])
        {
        }
        public static function GetPathForCalendarEx($userId = 0)
        {
        }
        public static function IsExtranetUser($userId = 0)
        {
        }
        public static function GetUserDepartment($userId = 0)
        {
        }
        public static function SetUserDepartment($userId = 0, $dep = [])
        {
        }
        public static function HandleImCallback($module, $tag, $value, $arNotify)
        {
        }
        public static function ClearSettings()
        {
        }
        public static function SetSettings($settings = [], $bClear = \false)
        {
        }
        public static function IsBitrix24()
        {
        }
        public static function SearchAttendees($name = '', $Params = [])
        {
        }
        public static function GetGroupMembers($groupId)
        {
        }
        public static function ReminderAgent($eventId = 0, $userId = 0, $viewPath = '', $calendarType = '', $ownerId = 0, $index = 0)
        {
        }
        public static function GetMaxTimestamp()
        {
        }
        public static function GetOwnerName($type = '', $ownerId = '')
        {
        }
        public static function GetTimezoneOffset($timezoneId, $dateTimestamp = \false)
        {
        }
        public static function GetAbsentEvents($params)
        {
        }
        public static function GetAccessibilityForUsers($params)
        {
        }
        public static function GetNearestEventsList($params = [])
        {
        }
        public static function _NearestSort($a, $b)
        {
        }
        public static function GetAccessibilityForMeetingRoom($params)
        {
        }
        public static function GetMeetingRoomById($Params)
        {
        }
        public static function ReleaseLocation($loc)
        {
        }
        public static function ReleaseMeetingRoom($Params)
        {
        }
        public static function GetCalendarList($calendarId, $params = [])
        {
        }
        /*
         * $params['from'], $params['from'] - datetime in UTC
         * */
        public static function GetDavCalendarEventsList($calendarId, $arFilter = [])
        {
        }
        public static function GetTextLocation($loc = '')
        {
        }
        public static function ParseLocation($location = '')
        {
        }
        /* * * * RESERVE MEETING ROOMS  * * * */
        public static function GetUserPermissionsForCalendar($calendarId, $userId)
        {
        }
        public static function GetDayLen()
        {
        }
        public static function UnParseTextLocation($loc = '')
        {
        }
        public static function ClearExchangeHtml($html = "")
        {
        }
        public static function ParseHTMLToBB($html = "")
        {
        }
        public static function WeekDayByInd($i, $binv = \true)
        {
        }
        public static function SaveEvent($params = [])
        {
        }
        public static function SaveEventEx($params = [])
        {
        }
        private function CountNumberFollowEvents($params)
        {
        }
        public static function CountPastEvents($params)
        {
        }
        public static function ThrowError($str)
        {
        }
        public static function GetErrors()
        {
        }
        public static function GetSectionForOwner($calType, $ownerId, $autoCreate = \true)
        {
        }
        public static function UpdateUFRights($files, $rights, $ufEntity = [])
        {
        }
        public static function TempUser($TmpUser = \false, $create = \true, $ID = \false)
        {
        }
        public static function SaveSection($Params)
        {
        }
        public static function ClearCache($arPath = \false)
        {
        }
        public static function CachePath()
        {
        }
        // * * * * * * * * * * * * CalDAV + Exchange * * * * * * * * * * * * * * * *
        public static function SyncCalendarItems($connectionType, $calendarId, $arCalendarItems)
        {
        }
        private static function FindSyncInstance($event)
        {
        }
        public static function DeleteCalendarEvent($calendarId, $eventId, $userId, $oEvent = \false)
        {
        }
        // Called from CalDav sync functions and from  CCalendar::SyncCalendarItems
        public static function SyncClearCache()
        {
        }
        public static function Color($color = '', $defaultColor = \true)
        {
        }
        public static function ConvertDayInd($i)
        {
        }
        // return array('bAccess' => true/false, 'bReadOnly' => true/false, 'privateStatus' => 'time'/'title');
        public static function _fixTimestamp($timestamp)
        {
        }
        // Called from CalDav, Exchange methods
        public static function FormatTime($h = 0, $m = 0)
        {
        }
        // Called from SaveEvent: try to save event in Exchange or to Dav Server and if it's Ok, return true
        public static function GetUserId()
        {
        }
        public static function GetReadonlyMode()
        {
        }
        // Called from CalDav sync methods
        public static function GetUserAvatarSrc($user = [], $params = [])
        {
        }
        public static function GetUserAvatar($user = [], $params = [])
        {
        }
        public static function GetUserUrl($userId = 0, $pathToUser = "")
        {
        }
        public static function GetAccessTasksByName($binging = 'calendar_section', $name = 'calendar_denied')
        {
        }
        public static function GetAccessTasks($binging = 'calendar_section')
        {
        }
        public static function PushAccessNames($arCodes = [])
        {
        }
        public static function SetLocation($old = '', $new = '', $params = [])
        {
        }
        public static function ReserveMeetingRoom($params)
        {
        }
        public static function CheckMeetingRoom($Params)
        {
        }
        public static function GetOuterUrl()
        {
        }
        public static function ManageConnections($arConnections = [])
        {
        }
        public static function AddConnection($connection)
        {
        }
        public static function EditConnection()
        {
        }
        public static function CheckCalDavUrl($url, $username, $password)
        {
        }
        public static function RemoveConnection($connection = [])
        {
        }
        public static function GetTypeByExternalId($externalId = \false)
        {
        }
        public static function SetCurUserMeetingSection($userMeetingSection)
        {
        }
        public static function CacheTime($time = \false)
        {
        }
        public static function _ParseHack(&$text, &$TextParser)
        {
        }
        public static function IsSocnetAdmin()
        {
        }
        public static function GetMaxDate()
        {
        }
        public static function GetMinDate()
        {
        }
        public static function GetDestinationUsers($codes, $fetchUsers = \false)
        {
        }
        public static function GetAttendeesMessage($cnt = 0)
        {
        }
        public static function GetMoreAttendeesMessage($cnt = 0)
        {
        }
        public static function GetFormatedDestination($codes = [])
        {
        }
        public static function GetFromToHtml($fromTs = \false, $toTs = \false, $skipTime = \false, $dtLength = 0, $forRrule = \false)
        {
        }
        public static function GetSocNetDestination($user_id = \false, $selected = [], $userList = [])
        {
        }
        public static function SaveUserTimezoneName($user, $tzName = '')
        {
        }
        public static function CheckOffsetForTimezone($timezone, $offset, $date = \false)
        {
        }
        public static function GetOffsetUTC($userId = \false, $dateTimestamp)
        {
        }
        public static function OnSocNetGroupDelete($groupId)
        {
        }
        /**
         * Handles last caldav activity from mobile devices
         *
         * @param \Bitrix\Main\Event $event Event.
         * @return null
         */
        public static function OnDavCalendarSync(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Saves date of last successful sync
         *
         * @param int $userId User Id
         * @param string $syncType Type of synchronization.
         * @return null
         */
        public static function SaveSyncDate($userId, $syncType)
        {
        }
        public static function SaveMultipleSyncDate($userId, $syncType, $sectionId)
        {
        }
        public static function OnExchangeCalendarSync(\Bitrix\Main\Event $event)
        {
        }
        public static function ClearSyncInfo($userId, $syncType)
        {
        }
        /**
         * Updates counter in left menu in b24, sets amount of requests for meeting for current user or
         * set of users
         *
         * @param int|array $users array of user's ids or user id as an int
         * @return null
         */
        public static function UpdateCounter($users = \false)
        {
        }
        // TODO: cache it!!!!!!
        private static function __tzsort($a, $b)
        {
        }
        private static function GetInstance()
        {
        }
        public static function IsIntranetEnabled()
        {
        }
        public static function IsSocNet()
        {
        }
        public static function GetCurUserId($refresh = \false)
        {
        }
        public static function GetSettings($params = [])
        {
        }
        public static function GetPathes($forSite = \false)
        {
        }
        public static function GetPathesList()
        {
        }
        public static function GetUserNameTemplate($fromSite = \true)
        {
        }
        public static function SetUserSettings($settings = [], $userId = \false)
        {
        }
        public static function GetUserSettings($userId = \false)
        {
        }
        public static function GetPermissions($Params = [])
        {
        }
        public static function GetPath($type = '', $ownerId = '', $hard = \false)
        {
        }
        public static function GetSiteId()
        {
        }
        public static function GetServerPath()
        {
        }
        public static function GetServerName()
        {
        }
        public static function GetStartUpEvent($eventId = \false)
        {
        }
        public static function Timestamp($date, $bRound = \true, $bTime = \true)
        {
        }
        public static function TSFormat($format = "FULL")
        {
        }
        public static function RoundTimestamp($ts)
        {
        }
        public static function IsPersonal($type = \false, $ownerId = \false, $userId = \false)
        {
        }
        public static function IsExchangeEnabled($userId = \false)
        {
        }
        public static function isGoogleApiEnabled()
        {
        }
        public static function IsCalDAVEnabled()
        {
        }
        public static function IsWebserviceEnabled()
        {
        }
        public static function IsExtranetEnabled()
        {
        }
        public static function IsAbsenceEnabled()
        {
        }
        public static function GetMeetingRoomList($params = [])
        {
        }
        public static function GetCurrentOffsetUTC($userId = \false)
        {
        }
        public static function GetOffset($userId = \false)
        {
        }
        public static function GetUserTimezoneName($user, $getDefault = \true)
        {
        }
        public static function GetUser($userId, $bPhoto = \false)
        {
        }
        public static function GetGoodTimezoneForOffset($offset)
        {
        }
        public static function GetTimezoneList()
        {
        }
        public static function GetUserName($user)
        {
        }
        public static function GetWeekStart()
        {
        }
        public static function InitExternalCalendarsSyncParams(&$JSConfig)
        {
        }
        public static function Date($timestamp, $bTime = \true, $bRound = \true, $bCutSeconds = \false)
        {
        }
        public static function DFormat($bTime = \true)
        {
        }
        public static function DateWithNewTime($timestampTime, $timestampDate)
        {
        }
        public static function GetSyncInfo($userId, $syncType)
        {
        }
        public static function GetCurUserMeetingSection($bCreate = \false)
        {
        }
        public static function GetMeetingSection($userId, $autoCreate = \false)
        {
        }
        public static function GetCrmSection($userId, $autoCreate = \false)
        {
        }
        public static function GetSectionList($params = [])
        {
        }
        public static function GetOwnerId()
        {
        }
        public static function GetEventList($params = [], &$arAttendees)
        {
        }
        public static function getTaskList($params = [])
        {
        }
        public static function CutZeroTime($date)
        {
        }
        public static function GetType()
        {
        }
        public static function GetAccessNames()
        {
        }
        function TrimTime($strTime)
        {
        }
        public static function SetSilentErrorMode($silentErrorMode = \true)
        {
        }
        public function GetId()
        {
        }
        public static function GetOriginalDate($originalDateTime, $instanceDateTime, $timeZone = \false, $format = \null)
        {
        }
        public static function getSectionListAvailableForUser($userId, $additionalSectionIdList = [])
        {
        }
        public static function setOwnerId($userId)
        {
        }
    }
    /**
     * Class COAuthCode
     *
     * @deprecated
     */
    class CCalendarUserSettings
    {
        private static $settings = array('view' => 'month', 'CalendarSelCont' => \false, 'SPCalendarSelCont' => \false, 'meetSection' => \false, 'crmSection' => \false, 'showDeclined' => \false, 'denyBusyInvitation' => \false, 'collapseOffHours' => 'Y', 'showWeekNumbers' => 'N', 'showTasks' => 'Y', 'showCompletedTasks' => 'N', 'syncPeriodPast' => 3, 'syncPeriodFuture' => 12);
        public static function Set($settings = array(), $userId = \false)
        {
        }
        public static function Get($userId = \false)
        {
        }
        public static function getFormSettings($formType, $userId = \false)
        {
        }
        public static function getTrackingUsers($userId = \false, $params = array())
        {
        }
        public static function setTrackingUsers($userId = \false, $value = array())
        {
        }
        public static function getTrackingGroups($userId = \false, $params = array())
        {
        }
        public static function setTrackingGroups($userId = \false, $value = array())
        {
        }
        public static function getHiddenSections($userId = \false)
        {
        }
    }
    class IWebService
    {
        // May be called by Event to collect CWebServiceDesc on configuring WS.Server
        function GetWebServiceDesc()
        {
        }
    }
    class CCalendarWebService extends \IWebService
    {
        var $arStatusValues = array('free' => 0, 'quest' => 1, 'busy' => 2, 'absent' => 3);
        var $arPriorityValues = array('low' => -1, 'normal' => 0, 'high' => 1);
        function __getFieldsDefinition()
        {
        }
        function __makeDateTime($ts = \null)
        {
        }
        function __makeTS($datetime = \null)
        {
        }
        function GetList($listName)
        {
        }
        function __getRow($event, $listName, &$last_change)
        {
        }
        function GetListItemChanges($listName, $viewFields = '', $since = '', $contains = '')
        {
        }
        function GetListItemChangesSinceToken($listName, $viewFields = '', $query = '', $rowLimit = 0, $changeToken = '')
        {
        }
        function UpdateListItems($listName, $updates)
        {
        }
        function GetWebServiceDesc()
        {
        }
        public static function ClearOutlookHtml($html)
        {
        }
    }
    class CCalendarLiveFeed
    {
        public static function AddEvent(&$arSocNetFeaturesSettings)
        {
        }
        public static function FormatEvent($arFields, $arParams, $bMail = \false)
        {
        }
        public static function OnSonetLogEntryMenuCreate($arLogEvent)
        {
        }
        // Sync comments from lifefeed to calendar event
        public static function AddComment_Calendar($arFields)
        {
        }
        public static function GetCommentUrl($arFields = [])
        {
        }
        public static function OnAfterSonetLogEntryAddComment($arSonetLogComment)
        {
        }
        public static function OnForumCommentIMNotify($entityType, $eventId, $comment)
        {
        }
        public static function OnAfterCommentAddBefore($entityType, $eventId, $arData)
        {
        }
        public static function OnAfterCommentAddAfter($entityType, $eventID, $arData, $logID = \false)
        {
        }
        public static function OnAfterCommentUpdateAfter($entityType, $eventID, $arData, $logID = \false)
        {
        }
        public static function SetCommentFileRights($arData, $logID)
        {
        }
        public static function EditCalendarEventEntry($entryFields = [], $userFieldData = [], $accessCodes = [], $params = [])
        {
        }
        // Called after creation or edition of calendar event
        public static function OnEditCalendarEventEntry($params)
        {
        }
        // Do delete from socialnetwork live feed here
        public static function OnDeleteCalendarEventEntry($eventId)
        {
        }
        public static function FixForumCommentURL($arData)
        {
        }
        public static function OnChangeMeetingStatusEventEntry($params)
        {
        }
    }
    class CCalendarConvert
    {
        private static $iblockTypes = array(), $iblockIds = array(), $settings = array(), $arIBTypes = array(), $arIBlocks = array(), $accessTasks, $start_time, $time_limit = 10, $userIblockId, $curSite, $bSkip = \false, $lastSite = \false, $lastPath = \false, $types;
        function ParseParams($lastPath = \false, $lastSite = \false)
        {
        }
        function ParseFile($file)
        {
        }
        function ParseStop($nextPath, $site)
        {
        }
        function CheckBreak()
        {
        }
        function FetchParams($content)
        {
        }
        public static function GetIblockTypes()
        {
        }
        function AddTypesFromIblockType()
        {
        }
        public static function SetModuleOption($paramName, $value)
        {
        }
        public static function Log($mess = '')
        {
        }
        public static function CreateSectionProperty($iblockId)
        {
        }
        public static function DropSectionProperty()
        {
        }
        public static function CreateElementProperty($iblockId)
        {
        }
        public static function ConvertEntity($ownerType, $ownerId, $sectionId, $iblockId, $createdBy)
        {
        }
        public static function DoConvertStep()
        {
        }
        public static function GetSettings()
        {
        }
        public static function GetOption($name = '', $default = \false)
        {
        }
        public static function SetOption($name = '', $value = \false, $serialize = \true)
        {
        }
    }
}
namespace Bitrix\Calendar\Internals {
    /**
     * EO_Event
     * @see \Bitrix\Calendar\Internals\EventTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Calendar\Internals\EO_Event setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getParentId()
     * @method \Bitrix\Calendar\Internals\EO_Event setParentId(\int|\Bitrix\Main\DB\SqlExpression $parentId)
     * @method bool hasParentId()
     * @method bool isParentIdFilled()
     * @method bool isParentIdChanged()
     * @method \int remindActualParentId()
     * @method \int requireParentId()
     * @method \Bitrix\Calendar\Internals\EO_Event resetParentId()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetParentId()
     * @method \int fillParentId()
     * @method \boolean getActive()
     * @method \Bitrix\Calendar\Internals\EO_Event setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Calendar\Internals\EO_Event resetActive()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetActive()
     * @method \boolean fillActive()
     * @method \boolean getDeleted()
     * @method \Bitrix\Calendar\Internals\EO_Event setDeleted(\boolean|\Bitrix\Main\DB\SqlExpression $deleted)
     * @method bool hasDeleted()
     * @method bool isDeletedFilled()
     * @method bool isDeletedChanged()
     * @method \boolean remindActualDeleted()
     * @method \boolean requireDeleted()
     * @method \Bitrix\Calendar\Internals\EO_Event resetDeleted()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetDeleted()
     * @method \boolean fillDeleted()
     * @method \string getCalType()
     * @method \Bitrix\Calendar\Internals\EO_Event setCalType(\string|\Bitrix\Main\DB\SqlExpression $calType)
     * @method bool hasCalType()
     * @method bool isCalTypeFilled()
     * @method bool isCalTypeChanged()
     * @method \string remindActualCalType()
     * @method \string requireCalType()
     * @method \Bitrix\Calendar\Internals\EO_Event resetCalType()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetCalType()
     * @method \string fillCalType()
     * @method \int getOwnerId()
     * @method \Bitrix\Calendar\Internals\EO_Event setOwnerId(\int|\Bitrix\Main\DB\SqlExpression $ownerId)
     * @method bool hasOwnerId()
     * @method bool isOwnerIdFilled()
     * @method bool isOwnerIdChanged()
     * @method \int remindActualOwnerId()
     * @method \int requireOwnerId()
     * @method \Bitrix\Calendar\Internals\EO_Event resetOwnerId()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetOwnerId()
     * @method \int fillOwnerId()
     * @method \string getName()
     * @method \Bitrix\Calendar\Internals\EO_Event setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Calendar\Internals\EO_Event resetName()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetName()
     * @method \string fillName()
     * @method \Bitrix\Main\Type\DateTime getDateFrom()
     * @method \Bitrix\Calendar\Internals\EO_Event setDateFrom(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateFrom)
     * @method bool hasDateFrom()
     * @method bool isDateFromFilled()
     * @method bool isDateFromChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateFrom()
     * @method \Bitrix\Main\Type\DateTime requireDateFrom()
     * @method \Bitrix\Calendar\Internals\EO_Event resetDateFrom()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetDateFrom()
     * @method \Bitrix\Main\Type\DateTime fillDateFrom()
     * @method \Bitrix\Main\Type\DateTime getDateTo()
     * @method \Bitrix\Calendar\Internals\EO_Event setDateTo(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateTo)
     * @method bool hasDateTo()
     * @method bool isDateToFilled()
     * @method bool isDateToChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateTo()
     * @method \Bitrix\Main\Type\DateTime requireDateTo()
     * @method \Bitrix\Calendar\Internals\EO_Event resetDateTo()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetDateTo()
     * @method \Bitrix\Main\Type\DateTime fillDateTo()
     * @method \string getTzFrom()
     * @method \Bitrix\Calendar\Internals\EO_Event setTzFrom(\string|\Bitrix\Main\DB\SqlExpression $tzFrom)
     * @method bool hasTzFrom()
     * @method bool isTzFromFilled()
     * @method bool isTzFromChanged()
     * @method \string remindActualTzFrom()
     * @method \string requireTzFrom()
     * @method \Bitrix\Calendar\Internals\EO_Event resetTzFrom()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetTzFrom()
     * @method \string fillTzFrom()
     * @method \string getTzTo()
     * @method \Bitrix\Calendar\Internals\EO_Event setTzTo(\string|\Bitrix\Main\DB\SqlExpression $tzTo)
     * @method bool hasTzTo()
     * @method bool isTzToFilled()
     * @method bool isTzToChanged()
     * @method \string remindActualTzTo()
     * @method \string requireTzTo()
     * @method \Bitrix\Calendar\Internals\EO_Event resetTzTo()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetTzTo()
     * @method \string fillTzTo()
     * @method \int getTzOffsetFrom()
     * @method \Bitrix\Calendar\Internals\EO_Event setTzOffsetFrom(\int|\Bitrix\Main\DB\SqlExpression $tzOffsetFrom)
     * @method bool hasTzOffsetFrom()
     * @method bool isTzOffsetFromFilled()
     * @method bool isTzOffsetFromChanged()
     * @method \int remindActualTzOffsetFrom()
     * @method \int requireTzOffsetFrom()
     * @method \Bitrix\Calendar\Internals\EO_Event resetTzOffsetFrom()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetTzOffsetFrom()
     * @method \int fillTzOffsetFrom()
     * @method \int getTzOffsetTo()
     * @method \Bitrix\Calendar\Internals\EO_Event setTzOffsetTo(\int|\Bitrix\Main\DB\SqlExpression $tzOffsetTo)
     * @method bool hasTzOffsetTo()
     * @method bool isTzOffsetToFilled()
     * @method bool isTzOffsetToChanged()
     * @method \int remindActualTzOffsetTo()
     * @method \int requireTzOffsetTo()
     * @method \Bitrix\Calendar\Internals\EO_Event resetTzOffsetTo()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetTzOffsetTo()
     * @method \int fillTzOffsetTo()
     * @method \int getDateFromTsUtc()
     * @method \Bitrix\Calendar\Internals\EO_Event setDateFromTsUtc(\int|\Bitrix\Main\DB\SqlExpression $dateFromTsUtc)
     * @method bool hasDateFromTsUtc()
     * @method bool isDateFromTsUtcFilled()
     * @method bool isDateFromTsUtcChanged()
     * @method \int remindActualDateFromTsUtc()
     * @method \int requireDateFromTsUtc()
     * @method \Bitrix\Calendar\Internals\EO_Event resetDateFromTsUtc()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetDateFromTsUtc()
     * @method \int fillDateFromTsUtc()
     * @method \int getDateToTsUtc()
     * @method \Bitrix\Calendar\Internals\EO_Event setDateToTsUtc(\int|\Bitrix\Main\DB\SqlExpression $dateToTsUtc)
     * @method bool hasDateToTsUtc()
     * @method bool isDateToTsUtcFilled()
     * @method bool isDateToTsUtcChanged()
     * @method \int remindActualDateToTsUtc()
     * @method \int requireDateToTsUtc()
     * @method \Bitrix\Calendar\Internals\EO_Event resetDateToTsUtc()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetDateToTsUtc()
     * @method \int fillDateToTsUtc()
     * @method \boolean getDtSkipTime()
     * @method \Bitrix\Calendar\Internals\EO_Event setDtSkipTime(\boolean|\Bitrix\Main\DB\SqlExpression $dtSkipTime)
     * @method bool hasDtSkipTime()
     * @method bool isDtSkipTimeFilled()
     * @method bool isDtSkipTimeChanged()
     * @method \boolean remindActualDtSkipTime()
     * @method \boolean requireDtSkipTime()
     * @method \Bitrix\Calendar\Internals\EO_Event resetDtSkipTime()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetDtSkipTime()
     * @method \boolean fillDtSkipTime()
     * @method \int getDtLength()
     * @method \Bitrix\Calendar\Internals\EO_Event setDtLength(\int|\Bitrix\Main\DB\SqlExpression $dtLength)
     * @method bool hasDtLength()
     * @method bool isDtLengthFilled()
     * @method bool isDtLengthChanged()
     * @method \int remindActualDtLength()
     * @method \int requireDtLength()
     * @method \Bitrix\Calendar\Internals\EO_Event resetDtLength()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetDtLength()
     * @method \int fillDtLength()
     * @method \int getCreatedBy()
     * @method \Bitrix\Calendar\Internals\EO_Event setCreatedBy(\int|\Bitrix\Main\DB\SqlExpression $createdBy)
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \int remindActualCreatedBy()
     * @method \int requireCreatedBy()
     * @method \Bitrix\Calendar\Internals\EO_Event resetCreatedBy()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetCreatedBy()
     * @method \int fillCreatedBy()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Calendar\Internals\EO_Event setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Calendar\Internals\EO_Event resetDateCreate()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Calendar\Internals\EO_Event setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Calendar\Internals\EO_Event resetTimestampX()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \string getDescription()
     * @method \Bitrix\Calendar\Internals\EO_Event setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Calendar\Internals\EO_Event resetDescription()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetDescription()
     * @method \string fillDescription()
     * @method \string getPrivateEvent()
     * @method \Bitrix\Calendar\Internals\EO_Event setPrivateEvent(\string|\Bitrix\Main\DB\SqlExpression $privateEvent)
     * @method bool hasPrivateEvent()
     * @method bool isPrivateEventFilled()
     * @method bool isPrivateEventChanged()
     * @method \string remindActualPrivateEvent()
     * @method \string requirePrivateEvent()
     * @method \Bitrix\Calendar\Internals\EO_Event resetPrivateEvent()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetPrivateEvent()
     * @method \string fillPrivateEvent()
     * @method \string getAccessibility()
     * @method \Bitrix\Calendar\Internals\EO_Event setAccessibility(\string|\Bitrix\Main\DB\SqlExpression $accessibility)
     * @method bool hasAccessibility()
     * @method bool isAccessibilityFilled()
     * @method bool isAccessibilityChanged()
     * @method \string remindActualAccessibility()
     * @method \string requireAccessibility()
     * @method \Bitrix\Calendar\Internals\EO_Event resetAccessibility()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetAccessibility()
     * @method \string fillAccessibility()
     * @method \string getImportance()
     * @method \Bitrix\Calendar\Internals\EO_Event setImportance(\string|\Bitrix\Main\DB\SqlExpression $importance)
     * @method bool hasImportance()
     * @method bool isImportanceFilled()
     * @method bool isImportanceChanged()
     * @method \string remindActualImportance()
     * @method \string requireImportance()
     * @method \Bitrix\Calendar\Internals\EO_Event resetImportance()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetImportance()
     * @method \string fillImportance()
     * @method \string getIsMeeting()
     * @method \Bitrix\Calendar\Internals\EO_Event setIsMeeting(\string|\Bitrix\Main\DB\SqlExpression $isMeeting)
     * @method bool hasIsMeeting()
     * @method bool isIsMeetingFilled()
     * @method bool isIsMeetingChanged()
     * @method \string remindActualIsMeeting()
     * @method \string requireIsMeeting()
     * @method \Bitrix\Calendar\Internals\EO_Event resetIsMeeting()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetIsMeeting()
     * @method \string fillIsMeeting()
     * @method \string getMeetingStatus()
     * @method \Bitrix\Calendar\Internals\EO_Event setMeetingStatus(\string|\Bitrix\Main\DB\SqlExpression $meetingStatus)
     * @method bool hasMeetingStatus()
     * @method bool isMeetingStatusFilled()
     * @method bool isMeetingStatusChanged()
     * @method \string remindActualMeetingStatus()
     * @method \string requireMeetingStatus()
     * @method \Bitrix\Calendar\Internals\EO_Event resetMeetingStatus()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetMeetingStatus()
     * @method \string fillMeetingStatus()
     * @method \int getMeetingHost()
     * @method \Bitrix\Calendar\Internals\EO_Event setMeetingHost(\int|\Bitrix\Main\DB\SqlExpression $meetingHost)
     * @method bool hasMeetingHost()
     * @method bool isMeetingHostFilled()
     * @method bool isMeetingHostChanged()
     * @method \int remindActualMeetingHost()
     * @method \int requireMeetingHost()
     * @method \Bitrix\Calendar\Internals\EO_Event resetMeetingHost()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetMeetingHost()
     * @method \int fillMeetingHost()
     * @method \string getMeeting()
     * @method \Bitrix\Calendar\Internals\EO_Event setMeeting(\string|\Bitrix\Main\DB\SqlExpression $meeting)
     * @method bool hasMeeting()
     * @method bool isMeetingFilled()
     * @method bool isMeetingChanged()
     * @method \string remindActualMeeting()
     * @method \string requireMeeting()
     * @method \Bitrix\Calendar\Internals\EO_Event resetMeeting()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetMeeting()
     * @method \string fillMeeting()
     * @method \string getLocation()
     * @method \Bitrix\Calendar\Internals\EO_Event setLocation(\string|\Bitrix\Main\DB\SqlExpression $location)
     * @method bool hasLocation()
     * @method bool isLocationFilled()
     * @method bool isLocationChanged()
     * @method \string remindActualLocation()
     * @method \string requireLocation()
     * @method \Bitrix\Calendar\Internals\EO_Event resetLocation()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetLocation()
     * @method \string fillLocation()
     * @method \string getRemind()
     * @method \Bitrix\Calendar\Internals\EO_Event setRemind(\string|\Bitrix\Main\DB\SqlExpression $remind)
     * @method bool hasRemind()
     * @method bool isRemindFilled()
     * @method bool isRemindChanged()
     * @method \string remindActualRemind()
     * @method \string requireRemind()
     * @method \Bitrix\Calendar\Internals\EO_Event resetRemind()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetRemind()
     * @method \string fillRemind()
     * @method \string getColor()
     * @method \Bitrix\Calendar\Internals\EO_Event setColor(\string|\Bitrix\Main\DB\SqlExpression $color)
     * @method bool hasColor()
     * @method bool isColorFilled()
     * @method bool isColorChanged()
     * @method \string remindActualColor()
     * @method \string requireColor()
     * @method \Bitrix\Calendar\Internals\EO_Event resetColor()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetColor()
     * @method \string fillColor()
     * @method \string getTextColor()
     * @method \Bitrix\Calendar\Internals\EO_Event setTextColor(\string|\Bitrix\Main\DB\SqlExpression $textColor)
     * @method bool hasTextColor()
     * @method bool isTextColorFilled()
     * @method bool isTextColorChanged()
     * @method \string remindActualTextColor()
     * @method \string requireTextColor()
     * @method \Bitrix\Calendar\Internals\EO_Event resetTextColor()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetTextColor()
     * @method \string fillTextColor()
     * @method \string getRrule()
     * @method \Bitrix\Calendar\Internals\EO_Event setRrule(\string|\Bitrix\Main\DB\SqlExpression $rrule)
     * @method bool hasRrule()
     * @method bool isRruleFilled()
     * @method bool isRruleChanged()
     * @method \string remindActualRrule()
     * @method \string requireRrule()
     * @method \Bitrix\Calendar\Internals\EO_Event resetRrule()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetRrule()
     * @method \string fillRrule()
     * @method \string getExdate()
     * @method \Bitrix\Calendar\Internals\EO_Event setExdate(\string|\Bitrix\Main\DB\SqlExpression $exdate)
     * @method bool hasExdate()
     * @method bool isExdateFilled()
     * @method bool isExdateChanged()
     * @method \string remindActualExdate()
     * @method \string requireExdate()
     * @method \Bitrix\Calendar\Internals\EO_Event resetExdate()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetExdate()
     * @method \string fillExdate()
     * @method \string getDavXmlId()
     * @method \Bitrix\Calendar\Internals\EO_Event setDavXmlId(\string|\Bitrix\Main\DB\SqlExpression $davXmlId)
     * @method bool hasDavXmlId()
     * @method bool isDavXmlIdFilled()
     * @method bool isDavXmlIdChanged()
     * @method \string remindActualDavXmlId()
     * @method \string requireDavXmlId()
     * @method \Bitrix\Calendar\Internals\EO_Event resetDavXmlId()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetDavXmlId()
     * @method \string fillDavXmlId()
     * @method \string getDavExchLabel()
     * @method \Bitrix\Calendar\Internals\EO_Event setDavExchLabel(\string|\Bitrix\Main\DB\SqlExpression $davExchLabel)
     * @method bool hasDavExchLabel()
     * @method bool isDavExchLabelFilled()
     * @method bool isDavExchLabelChanged()
     * @method \string remindActualDavExchLabel()
     * @method \string requireDavExchLabel()
     * @method \Bitrix\Calendar\Internals\EO_Event resetDavExchLabel()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetDavExchLabel()
     * @method \string fillDavExchLabel()
     * @method \string getVersion()
     * @method \Bitrix\Calendar\Internals\EO_Event setVersion(\string|\Bitrix\Main\DB\SqlExpression $version)
     * @method bool hasVersion()
     * @method bool isVersionFilled()
     * @method bool isVersionChanged()
     * @method \string remindActualVersion()
     * @method \string requireVersion()
     * @method \Bitrix\Calendar\Internals\EO_Event resetVersion()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetVersion()
     * @method \string fillVersion()
     * @method \string getAttendeesCodes()
     * @method \Bitrix\Calendar\Internals\EO_Event setAttendeesCodes(\string|\Bitrix\Main\DB\SqlExpression $attendeesCodes)
     * @method bool hasAttendeesCodes()
     * @method bool isAttendeesCodesFilled()
     * @method bool isAttendeesCodesChanged()
     * @method \string remindActualAttendeesCodes()
     * @method \string requireAttendeesCodes()
     * @method \Bitrix\Calendar\Internals\EO_Event resetAttendeesCodes()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetAttendeesCodes()
     * @method \string fillAttendeesCodes()
     * @method \int getRecurrenceId()
     * @method \Bitrix\Calendar\Internals\EO_Event setRecurrenceId(\int|\Bitrix\Main\DB\SqlExpression $recurrenceId)
     * @method bool hasRecurrenceId()
     * @method bool isRecurrenceIdFilled()
     * @method bool isRecurrenceIdChanged()
     * @method \int remindActualRecurrenceId()
     * @method \int requireRecurrenceId()
     * @method \Bitrix\Calendar\Internals\EO_Event resetRecurrenceId()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetRecurrenceId()
     * @method \int fillRecurrenceId()
     * @method \int getRelations()
     * @method \Bitrix\Calendar\Internals\EO_Event setRelations(\int|\Bitrix\Main\DB\SqlExpression $relations)
     * @method bool hasRelations()
     * @method bool isRelationsFilled()
     * @method bool isRelationsChanged()
     * @method \int remindActualRelations()
     * @method \int requireRelations()
     * @method \Bitrix\Calendar\Internals\EO_Event resetRelations()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetRelations()
     * @method \int fillRelations()
     * @method \string getSearchableContent()
     * @method \Bitrix\Calendar\Internals\EO_Event setSearchableContent(\string|\Bitrix\Main\DB\SqlExpression $searchableContent)
     * @method bool hasSearchableContent()
     * @method bool isSearchableContentFilled()
     * @method bool isSearchableContentChanged()
     * @method \string remindActualSearchableContent()
     * @method \string requireSearchableContent()
     * @method \Bitrix\Calendar\Internals\EO_Event resetSearchableContent()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetSearchableContent()
     * @method \string fillSearchableContent()
     * @method \int getSectionId()
     * @method \Bitrix\Calendar\Internals\EO_Event setSectionId(\int|\Bitrix\Main\DB\SqlExpression $sectionId)
     * @method bool hasSectionId()
     * @method bool isSectionIdFilled()
     * @method bool isSectionIdChanged()
     * @method \int remindActualSectionId()
     * @method \int requireSectionId()
     * @method \Bitrix\Calendar\Internals\EO_Event resetSectionId()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetSectionId()
     * @method \int fillSectionId()
     * @method \string getGEventId()
     * @method \Bitrix\Calendar\Internals\EO_Event setGEventId(\string|\Bitrix\Main\DB\SqlExpression $gEventId)
     * @method bool hasGEventId()
     * @method bool isGEventIdFilled()
     * @method bool isGEventIdChanged()
     * @method \string remindActualGEventId()
     * @method \string requireGEventId()
     * @method \Bitrix\Calendar\Internals\EO_Event resetGEventId()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetGEventId()
     * @method \string fillGEventId()
     * @method \Bitrix\Main\Type\DateTime getOriginalDateFrom()
     * @method \Bitrix\Calendar\Internals\EO_Event setOriginalDateFrom(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $originalDateFrom)
     * @method bool hasOriginalDateFrom()
     * @method bool isOriginalDateFromFilled()
     * @method bool isOriginalDateFromChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualOriginalDateFrom()
     * @method \Bitrix\Main\Type\DateTime requireOriginalDateFrom()
     * @method \Bitrix\Calendar\Internals\EO_Event resetOriginalDateFrom()
     * @method \Bitrix\Calendar\Internals\EO_Event unsetOriginalDateFrom()
     * @method \Bitrix\Main\Type\DateTime fillOriginalDateFrom()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Calendar\Internals\EO_Event set($fieldName, $value)
     * @method \Bitrix\Calendar\Internals\EO_Event reset($fieldName)
     * @method \Bitrix\Calendar\Internals\EO_Event unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Calendar\Internals\EO_Event wakeUp($data)
     */
    class EO_Event
    {
        /* @var \Bitrix\Calendar\Internals\EventTable */
        public static $dataClass = '\\Bitrix\\Calendar\\Internals\\EventTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Event_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getParentIdList()
     * @method \int[] fillParentId()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \boolean[] getDeletedList()
     * @method \boolean[] fillDeleted()
     * @method \string[] getCalTypeList()
     * @method \string[] fillCalType()
     * @method \int[] getOwnerIdList()
     * @method \int[] fillOwnerId()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \Bitrix\Main\Type\DateTime[] getDateFromList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateFrom()
     * @method \Bitrix\Main\Type\DateTime[] getDateToList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateTo()
     * @method \string[] getTzFromList()
     * @method \string[] fillTzFrom()
     * @method \string[] getTzToList()
     * @method \string[] fillTzTo()
     * @method \int[] getTzOffsetFromList()
     * @method \int[] fillTzOffsetFrom()
     * @method \int[] getTzOffsetToList()
     * @method \int[] fillTzOffsetTo()
     * @method \int[] getDateFromTsUtcList()
     * @method \int[] fillDateFromTsUtc()
     * @method \int[] getDateToTsUtcList()
     * @method \int[] fillDateToTsUtc()
     * @method \boolean[] getDtSkipTimeList()
     * @method \boolean[] fillDtSkipTime()
     * @method \int[] getDtLengthList()
     * @method \int[] fillDtLength()
     * @method \int[] getCreatedByList()
     * @method \int[] fillCreatedBy()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getPrivateEventList()
     * @method \string[] fillPrivateEvent()
     * @method \string[] getAccessibilityList()
     * @method \string[] fillAccessibility()
     * @method \string[] getImportanceList()
     * @method \string[] fillImportance()
     * @method \string[] getIsMeetingList()
     * @method \string[] fillIsMeeting()
     * @method \string[] getMeetingStatusList()
     * @method \string[] fillMeetingStatus()
     * @method \int[] getMeetingHostList()
     * @method \int[] fillMeetingHost()
     * @method \string[] getMeetingList()
     * @method \string[] fillMeeting()
     * @method \string[] getLocationList()
     * @method \string[] fillLocation()
     * @method \string[] getRemindList()
     * @method \string[] fillRemind()
     * @method \string[] getColorList()
     * @method \string[] fillColor()
     * @method \string[] getTextColorList()
     * @method \string[] fillTextColor()
     * @method \string[] getRruleList()
     * @method \string[] fillRrule()
     * @method \string[] getExdateList()
     * @method \string[] fillExdate()
     * @method \string[] getDavXmlIdList()
     * @method \string[] fillDavXmlId()
     * @method \string[] getDavExchLabelList()
     * @method \string[] fillDavExchLabel()
     * @method \string[] getVersionList()
     * @method \string[] fillVersion()
     * @method \string[] getAttendeesCodesList()
     * @method \string[] fillAttendeesCodes()
     * @method \int[] getRecurrenceIdList()
     * @method \int[] fillRecurrenceId()
     * @method \int[] getRelationsList()
     * @method \int[] fillRelations()
     * @method \string[] getSearchableContentList()
     * @method \string[] fillSearchableContent()
     * @method \int[] getSectionIdList()
     * @method \int[] fillSectionId()
     * @method \string[] getGEventIdList()
     * @method \string[] fillGEventId()
     * @method \Bitrix\Main\Type\DateTime[] getOriginalDateFromList()
     * @method \Bitrix\Main\Type\DateTime[] fillOriginalDateFrom()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Calendar\Internals\EO_Event $object)
     * @method bool has(\Bitrix\Calendar\Internals\EO_Event $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Calendar\Internals\EO_Event getByPrimary($primary)
     * @method \Bitrix\Calendar\Internals\EO_Event[] getAll()
     * @method bool remove(\Bitrix\Calendar\Internals\EO_Event $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Calendar\Internals\EO_Event_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Calendar\Internals\EO_Event current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Event_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Calendar\Internals\EventTable */
        public static $dataClass = '\\Bitrix\\Calendar\\Internals\\EventTable';
    }
    /**
     * @method static EO_Event_Query query()
     * @method static EO_Event_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Event_Result getById($id)
     * @method static EO_Event_Result getList(array $parameters = array())
     * @method static EO_Event_Entity getEntity()
     * @method static \Bitrix\Calendar\Internals\EO_Event createObject($setDefaultValues = true)
     * @method static \Bitrix\Calendar\Internals\EO_Event_Collection createCollection()
     * @method static \Bitrix\Calendar\Internals\EO_Event wakeUpObject($row)
     * @method static \Bitrix\Calendar\Internals\EO_Event_Collection wakeUpCollection($rows)
     */
    class EventTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Event_Result exec()
     * @method \Bitrix\Calendar\Internals\EO_Event fetchObject()
     * @method \Bitrix\Calendar\Internals\EO_Event_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Event_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Calendar\Internals\EO_Event fetchObject()
     * @method \Bitrix\Calendar\Internals\EO_Event_Collection fetchCollection()
     */
    class EO_Event_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Calendar\Internals\EO_Event createObject($setDefaultValues = true)
     * @method \Bitrix\Calendar\Internals\EO_Event_Collection createCollection()
     * @method \Bitrix\Calendar\Internals\EO_Event wakeUpObject($row)
     * @method \Bitrix\Calendar\Internals\EO_Event_Collection wakeUpCollection($rows)
     */
    class EO_Event_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Resource
     * @see \Bitrix\Calendar\Internals\ResourceTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Calendar\Internals\EO_Resource setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getEventId()
     * @method \Bitrix\Calendar\Internals\EO_Resource setEventId(\int|\Bitrix\Main\DB\SqlExpression $eventId)
     * @method bool hasEventId()
     * @method bool isEventIdFilled()
     * @method bool isEventIdChanged()
     * @method \int remindActualEventId()
     * @method \int requireEventId()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetEventId()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetEventId()
     * @method \int fillEventId()
     * @method \string getCalType()
     * @method \Bitrix\Calendar\Internals\EO_Resource setCalType(\string|\Bitrix\Main\DB\SqlExpression $calType)
     * @method bool hasCalType()
     * @method bool isCalTypeFilled()
     * @method bool isCalTypeChanged()
     * @method \string remindActualCalType()
     * @method \string requireCalType()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetCalType()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetCalType()
     * @method \string fillCalType()
     * @method \int getResourceId()
     * @method \Bitrix\Calendar\Internals\EO_Resource setResourceId(\int|\Bitrix\Main\DB\SqlExpression $resourceId)
     * @method bool hasResourceId()
     * @method bool isResourceIdFilled()
     * @method bool isResourceIdChanged()
     * @method \int remindActualResourceId()
     * @method \int requireResourceId()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetResourceId()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetResourceId()
     * @method \int fillResourceId()
     * @method \string getParentType()
     * @method \Bitrix\Calendar\Internals\EO_Resource setParentType(\string|\Bitrix\Main\DB\SqlExpression $parentType)
     * @method bool hasParentType()
     * @method bool isParentTypeFilled()
     * @method bool isParentTypeChanged()
     * @method \string remindActualParentType()
     * @method \string requireParentType()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetParentType()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetParentType()
     * @method \string fillParentType()
     * @method \int getParentId()
     * @method \Bitrix\Calendar\Internals\EO_Resource setParentId(\int|\Bitrix\Main\DB\SqlExpression $parentId)
     * @method bool hasParentId()
     * @method bool isParentIdFilled()
     * @method bool isParentIdChanged()
     * @method \int remindActualParentId()
     * @method \int requireParentId()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetParentId()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetParentId()
     * @method \int fillParentId()
     * @method \int getUfId()
     * @method \Bitrix\Calendar\Internals\EO_Resource setUfId(\int|\Bitrix\Main\DB\SqlExpression $ufId)
     * @method bool hasUfId()
     * @method bool isUfIdFilled()
     * @method bool isUfIdChanged()
     * @method \int remindActualUfId()
     * @method \int requireUfId()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetUfId()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetUfId()
     * @method \int fillUfId()
     * @method \Bitrix\Main\Type\DateTime getDateFromUtc()
     * @method \Bitrix\Calendar\Internals\EO_Resource setDateFromUtc(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateFromUtc)
     * @method bool hasDateFromUtc()
     * @method bool isDateFromUtcFilled()
     * @method bool isDateFromUtcChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateFromUtc()
     * @method \Bitrix\Main\Type\DateTime requireDateFromUtc()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetDateFromUtc()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetDateFromUtc()
     * @method \Bitrix\Main\Type\DateTime fillDateFromUtc()
     * @method \Bitrix\Main\Type\DateTime getDateToUtc()
     * @method \Bitrix\Calendar\Internals\EO_Resource setDateToUtc(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateToUtc)
     * @method bool hasDateToUtc()
     * @method bool isDateToUtcFilled()
     * @method bool isDateToUtcChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateToUtc()
     * @method \Bitrix\Main\Type\DateTime requireDateToUtc()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetDateToUtc()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetDateToUtc()
     * @method \Bitrix\Main\Type\DateTime fillDateToUtc()
     * @method \Bitrix\Main\Type\DateTime getDateFrom()
     * @method \Bitrix\Calendar\Internals\EO_Resource setDateFrom(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateFrom)
     * @method bool hasDateFrom()
     * @method bool isDateFromFilled()
     * @method bool isDateFromChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateFrom()
     * @method \Bitrix\Main\Type\DateTime requireDateFrom()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetDateFrom()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetDateFrom()
     * @method \Bitrix\Main\Type\DateTime fillDateFrom()
     * @method \Bitrix\Main\Type\DateTime getDateTo()
     * @method \Bitrix\Calendar\Internals\EO_Resource setDateTo(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateTo)
     * @method bool hasDateTo()
     * @method bool isDateToFilled()
     * @method bool isDateToChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateTo()
     * @method \Bitrix\Main\Type\DateTime requireDateTo()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetDateTo()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetDateTo()
     * @method \Bitrix\Main\Type\DateTime fillDateTo()
     * @method \int getDuration()
     * @method \Bitrix\Calendar\Internals\EO_Resource setDuration(\int|\Bitrix\Main\DB\SqlExpression $duration)
     * @method bool hasDuration()
     * @method bool isDurationFilled()
     * @method bool isDurationChanged()
     * @method \int remindActualDuration()
     * @method \int requireDuration()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetDuration()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetDuration()
     * @method \int fillDuration()
     * @method \string getSkipTime()
     * @method \Bitrix\Calendar\Internals\EO_Resource setSkipTime(\string|\Bitrix\Main\DB\SqlExpression $skipTime)
     * @method bool hasSkipTime()
     * @method bool isSkipTimeFilled()
     * @method bool isSkipTimeChanged()
     * @method \string remindActualSkipTime()
     * @method \string requireSkipTime()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetSkipTime()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetSkipTime()
     * @method \string fillSkipTime()
     * @method \string getTzFrom()
     * @method \Bitrix\Calendar\Internals\EO_Resource setTzFrom(\string|\Bitrix\Main\DB\SqlExpression $tzFrom)
     * @method bool hasTzFrom()
     * @method bool isTzFromFilled()
     * @method bool isTzFromChanged()
     * @method \string remindActualTzFrom()
     * @method \string requireTzFrom()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetTzFrom()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetTzFrom()
     * @method \string fillTzFrom()
     * @method \string getTzTo()
     * @method \Bitrix\Calendar\Internals\EO_Resource setTzTo(\string|\Bitrix\Main\DB\SqlExpression $tzTo)
     * @method bool hasTzTo()
     * @method bool isTzToFilled()
     * @method bool isTzToChanged()
     * @method \string remindActualTzTo()
     * @method \string requireTzTo()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetTzTo()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetTzTo()
     * @method \string fillTzTo()
     * @method \int getTzOffsetFrom()
     * @method \Bitrix\Calendar\Internals\EO_Resource setTzOffsetFrom(\int|\Bitrix\Main\DB\SqlExpression $tzOffsetFrom)
     * @method bool hasTzOffsetFrom()
     * @method bool isTzOffsetFromFilled()
     * @method bool isTzOffsetFromChanged()
     * @method \int remindActualTzOffsetFrom()
     * @method \int requireTzOffsetFrom()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetTzOffsetFrom()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetTzOffsetFrom()
     * @method \int fillTzOffsetFrom()
     * @method \int getTzOffsetTo()
     * @method \Bitrix\Calendar\Internals\EO_Resource setTzOffsetTo(\int|\Bitrix\Main\DB\SqlExpression $tzOffsetTo)
     * @method bool hasTzOffsetTo()
     * @method bool isTzOffsetToFilled()
     * @method bool isTzOffsetToChanged()
     * @method \int remindActualTzOffsetTo()
     * @method \int requireTzOffsetTo()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetTzOffsetTo()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetTzOffsetTo()
     * @method \int fillTzOffsetTo()
     * @method \int getCreatedBy()
     * @method \Bitrix\Calendar\Internals\EO_Resource setCreatedBy(\int|\Bitrix\Main\DB\SqlExpression $createdBy)
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \int remindActualCreatedBy()
     * @method \int requireCreatedBy()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetCreatedBy()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetCreatedBy()
     * @method \int fillCreatedBy()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Calendar\Internals\EO_Resource setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetDateCreate()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Calendar\Internals\EO_Resource setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetTimestampX()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \string getServiceName()
     * @method \Bitrix\Calendar\Internals\EO_Resource setServiceName(\string|\Bitrix\Main\DB\SqlExpression $serviceName)
     * @method bool hasServiceName()
     * @method bool isServiceNameFilled()
     * @method bool isServiceNameChanged()
     * @method \string remindActualServiceName()
     * @method \string requireServiceName()
     * @method \Bitrix\Calendar\Internals\EO_Resource resetServiceName()
     * @method \Bitrix\Calendar\Internals\EO_Resource unsetServiceName()
     * @method \string fillServiceName()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Calendar\Internals\EO_Resource set($fieldName, $value)
     * @method \Bitrix\Calendar\Internals\EO_Resource reset($fieldName)
     * @method \Bitrix\Calendar\Internals\EO_Resource unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Calendar\Internals\EO_Resource wakeUp($data)
     */
    class EO_Resource
    {
        /* @var \Bitrix\Calendar\Internals\ResourceTable */
        public static $dataClass = '\\Bitrix\\Calendar\\Internals\\ResourceTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Resource_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getEventIdList()
     * @method \int[] fillEventId()
     * @method \string[] getCalTypeList()
     * @method \string[] fillCalType()
     * @method \int[] getResourceIdList()
     * @method \int[] fillResourceId()
     * @method \string[] getParentTypeList()
     * @method \string[] fillParentType()
     * @method \int[] getParentIdList()
     * @method \int[] fillParentId()
     * @method \int[] getUfIdList()
     * @method \int[] fillUfId()
     * @method \Bitrix\Main\Type\DateTime[] getDateFromUtcList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateFromUtc()
     * @method \Bitrix\Main\Type\DateTime[] getDateToUtcList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateToUtc()
     * @method \Bitrix\Main\Type\DateTime[] getDateFromList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateFrom()
     * @method \Bitrix\Main\Type\DateTime[] getDateToList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateTo()
     * @method \int[] getDurationList()
     * @method \int[] fillDuration()
     * @method \string[] getSkipTimeList()
     * @method \string[] fillSkipTime()
     * @method \string[] getTzFromList()
     * @method \string[] fillTzFrom()
     * @method \string[] getTzToList()
     * @method \string[] fillTzTo()
     * @method \int[] getTzOffsetFromList()
     * @method \int[] fillTzOffsetFrom()
     * @method \int[] getTzOffsetToList()
     * @method \int[] fillTzOffsetTo()
     * @method \int[] getCreatedByList()
     * @method \int[] fillCreatedBy()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \string[] getServiceNameList()
     * @method \string[] fillServiceName()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Calendar\Internals\EO_Resource $object)
     * @method bool has(\Bitrix\Calendar\Internals\EO_Resource $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Calendar\Internals\EO_Resource getByPrimary($primary)
     * @method \Bitrix\Calendar\Internals\EO_Resource[] getAll()
     * @method bool remove(\Bitrix\Calendar\Internals\EO_Resource $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Calendar\Internals\EO_Resource_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Calendar\Internals\EO_Resource current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Resource_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Calendar\Internals\ResourceTable */
        public static $dataClass = '\\Bitrix\\Calendar\\Internals\\ResourceTable';
    }
    /**
     * @method static EO_Resource_Query query()
     * @method static EO_Resource_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Resource_Result getById($id)
     * @method static EO_Resource_Result getList(array $parameters = array())
     * @method static EO_Resource_Entity getEntity()
     * @method static \Bitrix\Calendar\Internals\EO_Resource createObject($setDefaultValues = true)
     * @method static \Bitrix\Calendar\Internals\EO_Resource_Collection createCollection()
     * @method static \Bitrix\Calendar\Internals\EO_Resource wakeUpObject($row)
     * @method static \Bitrix\Calendar\Internals\EO_Resource_Collection wakeUpCollection($rows)
     */
    class ResourceTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Resource_Result exec()
     * @method \Bitrix\Calendar\Internals\EO_Resource fetchObject()
     * @method \Bitrix\Calendar\Internals\EO_Resource_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Resource_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Calendar\Internals\EO_Resource fetchObject()
     * @method \Bitrix\Calendar\Internals\EO_Resource_Collection fetchCollection()
     */
    class EO_Resource_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Calendar\Internals\EO_Resource createObject($setDefaultValues = true)
     * @method \Bitrix\Calendar\Internals\EO_Resource_Collection createCollection()
     * @method \Bitrix\Calendar\Internals\EO_Resource wakeUpObject($row)
     * @method \Bitrix\Calendar\Internals\EO_Resource_Collection wakeUpCollection($rows)
     */
    class EO_Resource_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Section
     * @see \Bitrix\Calendar\Internals\SectionTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Calendar\Internals\EO_Section setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getName()
     * @method \Bitrix\Calendar\Internals\EO_Section setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Calendar\Internals\EO_Section resetName()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetName()
     * @method \string fillName()
     * @method \string getXmlId()
     * @method \Bitrix\Calendar\Internals\EO_Section setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Calendar\Internals\EO_Section resetXmlId()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetXmlId()
     * @method \string fillXmlId()
     * @method \string getExternalId()
     * @method \Bitrix\Calendar\Internals\EO_Section setExternalId(\string|\Bitrix\Main\DB\SqlExpression $externalId)
     * @method bool hasExternalId()
     * @method bool isExternalIdFilled()
     * @method bool isExternalIdChanged()
     * @method \string remindActualExternalId()
     * @method \string requireExternalId()
     * @method \Bitrix\Calendar\Internals\EO_Section resetExternalId()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetExternalId()
     * @method \string fillExternalId()
     * @method \boolean getActive()
     * @method \Bitrix\Calendar\Internals\EO_Section setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Calendar\Internals\EO_Section resetActive()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetActive()
     * @method \boolean fillActive()
     * @method \string getDescription()
     * @method \Bitrix\Calendar\Internals\EO_Section setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Calendar\Internals\EO_Section resetDescription()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetDescription()
     * @method \string fillDescription()
     * @method \string getColor()
     * @method \Bitrix\Calendar\Internals\EO_Section setColor(\string|\Bitrix\Main\DB\SqlExpression $color)
     * @method bool hasColor()
     * @method bool isColorFilled()
     * @method bool isColorChanged()
     * @method \string remindActualColor()
     * @method \string requireColor()
     * @method \Bitrix\Calendar\Internals\EO_Section resetColor()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetColor()
     * @method \string fillColor()
     * @method \string getTextColor()
     * @method \Bitrix\Calendar\Internals\EO_Section setTextColor(\string|\Bitrix\Main\DB\SqlExpression $textColor)
     * @method bool hasTextColor()
     * @method bool isTextColorFilled()
     * @method bool isTextColorChanged()
     * @method \string remindActualTextColor()
     * @method \string requireTextColor()
     * @method \Bitrix\Calendar\Internals\EO_Section resetTextColor()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetTextColor()
     * @method \string fillTextColor()
     * @method \string getExport()
     * @method \Bitrix\Calendar\Internals\EO_Section setExport(\string|\Bitrix\Main\DB\SqlExpression $export)
     * @method bool hasExport()
     * @method bool isExportFilled()
     * @method bool isExportChanged()
     * @method \string remindActualExport()
     * @method \string requireExport()
     * @method \Bitrix\Calendar\Internals\EO_Section resetExport()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetExport()
     * @method \string fillExport()
     * @method \int getSort()
     * @method \Bitrix\Calendar\Internals\EO_Section setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Calendar\Internals\EO_Section resetSort()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetSort()
     * @method \int fillSort()
     * @method \string getCalType()
     * @method \Bitrix\Calendar\Internals\EO_Section setCalType(\string|\Bitrix\Main\DB\SqlExpression $calType)
     * @method bool hasCalType()
     * @method bool isCalTypeFilled()
     * @method bool isCalTypeChanged()
     * @method \string remindActualCalType()
     * @method \string requireCalType()
     * @method \Bitrix\Calendar\Internals\EO_Section resetCalType()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetCalType()
     * @method \string fillCalType()
     * @method \int getOwnerId()
     * @method \Bitrix\Calendar\Internals\EO_Section setOwnerId(\int|\Bitrix\Main\DB\SqlExpression $ownerId)
     * @method bool hasOwnerId()
     * @method bool isOwnerIdFilled()
     * @method bool isOwnerIdChanged()
     * @method \int remindActualOwnerId()
     * @method \int requireOwnerId()
     * @method \Bitrix\Calendar\Internals\EO_Section resetOwnerId()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetOwnerId()
     * @method \int fillOwnerId()
     * @method \int getCreatedBy()
     * @method \Bitrix\Calendar\Internals\EO_Section setCreatedBy(\int|\Bitrix\Main\DB\SqlExpression $createdBy)
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \int remindActualCreatedBy()
     * @method \int requireCreatedBy()
     * @method \Bitrix\Calendar\Internals\EO_Section resetCreatedBy()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetCreatedBy()
     * @method \int fillCreatedBy()
     * @method \int getParentId()
     * @method \Bitrix\Calendar\Internals\EO_Section setParentId(\int|\Bitrix\Main\DB\SqlExpression $parentId)
     * @method bool hasParentId()
     * @method bool isParentIdFilled()
     * @method bool isParentIdChanged()
     * @method \int remindActualParentId()
     * @method \int requireParentId()
     * @method \Bitrix\Calendar\Internals\EO_Section resetParentId()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetParentId()
     * @method \int fillParentId()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Calendar\Internals\EO_Section setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Calendar\Internals\EO_Section resetDateCreate()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Calendar\Internals\EO_Section setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Calendar\Internals\EO_Section resetTimestampX()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \string getDavExchCal()
     * @method \Bitrix\Calendar\Internals\EO_Section setDavExchCal(\string|\Bitrix\Main\DB\SqlExpression $davExchCal)
     * @method bool hasDavExchCal()
     * @method bool isDavExchCalFilled()
     * @method bool isDavExchCalChanged()
     * @method \string remindActualDavExchCal()
     * @method \string requireDavExchCal()
     * @method \Bitrix\Calendar\Internals\EO_Section resetDavExchCal()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetDavExchCal()
     * @method \string fillDavExchCal()
     * @method \string getDavExchMod()
     * @method \Bitrix\Calendar\Internals\EO_Section setDavExchMod(\string|\Bitrix\Main\DB\SqlExpression $davExchMod)
     * @method bool hasDavExchMod()
     * @method bool isDavExchModFilled()
     * @method bool isDavExchModChanged()
     * @method \string remindActualDavExchMod()
     * @method \string requireDavExchMod()
     * @method \Bitrix\Calendar\Internals\EO_Section resetDavExchMod()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetDavExchMod()
     * @method \string fillDavExchMod()
     * @method \string getCalDavCon()
     * @method \Bitrix\Calendar\Internals\EO_Section setCalDavCon(\string|\Bitrix\Main\DB\SqlExpression $calDavCon)
     * @method bool hasCalDavCon()
     * @method bool isCalDavConFilled()
     * @method bool isCalDavConChanged()
     * @method \string remindActualCalDavCon()
     * @method \string requireCalDavCon()
     * @method \Bitrix\Calendar\Internals\EO_Section resetCalDavCon()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetCalDavCon()
     * @method \string fillCalDavCon()
     * @method \string getCalDavCal()
     * @method \Bitrix\Calendar\Internals\EO_Section setCalDavCal(\string|\Bitrix\Main\DB\SqlExpression $calDavCal)
     * @method bool hasCalDavCal()
     * @method bool isCalDavCalFilled()
     * @method bool isCalDavCalChanged()
     * @method \string remindActualCalDavCal()
     * @method \string requireCalDavCal()
     * @method \Bitrix\Calendar\Internals\EO_Section resetCalDavCal()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetCalDavCal()
     * @method \string fillCalDavCal()
     * @method \string getCalDavMod()
     * @method \Bitrix\Calendar\Internals\EO_Section setCalDavMod(\string|\Bitrix\Main\DB\SqlExpression $calDavMod)
     * @method bool hasCalDavMod()
     * @method bool isCalDavModFilled()
     * @method bool isCalDavModChanged()
     * @method \string remindActualCalDavMod()
     * @method \string requireCalDavMod()
     * @method \Bitrix\Calendar\Internals\EO_Section resetCalDavMod()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetCalDavMod()
     * @method \string fillCalDavMod()
     * @method \string getIsExchange()
     * @method \Bitrix\Calendar\Internals\EO_Section setIsExchange(\string|\Bitrix\Main\DB\SqlExpression $isExchange)
     * @method bool hasIsExchange()
     * @method bool isIsExchangeFilled()
     * @method bool isIsExchangeChanged()
     * @method \string remindActualIsExchange()
     * @method \string requireIsExchange()
     * @method \Bitrix\Calendar\Internals\EO_Section resetIsExchange()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetIsExchange()
     * @method \string fillIsExchange()
     * @method \string getGapiCalendarId()
     * @method \Bitrix\Calendar\Internals\EO_Section setGapiCalendarId(\string|\Bitrix\Main\DB\SqlExpression $gapiCalendarId)
     * @method bool hasGapiCalendarId()
     * @method bool isGapiCalendarIdFilled()
     * @method bool isGapiCalendarIdChanged()
     * @method \string remindActualGapiCalendarId()
     * @method \string requireGapiCalendarId()
     * @method \Bitrix\Calendar\Internals\EO_Section resetGapiCalendarId()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetGapiCalendarId()
     * @method \string fillGapiCalendarId()
     * @method \string getSyncToken()
     * @method \Bitrix\Calendar\Internals\EO_Section setSyncToken(\string|\Bitrix\Main\DB\SqlExpression $syncToken)
     * @method bool hasSyncToken()
     * @method bool isSyncTokenFilled()
     * @method bool isSyncTokenChanged()
     * @method \string remindActualSyncToken()
     * @method \string requireSyncToken()
     * @method \Bitrix\Calendar\Internals\EO_Section resetSyncToken()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetSyncToken()
     * @method \string fillSyncToken()
     * @method \string getExternalType()
     * @method \Bitrix\Calendar\Internals\EO_Section setExternalType(\string|\Bitrix\Main\DB\SqlExpression $externalType)
     * @method bool hasExternalType()
     * @method bool isExternalTypeFilled()
     * @method bool isExternalTypeChanged()
     * @method \string remindActualExternalType()
     * @method \string requireExternalType()
     * @method \Bitrix\Calendar\Internals\EO_Section resetExternalType()
     * @method \Bitrix\Calendar\Internals\EO_Section unsetExternalType()
     * @method \string fillExternalType()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Calendar\Internals\EO_Section set($fieldName, $value)
     * @method \Bitrix\Calendar\Internals\EO_Section reset($fieldName)
     * @method \Bitrix\Calendar\Internals\EO_Section unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Calendar\Internals\EO_Section wakeUp($data)
     */
    class EO_Section
    {
        /* @var \Bitrix\Calendar\Internals\SectionTable */
        public static $dataClass = '\\Bitrix\\Calendar\\Internals\\SectionTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Section_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \string[] getExternalIdList()
     * @method \string[] fillExternalId()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getColorList()
     * @method \string[] fillColor()
     * @method \string[] getTextColorList()
     * @method \string[] fillTextColor()
     * @method \string[] getExportList()
     * @method \string[] fillExport()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \string[] getCalTypeList()
     * @method \string[] fillCalType()
     * @method \int[] getOwnerIdList()
     * @method \int[] fillOwnerId()
     * @method \int[] getCreatedByList()
     * @method \int[] fillCreatedBy()
     * @method \int[] getParentIdList()
     * @method \int[] fillParentId()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \string[] getDavExchCalList()
     * @method \string[] fillDavExchCal()
     * @method \string[] getDavExchModList()
     * @method \string[] fillDavExchMod()
     * @method \string[] getCalDavConList()
     * @method \string[] fillCalDavCon()
     * @method \string[] getCalDavCalList()
     * @method \string[] fillCalDavCal()
     * @method \string[] getCalDavModList()
     * @method \string[] fillCalDavMod()
     * @method \string[] getIsExchangeList()
     * @method \string[] fillIsExchange()
     * @method \string[] getGapiCalendarIdList()
     * @method \string[] fillGapiCalendarId()
     * @method \string[] getSyncTokenList()
     * @method \string[] fillSyncToken()
     * @method \string[] getExternalTypeList()
     * @method \string[] fillExternalType()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Calendar\Internals\EO_Section $object)
     * @method bool has(\Bitrix\Calendar\Internals\EO_Section $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Calendar\Internals\EO_Section getByPrimary($primary)
     * @method \Bitrix\Calendar\Internals\EO_Section[] getAll()
     * @method bool remove(\Bitrix\Calendar\Internals\EO_Section $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Calendar\Internals\EO_Section_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Calendar\Internals\EO_Section current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Section_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Calendar\Internals\SectionTable */
        public static $dataClass = '\\Bitrix\\Calendar\\Internals\\SectionTable';
    }
    /**
     * @method static EO_Section_Query query()
     * @method static EO_Section_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Section_Result getById($id)
     * @method static EO_Section_Result getList(array $parameters = array())
     * @method static EO_Section_Entity getEntity()
     * @method static \Bitrix\Calendar\Internals\EO_Section createObject($setDefaultValues = true)
     * @method static \Bitrix\Calendar\Internals\EO_Section_Collection createCollection()
     * @method static \Bitrix\Calendar\Internals\EO_Section wakeUpObject($row)
     * @method static \Bitrix\Calendar\Internals\EO_Section_Collection wakeUpCollection($rows)
     */
    class SectionTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Section_Result exec()
     * @method \Bitrix\Calendar\Internals\EO_Section fetchObject()
     * @method \Bitrix\Calendar\Internals\EO_Section_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Section_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Calendar\Internals\EO_Section fetchObject()
     * @method \Bitrix\Calendar\Internals\EO_Section_Collection fetchCollection()
     */
    class EO_Section_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Calendar\Internals\EO_Section createObject($setDefaultValues = true)
     * @method \Bitrix\Calendar\Internals\EO_Section_Collection createCollection()
     * @method \Bitrix\Calendar\Internals\EO_Section wakeUpObject($row)
     * @method \Bitrix\Calendar\Internals\EO_Section_Collection wakeUpCollection($rows)
     */
    class EO_Section_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Type
     * @see \Bitrix\Calendar\Internals\TypeTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getXmlId()
     * @method \Bitrix\Calendar\Internals\EO_Type setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string getName()
     * @method \Bitrix\Calendar\Internals\EO_Type setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Calendar\Internals\EO_Type resetName()
     * @method \Bitrix\Calendar\Internals\EO_Type unsetName()
     * @method \string fillName()
     * @method \string getDescription()
     * @method \Bitrix\Calendar\Internals\EO_Type setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Calendar\Internals\EO_Type resetDescription()
     * @method \Bitrix\Calendar\Internals\EO_Type unsetDescription()
     * @method \string fillDescription()
     * @method \string getExternalId()
     * @method \Bitrix\Calendar\Internals\EO_Type setExternalId(\string|\Bitrix\Main\DB\SqlExpression $externalId)
     * @method bool hasExternalId()
     * @method bool isExternalIdFilled()
     * @method bool isExternalIdChanged()
     * @method \string remindActualExternalId()
     * @method \string requireExternalId()
     * @method \Bitrix\Calendar\Internals\EO_Type resetExternalId()
     * @method \Bitrix\Calendar\Internals\EO_Type unsetExternalId()
     * @method \string fillExternalId()
     * @method \boolean getActive()
     * @method \Bitrix\Calendar\Internals\EO_Type setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Calendar\Internals\EO_Type resetActive()
     * @method \Bitrix\Calendar\Internals\EO_Type unsetActive()
     * @method \boolean fillActive()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Calendar\Internals\EO_Type set($fieldName, $value)
     * @method \Bitrix\Calendar\Internals\EO_Type reset($fieldName)
     * @method \Bitrix\Calendar\Internals\EO_Type unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Calendar\Internals\EO_Type wakeUp($data)
     */
    class EO_Type
    {
        /* @var \Bitrix\Calendar\Internals\TypeTable */
        public static $dataClass = '\\Bitrix\\Calendar\\Internals\\TypeTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Type_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getXmlIdList()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getExternalIdList()
     * @method \string[] fillExternalId()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Calendar\Internals\EO_Type $object)
     * @method bool has(\Bitrix\Calendar\Internals\EO_Type $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Calendar\Internals\EO_Type getByPrimary($primary)
     * @method \Bitrix\Calendar\Internals\EO_Type[] getAll()
     * @method bool remove(\Bitrix\Calendar\Internals\EO_Type $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Calendar\Internals\EO_Type_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Calendar\Internals\EO_Type current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Type_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Calendar\Internals\TypeTable */
        public static $dataClass = '\\Bitrix\\Calendar\\Internals\\TypeTable';
    }
    /**
     * @method static EO_Type_Query query()
     * @method static EO_Type_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Type_Result getById($id)
     * @method static EO_Type_Result getList(array $parameters = array())
     * @method static EO_Type_Entity getEntity()
     * @method static \Bitrix\Calendar\Internals\EO_Type createObject($setDefaultValues = true)
     * @method static \Bitrix\Calendar\Internals\EO_Type_Collection createCollection()
     * @method static \Bitrix\Calendar\Internals\EO_Type wakeUpObject($row)
     * @method static \Bitrix\Calendar\Internals\EO_Type_Collection wakeUpCollection($rows)
     */
    class TypeTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Type_Result exec()
     * @method \Bitrix\Calendar\Internals\EO_Type fetchObject()
     * @method \Bitrix\Calendar\Internals\EO_Type_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Type_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Calendar\Internals\EO_Type fetchObject()
     * @method \Bitrix\Calendar\Internals\EO_Type_Collection fetchCollection()
     */
    class EO_Type_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Calendar\Internals\EO_Type createObject($setDefaultValues = true)
     * @method \Bitrix\Calendar\Internals\EO_Type_Collection createCollection()
     * @method \Bitrix\Calendar\Internals\EO_Type wakeUpObject($row)
     * @method \Bitrix\Calendar\Internals\EO_Type_Collection wakeUpCollection($rows)
     */
    class EO_Type_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Calendar {
    /**
     * EO_Push
     * @see \Bitrix\Calendar\PushTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getEntityType()
     * @method \Bitrix\Calendar\EO_Push setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \int getEntityId()
     * @method \Bitrix\Calendar\EO_Push setEntityId(\int|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \string getChannelId()
     * @method \Bitrix\Calendar\EO_Push setChannelId(\string|\Bitrix\Main\DB\SqlExpression $channelId)
     * @method bool hasChannelId()
     * @method bool isChannelIdFilled()
     * @method bool isChannelIdChanged()
     * @method \string remindActualChannelId()
     * @method \string requireChannelId()
     * @method \Bitrix\Calendar\EO_Push resetChannelId()
     * @method \Bitrix\Calendar\EO_Push unsetChannelId()
     * @method \string fillChannelId()
     * @method \string getResourceId()
     * @method \Bitrix\Calendar\EO_Push setResourceId(\string|\Bitrix\Main\DB\SqlExpression $resourceId)
     * @method bool hasResourceId()
     * @method bool isResourceIdFilled()
     * @method bool isResourceIdChanged()
     * @method \string remindActualResourceId()
     * @method \string requireResourceId()
     * @method \Bitrix\Calendar\EO_Push resetResourceId()
     * @method \Bitrix\Calendar\EO_Push unsetResourceId()
     * @method \string fillResourceId()
     * @method \Bitrix\Main\Type\DateTime getExpires()
     * @method \Bitrix\Calendar\EO_Push setExpires(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $expires)
     * @method bool hasExpires()
     * @method bool isExpiresFilled()
     * @method bool isExpiresChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualExpires()
     * @method \Bitrix\Main\Type\DateTime requireExpires()
     * @method \Bitrix\Calendar\EO_Push resetExpires()
     * @method \Bitrix\Calendar\EO_Push unsetExpires()
     * @method \Bitrix\Main\Type\DateTime fillExpires()
     * @method \boolean getNotProcessed()
     * @method \Bitrix\Calendar\EO_Push setNotProcessed(\boolean|\Bitrix\Main\DB\SqlExpression $notProcessed)
     * @method bool hasNotProcessed()
     * @method bool isNotProcessedFilled()
     * @method bool isNotProcessedChanged()
     * @method \boolean remindActualNotProcessed()
     * @method \boolean requireNotProcessed()
     * @method \Bitrix\Calendar\EO_Push resetNotProcessed()
     * @method \Bitrix\Calendar\EO_Push unsetNotProcessed()
     * @method \boolean fillNotProcessed()
     * @method \Bitrix\Main\Type\DateTime getFirstPushDate()
     * @method \Bitrix\Calendar\EO_Push setFirstPushDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $firstPushDate)
     * @method bool hasFirstPushDate()
     * @method bool isFirstPushDateFilled()
     * @method bool isFirstPushDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualFirstPushDate()
     * @method \Bitrix\Main\Type\DateTime requireFirstPushDate()
     * @method \Bitrix\Calendar\EO_Push resetFirstPushDate()
     * @method \Bitrix\Calendar\EO_Push unsetFirstPushDate()
     * @method \Bitrix\Main\Type\DateTime fillFirstPushDate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Calendar\EO_Push set($fieldName, $value)
     * @method \Bitrix\Calendar\EO_Push reset($fieldName)
     * @method \Bitrix\Calendar\EO_Push unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Calendar\EO_Push wakeUp($data)
     */
    class EO_Push
    {
        /* @var \Bitrix\Calendar\PushTable */
        public static $dataClass = '\\Bitrix\\Calendar\\PushTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Push_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getEntityTypeList()
     * @method \int[] getEntityIdList()
     * @method \string[] getChannelIdList()
     * @method \string[] fillChannelId()
     * @method \string[] getResourceIdList()
     * @method \string[] fillResourceId()
     * @method \Bitrix\Main\Type\DateTime[] getExpiresList()
     * @method \Bitrix\Main\Type\DateTime[] fillExpires()
     * @method \boolean[] getNotProcessedList()
     * @method \boolean[] fillNotProcessed()
     * @method \Bitrix\Main\Type\DateTime[] getFirstPushDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillFirstPushDate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Calendar\EO_Push $object)
     * @method bool has(\Bitrix\Calendar\EO_Push $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Calendar\EO_Push getByPrimary($primary)
     * @method \Bitrix\Calendar\EO_Push[] getAll()
     * @method bool remove(\Bitrix\Calendar\EO_Push $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Calendar\EO_Push_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Calendar\EO_Push current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Push_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Calendar\PushTable */
        public static $dataClass = '\\Bitrix\\Calendar\\PushTable';
    }
    /**
     * @method static EO_Push_Query query()
     * @method static EO_Push_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Push_Result getById($id)
     * @method static EO_Push_Result getList(array $parameters = array())
     * @method static EO_Push_Entity getEntity()
     * @method static \Bitrix\Calendar\EO_Push createObject($setDefaultValues = true)
     * @method static \Bitrix\Calendar\EO_Push_Collection createCollection()
     * @method static \Bitrix\Calendar\EO_Push wakeUpObject($row)
     * @method static \Bitrix\Calendar\EO_Push_Collection wakeUpCollection($rows)
     */
    class PushTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Push_Result exec()
     * @method \Bitrix\Calendar\EO_Push fetchObject()
     * @method \Bitrix\Calendar\EO_Push_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Push_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Calendar\EO_Push fetchObject()
     * @method \Bitrix\Calendar\EO_Push_Collection fetchCollection()
     */
    class EO_Push_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Calendar\EO_Push createObject($setDefaultValues = true)
     * @method \Bitrix\Calendar\EO_Push_Collection createCollection()
     * @method \Bitrix\Calendar\EO_Push wakeUpObject($row)
     * @method \Bitrix\Calendar\EO_Push_Collection wakeUpCollection($rows)
     */
    class EO_Push_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Calendar\Ui {
    class CalendarFilter
    {
        protected static $filterId = '';
        /**
         * Get available fields in filter.
         * @return array
         */
        protected static function getAvailableFields()
        {
        }
        /**
         * @return string
         */
        public static function getFilterId($type, $ownerId, $userId)
        {
        }
        /**
         * @param $filterId
         */
        public static function setFilterId($filterId)
        {
        }
        /**
         * @return array
         */
        public static function getPresets()
        {
        }
        /**
         * @param string $filterId
         *
         * @return array
         */
        public static function resolveFilterFields($filterId)
        {
        }
        /**
         * @return array|bool
         */
        /*protected static function processSpecialPresetsFilter()
        	{
        		$arrFilter = array();
        		$request = Context::getCurrent()->getRequest()->toArray();
        		if(array_key_exists('F_FILTER_SWITCH_PRESET', $request)
        			&& static::getFilterCtrlInstance()->checkExistsPresetById($request['F_FILTER_SWITCH_PRESET']))
        		{
        			$arrFilter = static::getFilterCtrlInstance()->getFilterPresetConditionById($request['F_FILTER_SWITCH_PRESET']);
        		}
        
        		return $arrFilter;
        	}*/
        /**
         * @return array
         */
        public static function getFilters()
        {
        }
    }
}
namespace Bitrix\Main\UserField {
    /**
     * Class TypeBase
     * @package Bitrix\Main\UserField
     * @deprecated
     */
    abstract class TypeBase
    {
        static $helper = array();
        const USER_TYPE_ID = '_generic';
        /**
         * @return TypeHelper
         */
        public static function getHelper()
        {
        }
        /**
         * @param TypeHelper $helper
         */
        public static function setHelper(\Bitrix\Main\UserField\TypeHelper $helper)
        {
        }
        protected static function initDisplay(array $additional = array())
        {
        }
        protected static function buildTagAttributes(array $attributes)
        {
        }
        protected static function getFieldName($arUserField, $arAdditionalParameters = array())
        {
        }
        protected static function normalizeFieldValue($value)
        {
        }
        protected static function getFieldValue($arUserField, $arAdditionalParameters = array())
        {
        }
        public static function getPublicText($userField)
        {
        }
    }
}
namespace Bitrix\Calendar\UserField {
    class ResourceBooking extends \Bitrix\Main\UserField\TypeBase
    {
        const USER_TYPE_ID = 'resourcebooking';
        const RESOURCE_CALENDAR_TYPE = 'resource';
        const BITRIX24_RESTRICTION = 100;
        const BITRIX24_RESTRICTION_CODE = 'uf_resourcebooking';
        const CRM_LEAD_ENTITY_ID = 'CRM_LEAD';
        const CRM_SUSPENDED_LEAD_ENTITY_ID = 'CRM_LEAD_SPD';
        const CRM_DEAL_ENTITY_ID = 'CRM_DEAL';
        const CRM_SUSPENDED_DEAL_ENTITY_ID = 'CRM_DEAL_SPD';
        protected static $restrictionCount = null;
        function getUserTypeDescription()
        {
        }
        public static function prepareSettings($userField = [])
        {
        }
        function getDBColumnType()
        {
        }
        function checkFields($userField, $value)
        {
        }
        public static function onBeforeSaveAll($userField, $values, $userId = false)
        {
        }
        public static function onDelete($userField, $values, $userId = false)
        {
        }
        /**
         * Saves resource of given type.
         *
         * @param integer $id id of current booking.
         * @param string $resourceType resource type.
         * @param integer $resourceId resource id.
         * @param array $eventFields calendar event fields.
         * @param array $params additional params.
         *
         * @return integer, id of resource booking or null
         * @throws \Bitrix\Main\SystemException
         */
        public static function saveResource($id, $resourceType, $resourceId, $eventFields = [], $params = [])
        {
        }
        private static function isCrmEntity($entityId)
        {
        }
        private static function isUserAvailable($params)
        {
        }
        private static function isResourceAvailable()
        {
        }
        public static function releaseResource($entry)
        {
        }
        private static function handleResourceList($resources)
        {
        }
        public static function prepareValue($type, $id, $from, $duration, $serviceName = '')
        {
        }
        public static function parseValue($value)
        {
        }
        function getSettingsHTML($userField = false, $htmlControl = [], $varsFromForm = false)
        {
        }
        function getEditFormHTML($userField, $htmlControl)
        {
        }
        public static function getPublicEdit($userField, $additionalParams = [])
        {
        }
        public static function getPublicView($userField, $additionalParams = [])
        {
        }
        public static function getPublicText($userField)
        {
        }
        public static function getDefaultResourcesList()
        {
        }
        protected static function fetchFieldValue($value)
        {
        }
        public static function getDefaultServiceList()
        {
        }
        public static function getBitrx24Limitation()
        {
        }
        public static function getAvailableEntriesList()
        {
        }
        public static function onBeforeUserTypeAdd(&$userTypeFields)
        {
        }
        public static function getResourceEntriesList($idList = [])
        {
        }
        public static function getUserFieldByFieldName($fieldName = '', $selectedUsers = [])
        {
        }
        public static function getFillFormData($data = [], $params = [])
        {
        }
        public static function getFormDateTimeSlots($fieldName = '', $options = [])
        {
        }
        private static function getAvailableTimeSlots($accessibility, $options)
        {
        }
        public static function prepareFormDateValues($dateFrom = null, $fieldName = '', $options = [])
        {
        }
    }
}
namespace Bitrix\Calendar\Update {
    final class SectionStructureUpdate extends \Bitrix\Main\Update\Stepper
    {
        const PORTION = 40;
        protected static $moduleId = "calendar";
        public static function className()
        {
        }
        public function execute(array &$result)
        {
        }
        private function loadCurrentStatus()
        {
        }
        private function getTotalCount()
        {
        }
    }
    final class IndexCalendar extends \Bitrix\Main\Update\Stepper
    {
        const PORTION = 40;
        protected static $moduleId = "calendar";
        public static function className()
        {
        }
        public function execute(array &$result)
        {
        }
        private function loadCurrentStatus()
        {
        }
        private function getTotalCount()
        {
        }
        public function getNewColor($color)
        {
        }
    }
    /**
     * Class MigrateFromCaldav
     * @package Bitrix\Calendar\Update
     */
    final class MigrateFromCaldav
    {
        /**
         * Agent method for migration purposes
         * @return null|string
         */
        public static function doMigration()
        {
        }
    }
    final class LivefeedIndexCalendar extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "calendar";
        public function execute(array &$result)
        {
        }
        public static function run()
        {
        }
    }
    /**
     * Class GoogleDublicatesCleaner
     * @package Bitrix\Calendar\Update
     */
    final class GoogleDublicatesCleaner
    {
        public static function doCheckAndClean()
        {
        }
    }
    final class ConverterObjectColor extends \Bitrix\Main\Update\Stepper
    {
        const PORTION = 100;
        protected static $moduleId = "calendar";
        public static function className()
        {
        }
        public function execute(array &$result)
        {
        }
        private function loadCurrentStatus()
        {
        }
        private function getTotalCount()
        {
        }
        public function getNewColor($color)
        {
        }
    }
    class SyncLocalDataSection extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "calendar";
        public static function className()
        {
        }
        public function execute(array &$result)
        {
        }
        private function loadCurrentStatus()
        {
        }
    }
}
namespace Bitrix\Calendar\ICal {
    class UserController
    {
        private static $MAIL_TYPE_EXTERNAL = "CALENDAR_INVITATION_EXTERNAL";
        public static function inviteUser($userId, $params)
        {
        }
        private static function prepareAttendeesData($attendeeIdList, $currentAttendees, $userIndex, $currentUserId)
        {
        }
        private static function getPublicUrl()
        {
        }
        /**
         * Get ical file
         *
         * @return int|bool File id.
         */
        private static function getIcsFileAttachment($eventFields, $params = [])
        {
        }
        public static function getIcsFileContent($eventFields, $params = [])
        {
        }
    }
    class IncomingEventManager
    {
        public static function handleRequest($params)
        {
        }
        public static function handleReply(array $params) : bool
        {
        }
        public static function handleReplyReceivedICalInvent(\Bitrix\Main\Event $event)
        {
        }
        public static function handleCancel($params)
        {
        }
        public static function getDataInfo($data, $params = []) : array
        {
        }
        public static function rehandleRequest($params)
        {
        }
        private static function updateEvent(array $event, $userId, $answer) : array
        {
        }
        private static function getDateTimeString(\Bitrix\Main\Type\Date $date) : string
        {
        }
        private static function getDateString(\Bitrix\Main\Type\Date $date) : string
        {
        }
        private static function getTimezoneNameString(\DateTimeZone $tz)
        {
        }
        private static function handleAttendeesFromRequest(array $params) : array
        {
        }
        private static function handleAttendeesByUser(array $attendees, $answer, $userId)
        {
        }
        private static function updateChildEvent(array $event, $parentId)
        {
        }
        private static function getAttendeesString($attendees)
        {
        }
        private static function getOrganizerString($organizer)
        {
        }
        private static function updateParentEvent(array $event)
        {
        }
        private static function getFilesString(array $attachments)
        {
        }
    }
}
namespace Bitrix\Calendar\ICal\Basic {
    class PropertyCreator
    {
        private $property;
        public function __construct(\Bitrix\Calendar\ICal\Basic\PropertyType $property)
        {
        }
        public function build() : array
        {
        }
        private function resolveParameters() : string
        {
        }
    }
    abstract class PropertyType
    {
        protected $names;
        protected $parameters = [];
        public abstract function getValue() : string;
        public abstract function getOriginalValue();
        public function __construct($names)
        {
        }
        public function getNames() : array
        {
        }
        public function getParameters() : array
        {
        }
        public function getParameter(string $name) : \Bitrix\Calendar\ICal\Basic\Parameter
        {
        }
        public function addParameters(array $parameters) : \Bitrix\Calendar\ICal\Basic\PropertyType
        {
        }
        public function addParameter(\Bitrix\Calendar\ICal\Basic\Parameter $parameter) : \Bitrix\Calendar\ICal\Basic\PropertyType
        {
        }
    }
    class RecurrenceRulePropertyType extends \Bitrix\Calendar\ICal\Basic\PropertyType
    {
        private $rrule;
        public static function getInstance($names, \Bitrix\Calendar\ICal\Basic\RecurrenceRuleProperty $rrule) : \Bitrix\Calendar\ICal\Basic\RecurrenceRulePropertyType
        {
        }
        public function __construct($names, \Bitrix\Calendar\ICal\Basic\RecurrenceRuleProperty $rrule)
        {
        }
        public function getValue() : string
        {
        }
        public function getOriginalValue() : \Bitrix\Calendar\ICal\Basic\RecurrenceRuleProperty
        {
        }
    }
    class Dictionary
    {
        const LOCAL_ATTENDEES_STATUS = ['NEEDS-ACTION' => 'Q', 'ACCEPTED' => 'Y', 'DECLINED' => 'N', 'TENTATIVE' => 'Y', 'DELEGATED' => 'N'];
        const OUT_ATTENDEES_STATUS = ['needs_action' => 'NEEDS-ACTION', 'accepted' => 'ACCEPTED', 'declined' => 'DECLINED', 'tentative' => 'TENTATIVE', 'delegated' => 'DELEGATED'];
        const INVITATION_STATUS = ['tentative' => 'TENTATIVE', 'confirmed' => 'CONFIRMED', 'cancelled' => 'CANCELLED'];
        const EVENT_STATUS = ['public' => 'PUBLIC', 'private' => 'PRIVATE', 'confidential' => 'CONFIDENTIAL'];
        const METHODS = ['publish' => 'PUBLISH', 'request' => 'REQUEST', 'refresh' => 'REFRESH', 'cancel' => 'CANCEL', 'add' => 'ADD', 'reply' => 'REPLY', 'counter' => 'COUNTER', 'declinecounter' => 'DECLINECOUNTER', 'edit' => 'REQUEST'];
        const TRANSPARENT = ['free' => 'TRANSPARENT', 'busy' => 'OPAQUE'];
        const COMPONENTS = ['vevent' => 'VEVENT', 'vcalendar' => 'VCALENDAR', 'vtimezone' => 'VTIMEZONE', 'vjournal' => 'VJOURNAL', 'vtodo' => 'VTODO'];
        const INSTANCE_FIELDS = ['exdate' => 'EXDATE', 'rdate' => 'RDATE'];
    }
    class ICalUtil
    {
        const ICAL_DATETIME_FORMAT = 'Ymd\\THis\\Z';
        const ICAL_DATETIME_FORMAT_SHORT = 'Ymd\\THis';
        const ICAL_DATE_FORMAT = 'Ymd';
        public static function getServerName()
        {
        }
        public static function getUniqId()
        {
        }
        public static function isMailUser($userId) : bool
        {
        }
        /*
         * Returns id of the 'external' user by email. Creates user if it not exists.
         *
         * @param array $params - incomoning params:
         * $params['EMAIL'] - (required) email of the user
         * $params['NAME'] - user's name
         * $params['LAST_NAME'] - user's last name
         * @return 'userId' - id of the user, or null
         */
        public static function getExternalUserByEmail($params, &$errorText)
        {
        }
        public static function processDestinationUserEmail($params, &$errorText)
        {
        }
        public static function getUserIdByEmail(array $userInfo) : ?string
        {
        }
        public static function getEventByUId($userId, $uid) : ?array
        {
        }
        public static function getUserById(?string $id)
        {
        }
        public static function getIcalDateTime(string $dateTime = null, string $tz = null) : \Bitrix\Main\Type\DateTime
        {
        }
        public static function getIcalDate(string $date = null) : \Bitrix\Main\Type\Date
        {
        }
        public static function prepareAttendeesToCancel($attendees)
        {
        }
        public static function getUsersById(array $usersId)
        {
        }
        public static function getUsersByCode(array $attendeesCodeList = null)
        {
        }
        public static function getIcalDateTimeShort(string $dateTime = null, string $tz = 'UTC')
        {
        }
    }
    class AttendeesPropertyType extends \Bitrix\Calendar\ICal\Basic\PropertyType
    {
        private $calendarAddress;
        public static function getInstance($names, \Bitrix\Calendar\ICal\Basic\AttendeesProperty $calendarAddress) : \Bitrix\Calendar\ICal\Basic\AttendeesPropertyType
        {
        }
        public function __construct($names, \Bitrix\Calendar\ICal\Basic\AttendeesProperty $calendarAddress)
        {
        }
        public function getValue() : string
        {
        }
        public function getOriginalValue() : \Bitrix\Calendar\ICal\Basic\AttendeesProperty
        {
        }
    }
    class TextPropertyType extends \Bitrix\Calendar\ICal\Basic\PropertyType
    {
        private $text;
        private $disableEscaping;
        public static function getInstance($names, string $text, $disableEscaping = false) : \Bitrix\Calendar\ICal\Basic\TextPropertyType
        {
        }
        public function __construct($names, string $text, $disableEscaping = false)
        {
        }
        public function getValue() : string
        {
        }
        public function getOriginalValue() : string
        {
        }
    }
    class Content
    {
        private $type;
        private $properties = [];
        private $subComponents = [];
        public static function getInstance(string $type) : \Bitrix\Calendar\ICal\Basic\Content
        {
        }
        public function __construct(string $type)
        {
        }
        public function property(\Bitrix\Calendar\ICal\Basic\PropertyType $property, array $parameters = null) : \Bitrix\Calendar\ICal\Basic\Content
        {
        }
        public function dateTimeProperty($names, \Bitrix\Main\Type\Date $value, bool $withTime = false, bool $withTimeZone = false, bool $isUTC = false) : \Bitrix\Calendar\ICal\Basic\Content
        {
        }
        public function textProperty($names, ?string $value, bool $disableEscaping = false) : \Bitrix\Calendar\ICal\Basic\Content
        {
        }
        public function timezoneOffsetProperty($names, \DateTimeZone $value) : \Bitrix\Calendar\ICal\Basic\Content
        {
        }
        public function subComponent(\Bitrix\Calendar\ICal\Basic\BasicComponent ...$components) : \Bitrix\Calendar\ICal\Basic\Content
        {
        }
        public function getType() : string
        {
        }
        public function getProperties() : array
        {
        }
        public function getSubComponents() : array
        {
        }
    }
    class RecurrenceRuleProperty
    {
        public $count;
        public $until;
        public $interval;
        public $freq;
        public $day;
        public $exdate;
        public $rdate;
        public function __construct($params = [])
        {
        }
    }
    class DatetimePropertyType extends \Bitrix\Calendar\ICal\Basic\PropertyType
    {
        private $dateTime;
        private $withTime;
        private $withTimezone;
        private $isUTC;
        public static function getInstance($names, \Bitrix\Main\Type\Date $dateTime, bool $withTime = false, bool $withTimezone = false, bool $isUTC = false) : \Bitrix\Calendar\ICal\Basic\DateTimePropertyType
        {
        }
        public function __construct($names, \Bitrix\Main\Type\Date $dateTime, bool $withTime = false, bool $withTimezone = false, bool $isUTC = false)
        {
        }
        public function getValue() : string
        {
        }
        public function getOriginalValue() : \Bitrix\Main\Type\Date
        {
        }
    }
    abstract class BasicComponent
    {
        private $attachProperties = [];
        private $attachSubComponent = [];
        public abstract function getType() : string;
        public abstract function getProperties() : array;
        public function accessContent() : \Bitrix\Calendar\ICal\Basic\Content
        {
        }
        public function toString() : string
        {
        }
        public function appendProperty(\Bitrix\Calendar\ICal\Basic\PropertyType $property) : \Bitrix\Calendar\ICal\Basic\BasicComponent
        {
        }
        public function appendSubComponent(\Bitrix\Calendar\ICal\Basic\BasicComponent $component) : \Bitrix\Calendar\ICal\Basic\BasicComponent
        {
        }
        protected function hasRequiredProperties(\Bitrix\Calendar\ICal\Basic\Content $componentLoad)
        {
        }
    }
    class AttendeesProperty
    {
        public $email;
        public $name = null;
        public $participationStatus = null;
        public $role = null;
        public $cutype = null;
        public $mailto;
        public function __construct(string $email = null, string $name = null, string $participationStatus = null, string $role = null, string $cutype = null, string $mailto = null)
        {
        }
    }
    abstract class Observance extends \Bitrix\Calendar\ICal\Basic\BasicComponent
    {
        protected $start;
        protected $offsetFrom;
        protected $offsetTo;
        protected $timezone;
        public static function getInstance() : \Bitrix\Calendar\ICal\Basic\Observance
        {
        }
        public function getProperties() : array
        {
        }
        public function setDTStart($start = null) : \Bitrix\Calendar\ICal\Basic\Observance
        {
        }
        public function setOffsetFrom($tz) : \Bitrix\Calendar\ICal\Basic\Observance
        {
        }
        public function setOffsetFromValue(string $value) : \Bitrix\Calendar\ICal\Basic\Observance
        {
        }
        public function setOffsetTo($tz) : \Bitrix\Calendar\ICal\Basic\Observance
        {
        }
        public function setOffsetToValue(string $value) : \Bitrix\Calendar\ICal\Basic\Observance
        {
        }
        public function setAbbrTimezone($tz) : \Bitrix\Calendar\ICal\Basic\Observance
        {
        }
        public function setTimezoneFromAbbr(?string $abbr) : \Bitrix\Calendar\ICal\Basic\Observance
        {
        }
        public function setContent() : \Bitrix\Calendar\ICal\Basic\Content
        {
        }
    }
    class AttachProperty
    {
        public $url;
        public $name = null;
        public function __construct(array $attach)
        {
        }
    }
    abstract class AttachmentManager
    {
        const ICAL_FIELDS = [];
        const LOCAL_FIELDS = [];
        public abstract function getAttachment();
    }
    class AttachPropertyType extends \Bitrix\Calendar\ICal\Basic\PropertyType
    {
        private $attach;
        public static function getInstance($names, \Bitrix\Calendar\ICal\Basic\AttachProperty $attach) : \Bitrix\Calendar\ICal\Basic\AttachPropertyType
        {
        }
        public function __construct($names, \Bitrix\Calendar\ICal\Basic\AttachProperty $attach)
        {
        }
        public function getValue() : string
        {
        }
        public function getOriginalValue() : \Bitrix\Calendar\ICal\Basic\AttachProperty
        {
        }
    }
    class Parameter
    {
        private $name;
        private $value;
        private $disableEscaping;
        public static function getInstance(string $name, string $value, $disableEscaping = false) : \Bitrix\Calendar\ICal\Basic\Parameter
        {
        }
        public function __construct(string $name, string $value, $disableEscaping = false)
        {
        }
        public function getName() : string
        {
        }
        public function getValue() : string
        {
        }
    }
    class LengthPropertyType extends \Bitrix\Calendar\ICal\Basic\PropertyType
    {
        private $interval;
        public static function getInstance($names, \DateInterval $interval) : \Bitrix\Calendar\ICal\Basic\LengthPropertyType
        {
        }
        public function invert() : \Bitrix\Calendar\ICal\Basic\LengthPropertyType
        {
        }
        /**
         * DurationPropertyType constructor.
         *
         * @param array|string $names
         * @param \DateInterval $interval
         */
        public function __construct($names, \DateInterval $interval)
        {
        }
        public function getValue() : string
        {
        }
        public function getOriginalValue() : \DateInterval
        {
        }
    }
}
namespace Bitrix\Calendar\ICal {
    class IcsBuilder
    {
        //const DT_FORMAT = 'Ymd\THis\Z';
        const PRODID = '-//Bitrix//Bitrix Calendar//EN', DATE_FORMAT = 'Ymd', DATETIME_FORMAT = 'Ymd\\THis';
        protected $fullDayMode = false, $organizer, $timezoneFrom, $timezoneTo, $attendees = [], $properties = [];
        private $availableProperties = ['summary', 'description', 'dtstart', 'dtend', 'location', 'url', 'alarm', 'transp', 'status', 'uid', 'attendee', 'created', 'last-modified', 'sequence', 'transp'];
        private static $METHOD = 'REQUEST';
        /**
         * Constructor.
         *
         * @param array $properties list of properties.
         */
        public function __construct($properties = [], $config = [])
        {
        }
        public function setProperties($properties)
        {
        }
        public function setConfig($config)
        {
        }
        public function setFullDayMode($value)
        {
        }
        public function setOrganizer($name, $email)
        {
        }
        public function setAttendees($attendeeDataList = [])
        {
        }
        public function render()
        {
        }
        private function buildBody()
        {
        }
        private function prepareValue($val, $key = false)
        {
        }
        private static function formatDateValue($timestamp)
        {
        }
        private static function formatDateTimeValue($timestamp)
        {
        }
        private static function formatEmailValue($email)
        {
        }
        private static function formatAttendeeKey($attendee)
        {
        }
        private static function formatOrganizerKey($organizer)
        {
        }
        private static function escapeString($str)
        {
        }
    }
}
namespace Bitrix\Calendar\ICal\Parser {
    interface ParserComponent
    {
        public function getContent();
    }
    class StandardObservances extends \Bitrix\Calendar\ICal\Basic\Observance implements \Bitrix\Calendar\ICal\Parser\ParserComponent
    {
        public function getType() : string
        {
        }
        public function getContent()
        {
        }
    }
    class Event extends \Bitrix\Calendar\ICal\Basic\BasicComponent implements \Bitrix\Calendar\ICal\Parser\ParserComponent
    {
        private $alerts = [];
        private $start;
        private $end;
        private $tzStart;
        private $tzEnd;
        private $name;
        private $description = '';
        private $uid;
        private $created;
        private $withTimezone = false;
        private $transparent = null;
        private $attendees = [];
        private $organizer = null;
        private $status = null;
        private $rrule;
        private $withTime;
        private $location = null;
        private $modified;
        private $sequence = 0;
        private $dtstamp;
        private $url;
        private $categories;
        private $exDate;
        private $attachments;
        public static function getInstance(string $uid) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function __construct(string $uid)
        {
        }
        public function getType() : string
        {
        }
        public function getProperties() : array
        {
        }
        public function setStart($start = []) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setEnd($end = []) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setDescription($description) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setSummary($summary) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setSequence($sequence) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setCreated($created) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setDTStamp($dtstamp) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setLocation($location) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setUrl($url = []) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setRRule($rrule = []) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setTransparent($transp) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setCategories($categories) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setOrganizer($organizer) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setAttendees($attendees) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setModified($modified) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setExDate($exDate) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setStatus($status) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setAttachment($attachments) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function setSubComponents($subComponents) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        public function getContent() : array
        {
        }
        public function getStart() : \Bitrix\Main\Type\Date
        {
        }
        public function getEnd() : \Bitrix\Main\Type\Date
        {
        }
        public function getTzFrom() : \DateTimeZone
        {
        }
        public function getTzTo() : \DateTimeZone
        {
        }
        public function getDescription() : ?string
        {
        }
        public function getName() : ?string
        {
        }
        public function hasSkipDay() : ?bool
        {
        }
        public function getUid() : ?string
        {
        }
        public function getCreated() : \Bitrix\Main\Type\DateTime
        {
        }
        public function getModified() : \Bitrix\Main\Type\DateTime
        {
        }
        public function getStatus() : ?string
        {
        }
        public function getImportance()
        {
        }
        public function getLocation() : ?string
        {
        }
        public function getAlert()
        {
        }
        public function getRRule() : array
        {
        }
        public function getExDate()
        {
        }
        public function getTransparent() : ?string
        {
        }
        public function getOrganizer() : ?array
        {
        }
        public function getAttendees() : ?array
        {
        }
        public function getDtStamp() : \Bitrix\Main\Type\DateTime
        {
        }
        public function getUrl() : ?string
        {
        }
        public function getCategories() : ?string
        {
        }
        public function getVersion()
        {
        }
        public function getAttachmentLink() : array
        {
        }
        private function isFullDayEvent(array $dateTime = null) : bool
        {
        }
    }
    class Parser
    {
        private $data;
        /**
         * @var Generator|null
         */
        private $linesGenerator;
        /**
         * @var array
         */
        private $components;
        public static function getInstance($data) : \Bitrix\Calendar\ICal\Parser\Parser
        {
        }
        public function __construct($data)
        {
        }
        public function handleData() : \Bitrix\Calendar\ICal\Parser\Parser
        {
        }
        private function getLine()
        {
        }
        private function parse()
        {
        }
        public function getComponents() : array
        {
        }
    }
    class Calendar extends \Bitrix\Calendar\ICal\Basic\BasicComponent implements \Bitrix\Calendar\ICal\Parser\ParserComponent
    {
        private $events = [];
        private $timezones = [];
        private $name;
        private $description;
        private $withTimezone = false;
        private $refreshInterval;
        private $productIdentifier;
        private $method;
        private $version;
        private $calScale;
        public static function getInstance(string $name = '') : \Bitrix\Calendar\ICal\Parser\Calendar
        {
        }
        public function __construct($name)
        {
        }
        public function getType() : string
        {
        }
        public function getProperties() : array
        {
        }
        public function setMethod($method) : \Bitrix\Calendar\ICal\Parser\Calendar
        {
        }
        public function setProdId($prodId) : \Bitrix\Calendar\ICal\Parser\Calendar
        {
        }
        public function setCalScale($calscale) : \Bitrix\Calendar\ICal\Parser\Calendar
        {
        }
        public function setVersion($version) : \Bitrix\Calendar\ICal\Parser\Calendar
        {
        }
        public function setSubComponents(array $subComponents) : \Bitrix\Calendar\ICal\Parser\Calendar
        {
        }
        public function handleEvents()
        {
        }
        public function handleTimezones()
        {
        }
        public function getContent() : array
        {
        }
        public function getEvents() : array
        {
        }
        public function getProdId() : string
        {
        }
        public function getVersion() : string
        {
        }
        public function getTimezones() : array
        {
        }
        public function getMethod() : string
        {
        }
        private function getCalScale()
        {
        }
    }
    class FactoryComponents
    {
        /**
         * @var string
         */
        private $componentName;
        /**
         * @var BasicComponent
         */
        private $component;
        public static function createInstance(string $componentName) : \Bitrix\Calendar\ICal\Parser\FactoryComponents
        {
        }
        public function __construct(string $componentName)
        {
        }
        public function createComponent($properties, $subComponents) : \Bitrix\Calendar\ICal\Parser\FactoryComponents
        {
        }
        public function getComponent()
        {
        }
        private function getStandardComponent($properties) : \Bitrix\Calendar\ICal\Basic\Observance
        {
        }
        private function getCalendarComponent($properties, $subComponents) : \Bitrix\Calendar\ICal\Parser\Calendar
        {
        }
        private function getEventComponent($properties, $subComponents) : \Bitrix\Calendar\ICal\Parser\Event
        {
        }
        private function getTimezoneComponent($properties, $subComponents) : \Bitrix\Calendar\ICal\Parser\Timezone
        {
        }
    }
    class Timezone extends \Bitrix\Calendar\ICal\Basic\BasicComponent implements \Bitrix\Calendar\ICal\Parser\ParserComponent
    {
        private $tzid;
        private $tzurl;
        /**
         * @var array
         */
        private $standard;
        /**
         * @var array
         */
        private $daylight;
        public static function getInstance() : \Bitrix\Calendar\ICal\Parser\Timezone
        {
        }
        public function __construct()
        {
        }
        public function getType() : string
        {
        }
        public function getProperties() : array
        {
        }
        public function setTimezoneId($value) : \Bitrix\Calendar\ICal\Parser\Timezone
        {
        }
        public function setTimezoneUrl($value)
        {
        }
        public function setSubComponents(array $subComponents)
        {
        }
        protected function setContent() : \Bitrix\Calendar\ICal\Basic\Content
        {
        }
        public function getContent()
        {
        }
    }
    class ParserManager
    {
        /**
         * @var array
         */
        private $data;
        /**
         * @var array
         */
        private $timezones;
        /**
         * @var array
         */
        private $events = [];
        /**
         * @var array
         */
        private $components = [];
        /**
         * @var string
         */
        private $method = '';
        public static function getInstance(string $data) : \Bitrix\Calendar\ICal\Parser\ParserManager
        {
        }
        public function __construct(string $data = '')
        {
        }
        public function parseData() : \Bitrix\Calendar\ICal\Parser\ParserManager
        {
        }
        public function handleComponents() : \Bitrix\Calendar\ICal\Parser\ParserManager
        {
        }
        public function getComponents() : array
        {
        }
        public function getEvents()
        {
        }
        public function getProcessedEvents()
        {
        }
        public function getMethod()
        {
        }
    }
    class Line
    {
        private $name;
        private $value;
        private $params = [];
        private $line;
        public static function getInstance(string $line)
        {
        }
        public function __construct(string $line)
        {
        }
        public function prepareData()
        {
        }
        public function isBegin() : bool
        {
        }
        public function isEnd() : bool
        {
        }
        public function getValue() : string
        {
        }
        public function getName() : string
        {
        }
        public function getParams() : array
        {
        }
        public function getValueAsArray() : array
        {
        }
        public function __toString()
        {
        }
        public function count()
        {
        }
        private function getValueFromString(int $valuePos) : string
        {
        }
    }
}
namespace Bitrix\Calendar\ICal {
    class OutcomingEventManager
    {
        const ATTACHMENT_NAME = 'invite.ics';
        const CHARSET = 'utf-8';
        const CONTENT_TYPE = 'text/calendar';
        const MAX_SENT = 3;
        /**
         * @var string
         */
        private $method;
        /**
         * @var string
         */
        private $uid;
        /**
         * @var string
         */
        private $status;
        /**
         * @var array
         */
        private $eventFields;
        /**
         * @var array
         */
        private $attendees;
        /**
         * @var array
         */
        private $receiver;
        /**
         * @var array
         */
        private $sender;
        private $answer;
        /**
         * @var mixed
         */
        private $changeFields;
        private $counterInvitations;
        public static function getInstance(array $params) : \Bitrix\Calendar\ICal\OutcomingEventManager
        {
        }
        public function __construct(array $params)
        {
        }
        public function __serialize() : array
        {
        }
        public function __unserialize(array $data) : void
        {
        }
        public function inviteUser() : \Bitrix\Calendar\ICal\OutcomingEventManager
        {
        }
        public function replyInvitation() : \Bitrix\Calendar\ICal\OutcomingEventManager
        {
        }
        public function cancelInvitation() : \Bitrix\Calendar\ICal\OutcomingEventManager
        {
        }
        public function getUId() : string
        {
        }
        public function incrementCounterInvitations()
        {
        }
        public function getEventId()
        {
        }
        public function getEvent()
        {
        }
        public function getMethod()
        {
        }
        public function getCountInvitations()
        {
        }
        public function getStatus() : string
        {
        }
        public function getReceiver()
        {
        }
        private function getSenderAddress() : string
        {
        }
        private function getReceiverAddress() : string
        {
        }
        private function getBodyMessage() : string
        {
        }
        private function getSubjectMessage() : string
        {
        }
        private function getFiles() : array
        {
        }
        private function getRequestContent() : array
        {
        }
        private function getRequestMailEventFields() : array
        {
        }
        private function getReplyMailEventFields()
        {
        }
        private function getCancelMailEventFields()
        {
        }
        private function getAttendeesList() : string
        {
        }
        private function getOrganizerName() : string
        {
        }
        private function getFilesLink()
        {
        }
        private function getMessageId() : string
        {
        }
        private function getMessageReplyTo() : string
        {
        }
        private function getReplyContent() : array
        {
        }
        private function getReplyBodyMessage()
        {
        }
        private function getCancelContent() : array
        {
        }
        private function getDateForTemplate()
        {
        }
        private function getEditTitle()
        {
        }
        private function getChangeFieldsString()
        {
        }
        private function checkOrganizerEmail()
        {
        }
    }
    class OutcomingAttachmentManager extends \Bitrix\Calendar\ICal\Basic\AttachmentManager
    {
        private $event = [];
        private $attendees = [];
        private $attachment = '';
        private $method = '';
        private $uid = '';
        public function __construct($data, $attendees, $method)
        {
        }
        public function prepareRequestAttachment() : \Bitrix\Calendar\ICal\OutcomingAttachmentManager
        {
        }
        public function getAttachment() : string
        {
        }
        public function getUid()
        {
        }
        public function prepareReplyAttachment() : \Bitrix\Calendar\ICal\OutcomingAttachmentManager
        {
        }
        public function prepareCancelAttachment() : \Bitrix\Calendar\ICal\OutcomingAttachmentManager
        {
        }
        private function getReplyAddress() : string
        {
        }
        private function prepareRequestEvent()
        {
        }
    }
}
namespace Bitrix\Calendar\ICal\Builder {
    interface BuilderComponent
    {
        public function setContent() : \Bitrix\Calendar\ICal\Basic\Content;
    }
    class StandardObservances extends \Bitrix\Calendar\ICal\Basic\Observance implements \Bitrix\Calendar\ICal\Builder\BuilderComponent
    {
        public function getType() : string
        {
        }
    }
    class Event extends \Bitrix\Calendar\ICal\Basic\BasicComponent implements \Bitrix\Calendar\ICal\Builder\BuilderComponent
    {
        private $alerts = [];
        private $starts;
        private $ends;
        private $name;
        private $description = '';
        private $address;
        private $addressName;
        private $uid;
        private $created;
        private $withTimezone = false;
        private $classification = null;
        private $transparent = null;
        private $attendees = [];
        private $organizer = null;
        private $status = null;
        private $rrule;
        private $withTime;
        private $location = null;
        private $modified;
        private $sequence = 0;
        private $attaches = [];
        private $exdates = [];
        private $dtStamp;
        private $url;
        public static function getInstance($uid) : \Bitrix\Calendar\ICal\Builder\EVent
        {
        }
        public function __construct($uid)
        {
        }
        public function getType() : string
        {
        }
        public function setRRule(?array $rrule = null) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setWithTime(?bool $withTime = false) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setLocation(?string $location = null)
        {
        }
        public function setModified($modified = null) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setSequence($sequence = null) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function getProperties() : array
        {
        }
        public function setStartsAt(?\Bitrix\Main\Type\Date $starts = null) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setEndsAt(?\Bitrix\Main\Type\Date $ends = null) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setPeriod(?\Bitrix\Main\Type\Date $starts = null, \Bitrix\Main\Type\Date $ends = null) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setName(?string $name = null) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setDescription(?string $description = null) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setAddress(?string $address, ?string $name = null) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setAddressName(?string $name) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setCreatedAt(?\Bitrix\Main\Type\Date $created = null) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setWithTimezone(?bool $param = null) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setAlert(\Bitrix\Calendar\ICal\Builder\Alert $alert) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setAlertBefore(int $min, string $message = null) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setClassification($classification = null) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setTransparent($transp = null) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setAttendees(?array $attendees = null) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setOrganizer($organizer, $mailto = null) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setStatus($status) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setAttaches(?array $attaches) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setExdates(?string $exdates = null, ?string $tz = null) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setDtStamp(?\Bitrix\Main\Type\Date $dtStamp) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setUrl($url) : \Bitrix\Calendar\ICal\Builder\Event
        {
        }
        public function setContent() : \Bitrix\Calendar\ICal\Basic\Content
        {
        }
    }
    class DaylightObservances extends \Bitrix\Calendar\ICal\Basic\Observance implements \Bitrix\Calendar\ICal\Builder\BuilderComponent
    {
        public function getType() : string
        {
        }
    }
    class Alert
    {
        private const TRIGGER_START = 'trigger_start';
        private const TRIGGER_END = 'trigger_end';
        private const TRIGGER_DATE = 'trigger_date';
        private $triggerDate;
        private $triggerInterval;
        private $triggerMode = self::TRIGGER_DATE;
        private $message;
        public static function date(\Bitrix\Main\Type\Date $date, string $description = null) : \Bitrix\Calendar\ICal\Builder\Alert
        {
        }
        public static function minutesBeforeStart(int $minutes, string $description = null) : \Bitrix\Calendar\ICal\Builder\Alert
        {
        }
        public static function minutesAfterStart(int $min, string $description = null) : \Bitrix\Calendar\ICal\Builder\Alert
        {
        }
        public static function minutesBeforeEnd(int $min, string $description = null) : \Bitrix\Calendar\ICal\Builder\Alert
        {
        }
        public static function minutesAfterEnd(int $min, string $description = null) : \Bitrix\Calendar\ICal\Builder\Alert
        {
        }
        private static function getInstance(array $reminds = [], $description = '') : \Bitrix\Calendar\ICal\Builder\Alert
        {
        }
        public function __construct(array $reminds = [], $description = '')
        {
        }
        public function getType() : string
        {
        }
        public function getRequiredProperties() : array
        {
        }
        public function message(string $message) : \Bitrix\Calendar\ICal\Builder\Alert
        {
        }
        public function triggerDate(\Bitrix\Main\Type\Date $triggerAt) : \Bitrix\Calendar\ICal\Builder\Alert
        {
        }
        public function triggerAtStart(\DateInterval $interval) : \Bitrix\Calendar\ICal\Builder\Alert
        {
        }
        public function triggerAtEnd(\DateInterval $interval) : \Bitrix\Calendar\ICal\Builder\Alert
        {
        }
        protected function setContent() : \Bitrix\Calendar\ICal\Builder\Content
        {
        }
        private function resolveTriggerProperty()
        {
        }
    }
    class Calendar extends \Bitrix\Calendar\ICal\Basic\BasicComponent implements \Bitrix\Calendar\ICal\Builder\BuilderComponent
    {
        private $events = [];
        private $timezones = [];
        private $name;
        private $description;
        private $withTimezone = false;
        private $refreshInterval;
        private $productIdentifier;
        private $method;
        public static function getInstance(string $name = null) : \Bitrix\Calendar\ICal\Builder\Calendar
        {
        }
        public function __construct(string $name = null)
        {
        }
        public function getType() : string
        {
        }
        public function getProperties() : array
        {
        }
        public function setMethod($method) : \Bitrix\Calendar\ICal\Builder\Calendar
        {
        }
        public function setName(string $name) : \Bitrix\Calendar\ICal\Builder\Calendar
        {
        }
        public function setDescription(string $description) : \Bitrix\Calendar\ICal\Builder\Calendar
        {
        }
        public function setIdentifier(string $identifier) : \Bitrix\Calendar\ICal\Builder\Calendar
        {
        }
        public function setEvent($event) : \Bitrix\Calendar\ICal\Builder\Calendar
        {
        }
        public function setTimezones($timezone) : \Bitrix\Calendar\ICal\Builder\Calendar
        {
        }
        public function setWithTimezone() : \Bitrix\Calendar\ICal\Builder\Calendar
        {
        }
        public function refreshInterval(int $min) : \Bitrix\Calendar\ICal\Builder\Calendar
        {
        }
        public function get() : string
        {
        }
        public function setContent() : \Bitrix\Calendar\ICal\Basic\Content
        {
        }
    }
    class Timezone extends \Bitrix\Calendar\ICal\Basic\BasicComponent implements \Bitrix\Calendar\ICal\Builder\BuilderComponent
    {
        private $id;
        private $observances = [];
        public static function getInstance() : \Bitrix\Calendar\ICal\Builder\Timezone
        {
        }
        public function __construct()
        {
        }
        public function getType() : string
        {
        }
        public function getProperties() : array
        {
        }
        public function setTimezoneId(string $id = null) : \Bitrix\Calendar\ICal\Builder\Timezone
        {
        }
        public function setObservance(\Bitrix\Calendar\ICal\Basic\Observance $observance)
        {
        }
        /**
         * @return Content
         */
        public function setContent() : \Bitrix\Calendar\ICal\Basic\Content
        {
        }
    }
    class ComponentCreator
    {
        private $content;
        public function __construct(\Bitrix\Calendar\ICal\Basic\Content $content)
        {
        }
        public function build() : string
        {
        }
        public function buildComponent() : array
        {
        }
        private function buildProperties() : array
        {
        }
        private function buildSubComponents() : array
        {
        }
        private function chipLine(string $line) : array
        {
        }
    }
}
namespace Bitrix\Calendar\ICal {
    class IncomingAttachmentManager extends \Bitrix\Calendar\ICal\Basic\AttachmentManager
    {
        private $data;
        /**
         * @var array
         */
        private $events;
        private $method;
        public static function getInstance(array $params)
        {
        }
        public function __construct(array $params)
        {
        }
        public function getAttachment()
        {
        }
        public function prepareEventAttachment() : \Bitrix\Calendar\ICal\IncomingAttachmentManager
        {
        }
        public function convertEventFields()
        {
        }
        public function getEvent()
        {
        }
        public function getMethod()
        {
        }
    }
}
namespace Bitrix\Calendar\Integration\Sender {
    class AllowedSender
    {
        /**
         * Get list of allowed senders
         * @param int|null $forUserId For whom.
         * @return array
         */
        public static function getList($forUserId = null)
        {
        }
        /**
         * Is $email an allowed sender or not
         * @param string $email Sender email.
         * @param int|null $userId For whom.
         * @return bool
         */
        public static function isAllowed($email, $userId = null)
        {
        }
    }
}
namespace Bitrix\Calendar\Integration\Dav {
    class SyncAdapter
    {
        private static $sectionIndex = [];
        /**
         * Returns collection of sections for user or other entity.
         *
         * @param string $entityType entity type (example: 'user' for user's calendars).
         * @param int $entityId id of entity.
         * @param array $params additional params.
         * @return array list of calendar sections
         */
        public static function getSectionList($entityType, $entityId, $params = [])
        {
        }
        /**
         * Returns calendar events for given section.
         *
         * @param string $sectionId id of section (collection) to select events from.
         * @param array $params additional params.
         * @return array list of calendar events
         */
        public static function getEventList($sectionId = false, $params = [])
        {
        }
        /**
         * Returns calendar events.
         *
         * @param string $userId user id
         * @param array $params additional params.
         * @return array list of tasks prepared for viewing in calendar view
         */
        public static function getTaskList($userId, $params = [])
        {
        }
        /**
         * Deletes calendar event
         *
         * @param integer $eventId - id of the event.
         * @param array $params contains additional information.
         * @return true or false - result of the operation
         */
        public static function deleteEvent($eventId, $params = [])
        {
        }
    }
}
namespace Bitrix\Calendar\Integration\Bitrix24 {
    class Limitation
    {
        const ICAL_EVENT_LIMIT_OPTION = "event_with_email_guest_amount";
        /**
         * Returns limitations for bitrix 24 for unpaid license
         * @return int (-1 if no limitation)
         */
        public static function getEventWithEmailGuestLimit()
        {
        }
        public static function getCountEventWithEmailGuestAmount()
        {
        }
        public static function setCountEventWithEmailGuestAmount($value = 0)
        {
        }
        public static function increaseEventWithEmailGuestAmount()
        {
        }
        public static function isEventWithEmailGuestAllowed()
        {
        }
    }
}
namespace Bitrix\Calendar\Integration\SocialNetwork {
    class Log
    {
        const EVENT_ID_CALENDAR = 'calendar';
        /**
         * Returns set EVENT_ID processed by handler to generate content for full index.
         *
         * @param void
         * @return array
         */
        public static function getEventIdList()
        {
        }
        /**
         * Returns content for LogIndex.
         *
         * @param Event $event Event from LogIndex::setIndex().
         * @return EventResult
         */
        public static function onIndexGetContent(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Calendar\Controller {
    /**
     * Class ResourceBookingAjax
     */
    class ResourceBookingAjax extends \Bitrix\Main\Engine\Controller
    {
        public function configureActions()
        {
        }
        public function getPlannerDataAction()
        {
        }
        public function getDefaultUserfieldSettingsAction()
        {
        }
        public function getBitrix24LimitationAction()
        {
        }
        public function getUserSelectorDataAction()
        {
        }
        public function getFieldParamsAction()
        {
        }
        public function getFillFormDataAction()
        {
        }
    }
    /**
     * Class CalendarAjax
     */
    class CalendarAjax extends \Bitrix\Main\Engine\Controller
    {
        public function configureActions()
        {
        }
        public function getTimezoneListAction()
        {
        }
        public function editCalendarSectionAction()
        {
        }
        public function hideExternalCalendarSectionAction()
        {
        }
        public function getTrackingSectionsAction()
        {
        }
        public function setTrackingSectionsAction()
        {
        }
        public function getEditEventSliderAction()
        {
        }
        public function getViewEventSliderAction()
        {
        }
        public function getCrmUserfieldAction()
        {
        }
        public function updatePlannerAction()
        {
        }
        public function getPlannerAction()
        {
        }
        public function saveLocationListAction()
        {
        }
        public function deleteCalendarEntryAction($entryId, $recursionMode)
        {
        }
        public function changeRecurciveEntryUntilAction($entryId, $untilDate)
        {
        }
        public function excludeRecursionDateAction($entryId, $excludeDate)
        {
        }
        public function editEntryAction()
        {
        }
        public function deleteCalendarSectionAction()
        {
        }
        public function setMeetingStatusAction()
        {
        }
        public function updateRemindersAction()
        {
        }
        public function getSyncInfoAction()
        {
        }
        public function handleMobileSyncAction()
        {
        }
        public function removeConnectionAction()
        {
        }
        public function setSectionStatusAction()
        {
        }
        public function addConnectionAction()
        {
        }
        public function editConnectionAction()
        {
        }
        public function updateConnectionAction()
        {
        }
        public function sendAnalyticsLabelAction()
        {
        }
        public function getAuthLinkAction()
        {
        }
        public function getUserSelectorComponentAction()
        {
        }
        public function updateColorAction()
        {
        }
        public function getSettingsSliderAction($uid, $isPersonal, $showGeneralSettings)
        {
        }
        public function getAllowedMailboxDataAction()
        {
        }
        public function getAllowedMailboxListAction()
        {
        }
        public function createEventChatAction($entryId)
        {
        }
    }
}
namespace Bitrix\Calendar {
    class UserSettings
    {
        private static $settings = ['view' => 'month', 'CalendarSelCont' => false, 'SPCalendarSelCont' => false, 'meetSection' => false, 'crmSection' => false, 'showDeclined' => false, 'denyBusyInvitation' => false, 'collapseOffHours' => 'Y', 'showWeekNumbers' => 'N', 'showTasks' => 'Y', 'syncTasks' => 'N', 'showCompletedTasks' => 'N', 'lastUsedSection' => false, 'sendFromEmail' => false];
        public static function set($settings = [], $userId = false)
        {
        }
        public static function get($userId = false)
        {
        }
        public static function getFormSettings($formType, $userId = false)
        {
        }
        public static function getTrackingUsers($userId = false, $params = [])
        {
        }
        public static function setTrackingUsers($userId = false, $value = [])
        {
        }
        public static function getTrackingGroups($userId = false, $params = [])
        {
        }
        public static function setTrackingGroups($userId = false, $value = [])
        {
        }
        public static function getHiddenSections($userId = false)
        {
        }
        public static function getSectionCustomization($userId = false)
        {
        }
        public static function setSectionCustomization($userId = false, $data = [])
        {
        }
        public static function getFollowedSectionIdList($userId = false)
        {
        }
    }
    class Util
    {
        const USER_SELECTOR_CONTEXT = "CALENDAR";
        const LIMIT_NUMBER_BANNER_IMPRESSIONS = 3;
        private static $userAccessCodes = array();
        public static function isManagerForUser($managerId, $userId)
        {
        }
        public static function isSectionStructureConverted()
        {
        }
        public static function getTimestamp($date, $round = true, $getTime = true)
        {
        }
        public static function isTimezoneValid($timeZone) : bool
        {
        }
        public static function prepareTimezone($tz = null) : \DateTimeZone
        {
        }
        public static function getDateObject(string $date = null, $fullDay = true, $tz = 'UTC') : \Bitrix\Main\Type\Date
        {
        }
        public static function getUserSelectorContext()
        {
        }
        public static function getIcalTemplateDate(array $params = null) : string
        {
        }
        public static function getIcalTemplateRRule(array $rrule = null, array $params = null) : string
        {
        }
        public static function checkRuZone() : bool
        {
        }
        public static function convertEntitiesToCodes($entityList = [])
        {
        }
        public static function convertCodesToEntities($codeList = [])
        {
        }
        public static function getUsersByEntityList($entityList, $fetchUsers = false)
        {
        }
        public static function getDefaultEntityList($userId, $type, $ownerId)
        {
        }
        public static function getAttendees(array $codeAttendees = null, string $stringWrapper = '') : array
        {
        }
        /**
         * @return bool
         */
        public static function isShowDailyBanner() : bool
        {
        }
        public static function isExtranetUser(int $userId)
        {
        }
    }
}
namespace Bitrix\Calendar\Sync {
    final class GoogleApiPush
    {
        const RENEW_LIMIT = 3;
        const CREATE_LIMIT = 2;
        const PROCESS_LIMIT = 4;
        const CLEAR_LIMIT = 6;
        const CHECK_LIMIT = 10;
        const CHECK_INTERVAL_CHANNEL = 14400;
        //60*60*4
        const RENEW_INTERVAL_CHANNEL = 14400;
        //60*60*4
        /**
         * Checks connection and ability to create push channel
         * Recommended agent interval = 4h
         */
        public static function renewWatchChannels()
        {
        }
        public static function checkSectionsPush($localSections, $userId, $connectionId)
        {
        }
        /**
         * Creates and renew watch channels for connections
         * Recommended interval = 1 hour, for push enable - recommended interval 3 minutes
         *
         * @param int $start
         * @return string
         */
        public static function createWatchChannels($start = 0)
        {
        }
        public static function stopChannel($row = array(), $ownerId = 0)
        {
        }
        /**
         * @param string $lastResult
         * @return bool
         */
        public static function isConnectionError(string $lastResult = null) : bool
        {
        }
        /**
         * @param string $error
         * @return bool
         */
        public static function isWrongChannel(string $error = null) : bool
        {
        }
        /**
         * Stop all push channels agent
         * Recommended interval - 60 sec. Response from google not required
         *
         * @return null|string
         */
        public static function clearPushChannels()
        {
        }
        /**
         * @param $channelId
         * @param $resourceId
         * @return bool
         */
        public static function receivePushSignal($channelId, $resourceId)
        {
        }
        /**
         * Synchronize sections and connections on push signal receive
         * Recommended agent interval = 3 minutes
         *
         * @return string
         */
        public static function processPush()
        {
        }
        public static function checkPushChannel(int $lastIdConnection = 0)
        {
        }
        /**
         * @param array $connectionIds
         * @param array $connections
         */
        private static function checkPushConnectionChannel(array $connectionIds, array $connections) : void
        {
        }
        /**
         * @param array $connectionIds
         * @param array $connections
         */
        private static function checkPushSectionChannel(array $connectionIds, array $connections) : void
        {
        }
        private static function deletePushChannel(array $row)
        {
        }
        /**
         * @param $gApiCalendarId
         * @return bool
         */
        private static function isVirtualCalendar(string $gApiCalendarId = null) : bool
        {
        }
    }
    /**
     * Class GoogleApiSync
     *
     * @package Bitrix\Calendar\Sync
     */
    final class GoogleApiSync
    {
        const MAXIMUM_CONNECTIONS_TO_SYNC = 3;
        const ONE_DAY = 86400;
        //60*60*24;
        const CHANNEL_EXPIRATION = 604800;
        //60*60**24*7
        const CONNECTION_CHANNEL_TYPE = 'BX_CONNECTION';
        const SECTION_CHANNEL_TYPE = 'BX_SECTION';
        const SYNC_EVENTS_LIMIT = 50;
        /**
         * @var GoogleApiTransport
         */
        private $syncTransport;
        private $nextSyncToken = '', $defaultTimezone = 'UTC', $userId = 0, $calendarList = array(), $defaultReminderData = array(), $calendarColors = false, $eventColors = false, $eventMapping = array(
            'DAV_XML_ID' => 'iCalUID',
            'NAME' => 'summary',
            //				'DESCRIPTION'	=>	'description',
            'CAL_DAV_LABEL' => 'etag',
        );
        /**
         * @var int
         */
        private $connectionId;
        /**
         * @var string
         */
        private $nextPageToken = '';
        /**
         * Closes watch channel and asking google to stop pushes
         *
         * @param $channelId
         * @param $resourceId
         */
        public function stopChannel($channelId, $resourceId)
        {
        }
        /**
         * Creates watch channel for connection
         * @param $name
         * @return array
         */
        public function startWatchCalendarList($name)
        {
        }
        private function makeChannelParams($inputSecretWord, $type)
        {
        }
        /**
         * Creates watch channel for new events
         *
         * @param string $calendarId
         * @return array|bool
         */
        public function startWatchEventsChannel($calendarId = 'primary')
        {
        }
        /**
         * GoogleApiSync constructor.
         *
         * @param int $userId
         * @param int $connectionId
         */
        public function __construct($userId = 0, $connectionId = 0)
        {
        }
        /**
         * Test ability to establish google api connection
         * @return bool
         */
        public function testConnection()
        {
        }
        /**
         * Check if errors from transport exists
         * @return array
         */
        public function getTransportErrors()
        {
        }
        private function setColors()
        {
        }
        /**
         * @param int $colorId
         * @param bool $background
         * @return string
         */
        private function getCalendarColor($colorId, $background = true)
        {
        }
        /**
         * @param int $colorId
         * @param bool $background
         * @return string
         */
        private function getEventColor($colorId, $background = true)
        {
        }
        /**
         * Returns connection error code in message;
         *
         * @return array
         */
        public function getTransportConnectionError()
        {
        }
        /**
         * get calendar list from google
         *
         * @param string $syncToken
         * @return array
         */
        public function getCalendarItems()
        {
        }
        /**
         * @return string
         */
        public function getNextSyncToken()
        {
        }
        /**
         * get google calendar events list.
         * By default selecting primary calendar
         * @param array $calendarData
         * @return array
         */
        public function getEvents(array $calendarData) : array
        {
        }
        /**
         * get id of Primary (main) calendar
         *
         * @return string
         */
        public function getPrimaryId()
        {
        }
        /**
         * Get calendar data by provided ID
         *
         * @param $calendarId
         * @return array
         */
        private function getCalendarById($calendarId)
        {
        }
        /**
         * Delete event from specified google calendar
         *
         * @param $eventId
         * @param $calendarId
         * @return array|mixed
         */
        public function deleteEvent($eventId, $calendarId)
        {
        }
        /**
         * publishes event to google calendar, returns iCalUid field or false
         *
         * @param $eventData
         * @param $calendarId
         * @return array
         */
        public function saveEvent($eventData, $calendarId, $parameters = [])
        {
        }
        public function saveBatchEvents($events, $sectionId, $params)
        {
        }
        public function updateLastResultConnection(string $lastResult) : void
        {
        }
        public function updateSuccessLastResultConnection() : void
        {
        }
        /**
         * Prepearing event for future use
         *
         * @param $event
         * @return array
         */
        private function prepareEvent($event)
        {
        }
        private function prepareTimezone($timeZone)
        {
        }
        private function prepareToSaveEvent($eventData, $params = null)
        {
        }
        private function sendToSaveEvent($newEvent, $params)
        {
        }
        public function createCalendar($calendar)
        {
        }
        private function prepareCalendar($calendar)
        {
        }
        /**
         * Get owner of the channel
         * @param string $channelId
         * @return number or null
         */
        public static function getChannelOwner($channelId = null)
        {
        }
        public function hasMoreEvents()
        {
        }
        /**
         * @return array
         */
        private function hasExpiredSyncTokenError() : array
        {
        }
        /**
         * @param array $result
         * @return array
         */
        private function processResponseReceivingEvents(array $result) : array
        {
        }
        /**
         * @return array
         */
        private function getRequestParamsWithSyncToken() : array
        {
        }
        /**
         * @return array
         */
        private function getRequestParamsForFirstSync() : array
        {
        }
        /**
         * @param $gApiCalendarId
         * @return array|mixed
         */
        private function runSyncEvents($gApiCalendarId)
        {
        }
    }
    class GoogleApiSection
    {
        private $userId, $connection;
        /**
         * GoogleApiSection constructor.
         * @param $userId
         */
        public function __construct($userId)
        {
        }
        /**
         * @return array|bool
         */
        public function sendSections()
        {
        }
        /**
         * @param $section
         *
         * @return array|null
         */
        public function sendSection($section)
        {
        }
        /**
         * @param $responseFields
         * @param $section
         * @return integer
         */
        private function saveSection($responseFields, $section)
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function getLocalSections()
        {
        }
        /**
         * @return bool|mixed
         * @throws \Bitrix\Main\LoaderException
         */
        private function getGoogleConnection()
        {
        }
        /**
         * @param $sectionId
         * @return array|false
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function getSectionById($sectionId)
        {
        }
    }
    class GoogleApiBatch
    {
        const SIZE = 50;
        const FINISH = true;
        const NEXT = false;
        private $sectionId, $dateSync;
        private $userId = 0, $gApiCalendarId = '';
        /**
         * GoogleApiBatch constructor.
         * @param $sectionId
         */
        public function __construct($sectionId)
        {
        }
        /**
         * @return bool
         */
        public function syncStepLocalEvents()
        {
        }
        /**
         * @param $events
         * @return bool
         */
        private function syncEvents($events)
        {
        }
        /**
         * @return bool
         * @throws \Bitrix\Main\ObjectException
         */
        private function syncInstances()
        {
        }
        /**
         * @return int
         * @throws \Bitrix\Main\ObjectException
         */
        private function getDateSync()
        {
        }
        /**
         * @return array
         */
        public function getEvents()
        {
        }
        /**
         * @return array
         */
        private function getInstances()
        {
        }
        /**
         * @param $parameters
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function getDbEvents($parameters)
        {
        }
        /**
         * @param $events
         * @return bool
         */
        private function saveEvents($events)
        {
        }
        /**
         * @param $eventIds
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function getEventsById($eventIds)
        {
        }
        /**
         * @param bool $timeZone
         * @return \DateTimeZone
         */
        private function prepareTimezone($timeZone = false)
        {
        }
        /**
         * @param $sectionId
         * @return array|false
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function getSectionById($sectionId)
        {
        }
        /**
         * @param $event
         * @return string
         */
        private function getExDate($event)
        {
        }
        /**
         * @param $eventId
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function getInstanceByRecurrenceId($eventId)
        {
        }
        /**
         * @param $event
         */
        private function prepareEvent(&$event)
        {
        }
        /**
         * @param $event
         * @return mixed
         * @throws \Bitrix\Main\ObjectException
         */
        private function updateEventFields($event)
        {
        }
    }
    /**
     * Class GoogleApiTransport
     *
     * @package Bitrix\Calendar\Sync
     */
    final class GoogleApiTransport
    {
        const API_BASE_URL = "https://www.googleapis.com/calendar/v3/";
        private $client;
        private $errors;
        private $currentMethod = '';
        /**
         * BEGIN PUSH SECTION
         *
         *
         */
        /**
         * @param $channelInfo
         * @return array
         * @throws ArgumentException
         */
        public function openCalendarListChannel($channelInfo)
        {
        }
        /**
         * @param $calendarId
         * @param $channelInfo
         * @return array
         * @throws ArgumentException
         */
        public function openEventsWatchChannel($calendarId, $channelInfo)
        {
        }
        /**
         * @param $channelId
         * @param $resourceId
         * @return array
         * @throws ArgumentException
         */
        public function stopChannel($channelId, $resourceId)
        {
        }
        /**
         * END PUSH SECTION
         */
        /**
         * GoogleApiTransport constructor.
         * @throws SystemException
         * @param int $userId
         */
        public function __construct($userId)
        {
        }
        /**
         * Doing request to API server
         *
         * @param $type
         * @param $url
         * @param array $requestParams
         * @throws ArgumentException
         * @return array
         */
        private function doRequest($type, $url, $requestParams = '')
        {
        }
        /**
         * Deletes event from google calendar
         *
         * @param $eventId
         * @param $calendarId
         * @return array|mixed
         */
        public function deleteEvent($eventId, $calendarId)
        {
        }
        /**
         * Updates only specified event fields
         *
         * @param $patchData
         * @param $calendarId
         * @param $eventId
         * @return array|mixed
         */
        public function patchEvent($patchData, $calendarId, $eventId)
        {
        }
        /**
         * Updates instance for recurring event
         *
         * @param $eventData
         * @param $calendarId
         * @param $instanceId
         * @return array|mixed
         */
        public function updateEvent($eventData, $calendarId, $eventId)
        {
        }
        /**
         * Creates event at google calendar
         *
         * @param $eventData
         * @param $calendarId
         * @return array|mixed
         */
        public function insertEvent($eventData, $calendarId)
        {
        }
        /**
         * Creates event at google calendar
         *
         * @param $eventData
         * @param $calendarId
         * @return array|mixed
         */
        public function importEvent($eventData, $calendarId)
        {
        }
        /**
         * @param string $syncToken
         * @return array|mixed
         */
        public function getCalendarList($syncToken = '')
        {
        }
        /**
         * get google calendar color codes
         *
         * @return array|mixed
         */
        public function getColors()
        {
        }
        /**
         * Get Event List from calendar
         *
         * @param $calendarId
         * @param string $syncToken
         * @return array|mixed
         */
        public function getEvents($calendarId, $requestParams = array())
        {
        }
        /**
         * Getting array of errors.
         *
         * @return array
         */
        public function getErrors()
        {
        }
        /**
         * Getting array of errors with the specified code.
         *
         * @param string $code Code of error.
         * @return array
         */
        public function getErrorsByCode($code)
        {
        }
        /**
         * Getting once error with the specified code.
         *
         * @param string $code Code of error.
         * @return array
         */
        public function getErrorByCode($code)
        {
        }
        /**
         * getting id of the recurrent event instance
         *
         * @param $calendarId
         * @param $eventId
         * @param $originalStart
         * @return array|mixed
         */
        public function getInstanceRecurringEvent($calendarId, $eventId, $originalStart)
        {
        }
        /**
         * Creates local calendar at google calendar
         *
         * @param $eventData
         * @return array|mixed
         */
        public function insertCalendar($calendarData)
        {
        }
        public function sendBatchEvents($body, $calendarId, $params)
        {
        }
        /**
         * Performs multipart/mixed encoding.
         *
         * @param array $postData Entity of POST request
         * @return string
         */
        protected function prepareMultipartMixed($postData, $calendarId, $params)
        {
        }
        public function multipartDecode($response)
        {
        }
        private function getMetaInfo($headers)
        {
        }
        private function getId($headers)
        {
        }
    }
}
namespace {
    class scale extends \CModule
    {
        var $MODULE_ID = "scale";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $errors = \false;
        function scale()
        {
        }
        function InstallDB()
        {
        }
        function UnInstallDB()
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
}
namespace Bitrix\Scale {
    /**
    * Class Logger
    * Makes records to bitrix-system site log
    * @package Bitrix\Scale
    */
    class Logger
    {
        const LOG_LEVEL_DISABLE = 0;
        const LOG_LEVEL_ERROR = 10;
        const LOG_LEVEL_INFO = 20;
        const LOG_LEVEL_DEBUG = 30;
        /**
         * @param $level
         * @param $auditType
         * @param $itemId
         * @param $description
         * @return bool
         */
        public static function addRecord($level, $auditType, $itemId, $description)
        {
        }
        /**
         * @return array
         */
        public static function onEventLogGetAuditTypes()
        {
        }
    }
    /**
     * Class Action
     * @package Bitrix\Scale
     */
    class Action
    {
        protected $id = "";
        protected $userParams = array();
        protected $freeParams = array();
        protected $actionParams = array();
        protected $serverHostname = "";
        protected $shellAdapter = null;
        protected $result = array();
        protected $logLevel = \Bitrix\Scale\Logger::LOG_LEVEL_INFO;
        /**
         * @param string $actionId
         * @param array $actionParams
         * @param string $serverHostname
         * @param array $userParams
         * @param array $freeParams
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Exception
         */
        public function __construct($actionId, $actionParams, $serverHostname = "", $userParams = array(), $freeParams = array())
        {
        }
        protected function getServerParams()
        {
        }
        /**
         * Makes command for shell action execution
         * @param array $inputParams
         * @return string - command to execute
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        protected function makeStartCommand($inputParams = array())
        {
        }
        /**
         * Starts the action execution
         * @param array $inputParams - params from previously started actions
         * @return int code returned by shell
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Exception
         */
        public function start(array $inputParams = array())
        {
        }
        /**
         * @return array Last command execution results
         */
        public function getResult()
        {
        }
        protected function makeLogRecords($command = "", $result = null, $output = "", $error = "")
        {
        }
        protected function log($level, $auditType, $actionId, $description)
        {
        }
    }
    /**
    * Class ActionModifyer
    * @package Bitrix\Scale
    */
    class ActionModifyer
    {
        /**
         * MYSQL_ADD_SLAVE action modifyer
         * @param string $actionId - action idenifyer
         * @param array $actionParams - action parameterss
         * @param string $hostname - server hostname
         * @param array $userParamsValues
         * @return array - modifyed action params
         * @throws NeedMoreUserInfoException
         */
        public static function mysqlAddSlave($actionId, $actionParams, $hostname, $userParamsValues)
        {
        }
        /**
         * MYSQL_ADD_SLAVE, MYSQL_CHANGE_MASTER, MYSQL_DEL_SLAVE actions modifier/
         * @param string $actionId - action idenifyer
         * @param array $actionParams - action parameters
         * @param string $hostname - server hostname
         * @param array $userParamsValues
         * @return array - modifyed action params
         * @throws NeedMoreUserInfoException
         */
        public static function checkExtraDbExist($actionId, $actionParams, $hostname, $userParamsValues)
        {
        }
        /**
         * SET_EMAIL_SETTINGS modifier
         * @param string $actionId
         * @param array $actionParams
         * @param string $hostname
         * @param array $userParamsValues
         * @return array mixed
         */
        public static function emailSettingsModifier($actionId, $actionParams, $hostname, $userParamsValues)
        {
        }
        /**
         * SITE_CREATE_LINK modifier
         * @param string $actionId
         * @param array $actionParams
         * @param string $hostname
         * @param array $userParamsValues
         * @return array mixed
         */
        public static function siteCreateLinkModifier($actionId, $actionParams, $hostname, $userParamsValues)
        {
        }
    }
    /**
     * Class Monitoring
     * @package Bitrix\Scale
     */
    class Monitoring
    {
        protected static $rrdPath = "/var/lib/munin";
        protected static $monitoringCategories = array();
        /**
         * Checks if database files are created
         * @return bool
         */
        public static function isDatabaseCreated($hostname)
        {
        }
        /**
         * Checks if monitoring is enabled
         * @return bool
         */
        public static function isEnabled()
        {
        }
        /**
         * Returns value for server role loadbar (thermometr)
         * @param $hostname
         * @param $roleId
         * @return bool|float
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Exception
         * @throws \Bitrix\Main\IO\FileNotFoundException
         */
        public static function getLoadBarValue($hostname, $roleId)
        {
        }
        public static function getInfoTableCategory($hostname, $categoryId)
        {
        }
        public static function getInfoTableCategoriesList($hostname)
        {
        }
        public static function getValue($hostname, $categoryId, $param)
        {
        }
        protected static function getItemValue($hostname, $categoryId, $item, $param)
        {
        }
        protected static function extractRrdValue($data)
        {
        }
        protected static function getAnsibleSetup($hostname)
        {
        }
        protected static function getHddsParams($hostname)
        {
        }
        protected static function getHddsUsed($hostname, $param)
        {
        }
        protected static function getHddsValues($hostname, $param)
        {
        }
        protected static function getNetParams($hostname)
        {
        }
        protected static function getHddsUtilization($hostname)
        {
        }
        /**
         * @param float $size
         * @param int $precision
         * @return string
         */
        public static function formatSize($size, $precision = 2)
        {
        }
        protected static function getMemoryUsage($hostname)
        {
        }
        protected static function getMemoryUsageValue($hostname)
        {
        }
    }
    /**
     * Class RolesData
     * @package Bitrix\Scale
     */
    class RolesData
    {
        /**
         * Returns role defenition
         * @param string $roleId
         * @return array role params
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getRole($roleId)
        {
        }
        /**
         * @return array All roles defenitions
         * @throws \Bitrix\Main\IO\FileNotFoundException
         */
        public static function getList()
        {
        }
        /**
         * @param string $roleId
         * @return array graphs
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getGraphsCategories($roleId)
        {
        }
    }
    /**
     * Class ShellAdapter
     * Executes shell commands
     * @package Bitrix\Scale
     */
    class ShellAdapter
    {
        const SUCCESS_RESULT = 0;
        protected $resOutput = "";
        protected $resError = "";
        /**
         * Checks and escapes command
         * @param string $command
         * @return string escapedSring
         * @throws \Bitrix\Main\ArgumentNullException
         */
        protected function prepareExecution($command)
        {
        }
        /**
         * Starts execution fo shell command
         * Results can be obtained by another special commands
         * @param $command
         * @return true;
         */
        public function asyncExec($command)
        {
        }
        /**
         * @return string Last command output
         */
        public function getLastOutput()
        {
        }
        /**
         * @return string last error output
         */
        public function getLastError()
        {
        }
        /**
         * Executes shell command & return shell command execution result
         * @param string $command
         * @return bool
         */
        public function syncExec($command)
        {
        }
    }
    /**
     * Class ActionsData
     * @package Bitrix\Scale
     */
    class ActionsData
    {
        protected static $logLevel = \Bitrix\Scale\Logger::LOG_LEVEL_INFO;
        /**
         * @param $actionId
         * @return array Action's parameters
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getAction($actionId)
        {
        }
        /**
         * @param string $actionId - action idetifyer
         * @param string $serverHostname - server hostname
         * @param array $userParams - params filled by user
         * @param array $freeParams - params filled somewere in code
         * @param array $actionParams - acrion parameters
         * @return Action|ActionsChain|bool
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Exception
         */
        public static function getActionObject($actionId, $serverHostname = "", array $userParams = array(), array $freeParams = array(), array $actionParams = array())
        {
        }
        /**
         * Returns action state
         * @param string $bid -     action bitrix idetifyer
         * @return array
         */
        public static function getActionState($bid)
        {
        }
        /**
         * Returns actions list
         * @param bool $checkConditions - if we need to check conditions
         * @return array of all actions defenitions
         * @throws \Bitrix\Main\IO\FileNotFoundException
         */
        public static function getList($checkConditions = false)
        {
        }
        /**
         * @param array $condition
         * @return bool
         */
        protected static function isConditionSatisfied($condition)
        {
        }
        /**
         * @param int $logLevel
         */
        public static function setLogLevel($logLevel)
        {
        }
        /**
         * Checks if some action is running
         * after page refresh, or then smb. else come to page
         * during the action running.
         * @return array - Action params
         */
        public static function checkRunningAction()
        {
        }
    }
    /**
     * Class GraphData
     * @package Bitrix\Scale
     */
    class GraphData
    {
        /**
         * Returns graphics definition
         * @param string $graphCategory
         * @return array
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getGraphs($graphCategory)
        {
        }
        /**
         * @return array All graphics
         * @throws \Bitrix\Main\IO\FileNotFoundException
         */
        public static function getList()
        {
        }
    }
    /**
     * Class ServersData
     * @package Bitrix\Scale *
     */
    class ServersData
    {
        protected static $bxInfo = array();
        //wrapper_ansible_conf -a bx_info -H hostname
        /**
         * @param $hostname
         * @return array Server's params
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getServer($hostname)
        {
        }
        /**
         * @return array List of servers & their params
         */
        public static function getList()
        {
        }
        /**
         * @param $hostname
         * @return array Server roles
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getServerRoles($hostname)
        {
        }
        public function getDbList($hostname)
        {
        }
        /**
         * @param string $hostname Server hostname.
         * @return array server Info.
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws ServerBxInfoException
         */
        protected static function getBxInfo($hostname)
        {
        }
        /**
         * @param string $hostname Server hostname.
         * @return bool|string - Version of bitrix environment.
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function getBxEnvVer($hostname)
        {
        }
        public static function getGraphCategories($hostname)
        {
        }
        public static function getDbMasterHostname()
        {
        }
    }
    /**
    * Class Helper
    * @package Bitrix\Scale
    */
    class Helper
    {
        const BX_ENV_MIN_VERSION = "7.2.0";
        public static function checkBxEnvVersion($version = false)
        {
        }
        public static function nbsp($str)
        {
        }
        public static function getAvailabilityPage($minutes)
        {
        }
        public static function modifyDbconn($DBHost, $DBName, $DBLogin, $DBPassword)
        {
        }
        public static function modifySettings($DBHost, $DBName, $DBLogin, $DBPassword)
        {
        }
        public static function generatePass($length = 20)
        {
        }
        public static function isExtraDbExist($hostname)
        {
        }
        public static function getNetworkInterfaces()
        {
        }
        public static function isScaleCanBeUsed()
        {
        }
        public static function getTmpDir()
        {
        }
    }
    /**
     * Class Provider
     * @package Bitrix\Scale
     */
    class Provider
    {
        /**
         * @param array $params Params for selection.
         * @return array List of available providers.
         */
        public static function getList($params = array())
        {
        }
        /**
         * @param string $providerId Identifier.
         * @return array Status information.
         * @throws ArgumentNullException
         */
        public static function getStatus($providerId)
        {
        }
        /**
         * @param string $providerId Identifier.
         * @return array Avilable configurations.
         * @throws ArgumentNullException
         */
        public static function getConfigs($providerId)
        {
        }
        /**
         * @param string $providerId Provider identifier.
         * @param string $configId Config idenifier.
         * @return int Task identifier.
         * @throws ArgumentNullException
         */
        public static function sendOrder($providerId, $configId)
        {
        }
        /**
         * @param string $providerId Provider identifier.
         * @param string $taskId Task identifier.
         * @return array Status params.
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getOrderStatus($providerId, $taskId)
        {
        }
        /**
         * @param string $providerId Provider identifier.
         * @return array List of orders.
         * @throws ArgumentNullException
         */
        public static function getOrdersList($providerId = "")
        {
        }
        /**
         * Add host from order to pull.
         * @param string $providerId Provider identifier.
         * @param string $taskId Task identifier.
         * @return int
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function addToPullFromOrder($providerId, $taskId)
        {
        }
    }
    /**
     * Class ActionsChain
     * @package Bitrix\Scale
     */
    class ActionsChain
    {
        protected $id = "";
        protected $userParams = array();
        protected $freeParams = array();
        protected $actionParams = array();
        protected $resultData = array();
        protected $serverHostname = "";
        public $results = [];
        /**
         * @param string $actionId
         * @param array $actionParams
         * @param string $serverHostname
         * @param array $userParams
         * @param array $freeParams
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function __construct($actionId, $actionParams, $serverHostname = "", $userParams = array(), $freeParams = array())
        {
        }
        public function getResult()
        {
        }
        public function getActionObj($actionId)
        {
        }
        public function start($inputParams = array())
        {
        }
    }
    /**
     * Exception is thrown when we can't comunicate with the slave server.
     */
    class ServerBxInfoException extends \Bitrix\Main\SystemException
    {
        protected $hostname;
        public function __construct($message = "", $hostname = "", \Exception $previous = null)
        {
        }
        public function getHostname()
        {
        }
    }
    /**
     * Class NeedMoreUserInfoException
     * @package Bitrix\Scale
     * If we need more info from user to execute action
     */
    class NeedMoreUserInfoException extends \Bitrix\Main\SystemException
    {
        protected $actionParams;
        public function __construct($message = "", $actionParams = array(), \Exception $previous = null)
        {
        }
        public function getActionParams()
        {
        }
    }
    /**
     * Class SitesData
     * @package Bitrix\Scale *
     */
    class SitesData
    {
        /**
         * @param $siteName
         * @return array site's param
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getSite($siteName, $dbName = false)
        {
        }
        /**
         * @return string
         */
        public static function getKernelSite()
        {
        }
        /**
         * @return array
         */
        public static function getKernelsList()
        {
        }
        /**
         * @return string
         */
        public static function getKernelRoot()
        {
        }
        /**
         * @param string $dbName
         * @return array List of all sites & their params
         */
        public static function getList($dbName = false)
        {
        }
    }
}
namespace {
    class lists extends \CModule
    {
        var $MODULE_ID = "lists";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "N";
        var $errors = \false;
        function lists()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        function installDemoData()
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function OnGetTableSchema()
        {
        }
    }
    class ListExportExcelComponent extends \CBitrixComponent
    {
        protected $listsPerm;
        protected $arIBlock = array();
        public function onIncludeComponentLang()
        {
        }
        protected function checkModules()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
        protected function checkPermissions()
        {
        }
        protected function createDataExcel()
        {
        }
        protected function getArrayBizproc($data = array())
        {
        }
        protected function getCommentsProcess($elementId)
        {
        }
    }
    class ListsInterfaceForm extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    class ListsElementAttachedCrmComponent extends \CBitrixComponent
    {
        protected $singleMode = \false;
        protected $entityIdWithPrefix;
        protected $gridAction;
        protected $listPropertyIdWithoutPrefix = array();
        protected $listElementData = array();
        protected $listElementEditPermission = array();
        protected $iblockId = 0;
        protected $listIblockId = array();
        protected $listIblockName = array();
        protected $listIblockElementId = array();
        protected $listIblockElementTemplateUrl = array();
        protected $listIblockSocnetGroupId = array();
        protected $listFields = array();
        protected $listFieldsValue = array();
        protected $listObject = array();
        protected $listIblockPermission = array();
        protected $properties = array();
        protected $selectedFields = array();
        protected $prefixGridId = 'lists_attached_crm_';
        protected $listGridId = array();
        protected $listGridOptions = array();
        protected $navigationGrid = array();
        protected $headerGrids = array();
        protected $rowGrids = array();
        protected $groupActionsGrids = array();
        protected $entityData = array();
        public function onIncludeComponentLang()
        {
        }
        protected function checkModules()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
        protected function fillParams()
        {
        }
        protected function checkGridAction()
        {
        }
        protected function performGridActionDelete()
        {
        }
        protected function checkDeletePermission($iblockId, array $listElementId)
        {
        }
        protected function getElementIdByEntityId()
        {
        }
        protected function createListElementIdByPermission()
        {
        }
        protected function setGridId()
        {
        }
        protected function getGridOptions()
        {
        }
        protected function setSelectedFields()
        {
        }
        protected function getListElement()
        {
        }
        protected function setRowGrid($iblockId, $elementId)
        {
        }
        protected function setGridGroupActions()
        {
        }
        protected function getEntityData()
        {
        }
        protected function formatResult()
        {
        }
        protected function setHeaderGrid($iblockId, $fieldId, $field)
        {
        }
        protected function setNavigationGrid($iblockId, \CIBlockResult $navObject)
        {
        }
        protected function createRowActions($iblockId, $elementId)
        {
        }
        protected function getPropertyValues($iblockId, $elementFilter = array(), $propertyFilter = array())
        {
        }
    }
    class ListsSelectElementComponent extends \CBitrixComponent
    {
        public function onPrepareComponentParams($arParams)
        {
        }
        public function executeComponent()
        {
        }
        protected function getApplication()
        {
        }
        protected function getUser()
        {
        }
    }
}
namespace Bitrix\Lists\Internals\Error {
    interface IErrorable
    {
        /**
         * Getting array of errors.
         * @return Error[]
         */
        public function getErrors();
        /**
         * Getting array of errors with the necessary code.
         * @param string $code Code of error.
         * @return Error[]
         */
        public function getErrorsByCode($code);
        /**
         * Getting once error with the necessary code.
         * @param string $code Code of error.
         * @return Error[]
         */
        public function getErrorByCode($code);
    }
}
namespace Bitrix\Lists\Internals {
    /**
     * Class Controller
     * @package Bitrix\Lists\Internals
     * @deprecated
     */
    abstract class Controller implements \Bitrix\Lists\Internals\Error\IErrorable
    {
        const ERROR_REQUIRED_PARAMETER = 'LISTS_CONTROLLER_22001';
        const ERROR_UNKNOWN_ACTION = 'LISTS_CONTROLLER_22002';
        const STATUS_SUCCESS = 'success';
        const STATUS_PROCESSING = 'processing';
        const STATUS_COMPLETED = 'completed';
        const STATUS_DENIED = 'denied';
        const STATUS_ERROR = 'error';
        const STATUS_NEED_AUTH = 'need_auth';
        const STATUS_INVALID_SIGN = 'invalid_sign';
        /** @var string */
        protected $action;
        /** @var  array */
        protected $actionDescription;
        /** @var  string */
        protected $realActionName;
        /** @var  ErrorCollection */
        protected $errorCollection;
        /** @var  \Bitrix\Main\HttpRequest */
        protected $request;
        public function __construct()
        {
        }
        protected function end()
        {
        }
        public function exec()
        {
        }
        /**
         * @return array|bool|\CAllUser|\CUser
         */
        protected function getUser()
        {
        }
        protected function sendJsonResponse($response, $params = null)
        {
        }
        protected function sendJsonErrorResponse()
        {
        }
        protected function sendJsonAccessDeniedResponse($message = '')
        {
        }
        protected function sendJsonInvalidSignResponse($message = '')
        {
        }
        protected function sendJsonSuccessResponse(array $response = array())
        {
        }
        protected function sendJsonProcessingResponse(array $response = array())
        {
        }
        protected function sendJsonCompletedResponse(array $response = array())
        {
        }
        protected function sendResponse($response)
        {
        }
        /**
         * @return Error[]
         */
        public function getErrors()
        {
        }
        /**
         * @inheritdoc
         */
        public function getErrorsByCode($code)
        {
        }
        /**
         * @inheritdoc
         */
        public function getErrorByCode($code)
        {
        }
        protected function resolveAction()
        {
        }
        //todo refactor BaseComponent + Controller normalizeListOfAction, resolveAction.
        //you can use composition in BaseComponent
        protected function normalizeListOfAction(array $listOfActions)
        {
        }
        protected function normalizeActionDescription($action, $description)
        {
        }
        protected function checkAction()
        {
        }
        protected function listOfActions()
        {
        }
        /**
         * @return string
         */
        public function getAction()
        {
        }
        /**
         * @return array
         */
        public function getActionDescription()
        {
        }
        /**
         * @param string $action
         * @param array  $description
         * @return $this
         */
        public function setAction($action, array $description)
        {
        }
        /**
         * @param string $action
         * @return $this
         */
        public function setActionName($action)
        {
        }
        protected function checkRequiredModules()
        {
        }
        protected function prepareParams()
        {
        }
        /**
         * Common operations before run action.
         * @param string $actionName Action name which will be run.
         * @return bool If method will return false, then action will not execute.
         */
        protected function processBeforeAction($actionName)
        {
        }
        protected function runAction()
        {
        }
        protected function runProcessingException(\Exception $e)
        {
        }
        protected function runProcessingIfUserNotAuthorized()
        {
        }
        protected function runProcessingIfInvalidCsrfToken()
        {
        }
        /**
         * @return Application|\Bitrix\Main\HttpApplication|\CAllMain|\CMain
         */
        protected function getApplication()
        {
        }
        /**
         * @param array $inputParams
         * @param array $required
         * @return bool
         */
        protected function checkRequiredInputParams(array $inputParams, array $required)
        {
        }
        protected function checkRequiredPostParams(array $required)
        {
        }
        protected function checkRequiredGetParams(array $required)
        {
        }
        protected function checkRequiredFilesParams(array $required)
        {
        }
        /**
         * Returns whether this is an AJAX (XMLHttpRequest) request.
         * @return boolean
         */
        protected function isAjaxRequest()
        {
        }
    }
}
namespace {
    class ProcessesAjaxController extends \Bitrix\Lists\Internals\Controller
    {
        /** @var  string */
        protected $iblockTypeId;
        protected $listPerm;
        protected function listOfActions()
        {
        }
        protected function processActionShowProcesses()
        {
        }
        protected function checkPermission()
        {
        }
    }
    class ListsAjaxController extends \Bitrix\Lists\Internals\Controller
    {
        /** @var  int */
        protected $iblockId;
        /** @var  string */
        protected $iblockTypeId;
        protected $listPerm;
        protected function listOfActions()
        {
        }
        protected function processActionSetLiveFeed()
        {
        }
        protected function processActionCreateDefaultProcesses()
        {
        }
        protected function checkPermission()
        {
        }
    }
    class ListsCatalogProcessesComponent extends \CBitrixComponent
    {
        /** @var  array */
        protected $errors = array();
        /** @var  string or int */
        protected $listPerm;
        /** @var  string */
        protected $iblockTypeId;
        public function onPrepareComponentParams($arParams)
        {
        }
        public function executeComponent()
        {
        }
        protected function loadDataProcesses()
        {
        }
        protected function checkForIblock(&$listIblock)
        {
        }
        protected function checkingInstallation()
        {
        }
        protected function checkPermission()
        {
        }
    }
    class CatalogProcessesAjaxController extends \Bitrix\Lists\Internals\Controller
    {
        /** @var  string or int */
        protected $listPerm;
        /** @var  string */
        protected $iblockTypeId;
        protected function listOfActions()
        {
        }
        protected function processActionInstallProcesses()
        {
        }
        protected function checkPermission()
        {
        }
    }
    /**
     * Class ListsEditAjaxController
     * @deprecated
     */
    class ListsEditAjaxController extends \Bitrix\Lists\Internals\Controller
    {
        /** @var  int */
        protected $iblockId;
        protected $socnetGroupId = 0;
        /** @var  string */
        protected $iblockTypeId;
        protected $listPerm;
        protected function listOfActions()
        {
        }
        protected function processActionCopyIblock()
        {
        }
        protected function fillDataForCheckPermission()
        {
        }
        protected function checkPermission()
        {
        }
    }
    class ListsElementEditAjaxController extends \Bitrix\Lists\Internals\Controller
    {
        /** @var  int */
        protected $iblockId;
        protected $elementId;
        protected $socnetGroupId = 0;
        protected $sectionId = 0;
        /** @var  string */
        protected $iblockTypeId;
        protected $listPerm;
        protected function listOfActions()
        {
        }
        protected function processActionCompleteWorkflow()
        {
        }
        protected function processActionIsConstantsTuned()
        {
        }
        protected function getTemplatesIdList()
        {
        }
        protected function processActionFillConstants()
        {
        }
        protected function processActionGetListAdmin()
        {
        }
        protected function processActionNotifyAdmin()
        {
        }
        protected function fillDataForCheckPermission()
        {
        }
        protected function checkPermission()
        {
        }
    }
    class ListsLockStatusWidget extends \CBitrixComponent
    {
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
        /**
         * @throws SystemException
         */
        private function checkModules()
        {
        }
        private function formatResult()
        {
        }
        private function getLockStatus()
        {
        }
        private function getLockedUserName($lockedBy)
        {
        }
    }
    class ListAjaxController extends \Bitrix\Lists\Internals\Controller
    {
        /** @var  int */
        protected $iblockId;
        protected $elementId;
        protected $socnetGroupId;
        protected $sectionId = 0;
        /** @var  string */
        protected $iblockTypeId;
        protected $listPerm;
        protected function listOfActions()
        {
        }
        protected function processActionAddSection()
        {
        }
        protected function processActionDeleteSection()
        {
        }
        protected function processActionEditSection()
        {
        }
        protected function processActionGetSection()
        {
        }
        protected function processActionPerformActionBp()
        {
        }
        protected function checkPermission()
        {
        }
        protected function processActionToogleSectionGrid()
        {
        }
        protected function processActionRebuildSeachableContent()
        {
        }
    }
    class LiveFeedAjaxController extends \Bitrix\Lists\Internals\Controller
    {
        /** @var  array */
        protected $lists = array();
        protected $formOprions = array();
        /** @var  string */
        protected $iblockTypeId = 'bitrix_processes';
        protected $listPerm;
        protected $formId;
        protected $randomString;
        protected $iblockDescription;
        protected $iblockCode;
        /** @var  int */
        protected $socnetGroupId = 0;
        protected $iblockId;
        protected function listOfActions()
        {
        }
        protected function processActionGetList()
        {
        }
        protected function processActionSetDelegateResponsible()
        {
        }
        /**
         * Displays a form to fill constants
         * return html
         */
        protected function processActionSetResponsible()
        {
        }
        protected function createHtmlSetConstants($templateId, $templateName)
        {
        }
        protected function processActionIsConstantsTuned()
        {
        }
        /**
         * @param $iblockId
         * @return array
         */
        protected function getTemplatesIdList($iblockId)
        {
        }
        protected function processActionGetListAdmin()
        {
        }
        protected function processActionNotifyAdmin()
        {
        }
        protected function processActionGetBizprocTemplateId()
        {
        }
        protected function processActionCheckPermissions()
        {
        }
        protected function processActionCreateSettingsDropdown()
        {
        }
        protected function processActionCheckDelegateResponsible()
        {
        }
        protected function unEscape($data)
        {
        }
        protected function processActionCheckDataElementCreation()
        {
        }
        protected function checkPermission()
        {
        }
        protected function checkPermissionElement()
        {
        }
        protected function getListData()
        {
        }
        /**
         * @return array
         */
        protected function createFormData()
        {
        }
        protected function getElementFields()
        {
        }
        protected function createPreparedFields()
        {
        }
        protected function getBizprocData()
        {
        }
        protected function connectionFile($fieldId, $key, $value, $type)
        {
        }
        protected function connectionHtmlEditor($fieldId, $fieldNameForHtml, $params, $content)
        {
        }
        protected function createHtml()
        {
        }
    }
    class ListsElementPreviewComponent extends \CBitrixComponent
    {
        protected function prepareData()
        {
        }
        protected function getElementFields($iblockId, $elementId)
        {
        }
        public function executeComponent()
        {
        }
    }
    class CBPUpdateListsDocumentActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function ValidateProperties($testProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($paramDocumentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "", $popupWindow = \null)
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$errors)
        {
        }
        public static function getAjaxResponse($request)
        {
        }
        private static function prepareFieldsToJs(array $fields)
        {
        }
        private static function getDocumentFields(array $documentType)
        {
        }
        private static function getVisibleFieldsList($iblockId)
        {
        }
        private static function getDocumentTypeField()
        {
        }
    }
    class CBPCreateListsDocumentActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function ReInitialize()
        {
        }
        public function Execute()
        {
        }
        public static function ValidateProperties($testProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($paramDocumentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "", $popupWindow = \null)
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$errors)
        {
        }
        public static function getAjaxResponse($request)
        {
        }
        private static function renderDocumentFields($documentType, $formName, array $currentValues = [])
        {
        }
        private static function getDocumentFields(array $documentType)
        {
        }
        private static function getVisibleFieldsList($iblockId)
        {
        }
        private static function getDocumentTypeField()
        {
        }
    }
    class CBPGetListsDocumentActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function ReInitialize()
        {
        }
        public function Execute()
        {
        }
        public static function ValidateProperties($testProperties = [], \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($paramDocumentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "", $popupWindow = \null)
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$errors)
        {
        }
        public static function getAjaxResponse($request)
        {
        }
        private static function getDocumentTypeField()
        {
        }
        private static function getDocumentFieldsOptions(array $documentType)
        {
        }
        private static function getVisibleFieldsList($iblockId)
        {
        }
        private static function buildFieldsMap(array $documentType, $fields)
        {
        }
    }
    class CListFieldType
    {
        const IS_READONLY = \true;
        const NOT_READONLY = \false;
        const IS_FIELD = \true;
        const NOT_FIELD = \false;
        private $id;
        private $name;
        private $is_field;
        private $is_readonly;
        function __construct($id, $name, $is_field, $is_readonly)
        {
        }
        function IsField()
        {
        }
        function IsReadonly()
        {
        }
        function GetName()
        {
        }
        function GetID()
        {
        }
    }
    class CListFile
    {
        private $_list_id;
        private $_section_id;
        private $_element_id;
        private $_field_id;
        private $_file_id;
        private $_socnet_group_id;
        private $_file;
        private $_width = 0;
        private $_height = 0;
        /** @var $_counter int  */
        private static $_counter = 0;
        function __construct($list_id, $section_id, $element_id, $field_id, $file_id)
        {
        }
        function SetSocnetGroup($socnet_group_id)
        {
        }
        function GetInfoHTML($params = array())
        {
        }
        function GetInputHTML($params = array())
        {
        }
        function GetImgSrc($params = array())
        {
        }
        function GetImgHtml($params = array())
        {
        }
        function GetLinkHtml($params = array())
        {
        }
        function GetWidth()
        {
        }
        function GetHeight()
        {
        }
        function GetSize()
        {
        }
        function IsImage()
        {
        }
    }
    class CListsLiveFeed
    {
        public static function setMessageLiveFeed($users, $elementId, $workflowId, $flagCompleteProcess)
        {
        }
        public static function onFillSocNetAllowedSubscribeEntityTypes(&$socnetEntityTypes)
        {
        }
        public static function onFillSocNetLogEvents(&$socnetLogEvents)
        {
        }
        public static function formatListsElement($fields, $params, $mail = \false)
        {
        }
        public static function addCommentLists($fields)
        {
        }
        protected static function getRights($users, $logId, $createdBy, $method)
        {
        }
        protected static function getUserIdForRight($rights)
        {
        }
        protected static function setSocnetFollow($users = array(), $logId, $type, $manualMode = \false, $addingComment = \false)
        {
        }
        protected static function getSiteName()
        {
        }
        function BeforeIndexSocNet($bxSocNetSearch, $fields)
        {
        }
        /**
         * Called from LiveFeed
         * @param array $comment
         */
        public static function OnAfterSonetLogEntryAddComment($comment)
        {
        }
        /**
         * Called from popup
         * @param string $entityType
         * @param int $entityId
         * $param array $comment
         */
        public static function OnForumCommentIMNotify($entityType, $entityId, $comment)
        {
        }
        public static function NotifyComment($comment)
        {
        }
        public static function OnSendMentionGetEntityFields($commentFields)
        {
        }
        public static function OnSocNetGroupDelete($groupId)
        {
        }
    }
    class CListPermissions
    {
        const WRONG_IBLOCK_TYPE = -1;
        const WRONG_IBLOCK = -2;
        const LISTS_FOR_SONET_GROUP_DISABLED = -3;
        const ACCESS_DENIED = 'D';
        const CAN_READ = 'R';
        const CAN_BIZPROC = 'U';
        const CAN_WRITE = 'W';
        const IS_ADMIN = 'X';
        /**
         * @param $USER CUser
         * @param $iblock_type_id string
         * @param bool $iblock_id int
         * @param int $socnet_group_id int
         * @return int|string
         */
        public static function CheckAccess($USER, $iblock_type_id, $iblock_id = \false, $socnet_group_id = 0)
        {
        }
        /**
         * @param $USER CUser
         * @param $iblock_type_id string
         * @param $iblock_id int
         * @param $socnet_group_id int
         * @return string
         */
        protected static function _socnet_check($USER, $iblock_type_id, $iblock_id, $socnet_group_id)
        {
        }
        /**
         * @param $USER CUser
         * @param $iblock_type_id string
         * @param $socnet_group_id int
         * @return int|string
         */
        protected static function _socnet_type_check($USER, $iblock_type_id, $socnet_group_id)
        {
        }
        /**
         * @param $USER CUser
         * @param $iblockTypeId string
         * @return string
         */
        protected static function _lists_type_check($USER, $iblockTypeId)
        {
        }
        /**
         * @param $USER CUser
         * @param $iblock_type_id string
         * @param $iblock_id int
         * @return int|string
         */
        protected static function _lists_check($USER, $iblock_type_id, $iblock_id)
        {
        }
        /**
         * @param $iblock_type_id string
         * @param $iblock_id int
         * @return int
         */
        protected static function _iblock_check($iblock_type_id, $iblock_id)
        {
        }
        public static function MergeRights($IBLOCK_TYPE_ID, $DB, $POST)
        {
        }
        /**
         * @param $iblockId int
         * @param $fieldId int
         */
        public static function CheckFieldId($iblock_id, $field_id)
        {
        }
    }
    class CListFieldList
    {
        protected $iblock_id = 0;
        protected $form_id = "";
        /** @var array[string]CListField  */
        protected $fields = array();
        function __construct($iblock_id)
        {
        }
        /**
         * @param $field_id string
         * @return CListField|null
         */
        public function GetByID($field_id)
        {
        }
        public function GetFields()
        {
        }
        public function GetArrayByID($field_id)
        {
        }
        public function DeleteField($field_id)
        {
        }
        public function AddField($arFields)
        {
        }
        public function UpdateField($field_id, $arFields)
        {
        }
        protected function _save_form_settings($form_id)
        {
        }
        protected function _read_form_settings($form_id)
        {
        }
        /**
         * @param $a CListField
         * @param $b CListField
         * @return int
         */
        function Order($a, $b)
        {
        }
        protected function _resort()
        {
        }
        static function DeleteFields($iblock_id)
        {
        }
    }
    class CListFieldTypeList
    {
        private static $types = array();
        static function IsExists($type_id)
        {
        }
        static function GetByID($type_id)
        {
        }
        static function IsField($type_id)
        {
        }
        static function GetTypesNames()
        {
        }
        private static function _init()
        {
        }
    }
    class CList
    {
        /** @var CListFieldList */
        var $fields = \null;
        var $new_ids = array();
        protected $iblock_id = 0;
        function __construct($iblock_id)
        {
        }
        function is_field($type_id)
        {
        }
        function is_readonly($field_id)
        {
        }
        function GetFields()
        {
        }
        function GetAllTypes()
        {
        }
        function GetAvailableTypes($ID = "")
        {
        }
        function DeleteField($field_id)
        {
        }
        function AddField($arFields)
        {
        }
        function GetNewID($TEMP_ID)
        {
        }
        function UpdateField($field_id, $arFields)
        {
        }
        function Save()
        {
        }
        public static function UpdatePropertyList($prop_id, $list)
        {
        }
        function ActualizeDocumentAdminPage($url)
        {
        }
        function OnGetDocumentAdminPage($arElement)
        {
        }
        function OnSearchGetURL($arFields)
        {
        }
        function getUrlByIblockId($IBLOCK_ID)
        {
        }
    }
    class CListFileControl
    {
        /** @var $_ob_file CListFile */
        private $_ob_file = \null;
        /** @var $_input_name string */
        private $_input_name = \null;
        /** @var $_counter int  */
        private static $_counter = 0;
        /**
         * @param $obFile CListFile File to display.
         * @param $input_name string Input control name.
         */
        function __construct($obFile, $input_name)
        {
        }
        /**
         * @param $params array Display parameters.
         * 	<ul>
         * 	<li>max_size - maximum file size to display IMG tag (default 100K).
         * 	<li>max_width - width to scale image to (default 150).
         * 	<li>max_height - height to scale image to (default 150).
         * 	<li>url_template - template for image path builder (default '').
         * 	<li>show_input - if set to true file control will be displayed.
         * 	<li>show_info - if set to true file information will be displayed.
         * 	<li>download_text - text to be shown on download link.
         * 	</ul>
         * @return string Html to display.
         */
        function GetHTML($params)
        {
        }
    }
    class CLists
    {
        private static $iblockTypeList = array("lists" => \true, "bitrix_processes" => \true, "lists_socnet" => \true);
        private static $featuresCache = array();
        function SetPermission($iblock_type_id, $arGroups)
        {
        }
        public static function GetPermission($iblock_type_id = \false)
        {
        }
        function GetDefaultSocnetPermission()
        {
        }
        function SetSocnetPermission($iblock_id, $arRoles)
        {
        }
        public static function GetSocnetPermission($iblock_id)
        {
        }
        function GetIBlockPermission($iblock_id, $user_id)
        {
        }
        function GetIBlockTypes($language_id = \false)
        {
        }
        function GetIBlocks($iblock_type_id, $check_permissions, $socnet_group_id = \false)
        {
        }
        function OnIBlockDelete($iblock_id)
        {
        }
        public static function OnAfterIBlockUpdate(array &$fields)
        {
        }
        function OnAfterIBlockDelete($iblock_id)
        {
        }
        function IsEnabledSocnet()
        {
        }
        function EnableSocnet($bActive = \false)
        {
        }
        function OnSharepointCreateProperty($arInputFields)
        {
        }
        function OnSharepointCheckAccess($iblock_id)
        {
        }
        public static function setLiveFeed($checked, $iblockId)
        {
        }
        public static function getLiveFeed($iblockId)
        {
        }
        public static function getCountProcessesUser($userId, $iblockTypeId)
        {
        }
        public static function generateMnemonicCode($integerCode = 0)
        {
        }
        public function OnAfterIBlockElementDelete($fields)
        {
        }
        /**
         * @param string $workflowId
         * @param string $iblockType
         * @param int $elementId
         * @param int $iblockId
         * @param string $action Action stop or delete
         * @return string error
         */
        public static function completeWorkflow($workflowId, $iblockType, $elementId, $iblockId, $action)
        {
        }
        public static function deleteSocnetLog(array $listWorkflowId)
        {
        }
        /**
         * @param $iblockId
         * @param array $errors - an array of errors that occurred array(0 => 'error message')
         * @return bool or int
         * @deprecated
         */
        public static function copyIblock($iblockId, array &$errors)
        {
        }
        public static function checkChangedFields($iblockId, $elementId, array $select, array $elementFields, array $elementProperty)
        {
        }
        public static function deleteListsUrl($iblockId)
        {
        }
        /**
         * Method get iblock attached crm.
         *
         * @param string $entityType Type entity.
         * @return array List iblock data array(iblockId => IblockName).
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getIblockAttachedCrm($entityType)
        {
        }
        protected static function deleteListsCache($cacheDir)
        {
        }
        public static function OnAfterIBlockPropertyAdd($fields)
        {
        }
        public static function OnAfterIBlockPropertyUpdate($fields)
        {
        }
        public static function OnAfterIBlockPropertyDelete($fields)
        {
        }
        public static function getChildSection($baseSectionId, array $listSection, array &$listChildSection)
        {
        }
        public static function isAssociativeArray($array)
        {
        }
        /**
         * Handler OnBeforeIBlockElementAdd.
         *
         * @param array $fields Current values of the elements.
         * @return bool
         */
        public static function OnBeforeIBlockElementAdd(&$fields)
        {
        }
        /**
         * Handler OnBeforeIBlockElementUpdate.
         *
         * @param array $fields Current values of the elements.
         * @return bool
         */
        public static function OnBeforeIBlockElementUpdate(&$fields)
        {
        }
        /**
         * Agent function. Run rebuild seachable content.
         *
         * @param $iblockId
         * @return bool
         */
        public static function runRebuildSeachableContent($iblockId)
        {
        }
        /**
         * Method rebuild seachable content taking into account the current values of the elements.
         *
         * @param int $iblockId Iblock id.
         * @param int $limit Restricts the number of results.
         * @param int $offset Specifies the number of rows to skip, before starting to return rows from the query expression.
         * @return int Number of processed items.
         * @throws ArgumentException
         */
        public static function rebuildSeachableContent($iblockId, $limit = 100, $offset = 0)
        {
        }
        /**
         * The method rebuild seachable content taking into account the current values of the element.
         *
         * @param $iblockId
         * @param $elementId
         * @throws ArgumentException
         */
        public static function rebuildSeachableContentForElement($iblockId, $elementId)
        {
        }
        private static function getListElementValue($iblockId, $listElementId)
        {
        }
        private static function createSeachableContent(array $fields)
        {
        }
        private static function createSeachableContentForProperty($fields)
        {
        }
        /**
         * The method return number of elements by iblock id.
         *
         * @param $iblockId Iblock id.
         * @return int
         * @throws ArgumentException
         * @throws \Bitrix\Main\Db\SqlQueryException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getNumberOfElements($iblockId)
        {
        }
        public static function isFeatureEnabled($featureName = '')
        {
        }
        public static function isWorkflowParticipant($workflowId)
        {
        }
        public static function isEnabledLockFeature($iblockId)
        {
        }
        public static function deleteLockFeatureOption(int $iblockId)
        {
        }
    }
    class CListsSocnet
    {
        public static function OnFillSocNetFeaturesList(&$arSocNetFeaturesSettings)
        {
        }
        function OnFillSocNetMenu(&$arResult, $arParams = array())
        {
        }
        function OnParseSocNetComponentPath(&$arUrlTemplates, &$arCustomPagesPath, $arParams)
        {
        }
        function OnInitSocNetComponentVariables(&$arVariableAliases, &$arCustomPagesPath)
        {
        }
    }
    abstract class CListField
    {
        /** @var int */
        protected $_iblock_id;
        /** @var  string */
        protected $_field_id;
        /** @var  string */
        protected $_label;
        /** @var CListFieldType */
        protected $_type;
        /** @var int */
        protected $_sort;
        private static $prop_cache = array();
        public function __construct($iblock_id, $field_id, $label, $sort)
        {
        }
        private function _read_from_cache($field_id)
        {
        }
        private function _clear_cache()
        {
        }
        public function GetID()
        {
        }
        public function GetLabel()
        {
        }
        public function GetTypeID()
        {
        }
        public function IsReadOnly()
        {
        }
        public function GetSort()
        {
        }
        public function GetSettingsDefaults()
        {
        }
        public function GetSettings()
        {
        }
        public function SetSettings($arSettings)
        {
        }
        public abstract function IsRequired();
        public abstract function IsMultiple();
        public abstract function GetDefaultValue();
        public abstract function SetSort($sort);
        public abstract function GetArray();
        public function Delete()
        {
        }
        public abstract function Update($arFields);
        public static function Add($iblock_id, $arFields)
        {
        }
    }
    class CListElementField extends \CListField
    {
        private $_iblock_field;
        public function __construct($iblock_id, $field_id, $label, $sort)
        {
        }
        public function IsRequired()
        {
        }
        public function IsMultiple()
        {
        }
        public function GetDefaultValue()
        {
        }
        public function SetSort($sort)
        {
        }
        //This is only backward compatibility method
        public function GetArray()
        {
        }
        public function Delete()
        {
        }
        public function Update($arFields)
        {
        }
        public static function Add($iblock_id, $arFields)
        {
        }
    }
    class CListPropertyField extends \CListField
    {
        private $_property = \false;
        private static $prop_cache = array();
        public function __construct($iblock_id, $field_id, $label, $sort)
        {
        }
        private function getPropertyArrayFromCache($id)
        {
        }
        private static function resetPropertyArrayCache()
        {
        }
        public function IsRequired()
        {
        }
        public function IsMultiple()
        {
        }
        public function GetDefaultValue()
        {
        }
        public function SetSort($sort)
        {
        }
        //This is only backward compatibility method
        public function GetArray()
        {
        }
        public function Delete()
        {
        }
        private static function generatePropertyCode($name, $code, $iblockId, $propertyId = 0)
        {
        }
        public function Update($arFields)
        {
        }
        public static function Add($iblock_id, $arFields)
        {
        }
        private static function existPropertyCode($iblockId, $code, $propertyId = 0)
        {
        }
    }
    class CListsParameters
    {
        function GetPathTemplateMenuItems($menuType, $action_function, $menuID, $inputID = "")
        {
        }
        function GetPathTemplateParam($menuType, $ID, $parameterName, $defaultValue = "", $parentID = "URL_TEMPLATES")
        {
        }
    }
    class CIBlockDocument
    {
        public static function getEntityName()
        {
        }
        function GetFieldInputControl($documentType, $arFieldType, $arFieldName, $fieldValue, $bAllowSelection = \false, $publicMode = \false)
        {
        }
        function GetFieldInputValue($documentType, $arFieldType, $arFieldName, $arRequest, &$arErrors)
        {
        }
        function GetFieldInputValuePrintable($documentType, $arFieldType, $fieldValue)
        {
        }
        function GetFieldValuePrintable($documentId, $fieldName, $fieldType, $fieldValue, $arFieldType)
        {
        }
        public static function GetVersion()
        {
        }
        /**
         * @param string $documentId - document id.
         * @return string - document admin page url.
         */
        public function GetDocumentAdminPage($documentId)
        {
        }
        /**
         * @param $documentId
         * @return null|string
         * @throws CBPArgumentNullException
         */
        public function getDocumentName($documentId)
        {
        }
        public static function getDocumentTypeName($documentType)
        {
        }
        /**
         * @param $documentId
         * @return array - document fields array.
         * @throws CBPArgumentNullException
         * @throws CBPArgumentOutOfRangeException
         */
        public function GetDocument($documentId)
        {
        }
        public function GetDocumentType($documentId)
        {
        }
        public function GetDocumentFields($documentType)
        {
        }
        public function GetDocumentFieldTypes($documentType)
        {
        }
        public static function generateMnemonicCode($integerCode = 0)
        {
        }
        public function AddDocumentField($documentType, $arFields)
        {
        }
        public function UpdateDocument($documentId, $arFields)
        {
        }
        public function LockDocument($documentId, $workflowId)
        {
        }
        public function UnlockDocument($documentId, $workflowId)
        {
        }
        public function IsDocumentLocked($documentId, $workflowId)
        {
        }
        function CanUserOperateDocument($operation, $userId, $documentId, $arParameters = array())
        {
        }
        function CanUserOperateDocumentType($operation, $userId, $documentType, $arParameters = array())
        {
        }
        /**
         * Ìåòîä ñîçäàåò íîâûé äîêóìåíò ñ óêàçàííûìè ñâîéñòâàìè (ïîëÿìè).
         *
         * @param array $arFields - ìàññèâ çíà÷åíèé ñâîéñòâ äîêóìåíòà â âèäå array(êîä_ñâîéñòâà => çíà÷åíèå, ...). Êîäû ñâîéñòâ ñîîòâåòñòâóþò êîäàì ñâîéñòâ, âîçâðàùàåìûì ìåòîäîì GetDocumentFields.
         * @return int - êîä ñîçäàííîãî äîêóìåíòà.
         */
        public function CreateDocument($parentDocumentId, $arFields)
        {
        }
        /**
         * Ìåòîä óäàëÿåò óêàçàííûé äîêóìåíò.
         *
         * @param string $documentId - êîä äîêóìåíòà.
         */
        public function DeleteDocument($documentId)
        {
        }
        /**
         * Ìåòîä ïóáëèêóåò äîêóìåíò. Òî åñòü äåëàåò åãî äîñòóïíûì â ïóáëè÷íîé ÷àñòè ñàéòà.
         *
         * @param string $documentId - êîä äîêóìåíòà.
         */
        public function PublishDocument($documentId)
        {
        }
        public function CloneElement($ID, $arFields = array())
        {
        }
        /**
         * Ìåòîä ñíèìàåò äîêóìåíò ñ ïóáëèêàöèè. Òî åñòü äåëàåò åãî íåäîñòóïíûì â ïóáëè÷íîé ÷àñòè ñàéòà.
         *
         * @param string $documentId - êîä äîêóìåíòà.
         */
        public function UnpublishDocument($documentId)
        {
        }
        // array("read" => "Åòà ÷òåíèå", "write" => "Åòà çàïûñü")
        public function GetAllowableOperations($documentType)
        {
        }
        public function GetJSFunctionsForFields($documentType, $objectName, $arDocumentFields = array(), $arDocumentFieldTypes = array())
        {
        }
        function GetFieldInputControlOptions($documentType, &$arFieldType, $jsFunctionName, &$value)
        {
        }
        public function GetAllowableUserGroups($documentType, $withExtended = \false)
        {
        }
        public function GetUsersFromUserGroup($group, $documentId)
        {
        }
        public function SetPermissions($documentId, $workflowId, $arPermissions, $bRewrite = \true)
        {
        }
        /**
         * Method return array with all information about document. Array used for method RecoverDocumentFromHistory.
         *
         * @param string $documentId - document id.
         * @return array - document information array.
         */
        public function GetDocumentForHistory($documentId, $historyIndex)
        {
        }
        /**
         * Method recover document from array. Array must be created by method RecoverDocumentFromHistory.
         *
         * @param string $documentId - document id.
         * @param array $arDocument - array.
         */
        public function RecoverDocumentFromHistory($documentId, $arDocument)
        {
        }
        public static function isExtendedPermsSupported($documentType)
        {
        }
        public static function generatePropertyCode($name, $code, $iblockId, $propertyId = 0)
        {
        }
    }
    class BizprocDocument extends \CIBlockDocument
    {
        const DOCUMENT_TYPE_PREFIX = 'iblock_';
        private static $cachedTasks;
        private static $elements = [];
        public static function getEntityName()
        {
        }
        /**
         * @param $iblockId
         * @return string
         */
        public static function generateDocumentType($iblockId)
        {
        }
        /**
         * @param $iblockType
         * @param $iblockId
         * @return array
         */
        public static function generateDocumentComplexType($iblockType, $iblockId)
        {
        }
        /**
         * @param $iblockType
         * @param $documentId
         * @return array
         */
        public static function getDocumentComplexId($iblockType, $documentId)
        {
        }
        /**
         * @param $iblockId
         */
        public static function deleteDataIblock($iblockId)
        {
        }
        /**
         * Method returns document icon (image source path)
         * @param $documentId
         * @return null|string
         * @throws CBPArgumentNullException
         */
        public static function getDocumentIcon($documentId)
        {
        }
        /**
         * @param $documentId
         * @return array
         * @throws CBPArgumentNullException
         * @throws CBPArgumentOutOfRangeException
         * @throws Exception
         */
        public function getDocument($documentId)
        {
        }
        protected static function setArray(array $result, $value)
        {
        }
        protected static function getSystemIblockFields()
        {
        }
        /**
         * @param string $documentType
         * @return array
         * @throws CBPArgumentOutOfRangeException
         */
        public function getDocumentFields($documentType)
        {
        }
        /**
         * @param int $integerCode
         * @return string
         */
        public static function generateMnemonicCode($integerCode = 0)
        {
        }
        /**
         * @param $documentType
         * @param $fields
         * @return bool|string
         * @throws CBPArgumentOutOfRangeException
         */
        public function addDocumentField($documentType, $fields)
        {
        }
        /**
         * @param string $documentType
         * @param array $fields
         * @return bool|string
         * @throws CBPArgumentOutOfRangeException
         */
        public function updateDocumentField($documentType, $fields)
        {
        }
        public function updateDocument($documentId, $arFields)
        {
        }
        public static function onTaskChange($documentId, $taskId, $taskData, $status)
        {
        }
        public static function onWorkflowStatusChange($documentId, $workflowId, $status)
        {
        }
        /**
         * @param int $documentId
         * @return null|string
         * @throws CBPArgumentNullException
         */
        public function getDocumentAdminPage($documentId)
        {
        }
        protected static function getRightsTasks()
        {
        }
        /**
         * @param string $documentType
         * @return array
         * @throws CBPArgumentOutOfRangeException
         */
        public function getAllowableOperations($documentType)
        {
        }
        /**
         * @param $documentType
         * @param array $permissions
         * @return array
         */
        public function toInternalOperations($documentType, $permissions)
        {
        }
        /**
         * @param $documentType
         * @param array $permissions
         * @return array
         */
        public function toExternalOperations($documentType, $permissions)
        {
        }
        function CanUserOperateDocument($operation, $userId, $documentId, $parameters = array())
        {
        }
        function CanUserOperateDocumentType($operation, $userId, $documentType, $parameters = array())
        {
        }
        protected function isAdmin()
        {
        }
        /**
         * @param $documentType
         * @param bool $withExtended
         * @return array|bool
         */
        public function GetAllowableUserGroups($documentType, $withExtended = \false)
        {
        }
        public function SetPermissions($documentId, $workflowId, $permissions, $rewrite = \true)
        {
        }
        public function GetFieldInputControl($documentType, $fieldType, $fieldName, $fieldValue, $allowSelection = \false, $publicMode = \false)
        {
        }
        public function GetFieldInputValue($documentType, $fieldType, $fieldName, $request, &$errors)
        {
        }
        public function GetFieldInputValuePrintable($documentType, $fieldType, $fieldValue)
        {
        }
        public function UnlockDocument($documentId, $workflowId)
        {
        }
        /**
         * The method of publishing the document. That is making it available in the public section.
         * @param string $documentId
         * @return bool|int
         */
        public function PublishDocument($documentId)
        {
        }
        /**
         * Method return array with all information about document. Array used for method RecoverDocumentFromHistory.
         * @param string $documentId
         * @param $historyIndex
         * @return null
         * @throws CBPArgumentNullException
         */
        public function GetDocumentForHistory($documentId, $historyIndex)
        {
        }
        public static function isFeatureEnabled($documentType, $feature)
        {
        }
    }
}
namespace Bitrix\Lists {
    class BizprocDocumentLists extends \BizprocDocument
    {
        public static function getEntityName()
        {
        }
        /**
         * @param $documentId
         * @return array
         * @throws \CBPArgumentNullException
         * @throws \CBPArgumentOutOfRangeException
         * @throws \Exception
         */
        public function getDocument($documentId)
        {
        }
        /**
         * @param string $documentType
         * @return array
         * @throws \CBPArgumentOutOfRangeException
         */
        public function getDocumentFields($documentType)
        {
        }
        public static function isFeatureEnabled($documentType, $feature)
        {
        }
        public function getDocumentAdminPage($documentId)
        {
        }
    }
    /**
     * Class Importer
     * @package Bitrix\Lists
     *
     *
     * 	$APPLICATION->RestartBuffer();
     *	if (åñòü ïðàâà)
     *	{
     *      $id = iblock ID
     *		$datum = \Bitrix\Lists\Importer::export($id);
     *
     *		header("HTTP/1.1 200 OK");
     *		header("Content-Type: application/force-download; name=\"bp-".$id.".prc\"");
     *		header("Content-Transfer-Encoding: binary");
     *		header("Content-Length: ".(Main\Text\String::getBinaryLength($datum)));
     *		header("Content-Disposition: attachment; filename=\"bp-".$id.".prc\"");
     *		header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
     *		header("Expires: 0");
     *		header("Pragma: public");
     *
     *		echo $datum;
     *	}
     *	die();
     *
     *
     *
     * 	if (is_uploaded_file($_FILES['import_file']['tmp_name']))
     *	{
     *		$f = fopen($_FILES['import_file']['tmp_name'], "rb");
     *		$datum = fread($f, filesize($_FILES['import_file']['tmp_name']));
     *		fclose($f);
     *
     *      \Bitrix\Lists\Importer::import("iblock type", $datum);
     *  }
     *
     */
    class Importer
    {
        const DIRECTION_EXPORT = 0;
        const DIRECTION_IMPORT = 1;
        private static $listRuLanguage = array('ua', 'by', 'kz');
        /**
         * @param int $iblockId This variable is the id iblock.
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function export($iblockId)
        {
        }
        /**
         * @param string $filePath This variable is the path to the file to get the data.
         * @return array
         */
        public static function getDataProcess($filePath)
        {
        }
        /**
         * @param string $iblockType This variable is the id iblockType.
         * @param string $datum This variable is the encrypted string.
         * @param null $siteId This variable is the id current site.
         * @throws Main\ArgumentNullException
         */
        public static function import($iblockType, $datum, $siteId = null)
        {
        }
        private static function importTemplate($documentType, $bpDescr, $bp)
        {
        }
        private static function createIBlock($iblockType, $iblock, $pictureType, $picture, $siteId = null)
        {
        }
        protected static function getIBlockType()
        {
        }
        protected static function getDocumentType($iblockType, $iblockId)
        {
        }
        /**
         * @param int $iblockId This variable is the id iblock.
         */
        private static function createIBlockRights($iblockId)
        {
        }
        const PATH = "/bitrix/modules/lists/install/bizproc/process/";
        const PATH_USER_PROCESSES = "/bitrix/lists/processes/";
        /**
         * @param string $lang This variable is the value language.
         * @param null $siteId This variable is the id current site.
         * @throws Main\ArgumentNullException
         * @throws Main\IO\FileNotFoundException
         */
        public static function installProcesses($lang, $siteId = null)
        {
        }
        /**
         * @param string $path This variable is the path to the file for the installation process.
         * @param null $siteId This variable is the id current site.
         * @throws Main\ArgumentNullException
         * @throws Main\IO\FileNotFoundException
         */
        public static function installProcess($path, $siteId = null)
        {
        }
        /**
         * @param string $lang This variable is the value language.
         * @param bool $systemProcesses Installing the system processes.
         * @param string $path This variable is the path to the file to get the data.
         * @param array $fileData Array for loading the data.
         * @throws Main\ArgumentNullException
         * @throws Main\IO\FileNotFoundException
         */
        public static function loadDataProcesses($lang, $systemProcesses = true, &$fileData, $path = null)
        {
        }
        private static function getPathToProcesses($lang, $systemProcesses = true)
        {
        }
        protected static function createIBlockType()
        {
        }
        /**
         * @param string $lang This variable is the value language.
         * @return string
         * @throws Main\ArgumentNullException
         * @throws Main\IO\FileNotFoundException
         */
        public static function onAgent($lang)
        {
        }
        public static function migrateList($id)
        {
        }
    }
}
namespace Bitrix\Lists\Update {
    final class LivefeedIndexItem extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "lists";
        public function execute(array &$result)
        {
        }
    }
    class EcrmPropertyUpdate extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "lists";
        protected $deleteFile = false;
        public function execute(array &$result)
        {
        }
    }
}
namespace Bitrix\Lists\Security {
    interface RightEntity
    {
        /**
         * Sets the access label that is needed to verify the rights of the entity.
         *
         * @param string $listsPermission Access label.
         */
        public function setListsPermission($listsPermission);
    }
    class SectionRight implements \Bitrix\Lists\Security\RightEntity, \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        const ACCESS_DENIED = "ACCESS_DENIED";
        const ADD = "canAdd";
        const READ = "canRead";
        const EDIT = "canEdit";
        const DELETE = "canDelete";
        private $listsPermission;
        private $rightParam;
        private $socnetGroupClosed = false;
        public function __construct(\Bitrix\Lists\Security\RightParam $rightParam)
        {
        }
        /**
         * Sets the access label that is needed to verify the rights of the entity.
         *
         * @param string $listsPermission Access label.
         */
        public function setListsPermission($listsPermission)
        {
        }
        /**
         * Checks the read access to the section.
         *
         * @return bool
         */
        public function canRead()
        {
        }
        /**
         * Checks the edit access to the section.
         *
         * @return bool
         */
        public function canEdit()
        {
        }
        /**
         * Checks the add access to the section.
         *
         * @return bool
         */
        public function canAdd()
        {
        }
        /**
         * Checks the delete access to the section.
         *
         * @return bool
         */
        public function canDelete()
        {
        }
    }
    class RightParam
    {
        private $user = null;
        private $iblockTypeId = "";
        private $iblockId = false;
        private $socnetGroupId = 0;
        private $entityId = 0;
        public function __construct(\Bitrix\Lists\Service\Param $param)
        {
        }
        /**
         * @return \CUser
         */
        public function getUser()
        {
        }
        /**
         * @param \CUser $user
         */
        public function setUser(\CUser $user)
        {
        }
        /**
         * @return string
         */
        public function getIblockTypeId()
        {
        }
        /**
         * @param string $iblockTypeId
         */
        public function setIblockTypeId($iblockTypeId)
        {
        }
        /**
         * @return bool|int
         */
        public function getIblockId()
        {
        }
        /**
         * @param bool|int $iblockId
         */
        public function setIblockId($iblockId)
        {
        }
        /**
         * @return int
         */
        public function getSocnetGroupId()
        {
        }
        /**
         * @param int $socnetGroupId
         */
        public function setSocnetGroupId($socnetGroupId)
        {
        }
        /**
         * @return int
         */
        public function getEntityId()
        {
        }
        /**
         * @param int $entityId
         */
        public function setEntityId($entityId)
        {
        }
        /**
         * Returns the closing status of the socnet group.
         *
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\LoaderException
         */
        public function getClosedStatusSocnetGroup()
        {
        }
    }
    class ElementRight implements \Bitrix\Lists\Security\RightEntity, \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        const ACCESS_DENIED = "ACCESS_DENIED";
        const ADD = "canAdd";
        const READ = "canRead";
        const EDIT = "canEdit";
        const DELETE = "canDelete";
        const FULL_EDIT = "canFullEdit";
        private $listsPermission;
        private $rightParam;
        private $socnetGroupClosed = false;
        public function __construct(\Bitrix\Lists\Security\RightParam $rightParam)
        {
        }
        /**
         * Sets the access label that is needed to verify the rights of the entity.
         *
         * @param string $listsPermission Access label.
         */
        public function setListsPermission($listsPermission)
        {
        }
        /**
         * Checks the read access to the element.
         *
         * @return bool
         */
        public function canRead()
        {
        }
        /**
         * Checks the edit access to the element.
         *
         * @return bool
         */
        public function canEdit()
        {
        }
        /**
         * Checks the add access to the element.
         *
         * @return bool
         */
        public function canAdd()
        {
        }
        /**
         * Checks the delete access to the element.
         *
         * @return bool
         */
        public function canDelete()
        {
        }
        /**
         * Checks the full edit access to the element.
         *
         * @return bool
         */
        public function canFullEdit()
        {
        }
    }
    class IblockRight implements \Bitrix\Lists\Security\RightEntity, \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        const ACCESS_DENIED = "ACCESS_DENIED";
        const READ = "canRead";
        const EDIT = "canEdit";
        private $listsPermission;
        private $rightParam;
        public function __construct(\Bitrix\Lists\Security\RightParam $rightParam)
        {
        }
        /**
         * Sets the access label that is needed to verify the rights of the entity.
         *
         * @param string $listsPermission Access label.
         */
        public function setListsPermission($listsPermission)
        {
        }
        /**
         * Checks the read access to the iblock.
         *
         * @return bool
         */
        public function canRead()
        {
        }
        /**
         * Checks the edit access to the iblock.
         *
         * @return bool
         */
        public function canEdit()
        {
        }
    }
    class Right implements \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        const ACCESS_DENIED = "ACCESS_DENIED";
        private $entityRight;
        private $rightParam;
        private $listsPermission;
        public function __construct(\Bitrix\Lists\Security\RightParam $rightParam, \Bitrix\Lists\Security\RightEntity $entityRight)
        {
        }
        /**
         * Checks access to the entity.
         *
         * @param string $entityMethod Entity method to check access.
         *
         * @return bool
         */
        public function checkPermission($entityMethod = "")
        {
        }
        private function getListsPermission()
        {
        }
    }
}
namespace Bitrix\Lists\Entity {
    interface Controllable
    {
        /**
         * Adds an entity.
         *
         * @return int|bool
         */
        public function add();
        /**
         * Returns a list of entity data.
         *
         * @param array $navData Navigation data.
         *
         * @return array
         */
        public function get(array $navData = []);
        /**
         * Updates an entity.
         *
         * @return bool
         */
        public function update();
        /**
         * Deletes an entity.
         *
         * @return bool
         */
        public function delete();
    }
    class Element implements \Bitrix\Lists\Entity\Controllable, \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        const ERROR_ADD_ELEMENT = "ERROR_ADD_ELEMENT";
        const ERROR_UPDATE_ELEMENT = "ERROR_UPDATE_ELEMENT";
        const ERROR_DELETE_ELEMENT = "ERROR_DELETE_ELEMENT";
        const ERROR_ELEMENT_ALREADY_EXISTS = "ERROR_ELEMENT_ALREADY_EXISTS";
        const ERROR_ELEMENT_NOT_FOUND = "ERROR_ELEMENT_NOT_FOUND";
        const ERROR_ELEMENT_FIELD_VALUE = "ERROR_ELEMENT_FIELD_VALUE";
        private $param;
        private $params = [];
        private $iblockId;
        private $elementId;
        private $listObject;
        public $resultSanitizeFilter = [];
        public function __construct(\Bitrix\Lists\Service\Param $param)
        {
        }
        /**
         * Checks whether an element exists.
         *
         * @return bool
         */
        public function isExist()
        {
        }
        /**
         * Adds an element.
         *
         * @return int|bool
         */
        public function add()
        {
        }
        /**
         * Returns a list of element data.
         *
         * @param array $navData Navigation data.
         *
         * @return array
         */
        public function get(array $navData = [])
        {
        }
        /**
         * Updates an element.
         *
         * @return bool
         */
        public function update()
        {
        }
        /**
         * Deletes an element.
         *
         * @return bool
         */
        public function delete()
        {
        }
        /**
         * Returns the path to the file.
         *
         * @return array An array with a list of url for the field of type "File" or "File (Disk)".
         */
        public function getFileUrl()
        {
        }
        /**
         * Returns a list of available fields for filtering and a list of custom handlers.
         *
         * @return array
         */
        public function getAvailableFields()
        {
        }
        private function isEnabledBizproc()
        {
        }
        private function setUrlTemplate()
        {
        }
        private function validateFields()
        {
        }
        private function getElementFields($elementId, array $values)
        {
        }
        private function setPictureValue(&$elementFields, $fieldId, $fieldValue, array $values)
        {
        }
        private function setTextValue(&$elementFields, $fieldId, $fieldValue, $fieldData)
        {
        }
        private function setBaseValue(&$elementFields, $fieldId, $fieldValue)
        {
        }
        private function setFileValue(&$elementFields, $fieldId, array $fieldValue, array $fieldData, array $values)
        {
        }
        private function setIntegerValue(&$elementFields, array $fieldValue, $fieldData)
        {
        }
        private function setFileDiskValue(&$elementFields, array $fieldValue, $fieldData)
        {
        }
        private function setDateValue(&$elementFields, array $fieldValue, $fieldData)
        {
        }
        private function setDateTimeValue(&$elementFields, array $fieldValue, $fieldData)
        {
        }
        private function setHtmlValue(&$elementFields, array $fieldValue, $fieldData)
        {
        }
        private function setPropertyValue(&$elementFields, array $fieldValue, $fieldData)
        {
        }
        private function getBizprocData()
        {
        }
        private function startBizproc($documentStates, $bizprocParameters, $changedElementFields)
        {
        }
        private function getElementData()
        {
        }
        private function getElements($navData)
        {
        }
        private function getOrder($availableFieldsIdForSort)
        {
        }
        private function getInputFilter(array $filter)
        {
        }
        private function isFieldDateType($type)
        {
        }
        private function getSefFolder()
        {
        }
    }
    class Field implements \Bitrix\Lists\Entity\Controllable, \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        const ERROR_SAVE_FIELD = "ERROR_SAVE_FIELD";
        const ERROR_UPDATE_FIELD = "ERROR_UPDATE_FIELD";
        private $param;
        private $params = [];
        private $fieldList = [];
        private $iblockId;
        public function __construct(\Bitrix\Lists\Service\Param $param)
        {
        }
        public function add()
        {
        }
        public function get(array $navData = [])
        {
        }
        public function update()
        {
        }
        public function delete()
        {
        }
        public function getAvailableTypes()
        {
        }
        private function getFields()
        {
        }
        private function canChangeField($type)
        {
        }
        private function validateFields($fields)
        {
        }
        private function adjustmentFields($fields)
        {
        }
        private function getProperty($iblockId, $code)
        {
        }
    }
    class Section implements \Bitrix\Lists\Entity\Controllable, \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        const ERROR_ADD_SECTION = "ERROR_ADD_SECTION";
        const ERROR_UPDATE_SECTION = "ERROR_UPDATE_SECTION";
        const ERROR_DELETE_SECTION = "ERROR_DELETE_SECTION";
        const ERROR_SECTION_NOT_FOUND = "ERROR_SECTION_NOT_FOUND";
        private $param;
        private $params = [];
        private $fieldList = [];
        private $filterList = [];
        private $selectList = [];
        private $iblockId;
        private $sectionId;
        public function __construct(\Bitrix\Lists\Service\Param $param)
        {
        }
        /**
         * Checks whether an section exists.
         *
         * @return bool
         */
        public function isExist()
        {
        }
        /**
         * Adds an section.
         *
         * @return int|bool
         */
        public function add()
        {
        }
        /**
         * Returns a list of section data.
         *
         * @param array $navData Navigation data.
         *
         * @return array
         */
        public function get(array $navData = [])
        {
        }
        /**
         * Updates an section.
         *
         * @return bool
         */
        public function update()
        {
        }
        /**
         * Deletes an section.
         *
         * @return bool
         */
        public function delete()
        {
        }
        private function getFields()
        {
        }
        private function getFilter($iblockId)
        {
        }
        private function getSelectList($inputSelectList)
        {
        }
    }
    class Iblock implements \Bitrix\Lists\Entity\Controllable, \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        const ERROR_ADD_IBLOCK = "ERROR_ADD_IBLOCK";
        const ERROR_UPDATE_IBLOCK = "ERROR_UPDATE_IBLOCK";
        const ERROR_IBLOCK_NOT_FOUND = "ERROR_IBLOCK_NOT_FOUND";
        const ERROR_IBLOCK_ALREADY_EXISTS = "ERROR_IBLOCK_ALREADY_EXISTS";
        private $param;
        private $params = [];
        private $fieldList = [];
        private $messageList = [];
        private $iblockId;
        public function __construct(\Bitrix\Lists\Service\Param $param)
        {
        }
        /**
         * Checks whether an iblock exists.
         *
         * @return bool
         */
        public function isExist()
        {
        }
        /**
         * Adds an iblock.
         *
         * @return int|bool
         * @throws \Bitrix\Main\LoaderException
         */
        public function add()
        {
        }
        /**
         * Returns a list of iblock data.
         *
         * @param array $navData Navigation data.
         *
         * @return array
         */
        public function get(array $navData = [])
        {
        }
        /**
         * Updates an iblock.
         *
         * @return bool
         */
        public function update()
        {
        }
        /**
         * Deletes an iblock.
         *
         * @return bool
         */
        public function delete()
        {
        }
        private function getFilter()
        {
        }
        private function getOrder()
        {
        }
        private function getFields()
        {
        }
        private function getCurrentRights()
        {
        }
        private function getInputRight()
        {
        }
    }
    class IblockType implements \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        private $param;
        private $params = [];
        public function __construct(\Bitrix\Lists\Service\Param $param)
        {
        }
        /**
         * Returns the iblock type id by the iblock.
         *
         * @return string|null
         */
        public function getIblockTypeId()
        {
        }
    }
    class Utils
    {
        /**
         * Returns an iblock id by code or id.
         *
         * @param array $params Incoming parameters.
         *
         * @return int
         */
        public static function getIblockId(array $params)
        {
        }
        /**
         * Returns an element id by code or id.
         *
         * @param array $params Incoming parameters.
         *
         * @return int
         */
        public static function getElementId(array $params)
        {
        }
        /**
         * Returns an section id by code or id.
         *
         * @param array $params Incoming parameters.
         *
         * @return int
         */
        public static function getSectionId(array $params)
        {
        }
    }
}
namespace Bitrix\Lists\Integration\Main {
    class RatingVote
    {
        public static function onGetRatingContentOwner($params)
        {
        }
    }
}
namespace Bitrix\Lists\Integration\Socialnetwork {
    class Log
    {
        const EVENT_ID_LISTS = 'lists_new_element';
        /**
         * Returns set EVENT_ID processed by handler to generate content for full index.
         *
         * @param void
         * @return array
         */
        public static function getEventIdList()
        {
        }
        /**
         * Returns content for LogIndex.
         *
         * @param Event $event Event from LogIndex::setIndex().
         * @return EventResult
         */
        public static function onIndexGetContent(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Lists {
    /**
     * Class work with fields - prepare and render field value, additional steps.
     * 
     * Class Field
     * @package Bitrix\Lists\UI
     */
    class Field
    {
        protected static $cache = array();
        protected static $separator = '<br>';
        protected static $renderForForm = false;
        /**
         * Method renders the printing form field values.
         *
         * @param array $field Field structure in the CListField format.
         * @return string
         */
        public static function renderField(array $field)
        {
        }
        public static function prepareFieldDataForEditForm(array $field)
        {
        }
        /**
         * Method of preparing a data structure for the filter.
         *
         * @param array $field Field structure in the CListField format.
         * @return array
         */
        public static function prepareFieldDataForFilter(array $field)
        {
        }
        protected static function renderFieldByTypeS(array $field)
        {
        }
        protected static function renderFieldByTypeN(array $field)
        {
        }
        protected static function renderFieldByTypeL(array $field)
        {
        }
        protected static function renderFieldByTypeF(array $field)
        {
        }
        protected static function renderFieldByTypeE(array $field)
        {
        }
        protected static function renderFieldByTypeG(array $field)
        {
        }
        protected static function renderFieldByUserTypeElist(array $field)
        {
        }
        protected static function renderFieldByFieldPreviewPicture(array $field)
        {
        }
        protected static function renderFieldByFieldDetailPicture(array $field)
        {
        }
        protected static function renderFieldByFieldActiveFrom(array $field)
        {
        }
        protected static function renderFieldByFieldActiveTo(array $field)
        {
        }
        protected static function renderFieldByFieldDateCreate(array $field)
        {
        }
        protected static function renderFieldByFieldTimestampX(array $field)
        {
        }
        protected static function renderFieldByFieldCreatedBy(array $field)
        {
        }
        protected static function renderFieldByFieldModifiedBy(array $field)
        {
        }
        protected static function renderFieldByFieldDetailText(array $field)
        {
        }
        protected static function renderFieldByFieldPreviewText(array $field)
        {
        }
        protected static function renderDateField(array $field)
        {
        }
        protected static function renderFieldByFieldName(array $field)
        {
        }
        protected static function renderDefaultField(array $field)
        {
        }
        protected static function getLinkToElement(array $field)
        {
        }
        protected static function renderCustomDefaultValueDiskFile(array $field)
        {
        }
        protected static function prepareEditFieldByTypeL(array $field)
        {
        }
        protected static function prepareEditFieldByTypeS(array $field)
        {
        }
        protected static function prepareEditFieldByTypeN(array $field)
        {
        }
        protected static function prepareEditFieldByUserTypeHTML(array $field)
        {
        }
        protected static function prepareEditFieldByFieldCreatedBy(array $field)
        {
        }
        protected static function prepareEditFieldByFieldModifiedBy(array $field)
        {
        }
        protected static function prepareEditFieldByFieldDateCreate(array $field)
        {
        }
        protected static function prepareEditFieldByFieldTimestampX(array $field)
        {
        }
        protected static function prepareEditFieldByFieldDetailText(array $field)
        {
        }
        protected static function prepareEditFieldByFieldPreviewText(array $field)
        {
        }
        protected static function prepareEditFieldByFieldPreviewPicture(array $field)
        {
        }
        protected static function prepareEditFieldByFieldDetailPicture(array $field)
        {
        }
        protected static function prepareEditFieldByFieldActiveFrom(array $field)
        {
        }
        protected static function prepareEditFieldByFieldActiveTo(array $field)
        {
        }
        protected static function prepareEditFieldByText($field)
        {
        }
        protected static function prepareEditFieldByTypeE(array $field)
        {
        }
        protected static function prepareEditFieldByTypeG(array $field)
        {
        }
        protected static function prepareEditFieldByTypeF(array $field)
        {
        }
        protected static function prepareDateEditField(array $field)
        {
        }
        protected static function prepareEditDefaultField(array $field)
        {
        }
        protected static function renderHtmlEditor($fieldId, $fieldNameForHtml, $params, $content)
        {
        }
    }
}
namespace Bitrix\Lists\Controller {
    class Entity extends \Bitrix\Main\Engine\Controller
    {
        protected function getParamFromRequest()
        {
        }
    }
    class Element extends \Bitrix\Lists\Controller\Entity
    {
        public function copyAction()
        {
        }
        protected function checkPermission(\Bitrix\Lists\Service\Param $param, $permission)
        {
        }
    }
    class Lock extends \Bitrix\Lists\Controller\Element
    {
        public function lockAction()
        {
        }
        public function unLockAction()
        {
        }
    }
    class Iblock extends \Bitrix\Lists\Controller\Entity
    {
        public function copyAction()
        {
        }
        private function checkPermission(\Bitrix\Lists\Service\Param $param, $permission)
        {
        }
    }
}
namespace Bitrix\Lists\Internals\Error {
    class Error extends \Bitrix\Main\Error
    {
    }
    final class ErrorCollection extends \Bitrix\Main\ErrorCollection
    {
        /**
         * Adds one error to collection.
         * @param Error $error Error object.
         * @return void
         */
        public function addOne(\Bitrix\Lists\Internals\Error\Error $error)
        {
        }
        /**
         * Adds errors from Main\Entity\Result.
         * @param Result $result Result after action in Entity.
         * @return void
         */
        public function addFromResult(\Bitrix\Main\Entity\Result $result)
        {
        }
        /**
         * Returns true if collection has errors.
         * @return bool
         */
        public function hasErrors()
        {
        }
        /**
         * Returns array of errors with the necessary code.
         * @param string $code Code of error.
         * @return Error[]
         */
        public function getErrorsByCode($code)
        {
        }
    }
}
namespace Bitrix\Lists\Preview {
    class Element
    {
        public static function buildPreview($parameters)
        {
        }
        public static function checkUserReadAccess($parameters)
        {
        }
    }
}
namespace Bitrix\Lists\Copy\Integration {
    class Group implements \Bitrix\Socialnetwork\Copy\Integration\Feature
    {
        private $executiveUserId;
        private $features = [];
        const MODULE_ID = "lists";
        const QUEUE_OPTION = "ListsGroupQueue";
        const CHECKER_OPTION = "ListsGroupChecker_";
        const STEPPER_OPTION = "ListsGroupStepper_";
        const STEPPER_CLASS = \Bitrix\Lists\Copy\Integration\GroupStepper::class;
        const ERROR_OPTION = "ListsGroupError_";
        public function __construct($executiveUserId = 0, array $features = [])
        {
        }
        /**
         * Starts the copy process.
         * @param int $groupId Origin group id.
         * @param int $copiedGroupId Copied group id.
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function copy($groupId, $copiedGroupId)
        {
        }
        private function getIblockIdsToCopy($iblockTypeId, $groupId)
        {
        }
        private function addToQueue(int $copiedGroupId)
        {
        }
    }
    class GroupStepper extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "lists";
        protected $queueName = "ListsGroupQueue";
        protected $checkerName = "ListsGroupChecker_";
        protected $baseName = "ListsGroupStepper_";
        protected $errorName = "ListsGroupError_";
        /**
         * Executes some action, and if return value is false, agent will be deleted.
         * @param array $option Array with main data to show if it is necessary like {steps : 35, count : 7},
         * where steps is an amount of iterations, count - current position.
         * @return boolean
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\SystemException
         */
        public function execute(array &$option)
        {
        }
        private function getIblockIdsToCopy($iblockTypeId, $groupId)
        {
        }
        private function getOffset(string $iblockTypeId, int $copiedGroupId) : int
        {
        }
        private function getErrorOffset(\Bitrix\Iblock\Copy\Manager $copyManager) : int
        {
        }
        protected function getQueue() : array
        {
        }
        protected function setQueue(array $queue) : void
        {
        }
        protected function getQueueOption()
        {
        }
        protected function saveQueueOption(array $data)
        {
        }
        protected function deleteQueueOption()
        {
        }
        protected function deleteCurrentQueue(array $queue) : void
        {
        }
        protected function isQueueEmpty()
        {
        }
        protected function getOptionData($optionName)
        {
        }
        protected function deleteOption($optionName)
        {
        }
    }
}
namespace Bitrix\Iblock\Copy\Implement {
    class Iblock extends \Bitrix\Main\Copy\CopyImplementer
    {
        const IBLOCK_COPY_ERROR = "IBLOCK_COPIER_ERROR";
        private $targetIblockTypeId = "";
        private $targetSocnetGroupId = 0;
        /**
         * @var \CCacheManager|null
         */
        protected $cacheManager;
        private $child = [];
        /**
         * Writes child implementer to the copy queue.
         *
         * @param Child $child Child implementer.
         */
        public function setChild(\Bitrix\Iblock\Copy\Implement\Children\Child $child)
        {
        }
        public function setTargetIblockTypeId($targetIblockTypeId)
        {
        }
        public function setTargetSocnetGroupId($targetSocnetGroupId)
        {
        }
        /**
         * @param mixed $cacheManager
         */
        public function setCacheManager(\CCacheManager $cacheManager) : void
        {
        }
        /**
         * Adds iblock.
         *
         * @param Container $container
         * @param array $fields
         * @return int|bool return iblock id or false.
         */
        public function add(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Returns iblock fields.
         *
         * @param Container $container
         * @param int $entityId
         * @return array $fields
         */
        public function getFields(\Bitrix\Main\Copy\Container $container, $entityId)
        {
        }
        /**
         * Preparing data before creating a new iblock.
         *
         * @param Container $container
         * @param array $fields List iblock fields.
         * @return array $fields
         */
        public function prepareFieldsToCopy(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Starts copying children entities.
         *
         * @param Container $container
         * @param int $entityId
         * @param int $copiedEntityId
         * @return Result
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function copyChildren(\Bitrix\Main\Copy\Container $container, $entityId, $copiedEntityId)
        {
        }
        protected function cleanCache(int $iblockId) : void
        {
        }
        protected function getSocnetPermission($iblockId, $socnetGroupId) : array
        {
        }
        private function getRights($iblockId, $rightMode, $socnetGroupId = 0)
        {
        }
    }
}
namespace Bitrix\Lists\Copy\Implement {
    class Iblock extends \Bitrix\Iblock\Copy\Implement\Iblock
    {
        public function add(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        public function copyChildren(\Bitrix\Main\Copy\Container $container, $iblockId, $copiedIblockId)
        {
        }
        protected function cleanCache(int $iblockId) : void
        {
        }
        protected function getSocnetPermission($iblockId, $socnetGroupId) : array
        {
        }
        private function copyLockFeature(int $iblockId, int $copiedIblockId) : void
        {
        }
        private function setUrlTemplate(\Bitrix\Main\Copy\Container $container, int $iblockId, array $fields)
        {
        }
    }
}
namespace Bitrix\Iblock\Copy\Implement\Children {
    interface Child
    {
        /**
         * Copies iblock child.
         * @param int $iblockId Iblock id.
         * @param int $copiedIblockId Copied iblock id.
         * @return Result
         */
        public function copy($iblockId, $copiedIblockId) : \Bitrix\Main\Result;
    }
    class Field implements \Bitrix\Iblock\Copy\Implement\Children\Child
    {
        const FIELD_COPY_ERROR = "FIELD_COPY_ERROR";
        private $enumRatio = [];
        private $enumTmpMap = [];
        /**
         * @var Result
         */
        protected $result;
        public function __construct()
        {
        }
        public function getEnumRatio()
        {
        }
        public function copy($iblockId, $copiedIblockId) : \Bitrix\Main\Result
        {
        }
        private function getFieldsToCopy($iblockId)
        {
        }
        private function addFields($copiedIblockId, $fields)
        {
        }
        private function getProperty($iblockId)
        {
        }
        private function addProperties($copiedIblockId, array $properties)
        {
        }
        private function addPropertyList($propertyId, $list)
        {
        }
        protected function getEnumValues($fieldId)
        {
        }
        protected function setEnumRatio($iblockId, $fieldId, $copiedFieldId)
        {
        }
    }
}
namespace Bitrix\Lists\Copy\Implement\Children {
    class Field extends \Bitrix\Iblock\Copy\Implement\Children\Field
    {
        /**
         * Copies lists fields.
         * @param int $iblockId Iblock id.
         * @param int $copiedIblockId Copied iblock id.
         * @return Result
         */
        public function copy($iblockId, $copiedIblockId) : \Bitrix\Main\Result
        {
        }
        private function getFieldsToCopy($iblockId, $copiedIblockId)
        {
        }
        private function addListsFields($iblockId, $copiedIblockId, array $fields)
        {
        }
    }
}
namespace Bitrix\Iblock\Copy\Implement\Children {
    class Workflow implements \Bitrix\Iblock\Copy\Implement\Children\Child
    {
        protected $iblockTypeId;
        private $result;
        public function __construct($iblockTypeId)
        {
        }
        /**
         * Copies iblock child.
         * @param int $iblockId Iblock id.
         * @param int $copiedIblockId Copied iblock id.
         * @return Result
         */
        public function copy($iblockId, $copiedIblockId) : \Bitrix\Main\Result
        {
        }
        protected function getDocumentType(int $iblockId) : array
        {
        }
        private function getImplementer(array $documentType)
        {
        }
        private function getCopier(\Bitrix\Bizproc\Copy\Implement\WorkflowTemplate $implementer)
        {
        }
        private function getContainerCollection(array $templateIdsToCopy)
        {
        }
    }
}
namespace Bitrix\Lists\Copy\Implement\Children {
    class Workflow extends \Bitrix\Iblock\Copy\Implement\Children\Workflow
    {
        protected function getDocumentType(int $iblockId) : array
        {
        }
    }
}
namespace Bitrix\Lists\Service {
    class Param implements \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        const ERROR_REQUIRED_PARAMETERS_MISSING = "ERROR_REQUIRED_PARAMETERS_MISSING";
        private $params = [];
        private $interchangeableParams = [];
        public function __construct(array $params)
        {
        }
        /**
         * Checks required input parameters.
         *
         * @param array $requiredInputParams List of keys that are required in the input parameters.
         */
        public function checkRequiredInputParams(array $requiredInputParams)
        {
        }
        /**
         * Adds a parameter to an array of parameters.
         *
         * @param array $params
         */
        public function setParam(array $params)
        {
        }
        /**
         * Returns parameters after necessary processing.
         *
         * @return array
         */
        public function getParams()
        {
        }
        private function changeKeyCaseRecursive(array $params)
        {
        }
        private function checkArrayParam(array $param)
        {
        }
        private function checkParam($param)
        {
        }
        private function setParamError($param)
        {
        }
    }
}
namespace Bitrix\Lists\Rest {
    class RestService extends \IRestService
    {
        const SCOPE = "lists";
        public static function onRestServiceBuildDescription()
        {
        }
        public static function getIblockTypeId(array $params, $n, \CRestServer $server)
        {
        }
        public static function addLists(array $params, $n, \CRestServer $server)
        {
        }
        public static function getLists(array $params, $n, \CRestServer $server)
        {
        }
        public static function updateLists(array $params, $n, \CRestServer $server)
        {
        }
        public static function deleteLists(array $params, $n, \CRestServer $server)
        {
        }
        public static function addSection(array $params, $n, \CRestServer $server)
        {
        }
        public static function getSection(array $params, $n, \CRestServer $server)
        {
        }
        public static function updateSection(array $params, $n, \CRestServer $server)
        {
        }
        public static function deleteSection(array $params, $n, \CRestServer $server)
        {
        }
        public static function addField(array $params, $n, \CRestServer $server)
        {
        }
        public static function getFields(array $params, $n, \CRestServer $server)
        {
        }
        public static function updateField(array $params, $n, \CRestServer $server)
        {
        }
        public static function deleteField(array $params, $n, \CRestServer $server)
        {
        }
        public static function getFieldTypes(array $params, $n, \CRestServer $server)
        {
        }
        public static function addElement(array $params, $n, \CRestServer $server)
        {
        }
        public static function getElement(array $params, $n, \CRestServer $server)
        {
        }
        public static function updateElement(array $params, $n, \CRestServer $server)
        {
        }
        public static function deleteElement(array $params, $n, \CRestServer $server)
        {
        }
        public static function getFileUrl(array $params, $n, \CRestServer $server)
        {
        }
        private static function throwError(array $errors, $message = "", $code = "")
        {
        }
        private static function getSanitizeFilter($filter, $availableFields, $listCustomFields)
        {
        }
        /**
         * @deprecated Constants are no longer used.
         */
        const ENTITY_LISTS_CODE_PREFIX = "REST";
        const ERROR_REQUIRED_PARAMETERS_MISSING = "ERROR_REQUIRED_PARAMETERS_MISSING";
        const ERROR_IBLOCK_ALREADY_EXISTS = "ERROR_IBLOCK_ALREADY_EXISTS";
        const ERROR_SAVE_IBLOCK = "ERROR_SAVE_IBLOCK";
        const ERROR_IBLOCK_NOT_FOUND = "ERROR_IBLOCK_NOT_FOUND";
        const ERROR_SAVE_FIELD = "ERROR_SAVE_FIELD";
        const ERROR_PROPERTY_ALREADY_EXISTS = "ERROR_PROPERTY_ALREADY_EXISTS";
        const ERROR_SAVE_ELEMENT = "ERROR_SAVE_ELEMENT";
        const ERROR_DELETE_ELEMENT = "ERROR_DELETE_ELEMENT";
        const ERROR_BIZPROC = "ERROR_BIZPROC";
    }
}
namespace {
    class bitrix_siteinfoportal extends \CModule
    {
        var $MODULE_ID = "bitrix.siteinfoportal";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function bitrix_siteinfoportal()
        {
        }
        function InstallDB($install_wizard = \true)
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function InstallPublic()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
    class CSiteInfoportal
    {
        public static function ShowPanel()
        {
        }
    }
    class highloadblock extends \CModule
    {
        var $MODULE_ID = "highloadblock";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "N";
        function __construct()
        {
        }
        public function GetModuleTasks()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
    /**
     * Class CUserTypeEnum
     * @deprecated deprecated since main 20.0.700
     */
    class CUserTypeEnum extends \Bitrix\Main\UserField\TypeBase
    {
        public const USER_TYPE_ID = \Bitrix\Main\UserField\Types\EnumType::USER_TYPE_ID;
        function getUserTypeDescription()
        {
        }
        function getSettingsHtml($userField, $additionalParameters, $varsFromForm)
        {
        }
        function getFilterHtml($userField, $additionalParameters)
        {
        }
        function getAdminListViewHtml($userField, $additionalParameters)
        {
        }
        function getAdminListEditHtml($userField, $additionalParameters)
        {
        }
        function getAdminListEditHtmlMulty($userField, $additionalParameters)
        {
        }
        function getEditFormHtml($userField, $additionalParameters)
        {
        }
        function getEditFormHtmlMulty($userField, $additionalParameters)
        {
        }
        public static function getPublicView($userField, $additionalParameters = [])
        {
        }
        public function getPublicEdit($userField, $additionalParameters = [])
        {
        }
        public static function getPublicText($userField)
        {
        }
        function getDbColumnType($userField)
        {
        }
        function prepareSettings($userField)
        {
        }
        function getGroupActionData($userField, $additionalParameters)
        {
        }
        function getFilterData($userField, $additionalParameters)
        {
        }
        function checkFields($userField, $value)
        {
        }
        function getList($userField)
        {
        }
        public static function getListMultiple(array $userFields)
        {
        }
        function onSearchIndex($userField)
        {
        }
        protected static function getEnumList(&$userField, $arParams = array())
        {
        }
        protected static function getEmptyCaption($userField)
        {
        }
    }
    class CUserTypeHlblock extends \CUserTypeEnum
    {
        const USER_TYPE_ID = "hlblock";
        const DISPLAY_LIST = 'LIST';
        const DISPLAY_CHECKBOX = 'CHECKBOX';
        function GetUserTypeDescription()
        {
        }
        function GetDBColumnType($arUserField)
        {
        }
        function PrepareSettings($arUserField)
        {
        }
        function GetSettingsHTML($arUserField = \false, $arHtmlControl, $bVarsFromForm)
        {
        }
        function CheckFields($arUserField, $value)
        {
        }
        function GetList($arUserField)
        {
        }
        function getEntityReferences($userfield, \Bitrix\Main\Entity\ScalarField $entityField)
        {
        }
        public static function getHlRows($userfield, $clearValues = \false)
        {
        }
        function GetAdminListViewHTML($arUserField, $arHtmlControl)
        {
        }
        public static function getDropDownData()
        {
        }
        public static function getDropDownHtml($hlblockId = \null, $hlfieldId = \null)
        {
        }
    }
    /**
     * Class CIBlockPropertyDirectory
     */
    class CIBlockPropertyDirectory
    {
        const TABLE_PREFIX = 'b_hlbd_';
        const USER_TYPE = 'directory';
        protected static $arFullCache = array();
        protected static $arItemCache = array();
        protected static $directoryMap = array();
        protected static $hlblockCache = array();
        protected static $hlblockClassNameCache = array();
        /**
         * Returns property type description.
         *
         * @return array
         */
        public static function GetUserTypeDescription()
        {
        }
        /**
         * Prepare settings for property.
         *
         * @param array $arProperty				Property description.
         * @return array
         */
        public static function PrepareSettings($arProperty)
        {
        }
        /**
         * Returns html for show in edit property page.
         *
         * @param array $arProperty				Property description.
         * @param array $strHTMLControlName		Control description.
         * @param array $arPropertyFields		Property fields for edit form.
         * @return string
         */
        public static function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
        {
        }
        /**
         * Return html for edit single value.
         *
         * @param array $arProperty				Property description.
         * @param array $value					Current value.
         * @param array $strHTMLControlName		Control description.
         * @return string
         */
        public static function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
        {
        }
        /**
         * Return html for public edit value.
         *
         * @param array $property			Property description.
         * @param array $value				Current value.
         * @param array $control			Control description.
         * @return string
         */
        public static function GetPublicEditHTML($property, $value, $control)
        {
        }
        /**
         * Return html for public edit multi values.
         *
         * @param array $property			Property description.
         * @param array $value				Current value.
         * @param array $control			Control description.
         * @return string
         */
        public static function GetPublicEditHTMLMulty($property, $value, $control)
        {
        }
        /**
         * Returns list values.
         *
         * @param array $arProperty			Property description.
         * @param array $values				Current value.
         * @return string
         */
        public static function GetOptionsHtml($arProperty, $values)
        {
        }
        /**
         * Returns data for list.
         *
         * @param array $arProperty Property description.
         * @return array
         */
        public static function GetOptionsData($arProperty)
        {
        }
        /**
         * Returns data for smart filter.
         *
         * @param array $arProperty				Property description.
         * @param array $value					Current value.
         * @return false|array
         */
        public static function GetExtendedValue($arProperty, $value)
        {
        }
        /**
         * Returns admin list view html.
         *
         * @param array $arProperty				Property description.
         * @param array $value					Current value.
         * @param array $strHTMLControlName		Control description.
         * @return string
         */
        public static function GetAdminListViewHTML($arProperty, $value, $strHTMLControlName)
        {
        }
        /**
         * Return public list view html (module list).
         *
         * @param array $arProperty				Property description.
         * @param array $value					Current value.
         * @param array $strHTMLControlName		Control description.
         * @return string
         */
        public static function GetPublicViewHTML($arProperty, $value, $strHTMLControlName)
        {
        }
        /**
         * Return admin filter html.
         *
         * @param array $arProperty				Property description.
         * @param array $strHTMLControlName		Control description.
         * @return string
         */
        public static function GetAdminFilterHTML($arProperty, $strHTMLControlName)
        {
        }
        /**
         * Return property value for search.
         *
         * @param array $arProperty				Property description.
         * @param array $value					Current value.
         * @param array $strHTMLControlName		Control description.
         * @return string
         */
        public static function GetSearchContent($arProperty, $value, $strHTMLControlName)
        {
        }
        /**
         * Add values in filter.
         *
         * @param array $arProperty
         * @param array $strHTMLControlName
         * @param array &$arFilter
         * @param bool &$filtered
         * @return void
         */
        public static function AddFilterFields($arProperty, $strHTMLControlName, &$arFilter, &$filtered)
        {
        }
        /**
         * Returns table name for new entity.
         *
         * @param string $name			Entity name
         * @return bool|string
         */
        public static function createHighloadTableName($name)
        {
        }
        /**
         * @param array $property
         * @param array $strHTMLControlName
         * @param array &$field
         * @return void
         */
        public static function GetUIFilterProperty($property, $strHTMLControlName, &$field)
        {
        }
        /**
         * Returns entity data.
         *
         * @param string $tableName				HL table name.
         * @param array $listDescr				Params for getList.
         * @return array
         */
        private static function getEntityFieldsByFilter($tableName, $listDescr = array())
        {
        }
        private static function normalizeValue($value)
        {
        }
        /**
         * @param mixed $identifier
         * @return string|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private static function getDefaultXmlId($identifier)
        {
        }
        private static function getEntityFieldsForTable($hlTableName)
        {
        }
        public static function GetUIEntityEditorProperty($settings, $value) : ?array
        {
        }
        public static function GetUIEntityEditorPropertyEditHtml(array $params = []) : string
        {
        }
        public static function GetUIEntityEditorPropertyViewHtml(array $params = []) : string
        {
        }
    }
}
namespace Bitrix\Highloadblock {
    /**
     * HighloadBlock
     * @see \Bitrix\Highloadblock\HighloadBlockTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Highloadblock\HighloadBlock setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getName()
     * @method \Bitrix\Highloadblock\HighloadBlock setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Highloadblock\HighloadBlock resetName()
     * @method \Bitrix\Highloadblock\HighloadBlock unsetName()
     * @method \string fillName()
     * @method \string getTableName()
     * @method \Bitrix\Highloadblock\HighloadBlock setTableName(\string|\Bitrix\Main\DB\SqlExpression $tableName)
     * @method bool hasTableName()
     * @method bool isTableNameFilled()
     * @method bool isTableNameChanged()
     * @method \string remindActualTableName()
     * @method \string requireTableName()
     * @method \Bitrix\Highloadblock\HighloadBlock resetTableName()
     * @method \Bitrix\Highloadblock\HighloadBlock unsetTableName()
     * @method \string fillTableName()
     * @method \int getFieldsCount()
     * @method \int remindActualFieldsCount()
     * @method \int requireFieldsCount()
     * @method bool hasFieldsCount()
     * @method bool isFieldsCountFilled()
     * @method \Bitrix\Highloadblock\HighloadBlock unsetFieldsCount()
     * @method \int fillFieldsCount()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang getLang()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang remindActualLang()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang requireLang()
     * @method \Bitrix\Highloadblock\HighloadBlock setLang(\Bitrix\Highloadblock\EO_HighloadBlockLang $object)
     * @method \Bitrix\Highloadblock\HighloadBlock resetLang()
     * @method \Bitrix\Highloadblock\HighloadBlock unsetLang()
     * @method bool hasLang()
     * @method bool isLangFilled()
     * @method bool isLangChanged()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang fillLang()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Highloadblock\HighloadBlock set($fieldName, $value)
     * @method \Bitrix\Highloadblock\HighloadBlock reset($fieldName)
     * @method \Bitrix\Highloadblock\HighloadBlock unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Highloadblock\HighloadBlock wakeUp($data)
     */
    class EO_HighloadBlock
    {
        /* @var \Bitrix\Highloadblock\HighloadBlockTable */
        public static $dataClass = '\\Bitrix\\Highloadblock\\HighloadBlockTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_HighloadBlock_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getTableNameList()
     * @method \string[] fillTableName()
     * @method \int[] getFieldsCountList()
     * @method \int[] fillFieldsCount()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang[] getLangList()
     * @method \Bitrix\Highloadblock\EO_HighloadBlock_Collection getLangCollection()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang_Collection fillLang()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Highloadblock\HighloadBlock $object)
     * @method bool has(\Bitrix\Highloadblock\HighloadBlock $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Highloadblock\HighloadBlock getByPrimary($primary)
     * @method \Bitrix\Highloadblock\HighloadBlock[] getAll()
     * @method bool remove(\Bitrix\Highloadblock\HighloadBlock $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Highloadblock\EO_HighloadBlock_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Highloadblock\HighloadBlock current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_HighloadBlock_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Highloadblock\HighloadBlockTable */
        public static $dataClass = '\\Bitrix\\Highloadblock\\HighloadBlockTable';
    }
    /**
     * @method static EO_HighloadBlock_Query query()
     * @method static EO_HighloadBlock_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_HighloadBlock_Result getById($id)
     * @method static EO_HighloadBlock_Result getList(array $parameters = array())
     * @method static EO_HighloadBlock_Entity getEntity()
     * @method static \Bitrix\Highloadblock\HighloadBlock createObject($setDefaultValues = true)
     * @method static \Bitrix\Highloadblock\EO_HighloadBlock_Collection createCollection()
     * @method static \Bitrix\Highloadblock\HighloadBlock wakeUpObject($row)
     * @method static \Bitrix\Highloadblock\EO_HighloadBlock_Collection wakeUpCollection($rows)
     */
    class HighloadBlockTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_HighloadBlock_Result exec()
     * @method \Bitrix\Highloadblock\HighloadBlock fetchObject()
     * @method \Bitrix\Highloadblock\EO_HighloadBlock_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_HighloadBlock_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Highloadblock\HighloadBlock fetchObject()
     * @method \Bitrix\Highloadblock\EO_HighloadBlock_Collection fetchCollection()
     */
    class EO_HighloadBlock_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Highloadblock\HighloadBlock createObject($setDefaultValues = true)
     * @method \Bitrix\Highloadblock\EO_HighloadBlock_Collection createCollection()
     * @method \Bitrix\Highloadblock\HighloadBlock wakeUpObject($row)
     * @method \Bitrix\Highloadblock\EO_HighloadBlock_Collection wakeUpCollection($rows)
     */
    class EO_HighloadBlock_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_HighloadBlockLang
     * @see \Bitrix\Highloadblock\HighloadBlockLangTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getLid()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang setLid(\string|\Bitrix\Main\DB\SqlExpression $lid)
     * @method bool hasLid()
     * @method bool isLidFilled()
     * @method bool isLidChanged()
     * @method \string remindActualLid()
     * @method \string requireLid()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang resetLid()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang unsetLid()
     * @method \string fillLid()
     * @method \string getName()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang resetName()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang unsetName()
     * @method \string fillName()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang set($fieldName, $value)
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang reset($fieldName)
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Highloadblock\EO_HighloadBlockLang wakeUp($data)
     */
    class EO_HighloadBlockLang
    {
        /* @var \Bitrix\Highloadblock\HighloadBlockLangTable */
        public static $dataClass = '\\Bitrix\\Highloadblock\\HighloadBlockLangTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_HighloadBlockLang_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getLidList()
     * @method \string[] fillLid()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Highloadblock\EO_HighloadBlockLang $object)
     * @method bool has(\Bitrix\Highloadblock\EO_HighloadBlockLang $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang getByPrimary($primary)
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang[] getAll()
     * @method bool remove(\Bitrix\Highloadblock\EO_HighloadBlockLang $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Highloadblock\EO_HighloadBlockLang_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_HighloadBlockLang_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Highloadblock\HighloadBlockLangTable */
        public static $dataClass = '\\Bitrix\\Highloadblock\\HighloadBlockLangTable';
    }
    /**
     * @method static EO_HighloadBlockLang_Query query()
     * @method static EO_HighloadBlockLang_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_HighloadBlockLang_Result getById($id)
     * @method static EO_HighloadBlockLang_Result getList(array $parameters = array())
     * @method static EO_HighloadBlockLang_Entity getEntity()
     * @method static \Bitrix\Highloadblock\EO_HighloadBlockLang createObject($setDefaultValues = true)
     * @method static \Bitrix\Highloadblock\EO_HighloadBlockLang_Collection createCollection()
     * @method static \Bitrix\Highloadblock\EO_HighloadBlockLang wakeUpObject($row)
     * @method static \Bitrix\Highloadblock\EO_HighloadBlockLang_Collection wakeUpCollection($rows)
     */
    class HighloadBlockLangTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_HighloadBlockLang_Result exec()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang fetchObject()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_HighloadBlockLang_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang fetchObject()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang_Collection fetchCollection()
     */
    class EO_HighloadBlockLang_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang createObject($setDefaultValues = true)
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang_Collection createCollection()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang wakeUpObject($row)
     * @method \Bitrix\Highloadblock\EO_HighloadBlockLang_Collection wakeUpCollection($rows)
     */
    class EO_HighloadBlockLang_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_HighloadBlockRights
     * @see \Bitrix\Highloadblock\HighloadBlockRightsTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getHlId()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights setHlId(\int|\Bitrix\Main\DB\SqlExpression $hlId)
     * @method bool hasHlId()
     * @method bool isHlIdFilled()
     * @method bool isHlIdChanged()
     * @method \int remindActualHlId()
     * @method \int requireHlId()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights resetHlId()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights unsetHlId()
     * @method \int fillHlId()
     * @method \int getTaskId()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights setTaskId(\int|\Bitrix\Main\DB\SqlExpression $taskId)
     * @method bool hasTaskId()
     * @method bool isTaskIdFilled()
     * @method bool isTaskIdChanged()
     * @method \int remindActualTaskId()
     * @method \int requireTaskId()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights resetTaskId()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights unsetTaskId()
     * @method \int fillTaskId()
     * @method \string getAccessCode()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights setAccessCode(\string|\Bitrix\Main\DB\SqlExpression $accessCode)
     * @method bool hasAccessCode()
     * @method bool isAccessCodeFilled()
     * @method bool isAccessCodeChanged()
     * @method \string remindActualAccessCode()
     * @method \string requireAccessCode()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights resetAccessCode()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights unsetAccessCode()
     * @method \string fillAccessCode()
     * @method \Bitrix\Main\EO_UserAccess getUserAccess()
     * @method \Bitrix\Main\EO_UserAccess remindActualUserAccess()
     * @method \Bitrix\Main\EO_UserAccess requireUserAccess()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights setUserAccess(\Bitrix\Main\EO_UserAccess $object)
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights resetUserAccess()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights unsetUserAccess()
     * @method bool hasUserAccess()
     * @method bool isUserAccessFilled()
     * @method bool isUserAccessChanged()
     * @method \Bitrix\Main\EO_UserAccess fillUserAccess()
     * @method \Bitrix\Main\EO_TaskOperation getTaskOperation()
     * @method \Bitrix\Main\EO_TaskOperation remindActualTaskOperation()
     * @method \Bitrix\Main\EO_TaskOperation requireTaskOperation()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights setTaskOperation(\Bitrix\Main\EO_TaskOperation $object)
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights resetTaskOperation()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights unsetTaskOperation()
     * @method bool hasTaskOperation()
     * @method bool isTaskOperationFilled()
     * @method bool isTaskOperationChanged()
     * @method \Bitrix\Main\EO_TaskOperation fillTaskOperation()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights set($fieldName, $value)
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights reset($fieldName)
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Highloadblock\EO_HighloadBlockRights wakeUp($data)
     */
    class EO_HighloadBlockRights
    {
        /* @var \Bitrix\Highloadblock\HighloadBlockRightsTable */
        public static $dataClass = '\\Bitrix\\Highloadblock\\HighloadBlockRightsTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_HighloadBlockRights_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getHlIdList()
     * @method \int[] fillHlId()
     * @method \int[] getTaskIdList()
     * @method \int[] fillTaskId()
     * @method \string[] getAccessCodeList()
     * @method \string[] fillAccessCode()
     * @method \Bitrix\Main\EO_UserAccess[] getUserAccessList()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights_Collection getUserAccessCollection()
     * @method \Bitrix\Main\EO_UserAccess_Collection fillUserAccess()
     * @method \Bitrix\Main\EO_TaskOperation[] getTaskOperationList()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights_Collection getTaskOperationCollection()
     * @method \Bitrix\Main\EO_TaskOperation_Collection fillTaskOperation()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Highloadblock\EO_HighloadBlockRights $object)
     * @method bool has(\Bitrix\Highloadblock\EO_HighloadBlockRights $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights getByPrimary($primary)
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights[] getAll()
     * @method bool remove(\Bitrix\Highloadblock\EO_HighloadBlockRights $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Highloadblock\EO_HighloadBlockRights_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_HighloadBlockRights_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Highloadblock\HighloadBlockRightsTable */
        public static $dataClass = '\\Bitrix\\Highloadblock\\HighloadBlockRightsTable';
    }
    /**
     * @method static EO_HighloadBlockRights_Query query()
     * @method static EO_HighloadBlockRights_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_HighloadBlockRights_Result getById($id)
     * @method static EO_HighloadBlockRights_Result getList(array $parameters = array())
     * @method static EO_HighloadBlockRights_Entity getEntity()
     * @method static \Bitrix\Highloadblock\EO_HighloadBlockRights createObject($setDefaultValues = true)
     * @method static \Bitrix\Highloadblock\EO_HighloadBlockRights_Collection createCollection()
     * @method static \Bitrix\Highloadblock\EO_HighloadBlockRights wakeUpObject($row)
     * @method static \Bitrix\Highloadblock\EO_HighloadBlockRights_Collection wakeUpCollection($rows)
     */
    class HighloadBlockRightsTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_HighloadBlockRights_Result exec()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights fetchObject()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_HighloadBlockRights_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights fetchObject()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights_Collection fetchCollection()
     */
    class EO_HighloadBlockRights_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights createObject($setDefaultValues = true)
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights_Collection createCollection()
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights wakeUpObject($row)
     * @method \Bitrix\Highloadblock\EO_HighloadBlockRights_Collection wakeUpCollection($rows)
     */
    class EO_HighloadBlockRights_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    abstract class DataManager extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Being redefined in HL classes
         * @return null
         */
        public static function getHighloadBlock()
        {
        }
        public static function checkFields(\Bitrix\Main\Entity\Result $result, $primary, array $data)
        {
        }
        /**
         * @param array $data
         *
         * @return Entity\AddResult
         * @throws Main\ArgumentException
         * @throws Main\Db\SqlQueryException
         * @throws Main\SystemException
         */
        public static function add(array $data)
        {
        }
        /**
         * @param mixed $primary
         * @param array $data
         *
         * @return Entity\UpdateResult
         * @throws Main\ArgumentException
         * @throws Main\Db\SqlQueryException
         * @throws Main\SystemException
         */
        public static function update($primary, array $data)
        {
        }
        /**
         * @param mixed $primary
         *
         * @return Entity\DeleteResult
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function delete($primary)
        {
        }
        protected static function callOnBeforeUpdateEvent($object, $fields, $result)
        {
        }
        protected static function callOnUpdateEvent($object, $fields, $ufdata)
        {
        }
        protected static function callOnAfterUpdateEvent($object, $fields)
        {
        }
        protected static function callOnBeforeDeleteEvent($primary, $entity, $result, $oldData = null)
        {
        }
        protected static function callOnDeleteEvent($primary, $entity, $oldData = null)
        {
        }
        protected static function callOnAfterDeleteEvent($primary, $entity, $oldData = null)
        {
        }
        protected static function convertValuesBeforeSave($data, $userfields)
        {
        }
        /**
         * Modify value before save.
         * @param mixed $value Value for converting.
         * @param array $userfield Field array.
         * @return boolean|null
         */
        protected static function convertSingleValueBeforeSave($value, $userfield)
        {
        }
        protected static function isNotNull($value)
        {
        }
    }
    class HighloadBlock extends \Bitrix\Highloadblock\EO_HighloadBlock
    {
        public function getEntityDataClass()
        {
        }
    }
}
namespace {
    class security extends \CModule
    {
        var $MODULE_ID = "security";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function security()
        {
        }
        function GetModuleTasks()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function GetModuleRightList()
        {
        }
        public function migrateToBox()
        {
        }
    }
    class CSecurityAuthOtpMandatory extends \CBitrixComponent
    {
        public function onPrepareComponentParams($arParams)
        {
        }
        public function executeComponent()
        {
        }
        /**
         * @return array
         */
        protected function toView()
        {
        }
    }
    class CSecurityUserOtpInit extends \CBitrixComponent
    {
        public function onPrepareComponentParams($arParams)
        {
        }
        public function executeComponent()
        {
        }
        /**
         * @return array
         */
        protected function toView()
        {
        }
        /**
         * @return array
         */
        protected function toEdit()
        {
        }
    }
    class CSecurityUserOtpInitAjaxController extends \Bitrix\Main\Engine\Controller
    {
        public function setOtpAction($secret, $sync1, $sync2 = "", $otpAction)
        {
        }
    }
    class CSecurityUserRecoveryCodesComponent extends \CBitrixComponent
    {
        const VIEW_PAGE = 'template';
        const PRINT_PAGE = 'print';
        public function onPrepareComponentParams($arParams)
        {
        }
        public function executeComponent()
        {
        }
        protected function doPostAction($action)
        {
        }
        /**
         * @param string $action
         * @return array
         */
        protected function toView($action = \null)
        {
        }
        /**
         * @param string $action
         * @return array
         */
        protected function toEdit($action = \null)
        {
        }
        protected function getRecoveryCodes($isActiveOnly = \false, $isRegenerationAllowed = \false)
        {
        }
        protected function regenerateRecoveryCodes()
        {
        }
        protected function checkRequirements()
        {
        }
    }
    class CIntranetUserOtpConnectedAjaxController extends \Bitrix\Main\Engine\Controller
    {
        protected function getRecoveryCodes($isActiveOnly = \false, $isRegenerationAllowed = \false)
        {
        }
        public function regenerateRecoveryCodesAction()
        {
        }
    }
    class CSecurityEvent
    {
        private static $instance = \null;
        private $isDBEngineActive = \false;
        private $isSyslogEngineActive = \false;
        private $syslogFacility = 0;
        private $syslogPriority = "";
        private $isFileEngineActive = \false;
        private $filePath = "";
        /** @var CSecurityEventMessageFormatter $messageFormatter */
        private $messageFormatter = \null;
        private static $syslogFacilities = array(\LOG_SYSLOG => "LOG_SYSLOG", \LOG_AUTH => "LOG_AUTH", \LOG_AUTHPRIV => "LOG_AUTHPRIV", \LOG_DAEMON => "LOG_DAEMON", \LOG_USER => "LOG_USER");
        private static $syslogPriorities = array(\LOG_EMERG => "LOG_EMERG", \LOG_ALERT => "LOG_ALERT", \LOG_CRIT => "LOG_CRIT", \LOG_ERR => "LOG_ERR", \LOG_WARNING => "LOG_WARNING", \LOG_NOTICE => "LOG_NOTICE", \LOG_INFO => "LOG_INFO", \LOG_DEBUG => "LOG_DEBUG");
        /**
         * @return CSecurityEvent
         */
        public static function getInstance()
        {
        }
        /**
         * @param string $severity
         * @param string $auditType
         * @param string $itemName
         * @param string $itemDescription
         * @return bool
         */
        public function doLog($severity, $auditType, $itemName, $itemDescription)
        {
        }
        /**
         * @return array
         */
        public static function getSyslogPriorities()
        {
        }
        /**
         * @return array
         */
        public static function getSyslogFacilities()
        {
        }
        /**
         * Return WAF events count for Admin's informer popup and Admin's gadget
         * @param string $timestamp  - from date
         * @return integer
         */
        public function getEventsCount($timestamp = '')
        {
        }
        public function getMessageFormatter()
        {
        }
        private function __construct()
        {
        }
        private function initializeFileEngine()
        {
        }
        private function initializeDBEngine()
        {
        }
        private function initializeSyslogEngine()
        {
        }
        /**
         * @return bool
         */
        private static function isRunOnWin()
        {
        }
        /**
         * @param string $message
         * @return string mixed
         */
        private static function sanitizeMessage($message)
        {
        }
        private function __clone()
        {
        }
        private function __wakeup()
        {
        }
    }
    /**
    * Bitrix Framework
    * @package bitrix
    * @subpackage security
    * @copyright 2001-2013 Bitrix
    */
    /**
     * Class CSecuritySessionVirtual
     * @deprecated
     * @see \Bitrix\Main\Session\Handlers\NullSessionHandler
     */
    class CSecuritySessionVirtual
    {
        /**
         * @return bool
         */
        public static function isStorageEnabled()
        {
        }
        /**
         * @return bool
         */
        public static function Init()
        {
        }
        /**
         * @param string $savePath - unused on this handler
         * @param string $sessionName - unused on this handler
         * @return bool
         */
        public static function open($savePath, $sessionName)
        {
        }
        public static function close()
        {
        }
        /**
         * @param string $id - session id, must be valid hash
         * @return string
         */
        public static function read($id)
        {
        }
        /**
         * @param string $id - session id, must be valid hash
         * @param array $sessionData
         * @return bool
         */
        public static function write($id, $sessionData)
        {
        }
        /**
         * @param string $id - session id, must be valid hash
         * @return bool
         */
        public static function destroy($id)
        {
        }
        /**
         * @param int $maxLifeTime - unused on this handler
         */
        public static function gc($maxLifeTime)
        {
        }
    }
    class CSecurityIPRule
    {
        static $bActive = \null;
        public $LAST_ERROR = "";
        function Add($arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        function Update($ID, $arFields)
        {
        }
        public static function UpdateRuleMasks($IPRULE_ID, $arInclMasks = \false, $arExclMasks = \false)
        {
        }
        function UpdateRuleIPs($IPRULE_ID, $arInclIPs = \false, $arExclIPs = \false)
        {
        }
        protected static function ip2number($ip)
        {
        }
        function CheckIP($arInclIPs = \false, $arExclIPs = \false)
        {
        }
        function CheckFields(&$arFields, $ID)
        {
        }
        public static function GetRuleInclMasks($IPRULE_ID)
        {
        }
        function DeleteRuleExclFiles($files)
        {
        }
        function AddRuleExclFiles($files)
        {
        }
        function GetRuleExclFiles($files)
        {
        }
        public static function GetRuleExclMasks($IPRULE_ID)
        {
        }
        public static function GetRuleInclIPs($IPRULE_ID)
        {
        }
        public static function GetRuleExclIPs($IPRULE_ID)
        {
        }
        public static function GetList($arSelect, $arFilter, $arOrder)
        {
        }
        public static function GetActiveCount()
        {
        }
        public static function IsActive()
        {
        }
        public static function SetActive($bActive = \false, $end_time = 0)
        {
        }
        public static function CheckAntiFile($return_message = \false)
        {
        }
        public static function OnPageStart($use_query = \false)
        {
        }
        protected static function isValidUri($uri)
        {
        }
        function CleanUpAgent()
        {
        }
    }
    /**
     * Class CSecuritySession
     * @deprecated
     * @see \Bitrix\Main\Session\Session
     */
    class CSecuritySession
    {
        const GC_AGENT_NAME = "CSecuritySession::CleanUpAgent();";
        protected static $oldSessionId = \null;
        public static function Init()
        {
        }
        /**
         * @param string $pMessage
         */
        public static function triggerFatalError($pMessage = "")
        {
        }
        /**
         * @return string
         */
        public static function CleanUpAgent()
        {
        }
        public static function UpdateSessID()
        {
        }
        /**
         * @return bool
         */
        public static function isOldSessionIdExist()
        {
        }
        /**
         * @param bool $cleanUp
         * @return string
         */
        public static function getOldSessionId($cleanUp = \false)
        {
        }
        /**
         * @param string $id
         * @return bool
         */
        public static function checkSessionId($id)
        {
        }
        public static function activate()
        {
        }
        public static function deactivate()
        {
        }
        protected static function registerHandler($class)
        {
        }
        public static function createSid()
        {
        }
    }
    /**
    * Bitrix Framework
    * @package bitrix
    * @subpackage security
    * @copyright 2001-2013 Bitrix
    */
    class CSecurityFilterMask
    {
        public static function Update($arMasks)
        {
        }
        public static function GetList()
        {
        }
        public static function Check($siteId, $uri)
        {
        }
    }
    class CSecurityHtmlEntity
    {
        private static $htmlMnemonics = array("html" => array("/&colon;/i", "/&tab;/i", "/&newline;/i"), "text" => array(":", "\r", "\n"));
        /**
         * Decode characters presented as &#123;
         *
         * @param string $entity
         * @return string
         */
        protected static function decodeCb($entity)
        {
        }
        /**
         * Decode characters presented as  &#xAB;
         *
         * @param string $entity
         * @return string
         */
        protected static function decodeCbHex($entity)
        {
        }
        /**
         * Decodes string from html codes &#***; but only a-zA-Z:().=, because only these are used in auditors
         * One pass!
         *
         * @param string $string
         * @return string
         */
        protected static function decode($string)
        {
        }
        /**
         * Recursive decodes string from html codes &#***; but only a-zA-Z:().=, because only these are used in auditors
         *
         * @param string $pString
         * @return string
         */
        public static function decodeString($pString)
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage security
     * @copyright 2001-2013 Bitrix
     */
    /**
     * Class CSecurityBaseTest
     * @since 12.5.0
     */
    abstract class CSecurityBaseTest
    {
        const STATUS_FAILED = "failed";
        const STATUS_PASSED = "passed";
        protected $internalName = "BaseTest";
        protected $isDebug = \false;
        protected $params = array();
        protected $tests = array();
        protected $detailErrors = array();
        /**
         * Return test name
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Check test requirements (e.g. max_execution_time)
         *
         * @param array $params
         * @return bool
         */
        public function checkRequirements($params = array())
        {
        }
        /**
         * Run test and return results
         * @param array $params
         * @return array
         */
        public function check(array $params = array())
        {
        }
        /**
         * Return internal name (for technical usage)
         * @return string
         */
        public function getInternalName()
        {
        }
        /**
         * Initialize starting params, e.g. debug mode
         * @param array $params
         */
        protected function initializeParams(array $params = array())
        {
        }
        /**
         * @return bool
         */
        protected function isRunOnWin()
        {
        }
        /**
         * Return file or dir permissions
         * @param string $path - file path
         * @return int
         */
        protected static function getFilePerm($path)
        {
        }
        /**
         * Check file or dir for write permissions
         * @param string $path - file path
         * @return bool
         */
        protected static function isWorldWritable($path)
        {
        }
        /**
         * Check file or dir for read permissions
         * @param string $path - file path
         * @return bool
         */
        protected static function isWorldReadable($path)
        {
        }
        /**
         * Check file or dir for read or write permissions
         * @param string $path - file path
         * @return bool
         */
        protected static function isWorldAccessible($path)
        {
        }
        /**
         * Return param value, or default value if not present
         * @param string $name
         * @param string $defaultValue
         * @return string
         */
        protected function getParam($name, $defaultValue = "")
        {
        }
        /**
         * @return bool
         */
        protected function isDebug()
        {
        }
        /**
         * Return errors array for checking results
         * @return array
         */
        protected function getDetailErrors()
        {
        }
        /**
         * @param string $baseMessageKey
         * @param array $placeholders
         * @return string
         */
        protected static function getDetailText($baseMessageKey, array $placeholders = array())
        {
        }
        /**
         * @param string $baseMessageKey
         * @param array $placeholders
         * @return string
         */
        protected static function getRecommendationText($baseMessageKey, array $placeholders = array())
        {
        }
        /**
         * @param string $baseMessageKey
         * @param array $placeholders
         * @return string
         */
        protected static function getTitleText($baseMessageKey, array $placeholders = array())
        {
        }
        /**
         * Add new error
         *
         * @param string $title
         * @param string $critical
         * @param string $detail
         * @param string $recommendation
         * @param string $additionalInfo
         */
        protected function addDetailError($title, $critical, $detail, $recommendation = "", $additionalInfo = "")
        {
        }
        /**
         * @param array $error
         * @return $this
         */
        private function pushDetailError(array $error)
        {
        }
        /**
         * Add new unformatted error (call formatDetailError inside)
         *
         * @param string $baseMessageKey
         * @param string $critical
         * @param string $additionalInfo
         * @return $this
         */
        protected function addUnformattedDetailError($baseMessageKey, $critical, $additionalInfo = "")
        {
        }
        /**
         * Return formatted detail error from messages
         * @param string $baseMessageKey
         * @param string $critical
         * @param string $additionalInfo
         * @return array
         */
        protected static function formatDetailError($baseMessageKey, $critical, $additionalInfo = "")
        {
        }
        /**
         * Return path without $_SERVER['DOCUMENT_ROOT']
         * @param string $path
         * @return string
         */
        protected static function removeDocumentRoot($path)
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage security
     * @copyright 2001-2013 Bitrix
     */
    /**
     * Class CSecurityTaintCheckingTest
     * @since 12.5.0
     */
    class CSecurityTaintCheckingTest extends \CSecurityBaseTest
    {
        const REQUEST_TIMEOUT = 3;
        protected $internalName = "TaintCheckingTest";
        public function __construct()
        {
        }
        /**
         * Check test requirements (e.g. max_execution_time)
         *
         * @param array $params
         * @throws CSecurityRequirementsException
         * @return bool
         */
        public function checkRequirements($params = array())
        {
        }
        /**
         * Run test and return results
         * @param array $params
         * @return array
         */
        public function check(array $params = array())
        {
        }
        /**
         * @param array $pResults
         * @return array
         */
        protected function formatResults($pResults)
        {
        }
        /**
         * @param array $pErrors
         * @return array
         */
        protected static function formatErrors($pErrors)
        {
        }
        /**
         * @deprecated
         * @param string $pDetail
         * @return string
         */
        protected static function formatDetail($pDetail)
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage security
     * @copyright 2001-2013 Bitrix
     */
    /**
     * Class CSecurityPhpConfigurationTest
     * @since 12.5.0
     */
    class CSecurityPhpConfigurationTest extends \CSecurityBaseTest
    {
        protected $internalName = "PhpConfigurationTest";
        protected $tests = array(
            "phpEntropy" => array("method" => "checkPhpEntropy"),
            "phpInclude" => array("method" => "isPhpConfVarOff", "params" => array("allow_url_include"), "base_message_key" => "SECURITY_SITE_CHECKER_PHP_INCLUDE", "critical" => \CSecurityCriticalLevel::HIGHT),
            "phpFopen" => array("method" => "isPhpConfVarOff", "params" => array("allow_url_fopen"), "base_message_key" => "SECURITY_SITE_CHECKER_PHP_FOPEN", "critical" => \CSecurityCriticalLevel::MIDDLE),
            "aspTags" => array("method" => "isPhpConfVarOff", "params" => array("asp_tags"), "base_message_key" => "SECURITY_SITE_CHECKER_PHP_ASP", "critical" => \CSecurityCriticalLevel::HIGHT),
            "httpOnly" => array("method" => "isPhpConfVarOn", "params" => array("session.cookie_httponly"), "base_message_key" => "SECURITY_SITE_CHECKER_PHP_HTTPONLY", "critical" => \CSecurityCriticalLevel::MIDDLE),
            "cookieOnly" => array("method" => "isPhpConfVarOn", "params" => array("session.use_only_cookies"), "base_message_key" => "SECURITY_SITE_CHECKER_PHP_COOKIEONLY", "critical" => \CSecurityCriticalLevel::HIGHT),
            "mbstringSubstitute" => array("method" => "checkMbstringSubstitute", "params" => array(), "base_message_key" => "SECURITY_SITE_CHECKER_PHP_MBSTRING_SUBSTITUTE", "critical" => \CSecurityCriticalLevel::HIGHT),
            // ToDo: need compatibility with PHP < 5.4.0?
            "zendMultibyte" => array("method" => "isPhpConfVarOff", "params" => array("zend.multibyte"), "base_message_key" => "SECURITY_SITE_CHECKER_ZEND_MULTIBYTE_ENABLED", "critical" => \CSecurityCriticalLevel::HIGHT),
            "displayErrors" => array("method" => "isPhpConfVarOff", "params" => array("display_errors"), "base_message_key" => "SECURITY_SITE_CHECKER_DISPLAY_ERRORS", "critical" => \CSecurityCriticalLevel::LOW),
            "requestOrder" => array("method" => "checkRequestOrder"),
            "mailAddHeader" => array("method" => "isPhpConfVarOff", "params" => array("mail.add_x_header"), "base_message_key" => "SECURITY_SITE_CHECKER_MAIL_ADD_HEADER", "critical" => \CSecurityCriticalLevel::LOW),
        );
        public function __construct()
        {
        }
        /**
         * Check php session entropy
         * @return bool
         */
        protected function checkPhpEntropy()
        {
        }
        /**
         * @return bool
         */
        protected function checkPhpEntropyConfigs()
        {
        }
        protected function checkRequestOrder()
        {
        }
        /**
         * @return bool
         */
        protected function checkMbstringSubstitute()
        {
        }
        /**
         * @param string $name
         * @return bool
         */
        protected function isPhpConfVarOff($name)
        {
        }
        /**
         * @param string $name
         * @return bool
         * @since 14.0.0
         */
        protected function isPhpConfVarOn($name)
        {
        }
        /**
         * @param string $name
         * @param int|string $value
         * @return bool
         */
        protected function isPhpConfVarEquals($name, $value)
        {
        }
        /**
         * @param string $name
         * @param int|string $value
         * @return bool
         */
        protected function isPhpConfVarNotEquals($name, $value)
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage security
     * @copyright 2001-2013 Bitrix
     */
    /**
     * Class CSecurityCloudMonitorRequest
     * @since 12.5.0
     */
    class CSecurityCloudMonitorRequest
    {
        const BITRIX_CHECKER_URL_PATH = "/bitrix/site_checker.php";
        const REMOTE_STATUS_OK = "ok";
        const REMOTE_STATUS_ERROR = "error";
        const REMOTE_STATUS_FATAL_ERROR = "fatal_error";
        const TIMEOUT = 10;
        private static $validActions = array("check", "get_results");
        protected static $trustedHosts = array("www.1c-bitrix.ru", "www.bitrixsoft.com", "www.bitrix.de");
        protected $response = array();
        protected $checkingToken = "";
        protected $protocolVersion = 2;
        public function __construct($action, $protocolVersion, $token = "")
        {
        }
        /**
         * @param string $checkingToken
         * @return $this
         */
        public function setCheckingToken($checkingToken)
        {
        }
        /**
         * @return string
         */
        public function getCheckingToken()
        {
        }
        /**
         * Make a request to the Bitrix server and returns the result
         * @param array $action
         * @return array|bool
         */
        public function receiveData($action)
        {
        }
        /**
         * @return bool
         */
        public function isOk()
        {
        }
        /**
         * @return bool
         */
        public function isFatalError()
        {
        }
        /**
         * @return bool
         */
        public function isError()
        {
        }
        /**
         * @return bool
         */
        public function isSuccess()
        {
        }
        /**
         * @param string $key
         * @return string
         */
        public function getValue($key)
        {
        }
        /**
         * @param string $status
         * @return bool
         */
        protected function checkStatus($status)
        {
        }
        /**
         * Generate payload for request to Bitrix
         * @param string $action - "check" or "receive_results"
         * @param bool $collectInformation
         * @return string
         */
        protected function getPayload($action = "check", $collectInformation = \true)
        {
        }
        /**
         * @param string $response
         * @return array
         */
        protected static function decodeResponse($response)
        {
        }
        /**
         * Return Bitrix Cloud Security web service url
         *
         * @param string $host Bitrix security scanner host.
         * @return string
         */
        protected static function buildCheckerUrl($host)
        {
        }
        /**
         * Return Bitrix Cloud Security host
         *
         * @return string
         */
        protected static function getServiceHost()
        {
        }
        /**
         * Send request to Bitrix (check o receive)
         * @param array $payload
         * @return array|bool
         */
        protected static function sendRequest(array $payload)
        {
        }
        /**
         * Return License key, your Captain Obvious
         * @return string
         */
        protected static function getLicenseKey()
        {
        }
        /**
         * Return system information, such as php version
         * @return array
         */
        protected static function getSystemInformation()
        {
        }
        /**
         * Return additional information, such as P&P or LDAP server information
         *
         * @since 14.5.4
         * @return array
         */
        protected static function getAdditionalInformation()
        {
        }
        /**
         * Return host name for site checking
         * @return string
         */
        protected function getHostName()
        {
        }
        /**
         * Return current server port, except 80 and 443
         * @return int|bool
         */
        protected static function getServerPort()
        {
        }
        /**
         * Return current domain name (in puny code for cyrillic domain)
         * @return string
         */
        protected static function getDomainName()
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage security
     * @copyright 2001-2013 Bitrix
     */
    /**
     * Class CSecurityTestsPackage
     * @since 12.5.0
     */
    class CSecurityTestsPackage
    {
        const SLOW_LOCAL_TESTS = "slow_local";
        const FAST_LOCAL_TESTS = "fast_local";
        const LOCAL_TESTS = "local";
        const REMOTE_TESTS = "remote";
        protected static $fastLocalTests = array("CSecurityEnvironmentTest", "CSecurityPhpConfigurationTest");
        protected static $slowLocalTests = array("CSecurityFilePermissionsTest", "CSecurityTaintCheckingTest", "CSecurityUserTest", "CSecuritySiteConfigurationTest");
        protected static $remoteTests = array("CSecurityCloudMonitorTest");
        /**
         * Return tests classes
         * @param string $pType
         * @return array
         */
        public static function getTestsPackage($pType = "")
        {
        }
        /**
         * @return array
         */
        public static function getAllTests()
        {
        }
        /**
         * @param string $pType
         * @return array
         */
        protected static function getPackage($pType = "")
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage security
     * @copyright 2001-2013 Bitrix
     */
    /**
     * Class CSecurityUserTest
     * @since 14.0.3
     */
    class CSecurityUserTest extends \CSecurityBaseTest
    {
        protected $internalName = 'UsersTest';
        /** @var CSecurityTemporaryStorage */
        protected $sessionData = \null;
        protected $maximumExecutionTime = 0.0;
        protected $savedMaxExecutionTime = 0.0;
        public function __construct()
        {
        }
        public function __destruct()
        {
        }
        /**
         * @param array $params
         * @return array
         */
        public function check(array $params = array())
        {
        }
        protected function checkOtp()
        {
        }
        /**
         * @param array $weakUsers
         * @return string
         */
        protected static function formatRecommendation(array $weakUsers)
        {
        }
        /**
         * @param int $id
         * @return array
         */
        protected static function getUserPassword($id)
        {
        }
        /**
         * @param int $id
         * @return int
         */
        protected static function getNextUserId($id)
        {
        }
        /**
         * @param int[] $ids
         * @return array
         */
        protected static function getUsersLogins(array $ids)
        {
        }
        /**
         * @param string $salt
         * @param string $hash
         * @param string $password
         * @return bool
         */
        protected static function isUserPassword($salt, $hash, $password)
        {
        }
        protected static function getPasswordDictionary()
        {
        }
        /**
         * @param int $limit
         * @param int $minId
         * @return CDBResult
         */
        protected static function getAdminUserList($limit = 0, $minId = 0)
        {
        }
        /**
         * @return bool
         */
        protected function isTimeOut()
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage security
     * @copyright 2001-2013 Bitrix
     */
    /**
     * Class CSecuritySiteConfigurationTest
     * @since 12.5.0
     */
    class CSecuritySiteConfigurationTest extends \CSecurityBaseTest
    {
        protected $internalName = "SiteConfigurationTest";
        protected $tests = array("securityLevel" => array("method" => "checkSecurityLevel"), "errorReporting" => array("method" => "checkErrorReporting", "base_message_key" => "SECURITY_SITE_CHECKER_ERROR_REPORTING", "critical" => \CSecurityCriticalLevel::MIDDLE), "exceptionDebug" => array("method" => "checkExceptionDebug", "base_message_key" => "SECURITY_SITE_CHECKER_EXCEPTION_DEBUG", "critical" => \CSecurityCriticalLevel::HIGHT), "dbDebug" => array("method" => "checkDbDebug", "base_message_key" => "SECURITY_SITE_CHECKER_DB_DEBUG", "critical" => \CSecurityCriticalLevel::HIGHT), "dbPassword" => array("method" => "checkDbPassword"), "scriptExtension" => array("method" => "checkScriptExtension"), "modulesVersion" => array("method" => "checkModulesVersion"));
        protected static $expectedScriptExtensions = "php,php3,php4,php5,php6,phtml,pl,asp,aspx,cgi,dll,exe,ico,shtm,shtml,fcg,fcgi,fpl,asmx,pht,py,psp";
        public function __construct()
        {
        }
        /**
         * Check if saved script file extension is up to date
         */
        protected function checkScriptExtension()
        {
        }
        protected function checkSecurityLevel()
        {
        }
        /**
         * Return true if debug = off
         *
         * @return bool
         * @since 14.0.0
         */
        protected function checkDbDebug()
        {
        }
        /**
         * Return true if error_reporting = 0
         *
         * @return bool
         * @since 14.0.0
         */
        protected function checkErrorReporting()
        {
        }
        /**
         * Return true if exception_handling debug = false
         *
         * @return bool
         * @since 14.0.0
         */
        protected function checkExceptionDebug()
        {
        }
        /**
         * Return true if module updates available
         *
         * @return bool
         * @since 14.0.2
         */
        protected function checkModulesVersion()
        {
        }
        protected function checkDbPassword()
        {
        }
        /**
         * @since 14.0.7
         * @return array
         * @throws Bitrix\Main\SystemException
         */
        protected static function getAvailableUpdates()
        {
        }
        /**
         * @return string
         */
        protected static function AdminPolicyLevel()
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage security
     * @copyright 2001-2013 Bitrix
     */
    /**
     * Class CSecurityCriticalLevel
     * @since 12.5.0
     */
    class CSecurityCriticalLevel
    {
        const LOW = "LOW";
        const MIDDLE = "MIDDLE";
        const HIGHT = "HIGHT";
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage security
     * @copyright 2001-2013 Bitrix
     */
    /**
     * Class CSecurityCloudMonitorTest
     * @since 12.5.0
     */
    class CSecurityCloudMonitorTest extends \CSecurityBaseTest
    {
        const DEFAULT_RECEIVE_RESULTS_TIME = 15;
        const MAX_CHECKING_REQUEST_REPEAT_COUNT = 5;
        const MAX_RESULTS_REQUEST_REPEAT_COUNT = 50;
        protected $internalName = 'CloudMonitor';
        /** @var CSecurityTemporaryStorage */
        protected $sessionData = \null;
        protected $checkingResults = array();
        protected $protocolVersion = 2;
        public function __construct()
        {
        }
        public function checkRequirements($params = array())
        {
        }
        /**
         * Run test and return results
         * @param array $params
         * @return array
         */
        public function check(array $params = array())
        {
        }
        /**
         * Return checking results with default values (if it not present before)
         * @return array
         */
        protected function getResult()
        {
        }
        /**
         * Try to receive checking results from Bitrix
         */
        protected function receiveResults()
        {
        }
        /**
         * @return bool
         */
        protected function isCheckRequestNotSended()
        {
        }
        /**
         * Try to start checking (send special request to Bitrix)
         */
        protected function doCheckRequest()
        {
        }
        /**
         * @param string $token
         */
        protected function setCheckingToken($token)
        {
        }
        /**
         * @return string
         */
        protected function getCheckingToken()
        {
        }
        /**
         * @param int $timeOut
         */
        protected function setTimeOut($timeOut)
        {
        }
        /**
         * @param array $result
         */
        protected function setCheckingResult(array $result)
        {
        }
        /**
         * @param string $message
         */
        protected function stopChecking($message = '')
        {
        }
        /**
         * Format test results for checking output
         * @param array $results
         * @return array
         */
        protected static function formatResults(array $results)
        {
        }
        /**
         * @return int
         */
        protected function getTimeout()
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage security
     * @copyright 2001-2013 Bitrix
     */
    /**
     * Class CSecurityFilePermissionsTest
     * @since 12.5.0
     */
    class CSecurityFilePermissionsTest extends \CSecurityBaseTest
    {
        const MAX_OUTPUT_FILES = 5;
        protected $internalName = "FilePermissionsTest";
        protected static $interestingFileExtentions = array(".php", ".js", ".htaccess", ".html");
        protected static $skipDirs = array("upload");
        protected $filesCount = 0;
        protected $filesPath = array();
        protected $maximumExecutionTime = 0.0;
        protected $savedMaxExecutionTime = 0.0;
        public function __construct()
        {
        }
        public function __destruct()
        {
        }
        /**
         * Check test requirements (e.g. max_execution_time)
         *
         * @param array $params
         * @throws CSecurityRequirementsException
         * @return bool
         */
        public function checkRequirements($params = array())
        {
        }
        /**
         * Run test and return results
         * @param array $params
         * @return array
         */
        public function check(array $params = array())
        {
        }
        /**
         * @param string $pFileName
         * @return bool
         */
        protected static function isInterestingDir($pFileName)
        {
        }
        /**
         * @param string $pFileName
         * @return bool
         */
        protected static function isInterestingFile($pFileName)
        {
        }
        /**
         * @param string $pDir
         * @throws Exception
         * @return bool
         */
        protected function checkWorldWritableDirRecursive($pDir)
        {
        }
        /**
         * @param string $pFilePath
         */
        protected function addFilePath($pFilePath)
        {
        }
        /**
         * @return array
         */
        protected function getFilesPath()
        {
        }
        /**
         * @param string $pGlue
         * @return string
         */
        protected function getFilesPathInString($pGlue = "<br>")
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage security
     * @copyright 2001-2013 Bitrix
     */
    /**
     * Class CSecurityEnvironmentTest
     * @since 12.5.0
     */
    class CSecurityEnvironmentTest extends \CSecurityBaseTest
    {
        const MIN_UID = 10;
        const MIN_GID = 10;
        protected $internalName = "EnvironmentTest";
        protected $tests = array("sessionDir" => array("method" => "checkPhpSessionDir"), "collectivePhpSession" => array("method" => "checkCollectivePhpSession"), "uploadScriptExecution" => array("method" => "checkUploadScriptExecution"), "uploadNegotiationEnabled" => array("method" => "checkUploadNegotiationEnabled"), "privilegedPhpUserOrGroup" => array("method" => "checkPhpUserAndGroup"), "bitrixTempPath" => array("method" => "checkBitrixTempPath"));
        //TODO: check custom php/py/perl/etc handlers in .htaccess files
        public function __construct()
        {
        }
        /**
         * Check if any server-side script executed in /upload dir and push those information to detail error
         * @return bool
         */
        protected function checkUploadScriptExecution()
        {
        }
        /**
         * Check if Apache Content Negotiation enabled in /upload dir and push those information to detail error
         * @return bool
         */
        protected function checkUploadNegotiationEnabled()
        {
        }
        /**
         * Check apache AllowOverride
         * @return bool
         */
        protected function isHtaccessOverrided()
        {
        }
        /**
         * Check minimal UID and GID
         *
         * @param int $minUid
         * @param int $minGid
         * @return bool
         */
        protected function checkPhpUserAndGroup($minUid = self::MIN_UID, $minGid = self::MIN_GID)
        {
        }
        /**
         * Return upload dir path for test usage
         * @return string
         */
        protected static function getUploadDir()
        {
        }
        /**
         * Return current domain name (in puny code for cyrillic domain)
         * @return string
         */
        protected static function getCurrentHost()
        {
        }
        /**
         * Return current site url, e.g. http://localhost:8990
         * @return string
         */
        protected static function getCurrentSiteUrl()
        {
        }
        /**
         * Make request to current site and return result
         * @param string $pPath - url path, e.g. /upload/tmp/test.php
         * @return bool|string
         */
        protected static function doRequestToLocalhost($pPath)
        {
        }
        /**
         * @param string $pFileName - testing file name. e.g. test.php
         * @param string $pText - script entry
         * @param string $pSearch - text for searching after script execute
         * @return bool
         */
        protected function isScriptExecutable($pFileName, $pText, $pSearch)
        {
        }
        /**
         * Return php tmp dir from environment
         * @return string
         */
        protected static function getTmpDirFromEnv()
        {
        }
        /**
         * Return php session or upload tmp dir
         * @param string $pPhpSettingKey
         * @return string
         */
        protected static function getTmpDir($pPhpSettingKey = "upload_tmp_dir")
        {
        }
        /**
         * Return session unique ID
         * @return string
         */
        protected static function getSessionUniqID()
        {
        }
        /**
         * Check session files collective usage, e.g. several owners in the same session directory
         * @return bool
         */
        protected function checkCollectivePhpSession()
        {
        }
        /**
         * Check php session save dir for world accessible
         * @return bool
         */
        protected function checkPhpSessionDir()
        {
        }
        /**
         * Return current system user ID
         *
         * @return int|null
         */
        protected static function getCurrentUID()
        {
        }
        /**
         * Return current system user group ID
         *
         * @return int|null
         */
        protected static function getCurrentGID()
        {
        }
        /**
         * Format system user ID, e.g. $uid 0 = root(0)
         *
         * @param int $uid
         * @return string
         */
        protected static function formatUID($uid)
        {
        }
        /**
         * Format system user group ID, e.g. $gid 0 = root(0)
         *
         * @param int $gid
         * @return string
         */
        protected static function formatGID($gid)
        {
        }
        protected static function formatFilePermissions($perms)
        {
        }
        /**
         * Check Bitrix temporary directory path.
         *
         * @since 15.5.4
         * @return string
         */
        protected function checkBitrixTempPath()
        {
        }
    }
    /**
     * Class CSecuritySessionDB
     * @deprecated
     * @see \Bitrix\Main\Session\Handlers\DatabaseSessionHandler
     */
    class CSecuritySessionDB
    {
        protected static $isReadOnly = \false;
        protected static $sessionId = \null;
        protected static $hasFailedRead = \false;
        /**
         * @return bool
         */
        public static function Init()
        {
        }
        /**
         * @param string $savePath - unused on this handler
         * @param string $sessionName - unused on this handler
         * @return bool
         */
        public static function open($savePath, $sessionName)
        {
        }
        /**
         * @return bool
         */
        public static function close()
        {
        }
        /**
         * @param string $id - session id, must be valid hash
         * @return string
         */
        public static function read($id)
        {
        }
        /**
         * @param string $id - session id, must be valid hash
         * @param string $sessionData
         * @return bool
         */
        public static function write($id, $sessionData)
        {
        }
        /**
         * @param string $id - session id, must be valid hash
         * @return bool
         */
        public static function destroy($id)
        {
        }
        /**
         * @param int $maxLifeTime
         * @return bool
         */
        public static function gc($maxLifeTime)
        {
        }
        /**
         * @param string $pId
         * @return bool
         */
        protected static function isValidId($pId)
        {
        }
    }
    /**
     * @deprecated use \Bitrix\Security\Mfa\Otp
     */
    class CSecurityUser
    {
        const BX_SECURITY_SYNC_WINDOW = 15000;
        /** @var \Bitrix\Security\Mfa\Otp[]*/
        protected static $cacheOtp = array();
        /**
         * @param int $userId
         * @return Otp
         */
        public static function getCachedOtp($userId)
        {
        }
        /**
         * @param array $arParams
         * @return bool
         */
        public static function onBeforeUserLogin(&$arParams)
        {
        }
        /**
         * @param $arFields
         * @return bool
         */
        public static function update($arFields)
        {
        }
        /**
         * @param $userId
         * @return bool
         */
        public static function onUserDelete($userId)
        {
        }
        /**
         * @return bool
         */
        public static function isActive()
        {
        }
        /**
         * @param bool $pActive
         */
        public static function setActive($pActive = \false)
        {
        }
        public static function OnAfterUserLogout()
        {
        }
        public static function IsOtpMandatory()
        {
        }
        public static function IsUserOtpActive($userId)
        {
        }
        public static function IsUserSkipMandatoryRights($userId)
        {
        }
        public static function IsUserOtpExist($userId)
        {
        }
        public static function DeactivateUserOtp($userId, $days = 0)
        {
        }
        public static function DeferUserOtp($userId, $days = 0)
        {
        }
        public static function ActivateUserOtp($userId)
        {
        }
        public static function GetDeactivateUntil($userId)
        {
        }
        public static function GetInitialDate($userId)
        {
        }
    }
    /**
    * Bitrix Framework
    * @package bitrix
    * @subpackage security
    * @copyright 2001-2013 Bitrix
    */
    class CSecurityRequirementsException extends \Exception
    {
    }
    class CSecuritySiteChecker
    {
        const ADMIN_PAGE_URL = "/bitrix/admin/security_scanner.php";
        const CHECKING_REPEAT_TIME = 2592000;
        //60*60*24*30, one month
        const CACHE_DIR = "/security/site_checker";
        const CACHE_BASE_ID = "sec_site_check";
        const SESSION_DATA_KEY = "SECURITY_SITE_CHECKER";
        protected $allTests = array();
        protected $neededTests = "";
        protected $neededTestName = "";
        protected static $tableName = "b_security_sitecheck";
        protected static $dbFields = array("ID", "TEST_DATE", "RESULTS");
        /** @var CSecurityTemporaryStorage */
        protected $sessionData = \null;
        protected $isCheckRequirementsNeeded = \true;
        /**
         * @param array $pTests
         * @param bool $pIsFirstStart
         * @param bool $pIsCheckRequirementsNeeded
         * @throws Exception
         */
        public function __construct($pTests = array(), $pIsFirstStart = \false, $pIsCheckRequirementsNeeded = \true)
        {
        }
        /**
         * Start testing and return results
         * @param array $pParams
         * @return array|bool
         */
        public function startTesting($pParams = array())
        {
        }
        /**
         * Run several tests
         * @param string|array $pType
         * @param bool $pIsFirstStart
         * @param bool $pIsCheckRequirementsNeeded
         * @return array|bool
         */
        public static function runTestPackage($pType = "", $pIsFirstStart = \false, $pIsCheckRequirementsNeeded = \true)
        {
        }
        /**
         * Return current percent of complete testing
         * @return int
         */
        public function getPercent()
        {
        }
        /**
         * Return saved testing results
         * @param array $pFilter
         * @param int $pMaxCount
         * @return bool|CDBResult
         */
        protected static function getList($pFilter = array(), $pMaxCount = 1)
        {
        }
        /**
         * Add new testing results ro DB
         * @param array $pResults
         * @return bool
         */
        public static function addResults($pResults)
        {
        }
        /**
         * Return last saved testing results
         * @return array
         */
        public static function getLastTestingInfo()
        {
        }
        /**
         *
         */
        public static function clearTemporaryData()
        {
        }
        /**
         * Return true if administrator must run testing
         * @return bool
         */
        public static function isNewTestNeeded()
        {
        }
        /**
         * @param $timestamp
         * @return string
         */
        protected static function getFormatedDate($timestamp)
        {
        }
        /**
         *
         */
        protected static function clearCache()
        {
        }
        /**
         *
         */
        public function isAnyCheckingExists()
        {
        }
        /**
         *
         */
        protected function finalizeLastTest()
        {
        }
        /**
         * @return bool
         */
        public function isAllTestCompleted()
        {
        }
        /**
         * @param array $pResults
         * @return int
         */
        public static function calculateCriticalResults($pResults = array())
        {
        }
        /**
         * @return bool
         */
        public static function OnAdminInformerInsertItems()
        {
        }
        /**
         * @return string
         */
        protected function getCurrentTestName()
        {
        }
        /**
         * @param string $pTestName
         * @param array $pParams
         * @return array
         */
        protected function makeParamsForTest($pTestName, $pParams)
        {
        }
        /**
         * @return int
         */
        protected function getNextStep()
        {
        }
        /**
         * @return bool
         */
        protected function initializeAvailableTests()
        {
        }
        /**
         * @param string|array $pTests
         * @return bool
         */
        protected function initializeNeededTests($pTests)
        {
        }
    }
    /**
     * Class CSecuritySessionHandler
     * @deprecated
     * @see \Bitrix\Main\Session\Handlers\AbstractSessionHandler
     */
    class CSecuritySessionHandler extends \SessionHandler
    {
        private $class;
        public function __construct($class)
        {
        }
        public function open($save_path, $session_name)
        {
        }
        public function close()
        {
        }
        public function read($session_id)
        {
        }
        public function write($session_id, $session_data)
        {
        }
        public function destroy($session_id)
        {
        }
        public function gc($maxlifetime)
        {
        }
        public function create_sid()
        {
        }
    }
    /**
     * Class CSecuritySessionRedis
     * @deprecated
     * @see \Bitrix\Main\Session\Handlers\RedisSessionHandler
     */
    class CSecuritySessionRedis
    {
        /** @var Redis $connection*/
        protected static $connection = \null;
        protected static $sessionId = \null;
        protected static $isReadOnly = \false;
        protected static $isSessionReady = \false;
        protected static $hasFailedRead = \false;
        /**
         * @return bool
         */
        public static function Init()
        {
        }
        /**
         * @param string $savePath - unused on this handler
         * @param string $sessionName - unused on this handler
         * @return bool
         */
        public static function open($savePath, $sessionName)
        {
        }
        /**
         * @return bool
         */
        public static function close()
        {
        }
        /**
         * @param string $id - session id, must be valid hash
         * @return string
         */
        public static function read($id)
        {
        }
        /**
         * @param string $id - session id, must be valid hash
         * @param string $sessionData
         * @return bool
         */
        public static function write($id, $sessionData)
        {
        }
        /**
         * @param string $id - session id, must be valid hash
         * @return bool
         */
        public static function destroy($id)
        {
        }
        /**
         * @param int $maxLifeTime - unused on this handler
         * @return bool
         */
        public static function gc($maxLifeTime)
        {
        }
        /**
         * @return bool
         */
        public static function isStorageEnabled()
        {
        }
        /**
         * @return bool
         */
        protected static function isConnected()
        {
        }
        /**
         * @param string $pId
         * @return bool
         */
        protected static function isValidId($pId)
        {
        }
        /**
         * @return string
         */
        protected static function getPrefix()
        {
        }
        /**
         * Connect to redis server
         * @return bool
         */
        protected static function newConnection()
        {
        }
        protected static function closeConnection()
        {
        }
    }
    class CSecurityFilter
    {
        const DEFAULT_REQUEST_ORDER = "GP";
        private $doBlock = \false;
        /** @var \Bitrix\Security\Filter\Request $requestFilter */
        private $requestFilter = \null;
        /** @var \Bitrix\Security\Filter\Server $serverFilter */
        private $serverFilter = \null;
        /** @var \Bitrix\Main\Context $context */
        private $context = \null;
        private $splittingChar = '';
        protected $defaultAuditors = array(array('type' => 'XSS', 'class' => 'Bitrix\\Security\\Filter\\Auditor\\Xss'), array('type' => 'SQL', 'class' => 'Bitrix\\Security\\Filter\\Auditor\\Sql'), array('type' => 'PHP', 'class' => 'Bitrix\\Security\\Filter\\Auditor\\Path'));
        public function __construct($customOptions = array(), $char = "")
        {
        }
        public static function OnBeforeProlog()
        {
        }
        /**
         * @return bool
         */
        public static function IsActive()
        {
        }
        /**
         * @param bool $bActive
         */
        public static function SetActive($bActive = \false)
        {
        }
        /**
         * @return array
         */
        public static function GetAuditTypes()
        {
        }
        /**
         * Return WAF events count for Admin's informer popup and Admin's gadget
         * @param string $timestampX  - from date
         * @return integer
         */
        public static function GetEventsCount($timestampX = '')
        {
        }
        /**
         * Shows information about WAF stats in Admin's informer popup
         * @return bool|void
         */
        public static function OnAdminInformerInsertItems()
        {
        }
        /**
         * @deprecated deprecated agent since version 12.0.8
         * @return string
         */
        public static function ClearTmpFiles()
        {
        }
        /**
         * ATTENTION! Do "NOTHING" since 14.0.0
         * @deprecated deprecated since version 12.0.8
         * @param string $pValue
         * @param string $pAction
         * @return string
         */
        public function testXSS($pValue, $pAction = "clear")
        {
        }
        protected function process()
        {
        }
        protected function getAuditors()
        {
        }
        protected function getAuditorInstances()
        {
        }
        protected function overrideSuperGlobals()
        {
        }
        /**
         * @since 14.0.3
         * @return bool
         */
        protected function isAuditorsTriggered()
        {
        }
        /**
         * @return bool
         */
        protected function isSomethingChanged()
        {
        }
        /**
         * @return array
         */
        protected function getChangedVars()
        {
        }
        /**
         * @return \Bitrix\Main\HttpRequest
         */
        protected function getHttpRequest()
        {
        }
        /**
         * @return bool
         */
        protected function isBlockNeeded()
        {
        }
        /**
         * @return bool
         */
        protected static function currentUserHaveRightsForSkip()
        {
        }
        /**
         * @param string $ip
         * @return bool
         */
        protected function blockCurrentUser($ip = "")
        {
        }
        /**
         * @return array
         */
        protected static function getSafetyGlobals()
        {
        }
        protected static function cleanGlobals()
        {
        }
        /**
         * @param string $type
         * @return array
         */
        protected static function getSuperGlobalArray($type)
        {
        }
        protected static function getRequestOrder()
        {
        }
        protected static function reconstructRequest()
        {
        }
        protected static function restoreGlobals()
        {
        }
        protected function doPostProcessActions()
        {
        }
        protected function showForm()
        {
        }
        /**
         *
         */
        protected function showTextForm()
        {
        }
        /**
         *
         */
        protected function showAjaxForm()
        {
        }
        /**
         * @param array $originalPostVars
         */
        protected function showHtmlForm($originalPostVars = array())
        {
        }
        /**
         * @param array $array
         * @param string $prefix
         * @return string
         */
        protected static function formatHiddenFields(array $array, $prefix = \null)
        {
        }
    }
    /**
    * Bitrix Framework
    * @package bitrix
    * @subpackage security
    * @copyright 2001-2013 Bitrix
    */
    final class CSecurityEventMessageFormatter
    {
        const AUDIT_TYPE = "#AUDIT_TYPE#";
        const SITE_ID = "#SITE_ID#";
        const USER_INFO = "#USER_INFO#";
        const URL = "#URL#";
        const VARIABLE_NAME = "#VARIABLE_NAME#";
        const VARIABLE_VALUE = "#VARIABLE_VALUE#";
        const VARIABLE_VALUE_BASE64 = "#VARIABLE_VALUE_BASE64#";
        const REMOTE_ADDR = "#REMOTE_ADDR#";
        const USER_AGENT = "#USER_AGENT#";
        const USER_ID = "#USER_ID#";
        const BX24_HOST = "#BX24_HOST_NAME#";
        private $messageFormat = "";
        private $userInfoFormat = "";
        private $isUserInfoNeeded = \false;
        private $isB64MessageNeeded = \false;
        private $siteId = "";
        private $userInfo = "";
        private $url = "/";
        private static $messagePlaceholders = array(self::AUDIT_TYPE, self::SITE_ID, self::USER_INFO, self::URL, self::VARIABLE_NAME, self::VARIABLE_VALUE, self::VARIABLE_VALUE_BASE64);
        private static $userInfoPlaceholders = array(self::REMOTE_ADDR, self::USER_AGENT, self::USER_ID);
        /**
         * @param string $messageFormat
         * @param string $userInfoFormat
         */
        public function __construct($messageFormat = "", $userInfoFormat = "")
        {
        }
        /**
         * @return string
         */
        public static function getDefaultMessageFormat()
        {
        }
        /**
         * @return string
         */
        public static function getDefaultUserInfoFormat()
        {
        }
        /**
         * @return array
         */
        public static function getAvailableMessagePlaceholders()
        {
        }
        /**
         * @return array
         */
        public static function getAvailableUserInfoPlaceholders()
        {
        }
        /**
         * @param string $auditType
         * @param string $itemName
         * @param string $itemDescription
         * @return string
         */
        public function format($auditType, $itemName, $itemDescription)
        {
        }
        /**
         * @return string
         */
        private function getUserInfo()
        {
        }
    }
    class CSecurityFrame
    {
        public static function SetHeader()
        {
        }
        public static function IsActive()
        {
        }
        public static function SetActive($bActive = \false)
        {
        }
    }
    class CSecurityFrameMask
    {
        public static function Update($arMasks)
        {
        }
        public static function GetList()
        {
        }
        public static function Check($siteId, $uri)
        {
        }
    }
    class CSecurityRedirect
    {
        public static function BeforeLocalRedirect(&$url, $skip_security_check)
        {
        }
        public static function GetDefaultMessage($language_id = \false)
        {
        }
        public static function EndBufferContent(&$content)
        {
        }
        protected static function ReplaceHREF($matches)
        {
        }
        public static function GetUrls()
        {
        }
        public static function GetDomains()
        {
        }
        public static function ReSeed()
        {
        }
        public static function GetSeed()
        {
        }
        public static function Sign($seed, $data)
        {
        }
        public static function IsActive()
        {
        }
        public static function SetActive($bActive = \false)
        {
        }
        public static function Update($arUrls)
        {
        }
        public static function GetList()
        {
        }
    }
    class CSecurityTemporaryStorage
    {
        const SESSION_DATA_KEY = 'SECURITY_TEMPORARY_STORAGE';
        const DEFAULT_DATA_KEY = 'default';
        protected $sessionData = array();
        public function __construct($sessionKey = '', $forceFlush = \false)
        {
        }
        /*
         * Destroy data in all temporary storage
         */
        public static function clearAll()
        {
        }
        /**
         * @param string $key
         */
        public function clearKey($key)
        {
        }
        /**
         * @param string $sessionKey
         * @return bool
         */
        protected function initializeSessionData($sessionKey = '')
        {
        }
        public function flushData()
        {
        }
        /**
         * @param int|string $key
         * @param mixed $value
         */
        public function setData($key, $value)
        {
        }
        /**
         * @param int|string $key
         * @return string
         */
        public function getString($key)
        {
        }
        /**
         * @param int|string $key
         * @return int
         */
        public function getInt($key)
        {
        }
        /**
         * @param int|string $key
         * @return bool
         */
        public function getBool($key)
        {
        }
        /**
         * @param int|string $key
         * @return bool
         */
        public function isEmpty($key)
        {
        }
        /**
         * @param int|string $key
         * @return bool
         */
        public function isExists($key)
        {
        }
        /**
         * @param int|string $key
         */
        public function increment($key)
        {
        }
        /**
         * @param int|string $key
         */
        public function decrement($key)
        {
        }
        /**
         * @param int|string $key
         * @return bool|array
         */
        public function getArray($key)
        {
        }
        /**
         * @param int|string $key
         * @return mixed
         */
        public function getArrayPop($key)
        {
        }
        /**
         * @param int|string $key
         * @param mixed $value
         */
        public function pushToArray($key, $value)
        {
        }
    }
    class CSecuritySystemInformation
    {
        /**
         * Return system information, such as php version
         *
         * @return array
         */
        public static function getSystemInformation()
        {
        }
        /**
         * Return additional information, such as P&P or LDAP server information
         *
         * @since 14.5.4
         * @return array
         */
        public static function getAdditionalInformation()
        {
        }
        /**
         * Return current host/port (in puny code for cyrillic domain)
         *
         * @return string
         */
        public static function getCurrentHost()
        {
        }
        /**
         * Return current host name (in puny code for cyrillic domain)
         *
         * @return string
         */
        public static function getCurrentHostName()
        {
        }
        /**
         * @since 14.0.4
         * @return bool
         */
        public static function isRunOnWin()
        {
        }
        /**
         * @since 14.0.6
         * @return bool
         */
        public static function isCliMode()
        {
        }
        /**
         * Validates IP address (IPv4 only).
         *
         * @since 15.5.0
         * @param string $ip IP address for checking.
         * @param bool $allowPrivate Fails or not for the following private IPv4 ranges: 10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16.
         * @param bool $allowRes Fails or not for the following reserved IPv4 ranges: 0.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, 127.0.0.0/24 and 224.0.0.0/4.
         * @return bool
         */
        public static function isIpValid($ip, $allowPrivate = \false, $allowRes = \false)
        {
        }
        /**
         * Return all sites (and domains) on current kernel
         *
         * @since 14.5.4
         * @return array
         */
        protected static function getSites()
        {
        }
        /**
         * Return some information about P&P, such as publish url
         *
         * @since 14.5.4
         * @return array
         */
        protected static function getPullingInfo()
        {
        }
        /**
         * Return information about environment, such as BitrixVM version
         *
         * @return array
         */
        protected static function getEnvironmentInfo()
        {
        }
        /**
         * Return BitrixVM version
         *
         * @return string
         */
        protected static function getBitrixVMVersion()
        {
        }
        /**
         * Return information about php configuration
         *
         * @return array
         */
        protected static function getPhpInfo()
        {
        }
        /**
         * Return information about DB configuration
         *
         * @return array
         */
        protected static function getDbInfo()
        {
        }
        /**
         * Return used memcache SID (with cluster support)
         *
         * @return string
         */
        protected static function getMemcacheSID()
        {
        }
        /**
         * Return information about memcached from cluster module
         *
         * @return array
         */
        protected static function getMemCacheInfoFromCluster()
        {
        }
        /**
         * Return information about memcached from Bitrix constants (in dbconn.php)
         *
         * @return array
         */
        protected static function getMemCacheInfoFromConstants()
        {
        }
        /**
         * Return memcached hosts
         *
         * @return array
         */
        protected static function getMemCachedHosts()
        {
        }
        /**
         * Return summary information about memcached
         *
         * @return array
         */
        protected static function getMemCacheInfo()
        {
        }
        /**
         * @return array
         */
        protected static function getDBHosts()
        {
        }
        /**
         * Return information about DB from cluster module
         *
         * @return array
         */
        protected static function getDBHostsFromCluster()
        {
        }
        /**
         * Return information about DB from Bitrix constants (in dbconn.php)
         *
         * @return array
         */
        protected static function getDBHostsFromConstants()
        {
        }
    }
    /**
     * Class CSecuritySessionMC
     * @deprecated
     * @see \Bitrix\Main\Session\Handlers\MemcacheSessionHandler
     */
    class CSecuritySessionMC
    {
        /** @var Memcache $connection*/
        protected static $connection = \null;
        protected static $sessionId = \null;
        protected static $isReadOnly = \false;
        protected static $isSessionReady = \false;
        protected static $hasFailedRead = \false;
        /**
         * @return bool
         */
        public static function Init()
        {
        }
        /**
         * @param string $savePath - unused on this handler
         * @param string $sessionName - unused on this handler
         * @return bool
         */
        public static function open($savePath, $sessionName)
        {
        }
        /**
         * @return bool
         */
        public static function close()
        {
        }
        /**
         * @param string $id - session id, must be valid hash
         * @return string
         */
        public static function read($id)
        {
        }
        /**
         * @param string $id - session id, must be valid hash
         * @param string $sessionData
         * @return bool
         */
        public static function write($id, $sessionData)
        {
        }
        /**
         * @param string $id - session id, must be valid hash
         * @return bool
         */
        public static function destroy($id)
        {
        }
        /**
         * @param int $maxLifeTime - unused on this handler
         * @return bool
         */
        public static function gc($maxLifeTime)
        {
        }
        /**
         * @return bool
         */
        public static function isStorageEnabled()
        {
        }
        /**
         * @return bool
         */
        protected static function isConnected()
        {
        }
        /**
         * @param string $pId
         * @return bool
         */
        protected static function isValidId($pId)
        {
        }
        /**
         * @return string
         */
        protected static function getPrefix()
        {
        }
        /**
         * @return bool
         */
        protected static function newConnection()
        {
        }
        protected static function closeConnection()
        {
        }
    }
    /*
    Here is testing code:
    $s=<<<EOT
    
    Place tested html here
    
    EOT;
    CModule::IncludeModule('security');
    $Antivirus = new CSecurityAntiVirus("pre");
    $Antivirus->replace=1;
    $Antivirus->Analyze($s);
    echo htmlspecialcharsbx($s),'<hr><pre>',htmlspecialcharsbx(print_r($Antivirus,1));
    */
    class CSecurityAntiVirus
    {
        var $place = "";
        var $stylewithiframe = \false;
        // this properties may be changed after object creation
        var $maxrating = 20;
        //ðåéòèíã ïðèíÿòèÿ ðåøåíèé
        var $useglobalrules = 1;
        //èñïîëüçîâàòü ãëîáàëüíûå ïðàâèëà
        var $replace = 1;
        //
        var $replacement = "<!-- deleted by bitrix Antivirus -->";
        //íà ÷òî çàìåíÿåì, åñëè çàìåíÿåì..
        //ðåçóëüòàòû
        var $resultrules;
        //ìàññèâ ñðàáîòàâøèõ ïðàâèë
        var $whitelist_id;
        //âñïîìîãàòåëüíûå ñâîéñòâà
        var $data = '';
        //ïîëíûé êîä áëîêà, âêëþ÷àÿ îãðàíè÷èâàþùèå òåãè
        var $type = '';
        //òèï áëîêà
        var $body = '';
        // òåëî áëîêà.
        var $bodylines = \false;
        // ìàññèâ ñòðîê èç body
        var $bodyWOquotes = '';
        var $atributes = '';
        // äîïîëíèòåëüíûå àòðèáóòû (âìåñòå ñ src)
        var $cnt = 0;
        //ñ÷åò÷èê îáðàáîòàííûõ áëîêîâ
        var $prev = '';
        var $next = '';
        private $quotes = array();
        function __construct($place = "body")
        {
        }
        public static function IsActive()
        {
        }
        public static function SetActive($bActive = \false)
        {
        }
        public static function GetAuditTypes()
        {
        }
        public static function OnPageStart()
        {
        }
        public static function OnEndBufferContent(&$content)
        {
        }
        public static function OnAfterEpilog()
        {
        }
        public static function PHPShutdown()
        {
        }
        public static function GetWhiteList()
        {
        }
        public static function UpdateWhiteList($arWhiteList)
        {
        }
        // function returns 1, if current block is in white list and needs not processing.
        function isInWhiteList()
        {
        }
        //çàãëóøêà. Âîçùâðàùàåò ðåéòèíã îïàñíîñòè òåêóùåãî áëîêà èç êåøà, èëè FALSE
        // êåøèðóþòñÿ òîëüêî ñîñòàâëÿþùñÿ ðåéòèíãà, âëîæäåííàÿ âíóòðåííèìè ïðàâèëàìè.
        function returnfromcache()
        {
        }
        //çàãëóøêà. Äîáàâëÿåò ðåéòèíã îïàñíîñòè äëÿ òåêóùåãî áëîêà â êåø.
        function addtocache()
        {
        }
        //ìåõàíèçì äëÿ âûâîäà ñîîáùåíèÿ îá îáíàðóæåííîì ïîäîçðèòåëüíîì òåêóùåì áëîêå
        function dolog()
        {
        }
        // âûçûâàåòñÿ êàæäûé ðàç, êîãäà îáðàáîòêà áëîêà çàêîí÷åíà è áëîê ïðèçíàí íîðìàëüíûì.
        // ôóíêöèÿ äîëæíà âîçâðàòèòü ñîäåðæèìîå áëîêà.
        function end_okblock()
        {
        }
        function end_whiteblock()
        {
        }
        // âûçûâàåòñÿ êàæäûé ðàç, êîãäà îáðàáîòêà áëîêà çàêîí÷åíà è áëîê ïðèçíàí îïàñíûì.
        // ôóíêöèÿ äîëæíà âîçâðàòèòü ñîäåðæèìîå áëîêà.
        function end_blkblock()
        {
        }
        function CreateTrace()
        {
        }
        function Analyze(&$content)
        {
        }
        /*
        Âîçâðàùàåò ðåéòèíã îïàñíîñòè áëîêà (èôðåéì èëè ñêðèïò)
        âõîäíûå ïàðàìåòðû êëàññà äîëæíû áûòü çàïîëíåû.
        */
        function returnblockrating()
        {
        }
        // ÏÐÀÂÈËÀ
        // íàäáàâêè è ñêèäêè äåéñòâóþùèå äëÿ êàæäîãî ñêðèïòà (âîçìîæíî ñ íåêîòîðûìè óñëîâèÿìè)
        function rulescriptglobals()
        {
        }
        //ïðàâèëà, ó÷èòûâàþùèå îêðóæåíèå ñêðèïòà
        function rulescriptblocks()
        {
        }
        //ïðàâèëà, îòëàâëèâàþùèå "íåâèäèìîñòü" áëîêà
        function ruleframevisiblity()
        {
        }
        //ïðàâèëà, îòëàâëèâàþùèå ïîòåíöèàëüíî îïàñíûåêëþ÷åâûå ñëîâà â ñêðèïòå
        function rulescriptbasics()
        {
        }
        //ïðàâèëà, îòëàâëèâàþùèå vbscript
        function rulescriptvbscript()
        {
        }
        //ïðàâèëà, îòëàâëèâàþùèå îïàñíûå ìåñòà çàãðóçêè áëîêîâ
        function ruleallsources()
        {
        }
        //ïðàâèëà, ó÷èòûâàþáùèå ïîäîçðèòåëüíûå äëèíû ñòðîê è îáúåêòîâ
        function rulescriptlenghts()
        {
        }
        // Àíàëèç ÷àñòîòíûõ âõîæäåíèé ñèìâîëîâ...
        function rulescriptfrequensy()
        {
        }
        // ïðèçíàêè, óìåíüøàþùèå ðåéòèíã îïàñíîñòè ñêðèïòà
        function rulescriptwhiterules()
        {
        }
        //àíàëèç ïðèçíàêîâ â èìåíàõ ôóíêöèé è ïåðåìåííûõ
        function rulescriptnamerules()
        {
        }
        // âñïîìîãàòåëüíûå ôóíêöèè..
        // âîçâðàùàåò ÷àñòîòíûå ñîäåðæàíèÿ ñèìâîëîâ â ñòðîêå
        function getstatchars(&$str)
        {
        }
        function getnames_cb($m)
        {
        }
        function getnames($str)
        {
        }
        function isnormalname($nm, &$l)
        {
        }
        function returnscriptbody($str)
        {
        }
        public static function isSafetyRequest()
        {
        }
    }
    /**
    * Bitrix Framework
    * @package bitrix
    * @subpackage security
    * @copyright 2001-2013 Bitrix
    */
    class CSecurityXSSDetectVariables
    {
        private $parsed = \false;
        private $searchValuesWithQuotes = array();
        private $searchValuesWithoutQuotes = array();
        private $originalValues = array();
        /**
         * @param string $name
         * @param string $value
         */
        public function addVariable($name, $value)
        {
        }
        /**
         * @return array
         */
        public function getQuoteSearchValues()
        {
        }
        /**
         * @return array
         */
        public function getSearchValues()
        {
        }
        /**
         * @return bool
         */
        public function isEmpty()
        {
        }
        /**
         * @param string $name
         * @param string $value
         * @param bool $containsQuote
         * @return bool
         */
        protected function pushValue($name, $value, $containsQuote = \false)
        {
        }
        /**
         * @param string $name
         * @param string $value
         */
        protected function parseVariable($name, $value)
        {
        }
        /**
         *
         */
        protected function lazyParseVariables()
        {
        }
    }
    class CSecurityXSSDetect
    {
        const SCRIPT_MARK = '<!-- deleted by bitrix WAF -->';
        private $quotes = array();
        private $action = "filter";
        private $doLog = \false;
        /** @var CSecurityXSSDetectVariables */
        private $variables = \null;
        /** @var string[] */
        private $searches = \null;
        /** @var string[] */
        private $quotedSearches = \null;
        function __construct($options = array())
        {
        }
        /**
         * @param $content
         */
        public static function OnEndBufferContent(&$content)
        {
        }
        /**
         * @param string $content
         * @return void
         */
        public function process(&$content)
        {
        }
        /**
         * @return array
         */
        public function getQuotes()
        {
        }
        /**
         * @param string $string
         * @param bool $isSaveQuotes
         * @return mixed
         */
        public function removeQuotedStrings($string, $isSaveQuotes = \true)
        {
        }
        /**
         * @param string $action
         */
        protected function setAction($action)
        {
        }
        /**
         * @param string $log - only Y/N
         */
        protected function setLog($log)
        {
        }
        /**
         * @param $name
         * @param $value
         * @param $sourceScript
         * @return mixed
         */
        protected function logVariable($name, $value, $sourceScript)
        {
        }
        /**
         * @param $var_name
         * @param $str
         * @param $script
         */
        protected function CreateTrace($var_name, $str, $script)
        {
        }
        /**
         * @param string $quote
         * @return string
         */
        protected function pushQuote($quote)
        {
        }
        /**
         * @param string $string
         * @param array $searches
         * @return null|string
         */
        protected function findInArray($string, $searches)
        {
        }
        /**
         * @param string $body
         * @return array|false
         */
        protected function isDangerBody($body)
        {
        }
        /**
         * @param string $body
         * @return string
         */
        protected function getFilteredScriptBody($body)
        {
        }
        /**
         * @param array $strs
         * @return string
         */
        protected function getFilteredScript($strs)
        {
        }
        /**
         * @param string $string
         * @return string
         */
        protected function filter($string)
        {
        }
        /**
         * @param string $name
         * @param string $value
         */
        protected function addVariable($name, $value)
        {
        }
        /**
         * @param string $name
         * @param array $array
         */
        protected function extractVariablesFromArray($name, $array)
        {
        }
    }
    class CSecurityDB
    {
        /** @var string Connection name used for SQL queries */
        const CONNECTION_NAME = 'user_session';
        /** @var \Bitrix\Main\Db\Connection  */
        protected static $connection = \null;
        public static function Init($bDoConnect = \false)
        {
        }
        public static function Disconnect()
        {
        }
        public static function CurrentTimeFunction()
        {
        }
        public static function SecondsAgo($sec)
        {
        }
        public static function Query($strSql, $error_position)
        {
        }
        public static function QueryBind($strSql, $arBinds, $error_position)
        {
        }
        /**
         * @param \Bitrix\Main\Db\Result $result
         * @return bool
         */
        public static function Fetch($result)
        {
        }
        public static function Lock($id, $timeout = 60)
        {
        }
        public static function LockTable($table_name, $lock_id)
        {
        }
        public static function UnlockTable($table_lock)
        {
        }
    }
    class CFileChecker
    {
        var $arCollectedExtensions;
        var $startPath;
        var $serverFileErrorLogName = "serverfilerr";
        var $serverErrorLog;
        var $serverErrorLogHandle;
        /** @var  CFileCheckerLog */
        var $fileLog;
        /** @var  CFileCheckerErrorLog */
        var $fileErrorLog;
        protected static $integrityKey = '';
        public static function getIntegrityKey()
        {
        }
        public static function GetList()
        {
        }
        function SetCollectedExtensions($arCollectedExtensions)
        {
        }
        function SetStartPoint($startPath, $region)
        {
        }
        function GetFileInfo($filename)
        {
        }
        function __WalkThrougtTree($path, $arSkipPaths, $level, &$arTs, $fileFunction)
        {
        }
        function __CollectFile($file)
        {
        }
        function __VerifyFile($file)
        {
        }
        function __VerifyLogFileRest()
        {
        }
        function CollectCrc($region, $arCollectedExtensions, $pwdString, &$arTs, &$arErrors)
        {
        }
        function VerifyCrc($ts, $pwdString, &$arTs, &$arErrors)
        {
        }
    }
    class CFileCheckerLog
    {
        var $serverFileLogName = "serverfilelog";
        var $serverFileLogExt = "dat";
        var $serverFileLogPath = "/bitrix/modules";
        var $serverLog;
        var $serverLogTmp;
        var $serverLogHandle;
        var $serverLogTmpHandle;
        var $ts;
        var $logText;
        var $descrRegion;
        var $descrCollectedExtensions;
        var $descrTs;
        function __WriteDescription($region, $arCollectedExtensions)
        {
        }
        function __ReadDescription()
        {
        }
        function Create($region, $arCollectedExtensions)
        {
        }
        function CreateStep($ts)
        {
        }
        function Write($arFileInfo)
        {
        }
        function CloseCreateStep()
        {
        }
        function __Crypt($pwdString)
        {
        }
        function CloseCreate($pwdString)
        {
        }
        function __GetDescriptionList($ts)
        {
        }
        function Open($ts, $pwdString)
        {
        }
        function OpenStep($ts)
        {
        }
        function __ReadDescriptionFromString()
        {
        }
        function Search($filename)
        {
        }
        function ReadLine()
        {
        }
        function CloseOpen()
        {
        }
        function CloseOpenStep()
        {
        }
        function __SetLogFileNames()
        {
        }
        function GetTs()
        {
        }
        function GetDescriptionTs()
        {
        }
        function GetDescriptionRegion()
        {
        }
        function GetDescriptionCollectedExtensions()
        {
        }
        function GetLogCommonPathPart()
        {
        }
        public static function GetDownloadName($ts)
        {
        }
        public static function StartDownload($ts)
        {
        }
        public static function StopDownload($ts)
        {
        }
    }
    class CFileCheckerErrorLog
    {
        var $serverFileLogName = "serverfileerrorlog";
        var $serverFileLogExt = "dat";
        var $serverFileLogPath = "/bitrix/modules";
        var $serverLog;
        var $serverLogHandle;
        var $logText;
        function Create()
        {
        }
        function CreateStep()
        {
        }
        function Write($message)
        {
        }
        function CloseCreate()
        {
        }
        function Open()
        {
        }
        function ReadLine()
        {
        }
        function CloseOpen()
        {
        }
        function __SetLogFileNames()
        {
        }
        function GetLogCommonPathPart()
        {
        }
    }
    class CFileCheckerSubscriber
    {
        public static function IsSubscribed($fileName)
        {
        }
        public static function Subscribe($fileName, $pwdString, $keyString, &$arErrors)
        {
        }
        public static function __SetIntegrityParams($arData, $password)
        {
        }
        public static function Verify($fileName, $pwdString, &$keyString, &$arErrors)
        {
        }
        public static function __GetIntegrityParams($data, $password)
        {
        }
    }
    class CFileCheckerUtil
    {
        public static function SetFileContents($filename, $content)
        {
        }
        public static function GetFileCRC($filename)
        {
        }
        public static function GetFileLength($filename)
        {
        }
        public static function Encrypt($data, $pwdString)
        {
        }
        public static function Decrypt($data, $pwdString, $startPosition = 0)
        {
        }
        protected static function __CryptData($data, $pwdString, $type, $startPosition = 0)
        {
        }
    }
}
namespace Bitrix\Security\Mfa {
    /**
     * EO_RecoveryCodes
     * @see \Bitrix\Security\Mfa\RecoveryCodesTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes resetUserId()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes unsetUserId()
     * @method \int fillUserId()
     * @method \string getCode()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes resetCode()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes unsetCode()
     * @method \string fillCode()
     * @method \boolean getUsed()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes setUsed(\boolean|\Bitrix\Main\DB\SqlExpression $used)
     * @method bool hasUsed()
     * @method bool isUsedFilled()
     * @method bool isUsedChanged()
     * @method \boolean remindActualUsed()
     * @method \boolean requireUsed()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes resetUsed()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes unsetUsed()
     * @method \boolean fillUsed()
     * @method \Bitrix\Main\Type\DateTime getUsingDate()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes setUsingDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $usingDate)
     * @method bool hasUsingDate()
     * @method bool isUsingDateFilled()
     * @method bool isUsingDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualUsingDate()
     * @method \Bitrix\Main\Type\DateTime requireUsingDate()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes resetUsingDate()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes unsetUsingDate()
     * @method \Bitrix\Main\Type\DateTime fillUsingDate()
     * @method \string getUsingIp()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes setUsingIp(\string|\Bitrix\Main\DB\SqlExpression $usingIp)
     * @method bool hasUsingIp()
     * @method bool isUsingIpFilled()
     * @method bool isUsingIpChanged()
     * @method \string remindActualUsingIp()
     * @method \string requireUsingIp()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes resetUsingIp()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes unsetUsingIp()
     * @method \string fillUsingIp()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes resetUser()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes set($fieldName, $value)
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes reset($fieldName)
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Security\Mfa\EO_RecoveryCodes wakeUp($data)
     */
    class EO_RecoveryCodes
    {
        /* @var \Bitrix\Security\Mfa\RecoveryCodesTable */
        public static $dataClass = '\\Bitrix\\Security\\Mfa\\RecoveryCodesTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_RecoveryCodes_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \boolean[] getUsedList()
     * @method \boolean[] fillUsed()
     * @method \Bitrix\Main\Type\DateTime[] getUsingDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillUsingDate()
     * @method \string[] getUsingIpList()
     * @method \string[] fillUsingIp()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Security\Mfa\EO_RecoveryCodes $object)
     * @method bool has(\Bitrix\Security\Mfa\EO_RecoveryCodes $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes getByPrimary($primary)
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes[] getAll()
     * @method bool remove(\Bitrix\Security\Mfa\EO_RecoveryCodes $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Security\Mfa\EO_RecoveryCodes_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_RecoveryCodes_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Security\Mfa\RecoveryCodesTable */
        public static $dataClass = '\\Bitrix\\Security\\Mfa\\RecoveryCodesTable';
    }
    /**
     * @method static EO_RecoveryCodes_Query query()
     * @method static EO_RecoveryCodes_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_RecoveryCodes_Result getById($id)
     * @method static EO_RecoveryCodes_Result getList(array $parameters = array())
     * @method static EO_RecoveryCodes_Entity getEntity()
     * @method static \Bitrix\Security\Mfa\EO_RecoveryCodes createObject($setDefaultValues = true)
     * @method static \Bitrix\Security\Mfa\EO_RecoveryCodes_Collection createCollection()
     * @method static \Bitrix\Security\Mfa\EO_RecoveryCodes wakeUpObject($row)
     * @method static \Bitrix\Security\Mfa\EO_RecoveryCodes_Collection wakeUpCollection($rows)
     */
    class RecoveryCodesTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_RecoveryCodes_Result exec()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes fetchObject()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_RecoveryCodes_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes fetchObject()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes_Collection fetchCollection()
     */
    class EO_RecoveryCodes_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes createObject($setDefaultValues = true)
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes_Collection createCollection()
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes wakeUpObject($row)
     * @method \Bitrix\Security\Mfa\EO_RecoveryCodes_Collection wakeUpCollection($rows)
     */
    class EO_RecoveryCodes_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_User
     * @see \Bitrix\Security\Mfa\UserTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Security\Mfa\EO_User setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Security\Mfa\EO_User setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Security\Mfa\EO_User resetUser()
     * @method \Bitrix\Security\Mfa\EO_User unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \boolean getActive()
     * @method \Bitrix\Security\Mfa\EO_User setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Security\Mfa\EO_User resetActive()
     * @method \Bitrix\Security\Mfa\EO_User unsetActive()
     * @method \boolean fillActive()
     * @method \string getSecret()
     * @method \Bitrix\Security\Mfa\EO_User setSecret(\string|\Bitrix\Main\DB\SqlExpression $secret)
     * @method bool hasSecret()
     * @method bool isSecretFilled()
     * @method bool isSecretChanged()
     * @method \string remindActualSecret()
     * @method \string requireSecret()
     * @method \Bitrix\Security\Mfa\EO_User resetSecret()
     * @method \Bitrix\Security\Mfa\EO_User unsetSecret()
     * @method \string fillSecret()
     * @method \string getParams()
     * @method \Bitrix\Security\Mfa\EO_User setParams(\string|\Bitrix\Main\DB\SqlExpression $params)
     * @method bool hasParams()
     * @method bool isParamsFilled()
     * @method bool isParamsChanged()
     * @method \string remindActualParams()
     * @method \string requireParams()
     * @method \Bitrix\Security\Mfa\EO_User resetParams()
     * @method \Bitrix\Security\Mfa\EO_User unsetParams()
     * @method \string fillParams()
     * @method \string getType()
     * @method \Bitrix\Security\Mfa\EO_User setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\Security\Mfa\EO_User resetType()
     * @method \Bitrix\Security\Mfa\EO_User unsetType()
     * @method \string fillType()
     * @method \int getAttempts()
     * @method \Bitrix\Security\Mfa\EO_User setAttempts(\int|\Bitrix\Main\DB\SqlExpression $attempts)
     * @method bool hasAttempts()
     * @method bool isAttemptsFilled()
     * @method bool isAttemptsChanged()
     * @method \int remindActualAttempts()
     * @method \int requireAttempts()
     * @method \Bitrix\Security\Mfa\EO_User resetAttempts()
     * @method \Bitrix\Security\Mfa\EO_User unsetAttempts()
     * @method \int fillAttempts()
     * @method \Bitrix\Main\Type\DateTime getInitialDate()
     * @method \Bitrix\Security\Mfa\EO_User setInitialDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $initialDate)
     * @method bool hasInitialDate()
     * @method bool isInitialDateFilled()
     * @method bool isInitialDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualInitialDate()
     * @method \Bitrix\Main\Type\DateTime requireInitialDate()
     * @method \Bitrix\Security\Mfa\EO_User resetInitialDate()
     * @method \Bitrix\Security\Mfa\EO_User unsetInitialDate()
     * @method \Bitrix\Main\Type\DateTime fillInitialDate()
     * @method \boolean getSkipMandatory()
     * @method \Bitrix\Security\Mfa\EO_User setSkipMandatory(\boolean|\Bitrix\Main\DB\SqlExpression $skipMandatory)
     * @method bool hasSkipMandatory()
     * @method bool isSkipMandatoryFilled()
     * @method bool isSkipMandatoryChanged()
     * @method \boolean remindActualSkipMandatory()
     * @method \boolean requireSkipMandatory()
     * @method \Bitrix\Security\Mfa\EO_User resetSkipMandatory()
     * @method \Bitrix\Security\Mfa\EO_User unsetSkipMandatory()
     * @method \boolean fillSkipMandatory()
     * @method \Bitrix\Main\Type\DateTime getDeactivateUntil()
     * @method \Bitrix\Security\Mfa\EO_User setDeactivateUntil(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $deactivateUntil)
     * @method bool hasDeactivateUntil()
     * @method bool isDeactivateUntilFilled()
     * @method bool isDeactivateUntilChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDeactivateUntil()
     * @method \Bitrix\Main\Type\DateTime requireDeactivateUntil()
     * @method \Bitrix\Security\Mfa\EO_User resetDeactivateUntil()
     * @method \Bitrix\Security\Mfa\EO_User unsetDeactivateUntil()
     * @method \Bitrix\Main\Type\DateTime fillDeactivateUntil()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Security\Mfa\EO_User set($fieldName, $value)
     * @method \Bitrix\Security\Mfa\EO_User reset($fieldName)
     * @method \Bitrix\Security\Mfa\EO_User unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Security\Mfa\EO_User wakeUp($data)
     */
    class EO_User
    {
        /* @var \Bitrix\Security\Mfa\UserTable */
        public static $dataClass = '\\Bitrix\\Security\\Mfa\\UserTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_User_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Security\Mfa\EO_User_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \string[] getSecretList()
     * @method \string[] fillSecret()
     * @method \string[] getParamsList()
     * @method \string[] fillParams()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \int[] getAttemptsList()
     * @method \int[] fillAttempts()
     * @method \Bitrix\Main\Type\DateTime[] getInitialDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillInitialDate()
     * @method \boolean[] getSkipMandatoryList()
     * @method \boolean[] fillSkipMandatory()
     * @method \Bitrix\Main\Type\DateTime[] getDeactivateUntilList()
     * @method \Bitrix\Main\Type\DateTime[] fillDeactivateUntil()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Security\Mfa\EO_User $object)
     * @method bool has(\Bitrix\Security\Mfa\EO_User $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Security\Mfa\EO_User getByPrimary($primary)
     * @method \Bitrix\Security\Mfa\EO_User[] getAll()
     * @method bool remove(\Bitrix\Security\Mfa\EO_User $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Security\Mfa\EO_User_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Security\Mfa\EO_User current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_User_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Security\Mfa\UserTable */
        public static $dataClass = '\\Bitrix\\Security\\Mfa\\UserTable';
    }
    /**
     * @method static EO_User_Query query()
     * @method static EO_User_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_User_Result getById($id)
     * @method static EO_User_Result getList(array $parameters = array())
     * @method static EO_User_Entity getEntity()
     * @method static \Bitrix\Security\Mfa\EO_User createObject($setDefaultValues = true)
     * @method static \Bitrix\Security\Mfa\EO_User_Collection createCollection()
     * @method static \Bitrix\Security\Mfa\EO_User wakeUpObject($row)
     * @method static \Bitrix\Security\Mfa\EO_User_Collection wakeUpCollection($rows)
     */
    class UserTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_User_Result exec()
     * @method \Bitrix\Security\Mfa\EO_User fetchObject()
     * @method \Bitrix\Security\Mfa\EO_User_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_User_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Security\Mfa\EO_User fetchObject()
     * @method \Bitrix\Security\Mfa\EO_User_Collection fetchCollection()
     */
    class EO_User_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Security\Mfa\EO_User createObject($setDefaultValues = true)
     * @method \Bitrix\Security\Mfa\EO_User_Collection createCollection()
     * @method \Bitrix\Security\Mfa\EO_User wakeUpObject($row)
     * @method \Bitrix\Security\Mfa\EO_User_Collection wakeUpCollection($rows)
     */
    class EO_User_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Security {
    /**
     * EO_Session
     * @see \Bitrix\Security\SessionTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getSessionId()
     * @method \Bitrix\Security\EO_Session setSessionId(\string|\Bitrix\Main\DB\SqlExpression $sessionId)
     * @method bool hasSessionId()
     * @method bool isSessionIdFilled()
     * @method bool isSessionIdChanged()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Security\EO_Session setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Security\EO_Session resetTimestampX()
     * @method \Bitrix\Security\EO_Session unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \string getSessionData()
     * @method \Bitrix\Security\EO_Session setSessionData(\string|\Bitrix\Main\DB\SqlExpression $sessionData)
     * @method bool hasSessionData()
     * @method bool isSessionDataFilled()
     * @method bool isSessionDataChanged()
     * @method \string remindActualSessionData()
     * @method \string requireSessionData()
     * @method \Bitrix\Security\EO_Session resetSessionData()
     * @method \Bitrix\Security\EO_Session unsetSessionData()
     * @method \string fillSessionData()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Security\EO_Session set($fieldName, $value)
     * @method \Bitrix\Security\EO_Session reset($fieldName)
     * @method \Bitrix\Security\EO_Session unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Security\EO_Session wakeUp($data)
     */
    class EO_Session
    {
        /* @var \Bitrix\Security\SessionTable */
        public static $dataClass = '\\Bitrix\\Security\\SessionTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Session_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getSessionIdList()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \string[] getSessionDataList()
     * @method \string[] fillSessionData()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Security\EO_Session $object)
     * @method bool has(\Bitrix\Security\EO_Session $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Security\EO_Session getByPrimary($primary)
     * @method \Bitrix\Security\EO_Session[] getAll()
     * @method bool remove(\Bitrix\Security\EO_Session $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Security\EO_Session_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Security\EO_Session current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Session_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Security\SessionTable */
        public static $dataClass = '\\Bitrix\\Security\\SessionTable';
    }
    /**
     * @method static EO_Session_Query query()
     * @method static EO_Session_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Session_Result getById($id)
     * @method static EO_Session_Result getList(array $parameters = array())
     * @method static EO_Session_Entity getEntity()
     * @method static \Bitrix\Security\EO_Session createObject($setDefaultValues = true)
     * @method static \Bitrix\Security\EO_Session_Collection createCollection()
     * @method static \Bitrix\Security\EO_Session wakeUpObject($row)
     * @method static \Bitrix\Security\EO_Session_Collection wakeUpCollection($rows)
     */
    class SessionTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Session_Result exec()
     * @method \Bitrix\Security\EO_Session fetchObject()
     * @method \Bitrix\Security\EO_Session_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Session_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Security\EO_Session fetchObject()
     * @method \Bitrix\Security\EO_Session_Collection fetchCollection()
     */
    class EO_Session_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Security\EO_Session createObject($setDefaultValues = true)
     * @method \Bitrix\Security\EO_Session_Collection createCollection()
     * @method \Bitrix\Security\EO_Session wakeUpObject($row)
     * @method \Bitrix\Security\EO_Session_Collection wakeUpCollection($rows)
     */
    class EO_Session_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * Class LogicException
     * @since 14.0.6
     * @package Bitrix\Security
     */
    class LogicException extends \Bitrix\Main\SystemException
    {
        protected $locMessage = null;
        /**
         * Creates new logic exception object.
         *
         * @param string $message The Exception message to throw.
         * @param string $locMessageKey The Exception message localization key. Helpful for output message directly to user.
         * @param int $code The Exception code.
         * @param string $file The filename where the exception is thrown.
         * @param int $line The line number where the exception is thrown.
         * @param \Exception $previous The previous exception used for the exception chaining.
         */
        public function __construct($message = '', $locMessageKey = '', $code = 0, $file = '', $line = 0, \Exception $previous = null)
        {
        }
        /**
         * Returns localized message
         *
         * @return string
         */
        public function getLocMessage()
        {
        }
    }
}
namespace Bitrix\Security\Mfa {
    class OtpEvents
    {
        /**
         * Agent for activate temporary disabled users OTP
         *
         * @return string
         */
        public static function onRecheckDeactivate()
        {
        }
    }
    class Otp
    {
        const TYPE_HOTP = 'hotp';
        const TYPE_TOTP = 'totp';
        const TYPE_DEFAULT = self::TYPE_HOTP;
        const SECRET_LENGTH = 20;
        // Must be power of 5 for "nicely" App Secret view
        const SKIP_COOKIE = 'OTPH';
        const REJECTED_KEY = 'OTP_REJECT_REASON';
        const REJECT_BY_CODE = 'code';
        const REJECT_BY_MANDATORY = 'mandatory';
        const TAGGED_CACHE_TEMPLATE = 'USER_OTP_%d';
        protected static $availableTypes = array(self::TYPE_HOTP, self::TYPE_TOTP);
        protected static $typeMap = array(self::TYPE_HOTP => '\\Bitrix\\Main\\Security\\Mfa\\HotpAlgorithm', self::TYPE_TOTP => '\\Bitrix\\Main\\Security\\Mfa\\TotpAlgorithm');
        protected $algorithmClass = null;
        protected $regenerated = false;
        /* @var \Bitrix\Main\Context $context */
        protected $context = null;
        protected $userId = null;
        protected $userLogin = null;
        protected $userGroupPolicy = array();
        protected $active = null;
        protected $userActive = null;
        protected $secret = null;
        protected $issuer = null;
        protected $label = null;
        protected $params = null;
        protected $attempts = null;
        protected $type = null;
        /** @var Type\DateTime */
        protected $initialDate = null;
        protected $skipMandatory = null;
        /** @var Type\DateTime */
        protected $deactivateUntil = null;
        /**
         * @param string|null $algorithm Class of needed OtpAlgorithm.
         */
        public function __construct($algorithm = null)
        {
        }
        /**
         * Return new instance for user provided by user ID
         *
         * @param int $userId User ID.
         * @throws ArgumentOutOfRangeException
         * @throws ArgumentTypeException
         * @return static New instance, if user does not use OTP - returning NullObject (see Otp::isActivated).
         */
        public static function getByUser($userId)
        {
        }
        /**
         * Return new instance with needed OtpAlgorithm type
         *
         * @param string $type Type of OtpAlgorithm (see getAvailableTypes).
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @return static New instance
         */
        public static function getByType($type)
        {
        }
        /**
         * Set new type of OtpAlgorithm
         *
         * @param string $type Type of OtpAlgorithm (see getAvailableTypes).
         * @throws ArgumentOutOfRangeException
         * @return $this
         */
        public function setType($type)
        {
        }
        /**
         * Return used OtpAlgorithm type
         *
         * @return string
         */
        public function getType()
        {
        }
        /**
         * Return instance of used OtpAlgorithm
         *
         * @return OtpAlgorithm
         */
        public function getAlgorithm()
        {
        }
        /**
         * Return Provision URI according to KeyUriFormat
         *
         * @link https://code.google.com/p/google-authenticator/wiki/KeyUriFormat
         * @param array $opts Additional URI parameters, e.g. ['image' => 'http://example.com/my_logo.png'] .
         * @return string
         */
        public function getProvisioningUri(array $opts = array())
        {
        }
        /**
         * Reinitialize OTP (generate new secret, set default algo, etc), must be called before connect new device
         *
         * @param null $newSecret Using custom secret.
         * @return $this
         */
        public function regenerate($newSecret = null)
        {
        }
        /**
         * Verify provided input
         *
         * @param string $input Input received from user.
         * @param bool $updateParams Update or not user parameters in DB (e.g. counter for HotpAlgorithm).
         * @return bool True if input is valid.
         */
        public function verify($input, $updateParams = true)
        {
        }
        /**
         * Check is verifying attempts reached according to group security policy
         * May be used for show Captcha or what ever you want
         *
         * @return bool
         */
        public function isAttemptsReached()
        {
        }
        /**
         * Return synchronized user params for provided inputs
         *
         * @param string $inputA First code.
         * @param string $inputB Second code.
         * @throws \Bitrix\Main\Security\OtpException
         * @return string
         */
        public function getSyncParameters($inputA, $inputB)
        {
        }
        /**
         * Synchronize user params for provided inputs
         * Must be called after regenerate and before save!
         * If something went wrong - throw OtpException with valid description in message
         *
         * @param string $inputA First code.
         * @param string|null $inputB Second code.
         * @throws OtpException
         * @return $this
         */
        public function syncParameters($inputA, $inputB = null)
        {
        }
        /**
         * Save all OTP data to DB
         *
         * @throws OtpException
         * @return bool
         */
        public function save()
        {
        }
        /**
         * Delete OTP record from DB
         *
         * @return $this
         */
        public function delete()
        {
        }
        /**
         * Activate user OTP
         * OTP must be initialized (have secret, params, etc) before activate
         *
         * @return $this
         * @throws OtpException
         */
        public function activate()
        {
        }
        /**
         * Deactivate user OTP for a needed number of days or forever
         *
         * @param int $days Days. 0 means "forever".
         * @return $this
         * @throws OtpException
         */
        public function deactivate($days = 0)
        {
        }
        /**
         * Defer  mandatory user OTP using for a needed number of days or forever
         *
         * @param int $days Days. 0 means "forever".
         * @return $this
         * @throws OtpException
         */
        public function defer($days = 0)
        {
        }
        /**
         * Set new user information
         * Mostly used for initialization from DB
         * Now support:
         *  - ACTIVE: bool, activating state (see setActive)
         *  - USER_ID: integer, User ID (see setUserId)
         *  - ATTEMPTS: integer, Attempts counter (see setAttempts)
         *  - SECRET: binary, User secret (see setSecret)
         *  - PARAMS: string, User params (see setParams and getSyncParameters)
         *  - INITIAL_DATE: Type\Date, OTP initial date (see setInitialDate)
         *
         * @param array $userInfo See above.
         * @return $this
         */
        public function setUserInfo(array $userInfo)
        {
        }
        /**
         * Set new OTP initialization date
         *
         * @param Type\DateTime $date Initialization date.
         * @return $this
         */
        protected function setInitialDate(\Bitrix\Main\Type\DateTime $date)
        {
        }
        /**
         * Returns OTP initialization date
         *
         * @return Type\DateTime
         */
        public function getInitialDate()
        {
        }
        /**
         * Set datetime when user OTP must activated back
         *
         * @param Type\DateTime|null $date Datetime. "null" means never.
         * @return $this
         */
        protected function setDeactivateUntil($date)
        {
        }
        /**
         * @return Type\DateTime
         */
        public function getDeactivateUntil()
        {
        }
        /**
         * Set if user allowed to bypass OTP mandatory using while authorization
         *
         * @param bool $isSkipped Allowed or not.
         * @return $this
         */
        protected function setSkipMandatory($isSkipped = true)
        {
        }
        /**
         * Returns true if user can skip mandatory using
         *
         * @return bool
         */
        public function isMandatorySkipped()
        {
        }
        /**
         * Returns Unix timestamp of OTP initialization date
         *
         * @return int
         */
        protected function getInitialTimestamp()
        {
        }
        /**
         * Set new User ID
         *
         * @param int $userId User ID.
         * @return $this
         */
        protected function setUserId($userId)
        {
        }
        /**
         * Return used User ID
         *
         * @return int
         */
        public function getUserId()
        {
        }
        /**
         * Set new activating state
         *
         * @param bool $isActive Otp is activated or not.
         * @return $this
         */
        public function setActive($isActive)
        {
        }
        /**
         * Return is OTP activated or not
         *
         * @return bool
         */
        public function isActivated()
        {
        }
        public function setUserActive($isActive)
        {
        }
        public function isUserActive()
        {
        }
        /**
         * @return bool
         */
        public function isInitialized()
        {
        }
        /**
         * Set new verifying attempts count
         *
         * @param int $attemptsCount Attempts count.
         * @return $this
         */
        protected function setAttempts($attemptsCount)
        {
        }
        /**
         * Return verifying attempts count
         *
         * @return int
         */
        public function getAttempts()
        {
        }
        /**
         * Set new user params (e.g. counter for HotpAlgorithm)
         *
         * @see getSyncParameters
         * @param string $params User params.
         * @return $this
         */
        protected function setParams($params)
        {
        }
        /**
         * Return user params (e.g. counter for HotpAlgorithm)
         *
         * @return string
         */
        public function getParams()
        {
        }
        /**
         * Return binary secret
         *
         * @return string
         */
        public function getSecret()
        {
        }
        /**
         * Return hex-encoded secret
         *
         * @return string
         */
        public function getHexSecret()
        {
        }
        /**
         * Return mobile application secret, using for manual device initialization
         *
         * @return string
         */
        public function getAppSecret()
        {
        }
        /**
         * Set new secret
         *
         * @param string $secret Binary secret.
         * @return $this
         */
        public function setSecret($secret)
        {
        }
        /**
         * Set new secret in hex-encoded representation
         *
         * @param string $hexValue Hex-encoded secret.
         * @return $this
         */
        public function setHexSecret($hexValue)
        {
        }
        /**
         * Set new mobile application secret
         *
         * @param string $value Secret.
         * @return $this
         */
        public function setAppSecret($value)
        {
        }
        /**
         * Return issuer.
         * If custom issuer not available - return default (see getDefaultIssuer).
         *
         * @return string
         */
        public function getIssuer()
        {
        }
        /**
         * Set custom issuer
         *
         * @param string $issuer Issuer.
         * @return $this
         */
        public function setIssuer($issuer)
        {
        }
        /**
         * Return label for issuer (if provided)
         * If custom label not available - generate default (see generateLabel)
         *
         * @param string|null $issuer Issuer.
         * @return string
         */
        public function getLabel($issuer = null)
        {
        }
        /**
         * Set custom label
         *
         * @param string $label Label.
         * @return $this
         */
        public function setLabel($label)
        {
        }
        /**
         * Returns context of the current request.
         *
         * @return \Bitrix\Main\Context
         */
        public function getContext()
        {
        }
        /**
         * Set context of the current request.
         *
         * @param \Bitrix\Main\Context $context Application context.
         * @return $this
         */
        public function setContext(\Bitrix\Main\Context $context)
        {
        }
        /**
         * Set custom user login
         *
         * @param string $login Login.
         * @return $this
         */
        public function setUserLogin($login)
        {
        }
        /**
         * Return user login
         * If custom login not available it will be fetched from DB
         *
         * @return string
         */
        public function getUserLogin()
        {
        }
        /**
         * Return default issuer
         *
         * @return string
         */
        protected function getDefaultIssuer()
        {
        }
        /**
         * Generate label, based on current host, user login and issuer (if provided)
         *
         * @param string|null $issuer Issuer.
         * @return string
         */
        protected function generateLabel($issuer = null)
        {
        }
        /**
         * Return maximum verifying attempts, based on security group policy
         *
         * @return int
         */
        protected function getMaxLoginAttempts()
        {
        }
        /**
         * Return how long (in sec)remember value are valid
         *
         * @return int
         */
        protected function getRememberLifetime()
        {
        }
        /**
         * Return IP mask for checks remember value
         *
         * @return string
         */
        protected function getRememberIpMask()
        {
        }
        /**
         * Check if current user can skip OTP mandatory using.
         * It can skip if:
         *  - Otp already activated
         *  - User never login before
         *  - User not included to mandatory rights
         *  - The current date is included in the window initialization
         *
         * @return bool
         */
        public function canSkipMandatory()
        {
        }
        /**
         * Check if current user not included to mandatory rights
         *
         * @return bool
         */
        public function canSkipMandatoryByRights()
        {
        }
        /**
         * Check if user have valid cookie for skip OTP checking ("Remember OTP on this computer")
         *
         * @return bool
         */
        protected function canSkipByCookie()
        {
        }
        /**
         * Generate skip value for save in cookies
         * Currently based on client IP and mask (see getRememberIpMask)
         *
         * @return string
         */
        protected function getSkipCookieValue()
        {
        }
        /**
         * Store new value for skip OTP checking ("Remember OTP on this computer") in cookies
         *
         * @return $this
         */
        protected function setSkipCookie()
        {
        }
        /**
         * Check if OTP record exists in DB
         *
         * @return bool
         */
        protected function isDbRecordExists()
        {
        }
        /**
         * Return needed group security policy
         *
         * @param string $name Name of policy.
         * @return null
         */
        protected function getPolicy($name)
        {
        }
        /**
         * Clear cache for this OTP in global scope
         *
         * @return $this
         */
        protected function clearGlobalCache()
        {
        }
        /**
         * Most complex method, can check everything:-)
         * ToDo: describe after refactoring
         *
         * @param array $params Event parameters.
         * @return bool
         */
        public static function verifyUser(array $params)
        {
        }
        protected static function sendEvent(\Bitrix\Security\Mfa\Otp $otp)
        {
        }
        /**
         * Returns true if user must provide password from device
         *
         * @return bool
         */
        public static function isOtpRequired()
        {
        }
        /**
         * Returns true if user doesn't use OTP, but it required and grace full period ends
         *
         * @return bool
         */
        public static function isOtpRequiredByMandatory()
        {
        }
        /**
         * Return if user must provide captcha code before checking OTP password
         *
         * @return bool
         */
        public static function isCaptchaRequired()
        {
        }
        /**
         * Return deferred params (see verifyUser)
         *
         * @return array|null
         */
        public static function getDeferredParams()
        {
        }
        /**
         * Set or delete deferred params (see verifyUser)
         *
         * @param array|null $params Params, null means deleting params from storage.
         * @return void
         */
        public static function setDeferredParams($params)
        {
        }
        /**
         * Set initialization window (in days) for mandatory using checking
         *
         * @param int $days Days of initialization window. "0" means immediately (on next user authorization).
         * @return void
         */
        public static function setSkipMandatoryDays($days = 2)
        {
        }
        /**
         * Return initialization window (in days) for mandatory using checking
         *
         * @return int
         */
        public static function getSkipMandatoryDays()
        {
        }
        /**
         * Activate or deactivate mandatory OTP using
         *
         * @param bool $isMandatory Active or not.
         * @return void
         */
        public static function setMandatoryUsing($isMandatory = true)
        {
        }
        /**
         * Return is mandatory OTP using activated
         *
         * @return bool
         */
        public static function isMandatoryUsing()
        {
        }
        /**
         * Set user rights who must use OTP in mandatory way
         *
         * @param array $rights Needed rights. E.g. ['G1'] for administrators.
         * @return void
         */
        public static function setMandatoryRights(array $rights)
        {
        }
        /**
         * Return user rights who must use OTP in mandatory way
         *
         * @return array
         */
        public static function getMandatoryRights()
        {
        }
        /**
         * Set default OtpAlgorithm type
         *
         * @param string $value OtpAlgorithm type (see getAvailableTypes).
         * @throws ArgumentOutOfRangeException
         * @return void
         */
        public static function setDefaultType($value)
        {
        }
        /**
         * Return default OtpAlgorithm type
         *
         * @return string
         */
        public static function getDefaultType()
        {
        }
        /**
         * Return available OtpAlgorithm types
         *
         * @return array
         */
        public static function getAvailableTypes()
        {
        }
        /**
         * Return available OtpAlgorithm types description
         *
         * @return array
         */
        public static function getTypesDescription()
        {
        }
        /**
         * Returns if OTP enabled
         *
         * @return bool
         */
        public static function isOtpEnabled()
        {
        }
        /**
         * Returns if "Recovery codes" are enabled
         *
         * @return bool
         */
        public static function isRecoveryCodesEnabled()
        {
        }
    }
    class OtpException extends \Bitrix\Main\SystemException
    {
    }
}
namespace Bitrix\Main\Type {
    interface IRequestFilter
    {
        /**
         * @param array $values
         * @return array
         */
        function filter(array $values);
    }
}
namespace Bitrix\Security\Filter {
    /**
     * Filter for Request variables, such as superglobals $_GET, $_POST etc
     *
     * @package Bitrix\Security\Filter
     * @since 14.0.0
     */
    class Request implements \Bitrix\Main\Type\IRequestFilter
    {
        const ACTION_NONE = 'none';
        const ACTION_CLEAR = 'clear';
        const ACTION_FILTER = 'filter';
        /** @var Auditor\Base[] */
        protected $auditors = array();
        protected $changedContext = array();
        private $action = 'filter';
        private $doLog = false;
        private $changedVars = array();
        private $isAuditorsTriggered = false;
        private $filteringMap = array('get' => array('Name' => '$_GET'), 'post' => array('Name' => '$_POST', 'SkipRegExp' => '#^File\\d+_\\d+$#'), 'cookie' => array('Name' => '$_COOKIE'));
        private static $validActions = array(self::ACTION_NONE, self::ACTION_CLEAR, self::ACTION_FILTER);
        public function __construct($customOptions = array())
        {
        }
        /**
         * Set auditors for use in filtration
         *
         * @param Auditor\Base[] $auditors
         * @return $this
         */
        public function setAuditors(array $auditors)
        {
        }
        /**
         * Return all changed variables, can be useful for logging
         *
         * @return array
         */
        public function getChangedVars()
        {
        }
        /**
         * Return array with filtered values
         *
         * Simple example:
         * <code>
         * $ob = new Request();
         * $ob->setAuditors([
         *  'SQL' => new Auditor\Sql()
         * ]);
         * print_r(
         *  $ob->filter([
         *      'get' => ['safe bar'],
         *      'post' => ['select * from foo']
         *  ])
         * );
         * //output: Array ( [post] => Array ( [0] => sel ect * fr om foo ) )
         *
         * print_r(
         *  $ob->filter([
         *          'get' => ['safe bar'],
         *          'post' => ['select * from foo']
         *      ],
         *      false
         *  )
         * );
         * //output: Array ( [get] => Array ( [0] => safe bar ) [post] => Array ( [0] => sel ect * fr om foo ) )
         * </code>
         *
         * @example tests/security/filter/requestfilter.php
         * @param array $values array("get" => $_GET, "post" => $_POST, "files" => $_FILES, "cookie" => $_COOKIE)
         * @param bool $isReturnChangedOnly if true - return values only if it changed by some auditors
         * @return array
         */
        public function filter(array $values, $isReturnChangedOnly = true)
        {
        }
        /**
         * @since 14.0.3
         * @return bool
         */
        public function isAuditorsTriggered()
        {
        }
        protected function onFilterStarted()
        {
        }
        protected function onFilterFinished()
        {
        }
        /**
         * @param string $context
         * @param string $value
         * @param string $name
         * @return string
         */
        protected function filterVar($context, $value, $name)
        {
        }
        /**
         * @param string $context
         * @param array $array
         * @param string $name
         * @param string $skipKeyPreg
         * @return array
         */
        protected function filterArray($context, array $array, $name, $skipKeyPreg = '')
        {
        }
        /**
         * @param $action
         * @return bool
         */
        protected static function isActionValid($action)
        {
        }
        /**
         * @param string $value
         * @param string $name
         * @param string $auditorName
         * @return bool
         */
        protected static function logVariable($value, $name, $auditorName)
        {
        }
        /**
         * @param $string
         * @return bool
         */
        protected static function adjustPcreBacktrackLimit($string)
        {
        }
        /**
         * @return array
         */
        protected static function getValidActions()
        {
        }
        /**
         * @param $action
         * @return $this
         */
        protected function setAction($action)
        {
        }
        /**
         * @param $log
         * @return $this
         */
        protected function setLog($log)
        {
        }
        /**
         * @return bool
         */
        protected function isFilterAction()
        {
        }
        /**
         * @return bool
         */
        protected function isClearAction()
        {
        }
        /**
         * @return bool
         */
        protected function isLogNeeded()
        {
        }
        /**
         * @param string $context
         * @param string $value
         * @param string $name
         * @return $this
         */
        protected function pushChangedVar($context, $value, $name)
        {
        }
    }
    /**
     * Filter for Server variables, such as $_SERVER["REQUEST_URI"]
     *
     * @package Bitrix\Security\Filter
     * @since 14.0.0
     */
    class Server extends \Bitrix\Security\Filter\Request implements \Bitrix\Main\Type\IRequestFilter
    {
        protected $interestingKeys = array('REQUEST_URI', 'QUERY_STRING', 'SCRIPT_URL', 'SCRIPT_URI', 'PHP_SELF');
        /**
         * Return filtered values or null if auditors not triggered (by default)
         *
         * @example tests/security/filter/serverfilter.php
         * @param array $values Array of values to be checked.
         * @param bool $isReturnChangedOnly If true - return values only if it changed by some auditors, otherwise return null.
         * @return array|null
         */
        public function filter(array $values, $isReturnChangedOnly = true)
        {
        }
    }
}
namespace Bitrix\Security\Filter\Auditor {
    /**
     * Abstract class of all security auditors
     *
     * @package Bitrix\Security\Filter\Auditor
     * @since 14.0.0
     */
    abstract class Base
    {
        private $splittingChar = ' ';
        private $filteredValue = '';
        protected $filters = array();
        protected $name = '';
        function __construct($splittingChar = '')
        {
        }
        /**
         * Process and save filtered value
         * Return true if value triggered auditor filtration
         * For get filtered value use Base::getFilteredValue
         *
         * Simple example:
         * <code>
         * $ob = new Base();
         * if ($ob->process($someValue))
         *     $someValue = $ob->getFilteredValue();
         * </code>
         * @param string $value
         * @return bool
         */
        public function process($value)
        {
        }
        /**
         * Return filtered value after last value processing
         *
         * @see Base::process
         * @return string
         */
        public function getFilteredValue()
        {
        }
        /**
         * Return auditor name
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * @param string $string
         */
        protected function setFilteredValue($string)
        {
        }
        /**
         * @param string $char
         */
        protected function setSplittingChar($char)
        {
        }
        /**
         * @param string $customChar
         * @return string
         */
        protected function getSplittingChar($customChar = '')
        {
        }
        /**
         * make string like '\\1 * \\2 * \\3 * \\4'
         * @param int $splitItemsCount
         * @param string $customSplitChar
         * @return string
         */
        protected function getSplittingString($splitItemsCount = 2, $customSplitChar = '')
        {
        }
        protected function initializeFilters()
        {
        }
        /**
         * @return array
         */
        protected abstract function getFilters();
    }
    /**
     * Sql security auditor
     * Searching SQLi like strings, for example: union select money,1,2,3 from big_guy;
     *
     * @package Bitrix\Security\Filter\Auditor
     * @since 14.0.0
     */
    class Sql extends \Bitrix\Security\Filter\Auditor\Base
    {
        protected $name = 'SQL';
        protected function getFilters()
        {
        }
    }
    /**
     * Path security auditor
     * Searching "path traversal" like strings, for example: /foo/../bar/
     *
     * @package Bitrix\Security\Filter\Auditor
     * @since 14.0.0
     */
    class Path extends \Bitrix\Security\Filter\Auditor\Base
    {
        protected $name = 'PHP';
        protected function getFilters()
        {
        }
    }
    /**
     * Xss security auditor
     * Searching XSS like strings, for example: <img src=x onerror=prompt(/Hi_big_guy/)>
     *
     * @package Bitrix\Security\Filter\Auditor
     * @since 14.0.0
     */
    class Xss extends \Bitrix\Security\Filter\Auditor\Base
    {
        protected $name = 'XSS';
        private $whiteList = array();
        /**
         * Process and save filtered value
         * Return true if value triggered auditor filtration
         * For get filtered value use Xss::getFilteredValue
         *
         * Simple example:
         * <code>
         * $ob = new Xss();
         * if ($ob->process($someValue))
         *     $someValue = $ob->getFilteredValue();
         * </code>
         * @param string $value
         * @return bool
         */
        public function process($value)
        {
        }
        protected function initializeWhiteList()
        {
        }
        protected function getFilters()
        {
        }
        /**
         * @return array
         */
        protected function getWhiteList()
        {
        }
        /**
         * @param string $value
         * @param string $action - only 'store' or 'restore'
         * @return string
         */
        protected function processWhiteList($value, $action = 'store')
        {
        }
    }
}
namespace Bitrix\Security {
    /**
     * Class HostRestriction
     * @since 14.0.6
     * @example tests/security/hosts/basic.php
     * @package Bitrix\Security
     */
    class HostRestriction
    {
        const ACTION_REDIRECT = 'redirect';
        const ACTION_STOP = 'stop';
        private $optionPrefix = 'restriction_hosts_';
        private $cacheInitPath = 'security';
        private $cacheId = 'restriction_hosts';
        private $cacheTtl = 31536000;
        //one year
        private $action = 'stop';
        private $actionOptions = array();
        private $isLogNeeded = true;
        private $hosts = null;
        private $validActions = array(self::ACTION_REDIRECT, self::ACTION_STOP);
        private $validationRegExp = null;
        private $isActive = null;
        /**
         * Handler for system event "OnPageStart", does nothing in CLI mode because it does not make sense
         *
         * @return void
         */
        public static function onPageStart()
        {
        }
        public function __construct()
        {
        }
        /**
         * The main method that checks the current host, logging and starting action
         *
         * @param string $host Requested host for checking.
         * @return $this
         */
        public function process($host = null)
        {
        }
        /**
         * Checking host by host restriction policy
         *
         * @param string $host Host for checking.
         * @return bool Return true for valid (allowed) host.
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function isValidHost($host)
        {
        }
        /**
         * @return array
         */
        public function getProperties()
        {
        }
        /**
         * Set various properties for host checking, now support:
         *  - hosts: a string with allowed hosts (wild card supported, e.g.: *.example.com) {@see setHosts}
         *  - action: a string with action for unallowed host {@see validActions}
         *  - action_options: array with some options for action {@see setAction}
         *  - logging: bool, set true if need logging unallowed host {@see setLogging}
         *  - active: bool, set true if automatic checking on every request needed
         *
         * @param array $properties See above.
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws LogicException
         * @return $this
         */
        public function setProperties(array $properties)
        {
        }
        /**
         * @return string
         */
        public function getAction()
        {
        }
        /**
         * @return array
         */
        public function getActionOptions()
        {
        }
        /**
         * Set action performed while checking
         *
         * @param string $action Some action, now supported: redirect and stop.
         * @param array $options Some options for action, so far supported only host for redirect in redirect action.
         * @return $this
         * @throws \Bitrix\Security\LogicException
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function setAction($action, array $options = array())
        {
        }
        /**
         * @return bool
         */
        public function getLogging()
        {
        }
        /**
         * Activate or deactivate logging on unallowed host requested
         *
         * @param bool $isLogNeeded Set true if need logging unallowed host.
         * @return $this
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function setLogging($isLogNeeded = true)
        {
        }
        /**
         * @return bool
         */
        public function getActive()
        {
        }
        /**
         * Activate or deactivate automatic checking
         *
         * @param bool $isActive Set true for enable checking on every request.
         * @throws \Bitrix\Main\ArgumentTypeException
         * @return $this
         */
        public function setActive($isActive = false)
        {
        }
        /**
         * @return string
         */
        public function getHosts()
        {
        }
        /**
         * Set allowed hosts
         *
         * @param string $hosts Allowed hosts (wild card supported, e.g.: *.example.com).
         * @param bool $ignoreChecking Set false for disable host validating before set.
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws LogicException
         * @return $this
         */
        public function setHosts($hosts, $ignoreChecking = false)
        {
        }
        /**
         * Return regular expressions (based on hosts) for checking.
         * Note: regular expression is cached for performance improvement and auto cleared after saving {@see save}
         *
         * @return string
         */
        public function getValidationRegExp()
        {
        }
        /**
         * Save all properties, enable automatic checking and clear cache if needed
         *
         * @return $this
         */
        public function save()
        {
        }
        /**
         * Return true if HostRestriction already handled on system event "OnPageStart"
         *
         * @return bool
         */
        protected function isBound()
        {
        }
        /**
         * Return requested host for checking
         *
         * @return string
         */
        protected function getTargetHost()
        {
        }
        /**
         * Logging current host by event manager
         *
         * @param string $host Requested host.
         * @return bool
         */
        protected function log($host)
        {
        }
        /**
         * Perform some actions when requested host is not allowed by host restriction policy
         *
         * @return $this
         */
        protected function doActions()
        {
        }
        /**
         * Generates regular expression obtained from hosts
         *
         * @param string $hosts Allowed hosts (wild card supported, e.g.: *.example.com).
         * @return string
         */
        protected function genValidationRegExp($hosts)
        {
        }
        /**
         * Checks the host to detect logical errors (eg blocking the current host)
         *
         * @param string $hosts Allowed hosts (wild card supported, e.g.: *.example.com).
         * @return $this
         * @throws \Bitrix\Security\LogicException
         */
        protected function checkNewHosts($hosts)
        {
        }
    }
}
namespace {
    class translate extends \CModule
    {
        public $MODULE_ID = 'translate';
        public $MODULE_VERSION;
        public $MODULE_VERSION_DATE;
        public $MODULE_NAME;
        public $MODULE_DESCRIPTION;
        public $MODULE_CSS;
        public $MODULE_GROUP_RIGHTS = 'Y';
        public function __construct()
        {
        }
        /**
         * @return bool
         */
        public function InstallDB()
        {
        }
        /**
         * @return bool
         */
        public function InstallEvents()
        {
        }
        /**
         * @param array $params
         * @return bool
         */
        public function UnInstallDB($params = array())
        {
        }
        /**
         * @return bool
         */
        public function UnInstallEvents()
        {
        }
        /**
         * @return bool
         */
        public function InstallFiles()
        {
        }
        /**
         * @return bool
         */
        public function UnInstallFiles()
        {
        }
        /**
         * @return void
         */
        public function DoInstall()
        {
        }
        /**
         * @return void
         */
        public function DoUninstall()
        {
        }
        /**
         * Event handler 'perfmon::OnGetTableSchema'.
         * @see \CPerfomanceSchema::Init
         * @return array
         */
        function OnGetTableSchema()
        {
        }
    }
}
namespace Bitrix\Translate {
    interface IErrorable extends \Bitrix\Main\Errorable
    {
        /**
         * Adds error to error collection.
         *
         * @param Main\Error $error Error.
         *
         * @return $this
         */
        public function addError(\Bitrix\Main\Error $error);
        /**
         * Adds list of errors to error collection.
         *
         * @param Main\Error[] $errors Errors.
         *
         * @return $this
         */
        public function addErrors(array $errors);
        /**
         * Getting array of errors.
         *
         * @return boolean
         */
        public function hasErrors();
    }
    /**
     * @implements Translate\IErrorable
     */
    trait Error
    {
        /** @var Main\ErrorCollection */
        protected $errorCollection;
        /**
         * Adds error to error collection.
         *
         * @param Main\Error $error Error.
         *
         * @return $this
         */
        public final function addError(\Bitrix\Main\Error $error) : self
        {
        }
        /**
         * Adds list of errors to error collection.
         *
         * @param Main\Error[] $errors Errors.
         *
         * @return $this
         */
        public final function addErrors(array $errors) : self
        {
        }
        /**
         * Getting array of errors.
         *
         * @return Main\Error[]
         */
        public final function getErrors() : array
        {
        }
        /**
         * Getting once error with the necessary code.
         *
         * @param string|int $code Code of error.
         *
         * @return Main\Error|null
         */
        public final function getErrorByCode($code) : ?\Bitrix\Main\Error
        {
        }
        /**
         * Returns last error from list.
         *
         * @return Main\Error|null
         */
        public final function getLastError() : ?\Bitrix\Main\Error
        {
        }
        /**
         * Returns first error from list.
         *
         * @return Main\Error|null
         */
        public final function getFirstError() : ?\Bitrix\Main\Error
        {
        }
        /**
         * Checks if error occurred.
         *
         * @return boolean
         */
        public final function hasErrors() : bool
        {
        }
        /**
         * Returns an error with the necessary code.
         * @param string|int $code The code of the error.
         *
         * @return boolean
         */
        public final function hasError($code) : bool
        {
        }
    }
    abstract class ComponentBase extends \CBitrixComponent implements \Bitrix\Translate\IErrorable
    {
        use \Bitrix\Translate\Error;
        const STATUS_SUCCESS = 'success';
        const STATUS_DENIED = 'denied';
        const STATUS_ERROR = 'error';
        const TEMPLATE_ERROR = 'error';
        /** @var string */
        protected $path;
        /** @var int Session tab counter. */
        protected $tabId = 0;
        /**
         * @return boolean
         */
        protected function checkModuleAvailability()
        {
        }
        /**
         * Checks if user has permission to view language file.
         * @param \CUser $user User to check permissions.
         * @return boolean
         */
        protected function hasUserPermissionView($user)
        {
        }
        /**
         * Checks if user has permission to edit language file.
         * @param \CUser $user User to check permissions.
         * @return boolean
         */
        protected function hasUserPermissionEdit($user)
        {
        }
        /**
         * Checks if user has permission to edit source language file.
         * @param \CUser $user User to check permissions.
         * @return boolean
         */
        protected function hasUserPermissionEditSource($user)
        {
        }
        /**
         * Checks if user has permission to view language file.
         * @return boolean
         */
        protected function checkPermissionView()
        {
        }
        /**
         * Checks if user has permission to edit language file.
         * @return boolean
         */
        protected function checkPermissionEdit()
        {
        }
        /**
         * Checks if user has permission to edit source language file.
         * @return boolean
         */
        protected function checkPermissionEditPhp()
        {
        }
        /**
         * @return void
         */
        protected function prepareParams()
        {
        }
        /**
         * @return string[]
         */
        protected function getLanguages()
        {
        }
        /**
         * Returns list of language names from the site settings.
         *
         * @param string[] $languageIds Languages list to get name.
         *
         * @return array
         */
        protected function getLanguagesTitle($languageIds)
        {
        }
        /**
         * Return languages compatible by their encoding.
         *
         * @return string[]
         */
        protected function getCompatibleLanguages()
        {
        }
        /**
         * @return string
         */
        protected function detectTabId()
        {
        }
        /**
         * @return string
         */
        protected function detectStartingPath(?string $path = '') : string
        {
        }
        /**
         * Returns component calling params by reference.
         * @return array
         */
        public function &getParams()
        {
        }
        /**
         * Returns component resulting array by reference.
         * @return array
         */
        public function &getResult()
        {
        }
        /**
         * @return \CUser
         */
        protected function getUser()
        {
        }
        /**
         * @return \CMain
         */
        protected function getApplication()
        {
        }
        /**
         * Returns whether this is an AJAX (XMLHttpRequest) request.
         * @return boolean
         */
        protected function isAjaxRequest()
        {
        }
        /**
         * Sends Json response to client.
         *
         * @param array|object|Main\Error $response Response to send.
         *
         * @throws Main\ArgumentException
         * @return void
         */
        protected function sendJsonResponse($response)
        {
        }
        /**
         * Drops saved options.
         * @param string $category Group option name.
         * @param string $nameMask Option name mask.
         * @return void
         */
        protected function clearSavedOptions($category, $nameMask)
        {
        }
        /**
         * Finds way to get back.
         *
         * @param string $path Path to analise.
         *
         * @return string
         */
        protected function detectPathBack($path)
        {
        }
        /**
         * Get data for chain links.
         *
         * @param string $path Path to analise.
         *
         * @return array
         */
        protected function generateChainLinks($path)
        {
        }
    }
}
namespace {
    class TranslateEditComponent extends \Bitrix\Translate\ComponentBase
    {
        public const VIEW_MODE_UNTRANSLATED = 'Untranslated';
        public const VIEW_MODE_SHOW_ALL = 'ShowAll';
        public const VIEW_MODE_SOURCE_EDIT = 'SourceEdit';
        public const VIEW_MODE_SOURCE_VIEW = 'SourceView';
        public const TEMPLATE_SOURCE_EDIT = 'source_edit';
        public const TEMPLATE_SOURCE_VIEW = 'source_view';
        /** @var string */
        private $filePath;
        /** @var string */
        private $viewMode;
        /** @var array */
        private $langSettings = array();
        /** @var string */
        private $highlightPhraseId;
        /**
         * @return void
         */
        protected function prepareParams()
        {
        }
        /**
         * @return string
         */
        protected function detectTabId()
        {
        }
        /**
         * @return void
         */
        public function executeComponent()
        {
        }
        /**
         * Generates name for form field.
         *
         * @param string $phraseId Phrase code.
         * @param string $suffix Append name with.
         * @param string $prefix Start name with.
         *
         * @return string
         */
        public function generateFieldName($phraseId, $suffix = '', $prefix = '')
        {
        }
        /**
         * Merges all language files into one array.
         *
         * @param string[] $fullLangFilePaths Array of full paths to lang files.
         * @param string[] $languages Array of languages to merge.
         * @param string $encodingOut Output encoding.
         * @param boolean $collectUntranslated Leave only untranslated phrases.
         *
         * @return array
         */
        private function mergeLangFiles($fullLangFilePaths, $languages, $encodingOut = \null, $collectUntranslated = \false)
        {
        }
        /**
         * Finds requested path from.
         *
         * @param string $inpName Input parameter name.
         * @return string
         */
        private function detectPath($inpName = 'file')
        {
        }
        /**
         *  Restores current view mode.
         *
         * @return string
         */
        private function detectViewMode()
        {
        }
    }
    class TranslateListComponent extends \Bitrix\Translate\ComponentBase
    {
        public const ACTION_FILE_LIST = 'FILE_LIST';
        public const ACTION_SEARCH_FILE = 'SEARCH_FILE';
        public const ACTION_SEARCH_PHRASE = 'SEARCH_PHRASE';
        public const ACTION_EDIT = 'EDIT';
        /** @var string */
        private $action;
        public const VIEW_MODE_COUNT_PHRASES = 'CountPhrases';
        public const VIEW_MODE_COUNT_FILES = 'CountFiles';
        public const VIEW_MODE_UNTRANSLATED = 'UntranslatedPhrases';
        public const VIEW_MODE_UNTRANSLATED_FILES = 'UntranslatedFiles';
        public const VIEW_MODE_HIDE_EMPTY_FOLDERS = 'HideEmptyFolders';
        public const VIEW_MODE_SHOW_DIFF_LINKS = 'ShowDiffLinks';
        /** @var string */
        private $filterId = 'translate_filter';
        /** @var string */
        private $gridId = 'translate_list';
        /** @var Main\Grid\Options */
        private $gridOptions;
        /** @var Main\UI\Filter\Options */
        private $filterOptions;
        /** @var boolean Request include new filter state. */
        private $filterApplying = \false;
        /** @var Main\UI\PageNavigation */
        private $pageNavigation;
        /** @var Translate\Filter */
        private $filter;
        /** @var Translate\Index\PathIndex */
        private $topIndexPath;
        /** @var string[] */
        private $viewMode = array();
        /** @var array */
        private $fileData = array();
        /** @var array */
        private $dirData = array();
        /** @var array */
        private $indexData = array();
        /** @var int */
        private $totalItemsFound = 0;
        /**
         * @return void
         */
        protected function prepareParams()
        {
        }
        /**
         * @return void
         */
        public function executeComponent()
        {
        }
        /**
         * Returns ui grid headers definition.
         *
         * @return array
         */
        private function getHeaderDefinition()
        {
        }
        /**
         * Returns filter fields definitions.
         *
         * @return array
         */
        private function getFilterDefinition()
        {
        }
        /**
         * Returns filter presets definitions.
         *
         * @return array
         */
        private function getFilterPresetsDefinition()
        {
        }
        /**
         * @return array
         */
        private function getOrder($defaultSort = array('TITLE' => 'asc'), $aliases = array())
        {
        }
        /**
         * Returns filter object.
         *
         * @return Translate\Filter
         */
        private function getFilter($reset = \false)
        {
        }
        /**
         * Returns established filter.
         *
         * @return Translate\Filter
         */
        private function detectFilter()
        {
        }
        /**
         * Action actual dir/file date from disk.
         *
         * @return void
         */
        private function executeFileListAction()
        {
        }
        /**
         * Searches file by index.
         *
         * @return void
         */
        private function executeSearchFileAction()
        {
        }
        /**
         * Searches phrase by index.
         *
         * @return void
         */
        private function executeSearchPhraseAction()
        {
        }
        /**
         *  Restores current view mode.
         *
         * @return string[]
         */
        private function detectViewMode()
        {
        }
        /**
         *  Finds requested path from.
         *
         * @return string
         */
        private function detectPath($inpName = 'path')
        {
        }
        /**
         *  Finds top folder for request.
         *
         * @return Translate\Index\PathIndex|null
         */
        private function detectTopIndexPath()
        {
        }
        /**
         * Loads actual data from disk files. Initializes $this->dirData and $this->fileData.
         *
         * @return int
         */
        private function loadActualFileData()
        {
        }
        /**
         * Appends actual file data by date from index. Initializes $this->indexData.
         *
         * @param string[] $pathList Folder path list to filter.
         * @param boolean $loadPathsDiff Load path data for link.
         *
         * @return int
         */
        private function loadIndexFileData(array $pathList = [], $loadPathsDiff = \false)
        {
        }
        /**
         * todo: Revert module assigment
         *
         * @return string[]
         */
        private function getModuleList()
        {
        }
        /**
         * todo: Revert module assigment
         *
         * @param string $moduleId Module Id.
         * @return string
         */
        private function getModuleTitle($moduleId)
        {
        }
        /**
         * todo: Revert type assigment
         *
         * @param string $assignmentId Assignment Id.
         * @return string
         */
        private function getAssignmentTitle($assignmentId)
        {
        }
        /**
         * @return string
         */
        private function detectAction()
        {
        }
        /**
         * Returns items for grid menu with group action.
         *
         * @param string $action Component action command.
         *
         * @return array
         */
        protected function getGridGroupAction($action)
        {
        }
    }
}
namespace Bitrix\Translate\Index\Internals {
    /**
     * FileDiff
     * @see \Bitrix\Translate\Index\Internals\FileDiffTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Translate\Index\FileDiff setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getFileId()
     * @method \Bitrix\Translate\Index\FileDiff setFileId(\int|\Bitrix\Main\DB\SqlExpression $fileId)
     * @method bool hasFileId()
     * @method bool isFileIdFilled()
     * @method bool isFileIdChanged()
     * @method \int remindActualFileId()
     * @method \int requireFileId()
     * @method \Bitrix\Translate\Index\FileDiff resetFileId()
     * @method \Bitrix\Translate\Index\FileDiff unsetFileId()
     * @method \int fillFileId()
     * @method \int getPathId()
     * @method \Bitrix\Translate\Index\FileDiff setPathId(\int|\Bitrix\Main\DB\SqlExpression $pathId)
     * @method bool hasPathId()
     * @method bool isPathIdFilled()
     * @method bool isPathIdChanged()
     * @method \int remindActualPathId()
     * @method \int requirePathId()
     * @method \Bitrix\Translate\Index\FileDiff resetPathId()
     * @method \Bitrix\Translate\Index\FileDiff unsetPathId()
     * @method \int fillPathId()
     * @method \string getLangId()
     * @method \Bitrix\Translate\Index\FileDiff setLangId(\string|\Bitrix\Main\DB\SqlExpression $langId)
     * @method bool hasLangId()
     * @method bool isLangIdFilled()
     * @method bool isLangIdChanged()
     * @method \string remindActualLangId()
     * @method \string requireLangId()
     * @method \Bitrix\Translate\Index\FileDiff resetLangId()
     * @method \Bitrix\Translate\Index\FileDiff unsetLangId()
     * @method \string fillLangId()
     * @method \string getAgainstLangId()
     * @method \Bitrix\Translate\Index\FileDiff setAgainstLangId(\string|\Bitrix\Main\DB\SqlExpression $againstLangId)
     * @method bool hasAgainstLangId()
     * @method bool isAgainstLangIdFilled()
     * @method bool isAgainstLangIdChanged()
     * @method \string remindActualAgainstLangId()
     * @method \string requireAgainstLangId()
     * @method \Bitrix\Translate\Index\FileDiff resetAgainstLangId()
     * @method \Bitrix\Translate\Index\FileDiff unsetAgainstLangId()
     * @method \string fillAgainstLangId()
     * @method \int getExcessCount()
     * @method \Bitrix\Translate\Index\FileDiff setExcessCount(\int|\Bitrix\Main\DB\SqlExpression $excessCount)
     * @method bool hasExcessCount()
     * @method bool isExcessCountFilled()
     * @method bool isExcessCountChanged()
     * @method \int remindActualExcessCount()
     * @method \int requireExcessCount()
     * @method \Bitrix\Translate\Index\FileDiff resetExcessCount()
     * @method \Bitrix\Translate\Index\FileDiff unsetExcessCount()
     * @method \int fillExcessCount()
     * @method \int getDeficiencyCount()
     * @method \Bitrix\Translate\Index\FileDiff setDeficiencyCount(\int|\Bitrix\Main\DB\SqlExpression $deficiencyCount)
     * @method bool hasDeficiencyCount()
     * @method bool isDeficiencyCountFilled()
     * @method bool isDeficiencyCountChanged()
     * @method \int remindActualDeficiencyCount()
     * @method \int requireDeficiencyCount()
     * @method \Bitrix\Translate\Index\FileDiff resetDeficiencyCount()
     * @method \Bitrix\Translate\Index\FileDiff unsetDeficiencyCount()
     * @method \int fillDeficiencyCount()
     * @method \Bitrix\Translate\Index\FileIndex getFile()
     * @method \Bitrix\Translate\Index\FileIndex remindActualFile()
     * @method \Bitrix\Translate\Index\FileIndex requireFile()
     * @method \Bitrix\Translate\Index\FileDiff setFile(\Bitrix\Translate\Index\FileIndex $object)
     * @method \Bitrix\Translate\Index\FileDiff resetFile()
     * @method \Bitrix\Translate\Index\FileDiff unsetFile()
     * @method bool hasFile()
     * @method bool isFileFilled()
     * @method bool isFileChanged()
     * @method \Bitrix\Translate\Index\FileIndex fillFile()
     * @method \Bitrix\Translate\Index\PathIndex getPath()
     * @method \Bitrix\Translate\Index\PathIndex remindActualPath()
     * @method \Bitrix\Translate\Index\PathIndex requirePath()
     * @method \Bitrix\Translate\Index\FileDiff setPath(\Bitrix\Translate\Index\PathIndex $object)
     * @method \Bitrix\Translate\Index\FileDiff resetPath()
     * @method \Bitrix\Translate\Index\FileDiff unsetPath()
     * @method bool hasPath()
     * @method bool isPathFilled()
     * @method bool isPathChanged()
     * @method \Bitrix\Translate\Index\PathIndex fillPath()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Translate\Index\FileDiff set($fieldName, $value)
     * @method \Bitrix\Translate\Index\FileDiff reset($fieldName)
     * @method \Bitrix\Translate\Index\FileDiff unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Translate\Index\FileDiff wakeUp($data)
     */
    class EO_FileDiff
    {
        /* @var \Bitrix\Translate\Index\Internals\FileDiffTable */
        public static $dataClass = '\\Bitrix\\Translate\\Index\\Internals\\FileDiffTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * FileDiffCollection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getFileIdList()
     * @method \int[] fillFileId()
     * @method \int[] getPathIdList()
     * @method \int[] fillPathId()
     * @method \string[] getLangIdList()
     * @method \string[] fillLangId()
     * @method \string[] getAgainstLangIdList()
     * @method \string[] fillAgainstLangId()
     * @method \int[] getExcessCountList()
     * @method \int[] fillExcessCount()
     * @method \int[] getDeficiencyCountList()
     * @method \int[] fillDeficiencyCount()
     * @method \Bitrix\Translate\Index\FileIndex[] getFileList()
     * @method \Bitrix\Translate\Index\FileDiffCollection getFileCollection()
     * @method \Bitrix\Translate\Index\FileIndexCollection fillFile()
     * @method \Bitrix\Translate\Index\PathIndex[] getPathList()
     * @method \Bitrix\Translate\Index\FileDiffCollection getPathCollection()
     * @method \Bitrix\Translate\Index\PathIndexCollection fillPath()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Translate\Index\FileDiff $object)
     * @method bool has(\Bitrix\Translate\Index\FileDiff $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Translate\Index\FileDiff getByPrimary($primary)
     * @method \Bitrix\Translate\Index\FileDiff[] getAll()
     * @method bool remove(\Bitrix\Translate\Index\FileDiff $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Translate\Index\FileDiffCollection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Translate\Index\FileDiff current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_FileDiff_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Translate\Index\Internals\FileDiffTable */
        public static $dataClass = '\\Bitrix\\Translate\\Index\\Internals\\FileDiffTable';
    }
    /**
     * @method static EO_FileDiff_Query query()
     * @method static EO_FileDiff_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_FileDiff_Result getById($id)
     * @method static EO_FileDiff_Result getList(array $parameters = array())
     * @method static EO_FileDiff_Entity getEntity()
     * @method static \Bitrix\Translate\Index\FileDiff createObject($setDefaultValues = true)
     * @method static \Bitrix\Translate\Index\FileDiffCollection createCollection()
     * @method static \Bitrix\Translate\Index\FileDiff wakeUpObject($row)
     * @method static \Bitrix\Translate\Index\FileDiffCollection wakeUpCollection($rows)
     */
    class FileDiffTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_FileDiff_Result exec()
     * @method \Bitrix\Translate\Index\FileDiff fetchObject()
     * @method \Bitrix\Translate\Index\FileDiffCollection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_FileDiff_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Translate\Index\FileDiff fetchObject()
     * @method \Bitrix\Translate\Index\FileDiffCollection fetchCollection()
     */
    class EO_FileDiff_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Translate\Index\FileDiff createObject($setDefaultValues = true)
     * @method \Bitrix\Translate\Index\FileDiffCollection createCollection()
     * @method \Bitrix\Translate\Index\FileDiff wakeUpObject($row)
     * @method \Bitrix\Translate\Index\FileDiffCollection wakeUpCollection($rows)
     */
    class EO_FileDiff_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * FileIndex
     * @see \Bitrix\Translate\Index\Internals\FileIndexTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Translate\Index\FileIndex setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getPathId()
     * @method \Bitrix\Translate\Index\FileIndex setPathId(\int|\Bitrix\Main\DB\SqlExpression $pathId)
     * @method bool hasPathId()
     * @method bool isPathIdFilled()
     * @method bool isPathIdChanged()
     * @method \int remindActualPathId()
     * @method \int requirePathId()
     * @method \Bitrix\Translate\Index\FileIndex resetPathId()
     * @method \Bitrix\Translate\Index\FileIndex unsetPathId()
     * @method \int fillPathId()
     * @method \string getLangId()
     * @method \Bitrix\Translate\Index\FileIndex setLangId(\string|\Bitrix\Main\DB\SqlExpression $langId)
     * @method bool hasLangId()
     * @method bool isLangIdFilled()
     * @method bool isLangIdChanged()
     * @method \string remindActualLangId()
     * @method \string requireLangId()
     * @method \Bitrix\Translate\Index\FileIndex resetLangId()
     * @method \Bitrix\Translate\Index\FileIndex unsetLangId()
     * @method \string fillLangId()
     * @method \string getFullPath()
     * @method \Bitrix\Translate\Index\FileIndex setFullPath(\string|\Bitrix\Main\DB\SqlExpression $fullPath)
     * @method bool hasFullPath()
     * @method bool isFullPathFilled()
     * @method bool isFullPathChanged()
     * @method \string remindActualFullPath()
     * @method \string requireFullPath()
     * @method \Bitrix\Translate\Index\FileIndex resetFullPath()
     * @method \Bitrix\Translate\Index\FileIndex unsetFullPath()
     * @method \string fillFullPath()
     * @method \int getPhraseCount()
     * @method \Bitrix\Translate\Index\FileIndex setPhraseCount(\int|\Bitrix\Main\DB\SqlExpression $phraseCount)
     * @method bool hasPhraseCount()
     * @method bool isPhraseCountFilled()
     * @method bool isPhraseCountChanged()
     * @method \int remindActualPhraseCount()
     * @method \int requirePhraseCount()
     * @method \Bitrix\Translate\Index\FileIndex resetPhraseCount()
     * @method \Bitrix\Translate\Index\FileIndex unsetPhraseCount()
     * @method \int fillPhraseCount()
     * @method \boolean getIndexed()
     * @method \Bitrix\Translate\Index\FileIndex setIndexed(\boolean|\Bitrix\Main\DB\SqlExpression $indexed)
     * @method bool hasIndexed()
     * @method bool isIndexedFilled()
     * @method bool isIndexedChanged()
     * @method \boolean remindActualIndexed()
     * @method \boolean requireIndexed()
     * @method \Bitrix\Translate\Index\FileIndex resetIndexed()
     * @method \Bitrix\Translate\Index\FileIndex unsetIndexed()
     * @method \boolean fillIndexed()
     * @method \Bitrix\Main\Type\DateTime getIndexedTime()
     * @method \Bitrix\Translate\Index\FileIndex setIndexedTime(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $indexedTime)
     * @method bool hasIndexedTime()
     * @method bool isIndexedTimeFilled()
     * @method bool isIndexedTimeChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualIndexedTime()
     * @method \Bitrix\Main\Type\DateTime requireIndexedTime()
     * @method \Bitrix\Translate\Index\FileIndex resetIndexedTime()
     * @method \Bitrix\Translate\Index\FileIndex unsetIndexedTime()
     * @method \Bitrix\Main\Type\DateTime fillIndexedTime()
     * @method \Bitrix\Translate\Index\PhraseIndex getPhrase()
     * @method \Bitrix\Translate\Index\PhraseIndex remindActualPhrase()
     * @method \Bitrix\Translate\Index\PhraseIndex requirePhrase()
     * @method \Bitrix\Translate\Index\FileIndex setPhrase(\Bitrix\Translate\Index\PhraseIndex $object)
     * @method \Bitrix\Translate\Index\FileIndex resetPhrase()
     * @method \Bitrix\Translate\Index\FileIndex unsetPhrase()
     * @method bool hasPhrase()
     * @method bool isPhraseFilled()
     * @method bool isPhraseChanged()
     * @method \Bitrix\Translate\Index\PhraseIndex fillPhrase()
     * @method \Bitrix\Translate\Index\PathIndex getPath()
     * @method \Bitrix\Translate\Index\PathIndex remindActualPath()
     * @method \Bitrix\Translate\Index\PathIndex requirePath()
     * @method \Bitrix\Translate\Index\FileIndex setPath(\Bitrix\Translate\Index\PathIndex $object)
     * @method \Bitrix\Translate\Index\FileIndex resetPath()
     * @method \Bitrix\Translate\Index\FileIndex unsetPath()
     * @method bool hasPath()
     * @method bool isPathFilled()
     * @method bool isPathChanged()
     * @method \Bitrix\Translate\Index\PathIndex fillPath()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Translate\Index\FileIndex set($fieldName, $value)
     * @method \Bitrix\Translate\Index\FileIndex reset($fieldName)
     * @method \Bitrix\Translate\Index\FileIndex unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Translate\Index\FileIndex wakeUp($data)
     */
    class EO_FileIndex
    {
        /* @var \Bitrix\Translate\Index\Internals\FileIndexTable */
        public static $dataClass = '\\Bitrix\\Translate\\Index\\Internals\\FileIndexTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * FileIndexCollection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getPathIdList()
     * @method \int[] fillPathId()
     * @method \string[] getLangIdList()
     * @method \string[] fillLangId()
     * @method \string[] getFullPathList()
     * @method \string[] fillFullPath()
     * @method \int[] getPhraseCountList()
     * @method \int[] fillPhraseCount()
     * @method \boolean[] getIndexedList()
     * @method \boolean[] fillIndexed()
     * @method \Bitrix\Main\Type\DateTime[] getIndexedTimeList()
     * @method \Bitrix\Main\Type\DateTime[] fillIndexedTime()
     * @method \Bitrix\Translate\Index\PhraseIndex[] getPhraseList()
     * @method \Bitrix\Translate\Index\FileIndexCollection getPhraseCollection()
     * @method \Bitrix\Translate\Index\PhraseIndexCollection fillPhrase()
     * @method \Bitrix\Translate\Index\PathIndex[] getPathList()
     * @method \Bitrix\Translate\Index\FileIndexCollection getPathCollection()
     * @method \Bitrix\Translate\Index\PathIndexCollection fillPath()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Translate\Index\FileIndex $object)
     * @method bool has(\Bitrix\Translate\Index\FileIndex $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Translate\Index\FileIndex getByPrimary($primary)
     * @method \Bitrix\Translate\Index\FileIndex[] getAll()
     * @method bool remove(\Bitrix\Translate\Index\FileIndex $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Translate\Index\FileIndexCollection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Translate\Index\FileIndex current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_FileIndex_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Translate\Index\Internals\FileIndexTable */
        public static $dataClass = '\\Bitrix\\Translate\\Index\\Internals\\FileIndexTable';
    }
    /**
     * @method static EO_FileIndex_Query query()
     * @method static EO_FileIndex_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_FileIndex_Result getById($id)
     * @method static EO_FileIndex_Result getList(array $parameters = array())
     * @method static EO_FileIndex_Entity getEntity()
     * @method static \Bitrix\Translate\Index\FileIndex createObject($setDefaultValues = true)
     * @method static \Bitrix\Translate\Index\FileIndexCollection createCollection()
     * @method static \Bitrix\Translate\Index\FileIndex wakeUpObject($row)
     * @method static \Bitrix\Translate\Index\FileIndexCollection wakeUpCollection($rows)
     */
    class FileIndexTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_FileIndex_Result exec()
     * @method \Bitrix\Translate\Index\FileIndex fetchObject()
     * @method \Bitrix\Translate\Index\FileIndexCollection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_FileIndex_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Translate\Index\FileIndex fetchObject()
     * @method \Bitrix\Translate\Index\FileIndexCollection fetchCollection()
     */
    class EO_FileIndex_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Translate\Index\FileIndex createObject($setDefaultValues = true)
     * @method \Bitrix\Translate\Index\FileIndexCollection createCollection()
     * @method \Bitrix\Translate\Index\FileIndex wakeUpObject($row)
     * @method \Bitrix\Translate\Index\FileIndexCollection wakeUpCollection($rows)
     */
    class EO_FileIndex_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * PathIndex
     * @see \Bitrix\Translate\Index\Internals\PathIndexTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Translate\Index\PathIndex setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getParentId()
     * @method \Bitrix\Translate\Index\PathIndex setParentId(\int|\Bitrix\Main\DB\SqlExpression $parentId)
     * @method bool hasParentId()
     * @method bool isParentIdFilled()
     * @method bool isParentIdChanged()
     * @method \int remindActualParentId()
     * @method \int requireParentId()
     * @method \Bitrix\Translate\Index\PathIndex resetParentId()
     * @method \Bitrix\Translate\Index\PathIndex unsetParentId()
     * @method \int fillParentId()
     * @method \string getPath()
     * @method \Bitrix\Translate\Index\PathIndex setPath(\string|\Bitrix\Main\DB\SqlExpression $path)
     * @method bool hasPath()
     * @method bool isPathFilled()
     * @method bool isPathChanged()
     * @method \string remindActualPath()
     * @method \string requirePath()
     * @method \Bitrix\Translate\Index\PathIndex resetPath()
     * @method \Bitrix\Translate\Index\PathIndex unsetPath()
     * @method \string fillPath()
     * @method \string getName()
     * @method \Bitrix\Translate\Index\PathIndex setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Translate\Index\PathIndex resetName()
     * @method \Bitrix\Translate\Index\PathIndex unsetName()
     * @method \string fillName()
     * @method \string getModuleId()
     * @method \Bitrix\Translate\Index\PathIndex setModuleId(\string|\Bitrix\Main\DB\SqlExpression $moduleId)
     * @method bool hasModuleId()
     * @method bool isModuleIdFilled()
     * @method bool isModuleIdChanged()
     * @method \string remindActualModuleId()
     * @method \string requireModuleId()
     * @method \Bitrix\Translate\Index\PathIndex resetModuleId()
     * @method \Bitrix\Translate\Index\PathIndex unsetModuleId()
     * @method \string fillModuleId()
     * @method \string getAssignment()
     * @method \Bitrix\Translate\Index\PathIndex setAssignment(\string|\Bitrix\Main\DB\SqlExpression $assignment)
     * @method bool hasAssignment()
     * @method bool isAssignmentFilled()
     * @method bool isAssignmentChanged()
     * @method \string remindActualAssignment()
     * @method \string requireAssignment()
     * @method \Bitrix\Translate\Index\PathIndex resetAssignment()
     * @method \Bitrix\Translate\Index\PathIndex unsetAssignment()
     * @method \string fillAssignment()
     * @method \int getDepthLevel()
     * @method \Bitrix\Translate\Index\PathIndex setDepthLevel(\int|\Bitrix\Main\DB\SqlExpression $depthLevel)
     * @method bool hasDepthLevel()
     * @method bool isDepthLevelFilled()
     * @method bool isDepthLevelChanged()
     * @method \int remindActualDepthLevel()
     * @method \int requireDepthLevel()
     * @method \Bitrix\Translate\Index\PathIndex resetDepthLevel()
     * @method \Bitrix\Translate\Index\PathIndex unsetDepthLevel()
     * @method \int fillDepthLevel()
     * @method \int getSort()
     * @method \Bitrix\Translate\Index\PathIndex setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Translate\Index\PathIndex resetSort()
     * @method \Bitrix\Translate\Index\PathIndex unsetSort()
     * @method \int fillSort()
     * @method \boolean getIsLang()
     * @method \Bitrix\Translate\Index\PathIndex setIsLang(\boolean|\Bitrix\Main\DB\SqlExpression $isLang)
     * @method bool hasIsLang()
     * @method bool isIsLangFilled()
     * @method bool isIsLangChanged()
     * @method \boolean remindActualIsLang()
     * @method \boolean requireIsLang()
     * @method \Bitrix\Translate\Index\PathIndex resetIsLang()
     * @method \Bitrix\Translate\Index\PathIndex unsetIsLang()
     * @method \boolean fillIsLang()
     * @method \boolean getIsDir()
     * @method \Bitrix\Translate\Index\PathIndex setIsDir(\boolean|\Bitrix\Main\DB\SqlExpression $isDir)
     * @method bool hasIsDir()
     * @method bool isIsDirFilled()
     * @method bool isIsDirChanged()
     * @method \boolean remindActualIsDir()
     * @method \boolean requireIsDir()
     * @method \Bitrix\Translate\Index\PathIndex resetIsDir()
     * @method \Bitrix\Translate\Index\PathIndex unsetIsDir()
     * @method \boolean fillIsDir()
     * @method \string getObligatoryLangs()
     * @method \Bitrix\Translate\Index\PathIndex setObligatoryLangs(\string|\Bitrix\Main\DB\SqlExpression $obligatoryLangs)
     * @method bool hasObligatoryLangs()
     * @method bool isObligatoryLangsFilled()
     * @method bool isObligatoryLangsChanged()
     * @method \string remindActualObligatoryLangs()
     * @method \string requireObligatoryLangs()
     * @method \Bitrix\Translate\Index\PathIndex resetObligatoryLangs()
     * @method \Bitrix\Translate\Index\PathIndex unsetObligatoryLangs()
     * @method \string fillObligatoryLangs()
     * @method \boolean getIndexed()
     * @method \Bitrix\Translate\Index\PathIndex setIndexed(\boolean|\Bitrix\Main\DB\SqlExpression $indexed)
     * @method bool hasIndexed()
     * @method bool isIndexedFilled()
     * @method bool isIndexedChanged()
     * @method \boolean remindActualIndexed()
     * @method \boolean requireIndexed()
     * @method \Bitrix\Translate\Index\PathIndex resetIndexed()
     * @method \Bitrix\Translate\Index\PathIndex unsetIndexed()
     * @method \boolean fillIndexed()
     * @method \Bitrix\Main\Type\DateTime getIndexedTime()
     * @method \Bitrix\Translate\Index\PathIndex setIndexedTime(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $indexedTime)
     * @method bool hasIndexedTime()
     * @method bool isIndexedTimeFilled()
     * @method bool isIndexedTimeChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualIndexedTime()
     * @method \Bitrix\Main\Type\DateTime requireIndexedTime()
     * @method \Bitrix\Translate\Index\PathIndex resetIndexedTime()
     * @method \Bitrix\Translate\Index\PathIndex unsetIndexedTime()
     * @method \Bitrix\Main\Type\DateTime fillIndexedTime()
     * @method \Bitrix\Translate\Index\FileIndex getFile()
     * @method \Bitrix\Translate\Index\FileIndex remindActualFile()
     * @method \Bitrix\Translate\Index\FileIndex requireFile()
     * @method \Bitrix\Translate\Index\PathIndex setFile(\Bitrix\Translate\Index\FileIndex $object)
     * @method \Bitrix\Translate\Index\PathIndex resetFile()
     * @method \Bitrix\Translate\Index\PathIndex unsetFile()
     * @method bool hasFile()
     * @method bool isFileFilled()
     * @method bool isFileChanged()
     * @method \Bitrix\Translate\Index\FileIndex fillFile()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree getAncestors()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree remindActualAncestors()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree requireAncestors()
     * @method \Bitrix\Translate\Index\PathIndex setAncestors(\Bitrix\Translate\Index\Internals\EO_PathTree $object)
     * @method \Bitrix\Translate\Index\PathIndex resetAncestors()
     * @method \Bitrix\Translate\Index\PathIndex unsetAncestors()
     * @method bool hasAncestors()
     * @method bool isAncestorsFilled()
     * @method bool isAncestorsChanged()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree fillAncestors()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree getDescendants()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree remindActualDescendants()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree requireDescendants()
     * @method \Bitrix\Translate\Index\PathIndex setDescendants(\Bitrix\Translate\Index\Internals\EO_PathTree $object)
     * @method \Bitrix\Translate\Index\PathIndex resetDescendants()
     * @method \Bitrix\Translate\Index\PathIndex unsetDescendants()
     * @method bool hasDescendants()
     * @method bool isDescendantsFilled()
     * @method bool isDescendantsChanged()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree fillDescendants()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Translate\Index\PathIndex set($fieldName, $value)
     * @method \Bitrix\Translate\Index\PathIndex reset($fieldName)
     * @method \Bitrix\Translate\Index\PathIndex unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Translate\Index\PathIndex wakeUp($data)
     */
    class EO_PathIndex
    {
        /* @var \Bitrix\Translate\Index\Internals\PathIndexTable */
        public static $dataClass = '\\Bitrix\\Translate\\Index\\Internals\\PathIndexTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * PathIndexCollection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getParentIdList()
     * @method \int[] fillParentId()
     * @method \string[] getPathList()
     * @method \string[] fillPath()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getModuleIdList()
     * @method \string[] fillModuleId()
     * @method \string[] getAssignmentList()
     * @method \string[] fillAssignment()
     * @method \int[] getDepthLevelList()
     * @method \int[] fillDepthLevel()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \boolean[] getIsLangList()
     * @method \boolean[] fillIsLang()
     * @method \boolean[] getIsDirList()
     * @method \boolean[] fillIsDir()
     * @method \string[] getObligatoryLangsList()
     * @method \string[] fillObligatoryLangs()
     * @method \boolean[] getIndexedList()
     * @method \boolean[] fillIndexed()
     * @method \Bitrix\Main\Type\DateTime[] getIndexedTimeList()
     * @method \Bitrix\Main\Type\DateTime[] fillIndexedTime()
     * @method \Bitrix\Translate\Index\FileIndex[] getFileList()
     * @method \Bitrix\Translate\Index\PathIndexCollection getFileCollection()
     * @method \Bitrix\Translate\Index\FileIndexCollection fillFile()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree[] getAncestorsList()
     * @method \Bitrix\Translate\Index\PathIndexCollection getAncestorsCollection()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree_Collection fillAncestors()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree[] getDescendantsList()
     * @method \Bitrix\Translate\Index\PathIndexCollection getDescendantsCollection()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree_Collection fillDescendants()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Translate\Index\PathIndex $object)
     * @method bool has(\Bitrix\Translate\Index\PathIndex $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Translate\Index\PathIndex getByPrimary($primary)
     * @method \Bitrix\Translate\Index\PathIndex[] getAll()
     * @method bool remove(\Bitrix\Translate\Index\PathIndex $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Translate\Index\PathIndexCollection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Translate\Index\PathIndex current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_PathIndex_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Translate\Index\Internals\PathIndexTable */
        public static $dataClass = '\\Bitrix\\Translate\\Index\\Internals\\PathIndexTable';
    }
    /**
     * @method static EO_PathIndex_Query query()
     * @method static EO_PathIndex_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_PathIndex_Result getById($id)
     * @method static EO_PathIndex_Result getList(array $parameters = array())
     * @method static EO_PathIndex_Entity getEntity()
     * @method static \Bitrix\Translate\Index\PathIndex createObject($setDefaultValues = true)
     * @method static \Bitrix\Translate\Index\PathIndexCollection createCollection()
     * @method static \Bitrix\Translate\Index\PathIndex wakeUpObject($row)
     * @method static \Bitrix\Translate\Index\PathIndexCollection wakeUpCollection($rows)
     */
    class PathIndexTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_PathIndex_Result exec()
     * @method \Bitrix\Translate\Index\PathIndex fetchObject()
     * @method \Bitrix\Translate\Index\PathIndexCollection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_PathIndex_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Translate\Index\PathIndex fetchObject()
     * @method \Bitrix\Translate\Index\PathIndexCollection fetchCollection()
     */
    class EO_PathIndex_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Translate\Index\PathIndex createObject($setDefaultValues = true)
     * @method \Bitrix\Translate\Index\PathIndexCollection createCollection()
     * @method \Bitrix\Translate\Index\PathIndex wakeUpObject($row)
     * @method \Bitrix\Translate\Index\PathIndexCollection wakeUpCollection($rows)
     */
    class EO_PathIndex_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_PathLang
     * @see \Bitrix\Translate\Index\Internals\PathLangTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getPath()
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang setPath(\string|\Bitrix\Main\DB\SqlExpression $path)
     * @method bool hasPath()
     * @method bool isPathFilled()
     * @method bool isPathChanged()
     * @method \string remindActualPath()
     * @method \string requirePath()
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang resetPath()
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang unsetPath()
     * @method \string fillPath()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang set($fieldName, $value)
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang reset($fieldName)
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Translate\Index\Internals\EO_PathLang wakeUp($data)
     */
    class EO_PathLang
    {
        /* @var \Bitrix\Translate\Index\Internals\PathLangTable */
        public static $dataClass = '\\Bitrix\\Translate\\Index\\Internals\\PathLangTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_PathLang_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getPathList()
     * @method \string[] fillPath()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Translate\Index\Internals\EO_PathLang $object)
     * @method bool has(\Bitrix\Translate\Index\Internals\EO_PathLang $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang getByPrimary($primary)
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang[] getAll()
     * @method bool remove(\Bitrix\Translate\Index\Internals\EO_PathLang $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Translate\Index\Internals\EO_PathLang_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_PathLang_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Translate\Index\Internals\PathLangTable */
        public static $dataClass = '\\Bitrix\\Translate\\Index\\Internals\\PathLangTable';
    }
    /**
     * @method static EO_PathLang_Query query()
     * @method static EO_PathLang_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_PathLang_Result getById($id)
     * @method static EO_PathLang_Result getList(array $parameters = array())
     * @method static EO_PathLang_Entity getEntity()
     * @method static \Bitrix\Translate\Index\Internals\EO_PathLang createObject($setDefaultValues = true)
     * @method static \Bitrix\Translate\Index\Internals\EO_PathLang_Collection createCollection()
     * @method static \Bitrix\Translate\Index\Internals\EO_PathLang wakeUpObject($row)
     * @method static \Bitrix\Translate\Index\Internals\EO_PathLang_Collection wakeUpCollection($rows)
     */
    class PathLangTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_PathLang_Result exec()
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang fetchObject()
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_PathLang_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang fetchObject()
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang_Collection fetchCollection()
     */
    class EO_PathLang_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang createObject($setDefaultValues = true)
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang_Collection createCollection()
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang wakeUpObject($row)
     * @method \Bitrix\Translate\Index\Internals\EO_PathLang_Collection wakeUpCollection($rows)
     */
    class EO_PathLang_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_PathTree
     * @see \Bitrix\Translate\Index\Internals\PathTreeTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getParentId()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree setParentId(\int|\Bitrix\Main\DB\SqlExpression $parentId)
     * @method bool hasParentId()
     * @method bool isParentIdFilled()
     * @method bool isParentIdChanged()
     * @method \int remindActualParentId()
     * @method \int requireParentId()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree resetParentId()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree unsetParentId()
     * @method \int fillParentId()
     * @method \int getPathId()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree setPathId(\int|\Bitrix\Main\DB\SqlExpression $pathId)
     * @method bool hasPathId()
     * @method bool isPathIdFilled()
     * @method bool isPathIdChanged()
     * @method \int remindActualPathId()
     * @method \int requirePathId()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree resetPathId()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree unsetPathId()
     * @method \int fillPathId()
     * @method \int getDepthLevel()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree setDepthLevel(\int|\Bitrix\Main\DB\SqlExpression $depthLevel)
     * @method bool hasDepthLevel()
     * @method bool isDepthLevelFilled()
     * @method bool isDepthLevelChanged()
     * @method \int remindActualDepthLevel()
     * @method \int requireDepthLevel()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree resetDepthLevel()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree unsetDepthLevel()
     * @method \int fillDepthLevel()
     * @method \Bitrix\Translate\Index\PathIndex getPath()
     * @method \Bitrix\Translate\Index\PathIndex remindActualPath()
     * @method \Bitrix\Translate\Index\PathIndex requirePath()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree setPath(\Bitrix\Translate\Index\PathIndex $object)
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree resetPath()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree unsetPath()
     * @method bool hasPath()
     * @method bool isPathFilled()
     * @method bool isPathChanged()
     * @method \Bitrix\Translate\Index\PathIndex fillPath()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree set($fieldName, $value)
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree reset($fieldName)
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Translate\Index\Internals\EO_PathTree wakeUp($data)
     */
    class EO_PathTree
    {
        /* @var \Bitrix\Translate\Index\Internals\PathTreeTable */
        public static $dataClass = '\\Bitrix\\Translate\\Index\\Internals\\PathTreeTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_PathTree_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getParentIdList()
     * @method \int[] fillParentId()
     * @method \int[] getPathIdList()
     * @method \int[] fillPathId()
     * @method \int[] getDepthLevelList()
     * @method \int[] fillDepthLevel()
     * @method \Bitrix\Translate\Index\PathIndex[] getPathList()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree_Collection getPathCollection()
     * @method \Bitrix\Translate\Index\PathIndexCollection fillPath()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Translate\Index\Internals\EO_PathTree $object)
     * @method bool has(\Bitrix\Translate\Index\Internals\EO_PathTree $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree getByPrimary($primary)
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree[] getAll()
     * @method bool remove(\Bitrix\Translate\Index\Internals\EO_PathTree $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Translate\Index\Internals\EO_PathTree_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_PathTree_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Translate\Index\Internals\PathTreeTable */
        public static $dataClass = '\\Bitrix\\Translate\\Index\\Internals\\PathTreeTable';
    }
    /**
     * @method static EO_PathTree_Query query()
     * @method static EO_PathTree_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_PathTree_Result getById($id)
     * @method static EO_PathTree_Result getList(array $parameters = array())
     * @method static EO_PathTree_Entity getEntity()
     * @method static \Bitrix\Translate\Index\Internals\EO_PathTree createObject($setDefaultValues = true)
     * @method static \Bitrix\Translate\Index\Internals\EO_PathTree_Collection createCollection()
     * @method static \Bitrix\Translate\Index\Internals\EO_PathTree wakeUpObject($row)
     * @method static \Bitrix\Translate\Index\Internals\EO_PathTree_Collection wakeUpCollection($rows)
     */
    class PathTreeTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_PathTree_Result exec()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree fetchObject()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_PathTree_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree fetchObject()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree_Collection fetchCollection()
     */
    class EO_PathTree_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree createObject($setDefaultValues = true)
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree_Collection createCollection()
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree wakeUpObject($row)
     * @method \Bitrix\Translate\Index\Internals\EO_PathTree_Collection wakeUpCollection($rows)
     */
    class EO_PathTree_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * PhraseIndex
     * @see \Bitrix\Translate\Index\Internals\PhraseIndexTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Translate\Index\PhraseIndex setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getFileId()
     * @method \Bitrix\Translate\Index\PhraseIndex setFileId(\int|\Bitrix\Main\DB\SqlExpression $fileId)
     * @method bool hasFileId()
     * @method bool isFileIdFilled()
     * @method bool isFileIdChanged()
     * @method \int remindActualFileId()
     * @method \int requireFileId()
     * @method \Bitrix\Translate\Index\PhraseIndex resetFileId()
     * @method \Bitrix\Translate\Index\PhraseIndex unsetFileId()
     * @method \int fillFileId()
     * @method \string getPathId()
     * @method \Bitrix\Translate\Index\PhraseIndex setPathId(\string|\Bitrix\Main\DB\SqlExpression $pathId)
     * @method bool hasPathId()
     * @method bool isPathIdFilled()
     * @method bool isPathIdChanged()
     * @method \string remindActualPathId()
     * @method \string requirePathId()
     * @method \Bitrix\Translate\Index\PhraseIndex resetPathId()
     * @method \Bitrix\Translate\Index\PhraseIndex unsetPathId()
     * @method \string fillPathId()
     * @method \string getLangId()
     * @method \Bitrix\Translate\Index\PhraseIndex setLangId(\string|\Bitrix\Main\DB\SqlExpression $langId)
     * @method bool hasLangId()
     * @method bool isLangIdFilled()
     * @method bool isLangIdChanged()
     * @method \string remindActualLangId()
     * @method \string requireLangId()
     * @method \Bitrix\Translate\Index\PhraseIndex resetLangId()
     * @method \Bitrix\Translate\Index\PhraseIndex unsetLangId()
     * @method \string fillLangId()
     * @method \string getCode()
     * @method \Bitrix\Translate\Index\PhraseIndex setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Translate\Index\PhraseIndex resetCode()
     * @method \Bitrix\Translate\Index\PhraseIndex unsetCode()
     * @method \string fillCode()
     * @method \string getPhrase()
     * @method \Bitrix\Translate\Index\PhraseIndex setPhrase(\string|\Bitrix\Main\DB\SqlExpression $phrase)
     * @method bool hasPhrase()
     * @method bool isPhraseFilled()
     * @method bool isPhraseChanged()
     * @method \string remindActualPhrase()
     * @method \string requirePhrase()
     * @method \Bitrix\Translate\Index\PhraseIndex resetPhrase()
     * @method \Bitrix\Translate\Index\PhraseIndex unsetPhrase()
     * @method \string fillPhrase()
     * @method \Bitrix\Translate\Index\FileIndex getFile()
     * @method \Bitrix\Translate\Index\FileIndex remindActualFile()
     * @method \Bitrix\Translate\Index\FileIndex requireFile()
     * @method \Bitrix\Translate\Index\PhraseIndex setFile(\Bitrix\Translate\Index\FileIndex $object)
     * @method \Bitrix\Translate\Index\PhraseIndex resetFile()
     * @method \Bitrix\Translate\Index\PhraseIndex unsetFile()
     * @method bool hasFile()
     * @method bool isFileFilled()
     * @method bool isFileChanged()
     * @method \Bitrix\Translate\Index\FileIndex fillFile()
     * @method \Bitrix\Translate\Index\PathIndex getPath()
     * @method \Bitrix\Translate\Index\PathIndex remindActualPath()
     * @method \Bitrix\Translate\Index\PathIndex requirePath()
     * @method \Bitrix\Translate\Index\PhraseIndex setPath(\Bitrix\Translate\Index\PathIndex $object)
     * @method \Bitrix\Translate\Index\PhraseIndex resetPath()
     * @method \Bitrix\Translate\Index\PhraseIndex unsetPath()
     * @method bool hasPath()
     * @method bool isPathFilled()
     * @method bool isPathChanged()
     * @method \Bitrix\Translate\Index\PathIndex fillPath()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Translate\Index\PhraseIndex set($fieldName, $value)
     * @method \Bitrix\Translate\Index\PhraseIndex reset($fieldName)
     * @method \Bitrix\Translate\Index\PhraseIndex unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Translate\Index\PhraseIndex wakeUp($data)
     */
    class EO_PhraseIndex
    {
        /* @var \Bitrix\Translate\Index\Internals\PhraseIndexTable */
        public static $dataClass = '\\Bitrix\\Translate\\Index\\Internals\\PhraseIndexTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * PhraseIndexCollection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getFileIdList()
     * @method \int[] fillFileId()
     * @method \string[] getPathIdList()
     * @method \string[] fillPathId()
     * @method \string[] getLangIdList()
     * @method \string[] fillLangId()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \string[] getPhraseList()
     * @method \string[] fillPhrase()
     * @method \Bitrix\Translate\Index\FileIndex[] getFileList()
     * @method \Bitrix\Translate\Index\PhraseIndexCollection getFileCollection()
     * @method \Bitrix\Translate\Index\FileIndexCollection fillFile()
     * @method \Bitrix\Translate\Index\PathIndex[] getPathList()
     * @method \Bitrix\Translate\Index\PhraseIndexCollection getPathCollection()
     * @method \Bitrix\Translate\Index\PathIndexCollection fillPath()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Translate\Index\PhraseIndex $object)
     * @method bool has(\Bitrix\Translate\Index\PhraseIndex $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Translate\Index\PhraseIndex getByPrimary($primary)
     * @method \Bitrix\Translate\Index\PhraseIndex[] getAll()
     * @method bool remove(\Bitrix\Translate\Index\PhraseIndex $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Translate\Index\PhraseIndexCollection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Translate\Index\PhraseIndex current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_PhraseIndex_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Translate\Index\Internals\PhraseIndexTable */
        public static $dataClass = '\\Bitrix\\Translate\\Index\\Internals\\PhraseIndexTable';
    }
    /**
     * @method static EO_PhraseIndex_Query query()
     * @method static EO_PhraseIndex_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_PhraseIndex_Result getById($id)
     * @method static EO_PhraseIndex_Result getList(array $parameters = array())
     * @method static EO_PhraseIndex_Entity getEntity()
     * @method static \Bitrix\Translate\Index\PhraseIndex createObject($setDefaultValues = true)
     * @method static \Bitrix\Translate\Index\PhraseIndexCollection createCollection()
     * @method static \Bitrix\Translate\Index\PhraseIndex wakeUpObject($row)
     * @method static \Bitrix\Translate\Index\PhraseIndexCollection wakeUpCollection($rows)
     */
    class PhraseIndexTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_PhraseIndex_Result exec()
     * @method \Bitrix\Translate\Index\PhraseIndex fetchObject()
     * @method \Bitrix\Translate\Index\PhraseIndexCollection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_PhraseIndex_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Translate\Index\PhraseIndex fetchObject()
     * @method \Bitrix\Translate\Index\PhraseIndexCollection fetchCollection()
     */
    class EO_PhraseIndex_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Translate\Index\PhraseIndex createObject($setDefaultValues = true)
     * @method \Bitrix\Translate\Index\PhraseIndexCollection createCollection()
     * @method \Bitrix\Translate\Index\PhraseIndex wakeUpObject($row)
     * @method \Bitrix\Translate\Index\PhraseIndexCollection wakeUpCollection($rows)
     */
    class EO_PhraseIndex_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace {
    /**
     * @deprecated
     */
    class CTranslateEventHandlers
    {
        /**
         * @deprecated
         */
        function TranslatOnPanelCreate()
        {
        }
    }
    /**
     * @deprecated
     */
    class CTranslateUtils
    {
        const LANGUAGES_DEFAULT = 0;
        const LANGUAGES_EXIST = 1;
        const LANGUAGES_ACTIVE = 2;
        const LANGUAGES_CUSTOM = 3;
        protected static $languageList = array("ru", "en", "de", "ua");
        public static function setLanguageList($languages = self::LANGUAGES_DEFAULT, $customList = array())
        {
        }
        public static function CopyMessage($code, $fileFrom, $fileTo, $newCode = '')
        {
        }
        public static function FindAndCopy($sourceDir, $lang, $pattern, $destinationFile)
        {
        }
    }
}
namespace Bitrix\Translate\Ui {
    class Panel
    {
        const DIALOG_ID = 'jsTranslateFilesWindow';
        /**
         * main::OnPanelCreate event handler.
         * @return void
         */
        public static function onPanelCreate()
        {
        }
        /**
         * Shows included lang files.
         * @return void
         */
        public static function showLoadedFiles()
        {
        }
    }
}
namespace Bitrix\Main\IO {
    interface IFileStream
    {
        public function open($mode);
    }
    abstract class FileSystemEntry
    {
        protected $path;
        protected $originalPath;
        protected $pathPhysical;
        protected $siteId;
        public function __construct($path, $siteId = null)
        {
        }
        public function isSystem()
        {
        }
        public function getName()
        {
        }
        public function getDirectoryName()
        {
        }
        public function getPath()
        {
        }
        public function getDirectory()
        {
        }
        public abstract function getCreationTime();
        public abstract function getLastAccessTime();
        public abstract function getModificationTime();
        public abstract function isExists();
        public abstract function isDirectory();
        public abstract function isFile();
        public abstract function isLink();
        public abstract function markWritable();
        public abstract function getPermissions();
        public abstract function delete();
        public function getPhysicalPath()
        {
        }
        public function rename($newPath)
        {
        }
        protected static function getDocumentRoot($siteId)
        {
        }
    }
    abstract class FileEntry extends \Bitrix\Main\IO\FileSystemEntry
    {
        public function __construct($path, $siteId = null)
        {
        }
        public function getExtension()
        {
        }
        public abstract function getContents();
        public abstract function putContents($data);
        public abstract function getSize();
        public abstract function isWritable();
        public abstract function isReadable();
        public abstract function readFile();
        /**
         * @deprecated Use getSize() instead
         * @return mixed
         */
        public function getFileSize()
        {
        }
        public function isDirectory()
        {
        }
        public function isFile()
        {
        }
        public function isLink()
        {
        }
    }
    class File extends \Bitrix\Main\IO\FileEntry implements \Bitrix\Main\IO\IFileStream
    {
        const REWRITE = 0;
        const APPEND = 1;
        /** @var resource */
        protected $filePointer;
        public function __construct($path, $siteId = null)
        {
        }
        /**
         * Opens the file and returns the file pointer.
         *
         * @param string $mode
         * @return resource
         * @throws FileOpenException
         */
        public function open($mode)
        {
        }
        /**
         * Closes the file.
         *
         * @throws FileNotOpenedException
         */
        public function close()
        {
        }
        public function isExists()
        {
        }
        public function getContents()
        {
        }
        public function putContents($data, $flags = self::REWRITE)
        {
        }
        /**
         * Returns the file size.
         *
         * @return float|int
         * @throws FileNotFoundException
         * @throws FileOpenException
         */
        public function getSize()
        {
        }
        /**
         * Seeks on the file pointer from the beginning (SEEK_SET only).
         *
         * @param int|float $position
         * @return int
         * @throws FileNotOpenedException
         */
        public function seek($position)
        {
        }
        public function isWritable()
        {
        }
        public function isReadable()
        {
        }
        public function readFile()
        {
        }
        public function getCreationTime()
        {
        }
        public function getLastAccessTime()
        {
        }
        public function getModificationTime()
        {
        }
        public function markWritable()
        {
        }
        public function getPermissions()
        {
        }
        public function delete()
        {
        }
        public function getContentType()
        {
        }
        public static function isFileExists($path)
        {
        }
        public static function getFileContents($path)
        {
        }
        public static function putFileContents($path, $data, $flags = self::REWRITE)
        {
        }
        public static function deleteFile($path)
        {
        }
    }
}
namespace Bitrix\Translate\IO {
    class File extends \Bitrix\Main\IO\File implements \Bitrix\Translate\IErrorable
    {
        // trait implements interface Translate\IErrorable
        use \Bitrix\Translate\Error;
        /**
         * Creates temporal file.
         *
         * @param string $prefix Name prefix.
         * @param string $suffix Name suffix.
         * @param int $timeToLive Hours to keep files alive.
         *
         * @return static
         */
        public static function generateTemporalFile(string $prefix, string $suffix = '.tmp', int $timeToLive = 3) : self
        {
        }
        /**
         * Opens file for reading.
         *
         * @return bool
         */
        public function openLoad() : bool
        {
        }
        /**
         * Opens file for writing.
         *
         * @return bool
         */
        public function openWrite() : bool
        {
        }
        /**
         * Read file.
         *
         * @param int $length Amount bytes to read.
         *
         * @return string
         */
        public function read(int $length) : string
        {
        }
        /**
         * Write file.
         *
         * @param string $content Data to write.
         *
         * @return int
         * @throws Main\IO\FileNotOpenedException
         * @throws Main\IO\IoException
         */
        public function write(string $content) : int
        {
        }
        /**
         * Closes the file.
         *
         * @return void
         * @throws Main\IO\FileNotOpenedException
         */
        public function close() : void
        {
        }
    }
}
namespace Bitrix\Translate {
    class Settings extends \Bitrix\Translate\IO\File implements \Iterator, \Countable, \ArrayAccess
    {
        const OPTION_FILE_NAME = '.settings.php';
        /** @var string[] */
        protected $options = null;
        /** @var int */
        protected $optionsCount = null;
        /** @var array */
        protected $optionCodes = [];
        /** @var int */
        protected $dataPosition = 0;
        /**
         * Constructs instance by lang path.
         *
         * @param string $fullPath Full path to language file.
         *
         * @return Translate\Settings|null
         * @throws Main\ArgumentException
         */
        public static function instantiateByPath($fullPath)
        {
        }
        //region Load & Save
        /**
         * Returns option for file/folder.
         *
         * @param string $langPath Path to language file.
         *
         * @return array
         */
        public function getOptions($langPath = '')
        {
        }
        //endregion
        //region Load & Save
        /**
         * Loads option file for operate.
         *
         * @return bool
         */
        public function load()
        {
        }
        /**
         * Save changes or create new file.
         *
         * @return boolean
         */
        public function save()
        {
        }
        //region ArrayAccess
        /**
         * Checks existence of the phrase by its code.
         *
         * @param string $code Phrase code.
         *
         * @return boolean
         */
        public function offsetExists($code)
        {
        }
        /**
         * Returns phrase by its code.
         *
         * @param string $code Phrase code.
         *
         * @return string|null
         */
        public function offsetGet($code)
        {
        }
        /**
         * Offset to set
         *
         * @param string $code Phrase code.
         * @param string $phrase Phrase.
         *
         * @return void
         */
        public function offsetSet($code, $phrase)
        {
        }
        /**
         * Unset phrase by code.
         *
         * @param string $code Language code.
         *
         * @return void
         */
        public function offsetUnset($code)
        {
        }
        //endregion
        //region Iterator
        /**
         * Return the current phrase element.
         *
         * @return array|null
         */
        public function current()
        {
        }
        /**
         * Move forward to next phrase element.
         *
         * @return void
         */
        public function next()
        {
        }
        /**
         * Return the key of the current phrase element.
         *
         * @return string|null
         */
        public function key()
        {
        }
        /**
         * Checks if current position is valid.
         *
         * @return boolean
         */
        public function valid()
        {
        }
        /**
         * Rewind the Iterator to the first element.
         *
         * @return void
         */
        public function rewind()
        {
        }
        //endregion
        //region Countable
        /**
         * Returns amount phrases in the language file.
         *
         * @param bool $allowDirectFileAccess Allow include file to count phrases.
         *
         * @return int
         */
        public function count($allowDirectFileAccess = false)
        {
        }
    }
    class File extends \Bitrix\Translate\IO\File implements \Iterator, \Countable, \ArrayAccess
    {
        /** @var string */
        protected $languageId;
        /** @var string */
        protected $sourceEncoding;
        /** @var string */
        protected $operatingEncoding;
        /** @var string[] */
        protected $messages = null;
        /** @var int */
        protected $messagesCount = null;
        /** @var array */
        protected $messageCodes = [];
        /** @var int */
        protected $dataPosition = 0;
        /** @var Index\FileIndex */
        protected $fileIndex;
        //region Fabric
        /**
         * Constructs instance by path.
         *
         * @param string $path Path to language file.
         *
         * @return Translate\File
         * @throws Main\ArgumentException
         */
        public static function instantiateByPath($path)
        {
        }
        /**
         * Constructs instance by file index.
         *
         * @param Index\FileIndex $fileIndex Language file index.
         *
         * @return Translate\File
         * @throws Main\ArgumentException
         */
        public static function instantiateByIndex(\Bitrix\Translate\Index\FileIndex $fileIndex)
        {
        }
        /**
         * Constructs instance by io file.
         *
         * @param Main\IO\File $fileIn Language file.
         *
         * @return Translate\File
         * @throws Main\ArgumentException
         */
        public static function instantiateByIoFile(\Bitrix\Main\IO\File $fileIn)
        {
        }
        //endregion
        //region Language & Encoding
        /**
         * Returns language code of the file. If it is empty tries to detect it.
         * @return string
         */
        public function getLangId()
        {
        }
        /**
         * Sets language code of the file.
         *
         * @param string $languageId Lang code.
         *
         * @return self
         */
        public function setLangId($languageId)
        {
        }
        /**
         * Returns source encoding of the file.
         * @return bool
         */
        public function getSourceEncoding()
        {
        }
        /**
         * Sets source encoding of the file.
         *
         * @param string $encoding Encoding code.
         *
         * @return self
         */
        public function setSourceEncoding($encoding)
        {
        }
        /**
         * Returns operating encoding.
         * @return bool
         */
        public function getOperatingEncoding()
        {
        }
        /**
         * Sets operating encoding.
         *
         * @param string $encoding Encoding code.
         *
         * @return self
         */
        public function setOperatingEncoding($encoding)
        {
        }
        // endregion
        //region Validators
        /**
         * Lints php code.
         *
         * @param string $content Content to validate either content of the current file will be taken.
         * @param int[] $validTokens Allowed php tokens.
         * @param string[] $validChars Allowed statement characters.
         *
         * @return bool
         */
        public function lint($content = '', $validTokens = array(T_OPEN_TAG, T_CLOSE_TAG, T_WHITESPACE, T_CONSTANT_ENCAPSED_STRING, T_VARIABLE, T_COMMENT, T_DOC_COMMENT), $validChars = array('[', ']', ';', '='))
        {
        }
        // endregion
        //region Load & Save
        /**
         * Loads language file for operate.
         *
         * @return bool
         */
        public function load()
        {
        }
        //endregion
        //region Load & Save
        /**
         * Save changes or create new file.
         *
         * @return boolean
         */
        public function save()
        {
        }
        /**
         * Removes empty parent chain up to "lang".
         *
         * @return boolean
         */
        public function removeEmptyParents()
        {
        }
        /**
         * Performs backup action.
         *
         * @return bool
         */
        public function backup()
        {
        }
        //endregion
        //region Index
        /**
         * Returns or creates file index instance.
         *
         * @return Index\FileIndex
         */
        public function getFileIndex()
        {
        }
        /**
         * Updates phrase index.
         *
         * @return Index\FileIndex
         */
        public function updatePhraseIndex()
        {
        }
        /**
         * Drops phrase index.
         *
         * @return bool
         */
        public function deletePhraseIndex()
        {
        }
        /**
         * Returns ORM\Collection object.
         *
         * @return Index\PhraseIndexCollection
         */
        public function getPhraseIndexCollection()
        {
        }
        //endregion
        //region ArrayAccess
        /**
         * Checks existence of the phrase by its code.
         *
         * @param string $code Phrase code.
         *
         * @return boolean
         */
        public function offsetExists($code)
        {
        }
        /**
         * Returns phrase by its code.
         *
         * @param string $code Phrase code.
         *
         * @return string|null
         */
        public function offsetGet($code)
        {
        }
        /**
         * Offset to set
         *
         * @param string $code Phrase code.
         * @param string $phrase Phrase.
         *
         * @return void
         */
        public function offsetSet($code, $phrase)
        {
        }
        /**
         * Unset phrase by code.
         *
         * @param string $code Phrase code.
         *
         * @return void
         */
        public function offsetUnset($code)
        {
        }
        /**
         * Sorts phrases by key, except russian.
         *
         * @return self
         */
        public function sortPhrases()
        {
        }
        /**
         * Returns all phrases from the language file with theirs codes.
         * @return array
         */
        public function getPhrases()
        {
        }
        /**
         * Returns all phrase codes from the language file.
         * @return string[]
         */
        public function getCodes()
        {
        }
        //endregion
        //region Iterator
        /**
         * Return the current phrase element.
         *
         * @return string|null
         */
        public function current()
        {
        }
        /**
         * Move forward to next phrase element.
         *
         * @return void
         */
        public function next()
        {
        }
        /**
         * Return the key of the current phrase element.
         *
         * @return int|null
         */
        public function key()
        {
        }
        /**
         * Checks if current position is valid.
         *
         * @return boolean
         */
        public function valid()
        {
        }
        /**
         * Rewind the Iterator to the first element.
         *
         * @return void
         */
        public function rewind()
        {
        }
        //endregion
        //region Countable
        /**
         * Returns amount phrases in the language file.
         *
         * @param bool $allowDirectFileAccess Allow include file to count phrases.
         *
         * @return int
         */
        public function count($allowDirectFileAccess = false)
        {
        }
        //endregion
        /**
         * Returns string fiile content.
         *
         * @return string|bool
         */
        public function getContents()
        {
        }
        /**
         * Puts data sting into file.
         *
         * @param string $data Data to save.
         * @param int $flags Flag to operate previous content @see Main\IO\File::REWRITE | Main\IO\File::APPEND.
         *
         * @return bool|int
         * @throws Main\IO\FileNotFoundException
         */
        public function putContents($data, $flags = self::REWRITE)
        {
        }
        /**
         * Compares two files and returns excess amount of phrases.
         *
         * @param self $ethalon File to compare.
         *
         * @return bool|int
         */
        public function countExcess(self $ethalon)
        {
        }
        /**
         * Compares two files and returns deficiency amount of phrases.
         *
         * @param self $ethalon File to compare.
         *
         * @return bool|int
         */
        public function countDeficiency(self $ethalon)
        {
        }
    }
}
namespace Bitrix\Translate\IO {
    class Archiver extends \Bitrix\Main\IO\File implements \Bitrix\Translate\IErrorable
    {
        // trait implements interface Translate\IErrorable
        use \Bitrix\Translate\Error;
        /**@var \CArchiver */
        private $archive;
        /** @var bool */
        private $canUseCompression = false;
        /** @var string */
        private $seekPath;
        /** @var int */
        private $processedFileCount = 0;
        /**
         * Archiver constructor.
         *
         * @param string $path End point archive file path.
         * @param string|null $siteId Site id.
         */
        public function __construct($path, $siteId = null)
        {
        }
        /**
         * Checks zlib|gzcompress availability.
         *
         * @return boolean
         */
        public static function libAvailable()
        {
        }
        /**
         * Defines packing/unpacking options.
         *
         * @param array $options An array with the options' names and their values.
         * @see \CArchiver::SetOptions()
         *
         * @return void
         */
        public function setOptions($options)
        {
        }
        /**
         * Sets packing seek position path.
         * @param string $seekPath Seek position.
         * @return void
         */
        public function setSeekPosition($seekPath)
        {
        }
        /**
         * Gets packing seek position path.
         * @return string
         */
        public function getSeekPosition()
        {
        }
        /**
         * Gets processed file count by archive.
         * @return int
         */
        public function getProcessedFileCount()
        {
        }
        /**
         * Pack language folder.
         *
         * @param Translate\IO\Directory $directory Folder to pack into archive.
         * @param string $seekPath Continue process from this path.
         *
         * @return int
         */
        public function pack(\Bitrix\Translate\IO\Directory $directory, $seekPath = '')
        {
        }
        /**
         * Extract language archive into target folder.
         *
         * @param Translate\IO\Directory $target Folder to extract files into it.
         *
         * @return boolean
         */
        public function extract(\Bitrix\Translate\IO\Directory $target)
        {
        }
    }
}
namespace Bitrix\Main\IO {
    /**
     *
     */
    class Path
    {
        const DIRECTORY_SEPARATOR = '/';
        const DIRECTORY_SEPARATOR_ALT = '\\';
        const PATH_SEPARATOR = PATH_SEPARATOR;
        const INVALID_FILENAME_CHARS = "\\/:*?\"'<>|~#&;";
        //the pattern should be quoted, "|" is allowed below as a delimiter
        const INVALID_FILENAME_BYTES = "â€®";
        //Right-to-Left Override Unicode Character
        protected static $physicalEncoding = "";
        protected static $logicalEncoding = "";
        protected static $directoryIndex = null;
        public static function normalize($path)
        {
        }
        public static function getExtension($path)
        {
        }
        public static function getName($path)
        {
        }
        public static function getDirectory($path)
        {
        }
        public static function convertLogicalToPhysical($path)
        {
        }
        public static function convertPhysicalToLogical($path)
        {
        }
        public static function convertLogicalToUri($path)
        {
        }
        public static function convertPhysicalToUri($path)
        {
        }
        public static function convertUriToPhysical($path)
        {
        }
        protected static function getLogicalEncoding()
        {
        }
        protected static function getPhysicalEncoding()
        {
        }
        public static function combine()
        {
        }
        public static function convertRelativeToAbsolute($relativePath)
        {
        }
        public static function convertSiteRelativeToAbsolute($relativePath, $site = null)
        {
        }
        protected static function validateCommon($path)
        {
        }
        public static function validate($path)
        {
        }
        public static function validateFilename($filename)
        {
        }
        /**
         * @param string $filename
         * @param callable $callback
         * @return string
         */
        public static function replaceInvalidFilename($filename, $callback)
        {
        }
        /**
         * @param string $filename
         * @return string
         */
        public static function randomizeInvalidFilename($filename)
        {
        }
        public static function isAbsolute($path)
        {
        }
        protected static function getDirectoryIndexArray()
        {
        }
    }
}
namespace Bitrix\Translate\IO {
    class Path extends \Bitrix\Main\IO\Path
    {
        /**
         * Normalizes path splitter symbols.
         *
         * @param string $path Path to check.
         *
         * @return string
         */
        public static function tidy($path)
        {
        }
        /**
         * Removes unsecured path parts.
         *
         * @param string $path Path to check.
         *
         * @return string
         */
        public static function secure($path)
        {
        }
        /**
         * Checks if it is translation folder.
         *
         * @param string $path Path to check.
         * @param bool $additionalCheck Preforms additional check.
         *
         * @return bool
         */
        public static function isLangDir($path, $additionalCheck = false)
        {
        }
        /**
         * Detects and returns language code from a path.
         *
         * @param string $path Path to check.
         *
         * @return string|null
         */
        public static function extractLangId($path)
        {
        }
        /**
         * Replaces language code in the path.
         *
         * @param string $path Path to check.
         * @param string $langId Language code to add.
         *
         * @return string
         */
        public static function replaceLangId($path, $langId)
        {
        }
        /**
         * Removes language folder and code from path.
         *
         * @param string $path Path to check.
         * @param string[] $langs Languages list.
         *
         * @return string
         */
        public static function removeLangId($path, $langs = null)
        {
        }
        /**
         * Adds language folder and code into path.
         *
         * @param string $path Path to check.
         * @param string $langId Language code to add.
         * @param string[] $langs Languages list.
         *
         * @return string
         */
        public static function addLangId($path, $langId, $langs = null)
        {
        }
        /**
         * Checks existence or creates of the directory path.
         *
         * @param string $path Path to check.
         *
         * @return boolean
         */
        public static function checkCreatePath($path)
        {
        }
    }
    class CsvFile extends \Bitrix\Translate\IO\File
    {
        // fields type with delimiter,
        public const FIELDS_TYPE_FIXED_WIDTH = 'F';
        // fields type fixed width
        public const FIELDS_TYPE_WITH_DELIMITER = 'R';
        public const ERROR_32K_FIELD_LENGTH = '32k_field_length';
        /**
         * fields type
         * @var string
         */
        protected $fieldsType = self::FIELDS_TYPE_WITH_DELIMITER;
        // field delimiter
        public const DELIMITER_TAB = "\t";
        public const DELIMITER_ZPT = ',';
        public const DELIMITER_SPS = ' ';
        public const DELIMITER_TZP = ';';
        /**
         * field delimiter
         * @var string
         */
        protected $fieldDelimiter = self::DELIMITER_TZP;
        // UTF-8 Byte-Order Mark
        public const BOM_TYPE_UTF8 = "ï»¿";
        /**
         * UTF Byte-Order Mark.
         * @var string
         */
        protected $bomMark = self::BOM_TYPE_UTF8;
        /**
         * First bites is file are the Byte-Order Mark.
         * @var bool
         */
        protected $hasBom = false;
        public const LINE_DELIMITER_WIN = "\r\n";
        public const LINE_DELIMITER_UNIX = "\r";
        /**
         * line delimiter
         * @var string
         */
        protected $rowDelimiter = self::LINE_DELIMITER_WIN;
        /**
         * array of delimiters positions in fixed width case
         * @var array
         */
        protected $widthMap = [];
        /**
         * The first row is columns titles.
         * @var bool
         */
        protected $firstHeader = false;
        /**
         * File length.
         * @var string
         */
        private $fileSize;
        /**
         * Current file position for fetch.
         * @var int
         */
        private $currentPosition = 0;
        /** @var string  */
        private $buffer = '';
        /** @var int  */
        private $bufferPosition = 0;
        /** @var int  */
        private $bufferSize = 0;
        /**
         * Opens file for reading.
         *
         * @return bool
         */
        public function openLoad() : bool
        {
        }
        /**
         * Opens file for writing.
         *
         * @param string $mode File writing mode.
         * @see \Bitrix\Main\IO\FileStreamOpenMode
         *
         * @return bool
         */
        public function openWrite(string $mode = \Bitrix\Main\IO\FileStreamOpenMode::WRITE) : bool
        {
        }
        /**
         * Sets UTF Byte-Order Mark.
         *
         * @param string $mark BOM mark.
         * @return self
         */
        public function setUtf8Bom(string $mark = self::BOM_TYPE_UTF8) : self
        {
        }
        /**
         * Tells true if UTF Byte-Order Mark exists in the file.
         *
         * @return bool
         */
        public function hasUtf8Bom() : bool
        {
        }
        /**
         * Sets if UTF-8 Byte-Order Mark exists.
         *
         * @param bool $exists Flag value to setup.
         *
         * @return self
         */
        public function prefaceWithUtf8Bom(bool $exists = true) : self
        {
        }
        /**
         * Measures byte length of the string.
         * @param string $data
         * @return int
         */
        protected function getStringByteLength(string $data) : int
        {
        }
        /**
         * Check UTF-8 Byte-Order Mark
         * @return bool
         */
        public function checkUtf8Bom() : bool
        {
        }
        /**
         * Set fields type.
         *
         * @param string $fieldsType Type.
         * @return self
         */
        public function setFieldsType(string $fieldsType = self::FIELDS_TYPE_WITH_DELIMITER) : self
        {
        }
        /**
         * Sets up delimiter character.
         *
         * @param string $fieldDelimiter Char.
         *
         * @return self
         */
        public function setFieldDelimiter(string $fieldDelimiter = self::DELIMITER_TZP) : self
        {
        }
        /**
         * Sets up row delimiter character.
         *
         * @param string $rowDelimiter Char.
         *
         * @return self
         */
        public function setRowDelimiter(string $rowDelimiter = self::LINE_DELIMITER_WIN) : self
        {
        }
        /**
         * Sets first row as a header.
         *
         * @param bool $firstHeader Flag.
         * @return self
         */
        public function setFirstHeader(bool $firstHeader = false) : self
        {
        }
        /**
         * Tells true if first row is a header.
         *
         * @return bool
         */
        public function getFirstHeader() : bool
        {
        }
        /**
         * Sets up fields widths.
         *
         * @param int[] $mapFields Fields widths.
         * @return self
         */
        public function setWidthMap(array $mapFields) : self
        {
        }
        /**
         * Fetches data row as delimited columns.
         *
         * @return array|null
         */
        protected function fetchDelimiter() : ?array
        {
        }
        /**
         * Fetches data row as fixed width columns.
         *
         * @return array|null
         */
        protected function fetchWidth() : ?array
        {
        }
        /**
         * Fetch data row.
         *
         * @return array|null
         */
        public function fetch() : ?array
        {
        }
        /**
         * Moves reading position and reads file into buffer.
         *
         * @return void
         */
        protected function incrementCurrentPosition() : void
        {
        }
        /**
         * Moves reading position to the first byte.
         *
         * @return void
         */
        public function moveFirst() : void
        {
        }
        /**
         * Returns reading position.
         *
         * @return int
         */
        public function getPos() : int
        {
        }
        /**
         * Sets new reading position.
         *
         * @param int $position Reading position.
         *
         * @return void
         */
        public function setPos(int $position = 0) : void
        {
        }
        /**
         * Writes data fields into file as row.
         *
         * @param array $fields Data field.
         * 
         * @return bool
         */
        public function put(array $fields) : bool
        {
        }
    }
    class FileSystemHelper
    {
        /**
         * Return list full path of folders.
         *
         * @param string $path Path to check.
         * @param string $mask Filter pattern.
         *
         * @return string[]
         */
        public static function getFolderList($path, $mask = '*')
        {
        }
        /**
         * Return list full path of folders.
         *
         * @param string $path Path to check.
         * @param string $mask Filter pattern.
         *
         * @return string[]
         */
        public static function getFileList($path, $mask = '*.php')
        {
        }
    }
}
namespace Bitrix\Main\IO {
    abstract class DirectoryEntry extends \Bitrix\Main\IO\FileSystemEntry
    {
        public function __construct($path, $siteId = null)
        {
        }
        public function create()
        {
        }
        /**
         * @return FileSystemEntry[]
         */
        public abstract function getChildren();
        /**
         * @param string $path
         * @return DirectoryEntry
         */
        public abstract function createSubdirectory($name);
        public function isDirectory()
        {
        }
        public function isFile()
        {
        }
        public function isLink()
        {
        }
    }
    class Directory extends \Bitrix\Main\IO\DirectoryEntry
    {
        public function __construct($path, $siteId = null)
        {
        }
        public function isExists()
        {
        }
        public function delete()
        {
        }
        private static function deleteInternal($path)
        {
        }
        /**
         * @return array|FileSystemEntry[]
         * @throws FileNotFoundException
         */
        public function getChildren()
        {
        }
        /**
         * @param $name
         * @return Directory|DirectoryEntry
         */
        public function createSubdirectory($name)
        {
        }
        public function getCreationTime()
        {
        }
        public function getLastAccessTime()
        {
        }
        public function getModificationTime()
        {
        }
        public function markWritable()
        {
        }
        public function getPermissions()
        {
        }
        /**
         * @param $path
         *
         * @return Directory
         */
        public static function createDirectory($path)
        {
        }
        public static function deleteDirectory($path)
        {
        }
        public static function isDirectoryExists($path)
        {
        }
    }
}
namespace Bitrix\Translate\IO {
    class Directory extends \Bitrix\Main\IO\Directory implements \Bitrix\Translate\IErrorable
    {
        // trait implements interface Translate\IErrorable
        use \Bitrix\Translate\Error;
        /**
         * Constructor.
         * @param string $path Folder path.
         * @param string|null $siteId Site id.
         */
        public function __construct(string $path, ?string $siteId = null)
        {
        }
        /**
         * Creates temporal directory.
         *
         * @param string $prefix Name prefix.
         * @param int $timeToLive Hours to keep files alive.
         *
         * @return self
         */
        public static function generateTemporalDirectory(string $prefix, int $timeToLive = 3) : self
        {
        }
        /**
         * Copy full structure of the folders with its contents.
         *
         * @param Main\IO\Directory $target Destination folder.
         * @param bool $reWrite Rewrire files.
         * @param bool $recursive Recurcivly follow folder structure.
         * @param bool $convertEncoding Allow encoding conver.
         * @param string $sourceEncoding Encoding of source files.
         * @param string $targetEncoding Target encoding.
         *
         * @return boolean
         */
        public function copy(\Bitrix\Main\IO\Directory $target, bool $reWrite = true, bool $recursive = false, bool $convertEncoding = false, string $sourceEncoding = '', string $targetEncoding = '') : bool
        {
        }
        /**
         * Copy only language folders with content.
         *
         * @param Main\IO\Directory $target Destination folder.
         * @param string $languageId Language to filter.
         * @param bool $convertEncoding Allow encoding conver.
         * @param string $sourceEncoding Encoding of source files.
         * @param string $targetEncoding Target encoding.
         *
         * @return boolean
         */
        public function copyLangOnly(\Bitrix\Main\IO\Directory $target, string $languageId, bool $convertEncoding = false, string $sourceEncoding = '', string $targetEncoding = '') : bool
        {
        }
        /**
         * Wipes folder out of children.
         *
         * @param \Closure|null $filter Filter function.
         * @return bool
         */
        public function wipe(?\Closure $filter = null) : bool
        {
        }
    }
}
namespace Bitrix\Translate\Cli {
    class IndexCommand extends \Symfony\Component\Console\Command\Command
    {
        /**
         * Configures the current command.
         * @return void
         */
        protected function configure()
        {
        }
        /**
         * Executes the current command.
         * @param Console\Input\InputInterface $input Console input steam.
         * @param Console\Output\OutputInterface $output Console output steam.
         * @return int|null
         */
        protected function execute(\Symfony\Component\Console\Input\InputInterface $input, \Symfony\Component\Console\Output\OutputInterface $output)
        {
        }
    }
}
namespace Bitrix\Translate {
    final class Config
    {
        public const OPTION_INIT_FOLDERS = 'INIT_FOLDERS';
        public const OPTION_BUTTON_LANG_FILES = 'BUTTON_LANG_FILES';
        public const OPTION_BACKUP_FILES = 'BACKUP_FILES';
        public const OPTION_SORT_PHRASES = 'SORT_PHRASES';
        public const OPTION_DONT_SORT_LANGUAGES = 'DONT_SORT_LANGUAGES';
        public const OPTION_BACKUP_FOLDER = 'BACKUP_FOLDER';
        public const OPTION_EXPORT_CSV_DELIMITER = 'EXPORT_CSV_DELIMITER';
        public const OPTION_EXPORT_FOLDER = 'EXPORT_FOLDER';
        private const CACHE_TTL = 3600;
        /**
         * Returns an module option.
         *
         * @param string $optionName Name of option.
         *
         * @return string|null
         */
        public static function getOption(string $optionName) : ?string
        {
        }
        /**
         * Returns an array with default values of a module options (from a default_option.php file).
         *
         * @param string $optionName Name of option.
         *
         * @return string|null
         */
        public static function getModuleDefault(string $optionName) : ?string
        {
        }
        /**
         * Returns the default translation language list.
         *
         * @return string[]
         */
        public static function getDefaultLanguages() : array
        {
        }
        /**
         * Returns true id server is in utf-8 mode. False - otherwise.
         *
         * @return boolean
         */
        public static function isUtfMode() : bool
        {
        }
        /**
         * Returns list of allowed to operate charset encodings.
         *
         * @return string[]
         */
        public static function getAllowedEncodings() : array
        {
        }
        /**
         * Returns list of allowed to operate charset encodings.
         *
         * @param string $encoding Encoding to check.
         *
         * @return string
         */
        public static function getEncodingName(string $encoding) : string
        {
        }
        /**
         * Returns alias of encoding.
         *
         * @param string $encoding Encoding to check.
         *
         * @return string|null
         */
        public static function getAliasEncoding(string $encoding) : ?string
        {
        }
        /**
         * Returns language encoding from site settings.
         *
         * @param string $languageId Language id to check.
         *
         * @return string|null
         */
        public static function getCultureEncoding(string $languageId) : ?string
        {
        }
        /**
         * Returns list of all languages in the site settings.
         *
         * @return string[]
         */
        public static function getLanguages() : array
        {
        }
        /**
         * Returns list of enabled languages in the site settings.
         *
         * @return string[]
         */
        public static function getEnabledLanguages() : array
        {
        }
        /**
         * Returns list of language names from the site settings.
         *
         * @param string[] $languageIds Languages list to get name.
         *
         * @return array
         */
        public static function getLanguagesTitle($languageIds) : array
        {
        }
        /**
         * Returns list of available in system translation languages.
         *
         * @return string[]
         */
        public static function getAvailableLanguages() : array
        {
        }
        /**
         * Returns list of available default translation languages.
         *
         * @return string[]
         */
        public static function getAvailableDefaultLanguages() : array
        {
        }
        /**
         * Returns list of available in system translation languages.
         *
         * @return string[]
         */
        public static function getTranslationRepositoryLanguages() : array
        {
        }
        /**
         * Folders list allowed to translation edit.
         *
         * @return string[]
         */
        public static function getInitPath() : array
        {
        }
        /**
         * Returns the default translation folder path.
         *
         * @return string
         */
        public static function getDefaultPath() : string
        {
        }
        /**
         * Returns setting of necessity to backup language files.
         *
         * @return bool
         */
        public static function needToBackUpFiles() : bool
        {
        }
        /**
         * Returns disposition of backup folder for backuped language files.
         *
         * @return string
         */
        public static function getBackupFolder() : string
        {
        }
        /**
         * Returns setting of necessity to sort phrases in language files.
         *
         * @return bool
         */
        public static function needToSortPhrases() : bool
        {
        }
        /**
         * Returns list of languages in that is unnecessary to sort phrases.
         *
         * @return string[]
         */
        public static function getNonSortPhraseLanguages() : array
        {
        }
        /**
         * Returns disposition of the asset or export folder.
         *
         * @return string|null
         */
        public static function getExportFolder() : ?string
        {
        }
    }
}
namespace Bitrix\Translate\Controller {
    /**
     * @const SETTING_ID
     */
    abstract class Controller extends \Bitrix\Main\Engine\Controller
    {
        /**
         * Common operations before process action.
         * @param Main\Engine\Action $action Action.
         * @return bool If method will return false, then action will not execute.
         */
        protected function processBeforeAction(\Bitrix\Main\Engine\Action $action)
        {
        }
        /**
         * Checks if error occurred.
         *
         * @return boolean
         */
        public function hasErrors()
        {
        }
    }
    interface ITimeLimit
    {
        /**
         * Start up timer.
         *
         * @return self
         */
        public function startTimer();
        /**
         * Tells true if time limit reached.
         *
         * @return boolean
         */
        public function hasTimeLimitReached();
    }
    /**
     * Manages process session parameters.
     */
    interface IProcessParameters
    {
        /**
         * Returns progress option name.
         *
         * @return string
         */
        public function getProgressParameterOptionName();
        /**
         * Tells if needed to keep field state as progress parameters.
         *
         * @param string|string[] $fieldName Name of instance field to keep in progress parameters.
         *
         * @return self
         */
        public function keepField($fieldName);
        /**
         * Restore progress state of the instance.
         *
         * @return self
         */
        public function restoreProgressParameters();
        /**
         * Save progress parameters.
         *
         * @return self
         */
        public function saveProgressParameters();
        /**
         * Load progress parameters.
         *
         * @return array
         */
        public function getProgressParameters();
        /**
         * Removes progress parameters.
         *
         * @return self
         */
        public function clearProgressParameters();
    }
}
namespace Bitrix\Main\Engine {
    /**
     * Class Action
     * @package Bitrix\Main\Engine
     * @method run
     */
    class Action implements \Bitrix\Main\Errorable
    {
        /** @var AutoWire\Binder */
        protected $binder;
        /** @var  ErrorCollection */
        protected $errorCollection;
        /** @var Controller */
        protected $controller;
        /** @var array */
        protected $config;
        /** @var string */
        protected $name;
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Configures action by additional params.
         * The method will be invoked by controller and $params have to set in 'configureActions'
         * @param $params
         * @return void
         */
        public function configure($params)
        {
        }
        protected function init()
        {
        }
        /**
         * Returns list of action arguments.
         * It is associative array looks like argument name => value.
         * @return array
         * @throws SystemException
         */
        public final function getArguments()
        {
        }
        /**
         * Sets list of action arguments.
         * It is associative array looks like argument name => value.
         * Be aware the method reset old values and set new arguments.
         *
         * @param array $arguments List of action arguments.
         *
         * @return AutoWire\Binder
         * @throws SystemException
         */
        public final function setArguments(array $arguments)
        {
        }
        protected function buildBinder()
        {
        }
        public function runWithSourceParametersList()
        {
        }
        /**
         * @return AutoWire\Binder
         */
        public final function getBinder()
        {
        }
        /**
         * @return Controller
         */
        public final function getController()
        {
        }
        /**
         * @return string
         */
        public final function getName()
        {
        }
        /**
         * @return array
         */
        public final function getConfig()
        {
        }
        protected function onBeforeRun()
        {
        }
        protected function onAfterRun()
        {
        }
        public final function getCurrentUser()
        {
        }
        /**
         * Converts keys of array to camel case notation.
         * @see \Bitrix\Main\Engine\Response\Converter::OUTPUT_JSON_FORMAT
         * @param mixed $data Data.
         *
         * @return array|mixed|string
         */
        public function convertKeysToCamelCase($data)
        {
        }
        /**
         * Returns the fully qualified name of this class.
         * @return string
         */
        public static final function className()
        {
        }
        /**
         * Adds error to error collection.
         * @param Error $error Error.
         *
         * @return $this
         */
        protected function addError(\Bitrix\Main\Error $error)
        {
        }
        /**
         * Adds list of errors to error collection.
         * @param Error[] $errors Errors.
         *
         * @return $this
         */
        protected function addErrors(array $errors)
        {
        }
        /**
         * Getting array of errors.
         * @return Error[]
         */
        public final function getErrors()
        {
        }
        /**
         * Getting once error with the necessary code.
         * @param string $code Code of error.
         * @return Error
         */
        public final function getErrorByCode($code)
        {
        }
    }
}
namespace Bitrix\Translate\Controller {
    /**
     * Extending of the Main\Engine\Action class.
     */
    abstract class Action extends \Bitrix\Main\Engine\Action
    {
        /**
         * Checks if error occurred.
         *
         * @return boolean
         */
        public function hasErrors()
        {
        }
    }
    /**
     * Stepper
     *
     * @implements Translate\Controller\ITimeLimit
     */
    trait Stepper
    {
        /** @var string */
        protected $processToken;
        /** @var boolean */
        protected $isNewProcess = true;
        /** @var boolean */
        protected $isProcessCompleted = false;
        /** @var int */
        protected $processedItems = 0;
        /** @var int */
        protected $totalItems = 0;
        /** @var Translate\Controller\Timer */
        protected $timer;
        /**
         * Initializes controller stepper and checks necessary parameters.
         * @see \Bitrix\Main\Engine\Action::onBeforeRun
         *
         * @return bool
         */
        protected function onBeforeRun()
        {
        }
        /**
         * Performs action.
         *
         * @param \Closure|callable|string $action Action to be executed.
         * @param array $params Parameters.
         *
         * @return array|Main\Engine\Response\AjaxJson
         */
        protected function performStep($action, array $params = array())
        {
        }
        /**
         * Switch accomplishment flag of the process.
         *
         * @param boolean $flag Accomplishment flag value.
         *
         * @return void
         */
        public function declareAccomplishment($flag = true)
        {
        }
        /**
         * Tells true if process has completed.
         *
         * @return boolean
         */
        public function hasProcessCompleted()
        {
        }
        /**
         * Getting array of errors.
         * @return boolean
         */
        public function hasErrors()
        {
        }
        /**
         * Gets timer.
         *
         * @return Translate\Controller\Timer
         */
        public function instanceTimer()
        {
        }
        /**
         * Sets start up time.
         *
         * @see Translate\Controller\ITimeLimit
         *
         * @return void
         */
        public function startTimer()
        {
        }
        /**
         * Tells true if time limit reached.
         *
         * @see Translate\Controller\ITimeLimit
         *
         * @return boolean
         */
        public function hasTimeLimitReached()
        {
        }
    }
    /**
     * Manages process session parameters.
     *
     * @implements Translate\Controller\IProcessParameters
     */
    trait ProcessParams
    {
        /** @var string[] */
        protected $fieldToStoreInProcess = array();
        /**
         * Returns progress option name
         *
         * @return string
         */
        public function getProgressParameterOptionName()
        {
        }
        /**
         * Tells if needed to keep field state as progress parameters.
         *
         * @param string|string[] $fieldName Name of instance field to keep in progress parameters.
         *
         * @return self
         */
        public function keepField($fieldName)
        {
        }
        /**
         * Restore progress state of the instance.
         *
         * @return self
         */
        public function restoreProgressParameters()
        {
        }
        /**
         * Save progress parameters.
         *
         * @return self
         */
        public function saveProgressParameters()
        {
        }
        /**
         * Load progress parameters.
         *
         * @return array
         */
        public function getProgressParameters()
        {
        }
        /**
         * Removes progress parameters.
         *
         * @return self
         */
        public function clearProgressParameters()
        {
        }
    }
}
namespace Bitrix\Translate\Controller\Asset {
    /**
     * Harvester of the lang folder disposition.
     */
    class Collect extends \Bitrix\Translate\Controller\Action implements \Bitrix\Translate\Controller\ITimeLimit, \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\Stepper;
        use \Bitrix\Translate\Controller\ProcessParams;
        /** @var string */
        private $seekPathLangId;
        /** @var string */
        private $languageId;
        /** @var bool */
        private $convertEncoding;
        /** @var string */
        private $encoding;
        /** @var string */
        private $assemblyDate;
        /** @var bool */
        private $packFile;
        /** @var string */
        private $tmpFolderPath;
        /** @var int */
        private $totalFileCount;
        /** @var string */
        public static $documentRoot;
        /** @var boolean */
        public static $useTranslationRepository;
        /** @var string[] */
        public static $enabledLanguages;
        /** @var string[] */
        public static $allowedEncodings;
        /** @var string[] */
        public static $translationRepositoryLanguages;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @param string $path Stating path.
         * @param boolean $runBefore Flag to run onBeforeRun event handler.
         * @return array
         */
        public function run($path = '', $runBefore = false)
        {
        }
        /**
         * Copying lang files.
         *
         * @param array $params Parameters.
         * @return array
         */
        private function runCollecting(array $params = [])
        {
        }
        /**
         * Runs through lang folder and collects full path to lang files.
         *
         * @param string $langFolderRelPath Relative project path of the language folder.
         *
         * @return \Generator|array
         */
        private function lookThroughLangFolder($langFolderRelPath)
        {
        }
        /**
         * Returns progress option name
         *
         * @return string
         */
        public function getProgressParameterOptionName()
        {
        }
    }
    /**
     * Harvester of the lang folder disposition.
     */
    class Extract extends \Bitrix\Translate\Controller\Action implements \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\ProcessParams;
        /** @var string */
        private $archiveFilePath;
        /** @var string */
        private $archiveFileType;
        /** @var Translate\IO\Archiver */
        private $archiveFile;
        /** @var string */
        private $tmpFolderPath;
        /** @var Translate\IO\Directory */
        private $tmpFolder;
        /** @var int */
        private $totalFileCount;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @return array
         */
        public function run()
        {
        }
        /**
         * Returns progress option name
         *
         * @return string
         */
        public function getProgressParameterOptionName()
        {
        }
    }
    /**
     * Harvester of the lang folder disposition.
     */
    class Apply extends \Bitrix\Translate\Controller\Action implements \Bitrix\Translate\Controller\ITimeLimit, \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\Stepper;
        use \Bitrix\Translate\Controller\ProcessParams;
        /** @var string */
        private $languageId;
        /** @var bool */
        private $convertEncoding;
        /** @var string */
        private $encoding;
        /** @var string */
        private $encodingIn;
        /** @var string */
        private $encodingOut;
        /** @var string */
        private $tmpFolderPath;
        /** @var string */
        private $targetFolderPath;
        /** @var string */
        private $sourceFolderPath;
        /** @var int */
        private $totalFileCount;
        /** @var boolean */
        public static $useTranslationRepository;
        /** @var string[] */
        public static $enabledLanguages;
        /** @var string[] */
        public static $allowedEncodings;
        /** @var string */
        public static $translationRepositoryRoot;
        /** @var string */
        private $seekPath;
        /** @var string[] */
        private $seekAncestors;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @return array
         */
        public function run()
        {
        }
        /**
         * Copying lang files.
         *
         * @return array
         */
        private function runApplying()
        {
        }
        /**
         * Runs through tmp folder and copy files into lang folders.
         *
         * @param string $tmpFolderFullPath Full path of the temp folder to look through.
         *
         * @return \Generator|array
         */
        private function lookThroughTmpFolder($tmpFolderFullPath)
        {
        }
        /**
         * Returns progress option name
         *
         * @return string
         */
        public function getProgressParameterOptionName()
        {
        }
    }
    /**
     * Harvester of the lang folder disposition.
     */
    class ApplyPublic extends \Bitrix\Translate\Controller\Action implements \Bitrix\Translate\Controller\ITimeLimit, \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\Stepper;
        use \Bitrix\Translate\Controller\ProcessParams;
        /** @var string */
        private $languageId;
        /** @var string */
        private $tmpFolderPath;
        /** @var string */
        private $sourceFolderPath;
        /** @var int */
        private $totalFileCount;
        /** @var string */
        public static $documentRoot;
        /** @var boolean */
        public static $useTranslationRepository;
        /** @var string[] */
        public static $enabledLanguages;
        /** @var string */
        public static $translationRepositoryRoot;
        /** @var string */
        private $seekPath;
        /** @var string */
        private $seekModule;
        /** @var string */
        private $seekType;
        /** @var string[] */
        private $seekAncestors;
        const TARGET_FOLDERS = array('component' => '#BX_ROOT#/components/bitrix', 'activities' => '#BX_ROOT#/activities/bitrix', 'gadgets' => '#BX_ROOT#/gadgets/bitrix', 'wizards' => '#BX_ROOT#/wizards/bitrix', 'blocks' => '#BX_ROOT#/blocks/bitrix', 'template' => '#BX_ROOT#/templates', 'mobileapp' => '#BX_ROOT#/mobileapp', 'js' => '#BX_ROOT#/js');
        const SOURCE_FOLDERS = array('component' => '/install/components/bitrix', 'activities' => '/install/activities/bitrix', 'gadgets' => '/install/gadgets/bitrix', 'wizards' => '/install/wizards/bitrix', 'blocks' => '/install/blocks/bitrix', 'template' => '/install/templates', 'mobileapp' => '/install/mobileapp', 'js' => '/install/js');
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @return array
         */
        public function run()
        {
        }
        /**
         * Copying lang files.
         *
         * @return array
         */
        private function runApplying()
        {
        }
        /**
         * Runs through tmp folder and copy files into lang folders.
         *
         * @param string $tmpFolderFullPath Full path of the temp folder to look through.
         *
         * @return \Generator|array
         */
        private function lookThroughTmpFolder($tmpFolderFullPath)
        {
        }
        /**
         * Returns progress option name
         *
         * @return string
         */
        public function getProgressParameterOptionName()
        {
        }
    }
    /**
     * Harvester of the lang folder disposition.
     */
    class Pack extends \Bitrix\Translate\Controller\Action implements \Bitrix\Translate\Controller\ITimeLimit, \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\Stepper;
        use \Bitrix\Translate\Controller\ProcessParams;
        /** @var string */
        public static $documentRoot;
        /** @var string */
        private $seekPath;
        /** @var string */
        private $languageId;
        /** @var bool */
        private $packFile;
        /** @var int */
        private $totalFileCount;
        /** @var string */
        private $tmpFolderPath;
        /** @var string */
        private $archiveFilePath;
        /** @var string */
        private $archiveFileName;
        /** @var Translate\IO\Archiver */
        private $archiveFile;
        /** @var array */
        private $downloadParams;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @param boolean $runBefore Flag to run onBeforeRun event handler.
         * @return array
         */
        public function run($runBefore = false)
        {
        }
        /**
         * @return array
         */
        private function runPacking()
        {
        }
        /**
         * Generate link to download local exported temporally file.
         *
         *
         * @return string
         */
        private function generateDownloadLink()
        {
        }
        /**
         * Generate name for exporting file.
         *
         * @return string
         */
        private function generateExportFileName()
        {
        }
        /**
         * Returns exported file properties.
         *
         * @return array
         */
        private function getDownloadingParameters()
        {
        }
        /**
         * Returns progress option name
         *
         * @return string
         */
        public function getProgressParameterOptionName()
        {
        }
    }
    class Grabber extends \Bitrix\Translate\Controller\Controller implements \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\ProcessParams;
        const START_PATH = '/bitrix/modules';
        const SETTING_ID = 'TRANSLATE_LANGPACK';
        const ACTION_COLLECT = 'collect';
        const ACTION_PACK = 'pack';
        const ACTION_DOWNLOAD = 'download';
        const ACTION_UPLOAD = 'upload';
        const ACTION_EXTRACT = 'extract';
        const ACTION_APPLY = 'apply';
        const ACTION_APPLY_PUBLIC = 'apply_public';
        const ACTION_FINALIZE = 'finalize';
        const ACTION_PURGE = 'purge';
        const ACTION_CANCEL = 'cancel';
        /** @var string */
        private $archiveFilePath;
        /** @var string */
        private $archiveFileType;
        /**
         * Configures actions.
         *
         * @return array
         */
        public function configureActions()
        {
        }
        /**
         * Initializes controller.
         *
         * @return void
         */
        protected function init()
        {
        }
        /**
         * Handles uploaded file.
         *
         * @return array
         */
        public function uploadAction()
        {
        }
        /**
         * Moves uploaded csv file into bxtmp folder.
         *
         * @param array $postedFile Uploaded file data from $_FILES.
         * @param string $suffix Append file name with suffix.
         * @param int $timeToLive Time to live in hours.
         *
         * @return boolean
         */
        private function moveUploadedFile($postedFile, $suffix = '.tar', $timeToLive = 3)
        {
        }
        /**
         * Deletes temporal folder and files.
         *
         * @return array
         */
        public function finalizeAction()
        {
        }
        /**
         * Deletes generated file.
         *
         * @return array
         */
        public function purgeAction()
        {
        }
        /**
         * Deletes generated file.
         *
         * @return array
         */
        public function cancelAction()
        {
        }
        /**
         * Starts downloading genereted file.
         *
         * @return \Bitrix\Main\HttpResponse|void
         */
        public function downloadAction()
        {
        }
        /**
         * Returns progress option name
         *
         * @return string
         */
        public function getProgressParameterOptionName()
        {
        }
        /**
         * Gets actual maximum upload size.
         *
         * @return int
         */
        public static function getMaxUploadSize()
        {
        }
    }
}
namespace Bitrix\Translate\Controller {
    /**
     * Timer class.
     */
    class Timer implements \Bitrix\Translate\Controller\ITimeLimit
    {
        /** @var int seconds */
        private $timeLimit = 15;
        /** @var float seconds */
        private $startTime = -1;
        /**
         * @param int $timeLimit Timeout in seconds.
         */
        public function __construct($timeLimit = -1)
        {
        }
        /**
         * Start up timer.
         *
         * @param int $startingTime Starting time.
         *
         * @return self
         */
        public function startTimer($startingTime = null)
        {
        }
        /**
         * Tells true if time limit reached.
         *
         * @return boolean
         */
        public function hasTimeLimitReached()
        {
        }
        /**
         * Gets limitation time in seconds.
         * @return int
         */
        public function getTimeLimit()
        {
        }
        /**
         * Sets limitation time in seconds.
         *
         * @param int $timeLimit Timeout in seconds.
         *
         * @return self
         */
        public function setTimeLimit($timeLimit)
        {
        }
    }
}
namespace Bitrix\Translate\Controller\Index {
    /**
     * Harvester of the lang folder disposition.
     */
    class CollectLangPath extends \Bitrix\Translate\Controller\Action implements \Bitrix\Translate\Controller\ITimeLimit, \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\Stepper;
        use \Bitrix\Translate\Controller\ProcessParams;
        /** @var string */
        private $seekPath;
        /** @var int */
        private $seekOffset;
        /** @var string[] */
        private $pathList;
        /** @var string[] */
        private $languages;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @param string $path Path to indexing.
         * @param boolean $runBefore Flag to run onBeforeRun event handler.
         * @return array
         */
        public function run($path = '', $runBefore = false)
        {
        }
        /**
         * Collects lang folder paths.
         *
         * @return array
         */
        private function runIndexing()
        {
        }
    }
    /**
     * Harvester of the lang files disposition.
     */
    class CollectPathIndex extends \Bitrix\Translate\Controller\Action implements \Bitrix\Translate\Controller\ITimeLimit, \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\Stepper;
        use \Bitrix\Translate\Controller\ProcessParams;
        /** @var int */
        private $seekPathLangId;
        /** @var string[] */
        private $languages;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @param string $path Path to indexing.
         * @return array
         */
        public function run($path = '')
        {
        }
        /**
         * Collects lang files paths.
         *
         * @param array $params Path to indexing.
         *
         * @return array
         */
        private function runIndexing(array $params)
        {
        }
    }
    /**
     * The lang files index harvester.
     */
    class CollectFileIndex extends \Bitrix\Translate\Controller\Action implements \Bitrix\Translate\Controller\ITimeLimit, \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\Stepper;
        use \Bitrix\Translate\Controller\ProcessParams;
        /** @var string */
        private $seekPathId;
        /** @var string[] */
        private $languages;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @param string $path Lang folder path to index.
         *
         * @return array
         */
        public function run($path = '')
        {
        }
        /**
         * Collects lang files.
         *
         * @param array $params Path to indexing.
         *
         * @return array
         */
        private function runIndexing(array $params)
        {
        }
    }
    class Collector extends \Bitrix\Translate\Controller\Controller
    {
        const SETTING_ID = 'TRANSLATE_INDEX';
        const ACTION_COLLECT_LANG_PATH = 'collectLangPath';
        const ACTION_COLLECT_PATH = 'collectPath';
        const ACTION_COLLECT_FILE = 'collectFile';
        const ACTION_COLLECT_PHRASE = 'collectPhrase';
        const ACTION_PURGE = 'purge';
        const ACTION_CANCEL = 'cancel';
        /**
         * Configures actions.
         *
         * @return array
         */
        public function configureActions()
        {
        }
        /**
         * @return array
         */
        public function cancelAction()
        {
        }
    }
    /**
     * The phrases index harvester.
     */
    class CollectPhraseIndex extends \Bitrix\Translate\Controller\Action implements \Bitrix\Translate\Controller\ITimeLimit, \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\Stepper;
        use \Bitrix\Translate\Controller\ProcessParams;
        /** @var string */
        private $seekPathId;
        /** @var string[] */
        private $languages;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @param string $path Lang folder path to index.
         *
         * @return array
         */
        public function run($path = '')
        {
        }
        /**
         * Collects phrases.
         *
         * @param array $params Path to indexing.
         *
         * @return array
         */
        private function runIndexing(array $params)
        {
        }
    }
    /**
     * Action purges the indexed data.
     */
    class Purge extends \Bitrix\Translate\Controller\Action
    {
        /**
         * Executes controller action.
         *
         * @param string $path Path to purge.
         *
         * @return array
         */
        public final function run($path = '')
        {
        }
    }
}
namespace Bitrix\Translate\Controller\Export {
    /**
     * Harvester of the lang files disposition.
     *
     * @method array run(string $path, bool $runBefore)
     *
     */
    abstract class ExportAction extends \Bitrix\Translate\Controller\Action
    {
        /** @var string */
        protected static $documentRoot;
        /** @var bool */
        protected static $useTranslationRepository;
        /** @var string[] */
        protected static $translationRepositoryLanguages;
        /** @var int */
        protected $tabId;
        /** @var string */
        protected $exportFilePath;
        /** @var string */
        protected $exportFileName;
        /** @var string */
        protected $exportFileType = 'application/csv';
        /** @var int */
        protected $exportFileSize = 0;
        /** @var bool */
        protected $convertEncoding;
        /** @var string */
        protected $encodingOut;
        /** @var bool */
        protected $collectUntranslated;
        /** @var string[] */
        protected $languages;
        /** @var int */
        protected $exportedPhraseCount = 0;
        /** @var Translate\Filter */
        protected $filter;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Creates temporary file for writing data.
         *
         * @param string $exportFileName
         * @return Translate\IO\CsvFile
         */
        protected function createExportTempFile(string $exportFileName)
        {
        }
        /**
         * Apply module configuration to exporting csv file.
         *
         * @param Translate\IO\CsvFile $csvFile Object to configure.
         *
         * @return void
         */
        protected function configureExportCsvFile(\Bitrix\Translate\IO\CsvFile $csvFile)
        {
        }
        /**
         * Generate name for exporting file.
         *
         * @param string $path Exporting path.
         * @param string[] $languages List of exporting languages.
         *
         * @return string
         */
        protected function generateExportFileName($path, $languages)
        {
        }
        /**
         * Returns exported file properties.
         *
         * @return array
         */
        public function getDownloadingParameters()
        {
        }
        /**
         * Merges all language files into one array.
         *
         * @param string $langFilePath Relative project path of the language file.
         * @param string[] $fullLangFilePaths Array of full paths to lang files.
         * @param bool $collectUntranslated Collect only untranslated phrases.
         * @param string[] $filterByCodeList Array of prase codes to filter.
         *
         * @return array
         */
        protected function mergeLangFiles($langFilePath, $fullLangFilePaths, $collectUntranslated = false, $filterByCodeList = [])
        {
        }
        /**
         * Runs through lang folder and collects full path to lang files.
         *
         * @param string $langPath Relative project path of the language folder.
         *
         * @return \Generator|array
         */
        protected function lookThroughLangFolder($langPath)
        {
        }
    }
    /**
     * Harvester of phrases using search result with index.
     */
    class ExportPhraseSearch extends \Bitrix\Translate\Controller\Export\ExportAction implements \Bitrix\Translate\Controller\ITimeLimit, \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\Stepper;
        use \Bitrix\Translate\Controller\ProcessParams;
        /** @var string */
        private $pathList;
        /** @var int */
        private $seekPathId;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @param string $path Path to export.
         * @param boolean $runBefore Flag to run onBeforeRun event handler.
         *
         * @return array
         */
        public function run($path = '', $runBefore = false)
        {
        }
        /**
         * Collects lang files paths.
         *
         * @param array $params Path to indexing.
         *
         * @return array
         */
        private function runExporting(array $params)
        {
        }
        /**
         * Process incoming filter from client.
         *
         * @param string $path Path to export.
         *
         * @return array
         */
        private function processFilter($path)
        {
        }
    }
    /**
     * Harvester of phrases the single file.
     */
    class ExportFile extends \Bitrix\Translate\Controller\Export\ExportAction
    {
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @param string $path Path to export.
         * @param boolean $runBefore Flag to run onBeforeRun event handler.
         *
         * @return array
         */
        public function run($path = '', $runBefore = false)
        {
        }
    }
    /**
     * Harvester of phrases using search result with index.
     */
    class ExportFileSearch extends \Bitrix\Translate\Controller\Export\ExportAction implements \Bitrix\Translate\Controller\ITimeLimit, \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\Stepper;
        use \Bitrix\Translate\Controller\ProcessParams;
        /** @var int */
        private $seekPathId;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @param string $path Path to export.
         * @param boolean $runBefore Flag to run onBeforeRun event handler.
         *
         * @return array
         */
        public function run($path = '', $runBefore = false)
        {
        }
        /**
         * Collects lang files paths.
         *
         * @param array $params Path to indexing.
         *
         * @return array
         */
        private function runExporting(array $params)
        {
        }
        /**
         * Process incoming filter from client.
         *
         * @param string $path Path to export.
         *
         * @return array
         */
        private function processFilter($path)
        {
        }
    }
    /**
     * Harvester of phrases the list of files and folders.
     */
    class ExportPath extends \Bitrix\Translate\Controller\Export\ExportAction implements \Bitrix\Translate\Controller\ITimeLimit, \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\Stepper;
        use \Bitrix\Translate\Controller\ProcessParams;
        /** @var string[] */
        private $pathList;
        /** @var string[] */
        private $codeList;
        /** @var int */
        private $seekOffset;
        /** @var int */
        private $seekPathLangId;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @param string $path Path to export.
         * @param boolean $runBefore Flag to run onBeforeRun event handler.
         *
         * @return array
         */
        public function run($path = '', $runBefore = false)
        {
        }
        /**
         * Collects lang files paths.
         *
         * @return array
         */
        private function runExporting()
        {
        }
    }
    class Csv extends \Bitrix\Translate\Controller\Controller implements \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\ProcessParams;
        const SETTING_ID = 'TRANSLATE_EXPORT';
        const ACTION_EXPORT = 'export';
        const ACTION_EXPORT_PATH = 'exportPath';
        const ACTION_EXPORT_FILE = 'exportFile';
        const ACTION_EXPORT_FILE_LIST = 'exportFileList';
        const ACTION_EXPORT_FILE_SEARCH = 'exportFileSearch';
        const ACTION_EXPORT_PHRASE_SEARCH = 'exportPhraseSearch';
        const ACTION_PURGE = 'purge';
        const ACTION_CANCEL = 'cancel';
        const ACTION_DOWNLOAD = 'download';
        /** @var int Session tab counter. */
        private $tabId = 0;
        /** @var Translate\Filter */
        private $filter;
        /** @var bool */
        private $convertEncoding;
        /** @var string */
        private $encodingOut;
        /** @var bool */
        private $collectUntranslated;
        /** @var string[] */
        private $languages;
        /** @var array */
        private $downloadParams;
        /**
         * Configures actions.
         *
         * @return array
         */
        public function configureActions()
        {
        }
        /**
         * Initializes controller.
         *
         * @return void
         */
        protected function init()
        {
        }
        /**
         * Runs controller action.
         *
         * @param int $tabId Id of session storage.
         * @param string $path Path to indexing.
         *
         * @return array
         */
        public function exportAction($tabId, $path = '')
        {
        }
        /**
         * Resolves action type.
         *
         * @param string $path Path to indexing.
         *
         * @return Translate\Controller\Export\ExportAction
         */
        private function detectAction($path)
        {
        }
        /**
         * Deletes generated file.
         *
         * @param int $tabId Id of session storage.
         *
         * @return array
         */
        public function purgeAction($tabId)
        {
        }
        /**
         * Deletes generated file.
         *
         * @param int $tabId Id of session storage.
         *
         * @return array
         */
        public function cancelAction($tabId)
        {
        }
        /**
         * Generate link to download local exported temporally file.
         *
         * @param array $params Parameters for download link.
         *
         * @return string
         */
        private function generateDownloadLink($params)
        {
        }
        /**
         * Starts downloading genereted file.
         *
         * @param int $tabId Id of session storage.
         *
         * @return \Bitrix\Main\HttpResponse|void
         */
        public function downloadAction($tabId)
        {
        }
    }
    /**
     * Harvester of phrases without using index.
     */
    class ExportFileList extends \Bitrix\Translate\Controller\Export\ExportAction implements \Bitrix\Translate\Controller\ITimeLimit, \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\Stepper;
        use \Bitrix\Translate\Controller\ProcessParams;
        /** @var int */
        private $seekPathLangId;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @param string $path Path to export.
         * @param boolean $runBefore Flag to run onBeforeRun event handler.
         *
         * @return array
         */
        public function run($path = '', $runBefore = false)
        {
        }
        /**
         * Collects lang files paths.
         *
         * @param array $params Path to export.
         *
         * @return array
         */
        private function runExporting(array $params)
        {
        }
    }
}
namespace Bitrix\Translate\Controller\Import {
    /**
     * Harvester of the lang folder disposition.
     */
    class ImportCsv extends \Bitrix\Translate\Controller\Action implements \Bitrix\Translate\Controller\ITimeLimit, \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\Stepper;
        use \Bitrix\Translate\Controller\ProcessParams;
        /** @var int */
        private $seekLine;
        /** @var string */
        protected static $documentRoot;
        /** @var string[] */
        protected static $enabledLanguages;
        /** @var string[] */
        protected static $sourceEncoding;
        /** @var boolean */
        protected static $isUtfMode;
        /** @var int Session tab counter. */
        private $tabId = 0;
        /** @var string */
        private $encodingIn;
        /** @var string */
        private $updateMethod;
        /** @var string */
        private $csvFilePath;
        /** @var Translate\IO\CsvFile */
        private $csvFile;
        /** @var string[] */
        private $languageList;
        /** @var string[] */
        private $columnList;
        /** @var int */
        private $importedPhraseCount = 0;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @param boolean $runBefore Flag to run onBeforeRun event handler.
         *
         * @return array
         */
        public function run($runBefore = false)
        {
        }
        /**
         * Imports data from csv file.
         *
         * @return array
         */
        private function runImporting()
        {
        }
        /**
         * Validates uploaded csv file.
         *
         * @return boolean
         */
        private function verifyCsvFile()
        {
        }
    }
    class Csv extends \Bitrix\Translate\Controller\Controller implements \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\ProcessParams;
        const SETTING_ID = 'TRANSLATE_IMPORT';
        const ACTION_IMPORT = 'import';
        const ACTION_PURGE = 'purge';
        const ACTION_CANCEL = 'cancel';
        const ACTION_UPLOAD = 'upload';
        const ACTION_INDEX = 'index';
        const ACTION_FINALIZE = 'finalize';
        const METHOD_ADD_UPDATE = 'ADD_UPDATE';
        const METHOD_UPDATE_ONLY = 'UPDATE_ONLY';
        const METHOD_ADD_ONLY = 'ADD_ONLY';
        /** @var int Session tab counter. */
        private $tabId = 0;
        /** @var string */
        private $encodingIn;
        /** @var string */
        private $updateMethod;
        /** @var string[] */
        private $languages;
        /** @var string */
        private $csvFilePath;
        /** @var boolean */
        private $reindex;
        /**
         * Configures actions.
         *
         * @return array
         */
        public function configureActions()
        {
        }
        /**
         * Initializes controller.
         *
         * @return void
         */
        protected function init()
        {
        }
        /**
         * Runs controller import action.
         *
         * @return array
         */
        public function importAction()
        {
        }
        /**
         * Runs controller index action.
         *
         * @return array
         */
        public function indexAction()
        {
        }
        /**
         * Handles uploaded file.
         *
         * @return array
         */
        public function uploadAction()
        {
        }
        /**
         * Moves uploaded csv file into bxtmp folder.
         *
         * @param array $postedFile Uploaded file data from $_FILES.
         * @param string $suffix Append file name with suffix.
         * @param int $timeToLive Time to live in hours.
         *
         * @return boolean
         */
        private function moveUploadedFile($postedFile, $suffix = '.csv', $timeToLive = 3)
        {
        }
        /**
         * Deletes genereted file.
         *
         * @param int $tabId Id of session storage.
         *
         * @return array
         */
        public function cancelAction($tabId)
        {
        }
        /**
         * Deletes genereted file.
         *
         * @param int $tabId Id of session storage.
         *
         * @return array
         */
        public function purgeAction($tabId)
        {
        }
        /**
         * Deletes genereted file.
         *
         * @return array
         */
        public function finalizeAction()
        {
        }
    }
    /**
     * Index paths from csv file.
     */
    class IndexCsv extends \Bitrix\Translate\Controller\Action implements \Bitrix\Translate\Controller\ITimeLimit, \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\Stepper;
        use \Bitrix\Translate\Controller\ProcessParams;
        /** @var int */
        private $seekLine;
        /** @var string */
        private $seekPath;
        /** @var string */
        protected static $documentRoot;
        /** @var string[] */
        protected static $enabledLanguages;
        /** @var int Session tab counter. */
        private $tabId = 0;
        /** @var string */
        private $csvFilePath;
        /** @var Translate\IO\CsvFile */
        private $csvFile;
        /** @var string[] */
        private $languageList;
        /** @var string[] */
        private $columnList;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @param boolean $runBefore Flag to run onBeforeRun event handler.
         *
         * @return array
         */
        public function run($runBefore = false)
        {
        }
        /**
         * Imports data from csv file.
         *
         * @return array
         */
        private function runIndexing()
        {
        }
        /**
         * Validates uploaded csv file.
         *
         * @return boolean
         */
        private function verifyCsvFile()
        {
        }
    }
}
namespace Bitrix\Translate\Controller\Editor {
    class File extends \Bitrix\Translate\Controller\Controller
    {
        const ACTION_SAVE = 'save';
        const ACTION_SAVE_SOURCE = 'saveSource';
        const ACTION_CLEAN_ETHALON = 'cleanEthalon';
        const ACTION_CANCEL = 'cancel';
        const ACTION_WIPE_EMPTY = 'wipeEmpty';
        /**
         * Configures actions.
         *
         * @return array
         */
        public function configureActions()
        {
        }
        /**
         * @return array
         */
        public function cancelAction()
        {
        }
    }
    /**
     * Common operation with language file.
     */
    class Operation extends \Bitrix\Translate\Controller\Action
    {
        /** @var string[] */
        static $enabledLanguagesList;
        /** @var string */
        static $documentRoot;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Saves changed lang file.
         *
         * @param Translate\File $langFile File to update.
         *
         * @return bool
         */
        protected function updateLangFile(\Bitrix\Translate\File $langFile)
        {
        }
        /**
         * Delete lang file.
         *
         * @param Translate\File $langFile File to update.
         *
         * @return bool
         */
        protected function deleteLangFile(\Bitrix\Translate\File $langFile)
        {
        }
        /**
         * Updates phrase index.
         *
         * @param Translate\File $langFile File to update index of.
         *
         * @return bool
         */
        protected function updatePhraseIndex(\Bitrix\Translate\File $langFile)
        {
        }
        /**
         * Drops phrase index.
         *
         * @param Translate\File $langFile File to update index of.
         *
         * @return bool
         */
        protected function deletePhraseIndex(\Bitrix\Translate\File $langFile)
        {
        }
        /**
         * Runs through lang folder and collects full path to lang files.
         *
         * @param string $langPath Relative project path of the language folder.
         *
         * @return \Generator|array
         */
        protected function lookThroughLangFolder($langPath)
        {
        }
    }
    /**
     * Wipe empty parent folders.
     */
    class WipeEmpty extends \Bitrix\Translate\Controller\Editor\Operation implements \Bitrix\Translate\Controller\ITimeLimit, \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\Stepper;
        use \Bitrix\Translate\Controller\ProcessParams;
        const SETTING_ID = 'WIPE_EMPTY';
        /** @var string[] */
        private $pathList;
        /** @var int */
        private $seekOffset;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @param string[] $pathList Path list to update.
         *
         * @return array
         */
        public function run($pathList)
        {
        }
        /**
         * Collects lang folder paths.
         *
         * @return array
         */
        private function runWiping()
        {
        }
        /**
         * Performs wiping empty lang folders.
         *
         * @param string $langFullPath Full path to lang file.
         *
         * @return bool
         */
        private function removeEmptyParents($langFullPath)
        {
        }
        /**
         * Returns progress option name
         *
         * @return string
         */
        public function getProgressParameterOptionName()
        {
        }
    }
    /**
     * Update/create language file.
     */
    class SaveFile extends \Bitrix\Translate\Controller\Editor\Operation
    {
        /**
         * Runs controller action.
         *
         * @param string $file Path to update.
         *
         * @return array
         */
        public function run($file = '')
        {
        }
        /**
         * Generates name for form field.
         *
         * @param string $phraseId Phrase code.
         * @param string $suffix Append name with.
         * @param string $prefix Start name with.
         *
         * @return string
         */
        private function generateFieldName($phraseId, $suffix = '', $prefix = '')
        {
        }
    }
    /**
     * Update/create language file by php source.
     */
    class SaveSource extends \Bitrix\Translate\Controller\Editor\Operation
    {
        /**
         * Runs controller action.
         *
         * @param string $file Path to update.
         *
         * @return array
         */
        public function run($file = '')
        {
        }
    }
    /**
     * Remove phrases by the ethalon language file.
     */
    class CleanEthalon extends \Bitrix\Translate\Controller\Editor\Operation implements \Bitrix\Translate\Controller\ITimeLimit, \Bitrix\Translate\Controller\IProcessParameters
    {
        use \Bitrix\Translate\Controller\Stepper;
        use \Bitrix\Translate\Controller\ProcessParams;
        const SETTING_ID = 'TRANSLATE_CLEAN';
        /** @var string[] */
        private $pathList;
        /** @var int */
        private $seekOffset;
        /** @var string */
        private $seekLangPath;
        /**
         * \Bitrix\Main\Engine\Action constructor.
         *
         * @param string $name Action name.
         * @param Main\Engine\Controller $controller Parent controller object.
         * @param array $config Additional configuration.
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        /**
         * Runs controller action.
         *
         * @param string[] $pathList Path list to update.
         *
         * @return array
         */
        public function run($pathList)
        {
        }
        /**
         * Collects lang folder paths.
         *
         * @return array
         */
        private function runClearing()
        {
        }
        /**
         * Performs changed lang file.
         *
         * @param string $relLangPath Relative path to lang file.
         *
         * @return void
         */
        private function cleanLangFile($relLangPath)
        {
        }
        /**
         * Returns progress option name
         *
         * @return string
         */
        public function getProgressParameterOptionName()
        {
        }
    }
}
namespace Bitrix\Main\Engine\ActionFilter {
    abstract class Base implements \Bitrix\Main\Errorable
    {
        /** @var  ErrorCollection */
        protected $errorCollection;
        /** @var Action */
        protected $action;
        /**
         * Returns the fully qualified name of this class.
         * @return string
         */
        public static final function className()
        {
        }
        /**
         * Constructor Controller.
         */
        public function __construct()
        {
        }
        public final function bindAction(\Bitrix\Main\Engine\Action $action)
        {
        }
        /**
         * @return Action
         */
        public final function getAction()
        {
        }
        /**
         * List allowed values of scopes where the filter should work.
         * @return array
         */
        public function listAllowedScopes()
        {
        }
        public function onBeforeAction(\Bitrix\Main\Event $event)
        {
        }
        public function onAfterAction(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Adds error to error collection.
         * @param Error $error Error.
         *
         * @return $this
         */
        protected function addError(\Bitrix\Main\Error $error)
        {
        }
        /**
         * Getting array of errors.
         * @return Error[]
         */
        public final function getErrors()
        {
        }
        /**
         * Getting once error with the necessary code.
         * @param string $code Code of error.
         * @return Error
         */
        public final function getErrorByCode($code)
        {
        }
    }
}
namespace Bitrix\Translate\Controller {
    class CheckPermission extends \Bitrix\Main\Engine\ActionFilter\Base
    {
        const ERROR_ACCESS_DENIED = 'access_denied';
        /**
         * @var string
         */
        private $checkLevel;
        /**
         * Permission constructor.
         *
         * @param string $checkLevel Level checking for.
         */
        public function __construct($checkLevel = 'auth')
        {
        }
        /**
         * Performs permissions checking.
         *
         * @param Main\Event $event Event object.
         *
         * @return Main\EventResult|null
         */
        public function onBeforeAction(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Translate {
    /**
     * Filter.
     *
     * @property string|string[] $langId Language code.
     * @property int $pathId Path index Id.
     * @property int $nextPathId Path index Id.
     * @property int $nextLangPathId Lang path Id.
     * @property int $fileId File Id.
     * @property int $nextFileId File Id.
     * @property string $path File stricture path.
     * @property int $tabId Storage Id.
     *
     */
    class Filter implements \Iterator, \Countable, \Serializable, \ArrayAccess
    {
        const STORAGE_NAME = 'TRANSLATE_FILTER';
        const STORAGE_TAB_CNT = 'TRANSLATE_FILTER_TAB';
        /** @var array */
        private $params = array();
        /** @var array */
        private $iterateCodes = array();
        /** @var int */
        private $iteratePosition;
        /**
         * Constructs filter object.
         *
         * @param array|int $param Init params.
         */
        public function __construct($param = null)
        {
        }
        //region getter/setter
        /**
         * Checks existence of the parameter by its code.
         *
         * @param string $code Parameter code.
         *
         * @return boolean
         */
        public function __isset($code)
        {
        }
        /**
         * Returns parameter by its code.
         *
         * @param string $code Parameter code.
         *
         * @return string|mixed|null
         */
        public function __get($code)
        {
        }
        /**
         * Add parameter to collection.
         *
         * @param string $code Parameter code.
         * @param string|mixed $value Parameter value.
         *
         * @return void
         */
        public function __set($code, $value)
        {
        }
        /**
         * Unset parameter by its code.
         *
         * @param string $code Parameter code.
         *
         * @return void
         */
        public function __unset($code)
        {
        }
        //endregion
        //region Iterator
        /**
         * Return the current phrase element.
         *
         * @return string|null
         */
        public function current()
        {
        }
        /**
         * Move forward to next phrase element.
         *
         * @return void
         */
        public function next()
        {
        }
        /**
         * Return the key of the current phrase element.
         *
         * @return int|null
         */
        public function key()
        {
        }
        /**
         * Checks if current position is valid.
         *
         * @return boolean
         */
        public function valid()
        {
        }
        /**
         * Rewind the Iterator to the first element.
         *
         * @return void
         */
        public function rewind()
        {
        }
        //endregion
        // region Serializable
        /**
         * String representation of object.
         * @return string
         */
        public function serialize()
        {
        }
        /**
         * Constructs the object from a string representation.
         * @param string $data Data to deserialize.
         */
        public function unserialize($data)
        {
        }
        //endregion
        // region Storage
        /**
         * Returns storage tab Id.
         * @param bool $increment Generate new id.
         * @return int
         */
        public static function getTabId($increment = true)
        {
        }
        /**
         * Stories the object into storage.
         * @return void
         */
        public function store()
        {
        }
        /**
         * Reconstructs the object from storage.
         * @param int $id In of the saved date in storage.
         */
        public function restore($id)
        {
        }
        // endregion
        //region ArrayAccess
        /**
         * Checks existence of the param by its code.
         *
         * @param string $code Phrase code.
         *
         * @return boolean
         */
        public function offsetExists($code)
        {
        }
        /**
         * Returns param by its code.
         *
         * @param string $code Param code.
         *
         * @return mixed|null
         */
        public function offsetGet($code)
        {
        }
        /**
         * Offset to set.
         *
         * @param string $code Param code.
         * @param mixed $param Param value.
         *
         * @return void
         */
        public function offsetSet($code, $param)
        {
        }
        /**
         * Unset param value by code.
         *
         * @param string $code Param code.
         *
         * @return void
         */
        public function offsetUnset($code)
        {
        }
        // endregion
        //region Countable
        /**
         * Returns amount params in the filter now.
         *
         * @return int
         */
        public function count()
        {
        }
    }
}
namespace Bitrix\Translate\Index {
    /**
     * @see \Bitrix\Main\ORM\Objectify\Collection
     */
    class PhraseIndexCollection extends \Bitrix\Translate\Index\Internals\EO_PhraseIndex_Collection
    {
        /**
         * @var bool
         */
        static $verbose = false;
        /**
         * Counts items to process.
         *
         * @param Translate\Filter $filter Params to filter file list.
         *
         * @return int
         */
        public function countItemsToProcess(\Bitrix\Translate\Filter $filter = null)
        {
        }
        /**
         * Collect index phrases.
         *
         * @param Translate\Filter $filter Params to filter file list.
         * @param Translate\Controller\ITimeLimit $timer Time counter.
         * @param Translate\Filter $seek Params to seek position.
         *
         * @return int
         */
        public function collect(\Bitrix\Translate\Filter $filter = null, \Bitrix\Translate\Controller\ITimeLimit $timer = null, \Bitrix\Translate\Filter $seek = null)
        {
        }
        /**
         * Drop index.
         *
         * @param Translate\Filter $filter Params to filter file list.
         *
         * @return self
         */
        public function purge(\Bitrix\Translate\Filter $filter = null)
        {
        }
        /**
         * Returns phrase object by its code.
         *
         * @param string $code Phrase code to search.
         *
         * @return Index\PhraseIndex|null
         */
        public function getPhraseByCode($code)
        {
        }
    }
    /**
     * @see \Bitrix\Main\ORM\Objectify\EntityObject
     */
    class PathIndex extends \Bitrix\Translate\Index\Internals\EO_PathIndex
    {
        /**
         *  Loads pathIndex by its path.
         *
         * @param string $path Path to search index.
         *
         * @return self|null
         */
        public static function loadByPath($path)
        {
        }
        /**
         * Detects and returns module id from a path.
         *
         * @return string|null
         */
        public function detectModuleId()
        {
        }
        /**
         * Detects assignment id from a path.
         *
         * @return string|null
         */
        public function detectAssignment()
        {
        }
    }
    class PhraseIndexSearch
    {
        const SEARCH_METHOD_EQUAL = 'equal';
        const SEARCH_METHOD_CASE_SENSITIVE = 'case_sensitive';
        const SEARCH_METHOD_EXACT_WORD = 'exact_word';
        const SEARCH_METHOD_START_WITH = 'start_with';
        const SEARCH_METHOD_END_WITH = 'end_with';
        const SEARCH_METHOD_ALL_PART = 'all_part';
        const SEARCH_METHOD_ANY_PART = 'any_part';
        /**
         * Performs search query and returns result.
         *
         * @param array $params Orm type params for the query.
         * @return Main\ORM\Query\Query
         * @throws Main\SystemException
         */
        public static function query($params = [])
        {
        }
        /**
         * Counts rows in search result.
         *
         * @param array $filterIn Filter params.
         * @return int
         * @throws Main\SystemException
         */
        public static function getCount($filterIn)
        {
        }
        /**
         * Searches phrase by index.
         *
         * @param array $params Orm type params for the query.
         * @return Main\ORM\Query\Result
         * @throws Main\SystemException
         */
        public static function getList($params)
        {
        }
        /**
         * Processes select and filter params to convert them into orm type.
         *
         * @param array $params Orm type params for the query.
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        private static function processParams($params)
        {
        }
    }
    /**
     * @see \Bitrix\Main\ORM\Objectify\Collection
     */
    class PathLangCollection extends \Bitrix\Translate\Index\Internals\EO_PathLang_Collection
    {
        /**
         * @var bool
         */
        static $verbose = false;
        /** @var string */
        private static $documentRoot;
        /** @var string[] */
        private static $enabledLanguages;
        /** @var bool */
        private static $useTranslationRepository;
        /** @var string[] */
        private static $translationRepositoryLanguages;
        /** @var string[] */
        private static $translationEnabledLanguages;
        /** @var string */
        private static $translationRepositoryRoot;
        /**
         * Sets up configuration.
         *
         * @return void
         */
        private static function configure()
        {
        }
        /**
         * Counts items to process.
         *
         * @param Translate\Filter $filter Params to filter file list.
         *
         * @return int
         */
        public function countItemsToProcess(\Bitrix\Translate\Filter $filter = null)
        {
        }
        /**
         * Collects lang folder paths.
         *
         * @param Translate\Filter $filter Params to filter file list.
         * @param Translate\Controller\ITimeLimit $timer Time counter.
         * @param Translate\Filter $seek Params to seek position.
         *
         * @return int
         */
        public function collect(\Bitrix\Translate\Filter $filter = null, \Bitrix\Translate\Controller\ITimeLimit $timer = null, \Bitrix\Translate\Filter $seek = null)
        {
        }
        /**
         * Drops index.
         *
         * @param Translate\Filter $filter Params to filter file list.
         *
         * @return self
         */
        public function purge(\Bitrix\Translate\Filter $filter = null)
        {
        }
    }
    /**
     * @see \Bitrix\Main\ORM\Objectify\EntityObject
     */
    class FileIndex extends \Bitrix\Translate\Index\Internals\EO_FileIndex
    {
        /**
         * Constructs instance by io\file.
         *
         * @param Main\IO\File $file Language file.
         *
         * @return Index\FileIndex
         * @throws Main\ArgumentException
         */
        public static function createByFile(\Bitrix\Main\IO\File $file)
        {
        }
    }
    /**
     * @see \Bitrix\Main\ORM\Objectify\Collection
     */
    class PathIndexCollection extends \Bitrix\Translate\Index\Internals\EO_PathIndex_Collection
    {
        /** @var bool */
        static $verbose = false;
        /** @var string */
        private static $documentRoot;
        /** @var string[] */
        private static $enabledLanguages;
        /** @var string[] */
        private static $availableLanguages;
        /** @var bool */
        private static $useTranslationRepository;
        /** @var string[] */
        private static $translationRepositoryLanguages;
        /** @var string[] */
        private static $translationEnabledLanguages;
        /** @var string */
        private static $translationRepositoryRoot;
        /** @var array */
        private $immediateChildren = array();
        /** @var array */
        private $ancestorsPaths = array();
        /** @var string[] */
        private $checkLanguages = array();
        /**
         * Sets up configuration.
         *
         * @return void
         */
        private static function configure()
        {
        }
        /**
         * Counts items to process.
         *
         * @param Translate\Filter $filter Params to filter file list.
         *
         * @return int
         */
        public function countItemsToProcess(\Bitrix\Translate\Filter $filter = null)
        {
        }
        /**
         * Collect path structure.
         *
         * @param Translate\Filter $filter Params to filter file list.
         * @param Translate\Controller\ITimeLimit $timer Time counter.
         * @param Translate\Filter $seek Params to seek position.
         *
         * @return int
         */
        public function collect(\Bitrix\Translate\Filter $filter = null, \Bitrix\Translate\Controller\ITimeLimit $timer = null, \Bitrix\Translate\Filter $seek = null)
        {
        }
        /**
         * Collect path structure.
         *
         * @param string $relPath Path to lang folder to index.
         *
         * @return int
         */
        private function collectFilePath($relPath)
        {
        }
        /**
         * Searchs or creates ancestor index by path.
         *
         * @param string $path Path to search.
         *
         * @return array|null
         */
        public function constructAncestorsByPath($path)
        {
        }
        /**
         * Looks for immediate children.
         *
         * @param int $parentId Parent Id.
         *
         * @return Index\PathIndex[]
         */
        private function getImmediateChildren($parentId)
        {
        }
        /**
         * Looks for ancestors by path.
         *
         * @param int $nodeId Index path to search ancestors.
         * @param int $topNodeId The highest index path.
         *
         * @return Index\PathIndex[]
         */
        private function getAncestors($nodeId, $topNodeId = -1)
        {
        }
        /**
         * Rearrange tree as nested set structure.
         *
         * @return self
         */
        public function arrangeTree()
        {
        }
        /**
         * Drop index.
         *
         * @param Translate\Filter $filter Params to filter file list.
         * @param bool $recursively Drop index recursively.
         *
         * @return self
         */
        public function purge(\Bitrix\Translate\Filter $filter = null, $recursively = true)
        {
        }
        /**
         * Unvalidate index.
         *
         * @param Translate\Filter $filter Params to filter file list.
         * @param bool $recursively Drop index recursively.
         *
         * @return self
         */
        public function validate(\Bitrix\Translate\Filter $filter = null, $recursively = true)
        {
        }
        /**
         * Unvalidate index.
         *
         * @param Translate\Filter $filter Params to filter file list.
         * @param bool $recursively Drop index recursively.
         *
         * @return self
         */
        public function unvalidate(\Bitrix\Translate\Filter $filter = null, $recursively = true)
        {
        }
        /**
         * Collect sssignment file to module.
         *
         * @param Translate\Filter $filter Params to filter file list.
         *
         * @return self
         */
        public function collectModuleAssignment(\Bitrix\Translate\Filter $filter = null)
        {
        }
        /**
         * Collect file asssignment.
         *
         * @param Translate\Filter $filter Params to filter file list.
         *
         * @return self
         */
        public function collectAssignment(\Bitrix\Translate\Filter $filter = null)
        {
        }
    }
    /**
     * @see \Bitrix\Main\ORM\Objectify\Collection
     */
    class FileIndexCollection extends \Bitrix\Translate\Index\Internals\EO_FileIndex_Collection
    {
        /** @var bool */
        static $verbose = false;
        /** @var string */
        private static $documentRoot;
        /** @var string[] */
        private static $enabledLanguages;
        /** @var string[] */
        private $checkLanguages = array();
        /**
         * Sets up configuration.
         *
         * @return void
         */
        private static function configure()
        {
        }
        /**
         * Counts items to process.
         *
         * @param Translate\Filter $filter Params to filter file list.
         *
         * @return int
         */
        public function countItemsToProcess(\Bitrix\Translate\Filter $filter = null)
        {
        }
        /**
         * Collect index file.
         *
         * @param Translate\Filter $filter Params to filter file list.
         * @param Translate\Controller\ITimeLimit $timer Time counter.
         * @param Translate\Filter $seek Params to seek position.
         *
         * @return int
         */
        public function collect(\Bitrix\Translate\Filter $filter = null, \Bitrix\Translate\Controller\ITimeLimit $timer = null, \Bitrix\Translate\Filter $seek = null)
        {
        }
        /**
         * Drop index.
         *
         * @param Translate\Filter $filter Params to filter file list.
         * @param bool $recursively Drop index recursively.
         *
         * @return self
         */
        public function purge(\Bitrix\Translate\Filter $filter = null, $recursively = true)
        {
        }
        /**
         * Unvalidate index.
         *
         * @param Translate\Filter $filter Params to filter file list.
         *
         * @return self
         */
        public function unvalidate(\Bitrix\Translate\Filter $filter = null)
        {
        }
    }
}
namespace Bitrix\Translate\Index\Internals {
    trait BulkOperation
    {
        /** @var array */
        private static $tableFields;
        /**
         * Multiple inserts rows.
         *
         * @param array $rows Data to add.
         * @param string|string[] $primary Primary key field name.
         *
         * @return void
         *
         * @throws Main\ArgumentTypeException
         * @throws Main\DB\SqlQueryException
         */
        public static function bulkAdd(array $rows, $primary = null)
        {
        }
        /**
         * Updates rows by filter.
         *
         * @param array $fields Values for update.
         * @param array $filter Filter what to update.
         *
         * @return void
         * @throws Main\DB\SqlQueryException
         */
        public static function bulkUpdate(array $fields, array $filter = [])
        {
        }
        /**
         * Deletes rows by filter.
         *
         * @param array $filter Filter looks like filter in getList.
         *
         * @return void
         * @throws Main\DB\SqlQueryException
         */
        public static function bulkDelete(array $filter = [])
        {
        }
        /**
         * Get filter parameters as SQL code.
         *
         * @param array $filterFields Gets filter parameters.
         * @param array $filterAlias Aliases for the filter fields.
         *
         * @return string
         */
        private static function prepareWhere(array $filterFields, array $filterAlias = array())
        {
        }
    }
}
namespace Bitrix\Translate\Index {
    /**
     * @see \Bitrix\Main\ORM\Objectify\EntityObject
     */
    class PathLang extends \Bitrix\Translate\Index\Internals\EO_PathLang
    {
    }
    /**
     * @see \Bitrix\Main\ORM\Objectify\Collection
     */
    class FileDiffCollection extends \Bitrix\Translate\Index\Internals\EO_FileDiff_Collection
    {
        /**
         * @var bool
         */
        static $verbose = false;
        /** @var string */
        private static $documentRoot;
        /** @var string[] */
        private static $enabledLanguages;
        /**
         * Sets up configuration.
         *
         * @return void
         */
        private static function configure()
        {
        }
        /**
         * Counts items to process.
         *
         * @param Translate\Filter $filter Params to filter file list.
         *
         * @return int
         */
        public function countItemsToProcess(\Bitrix\Translate\Filter $filter = null)
        {
        }
        /**
         * Collect index file.
         *
         * @param Translate\Filter $filter Params to filter file list.
         * @param Translate\Controller\ITimeLimit $timer Time counter.
         * @param Translate\Filter $seek Params to seek position.
         *
         * @return int
         */
        public function collect(\Bitrix\Translate\Filter $filter = null, \Bitrix\Translate\Controller\ITimeLimit $timer = null, \Bitrix\Translate\Filter $seek = null)
        {
        }
        /**
         * Drop index.
         *
         * @param Translate\Filter $filter Params to filter file list.
         *
         * @return self
         */
        public function purge(\Bitrix\Translate\Filter $filter = null)
        {
        }
    }
    class FileIndexSearch
    {
        /**
         * Performs search query and returns result.
         *
         * @param array $params Orm type params for the query.
         * @return Main\ORM\Query\Query
         * @throws Main\SystemException
         */
        public static function query($params = [])
        {
        }
        /**
         * Counts rows in search result.
         *
         * @param array $filterIn Filter params.
         * @return int
         * @throws Main\SystemException
         */
        public static function getCount($filterIn)
        {
        }
        /**
         * Searches phrase by index.
         *
         * @param array $params Orm type params for the query.
         * @return Main\ORM\Query\Result
         * @throws Main\SystemException
         */
        public static function getList($params)
        {
        }
        /**
         * Processes select and filter params to convert them into orm type.
         *
         * @param array $params Orm type params for the query.
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        private static function processParams($params)
        {
        }
    }
    class PhraseIndex extends \Bitrix\Translate\Index\Internals\EO_PhraseIndex
    {
    }
    /**
     * @see \Bitrix\Main\ORM\Objectify\EntityObject
     */
    class FileDiff extends \Bitrix\Translate\Index\Internals\EO_FileDiff
    {
    }
    class Aggregate
    {
        /** @var Main\ORM\Entity[] */
        private static $entities = [];
        /**
         * @param array $params Array of parameters:
         * $params = [
         *    'PARENT_ID' => (int) Top parent node Id.
         *    'CURRENT_LANG' => (string) Current language Id.
         *    'LANGUAGES' => (string[]) Languages Ids.
         *    'PATH_LIST' => (string) Path list to filter.
         * ].
         *
         * @return Main\ORM\Query\Query
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static function buildAggregateQuery(array $params)
        {
        }
        /**
         * @param array $params Array of parameters:
         * $params = [
         *    'PARENT_ID' => (int) Top parent node Id.
         *    'CURRENT_LANG' => (string) Current language Id.
         *    'LANGUAGES' => (string[]) Languages Ids.
         *    'PATH_LIST' => (string) Path list to filter.
         * ].
         *
         * @return Main\ORM\Query\Query
         *
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        public static function buildQuery(array $params)
        {
        }
    }
}
namespace Bitrix\Translate\Text {
    /**
     * @see \Bitrix\Main\Text
     */
    class StringHelper
    {
        // utf8 https://www.w3.org/International/questions/qa-forms-utf-8.en
        public const UTF8_REGEXP = '/(?:
		      [\\x09\\x0A\\x0D\\x20-\\x7E]            # ASCII
		    | [\\xC2-\\xDF][\\x80-\\xBF]             # non-overlong 2-byte
		    | \\xE0[\\xA0-\\xBF][\\x80-\\xBF]         # excluding overlongs
		    | [\\xE1-\\xEC\\xEE\\xEF][\\x80-\\xBF]{2}  # straight 3-byte
		    | \\xED[\\x80-\\x9F][\\x80-\\xBF]         # excluding surrogates
		    | \\xF0[\\x90-\\xBF][\\x80-\\xBF]{2}      # planes 1-3
		    | [\\xF1-\\xF3][\\x80-\\xBF]{3}          # planes 4-15
		    | \\xF4[\\x80-\\x8F][\\x80-\\xBF]{2}      # plane 16
		)+/xs';
        /**
         * Special version of strlen.
         * @param string $str String to measure.
         * @param string $encoding Defines encoding used in conversion.
         * @return int
         */
        public static function getLength($str, $encoding = null)
        {
        }
        /**
         * Special version of substr.
         * @param string $str String to convert.
         * @param int $start Starting position.
         * @param int $length Count characters to extract.
         * @param string $encoding Defines encoding used in conversion.
         * @return string
         */
        public static function getSubstring($str, $start, $length, $encoding = null)
        {
        }
        /**
         * Special version of strpos.
         * @param string $haystack String to analyze.
         * @param string $needle String to find.
         * @param int $offset The search offset.
         * @param string $encoding Defines encoding used in conversion.
         * @return bool|int
         */
        public static function getPosition($haystack, $needle, $offset = 0, $encoding = null)
        {
        }
        /**
         * Special version of strtolower.
         * @param string $str String to convert.
         * @param string $encoding Defines encoding used in conversion.
         * @return string
         */
        public static function changeCaseToLower($str, $encoding = null)
        {
        }
        /**
         * Special version of strtoupper.
         * @param string $str String to convert.
         * @param string $encoding Defines encoding used in conversion.
         * @return string
         */
        public static function changeCaseToUpper($str, $encoding = null)
        {
        }
        /**
         * Convert special characters to HTML entities.
         * @param string $string The string  being converted.
         * @param int $flags A bitmask mask which specify how to handle quotes.
         * @param string $encoding Defines encoding used in conversion.
         * @return string
         */
        public static function htmlSpecialChars($string, $flags = ENT_COMPAT, $encoding = null)
        {
        }
        /**
         * Validates UTF-8 octet sequences:
         * 0xxxxxxx
         * 110xxxxx 10xxxxxx
         * 1110xxxx 10xxxxxx 10xxxxxx
         * 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
         *
         * @param string $string
         * @return bool
         */
        public static function validateUtf8OctetSequences($string)
        {
        }
    }
}
namespace Bitrix\Translate {
    class Permission
    {
        const SOURCE = 'X';
        const WRITE = 'W';
        const READ = 'R';
        const DENY = 'D';
        /**
         * Checks user's access to path.
         *
         * @param string $path Path to check.
         *
         * @return bool
         */
        public static function isAllowPath($path)
        {
        }
        /**
         * Return true if current user can edit php.
         *
         * @param \CUser|Main\Engine\CurrentUser $checkUser Current user check for.
         *
         * @return bool
         */
        public static function canEditSource($checkUser)
        {
        }
        /**
         * Determines if current user is admin.
         *
         * @param \CUser|Main\Engine\CurrentUser $checkUser User.
         *
         * @return bool
         */
        public static function isAdmin($checkUser)
        {
        }
        /**
         * Return true if current user can view module pages.
         *
         * @param \CUser|Main\Engine\CurrentUser $checkUser User.
         *
         * @return bool
         */
        public static function canView($checkUser)
        {
        }
        /**
         * Return true if current user can edit on module pages.
         *
         * @param \CUser|Main\Engine\CurrentUser $checkUser User.
         *
         * @return bool
         */
        public static function canEdit($checkUser)
        {
        }
    }
}
namespace {
    class bitrix_eshop extends \CModule
    {
        var $MODULE_ID = "bitrix.eshop";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function __construct()
        {
        }
        function InstallDB($install_wizard = \true)
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function InstallPublic()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
    class CatalogSettings extends \CWizardStep
    {
        function InitStep()
        {
        }
        function ShowStep()
        {
        }
        function OnPostForm()
        {
        }
    }
    class ShopSettings extends \CWizardStep
    {
        function InitStep()
        {
        }
        function ShowStep()
        {
        }
        function OnPostForm()
        {
        }
    }
    class PersonType extends \CWizardStep
    {
        function InitStep()
        {
        }
        function ShowStep()
        {
        }
        function OnPostForm()
        {
        }
    }
    class PaySystem extends \CWizardStep
    {
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class CBootstrapPageTemplate
    {
        function GetDescription()
        {
        }
        function GetFormHtml()
        {
        }
        function GetContent($arParams)
        {
        }
    }
    class CEShop
    {
        public static function ShowPanel()
        {
        }
    }
    class mail extends \CModule
    {
        var $MODULE_ID = "mail";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        function __construct()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        /**
         * @param $siteId
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function installMailService($siteId)
        {
        }
        public function installBitrix24MailService()
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        public function migrateToBox()
        {
        }
    }
    class CMailClientMessageViewComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable, \Bitrix\Main\Errorable
    {
        /** @var Main\ErrorCollection */
        private $errorCollection;
        /** @var bool */
        private $isCrmEnable = \false;
        /**
         * @return array
         */
        public function configureActions()
        {
        }
        /**
         * @return mixed|void
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function executeComponent($level = 1)
        {
        }
        /**
         * @param $id
         * @param $log
         * @param $size
         *
         * @return array|void
         *
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function logAction($id, $log, $size)
        {
        }
        /**
         * @param $messages
         *
         * @return array
         */
        private function getAvatarParams($messages)
        {
        }
        /**
         * @param $id
         *
         * @return string|void
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function logitemAction($id, $level = 1)
        {
        }
        /**
         * @return void
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function prepareUser()
        {
        }
        protected function prepareICal($message)
        {
        }
        /**
         * @param $message
         *
         * @return mixed
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected function prepareMessage(&$message)
        {
        }
        /**
         * @param $messageField
         *
         * @return string
         */
        private function getEmailFromFieldFrom($messageField)
        {
        }
        /**
         * Getting array of errors.
         * @return Main\Error[]
         */
        public final function getErrors()
        {
        }
        /**
         * Getting once error with the necessary code.
         * @param string $code Code of error.
         * @return Main\Error|null
         */
        public final function getErrorByCode($code)
        {
        }
        private function markMessageAsSeen($message)
        {
        }
    }
    class CMailClientMessageListComponent extends \CBitrixComponent
    {
        protected $componentId;
        protected $mailbox;
        protected $foldersItems;
        /** @var Mailbox */
        protected $mailboxHelper;
        public function getComponentId()
        {
        }
        public function executeComponent()
        {
        }
        /**
         * @param $items
         * @param \Bitrix\Main\UI\PageNavigation $navigation
         *
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws Main\LoaderException
         */
        private function getRows($items, $navigation)
        {
        }
        /**
         * @param $emails
         *
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getAvatarConfigs($items)
        {
        }
        private function getGridActionsData()
        {
        }
        private function getSenderColumnCell($avatarParams)
        {
        }
        private function getDirsForFilter()
        {
        }
        private function setFilterSettings($dirsForFilter)
        {
        }
        private function setFilterPresets()
        {
        }
        private function prepareDirsHierarchyForGrid()
        {
        }
        private function dirsTreeForGrid($counts)
        {
        }
        private function prepareDirsMenu(&$list)
        {
        }
        private function arrayDiffRecursive($arr1, $arr2)
        {
        }
        private function rememberCurrentMailboxId($mailboxId)
        {
        }
    }
    class CMailClientConfigComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable, \Bitrix\Main\Errorable
    {
        public function configureActions()
        {
        }
        public function executeComponent()
        {
        }
        protected function defaultAction()
        {
        }
        protected function editAction($new = \true)
        {
        }
        public function saveAction($fields)
        {
        }
        public function deleteAction($id)
        {
        }
        protected function canConnectNewMailbox()
        {
        }
        protected function getUserOwnedMailboxCount()
        {
        }
        protected function error($error)
        {
        }
        /**
         * Getting array of errors.
         * @return Error[]
         */
        public final function getErrors()
        {
        }
        /**
         * Getting once error with the necessary code.
         * @param string $code Code of error.
         * @return Error
         */
        public final function getErrorByCode($code)
        {
        }
    }
    /**
     * Class AddressBookComponent
     */
    class AddressBookComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable
    {
        public function configureActions()
        {
        }
        protected $rowsCount = 20;
        private function getRowsCount()
        {
        }
        protected $gridId = 'MAIL_ADDRESSBOOK_LIST';
        private function canEdit()
        {
        }
        private function getDataFilter()
        {
        }
        private function setUiFilter()
        {
        }
        private function setColumns()
        {
        }
        private function setRows()
        {
        }
        /**
         * @return false|mixed|null
         * @throws \Bitrix\Main\LoaderException
         */
        public function executeComponent()
        {
        }
        private function removeContacts($idSet)
        {
        }
        private function processGridRequests($gridId)
        {
        }
    }
    class CMailClientComponent extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
        public function includePageComponent($name, $template, &$params)
        {
        }
    }
    class CMailClientAjaxController extends \Bitrix\Main\Engine\Controller
    {
        /** @var bool */
        private $isCrmEnable = \false;
        /**
         * Initializes controller.
         * @return void
         */
        protected function init()
        {
        }
        /**
         * Common operations before process action.
         *
         * @param \Bitrix\Main\Engine\Action $action Action.
         *
         * @return bool If method will return false, then action will not execute.
         * @throws Main\LoaderException
         */
        protected function processBeforeAction(\Bitrix\Main\Engine\Action $action)
        {
        }
        /**
         * Move messages to folder.
         * @param string[] $ids
         * @param string $folder
         */
        public function moveToFolderAction($ids, $folder)
        {
        }
        protected function markMessages($ids, $seen = \true)
        {
        }
        /**
         * Mark messages as unseen.
         * @param string[] $ids
         */
        public function markAsUnseenAction($ids)
        {
        }
        /**
         * Mark messages as seen.
         * @param string[] $ids
         */
        public function markAsSeenAction($ids)
        {
        }
        /**
         * Restore messages from spam.
         * @param $ids
         */
        public function restoreFromSpamAction($ids)
        {
        }
        /**
         * Marks messages as spam.
         * @param string[] $ids
         *
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function markAsSpamAction($ids)
        {
        }
        /**
         * Deletes messages.
         * @param string[] $ids
         */
        public function deleteAction($ids)
        {
        }
        /**
         * @param $ids
         *
         * @return \Bitrix\Main\Result
         */
        private function getIds($ids)
        {
        }
        /**
         * Generates message Id.
         * @param string $hostname
         *
         * @return string
         */
        private function generateMessageId($hostname)
        {
        }
        /**
         * Generates message Id for CRM email.
         * @param string $hostname
         * @param string $urn
         *
         * @return string
         */
        private function generateCrmMessageId($hostname, $urn)
        {
        }
        /**
         * Gets host name.
         *
         * @return string
         */
        private function getHostname()
        {
        }
        /**
         * @param $id
         * @param $dir
         * @param $onlySyncCurrent
         *
         * @return array
         * @throws Exception
         */
        public function syncMailboxAction($id, $dir, $onlySyncCurrent = \false)
        {
        }
        /**
         * Sends email.
         *
         * @param array $data
         *
         * @return void
         *
         * @throws Exception
         * @throws Main\NotImplementedException
         * @throws Main\SystemException
         */
        public function sendMessageAction($data)
        {
        }
        /**
         * Creates crm activity.
         *
         * @param string $messageId
         *
         * @return array|void
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function createCrmActivityAction($messageId, $level = 1)
        {
        }
        /**
         * Removes crm activity.
         * @param string $messageId
         *
         * @return array|void
         * @throws Main\ArgumentException
         * @throws Main\DB\SqlQueryException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function removeCrmActivityAction($messageId)
        {
        }
        /**
         * Append contact reference.
         *
         * @param \Bitrix\Main\Mail\Address[] $addressList Email address list.
         * @param string $fromField Email field TO|CC|BCC.
         *
         * @return void
         * @throws Main\ArgumentException
         * @throws Main\Db\SqlQueryException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function appendMailContacts($addressList, $fromField = '')
        {
        }
        public function icalAction()
        {
        }
    }
    class CMailContactAvatarComponent extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    class MailUserSignatureEditComponent extends \CBitrixComponent
    {
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * @return mixed|void
         */
        public function executeComponent()
        {
        }
        protected function showError($error)
        {
        }
        /**
         * @return array
         */
        protected function getSenders()
        {
        }
    }
    class CMailClientSidepanelComponent extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    class CMailClientHomeComponent extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    class MailUserSignatureListComponent extends \CBitrixComponent
    {
        protected $gridId = 'mail-usersignature-grid';
        protected $filterId = 'mail-usersignature-filter';
        protected $navParamName = 'page';
        /**
         * @param $arParams
         * @return array
         */
        public function onPrepareComponentParams($arParams)
        {
        }
        /**
         * @return mixed|void
         */
        public function executeComponent()
        {
        }
        protected function showError($error)
        {
        }
        /**
         * @return array
         */
        protected function prepareGrid()
        {
        }
        /**
         * @return array
         */
        protected function prepareFilter()
        {
        }
        /**
         * @return array
         */
        protected function getDefaultFilterFields()
        {
        }
        /**
         * @return array
         */
        protected function getListFilter()
        {
        }
    }
    class CMailClientMessageNewComponent extends \CBitrixComponent
    {
        /** @var bool */
        private $isCrmEnable = \false;
        /**
         * @return mixed|void
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function executeComponent($level = 1)
        {
        }
    }
    /**
     */
    class MailBlacklistListComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable
    {
        protected $gridId = 'MAIL_BLACKLIST_LIST';
        protected $filterId = 'MAIL_BLACKLIST_LIST';
        private $userId = 0;
        private $errorCollection;
        /** @inheritdoc */
        public function __construct(\CBitrixComponent $component = \null)
        {
        }
        /** @inheritdoc */
        public function executeComponent()
        {
        }
        /**
         * @param \Bitrix\Mail\EO_Blacklist_Collection $mails
         */
        private function makeRows($mails)
        {
        }
        /**
         * @return bool
         */
        private function isUserAdmin()
        {
        }
        /**
         * @return \Bitrix\Mail\EO_Blacklist_Collection|null
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private function getBlacklistMails()
        {
        }
        private function processDelete()
        {
        }
        /**
         * @param $errorMessage
         */
        private function addError($errorMessage)
        {
        }
        /**
         * @param $gridId
         */
        private function processGridActions($gridId)
        {
        }
        /**
         * @return array
         */
        public function configureActions()
        {
        }
        /**
         * @param $emails
         * @param bool $isForAllUsers
         * @return void|array
         * @throws Main\ArgumentException
         * @throws Main\Db\SqlQueryException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function addMailsAction($emails, $isForAllUsers = \false)
        {
        }
        /**
         * @param $id
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function deleteAction($id)
        {
        }
        private function runBeforeAction()
        {
        }
        private function deleteEmailAddressById($id)
        {
        }
        /**
         * @param $emails
         * @return array
         */
        private function sanitizeEmails($emails)
        {
        }
        private function checkMail($email)
        {
        }
        /**
         * @param \Bitrix\Mail\Internals\Entity\BlacklistEmail $email
         * @return bool
         */
        private function isAddressForAllUsers($email)
        {
        }
    }
    /**
     * Class MailBlacklistAjaxController
     * @package Bitrix\Main\Controller
     */
    class MailBlacklistAjaxController extends \Bitrix\Main\Engine\Controller
    {
        /**
         * @return array
         */
        public function getPopupContentAction()
        {
        }
        /**@inheritdoc */
        public function configureActions()
        {
        }
        /**
         * @param $emails
         * @param bool $isForAllUsers
         * @return void|array
         * @throws Main\ArgumentException
         * @throws Main\Db\SqlQueryException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function addMailsAction($emails, $isForAllUsers = \false)
        {
        }
        /**
         * @param $id
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function deleteAction($id)
        {
        }
        /**
         * @param $emails
         * @return array
         */
        private function sanitizeEmails($emails)
        {
        }
        /**
         * @return bool
         */
        private function isUserAdmin()
        {
        }
    }
    class CMailUfMessageComponent extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    class CMailClientConfigDirsComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable, \Bitrix\Main\Errorable
    {
        /** @var  ErrorCollection */
        protected $errorCollection;
        /**
         * @inheritDoc
         */
        public function configureActions()
        {
        }
        public function executeComponent()
        {
        }
        public function saveAction()
        {
        }
        public function levelAction()
        {
        }
        /**
         * Getting array of errors.
         * @return Error[]
         */
        public function getErrors()
        {
        }
        /**
         * Getting once error with the necessary code.
         * @param string $code Code of error.
         * @return Error
         */
        public function getErrorByCode($code)
        {
        }
    }
    class CMailMessageActionsComponent extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    /**
     * yandex errors:
     * - no_auth (òîêåí êðèâîé, êîðîòêèé)
     * - not_permitted (òîêåí êðèâîé, äëèííûé èëè íåïðàâèëüíûé)
     * - occupied (ëîãèí çàíÿò)
     * - no_user (íåò ïîëüçîâàòåëÿ)
     * - no_login (íå ïåðåäàí ëîãèí)
     * - not_found (íåò ïîëüçîâàòåëÿ)
     */
    class CMailDomain
    {
        public function __construct()
        {
        }
        public static function isUserExists($token, $domain, $login, &$error)
        {
        }
        public static function addUser($token, $domain, $login, $password, &$error)
        {
        }
        public static function getRedirectUrl($locale, $token, $domain, $login, $errorUrl, &$error)
        {
        }
        public static function getUnreadMessagesCount($token, $domain, $login, &$error)
        {
        }
        public static function changePassword($token, $domain, $login, $password, &$error)
        {
        }
        public static function getDomainStatus($token, $domain, &$error)
        {
        }
        public static function getDomainUsers($token, $domain, &$error)
        {
        }
        public static function setDomainLogo($token, $domain, $logo, &$error)
        {
        }
        public static function deleteUser($token, $domain, $login, &$error)
        {
        }
        private static function getErrorCode($error)
        {
        }
    }
    class CMailRegru
    {
        public function __construct()
        {
        }
        // https://api.reg.ru/api/regru2/domain/check
        public static function checkDomain($user, $password, $domain, &$error)
        {
        }
        // https://api.reg.ru/api/regru2/domain/get_suggest
        public static function suggestDomain($user, $password, $word1, $word2, $tlds, &$error)
        {
        }
        // https://api.reg.ru/api/regru2/domain/create
        public static function createDomain($user, $password, $domain, $params, &$error)
        {
        }
        // https://api.reg.ru/api/regru2/service/get_info
        public static function checkDomainInfo($user, $password, $domain, &$error)
        {
        }
        // https://api.reg.ru/api/regru2/service/renew
        public static function renewDomain($user, $password, $domain, $params, &$error)
        {
        }
        public static function updateDns($user, $password, $domain, $params, &$error)
        {
        }
        // https://api.reg.ru/api/regru2/service/get_list
        public static function getDomainsList($user, $password, &$error)
        {
        }
        private static function post($url, $data)
        {
        }
        private static function setError($result, &$error)
        {
        }
    }
    class CMailDomain2
    {
        public function __construct()
        {
        }
        public static function getImapData()
        {
        }
        public static function addDomain($token, $domain, &$error)
        {
        }
        public static function getDomainStatus($token, $domain, &$error)
        {
        }
        public static function checkDomainStatus($token, $domain, &$error)
        {
        }
        public static function deleteDomain($token, $domain, &$error)
        {
        }
        public static function isUserExists($token, $domain, $login, &$error)
        {
        }
        public static function addUser($token, $domain, $login, $password, &$error)
        {
        }
        public static function getRedirectUrl($locale, $token, $domain, $login, $errorUrl, &$error)
        {
        }
        public static function getUnreadMessagesCount($token, $domain, $login, &$error)
        {
        }
        public static function changePassword($token, $domain, $login, $password, &$error)
        {
        }
        public static function getDomainUsers($token, $domain, &$error, $resync = \false)
        {
        }
        public static function setDomainLogo($token, $domain, $logo, $replace, &$error)
        {
        }
        public static function selLocale($token, $domain, $locale, &$error)
        {
        }
        public static function deleteUser($token, $domain, $login, &$error)
        {
        }
        private static function getErrorCode($error)
        {
        }
        private static function getErrorCode2($error)
        {
        }
    }
    class CMail
    {
        const ERR_DEFAULT = 1;
        const ERR_DB = 2;
        const ERR_API_DEFAULT = 101;
        const ERR_API_DENIED = 102;
        const ERR_API_DOMAINLIST_EMPTY = 103;
        const ERR_API_NAME_OCCUPIED = 104;
        const ERR_API_USER_NOTFOUND = 105;
        const ERR_API_EMPTY_DOMAIN = 106;
        const ERR_API_EMPTY_NAME = 107;
        const ERR_API_EMPTY_PASSWORD = 108;
        const ERR_API_SHORT_PASSWORD = 109;
        const ERR_API_BAD_NAME = 110;
        const ERR_API_BAD_PASSWORD = 111;
        const ERR_API_PASSWORD_LIKELOGIN = 112;
        const ERR_API_LONG_NAME = 113;
        const ERR_API_LONG_PASSWORD = 114;
        const ERR_API_OP_DENIED = 115;
        const ERR_API_OLD_TOKEN = 116;
        const ERR_API_DOMAIN_OCCUPIED = 201;
        const ERR_API_BAD_DOMAIN = 202;
        const ERR_API_PROHIBITED_DOMAIN = 203;
        const ERR_ENTRY_NOT_FOUND = 301;
        const F_DOMAIN_LOGO = 1;
        const F_DOMAIN_REG = 2;
        public static function getErrorMessage($code)
        {
        }
        public static function onUserUpdate($arFields)
        {
        }
        public static function onUserDelete($id)
        {
        }
        public static function option($name, $value = \null)
        {
        }
    }
    class CMailError
    {
        public static function ResetErrors()
        {
        }
        public static function SetError($ID, $TITLE = "", $DESC = "")
        {
        }
        public static function GetLastError($type = \false)
        {
        }
        public static function GetErrors()
        {
        }
        public static function GetErrorsText($delim = "<br>")
        {
        }
        public static function ErrCount()
        {
        }
    }
    class _CMailBoxDBRes extends \CDBResult
    {
        function __construct($res)
        {
        }
        function Fetch()
        {
        }
    }
    ///////////////////////////////////////////////////////////////////////////////////
    // class CMailBox
    ///////////////////////////////////////////////////////////////////////////////////
    class CAllMailBox
    {
        var $pop3_conn = \false;
        var $mess_count = 0;
        var $mess_size = 0;
        var $resp = \true;
        var $last_result = \true;
        var $response = "";
        var $response_body = "";
        public $mailbox_id = 0;
        public $new_mess_count = 0;
        public $deleted_mess_count = 0;
        public static function GetList($arOrder = array(), $arFilter = array())
        {
        }
        public static function GetByID($ID)
        {
        }
        function CheckMail($mailbox_id = \false)
        {
        }
        public static function CheckMailAgent($ID)
        {
        }
        public static function CheckFields($arFields, $ID = \false)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function SMTPReload()
        {
        }
        function SendCommand($command)
        {
        }
        function GetResponse($bMultiline = \false, $bSkipFirst = \true)
        {
        }
        function GetResponseBody()
        {
        }
        function GetResponseString()
        {
        }
        function GetPassword($p)
        {
        }
        function Check($server, $port, $use_tls, $login, $passw)
        {
        }
        function Connect($mailbox_id)
        {
        }
        private function _connect($mailbox_id, $arMAILBOX_PARAMS)
        {
        }
        function GetMessage($mailbox_id, $msgnum, $msguid, $session_id)
        {
        }
        // function GetMessage(...
        /*********************************************************************
         *********************************************************************/
        function DeleteMessage($msgnum)
        {
        }
    }
    ///////////////////////////////////////////////////////////////////////////////////
    // class CMailHeader
    ///////////////////////////////////////////////////////////////////////////////////
    class CMailHeader
    {
        var $arHeader = array();
        var $arHeaderLines = array();
        var $strHeader = "";
        var $bMultipart = \false;
        var $content_type, $boundary, $charset, $filename, $MultipartType = "mixed";
        public $content_id = '';
        public static function ConvertHeader($encoding, $type, $str, $charset)
        {
        }
        function DecodeHeader($str, $charset_to, $charset_document)
        {
        }
        function Parse($message_header, $charset)
        {
        }
        function IsMultipart()
        {
        }
        function MultipartType()
        {
        }
        function GetBoundary()
        {
        }
        function GetHeader($type)
        {
        }
    }
    class CMailMessageDBResult extends \CDBResult
    {
        function fetch()
        {
        }
    }
    ///////////////////////////////////////////////////////////////////////////////////
    // class CMailMessage
    ///////////////////////////////////////////////////////////////////////////////////
    class CAllMailMessage
    {
        public static function GetList($arOrder = array(), $arFilter = array(), $bCnt = \false)
        {
        }
        function GetByID($ID)
        {
        }
        public static function GetSpamRating($msgid, $arRow = \false)
        {
        }
        public static function parseHeader($header, $charset)
        {
        }
        public static function decodeMessageBody($header, $body, $charset)
        {
        }
        public static function parseMessage($message, $charset)
        {
        }
        public static function addMessage($mailboxId, $message, $charset, $params = array())
        {
        }
        public static function saveMessage($mailboxId, &$message, &$header, &$bodyHtml, &$bodyText, &$attachments, $params = array())
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        private static function trimContent(array &$fields, $trimLength, $filters)
        {
        }
        public static function Delete($id)
        {
        }
        public static function MarkAsSpam($ID, $bIsSPAM = \true, $arRow = \false)
        {
        }
        public static function addAttachment($arFields)
        {
        }
    }
    class _CMailAttachmentDBRes extends \CDBResult
    {
        function __construct($res)
        {
        }
        function fetch()
        {
        }
    }
    class CMailAttachment
    {
        public static function GetList($arOrder = array(), $arFilter = array())
        {
        }
        public static function GetByID($ID)
        {
        }
        function Delete($id)
        {
        }
        public static function getContents($attachment)
        {
        }
    }
    class CAllMailUtil
    {
        public static function convertCharset($str, $from, $to)
        {
        }
        public static function uue_decode($str)
        {
        }
        public static function MkOperationFilter($key)
        {
        }
        public static function FilterCreate($fname, $vals, $type, $cOperationType = \false, $bSkipEmpty = \true)
        {
        }
        public static function FilterCreateEx($fname, $vals, $type, &$bFullJoin, $cOperationType = \false, $bSkipEmpty = \true)
        {
        }
        public static function ByteXOR($a, $b, $l)
        {
        }
        public static function BinMD5($val)
        {
        }
        public static function Decrypt($str, $key = \false)
        {
        }
        public static function Crypt($str, $key = \false)
        {
        }
        public static function extractAllMailAddresses($emails)
        {
        }
        public static function ExtractMailAddress($email)
        {
        }
        public static function checkImapMailbox($server, $port, $use_tls, $login, $password, &$error)
        {
        }
    }
    class CMailFilter
    {
        public static function GetList($arOrder = array(), $arFilter = array(), $bCnt = \false)
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function CheckPHP($code, $field_name)
        {
        }
        public static function CheckFields($arFields, $ID = \false)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function Filter($arFields, $event, $FILTER_ID = \false, $PARENT_FILTER_ID = \false)
        {
        }
        public static function FilterMessage($message_id, $event, $FILTER_ID = \false)
        {
        }
        public static function RecalcSpamRating()
        {
        }
        public static function GetSpamRating($message)
        {
        }
        public static function getWords($message, $max_words)
        {
        }
        public static function DoPHPAction($id, $action, &$arMessageFields)
        {
        }
        public static function DeleteFromSpamBase($message, $bIsSPAM = \true)
        {
        }
        public static function MarkAsSpam($message, $bIsSPAM = \true)
        {
        }
        public static function SpamAction($message, $bIsSPAM, $bDelete = \false)
        {
        }
        public static function GetFilterList($id = "")
        {
        }
    }
    class CMailFilterCondition
    {
        public static function GetList($arOrder = array(), $arFilter = array())
        {
        }
        function GetByID($ID)
        {
        }
        function Delete($ID)
        {
        }
        public static function SetConditions($FILTER_ID, $CONDITIONS, $bClearOther = \true)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
    }
    class CMailLog
    {
        public static function AddMessage($arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        function GetList($arOrder = array(), $arFilter = array())
        {
        }
        public static function ConvertRow($arr_log)
        {
        }
    }
    class _CMailLogDBRes extends \CDBResult
    {
        function __construct($res)
        {
        }
        function Fetch()
        {
        }
    }
    class CMailYandex2
    {
        public function __construct()
        {
        }
        public static function getImapData()
        {
        }
        /**
         * https://pddimp.yandex.ru/api2/admin/domain/register
         *
         * unknown - âðåìåííûé ñáîé, ëèáî íå îïîçíàííàÿ îøèáêà íà íàøåé ñòîðîíå (ïîïðîáóéòå åùå ðàç èëè íàïèøèòå â ñëóæáó ïîääåðæêè)
         * no_token, no_domain, no_ip - îòñóòñâóþò îáÿçàòåëüíûå ïàðàìåòðû
         * bad_domain - ïóñòîå èëè íå ñîîòâåòñòâóþùåå RFC äîìåííîå èìÿ
         * prohibited - èñïîëüçîâàíî çàïðåùåííîå äîìåííîå èìÿ
         * bad_token - òàêîãî òîêåíà íå ñóùåñòâåò, èëè ýòîò òîêåí íå âàëèäåí äëÿ ýòîãî äîìåíà
         * no_auth - íå ïåðåäàíû àóòåíòèôèêàöèîííûå è àâòîðèçàöèîííûå äàííûå (ïîëüçîâàòåëüñêèé token èëè OAuth òîêåí + òîêåí ðåãèñòðàòîðà)
         * bad_oauth - OAuth òîêåí íå ïðîøåë ïðîâåðêó
         * not_allowed - ýòîìó àäìèíèñòðàòîðó çàïðåùåíà òàêàÿ îïåðàöèÿ ñ äàííûì äîìåíîì, èëè ýòîò àäìèíèñòðàòîð íå ÿâëÿåòñÿ àäìèíèñòðàòîðîì äàííîãî äîìåíà
         * blocked - ýòîò äîìåí çàáëîêèðîâàí
         */
        public static function addDomain($token, $domain, &$error)
        {
        }
        /**
         * https://pddimp.yandex.ru/api2/domain/status
         *
         * unknown - âðåìåííûé ñáîé, ëèáî íå îïîçíàííàÿ îøèáêà íà íàøåé ñòîðîíå (ïîïðîáóéòå åùå ðàç èëè íàïèøèòå â ñëóæáó ïîääåðæêè)
         * no_token, no_domain, no_ip - îòñóòñâóþò îáÿçàòåëüíûå ïàðàìåòðû
         * bad_domain - ïóñòîå èëè íå ñîîòâåòñòâóþùåå RFC äîìåííîå èìÿ
         * prohibited - èñïîëüçîâàíî çàïðåùåííîå äîìåííîå èìÿ
         * bad_token - òàêîãî òîêåíà íå ñóùåñòâåò, èëè ýòîò òîêåí íå âàëèäåí äëÿ ýòîãî äîìåíà
         * no_auth - íå ïåðåäàíû àóòåíòèôèêàöèîííûå è àâòîðèçàöèîííûå äàííûå (ïîëüçîâàòåëüñêèé token èëè OAuth òîêåí + òîêåí ðåãèñòðàòîðà)
         * bad_oauth - OAuth òîêåí íå ïðîøåë ïðîâåðêó
         * not_allowed - ýòîìó àäìèíèñòðàòîðó çàïðåùåíà òàêàÿ îïåðàöèÿ ñ äàííûì äîìåíîì, èëè ýòîò àäìèíèñòðàòîð íå ÿâëÿåòñÿ àäìèíèñòðàòîðîì äàííîãî äîìåíà
         * blocked - ýòîò äîìåí çàáëîêèðîâàí
         */
        public static function getDomainStatus($token, $domain, &$error)
        {
        }
        /**
         * http://pddimp.yandex.ru/api2/admin/domain/registration_status
         *
         * unknown - âðåìåííûé ñáîé, ëèáî íå îïîçíàííàÿ îøèáêà íà íàøåé ñòîðîíå (ïîïðîáóéòå åùå ðàç èëè íàïèøèòå â ñëóæáó ïîääåðæêè)
         * no_token, no_domain, no_ip - îòñóòñâóþò îáÿçàòåëüíûå ïàðàìåòðû
         * bad_domain - ïóñòîå èëè íå ñîîòâåòñòâóþùåå RFC äîìåííîå èìÿ
         * prohibited - èñïîëüçîâàíî çàïðåùåííîå äîìåííîå èìÿ
         * bad_token - òàêîãî òîêåíà íå ñóùåñòâåò, èëè ýòîò òîêåí íå âàëèäåí äëÿ ýòîãî äîìåíà
         * no_auth - íå ïåðåäàíû àóòåíòèôèêàöèîííûå è àâòîðèçàöèîííûå äàííûå (ïîëüçîâàòåëüñêèé token èëè OAuth òîêåí + òîêåí ðåãèñòðàòîðà)
         * bad_oauth - OAuth òîêåí íå ïðîøåë ïðîâåðêó
         * not_allowed - ýòîìó àäìèíèñòðàòîðó çàïðåùåíà òàêàÿ îïåðàöèÿ ñ äàííûì äîìåíîì, èëè ýòîò àäìèíèñòðàòîð íå ÿâëÿåòñÿ àäìèíèñòðàòîðîì äàííîãî äîìåíà
         * blocked - ýòîò äîìåí çàáëîêèðîâàí
         */
        public static function checkDomainStatus($token, $domain, &$error)
        {
        }
        /**
         * https://pddimp.yandex.ru/api2/domain/delete
         *
         * unknown - âðåìåííûé ñáîé, ëèáî íåîïîçíàííàÿ îøèáêà íà íàøåé ñòîðîíå (ïîïðîáóéòå åùå ðàç èëè íàïèøèòå â ñëóæáó ïîääåðæêè)
         * no_token, no_domain, no_ip - îòñóòñâóþò îáÿçàòåëüíûå ïàðàìåòðû
         * bad_domain - ïóñòîå èëè íå ñîîòâåòñòâóþùåå RFC äîìåííîå èìÿ
         * prohibited - èñïîëüçîâàíî çàïðåùåííîå äîìåííîå èìÿ
         * bad_token - òàêîãî òîêåíà íå ñóùåñòâåò, èëè ýòîò òîêåí íå âàëèäåí äëÿ ýòîãî äîìåíà
         * no_auth - íå ïåðåäàíû àóòåíòèôèêàöèîííûå è àâòîðèçàöèîííûå äàííûå (ïîëüçîâàòåëüñêèé token èëè OAuth òîêåí + òîêåí ðåãèñòðàòîðà)
         * bad_oauth - OAuth òîêåí íå ïðîøåë ïðîâåðêó
         * not_allowed - ýòîìó àäìèíèñòðàòîðó çàïðåùåíà òàêàÿ îïåðàöèÿ ñ äàííûì äîìåíîì, èëè ýòîò àäìèíèñòðàòîð íå ÿâëÿåòñÿ àäìèíèñòðàòîðîì äàííîãî äîìåíà
         * blocked - ýòîò äîìåí çàáëîêèðîâàí
         * not_master_admin - ýòà îïåðàöèÿ ðàçðåøåíà òîëüêî îñíîâíîìó àäìèíèñòðàòîðó äîìåíà
         */
        public static function deleteDomain($token, $domain, &$error)
        {
        }
        /**
         * https://pddimp.yandex.ru/api2/admin/email/details
         *
         * unknown - âðåìåííûé ñáîé, ëèáî íåîïîçíàííàÿ îøèáêà íà íàøåé ñòîðîíå (ïîïðîáóéòå åùå ðàç èëè íàïèøèòå â ñëóæáó ïîääåðæêè)
         * no_token, no_domain, no_ip - îòñóòñâóþò îáÿçàòåëüíûå ïàðàìåòðû
         * bad_domain - ïóñòîå èëè íå ñîîòâåòñòâóþùåå RFC äîìåííîå èìÿ
         * prohibited - èñïîëüçîâàíî çàïðåùåííîå äîìåííîå èìÿ
         * bad_token - òàêîãî òîêåíà íå ñóùåñòâåò, èëè ýòîò òîêåí íå âàëèäåí äëÿ ýòîãî äîìåíà
         * no_auth - íå ïåðåäàíû àóòåíòèôèêàöèîííûå è àâòîðèçàöèîííûå äàííûå (ïîëüçîâàòåëüñêèé token èëè OAuth òîêåí + òîêåí ðåãèñòðàòîðà)
         * bad_oauth - OAuth òîêåí íå ïðîøåë ïðîâåðêó
         * not_allowed - ýòîìó àäìèíèñòðàòîðó çàïðåùåíà òàêàÿ îïåðàöèÿ ñ äàííûì äîìåíîì, èëè ýòîò àäìèíèñòðàòîð íå ÿâëÿåòñÿ àäìèíèñòðàòîðîì äàííîãî äîìåíà
         * blocked - ýòîò äîìåí çàáëîêèðîâàí
         * no_uid_or_login - íå ïåðåäàí íè login, íè uid
         * account_not_found - àêêàóíò íå íàéäåí
         */
        public static function checkUser($token, $domain, $login, &$error)
        {
        }
        /**
         * https://pddimp.yandex.ru/api2/admin/email/add
         *
         * unknown - âðåìåííûé ñáîé, ëèáî íå îïîçíàííàÿ îøèáêà íà íàøåé ñòîðîíå (ïîïðîáóéòå åùå ðàç èëè íàïèøèòå â ñëóæáó ïîääåðæêè)
         * no_token, no_domain, no_ip - îòñóòñâóþò îáÿçàòåëüíûå ïàðàìåòðû
         * bad_domain - ïóñòîå èëè íå ñîîòâåòñòâóþùåå RFC äîìåííîå èìÿ
         * prohibited - èñïîëüçîâàíî çàïðåùåííîå äîìåííîå èìÿ
         * bad_token - òàêîãî òîêåíà íå ñóùåñòâåò, èëè ýòîò òîêåí íå âàëèäåí äëÿ ýòîãî äîìåíà
         * no_auth - íå ïåðåäàíû àóòåíòèôèêàöèîííûå è àâòîðèçàöèîííûå äàííûå (ïîëüçîâàòåëüñêèé token èëè OAuth òîêåí + òîêåí ðåãèñòðàòîðà)
         * bad_oauth - OAuth òîêåí íå ïðîøåë ïðîâåðêó
         * not_allowed - ýòîìó àäìèíèñòðàòîðó çàïðåùåíà òàêàÿ îïåðàöèÿ ñ äàííûì äîìåíîì, èëè ýòîò àäìèíèñòðàòîð íå ÿâëÿåòñÿ àäìèíèñòðàòîðîì äàííîãî äîìåíà
         * blocked - ýòîò äîìåí çàáëîêèðîâàí
         * no_login - îòñóòñòâóåò îáÿçàòåëüíûé ïàðàìåòð login
         * no_password - îòñóòñòâóåò îáÿçàòåëüíûé ïàðàìåòð login
         * occupied - òàêîé ÿùèê óæå ñóùåñòâóåò
         * login_reserved - äàííîå èìÿ ÿâëÿåòñÿ ñëóæåáíûì, ìîæíî ñîçäàòü òîëüêî ðàññûëêó ñ òàêèì èìåíåì è ïîäïèñàòüñÿ íà íåå
         * login-empty - ïóñòîé ëîãèí
         * passwd-empty - ïóñòîé ïàðîëü
         * login-toolong - ëîãèí áîëüøå 30 ñèìâîëîâ
         * badlogin - ëîãèí ñîäåðæèò çàïðåùåííûå ñèìâîëû
         * passwd-tooshort - ïàðîëü êîðî÷å 6 ñèìâîëîâ
         * passwd-toolong - ïàðîëü äëèííåå 20 ñèìâîëîâ
         * badpasswd - ïàðîëü ñîäåðæèò çàïðåùåííûå ñèìâîëû
         */
        public static function addUser($token, $domain, $login, $password, &$error)
        {
        }
        /**
         * https://pddimp.yandex.ru/api2/admin/email/get_oauth_token
         *
         * unknown - âðåìåííûé ñáîé, ëèáî íåîïîçíàííàÿ îøèáêà íà íàøåé ñòîðîíå (ïîïðîáóéòå åùå ðàç èëè íàïèøèòå â ñëóæáó ïîääåðæêè)
         * no_token, no_domain, no_ip - îòñóòñâóþò îáÿçàòåëüíûå ïàðàìåòðû
         * bad_domain - ïóñòîå èëè íå ñîîòâåòñòâóþùåå RFC äîìåííîå èìÿ
         * prohibited - èñïîëüçîâàíî çàïðåùåííîå äîìåííîå èìÿ
         * bad_token - òàêîãî òîêåíà íå ñóùåñòâåò, èëè ýòîò òîêåí íå âàëèäåí äëÿ ýòîãî äîìåíà
         * no_auth - íå ïåðåäàíû àóòåíòèôèêàöèîííûå è àâòîðèçàöèîííûå äàííûå (ïîëüçîâàòåëüñêèé token èëè OAuth òîêåí + òîêåí ðåãèñòðàòîðà)
         * bad_oauth - OAuth òîêåí íå ïðîøåë ïðîâåðêó
         * not_allowed - ýòîìó àäìèíèñòðàòîðó çàïðåùåíà òàêàÿ îïåðàöèÿ ñ äàííûì äîìåíîì, èëè ýòîò àäìèíèñòðàòîð íå ÿâëÿåòñÿ àäìèíèñòðàòîðîì äàííîãî äîìåíà
         * blocked - ýòîò äîìåí çàáëîêèðîâàí
         * no_uid_or_login - íå ïåðåäàí íè login, íè uid ÿùèêà
         * user_blocked - àêêàóíò çàáëîêèðîâàí, îáðàòèòåñü â ñëóæáó ïîääåðæêè
         * account_not_found - àêêàóíò íå íàéäåí
         */
        public static function getOAuthToken($token, $domain, $login, &$error)
        {
        }
        public static function passport($country, $oauthToken, $errorUrl)
        {
        }
        /**
         * https://pddimp.yandex.ru/api2/admin/email/del
         *
         *
         */
        public static function getMailInfo($token, $domain, $login, &$error)
        {
        }
        /**
         * https://pddimp.yandex.ru/api2/admin/email/del
         *
         * unknown - âðåìåííûé ñáîé, ëèáî íå îïîçíàííàÿ îøèáêà íà íàøåé ñòîðîíå (ïîïðîáóéòå åùå ðàç èëè íàïèøèòå â ñëóæáó ïîääåðæêè)
         * no_token, no_domain, no_ip - îòñóòñâóþò îáÿçàòåëüíûå ïàðàìåòðû
         * bad_domain - ïóñòîå èëè íå ñîîòâåòñòâóþùåå RFC äîìåííîå èìÿ
         * prohibited - èñïîëüçîâàíî çàïðåùåííîå äîìåííîå èìÿ
         * bad_token - òàêîãî òîêåíà íå ñóùåñòâåò, èëè ýòîò òîêåí íå âàëèäåí äëÿ ýòîãî äîìåíà
         * no_auth - íå ïåðåäàíû àóòåíòèôèêàöèîííûå è àâòîðèçàöèîííûå äàííûå (ïîëüçîâàòåëüñêèé token èëè OAuth òîêåí + òîêåí ðåãèñòðàòîðà)
         * bad_oauth - OAuth òîêåí íå ïðîøåë ïðîâåðêó
         * not_allowed - ýòîìó àäìèíèñòðàòîðó çàïðåùåíà òàêàÿ îïåðàöèÿ ñ äàííûì äîìåíîì, èëè ýòîò àäìèíèñòðàòîð íå ÿâëÿåòñÿ àäìèíèñòðàòîðîì äàííîãî äîìåíà
         * blocked - ýòîò äîìåí çàáëîêèðîâàí
         * no_uid_or_login - íå ïåðåäàí íè login, íè uid
         * user_blocked - àêêàóíò çàáëîêèðîâàí, îáðàòèòåñü â ñëóæáó ïîääåðæêè
         * account_not_found - àêêàóíò íå íàéäåí
         */
        public static function deleteUser($token, $domain, $login, &$error)
        {
        }
        /**
         * https://pddimp.yandex.ru/api2/admin/email/edit
         *
         * unknown - âðåìåííûé ñáîé, ëèáî íå îïîçíàííàÿ îøèáêà íà íàøåé ñòîðîíå (ïîïðîáóéòå åùå ðàç èëè íàïèøèòå â ñëóæáó ïîääåðæêè)
         * no_token, no_domain, no_ip - îòñóòñâóþò îáÿçàòåëüíûå ïàðàìåòðû
         * bad_domain - ïóñòîå èëè íå ñîîòâåòñòâóþùåå RFC äîìåííîå èìÿ
         * prohibited - èñïîëüçîâàíî çàïðåùåííîå äîìåííîå èìÿ
         * bad_token - òàêîãî òîêåíà íå ñóùåñòâåò, èëè ýòîò òîêåí íå âàëèäåí äëÿ ýòîãî äîìåíà
         * no_auth - íå ïåðåäàíû àóòåíòèôèêàöèîííûå è àâòîðèçàöèîííûå äàííûå (ïîëüçîâàòåëüñêèé token èëè OAuth òîêåí + òîêåí ðåãèñòðàòîðà)
         * bad_oauth - OAuth òîêåí íå ïðîøåë ïðîâåðêó
         * not_allowed - ýòîìó àäìèíèñòðàòîðó çàïðåùåíà òàêàÿ îïåðàöèÿ ñ äàííûì äîìåíîì, èëè ýòîò àäìèíèñòðàòîð íå ÿâëÿåòñÿ àäìèíèñòðàòîðîì äàííîãî äîìåíà
         * blocked - ýòîò äîìåí çàáëîêèðîâàí
         * no_uid_or_login - íå ïåðåäàí íè login, íè uid
         * passwd-tooshort - ïàðîëü êîðî÷å 6 ñèìâîëîâ
         * passwd-toolong - ïàðîëü äëèííåå 30 ñèìâîëîâ
         * badpasswd - ïàðîëü ñîäåðæèò çàïðåùåííûå ñèìâîëû
         * user_blocked - àêêàóíò çàáëîêèðîâàí, îáðàòèòåñü â ñëóæáó ïîääåðæêè
         * account_not_found - àêêàóíò íå íàéäåí
         */
        public static function editUser($token, $domain, $login, $data, &$error)
        {
        }
        /**
         * http://pddimp.yandex.ru/api2/admin/email/list
         *
         * unknown - âðåìåííûé ñáîé, ëèáî íå îïîçíàííàÿ îøèáêà íà íàøåé ñòîðîíå (ïîïðîáóéòå åùå ðàç èëè íàïèøèòå â ñëóæáó ïîääåðæêè)
         * no_token, no_domain, no_ip - îòñóòñâóþò îáÿçàòåëüíûå ïàðàìåòðû
         * bad_domain - ïóñòîå èëè íå ñîîòâåòñòâóþùåå RFC äîìåííîå èìÿ
         * prohibited - èñïîëüçîâàíî çàïðåùåííîå äîìåííîå èìÿ
         * bad_token - òàêîãî òîêåíà íå ñóùåñòâåò, èëè ýòîò òîêåí íå âàëèäåí äëÿ ýòîãî äîìåíà
         * no_auth - íå ïåðåäàíû àóòåíòèôèêàöèîííûå è àâòîðèçàöèîííûå äàííûå (ïîëüçîâàòåëüñêèé token èëè OAuth òîêåí + òîêåí ðåãèñòðàòîðà)
         * bad_oauth - OAuth òîêåí íå ïðîøåë ïðîâåðêó
         * not_allowed - ýòîìó àäìèíèñòðàòîðó çàïðåùåíà òàêàÿ îïåðàöèÿ ñ äàííûì äîìåíîì, èëè ýòîò àäìèíèñòðàòîð íå ÿâëÿåòñÿ àäìèíèñòðàòîðîì äàííîãî äîìåíà
         * blocked - ýòîò äîìåí çàáëîêèðîâàí
         */
        public static function getDomainUsers($token, $domain, $per_page = 30, $page = 0, &$error)
        {
        }
        public static function checkLogo($token, $domain, &$error)
        {
        }
        public static function setLogo($token, $domain, $file, &$error)
        {
        }
        public static function setCountry($token, $domain, $country, &$error)
        {
        }
        private static function post($url, $data)
        {
        }
        private static function get($url, $data)
        {
        }
        private static function setError($result, &$error)
        {
        }
    }
    class CMailRestService extends \IRestService
    {
        public static function OnRestServiceBuildDescription()
        {
        }
        public static function mailserviceFields($arParams)
        {
        }
        public static function mailserviceList($arParams)
        {
        }
        public static function mailserviceGet($arParams)
        {
        }
        public static function mailserviceAdd($arParams)
        {
        }
        public static function mailserviceUpdate($arParams)
        {
        }
        public static function mailserviceDelete($arParams)
        {
        }
    }
    class CSMTPServer
    {
        var $arServers = array();
        var $logFile;
        var $logFileName = "/bitrix/modules/smtpd.log";
        var $logLevel = 10;
        var $logMaxSize = 2000000;
        var $startPeriodTimeTruncate;
        var $startTime;
        function WriteToLog($txt, $level)
        {
        }
        public static function Run()
        {
        }
        function Start()
        {
        }
        function ReloadServers()
        {
        }
        function Listen()
        {
        }
        function FindServerSocket($s)
        {
        }
        function FindServerConnection($s)
        {
        }
        function Stop()
        {
        }
        function RemoveHost($i)
        {
        }
    }
    class CSMTPServerHost
    {
        var $sockServer;
        var $server;
        var $initialized;
        var $arClients = array();
        var $arClientsIndex = array();
        var $lastClientId;
        var $arSockets = array();
        var $startPeriodTime;
        var $arFields = array();
        var $msgCount = 0;
        var $conCount = 0;
        function FindConnection($s)
        {
        }
        function GetSockets()
        {
        }
        function CSMTPServerHost($server, $arFields)
        {
        }
        function AddConnection()
        {
        }
        function RemoveConnection($id)
        {
        }
        function WriteToLog($txt, $level)
        {
        }
        function Start()
        {
        }
        function Stop($num)
        {
        }
        function _Stop()
        {
        }
        function CheckTimeout($timeout)
        {
        }
    }
    class CSMTPConnection
    {
        var $id;
        var $sock;
        var $connected = \false;
        var $authenticated = \false;
        var $readBuffer = "";
        var $__listenFunc = \false;
        var $arMsg = array();
        var $server;
        var $lastRecieve;
        var $auth_user_id = 0;
        var $msgCount = 0;
        function CSMTPConnection($id, $sock, $serv)
        {
        }
        function WriteToLog($txt, $level)
        {
        }
        function Receive()
        {
        }
        function __ParseBuffer()
        {
        }
        function Send($code, $text = "")
        {
        }
        function __Send($message)
        {
        }
        function Disconnect()
        {
        }
        function CheckRelaying($email)
        {
        }
        //îáðàáîò÷èê êîìàíä
        function __ProcessCommand($command, $arg = '')
        {
        }
        function Authorize($login, $password)
        {
        }
        function __AuthLoginHandler()
        {
        }
        function __AuthPlainHandler()
        {
        }
        function __DataHandler()
        {
        }
    }
    class CMailYandex
    {
        public function __construct()
        {
        }
        public static function checkUser($token, $login, &$error)
        {
        }
        public static function registerUserToken($token, $login, $password, &$error)
        {
        }
        public static function userOAuthToken($token, $domain, $login, &$error)
        {
        }
        public static function passport($country, $oauthToken, $errorUrl)
        {
        }
        public static function deleteUser($token, $login, &$error)
        {
        }
        public static function getMailInfo($token, $login, &$error)
        {
        }
        // post
        public static function getUserInfo($token, $login, &$error)
        {
        }
        public static function editUser($token, $login, $data, &$error)
        {
        }
        public static function getDomainUsers($token, $per_page = 30, $page = 0, &$error)
        {
        }
        public static function addLogo($token, $domain, $file, &$error)
        {
        }
        private static function query($query, $data)
        {
        }
        private static function setError($xml, &$error)
        {
        }
        private static function setError2($xml, &$error)
        {
        }
    }
    class CMailDomainRegistrar
    {
        /**
         * Allowed registrar classes by zones.
         */
        const REGISTRAR_CLASSES = ['ru' => '\\Bitrix\\Mail\\Registrar\\RegRu', 'ua' => '\\Bitrix\\Mail\\Registrar\\Omnilance'];
        /**
         * Current registrar class.
         * @var string
         */
        private static $classRegistrar = '\\Bitrix\\Mail\\Registrar\\RegRu';
        /**
         * Sets new class registrar.
         * @param string $className Class name.
         * @return void
         */
        public static function setRegistrarClass(string $className) : void
        {
        }
        /**
         * Checks domain available.
         * @param string $user User name.
         * @param string $password User password.
         * @param string $domain Domain name.
         * @param string|null &$error Error message if occurred.
         * @return bool|null Returns true if domain exists.
         */
        public static function isDomainExists(string $user, string $password, string $domain, ?string &$error) : ?bool
        {
        }
        /**
         * Suggests domains by query words.
         * @param string $user User name.
         * @param string $password User password.
         * @param string $word1 Query word 1.
         * @param string $word2 Query word 2.
         * @param array $tlds Query tlds.
         * @param string|null &$error Error message if occurred.
         * @return array|null
         */
        public static function suggestDomain(string $user, string $password, ?string $word1, ?string $word2, array $tlds, ?string &$error) : ?array
        {
        }
        /**
         * Creates new domain.
         * @param string $user User name.
         * @param string $password User password.
         * @param string $domain Domain name.
         * @param array $params Additional params.
         * @param string|null &$error Error message if occurred.
         * @return bool|null Returns true on success.
         */
        public static function createDomain(string $user, string $password, string $domain, array $params, ?string &$error) : ?bool
        {
        }
        public static function checkDomain($user, $password, $domain, &$error)
        {
        }
        public static function renewDomain($user, $password, $domain, &$error)
        {
        }
        /**
         * Updates domain DNS.
         * @param string $user User name.
         * @param string $password User password.
         * @param string $domain Domain name.
         * @param array $params Additional params.
         * @param string|null &$error Error message if occurred.
         * @return bool|null Returns true on success.
         */
        public static function updateDns(string $user, string $password, string $domain, array $params, ?string &$error) : ?bool
        {
        }
        public static function getDomainsList($user, $password, $filter = array(), &$error)
        {
        }
        private static function getErrorCode($error)
        {
        }
    }
    class CMailImap
    {
        protected $imap_stream;
        protected $counter;
        public function __construct()
        {
        }
        public function connect($host, $port, $timeout = 1, $skip_cert = \false)
        {
        }
        public function authenticate($login, $password)
        {
        }
        public function getUnseen()
        {
        }
        protected function sendCommand($command)
        {
        }
        protected function readLine()
        {
        }
        protected function readResponse($tag)
        {
        }
    }
    class CMailbox extends \CAllMailBox
    {
        function CleanUp()
        {
        }
    }
    class CMailUtil extends \CAllMailUtil
    {
        public static function IsSizeAllowed($size)
        {
        }
    }
    class CMailMessage extends \CAllMailMessage
    {
    }
}
namespace Bitrix\Mail {
    /**
     * BlacklistEmail
     * @see \Bitrix\Mail\BlacklistTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getSiteId()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string remindActualSiteId()
     * @method \string requireSiteId()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail resetSiteId()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail unsetSiteId()
     * @method \string fillSiteId()
     * @method \int getMailboxId()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail setMailboxId(\int|\Bitrix\Main\DB\SqlExpression $mailboxId)
     * @method bool hasMailboxId()
     * @method bool isMailboxIdFilled()
     * @method bool isMailboxIdChanged()
     * @method \int remindActualMailboxId()
     * @method \int requireMailboxId()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail resetMailboxId()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail unsetMailboxId()
     * @method \int fillMailboxId()
     * @method \int getUserId()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail resetUserId()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail unsetUserId()
     * @method \int fillUserId()
     * @method \int getItemType()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail setItemType(\int|\Bitrix\Main\DB\SqlExpression $itemType)
     * @method bool hasItemType()
     * @method bool isItemTypeFilled()
     * @method bool isItemTypeChanged()
     * @method \int remindActualItemType()
     * @method \int requireItemType()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail resetItemType()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail unsetItemType()
     * @method \int fillItemType()
     * @method \string getItemValue()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail setItemValue(\string|\Bitrix\Main\DB\SqlExpression $itemValue)
     * @method bool hasItemValue()
     * @method bool isItemValueFilled()
     * @method bool isItemValueChanged()
     * @method \string remindActualItemValue()
     * @method \string requireItemValue()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail resetItemValue()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail unsetItemValue()
     * @method \string fillItemValue()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail set($fieldName, $value)
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail reset($fieldName)
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\Internals\Entity\BlacklistEmail wakeUp($data)
     */
    class EO_Blacklist
    {
        /* @var \Bitrix\Mail\BlacklistTable */
        public static $dataClass = '\\Bitrix\\Mail\\BlacklistTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Blacklist_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getSiteIdList()
     * @method \string[] fillSiteId()
     * @method \int[] getMailboxIdList()
     * @method \int[] fillMailboxId()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \int[] getItemTypeList()
     * @method \int[] fillItemType()
     * @method \string[] getItemValueList()
     * @method \string[] fillItemValue()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\Internals\Entity\BlacklistEmail $object)
     * @method bool has(\Bitrix\Mail\Internals\Entity\BlacklistEmail $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail getByPrimary($primary)
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail[] getAll()
     * @method bool remove(\Bitrix\Mail\Internals\Entity\BlacklistEmail $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\EO_Blacklist_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Blacklist_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\BlacklistTable */
        public static $dataClass = '\\Bitrix\\Mail\\BlacklistTable';
    }
    /**
     * @method static EO_Blacklist_Query query()
     * @method static EO_Blacklist_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Blacklist_Result getById($id)
     * @method static EO_Blacklist_Result getList(array $parameters = array())
     * @method static EO_Blacklist_Entity getEntity()
     * @method static \Bitrix\Mail\Internals\Entity\BlacklistEmail createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\EO_Blacklist_Collection createCollection()
     * @method static \Bitrix\Mail\Internals\Entity\BlacklistEmail wakeUpObject($row)
     * @method static \Bitrix\Mail\EO_Blacklist_Collection wakeUpCollection($rows)
     */
    class BlacklistTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Blacklist_Result exec()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail fetchObject()
     * @method \Bitrix\Mail\EO_Blacklist_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Blacklist_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail fetchObject()
     * @method \Bitrix\Mail\EO_Blacklist_Collection fetchCollection()
     */
    class EO_Blacklist_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\EO_Blacklist_Collection createCollection()
     * @method \Bitrix\Mail\Internals\Entity\BlacklistEmail wakeUpObject($row)
     * @method \Bitrix\Mail\EO_Blacklist_Collection wakeUpCollection($rows)
     */
    class EO_Blacklist_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Mail\Internals {
    /**
     * EO_DomainEmail
     * @see \Bitrix\Mail\Internals\DomainEmailTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getDomain()
     * @method \Bitrix\Mail\Internals\EO_DomainEmail setDomain(\string|\Bitrix\Main\DB\SqlExpression $domain)
     * @method bool hasDomain()
     * @method bool isDomainFilled()
     * @method bool isDomainChanged()
     * @method \string getLogin()
     * @method \Bitrix\Mail\Internals\EO_DomainEmail setLogin(\string|\Bitrix\Main\DB\SqlExpression $login)
     * @method bool hasLogin()
     * @method bool isLoginFilled()
     * @method bool isLoginChanged()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\Internals\EO_DomainEmail set($fieldName, $value)
     * @method \Bitrix\Mail\Internals\EO_DomainEmail reset($fieldName)
     * @method \Bitrix\Mail\Internals\EO_DomainEmail unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\Internals\EO_DomainEmail wakeUp($data)
     */
    class EO_DomainEmail
    {
        /* @var \Bitrix\Mail\Internals\DomainEmailTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\DomainEmailTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_DomainEmail_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getDomainList()
     * @method \string[] getLoginList()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\Internals\EO_DomainEmail $object)
     * @method bool has(\Bitrix\Mail\Internals\EO_DomainEmail $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_DomainEmail getByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_DomainEmail[] getAll()
     * @method bool remove(\Bitrix\Mail\Internals\EO_DomainEmail $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\Internals\EO_DomainEmail_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\Internals\EO_DomainEmail current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_DomainEmail_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\Internals\DomainEmailTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\DomainEmailTable';
    }
    /**
     * @method static EO_DomainEmail_Query query()
     * @method static EO_DomainEmail_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_DomainEmail_Result getById($id)
     * @method static EO_DomainEmail_Result getList(array $parameters = array())
     * @method static EO_DomainEmail_Entity getEntity()
     * @method static \Bitrix\Mail\Internals\EO_DomainEmail createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\Internals\EO_DomainEmail_Collection createCollection()
     * @method static \Bitrix\Mail\Internals\EO_DomainEmail wakeUpObject($row)
     * @method static \Bitrix\Mail\Internals\EO_DomainEmail_Collection wakeUpCollection($rows)
     */
    class DomainEmailTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_DomainEmail_Result exec()
     * @method \Bitrix\Mail\Internals\EO_DomainEmail fetchObject()
     * @method \Bitrix\Mail\Internals\EO_DomainEmail_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_DomainEmail_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_DomainEmail fetchObject()
     * @method \Bitrix\Mail\Internals\EO_DomainEmail_Collection fetchCollection()
     */
    class EO_DomainEmail_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_DomainEmail createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\Internals\EO_DomainEmail_Collection createCollection()
     * @method \Bitrix\Mail\Internals\EO_DomainEmail wakeUpObject($row)
     * @method \Bitrix\Mail\Internals\EO_DomainEmail_Collection wakeUpCollection($rows)
     */
    class EO_DomainEmail_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * MailboxDirectory
     * @see \Bitrix\Mail\Internals\MailboxDirectoryTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getMailboxId()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setMailboxId(\int|\Bitrix\Main\DB\SqlExpression $mailboxId)
     * @method bool hasMailboxId()
     * @method bool isMailboxIdFilled()
     * @method bool isMailboxIdChanged()
     * @method \int remindActualMailboxId()
     * @method \int requireMailboxId()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetMailboxId()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetMailboxId()
     * @method \int fillMailboxId()
     * @method \string getName()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetName()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetName()
     * @method \string fillName()
     * @method \string getPath()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setPath(\string|\Bitrix\Main\DB\SqlExpression $path)
     * @method bool hasPath()
     * @method bool isPathFilled()
     * @method bool isPathChanged()
     * @method \string remindActualPath()
     * @method \string requirePath()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetPath()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetPath()
     * @method \string fillPath()
     * @method \string getFlags()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setFlags(\string|\Bitrix\Main\DB\SqlExpression $flags)
     * @method bool hasFlags()
     * @method bool isFlagsFilled()
     * @method bool isFlagsChanged()
     * @method \string remindActualFlags()
     * @method \string requireFlags()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetFlags()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetFlags()
     * @method \string fillFlags()
     * @method \string getDelimiter()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setDelimiter(\string|\Bitrix\Main\DB\SqlExpression $delimiter)
     * @method bool hasDelimiter()
     * @method bool isDelimiterFilled()
     * @method bool isDelimiterChanged()
     * @method \string remindActualDelimiter()
     * @method \string requireDelimiter()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetDelimiter()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetDelimiter()
     * @method \string fillDelimiter()
     * @method \string getDirMd5()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setDirMd5(\string|\Bitrix\Main\DB\SqlExpression $dirMd5)
     * @method bool hasDirMd5()
     * @method bool isDirMd5Filled()
     * @method bool isDirMd5Changed()
     * @method \string remindActualDirMd5()
     * @method \string requireDirMd5()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetDirMd5()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetDirMd5()
     * @method \string fillDirMd5()
     * @method \int getLevel()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setLevel(\int|\Bitrix\Main\DB\SqlExpression $level)
     * @method bool hasLevel()
     * @method bool isLevelFilled()
     * @method bool isLevelChanged()
     * @method \int remindActualLevel()
     * @method \int requireLevel()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetLevel()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetLevel()
     * @method \int fillLevel()
     * @method \int getMessageCount()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setMessageCount(\int|\Bitrix\Main\DB\SqlExpression $messageCount)
     * @method bool hasMessageCount()
     * @method bool isMessageCountFilled()
     * @method bool isMessageCountChanged()
     * @method \int remindActualMessageCount()
     * @method \int requireMessageCount()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetMessageCount()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetMessageCount()
     * @method \int fillMessageCount()
     * @method \int getParentId()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setParentId(\int|\Bitrix\Main\DB\SqlExpression $parentId)
     * @method bool hasParentId()
     * @method bool isParentIdFilled()
     * @method bool isParentIdChanged()
     * @method \int remindActualParentId()
     * @method \int requireParentId()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetParentId()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetParentId()
     * @method \int fillParentId()
     * @method \int getRootId()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setRootId(\int|\Bitrix\Main\DB\SqlExpression $rootId)
     * @method bool hasRootId()
     * @method bool isRootIdFilled()
     * @method bool isRootIdChanged()
     * @method \int remindActualRootId()
     * @method \int requireRootId()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetRootId()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetRootId()
     * @method \int fillRootId()
     * @method \int getIsSync()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setIsSync(\int|\Bitrix\Main\DB\SqlExpression $isSync)
     * @method bool hasIsSync()
     * @method bool isIsSyncFilled()
     * @method bool isIsSyncChanged()
     * @method \int remindActualIsSync()
     * @method \int requireIsSync()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetIsSync()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetIsSync()
     * @method \int fillIsSync()
     * @method \int getIsDisabled()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setIsDisabled(\int|\Bitrix\Main\DB\SqlExpression $isDisabled)
     * @method bool hasIsDisabled()
     * @method bool isIsDisabledFilled()
     * @method bool isIsDisabledChanged()
     * @method \int remindActualIsDisabled()
     * @method \int requireIsDisabled()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetIsDisabled()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetIsDisabled()
     * @method \int fillIsDisabled()
     * @method \int getIsIncome()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setIsIncome(\int|\Bitrix\Main\DB\SqlExpression $isIncome)
     * @method bool hasIsIncome()
     * @method bool isIsIncomeFilled()
     * @method bool isIsIncomeChanged()
     * @method \int remindActualIsIncome()
     * @method \int requireIsIncome()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetIsIncome()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetIsIncome()
     * @method \int fillIsIncome()
     * @method \int getIsOutcome()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setIsOutcome(\int|\Bitrix\Main\DB\SqlExpression $isOutcome)
     * @method bool hasIsOutcome()
     * @method bool isIsOutcomeFilled()
     * @method bool isIsOutcomeChanged()
     * @method \int remindActualIsOutcome()
     * @method \int requireIsOutcome()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetIsOutcome()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetIsOutcome()
     * @method \int fillIsOutcome()
     * @method \int getIsDraft()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setIsDraft(\int|\Bitrix\Main\DB\SqlExpression $isDraft)
     * @method bool hasIsDraft()
     * @method bool isIsDraftFilled()
     * @method bool isIsDraftChanged()
     * @method \int remindActualIsDraft()
     * @method \int requireIsDraft()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetIsDraft()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetIsDraft()
     * @method \int fillIsDraft()
     * @method \int getIsTrash()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setIsTrash(\int|\Bitrix\Main\DB\SqlExpression $isTrash)
     * @method bool hasIsTrash()
     * @method bool isIsTrashFilled()
     * @method bool isIsTrashChanged()
     * @method \int remindActualIsTrash()
     * @method \int requireIsTrash()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetIsTrash()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetIsTrash()
     * @method \int fillIsTrash()
     * @method \int getIsSpam()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setIsSpam(\int|\Bitrix\Main\DB\SqlExpression $isSpam)
     * @method bool hasIsSpam()
     * @method bool isIsSpamFilled()
     * @method bool isIsSpamChanged()
     * @method \int remindActualIsSpam()
     * @method \int requireIsSpam()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetIsSpam()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetIsSpam()
     * @method \int fillIsSpam()
     * @method \int getSyncTime()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setSyncTime(\int|\Bitrix\Main\DB\SqlExpression $syncTime)
     * @method bool hasSyncTime()
     * @method bool isSyncTimeFilled()
     * @method bool isSyncTimeChanged()
     * @method \int remindActualSyncTime()
     * @method \int requireSyncTime()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetSyncTime()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetSyncTime()
     * @method \int fillSyncTime()
     * @method \int getSyncLock()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory setSyncLock(\int|\Bitrix\Main\DB\SqlExpression $syncLock)
     * @method bool hasSyncLock()
     * @method bool isSyncLockFilled()
     * @method bool isSyncLockChanged()
     * @method \int remindActualSyncLock()
     * @method \int requireSyncLock()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory resetSyncLock()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unsetSyncLock()
     * @method \int fillSyncLock()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory set($fieldName, $value)
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory reset($fieldName)
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\Internals\Entity\MailboxDirectory wakeUp($data)
     */
    class EO_MailboxDirectory
    {
        /* @var \Bitrix\Mail\Internals\MailboxDirectoryTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\MailboxDirectoryTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_MailboxDirectory_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getMailboxIdList()
     * @method \int[] fillMailboxId()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getPathList()
     * @method \string[] fillPath()
     * @method \string[] getFlagsList()
     * @method \string[] fillFlags()
     * @method \string[] getDelimiterList()
     * @method \string[] fillDelimiter()
     * @method \string[] getDirMd5List()
     * @method \string[] fillDirMd5()
     * @method \int[] getLevelList()
     * @method \int[] fillLevel()
     * @method \int[] getMessageCountList()
     * @method \int[] fillMessageCount()
     * @method \int[] getParentIdList()
     * @method \int[] fillParentId()
     * @method \int[] getRootIdList()
     * @method \int[] fillRootId()
     * @method \int[] getIsSyncList()
     * @method \int[] fillIsSync()
     * @method \int[] getIsDisabledList()
     * @method \int[] fillIsDisabled()
     * @method \int[] getIsIncomeList()
     * @method \int[] fillIsIncome()
     * @method \int[] getIsOutcomeList()
     * @method \int[] fillIsOutcome()
     * @method \int[] getIsDraftList()
     * @method \int[] fillIsDraft()
     * @method \int[] getIsTrashList()
     * @method \int[] fillIsTrash()
     * @method \int[] getIsSpamList()
     * @method \int[] fillIsSpam()
     * @method \int[] getSyncTimeList()
     * @method \int[] fillSyncTime()
     * @method \int[] getSyncLockList()
     * @method \int[] fillSyncLock()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\Internals\Entity\MailboxDirectory $object)
     * @method bool has(\Bitrix\Mail\Internals\Entity\MailboxDirectory $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory getByPrimary($primary)
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory[] getAll()
     * @method bool remove(\Bitrix\Mail\Internals\Entity\MailboxDirectory $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\Internals\EO_MailboxDirectory_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_MailboxDirectory_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\Internals\MailboxDirectoryTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\MailboxDirectoryTable';
    }
    /**
     * @method static EO_MailboxDirectory_Query query()
     * @method static EO_MailboxDirectory_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_MailboxDirectory_Result getById($id)
     * @method static EO_MailboxDirectory_Result getList(array $parameters = array())
     * @method static EO_MailboxDirectory_Entity getEntity()
     * @method static \Bitrix\Mail\Internals\Entity\MailboxDirectory createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\Internals\EO_MailboxDirectory_Collection createCollection()
     * @method static \Bitrix\Mail\Internals\Entity\MailboxDirectory wakeUpObject($row)
     * @method static \Bitrix\Mail\Internals\EO_MailboxDirectory_Collection wakeUpCollection($rows)
     */
    class MailboxDirectoryTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_MailboxDirectory_Result exec()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory fetchObject()
     * @method \Bitrix\Mail\Internals\EO_MailboxDirectory_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_MailboxDirectory_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory fetchObject()
     * @method \Bitrix\Mail\Internals\EO_MailboxDirectory_Collection fetchCollection()
     */
    class EO_MailboxDirectory_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\Internals\EO_MailboxDirectory_Collection createCollection()
     * @method \Bitrix\Mail\Internals\Entity\MailboxDirectory wakeUpObject($row)
     * @method \Bitrix\Mail\Internals\EO_MailboxDirectory_Collection wakeUpCollection($rows)
     */
    class EO_MailboxDirectory_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * UserSignature
     * @see \Bitrix\Mail\Internals\UserSignatureTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Mail\Internals\Entity\UserSignature setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Mail\Internals\Entity\UserSignature setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Mail\Internals\Entity\UserSignature resetUserId()
     * @method \Bitrix\Mail\Internals\Entity\UserSignature unsetUserId()
     * @method \int fillUserId()
     * @method \string getSignature()
     * @method \Bitrix\Mail\Internals\Entity\UserSignature setSignature(\string|\Bitrix\Main\DB\SqlExpression $signature)
     * @method bool hasSignature()
     * @method bool isSignatureFilled()
     * @method bool isSignatureChanged()
     * @method \string remindActualSignature()
     * @method \string requireSignature()
     * @method \Bitrix\Mail\Internals\Entity\UserSignature resetSignature()
     * @method \Bitrix\Mail\Internals\Entity\UserSignature unsetSignature()
     * @method \string fillSignature()
     * @method \string getSender()
     * @method \Bitrix\Mail\Internals\Entity\UserSignature setSender(\string|\Bitrix\Main\DB\SqlExpression $sender)
     * @method bool hasSender()
     * @method bool isSenderFilled()
     * @method bool isSenderChanged()
     * @method \string remindActualSender()
     * @method \string requireSender()
     * @method \Bitrix\Mail\Internals\Entity\UserSignature resetSender()
     * @method \Bitrix\Mail\Internals\Entity\UserSignature unsetSender()
     * @method \string fillSender()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\Internals\Entity\UserSignature set($fieldName, $value)
     * @method \Bitrix\Mail\Internals\Entity\UserSignature reset($fieldName)
     * @method \Bitrix\Mail\Internals\Entity\UserSignature unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\Internals\Entity\UserSignature wakeUp($data)
     */
    class EO_UserSignature
    {
        /* @var \Bitrix\Mail\Internals\UserSignatureTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\UserSignatureTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserSignature_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \string[] getSignatureList()
     * @method \string[] fillSignature()
     * @method \string[] getSenderList()
     * @method \string[] fillSender()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\Internals\Entity\UserSignature $object)
     * @method bool has(\Bitrix\Mail\Internals\Entity\UserSignature $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\Internals\Entity\UserSignature getByPrimary($primary)
     * @method \Bitrix\Mail\Internals\Entity\UserSignature[] getAll()
     * @method bool remove(\Bitrix\Mail\Internals\Entity\UserSignature $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\Internals\EO_UserSignature_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\Internals\Entity\UserSignature current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserSignature_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\Internals\UserSignatureTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\UserSignatureTable';
    }
    /**
     * @method static EO_UserSignature_Query query()
     * @method static EO_UserSignature_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserSignature_Result getById($id)
     * @method static EO_UserSignature_Result getList(array $parameters = array())
     * @method static EO_UserSignature_Entity getEntity()
     * @method static \Bitrix\Mail\Internals\Entity\UserSignature createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\Internals\EO_UserSignature_Collection createCollection()
     * @method static \Bitrix\Mail\Internals\Entity\UserSignature wakeUpObject($row)
     * @method static \Bitrix\Mail\Internals\EO_UserSignature_Collection wakeUpCollection($rows)
     */
    class UserSignatureTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserSignature_Result exec()
     * @method \Bitrix\Mail\Internals\Entity\UserSignature fetchObject()
     * @method \Bitrix\Mail\Internals\EO_UserSignature_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserSignature_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\Entity\UserSignature fetchObject()
     * @method \Bitrix\Mail\Internals\EO_UserSignature_Collection fetchCollection()
     */
    class EO_UserSignature_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\Entity\UserSignature createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\Internals\EO_UserSignature_Collection createCollection()
     * @method \Bitrix\Mail\Internals\Entity\UserSignature wakeUpObject($row)
     * @method \Bitrix\Mail\Internals\EO_UserSignature_Collection wakeUpCollection($rows)
     */
    class EO_UserSignature_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_MailboxAccess
     * @see \Bitrix\Mail\Internals\MailboxAccessTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getMailboxId()
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess setMailboxId(\int|\Bitrix\Main\DB\SqlExpression $mailboxId)
     * @method bool hasMailboxId()
     * @method bool isMailboxIdFilled()
     * @method bool isMailboxIdChanged()
     * @method \int remindActualMailboxId()
     * @method \int requireMailboxId()
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess resetMailboxId()
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess unsetMailboxId()
     * @method \int fillMailboxId()
     * @method \int getTaskId()
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess setTaskId(\int|\Bitrix\Main\DB\SqlExpression $taskId)
     * @method bool hasTaskId()
     * @method bool isTaskIdFilled()
     * @method bool isTaskIdChanged()
     * @method \int remindActualTaskId()
     * @method \int requireTaskId()
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess resetTaskId()
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess unsetTaskId()
     * @method \int fillTaskId()
     * @method \string getAccessCode()
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess setAccessCode(\string|\Bitrix\Main\DB\SqlExpression $accessCode)
     * @method bool hasAccessCode()
     * @method bool isAccessCodeFilled()
     * @method bool isAccessCodeChanged()
     * @method \string remindActualAccessCode()
     * @method \string requireAccessCode()
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess resetAccessCode()
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess unsetAccessCode()
     * @method \string fillAccessCode()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess set($fieldName, $value)
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess reset($fieldName)
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\Internals\EO_MailboxAccess wakeUp($data)
     */
    class EO_MailboxAccess
    {
        /* @var \Bitrix\Mail\Internals\MailboxAccessTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\MailboxAccessTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_MailboxAccess_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getMailboxIdList()
     * @method \int[] fillMailboxId()
     * @method \int[] getTaskIdList()
     * @method \int[] fillTaskId()
     * @method \string[] getAccessCodeList()
     * @method \string[] fillAccessCode()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\Internals\EO_MailboxAccess $object)
     * @method bool has(\Bitrix\Mail\Internals\EO_MailboxAccess $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess getByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess[] getAll()
     * @method bool remove(\Bitrix\Mail\Internals\EO_MailboxAccess $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\Internals\EO_MailboxAccess_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_MailboxAccess_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\Internals\MailboxAccessTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\MailboxAccessTable';
    }
    /**
     * @method static EO_MailboxAccess_Query query()
     * @method static EO_MailboxAccess_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_MailboxAccess_Result getById($id)
     * @method static EO_MailboxAccess_Result getList(array $parameters = array())
     * @method static EO_MailboxAccess_Entity getEntity()
     * @method static \Bitrix\Mail\Internals\EO_MailboxAccess createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\Internals\EO_MailboxAccess_Collection createCollection()
     * @method static \Bitrix\Mail\Internals\EO_MailboxAccess wakeUpObject($row)
     * @method static \Bitrix\Mail\Internals\EO_MailboxAccess_Collection wakeUpCollection($rows)
     */
    class MailboxAccessTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_MailboxAccess_Result exec()
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess fetchObject()
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_MailboxAccess_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess fetchObject()
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess_Collection fetchCollection()
     */
    class EO_MailboxAccess_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess_Collection createCollection()
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess wakeUpObject($row)
     * @method \Bitrix\Mail\Internals\EO_MailboxAccess_Collection wakeUpCollection($rows)
     */
    class EO_MailboxAccess_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_MailContact
     * @see \Bitrix\Mail\Internals\MailContactTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Mail\Internals\EO_MailContact setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getEmail()
     * @method \Bitrix\Mail\Internals\EO_MailContact setEmail(\string|\Bitrix\Main\DB\SqlExpression $email)
     * @method bool hasEmail()
     * @method bool isEmailFilled()
     * @method bool isEmailChanged()
     * @method \string remindActualEmail()
     * @method \string requireEmail()
     * @method \Bitrix\Mail\Internals\EO_MailContact resetEmail()
     * @method \Bitrix\Mail\Internals\EO_MailContact unsetEmail()
     * @method \string fillEmail()
     * @method \string getName()
     * @method \Bitrix\Mail\Internals\EO_MailContact setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Mail\Internals\EO_MailContact resetName()
     * @method \Bitrix\Mail\Internals\EO_MailContact unsetName()
     * @method \string fillName()
     * @method \string getIcon()
     * @method \Bitrix\Mail\Internals\EO_MailContact setIcon(\string|\Bitrix\Main\DB\SqlExpression $icon)
     * @method bool hasIcon()
     * @method bool isIconFilled()
     * @method bool isIconChanged()
     * @method \string remindActualIcon()
     * @method \string requireIcon()
     * @method \Bitrix\Mail\Internals\EO_MailContact resetIcon()
     * @method \Bitrix\Mail\Internals\EO_MailContact unsetIcon()
     * @method \string fillIcon()
     * @method \int getFileId()
     * @method \Bitrix\Mail\Internals\EO_MailContact setFileId(\int|\Bitrix\Main\DB\SqlExpression $fileId)
     * @method bool hasFileId()
     * @method bool isFileIdFilled()
     * @method bool isFileIdChanged()
     * @method \int remindActualFileId()
     * @method \int requireFileId()
     * @method \Bitrix\Mail\Internals\EO_MailContact resetFileId()
     * @method \Bitrix\Mail\Internals\EO_MailContact unsetFileId()
     * @method \int fillFileId()
     * @method \int getUserId()
     * @method \Bitrix\Mail\Internals\EO_MailContact setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Mail\Internals\EO_MailContact resetUserId()
     * @method \Bitrix\Mail\Internals\EO_MailContact unsetUserId()
     * @method \int fillUserId()
     * @method \string getAddedFrom()
     * @method \Bitrix\Mail\Internals\EO_MailContact setAddedFrom(\string|\Bitrix\Main\DB\SqlExpression $addedFrom)
     * @method bool hasAddedFrom()
     * @method bool isAddedFromFilled()
     * @method bool isAddedFromChanged()
     * @method \string remindActualAddedFrom()
     * @method \string requireAddedFrom()
     * @method \Bitrix\Mail\Internals\EO_MailContact resetAddedFrom()
     * @method \Bitrix\Mail\Internals\EO_MailContact unsetAddedFrom()
     * @method \string fillAddedFrom()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\Internals\EO_MailContact set($fieldName, $value)
     * @method \Bitrix\Mail\Internals\EO_MailContact reset($fieldName)
     * @method \Bitrix\Mail\Internals\EO_MailContact unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\Internals\EO_MailContact wakeUp($data)
     */
    class EO_MailContact
    {
        /* @var \Bitrix\Mail\Internals\MailContactTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\MailContactTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_MailContact_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getEmailList()
     * @method \string[] fillEmail()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getIconList()
     * @method \string[] fillIcon()
     * @method \int[] getFileIdList()
     * @method \int[] fillFileId()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \string[] getAddedFromList()
     * @method \string[] fillAddedFrom()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\Internals\EO_MailContact $object)
     * @method bool has(\Bitrix\Mail\Internals\EO_MailContact $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_MailContact getByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_MailContact[] getAll()
     * @method bool remove(\Bitrix\Mail\Internals\EO_MailContact $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\Internals\EO_MailContact_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\Internals\EO_MailContact current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_MailContact_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\Internals\MailContactTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\MailContactTable';
    }
    /**
     * @method static EO_MailContact_Query query()
     * @method static EO_MailContact_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_MailContact_Result getById($id)
     * @method static EO_MailContact_Result getList(array $parameters = array())
     * @method static EO_MailContact_Entity getEntity()
     * @method static \Bitrix\Mail\Internals\EO_MailContact createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\Internals\EO_MailContact_Collection createCollection()
     * @method static \Bitrix\Mail\Internals\EO_MailContact wakeUpObject($row)
     * @method static \Bitrix\Mail\Internals\EO_MailContact_Collection wakeUpCollection($rows)
     */
    class MailContactTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_MailContact_Result exec()
     * @method \Bitrix\Mail\Internals\EO_MailContact fetchObject()
     * @method \Bitrix\Mail\Internals\EO_MailContact_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_MailContact_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_MailContact fetchObject()
     * @method \Bitrix\Mail\Internals\EO_MailContact_Collection fetchCollection()
     */
    class EO_MailContact_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_MailContact createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\Internals\EO_MailContact_Collection createCollection()
     * @method \Bitrix\Mail\Internals\EO_MailContact wakeUpObject($row)
     * @method \Bitrix\Mail\Internals\EO_MailContact_Collection wakeUpCollection($rows)
     */
    class EO_MailContact_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_MailMessageAttachment
     * @see \Bitrix\Mail\Internals\MailMessageAttachmentTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getMessageId()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment setMessageId(\int|\Bitrix\Main\DB\SqlExpression $messageId)
     * @method bool hasMessageId()
     * @method bool isMessageIdFilled()
     * @method bool isMessageIdChanged()
     * @method \int remindActualMessageId()
     * @method \int requireMessageId()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment resetMessageId()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment unsetMessageId()
     * @method \int fillMessageId()
     * @method \int getFileId()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment setFileId(\int|\Bitrix\Main\DB\SqlExpression $fileId)
     * @method bool hasFileId()
     * @method bool isFileIdFilled()
     * @method bool isFileIdChanged()
     * @method \int remindActualFileId()
     * @method \int requireFileId()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment resetFileId()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment unsetFileId()
     * @method \int fillFileId()
     * @method \string getFileName()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment setFileName(\string|\Bitrix\Main\DB\SqlExpression $fileName)
     * @method bool hasFileName()
     * @method bool isFileNameFilled()
     * @method bool isFileNameChanged()
     * @method \string remindActualFileName()
     * @method \string requireFileName()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment resetFileName()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment unsetFileName()
     * @method \string fillFileName()
     * @method \int getFileSize()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment setFileSize(\int|\Bitrix\Main\DB\SqlExpression $fileSize)
     * @method bool hasFileSize()
     * @method bool isFileSizeFilled()
     * @method bool isFileSizeChanged()
     * @method \int remindActualFileSize()
     * @method \int requireFileSize()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment resetFileSize()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment unsetFileSize()
     * @method \int fillFileSize()
     * @method \string getFileData()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment setFileData(\string|\Bitrix\Main\DB\SqlExpression $fileData)
     * @method bool hasFileData()
     * @method bool isFileDataFilled()
     * @method bool isFileDataChanged()
     * @method \string remindActualFileData()
     * @method \string requireFileData()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment resetFileData()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment unsetFileData()
     * @method \string fillFileData()
     * @method \string getContentType()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment setContentType(\string|\Bitrix\Main\DB\SqlExpression $contentType)
     * @method bool hasContentType()
     * @method bool isContentTypeFilled()
     * @method bool isContentTypeChanged()
     * @method \string remindActualContentType()
     * @method \string requireContentType()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment resetContentType()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment unsetContentType()
     * @method \string fillContentType()
     * @method \int getImageWidth()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment setImageWidth(\int|\Bitrix\Main\DB\SqlExpression $imageWidth)
     * @method bool hasImageWidth()
     * @method bool isImageWidthFilled()
     * @method bool isImageWidthChanged()
     * @method \int remindActualImageWidth()
     * @method \int requireImageWidth()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment resetImageWidth()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment unsetImageWidth()
     * @method \int fillImageWidth()
     * @method \int getImageHeight()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment setImageHeight(\int|\Bitrix\Main\DB\SqlExpression $imageHeight)
     * @method bool hasImageHeight()
     * @method bool isImageHeightFilled()
     * @method bool isImageHeightChanged()
     * @method \int remindActualImageHeight()
     * @method \int requireImageHeight()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment resetImageHeight()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment unsetImageHeight()
     * @method \int fillImageHeight()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment set($fieldName, $value)
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment reset($fieldName)
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\Internals\EO_MailMessageAttachment wakeUp($data)
     */
    class EO_MailMessageAttachment
    {
        /* @var \Bitrix\Mail\Internals\MailMessageAttachmentTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\MailMessageAttachmentTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_MailMessageAttachment_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getMessageIdList()
     * @method \int[] fillMessageId()
     * @method \int[] getFileIdList()
     * @method \int[] fillFileId()
     * @method \string[] getFileNameList()
     * @method \string[] fillFileName()
     * @method \int[] getFileSizeList()
     * @method \int[] fillFileSize()
     * @method \string[] getFileDataList()
     * @method \string[] fillFileData()
     * @method \string[] getContentTypeList()
     * @method \string[] fillContentType()
     * @method \int[] getImageWidthList()
     * @method \int[] fillImageWidth()
     * @method \int[] getImageHeightList()
     * @method \int[] fillImageHeight()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\Internals\EO_MailMessageAttachment $object)
     * @method bool has(\Bitrix\Mail\Internals\EO_MailMessageAttachment $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment getByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment[] getAll()
     * @method bool remove(\Bitrix\Mail\Internals\EO_MailMessageAttachment $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\Internals\EO_MailMessageAttachment_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_MailMessageAttachment_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\Internals\MailMessageAttachmentTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\MailMessageAttachmentTable';
    }
    /**
     * @method static EO_MailMessageAttachment_Query query()
     * @method static EO_MailMessageAttachment_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_MailMessageAttachment_Result getById($id)
     * @method static EO_MailMessageAttachment_Result getList(array $parameters = array())
     * @method static EO_MailMessageAttachment_Entity getEntity()
     * @method static \Bitrix\Mail\Internals\EO_MailMessageAttachment createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\Internals\EO_MailMessageAttachment_Collection createCollection()
     * @method static \Bitrix\Mail\Internals\EO_MailMessageAttachment wakeUpObject($row)
     * @method static \Bitrix\Mail\Internals\EO_MailMessageAttachment_Collection wakeUpCollection($rows)
     */
    class MailMessageAttachmentTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_MailMessageAttachment_Result exec()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment fetchObject()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_MailMessageAttachment_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment fetchObject()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment_Collection fetchCollection()
     */
    class EO_MailMessageAttachment_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment_Collection createCollection()
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment wakeUpObject($row)
     * @method \Bitrix\Mail\Internals\EO_MailMessageAttachment_Collection wakeUpCollection($rows)
     */
    class EO_MailMessageAttachment_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_MessageAccess
     * @see \Bitrix\Mail\Internals\MessageAccessTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getToken()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess setToken(\string|\Bitrix\Main\DB\SqlExpression $token)
     * @method bool hasToken()
     * @method bool isTokenFilled()
     * @method bool isTokenChanged()
     * @method \int getMailboxId()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess setMailboxId(\int|\Bitrix\Main\DB\SqlExpression $mailboxId)
     * @method bool hasMailboxId()
     * @method bool isMailboxIdFilled()
     * @method bool isMailboxIdChanged()
     * @method \int remindActualMailboxId()
     * @method \int requireMailboxId()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess resetMailboxId()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess unsetMailboxId()
     * @method \int fillMailboxId()
     * @method \int getMessageId()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess setMessageId(\int|\Bitrix\Main\DB\SqlExpression $messageId)
     * @method bool hasMessageId()
     * @method bool isMessageIdFilled()
     * @method bool isMessageIdChanged()
     * @method \int remindActualMessageId()
     * @method \int requireMessageId()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess resetMessageId()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess unsetMessageId()
     * @method \int fillMessageId()
     * @method \int getEntityUfId()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess setEntityUfId(\int|\Bitrix\Main\DB\SqlExpression $entityUfId)
     * @method bool hasEntityUfId()
     * @method bool isEntityUfIdFilled()
     * @method bool isEntityUfIdChanged()
     * @method \int remindActualEntityUfId()
     * @method \int requireEntityUfId()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess resetEntityUfId()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess unsetEntityUfId()
     * @method \int fillEntityUfId()
     * @method \string getEntityType()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \string remindActualEntityType()
     * @method \string requireEntityType()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess resetEntityType()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess unsetEntityType()
     * @method \string fillEntityType()
     * @method \int getEntityId()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess setEntityId(\int|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \int remindActualEntityId()
     * @method \int requireEntityId()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess resetEntityId()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess unsetEntityId()
     * @method \int fillEntityId()
     * @method \string getSecret()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess setSecret(\string|\Bitrix\Main\DB\SqlExpression $secret)
     * @method bool hasSecret()
     * @method bool isSecretFilled()
     * @method bool isSecretChanged()
     * @method \string remindActualSecret()
     * @method \string requireSecret()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess resetSecret()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess unsetSecret()
     * @method \string fillSecret()
     * @method \string getOptions()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess setOptions(\string|\Bitrix\Main\DB\SqlExpression $options)
     * @method bool hasOptions()
     * @method bool isOptionsFilled()
     * @method bool isOptionsChanged()
     * @method \string remindActualOptions()
     * @method \string requireOptions()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess resetOptions()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess unsetOptions()
     * @method \string fillOptions()
     * @method \Bitrix\Crm\EO_Activity getCrmActivity()
     * @method \Bitrix\Crm\EO_Activity remindActualCrmActivity()
     * @method \Bitrix\Crm\EO_Activity requireCrmActivity()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess setCrmActivity(\Bitrix\Crm\EO_Activity $object)
     * @method \Bitrix\Mail\Internals\EO_MessageAccess resetCrmActivity()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess unsetCrmActivity()
     * @method bool hasCrmActivity()
     * @method bool isCrmActivityFilled()
     * @method bool isCrmActivityChanged()
     * @method \Bitrix\Crm\EO_Activity fillCrmActivity()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\Internals\EO_MessageAccess set($fieldName, $value)
     * @method \Bitrix\Mail\Internals\EO_MessageAccess reset($fieldName)
     * @method \Bitrix\Mail\Internals\EO_MessageAccess unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\Internals\EO_MessageAccess wakeUp($data)
     */
    class EO_MessageAccess
    {
        /* @var \Bitrix\Mail\Internals\MessageAccessTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\MessageAccessTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_MessageAccess_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getTokenList()
     * @method \int[] getMailboxIdList()
     * @method \int[] fillMailboxId()
     * @method \int[] getMessageIdList()
     * @method \int[] fillMessageId()
     * @method \int[] getEntityUfIdList()
     * @method \int[] fillEntityUfId()
     * @method \string[] getEntityTypeList()
     * @method \string[] fillEntityType()
     * @method \int[] getEntityIdList()
     * @method \int[] fillEntityId()
     * @method \string[] getSecretList()
     * @method \string[] fillSecret()
     * @method \string[] getOptionsList()
     * @method \string[] fillOptions()
     * @method \Bitrix\Crm\EO_Activity[] getCrmActivityList()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess_Collection getCrmActivityCollection()
     * @method \Bitrix\Crm\EO_Activity_Collection fillCrmActivity()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\Internals\EO_MessageAccess $object)
     * @method bool has(\Bitrix\Mail\Internals\EO_MessageAccess $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_MessageAccess getByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_MessageAccess[] getAll()
     * @method bool remove(\Bitrix\Mail\Internals\EO_MessageAccess $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\Internals\EO_MessageAccess_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\Internals\EO_MessageAccess current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_MessageAccess_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\Internals\MessageAccessTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\MessageAccessTable';
    }
    /**
     * @method static EO_MessageAccess_Query query()
     * @method static EO_MessageAccess_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_MessageAccess_Result getById($id)
     * @method static EO_MessageAccess_Result getList(array $parameters = array())
     * @method static EO_MessageAccess_Entity getEntity()
     * @method static \Bitrix\Mail\Internals\EO_MessageAccess createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\Internals\EO_MessageAccess_Collection createCollection()
     * @method static \Bitrix\Mail\Internals\EO_MessageAccess wakeUpObject($row)
     * @method static \Bitrix\Mail\Internals\EO_MessageAccess_Collection wakeUpCollection($rows)
     */
    class MessageAccessTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_MessageAccess_Result exec()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess fetchObject()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_MessageAccess_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_MessageAccess fetchObject()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess_Collection fetchCollection()
     */
    class EO_MessageAccess_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_MessageAccess createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\Internals\EO_MessageAccess_Collection createCollection()
     * @method \Bitrix\Mail\Internals\EO_MessageAccess wakeUpObject($row)
     * @method \Bitrix\Mail\Internals\EO_MessageAccess_Collection wakeUpCollection($rows)
     */
    class EO_MessageAccess_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_MessageClosure
     * @see \Bitrix\Mail\Internals\MessageClosureTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getMessageId()
     * @method \Bitrix\Mail\Internals\EO_MessageClosure setMessageId(\int|\Bitrix\Main\DB\SqlExpression $messageId)
     * @method bool hasMessageId()
     * @method bool isMessageIdFilled()
     * @method bool isMessageIdChanged()
     * @method \int getParentId()
     * @method \Bitrix\Mail\Internals\EO_MessageClosure setParentId(\int|\Bitrix\Main\DB\SqlExpression $parentId)
     * @method bool hasParentId()
     * @method bool isParentIdFilled()
     * @method bool isParentIdChanged()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\Internals\EO_MessageClosure set($fieldName, $value)
     * @method \Bitrix\Mail\Internals\EO_MessageClosure reset($fieldName)
     * @method \Bitrix\Mail\Internals\EO_MessageClosure unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\Internals\EO_MessageClosure wakeUp($data)
     */
    class EO_MessageClosure
    {
        /* @var \Bitrix\Mail\Internals\MessageClosureTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\MessageClosureTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_MessageClosure_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getMessageIdList()
     * @method \int[] getParentIdList()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\Internals\EO_MessageClosure $object)
     * @method bool has(\Bitrix\Mail\Internals\EO_MessageClosure $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_MessageClosure getByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_MessageClosure[] getAll()
     * @method bool remove(\Bitrix\Mail\Internals\EO_MessageClosure $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\Internals\EO_MessageClosure_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\Internals\EO_MessageClosure current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_MessageClosure_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\Internals\MessageClosureTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\MessageClosureTable';
    }
    /**
     * @method static EO_MessageClosure_Query query()
     * @method static EO_MessageClosure_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_MessageClosure_Result getById($id)
     * @method static EO_MessageClosure_Result getList(array $parameters = array())
     * @method static EO_MessageClosure_Entity getEntity()
     * @method static \Bitrix\Mail\Internals\EO_MessageClosure createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\Internals\EO_MessageClosure_Collection createCollection()
     * @method static \Bitrix\Mail\Internals\EO_MessageClosure wakeUpObject($row)
     * @method static \Bitrix\Mail\Internals\EO_MessageClosure_Collection wakeUpCollection($rows)
     */
    class MessageClosureTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_MessageClosure_Result exec()
     * @method \Bitrix\Mail\Internals\EO_MessageClosure fetchObject()
     * @method \Bitrix\Mail\Internals\EO_MessageClosure_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_MessageClosure_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_MessageClosure fetchObject()
     * @method \Bitrix\Mail\Internals\EO_MessageClosure_Collection fetchCollection()
     */
    class EO_MessageClosure_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_MessageClosure createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\Internals\EO_MessageClosure_Collection createCollection()
     * @method \Bitrix\Mail\Internals\EO_MessageClosure wakeUpObject($row)
     * @method \Bitrix\Mail\Internals\EO_MessageClosure_Collection wakeUpCollection($rows)
     */
    class EO_MessageClosure_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_MessageDeleteQueue
     * @see \Bitrix\Mail\Internals\MessageDeleteQueueTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getMailboxId()
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue setMailboxId(\int|\Bitrix\Main\DB\SqlExpression $mailboxId)
     * @method bool hasMailboxId()
     * @method bool isMailboxIdFilled()
     * @method bool isMailboxIdChanged()
     * @method \int remindActualMailboxId()
     * @method \int requireMailboxId()
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue resetMailboxId()
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue unsetMailboxId()
     * @method \int fillMailboxId()
     * @method \int getMessageId()
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue setMessageId(\int|\Bitrix\Main\DB\SqlExpression $messageId)
     * @method bool hasMessageId()
     * @method bool isMessageIdFilled()
     * @method bool isMessageIdChanged()
     * @method \int remindActualMessageId()
     * @method \int requireMessageId()
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue resetMessageId()
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue unsetMessageId()
     * @method \int fillMessageId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue set($fieldName, $value)
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue reset($fieldName)
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\Internals\EO_MessageDeleteQueue wakeUp($data)
     */
    class EO_MessageDeleteQueue
    {
        /* @var \Bitrix\Mail\Internals\MessageDeleteQueueTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\MessageDeleteQueueTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_MessageDeleteQueue_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getMailboxIdList()
     * @method \int[] fillMailboxId()
     * @method \int[] getMessageIdList()
     * @method \int[] fillMessageId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\Internals\EO_MessageDeleteQueue $object)
     * @method bool has(\Bitrix\Mail\Internals\EO_MessageDeleteQueue $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue getByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue[] getAll()
     * @method bool remove(\Bitrix\Mail\Internals\EO_MessageDeleteQueue $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\Internals\EO_MessageDeleteQueue_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_MessageDeleteQueue_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\Internals\MessageDeleteQueueTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\MessageDeleteQueueTable';
    }
    /**
     * @method static EO_MessageDeleteQueue_Query query()
     * @method static EO_MessageDeleteQueue_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_MessageDeleteQueue_Result getById($id)
     * @method static EO_MessageDeleteQueue_Result getList(array $parameters = array())
     * @method static EO_MessageDeleteQueue_Entity getEntity()
     * @method static \Bitrix\Mail\Internals\EO_MessageDeleteQueue createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\Internals\EO_MessageDeleteQueue_Collection createCollection()
     * @method static \Bitrix\Mail\Internals\EO_MessageDeleteQueue wakeUpObject($row)
     * @method static \Bitrix\Mail\Internals\EO_MessageDeleteQueue_Collection wakeUpCollection($rows)
     */
    class MessageDeleteQueueTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_MessageDeleteQueue_Result exec()
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue fetchObject()
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_MessageDeleteQueue_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue fetchObject()
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue_Collection fetchCollection()
     */
    class EO_MessageDeleteQueue_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue_Collection createCollection()
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue wakeUpObject($row)
     * @method \Bitrix\Mail\Internals\EO_MessageDeleteQueue_Collection wakeUpCollection($rows)
     */
    class EO_MessageDeleteQueue_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_MessageUploadQueue
     * @see \Bitrix\Mail\Internals\MessageUploadQueueTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getId()
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue setId(\string|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getMailboxId()
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue setMailboxId(\int|\Bitrix\Main\DB\SqlExpression $mailboxId)
     * @method bool hasMailboxId()
     * @method bool isMailboxIdFilled()
     * @method bool isMailboxIdChanged()
     * @method \int getSyncStage()
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue setSyncStage(\int|\Bitrix\Main\DB\SqlExpression $syncStage)
     * @method bool hasSyncStage()
     * @method bool isSyncStageFilled()
     * @method bool isSyncStageChanged()
     * @method \int remindActualSyncStage()
     * @method \int requireSyncStage()
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue resetSyncStage()
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue unsetSyncStage()
     * @method \int fillSyncStage()
     * @method \int getSyncLock()
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue setSyncLock(\int|\Bitrix\Main\DB\SqlExpression $syncLock)
     * @method bool hasSyncLock()
     * @method bool isSyncLockFilled()
     * @method bool isSyncLockChanged()
     * @method \int remindActualSyncLock()
     * @method \int requireSyncLock()
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue resetSyncLock()
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue unsetSyncLock()
     * @method \int fillSyncLock()
     * @method \int getAttempts()
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue setAttempts(\int|\Bitrix\Main\DB\SqlExpression $attempts)
     * @method bool hasAttempts()
     * @method bool isAttemptsFilled()
     * @method bool isAttemptsChanged()
     * @method \int remindActualAttempts()
     * @method \int requireAttempts()
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue resetAttempts()
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue unsetAttempts()
     * @method \int fillAttempts()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue set($fieldName, $value)
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue reset($fieldName)
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\Internals\EO_MessageUploadQueue wakeUp($data)
     */
    class EO_MessageUploadQueue
    {
        /* @var \Bitrix\Mail\Internals\MessageUploadQueueTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\MessageUploadQueueTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_MessageUploadQueue_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getIdList()
     * @method \int[] getMailboxIdList()
     * @method \int[] getSyncStageList()
     * @method \int[] fillSyncStage()
     * @method \int[] getSyncLockList()
     * @method \int[] fillSyncLock()
     * @method \int[] getAttemptsList()
     * @method \int[] fillAttempts()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\Internals\EO_MessageUploadQueue $object)
     * @method bool has(\Bitrix\Mail\Internals\EO_MessageUploadQueue $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue getByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue[] getAll()
     * @method bool remove(\Bitrix\Mail\Internals\EO_MessageUploadQueue $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\Internals\EO_MessageUploadQueue_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_MessageUploadQueue_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\Internals\MessageUploadQueueTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\MessageUploadQueueTable';
    }
    /**
     * @method static EO_MessageUploadQueue_Query query()
     * @method static EO_MessageUploadQueue_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_MessageUploadQueue_Result getById($id)
     * @method static EO_MessageUploadQueue_Result getList(array $parameters = array())
     * @method static EO_MessageUploadQueue_Entity getEntity()
     * @method static \Bitrix\Mail\Internals\EO_MessageUploadQueue createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\Internals\EO_MessageUploadQueue_Collection createCollection()
     * @method static \Bitrix\Mail\Internals\EO_MessageUploadQueue wakeUpObject($row)
     * @method static \Bitrix\Mail\Internals\EO_MessageUploadQueue_Collection wakeUpCollection($rows)
     */
    class MessageUploadQueueTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_MessageUploadQueue_Result exec()
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue fetchObject()
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_MessageUploadQueue_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue fetchObject()
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue_Collection fetchCollection()
     */
    class EO_MessageUploadQueue_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue_Collection createCollection()
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue wakeUpObject($row)
     * @method \Bitrix\Mail\Internals\EO_MessageUploadQueue_Collection wakeUpCollection($rows)
     */
    class EO_MessageUploadQueue_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_OAuth
     * @see \Bitrix\Mail\Internals\OAuthTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Mail\Internals\EO_OAuth setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getUid()
     * @method \Bitrix\Mail\Internals\EO_OAuth setUid(\string|\Bitrix\Main\DB\SqlExpression $uid)
     * @method bool hasUid()
     * @method bool isUidFilled()
     * @method bool isUidChanged()
     * @method \string remindActualUid()
     * @method \string requireUid()
     * @method \Bitrix\Mail\Internals\EO_OAuth resetUid()
     * @method \Bitrix\Mail\Internals\EO_OAuth unsetUid()
     * @method \string fillUid()
     * @method \string getToken()
     * @method \Bitrix\Mail\Internals\EO_OAuth setToken(\string|\Bitrix\Main\DB\SqlExpression $token)
     * @method bool hasToken()
     * @method bool isTokenFilled()
     * @method bool isTokenChanged()
     * @method \string remindActualToken()
     * @method \string requireToken()
     * @method \Bitrix\Mail\Internals\EO_OAuth resetToken()
     * @method \Bitrix\Mail\Internals\EO_OAuth unsetToken()
     * @method \string fillToken()
     * @method \string getRefreshToken()
     * @method \Bitrix\Mail\Internals\EO_OAuth setRefreshToken(\string|\Bitrix\Main\DB\SqlExpression $refreshToken)
     * @method bool hasRefreshToken()
     * @method bool isRefreshTokenFilled()
     * @method bool isRefreshTokenChanged()
     * @method \string remindActualRefreshToken()
     * @method \string requireRefreshToken()
     * @method \Bitrix\Mail\Internals\EO_OAuth resetRefreshToken()
     * @method \Bitrix\Mail\Internals\EO_OAuth unsetRefreshToken()
     * @method \string fillRefreshToken()
     * @method \int getTokenExpires()
     * @method \Bitrix\Mail\Internals\EO_OAuth setTokenExpires(\int|\Bitrix\Main\DB\SqlExpression $tokenExpires)
     * @method bool hasTokenExpires()
     * @method bool isTokenExpiresFilled()
     * @method bool isTokenExpiresChanged()
     * @method \int remindActualTokenExpires()
     * @method \int requireTokenExpires()
     * @method \Bitrix\Mail\Internals\EO_OAuth resetTokenExpires()
     * @method \Bitrix\Mail\Internals\EO_OAuth unsetTokenExpires()
     * @method \int fillTokenExpires()
     * @method \string getSecret()
     * @method \Bitrix\Mail\Internals\EO_OAuth setSecret(\string|\Bitrix\Main\DB\SqlExpression $secret)
     * @method bool hasSecret()
     * @method bool isSecretFilled()
     * @method bool isSecretChanged()
     * @method \string remindActualSecret()
     * @method \string requireSecret()
     * @method \Bitrix\Mail\Internals\EO_OAuth resetSecret()
     * @method \Bitrix\Mail\Internals\EO_OAuth unsetSecret()
     * @method \string fillSecret()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\Internals\EO_OAuth set($fieldName, $value)
     * @method \Bitrix\Mail\Internals\EO_OAuth reset($fieldName)
     * @method \Bitrix\Mail\Internals\EO_OAuth unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\Internals\EO_OAuth wakeUp($data)
     */
    class EO_OAuth
    {
        /* @var \Bitrix\Mail\Internals\OAuthTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\OAuthTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_OAuth_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getUidList()
     * @method \string[] fillUid()
     * @method \string[] getTokenList()
     * @method \string[] fillToken()
     * @method \string[] getRefreshTokenList()
     * @method \string[] fillRefreshToken()
     * @method \int[] getTokenExpiresList()
     * @method \int[] fillTokenExpires()
     * @method \string[] getSecretList()
     * @method \string[] fillSecret()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\Internals\EO_OAuth $object)
     * @method bool has(\Bitrix\Mail\Internals\EO_OAuth $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_OAuth getByPrimary($primary)
     * @method \Bitrix\Mail\Internals\EO_OAuth[] getAll()
     * @method bool remove(\Bitrix\Mail\Internals\EO_OAuth $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\Internals\EO_OAuth_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\Internals\EO_OAuth current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_OAuth_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\Internals\OAuthTable */
        public static $dataClass = '\\Bitrix\\Mail\\Internals\\OAuthTable';
    }
    /**
     * @method static EO_OAuth_Query query()
     * @method static EO_OAuth_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_OAuth_Result getById($id)
     * @method static EO_OAuth_Result getList(array $parameters = array())
     * @method static EO_OAuth_Entity getEntity()
     * @method static \Bitrix\Mail\Internals\EO_OAuth createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\Internals\EO_OAuth_Collection createCollection()
     * @method static \Bitrix\Mail\Internals\EO_OAuth wakeUpObject($row)
     * @method static \Bitrix\Mail\Internals\EO_OAuth_Collection wakeUpCollection($rows)
     */
    class OAuthTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_OAuth_Result exec()
     * @method \Bitrix\Mail\Internals\EO_OAuth fetchObject()
     * @method \Bitrix\Mail\Internals\EO_OAuth_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_OAuth_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_OAuth fetchObject()
     * @method \Bitrix\Mail\Internals\EO_OAuth_Collection fetchCollection()
     */
    class EO_OAuth_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\Internals\EO_OAuth createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\Internals\EO_OAuth_Collection createCollection()
     * @method \Bitrix\Mail\Internals\EO_OAuth wakeUpObject($row)
     * @method \Bitrix\Mail\Internals\EO_OAuth_Collection wakeUpCollection($rows)
     */
    class EO_OAuth_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Mail {
    /**
     * EO_Mailbox
     * @see \Bitrix\Mail\MailboxTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Mail\EO_Mailbox setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Mail\EO_Mailbox setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Mail\EO_Mailbox resetTimestampX()
     * @method \Bitrix\Mail\EO_Mailbox unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \string getLid()
     * @method \Bitrix\Mail\EO_Mailbox setLid(\string|\Bitrix\Main\DB\SqlExpression $lid)
     * @method bool hasLid()
     * @method bool isLidFilled()
     * @method bool isLidChanged()
     * @method \string remindActualLid()
     * @method \string requireLid()
     * @method \Bitrix\Mail\EO_Mailbox resetLid()
     * @method \Bitrix\Mail\EO_Mailbox unsetLid()
     * @method \string fillLid()
     * @method \boolean getActive()
     * @method \Bitrix\Mail\EO_Mailbox setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Mail\EO_Mailbox resetActive()
     * @method \Bitrix\Mail\EO_Mailbox unsetActive()
     * @method \boolean fillActive()
     * @method \int getServiceId()
     * @method \Bitrix\Mail\EO_Mailbox setServiceId(\int|\Bitrix\Main\DB\SqlExpression $serviceId)
     * @method bool hasServiceId()
     * @method bool isServiceIdFilled()
     * @method bool isServiceIdChanged()
     * @method \int remindActualServiceId()
     * @method \int requireServiceId()
     * @method \Bitrix\Mail\EO_Mailbox resetServiceId()
     * @method \Bitrix\Mail\EO_Mailbox unsetServiceId()
     * @method \int fillServiceId()
     * @method \string getEmail()
     * @method \Bitrix\Mail\EO_Mailbox setEmail(\string|\Bitrix\Main\DB\SqlExpression $email)
     * @method bool hasEmail()
     * @method bool isEmailFilled()
     * @method bool isEmailChanged()
     * @method \string remindActualEmail()
     * @method \string requireEmail()
     * @method \Bitrix\Mail\EO_Mailbox resetEmail()
     * @method \Bitrix\Mail\EO_Mailbox unsetEmail()
     * @method \string fillEmail()
     * @method \string getUsername()
     * @method \Bitrix\Mail\EO_Mailbox setUsername(\string|\Bitrix\Main\DB\SqlExpression $username)
     * @method bool hasUsername()
     * @method bool isUsernameFilled()
     * @method bool isUsernameChanged()
     * @method \string remindActualUsername()
     * @method \string requireUsername()
     * @method \Bitrix\Mail\EO_Mailbox resetUsername()
     * @method \Bitrix\Mail\EO_Mailbox unsetUsername()
     * @method \string fillUsername()
     * @method \string getName()
     * @method \Bitrix\Mail\EO_Mailbox setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Mail\EO_Mailbox resetName()
     * @method \Bitrix\Mail\EO_Mailbox unsetName()
     * @method \string fillName()
     * @method \string getServer()
     * @method \Bitrix\Mail\EO_Mailbox setServer(\string|\Bitrix\Main\DB\SqlExpression $server)
     * @method bool hasServer()
     * @method bool isServerFilled()
     * @method bool isServerChanged()
     * @method \string remindActualServer()
     * @method \string requireServer()
     * @method \Bitrix\Mail\EO_Mailbox resetServer()
     * @method \Bitrix\Mail\EO_Mailbox unsetServer()
     * @method \string fillServer()
     * @method \int getPort()
     * @method \Bitrix\Mail\EO_Mailbox setPort(\int|\Bitrix\Main\DB\SqlExpression $port)
     * @method bool hasPort()
     * @method bool isPortFilled()
     * @method bool isPortChanged()
     * @method \int remindActualPort()
     * @method \int requirePort()
     * @method \Bitrix\Mail\EO_Mailbox resetPort()
     * @method \Bitrix\Mail\EO_Mailbox unsetPort()
     * @method \int fillPort()
     * @method \string getLink()
     * @method \Bitrix\Mail\EO_Mailbox setLink(\string|\Bitrix\Main\DB\SqlExpression $link)
     * @method bool hasLink()
     * @method bool isLinkFilled()
     * @method bool isLinkChanged()
     * @method \string remindActualLink()
     * @method \string requireLink()
     * @method \Bitrix\Mail\EO_Mailbox resetLink()
     * @method \Bitrix\Mail\EO_Mailbox unsetLink()
     * @method \string fillLink()
     * @method \string getLogin()
     * @method \Bitrix\Mail\EO_Mailbox setLogin(\string|\Bitrix\Main\DB\SqlExpression $login)
     * @method bool hasLogin()
     * @method bool isLoginFilled()
     * @method bool isLoginChanged()
     * @method \string remindActualLogin()
     * @method \string requireLogin()
     * @method \Bitrix\Mail\EO_Mailbox resetLogin()
     * @method \Bitrix\Mail\EO_Mailbox unsetLogin()
     * @method \string fillLogin()
     * @method \string getCharset()
     * @method \Bitrix\Mail\EO_Mailbox setCharset(\string|\Bitrix\Main\DB\SqlExpression $charset)
     * @method bool hasCharset()
     * @method bool isCharsetFilled()
     * @method bool isCharsetChanged()
     * @method \string remindActualCharset()
     * @method \string requireCharset()
     * @method \Bitrix\Mail\EO_Mailbox resetCharset()
     * @method \Bitrix\Mail\EO_Mailbox unsetCharset()
     * @method \string fillCharset()
     * @method \string getPassword()
     * @method \Bitrix\Mail\EO_Mailbox setPassword(\string|\Bitrix\Main\DB\SqlExpression $password)
     * @method bool hasPassword()
     * @method bool isPasswordFilled()
     * @method bool isPasswordChanged()
     * @method \string remindActualPassword()
     * @method \string requirePassword()
     * @method \Bitrix\Mail\EO_Mailbox resetPassword()
     * @method \Bitrix\Mail\EO_Mailbox unsetPassword()
     * @method \string fillPassword()
     * @method \string getDescription()
     * @method \Bitrix\Mail\EO_Mailbox setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Mail\EO_Mailbox resetDescription()
     * @method \Bitrix\Mail\EO_Mailbox unsetDescription()
     * @method \string fillDescription()
     * @method \boolean getUseMd5()
     * @method \Bitrix\Mail\EO_Mailbox setUseMd5(\boolean|\Bitrix\Main\DB\SqlExpression $useMd5)
     * @method bool hasUseMd5()
     * @method bool isUseMd5Filled()
     * @method bool isUseMd5Changed()
     * @method \boolean remindActualUseMd5()
     * @method \boolean requireUseMd5()
     * @method \Bitrix\Mail\EO_Mailbox resetUseMd5()
     * @method \Bitrix\Mail\EO_Mailbox unsetUseMd5()
     * @method \boolean fillUseMd5()
     * @method \boolean getDeleteMessages()
     * @method \Bitrix\Mail\EO_Mailbox setDeleteMessages(\boolean|\Bitrix\Main\DB\SqlExpression $deleteMessages)
     * @method bool hasDeleteMessages()
     * @method bool isDeleteMessagesFilled()
     * @method bool isDeleteMessagesChanged()
     * @method \boolean remindActualDeleteMessages()
     * @method \boolean requireDeleteMessages()
     * @method \Bitrix\Mail\EO_Mailbox resetDeleteMessages()
     * @method \Bitrix\Mail\EO_Mailbox unsetDeleteMessages()
     * @method \boolean fillDeleteMessages()
     * @method \int getPeriodCheck()
     * @method \Bitrix\Mail\EO_Mailbox setPeriodCheck(\int|\Bitrix\Main\DB\SqlExpression $periodCheck)
     * @method bool hasPeriodCheck()
     * @method bool isPeriodCheckFilled()
     * @method bool isPeriodCheckChanged()
     * @method \int remindActualPeriodCheck()
     * @method \int requirePeriodCheck()
     * @method \Bitrix\Mail\EO_Mailbox resetPeriodCheck()
     * @method \Bitrix\Mail\EO_Mailbox unsetPeriodCheck()
     * @method \int fillPeriodCheck()
     * @method \int getMaxMsgCount()
     * @method \Bitrix\Mail\EO_Mailbox setMaxMsgCount(\int|\Bitrix\Main\DB\SqlExpression $maxMsgCount)
     * @method bool hasMaxMsgCount()
     * @method bool isMaxMsgCountFilled()
     * @method bool isMaxMsgCountChanged()
     * @method \int remindActualMaxMsgCount()
     * @method \int requireMaxMsgCount()
     * @method \Bitrix\Mail\EO_Mailbox resetMaxMsgCount()
     * @method \Bitrix\Mail\EO_Mailbox unsetMaxMsgCount()
     * @method \int fillMaxMsgCount()
     * @method \int getMaxMsgSize()
     * @method \Bitrix\Mail\EO_Mailbox setMaxMsgSize(\int|\Bitrix\Main\DB\SqlExpression $maxMsgSize)
     * @method bool hasMaxMsgSize()
     * @method bool isMaxMsgSizeFilled()
     * @method bool isMaxMsgSizeChanged()
     * @method \int remindActualMaxMsgSize()
     * @method \int requireMaxMsgSize()
     * @method \Bitrix\Mail\EO_Mailbox resetMaxMsgSize()
     * @method \Bitrix\Mail\EO_Mailbox unsetMaxMsgSize()
     * @method \int fillMaxMsgSize()
     * @method \int getMaxKeepDays()
     * @method \Bitrix\Mail\EO_Mailbox setMaxKeepDays(\int|\Bitrix\Main\DB\SqlExpression $maxKeepDays)
     * @method bool hasMaxKeepDays()
     * @method bool isMaxKeepDaysFilled()
     * @method bool isMaxKeepDaysChanged()
     * @method \int remindActualMaxKeepDays()
     * @method \int requireMaxKeepDays()
     * @method \Bitrix\Mail\EO_Mailbox resetMaxKeepDays()
     * @method \Bitrix\Mail\EO_Mailbox unsetMaxKeepDays()
     * @method \int fillMaxKeepDays()
     * @method \string getUseTls()
     * @method \Bitrix\Mail\EO_Mailbox setUseTls(\string|\Bitrix\Main\DB\SqlExpression $useTls)
     * @method bool hasUseTls()
     * @method bool isUseTlsFilled()
     * @method bool isUseTlsChanged()
     * @method \string remindActualUseTls()
     * @method \string requireUseTls()
     * @method \Bitrix\Mail\EO_Mailbox resetUseTls()
     * @method \Bitrix\Mail\EO_Mailbox unsetUseTls()
     * @method \string fillUseTls()
     * @method \string getServerType()
     * @method \Bitrix\Mail\EO_Mailbox setServerType(\string|\Bitrix\Main\DB\SqlExpression $serverType)
     * @method bool hasServerType()
     * @method bool isServerTypeFilled()
     * @method bool isServerTypeChanged()
     * @method \string remindActualServerType()
     * @method \string requireServerType()
     * @method \Bitrix\Mail\EO_Mailbox resetServerType()
     * @method \Bitrix\Mail\EO_Mailbox unsetServerType()
     * @method \string fillServerType()
     * @method \string getDomains()
     * @method \Bitrix\Mail\EO_Mailbox setDomains(\string|\Bitrix\Main\DB\SqlExpression $domains)
     * @method bool hasDomains()
     * @method bool isDomainsFilled()
     * @method bool isDomainsChanged()
     * @method \string remindActualDomains()
     * @method \string requireDomains()
     * @method \Bitrix\Mail\EO_Mailbox resetDomains()
     * @method \Bitrix\Mail\EO_Mailbox unsetDomains()
     * @method \string fillDomains()
     * @method \boolean getRelay()
     * @method \Bitrix\Mail\EO_Mailbox setRelay(\boolean|\Bitrix\Main\DB\SqlExpression $relay)
     * @method bool hasRelay()
     * @method bool isRelayFilled()
     * @method bool isRelayChanged()
     * @method \boolean remindActualRelay()
     * @method \boolean requireRelay()
     * @method \Bitrix\Mail\EO_Mailbox resetRelay()
     * @method \Bitrix\Mail\EO_Mailbox unsetRelay()
     * @method \boolean fillRelay()
     * @method \boolean getAuthRelay()
     * @method \Bitrix\Mail\EO_Mailbox setAuthRelay(\boolean|\Bitrix\Main\DB\SqlExpression $authRelay)
     * @method bool hasAuthRelay()
     * @method bool isAuthRelayFilled()
     * @method bool isAuthRelayChanged()
     * @method \boolean remindActualAuthRelay()
     * @method \boolean requireAuthRelay()
     * @method \Bitrix\Mail\EO_Mailbox resetAuthRelay()
     * @method \Bitrix\Mail\EO_Mailbox unsetAuthRelay()
     * @method \boolean fillAuthRelay()
     * @method \int getUserId()
     * @method \Bitrix\Mail\EO_Mailbox setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Mail\EO_Mailbox resetUserId()
     * @method \Bitrix\Mail\EO_Mailbox unsetUserId()
     * @method \int fillUserId()
     * @method \int getSyncLock()
     * @method \Bitrix\Mail\EO_Mailbox setSyncLock(\int|\Bitrix\Main\DB\SqlExpression $syncLock)
     * @method bool hasSyncLock()
     * @method bool isSyncLockFilled()
     * @method bool isSyncLockChanged()
     * @method \int remindActualSyncLock()
     * @method \int requireSyncLock()
     * @method \Bitrix\Mail\EO_Mailbox resetSyncLock()
     * @method \Bitrix\Mail\EO_Mailbox unsetSyncLock()
     * @method \int fillSyncLock()
     * @method \string getOptions()
     * @method \Bitrix\Mail\EO_Mailbox setOptions(\string|\Bitrix\Main\DB\SqlExpression $options)
     * @method bool hasOptions()
     * @method bool isOptionsFilled()
     * @method bool isOptionsChanged()
     * @method \string remindActualOptions()
     * @method \string requireOptions()
     * @method \Bitrix\Mail\EO_Mailbox resetOptions()
     * @method \Bitrix\Mail\EO_Mailbox unsetOptions()
     * @method \string fillOptions()
     * @method \Bitrix\Main\EO_Site getSite()
     * @method \Bitrix\Main\EO_Site remindActualSite()
     * @method \Bitrix\Main\EO_Site requireSite()
     * @method \Bitrix\Mail\EO_Mailbox setSite(\Bitrix\Main\EO_Site $object)
     * @method \Bitrix\Mail\EO_Mailbox resetSite()
     * @method \Bitrix\Mail\EO_Mailbox unsetSite()
     * @method bool hasSite()
     * @method bool isSiteFilled()
     * @method bool isSiteChanged()
     * @method \Bitrix\Main\EO_Site fillSite()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\EO_Mailbox set($fieldName, $value)
     * @method \Bitrix\Mail\EO_Mailbox reset($fieldName)
     * @method \Bitrix\Mail\EO_Mailbox unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\EO_Mailbox wakeUp($data)
     */
    class EO_Mailbox
    {
        /* @var \Bitrix\Mail\MailboxTable */
        public static $dataClass = '\\Bitrix\\Mail\\MailboxTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Mailbox_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \string[] getLidList()
     * @method \string[] fillLid()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \int[] getServiceIdList()
     * @method \int[] fillServiceId()
     * @method \string[] getEmailList()
     * @method \string[] fillEmail()
     * @method \string[] getUsernameList()
     * @method \string[] fillUsername()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getServerList()
     * @method \string[] fillServer()
     * @method \int[] getPortList()
     * @method \int[] fillPort()
     * @method \string[] getLinkList()
     * @method \string[] fillLink()
     * @method \string[] getLoginList()
     * @method \string[] fillLogin()
     * @method \string[] getCharsetList()
     * @method \string[] fillCharset()
     * @method \string[] getPasswordList()
     * @method \string[] fillPassword()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \boolean[] getUseMd5List()
     * @method \boolean[] fillUseMd5()
     * @method \boolean[] getDeleteMessagesList()
     * @method \boolean[] fillDeleteMessages()
     * @method \int[] getPeriodCheckList()
     * @method \int[] fillPeriodCheck()
     * @method \int[] getMaxMsgCountList()
     * @method \int[] fillMaxMsgCount()
     * @method \int[] getMaxMsgSizeList()
     * @method \int[] fillMaxMsgSize()
     * @method \int[] getMaxKeepDaysList()
     * @method \int[] fillMaxKeepDays()
     * @method \string[] getUseTlsList()
     * @method \string[] fillUseTls()
     * @method \string[] getServerTypeList()
     * @method \string[] fillServerType()
     * @method \string[] getDomainsList()
     * @method \string[] fillDomains()
     * @method \boolean[] getRelayList()
     * @method \boolean[] fillRelay()
     * @method \boolean[] getAuthRelayList()
     * @method \boolean[] fillAuthRelay()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \int[] getSyncLockList()
     * @method \int[] fillSyncLock()
     * @method \string[] getOptionsList()
     * @method \string[] fillOptions()
     * @method \Bitrix\Main\EO_Site[] getSiteList()
     * @method \Bitrix\Mail\EO_Mailbox_Collection getSiteCollection()
     * @method \Bitrix\Main\EO_Site_Collection fillSite()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\EO_Mailbox $object)
     * @method bool has(\Bitrix\Mail\EO_Mailbox $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\EO_Mailbox getByPrimary($primary)
     * @method \Bitrix\Mail\EO_Mailbox[] getAll()
     * @method bool remove(\Bitrix\Mail\EO_Mailbox $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\EO_Mailbox_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\EO_Mailbox current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Mailbox_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\MailboxTable */
        public static $dataClass = '\\Bitrix\\Mail\\MailboxTable';
    }
    /**
     * @method static EO_Mailbox_Query query()
     * @method static EO_Mailbox_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Mailbox_Result getById($id)
     * @method static EO_Mailbox_Result getList(array $parameters = array())
     * @method static EO_Mailbox_Entity getEntity()
     * @method static \Bitrix\Mail\EO_Mailbox createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\EO_Mailbox_Collection createCollection()
     * @method static \Bitrix\Mail\EO_Mailbox wakeUpObject($row)
     * @method static \Bitrix\Mail\EO_Mailbox_Collection wakeUpCollection($rows)
     */
    class MailboxTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Mailbox_Result exec()
     * @method \Bitrix\Mail\EO_Mailbox fetchObject()
     * @method \Bitrix\Mail\EO_Mailbox_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Mailbox_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\EO_Mailbox fetchObject()
     * @method \Bitrix\Mail\EO_Mailbox_Collection fetchCollection()
     */
    class EO_Mailbox_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\EO_Mailbox createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\EO_Mailbox_Collection createCollection()
     * @method \Bitrix\Mail\EO_Mailbox wakeUpObject($row)
     * @method \Bitrix\Mail\EO_Mailbox_Collection wakeUpCollection($rows)
     */
    class EO_Mailbox_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_MailFilter
     * @see \Bitrix\Mail\MailFilterTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Mail\EO_MailFilter setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Mail\EO_MailFilter setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Mail\EO_MailFilter resetTimestampX()
     * @method \Bitrix\Mail\EO_MailFilter unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \int getMailboxId()
     * @method \Bitrix\Mail\EO_MailFilter setMailboxId(\int|\Bitrix\Main\DB\SqlExpression $mailboxId)
     * @method bool hasMailboxId()
     * @method bool isMailboxIdFilled()
     * @method bool isMailboxIdChanged()
     * @method \int remindActualMailboxId()
     * @method \int requireMailboxId()
     * @method \Bitrix\Mail\EO_MailFilter resetMailboxId()
     * @method \Bitrix\Mail\EO_MailFilter unsetMailboxId()
     * @method \int fillMailboxId()
     * @method \int getParentFilterId()
     * @method \Bitrix\Mail\EO_MailFilter setParentFilterId(\int|\Bitrix\Main\DB\SqlExpression $parentFilterId)
     * @method bool hasParentFilterId()
     * @method bool isParentFilterIdFilled()
     * @method bool isParentFilterIdChanged()
     * @method \int remindActualParentFilterId()
     * @method \int requireParentFilterId()
     * @method \Bitrix\Mail\EO_MailFilter resetParentFilterId()
     * @method \Bitrix\Mail\EO_MailFilter unsetParentFilterId()
     * @method \int fillParentFilterId()
     * @method \string getName()
     * @method \Bitrix\Mail\EO_MailFilter setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Mail\EO_MailFilter resetName()
     * @method \Bitrix\Mail\EO_MailFilter unsetName()
     * @method \string fillName()
     * @method \string getDescription()
     * @method \Bitrix\Mail\EO_MailFilter setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Mail\EO_MailFilter resetDescription()
     * @method \Bitrix\Mail\EO_MailFilter unsetDescription()
     * @method \string fillDescription()
     * @method \int getSort()
     * @method \Bitrix\Mail\EO_MailFilter setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Mail\EO_MailFilter resetSort()
     * @method \Bitrix\Mail\EO_MailFilter unsetSort()
     * @method \int fillSort()
     * @method \boolean getActive()
     * @method \Bitrix\Mail\EO_MailFilter setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Mail\EO_MailFilter resetActive()
     * @method \Bitrix\Mail\EO_MailFilter unsetActive()
     * @method \boolean fillActive()
     * @method \string getPhpCondition()
     * @method \Bitrix\Mail\EO_MailFilter setPhpCondition(\string|\Bitrix\Main\DB\SqlExpression $phpCondition)
     * @method bool hasPhpCondition()
     * @method bool isPhpConditionFilled()
     * @method bool isPhpConditionChanged()
     * @method \string remindActualPhpCondition()
     * @method \string requirePhpCondition()
     * @method \Bitrix\Mail\EO_MailFilter resetPhpCondition()
     * @method \Bitrix\Mail\EO_MailFilter unsetPhpCondition()
     * @method \string fillPhpCondition()
     * @method \boolean getWhenMailReceived()
     * @method \Bitrix\Mail\EO_MailFilter setWhenMailReceived(\boolean|\Bitrix\Main\DB\SqlExpression $whenMailReceived)
     * @method bool hasWhenMailReceived()
     * @method bool isWhenMailReceivedFilled()
     * @method bool isWhenMailReceivedChanged()
     * @method \boolean remindActualWhenMailReceived()
     * @method \boolean requireWhenMailReceived()
     * @method \Bitrix\Mail\EO_MailFilter resetWhenMailReceived()
     * @method \Bitrix\Mail\EO_MailFilter unsetWhenMailReceived()
     * @method \boolean fillWhenMailReceived()
     * @method \boolean getWhenManuallyRun()
     * @method \Bitrix\Mail\EO_MailFilter setWhenManuallyRun(\boolean|\Bitrix\Main\DB\SqlExpression $whenManuallyRun)
     * @method bool hasWhenManuallyRun()
     * @method bool isWhenManuallyRunFilled()
     * @method bool isWhenManuallyRunChanged()
     * @method \boolean remindActualWhenManuallyRun()
     * @method \boolean requireWhenManuallyRun()
     * @method \Bitrix\Mail\EO_MailFilter resetWhenManuallyRun()
     * @method \Bitrix\Mail\EO_MailFilter unsetWhenManuallyRun()
     * @method \boolean fillWhenManuallyRun()
     * @method \float getSpamRating()
     * @method \Bitrix\Mail\EO_MailFilter setSpamRating(\float|\Bitrix\Main\DB\SqlExpression $spamRating)
     * @method bool hasSpamRating()
     * @method bool isSpamRatingFilled()
     * @method bool isSpamRatingChanged()
     * @method \float remindActualSpamRating()
     * @method \float requireSpamRating()
     * @method \Bitrix\Mail\EO_MailFilter resetSpamRating()
     * @method \Bitrix\Mail\EO_MailFilter unsetSpamRating()
     * @method \float fillSpamRating()
     * @method \string getSpamRatingType()
     * @method \Bitrix\Mail\EO_MailFilter setSpamRatingType(\string|\Bitrix\Main\DB\SqlExpression $spamRatingType)
     * @method bool hasSpamRatingType()
     * @method bool isSpamRatingTypeFilled()
     * @method bool isSpamRatingTypeChanged()
     * @method \string remindActualSpamRatingType()
     * @method \string requireSpamRatingType()
     * @method \Bitrix\Mail\EO_MailFilter resetSpamRatingType()
     * @method \Bitrix\Mail\EO_MailFilter unsetSpamRatingType()
     * @method \string fillSpamRatingType()
     * @method \int getMessageSize()
     * @method \Bitrix\Mail\EO_MailFilter setMessageSize(\int|\Bitrix\Main\DB\SqlExpression $messageSize)
     * @method bool hasMessageSize()
     * @method bool isMessageSizeFilled()
     * @method bool isMessageSizeChanged()
     * @method \int remindActualMessageSize()
     * @method \int requireMessageSize()
     * @method \Bitrix\Mail\EO_MailFilter resetMessageSize()
     * @method \Bitrix\Mail\EO_MailFilter unsetMessageSize()
     * @method \int fillMessageSize()
     * @method \string getMessageSizeType()
     * @method \Bitrix\Mail\EO_MailFilter setMessageSizeType(\string|\Bitrix\Main\DB\SqlExpression $messageSizeType)
     * @method bool hasMessageSizeType()
     * @method bool isMessageSizeTypeFilled()
     * @method bool isMessageSizeTypeChanged()
     * @method \string remindActualMessageSizeType()
     * @method \string requireMessageSizeType()
     * @method \Bitrix\Mail\EO_MailFilter resetMessageSizeType()
     * @method \Bitrix\Mail\EO_MailFilter unsetMessageSizeType()
     * @method \string fillMessageSizeType()
     * @method \string getMessageSizeUnit()
     * @method \Bitrix\Mail\EO_MailFilter setMessageSizeUnit(\string|\Bitrix\Main\DB\SqlExpression $messageSizeUnit)
     * @method bool hasMessageSizeUnit()
     * @method bool isMessageSizeUnitFilled()
     * @method bool isMessageSizeUnitChanged()
     * @method \string remindActualMessageSizeUnit()
     * @method \string requireMessageSizeUnit()
     * @method \Bitrix\Mail\EO_MailFilter resetMessageSizeUnit()
     * @method \Bitrix\Mail\EO_MailFilter unsetMessageSizeUnit()
     * @method \string fillMessageSizeUnit()
     * @method \boolean getActionStopExec()
     * @method \Bitrix\Mail\EO_MailFilter setActionStopExec(\boolean|\Bitrix\Main\DB\SqlExpression $actionStopExec)
     * @method bool hasActionStopExec()
     * @method bool isActionStopExecFilled()
     * @method bool isActionStopExecChanged()
     * @method \boolean remindActualActionStopExec()
     * @method \boolean requireActionStopExec()
     * @method \Bitrix\Mail\EO_MailFilter resetActionStopExec()
     * @method \Bitrix\Mail\EO_MailFilter unsetActionStopExec()
     * @method \boolean fillActionStopExec()
     * @method \boolean getActionDeleteMessage()
     * @method \Bitrix\Mail\EO_MailFilter setActionDeleteMessage(\boolean|\Bitrix\Main\DB\SqlExpression $actionDeleteMessage)
     * @method bool hasActionDeleteMessage()
     * @method bool isActionDeleteMessageFilled()
     * @method bool isActionDeleteMessageChanged()
     * @method \boolean remindActualActionDeleteMessage()
     * @method \boolean requireActionDeleteMessage()
     * @method \Bitrix\Mail\EO_MailFilter resetActionDeleteMessage()
     * @method \Bitrix\Mail\EO_MailFilter unsetActionDeleteMessage()
     * @method \boolean fillActionDeleteMessage()
     * @method \string getActionRead()
     * @method \Bitrix\Mail\EO_MailFilter setActionRead(\string|\Bitrix\Main\DB\SqlExpression $actionRead)
     * @method bool hasActionRead()
     * @method bool isActionReadFilled()
     * @method bool isActionReadChanged()
     * @method \string remindActualActionRead()
     * @method \string requireActionRead()
     * @method \Bitrix\Mail\EO_MailFilter resetActionRead()
     * @method \Bitrix\Mail\EO_MailFilter unsetActionRead()
     * @method \string fillActionRead()
     * @method \string getActionPhp()
     * @method \Bitrix\Mail\EO_MailFilter setActionPhp(\string|\Bitrix\Main\DB\SqlExpression $actionPhp)
     * @method bool hasActionPhp()
     * @method bool isActionPhpFilled()
     * @method bool isActionPhpChanged()
     * @method \string remindActualActionPhp()
     * @method \string requireActionPhp()
     * @method \Bitrix\Mail\EO_MailFilter resetActionPhp()
     * @method \Bitrix\Mail\EO_MailFilter unsetActionPhp()
     * @method \string fillActionPhp()
     * @method \string getActionType()
     * @method \Bitrix\Mail\EO_MailFilter setActionType(\string|\Bitrix\Main\DB\SqlExpression $actionType)
     * @method bool hasActionType()
     * @method bool isActionTypeFilled()
     * @method bool isActionTypeChanged()
     * @method \string remindActualActionType()
     * @method \string requireActionType()
     * @method \Bitrix\Mail\EO_MailFilter resetActionType()
     * @method \Bitrix\Mail\EO_MailFilter unsetActionType()
     * @method \string fillActionType()
     * @method \string getActionVars()
     * @method \Bitrix\Mail\EO_MailFilter setActionVars(\string|\Bitrix\Main\DB\SqlExpression $actionVars)
     * @method bool hasActionVars()
     * @method bool isActionVarsFilled()
     * @method bool isActionVarsChanged()
     * @method \string remindActualActionVars()
     * @method \string requireActionVars()
     * @method \Bitrix\Mail\EO_MailFilter resetActionVars()
     * @method \Bitrix\Mail\EO_MailFilter unsetActionVars()
     * @method \string fillActionVars()
     * @method \string getActionSpam()
     * @method \Bitrix\Mail\EO_MailFilter setActionSpam(\string|\Bitrix\Main\DB\SqlExpression $actionSpam)
     * @method bool hasActionSpam()
     * @method bool isActionSpamFilled()
     * @method bool isActionSpamChanged()
     * @method \string remindActualActionSpam()
     * @method \string requireActionSpam()
     * @method \Bitrix\Mail\EO_MailFilter resetActionSpam()
     * @method \Bitrix\Mail\EO_MailFilter unsetActionSpam()
     * @method \string fillActionSpam()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\EO_MailFilter set($fieldName, $value)
     * @method \Bitrix\Mail\EO_MailFilter reset($fieldName)
     * @method \Bitrix\Mail\EO_MailFilter unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\EO_MailFilter wakeUp($data)
     */
    class EO_MailFilter
    {
        /* @var \Bitrix\Mail\MailFilterTable */
        public static $dataClass = '\\Bitrix\\Mail\\MailFilterTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_MailFilter_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \int[] getMailboxIdList()
     * @method \int[] fillMailboxId()
     * @method \int[] getParentFilterIdList()
     * @method \int[] fillParentFilterId()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \string[] getPhpConditionList()
     * @method \string[] fillPhpCondition()
     * @method \boolean[] getWhenMailReceivedList()
     * @method \boolean[] fillWhenMailReceived()
     * @method \boolean[] getWhenManuallyRunList()
     * @method \boolean[] fillWhenManuallyRun()
     * @method \float[] getSpamRatingList()
     * @method \float[] fillSpamRating()
     * @method \string[] getSpamRatingTypeList()
     * @method \string[] fillSpamRatingType()
     * @method \int[] getMessageSizeList()
     * @method \int[] fillMessageSize()
     * @method \string[] getMessageSizeTypeList()
     * @method \string[] fillMessageSizeType()
     * @method \string[] getMessageSizeUnitList()
     * @method \string[] fillMessageSizeUnit()
     * @method \boolean[] getActionStopExecList()
     * @method \boolean[] fillActionStopExec()
     * @method \boolean[] getActionDeleteMessageList()
     * @method \boolean[] fillActionDeleteMessage()
     * @method \string[] getActionReadList()
     * @method \string[] fillActionRead()
     * @method \string[] getActionPhpList()
     * @method \string[] fillActionPhp()
     * @method \string[] getActionTypeList()
     * @method \string[] fillActionType()
     * @method \string[] getActionVarsList()
     * @method \string[] fillActionVars()
     * @method \string[] getActionSpamList()
     * @method \string[] fillActionSpam()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\EO_MailFilter $object)
     * @method bool has(\Bitrix\Mail\EO_MailFilter $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\EO_MailFilter getByPrimary($primary)
     * @method \Bitrix\Mail\EO_MailFilter[] getAll()
     * @method bool remove(\Bitrix\Mail\EO_MailFilter $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\EO_MailFilter_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\EO_MailFilter current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_MailFilter_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\MailFilterTable */
        public static $dataClass = '\\Bitrix\\Mail\\MailFilterTable';
    }
    /**
     * @method static EO_MailFilter_Query query()
     * @method static EO_MailFilter_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_MailFilter_Result getById($id)
     * @method static EO_MailFilter_Result getList(array $parameters = array())
     * @method static EO_MailFilter_Entity getEntity()
     * @method static \Bitrix\Mail\EO_MailFilter createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\EO_MailFilter_Collection createCollection()
     * @method static \Bitrix\Mail\EO_MailFilter wakeUpObject($row)
     * @method static \Bitrix\Mail\EO_MailFilter_Collection wakeUpCollection($rows)
     */
    class MailFilterTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_MailFilter_Result exec()
     * @method \Bitrix\Mail\EO_MailFilter fetchObject()
     * @method \Bitrix\Mail\EO_MailFilter_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_MailFilter_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\EO_MailFilter fetchObject()
     * @method \Bitrix\Mail\EO_MailFilter_Collection fetchCollection()
     */
    class EO_MailFilter_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\EO_MailFilter createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\EO_MailFilter_Collection createCollection()
     * @method \Bitrix\Mail\EO_MailFilter wakeUpObject($row)
     * @method \Bitrix\Mail\EO_MailFilter_Collection wakeUpCollection($rows)
     */
    class EO_MailFilter_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_MailLog
     * @see \Bitrix\Mail\MailLogTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Mail\EO_MailLog setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getMailboxId()
     * @method \Bitrix\Mail\EO_MailLog setMailboxId(\int|\Bitrix\Main\DB\SqlExpression $mailboxId)
     * @method bool hasMailboxId()
     * @method bool isMailboxIdFilled()
     * @method bool isMailboxIdChanged()
     * @method \int remindActualMailboxId()
     * @method \int requireMailboxId()
     * @method \Bitrix\Mail\EO_MailLog resetMailboxId()
     * @method \Bitrix\Mail\EO_MailLog unsetMailboxId()
     * @method \int fillMailboxId()
     * @method \int getFilterId()
     * @method \Bitrix\Mail\EO_MailLog setFilterId(\int|\Bitrix\Main\DB\SqlExpression $filterId)
     * @method bool hasFilterId()
     * @method bool isFilterIdFilled()
     * @method bool isFilterIdChanged()
     * @method \int remindActualFilterId()
     * @method \int requireFilterId()
     * @method \Bitrix\Mail\EO_MailLog resetFilterId()
     * @method \Bitrix\Mail\EO_MailLog unsetFilterId()
     * @method \int fillFilterId()
     * @method \int getMessageId()
     * @method \Bitrix\Mail\EO_MailLog setMessageId(\int|\Bitrix\Main\DB\SqlExpression $messageId)
     * @method bool hasMessageId()
     * @method bool isMessageIdFilled()
     * @method bool isMessageIdChanged()
     * @method \int remindActualMessageId()
     * @method \int requireMessageId()
     * @method \Bitrix\Mail\EO_MailLog resetMessageId()
     * @method \Bitrix\Mail\EO_MailLog unsetMessageId()
     * @method \int fillMessageId()
     * @method \string getLogType()
     * @method \Bitrix\Mail\EO_MailLog setLogType(\string|\Bitrix\Main\DB\SqlExpression $logType)
     * @method bool hasLogType()
     * @method bool isLogTypeFilled()
     * @method bool isLogTypeChanged()
     * @method \string remindActualLogType()
     * @method \string requireLogType()
     * @method \Bitrix\Mail\EO_MailLog resetLogType()
     * @method \Bitrix\Mail\EO_MailLog unsetLogType()
     * @method \string fillLogType()
     * @method \Bitrix\Main\Type\DateTime getDateInsert()
     * @method \Bitrix\Mail\EO_MailLog setDateInsert(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateInsert)
     * @method bool hasDateInsert()
     * @method bool isDateInsertFilled()
     * @method bool isDateInsertChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateInsert()
     * @method \Bitrix\Main\Type\DateTime requireDateInsert()
     * @method \Bitrix\Mail\EO_MailLog resetDateInsert()
     * @method \Bitrix\Mail\EO_MailLog unsetDateInsert()
     * @method \Bitrix\Main\Type\DateTime fillDateInsert()
     * @method \boolean getStatusGood()
     * @method \Bitrix\Mail\EO_MailLog setStatusGood(\boolean|\Bitrix\Main\DB\SqlExpression $statusGood)
     * @method bool hasStatusGood()
     * @method bool isStatusGoodFilled()
     * @method bool isStatusGoodChanged()
     * @method \boolean remindActualStatusGood()
     * @method \boolean requireStatusGood()
     * @method \Bitrix\Mail\EO_MailLog resetStatusGood()
     * @method \Bitrix\Mail\EO_MailLog unsetStatusGood()
     * @method \boolean fillStatusGood()
     * @method \string getMessage()
     * @method \Bitrix\Mail\EO_MailLog setMessage(\string|\Bitrix\Main\DB\SqlExpression $message)
     * @method bool hasMessage()
     * @method bool isMessageFilled()
     * @method bool isMessageChanged()
     * @method \string remindActualMessage()
     * @method \string requireMessage()
     * @method \Bitrix\Mail\EO_MailLog resetMessage()
     * @method \Bitrix\Mail\EO_MailLog unsetMessage()
     * @method \string fillMessage()
     * @method \Bitrix\Mail\EO_Mailbox getMailbox()
     * @method \Bitrix\Mail\EO_Mailbox remindActualMailbox()
     * @method \Bitrix\Mail\EO_Mailbox requireMailbox()
     * @method \Bitrix\Mail\EO_MailLog setMailbox(\Bitrix\Mail\EO_Mailbox $object)
     * @method \Bitrix\Mail\EO_MailLog resetMailbox()
     * @method \Bitrix\Mail\EO_MailLog unsetMailbox()
     * @method bool hasMailbox()
     * @method bool isMailboxFilled()
     * @method bool isMailboxChanged()
     * @method \Bitrix\Mail\EO_Mailbox fillMailbox()
     * @method \Bitrix\Mail\EO_MailFilter getFilter()
     * @method \Bitrix\Mail\EO_MailFilter remindActualFilter()
     * @method \Bitrix\Mail\EO_MailFilter requireFilter()
     * @method \Bitrix\Mail\EO_MailLog setFilter(\Bitrix\Mail\EO_MailFilter $object)
     * @method \Bitrix\Mail\EO_MailLog resetFilter()
     * @method \Bitrix\Mail\EO_MailLog unsetFilter()
     * @method bool hasFilter()
     * @method bool isFilterFilled()
     * @method bool isFilterChanged()
     * @method \Bitrix\Mail\EO_MailFilter fillFilter()
     * @method \Bitrix\Mail\EO_MailMessage getMailMessage()
     * @method \Bitrix\Mail\EO_MailMessage remindActualMailMessage()
     * @method \Bitrix\Mail\EO_MailMessage requireMailMessage()
     * @method \Bitrix\Mail\EO_MailLog setMailMessage(\Bitrix\Mail\EO_MailMessage $object)
     * @method \Bitrix\Mail\EO_MailLog resetMailMessage()
     * @method \Bitrix\Mail\EO_MailLog unsetMailMessage()
     * @method bool hasMailMessage()
     * @method bool isMailMessageFilled()
     * @method bool isMailMessageChanged()
     * @method \Bitrix\Mail\EO_MailMessage fillMailMessage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\EO_MailLog set($fieldName, $value)
     * @method \Bitrix\Mail\EO_MailLog reset($fieldName)
     * @method \Bitrix\Mail\EO_MailLog unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\EO_MailLog wakeUp($data)
     */
    class EO_MailLog
    {
        /* @var \Bitrix\Mail\MailLogTable */
        public static $dataClass = '\\Bitrix\\Mail\\MailLogTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_MailLog_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getMailboxIdList()
     * @method \int[] fillMailboxId()
     * @method \int[] getFilterIdList()
     * @method \int[] fillFilterId()
     * @method \int[] getMessageIdList()
     * @method \int[] fillMessageId()
     * @method \string[] getLogTypeList()
     * @method \string[] fillLogType()
     * @method \Bitrix\Main\Type\DateTime[] getDateInsertList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateInsert()
     * @method \boolean[] getStatusGoodList()
     * @method \boolean[] fillStatusGood()
     * @method \string[] getMessageList()
     * @method \string[] fillMessage()
     * @method \Bitrix\Mail\EO_Mailbox[] getMailboxList()
     * @method \Bitrix\Mail\EO_MailLog_Collection getMailboxCollection()
     * @method \Bitrix\Mail\EO_Mailbox_Collection fillMailbox()
     * @method \Bitrix\Mail\EO_MailFilter[] getFilterList()
     * @method \Bitrix\Mail\EO_MailLog_Collection getFilterCollection()
     * @method \Bitrix\Mail\EO_MailFilter_Collection fillFilter()
     * @method \Bitrix\Mail\EO_MailMessage[] getMailMessageList()
     * @method \Bitrix\Mail\EO_MailLog_Collection getMailMessageCollection()
     * @method \Bitrix\Mail\EO_MailMessage_Collection fillMailMessage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\EO_MailLog $object)
     * @method bool has(\Bitrix\Mail\EO_MailLog $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\EO_MailLog getByPrimary($primary)
     * @method \Bitrix\Mail\EO_MailLog[] getAll()
     * @method bool remove(\Bitrix\Mail\EO_MailLog $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\EO_MailLog_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\EO_MailLog current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_MailLog_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\MailLogTable */
        public static $dataClass = '\\Bitrix\\Mail\\MailLogTable';
    }
    /**
     * @method static EO_MailLog_Query query()
     * @method static EO_MailLog_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_MailLog_Result getById($id)
     * @method static EO_MailLog_Result getList(array $parameters = array())
     * @method static EO_MailLog_Entity getEntity()
     * @method static \Bitrix\Mail\EO_MailLog createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\EO_MailLog_Collection createCollection()
     * @method static \Bitrix\Mail\EO_MailLog wakeUpObject($row)
     * @method static \Bitrix\Mail\EO_MailLog_Collection wakeUpCollection($rows)
     */
    class MailLogTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_MailLog_Result exec()
     * @method \Bitrix\Mail\EO_MailLog fetchObject()
     * @method \Bitrix\Mail\EO_MailLog_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_MailLog_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\EO_MailLog fetchObject()
     * @method \Bitrix\Mail\EO_MailLog_Collection fetchCollection()
     */
    class EO_MailLog_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\EO_MailLog createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\EO_MailLog_Collection createCollection()
     * @method \Bitrix\Mail\EO_MailLog wakeUpObject($row)
     * @method \Bitrix\Mail\EO_MailLog_Collection wakeUpCollection($rows)
     */
    class EO_MailLog_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_MailMessage
     * @see \Bitrix\Mail\MailMessageTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Mail\EO_MailMessage setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getMailboxId()
     * @method \Bitrix\Mail\EO_MailMessage setMailboxId(\int|\Bitrix\Main\DB\SqlExpression $mailboxId)
     * @method bool hasMailboxId()
     * @method bool isMailboxIdFilled()
     * @method bool isMailboxIdChanged()
     * @method \int remindActualMailboxId()
     * @method \int requireMailboxId()
     * @method \Bitrix\Mail\EO_MailMessage resetMailboxId()
     * @method \Bitrix\Mail\EO_MailMessage unsetMailboxId()
     * @method \int fillMailboxId()
     * @method \Bitrix\Main\Type\DateTime getDateInsert()
     * @method \Bitrix\Mail\EO_MailMessage setDateInsert(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateInsert)
     * @method bool hasDateInsert()
     * @method bool isDateInsertFilled()
     * @method bool isDateInsertChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateInsert()
     * @method \Bitrix\Main\Type\DateTime requireDateInsert()
     * @method \Bitrix\Mail\EO_MailMessage resetDateInsert()
     * @method \Bitrix\Mail\EO_MailMessage unsetDateInsert()
     * @method \Bitrix\Main\Type\DateTime fillDateInsert()
     * @method \string getFullText()
     * @method \Bitrix\Mail\EO_MailMessage setFullText(\string|\Bitrix\Main\DB\SqlExpression $fullText)
     * @method bool hasFullText()
     * @method bool isFullTextFilled()
     * @method bool isFullTextChanged()
     * @method \string remindActualFullText()
     * @method \string requireFullText()
     * @method \Bitrix\Mail\EO_MailMessage resetFullText()
     * @method \Bitrix\Mail\EO_MailMessage unsetFullText()
     * @method \string fillFullText()
     * @method \int getMessageSize()
     * @method \Bitrix\Mail\EO_MailMessage setMessageSize(\int|\Bitrix\Main\DB\SqlExpression $messageSize)
     * @method bool hasMessageSize()
     * @method bool isMessageSizeFilled()
     * @method bool isMessageSizeChanged()
     * @method \int remindActualMessageSize()
     * @method \int requireMessageSize()
     * @method \Bitrix\Mail\EO_MailMessage resetMessageSize()
     * @method \Bitrix\Mail\EO_MailMessage unsetMessageSize()
     * @method \int fillMessageSize()
     * @method \string getHeader()
     * @method \Bitrix\Mail\EO_MailMessage setHeader(\string|\Bitrix\Main\DB\SqlExpression $header)
     * @method bool hasHeader()
     * @method bool isHeaderFilled()
     * @method bool isHeaderChanged()
     * @method \string remindActualHeader()
     * @method \string requireHeader()
     * @method \Bitrix\Mail\EO_MailMessage resetHeader()
     * @method \Bitrix\Mail\EO_MailMessage unsetHeader()
     * @method \string fillHeader()
     * @method \Bitrix\Main\Type\DateTime getFieldDate()
     * @method \Bitrix\Mail\EO_MailMessage setFieldDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $fieldDate)
     * @method bool hasFieldDate()
     * @method bool isFieldDateFilled()
     * @method bool isFieldDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualFieldDate()
     * @method \Bitrix\Main\Type\DateTime requireFieldDate()
     * @method \Bitrix\Mail\EO_MailMessage resetFieldDate()
     * @method \Bitrix\Mail\EO_MailMessage unsetFieldDate()
     * @method \Bitrix\Main\Type\DateTime fillFieldDate()
     * @method \string getFieldFrom()
     * @method \Bitrix\Mail\EO_MailMessage setFieldFrom(\string|\Bitrix\Main\DB\SqlExpression $fieldFrom)
     * @method bool hasFieldFrom()
     * @method bool isFieldFromFilled()
     * @method bool isFieldFromChanged()
     * @method \string remindActualFieldFrom()
     * @method \string requireFieldFrom()
     * @method \Bitrix\Mail\EO_MailMessage resetFieldFrom()
     * @method \Bitrix\Mail\EO_MailMessage unsetFieldFrom()
     * @method \string fillFieldFrom()
     * @method \string getFieldReplyTo()
     * @method \Bitrix\Mail\EO_MailMessage setFieldReplyTo(\string|\Bitrix\Main\DB\SqlExpression $fieldReplyTo)
     * @method bool hasFieldReplyTo()
     * @method bool isFieldReplyToFilled()
     * @method bool isFieldReplyToChanged()
     * @method \string remindActualFieldReplyTo()
     * @method \string requireFieldReplyTo()
     * @method \Bitrix\Mail\EO_MailMessage resetFieldReplyTo()
     * @method \Bitrix\Mail\EO_MailMessage unsetFieldReplyTo()
     * @method \string fillFieldReplyTo()
     * @method \string getFieldTo()
     * @method \Bitrix\Mail\EO_MailMessage setFieldTo(\string|\Bitrix\Main\DB\SqlExpression $fieldTo)
     * @method bool hasFieldTo()
     * @method bool isFieldToFilled()
     * @method bool isFieldToChanged()
     * @method \string remindActualFieldTo()
     * @method \string requireFieldTo()
     * @method \Bitrix\Mail\EO_MailMessage resetFieldTo()
     * @method \Bitrix\Mail\EO_MailMessage unsetFieldTo()
     * @method \string fillFieldTo()
     * @method \string getFieldCc()
     * @method \Bitrix\Mail\EO_MailMessage setFieldCc(\string|\Bitrix\Main\DB\SqlExpression $fieldCc)
     * @method bool hasFieldCc()
     * @method bool isFieldCcFilled()
     * @method bool isFieldCcChanged()
     * @method \string remindActualFieldCc()
     * @method \string requireFieldCc()
     * @method \Bitrix\Mail\EO_MailMessage resetFieldCc()
     * @method \Bitrix\Mail\EO_MailMessage unsetFieldCc()
     * @method \string fillFieldCc()
     * @method \string getFieldBcc()
     * @method \Bitrix\Mail\EO_MailMessage setFieldBcc(\string|\Bitrix\Main\DB\SqlExpression $fieldBcc)
     * @method bool hasFieldBcc()
     * @method bool isFieldBccFilled()
     * @method bool isFieldBccChanged()
     * @method \string remindActualFieldBcc()
     * @method \string requireFieldBcc()
     * @method \Bitrix\Mail\EO_MailMessage resetFieldBcc()
     * @method \Bitrix\Mail\EO_MailMessage unsetFieldBcc()
     * @method \string fillFieldBcc()
     * @method \int getFieldPriority()
     * @method \Bitrix\Mail\EO_MailMessage setFieldPriority(\int|\Bitrix\Main\DB\SqlExpression $fieldPriority)
     * @method bool hasFieldPriority()
     * @method bool isFieldPriorityFilled()
     * @method bool isFieldPriorityChanged()
     * @method \int remindActualFieldPriority()
     * @method \int requireFieldPriority()
     * @method \Bitrix\Mail\EO_MailMessage resetFieldPriority()
     * @method \Bitrix\Mail\EO_MailMessage unsetFieldPriority()
     * @method \int fillFieldPriority()
     * @method \string getSubject()
     * @method \Bitrix\Mail\EO_MailMessage setSubject(\string|\Bitrix\Main\DB\SqlExpression $subject)
     * @method bool hasSubject()
     * @method bool isSubjectFilled()
     * @method bool isSubjectChanged()
     * @method \string remindActualSubject()
     * @method \string requireSubject()
     * @method \Bitrix\Mail\EO_MailMessage resetSubject()
     * @method \Bitrix\Mail\EO_MailMessage unsetSubject()
     * @method \string fillSubject()
     * @method \string getBody()
     * @method \Bitrix\Mail\EO_MailMessage setBody(\string|\Bitrix\Main\DB\SqlExpression $body)
     * @method bool hasBody()
     * @method bool isBodyFilled()
     * @method bool isBodyChanged()
     * @method \string remindActualBody()
     * @method \string requireBody()
     * @method \Bitrix\Mail\EO_MailMessage resetBody()
     * @method \Bitrix\Mail\EO_MailMessage unsetBody()
     * @method \string fillBody()
     * @method \string getBodyHtml()
     * @method \Bitrix\Mail\EO_MailMessage setBodyHtml(\string|\Bitrix\Main\DB\SqlExpression $bodyHtml)
     * @method bool hasBodyHtml()
     * @method bool isBodyHtmlFilled()
     * @method bool isBodyHtmlChanged()
     * @method \string remindActualBodyHtml()
     * @method \string requireBodyHtml()
     * @method \Bitrix\Mail\EO_MailMessage resetBodyHtml()
     * @method \Bitrix\Mail\EO_MailMessage unsetBodyHtml()
     * @method \string fillBodyHtml()
     * @method \int getAttachments()
     * @method \Bitrix\Mail\EO_MailMessage setAttachments(\int|\Bitrix\Main\DB\SqlExpression $attachments)
     * @method bool hasAttachments()
     * @method bool isAttachmentsFilled()
     * @method bool isAttachmentsChanged()
     * @method \int remindActualAttachments()
     * @method \int requireAttachments()
     * @method \Bitrix\Mail\EO_MailMessage resetAttachments()
     * @method \Bitrix\Mail\EO_MailMessage unsetAttachments()
     * @method \int fillAttachments()
     * @method \boolean getNewMessage()
     * @method \Bitrix\Mail\EO_MailMessage setNewMessage(\boolean|\Bitrix\Main\DB\SqlExpression $newMessage)
     * @method bool hasNewMessage()
     * @method bool isNewMessageFilled()
     * @method bool isNewMessageChanged()
     * @method \boolean remindActualNewMessage()
     * @method \boolean requireNewMessage()
     * @method \Bitrix\Mail\EO_MailMessage resetNewMessage()
     * @method \Bitrix\Mail\EO_MailMessage unsetNewMessage()
     * @method \boolean fillNewMessage()
     * @method \string getSpam()
     * @method \Bitrix\Mail\EO_MailMessage setSpam(\string|\Bitrix\Main\DB\SqlExpression $spam)
     * @method bool hasSpam()
     * @method bool isSpamFilled()
     * @method bool isSpamChanged()
     * @method \string remindActualSpam()
     * @method \string requireSpam()
     * @method \Bitrix\Mail\EO_MailMessage resetSpam()
     * @method \Bitrix\Mail\EO_MailMessage unsetSpam()
     * @method \string fillSpam()
     * @method \float getSpamRating()
     * @method \Bitrix\Mail\EO_MailMessage setSpamRating(\float|\Bitrix\Main\DB\SqlExpression $spamRating)
     * @method bool hasSpamRating()
     * @method bool isSpamRatingFilled()
     * @method bool isSpamRatingChanged()
     * @method \float remindActualSpamRating()
     * @method \float requireSpamRating()
     * @method \Bitrix\Mail\EO_MailMessage resetSpamRating()
     * @method \Bitrix\Mail\EO_MailMessage unsetSpamRating()
     * @method \float fillSpamRating()
     * @method \string getSpamWords()
     * @method \Bitrix\Mail\EO_MailMessage setSpamWords(\string|\Bitrix\Main\DB\SqlExpression $spamWords)
     * @method bool hasSpamWords()
     * @method bool isSpamWordsFilled()
     * @method bool isSpamWordsChanged()
     * @method \string remindActualSpamWords()
     * @method \string requireSpamWords()
     * @method \Bitrix\Mail\EO_MailMessage resetSpamWords()
     * @method \Bitrix\Mail\EO_MailMessage unsetSpamWords()
     * @method \string fillSpamWords()
     * @method \boolean getSpamLastResult()
     * @method \Bitrix\Mail\EO_MailMessage setSpamLastResult(\boolean|\Bitrix\Main\DB\SqlExpression $spamLastResult)
     * @method bool hasSpamLastResult()
     * @method bool isSpamLastResultFilled()
     * @method bool isSpamLastResultChanged()
     * @method \boolean remindActualSpamLastResult()
     * @method \boolean requireSpamLastResult()
     * @method \Bitrix\Mail\EO_MailMessage resetSpamLastResult()
     * @method \Bitrix\Mail\EO_MailMessage unsetSpamLastResult()
     * @method \boolean fillSpamLastResult()
     * @method \string getExternalId()
     * @method \Bitrix\Mail\EO_MailMessage setExternalId(\string|\Bitrix\Main\DB\SqlExpression $externalId)
     * @method bool hasExternalId()
     * @method bool isExternalIdFilled()
     * @method bool isExternalIdChanged()
     * @method \string remindActualExternalId()
     * @method \string requireExternalId()
     * @method \Bitrix\Mail\EO_MailMessage resetExternalId()
     * @method \Bitrix\Mail\EO_MailMessage unsetExternalId()
     * @method \string fillExternalId()
     * @method \string getMsgId()
     * @method \Bitrix\Mail\EO_MailMessage setMsgId(\string|\Bitrix\Main\DB\SqlExpression $msgId)
     * @method bool hasMsgId()
     * @method bool isMsgIdFilled()
     * @method bool isMsgIdChanged()
     * @method \string remindActualMsgId()
     * @method \string requireMsgId()
     * @method \Bitrix\Mail\EO_MailMessage resetMsgId()
     * @method \Bitrix\Mail\EO_MailMessage unsetMsgId()
     * @method \string fillMsgId()
     * @method \string getInReplyTo()
     * @method \Bitrix\Mail\EO_MailMessage setInReplyTo(\string|\Bitrix\Main\DB\SqlExpression $inReplyTo)
     * @method bool hasInReplyTo()
     * @method bool isInReplyToFilled()
     * @method bool isInReplyToChanged()
     * @method \string remindActualInReplyTo()
     * @method \string requireInReplyTo()
     * @method \Bitrix\Mail\EO_MailMessage resetInReplyTo()
     * @method \Bitrix\Mail\EO_MailMessage unsetInReplyTo()
     * @method \string fillInReplyTo()
     * @method \int getLeftMargin()
     * @method \Bitrix\Mail\EO_MailMessage setLeftMargin(\int|\Bitrix\Main\DB\SqlExpression $leftMargin)
     * @method bool hasLeftMargin()
     * @method bool isLeftMarginFilled()
     * @method bool isLeftMarginChanged()
     * @method \int remindActualLeftMargin()
     * @method \int requireLeftMargin()
     * @method \Bitrix\Mail\EO_MailMessage resetLeftMargin()
     * @method \Bitrix\Mail\EO_MailMessage unsetLeftMargin()
     * @method \int fillLeftMargin()
     * @method \int getRightMargin()
     * @method \Bitrix\Mail\EO_MailMessage setRightMargin(\int|\Bitrix\Main\DB\SqlExpression $rightMargin)
     * @method bool hasRightMargin()
     * @method bool isRightMarginFilled()
     * @method bool isRightMarginChanged()
     * @method \int remindActualRightMargin()
     * @method \int requireRightMargin()
     * @method \Bitrix\Mail\EO_MailMessage resetRightMargin()
     * @method \Bitrix\Mail\EO_MailMessage unsetRightMargin()
     * @method \int fillRightMargin()
     * @method \string getSearchContent()
     * @method \Bitrix\Mail\EO_MailMessage setSearchContent(\string|\Bitrix\Main\DB\SqlExpression $searchContent)
     * @method bool hasSearchContent()
     * @method bool isSearchContentFilled()
     * @method bool isSearchContentChanged()
     * @method \string remindActualSearchContent()
     * @method \string requireSearchContent()
     * @method \Bitrix\Mail\EO_MailMessage resetSearchContent()
     * @method \Bitrix\Mail\EO_MailMessage unsetSearchContent()
     * @method \string fillSearchContent()
     * @method \int getIndexVersion()
     * @method \Bitrix\Mail\EO_MailMessage setIndexVersion(\int|\Bitrix\Main\DB\SqlExpression $indexVersion)
     * @method bool hasIndexVersion()
     * @method bool isIndexVersionFilled()
     * @method bool isIndexVersionChanged()
     * @method \int remindActualIndexVersion()
     * @method \int requireIndexVersion()
     * @method \Bitrix\Mail\EO_MailMessage resetIndexVersion()
     * @method \Bitrix\Mail\EO_MailMessage unsetIndexVersion()
     * @method \int fillIndexVersion()
     * @method \Bitrix\Main\Type\DateTime getReadConfirmed()
     * @method \Bitrix\Mail\EO_MailMessage setReadConfirmed(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $readConfirmed)
     * @method bool hasReadConfirmed()
     * @method bool isReadConfirmedFilled()
     * @method bool isReadConfirmedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualReadConfirmed()
     * @method \Bitrix\Main\Type\DateTime requireReadConfirmed()
     * @method \Bitrix\Mail\EO_MailMessage resetReadConfirmed()
     * @method \Bitrix\Mail\EO_MailMessage unsetReadConfirmed()
     * @method \Bitrix\Main\Type\DateTime fillReadConfirmed()
     * @method \string getOptions()
     * @method \Bitrix\Mail\EO_MailMessage setOptions(\string|\Bitrix\Main\DB\SqlExpression $options)
     * @method bool hasOptions()
     * @method bool isOptionsFilled()
     * @method bool isOptionsChanged()
     * @method \string remindActualOptions()
     * @method \string requireOptions()
     * @method \Bitrix\Mail\EO_MailMessage resetOptions()
     * @method \Bitrix\Mail\EO_MailMessage unsetOptions()
     * @method \string fillOptions()
     * @method \Bitrix\Mail\EO_Mailbox getMailbox()
     * @method \Bitrix\Mail\EO_Mailbox remindActualMailbox()
     * @method \Bitrix\Mail\EO_Mailbox requireMailbox()
     * @method \Bitrix\Mail\EO_MailMessage setMailbox(\Bitrix\Mail\EO_Mailbox $object)
     * @method \Bitrix\Mail\EO_MailMessage resetMailbox()
     * @method \Bitrix\Mail\EO_MailMessage unsetMailbox()
     * @method bool hasMailbox()
     * @method bool isMailboxFilled()
     * @method bool isMailboxChanged()
     * @method \Bitrix\Mail\EO_Mailbox fillMailbox()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\EO_MailMessage set($fieldName, $value)
     * @method \Bitrix\Mail\EO_MailMessage reset($fieldName)
     * @method \Bitrix\Mail\EO_MailMessage unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\EO_MailMessage wakeUp($data)
     */
    class EO_MailMessage
    {
        /* @var \Bitrix\Mail\MailMessageTable */
        public static $dataClass = '\\Bitrix\\Mail\\MailMessageTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_MailMessage_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getMailboxIdList()
     * @method \int[] fillMailboxId()
     * @method \Bitrix\Main\Type\DateTime[] getDateInsertList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateInsert()
     * @method \string[] getFullTextList()
     * @method \string[] fillFullText()
     * @method \int[] getMessageSizeList()
     * @method \int[] fillMessageSize()
     * @method \string[] getHeaderList()
     * @method \string[] fillHeader()
     * @method \Bitrix\Main\Type\DateTime[] getFieldDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillFieldDate()
     * @method \string[] getFieldFromList()
     * @method \string[] fillFieldFrom()
     * @method \string[] getFieldReplyToList()
     * @method \string[] fillFieldReplyTo()
     * @method \string[] getFieldToList()
     * @method \string[] fillFieldTo()
     * @method \string[] getFieldCcList()
     * @method \string[] fillFieldCc()
     * @method \string[] getFieldBccList()
     * @method \string[] fillFieldBcc()
     * @method \int[] getFieldPriorityList()
     * @method \int[] fillFieldPriority()
     * @method \string[] getSubjectList()
     * @method \string[] fillSubject()
     * @method \string[] getBodyList()
     * @method \string[] fillBody()
     * @method \string[] getBodyHtmlList()
     * @method \string[] fillBodyHtml()
     * @method \int[] getAttachmentsList()
     * @method \int[] fillAttachments()
     * @method \boolean[] getNewMessageList()
     * @method \boolean[] fillNewMessage()
     * @method \string[] getSpamList()
     * @method \string[] fillSpam()
     * @method \float[] getSpamRatingList()
     * @method \float[] fillSpamRating()
     * @method \string[] getSpamWordsList()
     * @method \string[] fillSpamWords()
     * @method \boolean[] getSpamLastResultList()
     * @method \boolean[] fillSpamLastResult()
     * @method \string[] getExternalIdList()
     * @method \string[] fillExternalId()
     * @method \string[] getMsgIdList()
     * @method \string[] fillMsgId()
     * @method \string[] getInReplyToList()
     * @method \string[] fillInReplyTo()
     * @method \int[] getLeftMarginList()
     * @method \int[] fillLeftMargin()
     * @method \int[] getRightMarginList()
     * @method \int[] fillRightMargin()
     * @method \string[] getSearchContentList()
     * @method \string[] fillSearchContent()
     * @method \int[] getIndexVersionList()
     * @method \int[] fillIndexVersion()
     * @method \Bitrix\Main\Type\DateTime[] getReadConfirmedList()
     * @method \Bitrix\Main\Type\DateTime[] fillReadConfirmed()
     * @method \string[] getOptionsList()
     * @method \string[] fillOptions()
     * @method \Bitrix\Mail\EO_Mailbox[] getMailboxList()
     * @method \Bitrix\Mail\EO_MailMessage_Collection getMailboxCollection()
     * @method \Bitrix\Mail\EO_Mailbox_Collection fillMailbox()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\EO_MailMessage $object)
     * @method bool has(\Bitrix\Mail\EO_MailMessage $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\EO_MailMessage getByPrimary($primary)
     * @method \Bitrix\Mail\EO_MailMessage[] getAll()
     * @method bool remove(\Bitrix\Mail\EO_MailMessage $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\EO_MailMessage_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\EO_MailMessage current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_MailMessage_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\MailMessageTable */
        public static $dataClass = '\\Bitrix\\Mail\\MailMessageTable';
    }
    /**
     * @method static EO_MailMessage_Query query()
     * @method static EO_MailMessage_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_MailMessage_Result getById($id)
     * @method static EO_MailMessage_Result getList(array $parameters = array())
     * @method static EO_MailMessage_Entity getEntity()
     * @method static \Bitrix\Mail\EO_MailMessage createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\EO_MailMessage_Collection createCollection()
     * @method static \Bitrix\Mail\EO_MailMessage wakeUpObject($row)
     * @method static \Bitrix\Mail\EO_MailMessage_Collection wakeUpCollection($rows)
     */
    class MailMessageTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_MailMessage_Result exec()
     * @method \Bitrix\Mail\EO_MailMessage fetchObject()
     * @method \Bitrix\Mail\EO_MailMessage_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_MailMessage_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\EO_MailMessage fetchObject()
     * @method \Bitrix\Mail\EO_MailMessage_Collection fetchCollection()
     */
    class EO_MailMessage_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\EO_MailMessage createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\EO_MailMessage_Collection createCollection()
     * @method \Bitrix\Mail\EO_MailMessage wakeUpObject($row)
     * @method \Bitrix\Mail\EO_MailMessage_Collection wakeUpCollection($rows)
     */
    class EO_MailMessage_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_MailMessageUid
     * @see \Bitrix\Mail\MailMessageUidTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getId()
     * @method \Bitrix\Mail\EO_MailMessageUid setId(\string|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getMailboxId()
     * @method \Bitrix\Mail\EO_MailMessageUid setMailboxId(\int|\Bitrix\Main\DB\SqlExpression $mailboxId)
     * @method bool hasMailboxId()
     * @method bool isMailboxIdFilled()
     * @method bool isMailboxIdChanged()
     * @method \string getDirMd5()
     * @method \Bitrix\Mail\EO_MailMessageUid setDirMd5(\string|\Bitrix\Main\DB\SqlExpression $dirMd5)
     * @method bool hasDirMd5()
     * @method bool isDirMd5Filled()
     * @method bool isDirMd5Changed()
     * @method \string remindActualDirMd5()
     * @method \string requireDirMd5()
     * @method \Bitrix\Mail\EO_MailMessageUid resetDirMd5()
     * @method \Bitrix\Mail\EO_MailMessageUid unsetDirMd5()
     * @method \string fillDirMd5()
     * @method \int getDirUidv()
     * @method \Bitrix\Mail\EO_MailMessageUid setDirUidv(\int|\Bitrix\Main\DB\SqlExpression $dirUidv)
     * @method bool hasDirUidv()
     * @method bool isDirUidvFilled()
     * @method bool isDirUidvChanged()
     * @method \int remindActualDirUidv()
     * @method \int requireDirUidv()
     * @method \Bitrix\Mail\EO_MailMessageUid resetDirUidv()
     * @method \Bitrix\Mail\EO_MailMessageUid unsetDirUidv()
     * @method \int fillDirUidv()
     * @method \int getMsgUid()
     * @method \Bitrix\Mail\EO_MailMessageUid setMsgUid(\int|\Bitrix\Main\DB\SqlExpression $msgUid)
     * @method bool hasMsgUid()
     * @method bool isMsgUidFilled()
     * @method bool isMsgUidChanged()
     * @method \int remindActualMsgUid()
     * @method \int requireMsgUid()
     * @method \Bitrix\Mail\EO_MailMessageUid resetMsgUid()
     * @method \Bitrix\Mail\EO_MailMessageUid unsetMsgUid()
     * @method \int fillMsgUid()
     * @method \Bitrix\Main\Type\DateTime getInternaldate()
     * @method \Bitrix\Mail\EO_MailMessageUid setInternaldate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $internaldate)
     * @method bool hasInternaldate()
     * @method bool isInternaldateFilled()
     * @method bool isInternaldateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualInternaldate()
     * @method \Bitrix\Main\Type\DateTime requireInternaldate()
     * @method \Bitrix\Mail\EO_MailMessageUid resetInternaldate()
     * @method \Bitrix\Mail\EO_MailMessageUid unsetInternaldate()
     * @method \Bitrix\Main\Type\DateTime fillInternaldate()
     * @method \string getHeaderMd5()
     * @method \Bitrix\Mail\EO_MailMessageUid setHeaderMd5(\string|\Bitrix\Main\DB\SqlExpression $headerMd5)
     * @method bool hasHeaderMd5()
     * @method bool isHeaderMd5Filled()
     * @method bool isHeaderMd5Changed()
     * @method \string remindActualHeaderMd5()
     * @method \string requireHeaderMd5()
     * @method \Bitrix\Mail\EO_MailMessageUid resetHeaderMd5()
     * @method \Bitrix\Mail\EO_MailMessageUid unsetHeaderMd5()
     * @method \string fillHeaderMd5()
     * @method \string getIsSeen()
     * @method \Bitrix\Mail\EO_MailMessageUid setIsSeen(\string|\Bitrix\Main\DB\SqlExpression $isSeen)
     * @method bool hasIsSeen()
     * @method bool isIsSeenFilled()
     * @method bool isIsSeenChanged()
     * @method \string remindActualIsSeen()
     * @method \string requireIsSeen()
     * @method \Bitrix\Mail\EO_MailMessageUid resetIsSeen()
     * @method \Bitrix\Mail\EO_MailMessageUid unsetIsSeen()
     * @method \string fillIsSeen()
     * @method \string getSessionId()
     * @method \Bitrix\Mail\EO_MailMessageUid setSessionId(\string|\Bitrix\Main\DB\SqlExpression $sessionId)
     * @method bool hasSessionId()
     * @method bool isSessionIdFilled()
     * @method bool isSessionIdChanged()
     * @method \string remindActualSessionId()
     * @method \string requireSessionId()
     * @method \Bitrix\Mail\EO_MailMessageUid resetSessionId()
     * @method \Bitrix\Mail\EO_MailMessageUid unsetSessionId()
     * @method \string fillSessionId()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Mail\EO_MailMessageUid setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Mail\EO_MailMessageUid resetTimestampX()
     * @method \Bitrix\Mail\EO_MailMessageUid unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \Bitrix\Main\Type\DateTime getDateInsert()
     * @method \Bitrix\Mail\EO_MailMessageUid setDateInsert(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateInsert)
     * @method bool hasDateInsert()
     * @method bool isDateInsertFilled()
     * @method bool isDateInsertChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateInsert()
     * @method \Bitrix\Main\Type\DateTime requireDateInsert()
     * @method \Bitrix\Mail\EO_MailMessageUid resetDateInsert()
     * @method \Bitrix\Mail\EO_MailMessageUid unsetDateInsert()
     * @method \Bitrix\Main\Type\DateTime fillDateInsert()
     * @method \int getMessageId()
     * @method \Bitrix\Mail\EO_MailMessageUid setMessageId(\int|\Bitrix\Main\DB\SqlExpression $messageId)
     * @method bool hasMessageId()
     * @method bool isMessageIdFilled()
     * @method bool isMessageIdChanged()
     * @method \int remindActualMessageId()
     * @method \int requireMessageId()
     * @method \Bitrix\Mail\EO_MailMessageUid resetMessageId()
     * @method \Bitrix\Mail\EO_MailMessageUid unsetMessageId()
     * @method \int fillMessageId()
     * @method \Bitrix\Mail\EO_Mailbox getMailbox()
     * @method \Bitrix\Mail\EO_Mailbox remindActualMailbox()
     * @method \Bitrix\Mail\EO_Mailbox requireMailbox()
     * @method \Bitrix\Mail\EO_MailMessageUid setMailbox(\Bitrix\Mail\EO_Mailbox $object)
     * @method \Bitrix\Mail\EO_MailMessageUid resetMailbox()
     * @method \Bitrix\Mail\EO_MailMessageUid unsetMailbox()
     * @method bool hasMailbox()
     * @method bool isMailboxFilled()
     * @method bool isMailboxChanged()
     * @method \Bitrix\Mail\EO_Mailbox fillMailbox()
     * @method \Bitrix\Mail\EO_MailMessage getMessage()
     * @method \Bitrix\Mail\EO_MailMessage remindActualMessage()
     * @method \Bitrix\Mail\EO_MailMessage requireMessage()
     * @method \Bitrix\Mail\EO_MailMessageUid setMessage(\Bitrix\Mail\EO_MailMessage $object)
     * @method \Bitrix\Mail\EO_MailMessageUid resetMessage()
     * @method \Bitrix\Mail\EO_MailMessageUid unsetMessage()
     * @method bool hasMessage()
     * @method bool isMessageFilled()
     * @method bool isMessageChanged()
     * @method \Bitrix\Mail\EO_MailMessage fillMessage()
     * @method \int getDeleteTime()
     * @method \Bitrix\Mail\EO_MailMessageUid setDeleteTime(\int|\Bitrix\Main\DB\SqlExpression $deleteTime)
     * @method bool hasDeleteTime()
     * @method bool isDeleteTimeFilled()
     * @method bool isDeleteTimeChanged()
     * @method \int remindActualDeleteTime()
     * @method \int requireDeleteTime()
     * @method \Bitrix\Mail\EO_MailMessageUid resetDeleteTime()
     * @method \Bitrix\Mail\EO_MailMessageUid unsetDeleteTime()
     * @method \int fillDeleteTime()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\EO_MailMessageUid set($fieldName, $value)
     * @method \Bitrix\Mail\EO_MailMessageUid reset($fieldName)
     * @method \Bitrix\Mail\EO_MailMessageUid unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\EO_MailMessageUid wakeUp($data)
     */
    class EO_MailMessageUid
    {
        /* @var \Bitrix\Mail\MailMessageUidTable */
        public static $dataClass = '\\Bitrix\\Mail\\MailMessageUidTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_MailMessageUid_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getIdList()
     * @method \int[] getMailboxIdList()
     * @method \string[] getDirMd5List()
     * @method \string[] fillDirMd5()
     * @method \int[] getDirUidvList()
     * @method \int[] fillDirUidv()
     * @method \int[] getMsgUidList()
     * @method \int[] fillMsgUid()
     * @method \Bitrix\Main\Type\DateTime[] getInternaldateList()
     * @method \Bitrix\Main\Type\DateTime[] fillInternaldate()
     * @method \string[] getHeaderMd5List()
     * @method \string[] fillHeaderMd5()
     * @method \string[] getIsSeenList()
     * @method \string[] fillIsSeen()
     * @method \string[] getSessionIdList()
     * @method \string[] fillSessionId()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \Bitrix\Main\Type\DateTime[] getDateInsertList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateInsert()
     * @method \int[] getMessageIdList()
     * @method \int[] fillMessageId()
     * @method \Bitrix\Mail\EO_Mailbox[] getMailboxList()
     * @method \Bitrix\Mail\EO_MailMessageUid_Collection getMailboxCollection()
     * @method \Bitrix\Mail\EO_Mailbox_Collection fillMailbox()
     * @method \Bitrix\Mail\EO_MailMessage[] getMessageList()
     * @method \Bitrix\Mail\EO_MailMessageUid_Collection getMessageCollection()
     * @method \Bitrix\Mail\EO_MailMessage_Collection fillMessage()
     * @method \int[] getDeleteTimeList()
     * @method \int[] fillDeleteTime()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\EO_MailMessageUid $object)
     * @method bool has(\Bitrix\Mail\EO_MailMessageUid $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\EO_MailMessageUid getByPrimary($primary)
     * @method \Bitrix\Mail\EO_MailMessageUid[] getAll()
     * @method bool remove(\Bitrix\Mail\EO_MailMessageUid $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\EO_MailMessageUid_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\EO_MailMessageUid current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_MailMessageUid_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\MailMessageUidTable */
        public static $dataClass = '\\Bitrix\\Mail\\MailMessageUidTable';
    }
    /**
     * @method static EO_MailMessageUid_Query query()
     * @method static EO_MailMessageUid_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_MailMessageUid_Result getById($id)
     * @method static EO_MailMessageUid_Result getList(array $parameters = array())
     * @method static EO_MailMessageUid_Entity getEntity()
     * @method static \Bitrix\Mail\EO_MailMessageUid createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\EO_MailMessageUid_Collection createCollection()
     * @method static \Bitrix\Mail\EO_MailMessageUid wakeUpObject($row)
     * @method static \Bitrix\Mail\EO_MailMessageUid_Collection wakeUpCollection($rows)
     */
    class MailMessageUidTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_MailMessageUid_Result exec()
     * @method \Bitrix\Mail\EO_MailMessageUid fetchObject()
     * @method \Bitrix\Mail\EO_MailMessageUid_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_MailMessageUid_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\EO_MailMessageUid fetchObject()
     * @method \Bitrix\Mail\EO_MailMessageUid_Collection fetchCollection()
     */
    class EO_MailMessageUid_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\EO_MailMessageUid createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\EO_MailMessageUid_Collection createCollection()
     * @method \Bitrix\Mail\EO_MailMessageUid wakeUpObject($row)
     * @method \Bitrix\Mail\EO_MailMessageUid_Collection wakeUpCollection($rows)
     */
    class EO_MailMessageUid_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_MailServices
     * @see \Bitrix\Mail\MailServicesTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Mail\EO_MailServices setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getSiteId()
     * @method \Bitrix\Mail\EO_MailServices setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string remindActualSiteId()
     * @method \string requireSiteId()
     * @method \Bitrix\Mail\EO_MailServices resetSiteId()
     * @method \Bitrix\Mail\EO_MailServices unsetSiteId()
     * @method \string fillSiteId()
     * @method \boolean getActive()
     * @method \Bitrix\Mail\EO_MailServices setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Mail\EO_MailServices resetActive()
     * @method \Bitrix\Mail\EO_MailServices unsetActive()
     * @method \boolean fillActive()
     * @method \int getSort()
     * @method \Bitrix\Mail\EO_MailServices setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Mail\EO_MailServices resetSort()
     * @method \Bitrix\Mail\EO_MailServices unsetSort()
     * @method \int fillSort()
     * @method \string getServiceType()
     * @method \Bitrix\Mail\EO_MailServices setServiceType(\string|\Bitrix\Main\DB\SqlExpression $serviceType)
     * @method bool hasServiceType()
     * @method bool isServiceTypeFilled()
     * @method bool isServiceTypeChanged()
     * @method \string remindActualServiceType()
     * @method \string requireServiceType()
     * @method \Bitrix\Mail\EO_MailServices resetServiceType()
     * @method \Bitrix\Mail\EO_MailServices unsetServiceType()
     * @method \string fillServiceType()
     * @method \string getName()
     * @method \Bitrix\Mail\EO_MailServices setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Mail\EO_MailServices resetName()
     * @method \Bitrix\Mail\EO_MailServices unsetName()
     * @method \string fillName()
     * @method \string getServer()
     * @method \Bitrix\Mail\EO_MailServices setServer(\string|\Bitrix\Main\DB\SqlExpression $server)
     * @method bool hasServer()
     * @method bool isServerFilled()
     * @method bool isServerChanged()
     * @method \string remindActualServer()
     * @method \string requireServer()
     * @method \Bitrix\Mail\EO_MailServices resetServer()
     * @method \Bitrix\Mail\EO_MailServices unsetServer()
     * @method \string fillServer()
     * @method \int getPort()
     * @method \Bitrix\Mail\EO_MailServices setPort(\int|\Bitrix\Main\DB\SqlExpression $port)
     * @method bool hasPort()
     * @method bool isPortFilled()
     * @method bool isPortChanged()
     * @method \int remindActualPort()
     * @method \int requirePort()
     * @method \Bitrix\Mail\EO_MailServices resetPort()
     * @method \Bitrix\Mail\EO_MailServices unsetPort()
     * @method \int fillPort()
     * @method \boolean getEncryption()
     * @method \Bitrix\Mail\EO_MailServices setEncryption(\boolean|\Bitrix\Main\DB\SqlExpression $encryption)
     * @method bool hasEncryption()
     * @method bool isEncryptionFilled()
     * @method bool isEncryptionChanged()
     * @method \boolean remindActualEncryption()
     * @method \boolean requireEncryption()
     * @method \Bitrix\Mail\EO_MailServices resetEncryption()
     * @method \Bitrix\Mail\EO_MailServices unsetEncryption()
     * @method \boolean fillEncryption()
     * @method \string getLink()
     * @method \Bitrix\Mail\EO_MailServices setLink(\string|\Bitrix\Main\DB\SqlExpression $link)
     * @method bool hasLink()
     * @method bool isLinkFilled()
     * @method bool isLinkChanged()
     * @method \string remindActualLink()
     * @method \string requireLink()
     * @method \Bitrix\Mail\EO_MailServices resetLink()
     * @method \Bitrix\Mail\EO_MailServices unsetLink()
     * @method \string fillLink()
     * @method \int getIcon()
     * @method \Bitrix\Mail\EO_MailServices setIcon(\int|\Bitrix\Main\DB\SqlExpression $icon)
     * @method bool hasIcon()
     * @method bool isIconFilled()
     * @method bool isIconChanged()
     * @method \int remindActualIcon()
     * @method \int requireIcon()
     * @method \Bitrix\Mail\EO_MailServices resetIcon()
     * @method \Bitrix\Mail\EO_MailServices unsetIcon()
     * @method \int fillIcon()
     * @method \string getToken()
     * @method \Bitrix\Mail\EO_MailServices setToken(\string|\Bitrix\Main\DB\SqlExpression $token)
     * @method bool hasToken()
     * @method bool isTokenFilled()
     * @method bool isTokenChanged()
     * @method \string remindActualToken()
     * @method \string requireToken()
     * @method \Bitrix\Mail\EO_MailServices resetToken()
     * @method \Bitrix\Mail\EO_MailServices unsetToken()
     * @method \string fillToken()
     * @method \int getFlags()
     * @method \Bitrix\Mail\EO_MailServices setFlags(\int|\Bitrix\Main\DB\SqlExpression $flags)
     * @method bool hasFlags()
     * @method bool isFlagsFilled()
     * @method bool isFlagsChanged()
     * @method \int remindActualFlags()
     * @method \int requireFlags()
     * @method \Bitrix\Mail\EO_MailServices resetFlags()
     * @method \Bitrix\Mail\EO_MailServices unsetFlags()
     * @method \int fillFlags()
     * @method \Bitrix\Main\EO_Site getSite()
     * @method \Bitrix\Main\EO_Site remindActualSite()
     * @method \Bitrix\Main\EO_Site requireSite()
     * @method \Bitrix\Mail\EO_MailServices setSite(\Bitrix\Main\EO_Site $object)
     * @method \Bitrix\Mail\EO_MailServices resetSite()
     * @method \Bitrix\Mail\EO_MailServices unsetSite()
     * @method bool hasSite()
     * @method bool isSiteFilled()
     * @method bool isSiteChanged()
     * @method \Bitrix\Main\EO_Site fillSite()
     * @method \string getSmtpServer()
     * @method \Bitrix\Mail\EO_MailServices setSmtpServer(\string|\Bitrix\Main\DB\SqlExpression $smtpServer)
     * @method bool hasSmtpServer()
     * @method bool isSmtpServerFilled()
     * @method bool isSmtpServerChanged()
     * @method \string remindActualSmtpServer()
     * @method \string requireSmtpServer()
     * @method \Bitrix\Mail\EO_MailServices resetSmtpServer()
     * @method \Bitrix\Mail\EO_MailServices unsetSmtpServer()
     * @method \string fillSmtpServer()
     * @method \int getSmtpPort()
     * @method \Bitrix\Mail\EO_MailServices setSmtpPort(\int|\Bitrix\Main\DB\SqlExpression $smtpPort)
     * @method bool hasSmtpPort()
     * @method bool isSmtpPortFilled()
     * @method bool isSmtpPortChanged()
     * @method \int remindActualSmtpPort()
     * @method \int requireSmtpPort()
     * @method \Bitrix\Mail\EO_MailServices resetSmtpPort()
     * @method \Bitrix\Mail\EO_MailServices unsetSmtpPort()
     * @method \int fillSmtpPort()
     * @method \boolean getSmtpLoginAsImap()
     * @method \Bitrix\Mail\EO_MailServices setSmtpLoginAsImap(\boolean|\Bitrix\Main\DB\SqlExpression $smtpLoginAsImap)
     * @method bool hasSmtpLoginAsImap()
     * @method bool isSmtpLoginAsImapFilled()
     * @method bool isSmtpLoginAsImapChanged()
     * @method \boolean remindActualSmtpLoginAsImap()
     * @method \boolean requireSmtpLoginAsImap()
     * @method \Bitrix\Mail\EO_MailServices resetSmtpLoginAsImap()
     * @method \Bitrix\Mail\EO_MailServices unsetSmtpLoginAsImap()
     * @method \boolean fillSmtpLoginAsImap()
     * @method \boolean getSmtpPasswordAsImap()
     * @method \Bitrix\Mail\EO_MailServices setSmtpPasswordAsImap(\boolean|\Bitrix\Main\DB\SqlExpression $smtpPasswordAsImap)
     * @method bool hasSmtpPasswordAsImap()
     * @method bool isSmtpPasswordAsImapFilled()
     * @method bool isSmtpPasswordAsImapChanged()
     * @method \boolean remindActualSmtpPasswordAsImap()
     * @method \boolean requireSmtpPasswordAsImap()
     * @method \Bitrix\Mail\EO_MailServices resetSmtpPasswordAsImap()
     * @method \Bitrix\Mail\EO_MailServices unsetSmtpPasswordAsImap()
     * @method \boolean fillSmtpPasswordAsImap()
     * @method \boolean getSmtpEncryption()
     * @method \Bitrix\Mail\EO_MailServices setSmtpEncryption(\boolean|\Bitrix\Main\DB\SqlExpression $smtpEncryption)
     * @method bool hasSmtpEncryption()
     * @method bool isSmtpEncryptionFilled()
     * @method bool isSmtpEncryptionChanged()
     * @method \boolean remindActualSmtpEncryption()
     * @method \boolean requireSmtpEncryption()
     * @method \Bitrix\Mail\EO_MailServices resetSmtpEncryption()
     * @method \Bitrix\Mail\EO_MailServices unsetSmtpEncryption()
     * @method \boolean fillSmtpEncryption()
     * @method \boolean getUploadOutgoing()
     * @method \Bitrix\Mail\EO_MailServices setUploadOutgoing(\boolean|\Bitrix\Main\DB\SqlExpression $uploadOutgoing)
     * @method bool hasUploadOutgoing()
     * @method bool isUploadOutgoingFilled()
     * @method bool isUploadOutgoingChanged()
     * @method \boolean remindActualUploadOutgoing()
     * @method \boolean requireUploadOutgoing()
     * @method \Bitrix\Mail\EO_MailServices resetUploadOutgoing()
     * @method \Bitrix\Mail\EO_MailServices unsetUploadOutgoing()
     * @method \boolean fillUploadOutgoing()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\EO_MailServices set($fieldName, $value)
     * @method \Bitrix\Mail\EO_MailServices reset($fieldName)
     * @method \Bitrix\Mail\EO_MailServices unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\EO_MailServices wakeUp($data)
     */
    class EO_MailServices
    {
        /* @var \Bitrix\Mail\MailServicesTable */
        public static $dataClass = '\\Bitrix\\Mail\\MailServicesTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_MailServices_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getSiteIdList()
     * @method \string[] fillSiteId()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \string[] getServiceTypeList()
     * @method \string[] fillServiceType()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getServerList()
     * @method \string[] fillServer()
     * @method \int[] getPortList()
     * @method \int[] fillPort()
     * @method \boolean[] getEncryptionList()
     * @method \boolean[] fillEncryption()
     * @method \string[] getLinkList()
     * @method \string[] fillLink()
     * @method \int[] getIconList()
     * @method \int[] fillIcon()
     * @method \string[] getTokenList()
     * @method \string[] fillToken()
     * @method \int[] getFlagsList()
     * @method \int[] fillFlags()
     * @method \Bitrix\Main\EO_Site[] getSiteList()
     * @method \Bitrix\Mail\EO_MailServices_Collection getSiteCollection()
     * @method \Bitrix\Main\EO_Site_Collection fillSite()
     * @method \string[] getSmtpServerList()
     * @method \string[] fillSmtpServer()
     * @method \int[] getSmtpPortList()
     * @method \int[] fillSmtpPort()
     * @method \boolean[] getSmtpLoginAsImapList()
     * @method \boolean[] fillSmtpLoginAsImap()
     * @method \boolean[] getSmtpPasswordAsImapList()
     * @method \boolean[] fillSmtpPasswordAsImap()
     * @method \boolean[] getSmtpEncryptionList()
     * @method \boolean[] fillSmtpEncryption()
     * @method \boolean[] getUploadOutgoingList()
     * @method \boolean[] fillUploadOutgoing()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\EO_MailServices $object)
     * @method bool has(\Bitrix\Mail\EO_MailServices $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\EO_MailServices getByPrimary($primary)
     * @method \Bitrix\Mail\EO_MailServices[] getAll()
     * @method bool remove(\Bitrix\Mail\EO_MailServices $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\EO_MailServices_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\EO_MailServices current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_MailServices_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\MailServicesTable */
        public static $dataClass = '\\Bitrix\\Mail\\MailServicesTable';
    }
    /**
     * @method static EO_MailServices_Query query()
     * @method static EO_MailServices_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_MailServices_Result getById($id)
     * @method static EO_MailServices_Result getList(array $parameters = array())
     * @method static EO_MailServices_Entity getEntity()
     * @method static \Bitrix\Mail\EO_MailServices createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\EO_MailServices_Collection createCollection()
     * @method static \Bitrix\Mail\EO_MailServices wakeUpObject($row)
     * @method static \Bitrix\Mail\EO_MailServices_Collection wakeUpCollection($rows)
     */
    class MailServicesTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_MailServices_Result exec()
     * @method \Bitrix\Mail\EO_MailServices fetchObject()
     * @method \Bitrix\Mail\EO_MailServices_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_MailServices_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\EO_MailServices fetchObject()
     * @method \Bitrix\Mail\EO_MailServices_Collection fetchCollection()
     */
    class EO_MailServices_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\EO_MailServices createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\EO_MailServices_Collection createCollection()
     * @method \Bitrix\Mail\EO_MailServices wakeUpObject($row)
     * @method \Bitrix\Mail\EO_MailServices_Collection wakeUpCollection($rows)
     */
    class EO_MailServices_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Mail\User {
    /**
     * EO_Message
     * @see \Bitrix\Mail\User\MessageTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Mail\User\EO_Message setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getType()
     * @method \Bitrix\Mail\User\EO_Message setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\Mail\User\EO_Message resetType()
     * @method \Bitrix\Mail\User\EO_Message unsetType()
     * @method \string fillType()
     * @method \string getSiteId()
     * @method \Bitrix\Mail\User\EO_Message setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string remindActualSiteId()
     * @method \string requireSiteId()
     * @method \Bitrix\Mail\User\EO_Message resetSiteId()
     * @method \Bitrix\Mail\User\EO_Message unsetSiteId()
     * @method \string fillSiteId()
     * @method \string getEntityType()
     * @method \Bitrix\Mail\User\EO_Message setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \string remindActualEntityType()
     * @method \string requireEntityType()
     * @method \Bitrix\Mail\User\EO_Message resetEntityType()
     * @method \Bitrix\Mail\User\EO_Message unsetEntityType()
     * @method \string fillEntityType()
     * @method \int getEntityId()
     * @method \Bitrix\Mail\User\EO_Message setEntityId(\int|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \int remindActualEntityId()
     * @method \int requireEntityId()
     * @method \Bitrix\Mail\User\EO_Message resetEntityId()
     * @method \Bitrix\Mail\User\EO_Message unsetEntityId()
     * @method \int fillEntityId()
     * @method \int getUserId()
     * @method \Bitrix\Mail\User\EO_Message setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Mail\User\EO_Message resetUserId()
     * @method \Bitrix\Mail\User\EO_Message unsetUserId()
     * @method \int fillUserId()
     * @method \string getSubject()
     * @method \Bitrix\Mail\User\EO_Message setSubject(\string|\Bitrix\Main\DB\SqlExpression $subject)
     * @method bool hasSubject()
     * @method bool isSubjectFilled()
     * @method bool isSubjectChanged()
     * @method \string remindActualSubject()
     * @method \string requireSubject()
     * @method \Bitrix\Mail\User\EO_Message resetSubject()
     * @method \Bitrix\Mail\User\EO_Message unsetSubject()
     * @method \string fillSubject()
     * @method \string getContent()
     * @method \Bitrix\Mail\User\EO_Message setContent(\string|\Bitrix\Main\DB\SqlExpression $content)
     * @method bool hasContent()
     * @method bool isContentFilled()
     * @method bool isContentChanged()
     * @method \string remindActualContent()
     * @method \string requireContent()
     * @method \Bitrix\Mail\User\EO_Message resetContent()
     * @method \Bitrix\Mail\User\EO_Message unsetContent()
     * @method \string fillContent()
     * @method \string getAttachments()
     * @method \Bitrix\Mail\User\EO_Message setAttachments(\string|\Bitrix\Main\DB\SqlExpression $attachments)
     * @method bool hasAttachments()
     * @method bool isAttachmentsFilled()
     * @method bool isAttachmentsChanged()
     * @method \string remindActualAttachments()
     * @method \string requireAttachments()
     * @method \Bitrix\Mail\User\EO_Message resetAttachments()
     * @method \Bitrix\Mail\User\EO_Message unsetAttachments()
     * @method \string fillAttachments()
     * @method \string getHeaders()
     * @method \Bitrix\Mail\User\EO_Message setHeaders(\string|\Bitrix\Main\DB\SqlExpression $headers)
     * @method bool hasHeaders()
     * @method bool isHeadersFilled()
     * @method bool isHeadersChanged()
     * @method \string remindActualHeaders()
     * @method \string requireHeaders()
     * @method \Bitrix\Mail\User\EO_Message resetHeaders()
     * @method \Bitrix\Mail\User\EO_Message unsetHeaders()
     * @method \string fillHeaders()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\User\EO_Message set($fieldName, $value)
     * @method \Bitrix\Mail\User\EO_Message reset($fieldName)
     * @method \Bitrix\Mail\User\EO_Message unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\User\EO_Message wakeUp($data)
     */
    class EO_Message
    {
        /* @var \Bitrix\Mail\User\MessageTable */
        public static $dataClass = '\\Bitrix\\Mail\\User\\MessageTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Message_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \string[] getSiteIdList()
     * @method \string[] fillSiteId()
     * @method \string[] getEntityTypeList()
     * @method \string[] fillEntityType()
     * @method \int[] getEntityIdList()
     * @method \int[] fillEntityId()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \string[] getSubjectList()
     * @method \string[] fillSubject()
     * @method \string[] getContentList()
     * @method \string[] fillContent()
     * @method \string[] getAttachmentsList()
     * @method \string[] fillAttachments()
     * @method \string[] getHeadersList()
     * @method \string[] fillHeaders()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\User\EO_Message $object)
     * @method bool has(\Bitrix\Mail\User\EO_Message $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\User\EO_Message getByPrimary($primary)
     * @method \Bitrix\Mail\User\EO_Message[] getAll()
     * @method bool remove(\Bitrix\Mail\User\EO_Message $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\User\EO_Message_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\User\EO_Message current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Message_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\User\MessageTable */
        public static $dataClass = '\\Bitrix\\Mail\\User\\MessageTable';
    }
    /**
     * @method static EO_Message_Query query()
     * @method static EO_Message_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Message_Result getById($id)
     * @method static EO_Message_Result getList(array $parameters = array())
     * @method static EO_Message_Entity getEntity()
     * @method static \Bitrix\Mail\User\EO_Message createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\User\EO_Message_Collection createCollection()
     * @method static \Bitrix\Mail\User\EO_Message wakeUpObject($row)
     * @method static \Bitrix\Mail\User\EO_Message_Collection wakeUpCollection($rows)
     */
    class MessageTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Message_Result exec()
     * @method \Bitrix\Mail\User\EO_Message fetchObject()
     * @method \Bitrix\Mail\User\EO_Message_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Message_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\User\EO_Message fetchObject()
     * @method \Bitrix\Mail\User\EO_Message_Collection fetchCollection()
     */
    class EO_Message_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\User\EO_Message createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\User\EO_Message_Collection createCollection()
     * @method \Bitrix\Mail\User\EO_Message wakeUpObject($row)
     * @method \Bitrix\Mail\User\EO_Message_Collection wakeUpCollection($rows)
     */
    class EO_Message_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Mail {
    /**
     * EO_UserRelations
     * @see \Bitrix\Mail\UserRelationsTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getToken()
     * @method \Bitrix\Mail\EO_UserRelations setToken(\string|\Bitrix\Main\DB\SqlExpression $token)
     * @method bool hasToken()
     * @method bool isTokenFilled()
     * @method bool isTokenChanged()
     * @method \string getSiteId()
     * @method \Bitrix\Mail\EO_UserRelations setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string remindActualSiteId()
     * @method \string requireSiteId()
     * @method \Bitrix\Mail\EO_UserRelations resetSiteId()
     * @method \Bitrix\Mail\EO_UserRelations unsetSiteId()
     * @method \string fillSiteId()
     * @method \int getUserId()
     * @method \Bitrix\Mail\EO_UserRelations setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Mail\EO_UserRelations resetUserId()
     * @method \Bitrix\Mail\EO_UserRelations unsetUserId()
     * @method \int fillUserId()
     * @method \string getEntityType()
     * @method \Bitrix\Mail\EO_UserRelations setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \string remindActualEntityType()
     * @method \string requireEntityType()
     * @method \Bitrix\Mail\EO_UserRelations resetEntityType()
     * @method \Bitrix\Mail\EO_UserRelations unsetEntityType()
     * @method \string fillEntityType()
     * @method \int getEntityId()
     * @method \Bitrix\Mail\EO_UserRelations setEntityId(\int|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \int remindActualEntityId()
     * @method \int requireEntityId()
     * @method \Bitrix\Mail\EO_UserRelations resetEntityId()
     * @method \Bitrix\Mail\EO_UserRelations unsetEntityId()
     * @method \int fillEntityId()
     * @method \string getEntityLink()
     * @method \Bitrix\Mail\EO_UserRelations setEntityLink(\string|\Bitrix\Main\DB\SqlExpression $entityLink)
     * @method bool hasEntityLink()
     * @method bool isEntityLinkFilled()
     * @method bool isEntityLinkChanged()
     * @method \string remindActualEntityLink()
     * @method \string requireEntityLink()
     * @method \Bitrix\Mail\EO_UserRelations resetEntityLink()
     * @method \Bitrix\Mail\EO_UserRelations unsetEntityLink()
     * @method \string fillEntityLink()
     * @method \string getBackurl()
     * @method \Bitrix\Mail\EO_UserRelations setBackurl(\string|\Bitrix\Main\DB\SqlExpression $backurl)
     * @method bool hasBackurl()
     * @method bool isBackurlFilled()
     * @method bool isBackurlChanged()
     * @method \string remindActualBackurl()
     * @method \string requireBackurl()
     * @method \Bitrix\Mail\EO_UserRelations resetBackurl()
     * @method \Bitrix\Mail\EO_UserRelations unsetBackurl()
     * @method \string fillBackurl()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Mail\EO_UserRelations setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Mail\EO_UserRelations resetUser()
     * @method \Bitrix\Mail\EO_UserRelations unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Mail\EO_UserRelations set($fieldName, $value)
     * @method \Bitrix\Mail\EO_UserRelations reset($fieldName)
     * @method \Bitrix\Mail\EO_UserRelations unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Mail\EO_UserRelations wakeUp($data)
     */
    class EO_UserRelations
    {
        /* @var \Bitrix\Mail\UserRelationsTable */
        public static $dataClass = '\\Bitrix\\Mail\\UserRelationsTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserRelations_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getTokenList()
     * @method \string[] getSiteIdList()
     * @method \string[] fillSiteId()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \string[] getEntityTypeList()
     * @method \string[] fillEntityType()
     * @method \int[] getEntityIdList()
     * @method \int[] fillEntityId()
     * @method \string[] getEntityLinkList()
     * @method \string[] fillEntityLink()
     * @method \string[] getBackurlList()
     * @method \string[] fillBackurl()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Mail\EO_UserRelations_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Mail\EO_UserRelations $object)
     * @method bool has(\Bitrix\Mail\EO_UserRelations $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Mail\EO_UserRelations getByPrimary($primary)
     * @method \Bitrix\Mail\EO_UserRelations[] getAll()
     * @method bool remove(\Bitrix\Mail\EO_UserRelations $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Mail\EO_UserRelations_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Mail\EO_UserRelations current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserRelations_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Mail\UserRelationsTable */
        public static $dataClass = '\\Bitrix\\Mail\\UserRelationsTable';
    }
    /**
     * @method static EO_UserRelations_Query query()
     * @method static EO_UserRelations_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserRelations_Result getById($id)
     * @method static EO_UserRelations_Result getList(array $parameters = array())
     * @method static EO_UserRelations_Entity getEntity()
     * @method static \Bitrix\Mail\EO_UserRelations createObject($setDefaultValues = true)
     * @method static \Bitrix\Mail\EO_UserRelations_Collection createCollection()
     * @method static \Bitrix\Mail\EO_UserRelations wakeUpObject($row)
     * @method static \Bitrix\Mail\EO_UserRelations_Collection wakeUpCollection($rows)
     */
    class UserRelationsTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserRelations_Result exec()
     * @method \Bitrix\Mail\EO_UserRelations fetchObject()
     * @method \Bitrix\Mail\EO_UserRelations_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserRelations_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Mail\EO_UserRelations fetchObject()
     * @method \Bitrix\Mail\EO_UserRelations_Collection fetchCollection()
     */
    class EO_UserRelations_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Mail\EO_UserRelations createObject($setDefaultValues = true)
     * @method \Bitrix\Mail\EO_UserRelations_Collection createCollection()
     * @method \Bitrix\Mail\EO_UserRelations wakeUpObject($row)
     * @method \Bitrix\Mail\EO_UserRelations_Collection wakeUpCollection($rows)
     */
    class EO_UserRelations_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Mail\MessageView {
    class AvatarManager
    {
        private $currentUserId;
        public function __construct($currentUserId = null)
        {
        }
        public function getAvatarParamsFromEmails($messages)
        {
        }
        public function getAvatarParamsFromMessagesHeaders($messages)
        {
        }
        private function getEmailsNames($messages)
        {
        }
        private function getBestNameChoices($emailNames)
        {
        }
        private function extractMailsNamesFrom($parsedListOfEmails)
        {
        }
        private function fillFileIdColumn($mailContacts)
        {
        }
        protected function fetchMailContacts($emails)
        {
        }
    }
}
namespace Bitrix\Mail\Imap {
    /**
     * https://tools.ietf.org/html/rfc3501#section-7.4.2
     *
     * multipart:
     * 	- parts array
     * 	- subtype
     * 	+ params array
     * 	+ disposition array
     * 	+ language
     * 	+ location
     *
     * basic:
     * 	- type
     * 	- subtype
     * 	- params array
     * 	- content id
     * 	- description
     * 	- encoding
     * 	- size
     * 	+ body MD5
     * 	+ disposition array
     * 	+ language
     * 	+ location
     *
     * text:
     * 	- type
     * 	- subtype
     * 	- params array
     * 	- content id
     * 	- description
     * 	- encoding
     * 	- size
     * 	- size in text lines
     * 	+ body MD5
     * 	+ disposition array
     * 	+ language
     * 	+ location
     *
     * message/rfc822:
     * 	- type
     * 	- subtype
     * 	- params array
     * 	- content id
     * 	- description
     * 	- encoding
     * 	- size
     * 	- envelope structure
     * 	- body structure
     * 	- size in text lines
     * 	+ body MD5
     * 	+ disposition array
     * 	+ language
     * 	+ location
     */
    class BodyStructure
    {
        protected $number;
        protected $data = array();
        protected $isMultipart = false, $partsCount = 0;
        public function __construct(array $bodystructure, $number = null)
        {
        }
        public function getNumber()
        {
        }
        public function getType()
        {
        }
        public function getSubtype()
        {
        }
        public function getParams()
        {
        }
        public function getId()
        {
        }
        public function getEncoding()
        {
        }
        protected function getDispositionIndex()
        {
        }
        public function getDisposition()
        {
        }
        public function isMultipart()
        {
        }
        public function isText()
        {
        }
        public function isAttachment()
        {
        }
        public function isBodyText()
        {
        }
        public function traverse(callable $callback, $flat = false)
        {
        }
    }
}
namespace Bitrix\Mail\Integration\Calendar\ICal {
    class ICalMailManager
    {
        const CONTENT_TYPES = ['application/ics', 'text/calendar'];
        public static function manageRequest($params)
        {
        }
        public static function manageReply($data) : array
        {
        }
        public static function parseRequest($data) : array
        {
        }
        public static function parseFile($fileId)
        {
        }
        public static function getFileContent($fileId)
        {
        }
        public static function hasICalAttachments(array $attachments)
        {
        }
    }
    class ICalMailEventManager
    {
        public static function onMailMessageNew(\Bitrix\Main\Event $event)
        {
        }
        private static function getFiles($message)
        {
        }
    }
}
namespace Bitrix\Mail\Integration\Im {
    class Notification
    {
        public static function getSchema()
        {
        }
        public static function add($rcpt, $type, $data)
        {
        }
    }
}
namespace Bitrix\Mail\Integration\Main\UISelector {
    class Handler
    {
        const ENTITY_TYPE_MAILCONTACTS = 'MAILCONTACTS';
        public static function OnUISelectorGetProviderByEntityType(\Bitrix\Main\Event $event)
        {
        }
        public static function OnUISelectorFillLastDestination(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Main\UI\Selector {
    abstract class EntityBase
    {
        public function getData()
        {
        }
        public function search()
        {
        }
        public function getTabList()
        {
        }
        public function loadAll()
        {
        }
        public function getItemName($itemCode = '')
        {
        }
    }
}
namespace Bitrix\Mail\Integration\Main\UISelector {
    class MailContacts extends \Bitrix\Main\UI\Selector\EntityBase
    {
        const PREFIX = 'MC';
        private static function prepareEntity($data, $options = [])
        {
        }
        public function getData($params = [])
        {
        }
        public function getTabList($params = [])
        {
        }
        public function search($params = array())
        {
        }
    }
}
namespace Bitrix\Mail\Registrar {
    abstract class Registrar
    {
        /**
         * Checks domain available.
         * @param string $user User name.
         * @param string $password User password.
         * @param string $domain Domain name.
         * @param string|null &$error Error message if occurred.
         * @return bool|null Returns true if domain exists.
         */
        public static abstract function checkDomain(string $user, string $password, string $domain, ?string &$error) : ?bool;
        /**
         * Suggests domains by query words.
         * @param string $user User name.
         * @param string $password User password.
         * @param string $word1 Query word 1.
         * @param string $word2 Query word 2.
         * @param array $tlds Query tlds.
         * @param string|null &$error Error message if occurred.
         * @return array|null
         */
        public static abstract function suggestDomain(string $user, string $password, string $word1, string $word2, array $tlds, ?string &$error) : ?array;
        /**
         * Creates new domain.
         * @param string $user User name.
         * @param string $password User password.
         * @param string $domain Domain name.
         * @param array $params Additional params.
         * @param string|null &$error Error message if occurred.
         * @return bool|null Returns true on success.
         */
        public static abstract function createDomain(string $user, string $password, string $domain, array $params, ?string &$error) : ?bool;
        /**
         * Updates domain DNS.
         * @param string $user User name.
         * @param string $password User password.
         * @param string $domain Domain name.
         * @param array $params Additional params.
         * @param string|null &$error Error message if occurred.
         * @return bool|null Returns true on success.
         */
        public static abstract function updateDns(string $user, string $password, string $domain, array $params, ?string &$error) : ?bool;
    }
    class RegRu extends \Bitrix\Mail\Registrar\Registrar
    {
        /**
         * Checks domain available.
         * @param string $user User name.
         * @param string $password User password.
         * @param string $domain Domain name.
         * @param string|null &$error Error message if occurred.
         * @return bool|null Returns true if domain exists.
         */
        public static function checkDomain(string $user, string $password, string $domain, ?string &$error) : ?bool
        {
        }
        /**
         * Suggests domains by query words.
         * @param string $user User name.
         * @param string $password User password.
         * @param string $word1 Query word 1.
         * @param string $word2 Query word 2.
         * @param array $tlds Query tlds.
         * @param string|null &$error Error message if occurred.
         * @return array|null
         */
        public static function suggestDomain(string $user, string $password, string $word1, string $word2, array $tlds, ?string &$error) : ?array
        {
        }
        /**
         * Creates new domain.
         * @param string $user User name.
         * @param string $password User password.
         * @param string $domain Domain name.
         * @param array $params Additional params.
         * @param string|null &$error Error message if occurred.
         * @return bool|null Returns true on success.
         */
        public static function createDomain(string $user, string $password, string $domain, array $params, ?string &$error) : ?bool
        {
        }
        /**
         * Updates domain DNS.
         * @param string $user User name.
         * @param string $password User password.
         * @param string $domain Domain name.
         * @param array $params Additional params.
         * @param string|null &$error Error message if occurred.
         * @return bool|null Returns true on success.
         */
        public static function updateDns(string $user, string $password, string $domain, array $params, ?string &$error) : ?bool
        {
        }
    }
    class Omnilance extends \Bitrix\Mail\Registrar\Registrar
    {
        /**
         * Base endpoint url.
         */
        const BASE_ENDPOINT = 'https://api.omnilance.com/v3/';
        /**
         * API key.
         * @var string
         */
        private $apiKey;
        /**
         * Secret key.
         * @var string
         */
        private $secretKey;
        /**
         * Http Client instance.
         * @var \Bitrix\Main\Web\HttpClient
         */
        private $http;
        /**
         * Omnilance constructor.
         * @param string $apiKey API key.
         * @param string $secretKey Secret key.
         */
        public function __construct(string $apiKey, string $secretKey)
        {
        }
        /**
         * Set necessary headers.
         * @param string $endPoint End point.
         * @param string $payLoad Payload.
         * @return void
         */
        private function setHeaders(string $endPoint, string $payLoad) : void
        {
        }
        /**
         * Sends command.
         * @param string $endPoint End point.
         * @param string $payLoad Payload.
         * @return string
         */
        private function sendPostCommand(string $endPoint, string $payLoad) : string
        {
        }
        /**
         * Checks domain available.
         * @param string $user User name.
         * @param string $password User password.
         * @param string $domain Domain name.
         * @param string|null &$error Error message if occurred.
         * @return bool|null Returns true if domain exists.
         */
        public static function checkDomain(string $user, string $password, string $domain, ?string &$error) : ?bool
        {
        }
        /**
         * Suggests domains by query words.
         * @param string $user User name.
         * @param string $password User password.
         * @param string $word1 Query word 1.
         * @param string $word2 Query word 2.
         * @param array $tlds Query tlds.
         * @param string|null &$error Error message if occurred.
         * @return array|null
         */
        public static function suggestDomain(string $user, string $password, string $word1, string $word2, array $tlds, ?string &$error) : ?array
        {
        }
        /**
         * Creates new domain.
         * @param string $user User name.
         * @param string $password User password.
         * @param string $domain Domain name.
         * @param array $params Additional params.
         * @param string|null &$error Error message if occurred.
         * @return bool|null Returns true on success.
         */
        public static function createDomain(string $user, string $password, string $domain, array $params, ?string &$error) : ?bool
        {
        }
        /**
         * Updates domain DNS.
         * @param string $user User name.
         * @param string $password User password.
         * @param string $domain Domain name.
         * @param array $params Additional params.
         * @param string|null &$error Error message if occurred.
         * @return bool|null Returns true on success.
         */
        public static function updateDns(string $user, string $password, string $domain, array $params, ?string &$error) : ?bool
        {
        }
    }
}
namespace Bitrix\Mail {
    class User
    {
        /**
         * Creates mail user
         *
         * @param array $fields User fields.
         * @return int|false
         */
        public static function create($fields)
        {
        }
        /**
         * Runs user login
         *
         * @return void
         */
        public static function login()
        {
        }
        /**
         * Returns mail user ID
         *
         * @param array &$params Auth params.
         * @return int|false
         */
        public static function onLoginExternal(&$params)
        {
        }
        /**
         * Returns User-Entity unique email and entry point URL
         *
         * @param string $siteId Site ID.
         * @param int $userId User ID.
         * @param string $entityType Entity type ID.
         * @param int $entityId Entity ID.
         * @param string $entityLink Entity URL.
         * @param string $backurl Back URL.
         * @return array|false
         */
        public static function getReplyTo($siteId, $userId, $entityType, $entityId, $entityLink = null, $backurl = null)
        {
        }
        /**
         * Returns Site-User-Entity unique email
         *
         * @param string $siteId Site ID.
         * @param int $userId User ID.
         * @param string $entityType Entity type ID.
         * @return array|false
         */
        public static function getForwardTo($siteId, $userId, $entityType)
        {
        }
        /**
         * Sends email related events
         *
         * @param string $to Recipient email.
         * @param array $message Message.
         * @param string &$error Error.
         * @return bool
         */
        public static function onEmailReceived($to, $message, &$error)
        {
        }
        /**
         * Agent method, retrieves stored user message and sends an event
         */
        public static function sendEventAgent($messageId = 0, $cnt = 0)
        {
        }
        /**
         * Returns email users group
         *
         * @return array
         */
        public static function getMailUserGroup()
        {
        }
        public static function getDefaultEmailFrom($serverName = false)
        {
        }
        public static function getUserData($userList, $nameTemplate)
        {
        }
        public static function handleSiteUpdate($fields)
        {
        }
        public static function handleServerNameUpdate()
        {
        }
        public static function clearTokensCache()
        {
        }
    }
}
namespace Bitrix\Mail\Controller {
    /**
     * Class AddressBook
     * @package Bitrix\Mail\Controller
     */
    class AddressBook extends \Bitrix\Main\Engine\Controller
    {
        private function editContact($contactData)
        {
        }
        private function isUserAdmin()
        {
        }
        private function checkAccess()
        {
        }
        /**
         * @param $idSet
         *
         * @return bool
         * @throws \Exception
         */
        public function removeContactsAction($idSet)
        {
        }
        /**
         * @param $contactData
         *
         * @return bool
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function saveContactAction($contactData)
        {
        }
    }
    abstract class Base extends \Bitrix\Main\Engine\Controller
    {
        protected function init()
        {
        }
        protected function sanitize($text)
        {
        }
        /**
         * @param array $array
         * @param int $levels
         * @param int $currentLevel
         * @return array
         */
        protected function convertArrayKeysToCamel(array $array, $levels = 0, $currentLevel = 0)
        {
        }
        /**
         * @param array $array
         * @param int $levels
         * @param int $currentLevel
         * @return array
         */
        protected function convertArrayKeysToUpper(array $array, $levels = 0, $currentLevel = 0)
        {
        }
        /**
         * @param string $string
         * @return string
         */
        protected function toCamelCase($string)
        {
        }
        /**
         * @param string $string
         * @return string
         */
        protected function toUpperCase($string)
        {
        }
    }
    class UserSignature extends \Bitrix\Mail\Controller\Base
    {
        const USER_SIGNATURES_LIMIT = 100;
        /**
         * @param array $fields
         * @return array|false
         */
        public function addAction(array $fields)
        {
        }
        /**
         * @param \Bitrix\Mail\Internals\Entity\UserSignature $userSignature
         */
        public function deleteAction(\Bitrix\Mail\Internals\Entity\UserSignature $userSignature)
        {
        }
        public function getAction(\Bitrix\Mail\Internals\Entity\UserSignature $userSignature)
        {
        }
        /**
         * @param \Bitrix\Mail\Internals\Entity\UserSignature $userSignature
         * @param array $fields
         * @return array|false
         */
        public function updateAction(\Bitrix\Mail\Internals\Entity\UserSignature $userSignature, array $fields)
        {
        }
    }
}
namespace Bitrix\Mail\ImapCommands {
    /**
     * Class SyncInternalManager
     * @package Bitrix\Mail\ImapCommands
     */
    class SyncInternalManager
    {
        const FLAG_UNSEEN = 'unseen';
        const FLAG_SEEN = 'seen';
        protected $userId;
        protected $mailbox;
        protected $mailboxId;
        protected $mailboxUserId;
        protected $messagesIds;
        protected $messages;
        private $isInit;
        /** @var Repository */
        protected $repository;
        /** @var Mailbox */
        protected $mailboxHelper;
        public function __construct($mailboxId, $messagesIds, $userId = null)
        {
        }
        public function setUserId($userId)
        {
        }
        protected function getRepository()
        {
        }
        protected function getMailClientHelper($throwExceptions = true)
        {
        }
        protected function initData($folderType = null)
        {
        }
        protected function getDirPathByType($dirType)
        {
        }
        protected function getDirByPath($path)
        {
        }
        protected function fillMessagesEmails()
        {
        }
    }
    /**
     * Class MailsFlagsManager
     * @package Bitrix\Mail\ImapCommands
     */
    class MailsFlagsManager extends \Bitrix\Mail\ImapCommands\SyncInternalManager
    {
        public function markMailsUnseen()
        {
        }
        public function markMailsSeen()
        {
        }
        private function setMessagesFlag($flag)
        {
        }
        private function updateLeftMenuCounter()
        {
        }
        public function setMessages($messages)
        {
        }
    }
    /**
     * Class MailsFoldersManager
     * @package Bitrix\Mail\ImapCommands
     */
    class MailsFoldersManager extends \Bitrix\Mail\ImapCommands\SyncInternalManager
    {
        public function deleteMails()
        {
        }
        public function moveMails($folderToMoveName)
        {
        }
        public function restoreMailsFromSpam()
        {
        }
        /**
         * @return Main\Result
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public function sendMailsToSpam()
        {
        }
        private function processDelete($folderTrashName)
        {
        }
        private function processMoving($messagesToMove, $folderToName)
        {
        }
        private function processSpam($folderSpamName)
        {
        }
        private function deleteMessages($messagesToDelete, $mailbox)
        {
        }
        private function isMailToBeDeleted($messageUid)
        {
        }
        private function moveMailsToFolder($folderToName)
        {
        }
        private function moveMailsByImap($messagesToMove, $folder)
        {
        }
        private function processSyncMovedMessages($folderCurrentNameEncoded)
        {
        }
        public static function syncMovedMessages($mailboxId, $mailboxUserId, $folderName)
        {
        }
        protected function imapSyncMovedMessages($messagesToMove, $folderName)
        {
        }
        public function setMailboxUserId($mailboxUserId)
        {
        }
    }
    class Repository
    {
        private $mailboxId;
        private $messagesIds;
        public function __construct($mailboxId, $messagesIds)
        {
        }
        public function getMailbox($mailboxUserId = null)
        {
        }
        public function deleteOldMessages($folderCurrentName)
        {
        }
        public function markMessagesUnseen($messages, $mailbox)
        {
        }
        public function markMessagesSeen($messages, $mailbox)
        {
        }
        protected function setMessagesSeen($isSeen, $messages, $mailbox)
        {
        }
        public function updateMessageFieldsAfterMove($messages, $folderNewName, $mailbox)
        {
        }
        public function addMailsToBlacklist($blacklistMails, $userId)
        {
        }
        public function deleteMailsCompletely($messagesToDelete, $mailboxUserId)
        {
        }
        public function getMessages()
        {
        }
    }
}
namespace Bitrix\Mail {
    class MailboxDirectory
    {
        public static function fetchAllDirsTypes($mailboxId)
        {
        }
        public static function fetchOneLevelByParentId($mailboxId, $id, $level)
        {
        }
        public static function fetchAllLevelByParentId($mailboxId, $path, $level)
        {
        }
        public static function fetchOneByMailboxIdAndHash($mailboxId, $hash)
        {
        }
        public static function fetchOneOutcome($mailboxId)
        {
        }
        public static function fetchTrashAndSpamHash($mailboxId)
        {
        }
        public static function fetchOneById($id)
        {
        }
        public static function fetchOneByHash($mailboxId, $hash)
        {
        }
        public static function updateSync($id, $val)
        {
        }
        public static function resetDirsTypes($mailboxId, $type)
        {
        }
        public static function update($id, $data)
        {
        }
        public static function add(array $data)
        {
        }
        public static function addMulti($rows, $ignoreEvents = false)
        {
        }
        public static function deleteList(array $filter)
        {
        }
        public static function updateSyncDirs(array $values, $val, $mailboxId)
        {
        }
        public static function fetchAll($mailboxId)
        {
        }
        public static function fetchAllSyncDirs($mailboxId)
        {
        }
        public static function fetchAllDisabledDirs($mailboxId)
        {
        }
        public static function countMessagesSyncDirs($mailboxId)
        {
        }
        public static function getMinSyncTime($mailboxId)
        {
        }
        public static function countSyncDirs($mailboxId)
        {
        }
        public static function updateMessageCount($id, $val)
        {
        }
        public static function updateFlags($id, $flags)
        {
        }
        public static function updateSyncTime($id, $val)
        {
        }
        public static function setSyncLock(int $id, int $time)
        {
        }
    }
}
namespace Bitrix\Mail\Internals\Entity {
    class BlacklistEmail extends \Bitrix\Mail\EO_Blacklist
    {
        public static function getDataClass()
        {
        }
        public function convertDomainToPunycode()
        {
        }
        public function isDomainType()
        {
        }
        public function isEmailType()
        {
        }
    }
    class MailboxDirectory extends \Bitrix\Mail\Internals\EO_MailboxDirectory implements \JsonSerializable
    {
        private $children = [];
        public function isSync()
        {
        }
        public function isDisabled()
        {
        }
        public function isSpam()
        {
        }
        public function isTrash()
        {
        }
        public function isDraft()
        {
        }
        public function isOutcome()
        {
        }
        public function isIncome()
        {
        }
        public function hasChildren()
        {
        }
        public function getChildren()
        {
        }
        public function addChild($dir)
        {
        }
        public function getCountChildren()
        {
        }
        public function getCountSyncChildren()
        {
        }
        public function getFormattedName()
        {
        }
        public function getName()
        {
        }
        public function isSyncLock()
        {
        }
        public function startSyncLock()
        {
        }
        public function stopSyncLock()
        {
        }
        /**
         * @inheritDoc
         */
        public function jsonSerialize()
        {
        }
    }
    class UserSignature extends \Bitrix\Mail\Internals\EO_UserSignature
    {
    }
}
namespace Bitrix\Mail\Internals {
    class MailboxDirectoryStorage
    {
        private $mailboxId = null;
        private $data = [];
        public function __construct($mailboxId)
        {
        }
        public function init()
        {
        }
        public function set(array $items)
        {
        }
        public function get(string $key, $default = null)
        {
        }
        public function getByHash(string $key)
        {
        }
        public function getByPath(string $key)
        {
        }
        private function has(string $key)
        {
        }
        private function remove(string $key)
        {
        }
        private function reset()
        {
        }
        private function getData(string $key, $default = null)
        {
        }
        private function setData($name, $value)
        {
        }
        private function group($items)
        {
        }
    }
}
namespace Bitrix\Mail\Blacklist {
    class ItemType
    {
        const DOMAIN = 1;
        const EMAIL = 2;
        //const PATTERN = 3;
        public static function resolveByValue($value)
        {
        }
    }
}
namespace Bitrix\Mail\Disk\Security {
    class MailSecurityContext extends \Bitrix\Disk\Security\SecurityContext
    {
        /**
         * @param $targetId
         * @return bool
         */
        public function canAdd($targetId)
        {
        }
        /**
         * @param $objectId
         * @return bool
         */
        public function canChangeRights($objectId)
        {
        }
        /**
         * @param $objectId
         * @return bool
         */
        public function canChangeSettings($objectId)
        {
        }
        /**
         * @param $objectId
         * @return bool
         */
        public function canCreateWorkflow($objectId)
        {
        }
        /**
         * @param $objectId
         * @return bool
         */
        public function canDelete($objectId)
        {
        }
        /**
         * @param $objectId
         * @return bool
         */
        public function canMarkDeleted($objectId)
        {
        }
        /**
         * @param $objectId
         * @param $targetId
         * @return bool
         */
        public function canMove($objectId, $targetId)
        {
        }
        /**
         * @param $objectId
         * @return bool
         */
        public function canRead($objectId)
        {
        }
        /**
         * @param $objectId
         * @return bool
         */
        public function canRename($objectId)
        {
        }
        /**
         * @param $objectId
         * @return bool
         */
        public function canRestore($objectId)
        {
        }
        /**
         * @param $objectId
         * @return bool
         */
        public function canShare($objectId)
        {
        }
        /**
         * @param $objectId
         * @return bool
         */
        public function canUpdate($objectId)
        {
        }
        /**
         * @param $objectId
         * @return bool
         */
        public function canStartBizProc($objectId)
        {
        }
        public function getSqlExpressionForList($columnObjectId, $columnCreatedBy)
        {
        }
    }
}
namespace Bitrix\Mail\Disk\ProxyType {
    class Mail extends \Bitrix\Disk\ProxyType\Base
    {
        /**
         * @param $user
         * @return \Bitrix\Disk\Security\SecurityContext
         */
        public function getSecurityContextByUser($user)
        {
        }
        /**
         * @inheritdoc
         */
        public function getStorageBaseUrl()
        {
        }
        /**
         * @inheritdoc
         */
        public function getEntityUrl()
        {
        }
        /**
         * @inheritdoc
         */
        public function getEntityTitle()
        {
        }
        /**
         * @inheritdoc
         */
        public function getEntityImageSrc($width, $height)
        {
        }
        /**
         * @inheritdoc
         */
        public function getTitle()
        {
        }
    }
}
namespace Bitrix\Mail {
    class Helper
    {
        const SYNC_TIMEOUT = 300;
        public static function syncMailboxAgent($id)
        {
        }
        public static function syncOutgoingAgent($id)
        {
        }
        public static function cleanupMailboxAgent($id)
        {
        }
        /**
         * @deprecated
         */
        public static function resortTreeAgent($id)
        {
        }
        public static function deleteMailboxAgent($id)
        {
        }
        public static function resyncDomainUsersAgent()
        {
        }
        public static function syncMailbox($id, &$error)
        {
        }
        public static function listImapDirs($mailbox, &$error, &$errors = null)
        {
        }
        public static function getImapUnseen($mailbox, $dir = 'inbox', &$error, &$errors = null)
        {
        }
        public static function addImapMessage($id, $data, &$error)
        {
        }
        public static function updateImapMessage($userId, $hash, $data, &$error)
        {
        }
        private static function createClient($mailbox, $langCharset = null)
        {
        }
    }
}
namespace Bitrix\Main\Mail {
    class Mail
    {
        protected $settingServerMsSmtp;
        protected $settingMailFillToEmail;
        protected $settingMailConvertMailHeader;
        protected $settingMailAddMessageId;
        protected $settingConvertNewLineUnixToWindows;
        protected $settingMailAdditionalParameters;
        protected $settingMaxFileSize;
        protected $settingAttachImages;
        protected $settingServerName;
        protected $settingMailEncodeBase64;
        protected $settingMailEncodeQuotedPrintable;
        protected $eol;
        protected $attachment;
        protected $generateTextVersion;
        protected $charset;
        protected $contentType;
        protected $messageId;
        protected $filesReplacedFromBody;
        protected $trackLinkProtocol;
        protected $trackReadLink;
        protected $trackClickLink;
        protected $trackClickUrlParams;
        protected $bitrixDirectory;
        protected $trackReadAvailable;
        protected $trackClickAvailable;
        protected $contentTransferEncoding = '8bit';
        protected $to;
        protected $subject;
        protected $headers = [];
        protected $body;
        protected $additionalParameters;
        /** @var  Context */
        protected $context;
        /** @var  Multipart */
        protected $multipart;
        /** @var  Multipart */
        protected $multipartRelated;
        /** @var  array */
        protected $blacklistedEmails = [];
        /** @var  array */
        protected $blacklistCheckedEmails = [];
        /** @var  bool */
        protected $useBlacklist = true;
        /** @var array  */
        protected static $emailHeaders = ['to', 'cc', 'bcc'];
        /**
         * Mail constructor.
         *
         * @param array $mailParams Mail parameters.
         */
        public function __construct(array $mailParams)
        {
        }
        /**
         * Create instance.
         *
         * @param array $mailParams Mail parameters.
         * @return static
         */
        public static function createInstance(array $mailParams)
        {
        }
        /**
         * Send email.
         *
         * @param array $mailParams Mail parameters.
         * @return bool
         */
        public static function send($mailParams)
        {
        }
        /**
         * Return true if mail can be sent.
         *
         * @return bool
         */
        public function canSend()
        {
        }
        /**
         * Init settings.
         *
         * @return void
         */
        public function initSettings()
        {
        }
        /**
         * Set additional parameters.
         *
         * @param string $additionalParameters Additional parameters.
         * @return void
         */
        public function setAdditionalParameters($additionalParameters = '')
        {
        }
        /**
         * Set body.
         *
         * @param string $bodyPart Html or text of body.
         * @return void
         */
        public function setBody($bodyPart)
        {
        }
        /**
         * Return true if mail has attachment.
         *
         * @return bool
         */
        public function hasAttachment()
        {
        }
        /**
         * Return true if mail has image attachment.
         *
         * @param bool $checkRelated Check image as related.
         * @return bool
         */
        public function hasImageAttachment($checkRelated = false)
        {
        }
        /**
         * Set attachment.
         *
         * @return void
         */
        public function setAttachment()
        {
        }
        private function isAttachmentImage(&$attachment, $checkRelated = false)
        {
        }
        private function isFileLimitExceeded($fileSize, &$summarySize)
        {
        }
        /**
         * Set headers.
         *
         * @param array $headers Headers.
         * @return $this
         */
        public function setHeaders(array $headers)
        {
        }
        /**
         * Set subject.
         *
         * @param string $subject Subject.
         * @return $this
         */
        public function setSubject($subject)
        {
        }
        /**
         * Set to.
         *
         * @param string $to To.
         * @return $this
         */
        public function setTo($to)
        {
        }
        /**
         * Get body.
         *
         * @return string
         */
        public function getBody()
        {
        }
        /**
         * Get headers.
         *
         * @return string
         */
        public function getHeaders()
        {
        }
        /**
         * Get message ID.
         *
         * @return string
         */
        public function getMessageId()
        {
        }
        /**
         * Get subject.
         *
         * @return string
         */
        public function getSubject()
        {
        }
        /**
         * Get to.
         *
         * @return string
         */
        public function getTo()
        {
        }
        /**
         * Get additional parameters.
         *
         * @return mixed
         */
        public function getAdditionalParameters()
        {
        }
        /**
         * Get context instance.
         *
         * @return Context|null
         */
        public function getContext()
        {
        }
        /**
         * Dump email data.
         *
         * @return string
         */
        public function dump()
        {
        }
        /**
         * Return true if input string is in 8bit charset.
         *
         * @param string $inputString Input string.
         * @return bool
         */
        public static function is8Bit($inputString)
        {
        }
        /**
         * Encode mime string.
         *
         * @param string $text Text string.
         * @param string $charset Charset.
         * @return string
         */
        public static function encodeMimeString($text, $charset)
        {
        }
        /**
         * Encode subject.
         *
         * @param string $text Text string.
         * @param string $charset Charset.
         * @return string
         */
        public static function encodeSubject($text, $charset)
        {
        }
        /**
         * Encode header From.
         *
         * @param string $text Text string.
         * @param string $charset Charset.
         * @return string
         */
        public static function encodeHeaderFrom($text, $charset)
        {
        }
        /**
         * Get symbol of mail End-Of-Line.
         *
         * @return string
         */
        public static function getMailEol()
        {
        }
        /**
         * @param $matches
         * @return string
         * @throws \Bitrix\Main\IO\FileNotFoundException
         */
        protected function getReplacedImageCid($matches)
        {
        }
        /**
         * @param $matches
         * @return string
         */
        protected function getReplacedImageSrc($matches)
        {
        }
        /**
         * Replace images.
         * All src of images in html will be added by protocol and domain.
         *
         * @param string $text Html text.
         * @return string
         */
        public function replaceImages($text)
        {
        }
        /**
         * @param $html
         * @return string
         */
        private function trackRead($html)
        {
        }
        /**
         * Replace href attribute in links.
         * All href of links in html will be added by protocol and domain.
         *
         * @param string $text Text.
         * @return mixed
         */
        public function replaceHrefs($text)
        {
        }
        /**
         * Track click.
         * All href of links in html will be wrapped by tracking url for click-detecting.
         *
         * @param array $matches Result of preg_match call.
         * @return string
         */
        public function trackClick($matches)
        {
        }
        /**
         * @param $type
         * @return string
         */
        protected function imageTypeToMimeType($type)
        {
        }
        protected function addMessageIdToBody($body, $isHtml, $messageId)
        {
        }
        protected function convertBodyHtmlToText($body)
        {
        }
        /**
         * Filter header emails by blacklist.
         *
         * @param array &$headers Headers.
         * return void
         */
        protected function filterHeaderEmails(array &$headers)
        {
        }
    }
}
namespace Bitrix\Mail {
    class DummyMail extends \Bitrix\Main\Mail\Mail
    {
        public function initSettings()
        {
        }
        public static function getMailEol()
        {
        }
        public function __toString()
        {
        }
        /**
         * @deprecated
         */
        public static function overwriteMessageHeaders(\Bitrix\Main\Mail\Mail $message, array $headers)
        {
        }
    }
    class MessageUserType
    {
        const USER_TYPE_ID = 'mail_message';
        public static function getUserTypeDescription()
        {
        }
        public static function getDbColumnType($userField)
        {
        }
        public static function getPublicView($userField, $params)
        {
        }
        public static function getPublicEdit($userField, $params)
        {
        }
        protected static function getPublicHtml($userField, $params, $mode = 'view')
        {
        }
        public static function onBeforeSaveAll($userField, $mailIds, $userId)
        {
        }
        public static function onBeforeSave($userField, $mailMessageId, $userId)
        {
        }
        public static function onDelete($userField, $messageId)
        {
        }
        private static function deleteList($filter)
        {
        }
        private static function sendEntityCreatedEvents($message, $userField)
        {
        }
    }
    class Smtp
    {
        const ERR_CONNECT = 101;
        const ERR_REJECTED = 102;
        const ERR_COMMUNICATE = 103;
        const ERR_EMPTY_RESPONSE = 104;
        const ERR_STARTTLS = 201;
        const ERR_COMMAND_REJECTED = 202;
        const ERR_CAPABILITY = 203;
        const ERR_AUTH = 204;
        const ERR_AUTH_MECH = 205;
        protected $stream, $errors;
        protected $sessCapability;
        protected $options = array();
        /**
         * Smtp client constructor.
         *
         * @param string $host Host.
         * @param string $port Port.
         * @param string $tls Tls.
         * @param string $strict Strict.
         * @param string $login Login.
         * @param string $password Password.
         * @param string|null $encoding.  If null - current site encoding.
         */
        public function __construct($host, $port, $tls, $strict, $login, $password, $encoding = null)
        {
        }
        /**
         * Disconnects from the submission server.
         *
         * @return void
         */
        public function __destruct()
        {
        }
        /**
         * Disconnects from the submission server.
         *
         * @return void
         */
        protected function disconnect()
        {
        }
        protected function reset()
        {
        }
        /**
         * Connect to the submission server.
         *
         * @param array $error Will be filled with connection errors.
         * @return bool True if the connection was successful, false - otherwise.
         */
        public function connect(&$error)
        {
        }
        protected function starttls(&$error)
        {
        }
        protected function capability(&$error)
        {
        }
        /**
         * Authenticate to the submission server.
         *
         * @param array $error Will be filled with authentication errors.
         * @return bool True if the authentication was successful, false - otherwise.
         */
        public function authenticate(&$error)
        {
        }
        protected function executeCommand($command, &$error)
        {
        }
        protected function exchange($data, &$error)
        {
        }
        protected function sendData($data)
        {
        }
        protected function readLine()
        {
        }
        /**
         * Reads and returns server response.
         *
         * @return array|false
         */
        protected function readResponse()
        {
        }
        protected function errorMessage($errors, $details = null)
        {
        }
        /**
         * Returns all Smtp client errors.
         *
         * @return Main\ErrorCollection object.
         */
        public function getErrors()
        {
        }
        /**
         * Returns error message by code.
         *
         * @param int $code Error code.
         * @return string
         */
        public static function decodeError($code)
        {
        }
    }
    abstract class BaseException extends \Bitrix\Main\SystemException
    {
    }
    class ReceiverException extends \Bitrix\Mail\BaseException
    {
    }
}
namespace Bitrix\Mail\Helper {
    class MailboxDirectoryHelper
    {
        private $mailboxId = null;
        private $storage = null;
        /** @var  ErrorCollection */
        private $errors = [];
        public function __construct($mailboxId)
        {
        }
        public function getDirs()
        {
        }
        public function setDirs(array $dirs)
        {
        }
        public function reloadDirs()
        {
        }
        public function getErrors()
        {
        }
        public function getIncome()
        {
        }
        public function getOutcome()
        {
        }
        public function getSpam()
        {
        }
        public function getTrash()
        {
        }
        public function getIncomePath()
        {
        }
        public function getOutcomePath()
        {
        }
        public function getSpamPath()
        {
        }
        public function getTrashPath()
        {
        }
        public function getDirPathByHash($hash)
        {
        }
        public function getDirByHash($hash)
        {
        }
        public function getDirPathByType($type)
        {
        }
        public function getDirByPath(?string $path)
        {
        }
        public function getSyncDirs()
        {
        }
        public function getSyncDirsOrderByTime($excludeDirPath = null)
        {
        }
        public function getSyncDirsPath()
        {
        }
        public function getAllOneLevel()
        {
        }
        private function orderByDefault($dirs)
        {
        }
        public function getOrderByDefault($dir)
        {
        }
        private function orderByName($dirs)
        {
        }
        private function orderByTime($dirs)
        {
        }
        public function getLastSyncDirByDefault($excludeDirPath = null)
        {
        }
        public function getCurrentSyncDirByTime()
        {
        }
        public function getCurrentSyncDirPositionByDefault(string $path, $excludeDirPath = null)
        {
        }
        public function removeDirsLikePath(array $dirs)
        {
        }
        public function getDefaultDirPath()
        {
        }
        public function buildTreeDirs()
        {
        }
        public function syncChildren($parent)
        {
        }
        public function getOneLevelByParentId($parent)
        {
        }
        public function getAllLevelByParentId($parent)
        {
        }
        public function addSyncDirs($dirs, $dbDirs)
        {
        }
        public function updateSyncDirs($dirs, $dbDirs)
        {
        }
        public function removeSyncDirs($dirs, $dbDirs)
        {
        }
        public function toggleSyncDirs($dirs)
        {
        }
        public function saveDirsTypes($dirs)
        {
        }
        public function syncDbDirs($dirs)
        {
        }
        public function updateMessageCount($id, $count)
        {
        }
        public static function isDirsTypes($name)
        {
        }
        public static function getFlags(array $flags)
        {
        }
        public static function getMaxLevelDirs()
        {
        }
        public static function setMaxLevelDirs(int $val)
        {
        }
        public static function getCurrentSyncDir()
        {
        }
        public static function setCurrentSyncDir(string $path)
        {
        }
    }
    /**
     * Class Recipient
     * @package Bitrix\Mail\Helper
     */
    class Recipient
    {
        /**
         * Builds unique code for BX.UI.Selector selector.
         *
         * @param string $email Email.
         *
         * @return string
         */
        public static function buildUniqueEmailCode($email)
        {
        }
        /**
         * Load last used Rcpt.
         *
         * @param string $emailTo Add this email to the result list.
         * @param integer $limit Limit list length.
         *
         * @return array Data preformed for BX.UI.Selector selector with email only mode enabled.
         *
         * @throws Main\SystemException
         */
        public static function loadLastRcpt($emailTo = null, $limit = 10)
        {
        }
        /**
         * Load mail contacts - users with EXTERNAL_AUTH_ID = email.
         *
         * @param array $filter Filter.
         * @param integer $limit Limit list length.
         *
         * @return array  Data preformed for BX.UI.Selector selector with email only mode enabled.
         *
         * @throws Main\SystemException
         */
        public static function loadMailContacts($filter = [], $limit = 20)
        {
        }
        /**
         * Load mail contacts from CRM - users with EXTERNAL_AUTH_ID = email and contact crm entity.
         *
         * @param array $filter Filter.
         * @param integer $limit Limit list length.
         * @return array  Data preformed for BX.UI.Selector selector with email only mode enabled.
         *
         * @throws Main\LoaderException
         */
        public static function loadCrmMailContacts($filter = [], $limit = 20)
        {
        }
    }
    abstract class OAuth
    {
        protected $oauthEntity;
        protected $service, $storedUid;
        /**
         * Returns the list of supported services
         *
         * @return array
         */
        public static function getKnownServices()
        {
        }
        /**
         * Returns helper instance
         *
         * @param string $service Service name.
         * @return \Bitrix\Mail\Helper\OAuth|false
         */
        public static function getInstance($service = null)
        {
        }
        /**
         * Returns helper instance by packed metadata
         *
         * @param string $meta Packed metadata.
         * @return \Bitrix\Mail\Helper\OAuth|false
         */
        public static function getInstanceByMeta($meta)
        {
        }
        /**
         * Returns packed metadata for instance
         *
         * @return string
         * @throws Main\ObjectException
         */
        public function buildMeta()
        {
        }
        /**
         * Returns unpacked metadata
         *
         * @param string $meta Packed metadata.
         * @return array
         */
        public static function parseMeta($meta)
        {
        }
        /**
         * Returns token from socialservices
         *
         * @param string $service Service name.
         * @param string $key User ID.
         * @return string|null
         */
        private static function getSocservToken($service, $key)
        {
        }
        /**
         * Returns token by packed metadata
         *
         * @param string $meta Packed metadata.
         * @return string|null
         */
        public static function getTokenByMeta($meta)
        {
        }
        /**
         * Returns user data by packed metadata
         *
         * @param string $meta Packed metadata.
         * @param boolean $secure Strip raw data (includes tokens).
         * @return array|null
         */
        public static function getUserDataByMeta($meta, $secure = true)
        {
        }
        /**
         * Returns service interface entity
         *
         * @return mixed
         */
        public function getOAuthEntity()
        {
        }
        /**
         * Returns instance UID
         *
         * @return string
         */
        public function getStoredUid()
        {
        }
        /**
         * Returns server OAuth handler URI
         *
         * @param boolean $final Skip Bitrix24 proxy.
         * @return string
         */
        public function getRedirect($final = true)
        {
        }
        public function getHostUrl()
        {
        }
        /**
         * Returns service OAuth endpoint URI
         *
         * @return string
         */
        public function getUrl()
        {
        }
        /**
         * Fetches token by instance UID from DB
         *
         * @return array|false
         */
        protected function fetchStoredToken()
        {
        }
        /**
         * Returns token by instance UID
         *
         * @param string $uid Instance UID.
         * @return string|null
         */
        public function getStoredToken($uid = null)
        {
        }
        /**
         * Obtains tokens from service
         *
         * @param string $code Service authorization code.
         * @return boolean
         */
        public function getAccessToken($code = null)
        {
        }
        /**
         * Returns user data
         *
         * @param boolean $secure Strip raw data (includes tokens).
         * @return array|null
         */
        public function getUserData($secure = true)
        {
        }
        /**
         * Returns unified user data
         *
         * @param array $userData User data.
         * @return array
         */
        protected abstract function mapUserData(array $userData);
        /**
         * Returns service name
         *
         * @throws \Bitrix\Main\ObjectException
         * @return string
         */
        public static function getServiceName()
        {
        }
        /**
         * Handles service response
         *
         * @param array $state Response data.
         * @return void
         */
        public function handleResponse($state)
        {
        }
    }
}
namespace Bitrix\Mail\Helper\OAuth {
    class LiveId extends \Bitrix\Mail\Helper\OAuth
    {
        protected function __construct()
        {
        }
        protected function check()
        {
        }
        protected function mapUserData(array $userData)
        {
        }
        public static function getServiceName()
        {
        }
        public function getControllerUrl()
        {
        }
    }
    class LiveIdInterface extends \CLiveIdOAuthInterface
    {
        public function setCode($code)
        {
        }
        public function setToken($access_token)
        {
        }
        public function getStorageTokens()
        {
        }
        public function getTokenData()
        {
        }
        public function getCurrentUser()
        {
        }
    }
    class Mailru extends \Bitrix\Mail\Helper\OAuth
    {
        protected function __construct()
        {
        }
        protected function check()
        {
        }
        protected function mapUserData(array $userData)
        {
        }
        public static function getServiceName()
        {
        }
        public function getControllerUrl()
        {
        }
    }
}
namespace {
    class CSocServOAuthTransport
    {
        const SERVICE_ID = "generic";
        protected $appID;
        protected $appSecret;
        protected $code = \false;
        protected $access_token = \false;
        protected $accessTokenExpires = 0;
        protected $refresh_token = '';
        protected $scope = array();
        protected $userId;
        public function __construct($appID, $appSecret, $code = \false)
        {
        }
        public function getAppID()
        {
        }
        public function getAppSecret()
        {
        }
        public function getAccessTokenExpires()
        {
        }
        public function setAccessTokenExpires($accessTokenExpires)
        {
        }
        public function getToken()
        {
        }
        public function setToken($access_token)
        {
        }
        public function setRefreshToken($refresh_token)
        {
        }
        public function getRefreshToken()
        {
        }
        public function addScope($scope)
        {
        }
        public function setScope($scope)
        {
        }
        public function getScope()
        {
        }
        public function getScopeEncode()
        {
        }
        public function setCode($code)
        {
        }
        public function setUser($userId)
        {
        }
        protected function getStorageTokens()
        {
        }
        public function deleteStorageTokens()
        {
        }
        public function checkAccessToken()
        {
        }
        public function getResult()
        {
        }
    }
    class CMailRu2Interface extends \CSocServOAuthTransport
    {
        const SERVICE_ID = "MailRu2";
        const AUTH_URL = "https://oauth.mail.ru/login";
        const TOKEN_URL = "https://oauth.mail.ru/token";
        const USER_INFO_URL = "https://oauth.mail.ru/userinfo";
        protected $userId = \false;
        protected $responseData = array();
        protected $scope = array("userinfo");
        public function __construct($appID = \false, $appSecret = \false, $code = \false)
        {
        }
        public function GetRedirectURI()
        {
        }
        public function GetAuthUrl($redirect_uri, $state = '')
        {
        }
        public function getResult()
        {
        }
        public function GetAccessToken($redirect_uri)
        {
        }
        public function getNewAccessToken($refreshToken = \false, $userId = 0, $save = \false)
        {
        }
        public function GetCurrentUser()
        {
        }
        public function GetAppInfo()
        {
        }
        public function getScopeEncode()
        {
        }
    }
}
namespace Bitrix\Mail\Helper\OAuth {
    class MailruInterface extends \CMailRu2Interface
    {
        public function getStorageTokens()
        {
        }
        public function getTokenData()
        {
        }
        public function getCurrentUser()
        {
        }
    }
    class Yandex extends \Bitrix\Mail\Helper\OAuth
    {
        protected function __construct()
        {
        }
        protected function check()
        {
        }
        protected function mapUserData(array $userData)
        {
        }
        public static function getServiceName()
        {
        }
        public function getControllerUrl()
        {
        }
    }
}
namespace {
    class CYandexOAuthInterface extends \CSocServOAuthTransport
    {
        const SERVICE_ID = "YandexOAuth";
        const AUTH_URL = "https://oauth.yandex.ru/authorize";
        const TOKEN_URL = "https://oauth.yandex.ru/token";
        const USERINFO_URL = "https://login.yandex.ru/info";
        const MAX_DEVICE_ID_LENGTH = 50;
        protected $arResult = array();
        public function __construct($appID = \false, $appSecret = \false, $code = \false)
        {
        }
        public function GetRedirectURI()
        {
        }
        public function getResult()
        {
        }
        public function getError()
        {
        }
        /**
         * @param string $redirect_uri
         * @param string $state
         * @return string
         */
        public function GetAuthUrl($redirect_uri = '', $state = '')
        {
        }
        /**
         * @param string $state
         * @return string
         */
        public function getDeviceId($state)
        {
        }
        public function GetAccessToken()
        {
        }
        public function GetCurrentUser()
        {
        }
        public function GetAppInfo()
        {
        }
    }
}
namespace Bitrix\Mail\Helper\OAuth {
    class YandexInterface extends \CYandexOAuthInterface
    {
        public function getStorageTokens()
        {
        }
        public function getTokenData()
        {
        }
        public function getNewAccessToken($refreshToken = false, $userId = 0, $save = false)
        {
        }
    }
    class Google extends \Bitrix\Mail\Helper\OAuth
    {
        protected function __construct()
        {
        }
        protected function check()
        {
        }
        protected function mapUserData(array $userData)
        {
        }
        public static function getServiceName()
        {
        }
        public function getControllerUrl()
        {
        }
    }
}
namespace {
    class CGoogleOAuthInterface extends \CSocServOAuthTransport
    {
        const SERVICE_ID = "GoogleOAuth";
        const AUTH_URL = "https://accounts.google.com/o/oauth2/auth";
        const TOKEN_URL = "https://accounts.google.com/o/oauth2/token";
        const CONTACTS_URL = "https://www.googleapis.com/oauth2/v1/userinfo";
        const FRIENDS_URL = "https://www.google.com/m8/feeds/contacts/default/full";
        const TOKENINFO_URL = "https://www.googleapis.com/oauth2/v2/tokeninfo";
        const REDIRECT_URI = "/bitrix/tools/oauth/google.php";
        protected $standardScope = array('https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/userinfo.profile');
        protected $scope = array();
        protected $arResult = array();
        public function __construct($appID = \false, $appSecret = \false, $code = \false)
        {
        }
        protected function checkSavedScope()
        {
        }
        protected function saveScope()
        {
        }
        public function addScope($scope)
        {
        }
        public function getScopeEncode()
        {
        }
        public function getResult()
        {
        }
        public function getError()
        {
        }
        public function GetAuthUrl($redirect_uri, $state = '')
        {
        }
        public function GetAccessToken($redirect_uri = \false)
        {
        }
        public function GetCurrentUser()
        {
        }
        public function GetAppInfo()
        {
        }
        public function GetCurrentUserFriends($limit, &$next)
        {
        }
        public function getNewAccessToken($refreshToken = \false, $userId = 0, $save = \false)
        {
        }
        public function getRedirectUri()
        {
        }
    }
}
namespace Bitrix\Mail\Helper\OAuth {
    class GoogleInterface extends \CGoogleOAuthInterface
    {
        public function getStorageTokens()
        {
        }
        public function getTokenData()
        {
        }
    }
}
namespace Bitrix\Mail\Helper\Mailbox {
    class SharedMailboxesManager
    {
        public static function getSharedMailboxesCount()
        {
        }
        public static function getSharedMailboxesIds()
        {
        }
        public static function getUserIdsWithAccessToMailbox($mailboxId)
        {
        }
        /**
         * @return \Bitrix\Mail\Internals\EO_MailboxAccess_Query|Query
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        private static function getBaseQueryForSharedMailboxes()
        {
        }
    }
    class MailboxSyncManager
    {
        private $userId;
        private $mailCheckInterval;
        private $syncOptionCategory = 'global';
        private $syncOptionName = 'user_mailboxes_sync_info';
        public function __construct($userId)
        {
        }
        public function getFailedToSyncMailboxes()
        {
        }
        public function getSuccessSyncedMailboxes()
        {
        }
        public function getNeedToBeSyncedMailboxes()
        {
        }
        public function getMailCheckInterval()
        {
        }
        public function deleteSyncData($mailboxId)
        {
        }
        public function setDefaultSyncData($mailboxId)
        {
        }
        public function setSyncStartedData($mailboxId, $time = null)
        {
        }
        public function setSyncStatus($mailboxId, $isSuccess, $time = null)
        {
        }
        private function setOption($mailboxesSyncInfo)
        {
        }
        /**
         * @return mixed
         */
        private function getMailboxesSyncInfo()
        {
        }
        public function getNextTimeToSync($lastMailCheckData)
        {
        }
        /**
         * @return null|int
         */
        public function getFirstFailedToSyncMailboxId()
        {
        }
        public function getLastMailboxSyncIsSuccessStatus($mailboxId)
        {
        }
        public function getLastMailboxSyncTime($mailboxId)
        {
        }
    }
}
namespace Bitrix\Mail\Helper {
    abstract class Mailbox
    {
        const SYNC_TIMEOUT = 300;
        const SYNC_TIME_QUOTA = 280;
        protected $mailbox;
        protected $dirsHelper;
        protected $filters;
        protected $session;
        protected $startTime, $syncTimeout, $checkpoint;
        protected $syncParams = [];
        protected $errors, $warnings;
        protected $lastSyncResult = ['newMessages' => 0, 'newMessagesNotify' => 0, 'deletedMessages' => 0, 'updatedMessages' => 0, 'newMessageId' => null];
        /**
         * Creates active mailbox helper instance by ID
         *
         * @param int $id Mailbox ID.
         * @param bool $throw Throw exception on error.
         * @return \Bitrix\Mail\Helper\Mailbox|false
         * @throws \Exception
         */
        public static function createInstance($id, $throw = true)
        {
        }
        /**
         * Creates mailbox helper instance
         *
         * @param mixed $filter Filter.
         * @param bool $throw Throw exception on error.
         * @return \Bitrix\Mail\Helper\Mailbox|false
         * @throws \Exception
         */
        public static function rawInstance($filter, $throw = true)
        {
        }
        protected static function instance(array $mailbox)
        {
        }
        protected static function prepareMailbox($filter)
        {
        }
        public function setSyncParams(array $params = array())
        {
        }
        protected function __construct($mailbox)
        {
        }
        protected function normalizeMailboxOptions()
        {
        }
        public function getMailbox()
        {
        }
        protected function isTimeQuotaExceeded()
        {
        }
        public function setCheckpoint()
        {
        }
        public function sync()
        {
        }
        public function getSyncStatus()
        {
        }
        protected function pushSyncStatus($params, $force = false)
        {
        }
        public function dismissOldMessages()
        {
        }
        public function dismissDeletedUidMessages()
        {
        }
        public function cleanup()
        {
        }
        protected function listMessages($params = array(), $fetch = true)
        {
        }
        protected function registerMessage(&$fields, $replaces = null)
        {
        }
        protected function updateMessagesRegistry(array $filter, array $fields, $mailData = array())
        {
        }
        protected function unregisterMessages($filter, $eventData = [])
        {
        }
        protected function linkMessage($uid, $id)
        {
        }
        protected function cacheMessage(&$body, $params = array())
        {
        }
        public function mail(array $params)
        {
        }
        protected function createMessage(\Bitrix\Main\Mail\Mail $message, array $fields = array())
        {
        }
        public function syncOutgoing()
        {
        }
        protected function syncOutgoingMessage($excerpt)
        {
        }
        public function resyncMessage(array &$excerpt)
        {
        }
        public function downloadAttachments(array &$excerpt)
        {
        }
        public function isSupportLazyAttachments()
        {
        }
        public function getFilters($force = false)
        {
        }
        /**
         * @deprecated
         */
        public function resortTree($message = null)
        {
        }
        /**
         * @deprecated
         */
        public function incrementTree($message)
        {
        }
        protected abstract function syncInternal();
        public abstract function listDirs($pattern, $useDb = false);
        public abstract function uploadMessage(\Bitrix\Main\Mail\Mail $message, array &$excerpt);
        public abstract function downloadMessage(array &$excerpt);
        public function getErrors()
        {
        }
        public function getWarnings()
        {
        }
        public function getLastSyncResult()
        {
        }
        protected function setLastSyncResult(array $data)
        {
        }
        public function getDirsHelper()
        {
        }
        public function activateSync()
        {
        }
        public function notifyNewMessages()
        {
        }
        public static final function getTimeout()
        {
        }
    }
}
namespace Bitrix\Mail\Helper\Mailbox {
    class Imap extends \Bitrix\Mail\Helper\Mailbox
    {
        const MESSAGE_PARTS_TEXT = 1;
        const MESSAGE_PARTS_ATTACHMENT = 2;
        const MESSAGE_PARTS_ALL = -1;
        protected $client;
        protected function __construct($mailbox)
        {
        }
        public function getSyncStatusTotal()
        {
        }
        public function getSyncStatus()
        {
        }
        protected function syncInternal()
        {
        }
        protected function createMessage(\Bitrix\Main\Mail\Mail $message, array $fields = array())
        {
        }
        public function syncOutgoing()
        {
        }
        public function uploadMessage(\Bitrix\Main\Mail\Mail $message, array &$excerpt = null)
        {
        }
        public function downloadMessage(array &$excerpt)
        {
        }
        public function downloadMessageParts(array &$excerpt, \Bitrix\Mail\Imap\BodyStructure $bodystructure, $flags = \Bitrix\Mail\Helper\Mailbox\Imap::MESSAGE_PARTS_ALL)
        {
        }
        public function cacheDirs()
        {
        }
        public function listDirs($pattern, $useDb = false)
        {
        }
        public function cacheMeta()
        {
        }
        protected function getFolderToMessagesMap($messages)
        {
        }
        public function markUnseen($messages)
        {
        }
        public function markSeen($messages)
        {
        }
        public function moveMailsToFolder($messages, $folderTo)
        {
        }
        public function deleteMails($messages)
        {
        }
        public function syncMailbox()
        {
        }
        public function syncDir($dirPath)
        {
        }
        protected function syncDirInternal($dir)
        {
        }
        public function resyncDir($dirPath)
        {
        }
        protected function resyncDirInternal($dir)
        {
        }
        protected function parseHeaders(&$messages)
        {
        }
        protected function blacklistMessages($dirPath, &$messages)
        {
        }
        protected function prepareMessages($dirPath, $uidtoken, &$messages)
        {
        }
        protected function resyncMessages($dirPath, $uidtoken, &$messages)
        {
        }
        protected function syncMessage($dirPath, $uidtoken, $message, &$hashesMap = array())
        {
        }
        public function downloadAttachments(array &$excerpt)
        {
        }
        protected function cacheMessage(&$message, $params = array())
        {
        }
        protected function getSyncRange($dirPath, &$uidtoken)
        {
        }
        protected function getUidRange($dirPath, $uidtoken)
        {
        }
    }
    class ResponseParser
    {
        public function getOldToNewUidsMap($copyUid)
        {
        }
        private function getIdsSet($line)
        {
        }
    }
}
namespace Bitrix\Mail\Helper\Attachment {
    class Storage
    {
        /**
         * Returns attachments disk storage
         *
         * @return \Bitrix\Disk\Storage|false
         */
        public static function getStorage()
        {
        }
        /**
         * Returns disk url manager
         *
         * @return \Bitrix\Disk\UrlManager|false
         */
        public static function getUrlManager()
        {
        }
        /**
         * Returns disk objects by file ID
         *
         * @param int $fileId File ID.
         * @param int $limit Limit.
         * @return array
         */
        public static function getObjectsByFileId($fileId, $limit = 0)
        {
        }
        /**
         * Returns disk object by attachment file data (creates one if not exists)
         *
         * @param array $attachment Attachment file data.
         * @param boolean $create Create object if not exists.
         * @return \Bitrix\Disk\File|false|null
         */
        public static function getObjectByAttachment(array $attachment, $create = false)
        {
        }
        /**
         * Creates disk object for attachment file
         *
         * @param array $attachment Attachment file data.
         * @return \Bitrix\Disk\File|false|null
         */
        public static function registerAttachment(array $attachment)
        {
        }
        /**
         * Deletes disk objects by file ID
         *
         * @param int $fileId File ID.
         * @return void
         */
        public static function unregisterAttachment($fileId)
        {
        }
    }
}
namespace Bitrix\Mail\Helper {
    class MessageClosureStepper extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = 'mail';
        public function execute(array &$option)
        {
        }
    }
    /**
     * Class MessageFolder
     */
    class MessageFolder
    {
        const TRASH = 'trash';
        const SPAM = 'spam';
        const INCOME = 'income';
        const OUTCOME = 'outcome';
        const DRAFTS = 'drafts';
        /**
         * @param array $message
         * @param array $mailboxOptions
         * @return string
         */
        public static function getFolderNameByHash($messageFolderHash, $mailboxOptions)
        {
        }
        public static function getFolderHashByType($folderType, $mailboxOptions)
        {
        }
        public static function getFolderNameByType($folderType, $mailboxOptions)
        {
        }
        public static function getDisabledFolders($mailboxOptions)
        {
        }
        public static function isDisabledFolder($folder, $mailboxOptions)
        {
        }
        public static function getFormattedPath(array $path, $mailboxOptions)
        {
        }
        public static function getFormattedName(array $path, $mailboxOptions, $full = true)
        {
        }
    }
    class ContactsStepper extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = 'mail';
        public function execute(array &$option)
        {
        }
    }
    /**
     * Class LicenseManager
     */
    class LicenseManager
    {
        /**
         * Checks if mailboxes synchronization is available
         *
         * @return bool
         */
        public static function isSyncAvailable()
        {
        }
        public static function getSharedMailboxesLimit()
        {
        }
        /**
         * How many mailboxes a user can connect
         *
         * @return int
         */
        public static function getUserMailboxesLimit()
        {
        }
        /**
         * Returns the number of days to store messages
         *
         * @return int
         */
        public static function getSyncOldLimit()
        {
        }
        /**
         * Checks if old messages should be deleted
         *
         * @return bool
         */
        public static function isCleanupOldEnabled()
        {
        }
    }
    class MessageIndexStepper extends \Bitrix\Main\Update\Stepper
    {
        const INDEX_VERSION = 1;
        protected static $moduleId = 'mail';
        public function execute(array &$option)
        {
        }
    }
    /**
     * Class MailContact
     * @package Bitrix\Mail\Helper
     */
    class MailContact
    {
        const COLOR_GREEN = '#9dcf01';
        const COLOR_BLUE = '#2fc6f6';
        const COLOR_LIGHT_BLUE = '#56d1e0';
        const COLOR_ORANGE = '#ffa900';
        const COLOR_CYAN = '#47e4c2';
        const COLOR_PINK = '#ff5b55';
        const COLOR_PURPLE = '#9985dd';
        const COLOR_GREY = '#a8adb4';
        const COLOR_BROWN = '#af7e00';
        const COLOR_RED = '#F44336';
        const COLOR_DEEP_PURPLE = '#673AB7';
        const COLOR_INDIGO = '#3F51B5';
        const COLOR_TEAL = '#009688';
        const COLOR_LIGHT_GREEN = '#8BC34A';
        const COLOR_LIME = '#CDDC39';
        const COLOR_YELLOW = '#FFEB3B';
        const COLOR_AMBER = '#FFC107';
        const COLOR_DEEP_ORANGE = '#FF5722';
        const COLOR_BLUE_GREY = '#607D8B';
        /**
         * @param $email
         * @param $name
         * @param null $lastName
         * @return array
         * @throws \ReflectionException
         */
        public static function getIconData($email, $name, $lastName = null)
        {
        }
        /**
         * @return mixed
         * @throws \ReflectionException
         */
        public static function getRandomColor()
        {
        }
        /** return two symbols from name and last name, or 1 - from name or email
         * @param $email
         * @param $name
         * @param null $lastName
         * @return string
         */
        public static function getInitials($email, $name = null, $lastName = null)
        {
        }
        /** returns array of fields and their values for adding to database
         * @param $mailsField
         * @param $userId
         * @param $addedFrom
         * @return array
         * @throws \ReflectionException
         */
        public static function getContactsData($mailsField, $userId, $addedFrom)
        {
        }
    }
    class MessageEventManager
    {
        const EVENT_DELETE_MESSAGES = 'onMailMessageDeleted';
        /** Dispatches OnMessageModified event for compatibility
         * If event parameters do not have ['HEADER_MD5', 'MAILBOX_USER_ID']
         * data will be obtained from database
         * @param Event $event
         * @return MessageEventManager
         */
        public static function onMailMessageDeleted(\Bitrix\Main\Event $event)
        {
        }
        private function processOnMailMessageDeletedEvent(\Bitrix\Main\Event $event)
        {
        }
        /** Dispatches OnMessageObsolete event for compatibility
         * If messages data from event parameters do not have ['HEADER_MD5', 'MAILBOX_USER_ID', 'IS_SEEN']
         * data will be obtained from database
         * @param Event $event
         * @return MessageEventManager
         */
        public static function onMailMessageModified(\Bitrix\Main\Event $event)
        {
        }
        private function processOnMailMessageModified(\Bitrix\Main\Event $event)
        {
        }
        protected function sendMessageModifiedEvent($fieldsData)
        {
        }
        private function handleRemovedEvent($fieldsData, $filter)
        {
        }
        protected function sendMessageDeletedEvent($fieldsData)
        {
        }
        private function getMailsFieldsData($eventData, $requiredKeys, $filter)
        {
        }
        protected function getMailMessagesList($filter, $selectingFields)
        {
        }
        /**
         * @param array $data
         * @return array
         * @throws \Bitrix\Main\ObjectException
         * @throws \Exception
         */
        public static function onMailEventMailRead(array $data)
        {
        }
        public static function getPullTagName($messageId)
        {
        }
        public static function getRequiredFieldNamesForEvent($eventName)
        {
        }
    }
    class Message
    {
        public static function prepare(&$message)
        {
        }
        public static function hasAccess(&$message, $userId = null)
        {
        }
        public static function prepareSearchContent(&$fields)
        {
        }
        public static function prepareSearchString($string)
        {
        }
        public static function getTotalUnseenCount($userId)
        {
        }
        public static function getTotalUnseenForMailboxes($userId)
        {
        }
        public static function ensureAttachments(&$message)
        {
        }
        public static function resync(&$message)
        {
        }
    }
}
namespace Bitrix\Mail {
    class Message
    {
        //const QUOTE_START_MARKER = '-- Bitrix24 Mail begin ---';
        //const QUOTE_END_MARKER   = '-- Bitrix24 Mail end ---';
        const QUOTE_START_MARKER_HTML = '<div id="srvb24mqsm" style="font-family: \'srvb24mqsm\', serif;">&nbsp;</div>';
        const QUOTE_END_MARKER_HTML = '<div id="qemb24msrv" style="font-family: \'qemb24msrv\', serif;">&nbsp;</div>';
        const QUOTE_HTML_REGEX = '/<div\\s[^>]+srvb24mqsm[^>]+>.*?<\\/div>(.*)<div\\s[^>]+qemb24msrv[^>]+>.*?<\\/div>/is';
        const QUOTE_PLACEHOLDER = '__QUOTE_PLACEHOLDER__';
        protected $type;
        protected $headers, $subject, $from, $to;
        protected $html, $text, $attachments;
        protected $secret;
        public function __construct(array &$message, $type)
        {
        }
        /**
         * Returns quote start marker
         *
         * @param bool $html Html/text switch.
         * @return string
         */
        public static final function getQuoteStartMarker($html = false)
        {
        }
        /**
         * Returns quote end marker
         *
         * @param bool $html Html/text switch.
         * @return string
         */
        public static final function getQuoteEndMarker($html = false)
        {
        }
        /**
         * Returns message attachments count
         *
         * @return int
         */
        public function attachmentsCount()
        {
        }
        /**
         * Returns parsed message text
         *
         * @return string
         */
        protected function parse()
        {
        }
        public static function parseMessage(array &$message)
        {
        }
        /**
         * Returns parsed reply text
         *
         * @param array &$message Message.
         * @return string
         */
        public static function parseReply(array &$message)
        {
        }
        /**
         * Returns parsed forward text
         *
         * @param array &$message Message.
         * @return string
         */
        public static function parseForward(array &$message)
        {
        }
        /**
         * Extracts quote from message html
         *
         * @param string &$html Message html.
         * @return string
         */
        protected function splitHtml(&$html)
        {
        }
        /**
         * Extracts quote from message text
         *
         * @param string &$text Message text.
         * @return string
         */
        protected function splitText(&$text)
        {
        }
        /**
         * Returns full reply/forward head score
         *
         * @param string &$head Full reply/forward head.
         * @return int
         */
        protected function scoreFullHead(&$head)
        {
        }
        /**
         * Returns short reply/forward head score
         *
         * @param string &$head Short reply/forward head.
         * @return int
         */
        protected function scoreShortHead(&$head)
        {
        }
        /**
         * Returns significant reply text
         *
         * @param string|array &$text Reply text.
         * @return string
         */
        protected function removeReplyHead(&$text)
        {
        }
        /**
         * Returns significant forward text
         *
         * @param string|array &$text Forward text.
         * @return string
         */
        protected function removeForwardHead(&$text)
        {
        }
        /**
         * Returns text without bb-codes
         *
         * @param string|array &$text Text.
         * @return string
         */
        protected static function reduceTags(&$text)
        {
        }
        /**
         * Returns non-paired bb-codes only
         *
         * @param string|array &$text Text.
         * @return string
         */
        public static function reduceHead(&$text)
        {
        }
    }
    class Imap
    {
        const LOG_LEVEL_WRITE = 1;
        const LOG_LEVEL_READ = 2;
        const ERR_CONNECT = 101;
        const ERR_REJECTED = 102;
        const ERR_COMMUNICATE = 103;
        const ERR_EMPTY_RESPONSE = 104;
        const ERR_BAD_SERVER = 105;
        const ERR_STARTTLS = 201;
        const ERR_COMMAND_REJECTED = 202;
        const ERR_CAPABILITY = 203;
        const ERR_AUTH = 204;
        const ERR_AUTH_MECH = 205;
        const ERR_AUTH_OAUTH = 206;
        const ERR_LIST = 207;
        const ERR_SELECT = 208;
        const ERR_SEARCH = 209;
        const ERR_FETCH = 210;
        const ERR_APPEND = 211;
        const ERR_STORE = 212;
        protected $stream, $errors;
        protected $sessState, $sessCapability, $sessCounter, $sessUntagged, $sessMailbox;
        protected $logLevel = 0, $logPath;
        protected $options = array();
        protected static $atomRegex = '[^\\x00-\\x20\\x22\\x25\\x28-\\x2a\\x5c\\x5d\\x7b\\x7f-\\xff]+';
        protected static $qcharRegex = '[^\\x00\\x0a\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c[\\x5c\\x22]';
        protected static $qcharExtRegex = '[^\\x00\\x0a\\x0d\\x22\\x5c]|\\x5c[\\x5c\\x22]';
        // #119098
        protected static $astringRegex = '[^\\x00-\\x20\\x22\\x25\\x28-\\x2a\\x5c\\x7b\\x7f-\\xff]+';
        public function __construct($host, $port, $tls, $strict, $login, $password, $encoding = null)
        {
        }
        public function __destruct()
        {
        }
        protected function disconnect()
        {
        }
        protected function reset()
        {
        }
        public function getState()
        {
        }
        public function connect(&$error)
        {
        }
        protected function starttls(&$error)
        {
        }
        protected function capability(&$error)
        {
        }
        public function authenticate(&$error)
        {
        }
        public function select($mailbox, &$error)
        {
        }
        public function examine($mailbox, &$error)
        {
        }
        /**
         * Connects to server and authenticate client
         *
         * @param string &$error Error message.
         * @return boolean
         */
        public function singin(&$error)
        {
        }
        public function fetch($uid, $mailbox, $range, $select, &$error)
        {
        }
        /**
         * Returns unseen messages count
         *
         * @param string $mailbox Mailbox name.
         * @param string &$error Error message.
         * @return int|false
         */
        public function getUnseen($mailbox, &$error)
        {
        }
        public function getNew($mailbox, $uidMin, $uidMax, &$error)
        {
        }
        public function getUidRange($mailbox, &$error)
        {
        }
        public function listex($reference, $pattern, &$error)
        {
        }
        /**
         * Returns mailboxes list
         *
         * @param string $pattern Mailbox name pattern.
         * @param string &$error Error message.
         * @return array|false
         */
        public function listMailboxes($pattern, &$error, $flat = false)
        {
        }
        public function listMessages($mailbox, &$uidtoken, &$error)
        {
        }
        /**
         * Adds message
         *
         * @param string $mailbox Mailbox name.
         * @param string $data Message.
         * @param string &$error Error message.
         * @return string|false
         */
        public function addMessage($mailbox, $data, &$error)
        {
        }
        public function searchByHeader($uid, $mailbox, array $header, &$error)
        {
        }
        public function append($mailbox, array $flags, \DateTime $internaldate, $data, &$error)
        {
        }
        public function moveMails($ids, $folderFrom, $folderTo)
        {
        }
        public function move($ids, $folderFrom, $folderTo)
        {
        }
        public function copyMailToFolder($ids, $mailboxName, $folder)
        {
        }
        public function unseen($ids, $folder)
        {
        }
        public function seen($ids, $folder)
        {
        }
        /**
         * @param $id
         * @param $mailboxName
         * @return Main\Result
         */
        public function delete($id, $mailboxName)
        {
        }
        /**
         * @param int|array $ids
         * @param $error
         * @return bool|null|string|string[]
         */
        private function expunge(&$error)
        {
        }
        /**
         * @param int|array $ids
         * @param $flags
         * @param $error
         * @param bool $isUid
         * @param bool $isRemoveFlags
         * @return bool|null|string|string[]
         */
        private function store($ids, $flags, &$error, $isUid = true, $isRemoveFlags = false)
        {
        }
        public function updateMessageFlags($mailbox, $id, $flags, &$error)
        {
        }
        /**
         * Returns message
         *
         * @param string $mailbox Mailbox name.
         * @param int $id Message ID.
         * @param string $section Message section.
         * @param string &$error Error message.
         * @return string|false
         */
        public function getMessage($mailbox, $id, $section, &$error)
        {
        }
        public function isExistsDir($mailbox, &$error)
        {
        }
        public function ensureEmpty($mailbox, &$error)
        {
        }
        protected function getUntagged($regex, $unset = false)
        {
        }
        protected function getTag($next = false)
        {
        }
        protected function executeCommand($command, &$error)
        {
        }
        protected function exchange($data, &$error)
        {
        }
        protected function sendData($data)
        {
        }
        protected function readBytes($bytes)
        {
        }
        protected function readLine()
        {
        }
        protected function readResponse()
        {
        }
        protected static function prepareString($data)
        {
        }
        protected static function escapeQuoted($data)
        {
        }
        protected static function unescapeQuoted($data)
        {
        }
        protected function encodeUtf7Imap($data)
        {
        }
        protected function decodeUtf7Imap($data)
        {
        }
        private function prepareIdsParam($idsData)
        {
        }
        protected function errorMessage($errors, $details = null)
        {
        }
        public function getErrors()
        {
        }
        /**
         * Returns error message
         *
         * @param int $code Error code.
         * @return string
         */
        public static function decodeError($code)
        {
        }
        protected function writeToLog($data)
        {
        }
    }
}
namespace {
    class learning extends \CModule
    {
        var $MODULE_ID = "learning";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $errors;
        public $MODULE_GROUP_RIGHTS = 'Y';
        function __construct()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function GetModuleRightList()
        {
        }
        protected static function _RemoveConvertDbNotify()
        {
        }
        protected static function _AddConvertDbNotify()
        {
        }
        protected static function _RightsModelPurge()
        {
        }
        protected static function _RightsModelCreateTasksAndRelation($arOperationsInDB)
        {
        }
        protected static function _RightsModelGetTasksWithOperations()
        {
        }
        protected static function _RightsModelGetAllOperations()
        {
        }
        protected static function _RightsModelCreateOperations()
        {
        }
        protected static function InitializeNewRightsModel()
        {
        }
    }
    // 2012-04-13 Checked/modified for compatibility with new data model
    class CLTestMark
    {
        // 2012-04-13 Checked/modified for compatibility with new data model
        function CheckFields(&$arFields, $ID = \false)
        {
        }
        // 2012-04-13 Checked/modified for compatibility with new data model
        function Add($arFields)
        {
        }
        // 2012-04-13 Checked/modified for compatibility with new data model
        function Update($ID, $arFields)
        {
        }
        // 2012-04-13 Checked/modified for compatibility with new data model
        function Delete($ID)
        {
        }
        // 2012-04-13 Checked/modified for compatibility with new data model
        function GetByID($ID)
        {
        }
        // 2012-04-13 Checked/modified for compatibility with new data model
        function GetByPercent($TEST_ID, $PERCENT)
        {
        }
        // 2012-04-13 Checked/modified for compatibility with new data model
        function GetFilter($arFilter)
        {
        }
        // 2012-04-13 Checked/modified for compatibility with new data model
        function GetList($arOrder = array(), $arFilter = array())
        {
        }
    }
    class CLearnRelationHelper
    {
        public static function RenderForm($oAccess, $LESSON_ID, $arOPathes)
        {
        }
        public static function ProccessPOST($oAccess, $LESSON_ID, $sort = \false)
        {
        }
    }
    class CLearningEvent
    {
        public static function MakeMainObject()
        {
        }
        public function GetFilter()
        {
        }
        public function GetAuditTypes()
        {
        }
        public function GetEventInfo($row, $arParams)
        {
        }
        public function GetFilterSQL($var)
        {
        }
    }
    class CTestResult
    {
        function CheckFields(&$arFields, $ID = \false)
        {
        }
        function Add($arFields)
        {
        }
        function AddResponse($TEST_RESULT_ID, $RESPONSE)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function Delete($ID)
        {
        }
        function GetList($arOrder = array(), $arFilter = array(), $arNavParams = array())
        {
        }
        function GetByID($ID)
        {
        }
        function GetFilter($arFilter)
        {
        }
        function OnTestResultChange($TEST_RESULT_ID)
        {
        }
        function GetProgress($ATTEMPT_ID)
        {
        }
        function GetCount($ATTEMPT_ID)
        {
        }
        function GetPercent($ATTEMPT_ID)
        {
        }
        function GetCorrectCount($ATTEMPT_ID)
        {
        }
    }
    /**
     * Note: usually in phpDoc blocks for methods listed not all exceptions, 
     * that can be throwed by them.
     * 
     * @access public
     */
    interface ILearnLesson
    {
        /**
         * WARNING: second param ($isCourse) must be always set to FALSE, because
         * it's is for internal use only. If you want to create course, use
         * CCourse::Add instead.
         * 
         * Creates new lesson
         *
         * WARNING: this method terminates (by die()/exit()) current execution flow
         * when SQL server error occured. It's due to bug in CDatabase::Insert() in main
         * module (version info:
         *    define("SM_VERSION","11.0.12");
         *    define("SM_VERSION_DATE","2012-02-21 17:00:00"); // YYYY-MM-DD HH:MI:SS
         * )
         *
         * @param array of pairs field => value for new lesson. Allowed fields are ACTIVE,
         * ACTIVE, true by default, available values are: true/false
         * NAME, mustn't be omitted
         * CODE, NULL by default
         * PREVIEW_PICTURE, NULL by default, available value is array ('name' => ..., 
         *     'size' => ..., 'tmp_name' => ..., 'type' => ..., 'del' => ...)
         * PREVIEW_TEXT, NULL by default
         * PREVIEW_TEXT_TYPE, 'text' by default, available values are: 'text', 'html'
         * DETAIL_PICTURE, NULL by default, available value is array ('name' => ..., 
         *     'size' => ..., 'tmp_name' => ..., 'type' => ..., 'del' => ...)
         * DETAIL_TEXT, NULL by default
         * DETAIL_TEXT_TYPE, 'text' by default, available values are: 'text', 'html', 'file' (filename in LAUNCH)
         * LAUNCH, NULL by default
         * 
         * @param bool flag of course. If FALSE (default) lesson is not course,
         *        if TRUE created lesson will be the course (in this case arguments
         *        $parentLessonId and $arProperties are ignored, and $arFields
         *        can contain additional fields (any can be omitted):
         *        - SORT or COURSE_SORT: integer, 500 by default, sort order of courses. CORSE_SORT overrides SORT
         *        - ACTIVE_FROM: datetime, NULL by default
         *        - ACTIVE_TO: datetime, NULL by default
         *        - RATING: string (1 char): 'Y' / 'N' / NULL, 'N' by default
         *        - RATING_TYPE: string, allowed values: NULL, "like", "standart_text", 
         *           "like_graphic", "standart", NULL by default
         *        - SCORM: string (1 char), 'N' by default
         *        ).
         * @param integer/bool id of immediate parent lesson. Default value is TRUE,
         *        what means "no immediate parent".
         * @param array of properties in relation to
         *        parent lesson: array ('SORT' => sort_order)
         *
         * @throws LearnException with errcodes bit set (one of):
         *         - LearnException::EXC_ERR_GN_CREATE,
         *         - LearnException::EXC_ERR_GN_CHECK_PARAMS,
         *         - LearnException::EXC_ERR_GN_FILE_UPLOAD
         * Also can throws other exceptions or exceptions' codes.
         *
         * @return integer id of created lesson (if course was created, 
         *         for get id of course method GetLinkedCourse() must be used)
         */
        public static function Add($arFields, $isCourse = \false, $parentLessonId = \true, $arProperties = array('SORT' => 500));
        /**
         * Changes lesson's data
         *
         * WARNING: this method terminates (by die()/exit()) current execution flow
         * when SQL server error occured. It's due to bug in CDatabase::Update() in main
         * module (version info:
         *    define("SM_VERSION","11.0.12");
         *    define("SM_VERSION_DATE","2012-02-21 17:00:00"); // YYYY-MM-DD HH:MI:SS
         * )
         *
         * @param integer id of node to be updated
         * @param array of pairs field => value for lesson
         *        If lesson is the course, additional fields maybe set:
         *        - SORT or COURSE_SORT: integer, sort order of courses. CORSE_SORT overrides SORT
         *        - ACTIVE_FROM: datetime
         *        - ACTIVE_TO: datetime
         *        - RATING: string (1 char): 'Y' / 'N' / NULL
         *        - RATING_TYPE: string, allowed values: NULL, "like", "standart_text", 
         *           "like_graphic", "standart"
         *        - SCORM: string (1 char)
         *        ).
         *
         * @throws LearnException with errcodes bit set (one of):
         *         - LearnException::EXC_ERR_GN_UPDATE,
         *         - LearnException::EXC_ERR_GN_CHECK_PARAMS,
         *         - LearnException::EXC_ERR_GN_FILE_UPLOAD
         * Also can throws other exceptions or exceptions' codes
         */
        public static function Update($id, $arFields);
        /**
         * Removes lesson and all relations from/to it.
         *
         * @param integer/array. If not array => param interpreted as id of lesson to be removed.
         * If array => param interpreted as array of params. Available params are:
         * - 'lesson_id' - integer. Id of lesson to be removed.
         * - 'simulate' - boolean, false by default. If true => nothing will be writed to DB.
         * - 'check_permissions' - boolean, true by default
         * - 'user_id' - integer. User_id for which permissions will be checked, -1 by 
         * default, which means 'current logged user'
         * (it's means 'current user')
         *
         * @throws LearnException with errcode bit set LearnException::EXC_ERR_GN_REMOVE,
         *         also errmsg === 'EA_NOT_EXISTS' if there is wasn't node with this id.
         */
        public static function Delete($id);
        /**
         * Detach the given lesson from all parents and recursively remove descendants, excepts
         * descendants, that have ancestors outside of descendants of the given lesson. Such
         * lessons will not be removed, but will be unlinked from lessons, which will be really 
         * removed.
         *
         * @param integer/array. If not array => param interpreted as id of lesson to be removed.
         * If array => param interpreted as array of params. Available params are:
         * - 'lesson_id' - integer. Id of lesson to be removed.
         * - 'simulate' - boolean, false by default. If true => nothing will be writed to DB.
         * - 'check_permissions' - boolean, true by default
         * - 'user_id' - integer. User_id for which permissions will be checked, -1 by default 
         * (it's means 'current user')
         */
        public static function DeleteRecursiveLikeHardlinks($id);
        /**
         * WARNING: don't use this function, it's for internal use only.
         * 
         * @param integer id of node to be getted
         *
         * @throws LearnException with errcode bit set LearnException::EXC_ERR_GN_GETBYID.
         *         Messages can be: 'EA_PARAMS', 'EA_ACCESS_DENIED',
         *         'EA_SQLERROR', 'EA_NOT_EXISTS'.
         * 
         * @access private
         *
         * @return array of properties for node with $id
         */
        public static function GetByIDAsArr($id);
        /**
         * @throws LearnException with error bit set EXC_ERR_ALL_PARAMS 
         * @return CDBResult
         */
        public static function GetByID($id);
        /**
         * @param array order in format: array('FIELD_NAME' => '#sort_order#' [, ...]), 
         * where #sort_order# is 'ASC' or 'DESC'
         * 
         * @param array filter in format: array('???FIELD_NAME' => 'value' [, ...]),
         * where ??? can be one of (without double quotes):
         * "!" - not equals
         * "<" - less than value
         * "<=" - less than or equal to value
         * ">" - greater than value
         * ">=" - greater than or equal to value
         * 
         * Additionally available fields (not presented in data, but 
         * can be used for filter): DATE_ACTIVE_TO, DATE_ACTIVE_FROM, ACTIVE_DATE.
         * 
         * @example shows lessons with LESSON_ID >= 100, and DETAIL_TEXT_TYPE != 'html',
         * sorted by NAME ascending, than by LESSON_ID descending.
         * 
         * <?php
         * $arOrder = array ('NAME' => 'ASC', 'LESSON_ID' => 'DESC');
         * $arFilter = array ('!DETAIL_TEXT_TYPE' => 'html', '>=LESSON_ID' => 100);
         * 
         * $rc = ClassName::GetList($arOrder, $arFilter);
         * while (($data = $rc->Fetch()) !== false)
         *    var _dump ($data);
         * 
         * @throws LearnException with error bit set EXC_ERR_ALL_PARAMS 
         * @return CDBResult each element of which can contains 
         * COURSE_SORT (only if lesson is course)
         */
        public static function GetList($arOrder = array(), $arFilter = array());
        /**
         * @param int id of child lesson
         * @param array order (see format in comment for ThisClass::GetList())
         * @param array filter (see format in comment for ThisClass::GetList())
         * @param array list of fields to be selected. If empty => selects all fields.
         * 
         * @throws LearnException with error bit set EXC_ERR_ALL_PARAMS 
         * @return CDBResult
         */
        public static function GetListOfImmediateParents($lessonId, $arOrder = array(), $arFilter = array(), $arSelectFields = array());
        /**
         * @param int id of parent lesson
         * @param array order (see format in comment for ThisClass::GetList())
         * @param array filter (see format in comment for ThisClass::GetList())
         * @param array list of fields to be selected. If empty => selects all fields.
         * 
         * @throws LearnException with error bit set EXC_ERR_ALL_PARAMS 
         * @return CDBResult each element contains EDGE_SORT - the sort index
         * of LESSON_ID in relation to parent lesson given in first argument
         * to this method.
         */
        public static function GetListOfImmediateChilds($lessonId, $arOrder = array(), $arFilter = array(), $arSelectFields = array());
        /**
         * Lists immediate parents.
         *
         * @param integer id of lesson
         *
         * @return array of immediate parents (empty array if there is no parents)
         *
         * @example
         * <?php
         * $arParents = ThisClass::ListImmediateNeighbours (1);
         * var _dump ($arParents);
         * ?>
         *
         * output:
         * array(2) {
         *   [0]=>
         *   array(4) {
         *     ["PARENT_LESSON"]=>
         *     int(1)
         *     ["CHILD_LESSON"]=>
         *     int(2)
         *     ["SORT"]=>
         *     int(500)
         *   }
         *   [1]=>
         *   array(4) {
         *     ["PARENT_LESSON"]=>
         *     int(4)
         *     ["CHILD_LESSON"]=>
         *     int(1)
         *     ["SORT"]=>
         *     int(500)
         *   }
         * }
         *
         */
        public static function ListImmediateParents($lessonId);
        /**
         * Lists immediate childs.
         *
         * @param integer id of lesson
         *
         * @return array of immediate childs (empty array if there is no childs)
         * 
         * @see example for ListImmediateParents()
         */
        public static function ListImmediateChilds($lessonId);
        /**
         * Lists immediate neighbours.
         *
         * @param integer id of lesson
         *
         * @return array of immediate neighbours (empty array if there is no neighbours)
         * 
         * @see example for ListImmediateParents()
         */
        public static function ListImmediateNeighbours($lessonId);
        /**
         * Gets id of course corresponded to given lesson
         * @param integer id of lesson
         * @throws LearnException with error bit set (one of):
         *         - LearnException::EXC_ERR_ALL_GIVEUP
         *         - LearnException::EXC_ERR_ALL_LOGIC
         * @return integer/bool id of linked (corresponded) course or 
         *         FALSE if there is no course corresponded to the lesson.
         */
        public static function GetLinkedCourse($lessonId);
        /**
         * Build tree of lessons with the given root.
         * WARNING: tree build algorithm skips duplicated lessons, so
         * if there is some duplicates lessons, only one of them
         * will be in resulted tree.
         * 
         * @param integer id of root lesson
         * @param array order (by default: array('EDGE_SORT' => 'asc'))
         * @param array Filter for lessons
         * @param bool public prohibition mode flag. If set to TRUE, than all 
         * 		lessons (and they descendants) that are public prohibited in context 
         * 		of a course with lesson_id == $lessonId will be skipped during 
         * 		tree building.
         * @return object of type CLearnLessonTree
         */
        public static function GetTree($lessonId, $arOrder = array('EDGE_SORT' => 'asc'), $arFilter = array(), $publishProhibitionMode = \true);
        /**
         * Link two lessons from $parentLessonId to $childLessonId
         *
         * @param int $parentLessonId
         * @param int $childLessonId
         * @param array of properties of the link. Currently available properties:
         *    - 'SORT', integer
         * All properties must be set.
         *
         * @throws Exception LearnException with code error bit set LearnException::EXC_ERR_GR_LINK
         */
        public static function RelationAdd($parentLessonId, $childLessonId, $arProperties);
        /**
         * Update parametres of relation between two lessons
         *
         * @param int $parentLessonId
         * @param int $childLessonId
         * @param array of properties of the link. Currently available properties:
         *    - 'SORT', integer
         *
         * @throws Exception LearnException with code error bit set LearnException::EXC_ERR_GR_SET_PROPERTY
         */
        public static function RelationUpdate($parentLessonId, $childLessonId, $arProperties);
        /**
         * Get parametres of relation between two lessons
         *
         * @param int $parentLessonId
         * @param int $childLessonId
         * @return array of properties of the link. Currently available properties:
         *    - 'SORT', integer
         *
         * @throws Exception LearnException with code error bit set LearnException::EXC_ERR_GR_GET_PROPERTY
         */
        public static function RelationGet($parentLessonId, $childLessonId);
        /**
         * Remove relation from $parentLessonId to $childLessonId
         *
         * @param int $parentLessonId
         * @param int $childLessonId
         *
         * @throws Exception LearnException with code error bit set LearnException::EXC_ERR_GR_UNLINK
         *         if relation isn't exists => message of exception === 'EA_NOT_EXISTS'
         */
        public static function RelationRemove($parentLessonId, $childLessonId);
        /**
         * Counts how much immediate childs given lesson has.
         * 
         * @param int id of lesson
         * 
         * @return int count of immediate childs for given lesson id.
         */
        public static function CountImmediateChilds($lessonId);
        /**
         * Lists all pathes to given lesson. Given lesson not included in pathes.
         * 
         * @param int lesson id to be started from
         * @param int/bool id of breakpoint-lesson (root lesson).
         * It means, this lesson will be interpreted as parentless lesson.
         * If param is false (it's by default) - than this argument will be ignored.
         * @param int/bool id of pre-breakpoint-lesson.
         * It means, this lesson will not be included in pathes (all childs of this
         * lesson will be interpreted as parentless lessons).
         * If param is false (it's by default) - than this argument will be ignored.
         * @param array of edges to be ignored (interpreted as non-existing).
         * array must be array of such arrays: ('PARENT_LESSON' => #id#, 'CHILD_LESSON' => #id#)
         * 
         * @return array of objects CLearnPath
         */
        public static function GetListOfParentPathes($lessonId, $breakOnLessonId = \false, $breakBeforeLessonId = \false, $arIgnoreEdges = array());
        /**
         * Checks for probition of publishing for given lesson in context of given course.
         * 
         * @param int lesson id to be checked for publish prohibition
         * @param int lesson id in context of which check. Must corresponds to course.
         * 
         * @return bool true - if lesson is prohibited to be published in this course, otherwise - false.
         */
        public static function IsPublishProhibited($lessonId, $contextCourseLessonId);
        /**
         * 
         * 
         * @param int lesson id for publish (un)prohibition
         * @param int lesson id in context of which publish (un)prohibition will be done
         * @param bool if true - lesson will be prohibited for publish. If false - prohibition will be removed.
         * 
         * @return bool if true - prohibition status changed, false - otherwise. If status not changed - it isn't error,
         * it means that status to be setted === status, that already set for lesson.
         */
        public static function PublishProhibitionSetTo($lessonId, $contextCourseLessonId, $isProhibited);
    }
    class CLearnLesson implements \ILearnLesson
    {
        const GET_LIST_ALL = 0x0;
        // List any lessons
        const GET_LIST_IMMEDIATE_CHILDS_OF = 0x1;
        // List only immediate childs of requested parent_lesson_id
        const GET_LIST_IMMEDIATE_PARENTS_OF = 0x2;
        // List only immediate parents of requested parent_lesson_id
        // PUBLISH_PROHIBITION_PURGE_* constants can be ORed
        // Purge all prohibitions where given lessonId is contextCourse
        const PUBLISH_PROHIBITION_PURGE_ALL_LESSONS_IN_COURSE_CONTEXT = 0x1;
        // Purge all prohibitions for lessonId in all contextCourses
        const PUBLISH_PROHIBITION_PURGE_LESSON_IN_ALL_COURSE_CONTEXT = 0x2;
        // Purge all prohibitions for given lessonId (as course, and as prohibited lesson)
        const PUBLISH_PROHIBITION_PURGE_BOTH = 0x3;
        public static final function Add($arFields, $isCourse = \false, $parentLessonId = \true, $arProperties = array('SORT' => 500), $isCheckPermissions = \true, $checkPermissionsForUserId = -1)
        {
        }
        protected static function _ExtractAdditionalCourseFields(&$arFields)
        {
        }
        /**
         * Canonize and checks additional params when adding course
         * @throws LearnException with error bit set LearnException::EXC_ERR_ALL_PARAMS
         * @return array of canonized params
         */
        protected static function _CanonizeAndCheckAdditionalParamsForAddCourse($arFields, $forUpdate = \false)
        {
        }
        public static final function Update($id, $arFields)
        {
        }
        protected static function _funcDelete_ParseOptions($lesson_id)
        {
        }
        public static final function DeleteRecursiveLikeHardlinks($in_data)
        {
        }
        public static final function Delete($lesson_id)
        {
        }
        public static final function GetByID($id)
        {
        }
        public static final function GetByIDAsArr($id)
        {
        }
        public static final function GetLinkedCourse($lessonId)
        {
        }
        /**
         * This function is for internal use only. It's not a part of public API.
         * 
         * @access private
         */
        public static final function GetCourseToLessonMap($bRefreshCache = \false)
        {
        }
        protected static function GetCourseToLessonMap_ReloadCache()
        {
        }
        protected static function GetCourseToLessonMap_LoadFromDB()
        {
        }
        /**
         * WARNING: don't use this method, it's for internal use only
         * 
         * Convert lesson to course (lesson will stay exists, but new course 
         * binded to lesson will be created)
         * 
         * WARNING: this method terminates (by die()/exit()) current execution flow
         * when SQL server error occured. It's due to bug in CDatabase::Update() in main
         * module (version info:
         *    define("SM_VERSION","11.0.12");
         *    define("SM_VERSION_DATE","2012-02-21 17:00:00"); // YYYY-MM-DD HH:MI:SS
         * )
         *
         * @param int $lessonId
         * @param array of pairs field => value for course additional params. Allowed are:
         *        - SORT or COURSE_SORT: integer, 500 by default, sort order of courses. CORSE_SORT overrides SORT
         *        - ACTIVE_FROM: datetime, NULL by default
         *        - ACTIVE_TO: datetime, NULL by default
         *        - RATING: string (1 char), 'N' by default
         *        - RATING_TYPE: string, allowed values: NULL, "like", "standart_text", 
         *           "like_graphic", "standart", NULL by default
         *        - SCORM: string (1 char), 'N' by default
         * 
         * @return int course id
         * 
         * @access private
         */
        protected static function BecomeCourse($lessonId, $arFields)
        {
        }
        /**
         * WARNING: don't use this method, it's for internal use only
         * 
         * Convert course to non-course lesson (course will be removed,
         * but lesson will stay exists)
         * 
         * WARNING: this method terminates (by die()/exit()) current execution flow
         * when SQL server error occured. It's due to bug in CDatabase::Update() in main
         * module (version info:
         *    define("SM_VERSION","11.0.12");
         *    define("SM_VERSION_DATE","2012-02-21 17:00:00"); // YYYY-MM-DD HH:MI:SS
         * )
         *
         * @param int $courseId (returned by GetLinkedCourse($lessonId) )
         * 
         * @access private
         */
        protected static function CourseBecomeLesson($courseId)
        {
        }
        /**
         * @throws LearnException with error bit set LearnException::EXC_ERR_ALL_LOGIC
         *         and errmessage "EA_PARAMS", if any of args isn't of integer type
         *         or can't be strictly casted to integer.
         */
        protected static function _EnsureArgsStrictlyCastableToIntegers()
        {
        }
        public static final function RelationAdd($parentLessonId, $childLessonId, $arProperties)
        {
        }
        public static final function RelationUpdate($parentLessonId, $childLessonId, $arProperties)
        {
        }
        public static final function RelationGet($parentLessonId, $childLessonId)
        {
        }
        public static final function RelationRemove($parentLessonId, $childLessonId)
        {
        }
        public static final function ListImmediateParents($lessonId)
        {
        }
        public static final function ListImmediateChilds($lessonId)
        {
        }
        public static final function ListImmediateNeighbours($lessonId)
        {
        }
        protected static function GetListUni($arOrder = array(), $arFilter = array(), $arSelectFields = array(), $mode = self::GET_LIST_ALL, $lessonId = -1, $arNavParams = array())
        {
        }
        public static final function GetList($arOrder = array(), $arFilter = array(), $arSelectFields = array(), $arNavParams = array())
        {
        }
        public static final function GetListOfImmediateChilds($lessonId, $arOrder = array(), $arFilter = array(), $arSelectFields = array(), $arNavParams = array())
        {
        }
        public static final function GetListOfImmediateParents($lessonId, $arOrder = array(), $arFilter = array(), $arSelectFields = array(), $arNavParams = array())
        {
        }
        public static final function GetTree($lessonId, $arOrder = array('EDGE_SORT' => 'asc'), $arFilter = array(), $publishProhibitionMode = \true, $arSelectFields = array())
        {
        }
        /**
         * @access protected
         * @throws LearnException with error bit set EXC_ERR_ALL_PARAMS 
         */
        protected static function GetFilter($arFilter = array(), $mode)
        {
        }
        public static final function CountImmediateChilds($lessonId)
        {
        }
        /**
         * This function is DEPRECATED
         * 
         * Get lesson id of lesson, previously was chapter (before convertion to new data model.
         * 
         * WARNING: This function is for backward compatibility of old-style 
         * links to courses, chapters, lessons resolving in components.
         * 
         * Don't use it in new projects, when there is no old-style links.
         * 
         * @access public
         */
        public static final function LessonIdByChapterId($chapterId)
        {
        }
        /**
         * @access private
         */
        public static final function GetListOfAncestors($lessonId, $stopAtLessonId = \false, $stopBeforeLessonId = \false, $arIgnoreEdges = array())
        {
        }
        /**
         * @access public
         */
        public static final function GetListOfParentPathes($lessonId, $breakOnLessonId = \false, $breakBeforeLesson = \false, $arIgnoreEdges = array())
        {
        }
        protected static function GetListOfParentPathesRecursive($arPathes, &$arAlreadyProcessedLessons, $arIgnoreEdges = array())
        {
        }
        public static final function IsPublishProhibited($in_lessonId, $in_contextCourseLessonId)
        {
        }
        public static final function PublishProhibitionSetTo($in_lessonId, $in_contextCourseLessonId, $in_isProhibited)
        {
        }
        /**
         * 
         * @param int lesson id
         * @param int purge mode (PUBLISH_PROHIBITION_PURGE_ALL_LESSONS_IN_COURSE_CONTEXT, 
         * PUBLISH_PROHIBITION_PURGE_LESSON_IN_ALL_COURSE_CONTEXT, 
         * PUBLISH_PROHIBITION_PURGE_BOTH)
         */
        protected static function PublishProhibitionPurge($in_lessonId, $in_purgeMode)
        {
        }
        /**
         * Cleanup publish prohibitions to be orphaned on relation remove.
         * 
         * @param int $parentLessonId of relation to be removed
         * @param int $childLessonId of relation to be removed
         */
        protected static function PublishProhibitionPurge_OnBeforeRelationRemove($in_parentLessonId, $in_childLessonId)
        {
        }
    }
    // 2012-04-19 Checked/modified for compatibility with new data model
    class CCourseImport
    {
        var $package_dir;
        var $LAST_ERROR = "";
        var $arManifest = array();
        var $arSITE_ID = array();
        var $COURSE_ID = 0;
        var $objXML;
        var $arDraftFields = array("detail_text", "preview_text", "description");
        var $arUnsetFields = array("id", "site_id", "timestamp_x", 'date_create', "chapter_id", "course_id", "lesson_id", "question_id", "created_by", 'created_user_name', 'linked_lesson_id', 'childs_cnt', 'is_childs', 'description', 'description_type', 'was_chapter_id');
        var $arPicture = array("detail_picture", "preview_picture", "file_id");
        var $arDate = array("active_from", "active_to");
        var $arWarnings = array();
        protected $arPreventUnsetFieldsForTest = array('description', 'description_type');
        // List of fields, writable to unilessons
        protected $arLessonWritableFields = array('NAME', 'ACTIVE', 'CODE', 'PREVIEW_PICTURE', 'PREVIEW_TEXT', 'PREVIEW_TEXT_TYPE', 'DETAIL_PICTURE', 'DETAIL_TEXT', 'DETAIL_TEXT_TYPE', 'LAUNCH', 'KEYWORDS');
        // 2012-04-18 Checked/modified for compatibility with new data model
        public function __construct($PACKAGE_DIR, $arSITE_ID)
        {
        }
        // 2012-04-18 Checked/modified for compatibility with new data model
        protected function CreateCourse()
        {
        }
        // 2012-04-19 Checked/modified for compatibility with new data model
        protected function CreateContent($arItems = array(), $PARENT_ID = 0)
        {
        }
        // 2012-04-19 Checked/modified for compatibility with new data model
        protected function _MakeItems($TITLE, $TYPE, $RES_ID, $PARENT_ID)
        {
        }
        // 2012-04-18 Checked/modified for compatibility with new data model
        protected function _MakeFields(&$arFields, $itemType = \null)
        {
        }
        // 2012-04-18 Checked/modified for compatibility with new data model
        public function ImportPackage()
        {
        }
        protected static function ImageTypeToMimeTypeByFileName($file)
        {
        }
        // 2012-04-18 Checked/modified for compatibility with new data model
        public static function ImageTypeToMimeType($type)
        {
        }
    }
    // 2012-04-16 Checked/modified for compatibility with new data model
    class CRatingsComponentsLearning
    {
        // 2012-04-16 Checked/modified for compatibility with new data model
        function OnGetRatingContentOwner($arParams)
        {
        }
        // 2012-04-16 Checked/modified for compatibility with new data model
        function OnAddRatingVote($id, $arParams)
        {
        }
        // 2012-04-16 Checked/modified for compatibility with new data model
        function OnCancelRatingVote($id, $arParams)
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage learning
     * @copyright 2001-2013 Bitrix
     */
    /*
    	$arFields:
    
    	ID int(11) unsigned not null auto_increment,
    	ACTIVE char(1) not null default 'Y',
    	TITLE varchar(255) not null default ' ',
    	CODE varchar(50) NULL DEFAULT NULL,
    	SORT int(11) not null default '500',
    	ACTIVE_FROM datetime,
    	ACTIVE_TO datetime,
    	COURSE_LESSON_ID INT NOT NULL,
    	PRIMARY KEY(ID)
    */
    class CLearningGroup
    {
        /**
         * Creates new learning group
         * 
         * @param array $arFields
         * 
         * @return mixed (int) id of just created group OR (bool) false on error
         */
        public static function add($arFields)
        {
        }
        /**
         * Updates existing learning group
         * 
         * @param int $id
         * @param array $arFields
         * 
         * @return bool false on error, or true - if no errors detected
         */
        public static function update($id, $arFields)
        {
        }
        /**
         * Get list of existing learning groups
         * 
         * @param array $arOrder
         * @param array $arFilter
         * @param array $arSelect
         * @param array $arNavParams
         * 
         * @return CDBResult
         */
        public static function getList($arOrder, $arFilter, $arSelect = array(), $arNavParams = array())
        {
        }
        /**
         * Removes existing learning group
         * 
         * @param int $groupId
         * 
         * @return bool false on error, or true - if no errors detected
         */
        public static function delete($groupId)
        {
        }
        private static function CheckFields($arFields, $id = \false)
        {
        }
        private static function getFilter($arFilter)
        {
        }
    }
    interface ILearnPath
    {
        /**
         * @param integer/string/array (if string must be strictly castable to integer).
         * allowed many params. First param - is the id of top, etc.
         * if array => than it must be one argument and it will be parsed as path in format for self::SetPathFromArray()
         */
        public function __construct();
        /**
         * @param integer/string (if string must be strictly castable to integer).
         * allowed many params. First param - is the id of top, etc.
         */
        public function SetPath();
        /**
         * @param array of lessons' ids
         */
        public function SetPathFromArray($arPath);
        /**
         * @param string urlencoded path, which can produced by exportUrlencoded()
         */
        public function ImportUrlencoded($str);
        /**
         * @return string urlencoded path, which can be used for importUrlencoded()
         */
        public function ExportUrlencoded();
        /**
         * @return array of lessons' ids in current path (from top to bottom)
         */
        public function GetPathAsArray();
        /**
         * @return integer/bool id of top (left) element in path. If path is empty - returns FALSE
         */
        public function GetTop();
        /**
         * @return integer/bool id of bottom (right) element in path. If path is empty - returns FALSE
         */
        public function GetBottom();
        /**
         * Removes last element (if exists) from path
         * @return integer/bool id of bottom (right) element in path. If path is empty - returns FALSE
         */
        public function PopBottom();
        /**
         * Removes first element (if exists) from path
         * @return integer/bool id of first (left) element in path. If path is empty - returns FALSE
         */
        public function ShiftTop();
        /**
         * @return integer count of elements in path
         */
        public function Count();
        /**
         * @param string delimiter, by default is ' / '
         * @param string pattern, how names will be renderred. 
         * Default pattern is '#NAME#'
         * Available fields: #NAME#, #LESSON_ID#
         * 
         * @return string such as "Course bla bla bla / chapter XXX / lesson XXX"
         */
        public function GetPathAsHumanReadableString($delimiter = ' / ', $pattern = '#NAME#');
    }
    class CLearnPath implements \ILearnPath
    {
        const DELIMITER = '.';
        protected $arPath = array();
        public function __construct()
        {
        }
        public function SetPath()
        {
        }
        protected function _SetPath($args)
        {
        }
        public function SetPathFromArray($arPath)
        {
        }
        // returns true if $str is path with two or more elements
        public static function IsUrlencodedPath($str)
        {
        }
        public function ImportUrlencoded($str)
        {
        }
        public function GetPathAsArray()
        {
        }
        public function ExportUrlencoded()
        {
        }
        public function GetTop()
        {
        }
        public function GetBottom()
        {
        }
        public function PopBottom()
        {
        }
        public function ShiftTop()
        {
        }
        public function GetPathAsHumanReadableString($delimiter = ' / ', $pattern = '#NAME#')
        {
        }
        public function Count()
        {
        }
    }
    /**
     * This class can be used by other modules in bitrix kernel.
     * BEFORE using this class, this comment must be updated to
     * maintain external class dependencies.
     * 
     * Currently depended modules:
     * learning
     * tasks
     * ------
     * 
     * @access protected
     */
    class CLearnSharedArgManager
    {
        protected $parsedOptions = \NULL;
        /**
         * @param array of options to be checked and processed (by setting default values and type casting)
         * @param array of parameters, describes options checking and processing rules
         * 
         * @example of $arParseParams
         *		$arArgManagerParams = array(
         *		'includeInactiveEdges' => array('type'          => 'boolean',	// allowed are: boolean, integer, strictly_castable_to_integer, string
         *                                      'mandatory'     => true/false,	// is element mandatory
         *										'default_value' => true),
         *		'includeActiveEdges'   => array('type'          => 'boolean',
         *                                      'mandatory'     => true/false,
         *										'default_value' => true),
         *		);
         * 
         */
        public function __construct($arOptions, $arParseParams)
        {
        }
        public function GetParsedOptions()
        {
        }
        public static function StaticParser($arOptions, $arParseParams)
        {
        }
        protected function ParseOptions($arOptions, $arParseParams)
        {
        }
        protected function CheckParseParams($arParseParams)
        {
        }
    }
    // 2012-04-11 Checked/modified for compatibility with new data model
    class CLQuestion
    {
        function CheckFields(&$arFields, $ID = \false)
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function Delete($ID)
        {
        }
        function GetByID($ID)
        {
        }
        function GetFilter($arFilter)
        {
        }
        function GetList($arOrder = array(), $arFilter = array(), $bHz = \false, $arNavParams = array(), $arSelect = array())
        {
        }
        function GetCount($arFilter = array())
        {
        }
    }
    // 2012-04-16 Checked/modified for compatibility with new data model
    class CAllSitePath
    {
        /*************** ADD, UPDATE, DELETE *****************/
        // 2012-04-16 Checked/modified for compatibility with new data model
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        // 2012-04-16 Checked/modified for compatibility with new data model
        function Delete($ID)
        {
        }
        //*************** SELECT *********************/
        // 2012-04-16 Checked/modified for compatibility with new data model
        function GetByID($ID)
        {
        }
        // 2012-04-16 Checked/modified for compatibility with new data model
        function GetBySiteID($siteID)
        {
        }
        // 2012-04-16 Checked/modified for compatibility with new data model
        function DeleteBySiteID($siteID)
        {
        }
        // 2012-04-16 Checked/modified for compatibility with new data model
        function GetFilterOperation($key)
        {
        }
        // 2012-04-16 Checked/modified for compatibility with new data model
        function PrepareSql(&$arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields, $obUserFieldsSql = \false)
        {
        }
    }
    // 2012-04-18 Checked/modified for compatibility with new data model
    class CCoursePackage
    {
        var $ID;
        var $charset;
        var $LAST_ERROR = "";
        var $arCourse = array();
        var $arSite = array();
        var $arItems = array();
        var $arResources = array();
        var $RefID = 1;
        var $strItems = "";
        var $strResourses = "";
        var $arDraftFields = array("detail_text", "preview_text", "description");
        var $arPicture = array("detail_picture", "preview_picture", "file_id");
        var $arDate = array("active_from", "active_to", "timestamp_x", "date_create");
        private $replacingResId;
        // 2012-04-18 Checked/modified for compatibility with new data model
        function CCoursePackage($COURSE_ID)
        {
        }
        // 2012-04-18 Checked/modified for compatibility with new data model
        function CreatePackage($PACKAGE_DIR)
        {
        }
        // 2012-04-18 Checked/modified for compatibility with new data model
        function CreateManifest()
        {
        }
        // 2012-04-18 Checked/modified for compatibility with new data model
        function _GetCourseContent($parentLessonId, $DEPTH_LEVEL = 1)
        {
        }
        // 2012-04-18 Checked/modified for compatibility with new data model
        function _CreateCourseToc()
        {
        }
        // 2012-04-18 Checked/modified for compatibility with new data model
        function _GetResourceFiles($res_id)
        {
        }
        // 2012-04-18 Checked/modified for compatibility with new data model
        function _CreateContent($TYPE, $arParams, $res_id)
        {
        }
        // 2012-04-18 Checked/modified for compatibility with new data model
        function _replace_img($matches)
        {
        }
        // 2012-04-18 Checked/modified for compatibility with new data model
        function _ReplaceImages($text, $res_id)
        {
        }
        private function createQuestionItems($lessonId)
        {
        }
        // 2012-04-18 Checked/modified for compatibility with new data model
        function CreateQTI($arParams, $res_id = 1)
        {
        }
        function CreateTMK($arParams, $res_id = 1)
        {
        }
    }
    interface ILearnAccessInterface
    {
        /**
         * @param int operations code (taken from sum of constants with prefix OP_)
         * @param bool flag isUseCache (can be omitted, false by default)
         * @param string prefix for tables acronyms (can be omitted)
         * 
         * @return string #sql_code# for usage in "SELECT ... WHERE LESSON_ID IN (#sql_code#)"
         * 
         * @example
         * $o = CLearnAccess::GetInstance ($someUserId);
         * $sql = $o->SQLClauseForAccessibleLessons (CLearnAccess::OP_LESSON_READ + CLearnAccess::OP_LESSON_WRITE);
         * // Selects only lessons, which are accessible by user with id = $someUserId
         * $rc = $DB->Query ("SELECT NAME FROM b_learn_lesson WHERE ACTIVE = 'Y' AND ID IN (" . $sql . ")");
         */
        public function SQLClauseForAccessibleLessons($in_bitmaskOperations, $isUseCache = \false, $lessonId = 0, $in_prfx = 'DEFPRFX');
        public static function GetNameForTask($taskId);
        /**
         * @return array of possible rights. Example of array item:
         *			$arPossibleRights['ID'] = array(
         *				'name'              => 'NAME',
         *				'name_human'        => $nameUpperCase,
         *				'sys'               => 'SYS',
         *				'description'       => 'DESCRIPTION',
         *				'description_human' => $descrUpperCase,
         *				'binding'           => 'BINDING'
         *				);
         */
        public static function ListAllPossibleRights();
        /**
         * This function include CR to access symbols when checks base rights.
         * @param int bitmask of operations (constants self::OP_...)
         * @param bool use cache
         * 
         * @return bool true - if there is access to given operations
         */
        public function IsBaseAccessForCR($in_bitmaskRequested, $isUseCache = \false);
        /**
         * @param int bitmask of operations (constants self::OP_...)
         * @param bool use cache (false be default)
         * @param bool does include CR to check? (false by default)
         * 
         * @return bool true - if there is access to given operations
         */
        public function IsBaseAccess($in_bitmaskRequested, $isUseCache = \false, $checkForAuthor = \false);
        /**
         * @param array $arPermPairs, for example: array ('CR' => 4, 'U2' => '1', ...).
         * All unlisted access symbols ("subjects") will be removed.
         */
        public function SetBasePermissions($in_arPermPairs);
        /**
         * @return array of base for all lessons permissions
         * @example
         * <?php
         * $oAccess = CLearnAccess::getInstance ($USER->GetID());
         * $arPermPairs = $oAccess->GetLessonPermissions ($some_lesson_id);
         * ?>
         * $arPermPairs now contains
         * array ('AU' => 1, 'U12' => '3', 'CR' => 2, ...)
         */
        public function GetBasePermissions();
        /**
         * @return array of lesson's permissions
         * @example
         * <?php
         * $oAccess = CLearnAccess::getInstance ($USER->GetID());
         * $arPermPairs = $oAccess->GetLessonPermissions ($some_lesson_id);
         * ?>
         * $arPermPairs now contains
         * array ('AU' => 1, 'U12' => '3', 'CR' => 2, ...)
         */
        public function GetLessonPermissions($in_lessonId);
        /**
         * @param array of permissions.
         * @example
         * $arPermissions = array(
         *    1437 => array('CR' => 2, 'AU' => 1),	// lesson_id = 1437, task_id = 2 and 1
         *    1258 => array('AU' => 1),  // lesson_id = 1258, task_id = 1
         *    178  => array()	// for this lesson will be cleaned all rights
         * );
         * $userId = $USER->GetID();
         * $oAccess = CLearnAccess::getInstance ($userId);
         * $oAccess->SetLessonsPermissions ($arPermissions);
         * 
         */
        public function SetLessonsPermissions($in_arPermissions);
        /**
         * This function checks access rights for user to given lesson. 
         * It's includes checks for base rights (shared for all lessons).
         * 
         * @return bool true - if lesson is accessible by given user for given operations.
         */
        public function IsLessonAccessible($in_lessonId, $in_bitmaskOperations, $isUseCache = \false);
        public function GetAccessibleLessonsList($in_bitmaskOperations, $isUseCache = \false);
        /**
         * @param int id of lesson
         * @param int bitmask of operations (constants self::OP_...)
         * @param bool use cache (false be default)
         * 
         * @return array of symbols, which has access to lesson with given operation bitmask.
         * 
         * @example of returned array: array ('G11', 'U11', 'AU', 'CR')
         */
        public static function GetSymbolsAccessibleToLesson($in_lessonId, $in_bitmaskOperations, $isUseCache = \false);
    }
    class CLearnAccess implements \ILearnAccessInterface
    {
        protected static $instanceOfSelf = array();
        protected static $CAccessLastUpdated = \false;
        protected $userId = \false;
        const OP_LESSON_READ = 0x1;
        const OP_LESSON_CREATE = 0x2;
        const OP_LESSON_WRITE = 0x4;
        const OP_LESSON_REMOVE = 0x8;
        const OP_LESSON_LINK_TO_PARENTS = 0x10;
        const OP_LESSON_UNLINK_FROM_PARENTS = 0x20;
        const OP_LESSON_LINK_DESCENDANTS = 0x40;
        const OP_LESSON_UNLINK_DESCENDANTS = 0x80;
        const OP_LESSON_MANAGE_RIGHTS = 0x100;
        protected static $arOperations = array('lesson_read' => self::OP_LESSON_READ, 'lesson_create' => self::OP_LESSON_CREATE, 'lesson_write' => self::OP_LESSON_WRITE, 'lesson_remove' => self::OP_LESSON_REMOVE, 'lesson_link_to_parents' => self::OP_LESSON_LINK_TO_PARENTS, 'lesson_unlink_from_parents' => self::OP_LESSON_UNLINK_FROM_PARENTS, 'lesson_link_descendants' => self::OP_LESSON_LINK_DESCENDANTS, 'lesson_unlink_descendants' => self::OP_LESSON_UNLINK_DESCENDANTS, 'lesson_manage_rights' => self::OP_LESSON_MANAGE_RIGHTS);
        // prevent creating throughs "new"
        private function __construct($in_userId)
        {
        }
        // prevent clone of object
        private function __clone()
        {
        }
        // prevent wakeup
        private function __wakeup()
        {
        }
        /**
         * @param $in_userId
         * @return CLearnAccess
         */
        public static function GetInstance($in_userId)
        {
        }
        /**
         * If user logged in - get hash for of access symbols for user.
         * If user isn't logged in - get hash of access symbols for not authorized users.
         */
        public static function GetAccessSymbolsHashForSiteUser()
        {
        }
        public static function GetNameForTask($taskId)
        {
        }
        /**
         * @return array of possible rights. Example of array item:
         *			$arPossibleRights['ID'] = array(
         *				'name'              => 'NAME',
         *				'name_human'        => $nameUpperCase,
         *				'sys'               => 'SYS',
         *				'description'       => 'DESCRIPTION',
         *				'description_human' => $descrUpperCase,
         *				'binding'           => 'BINDING'
         *				);
         */
        public static function ListAllPossibleRights()
        {
        }
        public static function GetSymbolsAccessibleToLesson($in_lessonId, $in_bitmaskOperations, $isUseCache = \false)
        {
        }
        /**
         * This function include CR to access symbols when checks base rights.
         * @param int bitmask of operations (constants self::OP_...)
         * @param bool use cache
         * 
         * @return bool true - if there is access to given operations
         */
        public function IsBaseAccessForCR($in_bitmaskRequested, $isUseCache = \false)
        {
        }
        /**
         * @param int bitmask of operations (constants self::OP_...)
         * @param bool use cache
         * @param bool does include CR to check? (false by default)
         * 
         * @return bool true - if there is access to given operations
         */
        public function IsBaseAccess($in_bitmaskRequested, $isUseCache = \false, $checkForAuthor = \false)
        {
        }
        /**
         * @param array $arPermPairs, for example: array ('CR' => 4, 'U2' => '1', ...).
         * All unlisted access symbols ("subjects") will be removed.
         */
        public function SetBasePermissions($in_arPermPairs)
        {
        }
        /**
         * @return array of base for all lessons permissions
         * @example
         * <?php
         * $oAccess = CLearnAccess::getInstance ($USER->GetID());
         * $arPermPairs = $oAccess->GetLessonPermissions ($some_lesson_id);
         * ?>
         * $arPermPairs now contains
         * array ('AU' => 1, 'U12' => '3', 'CR' => 2, ...)
         */
        public function GetBasePermissions()
        {
        }
        /**
         * @return array of lesson's permissions
         * @example
         * <?php
         * $oAccess = CLearnAccess::getInstance ($USER->GetID());
         * $arPermPairs = $oAccess->GetLessonPermissions ($some_lesson_id);
         * ?>
         * $arPermPairs now contains
         * array ('AU' => 1, 'U12' => '3', 'CR' => 2, ...)
         */
        public function GetLessonPermissions($in_lessonId)
        {
        }
        /**
         * @param array of permissions.
         * @example
         * $arPermissions = array(
         *    1437 => array('CR' => 2, 'AU' => 1),	// lesson_id = 1437, task_id = 2 and 1
         *    1258 => array('AU' => 1),  // lesson_id = 1258, task_id = 1
         *    178  => array()	// for this lesson will be cleaned all rights
         * );
         * $userId = $USER->GetID();
         * $oAccess = CLearnAccess::getInstance ($userId);
         * $oAccess->SetLessonsPermissions ($arPermissions);
         * 
         */
        public function SetLessonsPermissions($in_arPermissions)
        {
        }
        public function IsLessonAccessible($in_lessonId, $in_bitmaskOperations, $isUseCache = \false)
        {
        }
        public function GetAccessibleLessonsList($in_bitmaskOperations, $isUseCache = \false, $lessonId = 0)
        {
        }
        /**
         * @param int operations code (taken from sum of constants with prefix OP_)
         * @param bool flag isUseCache (can be omitted, false by default)
         * @param string prefix for tables acronyms (can be omitted)
         * 
         * @return string #sql_code# for usage in "SELECT ... WHERE LESSON_ID IN (#sql_code#)"
         * 
         * @example
         * $o = CLearnAccess::GetInstance ($someUserId);
         * $sql = $o->SQLClauseForAccessibleLessons (CLearnAccess::OP_LESSON_READ + CLearnAccess::OP_LESSON_WRITE);
         * // Selects only lessons, which are accessible by user with id = $someUserId
         * $rc = $DB->Query ("SELECT NAME FROM b_learn_lesson WHERE ACTIVE = 'Y' AND ID IN (" . $sql . ")");
         */
        public function SQLClauseForAccessibleLessons($in_bitmaskOperations, $isUseCache = \false, $lessonId = 0, $in_prfx = 'DEFPRFX')
        {
        }
        protected function GetBitmaskOperationsForAllLessons($arUserAccessSymbols)
        {
        }
        /**
         * @return string of comma-separated operations names
         */
        protected static function ParseOperationsForSQL($in_operations)
        {
        }
        /**
         * @return string of comma-separated access codes, includes AU symbol (if user is authorized)
         */
        protected function GetAccessCodesForSQL($isUseCache = \false)
        {
        }
        /**
         * @return array of access codes, includes AU symbol (if user is authorized)
         */
        protected function GetAccessCodes($isUseCache = \false)
        {
        }
        protected static function Array2CommaSeparatedListForSQL($in_arData)
        {
        }
        protected static function EscapeAndAddLateralQuotes($txt)
        {
        }
        public static function IsLoggedUserCanAccessModuleSettings()
        {
        }
        protected static function StrictlyCastToInteger($var)
        {
        }
    }
    // 2012-04-20 Checked/modified for compatibility with new data model
    class CCourseSCORM
    {
        var $package_dir;
        var $LAST_ERROR = "";
        var $arManifest = array();
        var $arSITE_ID = array();
        var $COURSE_ID = 0;
        var $objXML;
        var $arDraftFields = array("detail_text", "preview_text", "description");
        var $arUnsetFields = array("id", "timestamp_x", "chapter_id", "course_id", "lesson_id", "question_id", "created_by");
        var $arPicture = array("detail_picture", "preview_picture", "file_id");
        var $arDate = array("active_from", "active_to", "date_create");
        var $arWarnings = array();
        var $arResources = array();
        // 2012-04-19 Checked/modified for compatibility with new data model
        public function __construct($PACKAGE_DIR, $arSITE_ID)
        {
        }
        // 2012-04-19 Checked/modified for compatibility with new data model
        protected function CreateCourse()
        {
        }
        // 2012-04-19 Checked/modified for compatibility with new data model
        protected function CreateContent($arItems = array(), $PARENT_ID = 0)
        {
        }
        // 2012-04-20 Checked/modified for compatibility with new data model
        protected function _MakeItems($TITLE, $TYPE, $LAUNCH, $PARENT_ID)
        {
        }
        // 2012-04-19 Checked/modified for compatibility with new data model
        public function ImportPackage()
        {
        }
    }
    /**
     * Code in this class is for temporary backward compatibility only, don't relay on it!
     * @deprecated
     */
    class CLesson
    {
        /**
         * simple & stupid stub
         * @deprecated
         */
        public static function GetList($arOrder = 'will be ignored', $arFilter = array())
        {
        }
    }
    class CLearnInstall201203ConvertDBTimeOut extends \Exception
    {
    }
    class CLearnInstall201203ConvertDBException extends \Exception
    {
    }
    class CLearnInstall201203ConvertDB
    {
        const MODULE_ID = 'learning';
        const OPTION_ID = '~LearnInstall201203ConvertDB::_IsAlreadyConverted';
        // don't change this constant, NEVER!
        const STATUS_INSTALL_COMPLETE = '1';
        const STATUS_INSTALL_NEVER_START = '2';
        const STATUS_INSTALL_INCOMPLETE = '3';
        const JOURNAL_STATUS_UNPROCESSED = -1;
        const JOURNAL_STATUS_COURSE_LINKED = 1;
        const JOURNAL_STATUS_CHAPTER_COPIED = 2;
        const JOURNAL_STATUS_LESSON_EDGES_CREATED = 3;
        public static $items_processed = 0;
        public static function run()
        {
        }
        protected static function StartTransaction()
        {
        }
        protected static function Rollback()
        {
        }
        protected static function Commit()
        {
        }
        protected static function ReCreateTriggersForMSSQL()
        {
        }
        protected static function _RightsModelGetTasksWithOperations()
        {
        }
        protected static function _RightsModelGetAllOperations()
        {
        }
        /**
         * @return array of operations with IDs
         */
        protected static function _CheckOperationsInDB()
        {
        }
        protected static function _CheckTasksInDB($arTasksOperations)
        {
        }
        protected static function _CheckTasksOperationsRelations($arOperationsInDB, $arTasksInDB, $arTasksOperations)
        {
        }
        protected static function IsNewRightsModelInitialized(&$step, &$msg)
        {
        }
        protected static function _RightsModelCreateOperations()
        {
        }
        protected static function _RightsModelCreateTasksAndRelation($arOperationsInDB)
        {
        }
        protected static function _RightsModelPurge()
        {
        }
        protected static function InitializeNewRightsModel()
        {
        }
        protected static function _CreateTblRightsAll()
        {
        }
        /**
         * @return int items processed
         */
        public static function ConvertDB(&$errorMessage)
        {
        }
        protected static function ConvertPermissions()
        {
        }
        protected static function AddPath()
        {
        }
        /**
         * @return int items processed
         */
        public static function _buildEdges(&$errorMessage)
        {
        }
        public static function _MarkLessonAsProcessed($lessonId)
        {
        }
        public static function _CreateEdgeForNodes($parentNodeId, $childNodeId, $sort)
        {
        }
        /**
         * @param int chapter_id in old data model (in table b_learn_chapter)
         * @return int chapter_id in new data model (in table b_learn_lesson) OR -1 on error
         */
        public static function _GetChapterIdInNewDataModel($b_learn_chapter_ID)
        {
        }
        /**
         * @param int course_id in old data model (in table b_learn_course)
         * @return int course_id in new data model (in table b_learn_lesson) OR -1 on error
         */
        public static function _GetCourseIdInNewDataModel($b_learn_course_ID)
        {
        }
        /**
         * @return int items processed
         */
        public static function _processCourses()
        {
        }
        /**
         * This function throws exception CLearnInstall201203ConvertDBTimeOut, if it's low time left.
         */
        public static function avoidTimeout()
        {
        }
        public static function _processChapters()
        {
        }
        /**
         * Inserts new lesson to `b_learn_lesson`. Before insert, drop
         * exists lessons with such `WAS_CHAPTER_ID` (if not NULL)
         * or with such `WAS_COURSE_ID` (if not NULL)
         */
        public static function _UnrepeatableCreateLesson($arFields)
        {
        }
        /**
         * We are converted if option with name self::OPTION_ID is set to self::STATUS_INSTALL_COMPLETE
         * 
         * !!! But, if:
         * 1) this option is set to self::STATUS_INSTALL_NEVER_START 
         * AND
         * 2) there is tables b_learn_lesson_edges exists & b_learn_rights_all 
         * and b_learn_course_permission doesn't exists
         * it means that options is incorrectly set (or was reseted by somebody else), so we returns that DB is already converted
         * 
         */
        public static function _IsAlreadyConverted()
        {
        }
        protected static function _RemoveOrphanedTables()
        {
        }
        public static function _CreateEdgesTbl()
        {
        }
        public static function _CreateFieldsInTbls()
        {
        }
        /*
        public static function _RemoveFieldsFromLesson()
        {
        	//		ORACLE:
        	//		ALTER TABLE `b_learn_lesson` DROP COLUMN `JOURNAL_ID` ???
        
        	global $DB, $DBType;
        
        	$arTableFields = $DB->GetTableFieldsList (`b_learn_lesson`);
        
        	// Prepare sql code for removing fields
        	$sql_add = array();
        	if ($DBType === 'mysql')
        	{
        		$sql_add['JOURNAL_ID'] = "ALTER TABLE `b_learn_lesson` DROP `JOURNAL_ID`";
        	}
        	else
        	{
        		// TODO: do sql code for MSSQL and Oracle
        
        		self::_GiveUp ('SQL code not ready for: ' . $DBType);
        	}
        
        	// Remove every field (if exists) from table b_learn_lesson
        	foreach ($sql_add as $fieldName => $sql)
        	{
        		if ( in_array($fieldName, $arTableFields, true) )
        		{
        			$rc = $DB->Query($sql, $ignore_erros = true);
        
        			if ($rc === false)
        				self::_GiveUp(__LINE__);
        		}
        	}
        
        	// Don't ensure, that fields was really removed, because it's not critical for us
        }
        */
        public static function _GiveUp($msg = \false)
        {
        }
    }
    /**
     * Code in this file is for temporary backward compatibility only, don't relay on it!
     */
    class CChapter
    {
        // simple & stupid stub
        public static function GetNavChain($courseId, $chapterId)
        {
        }
    }
    class CLearnCacheOfLessonTreeComponent
    {
        const OPTION_NAME = '~CacheOfLessonTreeComponentIsDirty';
        const OPTION_TS = '~CacheOfLessonTreeComponentTS';
        // timestamp of last ditry cache
        const CACHE_PATH = '/learning/LessonTreeComponent/';
        const TTL = 3600;
        public static function IsDirty()
        {
        }
        public static function MarkAsDirty()
        {
        }
        public static function MarkAsClean()
        {
        }
        public static function Purge()
        {
        }
        public static function GetData($courseId)
        {
        }
        protected static function GetDataWoCache($courseId)
        {
        }
    }
    // 2012-04-16 Checked/modified for compatibility with new data model
    class CStudent
    {
        // 2012-04-16 Checked/modified for compatibility with new data model
        public static function CheckFields(&$arFields, $ID = \false)
        {
        }
        // 2012-04-16 Checked/modified for compatibility with new data model
        public static function GenerateTranscipt($TranscriptLength = 8)
        {
        }
        // 2012-04-16 Checked/modified for compatibility with new data model
        public static function Add($arFields)
        {
        }
        // 2012-04-16 Checked/modified for compatibility with new data model
        public static function Update($ID, $arFields)
        {
        }
        // 2012-04-16 Checked/modified for compatibility with new data model
        public static function Delete($ID)
        {
        }
        // 2012-04-16 Checked/modified for compatibility with new data model
        public static function GetByID($ID)
        {
        }
        // 2012-04-16 Checked/modified for compatibility with new data model
        public static function GetFilter($arFilter)
        {
        }
        // 2012-04-16 Checked/modified for compatibility with new data model
        public static function GetList($arOrder = array(), $arFilter = array())
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage learning
     * @copyright 2001-2013 Bitrix
     */
    /*
    	table definition:
    
    	CREATE TABLE b_learn_groups_lesson (
    		LEARNING_GROUP_ID int(11) NOT NULL DEFAULT '0',
    		LESSON_ID int(11) NOT NULL DEFAULT '0',
    		DELAY int(11) NOT NULL DEFAULT '0',
    		PRIMARY KEY (LEARNING_GROUP_ID, LESSON_ID),
    		KEY LESSON_ID (LESSON_ID)
    	);
    */
    class CLearningGroupLesson
    {
        /**
         * Creates new learning group <-> lesson pair
         *
         * @param array $arFields
         *
         * @return bool true/false (false - on error)
         */
        public static function add($arFields)
        {
        }
        public static function update($arFields)
        {
        }
        /**
         * Get list of existing learning group <-> lesson pairs
         *
         * @param array $arOrder
         * @param array $arFilter
         * @param array $arSelect
         * @param array $arNavParams
         *
         * @return CDBResult
         */
        public static function getList($arOrder, $arFilter, $arSelect = array(), $arNavParams = array())
        {
        }
        /**
         * Removes existing learning group <-> lesson pairs
         *
         * @param int $groupId
         *
         * @return bool false on error, or true - if no errors detected
         */
        public static function deleteByGroup($groupId)
        {
        }
        /**
         * Removes existing learning group <-> lesson pairs
         *
         * @param int $lessonId
         *
         * @return bool false on error, or true - if no errors detected
         */
        public static function deleteByLesson($lessonId)
        {
        }
        /**
         * Removes existing learning group <-> lesson pairs
         *
         * @param int $lessonId
         * @param int $groupId
         *
         * @return bool false on error, or true - if no errors detected
         */
        public static function delete($lessonId, $groupId)
        {
        }
        public static function getDelays($learningGroupId, $arLessonsIds)
        {
        }
        public static function setDelays($learningGroupId, $arDelays)
        {
        }
        private static function checkFields($arFields)
        {
        }
        private static function getFilter($arFilter)
        {
        }
        public static function onAfterLearningGroupDelete($groupId)
        {
        }
    }
    class CLearnRenderRightsEdit
    {
        public static function RenderBaseRightsTab($userId, $POSTName = 'BASE_RIGHTS')
        {
        }
        public static function RenderLessonRightsTab($userId, $POSTName = 'LESSON_RIGHTS', $lessonId, $readOnly)
        {
        }
        protected static function LearningShowRights($lessonId, $variable_name, $arBaseRights, $arPossibleRights, $arActualRights, $arSelected = array(), $arHighLight = array(), $readOnly)
        {
        }
    }
    class CAllTest
    {
        function CheckFields(&$arFields, $ID = \false)
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function Delete($ID)
        {
        }
        function GetFilter($arFilter)
        {
        }
        function GetByID($ID)
        {
        }
        function GetCount($arFilter = array())
        {
        }
        function isPrevPassed($ID, $SCORE)
        {
        }
        function GetStats($ID)
        {
        }
        public static function GetList($arOrder = array(), $arFilter = array(), $arNavParams = array())
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage learning
     * @copyright 2001-2013 Bitrix
     */
    /*
    	table definition:
    
    	CREATE TABLE b_learn_groups_member (
    		LEARNING_GROUP_ID int(11) NOT NULL DEFAULT '0',
    		USER_ID int(11) NOT NULL DEFAULT '0',
    		PRIMARY KEY (LEARNING_GROUP_ID, USER_ID),
    		KEY USER_ID (USER_ID)
    	);
    */
    class CLearningGroupMember
    {
        /**
         * Creates new learning group <-> member pair
         *
         * @param array $arFields
         *
         * @return bool true/false (false - on error)
         */
        public static function add($arFields)
        {
        }
        /**
         * Get list of existing learning group <-> member pairs
         *
         * @param array $arOrder
         * @param array $arFilter
         * @param array $arSelect
         * @param array $arNavParams
         *
         * @return CDBResult
         */
        public static function getList($arOrder, $arFilter, $arSelect = array(), $arNavParams = array())
        {
        }
        /**
         * Removes existing learning group <-> member pairs
         *
         * @param int $groupId
         *
         * @return bool false on error, or true - if no errors detected
         */
        public static function deleteByGroup($groupId)
        {
        }
        /**
         * Removes existing learning group <-> member pairs
         *
         * @param int $userId
         *
         * @return bool false on error, or true - if no errors detected
         */
        public static function deleteByUser($userId)
        {
        }
        /**
         * Removes existing learning group <-> member pairs
         *
         * @param int $userId
         * @param int $groupId
         *
         * @return bool false on error, or true - if no errors detected
         */
        public static function delete($userId, $groupId)
        {
        }
        private static function checkFields($arFields)
        {
        }
        private static function getFilter($arFilter)
        {
        }
        public static function onAfterLearningGroupDelete($groupId)
        {
        }
    }
    /**
     * WARNING: nobody shouldn't rely on this code,
     * because it's FOR INTERNAL USE ONLY. Any declared
     * function can be removed or changed in future versions.
     * This code can be changed without any notifications.
     * DON'T USE it nowhere.
     *
     * @access private
     */
    interface ILearnGraphNode
    {
        /**
         * WARNING: this method terminates (by die()/exit()) current execution flow
         * when SQL server error occured. It's due to bug in CDatabase::Insert() in main
         * module (version info:
         *    define("SM_VERSION","11.0.12");
         *    define("SM_VERSION_DATE","2012-02-21 17:00:00"); // YYYY-MM-DD HH:MI:SS
         * )
         *
         * @param array of pairs field => value for new GraphNode. Allowed fields are:
         * ACTIVE, true by default, available values are: true/false
         * NAME, mustn't be omitted
         * CODE, NULL by default
         * PREVIEW_PICTURE, NULL by default, available value is array ('name' => ..., 
         *     'size' => ..., 'tmp_name' => ..., 'type' => ..., 'del' => ...)
         * PREVIEW_TEXT, NULL by default
         * PREVIEW_TEXT_TYPE, 'text' by default, available values are: 'text', 'html'
         * DETAIL_PICTURE, NULL by default, available value is array ('name' => ..., 
         *     'size' => ..., 'tmp_name' => ..., 'type' => ..., 'del' => ...)
         * DETAIL_TEXT, NULL by default
         * DETAIL_TEXT_TYPE, 'text' by default, available values are: 'text', 'html', 'file' (filename in LAUNCH)
         * LAUNCH, NULL by default
         *
         * @throws LearnException with errcodes:
         *         - LearnException::EXC_ERR_GN_CREATE,
         *         - LearnException::EXC_ERR_GN_CHECK_PARAMS,
         *         - LearnException::EXC_ERR_GN_FILE_UPLOAD
         * Also can throws other exceptions or exceptions' codes
         *
         * @return integer id of created graph node
         */
        public static function Create($arFields);
        /**
         * WARNING: this method terminates (by die()/exit()) current execution flow
         * when SQL server error occured. It's due to bug in CDatabase::Update() in main
         * module (version info:
         *    define("SM_VERSION","11.0.12");
         *    define("SM_VERSION_DATE","2012-02-21 17:00:00"); // YYYY-MM-DD HH:MI:SS
         * )
         *
         * @param integer id of node to be updated
         * @param array of pairs field => value for new GraphNode
         *
         * @throws LearnException with errcodes:
         *         - LearnException::EXC_ERR_GN_UPDATE,
         *         - LearnException::EXC_ERR_GN_CHECK_PARAMS,
         *         - LearnException::EXC_ERR_GN_FILE_UPLOAD
         * Also can throws other exceptions or exceptions' codes
         */
        public static function Update($id, $arFields);
        /**
         * @param integer id of node to be getted
         *
         * @throws LearnException with errcode LearnException::EXC_ERR_GN_GETBYID.
         *         Messages can be: 'EA_PARAMS', 'EA_ACCESS_DENIED',
         *         'EA_SQLERROR', 'EA_NOT_EXISTS'.
         *
         * @return array of properties for node with $id
         */
        public static function GetByID($id);
        /**
         * @param integer id of node to be removed
         *
         * @throws LearnException with errcode LearnException::EXC_ERR_GN_REMOVE,
         *         also errmsg === 'EA_NOT_EXISTS' if there is wasn't node with this id.
         */
        public static function Remove($id);
    }
    /**
     * WARNING: nobody shouldn't rely on this code,
     * because it's FOR INTERNAL USE ONLY. Any declared
     * function can be removed or changed in future versions.
     * This code can be changed without any notifications.
     * DON'T USE it nowhere.
     *
     * @access private
     */
    abstract class CLearnGraphNode implements \ILearnGraphNode
    {
        // Rights allowed for different fields (stored as bitmask). MUST be integers >= zero
        const SQL_NONE = 0;
        const SQL_SELECT = 1;
        const SQL_INSERT = 2;
        const SQL_UPDATE = 4;
        public static function Remove($id)
        {
        }
        public static function GetByID($id)
        {
        }
        public static function Create($arInFields)
        {
        }
        public static function Update($id, $arInFields)
        {
        }
        protected static function _InsertOrUpdate($arInFields, $mode, $id = \false)
        {
        }
        /**
         * Prepares array of fields with values for query to DB.
         * Also, uploads/removes files, if there are.
         * @throws LearnException on error. Errcodes are: LearnException::EXC_ERR_GN_CHECK_PARAMS,
         *         LearnException::EXC_ERR_GN_FILE_UPLOAD
         */
        protected static function _PrepareDataForQuery($arFieldsMap, $arFields, $lessonId)
        {
        }
        /**
         * @return integer id of file in table b_file
         */
        protected static function _UploadFile($fieldNameInDB, $arData)
        {
        }
        /**
         * @throws LearnException with errcode LearnException::EXC_ERR_GN_CHECK_PARAMS
         */
        protected static function _CheckAndCanonizeFields($arFieldsMap, $arFields, $access_level, $forUpdate = \false)
        {
        }
        protected static function _GetFieldsMap()
        {
        }
        protected static function _GetReversedFieldsMap()
        {
        }
    }
    class CCourse
    {
        // 2012-04-17 Checked/modified for compatibility with new data model
        public static final function GetList($arOrder = array(), $arFields = array(), $arNavParams = array())
        {
        }
        /**
         * Gets id of lesson corresponded to given course
         * @param integer id of course
         * @throws LearnException with error bit set (one of):
         *         - LearnException::EXC_ERR_ALL_GIVEUP
         *         - LearnException::EXC_ERR_ALL_LOGIC
         * @return integer/bool id of linked (corresponded) lesson or 
         *         FALSE if there is no lesson corresponded to the course.
         */
        public static final function CourseGetLinkedLesson($courseId)
        {
        }
        // 2012-04-17 Checked/modified for compatibility with new data model
        function CheckFields($arFields, $ID = \false)
        {
        }
        // 2012-04-17 Checked/modified for compatibility with new data model
        function Add($arFields)
        {
        }
        // 2012-04-17 Checked/modified for compatibility with new data model
        function Update($ID, $arFields)
        {
        }
        // 2012-04-17 Checked/modified for compatibility with new data model
        /**
         * Removes course (as node, not recursively)
         */
        function Delete($ID)
        {
        }
        public function IsCertificatesExists($courseId)
        {
        }
        // 2012-04-17 Checked/modified for compatibility with new data model
        function GetByID($ID)
        {
        }
        // 2012-04-17 Checked/modified for compatibility with new data model
        function GetGroupPermissions($COURSE_ID)
        {
        }
        // 2012-04-17 Checked/modified for compatibility with new data model
        function GetSite($COURSE_ID)
        {
        }
        function GetSiteId($COURSE_ID)
        {
        }
        public static function GetSitePathes($siteId, $in_type = 'U')
        {
        }
        // 2012-04-17 Checked/modified for compatibility with new data model
        function MkOperationFilter($key)
        {
        }
        // 2012-04-17 Checked/modified for compatibility with new data model
        function FilterCreate($fname, $vals, $type, &$bFullJoin, $cOperationType = \false, $bSkipEmpty = \true)
        {
        }
        // 2012-04-18 Checked/modified for compatibility with new data model
        function GetCourseContent($COURSE_ID, $arAddSelectFileds = array("DETAIL_TEXT", "DETAIL_TEXT_TYPE", "DETAIL_PICTURE"), $arSelectFields = array())
        {
        }
        // Handlers:
        // 2012-04-17 Checked/modified for compatibility with new data model
        function OnGroupDelete($GROUP_ID)
        {
        }
        // 2012-04-17 Checked/modified for compatibility with new data model
        function OnBeforeLangDelete($lang)
        {
        }
        // 2012-04-17 Checked/modified for compatibility with new data model
        function OnUserDelete($user_id)
        {
        }
        // 2012-04-17 Checked/modified for compatibility with new data model
        function TimeToStr($seconds)
        {
        }
        // provided compatibility to new data model at 04.05.2012
        function OnSearchReindex($nextStep = [], $callbackObject = \null, $callbackMethod = "")
        {
        }
        function _Upper($str)
        {
        }
        // Functions below are for temporary backward compatibility, don't relay on it!
        /**
         * Stupid stub
         * 
         * @deprecated this code can be removed at any time without any notice
         */
        public static function SetPermission($param1, $param2)
        {
        }
        /**
         * Simple proxy
         * 
         * @deprecated this code can be removed at any time without any notice
         * @return character 'D', 'R', 'W' or 'X'
         */
        public static function GetPermission($courseId)
        {
        }
    }
    class CLearnLessonTree
    {
        protected $arTree = \NULL;
        protected $arLessonsInTree = array();
        // Array of ids of lessons already pushed to tree
        protected $arLessonsAsList = array();
        // Lessons' tree in list mode (with depth)
        protected $arLessonsAsListOldMode = array();
        // Lessons' tree in list mode (with depth) - in old compatibility mode
        protected $arPublishProhibitedLessons = array();
        // Lessons that are prohibited for publish (setted only if publishProhibitionMode enabled)
        /**
         * Build tree of lessons with the given root.
         * 
         * WARNING: tree build algorithm skips duplicated lessons, so
         * if there is some duplicates lessons, only one of them
         * will be in resulted tree.
         * 
         * @param integer id of root lesson
         * @param array order
         * @param array filter
         * @param bool skip publish prohibited lessons in context of $rootLessonId
         */
        public function __construct($rootLessonId, $arOrder = \null, $arFilter = array(), $publishProhibitionMode = \true, $arSelectFields = array())
        {
        }
        /**
         * WARNING: tree build algorithm skips duplicated lessons, so
         * if there is some duplicates lessons, only one of them
         * will be in resulted tree.
         * 
         * @return array
         * @example of returned array:
         * array (
         *    0 => array (
         *         'LESSON_ID' => 7,
         *         'EDGE_SORT' => 463,
         *         ... other fields accorded to CLearnLesson::GetList();
         *         '#childs'   => array(
         *                           0 => array (
         *                                'LESSON_ID' => 8,
         *                                'EDGE_SORT' => 463,
         *                                ... other fields accorded to CLearnLesson::GetList();
         *                                '#childs'   => array(),
         *                           1 => array(...),
         *                           ...
         *                        )
         *         ),
         *    1 => array (...),
         *    ...
         * )
         */
        public function GetTree()
        {
        }
        /**
         * WARNING: tree build algorithm skips duplicated lessons, so
         * if there is some duplicates lessons, only one of them
         * will be in resulted tree.
         * 
         * @return array
         * @example of returned array:
         * array (
         *    0 => array (
         *         'LESSON_ID' => 7,
         *         'EDGE_SORT' => 463,
         *         ... other fields accorded to CLearnLesson::GetList();
         *         '#DEPTH_IN_TREE' => 0
         * 
         *    1 => array (
         *         'LESSON_ID' => 8,
         *         'EDGE_SORT' => 463,
         *         ... other fields accorded to CLearnLesson::GetList();
         *         '#DEPTH_IN_TREE' => 1,	// this is child of LESSON_ID=7, so it's deeper
         *         ),
         *    2 => array (...),
         *    ...
         * )
         */
        public function GetTreeAsList()
        {
        }
        /**
         * WARNING: tree build algorithm skips duplicated lessons, so
         * if there is some duplicates lessons, only one of them
         * will be in resulted tree.
         */
        public function GetTreeAsListOldMode()
        {
        }
        /**
         * WARNING: tree build algorithm skips duplicated lessons, so
         * if there is some duplicates lessons, only one of them
         * will be in resulted tree.
         */
        public function GetLessonsIdListInTree()
        {
        }
        /**
         * WARNING: tree build algorithm skips duplicated lessons, so
         * if there is some duplicates lessons, only one of them
         * will be in resulted tree.
         */
        protected function BuildTreeRecursive($rootLessonId, $arOrder, $arFilter, $depth = 0, $parentChapterId = \NULL, $arSelectFields, $arRootPath)
        {
        }
        protected function EnsureStrictlyCastableToInt($i)
        {
        }
    }
    class LearnException extends \Exception
    {
        const EXC_ERR_ALL_LOGIC = 0x100;
        // Logic error
        const EXC_ERR_ALL_GIVEUP = 0x1000;
        // Any fatal error, on which called method gives up
        const EXC_ERR_ALL_PARAMS = 0x2000;
        // At least one of params is out of admitted range
        const EXC_ERR_ALL_ACCESS_DENIED = 0x10000;
        // Access denied during some operation
        const EXC_ERR_ALL_NOT_EXISTS = 0x20000;
        // Item not exists
        // Graph relations
        const EXC_ERR_GR_LINK = 0x1;
        // GraphRelation error: unable to link edge
        const EXC_ERR_GR_UNLINK = 0x2;
        // GraphRelation error: unable to unlink edge
        const EXC_ERR_GR_SET_PROPERTY = 0x4;
        // GraphRelation error: unable to set property
        const EXC_ERR_GR_GET_PROPERTY = 0x8;
        // GraphRelation error: unable to get property value
        const EXC_ERR_GR_GET_NEIGHBOURS = 0x800;
        // GraphRelation error: unable to list neighbours
        const EXC_ERR_GR_UPDATE = 0x4000;
        // GraphRelation error: unable to update link parametres
        // Graph nodes
        const EXC_ERR_GN_CREATE = 0x10;
        // GraphNode error: unable to create graph node
        const EXC_ERR_GN_UPDATE = 0x80;
        // GraphNode error: unable to update graph node
        const EXC_ERR_GN_REMOVE = 0x200;
        // GraphNode error: unable to remove graph node
        const EXC_ERR_GN_GETBYID = 0x400;
        // GraphNode error: unable to get graph node by id
        const EXC_ERR_GN_CHECK_PARAMS = 0x20;
        // GraphNode error: failed when params checked
        const EXC_ERR_GN_FILE_UPLOAD = 0x40;
        // GraphNode error: file uploading failure
        // CLearnPath
        const EXC_ERR_LP_BROKEN_PATH = 0x8000;
        // broken path
        // CLearnLesson
        const EXC_ERR_LL_UNREMOVABLE_CL = 0x40000;
        // lesson is unremovable, because linked course is unremovable
        // nextID = 0x0080000
        // Redefine the exception to log exceptions
        public function __construct($message = \null, $code = 0)
        {
        }
        protected function learning_log_exception($message, $code, $line, $file, $backtrace)
        {
        }
    }
    class CLAnswer
    {
        function CheckFields(&$arFields, $ID = \false)
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function Delete($ID)
        {
        }
        function GetByID($ID)
        {
        }
        function GetFilter($arFilter)
        {
        }
        function GetList($arOrder = array(), $arFilter = array())
        {
        }
        function GetStats($ID)
        {
        }
        public static function getMultiStats($arIds)
        {
        }
    }
    // 2012-04-10 Checked/modified for compatibility with new data model
    class CAllCertification
    {
        public static function LessonIdByCertId($certId)
        {
        }
        // 2012-04-10 Checked/modified for compatibility with new data model
        function CheckFields(&$arFields, $ID = \false)
        {
        }
        // 2012-04-10 Checked/modified for compatibility with new data model
        function Add($arFields, $arParams = array())
        {
        }
        // 2012-04-10 Checked/modified for compatibility with new data model
        function Update($ID, $arFields, $arParams = array())
        {
        }
        // 2012-04-10 Checked/modified for compatibility with new data model
        function Delete($ID)
        {
        }
        // 2012-04-10 Checked/modified for compatibility with new data model
        function GetFilter($arFilter)
        {
        }
        // 2012-04-10 Checked/modified for compatibility with new data model
        function GetByID($ID)
        {
        }
        // 2012-04-10 Checked/modified for compatibility with new data model
        public static function IsCourseCompleted($STUDENT_ID, $COURSE_ID)
        {
        }
        // 2012-04-10 Checked/modified for compatibility with new data model
        function Certificate($STUDENT_ID, $COURSE_ID, $checkPerms = \true)
        {
        }
    }
    class CLearnAccessMacroses
    {
        public static function CanUserViewLessonAsPublic($arParams, $allowAccessViaLearningGroups = \true)
        {
        }
        /**
         * If $arParams['user_id'] not set, or set to -1 => $USER->GetID() will be used
         */
        public static function CanUserAddLessonWithoutParentLesson($arParams = array())
        {
        }
        /**
         * If $arParams['user_id'] not set, or set to -1 => $USER->GetID() will be used
         * $arParams['parent_lesson_id'] must be set.
         */
        public static function CanUserAddLessonToParentLesson($arParams)
        {
        }
        public static function CanUserEditLesson($arParams)
        {
        }
        public static function CanUserRemoveLesson($arParams)
        {
        }
        public static function CanUserViewLessonContent($arParams, $allowAccessViaLearningGroups = \true)
        {
        }
        public static function CanUserViewLessonRelations($arParams)
        {
        }
        public static function CanUserPerformAtLeastOneRelationAction($arParams)
        {
        }
        public static function CanUserEditLessonRights($arParams)
        {
        }
        public static function CanUserViewLessonRights($arParams)
        {
        }
        /**
         * Parse params throughs CLearnSharedArgManager::StaticParser(),
         * but includes shared field 'user_id' and automatically replace
         * user_id === -1 to user_id = $USER->GetID();
         */
        protected static function ParseParamsWithUser($arParams, $arParserOptions)
        {
        }
        protected static function GetCurrentUserId()
        {
        }
        public static function getActiveLearningGroupsPeriod($courseLessonId, $userId)
        {
        }
        public static function getActiveLearningChaptersPeriod($courseLessonId, $userId)
        {
        }
        public static function CanViewAdminMenu()
        {
        }
    }
    /**
     * WARNING: nobody shouldn't rely on this code,
     * because it's FOR INTERNAL USE ONLY. Any declared
     * function can be removed or changed in future versions.
     * This code can be changed without any notifications.
     * DON'T USE it nowhere.
     *
     * @deprecated
     *
     * @access private
     */
    class CLearnHelper
    {
        const GRAPH_STATUS_NOT_SET = '1';
        // status wasn't set yet (we must determine, is our tables updated to graph or not)
        const GRAPH_STATUS_LEGACY = '2';
        const GRAPH_STATUS_UPDATED_TO_GRAPH = '3';
        const GRAPH_STATUS_UNDEFINED = '4';
        const MODULE_ID = 'learning';
        const OPTION_ID = '~CLearnHelper::isUpdatedToGraph();';
        const DEFAULT_VALUE = self::GRAPH_STATUS_NOT_SET;
        // be default
        const SITE_ID = '';
        // request shared options for all sites
        const ACCESS_READ = 0x1;
        const ACCESS_MODIFY = 0x3;
        // includes ACCESS_READ
        /**
         * Don't relay on this function, it can be removed without any notifications.
         * @deprecated
         */
        public static function PatchLessonContentLinks($strContent, $contextCourseId = \false)
        {
        }
        /**
         * @return void
         */
        public static function FireEvent($eventName, $eventParams)
        {
        }
        /**
         * This function builds subquery (for oracle) or comma-separated
         * list of lessons IDs (for mysql/mssql) for SQL WHERE clause,
         * which selects/contains all child lessons (only childs,
         * without parent lesson). This functions prevents cycling.
         *
         * Warning: currently
         *
         * @example
         * on oracle SQLClauseForAllSubLessons(13) returns subquery:
         * SELECT b_learn_lesson_edges.TARGET_NODE
         * FROM b_learn_lesson_edges
         * START WITH b_learn_lesson_edges.SOURCE_NODE=13
         * CONNECT BY NOCYCLE PRIOR b_learn_lesson_edges.TARGET_NODE = b_learn_lesson_edges.SOURCE_NODE
         *
         * on mysql/mssql SQLClauseForAllSubLessons(13) returns list of child lessons:
         * 14, 16, 120, 875, 476
         *
         * Any of this strings can be used in WHERE IN(...our string...) clause.
         *
         * Complete example:
         * <?php
         * $parentLessonId = 447;
         * $clauseChilds = CLearnHelper::SQLClauseForAllSubLessons($parentLessonId);
         * $strSql = "
         * SELECT *
         * FROM b_learn_lesson
         * WHERE ID IN ($clauseChilds) OR (ID = $parentLessonId)";
         * // Selects list of all childs with parentLessonId included.
         * $CDBresult = $DB->Query ($strSql);
         *
         * @param int parent lesson id
         * @return string for using in WHERE IN() clause: sql subquery or
         * comma-separated list of lesson's ids.
         */
        public static function SQLClauseForAllSubLessons($parentLessonId)
        {
        }
        /**
         * Linked from CAllCourse::MkOperationFilter($key);
         * This code writed not by me, but I rely on it in good state
         */
        public static function MkOperationFilter($key)
        {
        }
        /**
         * This code writed not by me, but I rely on it in good state
         */
        public static function FilterCreate($fname, $vals, $type, &$bFullJoin, $cOperationType = \false, $bSkipEmpty = \true)
        {
        }
        /**
         * @return boolean true, if data tables updated to graph (new native mode)
         *                 otherwise returns false (it means, we must work in legacy mode)
         */
        public static function isUpdatedToGraph()
        {
        }
        /**
         * @param string $status one of this values:
         *    self::GRAPH_STATUS_LEGACY - if not updated to grpah yet (legacy mode)
         *    self::GRAPH_STATUS_UPDATED_TO_GRAPH - if updated to graph,
         *    self::GRAPH_STATUS_UNDEFINED - if status is undefined (update in progress or interrupted)
         * @return boolean true if saved successfully, false otherwise.
         */
        public static function setUpdatedToGraphStatus($status)
        {
        }
        /**
         * @return string $status one of this values:
         *    self::GRAPH_STATUS_LEGACY - if not updated to graph (it means, we must work in legacy mode)
         *    self::GRAPH_STATUS_UPDATED_TO_GRAPH - if update to graph,
         *    self::GRAPH_STATUS_UNDEFINED - if status is undefined (update in progress or interrupted)
         */
        public static function getUpdatedToGraphStatus()
        {
        }
        public static function IsBaseFilenameSafe($filename)
        {
        }
        public static function CopyDirFiles($path_from, $path_to, $ReWrite = \True, $Recursive = \False)
        {
        }
    }
    class CAllGradeBook
    {
        public static function LessonIdByGradeBookId($certId)
        {
        }
        function CheckFields(&$arFields, $ID = \false)
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function Delete($ID)
        {
        }
        function GetFilter($arFilter)
        {
        }
        function GetByID($ID)
        {
        }
        function RecountAttempts($STUDENT_ID, $TEST_ID)
        {
        }
        function GetExtraAttempts($STUDENT_ID, $TEST_ID)
        {
        }
        function AddExtraAttempts($STUDENT_ID, $TEST_ID, $COUNT = 1)
        {
        }
        public static function GetList($arOrder = array(), $arFilter = array(), $arNavParams = array())
        {
        }
        /**
         * This function is for internal use only.
         * It can be changed without any notification.
         * This is for MSSQL/Oracle. MySQL version of SQL-code redefined in ../mysql/gradebook.php
         *
         * @access private
         */
        protected static function __getSqlFromClause($SqlSearchLang)
        {
        }
    }
    /**
     * WARNING: nobody shouldn't rely on this code,
     * because it's FOR INTERNAL USE ONLY. Any declared
     * function can be removed or changed in future versions.
     * This code can be changed without any notifications.
     * DON'T USE it nowhere.
     *
     * @access private
     */
    interface ILearnGraphRelation
    {
        /**
         * Link two nodes from $parentNodeId to $childNodeId
         *
         * @param int $parentNodeId
         * @param int $childNodeId
         * @param array of properties of the link. Currently available properties:
         *    - 'SORT', 32-bit integer
         *
         * @throws Exception LearnException with code error LearnException::EXC_ERR_GR_LINK
         */
        public static function Link($parentNodeId, $childNodeId, $arProperties);
        /**
         * Remove relation from $parentNodeId to $childNodeId
         *
         * @param int $parentNodeId
         * @param int $childNodeId
         *
         * @throws Exception LearnException with code error LearnException::EXC_ERR_GR_UNLINK
         *         if relation isn't exists => message of exception === 'EA_NOT_EXISTS'
         */
        public static function Unlink($parentNodeId, $childNodeId);
        /**
         * Set property for relation from $parentNodeId to $childNodeId.
         * Currently available properties:
         *    - 'SORT', 32-bit integer
         *
         * Warning: this method DON'T checks for existence of relation
         * (due to CDatabase transactions problems), and it will not give any error
         * or exception in that case.
         *
         * WARNING: this method terminates (by die()/exit()) current execution flow
         * when SQL server error occured. It's due to bug in CDatabase::Update() in main
         * module (version info:
         *    define("SM_VERSION","11.0.12");
         *    define("SM_VERSION_DATE","2012-02-21 17:00:00"); // YYYY-MM-DD HH:MI:SS
         * )
         *
         * @param int $parentNodeId
         * @param int $childNodeId
         * @param string $propertyName ('SORT')
         * @param mixed $value (for 'SORT' - integer)
         *
         * @throws Exception LearnException with code error LearnException::EXC_ERR_GR_SET_PROPERTY
         */
        public static function SetProperty($parentNodeId, $childNodeId, $propertyName, $value);
        /**
         * Get property for relation from $parentNodeId to $childNodeId.
         *
         * @param int $parentNodeId
         * @param int $childNodeId
         * @param string $propertyName ('SORT')
         *
         * @throws Exception LearnException with code error LearnException::EXC_ERR_GR_GET_PROPERTY
         *         if relation isn't exists => message of exception === 'EA_NOT_EXISTS'
         *
         * @return mixed value of property (for 'SORT' - integer)
         */
        public static function GetProperty($parentNodeId, $childNodeId, $propertyName);
        /**
         * Lists immediate neighbours.
         *
         * @param integer id of node
         *
         * @return array of immediate neighbours (empty array if there is no neighbours)
         *
         * @example
         * <?php
         * $arNeighbours = ThisClass::ListImmediateNeighbours (1);
         * var_dump ($arNeighbours);
         * ?>
         *
         * output:
         * array(2) {
         *   [0]=>
         *   array(4) {
         *     ["SOURCE_NODE"]=>
         *     int(1)
         *     ["TARGET_NODE"]=>
         *     int(2)
         *     ["SORT"]=>
         *     int(500)
         *   }
         *   [1]=>
         *   array(4) {
         *     ["SOURCE_NODE"]=>
         *     int(4)
         *     ["TARGET_NODE"]=>
         *     int(1)
         *     ["SORT"]=>
         *     int(500)
         *   }
         * }
         *
         */
        public static function ListImmediateNeighbours($nodeId);
        /**
         * Lists immediate parents
         *
         * @param integer id of node
         *
         * @return array of immediate parents (empty array if there is no parents)
         *
         * @see example for ListImmediateNeighbours()
         */
        public static function ListImmediateParents($nodeId);
        /**
         * Lists immediate childs
         *
         * @param integer id of node
         *
         * @return array of immediate childs (empty array if there is no childs)
         *
         * @see example for ListImmediateNeighbours()
         */
        public static function ListImmediateChilds($nodeId);
    }
    /**
     * WARNING: nobody shouldn't rely on this code,
     * because it's FOR INTERNAL USE ONLY. Any declared
     * function can be removed or changed in future versions.
     * This code can be changed without any notifications.
     * DON'T USE it nowhere.
     *
     * @access private
     */
    final class CLearnGraphRelation implements \ILearnGraphRelation
    {
        // For bitmask:
        const NBRS_IMDT_PARENTS = 0x1;
        // immediate parent neighbours
        const NBRS_IMDT_CHILDS = 0x2;
        // immediate child neighbours
        private static $arNodesCache = array();
        private static $nodesCached = 0;
        public static function ListImmediateParents($nodeId)
        {
        }
        public static function ListImmediateChilds($nodeId)
        {
        }
        public static function ListImmediateNeighbours($nodeId)
        {
        }
        protected function _ListImmediateNeighbours($nodeId, $bitmaskSearchMode)
        {
        }
        public static function Link($parentNodeId, $childNodeId, $arProperties)
        {
        }
        public static function Unlink($parentNodeId, $childNodeId)
        {
        }
        public static function SetProperty($parentNodeId, $childNodeId, $propertyName, $value)
        {
        }
        public static function GetProperty($parentNodeId, $childNodeId, $propertyName)
        {
        }
    }
    // Process permissions
    class CLearnParsePermissionsFromFilter
    {
        protected $requestedUserId = \false;
        protected $bCheckPerm = \false;
        protected $cachedSQL = \false;
        protected $requestedOperations = \false;
        protected $oAccess = \false;
        private static $availableLessons = array();
        function __construct($arFilter)
        {
        }
        protected static function DetermineRequestedUserId($arFilter, $loggedUserId)
        {
        }
        protected static function ParseRequestedOperations($arFilter)
        {
        }
        public function SQLForAccessibleLessons()
        {
        }
        public function IsNeedCheckPerm()
        {
        }
    }
    abstract class CAllTestAttempt
    {
        function CheckFields(&$arFields, $ID = \false, $bCheckRights = \true)
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields, $arParams = array())
        {
        }
        function Delete($ID)
        {
        }
        function GetFilter($arFilter)
        {
        }
        function GetByID($ID)
        {
        }
        function GetCount($TEST_ID, $STUDENT_ID)
        {
        }
        function IsTestCompleted($ATTEMPT_ID, $PERCENT)
        {
        }
        function OnAttemptChange($ATTEMPT_ID, $bCOMPLETED = \false)
        {
        }
        function AttemptFinished($ATTEMPT_ID)
        {
        }
        function RecountQuestions($ATTEMPT_ID)
        {
        }
        function IsTestFailed($ATTEMPT_ID, $PERCENT)
        {
        }
        public static function GetList($arOrder = array(), $arFilter = array(), $arSelect = array(), $arNavParams = array())
        {
        }
        private static function getSpeedFieldSql()
        {
        }
        public static function CreateAttemptQuestions($ATTEMPT_ID)
        {
        }
    }
    // 2012-04-16 Checked/modified for compatibility with new data model
    class CSitePath extends \CAllSitePath
    {
        /*************** ADD, UPDATE, DELETE *****************/
        // 2012-04-16 Checked/modified for compatibility with new data model
        function Add($arFields)
        {
        }
        // 2012-04-16 Checked/modified for compatibility with new data model
        function Update($ID, $arFields)
        {
        }
        //*************** SELECT *********************/
        // 2012-04-16 Checked/modified for compatibility with new data model
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CTest extends \CAllTest
    {
        function GetRandFunction()
        {
        }
    }
    class CCertification extends \CAllCertification
    {
        public static function GetList($arOrder = array(), $arFilter = array(), $arNavParams = array())
        {
        }
    }
    class CGradeBook extends \CAllGradeBook
    {
        /**
         * This function is for internal use only.
         * It can be changed without any notification.
         *
         * @access private
         */
        protected static final function __getSqlFromClause($SqlSearchLang)
        {
        }
    }
    class CTestAttempt extends \CAllTestAttempt
    {
        function DoInsert($arInsert, $arFields)
        {
        }
        protected static final function _GetListSQLFormer($sSelect, $obUserFieldsSql, $bCheckPerm, $USER, $arFilter, $strSqlSearch, &$strSqlFrom)
        {
        }
    }
    class CLearnRenderAdminExceptionsList
    {
        // This constants for special values on
        protected $oList, $oFilter;
        // is it need?	protected $isInsideCourse = null;
        protected $tableID = 'tbl_exceptions_list';
        protected $rsData;
        // list of items
        public function __construct()
        {
        }
        public function EnsureReadRights()
        {
        }
        public function Init()
        {
        }
        public function IsNeedProcessActionsOnList()
        {
        }
        public function ProcessActionsOnList()
        {
        }
        public function FetchData()
        {
        }
        public function BuildList()
        {
        }
        // Build group actions buttons in list
        public function BuildListGroupActionsButton()
        {
        }
        public function BuildListContextMenu()
        {
        }
        public function RenderInto(&$html)
        {
        }
        public function IsNeedSaveInlineEditedItems()
        {
        }
        public function SaveInlineEditedItems()
        {
        }
        protected function ShowFilter()
        {
        }
        public function ShowList()
        {
        }
    }
    class CLearnRenderAdminUnilessonListException extends \Exception
    {
        const C_COURSE_UNAVAILABLE = 0x1;
        const C_ACCESS_DENIED = 0x2;
        const C_NEED_SHOW_AUTH_FORM = 0x4;
        const C_ACTION_UPDATE_FAIL = 0x8;
        const C_LOGIC = 0x10;
    }
    class CLearnRenderAdminUnilessonList
    {
        const ListAnyCoursesMode = 1;
        // Courses' list requested
        const ListAnyLessonsMode = 2;
        // Lessons' list requested (without relation to parent)
        const ListChildLessonsMode = 3;
        // Lessons' list requested (with relation to parent)
        // This constants for special values on
        protected $oList, $oFilter;
        protected $LEARNING_RIGHT = \null;
        // is it need?	protected $isInsideCourse = null;
        protected $tableID = 'tbl_unilesson_list';
        protected $arFilter = array();
        // current filter for CLearnLesson::GetList()
        protected $arSortOrder = array('LESSON_ID' => 'asc');
        protected $rsData;
        // list of items
        protected $requestedParentLessonId;
        // $_POST['PARENT_LESSON_ID'] or $_GET['PARENT_LESSON_ID'] or NULL
        protected $listMode;
        // List mode (one of ListAnyCoursesMode, ListAnyLessonsMode, ListChildLessonsMode)
        protected $oAccess;
        protected $contextCourseLessonId = \false;
        protected $search_mode;
        protected $search_retpoint;
        protected $search_mode_type;
        public function __construct()
        {
        }
        public function IsSearchMode()
        {
        }
        public function getSearchMode()
        {
        }
        public function EnsureReadRights()
        {
        }
        protected function EnsureLessonUpdateAccess($lessonID)
        {
        }
        protected function IsLessonUpdateAccess($lessonID)
        {
        }
        protected function EnsureLessonUnlinkAccess($parentLessonId, $childLessonId)
        {
        }
        public function Init()
        {
        }
        public function IsNeedProcessActionsOnList()
        {
        }
        public function ProcessActionsOnList()
        {
        }
        // Must throw exception if access denied
        protected function EnsureLessonDisbandAccess($lessonID)
        {
        }
        // Must throw exception if access denied
        protected function EnsureLessonActivateAccess($lessonID)
        {
        }
        // Must throw exception if access denied
        protected function EnsureLessonDeactivateAccess($lessonID)
        {
        }
        protected function IsListAnyCoursesMode()
        {
        }
        protected function IsListAnyLessonsMode()
        {
        }
        protected function IsListChildLessonsMode()
        {
        }
        protected function IsListMode($mode)
        {
        }
        private function fetchDataFromDb()
        {
        }
        public function FetchData()
        {
        }
        public function BuildList()
        {
        }
        // Build group actions buttons in list
        public function BuildListGroupActionsButton()
        {
        }
        public function BuildListContextMenu()
        {
        }
        public function RenderInto(&$html)
        {
        }
        public function IsNeedSaveInlineEditedItems()
        {
        }
        public function SaveInlineEditedItems()
        {
        }
        protected function ShowFilter()
        {
        }
        public function ShowList()
        {
        }
    }
}
namespace Bitrix\Learning\Integration {
    class Search
    {
        /**
         * Makes a search index for the lesson.
         *
         * @param int $lessonId - Lesson Id.
         *
         * @throws \Bitrix\Main\LoaderException
         * @throws \LearnException
         *
         * @return void
         */
        public static function indexLesson($lessonId)
        {
        }
        /**
         * Re-indexes all lessons
         *
         * @param array $nextStep - Next step settings.
         * @param \CSearchCallback $callbackObject - Search callback object.
         * @param string $callbackMethod - Search callback method name.
         *
         * @return array|bool|string
         * @throws \LearnException
         */
        public static function handleReindex($nextStep = [], $callbackObject = null, $callbackMethod = "")
        {
        }
        private static function getLessonCourseId($lessonId)
        {
        }
        private static function getIndexItems($lessonId)
        {
        }
        private static function getCoursePaths($entityId, $entityType, $courseId)
        {
        }
        private static function getSitePaths()
        {
        }
    }
}
namespace {
    class Learning_CIBlockPropertyUserID
    {
        function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
        {
        }
    }
    class CPullDemoComponent extends \CBitrixComponent
    {
        /**
         * @return bool
         */
        public function executeComponent()
        {
        }
    }
    class CPullDemoWebrtcComponent extends \CBitrixComponent
    {
        /**
         * @return bool
         */
        public function executeComponent()
        {
        }
    }
    class pull extends \CModule
    {
        var $MODULE_ID = "pull";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_GROUP_RIGHTS = "Y";
        function pull()
        {
        }
        function DoInstall()
        {
        }
        function InstallDB()
        {
        }
        function InstallFiles()
        {
        }
        function InstallEvents()
        {
        }
        function DoUninstall()
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function UnInstallFiles($arParams = array())
        {
        }
        function UnInstallEvents()
        {
        }
        public function migrateToBox()
        {
        }
    }
    class CAllPullStack
    {
        // receive messages on stack
        // only works in PULL mode
        public static function Get($channelId, $lastId = 0)
        {
        }
        // add a message to stack
        public static function AddByChannel($channelId, $params = array())
        {
        }
        public static function AddByUser($userId, $arMessage, $channelType = 'private')
        {
        }
        public static function AddByUsers($users, $arMessage, $channelType = 'private')
        {
        }
        public static function AddShared($arMessage, $channelType = 'shared')
        {
        }
        public static function AddBroadcast($arMessage)
        {
        }
    }
    abstract class CPushMessage
    {
        protected $deviceTokens = array();
        protected $text;
        protected $category;
        protected $badge;
        protected $sound = "default";
        protected $expiryValue = 7200;
        protected $customIdentifier;
        protected $title;
        public $customProperties = array();
        public function addRecipient($sDeviceToken)
        {
        }
        public function getRecipient($nRecipient = 0)
        {
        }
        public function getRecipients()
        {
        }
        public function setText($sText)
        {
        }
        public function getText()
        {
        }
        public function setTitle($sTitle)
        {
        }
        public function getTitle()
        {
        }
        public function setBadge($nBadge)
        {
        }
        public function getBadge()
        {
        }
        public function setSound($sSound = 'default')
        {
        }
        public function getSound()
        {
        }
        public function setCustomProperty($sName, $mValue)
        {
        }
        public function getCustomProperty($sName)
        {
        }
        public function setExpiry($nExpiryValue)
        {
        }
        public function getExpiry()
        {
        }
        public function setCustomIdentifier($mCustomIdentifier)
        {
        }
        public function getCustomIdentifier()
        {
        }
        abstract function getBatch();
        /**
         * @return mixed
         */
        public function getCategory()
        {
        }
        /**
         * @param mixed $category
         */
        public function setCategory($category)
        {
        }
        public function setFromArray(array $messageArray)
        {
        }
    }
    class CAppleMessage extends \CPushMessage
    {
        protected const DEFAULT_PAYLOAD_MAXIMUM_SIZE = 2048;
        protected const APPLE_RESERVED_NAMESPACE = 'aps';
        protected const JSON_OPTIONS = \JSON_HEX_TAG | \JSON_HEX_AMP | \JSON_HEX_APOS | \JSON_HEX_QUOT | \JSON_UNESCAPED_UNICODE;
        protected $_bAutoAdjustLongPayload = \true;
        protected $payloadMaxSize;
        public function __construct($sDeviceToken = \null, $maxPayloadSize = 2048)
        {
        }
        public function setAutoAdjustLongPayload($bAutoAdjust)
        {
        }
        public function getAutoAdjustLongPayload()
        {
        }
        protected function getAlertData()
        {
        }
        protected function _getPayload()
        {
        }
        public function getPayload()
        {
        }
        public function getBatch()
        {
        }
    }
    abstract class CPushService
    {
        protected $allowEmptyMessage = \true;
        const DEFAULT_EXPIRY = 14400;
        protected function getBatchWithModifier($appMessages = array(), $modifier = "")
        {
        }
        protected static function getGroupedByServiceMode($arMessages)
        {
        }
        protected static function getGroupedByAppID($arMessages)
        {
        }
        /**
         * @param string $token
         * @return CPushMessage
         */
        abstract function getMessageInstance($token);
        static abstract function shouldBeSent($messageRowData);
        abstract function getBatch($messages);
    }
    class CApplePush extends \CPushService
    {
        protected $sandboxModifier;
        protected $productionModifier;
        /**
         * CApplePush constructor.
         */
        public function __construct()
        {
        }
        /**
         * Gets the batch for Apple push notification service
         *
         * @param array $messageData
         *
         * @return bool|string
         */
        public function getBatch($messageData = array())
        {
        }
        /**
         * Returns message instance
         *
         * @param $token
         *
         * @return CAppleMessage
         */
        function getMessageInstance($token)
        {
        }
        /**
         * Gets batch  with ;1; modifier only for sandbox server
         *
         * @param $appMessages
         *
         * @return string
         */
        public function getSandboxBatch($appMessages)
        {
        }
        /**
         * Gets batch  with ;2; modifier only for production server
         *
         * @param $appMessages
         *
         * @return string
         */
        public function getProductionBatch($appMessages)
        {
        }
        public static function shouldBeSent($messageRowData)
        {
        }
    }
    class CAppleVoipMessage extends \CAppleMessage
    {
        protected function getAlertData()
        {
        }
    }
    class CApplePushVoip extends \CApplePush
    {
        /**
         * CApplePushVoip constructor.
         */
        public function __construct()
        {
        }
        /**
         * Returns message instance
         *
         * @param $token
         *
         * @return CAppleMessage
         */
        function getMessageInstance($token)
        {
        }
        public static function shouldBeSent($messageRowData)
        {
        }
    }
    class CPushDescription
    {
        const TYPE_APPLE = "APPLE";
        const TYPE_APPLE_VOIP = "APPLE/VOIP";
        const TYPE_GOOGLE = "GOOGLE";
        const TYPE_GOOGLE_REV2 = "GOOGLE/REV2";
        public function GetDescription()
        {
        }
    }
    class CGoogleMessage extends \CPushMessage
    {
        const DEFAULT_PAYLOAD_MAXIMUM_SIZE = 4096;
        public function __construct($sDeviceToken = \null)
        {
        }
        /**
         * Returns batch of the message
         * @return string
         */
        public function getBatch()
        {
        }
        public function getPayload()
        {
        }
    }
    class CGooglePush extends \CPushService
    {
        function __construct()
        {
        }
        /**
         * Returns the final batch for the Android's push notification
         *
         * @param array $messageData
         *
         * @return bool|string
         */
        public function getBatch($messageData = array())
        {
        }
        /**
         * Gets message instance
         * @param $token
         *
         * @return CGoogleMessage
         */
        function getMessageInstance($token)
        {
        }
        public static function shouldBeSent($messageRowData)
        {
        }
    }
    class CGooglePushInteractive extends \CGooglePush
    {
        function __construct()
        {
        }
    }
    class CPullTableSchema
    {
        public function __construct()
        {
        }
        public static function OnGetTableSchema()
        {
        }
    }
    /**
     * Class CPullPush
     * @deprecated use Bitrix\Pull\Model\PushTable
     * @see \Bitrix\Pull\Model\PushTable
     */
    class CPullPush
    {
        /**
         * @deprecated use Bitrix\Pull\Model\PushTable::getList
         * @see Bitrix\Pull\Model\PushTable::getList
         * @param array $arOrder
         * @param array $arFilter
         * @param array $arSelect
         * @param array $arNavStartParams
         * @return \Bitrix\Main\DB\Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function GetList($arOrder = [], $arFilter = [], $arSelect = [], $arNavStartParams = [])
        {
        }
        /**
         * @deprecated use Bitrix\Pull\Model\PushTable::add
         * @see Bitrix\Pull\Model\PushTable::add
         * @param array $arFields
         * @return int
         * @throws Exception
         */
        public static function Add($arFields = array())
        {
        }
        public static function getUniqueHash($user_id, $app_id)
        {
        }
        /**
         * @deprecated use Bitrix\Pull\Model\PushTable::update
         * @see Bitrix\Pull\Model\PushTable::update
         * @param $ID
         * @param array $arFields
         * @return int
         * @throws Exception
         */
        public static function Update($ID, $arFields = array())
        {
        }
        /**
         * @deprecated use Bitrix\Pull\Model\PushTable::delete
         * @see Bitrix\Pull\Model\PushTable::delete
         * @param bool $ID
         * @return bool
         * @throws Exception
         */
        public static function Delete($ID = \false)
        {
        }
        public static function cleanTokens()
        {
        }
    }
    class CPushManager
    {
        const SEND_IMMEDIATELY = 'IMMEDIATELY';
        const SEND_IMMEDIATELY_SILENT = 'IMMEDIATELY_SILENT';
        const SEND_DEFERRED = 'DEFERRED';
        const SEND_SKIP = 'SKIP';
        const RECORD_NOT_FOUND = 'NOT_FOUND';
        public const DEFAULT_APP_ID = "Bitrix24";
        public static $pushServices = \false;
        protected static $appAliases = [];
        private $remoteProviderUrl;
        public function __construct()
        {
        }
        public static function DeleteFromQueueByTag($userId, $tag, $appId = self::DEFAULT_APP_ID)
        {
        }
        /**
         * @param $arParams
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function AddQueue($arParams)
        {
        }
        private static function prepareSend($userId, $fields, $type = self::SEND_IMMEDIATELY)
        {
        }
        /**
         * @param $userId
         * @param array $options
         * @param string $appId
         * @return array|bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function GetDeviceInfo($userId, $options = array(), $appId = self::DEFAULT_APP_ID)
        {
        }
        private function getUniqueHashes($userId, $appId)
        {
        }
        private function getAppIDAliases($appId)
        {
        }
        protected function shouldSendMessage(&$message)
        {
        }
        /**
         * @param array $arMessages
         * @param array $arDevices
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function SendMessage($arMessages = [], $arDevices = [])
        {
        }
        public function sendBatch($batch)
        {
        }
        public static function DeleteFromQueueBySubTag($userId, $tag, $appId = self::DEFAULT_APP_ID)
        {
        }
        public static function SendAgent()
        {
        }
        public function getServices()
        {
        }
        public function sendBadges($userId = \null, $appId = self::DEFAULT_APP_ID)
        {
        }
    }
    class CPullChannel
    {
        const TYPE_PRIVATE = 'private';
        const TYPE_SHARED = 'shared';
        const CHANNEL_TTL = 43205;
        public static function GetNewChannelId($extraString = '')
        {
        }
        public static function GetChannelShared($channelType = self::TYPE_SHARED, $cache = \true, $reOpen = \false)
        {
        }
        public static function GetShared($cache = \true, $reOpen = \false, $channelType = self::TYPE_SHARED)
        {
        }
        public static function GetChannel($userId, $channelType = self::TYPE_PRIVATE, $cache = \true, $reOpen = \false)
        {
        }
        public static function Get($userId, $cache = \true, $reOpen = \false, $channelType = self::TYPE_PRIVATE)
        {
        }
        public static function SignChannel($channelId)
        {
        }
        public static function SignPublicChannel($channelId)
        {
        }
        public static function GetPublicSignature($value)
        {
        }
        public static function GetSignature($value, $signatureKey = \null)
        {
        }
        // create a channel for the user
        public static function Add($userId, $channelId = \null, $publicChannelId = \null, $channelType = self::TYPE_PRIVATE)
        {
        }
        // remove channel by identifier
        // before removing need to send a message to change channel
        public static function Delete($channelId)
        {
        }
        public static function DeleteByUser($userId, $channelId = \null, $channelType = self::TYPE_PRIVATE)
        {
        }
        public static function Send($channelId, $message, $options = array())
        {
        }
        private static function SendCommand($channelId, $message, $options = array())
        {
        }
        public static function SaveToCache($cacheId, $data)
        {
        }
        public static function UpdateLastId($channelId, $lastId)
        {
        }
        // check channels that are older than 12 hours, remove them.
        public static function CheckExpireAgent()
        {
        }
        public static function CheckOnlineChannel()
        {
        }
        /**
         * Deprecated method, use \Bitrix\Pull\Config::get() insted.
         *
         * @deprecated
         * @see \Bitrix\Pull\Config::get()
         */
        public static function GetConfig($userId, $cache = \true, $reopen = \false, $mobile = \false)
        {
        }
        public static function GetOnlineChannels(array $channels)
        {
        }
    }
    class CAllPullWatch
    {
        const bucket_size = 100;
        private static $arUpdate = array();
        private static $arInsert = array();
        public static function Add($userId, $tag, $immediate = \false)
        {
        }
        public static function DeferredSql($userId = \false)
        {
        }
        public static function Delete($userId, $tag = \null)
        {
        }
        public static function Extend($userId, $tags)
        {
        }
        public static function AddToStack($tag, $parameters, $channelType = \CPullChannel::TYPE_PRIVATE)
        {
        }
        public static function GetUserList($tag)
        {
        }
    }
    class CPullOptions
    {
        static $optionDefaultConfig = \null;
        static $optionDefaultModule = \null;
        const PROTOBUF_ENABLED = 'enable_protobuf';
        const MAX_CHANNELS_PER_REQUEST = 'limit_max_channels_per_request';
        const MAX_MESSAGES_PER_REQUEST = 'limit_max_messages_per_request';
        const MAX_PAYLOAD = 'limit_max_payload';
        const SERVER_MODE_SHARED = 'shared';
        const SERVER_MODE_PERSONAL = 'personal';
        public static function CheckNeedRun($bGetSectionStatus = \true)
        {
        }
        public static function ModuleEnable()
        {
        }
        public static function GetDependentModule()
        {
        }
        public static function GetExcludeSites()
        {
        }
        public static function SetExcludeSites($sites)
        {
        }
        /*
         * @deprecated No longer used by internal code and not recommended. Use CPullOptions::GetQueueServerStatus()
         */
        public static function GetNginxStatus()
        {
        }
        public static function GetQueueServerStatus()
        {
        }
        public static function GetQueueServerHeaders()
        {
        }
        /*
         * @deprecated No longer used by internal code and not recommended. Use CPullOptions::SetQueueServerStatus()
         */
        public static function SetNginxStatus($flag = "N")
        {
        }
        public static function SetQueueServerStatus($flag = "N")
        {
        }
        public static function SetQueueServerHeaders($flag = "Y")
        {
        }
        /**
         * Return operation mode of the associated server.
         * @return string
         */
        public static function GetQueueServerMode()
        {
        }
        /**
         * Sets operation mode of the associated server.
         * @param string $mode Operation mode of the server.
         */
        public static function SetQueueServerMode($mode)
        {
        }
        public static function IsServerShared()
        {
        }
        public static function GetPushStatus()
        {
        }
        public static function SetPushStatus($flag = "N")
        {
        }
        public static function GetPushMessagePerHit()
        {
        }
        public static function SetPushMessagePerHit($count)
        {
        }
        public static function GetGuestStatus()
        {
        }
        public static function SetGuestStatus($flag = "N")
        {
        }
        public static function GetPublishUrl($channelId = "")
        {
        }
        public static function SetSignatureKey($signature)
        {
        }
        public static function GetSignatureKey()
        {
        }
        public static function GetSignatureAlgorithm()
        {
        }
        public static function SetPublishUrl($path = "")
        {
        }
        public static function GetListenUrl($channelId = "")
        {
        }
        public static function SetListenUrl($path = "")
        {
        }
        public static function GetPublishWebEnabled()
        {
        }
        public static function GetPublishWebUrl($channelId = "")
        {
        }
        public static function SetPublishWebUrl($path = "")
        {
        }
        public static function GetPublishWebSecureUrl($channelId = "")
        {
        }
        public static function SetPublishWebSecureUrl($path = "")
        {
        }
        public static function GetListenSecureUrl($channelId = "")
        {
        }
        public static function SetListenSecureUrl($path = "")
        {
        }
        /*
         * Get version of QueueServer
         * 1 version - nginx-push-stream-module 0.3.4
         * 2 version - nginx-push-stream-module 0.4.0
         * 3 version - Bitrix Push & Pull server 1.0
         * 4 version - Bitrix Push & Pull server 2.0
         */
        public static function GetQueueServerVersion()
        {
        }
        public static function SetQueueServerVersion($version)
        {
        }
        public static function GetCommandPerHit()
        {
        }
        public static function SetCommandPerHit($count)
        {
        }
        public static function GetWebSocketStatus()
        {
        }
        public static function GetWebSocket()
        {
        }
        public static function SetWebSocket($flag = "N")
        {
        }
        public static function GetWebSocketUrl($channelId = "")
        {
        }
        public static function SetWebSocketUrl($path = "")
        {
        }
        public static function GetWebSocketSecureUrl($channelId = "")
        {
        }
        public static function SetWebSocketSecureUrl($path = "")
        {
        }
        public static function SetConfigTimestamp($timestamp = 0)
        {
        }
        public static function GetConfigTimestamp()
        {
        }
        public static function GetMaxPayload()
        {
        }
        public static function GetMaxChannelsPerRequest()
        {
        }
        public static function GetMaxMessagesPerRequest()
        {
        }
        public static function IsProtobufSupported()
        {
        }
        public static function IsProtobufEnabled()
        {
        }
        /* UTILITY */
        public static function SendConfigDie()
        {
        }
        public static function GetDefaultOption($optionName)
        {
        }
        public static function ClearCheckCache()
        {
        }
        public static function ClearAgent()
        {
        }
        public static function OnEpilog()
        {
        }
    }
    class CPullStack extends \CAllPullStack
    {
        // check messages that are older than 24hours, remove them.
        // only works in PULL mode
        public static function CheckExpireAgent()
        {
        }
    }
    class CPullWatch extends \CAllPullWatch
    {
        // check watch that are older than 10minutes, remove them.
        public static function CheckExpireAgent()
        {
        }
    }
}
namespace Bitrix\Pull {
    class Loader
    {
        public static function register()
        {
        }
        public static function autoLoad($className)
        {
        }
        private static function isAlreadyRegistered()
        {
        }
    }
    class Event
    {
        const SHARED_CHANNEL = 0;
        private static $backgroundContext = false;
        private static $messages = array();
        private static $deferredMessages = array();
        private static $push = array();
        private static $error = false;
        public static function add($recipient, array $parameters, $channelType = \CPullChannel::TYPE_PRIVATE)
        {
        }
        private static function addEvent($recipient, $parameters, $channelType = \CPullChannel::TYPE_PRIVATE)
        {
        }
        private static function addMessage(array &$destination, array $channels, array $parameters)
        {
        }
        private static function addPush($users, $parameters)
        {
        }
        private static function processDeferredMessages()
        {
        }
        private static function executeEvent($parameters)
        {
        }
        private static function executePushEvent($parameters)
        {
        }
        public static function send()
        {
        }
        public static function executeEvents()
        {
        }
        public static function executePushEvents()
        {
        }
        public static function onAfterEpilog()
        {
        }
        public static function sendInBackground()
        {
        }
        public static function getChannelIds($users, $type = \CPullChannel::TYPE_PRIVATE)
        {
        }
        public static function getUserIds($channels)
        {
        }
        private static function prepareParameters($parameters)
        {
        }
        private static function preparePushParameters($parameters)
        {
        }
        public static function getParamsCode($params)
        {
        }
        private static function getEntitiesByType($recipient)
        {
        }
        private static function getBytes($variable)
        {
        }
        private static function isChannelEntity($entity)
        {
        }
        public static function getLastError()
        {
        }
    }
    class PushSmartfilter
    {
        public static function getStatus($userId = null)
        {
        }
        public static function setStatus($status, $userId = null)
        {
        }
    }
    class ProtobufTransport
    {
        protected $hits = 0;
        protected $bytes = 0;
        /**
         * @param array $messages Messages to send to the pull server.
         */
        public static function sendMessages(array $messages)
        {
        }
        /**
         * Returns online status for each known channel in the list of private channel ids.
         * @param array $channels Array of private channel ids.
         * @return array Return online status for known channels in format [channelId => bool].
         */
        public static function getOnlineChannels(array $channels)
        {
        }
        /**
         * @param array $messages
         * @return Protobuf\IncomingMessage[]
         */
        protected static function convertMessages(array $messages)
        {
        }
        /**
         * @param array $channels
         * @param array $event
         *
         * @return Protobuf\IncomingMessage[]
         */
        protected static function convertMessage(array $channels, array $event)
        {
        }
        /**
         * @param Protobuf\Request[] $requests
         * @return Protobuf\RequestBatch[]
         */
        protected static function createRequestBatches(array $requests)
        {
        }
        /**
         * @param Protobuf\IncomingMessage[] $messages
         * @return Protobuf\Request[]
         */
        protected static function createRequests(array $messages)
        {
        }
        /**
         * @param Protobuf\IncomingMessage $message
         * @param $maxReceivers
         * @return Protobuf\IncomingMessage[]
         */
        protected static function splitReceivers(\Bitrix\Pull\Protobuf\IncomingMessage $message, $maxReceivers)
        {
        }
        protected static function getMessageSize(\Bitrix\Pull\Protobuf\IncomingMessage $message)
        {
        }
    }
}
namespace Bitrix\Pull\Update {
    class Channel
    {
        public static function updatePublicChannelIdAgent()
        {
        }
    }
}
namespace Bitrix\Pull\SharedServer {
    class Config
    {
        const DEFAULT_SERVER = "rtc-cloud.bitrix.info";
        const HOSTNAME_URL = "/hostname";
        const SERVER_LIST_URL = "/servers";
        const REGISTER_URL = "/register-client/";
        const PUB_URL = "/pub/";
        const SUB_URL = "/subws/";
        const REST_URL = "/rest/";
        const SERVER_ADDRESS = 'shared_server_address';
        const SHARED_SERVER_KEY = 'shared_server_key';
        const IS_REGISTERED_ON_SHARED_SERVER = 'registered_on_shared_server';
        public static function getServerAddress()
        {
        }
        public static function setServerAddress($serverAddress)
        {
        }
        public static function getRegisterUrl()
        {
        }
        /**
         * Returns url for publishing events.
         *
         * @return string
         */
        public static function getPublishUrl()
        {
        }
        /**
         * Returns url for receiving events with long polling transport.
         *
         * @return string
         */
        public static function getLongPollingUrl()
        {
        }
        /**
         * Returns url for receiving events with websocket transport.
         *
         * @return string
         */
        public static function getWebSocketUrl()
        {
        }
        /**
         *
         */
        public static function getWebPublishUrl()
        {
        }
        public static function getServerVersion()
        {
        }
        public static function setSignatureKey($signatureKey)
        {
        }
        public static function getSignatureKey()
        {
        }
        public static function setRegistered($isRegistered)
        {
        }
        public static function isRegistered()
        {
        }
    }
    class Client
    {
        const TYPE_CP = "CP";
        public static function register($preferredServer = "")
        {
        }
        public static function selectServer()
        {
        }
        public static function getServerList()
        {
        }
        protected static function performRegister()
        {
        }
        protected static function getLicenseKey()
        {
        }
        public static function getPublicLicenseCode()
        {
        }
        protected static function signRequest(array $request)
        {
        }
    }
}
namespace Bitrix\Pull {
    class ServerMode
    {
        const Shared = 'shared';
        const Personal = 'personal';
    }
    class Config
    {
        public static function get($params = array())
        {
        }
        /**
         * @param string $channelId
         * @return bool|string|null
         */
        public static function getPublishUrl($channelId = "")
        {
        }
        public static function getSignatureKey()
        {
        }
        public static function isProtobufUsed()
        {
        }
    }
}
namespace Bitrix\Pull\Controller {
    class Config extends \Bitrix\Main\Engine\Controller
    {
        public function getAction($cache = true, $reopen = false)
        {
        }
        public function extendWatchAction(array $tags)
        {
        }
    }
    class Channel extends \Bitrix\Main\Engine\Controller
    {
        public function getPublicIdsAction(array $users)
        {
        }
    }
}
namespace Bitrix\Pull {
    class Error
    {
        public $method = '';
        public $code = '';
        public $msg = '';
        public $params = array();
        public $error = false;
        public function __construct($method, $code, $msg, $params = array())
        {
        }
    }
    class Channel
    {
        const TYPE_PRIVATE = 'private';
        const USER_SELF = null;
        public static function getPublicId($params)
        {
        }
        public static function getPublicIds($params = [])
        {
        }
    }
}
namespace Bitrix\Pull\Model {
    class WatchTable extends \Bitrix\Main\ORM\Data\DataManager
    {
        public static function getTableName() : string
        {
        }
        public static function getMap() : array
        {
        }
        public static function getUserIdsByTag(string $tag) : array
        {
        }
    }
    /**
     * Class ChannelTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> USER_ID int mandatory
     * <li> CHANNEL_TYPE string(50) optional
     * <li> CHANNEL_ID string(50) mandatory
     * <li> LAST_ID int optional
     * <li> DATE_CREATE datetime mandatory
     * <li> USER reference to {@link \Bitrix\User\UserTable}
     * </ul>
     *
     * @package Bitrix\Pull
     **/
    class ChannelTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for CHANNEL_TYPE field.
         *
         * @return array
         */
        public static function validateChannelType()
        {
        }
        /**
         * Returns validators for CHANNEL_ID field.
         *
         * @return array
         */
        public static function validateChannelId()
        {
        }
        /**
         * Return current date for DATE_CREATE field.
         *
         * @return array
         */
        public static function getCurrentDate()
        {
        }
    }
    /**
     * Class PushTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> USER_ID int mandatory
     * <li> DEVICE_TYPE string(50) optional
     * <li> APP_ID string(50) optional
     * <li> UNIQUE_HASH string(50) optional
     * <li> DEVICE_ID string(255) optional
     * <li> DEVICE_NAME string(50) optional
     * <li> DEVICE_TOKEN string(255) mandatory
     * <li> DATE_CREATE datetime mandatory
     * <li> DATE_AUTH datetime optional
     * <li> USER reference to {@link \Bitrix\User\UserTable}
     * </ul>
     *
     * @package Bitrix\Pull
     **/
    class PushTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for DEVICE_TYPE field.
         *
         * @return array
         */
        public static function validateDeviceType()
        {
        }
        /**
         * Returns validators for APP_ID field.
         *
         * @return array
         */
        public static function validateAppId()
        {
        }
        /**
         * Returns validators for UNIQUE_HASH field.
         *
         * @return array
         */
        public static function validateUniqueHash()
        {
        }
        /**
         * Checks the data fields before saving to DB. Result stores in the $result object
         *
         * @param Result $result
         * @param mixed $primary
         * @param array $data
         * @throws Main\ArgumentException
         */
        public static function checkFields(\Bitrix\Main\Entity\Result $result, $primary, array $data)
        {
        }
        public static function onBeforeAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onBeforeUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Returns validators for DEVICE_ID field.
         *
         * @return array
         */
        public static function validateDeviceId()
        {
        }
        /**
         * Returns validators for DEVICE_NAME field.
         *
         * @return array
         */
        public static function validateDeviceName()
        {
        }
        /**
         * Returns validators for DEVICE_TOKEN field.
         *
         * @return array
         */
        public static function validateDeviceToken()
        {
        }
    }
}
namespace Bitrix\Pull {
    class Push
    {
        static $types = null;
        static $config = array();
        public static function add($users, $parameters)
        {
        }
        public static function send()
        {
        }
        public static function getTypes()
        {
        }
        public static function getConfig($userId = null)
        {
        }
        public static function setConfig($config, $userId = null)
        {
        }
        public static function setConfigTypeStatus($moduleId, $typeId, $status, $userId = null)
        {
        }
        public static function getConfigTypeStatus($moduleId, $typeId, $userId = null)
        {
        }
        public static function getStatus($userId = null)
        {
        }
        public static function setStatus($status, $userId = null)
        {
        }
    }
    class MobileCounter
    {
        const MOBILE_APP = 'Bitrix24';
        public static function getTypes()
        {
        }
        public static function get($userId = null)
        {
        }
        public static function getConfig($userId = null)
        {
        }
        public static function setConfigType($type, $status, $userId = null)
        {
        }
        public static function setConfig($config, $userId = null)
        {
        }
        public static function send($userId = null, $appId = self::MOBILE_APP)
        {
        }
        public static function onSonetLogCounterClear($counterType = '', $timestamp = 0)
        {
        }
    }
    class Log
    {
        public static function isEnabled()
        {
        }
        public static function write($data, $title = '')
        {
        }
    }
    class Common
    {
        public static function jsonEncode($params)
        {
        }
        /**
         * Checks if input array contains a string with invalid unicode symbol(s). If array contains invalid symbols, returns
         * path to the key with invalid string. If array is valid, returns FALSE.
         *
         * @param array $input Input array to validate.
         * @param string $currentPath Current validation path (for recursion).
         * @return string|false
         */
        public static function findInvalidUnicodeSymbols(array $input, $currentPath = "")
        {
        }
    }
    class Rest extends \IRestService
    {
        public static function onRestServiceBuildDescription()
        {
        }
        public static function channelPublicGet($params, $n, \CRestServer $server)
        {
        }
        public static function channelPublicList($params, $n, \CRestServer $server)
        {
        }
        public static function applicationConfigGet($params, $n, \CRestServer $server)
        {
        }
        public static function applicationEventAdd($params, $n, \CRestServer $server)
        {
        }
        public static function applicationPushAdd($params, $n, \CRestServer $server)
        {
        }
        public static function configGet($params, $n, \CRestServer $server)
        {
        }
        public static function watchExtend($params, $n, \CRestServer $server)
        {
        }
        public static function counterTypesGet($params, $n, \CRestServer $server)
        {
        }
        public static function counterGet($params, $n, \CRestServer $server)
        {
        }
        public static function counterConfigGet($params, $n, \CRestServer $server)
        {
        }
        public static function counterConfigSet($params, $n, \CRestServer $server)
        {
        }
        public static function pushTypesGet($params, $n, \CRestServer $server)
        {
        }
        public static function pushConfigGet($params, $n, \CRestServer $server)
        {
        }
        public static function pushConfigSet($params, $n, \CRestServer $server)
        {
        }
        public static function pushStatusGet($params, $n, \CRestServer $server)
        {
        }
        public static function pushStatusSet($params, $n, \CRestServer $server)
        {
        }
        public static function pushSmartfilterStatusGet($params, $n, \CRestServer $server)
        {
        }
        public static function pushSmartfilterStatusSet($params, $n, \CRestServer $server)
        {
        }
        public static function notImplemented($params, $n, \CRestServer $server)
        {
        }
        private static function isAdmin()
        {
        }
    }
}
namespace Protobuf {
    /**
     * Base interface implemented by Protocol Message objects
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    interface Message
    {
        /**
         * Creates message from the given stream.
         *
         * @param \Protobuf\Stream|resource|string $stream
         * @param \Protobuf\Configuration          $configuration
         *
         * @return \Protobuf\Message
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null);
        /**
         * Serializes the message and returns a stream containing its bytes.
         *
         * @param \Protobuf\Configuration $configuration
         *
         * @return \Protobuf\Stream
         */
        public function toStream(\Protobuf\Configuration $configuration = null);
        /**
         * Compute the number of bytes that would be needed to encode the message
         *
         * @param \Protobuf\ComputeSizeContext $context
         *
         * @return integer
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context);
        /**
         * Serializes the message and returns a stream containing its bytes.
         *
         * @param \Protobuf\ReadContext $context
         */
        public function readFrom(\Protobuf\ReadContext $context);
        /**
         * Encodes and writes the message
         *
         * @param \Protobuf\ReadContext $context
         *
         * @return \Protobuf\Stream
         */
        public function writeTo(\Protobuf\WriteContext $context);
        /**
         * Merge $context into the message being built.
         *
         * @param \Protobuf\Message $message
         */
        public function merge(\Protobuf\Message $message);
        /**
         * Obtain the list of unknown fields in this message.
         *
         * @return \Protobuf\UnknownFieldSet
         */
        public function unknownFieldSet();
        /**
         * Obtain the map of extensions in this message.
         *
         * @return \Protobuf\Extension\ExtensionFieldMap
         */
        public function extensions();
        /**
         * Reset all fields back to the initial values.
         */
        public function clear();
    }
    /**
     * Abstract message class
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    abstract class AbstractMessage implements \Protobuf\Message
    {
        /**
         * Message constructor
         *
         * @param \Protobuf\Stream|resource|string $stream
         * @param \Protobuf\Configuration          $configuration
         */
        public function __construct($stream = null, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function __toString()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function __set_state(array $values)
        {
        }
    }
}
namespace Bitrix\Pull\Protobuf {
    /**
     * Generated by Protobuf protoc plugin.
     *
     * File descriptor : request.proto
     */
    /**
     * Protobuf message : ChannelStatsRequest
     */
    class ChannelStatsRequest extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * channels repeated message = 1
         *
         * @var \Protobuf\Collection<\Bitrix\Pull\Protobuf\ChannelId>
         */
        protected $channels = null;
        /**
         * Check if 'channels' has a value
         *
         * @return bool
         */
        public function hasChannelsList()
        {
        }
        /**
         * Get 'channels' value
         *
         * @return \Protobuf\Collection<\Bitrix\Pull\Protobuf\ChannelId>
         */
        public function getChannelsList()
        {
        }
        /**
         * Set 'channels' value
         *
         * @param \Protobuf\Collection<\Bitrix\Pull\Protobuf\ChannelId> $value
         */
        public function setChannelsList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'channels'
         *
         * @param \Bitrix\Pull\Protobuf\ChannelId $value
         */
        public function addChannels(\Bitrix\Pull\Protobuf\ChannelId $value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Generated by Protobuf protoc plugin.
     *
     * File descriptor : response.proto
     */
    /**
     * Protobuf message : ResponseBatch
     */
    class ResponseBatch extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * responses repeated message = 1
         *
         * @var \Protobuf\Collection<\Bitrix\Pull\Protobuf\Response>
         */
        protected $responses = null;
        /**
         * Check if 'responses' has a value
         *
         * @return bool
         */
        public function hasResponsesList()
        {
        }
        /**
         * Get 'responses' value
         *
         * @return \Protobuf\Collection<\Bitrix\Pull\Protobuf\Response>
         */
        public function getResponsesList()
        {
        }
        /**
         * Set 'responses' value
         *
         * @param \Protobuf\Collection<\Bitrix\Pull\Protobuf\Response> $value
         */
        public function setResponsesList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'responses'
         *
         * @param \Bitrix\Pull\Protobuf\Response $value
         */
        public function addResponses(\Bitrix\Pull\Protobuf\Response $value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Generated by Protobuf protoc plugin.
     *
     * File descriptor : response.proto
     */
    /**
     * Protobuf message : Response
     */
    class Response extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * outgoingMessages optional message = 1
         *
         * @var \Bitrix\Pull\Protobuf\OutgoingMessagesResponse
         */
        protected $outgoingMessages = null;
        /**
         * channelStats optional message = 2
         *
         * @var \Bitrix\Pull\Protobuf\ChannelStatsResponse
         */
        protected $channelStats = null;
        /**
         * serverStats optional message = 3
         *
         * @var \Bitrix\Pull\Protobuf\JsonResponse
         */
        protected $serverStats = null;
        /**
         * Check if 'outgoingMessages' has a value
         *
         * @return bool
         */
        public function hasOutgoingMessages()
        {
        }
        /**
         * Get 'outgoingMessages' value
         *
         * @return \Bitrix\Pull\Protobuf\OutgoingMessagesResponse
         */
        public function getOutgoingMessages()
        {
        }
        /**
         * Set 'outgoingMessages' value
         *
         * @param \Bitrix\Pull\Protobuf\OutgoingMessagesResponse $value
         */
        public function setOutgoingMessages(\Bitrix\Pull\Protobuf\OutgoingMessagesResponse $value = null)
        {
        }
        /**
         * Check if 'channelStats' has a value
         *
         * @return bool
         */
        public function hasChannelStats()
        {
        }
        /**
         * Get 'channelStats' value
         *
         * @return \Bitrix\Pull\Protobuf\ChannelStatsResponse
         */
        public function getChannelStats()
        {
        }
        /**
         * Set 'channelStats' value
         *
         * @param \Bitrix\Pull\Protobuf\ChannelStatsResponse $value
         */
        public function setChannelStats(\Bitrix\Pull\Protobuf\ChannelStatsResponse $value = null)
        {
        }
        /**
         * Check if 'serverStats' has a value
         *
         * @return bool
         */
        public function hasServerStats()
        {
        }
        /**
         * Get 'serverStats' value
         *
         * @return \Bitrix\Pull\Protobuf\JsonResponse
         */
        public function getServerStats()
        {
        }
        /**
         * Set 'serverStats' value
         *
         * @param \Bitrix\Pull\Protobuf\JsonResponse $value
         */
        public function setServerStats(\Bitrix\Pull\Protobuf\JsonResponse $value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
}
namespace Protobuf {
    /**
     * Base Enum
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    abstract class Enum
    {
        /**
         * Enum value
         *
         * @var integer
         */
        protected $value;
        /**
         * Enum name
         *
         * @var string
         */
        protected $name;
        /**
         * @param string  $name
         * @param integer $value
         */
        public function __construct($name, $value)
        {
        }
        /**
         * @return int
         */
        public function value()
        {
        }
        /**
         * @return string
         */
        public function name()
        {
        }
        /**
         * @return string
         */
        public function __toString()
        {
        }
    }
}
namespace Bitrix\Pull\Protobuf {
    /**
     * Generated by Protobuf protoc plugin.
     *
     * File descriptor : sender.proto
     */
    /**
     * Protobuf enum : SenderType
     */
    class SenderType extends \Protobuf\Enum
    {
        /**
         * UNKNOWN = 0
         */
        const UNKNOWN_VALUE = 0;
        /**
         * CLIENT = 1
         */
        const CLIENT_VALUE = 1;
        /**
         * BACKEND = 2
         */
        const BACKEND_VALUE = 2;
        /**
         * @var \Bitrix\Pull\Protobuf\SenderType
         */
        protected static $UNKNOWN = null;
        /**
         * @var \Bitrix\Pull\Protobuf\SenderType
         */
        protected static $CLIENT = null;
        /**
         * @var \Bitrix\Pull\Protobuf\SenderType
         */
        protected static $BACKEND = null;
        /**
         * @return \Bitrix\Pull\Protobuf\SenderType
         */
        public static function UNKNOWN()
        {
        }
        /**
         * @return \Bitrix\Pull\Protobuf\SenderType
         */
        public static function CLIENT()
        {
        }
        /**
         * @return \Bitrix\Pull\Protobuf\SenderType
         */
        public static function BACKEND()
        {
        }
        /**
         * @param int $value
         * @return \Bitrix\Pull\Protobuf\SenderType
         */
        public static function valueOf($value)
        {
        }
    }
    /**
     * Generated by Protobuf protoc plugin.
     *
     * File descriptor : receiver.proto
     */
    /**
     * Protobuf message : Receiver
     */
    class Receiver extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * id optional bytes = 1
         *
         * @var \Protobuf\Stream
         */
        protected $id = null;
        /**
         * isPrivate optional bool = 2
         *
         * @var bool
         */
        protected $isPrivate = null;
        /**
         * signature optional bytes = 3
         *
         * @var \Protobuf\Stream
         */
        protected $signature = null;
        /**
         * Check if 'id' has a value
         *
         * @return bool
         */
        public function hasId()
        {
        }
        /**
         * Get 'id' value
         *
         * @return \Protobuf\Stream
         */
        public function getId()
        {
        }
        /**
         * Set 'id' value
         *
         * @param \Protobuf\Stream $value
         */
        public function setId($value = null)
        {
        }
        /**
         * Check if 'isPrivate' has a value
         *
         * @return bool
         */
        public function hasIsPrivate()
        {
        }
        /**
         * Get 'isPrivate' value
         *
         * @return bool
         */
        public function getIsPrivate()
        {
        }
        /**
         * Set 'isPrivate' value
         *
         * @param bool $value
         */
        public function setIsPrivate($value = null)
        {
        }
        /**
         * Check if 'signature' has a value
         *
         * @return bool
         */
        public function hasSignature()
        {
        }
        /**
         * Get 'signature' value
         *
         * @return \Protobuf\Stream
         */
        public function getSignature()
        {
        }
        /**
         * Set 'signature' value
         *
         * @param \Protobuf\Stream $value
         */
        public function setSignature($value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Generated by Protobuf protoc plugin.
     *
     * File descriptor : request.proto
     */
    /**
     * Protobuf message : ServerStatsRequest
     */
    class ServerStatsRequest extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Generated by Protobuf protoc plugin.
     *
     * File descriptor : response.proto
     */
    /**
     * Protobuf message : JsonResponse
     */
    class JsonResponse extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * json optional string = 1
         *
         * @var string
         */
        protected $json = null;
        /**
         * Check if 'json' has a value
         *
         * @return bool
         */
        public function hasJson()
        {
        }
        /**
         * Get 'json' value
         *
         * @return string
         */
        public function getJson()
        {
        }
        /**
         * Set 'json' value
         *
         * @param string $value
         */
        public function setJson($value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Generated by Protobuf protoc plugin.
     *
     * File descriptor : request.proto
     */
    /**
     * Protobuf message : Request
     */
    class Request extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * incomingMessages optional message = 1
         *
         * @var \Bitrix\Pull\Protobuf\IncomingMessagesRequest
         */
        protected $incomingMessages = null;
        /**
         * channelStats optional message = 2
         *
         * @var \Bitrix\Pull\Protobuf\ChannelStatsRequest
         */
        protected $channelStats = null;
        /**
         * serverStats optional message = 3
         *
         * @var \Bitrix\Pull\Protobuf\ServerStatsRequest
         */
        protected $serverStats = null;
        /**
         * Check if 'incomingMessages' has a value
         *
         * @return bool
         */
        public function hasIncomingMessages()
        {
        }
        /**
         * Get 'incomingMessages' value
         *
         * @return \Bitrix\Pull\Protobuf\IncomingMessagesRequest
         */
        public function getIncomingMessages()
        {
        }
        /**
         * Set 'incomingMessages' value
         *
         * @param \Bitrix\Pull\Protobuf\IncomingMessagesRequest $value
         */
        public function setIncomingMessages(\Bitrix\Pull\Protobuf\IncomingMessagesRequest $value = null)
        {
        }
        /**
         * Check if 'channelStats' has a value
         *
         * @return bool
         */
        public function hasChannelStats()
        {
        }
        /**
         * Get 'channelStats' value
         *
         * @return \Bitrix\Pull\Protobuf\ChannelStatsRequest
         */
        public function getChannelStats()
        {
        }
        /**
         * Set 'channelStats' value
         *
         * @param \Bitrix\Pull\Protobuf\ChannelStatsRequest $value
         */
        public function setChannelStats(\Bitrix\Pull\Protobuf\ChannelStatsRequest $value = null)
        {
        }
        /**
         * Check if 'serverStats' has a value
         *
         * @return bool
         */
        public function hasServerStats()
        {
        }
        /**
         * Get 'serverStats' value
         *
         * @return \Bitrix\Pull\Protobuf\ServerStatsRequest
         */
        public function getServerStats()
        {
        }
        /**
         * Set 'serverStats' value
         *
         * @param \Bitrix\Pull\Protobuf\ServerStatsRequest $value
         */
        public function setServerStats(\Bitrix\Pull\Protobuf\ServerStatsRequest $value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Generated by Protobuf protoc plugin.
     *
     * File descriptor : response.proto
     */
    /**
     * Protobuf message : OutgoingMessage
     */
    class OutgoingMessage extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * id optional bytes = 1
         *
         * @var \Protobuf\Stream
         */
        protected $id = null;
        /**
         * body optional string = 2
         *
         * @var string
         */
        protected $body = null;
        /**
         * expiry optional uint32 = 3
         *
         * @var int
         */
        protected $expiry = null;
        /**
         * created optional fixed32 = 4
         *
         * @var int
         */
        protected $created = null;
        /**
         * sender optional message = 5
         *
         * @var \Bitrix\Pull\Protobuf\Sender
         */
        protected $sender = null;
        /**
         * Check if 'id' has a value
         *
         * @return bool
         */
        public function hasId()
        {
        }
        /**
         * Get 'id' value
         *
         * @return \Protobuf\Stream
         */
        public function getId()
        {
        }
        /**
         * Set 'id' value
         *
         * @param \Protobuf\Stream $value
         */
        public function setId($value = null)
        {
        }
        /**
         * Check if 'body' has a value
         *
         * @return bool
         */
        public function hasBody()
        {
        }
        /**
         * Get 'body' value
         *
         * @return string
         */
        public function getBody()
        {
        }
        /**
         * Set 'body' value
         *
         * @param string $value
         */
        public function setBody($value = null)
        {
        }
        /**
         * Check if 'expiry' has a value
         *
         * @return bool
         */
        public function hasExpiry()
        {
        }
        /**
         * Get 'expiry' value
         *
         * @return int
         */
        public function getExpiry()
        {
        }
        /**
         * Set 'expiry' value
         *
         * @param int $value
         */
        public function setExpiry($value = null)
        {
        }
        /**
         * Check if 'created' has a value
         *
         * @return bool
         */
        public function hasCreated()
        {
        }
        /**
         * Get 'created' value
         *
         * @return int
         */
        public function getCreated()
        {
        }
        /**
         * Set 'created' value
         *
         * @param int $value
         */
        public function setCreated($value = null)
        {
        }
        /**
         * Check if 'sender' has a value
         *
         * @return bool
         */
        public function hasSender()
        {
        }
        /**
         * Get 'sender' value
         *
         * @return \Bitrix\Pull\Protobuf\Sender
         */
        public function getSender()
        {
        }
        /**
         * Set 'sender' value
         *
         * @param \Bitrix\Pull\Protobuf\Sender $value
         */
        public function setSender(\Bitrix\Pull\Protobuf\Sender $value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Generated by Protobuf protoc plugin.
     *
     * File descriptor : request.proto
     */
    /**
     * Protobuf message : ChannelId
     */
    class ChannelId extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * id optional bytes = 1
         *
         * @var \Protobuf\Stream
         */
        protected $id = null;
        /**
         * isPrivate optional bool = 2
         *
         * @var bool
         */
        protected $isPrivate = null;
        /**
         * signature optional bytes = 3
         *
         * @var \Protobuf\Stream
         */
        protected $signature = null;
        /**
         * Check if 'id' has a value
         *
         * @return bool
         */
        public function hasId()
        {
        }
        /**
         * Get 'id' value
         *
         * @return \Protobuf\Stream
         */
        public function getId()
        {
        }
        /**
         * Set 'id' value
         *
         * @param \Protobuf\Stream $value
         */
        public function setId($value = null)
        {
        }
        /**
         * Check if 'isPrivate' has a value
         *
         * @return bool
         */
        public function hasIsPrivate()
        {
        }
        /**
         * Get 'isPrivate' value
         *
         * @return bool
         */
        public function getIsPrivate()
        {
        }
        /**
         * Set 'isPrivate' value
         *
         * @param bool $value
         */
        public function setIsPrivate($value = null)
        {
        }
        /**
         * Check if 'signature' has a value
         *
         * @return bool
         */
        public function hasSignature()
        {
        }
        /**
         * Get 'signature' value
         *
         * @return \Protobuf\Stream
         */
        public function getSignature()
        {
        }
        /**
         * Set 'signature' value
         *
         * @param \Protobuf\Stream $value
         */
        public function setSignature($value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Generated by Protobuf protoc plugin.
     *
     * File descriptor : response.proto
     */
    /**
     * Protobuf message : ChannelStats
     */
    class ChannelStats extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * id optional bytes = 1
         *
         * @var \Protobuf\Stream
         */
        protected $id = null;
        /**
         * isPrivate optional bool = 2
         *
         * @var bool
         */
        protected $isPrivate = null;
        /**
         * isOnline optional bool = 3
         *
         * @var bool
         */
        protected $isOnline = null;
        /**
         * Check if 'id' has a value
         *
         * @return bool
         */
        public function hasId()
        {
        }
        /**
         * Get 'id' value
         *
         * @return \Protobuf\Stream
         */
        public function getId()
        {
        }
        /**
         * Set 'id' value
         *
         * @param \Protobuf\Stream $value
         */
        public function setId($value = null)
        {
        }
        /**
         * Check if 'isPrivate' has a value
         *
         * @return bool
         */
        public function hasIsPrivate()
        {
        }
        /**
         * Get 'isPrivate' value
         *
         * @return bool
         */
        public function getIsPrivate()
        {
        }
        /**
         * Set 'isPrivate' value
         *
         * @param bool $value
         */
        public function setIsPrivate($value = null)
        {
        }
        /**
         * Check if 'isOnline' has a value
         *
         * @return bool
         */
        public function hasIsOnline()
        {
        }
        /**
         * Get 'isOnline' value
         *
         * @return bool
         */
        public function getIsOnline()
        {
        }
        /**
         * Set 'isOnline' value
         *
         * @param bool $value
         */
        public function setIsOnline($value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Generated by Protobuf protoc plugin.
     *
     * File descriptor : response.proto
     */
    /**
     * Protobuf message : ChannelStatsResponse
     */
    class ChannelStatsResponse extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * channels repeated message = 1
         *
         * @var \Protobuf\Collection<\Bitrix\Pull\Protobuf\ChannelStats>
         */
        protected $channels = null;
        /**
         * Check if 'channels' has a value
         *
         * @return bool
         */
        public function hasChannelsList()
        {
        }
        /**
         * Get 'channels' value
         *
         * @return \Protobuf\Collection<\Bitrix\Pull\Protobuf\ChannelStats>
         */
        public function getChannelsList()
        {
        }
        /**
         * Set 'channels' value
         *
         * @param \Protobuf\Collection<\Bitrix\Pull\Protobuf\ChannelStats> $value
         */
        public function setChannelsList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'channels'
         *
         * @param \Bitrix\Pull\Protobuf\ChannelStats $value
         */
        public function addChannels(\Bitrix\Pull\Protobuf\ChannelStats $value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Generated by Protobuf protoc plugin.
     *
     * File descriptor : request.proto
     */
    /**
     * Protobuf message : RequestBatch
     */
    class RequestBatch extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * requests repeated message = 1
         *
         * @var \Protobuf\Collection<\Bitrix\Pull\Protobuf\Request>
         */
        protected $requests = null;
        /**
         * Check if 'requests' has a value
         *
         * @return bool
         */
        public function hasRequestsList()
        {
        }
        /**
         * Get 'requests' value
         *
         * @return \Protobuf\Collection<\Bitrix\Pull\Protobuf\Request>
         */
        public function getRequestsList()
        {
        }
        /**
         * Set 'requests' value
         *
         * @param \Protobuf\Collection<\Bitrix\Pull\Protobuf\Request> $value
         */
        public function setRequestsList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'requests'
         *
         * @param \Bitrix\Pull\Protobuf\Request $value
         */
        public function addRequests(\Bitrix\Pull\Protobuf\Request $value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Generated by Protobuf protoc plugin.
     *
     * File descriptor : request.proto
     */
    /**
     * Protobuf message : IncomingMessage
     */
    class IncomingMessage extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * receivers repeated message = 1
         *
         * @var \Protobuf\Collection<\Bitrix\Pull\Protobuf\Receiver>
         */
        protected $receivers = null;
        /**
         * sender optional message = 2
         *
         * @var \Bitrix\Pull\Protobuf\Sender
         */
        protected $sender = null;
        /**
         * body optional string = 3
         *
         * @var string
         */
        protected $body = null;
        /**
         * expiry optional uint32 = 4
         *
         * @var int
         */
        protected $expiry = null;
        /**
         * type optional string = 5
         *
         * @var string
         */
        protected $type = null;
        /**
         * Check if 'receivers' has a value
         *
         * @return bool
         */
        public function hasReceiversList()
        {
        }
        /**
         * Get 'receivers' value
         *
         * @return \Protobuf\Collection<\Bitrix\Pull\Protobuf\Receiver>
         */
        public function getReceiversList()
        {
        }
        /**
         * Set 'receivers' value
         *
         * @param \Protobuf\Collection<\Bitrix\Pull\Protobuf\Receiver> $value
         */
        public function setReceiversList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'receivers'
         *
         * @param \Bitrix\Pull\Protobuf\Receiver $value
         */
        public function addReceivers(\Bitrix\Pull\Protobuf\Receiver $value)
        {
        }
        /**
         * Check if 'sender' has a value
         *
         * @return bool
         */
        public function hasSender()
        {
        }
        /**
         * Get 'sender' value
         *
         * @return \Bitrix\Pull\Protobuf\Sender
         */
        public function getSender()
        {
        }
        /**
         * Set 'sender' value
         *
         * @param \Bitrix\Pull\Protobuf\Sender $value
         */
        public function setSender(\Bitrix\Pull\Protobuf\Sender $value = null)
        {
        }
        /**
         * Check if 'body' has a value
         *
         * @return bool
         */
        public function hasBody()
        {
        }
        /**
         * Get 'body' value
         *
         * @return string
         */
        public function getBody()
        {
        }
        /**
         * Set 'body' value
         *
         * @param string $value
         */
        public function setBody($value = null)
        {
        }
        /**
         * Check if 'expiry' has a value
         *
         * @return bool
         */
        public function hasExpiry()
        {
        }
        /**
         * Get 'expiry' value
         *
         * @return int
         */
        public function getExpiry()
        {
        }
        /**
         * Set 'expiry' value
         *
         * @param int $value
         */
        public function setExpiry($value = null)
        {
        }
        /**
         * Check if 'type' has a value
         *
         * @return bool
         */
        public function hasType()
        {
        }
        /**
         * Get 'type' value
         *
         * @return string
         */
        public function getType()
        {
        }
        /**
         * Set 'type' value
         *
         * @param string $value
         */
        public function setType($value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Generated by Protobuf protoc plugin.
     *
     * File descriptor : sender.proto
     */
    /**
     * Protobuf message : Sender
     */
    class Sender extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * type optional enum = 1
         *
         * @var \Bitrix\Pull\Protobuf\SenderType
         */
        protected $type = null;
        /**
         * id optional bytes = 2
         *
         * @var \Protobuf\Stream
         */
        protected $id = null;
        /**
         * Check if 'type' has a value
         *
         * @return bool
         */
        public function hasType()
        {
        }
        /**
         * Get 'type' value
         *
         * @return \Bitrix\Pull\Protobuf\SenderType
         */
        public function getType()
        {
        }
        /**
         * Set 'type' value
         *
         * @param \Bitrix\Pull\Protobuf\SenderType $value
         */
        public function setType(\Bitrix\Pull\Protobuf\SenderType $value = null)
        {
        }
        /**
         * Check if 'id' has a value
         *
         * @return bool
         */
        public function hasId()
        {
        }
        /**
         * Get 'id' value
         *
         * @return \Protobuf\Stream
         */
        public function getId()
        {
        }
        /**
         * Set 'id' value
         *
         * @param \Protobuf\Stream $value
         */
        public function setId($value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Generated by Protobuf protoc plugin.
     *
     * File descriptor : request.proto
     */
    /**
     * Protobuf message : IncomingMessagesRequest
     */
    class IncomingMessagesRequest extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * messages repeated message = 1
         *
         * @var \Protobuf\Collection<\Bitrix\Pull\Protobuf\IncomingMessage>
         */
        protected $messages = null;
        /**
         * Check if 'messages' has a value
         *
         * @return bool
         */
        public function hasMessagesList()
        {
        }
        /**
         * Get 'messages' value
         *
         * @return \Protobuf\Collection<\Bitrix\Pull\Protobuf\IncomingMessage>
         */
        public function getMessagesList()
        {
        }
        /**
         * Set 'messages' value
         *
         * @param \Protobuf\Collection<\Bitrix\Pull\Protobuf\IncomingMessage> $value
         */
        public function setMessagesList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'messages'
         *
         * @param \Bitrix\Pull\Protobuf\IncomingMessage $value
         */
        public function addMessages(\Bitrix\Pull\Protobuf\IncomingMessage $value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Generated by Protobuf protoc plugin.
     *
     * File descriptor : response.proto
     */
    /**
     * Protobuf message : OutgoingMessagesResponse
     */
    class OutgoingMessagesResponse extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * messages repeated message = 1
         *
         * @var \Protobuf\Collection<\Bitrix\Pull\Protobuf\OutgoingMessage>
         */
        protected $messages = null;
        /**
         * Check if 'messages' has a value
         *
         * @return bool
         */
        public function hasMessagesList()
        {
        }
        /**
         * Get 'messages' value
         *
         * @return \Protobuf\Collection<\Bitrix\Pull\Protobuf\OutgoingMessage>
         */
        public function getMessagesList()
        {
        }
        /**
         * Set 'messages' value
         *
         * @param \Protobuf\Collection<\Bitrix\Pull\Protobuf\OutgoingMessage> $value
         */
        public function setMessagesList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'messages'
         *
         * @param \Bitrix\Pull\Protobuf\OutgoingMessage $value
         */
        public function addMessages(\Bitrix\Pull\Protobuf\OutgoingMessage $value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
}
namespace Bitrix\Pull\Rest {
    class GuestAuth
    {
        const AUTH_TYPE = 'pull_guest';
        const METHODS_WITHOUT_AUTH = ['server.time', 'pull.config.get'];
        const PULL_UID_PARAM = 'pull_guest_id';
        protected static $authQueryParams = array('pull_guest_id');
        public static function onRestCheckAuth(array $query, $scope, &$res)
        {
        }
        protected static function checkQueryMethod($whiteListMethods)
        {
        }
        protected static function getSuccessfulResult()
        {
        }
    }
}
namespace google\protobuf\DescriptorProto {
    /**
     * Protobuf message : google.protobuf.DescriptorProto.ReservedRange
     */
    class ReservedRange extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * start optional int32 = 1
         *
         * @var int
         */
        protected $start = null;
        /**
         * end optional int32 = 2
         *
         * @var int
         */
        protected $end = null;
        /**
         * Check if 'start' has a value
         *
         * @return bool
         */
        public function hasStart()
        {
        }
        /**
         * Get 'start' value
         *
         * @return int
         */
        public function getStart()
        {
        }
        /**
         * Set 'start' value
         *
         * @param int $value
         */
        public function setStart($value = null)
        {
        }
        /**
         * Check if 'end' has a value
         *
         * @return bool
         */
        public function hasEnd()
        {
        }
        /**
         * Get 'end' value
         *
         * @return int
         */
        public function getEnd()
        {
        }
        /**
         * Set 'end' value
         *
         * @param int $value
         */
        public function setEnd($value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Protobuf message : google.protobuf.DescriptorProto.ExtensionRange
     */
    class ExtensionRange extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * start optional int32 = 1
         *
         * @var int
         */
        protected $start = null;
        /**
         * end optional int32 = 2
         *
         * @var int
         */
        protected $end = null;
        /**
         * Check if 'start' has a value
         *
         * @return bool
         */
        public function hasStart()
        {
        }
        /**
         * Get 'start' value
         *
         * @return int
         */
        public function getStart()
        {
        }
        /**
         * Set 'start' value
         *
         * @param int $value
         */
        public function setStart($value = null)
        {
        }
        /**
         * Check if 'end' has a value
         *
         * @return bool
         */
        public function hasEnd()
        {
        }
        /**
         * Get 'end' value
         *
         * @return int
         */
        public function getEnd()
        {
        }
        /**
         * Set 'end' value
         *
         * @param int $value
         */
        public function setEnd($value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
}
namespace google\protobuf {
    /**
     * Protobuf message : google.protobuf.ServiceOptions
     */
    class ServiceOptions extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * deprecated optional bool = 33
         *
         * @var bool
         */
        protected $deprecated = null;
        /**
         * uninterpreted_option repeated message = 999
         *
         * @var \Protobuf\Collection<\google\protobuf\UninterpretedOption>
         */
        protected $uninterpreted_option = null;
        /**
         * {@inheritdoc}
         */
        public function __construct($stream = null, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * Check if 'deprecated' has a value
         *
         * @return bool
         */
        public function hasDeprecated()
        {
        }
        /**
         * Get 'deprecated' value
         *
         * @return bool
         */
        public function getDeprecated()
        {
        }
        /**
         * Set 'deprecated' value
         *
         * @param bool $value
         */
        public function setDeprecated($value = null)
        {
        }
        /**
         * Check if 'uninterpreted_option' has a value
         *
         * @return bool
         */
        public function hasUninterpretedOptionList()
        {
        }
        /**
         * Get 'uninterpreted_option' value
         *
         * @return \Protobuf\Collection<\google\protobuf\UninterpretedOption>
         */
        public function getUninterpretedOptionList()
        {
        }
        /**
         * Set 'uninterpreted_option' value
         *
         * @param \Protobuf\Collection<\google\protobuf\UninterpretedOption> $value
         */
        public function setUninterpretedOptionList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'uninterpreted_option'
         *
         * @param \google\protobuf\UninterpretedOption $value
         */
        public function addUninterpretedOption(\google\protobuf\UninterpretedOption $value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Protobuf message : google.protobuf.OneofDescriptorProto
     */
    class OneofDescriptorProto extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * name optional string = 1
         *
         * @var string
         */
        protected $name = null;
        /**
         * Check if 'name' has a value
         *
         * @return bool
         */
        public function hasName()
        {
        }
        /**
         * Get 'name' value
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Set 'name' value
         *
         * @param string $value
         */
        public function setName($value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
}
namespace google\protobuf\FileOptions {
    /**
     * Protobuf enum : google.protobuf.FileOptions.OptimizeMode
     */
    class OptimizeMode extends \Protobuf\Enum
    {
        /**
         * SPEED = 1
         */
        const SPEED_VALUE = 1;
        /**
         * CODE_SIZE = 2
         */
        const CODE_SIZE_VALUE = 2;
        /**
         * LITE_RUNTIME = 3
         */
        const LITE_RUNTIME_VALUE = 3;
        /**
         * @var \google\protobuf\FileOptions\OptimizeMode
         */
        protected static $SPEED = null;
        /**
         * @var \google\protobuf\FileOptions\OptimizeMode
         */
        protected static $CODE_SIZE = null;
        /**
         * @var \google\protobuf\FileOptions\OptimizeMode
         */
        protected static $LITE_RUNTIME = null;
        /**
         * @return \google\protobuf\FileOptions\OptimizeMode
         */
        public static function SPEED()
        {
        }
        /**
         * @return \google\protobuf\FileOptions\OptimizeMode
         */
        public static function CODE_SIZE()
        {
        }
        /**
         * @return \google\protobuf\FileOptions\OptimizeMode
         */
        public static function LITE_RUNTIME()
        {
        }
        /**
         * @param int $value
         * @return \google\protobuf\FileOptions\OptimizeMode
         */
        public static function valueOf($value)
        {
        }
    }
}
namespace google\protobuf\SourceCodeInfo {
    /**
     * Protobuf message : google.protobuf.SourceCodeInfo.Location
     */
    class Location extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * path repeated int32 = 1
         *
         * @var \Protobuf\Collection
         */
        protected $path = null;
        /**
         * span repeated int32 = 2
         *
         * @var \Protobuf\Collection
         */
        protected $span = null;
        /**
         * leading_comments optional string = 3
         *
         * @var string
         */
        protected $leading_comments = null;
        /**
         * trailing_comments optional string = 4
         *
         * @var string
         */
        protected $trailing_comments = null;
        /**
         * leading_detached_comments repeated string = 6
         *
         * @var \Protobuf\Collection
         */
        protected $leading_detached_comments = null;
        /**
         * Check if 'path' has a value
         *
         * @return bool
         */
        public function hasPathList()
        {
        }
        /**
         * Get 'path' value
         *
         * @return \Protobuf\Collection
         */
        public function getPathList()
        {
        }
        /**
         * Set 'path' value
         *
         * @param \Protobuf\Collection $value
         */
        public function setPathList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'path'
         *
         * @param int $value
         */
        public function addPath($value)
        {
        }
        /**
         * Check if 'span' has a value
         *
         * @return bool
         */
        public function hasSpanList()
        {
        }
        /**
         * Get 'span' value
         *
         * @return \Protobuf\Collection
         */
        public function getSpanList()
        {
        }
        /**
         * Set 'span' value
         *
         * @param \Protobuf\Collection $value
         */
        public function setSpanList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'span'
         *
         * @param int $value
         */
        public function addSpan($value)
        {
        }
        /**
         * Check if 'leading_comments' has a value
         *
         * @return bool
         */
        public function hasLeadingComments()
        {
        }
        /**
         * Get 'leading_comments' value
         *
         * @return string
         */
        public function getLeadingComments()
        {
        }
        /**
         * Set 'leading_comments' value
         *
         * @param string $value
         */
        public function setLeadingComments($value = null)
        {
        }
        /**
         * Check if 'trailing_comments' has a value
         *
         * @return bool
         */
        public function hasTrailingComments()
        {
        }
        /**
         * Get 'trailing_comments' value
         *
         * @return string
         */
        public function getTrailingComments()
        {
        }
        /**
         * Set 'trailing_comments' value
         *
         * @param string $value
         */
        public function setTrailingComments($value = null)
        {
        }
        /**
         * Check if 'leading_detached_comments' has a value
         *
         * @return bool
         */
        public function hasLeadingDetachedCommentsList()
        {
        }
        /**
         * Get 'leading_detached_comments' value
         *
         * @return \Protobuf\Collection
         */
        public function getLeadingDetachedCommentsList()
        {
        }
        /**
         * Set 'leading_detached_comments' value
         *
         * @param \Protobuf\Collection $value
         */
        public function setLeadingDetachedCommentsList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'leading_detached_comments'
         *
         * @param string $value
         */
        public function addLeadingDetachedComments($value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
}
namespace google\protobuf {
    /**
     * Protobuf message : google.protobuf.EnumDescriptorProto
     */
    class EnumDescriptorProto extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * name optional string = 1
         *
         * @var string
         */
        protected $name = null;
        /**
         * value repeated message = 2
         *
         * @var \Protobuf\Collection<\google\protobuf\EnumValueDescriptorProto>
         */
        protected $value = null;
        /**
         * options optional message = 3
         *
         * @var \google\protobuf\EnumOptions
         */
        protected $options = null;
        /**
         * Check if 'name' has a value
         *
         * @return bool
         */
        public function hasName()
        {
        }
        /**
         * Get 'name' value
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Set 'name' value
         *
         * @param string $value
         */
        public function setName($value = null)
        {
        }
        /**
         * Check if 'value' has a value
         *
         * @return bool
         */
        public function hasValueList()
        {
        }
        /**
         * Get 'value' value
         *
         * @return \Protobuf\Collection<\google\protobuf\EnumValueDescriptorProto>
         */
        public function getValueList()
        {
        }
        /**
         * Set 'value' value
         *
         * @param \Protobuf\Collection<\google\protobuf\EnumValueDescriptorProto> $value
         */
        public function setValueList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'value'
         *
         * @param \google\protobuf\EnumValueDescriptorProto $value
         */
        public function addValue(\google\protobuf\EnumValueDescriptorProto $value)
        {
        }
        /**
         * Check if 'options' has a value
         *
         * @return bool
         */
        public function hasOptions()
        {
        }
        /**
         * Get 'options' value
         *
         * @return \google\protobuf\EnumOptions
         */
        public function getOptions()
        {
        }
        /**
         * Set 'options' value
         *
         * @param \google\protobuf\EnumOptions $value
         */
        public function setOptions(\google\protobuf\EnumOptions $value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Protobuf message : google.protobuf.FieldDescriptorProto
     */
    class FieldDescriptorProto extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * name optional string = 1
         *
         * @var string
         */
        protected $name = null;
        /**
         * number optional int32 = 3
         *
         * @var int
         */
        protected $number = null;
        /**
         * label optional enum = 4
         *
         * @var \google\protobuf\FieldDescriptorProto\Label
         */
        protected $label = null;
        /**
         * type optional enum = 5
         *
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected $type = null;
        /**
         * type_name optional string = 6
         *
         * @var string
         */
        protected $type_name = null;
        /**
         * extendee optional string = 2
         *
         * @var string
         */
        protected $extendee = null;
        /**
         * default_value optional string = 7
         *
         * @var string
         */
        protected $default_value = null;
        /**
         * oneof_index optional int32 = 9
         *
         * @var int
         */
        protected $oneof_index = null;
        /**
         * json_name optional string = 10
         *
         * @var string
         */
        protected $json_name = null;
        /**
         * options optional message = 8
         *
         * @var \google\protobuf\FieldOptions
         */
        protected $options = null;
        /**
         * Check if 'name' has a value
         *
         * @return bool
         */
        public function hasName()
        {
        }
        /**
         * Get 'name' value
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Set 'name' value
         *
         * @param string $value
         */
        public function setName($value = null)
        {
        }
        /**
         * Check if 'number' has a value
         *
         * @return bool
         */
        public function hasNumber()
        {
        }
        /**
         * Get 'number' value
         *
         * @return int
         */
        public function getNumber()
        {
        }
        /**
         * Set 'number' value
         *
         * @param int $value
         */
        public function setNumber($value = null)
        {
        }
        /**
         * Check if 'label' has a value
         *
         * @return bool
         */
        public function hasLabel()
        {
        }
        /**
         * Get 'label' value
         *
         * @return \google\protobuf\FieldDescriptorProto\Label
         */
        public function getLabel()
        {
        }
        /**
         * Set 'label' value
         *
         * @param \google\protobuf\FieldDescriptorProto\Label $value
         */
        public function setLabel(\google\protobuf\FieldDescriptorProto\Label $value = null)
        {
        }
        /**
         * Check if 'type' has a value
         *
         * @return bool
         */
        public function hasType()
        {
        }
        /**
         * Get 'type' value
         *
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public function getType()
        {
        }
        /**
         * Set 'type' value
         *
         * @param \google\protobuf\FieldDescriptorProto\Type $value
         */
        public function setType(\google\protobuf\FieldDescriptorProto\Type $value = null)
        {
        }
        /**
         * Check if 'type_name' has a value
         *
         * @return bool
         */
        public function hasTypeName()
        {
        }
        /**
         * Get 'type_name' value
         *
         * @return string
         */
        public function getTypeName()
        {
        }
        /**
         * Set 'type_name' value
         *
         * @param string $value
         */
        public function setTypeName($value = null)
        {
        }
        /**
         * Check if 'extendee' has a value
         *
         * @return bool
         */
        public function hasExtendee()
        {
        }
        /**
         * Get 'extendee' value
         *
         * @return string
         */
        public function getExtendee()
        {
        }
        /**
         * Set 'extendee' value
         *
         * @param string $value
         */
        public function setExtendee($value = null)
        {
        }
        /**
         * Check if 'default_value' has a value
         *
         * @return bool
         */
        public function hasDefaultValue()
        {
        }
        /**
         * Get 'default_value' value
         *
         * @return string
         */
        public function getDefaultValue()
        {
        }
        /**
         * Set 'default_value' value
         *
         * @param string $value
         */
        public function setDefaultValue($value = null)
        {
        }
        /**
         * Check if 'oneof_index' has a value
         *
         * @return bool
         */
        public function hasOneofIndex()
        {
        }
        /**
         * Get 'oneof_index' value
         *
         * @return int
         */
        public function getOneofIndex()
        {
        }
        /**
         * Set 'oneof_index' value
         *
         * @param int $value
         */
        public function setOneofIndex($value = null)
        {
        }
        /**
         * Check if 'json_name' has a value
         *
         * @return bool
         */
        public function hasJsonName()
        {
        }
        /**
         * Get 'json_name' value
         *
         * @return string
         */
        public function getJsonName()
        {
        }
        /**
         * Set 'json_name' value
         *
         * @param string $value
         */
        public function setJsonName($value = null)
        {
        }
        /**
         * Check if 'options' has a value
         *
         * @return bool
         */
        public function hasOptions()
        {
        }
        /**
         * Get 'options' value
         *
         * @return \google\protobuf\FieldOptions
         */
        public function getOptions()
        {
        }
        /**
         * Set 'options' value
         *
         * @param \google\protobuf\FieldOptions $value
         */
        public function setOptions(\google\protobuf\FieldOptions $value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Protobuf message : google.protobuf.FileDescriptorProto
     */
    class FileDescriptorProto extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * name optional string = 1
         *
         * @var string
         */
        protected $name = null;
        /**
         * package optional string = 2
         *
         * @var string
         */
        protected $package = null;
        /**
         * dependency repeated string = 3
         *
         * @var \Protobuf\Collection
         */
        protected $dependency = null;
        /**
         * public_dependency repeated int32 = 10
         *
         * @var \Protobuf\Collection
         */
        protected $public_dependency = null;
        /**
         * weak_dependency repeated int32 = 11
         *
         * @var \Protobuf\Collection
         */
        protected $weak_dependency = null;
        /**
         * message_type repeated message = 4
         *
         * @var \Protobuf\Collection<\google\protobuf\DescriptorProto>
         */
        protected $message_type = null;
        /**
         * enum_type repeated message = 5
         *
         * @var \Protobuf\Collection<\google\protobuf\EnumDescriptorProto>
         */
        protected $enum_type = null;
        /**
         * service repeated message = 6
         *
         * @var \Protobuf\Collection<\google\protobuf\ServiceDescriptorProto>
         */
        protected $service = null;
        /**
         * extension repeated message = 7
         *
         * @var \Protobuf\Collection<\google\protobuf\FieldDescriptorProto>
         */
        protected $extension = null;
        /**
         * options optional message = 8
         *
         * @var \google\protobuf\FileOptions
         */
        protected $options = null;
        /**
         * source_code_info optional message = 9
         *
         * @var \google\protobuf\SourceCodeInfo
         */
        protected $source_code_info = null;
        /**
         * syntax optional string = 12
         *
         * @var string
         */
        protected $syntax = null;
        /**
         * Check if 'name' has a value
         *
         * @return bool
         */
        public function hasName()
        {
        }
        /**
         * Get 'name' value
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Set 'name' value
         *
         * @param string $value
         */
        public function setName($value = null)
        {
        }
        /**
         * Check if 'package' has a value
         *
         * @return bool
         */
        public function hasPackage()
        {
        }
        /**
         * Get 'package' value
         *
         * @return string
         */
        public function getPackage()
        {
        }
        /**
         * Set 'package' value
         *
         * @param string $value
         */
        public function setPackage($value = null)
        {
        }
        /**
         * Check if 'dependency' has a value
         *
         * @return bool
         */
        public function hasDependencyList()
        {
        }
        /**
         * Get 'dependency' value
         *
         * @return \Protobuf\Collection
         */
        public function getDependencyList()
        {
        }
        /**
         * Set 'dependency' value
         *
         * @param \Protobuf\Collection $value
         */
        public function setDependencyList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'dependency'
         *
         * @param string $value
         */
        public function addDependency($value)
        {
        }
        /**
         * Check if 'public_dependency' has a value
         *
         * @return bool
         */
        public function hasPublicDependencyList()
        {
        }
        /**
         * Get 'public_dependency' value
         *
         * @return \Protobuf\Collection
         */
        public function getPublicDependencyList()
        {
        }
        /**
         * Set 'public_dependency' value
         *
         * @param \Protobuf\Collection $value
         */
        public function setPublicDependencyList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'public_dependency'
         *
         * @param int $value
         */
        public function addPublicDependency($value)
        {
        }
        /**
         * Check if 'weak_dependency' has a value
         *
         * @return bool
         */
        public function hasWeakDependencyList()
        {
        }
        /**
         * Get 'weak_dependency' value
         *
         * @return \Protobuf\Collection
         */
        public function getWeakDependencyList()
        {
        }
        /**
         * Set 'weak_dependency' value
         *
         * @param \Protobuf\Collection $value
         */
        public function setWeakDependencyList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'weak_dependency'
         *
         * @param int $value
         */
        public function addWeakDependency($value)
        {
        }
        /**
         * Check if 'message_type' has a value
         *
         * @return bool
         */
        public function hasMessageTypeList()
        {
        }
        /**
         * Get 'message_type' value
         *
         * @return \Protobuf\Collection<\google\protobuf\DescriptorProto>
         */
        public function getMessageTypeList()
        {
        }
        /**
         * Set 'message_type' value
         *
         * @param \Protobuf\Collection<\google\protobuf\DescriptorProto> $value
         */
        public function setMessageTypeList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'message_type'
         *
         * @param \google\protobuf\DescriptorProto $value
         */
        public function addMessageType(\google\protobuf\DescriptorProto $value)
        {
        }
        /**
         * Check if 'enum_type' has a value
         *
         * @return bool
         */
        public function hasEnumTypeList()
        {
        }
        /**
         * Get 'enum_type' value
         *
         * @return \Protobuf\Collection<\google\protobuf\EnumDescriptorProto>
         */
        public function getEnumTypeList()
        {
        }
        /**
         * Set 'enum_type' value
         *
         * @param \Protobuf\Collection<\google\protobuf\EnumDescriptorProto> $value
         */
        public function setEnumTypeList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'enum_type'
         *
         * @param \google\protobuf\EnumDescriptorProto $value
         */
        public function addEnumType(\google\protobuf\EnumDescriptorProto $value)
        {
        }
        /**
         * Check if 'service' has a value
         *
         * @return bool
         */
        public function hasServiceList()
        {
        }
        /**
         * Get 'service' value
         *
         * @return \Protobuf\Collection<\google\protobuf\ServiceDescriptorProto>
         */
        public function getServiceList()
        {
        }
        /**
         * Set 'service' value
         *
         * @param \Protobuf\Collection<\google\protobuf\ServiceDescriptorProto> $value
         */
        public function setServiceList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'service'
         *
         * @param \google\protobuf\ServiceDescriptorProto $value
         */
        public function addService(\google\protobuf\ServiceDescriptorProto $value)
        {
        }
        /**
         * Check if 'extension' has a value
         *
         * @return bool
         */
        public function hasExtensionList()
        {
        }
        /**
         * Get 'extension' value
         *
         * @return \Protobuf\Collection<\google\protobuf\FieldDescriptorProto>
         */
        public function getExtensionList()
        {
        }
        /**
         * Set 'extension' value
         *
         * @param \Protobuf\Collection<\google\protobuf\FieldDescriptorProto> $value
         */
        public function setExtensionList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'extension'
         *
         * @param \google\protobuf\FieldDescriptorProto $value
         */
        public function addExtension(\google\protobuf\FieldDescriptorProto $value)
        {
        }
        /**
         * Check if 'options' has a value
         *
         * @return bool
         */
        public function hasOptions()
        {
        }
        /**
         * Get 'options' value
         *
         * @return \google\protobuf\FileOptions
         */
        public function getOptions()
        {
        }
        /**
         * Set 'options' value
         *
         * @param \google\protobuf\FileOptions $value
         */
        public function setOptions(\google\protobuf\FileOptions $value = null)
        {
        }
        /**
         * Check if 'source_code_info' has a value
         *
         * @return bool
         */
        public function hasSourceCodeInfo()
        {
        }
        /**
         * Get 'source_code_info' value
         *
         * @return \google\protobuf\SourceCodeInfo
         */
        public function getSourceCodeInfo()
        {
        }
        /**
         * Set 'source_code_info' value
         *
         * @param \google\protobuf\SourceCodeInfo $value
         */
        public function setSourceCodeInfo(\google\protobuf\SourceCodeInfo $value = null)
        {
        }
        /**
         * Check if 'syntax' has a value
         *
         * @return bool
         */
        public function hasSyntax()
        {
        }
        /**
         * Get 'syntax' value
         *
         * @return string
         */
        public function getSyntax()
        {
        }
        /**
         * Set 'syntax' value
         *
         * @param string $value
         */
        public function setSyntax($value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
}
namespace google\protobuf\FieldOptions {
    /**
     * Protobuf enum : google.protobuf.FieldOptions.CType
     */
    class CType extends \Protobuf\Enum
    {
        /**
         * STRING = 0
         */
        const STRING_VALUE = 0;
        /**
         * CORD = 1
         */
        const CORD_VALUE = 1;
        /**
         * STRING_PIECE = 2
         */
        const STRING_PIECE_VALUE = 2;
        /**
         * @var \google\protobuf\FieldOptions\CType
         */
        protected static $STRING = null;
        /**
         * @var \google\protobuf\FieldOptions\CType
         */
        protected static $CORD = null;
        /**
         * @var \google\protobuf\FieldOptions\CType
         */
        protected static $STRING_PIECE = null;
        /**
         * @return \google\protobuf\FieldOptions\CType
         */
        public static function STRING()
        {
        }
        /**
         * @return \google\protobuf\FieldOptions\CType
         */
        public static function CORD()
        {
        }
        /**
         * @return \google\protobuf\FieldOptions\CType
         */
        public static function STRING_PIECE()
        {
        }
        /**
         * @param int $value
         * @return \google\protobuf\FieldOptions\CType
         */
        public static function valueOf($value)
        {
        }
    }
    /**
     * Protobuf enum : google.protobuf.FieldOptions.JSType
     */
    class JSType extends \Protobuf\Enum
    {
        /**
         * JS_NORMAL = 0
         */
        const JS_NORMAL_VALUE = 0;
        /**
         * JS_STRING = 1
         */
        const JS_STRING_VALUE = 1;
        /**
         * JS_NUMBER = 2
         */
        const JS_NUMBER_VALUE = 2;
        /**
         * @var \google\protobuf\FieldOptions\JSType
         */
        protected static $JS_NORMAL = null;
        /**
         * @var \google\protobuf\FieldOptions\JSType
         */
        protected static $JS_STRING = null;
        /**
         * @var \google\protobuf\FieldOptions\JSType
         */
        protected static $JS_NUMBER = null;
        /**
         * @return \google\protobuf\FieldOptions\JSType
         */
        public static function JS_NORMAL()
        {
        }
        /**
         * @return \google\protobuf\FieldOptions\JSType
         */
        public static function JS_STRING()
        {
        }
        /**
         * @return \google\protobuf\FieldOptions\JSType
         */
        public static function JS_NUMBER()
        {
        }
        /**
         * @param int $value
         * @return \google\protobuf\FieldOptions\JSType
         */
        public static function valueOf($value)
        {
        }
    }
}
namespace google\protobuf {
    /**
     * Protobuf message : google.protobuf.EnumValueDescriptorProto
     */
    class EnumValueDescriptorProto extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * name optional string = 1
         *
         * @var string
         */
        protected $name = null;
        /**
         * number optional int32 = 2
         *
         * @var int
         */
        protected $number = null;
        /**
         * options optional message = 3
         *
         * @var \google\protobuf\EnumValueOptions
         */
        protected $options = null;
        /**
         * Check if 'name' has a value
         *
         * @return bool
         */
        public function hasName()
        {
        }
        /**
         * Get 'name' value
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Set 'name' value
         *
         * @param string $value
         */
        public function setName($value = null)
        {
        }
        /**
         * Check if 'number' has a value
         *
         * @return bool
         */
        public function hasNumber()
        {
        }
        /**
         * Get 'number' value
         *
         * @return int
         */
        public function getNumber()
        {
        }
        /**
         * Set 'number' value
         *
         * @param int $value
         */
        public function setNumber($value = null)
        {
        }
        /**
         * Check if 'options' has a value
         *
         * @return bool
         */
        public function hasOptions()
        {
        }
        /**
         * Get 'options' value
         *
         * @return \google\protobuf\EnumValueOptions
         */
        public function getOptions()
        {
        }
        /**
         * Set 'options' value
         *
         * @param \google\protobuf\EnumValueOptions $value
         */
        public function setOptions(\google\protobuf\EnumValueOptions $value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Protobuf message : google.protobuf.UninterpretedOption
     */
    class UninterpretedOption extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * name repeated message = 2
         *
         * @var \Protobuf\Collection<\google\protobuf\UninterpretedOption\NamePart>
         */
        protected $name = null;
        /**
         * identifier_value optional string = 3
         *
         * @var string
         */
        protected $identifier_value = null;
        /**
         * positive_int_value optional uint64 = 4
         *
         * @var int
         */
        protected $positive_int_value = null;
        /**
         * negative_int_value optional int64 = 5
         *
         * @var int
         */
        protected $negative_int_value = null;
        /**
         * double_value optional double = 6
         *
         * @var float
         */
        protected $double_value = null;
        /**
         * string_value optional bytes = 7
         *
         * @var \Protobuf\Stream
         */
        protected $string_value = null;
        /**
         * aggregate_value optional string = 8
         *
         * @var string
         */
        protected $aggregate_value = null;
        /**
         * Check if 'name' has a value
         *
         * @return bool
         */
        public function hasNameList()
        {
        }
        /**
         * Get 'name' value
         *
         * @return \Protobuf\Collection<\google\protobuf\UninterpretedOption\NamePart>
         */
        public function getNameList()
        {
        }
        /**
         * Set 'name' value
         *
         * @param \Protobuf\Collection<\google\protobuf\UninterpretedOption\NamePart> $value
         */
        public function setNameList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'name'
         *
         * @param \google\protobuf\UninterpretedOption\NamePart $value
         */
        public function addName(\google\protobuf\UninterpretedOption\NamePart $value)
        {
        }
        /**
         * Check if 'identifier_value' has a value
         *
         * @return bool
         */
        public function hasIdentifierValue()
        {
        }
        /**
         * Get 'identifier_value' value
         *
         * @return string
         */
        public function getIdentifierValue()
        {
        }
        /**
         * Set 'identifier_value' value
         *
         * @param string $value
         */
        public function setIdentifierValue($value = null)
        {
        }
        /**
         * Check if 'positive_int_value' has a value
         *
         * @return bool
         */
        public function hasPositiveIntValue()
        {
        }
        /**
         * Get 'positive_int_value' value
         *
         * @return int
         */
        public function getPositiveIntValue()
        {
        }
        /**
         * Set 'positive_int_value' value
         *
         * @param int $value
         */
        public function setPositiveIntValue($value = null)
        {
        }
        /**
         * Check if 'negative_int_value' has a value
         *
         * @return bool
         */
        public function hasNegativeIntValue()
        {
        }
        /**
         * Get 'negative_int_value' value
         *
         * @return int
         */
        public function getNegativeIntValue()
        {
        }
        /**
         * Set 'negative_int_value' value
         *
         * @param int $value
         */
        public function setNegativeIntValue($value = null)
        {
        }
        /**
         * Check if 'double_value' has a value
         *
         * @return bool
         */
        public function hasDoubleValue()
        {
        }
        /**
         * Get 'double_value' value
         *
         * @return float
         */
        public function getDoubleValue()
        {
        }
        /**
         * Set 'double_value' value
         *
         * @param float $value
         */
        public function setDoubleValue($value = null)
        {
        }
        /**
         * Check if 'string_value' has a value
         *
         * @return bool
         */
        public function hasStringValue()
        {
        }
        /**
         * Get 'string_value' value
         *
         * @return \Protobuf\Stream
         */
        public function getStringValue()
        {
        }
        /**
         * Set 'string_value' value
         *
         * @param \Protobuf\Stream $value
         */
        public function setStringValue($value = null)
        {
        }
        /**
         * Check if 'aggregate_value' has a value
         *
         * @return bool
         */
        public function hasAggregateValue()
        {
        }
        /**
         * Get 'aggregate_value' value
         *
         * @return string
         */
        public function getAggregateValue()
        {
        }
        /**
         * Set 'aggregate_value' value
         *
         * @param string $value
         */
        public function setAggregateValue($value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Protobuf message : google.protobuf.EnumValueOptions
     */
    class EnumValueOptions extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * deprecated optional bool = 1
         *
         * @var bool
         */
        protected $deprecated = null;
        /**
         * uninterpreted_option repeated message = 999
         *
         * @var \Protobuf\Collection<\google\protobuf\UninterpretedOption>
         */
        protected $uninterpreted_option = null;
        /**
         * {@inheritdoc}
         */
        public function __construct($stream = null, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * Check if 'deprecated' has a value
         *
         * @return bool
         */
        public function hasDeprecated()
        {
        }
        /**
         * Get 'deprecated' value
         *
         * @return bool
         */
        public function getDeprecated()
        {
        }
        /**
         * Set 'deprecated' value
         *
         * @param bool $value
         */
        public function setDeprecated($value = null)
        {
        }
        /**
         * Check if 'uninterpreted_option' has a value
         *
         * @return bool
         */
        public function hasUninterpretedOptionList()
        {
        }
        /**
         * Get 'uninterpreted_option' value
         *
         * @return \Protobuf\Collection<\google\protobuf\UninterpretedOption>
         */
        public function getUninterpretedOptionList()
        {
        }
        /**
         * Set 'uninterpreted_option' value
         *
         * @param \Protobuf\Collection<\google\protobuf\UninterpretedOption> $value
         */
        public function setUninterpretedOptionList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'uninterpreted_option'
         *
         * @param \google\protobuf\UninterpretedOption $value
         */
        public function addUninterpretedOption(\google\protobuf\UninterpretedOption $value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
}
namespace Protobuf {
    /**
     * Protobuf extension field
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    interface Extension
    {
    }
}
namespace google\protobuf\php {
    /**
     * Protobuf extension : php.Extension
     */
    class Extension implements \Protobuf\Extension
    {
        /**
         * Extension field : package optional string = 50002
         *
         * @var \Protobuf\Extension
         */
        protected static $package = null;
        /**
         * Extension field : generic_services optional bool = 50003
         *
         * @var \Protobuf\Extension
         */
        protected static $generic_services = null;
        /**
         * Register all extensions
         *
         * @param \Protobuf\Extension\ExtensionRegistry
         */
        public static function registerAllExtensions(\Protobuf\Extension\ExtensionRegistry $registry)
        {
        }
        /**
         * Extension field : package
         *
         * @return \Protobuf\Extension
         */
        public static function package()
        {
        }
        /**
         * Extension field : generic_services
         *
         * @return \Protobuf\Extension
         */
        public static function genericServices()
        {
        }
    }
}
namespace google\protobuf\FieldDescriptorProto {
    /**
     * Protobuf enum : google.protobuf.FieldDescriptorProto.Type
     */
    class Type extends \Protobuf\Enum
    {
        /**
         * TYPE_DOUBLE = 1
         */
        const TYPE_DOUBLE_VALUE = 1;
        /**
         * TYPE_FLOAT = 2
         */
        const TYPE_FLOAT_VALUE = 2;
        /**
         * TYPE_INT64 = 3
         */
        const TYPE_INT64_VALUE = 3;
        /**
         * TYPE_UINT64 = 4
         */
        const TYPE_UINT64_VALUE = 4;
        /**
         * TYPE_INT32 = 5
         */
        const TYPE_INT32_VALUE = 5;
        /**
         * TYPE_FIXED64 = 6
         */
        const TYPE_FIXED64_VALUE = 6;
        /**
         * TYPE_FIXED32 = 7
         */
        const TYPE_FIXED32_VALUE = 7;
        /**
         * TYPE_BOOL = 8
         */
        const TYPE_BOOL_VALUE = 8;
        /**
         * TYPE_STRING = 9
         */
        const TYPE_STRING_VALUE = 9;
        /**
         * TYPE_GROUP = 10
         */
        const TYPE_GROUP_VALUE = 10;
        /**
         * TYPE_MESSAGE = 11
         */
        const TYPE_MESSAGE_VALUE = 11;
        /**
         * TYPE_BYTES = 12
         */
        const TYPE_BYTES_VALUE = 12;
        /**
         * TYPE_UINT32 = 13
         */
        const TYPE_UINT32_VALUE = 13;
        /**
         * TYPE_ENUM = 14
         */
        const TYPE_ENUM_VALUE = 14;
        /**
         * TYPE_SFIXED32 = 15
         */
        const TYPE_SFIXED32_VALUE = 15;
        /**
         * TYPE_SFIXED64 = 16
         */
        const TYPE_SFIXED64_VALUE = 16;
        /**
         * TYPE_SINT32 = 17
         */
        const TYPE_SINT32_VALUE = 17;
        /**
         * TYPE_SINT64 = 18
         */
        const TYPE_SINT64_VALUE = 18;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_DOUBLE = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_FLOAT = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_INT64 = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_UINT64 = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_INT32 = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_FIXED64 = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_FIXED32 = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_BOOL = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_STRING = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_GROUP = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_MESSAGE = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_BYTES = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_UINT32 = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_ENUM = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_SFIXED32 = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_SFIXED64 = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_SINT32 = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Type
         */
        protected static $TYPE_SINT64 = null;
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_DOUBLE()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_FLOAT()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_INT64()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_UINT64()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_INT32()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_FIXED64()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_FIXED32()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_BOOL()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_STRING()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_GROUP()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_MESSAGE()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_BYTES()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_UINT32()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_ENUM()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_SFIXED32()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_SFIXED64()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_SINT32()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function TYPE_SINT64()
        {
        }
        /**
         * @param int $value
         * @return \google\protobuf\FieldDescriptorProto\Type
         */
        public static function valueOf($value)
        {
        }
    }
    /**
     * Protobuf enum : google.protobuf.FieldDescriptorProto.Label
     */
    class Label extends \Protobuf\Enum
    {
        /**
         * LABEL_OPTIONAL = 1
         */
        const LABEL_OPTIONAL_VALUE = 1;
        /**
         * LABEL_REQUIRED = 2
         */
        const LABEL_REQUIRED_VALUE = 2;
        /**
         * LABEL_REPEATED = 3
         */
        const LABEL_REPEATED_VALUE = 3;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Label
         */
        protected static $LABEL_OPTIONAL = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Label
         */
        protected static $LABEL_REQUIRED = null;
        /**
         * @var \google\protobuf\FieldDescriptorProto\Label
         */
        protected static $LABEL_REPEATED = null;
        /**
         * @return \google\protobuf\FieldDescriptorProto\Label
         */
        public static function LABEL_OPTIONAL()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Label
         */
        public static function LABEL_REQUIRED()
        {
        }
        /**
         * @return \google\protobuf\FieldDescriptorProto\Label
         */
        public static function LABEL_REPEATED()
        {
        }
        /**
         * @param int $value
         * @return \google\protobuf\FieldDescriptorProto\Label
         */
        public static function valueOf($value)
        {
        }
    }
}
namespace google\protobuf {
    /**
     * Protobuf message : google.protobuf.MessageOptions
     */
    class MessageOptions extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * message_set_wire_format optional bool = 1
         *
         * @var bool
         */
        protected $message_set_wire_format = null;
        /**
         * no_standard_descriptor_accessor optional bool = 2
         *
         * @var bool
         */
        protected $no_standard_descriptor_accessor = null;
        /**
         * deprecated optional bool = 3
         *
         * @var bool
         */
        protected $deprecated = null;
        /**
         * map_entry optional bool = 7
         *
         * @var bool
         */
        protected $map_entry = null;
        /**
         * uninterpreted_option repeated message = 999
         *
         * @var \Protobuf\Collection<\google\protobuf\UninterpretedOption>
         */
        protected $uninterpreted_option = null;
        /**
         * {@inheritdoc}
         */
        public function __construct($stream = null, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * Check if 'message_set_wire_format' has a value
         *
         * @return bool
         */
        public function hasMessageSetWireFormat()
        {
        }
        /**
         * Get 'message_set_wire_format' value
         *
         * @return bool
         */
        public function getMessageSetWireFormat()
        {
        }
        /**
         * Set 'message_set_wire_format' value
         *
         * @param bool $value
         */
        public function setMessageSetWireFormat($value = null)
        {
        }
        /**
         * Check if 'no_standard_descriptor_accessor' has a value
         *
         * @return bool
         */
        public function hasNoStandardDescriptorAccessor()
        {
        }
        /**
         * Get 'no_standard_descriptor_accessor' value
         *
         * @return bool
         */
        public function getNoStandardDescriptorAccessor()
        {
        }
        /**
         * Set 'no_standard_descriptor_accessor' value
         *
         * @param bool $value
         */
        public function setNoStandardDescriptorAccessor($value = null)
        {
        }
        /**
         * Check if 'deprecated' has a value
         *
         * @return bool
         */
        public function hasDeprecated()
        {
        }
        /**
         * Get 'deprecated' value
         *
         * @return bool
         */
        public function getDeprecated()
        {
        }
        /**
         * Set 'deprecated' value
         *
         * @param bool $value
         */
        public function setDeprecated($value = null)
        {
        }
        /**
         * Check if 'map_entry' has a value
         *
         * @return bool
         */
        public function hasMapEntry()
        {
        }
        /**
         * Get 'map_entry' value
         *
         * @return bool
         */
        public function getMapEntry()
        {
        }
        /**
         * Set 'map_entry' value
         *
         * @param bool $value
         */
        public function setMapEntry($value = null)
        {
        }
        /**
         * Check if 'uninterpreted_option' has a value
         *
         * @return bool
         */
        public function hasUninterpretedOptionList()
        {
        }
        /**
         * Get 'uninterpreted_option' value
         *
         * @return \Protobuf\Collection<\google\protobuf\UninterpretedOption>
         */
        public function getUninterpretedOptionList()
        {
        }
        /**
         * Set 'uninterpreted_option' value
         *
         * @param \Protobuf\Collection<\google\protobuf\UninterpretedOption> $value
         */
        public function setUninterpretedOptionList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'uninterpreted_option'
         *
         * @param \google\protobuf\UninterpretedOption $value
         */
        public function addUninterpretedOption(\google\protobuf\UninterpretedOption $value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Protobuf message : google.protobuf.ServiceDescriptorProto
     */
    class ServiceDescriptorProto extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * name optional string = 1
         *
         * @var string
         */
        protected $name = null;
        /**
         * method repeated message = 2
         *
         * @var \Protobuf\Collection<\google\protobuf\MethodDescriptorProto>
         */
        protected $method = null;
        /**
         * options optional message = 3
         *
         * @var \google\protobuf\ServiceOptions
         */
        protected $options = null;
        /**
         * Check if 'name' has a value
         *
         * @return bool
         */
        public function hasName()
        {
        }
        /**
         * Get 'name' value
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Set 'name' value
         *
         * @param string $value
         */
        public function setName($value = null)
        {
        }
        /**
         * Check if 'method' has a value
         *
         * @return bool
         */
        public function hasMethodList()
        {
        }
        /**
         * Get 'method' value
         *
         * @return \Protobuf\Collection<\google\protobuf\MethodDescriptorProto>
         */
        public function getMethodList()
        {
        }
        /**
         * Set 'method' value
         *
         * @param \Protobuf\Collection<\google\protobuf\MethodDescriptorProto> $value
         */
        public function setMethodList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'method'
         *
         * @param \google\protobuf\MethodDescriptorProto $value
         */
        public function addMethod(\google\protobuf\MethodDescriptorProto $value)
        {
        }
        /**
         * Check if 'options' has a value
         *
         * @return bool
         */
        public function hasOptions()
        {
        }
        /**
         * Get 'options' value
         *
         * @return \google\protobuf\ServiceOptions
         */
        public function getOptions()
        {
        }
        /**
         * Set 'options' value
         *
         * @param \google\protobuf\ServiceOptions $value
         */
        public function setOptions(\google\protobuf\ServiceOptions $value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Protobuf message : google.protobuf.FileOptions
     */
    class FileOptions extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * java_package optional string = 1
         *
         * @var string
         */
        protected $java_package = null;
        /**
         * java_outer_classname optional string = 8
         *
         * @var string
         */
        protected $java_outer_classname = null;
        /**
         * java_multiple_files optional bool = 10
         *
         * @var bool
         */
        protected $java_multiple_files = null;
        /**
         * java_generate_equals_and_hash optional bool = 20
         *
         * @var bool
         */
        protected $java_generate_equals_and_hash = null;
        /**
         * java_string_check_utf8 optional bool = 27
         *
         * @var bool
         */
        protected $java_string_check_utf8 = null;
        /**
         * optimize_for optional enum = 9
         *
         * @var \google\protobuf\FileOptions\OptimizeMode
         */
        protected $optimize_for = null;
        /**
         * go_package optional string = 11
         *
         * @var string
         */
        protected $go_package = null;
        /**
         * cc_generic_services optional bool = 16
         *
         * @var bool
         */
        protected $cc_generic_services = null;
        /**
         * java_generic_services optional bool = 17
         *
         * @var bool
         */
        protected $java_generic_services = null;
        /**
         * py_generic_services optional bool = 18
         *
         * @var bool
         */
        protected $py_generic_services = null;
        /**
         * deprecated optional bool = 23
         *
         * @var bool
         */
        protected $deprecated = null;
        /**
         * cc_enable_arenas optional bool = 31
         *
         * @var bool
         */
        protected $cc_enable_arenas = null;
        /**
         * objc_class_prefix optional string = 36
         *
         * @var string
         */
        protected $objc_class_prefix = null;
        /**
         * csharp_namespace optional string = 37
         *
         * @var string
         */
        protected $csharp_namespace = null;
        /**
         * javanano_use_deprecated_package optional bool = 38
         *
         * @var bool
         */
        protected $javanano_use_deprecated_package = null;
        /**
         * uninterpreted_option repeated message = 999
         *
         * @var \Protobuf\Collection<\google\protobuf\UninterpretedOption>
         */
        protected $uninterpreted_option = null;
        /**
         * {@inheritdoc}
         */
        public function __construct($stream = null, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * Check if 'java_package' has a value
         *
         * @return bool
         */
        public function hasJavaPackage()
        {
        }
        /**
         * Get 'java_package' value
         *
         * @return string
         */
        public function getJavaPackage()
        {
        }
        /**
         * Set 'java_package' value
         *
         * @param string $value
         */
        public function setJavaPackage($value = null)
        {
        }
        /**
         * Check if 'java_outer_classname' has a value
         *
         * @return bool
         */
        public function hasJavaOuterClassname()
        {
        }
        /**
         * Get 'java_outer_classname' value
         *
         * @return string
         */
        public function getJavaOuterClassname()
        {
        }
        /**
         * Set 'java_outer_classname' value
         *
         * @param string $value
         */
        public function setJavaOuterClassname($value = null)
        {
        }
        /**
         * Check if 'java_multiple_files' has a value
         *
         * @return bool
         */
        public function hasJavaMultipleFiles()
        {
        }
        /**
         * Get 'java_multiple_files' value
         *
         * @return bool
         */
        public function getJavaMultipleFiles()
        {
        }
        /**
         * Set 'java_multiple_files' value
         *
         * @param bool $value
         */
        public function setJavaMultipleFiles($value = null)
        {
        }
        /**
         * Check if 'java_generate_equals_and_hash' has a value
         *
         * @return bool
         */
        public function hasJavaGenerateEqualsAndHash()
        {
        }
        /**
         * Get 'java_generate_equals_and_hash' value
         *
         * @return bool
         */
        public function getJavaGenerateEqualsAndHash()
        {
        }
        /**
         * Set 'java_generate_equals_and_hash' value
         *
         * @param bool $value
         */
        public function setJavaGenerateEqualsAndHash($value = null)
        {
        }
        /**
         * Check if 'java_string_check_utf8' has a value
         *
         * @return bool
         */
        public function hasJavaStringCheckUtf8()
        {
        }
        /**
         * Get 'java_string_check_utf8' value
         *
         * @return bool
         */
        public function getJavaStringCheckUtf8()
        {
        }
        /**
         * Set 'java_string_check_utf8' value
         *
         * @param bool $value
         */
        public function setJavaStringCheckUtf8($value = null)
        {
        }
        /**
         * Check if 'optimize_for' has a value
         *
         * @return bool
         */
        public function hasOptimizeFor()
        {
        }
        /**
         * Get 'optimize_for' value
         *
         * @return \google\protobuf\FileOptions\OptimizeMode
         */
        public function getOptimizeFor()
        {
        }
        /**
         * Set 'optimize_for' value
         *
         * @param \google\protobuf\FileOptions\OptimizeMode $value
         */
        public function setOptimizeFor(\google\protobuf\FileOptions\OptimizeMode $value = null)
        {
        }
        /**
         * Check if 'go_package' has a value
         *
         * @return bool
         */
        public function hasGoPackage()
        {
        }
        /**
         * Get 'go_package' value
         *
         * @return string
         */
        public function getGoPackage()
        {
        }
        /**
         * Set 'go_package' value
         *
         * @param string $value
         */
        public function setGoPackage($value = null)
        {
        }
        /**
         * Check if 'cc_generic_services' has a value
         *
         * @return bool
         */
        public function hasCcGenericServices()
        {
        }
        /**
         * Get 'cc_generic_services' value
         *
         * @return bool
         */
        public function getCcGenericServices()
        {
        }
        /**
         * Set 'cc_generic_services' value
         *
         * @param bool $value
         */
        public function setCcGenericServices($value = null)
        {
        }
        /**
         * Check if 'java_generic_services' has a value
         *
         * @return bool
         */
        public function hasJavaGenericServices()
        {
        }
        /**
         * Get 'java_generic_services' value
         *
         * @return bool
         */
        public function getJavaGenericServices()
        {
        }
        /**
         * Set 'java_generic_services' value
         *
         * @param bool $value
         */
        public function setJavaGenericServices($value = null)
        {
        }
        /**
         * Check if 'py_generic_services' has a value
         *
         * @return bool
         */
        public function hasPyGenericServices()
        {
        }
        /**
         * Get 'py_generic_services' value
         *
         * @return bool
         */
        public function getPyGenericServices()
        {
        }
        /**
         * Set 'py_generic_services' value
         *
         * @param bool $value
         */
        public function setPyGenericServices($value = null)
        {
        }
        /**
         * Check if 'deprecated' has a value
         *
         * @return bool
         */
        public function hasDeprecated()
        {
        }
        /**
         * Get 'deprecated' value
         *
         * @return bool
         */
        public function getDeprecated()
        {
        }
        /**
         * Set 'deprecated' value
         *
         * @param bool $value
         */
        public function setDeprecated($value = null)
        {
        }
        /**
         * Check if 'cc_enable_arenas' has a value
         *
         * @return bool
         */
        public function hasCcEnableArenas()
        {
        }
        /**
         * Get 'cc_enable_arenas' value
         *
         * @return bool
         */
        public function getCcEnableArenas()
        {
        }
        /**
         * Set 'cc_enable_arenas' value
         *
         * @param bool $value
         */
        public function setCcEnableArenas($value = null)
        {
        }
        /**
         * Check if 'objc_class_prefix' has a value
         *
         * @return bool
         */
        public function hasObjcClassPrefix()
        {
        }
        /**
         * Get 'objc_class_prefix' value
         *
         * @return string
         */
        public function getObjcClassPrefix()
        {
        }
        /**
         * Set 'objc_class_prefix' value
         *
         * @param string $value
         */
        public function setObjcClassPrefix($value = null)
        {
        }
        /**
         * Check if 'csharp_namespace' has a value
         *
         * @return bool
         */
        public function hasCsharpNamespace()
        {
        }
        /**
         * Get 'csharp_namespace' value
         *
         * @return string
         */
        public function getCsharpNamespace()
        {
        }
        /**
         * Set 'csharp_namespace' value
         *
         * @param string $value
         */
        public function setCsharpNamespace($value = null)
        {
        }
        /**
         * Check if 'javanano_use_deprecated_package' has a value
         *
         * @return bool
         */
        public function hasJavananoUseDeprecatedPackage()
        {
        }
        /**
         * Get 'javanano_use_deprecated_package' value
         *
         * @return bool
         */
        public function getJavananoUseDeprecatedPackage()
        {
        }
        /**
         * Set 'javanano_use_deprecated_package' value
         *
         * @param bool $value
         */
        public function setJavananoUseDeprecatedPackage($value = null)
        {
        }
        /**
         * Check if 'uninterpreted_option' has a value
         *
         * @return bool
         */
        public function hasUninterpretedOptionList()
        {
        }
        /**
         * Get 'uninterpreted_option' value
         *
         * @return \Protobuf\Collection<\google\protobuf\UninterpretedOption>
         */
        public function getUninterpretedOptionList()
        {
        }
        /**
         * Set 'uninterpreted_option' value
         *
         * @param \Protobuf\Collection<\google\protobuf\UninterpretedOption> $value
         */
        public function setUninterpretedOptionList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'uninterpreted_option'
         *
         * @param \google\protobuf\UninterpretedOption $value
         */
        public function addUninterpretedOption(\google\protobuf\UninterpretedOption $value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Protobuf message : google.protobuf.FieldOptions
     */
    class FieldOptions extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * ctype optional enum = 1
         *
         * @var \google\protobuf\FieldOptions\CType
         */
        protected $ctype = null;
        /**
         * packed optional bool = 2
         *
         * @var bool
         */
        protected $packed = null;
        /**
         * jstype optional enum = 6
         *
         * @var \google\protobuf\FieldOptions\JSType
         */
        protected $jstype = null;
        /**
         * lazy optional bool = 5
         *
         * @var bool
         */
        protected $lazy = null;
        /**
         * deprecated optional bool = 3
         *
         * @var bool
         */
        protected $deprecated = null;
        /**
         * weak optional bool = 10
         *
         * @var bool
         */
        protected $weak = null;
        /**
         * uninterpreted_option repeated message = 999
         *
         * @var \Protobuf\Collection<\google\protobuf\UninterpretedOption>
         */
        protected $uninterpreted_option = null;
        /**
         * {@inheritdoc}
         */
        public function __construct($stream = null, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * Check if 'ctype' has a value
         *
         * @return bool
         */
        public function hasCtype()
        {
        }
        /**
         * Get 'ctype' value
         *
         * @return \google\protobuf\FieldOptions\CType
         */
        public function getCtype()
        {
        }
        /**
         * Set 'ctype' value
         *
         * @param \google\protobuf\FieldOptions\CType $value
         */
        public function setCtype(\google\protobuf\FieldOptions\CType $value = null)
        {
        }
        /**
         * Check if 'packed' has a value
         *
         * @return bool
         */
        public function hasPacked()
        {
        }
        /**
         * Get 'packed' value
         *
         * @return bool
         */
        public function getPacked()
        {
        }
        /**
         * Set 'packed' value
         *
         * @param bool $value
         */
        public function setPacked($value = null)
        {
        }
        /**
         * Check if 'jstype' has a value
         *
         * @return bool
         */
        public function hasJstype()
        {
        }
        /**
         * Get 'jstype' value
         *
         * @return \google\protobuf\FieldOptions\JSType
         */
        public function getJstype()
        {
        }
        /**
         * Set 'jstype' value
         *
         * @param \google\protobuf\FieldOptions\JSType $value
         */
        public function setJstype(\google\protobuf\FieldOptions\JSType $value = null)
        {
        }
        /**
         * Check if 'lazy' has a value
         *
         * @return bool
         */
        public function hasLazy()
        {
        }
        /**
         * Get 'lazy' value
         *
         * @return bool
         */
        public function getLazy()
        {
        }
        /**
         * Set 'lazy' value
         *
         * @param bool $value
         */
        public function setLazy($value = null)
        {
        }
        /**
         * Check if 'deprecated' has a value
         *
         * @return bool
         */
        public function hasDeprecated()
        {
        }
        /**
         * Get 'deprecated' value
         *
         * @return bool
         */
        public function getDeprecated()
        {
        }
        /**
         * Set 'deprecated' value
         *
         * @param bool $value
         */
        public function setDeprecated($value = null)
        {
        }
        /**
         * Check if 'weak' has a value
         *
         * @return bool
         */
        public function hasWeak()
        {
        }
        /**
         * Get 'weak' value
         *
         * @return bool
         */
        public function getWeak()
        {
        }
        /**
         * Set 'weak' value
         *
         * @param bool $value
         */
        public function setWeak($value = null)
        {
        }
        /**
         * Check if 'uninterpreted_option' has a value
         *
         * @return bool
         */
        public function hasUninterpretedOptionList()
        {
        }
        /**
         * Get 'uninterpreted_option' value
         *
         * @return \Protobuf\Collection<\google\protobuf\UninterpretedOption>
         */
        public function getUninterpretedOptionList()
        {
        }
        /**
         * Set 'uninterpreted_option' value
         *
         * @param \Protobuf\Collection<\google\protobuf\UninterpretedOption> $value
         */
        public function setUninterpretedOptionList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'uninterpreted_option'
         *
         * @param \google\protobuf\UninterpretedOption $value
         */
        public function addUninterpretedOption(\google\protobuf\UninterpretedOption $value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Protobuf message : google.protobuf.DescriptorProto
     */
    class DescriptorProto extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * name optional string = 1
         *
         * @var string
         */
        protected $name = null;
        /**
         * field repeated message = 2
         *
         * @var \Protobuf\Collection<\google\protobuf\FieldDescriptorProto>
         */
        protected $field = null;
        /**
         * extension repeated message = 6
         *
         * @var \Protobuf\Collection<\google\protobuf\FieldDescriptorProto>
         */
        protected $extension = null;
        /**
         * nested_type repeated message = 3
         *
         * @var \Protobuf\Collection<\google\protobuf\DescriptorProto>
         */
        protected $nested_type = null;
        /**
         * enum_type repeated message = 4
         *
         * @var \Protobuf\Collection<\google\protobuf\EnumDescriptorProto>
         */
        protected $enum_type = null;
        /**
         * extension_range repeated message = 5
         *
         * @var \Protobuf\Collection<\google\protobuf\DescriptorProto\ExtensionRange>
         */
        protected $extension_range = null;
        /**
         * oneof_decl repeated message = 8
         *
         * @var \Protobuf\Collection<\google\protobuf\OneofDescriptorProto>
         */
        protected $oneof_decl = null;
        /**
         * options optional message = 7
         *
         * @var \google\protobuf\MessageOptions
         */
        protected $options = null;
        /**
         * reserved_range repeated message = 9
         *
         * @var \Protobuf\Collection<\google\protobuf\DescriptorProto\ReservedRange>
         */
        protected $reserved_range = null;
        /**
         * reserved_name repeated string = 10
         *
         * @var \Protobuf\Collection
         */
        protected $reserved_name = null;
        /**
         * Check if 'name' has a value
         *
         * @return bool
         */
        public function hasName()
        {
        }
        /**
         * Get 'name' value
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Set 'name' value
         *
         * @param string $value
         */
        public function setName($value = null)
        {
        }
        /**
         * Check if 'field' has a value
         *
         * @return bool
         */
        public function hasFieldList()
        {
        }
        /**
         * Get 'field' value
         *
         * @return \Protobuf\Collection<\google\protobuf\FieldDescriptorProto>
         */
        public function getFieldList()
        {
        }
        /**
         * Set 'field' value
         *
         * @param \Protobuf\Collection<\google\protobuf\FieldDescriptorProto> $value
         */
        public function setFieldList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'field'
         *
         * @param \google\protobuf\FieldDescriptorProto $value
         */
        public function addField(\google\protobuf\FieldDescriptorProto $value)
        {
        }
        /**
         * Check if 'extension' has a value
         *
         * @return bool
         */
        public function hasExtensionList()
        {
        }
        /**
         * Get 'extension' value
         *
         * @return \Protobuf\Collection<\google\protobuf\FieldDescriptorProto>
         */
        public function getExtensionList()
        {
        }
        /**
         * Set 'extension' value
         *
         * @param \Protobuf\Collection<\google\protobuf\FieldDescriptorProto> $value
         */
        public function setExtensionList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'extension'
         *
         * @param \google\protobuf\FieldDescriptorProto $value
         */
        public function addExtension(\google\protobuf\FieldDescriptorProto $value)
        {
        }
        /**
         * Check if 'nested_type' has a value
         *
         * @return bool
         */
        public function hasNestedTypeList()
        {
        }
        /**
         * Get 'nested_type' value
         *
         * @return \Protobuf\Collection<\google\protobuf\DescriptorProto>
         */
        public function getNestedTypeList()
        {
        }
        /**
         * Set 'nested_type' value
         *
         * @param \Protobuf\Collection<\google\protobuf\DescriptorProto> $value
         */
        public function setNestedTypeList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'nested_type'
         *
         * @param \google\protobuf\DescriptorProto $value
         */
        public function addNestedType(\google\protobuf\DescriptorProto $value)
        {
        }
        /**
         * Check if 'enum_type' has a value
         *
         * @return bool
         */
        public function hasEnumTypeList()
        {
        }
        /**
         * Get 'enum_type' value
         *
         * @return \Protobuf\Collection<\google\protobuf\EnumDescriptorProto>
         */
        public function getEnumTypeList()
        {
        }
        /**
         * Set 'enum_type' value
         *
         * @param \Protobuf\Collection<\google\protobuf\EnumDescriptorProto> $value
         */
        public function setEnumTypeList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'enum_type'
         *
         * @param \google\protobuf\EnumDescriptorProto $value
         */
        public function addEnumType(\google\protobuf\EnumDescriptorProto $value)
        {
        }
        /**
         * Check if 'extension_range' has a value
         *
         * @return bool
         */
        public function hasExtensionRangeList()
        {
        }
        /**
         * Get 'extension_range' value
         *
         * @return \Protobuf\Collection<\google\protobuf\DescriptorProto\ExtensionRange>
         */
        public function getExtensionRangeList()
        {
        }
        /**
         * Set 'extension_range' value
         *
         * @param \Protobuf\Collection<\google\protobuf\DescriptorProto\ExtensionRange> $value
         */
        public function setExtensionRangeList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'extension_range'
         *
         * @param \google\protobuf\DescriptorProto\ExtensionRange $value
         */
        public function addExtensionRange(\google\protobuf\DescriptorProto\ExtensionRange $value)
        {
        }
        /**
         * Check if 'oneof_decl' has a value
         *
         * @return bool
         */
        public function hasOneofDeclList()
        {
        }
        /**
         * Get 'oneof_decl' value
         *
         * @return \Protobuf\Collection<\google\protobuf\OneofDescriptorProto>
         */
        public function getOneofDeclList()
        {
        }
        /**
         * Set 'oneof_decl' value
         *
         * @param \Protobuf\Collection<\google\protobuf\OneofDescriptorProto> $value
         */
        public function setOneofDeclList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'oneof_decl'
         *
         * @param \google\protobuf\OneofDescriptorProto $value
         */
        public function addOneofDecl(\google\protobuf\OneofDescriptorProto $value)
        {
        }
        /**
         * Check if 'options' has a value
         *
         * @return bool
         */
        public function hasOptions()
        {
        }
        /**
         * Get 'options' value
         *
         * @return \google\protobuf\MessageOptions
         */
        public function getOptions()
        {
        }
        /**
         * Set 'options' value
         *
         * @param \google\protobuf\MessageOptions $value
         */
        public function setOptions(\google\protobuf\MessageOptions $value = null)
        {
        }
        /**
         * Check if 'reserved_range' has a value
         *
         * @return bool
         */
        public function hasReservedRangeList()
        {
        }
        /**
         * Get 'reserved_range' value
         *
         * @return \Protobuf\Collection<\google\protobuf\DescriptorProto\ReservedRange>
         */
        public function getReservedRangeList()
        {
        }
        /**
         * Set 'reserved_range' value
         *
         * @param \Protobuf\Collection<\google\protobuf\DescriptorProto\ReservedRange> $value
         */
        public function setReservedRangeList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'reserved_range'
         *
         * @param \google\protobuf\DescriptorProto\ReservedRange $value
         */
        public function addReservedRange(\google\protobuf\DescriptorProto\ReservedRange $value)
        {
        }
        /**
         * Check if 'reserved_name' has a value
         *
         * @return bool
         */
        public function hasReservedNameList()
        {
        }
        /**
         * Get 'reserved_name' value
         *
         * @return \Protobuf\Collection
         */
        public function getReservedNameList()
        {
        }
        /**
         * Set 'reserved_name' value
         *
         * @param \Protobuf\Collection $value
         */
        public function setReservedNameList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'reserved_name'
         *
         * @param string $value
         */
        public function addReservedName($value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
}
namespace google\protobuf\UninterpretedOption {
    /**
     * Protobuf message : google.protobuf.UninterpretedOption.NamePart
     */
    class NamePart extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * name_part required string = 1
         *
         * @var string
         */
        protected $name_part = null;
        /**
         * is_extension required bool = 2
         *
         * @var bool
         */
        protected $is_extension = null;
        /**
         * Check if 'name_part' has a value
         *
         * @return bool
         */
        public function hasNamePart()
        {
        }
        /**
         * Get 'name_part' value
         *
         * @return string
         */
        public function getNamePart()
        {
        }
        /**
         * Set 'name_part' value
         *
         * @param string $value
         */
        public function setNamePart($value)
        {
        }
        /**
         * Check if 'is_extension' has a value
         *
         * @return bool
         */
        public function hasIsExtension()
        {
        }
        /**
         * Get 'is_extension' value
         *
         * @return bool
         */
        public function getIsExtension()
        {
        }
        /**
         * Set 'is_extension' value
         *
         * @param bool $value
         */
        public function setIsExtension($value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
}
namespace google\protobuf {
    /**
     * Protobuf message : google.protobuf.SourceCodeInfo
     */
    class SourceCodeInfo extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * location repeated message = 1
         *
         * @var \Protobuf\Collection<\google\protobuf\SourceCodeInfo\Location>
         */
        protected $location = null;
        /**
         * Check if 'location' has a value
         *
         * @return bool
         */
        public function hasLocationList()
        {
        }
        /**
         * Get 'location' value
         *
         * @return \Protobuf\Collection<\google\protobuf\SourceCodeInfo\Location>
         */
        public function getLocationList()
        {
        }
        /**
         * Set 'location' value
         *
         * @param \Protobuf\Collection<\google\protobuf\SourceCodeInfo\Location> $value
         */
        public function setLocationList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'location'
         *
         * @param \google\protobuf\SourceCodeInfo\Location $value
         */
        public function addLocation(\google\protobuf\SourceCodeInfo\Location $value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
}
namespace google\protobuf\compiler {
    /**
     * Protobuf message : google.protobuf.compiler.CodeGeneratorRequest
     */
    class CodeGeneratorRequest extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * file_to_generate repeated string = 1
         *
         * @var \Protobuf\Collection
         */
        protected $file_to_generate = null;
        /**
         * parameter optional string = 2
         *
         * @var string
         */
        protected $parameter = null;
        /**
         * proto_file repeated message = 15
         *
         * @var \Protobuf\Collection<\google\protobuf\FileDescriptorProto>
         */
        protected $proto_file = null;
        /**
         * Check if 'file_to_generate' has a value
         *
         * @return bool
         */
        public function hasFileToGenerateList()
        {
        }
        /**
         * Get 'file_to_generate' value
         *
         * @return \Protobuf\Collection
         */
        public function getFileToGenerateList()
        {
        }
        /**
         * Set 'file_to_generate' value
         *
         * @param \Protobuf\Collection $value
         */
        public function setFileToGenerateList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'file_to_generate'
         *
         * @param string $value
         */
        public function addFileToGenerate($value)
        {
        }
        /**
         * Check if 'parameter' has a value
         *
         * @return bool
         */
        public function hasParameter()
        {
        }
        /**
         * Get 'parameter' value
         *
         * @return string
         */
        public function getParameter()
        {
        }
        /**
         * Set 'parameter' value
         *
         * @param string $value
         */
        public function setParameter($value = null)
        {
        }
        /**
         * Check if 'proto_file' has a value
         *
         * @return bool
         */
        public function hasProtoFileList()
        {
        }
        /**
         * Get 'proto_file' value
         *
         * @return \Protobuf\Collection<\google\protobuf\FileDescriptorProto>
         */
        public function getProtoFileList()
        {
        }
        /**
         * Set 'proto_file' value
         *
         * @param \Protobuf\Collection<\google\protobuf\FileDescriptorProto> $value
         */
        public function setProtoFileList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'proto_file'
         *
         * @param \google\protobuf\FileDescriptorProto $value
         */
        public function addProtoFile(\google\protobuf\FileDescriptorProto $value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
}
namespace google\protobuf\compiler\CodeGeneratorResponse {
    /**
     * Protobuf message : google.protobuf.compiler.CodeGeneratorResponse.File
     */
    class File extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * name optional string = 1
         *
         * @var string
         */
        protected $name = null;
        /**
         * insertion_point optional string = 2
         *
         * @var string
         */
        protected $insertion_point = null;
        /**
         * content optional string = 15
         *
         * @var string
         */
        protected $content = null;
        /**
         * Check if 'name' has a value
         *
         * @return bool
         */
        public function hasName()
        {
        }
        /**
         * Get 'name' value
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Set 'name' value
         *
         * @param string $value
         */
        public function setName($value = null)
        {
        }
        /**
         * Check if 'insertion_point' has a value
         *
         * @return bool
         */
        public function hasInsertionPoint()
        {
        }
        /**
         * Get 'insertion_point' value
         *
         * @return string
         */
        public function getInsertionPoint()
        {
        }
        /**
         * Set 'insertion_point' value
         *
         * @param string $value
         */
        public function setInsertionPoint($value = null)
        {
        }
        /**
         * Check if 'content' has a value
         *
         * @return bool
         */
        public function hasContent()
        {
        }
        /**
         * Get 'content' value
         *
         * @return string
         */
        public function getContent()
        {
        }
        /**
         * Set 'content' value
         *
         * @param string $value
         */
        public function setContent($value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
}
namespace google\protobuf\compiler {
    /**
     * Protobuf message : google.protobuf.compiler.CodeGeneratorResponse
     */
    class CodeGeneratorResponse extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * error optional string = 1
         *
         * @var string
         */
        protected $error = null;
        /**
         * file repeated message = 15
         *
         * @var \Protobuf\Collection<\google\protobuf\compiler\CodeGeneratorResponse\File>
         */
        protected $file = null;
        /**
         * Check if 'error' has a value
         *
         * @return bool
         */
        public function hasError()
        {
        }
        /**
         * Get 'error' value
         *
         * @return string
         */
        public function getError()
        {
        }
        /**
         * Set 'error' value
         *
         * @param string $value
         */
        public function setError($value = null)
        {
        }
        /**
         * Check if 'file' has a value
         *
         * @return bool
         */
        public function hasFileList()
        {
        }
        /**
         * Get 'file' value
         *
         * @return \Protobuf\Collection<\google\protobuf\compiler\CodeGeneratorResponse\File>
         */
        public function getFileList()
        {
        }
        /**
         * Set 'file' value
         *
         * @param \Protobuf\Collection<\google\protobuf\compiler\CodeGeneratorResponse\File> $value
         */
        public function setFileList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'file'
         *
         * @param \google\protobuf\compiler\CodeGeneratorResponse\File $value
         */
        public function addFile(\google\protobuf\compiler\CodeGeneratorResponse\File $value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
}
namespace google\protobuf {
    /**
     * Protobuf message : google.protobuf.MethodOptions
     */
    class MethodOptions extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * deprecated optional bool = 33
         *
         * @var bool
         */
        protected $deprecated = null;
        /**
         * uninterpreted_option repeated message = 999
         *
         * @var \Protobuf\Collection<\google\protobuf\UninterpretedOption>
         */
        protected $uninterpreted_option = null;
        /**
         * {@inheritdoc}
         */
        public function __construct($stream = null, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * Check if 'deprecated' has a value
         *
         * @return bool
         */
        public function hasDeprecated()
        {
        }
        /**
         * Get 'deprecated' value
         *
         * @return bool
         */
        public function getDeprecated()
        {
        }
        /**
         * Set 'deprecated' value
         *
         * @param bool $value
         */
        public function setDeprecated($value = null)
        {
        }
        /**
         * Check if 'uninterpreted_option' has a value
         *
         * @return bool
         */
        public function hasUninterpretedOptionList()
        {
        }
        /**
         * Get 'uninterpreted_option' value
         *
         * @return \Protobuf\Collection<\google\protobuf\UninterpretedOption>
         */
        public function getUninterpretedOptionList()
        {
        }
        /**
         * Set 'uninterpreted_option' value
         *
         * @param \Protobuf\Collection<\google\protobuf\UninterpretedOption> $value
         */
        public function setUninterpretedOptionList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'uninterpreted_option'
         *
         * @param \google\protobuf\UninterpretedOption $value
         */
        public function addUninterpretedOption(\google\protobuf\UninterpretedOption $value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Protobuf message : google.protobuf.MethodDescriptorProto
     */
    class MethodDescriptorProto extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * name optional string = 1
         *
         * @var string
         */
        protected $name = null;
        /**
         * input_type optional string = 2
         *
         * @var string
         */
        protected $input_type = null;
        /**
         * output_type optional string = 3
         *
         * @var string
         */
        protected $output_type = null;
        /**
         * options optional message = 4
         *
         * @var \google\protobuf\MethodOptions
         */
        protected $options = null;
        /**
         * client_streaming optional bool = 5
         *
         * @var bool
         */
        protected $client_streaming = null;
        /**
         * server_streaming optional bool = 6
         *
         * @var bool
         */
        protected $server_streaming = null;
        /**
         * {@inheritdoc}
         */
        public function __construct($stream = null, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * Check if 'name' has a value
         *
         * @return bool
         */
        public function hasName()
        {
        }
        /**
         * Get 'name' value
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Set 'name' value
         *
         * @param string $value
         */
        public function setName($value = null)
        {
        }
        /**
         * Check if 'input_type' has a value
         *
         * @return bool
         */
        public function hasInputType()
        {
        }
        /**
         * Get 'input_type' value
         *
         * @return string
         */
        public function getInputType()
        {
        }
        /**
         * Set 'input_type' value
         *
         * @param string $value
         */
        public function setInputType($value = null)
        {
        }
        /**
         * Check if 'output_type' has a value
         *
         * @return bool
         */
        public function hasOutputType()
        {
        }
        /**
         * Get 'output_type' value
         *
         * @return string
         */
        public function getOutputType()
        {
        }
        /**
         * Set 'output_type' value
         *
         * @param string $value
         */
        public function setOutputType($value = null)
        {
        }
        /**
         * Check if 'options' has a value
         *
         * @return bool
         */
        public function hasOptions()
        {
        }
        /**
         * Get 'options' value
         *
         * @return \google\protobuf\MethodOptions
         */
        public function getOptions()
        {
        }
        /**
         * Set 'options' value
         *
         * @param \google\protobuf\MethodOptions $value
         */
        public function setOptions(\google\protobuf\MethodOptions $value = null)
        {
        }
        /**
         * Check if 'client_streaming' has a value
         *
         * @return bool
         */
        public function hasClientStreaming()
        {
        }
        /**
         * Get 'client_streaming' value
         *
         * @return bool
         */
        public function getClientStreaming()
        {
        }
        /**
         * Set 'client_streaming' value
         *
         * @param bool $value
         */
        public function setClientStreaming($value = null)
        {
        }
        /**
         * Check if 'server_streaming' has a value
         *
         * @return bool
         */
        public function hasServerStreaming()
        {
        }
        /**
         * Get 'server_streaming' value
         *
         * @return bool
         */
        public function getServerStreaming()
        {
        }
        /**
         * Set 'server_streaming' value
         *
         * @param bool $value
         */
        public function setServerStreaming($value = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Protobuf message : google.protobuf.EnumOptions
     */
    class EnumOptions extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * allow_alias optional bool = 2
         *
         * @var bool
         */
        protected $allow_alias = null;
        /**
         * deprecated optional bool = 3
         *
         * @var bool
         */
        protected $deprecated = null;
        /**
         * uninterpreted_option repeated message = 999
         *
         * @var \Protobuf\Collection<\google\protobuf\UninterpretedOption>
         */
        protected $uninterpreted_option = null;
        /**
         * {@inheritdoc}
         */
        public function __construct($stream = null, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * Check if 'allow_alias' has a value
         *
         * @return bool
         */
        public function hasAllowAlias()
        {
        }
        /**
         * Get 'allow_alias' value
         *
         * @return bool
         */
        public function getAllowAlias()
        {
        }
        /**
         * Set 'allow_alias' value
         *
         * @param bool $value
         */
        public function setAllowAlias($value = null)
        {
        }
        /**
         * Check if 'deprecated' has a value
         *
         * @return bool
         */
        public function hasDeprecated()
        {
        }
        /**
         * Get 'deprecated' value
         *
         * @return bool
         */
        public function getDeprecated()
        {
        }
        /**
         * Set 'deprecated' value
         *
         * @param bool $value
         */
        public function setDeprecated($value = null)
        {
        }
        /**
         * Check if 'uninterpreted_option' has a value
         *
         * @return bool
         */
        public function hasUninterpretedOptionList()
        {
        }
        /**
         * Get 'uninterpreted_option' value
         *
         * @return \Protobuf\Collection<\google\protobuf\UninterpretedOption>
         */
        public function getUninterpretedOptionList()
        {
        }
        /**
         * Set 'uninterpreted_option' value
         *
         * @param \Protobuf\Collection<\google\protobuf\UninterpretedOption> $value
         */
        public function setUninterpretedOptionList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'uninterpreted_option'
         *
         * @param \google\protobuf\UninterpretedOption $value
         */
        public function addUninterpretedOption(\google\protobuf\UninterpretedOption $value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
    /**
     * Protobuf message : google.protobuf.FileDescriptorSet
     */
    class FileDescriptorSet extends \Protobuf\AbstractMessage
    {
        /**
         * @var \Protobuf\UnknownFieldSet
         */
        protected $unknownFieldSet = null;
        /**
         * @var \Protobuf\Extension\ExtensionFieldMap
         */
        protected $extensions = null;
        /**
         * file repeated message = 1
         *
         * @var \Protobuf\Collection<\google\protobuf\FileDescriptorProto>
         */
        protected $file = null;
        /**
         * Check if 'file' has a value
         *
         * @return bool
         */
        public function hasFileList()
        {
        }
        /**
         * Get 'file' value
         *
         * @return \Protobuf\Collection<\google\protobuf\FileDescriptorProto>
         */
        public function getFileList()
        {
        }
        /**
         * Set 'file' value
         *
         * @param \Protobuf\Collection<\google\protobuf\FileDescriptorProto> $value
         */
        public function setFileList(\Protobuf\Collection $value = null)
        {
        }
        /**
         * Add a new element to 'file'
         *
         * @param \google\protobuf\FileDescriptorProto $value
         */
        public function addFile(\google\protobuf\FileDescriptorProto $value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function extensions()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function unknownFieldSet()
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromStream($stream, \Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function fromArray(array $values)
        {
        }
        /**
         * {@inheritdoc}
         */
        public static function descriptor()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function toStream(\Protobuf\Configuration $configuration = null)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function readFrom(\Protobuf\ReadContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function clear()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function merge(\Protobuf\Message $message)
        {
        }
    }
}
namespace Protobuf {
    /**
     * Protocol buffer serializer
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    interface Serializer
    {
        /**
         * Serializes the given message.
         *
         * @param \Protobuf\Message $message
         *
         * @return \Protobuf\Stream
         */
        public function serialize(\Protobuf\Message $message);
        /**
         * Deserializes the given data to the specified message.
         *
         * @param string                           $class
         * @param \Protobuf\Stream|resource|string $stream
         *
         * @return \Protobuf\Message
         */
        public function unserialize($class, $stream);
    }
    /**
     * Read context
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class ReadContext
    {
        /**
         * @var \Protobuf\Extension\ExtensionRegistry
         */
        private $extensionRegistry;
        /**
         * @var \Protobuf\Binary\StreamReader
         */
        private $reader;
        /**
         * @var \Protobuf\Stream
         */
        private $stream;
        /**
         * @var integer
         */
        private $length;
        /**
         * @param \Protobuf\Stream|resource|string      $stream
         * @param \Protobuf\Binary\StreamReader         $reader
         * @param \Protobuf\Extension\ExtensionRegistry $extensionRegistry
         */
        public function __construct($stream, \Protobuf\Binary\StreamReader $reader, \Protobuf\Extension\ExtensionRegistry $extensionRegistry = null)
        {
        }
        /**
         * Return a ExtensionRegistry.
         *
         * @return \Protobuf\Extension\ExtensionRegistry
         */
        public function getExtensionRegistry()
        {
        }
        /**
         * @return \Protobuf\Binary\StreamReader
         */
        public function getReader()
        {
        }
        /**
         * @return \Protobuf\Stream
         */
        public function getStream()
        {
        }
        /**
         * @return integer
         */
        public function getLength()
        {
        }
        /**
         * @param integer $length
         */
        public function setLength($length)
        {
        }
    }
    /**
     * Collection.
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    interface Collection extends \Countable, \Traversable
    {
    }
    /**
     * Protobuf enum collection
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class EnumCollection extends \ArrayObject implements \Protobuf\Collection
    {
        /**
         * @param array<\Protobuf\Enum> $values
         */
        public function __construct(array $values = [])
        {
        }
        /**
         * Adds a \Protobuf\Enum to this collection
         *
         * @param \Protobuf\Enum $enum
         */
        public function add(\Protobuf\Enum $enum)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function offsetSet($offset, $value)
        {
        }
    }
}
namespace Protobuf\Extension {
    /**
     * Protobuf extension field
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class ExtensionField
    {
        /**
         * @var callback
         */
        private $sizeCalculator;
        /**
         * @var callback
         */
        private $writer;
        /**
         * @var callback
         */
        private $reader;
        /**
         * @var string
         */
        private $extendee;
        /**
         * @var string
         */
        private $method;
        /**
         * @var string
         */
        private $name;
        /**
         * @var integer
         */
        private $tag;
        /**
         * @param string   $extendee
         * @param string   $name
         * @param integer  $tag
         * @param callback $reader
         * @param callback $writer
         * @param callback $sizeCalculator
         * @param string   $method
         */
        public function __construct($extendee, $name, $tag, $reader, $writer, $sizeCalculator, $method = null)
        {
        }
        /**
         * @return string
         */
        public function getExtendee()
        {
        }
        /**
         * @return string
         */
        public function getMethod()
        {
        }
        /**
         * @return string
         */
        public function getName()
        {
        }
        /**
         * @return integer
         */
        public function getTag()
        {
        }
        /**
         * @param \Protobuf\ComputeSizeContext $context
         * @param mixed                        $value
         *
         * @return integer
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context, $value)
        {
        }
        /**
         * @param \Protobuf\WriteContext $context
         * @param mixed                  $value
         */
        public function writeTo(\Protobuf\WriteContext $context, $value)
        {
        }
        /**
         * @param \Protobuf\ReadContext $context
         * @param integer               $wire
         *
         * @return mixed
         */
        public function readFrom(\Protobuf\ReadContext $context, $wire)
        {
        }
    }
    /**
     * A table of known extensions indexed by extendee and field number
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class ExtensionRegistry
    {
        /**
         * @var array
         */
        protected $extensions = [];
        /**
         * Remove all registered extensions
         */
        public function clear()
        {
        }
        /**
         * Adds an element to the registry.
         *
         * @param \Protobuf\Extension\ExtensionField $extension
         */
        public function add(\Protobuf\Extension\ExtensionField $extension)
        {
        }
        /**
         * Find an extension by containing field number
         *
         * @param string  $className
         * @param integer $number
         *
         * @return \Protobuf\Extension\ExtensionField|null
         */
        public function findByNumber($className, $number)
        {
        }
    }
    /**
     * A table of known extensions values
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class ExtensionFieldMap extends \SplObjectStorage implements \Protobuf\Collection
    {
        /**
         * @var string
         */
        protected $extendee;
        /**
         * @param string $extendee
         */
        public function __construct($extendee = null)
        {
        }
        /**
         * @param \Protobuf\Extension\ExtensionField $extension
         * @param mixed                              $value
         */
        public function add(\Protobuf\Extension\ExtensionField $extension, $value)
        {
        }
        /**
         * @param \Protobuf\Extension\ExtensionField $extension
         * @param mixed                              $value
         */
        public function put(\Protobuf\Extension\ExtensionField $extension, $value)
        {
        }
        /**
         * @param \Protobuf\Extension\ExtensionField $key
         *
         * @return mixed
         */
        public function get(\Protobuf\Extension\ExtensionField $key)
        {
        }
        /**
         * @param \Protobuf\ComputeSizeContext $context
         *
         * @return integer
         */
        public function serializedSize(\Protobuf\ComputeSizeContext $context)
        {
        }
        /**
         * @param \Protobuf\WriteContext $context
         */
        public function writeTo(\Protobuf\WriteContext $context)
        {
        }
    }
}
namespace Protobuf {
    /**
     * This serializes to text format
     *
     * @author IvÃ¡n Montes <drslump@pollinimini.net>
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class TextFormat
    {
        /**
         * @param \Protobuf\Message $message
         * @param integer           $level
         *
         * @return \Protobuf\Stream
         */
        public function encodeMessage(\Protobuf\Message $message, $level = 0)
        {
        }
        /**
         * @param scalar|array $value
         *
         * @return string
         */
        public function encodeValue($value)
        {
        }
    }
    /**
     * Unknown value
     *
     * @author IvÃ¡n Montes <drslump@pollinimini.net>
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class Unknown
    {
        /**
         * @var integer
         */
        public $tag;
        /**
         * @var integer
         */
        public $type;
        /**
         * @var mixed
         */
        public $value;
        /**
         * @param integer $tag
         * @param integer $type
         * @param mixed   $value
         */
        public function __construct($tag = 0, $type = null, $value = null)
        {
        }
    }
    /**
     * Write context
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class WriteContext
    {
        /**
         * @var \Protobuf\ComputeSizeContext
         */
        private $computeSizeContext;
        /**
         * @var \Protobuf\Binary\StreamWriter
         */
        private $writer;
        /**
         * @var \Protobuf\Stream
         */
        private $stream;
        /**
         * @var integer
         */
        private $length;
        /**
         * @param \Protobuf\Stream              $stream
         * @param \Protobuf\Binary\StreamWriter $writer
         * @param \Protobuf\ComputeSizeContext  $computeSizeContext
         */
        public function __construct(\Protobuf\Stream $stream, \Protobuf\Binary\StreamWriter $writer, \Protobuf\ComputeSizeContext $computeSizeContext)
        {
        }
        /**
         * @return \Protobuf\Binary\StreamWriter
         */
        public function getWriter()
        {
        }
        /**
         * @return \Protobuf\Stream
         */
        public function getStream()
        {
        }
        /**
         * @return \Protobuf\ComputeSizeContext
         */
        public function getComputeSizeContext()
        {
        }
    }
    /**
     * Default protocol buffers serializer implementation
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class MessageSerializer implements \Protobuf\Serializer
    {
        /**
         * @var \Protobuf\Configuration
         */
        private $config;
        /**
         * @param \Protobuf\Configuration $config
         */
        public function __construct(\Protobuf\Configuration $config = null)
        {
        }
        /**
         * @return \Protobuf\Configuration
         */
        public function getConfiguration()
        {
        }
        /**
         * Serializes the given message.
         *
         * @param \Protobuf\Message $message
         *
         * @return \Protobuf\Stream
         */
        public function serialize(\Protobuf\Message $message)
        {
        }
        /**
         * Deserializes the given data to the specified message.
         *
         * @param string                           $class
         * @param \Protobuf\Stream|resource|string $stream
         *
         * @return \Protobuf\Message
         */
        public function unserialize($class, $stream)
        {
        }
    }
    /**
     * Protobuf field label (optional, required, repeated) and types
     *
     * @author IvÃ¡n Montes <drslump@pollinimini.net>
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class Field
    {
        const LABEL_OPTIONAL = 1;
        const LABEL_REQUIRED = 2;
        const LABEL_REPEATED = 3;
        const LABEL_UNKNOWN = -1;
        const TYPE_DOUBLE = 1;
        const TYPE_FLOAT = 2;
        const TYPE_INT64 = 3;
        const TYPE_UINT64 = 4;
        const TYPE_INT32 = 5;
        const TYPE_FIXED64 = 6;
        const TYPE_FIXED32 = 7;
        const TYPE_BOOL = 8;
        const TYPE_STRING = 9;
        const TYPE_GROUP = 10;
        const TYPE_MESSAGE = 11;
        const TYPE_BYTES = 12;
        const TYPE_UINT32 = 13;
        const TYPE_ENUM = 14;
        const TYPE_SFIXED32 = 15;
        const TYPE_SFIXED64 = 16;
        const TYPE_SINT32 = 17;
        const TYPE_SINT64 = 18;
        const TYPE_UNKNOWN = -1;
        /**
         * @var array
         */
        protected static $names = [self::TYPE_DOUBLE => 'double', self::TYPE_FLOAT => 'float', self::TYPE_INT64 => 'int64', self::TYPE_UINT64 => 'uint64', self::TYPE_INT32 => 'int32', self::TYPE_FIXED64 => 'fixed64', self::TYPE_FIXED32 => 'fixed32', self::TYPE_BOOL => 'bool', self::TYPE_STRING => 'string', self::TYPE_MESSAGE => 'message', self::TYPE_BYTES => 'bytes', self::TYPE_UINT32 => 'uint32', self::TYPE_ENUM => 'enum', self::TYPE_SFIXED32 => 'sfixed32', self::TYPE_SFIXED64 => 'sfixed64', self::TYPE_SINT32 => 'sint32', self::TYPE_SINT64 => 'sint64'];
        /**
         * Obtain the label name (repeated, optional, required).
         *
         * @param string $label
         *
         * @return string
         */
        public static function getLabelName($label)
        {
        }
        /**
         * @param integer $type
         *
         * @return string
         */
        public static function getTypeName($type)
        {
        }
        /**
         * @param integer $type
         *
         * @return string
         */
        public static function getPhpType($type)
        {
        }
    }
    /**
     * This class contains constants and helper functions useful for dealing with
     * the Protocol Buffer wire format.
     *
     * @author IvÃ¡n Montes <drslump@pollinimini.net>
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class WireFormat
    {
        const WIRE_VARINT = 0;
        const WIRE_FIXED64 = 1;
        const WIRE_LENGTH = 2;
        const WIRE_GROUP_START = 3;
        const WIRE_GROUP_END = 4;
        const WIRE_FIXED32 = 5;
        const WIRE_UNKNOWN = -1;
        const TAG_TYPE_BITS = 3;
        const TAG_TYPE_MASK = 0x7;
        /**
         * @var array
         */
        private static $wireTypeMap = [\Protobuf\Field::TYPE_INT32 => \Protobuf\WireFormat::WIRE_VARINT, \Protobuf\Field::TYPE_INT64 => \Protobuf\WireFormat::WIRE_VARINT, \Protobuf\Field::TYPE_UINT32 => \Protobuf\WireFormat::WIRE_VARINT, \Protobuf\Field::TYPE_UINT64 => \Protobuf\WireFormat::WIRE_VARINT, \Protobuf\Field::TYPE_SINT32 => \Protobuf\WireFormat::WIRE_VARINT, \Protobuf\Field::TYPE_SINT64 => \Protobuf\WireFormat::WIRE_VARINT, \Protobuf\Field::TYPE_BOOL => \Protobuf\WireFormat::WIRE_VARINT, \Protobuf\Field::TYPE_ENUM => \Protobuf\WireFormat::WIRE_VARINT, \Protobuf\Field::TYPE_FIXED64 => \Protobuf\WireFormat::WIRE_FIXED64, \Protobuf\Field::TYPE_SFIXED64 => \Protobuf\WireFormat::WIRE_FIXED64, \Protobuf\Field::TYPE_DOUBLE => \Protobuf\WireFormat::WIRE_FIXED64, \Protobuf\Field::TYPE_STRING => \Protobuf\WireFormat::WIRE_LENGTH, \Protobuf\Field::TYPE_BYTES => \Protobuf\WireFormat::WIRE_LENGTH, \Protobuf\Field::TYPE_MESSAGE => \Protobuf\WireFormat::WIRE_LENGTH, \Protobuf\Field::TYPE_FIXED32 => \Protobuf\WireFormat::WIRE_FIXED32, \Protobuf\Field::TYPE_SFIXED32 => \Protobuf\WireFormat::WIRE_FIXED32, \Protobuf\Field::TYPE_FLOAT => \Protobuf\WireFormat::WIRE_FIXED32];
        /**
         * Given a field type, determines the wire type.
         *
         * @param integer $type
         * @param integer $default
         *
         * @return integer
         */
        public static function getWireType($type, $default)
        {
        }
        /**
         * Assert the wire type match
         *
         * @param integer $wire
         * @param integer $type
         */
        public static function assertWireType($wire, $type)
        {
        }
        /**
         * Given a tag value, determines the field number (the upper 29 bits).
         *
         * @param integer $tag
         *
         * @return integer
         */
        public static function getTagFieldNumber($tag)
        {
        }
        /**
         * Given a tag value, determines the wire type (the lower 3 bits).
         *
         * @param integer $tag
         *
         * @return integer
         */
        public static function getTagWireType($tag)
        {
        }
        /**
         * Makes a tag value given a field number and wire type
         *
         * @param integer $tag
         * @param integer $wireType
         *
         * @return integer
         */
        public static function getFieldKey($tag, $wireType)
        {
        }
    }
    /**
     * Base configuration class for the protobuf
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class Configuration
    {
        /**
         * @var \Protobuf\Extension\ExtensionRegistry
         */
        private $extensionRegistry;
        /**
         * @var \Protobuf\Binary\Platform\PlatformFactory
         */
        private $platformFactory;
        /**
         * @var \Protobuf\Binary\StreamWriter
         */
        private $streamWriter;
        /**
         * @var \Protobuf\Binary\StreamReader
         */
        private $streamReader;
        /**
         * @var \Protobuf\Binary\SizeCalculator
         */
        private $sizeCalculator;
        /**
         * @var \Protobuf\DescriptorLoader
         */
        protected static $instance;
        /**
         * Return a ExtensionRegistry.
         *
         * @return \Protobuf\Extension\ExtensionRegistry
         */
        public function getExtensionRegistry()
        {
        }
        /**
         * Set a ExtensionRegistry.
         *
         * @param \Protobuf\Extension\ExtensionRegistry $extensionRegistry
         */
        public function setExtensionRegistry(\Protobuf\Extension\ExtensionRegistry $extensionRegistry)
        {
        }
        /**
         * Return a PlatformFactory.
         *
         * @return \Protobuf\Binary\Platform\PlatformFactory
         */
        public function getPlatformFactory()
        {
        }
        /**
         * Return a StreamReader
         *
         * @return \Protobuf\Binary\StreamReader
         */
        public function getStreamReader()
        {
        }
        /**
         * Return a StreamWriter
         *
         * @return \Protobuf\Binary\StreamWriter
         */
        public function getStreamWriter()
        {
        }
        /**
         * Return a SizeCalculator
         *
         * @return \Protobuf\Binary\SizeCalculator
         */
        public function getSizeCalculator()
        {
        }
        /**
         * Sets the PlatformFactory.
         *
         * @param \Protobuf\Binary\Platform\PlatformFactory $platformFactory
         */
        public function setPlatformFactory(\Protobuf\Binary\Platform\PlatformFactory $platformFactory)
        {
        }
        /**
         * Create a compute size context.
         *
         * @return \Protobuf\ComputeSizeContext
         */
        public function createComputeSizeContext()
        {
        }
        /**
         * Create a write context.
         *
         * @return \Protobuf\WriteContext
         */
        public function createWriteContext()
        {
        }
        /**
         * Create a read context.
         *
         * @param \Protobuf\Stream|resource|string $stream
         *
         * @return \Protobuf\ReadContext
         */
        public function createReadContext($stream)
        {
        }
        /**
         * Returns single instance of this class
         *
         * @return \Protobuf\Configuration
         */
        public static function getInstance()
        {
        }
    }
    /**
     * PHP stream implementation
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class Stream
    {
        /**
         * @var resource
         */
        private $stream;
        /**
         * @var integer
         */
        private $size;
        /**
         * @param resource $stream
         * @param integer  $size
         *
         * @throws \InvalidArgumentException if the stream is not a stream resource
         */
        public function __construct($stream, $size = null)
        {
        }
        /**
         * Closes the stream when the destructed
         */
        public function __destruct()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function __toString()
        {
        }
        /**
         * Returns the remaining contents of the stream as a string.
         *
         * @return string
         */
        public function getContents()
        {
        }
        /**
         * Get the size of the stream
         *
         * @return int|null Returns the size in bytes if known
         *
         * @throws \InvalidArgumentException If cannot find out the stream size
         */
        public function getSize()
        {
        }
        /**
         * Returns true if the stream is at the end of the stream.
         *
         * @return bool
         */
        public function eof()
        {
        }
        /**
         * Returns the current position of the file read/write pointer
         *
         * @return int
         *
         * @throws \RuntimeException If cannot find out the stream position
         */
        public function tell()
        {
        }
        /**
         * Seek to a position in the stream
         *
         * @param int $offset
         * @param int $whence
         *
         * @throws \RuntimeException If cannot find out the stream position
         */
        public function seek($offset, $whence = SEEK_SET)
        {
        }
        /**
         * Read data from the stream
         *
         * @param int $length
         *
         * @return string
         */
        public function read($length)
        {
        }
        /**
         * Read stream
         *
         * @param int $length
         *
         * @return \Protobuf\Stream
         *
         * @throws \RuntimeException
         */
        public function readStream($length)
        {
        }
        /**
         * Write data to the stream
         *
         * @param string $bytes
         * @param int    $length
         *
         * @return int
         *
         * @throws \RuntimeException
         */
        public function write($bytes, $length)
        {
        }
        /**
         * Write stream
         *
         * @param \Protobuf\Stream $stream
         * @param int              $length
         *
         * @return int
         *
         * @throws \RuntimeException
         */
        public function writeStream(\Protobuf\Stream $stream, $length)
        {
        }
        /**
         * Wrap the input resource in a stream object.
         *
         * @param \Protobuf\Stream|resource|string $resource
         * @param integer                          $size
         *
         * @return \Protobuf\Stream
         *
         * @throws \InvalidArgumentException if the $resource arg is not valid.
         */
        public static function wrap($resource = '', $size = null)
        {
        }
        /**
         * Create a new stream.
         *
         * @return \Protobuf\Stream
         */
        public static function create()
        {
        }
        /**
         * Create a new stream from a string.
         *
         * @param string  $resource
         * @param integer $size
         *
         * @return \Protobuf\Stream
         */
        public static function fromString($resource = '', $size = null)
        {
        }
    }
    /**
     * Message collection
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class MessageCollection extends \ArrayObject implements \Protobuf\Collection
    {
        /**
         * @param array<\Protobuf\Message> $values
         */
        public function __construct(array $values = [])
        {
        }
        /**
         * Adds a message to this collection
         *
         * @param \Protobuf\Message $message
         */
        public function add(\Protobuf\Message $message)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function offsetSet($offset, $value)
        {
        }
    }
}
namespace Protobuf\Binary {
    /**
     * Implements reading primitives for Protobuf binary streams.
     *
     * @author IvÃ¡n Montes <drslump@pollinimini.net>
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class StreamReader
    {
        /**
         * @var \Protobuf\Configuration
         */
        protected $config;
        /**
         * @var \Protobuf\Stream
         */
        protected $stream;
        /**
         * @var bool
         */
        protected $isBigEndian;
        /**
         * Constructor
         *
         * @param \Protobuf\Configuration $config
         */
        public function __construct(\Protobuf\Configuration $config)
        {
        }
        /**
         * Reads a byte.
         *
         * @param \Protobuf\Stream $stream
         *
         * @return integer
         */
        public function readByte(\Protobuf\Stream $stream)
        {
        }
        /**
         * Decode a varint.
         *
         * @param \Protobuf\Stream $stream
         *
         * @return integer
         */
        public function readVarint(\Protobuf\Stream $stream)
        {
        }
        /**
         * Decodes a zigzag integer of the given bits.
         *
         * @param \Protobuf\Stream $stream
         *
         * @return integer
         */
        public function readZigzag(\Protobuf\Stream $stream)
        {
        }
        /**
         * Decode a fixed 32bit integer with sign.
         *
         * @param \Protobuf\Stream $stream
         *
         * @return integer
         */
        public function readSFixed32(\Protobuf\Stream $stream)
        {
        }
        /**
         * Decode a fixed 32bit integer without sign.
         *
         * @param \Protobuf\Stream $stream
         *
         * @return integer
         */
        public function readFixed32(\Protobuf\Stream $stream)
        {
        }
        /**
         * Decode a fixed 64bit integer with sign.
         *
         * @param \Protobuf\Stream $stream
         *
         * @return integer
         */
        public function readSFixed64(\Protobuf\Stream $stream)
        {
        }
        /**
         * Decode a fixed 64bit integer without sign.
         *
         * @param \Protobuf\Stream $stream
         *
         * @return integer
         */
        public function readFixed64(\Protobuf\Stream $stream)
        {
        }
        /**
         * Decode a 32bit float.
         *
         * @param \Protobuf\Stream $stream
         *
         * @return float
         */
        public function readFloat(\Protobuf\Stream $stream)
        {
        }
        /**
         * Decode a 64bit double.
         *
         * @param \Protobuf\Stream $stream
         *
         * @return float
         */
        public function readDouble(\Protobuf\Stream $stream)
        {
        }
        /**
         * Decode a bool.
         *
         * @param \Protobuf\Stream $stream
         *
         * @return bool
         */
        public function readBool(\Protobuf\Stream $stream)
        {
        }
        /**
         * Decode a string.
         *
         * @param \Protobuf\Stream $stream
         *
         * @return string
         */
        public function readString(\Protobuf\Stream $stream)
        {
        }
        /**
         * Decode a stream of bytes.
         *
         * @param \Protobuf\Stream $stream
         *
         * @return \Protobuf\Stream
         */
        public function readByteStream(\Protobuf\Stream $stream)
        {
        }
        /**
         * Read unknown scalar value.
         *
         * @param \Protobuf\Stream $stream
         * @param integer          $wire
         *
         * @return scalar
         */
        public function readUnknown(\Protobuf\Stream $stream, $wire)
        {
        }
    }
    /**
     * Compute the number of bytes that would be needed to encode a value
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class SizeCalculator
    {
        /**
         * @var \Protobuf\Configuration
         */
        protected $config;
        /**
         * Constructor
         *
         * @param \Protobuf\Configuration $config
         */
        public function __construct(\Protobuf\Configuration $config)
        {
        }
        /**
         * Compute the number of bytes that would be needed to encode a varint.
         *
         * @param integer $value
         *
         * @return integer
         */
        public function computeVarintSize($value)
        {
        }
        /**
         * Compute the number of bytes that would be needed to encode a zigzag 32.
         *
         * @param integer $value
         *
         * @return integer
         */
        public function computeZigzag32Size($value)
        {
        }
        /**
         * Compute the number of bytes that would be needed to encode a zigzag 64.
         *
         * @param integer $value
         *
         * @return integer
         */
        public function computeZigzag64Size($value)
        {
        }
        /**
         * Compute the number of bytes that would be needed to encode a string.
         *
         * @param integer $value
         *
         * @return integer
         */
        public function computeStringSize($value)
        {
        }
        /**
         * Compute the number of bytes that would be needed to encode a stream of bytes.
         *
         * @param \Protobuf\Stream $value
         *
         * @return integer
         */
        public function computeByteStreamSize(\Protobuf\Stream $value)
        {
        }
        /**
         * Compute the number of bytes that would be needed to encode a sFixed32.
         *
         * @return integer
         */
        public function computeSFixed32Size()
        {
        }
        /**
         * Compute the number of bytes that would be needed to encode a fixed32.
         *
         * @return integer
         */
        public function computeFixed32Size()
        {
        }
        /**
         * Compute the number of bytes that would be needed to encode a sFixed64.
         *
         * @return integer
         */
        public function computeSFixed64Size()
        {
        }
        /**
         * Compute the number of bytes that would be needed to encode a fixed64.
         *
         *
         * @return integer
         */
        public function computeFixed64Size()
        {
        }
        /**
         * Compute the number of bytes that would be needed to encode a float.
         *
         * @return integer
         */
        public function computeFloatSize()
        {
        }
        /**
         * Compute the number of bytes that would be needed to encode a double.
         *
         * @return integer
         */
        public function computeDoubleSize()
        {
        }
        /**
         * Compute the number of bytes that would be needed to encode a bool.
         *
         * @return integer
         */
        public function computeBoolSize()
        {
        }
    }
}
namespace Protobuf\Binary\Platform {
    /**
     * Check current architecture
     *
     * @author IvÃ¡n Montes <drslump@pollinimini.net>
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class BigEndian
    {
        /**
         * @var bool
         */
        protected static $is32Bit;
        /**
         * @var integer
         */
        protected static $isBigEndian;
        /**
         * Check if the current architecture is Big Endian.
         *
         * @return bool
         */
        public static function isBigEndian()
        {
        }
        /**
         * @return bool
         */
        public static function is32Bit()
        {
        }
    }
    /**
     * Platform factory
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class PlatformFactory
    {
        /**
         * @var \Protobuf\Binary\Platform\NegativeEncoder
         */
        private $negativeEncoder;
        /**
         * Return a NegativeEncoder.
         *
         * @return \Protobuf\Binary\Platform\NegativeEncoder
         */
        public function getNegativeEncoder()
        {
        }
        /**
         * @param string $name
         *
         * @return boolean
         */
        public function isExtensionLoaded($name)
        {
        }
        /**
         * @return boolean
         */
        public function is32Bit()
        {
        }
    }
    /**
     * Implements platform specific encoding of negative values.
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    interface NegativeEncoder
    {
        /**
         * Encode a negative varint.
         *
         * @param integer $value
         *
         * @return array
         */
        public function encodeVarint($value);
        /**
         * Encode an integer as a fixed of 64bits.
         *
         * @param integer $value
         *
         * @return string
         */
        public function encodeSFixed64($value);
    }
    /**
     * GMP negative values enconding.
     *
     * @author IvÃ¡n Montes <drslump@pollinimini.net>
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class GmpNegativeEncoder implements \Protobuf\Binary\Platform\NegativeEncoder
    {
        /**
         * @var \GMP
         */
        protected $gmp_x00;
        /**
         * @var \GMP
         */
        protected $gmp_x7f;
        /**
         * @var \GMP
         */
        protected $gmp_x80;
        /**
         * @var \GMP
         */
        protected $gmp_xff;
        /**
         * @var \GMP
         */
        protected $gmp_x100;
        /**
         * @var bool
         */
        protected $is32Bit;
        /**
         * Constructor
         */
        public function __construct()
        {
        }
        /**
         * {@inheritdoc}
         */
        public function encodeVarint($varint)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function encodeSFixed64($sFixed64)
        {
        }
    }
    /**
     * BC math negative values enconding.
     *
     * @author IvÃ¡n Montes <drslump@pollinimini.net>
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class BcNegativeEncoder implements \Protobuf\Binary\Platform\NegativeEncoder
    {
        /**
         * {@inheritdoc}
         */
        public function encodeVarint($varint)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function encodeSFixed64($sFixed64)
        {
        }
    }
    /**
     * Invalid platform for negative values
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class InvalidNegativeEncoder implements \Protobuf\Binary\Platform\NegativeEncoder
    {
        /**
         * {@inheritdoc}
         */
        public function encodeVarint($varint)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function encodeSFixed64($sFixed64)
        {
        }
    }
}
namespace Protobuf\Binary {
    /**
     * Implements writing primitives for Protobuf binary streams.
     *
     * @author IvÃ¡n Montes <drslump@pollinimini.net>
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class StreamWriter
    {
        /**
         * @var \Protobuf\Configuration
         */
        protected $config;
        /**
         * @var \Protobuf\Binary\Platform\NegativeEncoder
         */
        protected $negativeEncoder;
        /**
         * @var bool
         */
        protected $isBigEndian;
        /**
         * Constructor
         *
         * @param \Protobuf\Configuration $config
         */
        public function __construct(\Protobuf\Configuration $config)
        {
        }
        /**
         * Store the given bytes in the stream.
         *
         * @param \Protobuf\Stream $stream
         * @param string           $bytes
         * @param int              $length
         */
        public function writeBytes(\Protobuf\Stream $stream, $bytes, $length = null)
        {
        }
        /**
         * Store a single byte.
         *
         * @param \Protobuf\Stream $stream
         * @param integer          $value
         */
        public function writeByte(\Protobuf\Stream $stream, $value)
        {
        }
        /**
         * Store an integer encoded as varint.
         *
         * @param \Protobuf\Stream $stream
         * @param integer          $value
         */
        public function writeVarint(\Protobuf\Stream $stream, $value)
        {
        }
        /**
         * Encodes an integer with zigzag.
         *
         * @param \Protobuf\Stream $stream
         * @param integer          $value
         * @param integer          $base
         */
        public function writeZigzag(\Protobuf\Stream $stream, $value, $base = 32)
        {
        }
        /**
         * Encodes an integer with zigzag.
         *
         * @param \Protobuf\Stream $stream
         * @param integer          $value
         */
        public function writeZigzag32(\Protobuf\Stream $stream, $value)
        {
        }
        /**
         * Encodes an integer with zigzag.
         *
         * @param \Protobuf\Stream $stream
         * @param integer          $value
         */
        public function writeZigzag64(\Protobuf\Stream $stream, $value)
        {
        }
        /**
         * Encode an integer as a fixed of 32bits with sign.
         *
         * @param \Protobuf\Stream $stream
         * @param integer          $value
         */
        public function writeSFixed32(\Protobuf\Stream $stream, $value)
        {
        }
        /**
         * Encode an integer as a fixed of 32bits without sign.
         *
         * @param \Protobuf\Stream $stream
         * @param integer          $value
         */
        public function writeFixed32(\Protobuf\Stream $stream, $value)
        {
        }
        /**
         * Encode an integer as a fixed of 64bits with sign.
         *
         * @param \Protobuf\Stream $stream
         * @param integer          $value
         */
        public function writeSFixed64(\Protobuf\Stream $stream, $value)
        {
        }
        /**
         * Encode an integer as a fixed of 64bits without sign.
         *
         * @param \Protobuf\Stream $stream
         * @param integer          $value
         */
        public function writeFixed64(\Protobuf\Stream $stream, $value)
        {
        }
        /**
         * Encode a number as a 32bit float.
         *
         * @param \Protobuf\Stream $stream
         * @param float            $value
         */
        public function writeFloat(\Protobuf\Stream $stream, $value)
        {
        }
        /**
         * Encode a number as a 64bit double.
         *
         * @param \Protobuf\Stream $stream
         * @param float            $value
         */
        public function writeDouble(\Protobuf\Stream $stream, $value)
        {
        }
        /**
         * Encode a bool.
         *
         * @param \Protobuf\Stream $stream
         * @param bool             $value
         */
        public function writeBool(\Protobuf\Stream $stream, $value)
        {
        }
        /**
         * Encode a string.
         *
         * @param \Protobuf\Stream $stream
         * @param string           $value
         */
        public function writeString(\Protobuf\Stream $stream, $value)
        {
        }
        /**
         * Encode a stream of bytes.
         *
         * @param \Protobuf\Stream $stream
         * @param \Protobuf\Stream $value
         */
        public function writeByteStream(\Protobuf\Stream $stream, \Protobuf\Stream $value)
        {
        }
        /**
         * Write the given stream.
         *
         * @param \Protobuf\Stream $stream
         * @param \Protobuf\Stream $value
         * @param int              $length
         */
        public function writeStream(\Protobuf\Stream $stream, \Protobuf\Stream $value, $length = null)
        {
        }
    }
}
namespace Protobuf {
    /**
     * Protobuf Stream collection
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class StreamCollection extends \ArrayObject implements \Protobuf\Collection
    {
        /**
         * @param array<\Protobuf\Stream> $values
         */
        public function __construct(array $values = [])
        {
        }
        /**
         * Adds a \Protobuf\Stream to this collection
         *
         * @param \Protobuf\Stream $stream
         */
        public function add(\Protobuf\Stream $stream)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function offsetSet($offset, $value)
        {
        }
    }
    /**
     * Base Exception
     *
     * @author IvÃ¡n Montes <drslump@pollinimini.net>
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class Exception extends \Exception
    {
    }
    /**
     * Compute Size Context
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class ComputeSizeContext
    {
        /**
         * @var \Protobuf\Binary\SizeCalculator
         */
        private $calculator;
        /**
         * @param \Protobuf\Binary\SizeCalculator $calculator
         */
        public function __construct(\Protobuf\Binary\SizeCalculator $calculator)
        {
        }
        /**
         * @return \Protobuf\Binary\SizeCalculator
         */
        public function getSizeCalculator()
        {
        }
    }
    /**
     * Scalar collection
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class ScalarCollection extends \ArrayObject implements \Protobuf\Collection
    {
        /**
         * @param array<scalar> $values
         */
        public function __construct(array $values = [])
        {
        }
        /**
         * Adds a value to this collection
         *
         * @param scalar $value
         */
        public function add($value)
        {
        }
        /**
         * {@inheritdoc}
         */
        public function offsetSet($offset, $value)
        {
        }
    }
    /**
     * Used to keep track of fields which were seen when Unknown value parsing a message
     *
     * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
     */
    class UnknownFieldSet extends \ArrayObject implements \Protobuf\Collection
    {
        /**
         * Adds an element to set.
         *
         * @param \Protobuf\Unknown $unknown
         */
        public function add(\Protobuf\Unknown $unknown)
        {
        }
    }
}
namespace {
    class catalog extends \CModule
    {
        var $MODULE_ID = "catalog";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        private $bitrix24mode = \null;
        function __construct()
        {
        }
        function DoInstall()
        {
        }
        function InstallFiles()
        {
        }
        function InstallDB()
        {
        }
        function InstallEvents()
        {
        }
        function DoUnInstall()
        {
        }
        function UnInstallFiles()
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function UnInstallEvents()
        {
        }
        function GetModuleTasks()
        {
        }
        public static function getTableSchema()
        {
        }
        private function __getLangMessages($path, $messID, $langList)
        {
        }
    }
    /**
     * Class ProductSubscribe
     *
     * It provides an interface to work on a subscription product.
     */
    class ProductSubscribe extends \CBitrixComponent
    {
        /**
         * Errors list.
         * @var string[]
         */
        protected $errors = array();
        /**
         * Event called from includeComponent before component execution.
         */
        public function onIncludeComponentLang()
        {
        }
        /**
         * Event called from includeComponent before component execution.
         * Takes component parameters as argument and should return it formatted as needed.
         *
         * @param $params
         * @return mixed
         */
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * Check Required Modules
         * @throws Exception
         */
        protected function checkModules()
        {
        }
        /**
         * Prepare data to render.
         * @throws SystemException
         */
        protected function formatResult()
        {
        }
        protected function getStatusSubscribe()
        {
        }
        /**
         * Function calls __includeComponent in order to execute the component.
         */
        public function executeComponent()
        {
        }
    }
    class CatalogProductCardFeedbackComponent extends \CBitrixComponent
    {
        protected static function getFeedbackFormInfo($region) : ?array
        {
        }
        protected function checkModules() : bool
        {
        }
        private function getUser() : ?\CUser
        {
        }
        private function getUserName() : string
        {
        }
        private function getUserEmail() : string
        {
        }
        public function executeComponent()
        {
        }
    }
    class CatalogProductControllerComponent extends \CBitrixComponent
    {
        private const TEMPLATE_CODE = 'SECTION';
        public function onPrepareComponentParams($params) : array
        {
        }
        protected function getTemplateUrls() : array
        {
        }
        protected function checkModules() : bool
        {
        }
        protected function checkFeature() : bool
        {
        }
        protected function processSefMode($templateUrls) : array
        {
        }
        protected function processRegularMode($templateUrls) : array
        {
        }
        public function executeComponent()
        {
        }
    }
    class CatalogProductsSubscribeListComponent extends \CCatalogViewedProductsComponent
    {
        const ACTION_SUBSCRIBER_IDENTIFICATION = 'subscriberIdentification';
        const ACTION_ACCESS_CODE_VERIFICATION = 'accessCodeVerification';
        const ACTION_UNSUBSCRIBE = 'unSubscribe';
        /**
         * @var integer
         */
        protected $userId = 0;
        /**
         * List of product ids which will be showed.
         * @var array
         */
        protected $listProductId = array();
        protected $codeList = array();
        /**
         * Event called from includeComponent before component execution.
         *
         * <p>Takes component parameters as argument and should return it formatted as needed.</p>
         * @param array[string]mixed $arParams
         * @return array[string]mixed
         *
         */
        public function onPrepareComponentParams($params)
        {
        }
        protected function prepareData()
        {
        }
        /**
         * Returns list of product ids which will be showed.
         *
         * @return array
         */
        protected function getProductIds()
        {
        }
        protected function prepareItemData($itemId, array $sku, &$params, $offerId = 0)
        {
        }
        protected function getPropertyCodeList(array $sku)
        {
        }
        protected function formatResult()
        {
        }
        protected function doActionsList()
        {
        }
        protected function runSubscriberIdentification()
        {
        }
        protected function authorizeSubscriber()
        {
        }
        protected function unSubscribe()
        {
        }
    }
    class CBitrixCatalogImport1C extends \CBitrixComponent
    {
        const XML_TREE_TABLE_NAME = 'b_xml_tree_import_1c';
        public function checkDatabaseServerTime($secondsDrift = 600)
        {
        }
        public function cleanUpDirectory($directoryName)
        {
        }
    }
    class CIBlockCMLExport
    {
        var $fp = \null;
        var $IBLOCK_ID = \false;
        var $bExtended = \false;
        var $work_dir = \false;
        var $file_dir = \false;
        /** @var bool|array */
        var $next_step = \false;
        var $arIBlock = \false;
        var $prices = \false;
        var $only_price = \false;
        var $download_files = \true;
        var $export_as_url = \false;
        var $PRODUCT_IBLOCK_ID = \false;
        function Init($fp, $IBLOCK_ID, $next_step, $bExtended = \false, $work_dir = \false, $file_dir = \false, $bCheckPermissions = \true, $PRODUCT_IBLOCK_ID = \false)
        {
        }
        function DoNotDownloadCloudFiles()
        {
        }
        function NotCatalog()
        {
        }
        function ExportFileAsURL()
        {
        }
        function GetIBlockXML_ID($IBLOCK_ID, $XML_ID = \false)
        {
        }
        function GetSectionXML_ID($IBLOCK_ID, $SECTION_ID, $XML_ID = \false)
        {
        }
        function GetElementXML_ID($IBLOCK_ID, $ELEMENT_ID, $XML_ID = \false)
        {
        }
        function GetPropertyXML_ID($IBLOCK_ID, $NAME, $PROPERTY_ID, $XML_ID)
        {
        }
        function StartExport()
        {
        }
        function ExportFile($FILE_ID)
        {
        }
        function ExportEnum($arUserField, $value)
        {
        }
        function formatXMLNode($level, $tagName, $value)
        {
        }
        function StartExportMetadata()
        {
        }
        function ExportSectionsProperties($arUserFields)
        {
        }
        function ExportSections(&$SECTION_MAP, $start_time, $INTERVAL, $FILTER = "", $PROPERTY_MAP = array())
        {
        }
        function ExportProperties(&$PROPERTY_MAP)
        {
        }
        function ExportSmartFilter($level, $iblockId, $sectionId = \false, $PROPERTY_MAP, $productIblockId = 0)
        {
        }
        function ExportPrices()
        {
        }
        function EndExportMetadata()
        {
        }
        function StartExportCatalog($with_metadata = \true, $changes_only = \false)
        {
        }
        function ExportPropertyValue($xml_id, $value, $type = \null)
        {
        }
        function exportInheritedTemplates($level, \Bitrix\Iblock\InheritedProperty\BaseTemplate $template)
        {
        }
        /**
         * @param array $arElement
         * @param array $arFilter
         * @return array
         */
        function preparePropertiesValues($arElement, $arFilter = array("ACTIVE" => "Y"))
        {
        }
        function exportElementProperties($arElement, $PROPERTY_MAP)
        {
        }
        function preparePropertyValue($arProp, $arValue, &$value, &$bSerialized)
        {
        }
        function exportElementFields($arElement, $SECTION_MAP)
        {
        }
        function aliasXmlId($xml_id)
        {
        }
        function exportElement($arElement, $SECTION_MAP, $PROPERTY_MAP)
        {
        }
        function ExportElements($PROPERTY_MAP, $SECTION_MAP, $start_time, $INTERVAL, $counter_limit = 0, $arElementFilter = \false)
        {
        }
        function EndExportCatalog()
        {
        }
        function ExportProductSet($elementId, $elementXml)
        {
        }
        function ExportProductSets()
        {
        }
        function EndExport()
        {
        }
    }
    class CIBlockCMLExportPackage extends \CIBlockCMLExport
    {
        function StartExport()
        {
        }
        function exportElementFields($arElement, $SECTION_MAP)
        {
        }
        function aliasXmlId($xml_id)
        {
        }
        function preparePropertyValue($arProp, $arValue, &$value, &$bSerialized)
        {
        }
        function ExportProperties(&$PROPERTY_MAP)
        {
        }
        function ExportPropertyDirectory($arProperty)
        {
        }
        function preparePropertiesValues($arElement, $arFilter = array("ACTIVE" => "Y"))
        {
        }
        function getExcludePropertyCode()
        {
        }
    }
    final class export
    {
        protected $packageMode = \false;
        protected $package = \null;
        protected $nextStep = array();
        protected $step = array();
        protected $currentsList = array();
        public function __construct($nextStep, $step)
        {
        }
        /**
         * @param bool $packageMode
         */
        public function setPackageMode($packageMode)
        {
        }
        /**
         * @return bool
         */
        public function isPackageMode()
        {
        }
        /**
         * @param int $package
         */
        public function setPackage($package)
        {
        }
        /**
         * @return null
         */
        public function getPackage()
        {
        }
        /**
         * @return array
         */
        public function getNextStep()
        {
        }
        /**
         * @return array
         */
        public function getStep()
        {
        }
        /**
         * @param $currents
         */
        public function loadCurrents($currents)
        {
        }
        /**
         * @return array
         */
        public function getCurrentsList()
        {
        }
        /**
         * @param $package
         * @param $value
         */
        public function setCurrent($package, $value)
        {
        }
        /**
         * @param int $package
         * @return mixed
         */
        public function getCurrent($package = 0)
        {
        }
        /**
         * @return int|mixed
         */
        public function getSummCurrent()
        {
        }
        /**
         * @param $count
         */
        public function saveCurrent($count)
        {
        }
        /**
         * @param $content
         * @param null $number
         * @return mixed
         */
        public function prepareContents($content, $number = \null)
        {
        }
    }
    abstract class ExportSchema
    {
        protected $export = \null;
        protected $params = array();
        protected $fp = \null;
        protected $start_time = '';
        public function initExport(\CIBlockCMLExport $export, $fp, $start_time, $params, $filter = array())
        {
        }
        /**
         * @return CIBlockCMLExport|null
         */
        public function getExport()
        {
        }
        /**
         * @return array
         */
        public function getParams()
        {
        }
        public abstract function exportMeta();
        public abstract function exportCatalog();
        public abstract function exportOffers();
        public function exportFinished()
        {
        }
    }
    class ExportSchemaDefault extends \ExportSchema
    {
        public function exportMeta()
        {
        }
        public function exportCatalog()
        {
        }
        public function exportOffers()
        {
        }
    }
    class ExportSchemaPackage extends \ExportSchema
    {
        protected function init($package)
        {
        }
        public function exportMeta()
        {
        }
        public function exportCatalog()
        {
        }
        public function exportOffers()
        {
        }
    }
    class ManagerExport
    {
        const STEP_META = 1;
        const STEP_CATALOG = 2;
        const STEP_OFFERS = 3;
        const STEP_FINISHED = 4;
        const STEP_OFFERS_MIXED = 5;
        const SCHAME_DEFAULT = 0;
        const SCHAME_PACKAGE = 1;
        /**
         * @param $typeId
         * @return ExportSchemaDefault|ExportSchemaPackage
         * @throws \Bitrix\Main\NotSupportedException
         */
        public static function createSchema($typeId)
        {
        }
        /**
         * @param $typeId
         * @return CIBlockCMLExport|CIBlockCMLExportPackage
         * @throws \Bitrix\Main\NotSupportedException
         */
        public static function createExport($typeId)
        {
        }
    }
    class CCatalogRecommendedProductsComponent extends \CCatalogViewedProductsComponent
    {
        /**
         * @override
         */
        public function onIncludeComponentLang()
        {
        }
        /**
         * @param $params
         * @override
         * @return array
         */
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * @override
         *
         * @return bool
         */
        protected function extractDataFromCache()
        {
        }
        protected function prepareData()
        {
        }
        protected function putDataToCache()
        {
        }
        protected function abortDataCache()
        {
        }
        /**
         * Get Linked product ids
         *
         * @param $productId
         * @param $propertyName
         *
         * @return array
         */
        protected function getRecommendedIds($productId, $propertyName)
        {
        }
        /**
         * @override
         * @return integer[]
         */
        protected function getProductIds()
        {
        }
        /**
         * Check action variable.
         *
         * @param array $params			Component params.
         * @return string
         */
        protected function prepareActionVariable($params)
        {
        }
    }
    class CatalogProductsViewedComponent extends \Bitrix\Iblock\Component\ElementList
    {
        public function __construct($component = \null)
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        protected function checkModules()
        {
        }
        protected function getProductIds()
        {
        }
    }
    class CatalogProductVariationDetailsComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable, \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        private $iblockId;
        private $productId;
        private $variationId;
        /** @var \Bitrix\Catalog\Component\VariationForm */
        private $form;
        /** @var \Bitrix\Catalog\v2\Sku\BaseSku */
        private $variation;
        public function __construct($component = \null)
        {
        }
        protected function showErrors()
        {
        }
        public function configureActions()
        {
        }
        protected function listKeysSignedParameters()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
        private function prepareDescriptionFields(&$fields) : void
        {
        }
        private function preparePictureFields(&$fields) : void
        {
        }
        private function parsePropertyFields(&$fields) : array
        {
        }
        private function prepareFilePropertyFromEditor($propertyFields, $descriptions, $deleted) : array
        {
        }
        private function prepareFilePropertyFromGrid($propertyFields) : array
        {
        }
        private function checkCompatiblePictureFields(\Bitrix\Catalog\v2\BaseIblockElementEntity $entity, array &$propertyFields) : void
        {
        }
        private function parsePriceFields(&$fields)
        {
        }
        private function parseMeasureRatioFields(&$fields)
        {
        }
        public function saveAction()
        {
        }
        protected function checkModules()
        {
        }
        protected function checkPermissions() : bool
        {
        }
        protected function checkRequiredParameters()
        {
        }
        private function getApplication()
        {
        }
        protected function setIblockId(int $iblockId) : self
        {
        }
        protected function getIblockId() : int
        {
        }
        private function hasIblockId() : bool
        {
        }
        protected function setProductId(int $productId) : self
        {
        }
        protected function getProductId() : int
        {
        }
        private function hasProductId() : bool
        {
        }
        protected function setVariationId(int $variationId) : self
        {
        }
        protected function getVariationId() : int
        {
        }
        private function hasVariationId() : bool
        {
        }
        protected function placePageTitle(\Bitrix\Catalog\v2\Sku\BaseSku $variation) : void
        {
        }
        protected function loadProduct()
        {
        }
        protected function getVariation()
        {
        }
        protected function loadVariation()
        {
        }
        protected function createVariation()
        {
        }
        protected function initializeVariationFields(\Bitrix\Catalog\v2\Sku\BaseSku $variation)
        {
        }
        protected function getCreationPropertyUrl() : string
        {
        }
        protected function getVariationDetailUrl() : string
        {
        }
        private function getForm()
        {
        }
        public function updatePropertyAction(array $fields) : array
        {
        }
        public function addPropertyAction(array $fields = []) : array
        {
        }
    }
    class CatalogProductCardIblockSectionField extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable, \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        private $iblockId;
        private $productId;
        public function __construct($component = \null)
        {
        }
        protected function showErrors()
        {
        }
        public function configureActions()
        {
        }
        protected function listKeysSignedParameters()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
        protected function checkModules()
        {
        }
        protected function checkPermissions()
        {
        }
        protected function checkRequiredParameters()
        {
        }
        private function hasIblockId() : bool
        {
        }
        private function hasProductId() : bool
        {
        }
        private function hasSelectedSectionIds() : bool
        {
        }
        protected function initializeSections()
        {
        }
        private function getSectionsData(array $sectionIds)
        {
        }
        private function getSelectedSections()
        {
        }
        private function loadSectionsForProduct($productId)
        {
        }
    }
    class CatalogIblockSectionFieldController extends \Bitrix\Main\Engine\Controller
    {
        public function lazyLoadAction($iblockId, $selectedSectionIds, $productId = \null) : ?\Bitrix\Main\Engine\Response\Component
        {
        }
        public function getSectionsAction($iblockId) : array
        {
        }
        public function addSectionAction($iblockId, $name) : array
        {
        }
    }
    class CCatalogViewedProductsMailComponent extends \CCatalogViewedProductsComponent
    {
        /**
         * Check Required Modules
         * @throws Exception
         */
        protected function checkModules()
        {
        }
        /**
         * Event called from includeComponent before component execution.
         *
         * <p>Takes component parameters as argument and should return it formatted as needed.</p>
         * @param array[string]mixed $arParams
         * @return array[string]mixed
         *
         */
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * @override
         * @return integer[]
         */
        protected function getProductIds()
        {
        }
        protected function prepareItemData($itemId, array $sku, &$params, $offerId = 0, $iteration = \false)
        {
        }
        protected function getPropertyCodeList(array $sku)
        {
        }
    }
    class CatalogPropertyCreationFormComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable, \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        private $iblockId;
        private $propertyType;
        private $propertyId = 0;
        public function __construct($component = \null)
        {
        }
        protected function showErrors()
        {
        }
        public function configureActions()
        {
        }
        protected function listKeysSignedParameters()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
        protected function checkModules()
        {
        }
        protected function checkPermissions()
        {
        }
        protected function checkRequiredParameters()
        {
        }
        protected function setIblockId(int $iblockId) : self
        {
        }
        protected function getIblockId() : ?int
        {
        }
        private function hasIblockId() : bool
        {
        }
        protected function setPropertyType($type) : self
        {
        }
        public function getPropertyType() : ?string
        {
        }
        private function hasPropertyType() : bool
        {
        }
        protected function hasPropertyId() : bool
        {
        }
        protected function setPropertyId($id) : self
        {
        }
        public function getPropertyId() : ?int
        {
        }
        private function getPropertyVariationFeatureList() : array
        {
        }
        public function addPropertyAction(array $fields = []) : ?array
        {
        }
        public function updatePropertyAction(array $fields) : ?int
        {
        }
    }
    class ProductSearchComponent extends \CBitrixComponent
    {
        const TABLE_ID_PREFIX = 'tbl_product_search';
        protected $iblockId;
        protected $arProps;
        protected $arSkuProps;
        protected $offersCatalog;
        protected $arPrices;
        /** @var array Grid headers */
        protected $arHeaders = \null;
        /** @var array Rows field list */
        protected $dataFields = \null;
        protected $activeSectionLabel;
        protected $simpleSearch;
        protected $offersIblockId;
        protected $iblockList;
        protected $gridOprtions;
        /** @var array */
        protected $visibleColumns = \null;
        /** @var array */
        protected $visiblePrices = \null;
        /** @var array */
        protected $visibleProperties = \null;
        /** @var array */
        protected $visibleFields = \null;
        protected $checkPermissions = \true;
        protected $activeSectionNavChain = array();
        protected $offers = array();
        protected static $elementsNamesCache = array();
        protected static $sectionsNamesCache = array();
        /**
         * @param $ID
         * @return mixed
         */
        public static function getElementName($ID)
        {
        }
        public static function getSectionName($ID)
        {
        }
        public static function getPropertyFieldSections($linkIblockId)
        {
        }
        public function onIncludeComponentLang()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
        protected function isAdminSection()
        {
        }
        protected function isFiltering()
        {
        }
        protected function isExternalContext()
        {
        }
        protected function getGridOptions()
        {
        }
        protected function checkAccess()
        {
        }
        protected function loadModules()
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool $bIncCnt
         * @param bool|array $arSelectedFields
         * @return CAdminResult|CDBResult
         */
        protected function getMixedList($arOrder = array('SORT' => 'ASC'), $arFilter = array(), $bIncCnt = \false, $arSelectedFields = \false)
        {
        }
        protected function getOffersIblockId()
        {
        }
        protected function loadAllSku(array $productIds)
        {
        }
        /**
         * @param array $arProduct
         * @return array|bool
         */
        protected function getProductSku($arProduct)
        {
        }
        /**
         * @param  \CDBResult $dbResultList
         * @return array
         */
        protected function makeItemsFromDbResult(\CDBResult $dbResultList)
        {
        }
        protected function getSkuPrices()
        {
        }
        protected function getJsCallbackName()
        {
        }
        protected function getJsEventName()
        {
        }
        protected function getUserId()
        {
        }
        protected function getCaller()
        {
        }
        protected function getLid()
        {
        }
        protected function getTableId()
        {
        }
        protected function getSubscription()
        {
        }
        protected function getStoreId()
        {
        }
        protected function getIblockId()
        {
        }
        protected function getIblock()
        {
        }
        protected function isAdvancedSearchAvailable()
        {
        }
        protected function getSectionId()
        {
        }
        protected function getActiveSectionLabel()
        {
        }
        protected function checkIblockAccess()
        {
        }
        protected function getFilterFields()
        {
        }
        protected function getFilterLabels()
        {
        }
        protected function getOffersCatalog()
        {
        }
        protected function getProps($flagAll = \false)
        {
        }
        protected function getSkuProps($flagAll = \false)
        {
        }
        protected function getPrices()
        {
        }
        /**
         * @return void
         */
        protected function loadHeaders()
        {
        }
        /**
         * @return array
         */
        protected function getHeaders()
        {
        }
        /**
         * @return void
         */
        protected function loadVisibleColumns()
        {
        }
        /**
         * @return array
         */
        protected function getVisibleColumns()
        {
        }
        /**
         * @return array
         */
        protected function getVisiblePrices()
        {
        }
        /**
         * @return array
         */
        protected function getVisibleProperties()
        {
        }
        /**
         * @return array
         */
        protected function getVisibleFields()
        {
        }
        protected function getFilter()
        {
        }
        protected function getSectionsTree($iblockId, $rootSectionId = 0, $activeSectionId = 0)
        {
        }
        protected function getSectionMargin($sectionId)
        {
        }
        protected function getIblockList()
        {
        }
        protected function getParentSectionId()
        {
        }
        protected function getListSort()
        {
        }
        protected function prepareComponentResult()
        {
        }
        protected function saveState()
        {
        }
        private function getPropsList($iblockId, $skuPropertyId = 0)
        {
        }
        private function filterProps(&$props)
        {
        }
        /* deprecated methods */
        /**
         * Return properties from product.
         *
         * @deprecated deprecated since catalog 16.5.3
         *
         * @param int $id		Product id.
         * @return array
         */
        protected function getItemProperies($id)
        {
        }
        /**
         * Returns a filter by element properties and product fields. Internal.
         *
         * @param array $filter
         * @return array
         */
        private static function getElementInherentFilter(array $filter)
        {
        }
        /**
         * @param array $filter
         * @return bool
         */
        private static function checkLoadSections(array $filter)
        {
        }
    }
    class CBitrixCatalogImportHl extends \CBitrixComponent
    {
        public $error = "";
        public $message = "";
        public $NS = \false;
        public $xmlStream = \null;
        public $dataClass = "";
        public $step = \false;
        public function referenceHead($path, $attr)
        {
        }
        public function referenceStart($path, $attr)
        {
        }
        public function referenceItemsStart($path, $attr)
        {
        }
        public function checkReference($xmlArray)
        {
        }
        public function referenceField(\CDataXML $xmlObject)
        {
        }
        public function referenceValuesStart($path, $attr)
        {
        }
        public function referenceValue(\CDataXML $xmlObject)
        {
        }
        public function deleteBySessid($hlblockId, $sessid)
        {
        }
        private function getDataClass($hlblockId)
        {
        }
        private function decodePostion($position)
        {
        }
        private function xml2id($xml)
        {
        }
    }
    class CatalogProductVariationGridComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable, \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        public const HEADER_EMPTY_PROPERTY_COLUMN = 'EMPTY_PROPERTIES';
        /** @var \Bitrix\Catalog\v2\Product\BaseProduct */
        private $product;
        /** @var \Bitrix\Catalog\Component\GridVariationForm */
        private $defaultForm;
        public function __construct($component = \null)
        {
        }
        protected function showErrors()
        {
        }
        public function configureActions()
        {
        }
        protected function listKeysSignedParameters()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        protected function getProduct() : \Bitrix\Catalog\v2\Product\BaseProduct
        {
        }
        public function getIblockId() : int
        {
        }
        public function getProductId() : int
        {
        }
        public function isNewProduct() : bool
        {
        }
        protected function checkModules() : bool
        {
        }
        protected function checkPermissions() : bool
        {
        }
        protected function checkProduct() : bool
        {
        }
        public function isAjaxGridAction(\Bitrix\Main\Request $request = \null) : bool
        {
        }
        public function doAjaxGridAction(\Bitrix\Main\Request $request)
        {
        }
        private function processGridActions(\Bitrix\Main\Request $request) : void
        {
        }
        private function processGridDelete(array $ids, bool $allRows = \false) : void
        {
        }
        private function hasSkuProperties(\Bitrix\Catalog\v2\Sku\SkuCollection $skuCollection) : bool
        {
        }
        public function executeComponent()
        {
        }
        protected function initializeVariantsGrid()
        {
        }
        public function getGridId() : ?string
        {
        }
        private function getDefaultVariationRowForm() : ?\Bitrix\Catalog\Component\GridVariationForm
        {
        }
        protected function getPropertyModifyLink()
        {
        }
        private function getIblockPropertiesDescriptions() : array
        {
        }
        private function getGridOptions() : \CGridOptions
        {
        }
        public function getGridOptionsSorting() : array
        {
        }
        protected function getVariationLink(?int $skuId) : ?string
        {
        }
        protected function getGridRows() : array
        {
        }
        protected function getGridEditData(array $rows) : array
        {
        }
        public static function formatFieldName($name)
        {
        }
        protected function getHiddenProperties()
        {
        }
        protected function getGridNavObject()
        {
        }
        protected function getGridActionPanel()
        {
        }
        protected function getGridData()
        {
        }
        protected function getCreateVariationLink()
        {
        }
        private function canHaveSku()
        {
        }
        protected function initializeExternalProductFields(\Bitrix\Catalog\v2\Product\BaseProduct $product) : void
        {
        }
    }
    class VariationGridController extends \Bitrix\Main\Engine\Controller
    {
        /**
         * @return \Bitrix\Main\Engine\Response\HtmlContent
         * @throws \Bitrix\Main\LoaderException
         */
        public function getProductGridAction() : \Bitrix\Main\Engine\Response\HtmlContent
        {
        }
        private function sendErrorResponse(string $message)
        {
        }
        /**
         * @param string $gridId
         * @param string $propertyCode
         * @param string $anchor
         * @param array $currentHeaders
         *
         * @return Response\AjaxJson
         */
        public function addPropertyHeaderAction(string $gridId, string $propertyCode, array $currentHeaders, string $anchor = '') : \Bitrix\Main\Engine\Response\AjaxJson
        {
        }
    }
    class CatalogProductDetailsComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable, \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        private $iblockId;
        private $productId;
        /** @var \Bitrix\Catalog\Component\ProductForm */
        private $form;
        /** @var \Bitrix\Catalog\v2\Product\BaseProduct */
        private $product;
        public function __construct($component = \null)
        {
        }
        protected function showErrors()
        {
        }
        public function configureActions()
        {
        }
        protected function listKeysSignedParameters()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
        protected function checkModules()
        {
        }
        protected function checkPermissions() : bool
        {
        }
        protected function checkRequiredParameters()
        {
        }
        private function getApplication()
        {
        }
        protected function setIblockId(int $iblockId) : self
        {
        }
        protected function getIblockId() : int
        {
        }
        private function hasIblockId() : bool
        {
        }
        protected function setProductId(int $productId) : self
        {
        }
        protected function getProductId() : int
        {
        }
        private function hasProductId() : bool
        {
        }
        protected function placePageTitle(\Bitrix\Catalog\v2\Product\BaseProduct $product) : void
        {
        }
        protected function createProduct()
        {
        }
        protected function loadProduct($productId)
        {
        }
        protected function getProduct() : ?\Bitrix\Catalog\v2\Product\BaseProduct
        {
        }
        protected function initializeExternalProductFields(\Bitrix\Catalog\v2\Product\BaseProduct $product) : void
        {
        }
        protected function initializeProductFields(\Bitrix\Catalog\v2\Product\BaseProduct $product) : void
        {
        }
        protected function getProductDetailUrl() : string
        {
        }
        protected function getCreationPropertyUrl() : string
        {
        }
        protected function getCreationSkuPropertyLink()
        {
        }
        private function parseIsSkuProduct(array $fields, \Bitrix\Catalog\v2\Product\BaseProduct $product) : bool
        {
        }
        private function parseSkuFields(&$fields)
        {
        }
        private function parseSectionFields(&$fields)
        {
        }
        private function prepareSkuPictureFields(&$fields)
        {
        }
        private function parsePropertyFields(&$fields)
        {
        }
        private function prepareDescriptionFields(&$fields) : void
        {
        }
        private function preparePictureFields(&$fields) : void
        {
        }
        private function checkCompatiblePictureFields(\Bitrix\Catalog\v2\BaseIblockElementEntity $entity, array &$propertyFields) : void
        {
        }
        private function prepareProductCode(&$fields) : void
        {
        }
        private function prepareDetailPictureFromGrid($propertyFields)
        {
        }
        private function prepareFilePropertyFromGrid($propertyFields)
        {
        }
        private function prepareFilePropertyFromEditor($propertyFields, $descriptions, $deleted)
        {
        }
        private function parsePriceFields(&$fields)
        {
        }
        private function parseMeasureRatioFields(&$fields)
        {
        }
        public function saveAction()
        {
        }
        public function refreshLinkedPropertiesAction(array $sectionIds = []) : ?array
        {
        }
        public function addPropertyAction(array $fields = []) : ?array
        {
        }
        public function updatePropertyAction(array $fields = []) : array
        {
        }
        public static function updateProperty($code, array $fields = []) : \Bitrix\Main\Result
        {
        }
        private static function getPropertyByCode($code) : array
        {
        }
        private static function updateDirectoryValues($tableName, array $values = [])
        {
        }
        public static function addProperty(array $fields) : \Bitrix\Main\Entity\AddResult
        {
        }
        private static function addDictionary(array $fields) : \Bitrix\Main\Entity\AddResult
        {
        }
        public function setCardSettingAction(string $settingId, $selected) : \Bitrix\Main\Engine\Response\AjaxJson
        {
        }
        public function setGridSettingAction(string $settingId, $selected, array $currentHeaders = []) : \Bitrix\Main\Engine\Response\AjaxJson
        {
        }
        private function getForm()
        {
        }
    }
    abstract class CCatalogDocsTypes
    {
        protected static $clearAutoCache = array();
        /** The method of conducting a document, distributes products to warehouses, according to the document type.
         * @param $documentId
         * @param $userId
         * @param $currency
         * @param $contractorId
         * @return mixed
         */
        abstract function conductDocument($documentId, $userId, $currency, $contractorId);
        /** Method cancels an instrument and perform the reverse action of conducting a document.
         * @param $documentId
         * @param $userId
         * @return mixed
         */
        abstract function cancellationDocument($documentId, $userId);
        /** The method checks the correctness of the data warehouse. If successful, enrolling \ debits to the storage required amount of product.
         * @param $arFields
         * @param $userId
         * @return array|bool
         */
        protected function distributeElementsToStores($arFields, $userId)
        {
        }
        /** The method works with barcodes. If necessary, check the uniqueness of multiple barcodes.
         * @param $arFields
         * @param $userId
         * @return bool|int
         */
        protected function applyBarCode($arFields, $userId)
        {
        }
        protected function checkTotalAmount($elementId, $name = '')
        {
        }
        protected function checkAmountField($arDocElement, $name = '')
        {
        }
        protected static function isNeedClearPublicCache($currentQuantity, $newQuantity, $quantityTrace, $canBuyZero, $ratio = 1)
        {
        }
        protected static function clearPublicCache($productID, $productInfo = array())
        {
        }
    }
    class CAllCatalogArrivalDocsType extends \CCatalogDocsTypes
    {
        /** The method returns an array of fields needed for this type of document.
         * @return array
         */
        public static function getFields()
        {
        }
        /**
         * @param $documentId
         * @param $userId
         * @param $currency
         * @param $contractorId
         * @return array|bool
         */
        public function conductDocument($documentId, $userId, $currency, $contractorId)
        {
        }
        /**
         * @param $documentId
         * @param $userId
         * @return array|bool
         */
        public function cancellationDocument($documentId, $userId)
        {
        }
    }
    class CCatalogArrivalDocs extends \CAllCatalogArrivalDocsType
    {
    }
    class CAllCatalogMovingDocsType extends \CCatalogDocsTypes
    {
        /** The method returns an array of fields needed for this type of document.
         * @return array
         */
        public static function getFields()
        {
        }
        /**
         * @param $documentId
         * @param $userId
         * @param $currency
         * @param $contractorId
         * @return array|bool
         */
        public function conductDocument($documentId, $userId, $currency, $contractorId)
        {
        }
        /**
         * @param $documentId
         * @param $userId
         * @return array|bool
         */
        public function cancellationDocument($documentId, $userId)
        {
        }
    }
    class CCatalogMovingDocs extends \CAllCatalogMovingDocsType
    {
    }
    class CAllCatalogReturnsDocsType extends \CCatalogDocsTypes
    {
        /** The method returns an array of fields needed for this type of document.
         * @return array
         */
        public static function getFields()
        {
        }
        /**
         * @param $documentId
         * @param $userId
         * @param $currency
         * @param $contractorId
         * @return array|bool
         */
        public function conductDocument($documentId, $userId, $currency, $contractorId)
        {
        }
        /**
         * @param $documentId
         * @param $userId
         * @return array|bool
         */
        public function cancellationDocument($documentId, $userId)
        {
        }
    }
    class CCatalogReturnsDocs extends \CAllCatalogReturnsDocsType
    {
    }
    class CAllCatalogDeductDocsType extends \CCatalogDocsTypes
    {
        /** The method returns an array of fields needed for this type of document.
         * @return array
         */
        public static function getFields()
        {
        }
        /**
         * @param $documentId
         * @param $userId
         * @param $currency
         * @param $contractorId
         * @return array|bool
         */
        public function conductDocument($documentId, $userId, $currency, $contractorId)
        {
        }
        /**
         * @param $documentId
         * @param $userId
         * @return array|bool
         */
        public function cancellationDocument($documentId, $userId)
        {
        }
    }
    class CCatalogDeductDocs extends \CAllCatalogDeductDocsType
    {
    }
    class CAllCatalogUnReservedDocsType extends \CCatalogDocsTypes
    {
        /** The method returns an array of fields needed for this type of document.
         * @return array
         */
        public static function getFields()
        {
        }
        /**
         * @param $documentId
         * @param $userId
         * @param $currency
         * @param $contractorId
         * @return bool
         */
        public function conductDocument($documentId, $userId, $currency, $contractorId)
        {
        }
        /**
         * @param $documentId
         * @param $userId
         * @return bool
         */
        public function cancellationDocument($documentId, $userId)
        {
        }
    }
    class CCatalogUnReservedDocs extends \CAllCatalogUnReservedDocsType
    {
    }
    class CAllCatalog
    {
        protected static $arCatalogCache = array();
        protected static $catalogVatCache = array();
        private static $disableCheckIblock = 0;
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function GetFilterOperation($key)
        {
        }
        public static function PrepareSql(&$arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields)
        {
        }
        public static function _PrepareSql(&$arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function OnIBlockDelete($ID)
        {
        }
        public static function PreGenerateXML($xml_type = 'yandex')
        {
        }
        /**
         * @deprecated deprecated since catalog 11.0.2
         * @see CCatalogSku::GetInfoByProductIBlock()
         *
         * @param int $ID
         * @return false|array
         */
        public static function GetSkuInfoByProductID($ID)
        {
        }
        /**
         * @deprecated deprecated since catalog 11.0.2
         * @see CCatalogSku::GetInfoByLinkProperty()
         *
         * @param int $ID
         * @return false|array
         */
        public static function GetSkuInfoByPropID($ID)
        {
        }
        public static function OnBeforeIBlockElementDelete($ID)
        {
        }
        public static function OnBeforeCatalogDelete($ID)
        {
        }
        /**
         * @param array &$fields
         * @return bool
         */
        public static function OnBeforeIBlockPropertyUpdate(array &$fields)
        {
        }
        /**
         * @param int $intPropertyID
         * @return bool
         */
        public static function OnBeforeIBlockPropertyDelete($intPropertyID)
        {
        }
        public static function OnIBlockModuleUnInstall()
        {
        }
        public static function OnBeforeIBlockUpdate(array &$fields)
        {
        }
        public static function OnAfterIBlockUpdate(array &$fields)
        {
        }
        /**
         * @deprecated deprecated since catalog 14.0.0
         * @see CCatalogSku::GetInfoByIBlock()
         *
         * @param int $ID
         * @return false|array
         */
        public static function GetByIDExt($ID)
        {
        }
        public static function UnLinkSKUIBlock($ID)
        {
        }
        /**
         * @deprecated deprecated since catalog 16.0.0
         * @see CIBlockPropertyTools::createProperty
         *
         * @param int $ID				Parent iblock id.
         * @param int $SKUID			Offer iblock id.
         * @return int|false
         */
        public static function LinkSKUIBlock($ID, $SKUID)
        {
        }
        /**
         * @deprecated deprecated since catalog 10.0.3
         * @internal
         *
         * @return array
         */
        public static function GetCatalogFieldsList()
        {
        }
        public static function IsUserExists()
        {
        }
        public static function clearCache()
        {
        }
        private static function disableHandler()
        {
        }
        private static function enableHandler()
        {
        }
        private static function isEnabledHandler()
        {
        }
    }
    class CCatalogStoreDocsBarcodeAll
    {
        protected static function checkFields($action, &$arFields)
        {
        }
        public static function update($id, $arFields)
        {
        }
        public static function delete($id)
        {
        }
        public static function OnBeforeDocumentDelete($id)
        {
        }
    }
    class CCatalogCondCtrl extends \CGlobalCondCtrl
    {
    }
    class CCatalogCondCtrlComplex extends \CGlobalCondCtrlComplex
    {
    }
    class CCatalogCondCtrlGroup extends \CGlobalCondCtrlGroup
    {
        public static function GetControlDescr()
        {
        }
    }
    class CCatalogCondCtrlIBlockFields extends \CCatalogCondCtrlComplex
    {
        public static function GetControlDescr()
        {
        }
        /**
         * @return string|array
         */
        public static function GetControlID()
        {
        }
        public static function GetControlShow($arParams)
        {
        }
        /**
         * @param bool|string $strControlID
         * @return bool|array
         */
        public static function GetControls($strControlID = \false)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        public static function ApplyValues($arOneCondition, $arControl)
        {
        }
        /**
         * @return string
         */
        private static function getAdminSection()
        {
        }
    }
    class CCatalogCondCtrlIBlockProps extends \CCatalogCondCtrlComplex
    {
        public static function GetControlDescr()
        {
        }
        /**
         * @param bool|string $strControlID
         * @return bool|array
         */
        public static function GetControls($strControlID = \false)
        {
        }
        public static function GetControlShow($arParams)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        public static function ApplyValues($arOneCondition, $arControl)
        {
        }
        public static function Check($arOneCondition, $arParams, $arControl, $boolShow)
        {
        }
        /**
         * @return string
         */
        private static function getAdminSection()
        {
        }
        /**
         * @param array $control
         * @return bool
         */
        private static function checkActiveProperty(array $control)
        {
        }
    }
    class CCatalogCondTree extends \CGlobalCondTree
    {
        public function __construct()
        {
        }
        public function __destruct()
        {
        }
    }
    class CAllCatalogStoreBarCode
    {
        protected function CheckFields($action, &$arFields)
        {
        }
        public static function Update($id, $arFields)
        {
        }
        public static function Delete($id)
        {
        }
    }
    class CAllCatalogExport
    {
        public static function CheckFields($ACTION, &$arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function GetList($arOrder = array("ID" => "ASC"), $arFilter = array(), $bCount = \false)
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function PreGenerateExport($profile_id)
        {
        }
    }
    class CAllCatalogDiscount
    {
        const TYPE_PERCENT = 'P';
        const TYPE_FIX = 'F';
        const TYPE_SALE = 'S';
        const ENTITY_ID = 0;
        const CURRENT_FORMAT = 2;
        const OLD_FORMAT = 1;
        private const NOTIFY_DISCOUNT_REINDEX_ID = 'CATALOG_DISC_FORMAT';
        protected static $arCacheProduct = array();
        protected static $arCacheDiscountFilter = array();
        protected static $arCacheDiscountResult = array();
        protected static $arCacheProductSectionChain = array();
        protected static $arCacheProductSections = array();
        protected static $arCacheProductProperties = array();
        protected static $cacheDiscountHandlers = array();
        protected static $usedModules = array();
        protected static $existCouponsManager = \null;
        protected static $useSaleDiscount = \null;
        protected static $getPriceTypesOnly = \false;
        protected static $getPercentFromBasePrice = \null;
        private static $needDiscountCache = [];
        private static function calculatePriceByDiscount($basePrice, $currentPrice, $oneDiscount, &$needErase)
        {
        }
        /**
         * @return string
         */
        public static function execAgent() : string
        {
        }
        public static function GetDiscountTypes($boolFull = \false)
        {
        }
        public static function setSaleDiscountFilter($priceTypesOnly = \false)
        {
        }
        /**
         * Return calculate discount percent mode.
         *
         * @return bool
         */
        public static function getUseBasePrice()
        {
        }
        /**
         * Set calculate discount percent mode.
         *
         * @param bool $useBasePrice		Set calculate discount percent mode.
         * @return void
         */
        public static function setUseBasePrice($useBasePrice)
        {
        }
        public function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public function Add($arFields)
        {
        }
        public function Update($ID, $arFields)
        {
        }
        /**
         * @deprecated deprecated since catalog 12.0.0
         * @see CCatalogDiscountCoupon::SetCoupon()
         *
         * @param string $coupon
         * @return bool
         */
        public static function SetCoupon($coupon)
        {
        }
        /**
         * @deprecated deprecated since catalog 12.0.0
         * @see CCatalogDiscountCoupon::GetCoupons()
         *
         * @return array
         */
        public static function GetCoupons()
        {
        }
        /**
         * @deprecated deprecated since catalog 12.0.0
         * @see CCatalogDiscountCoupon::EraseCoupon()
         *
         * @param string $strCoupon
         * @return bool
         */
        public static function EraseCoupon($strCoupon)
        {
        }
        /**
         * @deprecated deprecated since catalog 12.0.0
         * @see CCatalogDiscountCoupon::ClearCoupon()
         *
         * @return void
         */
        public static function ClearCoupon()
        {
        }
        /**
         * @deprecated deprecated since catalog 12.0.0
         * @see CCatalogDiscountCoupon::SetCouponByManage()
         *
         * @param int $intUserID
         * @param string $strCoupon
         * @return bool
         */
        public static function SetCouponByManage($intUserID, $strCoupon)
        {
        }
        /**
         * @deprecated deprecated since catalog 12.0.0
         * @see CCatalogDiscountCoupon::GetCouponsByManage()
         *
         * @param int $intUserID
         * @return array
         */
        public static function GetCouponsByManage($intUserID)
        {
        }
        /**
         * @deprecated deprecated since catalog 12.0.0
         * @see CCatalogDiscountCoupon::EraseCouponByManage()
         *
         * @param int $intUserID
         * @param string $strCoupon
         * @return bool
         */
        public static function EraseCouponByManage($intUserID, $strCoupon)
        {
        }
        /**
         * @deprecated deprecated since catalog 12.0.0
         * @see CCatalogDiscountCoupon::ClearCouponsByManage()
         *
         * @param int $intUserID		User id.
         * @return bool
         */
        public static function ClearCouponsByManage($intUserID)
        {
        }
        public static function OnCurrencyDelete($Currency)
        {
        }
        public static function OnGroupDelete($GroupID)
        {
        }
        /**
         * @deprecated deprecated since catalog 12.0.0
         *
         * @param int $ID
         * @return void
         */
        public function GenerateDataFile($ID)
        {
        }
        /**
         * @deprecated deprecated since catalog 12.0.0
         *
         * @param int $ID
         * @param bool|string $strDataFileName
         * @return void
         */
        public function ClearFile($ID, $strDataFileName = \false)
        {
        }
        public static function GetDiscountByPrice($productPriceID, $arUserGroups = array(), $renewal = "N", $siteID = \false, $arDiscountCoupons = \false)
        {
        }
        public static function GetDiscountByProduct($productID = 0, $arUserGroups = array(), $renewal = "N", $arCatalogGroups = array(), $siteID = \false, $arDiscountCoupons = \false)
        {
        }
        private static function getDiscountsFromApplyResult(array $calcResults, \Bitrix\Sale\BasketItemBase $basketItem)
        {
        }
        private static function getReformattedDiscounts(array $finalDiscountList, array $calcResults, $siteId, $isRenewal = \false)
        {
        }
        private static function getSaleDiscountsByProduct(array $product, $siteId, array $userGroups, array $priceRow, $isRenewal, $coupons)
        {
        }
        /**
         * @param int $intProductID
         * @param int $intIBlockID
         * @param array $arCatalogGroups
         * @param array $arUserGroups
         * @param string $strRenewal
         * @param bool|string $siteID
         * @param bool|array $arDiscountCoupons
         * @param bool $boolSKU
         * @param bool $boolGetIDS
         * @return array|false
         */
        public static function GetDiscount($intProductID, $intIBlockID, $arCatalogGroups = array(), $arUserGroups = array(), $strRenewal = "N", $siteID = \false, $arDiscountCoupons = \false, $boolSKU = \true, $boolGetIDS = \false)
        {
        }
        public static function HaveCoupons($ID, $excludeID = 0)
        {
        }
        /**
         * @deprecated deprecated since catalog 12.0.0
         * @see CCatalogDiscountCoupon::OnSetCouponList()
         *
         * @param int $intUserID
         * @param array|string $arCoupons
         * @param array $arModules
         * @return bool
         */
        public static function OnSetCouponList($intUserID, $arCoupons, $arModules)
        {
        }
        /**
         * @deprecated deprecated since catalog 12.0.0
         * @see CCatalogDiscountCoupon::OnClearCouponList()
         *
         * @param int $intUserID
         * @param array|string $arCoupons
         * @param array $arModules
         * @return bool
         */
        public static function OnClearCouponList($intUserID, $arCoupons, $arModules)
        {
        }
        /**
         * @deprecated deprecated since catalog 12.0.0
         * @see CCatalogDiscountCoupon::OnDeleteCouponList()
         *
         * @param int $intUserID
         * @param array $arModules
         * @return bool
         */
        public static function OnDeleteCouponList($intUserID, $arModules)
        {
        }
        /**
         * @param array $arProduct
         * @param bool|array $arParams
         * @return array
         */
        public static function GetDiscountForProduct($arProduct, $arParams = \false)
        {
        }
        protected static function getAllUserGroups()
        {
        }
        public static function GetRestrictions($arParams, $boolKeys = \true, $boolRevert = \true)
        {
        }
        public static function CheckDiscount($arProduct, $arDiscount)
        {
        }
        public static function applyDiscountList($price, $currency, &$discountList)
        {
        }
        public static function calculateDiscountList($priceData, $currency, &$discountList, $getWithVat = \true)
        {
        }
        public static function getDiscountDescription(array $discount)
        {
        }
        public static function ExtendBasketItems(&$arBasket, $arExtend)
        {
        }
        /**
         * @param array $arProduct
         * @param bool|array $arParams
         * @return bool
         */
        protected static function __GenerateFields(&$arProduct, $arParams = \false)
        {
        }
        protected static function __GetSectionList($intIBlockID, $intProductID)
        {
        }
        /**
         * @param array $arProduct
         * @param array $arProps
         * @param bool|array $arParams
         */
        protected static function __ConvertProperties(&$arProduct, &$arProps, $arParams = \false)
        {
        }
        protected static function __GenerateParent(&$product, $sku)
        {
        }
        protected static function __ParseArrays(&$arFields)
        {
        }
        protected function __CheckOneEntity(&$arFields, $strEntityID)
        {
        }
        protected function __ArrayMultiple($arOrder, &$arResult, $arTuple, $arTemp = array())
        {
        }
        protected static function __Unpack($arProduct, $strUnpack)
        {
        }
        protected function __ConvertOldConditions($strAction, &$arFields)
        {
        }
        protected function __ConvertOldOneEntity(&$arFields, $strEntityID)
        {
        }
        protected function __AddOldOneEntity(&$arConditions, $strCondID, $arEntityValues, $boolOneEntity)
        {
        }
        protected function __GetConditionValues(&$arFields)
        {
        }
        protected function __GetOldOneEntity(&$arFields, &$arCondList, $strEntityID, $strCondID)
        {
        }
        protected function __UpdateOldOneEntity($intID, &$arFields, $arParams, $boolUpdate)
        {
        }
        public static function SetDiscountFilterCache($arDiscountIDs, $arCatalogGroups, $arUserGroups)
        {
        }
        public static function SetAllDiscountFilterCache($arDiscountCache, $boolNeedClear = \true)
        {
        }
        public static function GetDiscountFilterCache($arCatalogGroups, $arUserGroups)
        {
        }
        public static function IsExistsDiscountFilterCache($arCatalogGroups, $arUserGroups)
        {
        }
        public static function GetDiscountFilterCacheByKey($strCacheKey)
        {
        }
        public static function IsExistsDiscountFilterCacheByKey($strCacheKey)
        {
        }
        public static function GetDiscountFilterCacheKey($arCatalogGroups, $arUserGroups, $boolNeedClear = \true)
        {
        }
        public static function SetDiscountResultCache($arDiscountList, $arDiscountIDs, $strSiteID, $strRenewal)
        {
        }
        public static function SetAllDiscountResultCache($arDiscountResultCache)
        {
        }
        public static function GetDiscountResultCacheKey($arDiscountIDs, $strSiteID, $strRenewal, $boolNeedClear = \true)
        {
        }
        public static function SetDiscountProductCache($arItem, $arParams = array())
        {
        }
        public static function getCachedProductData($productId)
        {
        }
        public static function SetProductSectionsCache($arItemIDs)
        {
        }
        public static function SetProductPropertiesCache($intProductID, $arProps)
        {
        }
        public static function ClearDiscountCache($arTypes)
        {
        }
        public static function isUsedSaleDiscountOnly()
        {
        }
        protected static function primaryDiscountFilter($price, $currency, &$discountList, &$priceDiscountList, &$accumulativeDiscountList)
        {
        }
        protected static function calculatePriorityLevel($basePrice, $price, $currency, &$discountList, &$resultDiscount)
        {
        }
        protected static function calculateDiscSave($basePrice, $price, $currency, &$discsaveList, &$resultDiscount)
        {
        }
        protected static function clearFields($value)
        {
        }
        protected static function initDiscountSettings()
        {
        }
    }
    class CAllCatalogProduct
    {
        const TYPE_PRODUCT = \Bitrix\Catalog\ProductTable::TYPE_PRODUCT;
        const TYPE_SET = \Bitrix\Catalog\ProductTable::TYPE_SET;
        const TYPE_SKU = \Bitrix\Catalog\ProductTable::TYPE_SKU;
        const TYPE_OFFER = \Bitrix\Catalog\ProductTable::TYPE_OFFER;
        const TYPE_FREE_OFFER = \Bitrix\Catalog\ProductTable::TYPE_FREE_OFFER;
        const TYPE_EMPTY_SKU = \Bitrix\Catalog\ProductTable::TYPE_EMPTY_SKU;
        const TIME_PERIOD_HOUR = \Bitrix\Catalog\ProductTable::PAYMENT_PERIOD_HOUR;
        const TIME_PERIOD_DAY = \Bitrix\Catalog\ProductTable::PAYMENT_PERIOD_DAY;
        const TIME_PERIOD_WEEK = \Bitrix\Catalog\ProductTable::PAYMENT_PERIOD_WEEK;
        const TIME_PERIOD_MONTH = \Bitrix\Catalog\ProductTable::PAYMENT_PERIOD_MONTH;
        const TIME_PERIOD_QUART = \Bitrix\Catalog\ProductTable::PAYMENT_PERIOD_QUART;
        const TIME_PERIOD_SEMIYEAR = \Bitrix\Catalog\ProductTable::PAYMENT_PERIOD_SEMIYEAR;
        const TIME_PERIOD_YEAR = \Bitrix\Catalog\ProductTable::PAYMENT_PERIOD_YEAR;
        const TIME_PERIOD_DOUBLE_YEAR = \Bitrix\Catalog\ProductTable::PAYMENT_PERIOD_DOUBLE_YEAR;
        /** @deprecated deprecated since catalog 17.6.3 */
        protected static $arProductCache = array();
        /** @deprecated deprecated since catalog 17.0.11 */
        protected static $usedCurrency = \null;
        /** @deprecated deprecated since catalog 17.5.1 */
        protected static $optimalPriceWithVat = \true;
        /** @deprecated deprecated since catalog 17.5.1 */
        protected static $useDiscount = \true;
        protected static $saleIncluded = \null;
        protected static $useSaleDiscount = \null;
        protected static $vatCache = array();
        private static $existPriceTypeDiscounts = \false;
        /**
         * @deprecated deprecated since catalog 17.0.11
         * @see \Bitrix\Catalog\Product\Price\Calculation::setConfig()
         *
         * @param string $currency
         * @return void
         */
        public static function setUsedCurrency($currency)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.0.11
         * @see \Bitrix\Catalog\Product\Price\Calculation::getConfig()
         *
         * @return null|string
         */
        public static function getUsedCurrency()
        {
        }
        /**
         * @deprecated deprecated since catalog 17.0.11
         * @see \Bitrix\Catalog\Product\Price\Calculation::setConfig()
         *
         * @return void
         */
        public static function clearUsedCurrency()
        {
        }
        /**
         * @deprecated deprecated since catalog 17.5.1
         * @see \Bitrix\Catalog\Product\Price\Calculation::setConfig()
         *
         * @param bool $mode
         * @return void
         */
        public static function setPriceVatIncludeMode($mode)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.5.1
         * @see \Bitrix\Catalog\Product\Price\Calculation::setConfig()
         *
         * @return bool
         */
        public static function getPriceVatIncludeMode()
        {
        }
        /**
         * @deprecated deprecated since catalog 17.5.1
         * @see \Bitrix\Catalog\Product\Price\Calculation::setConfig()
         *
         * @param bool $use
         * @return void
         */
        public static function setUseDiscount($use)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.5.1
         * @see \Bitrix\Catalog\Product\Price\Calculation::getConfig()
         *
         * @return bool
         */
        public static function getUseDiscount()
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.3
         *
         * @return void
         */
        public static function ClearCache()
        {
        }
        /**
         * @param array $product
         * @return bool
         */
        public static function isAvailable($product)
        {
        }
        /**
         * @deprecated deprecated since catalog 15.5.2
         * @see \Bitrix\Catalog\ProductTable::isExistProduct()
         *
         * @param int $intID
         * @return bool
         */
        public static function IsExistProduct($intID)
        {
        }
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.0
         * @see \Bitrix\Catalog\Model\Product::add
         *
         * @param array $fields
         * @param bool $checkExist
         * @return bool
         */
        public static function Add($fields, $checkExist = \true)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.0
         * @see \Bitrix\Catalog\Model\Product::update
         *
         * @param int $id
         * @param array $fields
         * @return bool
         */
        public static function Update($id, $fields)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.0
         * @see \Bitrix\Catalog\Model\Product::delete
         *
         * @param int $id
         * @return bool
         */
        public static function Delete($id)
        {
        }
        public static function ParseQueryBuildField($field)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.2
         * @see Catalog\Model\Product::getList
         *
         * @param int $ID
         * @return array|false
         */
        public static function GetByID($ID)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.0
         *
         * @param $ID
         * @param bool $boolAllValues
         * @return array|bool
         */
        public static function GetByIDEx($ID, $boolAllValues = \false)
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.0
         * @see \CCatalogProductProvider
         *
         * @param int $ProductID
         * @param int|float $DeltaQuantity
         * @return bool
         */
        public static function QuantityTracer($ProductID, $DeltaQuantity)
        {
        }
        /**
         * @param int $productID
         * @param int|float $quantity
         * @param array $arUserGroups
         * @return bool|float|int
         */
        public static function GetNearestQuantityPrice($productID, $quantity = 1, $arUserGroups = array())
        {
        }
        /**
         * @param int $intProductID
         * @param int|float $quantity
         * @param array $arUserGroups
         * @param string $renewal
         * @param array $priceList
         * @param bool|string $siteID
         * @param bool|array $arDiscountCoupons
         * @return array|bool
         */
        public static function GetOptimalPrice($intProductID, $quantity = 1, $arUserGroups = array(), $renewal = "N", $priceList = array(), $siteID = \false, $arDiscountCoupons = \false)
        {
        }
        public static function GetOptimalPriceList(array $products, $arUserGroups = array(), $renewal = "N", $priceList = array(), $siteID = \false, $needCoupons = \true)
        {
        }
        /**
         * @param $productId
         * @param $basketCode
         *
         * @return array|bool
         */
        private static function getCoupons($productId, $basketCode)
        {
        }
        /**
         * @param float $price
         * @param string $currency
         * @param array $discounts
         * @return bool|float
         */
        public static function CountPriceWithDiscount($price, $currency, $discounts)
        {
        }
        public static function GetProductSections($ID)
        {
        }
        public static function OnIBlockElementDelete($ProductID)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.3
         *
         * @param array $arFields
         */
        public static function OnAfterIBlockElementUpdate($arFields)
        {
        }
        public static function CheckProducts($arItemIDs)
        {
        }
        /**
         * @deprecated deprecated since catalog 18.7.0
         * @see \CProductQueryBuilder::makeQuery()
         *
         * @param array $order
         * @param array $filter
         * @param array $select
         * @return array
         */
        public static function GetQueryBuildArrays($order, $filter, $select)
        {
        }
        /**
         * Return payment period list.
         *
         * @deprecated deprected since catalog 17.0.0
         * @see \Bitrix\Catalog\ProductTable::getPaymentPeriods
         *
         * @param bool $boolFull		With description.
         * @return array
         */
        public static function GetTimePeriodTypes($boolFull = \false)
        {
        }
        /**
         * Update result user handlers for event OnGetOptimalPrice.
         *
         * @param array &$userResult		Optimal price array.
         * @param array $params             GetOptimalPrice parameters.
         * @return void
         */
        private static function updateUserHandlerOptimalPrice(&$userResult, array $params)
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.0
         * @see CCatalogDiscount::applyDiscountList()
         * @see CCatalogDiscount::primaryDiscountFilter()
         *
         * @param array &$arDiscount
         * @param array &$arPriceDiscount
         * @param array &$arDiscSave
         * @param array &$arParams
         *
         * @return void
         */
        protected static function __PrimaryDiscountFilter(&$arDiscount, &$arPriceDiscount, &$arDiscSave, &$arParams)
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.0
         * @see CCatalogDiscount::applyDiscountList()
         * @see CCatalogDiscount::calculatePriorityLevel()
         *
         * @param array &$arDiscounts
         * @param array &$arResultDiscount
         * @param array &$arParams
         *
         * @return bool
         */
        protected static function __CalcOnePriority(&$arDiscounts, &$arResultDiscount, &$arParams)
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.0
         * @see CCatalogDiscount::applyDiscountList()
         * @see CCatalogDiscount::calculateDiscSave()
         *
         * @param array &$arDiscSave
         * @param array &$arResultDiscount
         * @param array &$arParams
         *
         * @return bool
         */
        protected static function __CalcDiscSave(&$arDiscSave, &$arResultDiscount, &$arParams)
        {
        }
        protected static function getQueryBuildCurrencyScale($filter, $priceTypeId)
        {
        }
        protected static function getQueryBuildPriceScaled($prices, $scale)
        {
        }
        protected static function initSaleSettings()
        {
        }
        private static function isNeedleToMinimizeCatalogGroup(array $priceList)
        {
        }
        private static function getPossibleSalePrice($intProductID, array $priceData, $quantity, $siteID, array $userGroups, $coupons)
        {
        }
        private static function checkPriceValue($price)
        {
        }
        private static function checkPriceCurrency($currency)
        {
        }
        /**
         * @param array $userGroups
         * @return array
         */
        private static function getAllowedPriceTypes(array $userGroups)
        {
        }
        private static function convertErrors(\Bitrix\Main\Entity\Result $result)
        {
        }
        private static function normalizeFields(array &$fields)
        {
        }
    }
    class CAllCatalogDiscountSave
    {
        const ENTITY_ID = 1;
        const TYPE_PERCENT = 'P';
        const TYPE_FIX = 'F';
        const COUNT_TIME_ALL = 'U';
        const COUNT_TIME_INTERVAL = 'D';
        const COUNT_TIME_PERIOD = 'P';
        const ACTION_TIME_ALL = 'U';
        const ACTION_TIME_INTERVAL = 'D';
        const ACTION_TIME_PERIOD = 'P';
        const APPLY_MODE_REPLACE = 'R';
        const APPLY_MODE_ADD = 'A';
        const APPLY_MODE_DISABLE = 'D';
        protected static $intDisable = 0;
        protected static $intDiscountUserID = 0;
        protected static $userGroups = array();
        protected static $discountFilterCache = array();
        protected static $discountResultCache = array();
        public static function Enable()
        {
        }
        public static function Disable()
        {
        }
        public static function IsEnabled()
        {
        }
        public static function SetDiscountUserID($intUserID)
        {
        }
        public static function ClearDiscountUserID()
        {
        }
        public static function GetDiscountUserID()
        {
        }
        public static function GetDiscountSaveTypes($boolFull = \false)
        {
        }
        public static function GetApplyModeList($extendedMode = \false)
        {
        }
        public static function CheckFields($strAction, &$arFields, $intID = 0)
        {
        }
        public static function GetByID($intID)
        {
        }
        public static function GetArrayByID($intID)
        {
        }
        public static function Delete($intID)
        {
        }
        /*
        * @deprecated deprecated since catalog 14.5.3
        */
        protected static function __ClearGroupsCache($intID = 0)
        {
        }
        /*
        * @deprecated deprecated since catalog 14.5.3
        */
        protected static function __AddGroupsCache($intID, $arGroups = array())
        {
        }
        /*
        * @deprecated deprecated since catalog 14.5.3
        */
        protected static function __UpdateGroupsCache($intID, $arGroups = array())
        {
        }
        public static function ChangeActive($intID, $boolActive = \true)
        {
        }
        public static function UserDiscountCalc($intID, $arFields = array(), $boolNew = \false)
        {
        }
        /*
        * @deprecated deprecated since catalog 14.5.3
        */
        protected static function __GetDiscountGroups($arUserGroups)
        {
        }
        public static function GetDiscount($arParams = array(), $getAll = \false)
        {
        }
        public static function GetPeriodTypeList($boolFull = \true)
        {
        }
        protected static function __SaleOrderSumm($arOrderFilter, $strCurrency)
        {
        }
        protected static function __GetTimeStampArray($intSize, $strType, $boolDir = \false)
        {
        }
        protected static function clearFields($value)
        {
        }
    }
    class CAllCatalogContractor
    {
        protected function checkFields($action, &$arFields)
        {
        }
        static function update($id, $arFields)
        {
        }
        static function delete($id)
        {
        }
    }
    class CAllCatalogStore
    {
        protected static function CheckFields($action, &$arFields)
        {
        }
        public static function Update($id, $arFields)
        {
        }
        public static function Delete($id)
        {
        }
        /**
         * Recalculate quantity for store.
         *
         * @param int $storeId		Store id.
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\Db\SqlQueryException
         */
        public static function recalculateStoreBalances($storeId)
        {
        }
    }
    class CCatalogProductSetAvailable extends \CCatalogStepOperations
    {
        const SESSION_PREFIX = 'PSA';
        public function __construct($sessID, $maxExecutionTime, $maxOperationCounter)
        {
        }
        public function runOperation()
        {
        }
        public static function getAllCounter()
        {
        }
    }
    class CCatalogProductAvailable extends \CCatalogStepOperations
    {
        const SESSION_PREFIX = 'PA';
        protected $config = array();
        protected $preloadTooLong = \false;
        protected $iblockData = \null;
        protected $productList = array();
        protected $currentList = array();
        protected $currentIdsList = array();
        private $offersMap = array();
        private $offersIds = array();
        private $prices = array();
        private $calculatePrices = array();
        private $existPriceIds = array();
        private $existIdsByType = array();
        private $measureRatios = array();
        private $currencyReference = array();
        private $measureIds = ['DEFAULT' => \null, 'BASE' => \null];
        /** @deprecated  */
        protected $useSets = \false;
        /** @deprecated  */
        protected $separateSkuMode = \false;
        /** @deprecated  */
        protected $extendedMode = \false;
        public function __construct($sessID, $maxExecutionTime, $maxOperationCounter)
        {
        }
        public function isUseSets()
        {
        }
        public function isSeparateSkuMode()
        {
        }
        public function runOperation()
        {
        }
        public function getMessage()
        {
        }
        public static function getIblockList($iblockId)
        {
        }
        protected function checkPreloadTime()
        {
        }
        protected function calculateNextOperationCounter()
        {
        }
        protected function initConfig()
        {
        }
        protected function setOldConfig()
        {
        }
        protected function initReferences()
        {
        }
        private function initCurrencyReference()
        {
        }
        private function initMeasures()
        {
        }
        /** @deprecated */
        protected function runOperationFullCatalog()
        {
        }
        /** @deprecated */
        protected function runOperationProductIblock()
        {
        }
        /** @deprected */
        protected function runOperationCatalog()
        {
        }
        /** @deprected */
        protected function runOperationOfferIblock()
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.0
         *
         * @param array $product
         * @return void
         */
        protected function runExtendedOperation(array $product)
        {
        }
        protected function getProductIterator($filter, $select)
        {
        }
        protected static function getIblockCounter($iblockId)
        {
        }
        private function loadSkuData()
        {
        }
        private function loadProductPrices()
        {
        }
        private function loadSkuPrices()
        {
        }
        private function loadOffersData()
        {
        }
        private function loadProductSets()
        {
        }
        private function loadMeasureRatios()
        {
        }
        private function updateProductData()
        {
        }
        private function updateProductPrices($id, array $product)
        {
        }
        private function updateSkuPrices($id, array $product)
        {
        }
        private function updateMeasureRatios($id, array $product)
        {
        }
        private function getFullCatalogItem(array $product)
        {
        }
        private function getProductIblockItem(array $product)
        {
        }
        private function getCatalogItem(array $product)
        {
        }
        private function getOfferIblockItem(array $product)
        {
        }
    }
    class CCatalogProductSettings extends \CCatalogProductAvailable
    {
        const SESSION_PREFIX = 'PS';
        const SETS_ID = 'SETS';
        public function __construct($sessID, $maxExecutionTime, $maxOperationCounter)
        {
        }
        public function runOperation()
        {
        }
        public function getMessage()
        {
        }
        public static function getCatalogList()
        {
        }
        protected function initConfig()
        {
        }
        protected function runOperationSets()
        {
        }
        protected static function addSetDescription(array &$iblockList)
        {
        }
        protected static function getProductFilter($iblockFilter = \false)
        {
        }
    }
    class CCatalogIblockReindex extends \CCatalogProductAvailable
    {
        const NOTIFY_ID = 'CATALOG_REINDEX';
        public function __construct($sessID, $maxExecutionTime, $maxOperationCounter)
        {
        }
        public static function removeNotify()
        {
        }
        public static function showNotify()
        {
        }
        public static function execAgent()
        {
        }
        protected function initConfig()
        {
        }
        protected function setOldConfig()
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.0
         *
         * @param array $product
         * @return void
         * @throws Exception
         * @throws Main\ArgumentException
         */
        protected function runExtendedOperation(array $product)
        {
        }
    }
    /**
     * @deprecated deprecated since catalog 17.5.0
     * @see \Bitrix\Catalog\Product\CatalogProvider
     */
    class CCatalogProductProvider implements \IBXSaleProductProvider
    {
        protected static $errors = array();
        protected static $arOneTimeCoupons = array();
        // deprecated
        protected static $clearAutoCache = array();
        protected static $catalogList = array();
        protected static $userCache = array();
        protected static $priceTitleCache = array();
        protected static $proxyUserGroups = array();
        protected static $proxyIblockElementListPermN = array();
        protected static $proxyIblockElementListPermY = array();
        protected static $proxyIblockRights = array();
        protected static $proxyCatalogProduct = array();
        protected static $proxyStoresCount = array();
        protected static $hitCache = array();
        const CATALOG_PROVIDER_EMPTY_STORE_ID = 0;
        const CACHE_USER_GROUPS = 'USER_GROUPS';
        const CACHE_ITEM_WITHOUT_RIGHTS = 'IBLOCK_ELEMENT_PERM_N';
        const CACHE_ITEM_WITH_RIGHTS = 'IBLOCK_ELEMENT_PERM_Y';
        const CACHE_IBLOCK_RIGHTS_MODE = 'IBLOCK_RIGHTS_MODE';
        const CACHE_USER_RIGHTS = 'USER_RIGHT';
        const CACHE_PRODUCT = 'CATALOG_PRODUCT';
        const CACHE_VAT = 'VAT_INFO';
        const CACHE_IBLOCK_RIGHTS = 'IBLOCK_RIGHTS';
        const CACHE_STORE = 'CATALOG_STORE';
        const CACHE_STORE_PRODUCT = 'CATALOG_STORE_PRODUCT';
        const CACHE_PARENT_PRODUCT_ACTIVE = 'PARENT_PRODUCT_ACTIVE';
        /**
         * @param array $arParams
         * @return array|false
         */
        public static function GetProductData($arParams)
        {
        }
        /**
         * @param array $arParams
         * @return array|false
         */
        public static function OrderProduct($arParams)
        {
        }
        // in case product provider class is used,
        // instead of this method quantity is changed with ReserveProduct and DeductProduct methods
        public static function CancelProduct($arParams)
        {
        }
        public static function DeliverProduct($arParams)
        {
        }
        /**
         * @deprecated
         *
         * @param array $arParams
         * @return array|bool
         */
        public static function ViewProduct($arParams)
        {
        }
        public static function RecurringOrderProduct($arParams)
        {
        }
        public static function ReserveProduct($arParams)
        {
        }
        public static function DeductProduct($arParams)
        {
        }
        /**
         * @param \Bitrix\Sale\BasketItem $basketItem
         * @param string $reserved
         * @param array $basketStoreData
         * @param null $quantity
         * @return \Bitrix\Sale\Result
         */
        public static function tryShipmentProduct(\Bitrix\Sale\BasketItem $basketItem, $reserved = 'N', array $basketStoreData = array(), $quantity = \null)
        {
        }
        public static function tryUnshipmentProduct($productId)
        {
        }
        public static function GetStoresCount($arParams = array())
        {
        }
        public static function GetProductStores($arParams)
        {
        }
        public static function CheckProductBarcode($arParams)
        {
        }
        private static function GetProductCatalogInfo($productID)
        {
        }
        public static function GetSetItems($productID, $intType, $arProducInfo = array())
        {
        }
        protected static function isNeedClearPublicCache($currentQuantity, $newQuantity, $quantityTrace, $canBuyZero, $ratio = 1)
        {
        }
        protected static function clearPublicCache($productID, $productInfo = array())
        {
        }
        /**
         * @param $productId
         * @param null $userId
         * @return bool
         * @throws Main\ArgumentException
         */
        public static function getProductAvailableQuantity($productId, $userId = \null)
        {
        }
        protected static function getUserGroups($userId)
        {
        }
        protected static function getProductPoolQuantityByBasketItem(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        protected static function getPriceTitle($priceType)
        {
        }
        /**
         * Check exist and activity parent product.
         *
         * @param int $productId			Product Id.
         * @param int $iblockId				Iblock Id.
         * @return bool
         */
        protected static function checkParentActivity($productId, $iblockId = 0)
        {
        }
        /**
         * @internal
         * @param string $type
         * @param string $key
         * @return false|mixed
         */
        public static function getHitCache($type, $key)
        {
        }
        /**
         * @internal
         * @param string $type
         * @param string $key
         * @return bool
         */
        public static function isExistsHitCache($type, $key)
        {
        }
        /**
         * @internal
         * @param string $type
         * @param string $key
         * @param mixed $value
         * @return void
         */
        public static function setHitCache($type, $key, $value)
        {
        }
        /**
         * @internal
         * @param string|null $type
         * @return void
         */
        public static function clearHitCache($type = \null)
        {
        }
        /**
         * @param \Bitrix\Sale\BasketItem $basketItem
         *
         * @return bool
         * @throws Main\ArgumentNullException
         */
        protected static function canProductAutoShip(\Bitrix\Sale\BasketItem $basketItem)
        {
        }
        /**
         * @param \Bitrix\Sale\BasketItem $basketItem
         * @param $quantity
         *
         * @return array|bool
         */
        protected static function getProductStoreData(\Bitrix\Sale\BasketItem $basketItem, $quantity)
        {
        }
        /**
         * @param \Bitrix\Sale\BasketItem $basketItem
         * @param $quantity
         *
         * @return array|bool
         */
        protected static function getProductOneStoreData(\Bitrix\Sale\BasketItem $basketItem, $quantity)
        {
        }
        protected static function getStoreIds(array $params)
        {
        }
        /**
         * Check available set items.
         * Error text return in static::$errors
         *
         * @param int $productId        Product id.
         * @return bool
         */
        protected static function checkProductSet($productId)
        {
        }
        /**
         * @return bool
         */
        public static function isReservationEnabled()
        {
        }
        /**
         * @return bool
         */
        public static function isNeedShip()
        {
        }
    }
    abstract class CCatalogProductSetAll
    {
        const TYPE_SET = 1;
        const TYPE_GROUP = 2;
        protected static $arErrors = array();
        protected static $disableShowErrors = 0;
        protected static $disableCheckProduct = \false;
        protected static $recalculateSet = 0;
        public static function enableShowErrors()
        {
        }
        public static function disableShowErrors()
        {
        }
        public static function isEnabledShowErrors()
        {
        }
        public static function enableRecalculateSet()
        {
        }
        public static function disableRecalculateSet()
        {
        }
        public static function isEnabledRecalculateSet()
        {
        }
        public static function getErrors()
        {
        }
        public static function setCheckParams($params)
        {
        }
        public static function clearCheckParams()
        {
        }
        public static function checkFields($strAction, &$arFields, $intID = 0)
        {
        }
        public static function add($arFields)
        {
        }
        public static function update($intID, $arFields)
        {
        }
        public static function delete($intID)
        {
        }
        /**
         * @param int $intProductID
         * @param int $intSetType
         * @return bool
         */
        public static function isProductInSet($intProductID, $intSetType = 0)
        {
        }
        /**
         * @param int|array $arProductID
         * @param int $intSetType
         * @return bool
         */
        public static function isProductHaveSet($arProductID, $intSetType = 0)
        {
        }
        public static function canCreateSetByProduct($intProductID, $intSetType)
        {
        }
        /**
         * @param int $intProductID
         * @param int $intSetType
         * @return array|false
         */
        public static function getAllSetsByProduct($intProductID, $intSetType)
        {
        }
        /**
         * @param int $intID
         * @return array|false
         */
        public static function getSetByID($intID)
        {
        }
        public static function deleteAllSetsByProduct($intProductID, $intSetType)
        {
        }
        /**
         * @param int $product
         * @return void
         */
        public static function recalculateSetsByProduct($product)
        {
        }
        public static function recalculateSet($setID, $productID = 0)
        {
        }
        protected static function checkFieldsToAdd(&$arFields, $boolCheckNew = \false)
        {
        }
        protected static function checkFieldsToUpdate($intID, &$arFields)
        {
        }
        protected static function getSetID($intID)
        {
        }
        protected static function getEmptySet($intSetType)
        {
        }
        protected static function deleteFromSet($intID, $arEx)
        {
        }
        protected static function setItemFieldsForAdd(&$arFields)
        {
        }
        protected static function setItemFieldsForUpdate(&$arFields, $arCurrent)
        {
        }
        protected static function clearFieldsForUpdate(&$arFields, $intSetType)
        {
        }
        protected static function getEmptyFields()
        {
        }
        protected static function getEmptyItemFields()
        {
        }
        protected static function searchItem($intItemID, &$arItems)
        {
        }
        protected static function calculateSetParams($productID, $items)
        {
        }
        protected static function fillSetItemsParams(&$items)
        {
        }
        protected static function createSetItemsParamsFromAdd($items)
        {
        }
        protected static function createSetItemsParamsFromUpdate($setID, $getProductID = \false)
        {
        }
        protected static function isTracedItem($item)
        {
        }
        protected static function checkProducts($type, array $productList)
        {
        }
    }
    class CCatalogCondCtrlBasketProductFields extends \CCatalogCondCtrlIBlockFields
    {
        public static function GetControlDescr()
        {
        }
        public static function GetControlShow($arParams)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        public static function GetShowIn($arControls)
        {
        }
    }
    class CCatalogCondCtrlBasketProductProps extends \CCatalogCondCtrlIBlockProps
    {
        public static function GetControlDescr()
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        public static function GetShowIn($arControls)
        {
        }
    }
    class CCatalogCondCtrlCatalogSettings extends \CGlobalCondCtrlComplex
    {
        public static function GetControlDescr()
        {
        }
        public static function GetControlShow($arParams)
        {
        }
        public static function GetConditionShow($arParams)
        {
        }
        public static function Parse($arOneCondition)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        public static function GetShowIn($arControls)
        {
        }
        public static function GetControlID()
        {
        }
        /**
         * @param bool|string $strControlID
         * @return bool|array
         */
        public static function GetControls($strControlID = \false)
        {
        }
    }
    class CAllCatalogGroup
    {
        protected static $arBaseGroupCache = array();
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function GetGroupsPerms($arUserGroups = array(), $arCatalogGroupsFilter = array())
        {
        }
        public static function GetListArray()
        {
        }
        public static function GetBaseGroup()
        {
        }
    }
    class CAllCatalogSku
    {
        const TYPE_CATALOG = 'D';
        const TYPE_PRODUCT = 'P';
        const TYPE_OFFERS = 'O';
        const TYPE_FULL = 'X';
        protected static $arOfferCache = array();
        protected static $arProductCache = array();
        protected static $arPropertyCache = array();
        protected static $arIBlockCache = array();
        protected static $parentCache = array();
        public static function GetCatalogTypes($boolFull = \false)
        {
        }
        public static function GetProductInfo($intOfferID, $intIBlockID = 0)
        {
        }
        public static function GetInfoByOfferIBlock($intIBlockID)
        {
        }
        public static function GetInfoByProductIBlock($intIBlockID)
        {
        }
        public static function GetInfoByLinkProperty($intPropertyID)
        {
        }
        public static function GetInfoByIBlock($intIBlockID)
        {
        }
        /*
         * @deprecated deprecated since catalog 15.0.1
         * @see CCatalogSKU::getExistOffers()
         */
        public static function IsExistOffers($intProductID, $intIBlockID = 0)
        {
        }
        public static function getExistOffers($productID, $iblockID = 0)
        {
        }
        /**
         * @param int|array $productID
         * @param int $iblockID
         * @param array $skuFilter
         * @param array $fields
         * @param array $propertyFilter
         * @param array $options
         * @param array $order
         * @return array|bool
         */
        public static function getOffersList($productID, $iblockID = 0, $skuFilter = array(), $fields = array(), $propertyFilter = array(), $options = array(), $order = array())
        {
        }
        public static function getProductList($offerID, $iblockID = 0)
        {
        }
        public static function ClearCache()
        {
        }
    }
    class CCatalogSku extends \CAllCatalogSku
    {
    }
    class CAllCatalogDiscountCoupon
    {
        const TYPE_ONE_TIME = 'Y';
        const TYPE_ONE_ORDER = 'O';
        const TYPE_NO_LIMIT = 'N';
        protected static $arOneOrderCoupons = array();
        protected static $existCouponsManager = \null;
        /**
         * @deprecated deprecated since catalog 15.0.7
         * @see \Bitrix\Catalog\DiscountCouponTable::getCouponTypes
         *
         * @param bool $boolFull			Get full description.
         * @return array
         */
        public static function GetCoupontTypes($boolFull = \false)
        {
        }
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.7
         * @see \Bitrix\Catalog\DiscountCouponTable::deleteByDiscount()
         *
         * @param int $ID
         * @param bool $bAffectDataFile
         * @return bool
         */
        public static function DeleteByDiscountID($ID, $bAffectDataFile = \true)
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.4
         * @see \Bitrix\Sale\DiscountCouponsManager::add
         *
         * @param string $coupon			Coupon code.
         * @return bool
         */
        public static function SetCoupon($coupon)
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.4
         * @see \Bitrix\Sale\DiscountCouponsManager::get
         */
        public static function GetCoupons()
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.4
         * @see \Bitrix\Sale\DiscountCouponsManager::delete
         *
         * @param string $strCoupon			Coupon code.
         * @return bool
         */
        public static function EraseCoupon($strCoupon)
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.4
         * @see \Bitrix\Sale\DiscountCouponsManager::clear
         */
        public static function ClearCoupon()
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.4
         * @see \Bitrix\Sale\DiscountCouponsManager::add
         *
         * @param int $intUserID				User id.
         * @param string $strCoupon			Coupon code.
         * @return bool
         */
        public static function SetCouponByManage($intUserID, $strCoupon)
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.4
         * @see \Bitrix\Sale\DiscountCouponsManager::get
         *
         * @param int $intUserID			User id.
         * @return bool|array
         */
        public static function GetCouponsByManage($intUserID)
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.4
         * @see \Bitrix\Sale\DiscountCouponsManager::delete
         *
         * @param int $intUserID				User id.
         * @param string $strCoupon			Coupon code.
         * @return bool
         */
        public static function EraseCouponByManage($intUserID, $strCoupon)
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.4
         * @see \Bitrix\Sale\DiscountCouponsManager::clear
         *
         * @param int $intUserID				User id.
         * @return bool
         */
        public static function ClearCouponsByManage($intUserID)
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.4
         * @see \Bitrix\Sale\DiscountCouponsManager
         *
         * @param int $intUserID				User id.
         * @param array $arCoupons			Coupon code list.
         * @param array $arModules			Modules list.
         * @return bool
         */
        public static function OnSetCouponList($intUserID, $arCoupons, $arModules)
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.4
         * @see \Bitrix\Sale\DiscountCouponsManager
         *
         * @param int $intUserID				User id.
         * @param array $arCoupons			Coupon code list.
         * @param array $arModules			Modules list.
         * @return bool
         */
        public static function OnClearCouponList($intUserID, $arCoupons, $arModules)
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.4
         * @see \Bitrix\Sale\DiscountCouponsManager
         * @param int $intUserID				User id.
         * @param array $arModules			Modules list.
         * @return bool
         */
        public static function OnDeleteCouponList($intUserID, $arModules)
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.4
         * @see \Bitrix\Sale\DiscountCouponsManager::isExist
         *
         * @param string $strCoupon			Coupon code.
         * @return bool
         */
        public static function IsExistCoupon($strCoupon)
        {
        }
        protected static function initCouponManager()
        {
        }
    }
    class CAllCatalogImport
    {
        public static function CheckFields($ACTION, &$arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function GetList($arOrder = array("ID" => "ASC"), $arFilter = array(), $bCount = \false)
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function PreGenerateImport($profile_id)
        {
        }
    }
    class CCatalogActionCtrlBasketProductFields extends \CCatalogCondCtrlIBlockFields
    {
        public static function GetControlDescr()
        {
        }
        public static function GetControlShow($arParams)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        public static function GetShowIn($arControls)
        {
        }
        /**
         * @param bool|string $strControlID
         * @return bool|array
         */
        public static function GetControls($strControlID = \false)
        {
        }
        /**
         * @return string|array
         */
        public static function GetControlID()
        {
        }
    }
    class CCatalogActionCtrlBasketProductProps extends \CCatalogCondCtrlIBlockProps
    {
        public static function GetControlDescr()
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        public static function GetShowIn($arControls)
        {
        }
    }
    class CCatalogGifterProduct extends \CGlobalCondCtrlAtoms
    {
        public static function GetShowIn($params)
        {
        }
        public static function Generate($arOneCondition, $arParams, $arControl, $arSubs = \false)
        {
        }
        public static function GetControls($strControlID = \false)
        {
        }
        public static function GetAtomsEx($strControlID = \false, $boolEx = \false)
        {
        }
        public static function GenerateApplyCallableFilter($controlId, array $gifts, $type)
        {
        }
        public static function getRatio($productId)
        {
        }
        public static function ProvideGiftData(array $actionData)
        {
        }
        protected static function GetProductIdsBySection($sectionId)
        {
        }
        public static function ExtendProductIds(array $giftedProductIds)
        {
        }
        /**
         * @return string
         */
        private static function getAdminSection()
        {
        }
    }
    class CCatalogEvent
    {
        /**
         * @return array
         */
        public static function GetAuditTypes() : array
        {
        }
        /**
         * @return array
         */
        public static function GetYandexAgentEvent() : array
        {
        }
        /**
         * @return string
         */
        public static function GetYandexAgentFilter() : string
        {
        }
    }
    class CCatalogCSVSettings
    {
        const FIELDS_ELEMENT = 'ELEMENT';
        const FIELDS_CATALOG = 'CATALOG';
        const FIELDS_PRICE = 'PRICE';
        const FIELDS_PRICE_EXT = 'PRICE_EXT';
        const FIELDS_SECTION = 'SECTION';
        const FIELDS_CURRENCY = 'CURRENCY';
        public static function getSettingsFields($type, $extFormat = \false)
        {
        }
        public static function getDefaultSettings($type, $extFormat = \false)
        {
        }
    }
    class CAllExtra
    {
        protected static $arExtraCache = array();
        public static function ClearCache()
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function SelectBox($sFieldName, $sValue, $sDefaultValue = "", $JavaChangeFunc = "", $sAdditionalParams = "")
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function CheckFields($strAction, &$arFields, $ID = 0)
        {
        }
        /**
         * @deprecated deprecated since catalog 12.5.6
         *
         * @param array $arFields
         * @param int $intID
         * @return false
         */
        public static function PrepareInsert(&$arFields, &$intID)
        {
        }
    }
    class CCatalogResult extends \CDBResult
    {
        /** @var null|Catalog\Model\Entity $entity */
        private $entity = \null;
        private $fields = array();
        private $resultKeys = array();
        private $erasedKeys = array();
        public function __construct($entity, $result = \null)
        {
        }
        public function setResult($result)
        {
        }
        public function prepareSelect(array $select)
        {
        }
        public function Fetch()
        {
        }
    }
    class CAllCatalogLoad
    {
        function GetList($arOrder = array("LAST_USED" => "DESC"), $arFilter = array())
        {
        }
        function Add($arFields)
        {
        }
        function Delete($ID)
        {
        }
        function SetLastUsed($NAME, $TYPE)
        {
        }
    }
    class CAllCatalogVat
    {
        /**
         * @deprecated deprecated since catalog 12.5.6
         */
        public static function err_mess()
        {
        }
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        /**
         * @deprecated deprecated since catalog 20.0.200
         * @see \Bitrix\Catalog\VatTable::getById()
         *
         * @param int $ID
         * @return CDBResult|false
         */
        public static function GetByID($ID)
        {
        }
        /**
         * @deprecated deprecated since catalog 12.5.6
         * @see CCatalogVat::GetListEx()
         *
         * @param array $arOrder
         * @param array $arFilter
         * @param array $arFields
         * @return CDBResult|false
         */
        public static function GetList($arOrder = array('SORT' => 'ASC'), $arFilter = array(), $arFields = array())
        {
        }
        /**
         * @deprecated deprecated since catalog 12.5.6
         * @see CCatalogVat::Add()
         * @see CCatalogVat::Update()
         *
         * @param array $arFields
         * @return int|false
         */
        public static function Set($arFields)
        {
        }
        public static function GetByProductID($PRODUCT_ID)
        {
        }
    }
    class CCatalogTools
    {
        public static function updateModuleTasksAgent()
        {
        }
        public static function updatePropertyFeaturesBitrix24Agent()
        {
        }
    }
    class CAllCatalogDocs
    {
        static $types = array("A" => "CCatalogArrivalDocs", "M" => "CCatalogMovingDocs", "R" => "CCatalogReturnsDocs", "D" => "CCatalogDeductDocs", "U" => "CCatalogUnReservedDocs");
        /**
         * @param $id
         * @param $arFields
         * @return bool
         */
        public static function update($id, $arFields)
        {
        }
        /**
         * @param $id
         * @return bool
         */
        public static function delete($id)
        {
        }
        /**
         * @param $action
         * @param $arFields
         * @return bool
         */
        protected function checkFields($action, &$arFields)
        {
        }
        /**
         * @param $documentId
         * @param int $userId
         * @return bool|string
         */
        public static function conductDocument($documentId, $userId = 0)
        {
        }
        /**
         * @param $documentId
         * @param int $userId
         * @return array|bool|string
         */
        public static function cancellationDocument($documentId, $userId = 0)
        {
        }
        public static function OnIBlockElementDelete($productID)
        {
        }
        public static function OnCatalogStoreDelete($storeID)
        {
        }
        public static function OnBeforeIBlockElementDelete($productID)
        {
        }
    }
    class CAllCatalogProductGroups
    {
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function DeleteByGroup($ID)
        {
        }
        public static function OnGroupDelete($ID)
        {
        }
    }
    class CAllPrice
    {
        /**
         * @deprecated deprecated since catalog 17.6.0
         *
         * @param string $ACTION
         * @param array &$arFields
         * @param int $ID
         * @return bool
         */
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        /**
         * @param int $id
         * @return array|false
         */
        public static function GetByID($id)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.0
         * @see \Bitrix\Catalog\Model\Price::add
         *
         * @param array $fields
         * @param bool $recount
         * @return bool|int
         */
        public static function Add($fields, $recount = \false)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.0
         * @see \Bitrix\Catalog\Model\Price::update
         *
         * @param $id
         * @param array $fields
         * @param bool $recount
         * @return bool|int
         */
        public static function Update($id, $fields, $recount = \false)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.0
         * @see \Bitrix\Catalog\Model\Price::delete
         *
         * @param $id
         * @return bool
         */
        public static function Delete($id)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.0
         * @see \Bitrix\Catalog\Model\Price::getList
         *
         * @param $productID
         * @param bool $quantityFrom
         * @param bool $quantityTo
         * @param bool $boolExt
         * @return array|bool|false|mixed|null
         */
        public static function GetBasePrice($productID, $quantityFrom = \false, $quantityTo = \false, $boolExt = \true)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.0
         * @see \Bitrix\Catalog\Model\Price::add and \Bitrix\Catalog\Model\Price::update
         *
         * @param int $ProductID
         * @param int|float $Price
         * @param string $Currency
         * @param bool $quantityFrom
         * @param bool $quantityTo
         * @param bool $bGetID
         * @return bool|int
         */
        public static function SetBasePrice($ProductID, $Price, $Currency, $quantityFrom = \false, $quantityTo = \false, $bGetID = \false)
        {
        }
        public static function ReCalculate($TYPE, $ID, $VAL)
        {
        }
        public static function OnCurrencyDelete($Currency)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.0
         * @see \Bitrix\Catalog\Model\Product::delete
         *
         * @param int $ProductID
         * @return bool
         */
        public static function OnIBlockElementDelete($ProductID)
        {
        }
        public static function DeleteByProduct($ProductID, $arExceptionIDs = array())
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.0
         * @see \Bitrix\Catalog\Model\Price::add and \Bitrix\Catalog\Model\Price::update
         *
         * @param array &$arFields
         * @return void
         */
        public static function ReCountForBase(&$arFields)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.0
         * @see \Bitrix\Catalog\Model\Price::add and \Bitrix\Catalog\Model\Price::update
         *
         * @param array &$arFields
         * @param bool &$boolBase
         * @return void
         */
        public static function ReCountFromBase(&$arFields, &$boolBase)
        {
        }
        private static function convertErrors(\Bitrix\Main\Entity\Result $result)
        {
        }
        private static function normalizeFields(array &$fields)
        {
        }
    }
    class CCatalogDiscountConvert
    {
        public static $intConvertPerStep = 0;
        public static $intNextConvertPerStep = 0;
        public static $intConverted = 0;
        public static $intLastConvertID = 0;
        public static $boolEmptyList = \false;
        public static $intErrors = 0;
        public static $arErrors = array();
        public static $strSessID = '';
        public function __construct()
        {
        }
        public static function InitStep()
        {
        }
        public static function SaveStep()
        {
        }
        public static function GetErrors()
        {
        }
        public static function ConvertDiscount($intStep = 100, $intMaxExecutionTime = 15)
        {
        }
        public static function ConvertFormatDiscount($intStep = 20, $intMaxExecutionTime = 15)
        {
        }
        public static function GetCountOld()
        {
        }
        public static function GetCountFormat()
        {
        }
        public static function FormatComplete()
        {
        }
    }
    class CCatalogMeasureRatioAll
    {
        protected static $whiteList = array('ID', 'PRODUCT_ID', 'RATIO', 'IS_DEFAULT');
        protected static function checkFields($action, &$arFields)
        {
        }
        /**
         * @deprecated deprecated since catalog 16.0.13
         * @see \Bitrix\Catalog\MeasureRatioTable::add
         * Attention! Method \Bitrix\Catalog\MeasureRatioTable::add very strict checks the input parameters.
         *
         * Add measure ratio for product.
         *
         * @param array $arFields		Measure ratio.
         * @return bool|int
         * @throws Exception
         */
        public static function add($arFields)
        {
        }
        /**
         * @deprecated deprecated since catalog 16.0.13
         * @see \Bitrix\Catalog\MeasureRatioTable::update
         * Attention! Method \Bitrix\Catalog\MeasureRatioTable::update very strict checks the input parameters.
         *
         * Update measure ratio for product by id.
         *
         * @param int $id				Measure ratio id.
         * @param array $arFields		Measure ratio.
         * @return bool|int
         * @throws Exception
         */
        public static function update($id, $arFields)
        {
        }
        /**
         * @deprecated deprecated since catalog 16.0.13
         * @see \Bitrix\Catalog\MeasureRatioTable::delete
         *
         * Delete measure ratio by id.
         *
         * @param int $id		Measure ratio id.
         * @return bool
         * @throws Exception
         */
        public static function delete($id)
        {
        }
    }
    /**
     * Class CCatalogMeasureClassifier
     */
    class CCatalogMeasureClassifier
    {
        protected static $unitsClassifier = \null;
        private static function initMeasureClassifier()
        {
        }
        /**
         * @return array
         */
        public static function getMeasureClassifier()
        {
        }
        /**
         * @deprecated deprecated since catalog 14.5.0 - not needed, compatibility only
         * @return array
         */
        protected static function measureStore()
        {
        }
        /**
         * @param $findId
         * @param string $findValue
         * @return string
         */
        public static function getMeasureTitle($findId, $findValue = 'MEASURE_TITLE')
        {
        }
        public static function getMeasureInfoByCode($findCode)
        {
        }
    }
    /**
     * Class CCatalogMeasureAdminResult
     */
    class CCatalogMeasureAdminResult extends \CAdminResult
    {
        protected $measureResult;
        public function __construct($res, $table_id)
        {
        }
        /**
         * @return array
         */
        public function Fetch()
        {
        }
    }
    class CCatalogMeasureAdminUiResult extends \CAdminUiResult
    {
        protected $measureResult;
        public function __construct($res, $table_id)
        {
        }
        /**
         * @return array
         */
        public function Fetch()
        {
        }
    }
    class CCatalogAdminToolsAll
    {
        const TAB_CATALOG = 'P';
        const TAB_SKU = 'O';
        const TAB_SET = 'S';
        const TAB_GROUP = 'G';
        const TAB_KEY = 'PRODUCT_TYPE';
        protected static $strMainPrefix = '';
        protected static $arErrors = array();
        protected static $arCheckResult = array();
        public static function getTabList($boolFull = \false)
        {
        }
        public static function getIBlockElementMenu($intIBlockID, &$arCatalog, $arParams, \Bitrix\Iblock\Url\AdminPage\BaseBuilder $urlBuilder = \null)
        {
        }
        public static function getIBlockElementContentMenu($intIBlockID, $intID, &$arCatalog, $arParams)
        {
        }
        public static function getShowTabs($intIBlockID, $intID, &$arCatalog)
        {
        }
        public static function getFormParams($params = array())
        {
        }
        public static function showFormParams()
        {
        }
        public static function setCatalogPanelButtons(&$buttons, $iblock, $catalogButtons, $params, $windowParams)
        {
        }
        public static function setMainPrefix($strPrefix)
        {
        }
        public static function getMainPrefix()
        {
        }
        public static function setProductFormParams()
        {
        }
        public static function setSkuFormParams()
        {
        }
        public static function getErrors()
        {
        }
        public static function changeTabs($intIBlockID, $intID, &$arCatalog)
        {
        }
        public static function addTabParams(&$arParams)
        {
        }
        public static function clearTabParams()
        {
        }
        /**
         * @param int $iblockId
         * @param bool $withDescr
         * @return array|mixed
         */
        public static function getIblockProductTypeList($iblockId, $withDescr = \false)
        {
        }
        /**
         * @param bool $withDescr
         * @return array
         */
        public static function getProductTypeList($withDescr = \false)
        {
        }
    }
    class CCatalogAdminTools extends \CCatalogAdminToolsAll
    {
    }
    class CCatalogAdminProductSetEdit
    {
        const NEW_ITEM_COUNT = 3;
        const PREFIX_SET = 'PRODUCT_SET';
        const PREFIX_GROUP = 'PRODUCT_GROUP';
        protected static $strMainPrefix = '';
        protected static $intTypeID = 0;
        protected static $arErrors = array();
        protected static $arSrcValues = array();
        protected static $arCheckValues = array();
        public static function setMainPrefix($strPrefix)
        {
        }
        public static function getMainPrefix()
        {
        }
        public static function setTypeID($intTypeID)
        {
        }
        public static function getTypeID()
        {
        }
        public static function setProductFormParams($arParams)
        {
        }
        public static function setSkuFormParams($arParams)
        {
        }
        public static function getEmptySet($intProductID)
        {
        }
        public static function getEmptyItem($arParams)
        {
        }
        public static function getFormValues(&$arSets)
        {
        }
        public static function addEmptyValues(&$arSets)
        {
        }
        public static function getItemsInfo(&$arSets)
        {
        }
        public static function clearOwnerSet(&$arSets)
        {
        }
        public static function showEditForm($arSets)
        {
        }
        public static function showItemRow($arRow, $arParams)
        {
        }
        protected static function getJSRow($arParams)
        {
        }
        public static function checkFormValues($arItem)
        {
        }
        public static function saveFormValues($arItem)
        {
        }
        public static function getErrors()
        {
        }
    }
    /**
     * Class CCatalogMeasureAll
     */
    class CCatalogMeasureAll
    {
        const DEFAULT_MEASURE_CODE = 796;
        protected static $defaultMeasure = \null;
        /**
         * @param string $action
         * @param array $arFields
         * @param int $id
         * @return bool
         */
        protected static function checkFields($action, &$arFields, $id = 0)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.5.12
         * @see \Bitrix\Catalog\MeasureTable:add
         *
         * @param array $arFields
         * @return bool|int
         */
        public static function add($arFields)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.5.12
         * @see \Bitrix\Catalog\MeasureTable:update
         *
         * @param int $id
         * @param array $arFields
         * @return bool|int
         */
        public static function update($id, $arFields)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.5.12
         * @see \Bitrix\Catalog\MeasureTable:delete
         *
         * @param int $id
         * @return bool
         */
        public static function delete($id)
        {
        }
        public static function getDefaultMeasure($getStub = \false, $getExt = \false)
        {
        }
        private static function convertErrors(\Bitrix\Main\Entity\Result $result)
        {
        }
    }
    /**
     * Class CCatalogMeasureResult
     */
    class CCatalogMeasureResult extends \CDBResult
    {
        /**
         * @param $res
         */
        public function __construct($res)
        {
        }
        /**
         * @return array
         */
        function Fetch()
        {
        }
    }
    class CCatalogAdmin
    {
        protected static $catalogRead = \false;
        protected static $catalogGroup = \false;
        protected static $catalogPrice = \false;
        protected static $catalogMeasure = \false;
        protected static $catalogDiscount = \false;
        protected static $catalogVat = \false;
        protected static $catalogExtra = \false;
        protected static $catalogStore = \false;
        protected static $catalogExportEdit = \false;
        protected static $catalogExportExec = \false;
        protected static $catalogImportEdit = \false;
        protected static $catalogImportExec = \false;
        public static function get_other_elements_menu($IBLOCK_TYPE_ID, $IBLOCK_ID, $arSection, &$more_url)
        {
        }
        public static function get_sections_menu($IBLOCK_TYPE_ID, $IBLOCK_ID, $DEPTH_LEVEL, $SECTION_ID, $arSectionsChain = \false)
        {
        }
        public static function OnBuildGlobalMenu(&$aGlobalMenu, &$aModuleMenu)
        {
        }
        /**
         * @deprecated deprecated since catalog 20.0.100
         *
         * @param CAdminUiList $obList
         */
        public static function OnAdminListDisplay(&$obList)
        {
        }
        public static function OnBuildSaleMenu(&$arGlobalMenu, &$arModuleMenu)
        {
        }
        protected static function OnBuildSaleMenuItem(&$arMenu)
        {
        }
        protected static function OnBuildSaleDiscountMenu(&$arItems)
        {
        }
        protected static function OnBuildSaleTaxMenu(&$arItems)
        {
        }
        protected static function OnBuildSaleSettingsMenu(&$arItems)
        {
        }
        protected static function OnBuildSaleStoreMenu(&$arItems)
        {
        }
        protected static function OnBuildSaleBuyersMenu(&$arItems)
        {
        }
        protected static function OnBuildSaleExportMenu($strItemID)
        {
        }
        protected static function OnBuildSaleImportMenu($strItemID)
        {
        }
    }
    final class CProductQueryBuilder
    {
        public const ENTITY_PRODUCT = 'PRODUCT';
        public const ENTITY_PRICE = 'PRICE';
        public const ENTITY_WARENHOUSE = 'WARENHOUSE';
        public const ENTITY_FLAT_PRICE = 'FLAT_PRICES';
        public const ENTITY_FLAT_WAREHNOUSE = 'FLAT_WARENHOUSES';
        public const ENTITY_FLAT_BARCODE = 'FLAT_BARCODE';
        public const ENTITY_OLD_PRODUCT = 'OLD_PRODUCT';
        public const ENTITY_OLD_PRICE = 'OLD_PRICE';
        public const ENTITY_OLD_STORE = 'OLD_STORE';
        private const ENTITY_CATALOG_IBLOCK = 'CATALOG_IBLOCK';
        private const ENTITY_VAT = 'VAT';
        private const FIELD_ALLOWED_SELECT = 0x1;
        private const FIELD_ALLOWED_FILTER = 0x2;
        private const FIELD_ALLOWED_ORDER = 0x4;
        private const FIELD_ALLOWED_ALL = self::FIELD_ALLOWED_SELECT | self::FIELD_ALLOWED_FILTER | self::FIELD_ALLOWED_ORDER;
        private const FIELD_PATTERN_OLD_STORE = '/^CATALOG_STORE_AMOUNT_([0-9]+)$/';
        private const FIELD_PATTERN_OLD_PRICE_ROW = '/^CATALOG_GROUP_([0-9]+)$/';
        private const FIELD_PATTERN_OLD_PRICE = '/^CATALOG_([A-Z][A-Z_]+)+_([0-9]+)$/';
        private const FIELD_PATTERN_OLD_PRODUCT = '/^CATALOG_([A-Z][A-Z_]+)$/';
        private const FIELD_PATTERN_FLAT_ENTITY = '/^([A-Z][A-Z_]+)$/';
        private const FIELD_PATTERN_SEPARATE_ENTITY = '/^([A-Z][A-Z_]+)_([1-9][0-9]*)$/';
        private const ENTITY_TYPE_FLAT = 0x1;
        private const ENTITY_TYPE_SEPARATE = 0x2;
        private static $entityDescription = [];
        private static $entityFields = [];
        private static $options = [];
        /**
         * @param array $filter
         * @param array $options
         * @return null|array
         */
        public static function makeFilter(array $filter, array $options = []) : ?array
        {
        }
        /**
         * @param array $parameters
         * @param array $options
         * @return array|null
         */
        public static function makeQuery(array $parameters, array $options = []) : ?array
        {
        }
        /**
         * @param string $field
         * @return bool
         */
        public static function isValidField(string $field) : bool
        {
        }
        /**
         * @param string $field
         * @return bool
         */
        public static function isRealFilterField(string $field) : bool
        {
        }
        /**
         * @param string $field
         * @return bool
         */
        public static function isCatalogFilterField(string $field) : bool
        {
        }
        /**
         * @param string $field
         * @return bool
         */
        public static function isProductFilterField(string $field) : bool
        {
        }
        /**
         * @param string $field
         * @return bool
         */
        public static function isPriceFilterField(string $field) : bool
        {
        }
        /**
         * @param string $field
         * @return bool
         */
        public static function isWarenhouseFilterField(string $field) : bool
        {
        }
        /**
         * @param array $filter
         * @param array $order
         * @param array $options
         * @return array
         */
        public static function modifyFilterFromOrder(array $filter, array $order, array $options) : array
        {
        }
        /**
         * @param string $field
         * @param int $useMode
         * @return string|null
         */
        public static function convertOldField(string $field, int $useMode) : ?string
        {
        }
        /**
         * @param array $select
         * @return array
         */
        public static function convertOldSelect(array $select) : array
        {
        }
        /**
         * @param array $filter
         * @return array
         */
        public static function convertOldFilter(array $filter) : array
        {
        }
        /**
         * @param array $order
         * @return array
         */
        public static function convertOldOrder(array $order) : array
        {
        }
        /**
         * @param string $entity
         * @param array $options
         * @return array|null
         */
        public static function getEntityFieldAliases(string $entity, array $options = []) : ?array
        {
        }
        /**
         * @return void
         */
        private static function initEntityDescription()
        {
        }
        /**
         * @return void
         */
        private static function initEntityFields()
        {
        }
        /**
         * @param string $entity
         * @param string $field
         * @return int
         */
        private static function getFieldAllowed(string $entity, string $field) : int
        {
        }
        /**
         * @param string $entity
         * @return array|null
         */
        private static function getFieldsAllowedToSelect(string $entity) : ?array
        {
        }
        /**
         * @param string $field
         * @return array|null
         */
        private static function parseField(string $field) : ?array
        {
        }
        /**
         * @param string $field
         * @param int $type
         * @return null|string
         */
        private static function searchFieldEntity(string $field, int $type) : ?string
        {
        }
        /**
         * @param int $allowed
         * @param int $action
         * @return bool
         */
        private static function checkAllowedAction(int $allowed, int $action) : bool
        {
        }
        /**
         * @param string $field
         * @param array $entityList
         * @return bool
         */
        private static function isEntityFilterField(string $field, array $entityList) : bool
        {
        }
        /**
         * @param array $field
         * @return string
         */
        private static function getEntityIndex(array $field) : string
        {
        }
        /**
         * Returns entity data for sql query.
         *
         * @param array $entity
         * @return array|null
         */
        private static function getEntityDescription(array $entity) : ?array
        {
        }
        /**
         * @param array $field
         * @return string
         */
        private static function getFieldIndex(array $field) : string
        {
        }
        /**
         * @param array $field
         * @return bool
         */
        private static function isPhantomField(array $field) : bool
        {
        }
        /**
         * @param string $entity
         * @param string $field
         * @return null|array
         */
        private static function getFieldDescription(string $entity, string $field) : ?array
        {
        }
        /**
         * @param array $queryItem
         * @param array $options
         * @return null|array
         */
        private static function getField(array $queryItem, array $options) : ?array
        {
        }
        /**
         * @param array|null $field
         * @return bool
         */
        private static function checkPreparedField($field) : bool
        {
        }
        /**
         * @param array $field
         * @return array
         */
        private static function getFieldSignature(array $field) : array
        {
        }
        /**
         * @param array &$parameters
         * @return void
         */
        private static function prepareSelectedCompatibleFields(array &$parameters)
        {
        }
        /**
         * @param array &$result
         * @param array $field
         * @return void
         */
        private static function fillCompatibleEntities(array &$result, array $field)
        {
        }
        /**
         * @param array $parameters
         * @param array $options
         * @return array|null
         */
        private static function prepareQuery(array $parameters, array $options) : ?array
        {
        }
        /**
         * @return void
         */
        private static function clearOptions()
        {
        }
        /**
         * @param array $options
         * @return void
         */
        private static function setOptions(array $options)
        {
        }
        /**
         * @param string $index
         * @return mixed|null
         */
        private static function getOption(string $index)
        {
        }
        /**
         * @param array $parameters
         * @return array|null
         */
        private static function build(array $parameters) : ?array
        {
        }
        /**
         * @param array &$result
         * @param array $list
         * @return void
         */
        private static function buildSelect(array &$result, array $list)
        {
        }
        /**
         * @param array &$result
         * @param array $list
         * @return void
         */
        private static function buildFilter(array &$result, array $list)
        {
        }
        /**
         * @param array &$result
         * @param array $list
         * @return void
         */
        private static function buildOrder(array &$result, array $list)
        {
        }
        /**
         * @param array &$result
         * @return void
         */
        private static function buildJoin(array &$result)
        {
        }
        /**
         * @param array &$list
         * @return void
         */
        private static function filterModify(array &$list)
        {
        }
        /**
         * @param array &$result
         * @param array $entity
         * @return void
         */
        private static function addJoin(array &$result, array $entity)
        {
        }
        /**
         * @param array &$item
         * @return void
         */
        private static function orderTransformField(array &$item)
        {
        }
        /**
         * Returns sql code for select QUANTITY_TRACE with converted default value.
         *
         * @param array &$parameters
         * @param array &$entity
         * @param array &$field
         * @return void
         *
         * @noinspection PhpUnusedPrivateMethodInspection
         * @noinspection PhpUnusedParameterInspection
         */
        private static function selectQuantityTrace(array &$parameters, array &$entity, array &$field)
        {
        }
        /**
         * Returns sql code for select CAN_BUY_ZERO with converted default value.
         *
         * @param array &$parameters
         * @param array &$entity
         * @param array &$field
         * @return void
         *
         * @noinspection PhpUnusedPrivateMethodInspection
         * @noinspection PhpUnusedParameterInspection
         */
        private static function selectCanBuyZero(array &$parameters, array &$entity, array &$field)
        {
        }
        /**
         * Returns sql code for select NEGATIVE_AMOUNT_TRACE with converted default value.
         *
         * @param array &$parameters
         * @param array &$entity
         * @param array &$field
         * @return void
         *
         * @noinspection PhpUnusedPrivateMethodInspection
         * @noinspection PhpUnusedParameterInspection
         */
        private static function selectNegativeAmountTrace(array &$parameters, array &$entity, array &$field)
        {
        }
        /**
         * Returns sql code for select SUBSCRIBE with converted default value.
         *
         * @param array &$parameters
         * @param array &$entity
         * @param array &$field
         * @return void
         *
         * @noinspection PhpUnusedPrivateMethodInspection
         * @noinspection PhpUnusedParameterInspection
         */
        private static function selectSubscribe(array &$parameters, array &$entity, array &$field)
        {
        }
        /**
         * Returns sql code for select field with default value.
         *
         * @param string $defaultValue
         * @return string
         */
        private static function getReplaceSqlFunction($defaultValue)
        {
        }
        /**
         * @param array &$parameters
         * @param array &$entity
         * @param array &$field
         * @return void
         *
         * @noinspection PhpUnusedPrivateMethodInspection
         * @noinspection PhpUnusedParameterInspection
         */
        private static function selectPriceTypeName(array &$parameters, array &$entity, array &$field)
        {
        }
        /**
         * @param array &$parameters
         * @param array &$entity
         * @param array &$field
         * @return void
         *
         * @noinspection PhpUnusedPrivateMethodInspection
         * @noinspection PhpUnusedParameterInspection
         */
        private static function selectPriceTypeAllowedView(array &$parameters, array &$entity, array &$field)
        {
        }
        /**
         * @param array &$parameters
         * @param array &$entity
         * @param array &$field
         * @return void
         *
         * @noinspection PhpUnusedPrivateMethodInspection
         * @noinspection PhpUnusedParameterInspection
         */
        private static function selectPriceTypeAllowedBuy(array &$parameters, array &$entity, array &$field)
        {
        }
        /**
         * @param array $parameters
         * @return string
         */
        private static function getPriceTypeAccess(array $parameters)
        {
        }
        /**
         * @param array &$parameters
         * @param array &$entity
         * @param array &$field
         * @return void
         *
         * @noinspection PhpUnusedPrivateMethodInspection
         * @noinspection PhpUnusedParameterInspection
         */
        private static function prepareFilterQuantityTrace(array &$parameters, array &$entity, array &$field)
        {
        }
        /**
         * @param array &$parameters
         * @param array &$entity
         * @param array &$field
         * @return void
         *
         * @noinspection PhpUnusedPrivateMethodInspection
         * @noinspection PhpUnusedParameterInspection
         */
        private static function prepareFilterCanBuyZero(array &$parameters, array &$entity, array &$field)
        {
        }
        /**
         * @param array &$parameters
         * @param array &$entity
         * @param array &$field
         * @return void
         *
         * @noinspection PhpUnusedPrivateMethodInspection
         * @noinspection PhpUnusedParameterInspection
         */
        private static function prepareFilterSubscribe(array &$parameters, array &$entity, array &$field)
        {
        }
        /**
         * Returns data for filtering with default values.
         *
         * @param mixed $values
         * @param string $defaultValue
         * @return mixed
         */
        private static function addDefaultValue($values, $defaultValue)
        {
        }
        /**
         * @param array &$parameters
         * @param array &$entity
         * @param array &$field
         * @return void
         *
         * @noinspection PhpUnusedPrivateMethodInspection
         * @noinspection PhpUnusedParameterInspection
         */
        private static function priceParametersFilter(array &$parameters, array &$entity, array &$field)
        {
        }
        /**
         * @param array &$filter
         * @param int $filterKey
         * @param array $entity
         * @param array $field
         * @return void
         *
         * @noinspection PhpUnusedPrivateMethodInspection
         * @noinspection PhpUnusedParameterInspection
         */
        private static function filterModifierCurrencyScale(array &$filter, $filterKey, array $entity, array $field)
        {
        }
        /**
         * @param int $userId
         * @return array
         */
        private static function getUserGroups(int $userId) : array
        {
        }
    }
    class CCatalogIBlockParameters
    {
        /**
         * @return array
         */
        public static function GetCatalogSortFields()
        {
        }
        /**
         * @deprected deprecated since catalog 16.5.2
         * see \Bitrix\Catalog\Helpers\Admin\Tools::getPriceTypeList
         *
         * @param bool $useId
         * @return array
         */
        public static function getPriceTypesList($useId = \false)
        {
        }
    }
    class CCatalogStoreDocsElementAll
    {
        protected static function CheckFields($action, &$arFields)
        {
        }
        public static function update($id, $arFields)
        {
        }
        public static function delete($id)
        {
        }
        public static function OnDocumentBarcodeDelete($id)
        {
        }
    }
    /* Left tree-view menu */
    class CAdminMenu
    {
        var $aGlobalMenu, $aActiveSections = array(), $aOpenedSections = array();
        var $bInit = \false;
        public function __construct()
        {
        }
        function Init($modules)
        {
        }
        function _sort($a, $b)
        {
        }
        function _IncludeMenu($fname)
        {
        }
        function _SetActiveItems(&$aMenu, $aSections = array())
        {
        }
        private function _get_menu_item_width($level)
        {
        }
        private function _get_menu_item_padding($level)
        {
        }
        function Show($aMenu, $level = 0)
        {
        }
        function ShowIcons($aMenu)
        {
        }
        function ShowList($aMenu)
        {
        }
        function ShowTable($aMenu)
        {
        }
        function ShowSubmenu($menu_id, $mode = "menu")
        {
        }
        function _ShowSubmenu(&$aMenu, $menu_id, $mode, $level = 0)
        {
        }
        function ActiveSection()
        {
        }
        function ActiveIcon()
        {
        }
        function AddOpenedSections($sections)
        {
        }
        function IsSectionActive($section)
        {
        }
        function GetOpenedSections()
        {
        }
    }
    /**
     * Class CCatalogMenu
     */
    class CCatalogMenu extends \CAdminMenu
    {
        /**
         * @var string
         */
        protected static $urlCurrent = '';
        /**
         * @param $level
         * @return mixed
         */
        private function _get_menu_item_width($level)
        {
        }
        /**
         * @param $level
         * @return mixed
         */
        private function _get_menu_item_padding($level)
        {
        }
        /**
         * @param $aMenu
         * @param int $level
         * @param string $urlCurrent
         * @return string
         */
        public function Show($aMenu, $level = 0, $urlCurrent = '')
        {
        }
        /**
         * @param $menu_id
         * @param string $urlBack
         * @param string $mode
         */
        public function ShowSubmenu($menu_id, $urlBack, $mode = "menu")
        {
        }
        /**
         * @param $aMenu
         * @param $menu_id
         * @param $mode
         * @param int $urlBack
         * @param int $level
         * @return bool
         */
        public function _ShowSubmenu(&$aMenu, $menu_id, $mode, $urlBack, $level = 0)
        {
        }
        /**
         * @param $submenu
         * @param $urlCurrent
         * @return mixed
         */
        public static function fReplaceUrl($submenu, $urlCurrent)
        {
        }
    }
    class CCatalogStoreProductAll
    {
        protected static function CheckFields($action, &$arFields)
        {
        }
        /**
         * @param array $arFields
         * @return bool|int
         */
        public static function UpdateFromForm($arFields)
        {
        }
        public static function Update($id, $arFields)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.0
         * @see \Bitrix\Catalog\Model\Product::delete
         *
         * @param $productId
         * @return void
         */
        public static function OnIBlockElementDelete($productId)
        {
        }
        public static function Delete($id)
        {
        }
        public static function addToBalanceOfStore($storeId, $productId, $amount)
        {
        }
    }
    class CCatalogStoreControlUtil
    {
        protected static $storeNames = array();
        /** By store ID, returns its title and\or address.
         * @param $storeId
         * @return string
         */
        public static function getStoreName($storeId)
        {
        }
        /** Returns an array, containing information about the product block on its ID.
         * @param $elementId
         * @return array|string
         */
        public static function getProductInfo($elementId)
        {
        }
        /** Checks whether the same method in the class, describing the transmitted document type. Calls this method and returns a set of fields for this type of document.
         * @param $docType
         * @return bool
         */
        public static function getFields($docType)
        {
        }
        /** Generate a list of products on which did not match the total number and amount of all warehouses.
         * @param $arProduct
         * @param int $numberDisplayedElements
         * @return string
         */
        public static function showErrorProduct($arProduct, $numberDisplayedElements = 10)
        {
        }
        public static function getQuantityInformation($productId)
        {
        }
        public static function clearStoreName($storeId)
        {
        }
        public static function clearAllStoreNames()
        {
        }
        public static function loadAllStoreNames($active = \true)
        {
        }
    }
}
namespace Bitrix\Catalog {
    /**
     * EO_CatalogIblock
     * @see \Bitrix\Catalog\CatalogIblockTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getIblockId()
     * @method \Bitrix\Catalog\EO_CatalogIblock setIblockId(\int|\Bitrix\Main\DB\SqlExpression $iblockId)
     * @method bool hasIblockId()
     * @method bool isIblockIdFilled()
     * @method bool isIblockIdChanged()
     * @method \boolean getYandexExport()
     * @method \Bitrix\Catalog\EO_CatalogIblock setYandexExport(\boolean|\Bitrix\Main\DB\SqlExpression $yandexExport)
     * @method bool hasYandexExport()
     * @method bool isYandexExportFilled()
     * @method bool isYandexExportChanged()
     * @method \boolean remindActualYandexExport()
     * @method \boolean requireYandexExport()
     * @method \Bitrix\Catalog\EO_CatalogIblock resetYandexExport()
     * @method \Bitrix\Catalog\EO_CatalogIblock unsetYandexExport()
     * @method \boolean fillYandexExport()
     * @method \boolean getSubscription()
     * @method \Bitrix\Catalog\EO_CatalogIblock setSubscription(\boolean|\Bitrix\Main\DB\SqlExpression $subscription)
     * @method bool hasSubscription()
     * @method bool isSubscriptionFilled()
     * @method bool isSubscriptionChanged()
     * @method \boolean remindActualSubscription()
     * @method \boolean requireSubscription()
     * @method \Bitrix\Catalog\EO_CatalogIblock resetSubscription()
     * @method \Bitrix\Catalog\EO_CatalogIblock unsetSubscription()
     * @method \boolean fillSubscription()
     * @method \int getVatId()
     * @method \Bitrix\Catalog\EO_CatalogIblock setVatId(\int|\Bitrix\Main\DB\SqlExpression $vatId)
     * @method bool hasVatId()
     * @method bool isVatIdFilled()
     * @method bool isVatIdChanged()
     * @method \int remindActualVatId()
     * @method \int requireVatId()
     * @method \Bitrix\Catalog\EO_CatalogIblock resetVatId()
     * @method \Bitrix\Catalog\EO_CatalogIblock unsetVatId()
     * @method \int fillVatId()
     * @method \int getProductIblockId()
     * @method \Bitrix\Catalog\EO_CatalogIblock setProductIblockId(\int|\Bitrix\Main\DB\SqlExpression $productIblockId)
     * @method bool hasProductIblockId()
     * @method bool isProductIblockIdFilled()
     * @method bool isProductIblockIdChanged()
     * @method \int remindActualProductIblockId()
     * @method \int requireProductIblockId()
     * @method \Bitrix\Catalog\EO_CatalogIblock resetProductIblockId()
     * @method \Bitrix\Catalog\EO_CatalogIblock unsetProductIblockId()
     * @method \int fillProductIblockId()
     * @method \int getSkuPropertyId()
     * @method \Bitrix\Catalog\EO_CatalogIblock setSkuPropertyId(\int|\Bitrix\Main\DB\SqlExpression $skuPropertyId)
     * @method bool hasSkuPropertyId()
     * @method bool isSkuPropertyIdFilled()
     * @method bool isSkuPropertyIdChanged()
     * @method \int remindActualSkuPropertyId()
     * @method \int requireSkuPropertyId()
     * @method \Bitrix\Catalog\EO_CatalogIblock resetSkuPropertyId()
     * @method \Bitrix\Catalog\EO_CatalogIblock unsetSkuPropertyId()
     * @method \int fillSkuPropertyId()
     * @method \Bitrix\Iblock\Iblock getIblock()
     * @method \Bitrix\Iblock\Iblock remindActualIblock()
     * @method \Bitrix\Iblock\Iblock requireIblock()
     * @method \Bitrix\Catalog\EO_CatalogIblock setIblock(\Bitrix\Iblock\Iblock $object)
     * @method \Bitrix\Catalog\EO_CatalogIblock resetIblock()
     * @method \Bitrix\Catalog\EO_CatalogIblock unsetIblock()
     * @method bool hasIblock()
     * @method bool isIblockFilled()
     * @method bool isIblockChanged()
     * @method \Bitrix\Iblock\Iblock fillIblock()
     * @method \Bitrix\Iblock\Iblock getProductIblock()
     * @method \Bitrix\Iblock\Iblock remindActualProductIblock()
     * @method \Bitrix\Iblock\Iblock requireProductIblock()
     * @method \Bitrix\Catalog\EO_CatalogIblock setProductIblock(\Bitrix\Iblock\Iblock $object)
     * @method \Bitrix\Catalog\EO_CatalogIblock resetProductIblock()
     * @method \Bitrix\Catalog\EO_CatalogIblock unsetProductIblock()
     * @method bool hasProductIblock()
     * @method bool isProductIblockFilled()
     * @method bool isProductIblockChanged()
     * @method \Bitrix\Iblock\Iblock fillProductIblock()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_CatalogIblock set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_CatalogIblock reset($fieldName)
     * @method \Bitrix\Catalog\EO_CatalogIblock unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_CatalogIblock wakeUp($data)
     */
    class EO_CatalogIblock
    {
        /* @var \Bitrix\Catalog\CatalogIblockTable */
        public static $dataClass = '\\Bitrix\\Catalog\\CatalogIblockTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_CatalogIblock_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIblockIdList()
     * @method \boolean[] getYandexExportList()
     * @method \boolean[] fillYandexExport()
     * @method \boolean[] getSubscriptionList()
     * @method \boolean[] fillSubscription()
     * @method \int[] getVatIdList()
     * @method \int[] fillVatId()
     * @method \int[] getProductIblockIdList()
     * @method \int[] fillProductIblockId()
     * @method \int[] getSkuPropertyIdList()
     * @method \int[] fillSkuPropertyId()
     * @method \Bitrix\Iblock\Iblock[] getIblockList()
     * @method \Bitrix\Catalog\EO_CatalogIblock_Collection getIblockCollection()
     * @method \Bitrix\Iblock\EO_Iblock_Collection fillIblock()
     * @method \Bitrix\Iblock\Iblock[] getProductIblockList()
     * @method \Bitrix\Catalog\EO_CatalogIblock_Collection getProductIblockCollection()
     * @method \Bitrix\Iblock\EO_Iblock_Collection fillProductIblock()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_CatalogIblock $object)
     * @method bool has(\Bitrix\Catalog\EO_CatalogIblock $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_CatalogIblock getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_CatalogIblock[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_CatalogIblock $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_CatalogIblock_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_CatalogIblock current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_CatalogIblock_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\CatalogIblockTable */
        public static $dataClass = '\\Bitrix\\Catalog\\CatalogIblockTable';
    }
    /**
     * @method static EO_CatalogIblock_Query query()
     * @method static EO_CatalogIblock_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_CatalogIblock_Result getById($id)
     * @method static EO_CatalogIblock_Result getList(array $parameters = array())
     * @method static EO_CatalogIblock_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_CatalogIblock createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_CatalogIblock_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_CatalogIblock wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_CatalogIblock_Collection wakeUpCollection($rows)
     */
    class CatalogIblockTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_CatalogIblock_Result exec()
     * @method \Bitrix\Catalog\EO_CatalogIblock fetchObject()
     * @method \Bitrix\Catalog\EO_CatalogIblock_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_CatalogIblock_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_CatalogIblock fetchObject()
     * @method \Bitrix\Catalog\EO_CatalogIblock_Collection fetchCollection()
     */
    class EO_CatalogIblock_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_CatalogIblock createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_CatalogIblock_Collection createCollection()
     * @method \Bitrix\Catalog\EO_CatalogIblock wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_CatalogIblock_Collection wakeUpCollection($rows)
     */
    class EO_CatalogIblock_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_CatalogViewedProduct
     * @see \Bitrix\Catalog\CatalogViewedProductTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getFuserId()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct setFuserId(\int|\Bitrix\Main\DB\SqlExpression $fuserId)
     * @method bool hasFuserId()
     * @method bool isFuserIdFilled()
     * @method bool isFuserIdChanged()
     * @method \int remindActualFuserId()
     * @method \int requireFuserId()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct resetFuserId()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct unsetFuserId()
     * @method \int fillFuserId()
     * @method \Bitrix\Main\Type\DateTime getDateVisit()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct setDateVisit(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateVisit)
     * @method bool hasDateVisit()
     * @method bool isDateVisitFilled()
     * @method bool isDateVisitChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateVisit()
     * @method \Bitrix\Main\Type\DateTime requireDateVisit()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct resetDateVisit()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct unsetDateVisit()
     * @method \Bitrix\Main\Type\DateTime fillDateVisit()
     * @method \int getProductId()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct setProductId(\int|\Bitrix\Main\DB\SqlExpression $productId)
     * @method bool hasProductId()
     * @method bool isProductIdFilled()
     * @method bool isProductIdChanged()
     * @method \int remindActualProductId()
     * @method \int requireProductId()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct resetProductId()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct unsetProductId()
     * @method \int fillProductId()
     * @method \int getElementId()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct setElementId(\int|\Bitrix\Main\DB\SqlExpression $elementId)
     * @method bool hasElementId()
     * @method bool isElementIdFilled()
     * @method bool isElementIdChanged()
     * @method \int remindActualElementId()
     * @method \int requireElementId()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct resetElementId()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct unsetElementId()
     * @method \int fillElementId()
     * @method \string getSiteId()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string remindActualSiteId()
     * @method \string requireSiteId()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct resetSiteId()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct unsetSiteId()
     * @method \string fillSiteId()
     * @method \int getViewCount()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct setViewCount(\int|\Bitrix\Main\DB\SqlExpression $viewCount)
     * @method bool hasViewCount()
     * @method bool isViewCountFilled()
     * @method bool isViewCountChanged()
     * @method \int remindActualViewCount()
     * @method \int requireViewCount()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct resetViewCount()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct unsetViewCount()
     * @method \int fillViewCount()
     * @method \string getRecommendation()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct setRecommendation(\string|\Bitrix\Main\DB\SqlExpression $recommendation)
     * @method bool hasRecommendation()
     * @method bool isRecommendationFilled()
     * @method bool isRecommendationChanged()
     * @method \string remindActualRecommendation()
     * @method \string requireRecommendation()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct resetRecommendation()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct unsetRecommendation()
     * @method \string fillRecommendation()
     * @method \Bitrix\Iblock\EO_Element getElement()
     * @method \Bitrix\Iblock\EO_Element remindActualElement()
     * @method \Bitrix\Iblock\EO_Element requireElement()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct setElement(\Bitrix\Iblock\EO_Element $object)
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct resetElement()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct unsetElement()
     * @method bool hasElement()
     * @method bool isElementFilled()
     * @method bool isElementChanged()
     * @method \Bitrix\Iblock\EO_Element fillElement()
     * @method \Bitrix\Sale\Internals\EO_Product getProduct()
     * @method \Bitrix\Sale\Internals\EO_Product remindActualProduct()
     * @method \Bitrix\Sale\Internals\EO_Product requireProduct()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct setProduct(\Bitrix\Sale\Internals\EO_Product $object)
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct resetProduct()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct unsetProduct()
     * @method bool hasProduct()
     * @method bool isProductFilled()
     * @method bool isProductChanged()
     * @method \Bitrix\Sale\Internals\EO_Product fillProduct()
     * @method \Bitrix\Iblock\EO_Element getParentElement()
     * @method \Bitrix\Iblock\EO_Element remindActualParentElement()
     * @method \Bitrix\Iblock\EO_Element requireParentElement()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct setParentElement(\Bitrix\Iblock\EO_Element $object)
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct resetParentElement()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct unsetParentElement()
     * @method bool hasParentElement()
     * @method bool isParentElementFilled()
     * @method bool isParentElementChanged()
     * @method \Bitrix\Iblock\EO_Element fillParentElement()
     * @method \Bitrix\Sale\Internals\EO_Fuser getFuser()
     * @method \Bitrix\Sale\Internals\EO_Fuser remindActualFuser()
     * @method \Bitrix\Sale\Internals\EO_Fuser requireFuser()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct setFuser(\Bitrix\Sale\Internals\EO_Fuser $object)
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct resetFuser()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct unsetFuser()
     * @method bool hasFuser()
     * @method bool isFuserFilled()
     * @method bool isFuserChanged()
     * @method \Bitrix\Sale\Internals\EO_Fuser fillFuser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct reset($fieldName)
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_CatalogViewedProduct wakeUp($data)
     */
    class EO_CatalogViewedProduct
    {
        /* @var \Bitrix\Catalog\CatalogViewedProductTable */
        public static $dataClass = '\\Bitrix\\Catalog\\CatalogViewedProductTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_CatalogViewedProduct_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getFuserIdList()
     * @method \int[] fillFuserId()
     * @method \Bitrix\Main\Type\DateTime[] getDateVisitList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateVisit()
     * @method \int[] getProductIdList()
     * @method \int[] fillProductId()
     * @method \int[] getElementIdList()
     * @method \int[] fillElementId()
     * @method \string[] getSiteIdList()
     * @method \string[] fillSiteId()
     * @method \int[] getViewCountList()
     * @method \int[] fillViewCount()
     * @method \string[] getRecommendationList()
     * @method \string[] fillRecommendation()
     * @method \Bitrix\Iblock\EO_Element[] getElementList()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct_Collection getElementCollection()
     * @method \Bitrix\Iblock\EO_Element_Collection fillElement()
     * @method \Bitrix\Sale\Internals\EO_Product[] getProductList()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct_Collection getProductCollection()
     * @method \Bitrix\Sale\Internals\EO_Product_Collection fillProduct()
     * @method \Bitrix\Iblock\EO_Element[] getParentElementList()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct_Collection getParentElementCollection()
     * @method \Bitrix\Iblock\EO_Element_Collection fillParentElement()
     * @method \Bitrix\Sale\Internals\EO_Fuser[] getFuserList()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct_Collection getFuserCollection()
     * @method \Bitrix\Sale\Internals\EO_Fuser_Collection fillFuser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_CatalogViewedProduct $object)
     * @method bool has(\Bitrix\Catalog\EO_CatalogViewedProduct $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_CatalogViewedProduct $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_CatalogViewedProduct_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_CatalogViewedProduct_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\CatalogViewedProductTable */
        public static $dataClass = '\\Bitrix\\Catalog\\CatalogViewedProductTable';
    }
    /**
     * @method static EO_CatalogViewedProduct_Query query()
     * @method static EO_CatalogViewedProduct_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_CatalogViewedProduct_Result getById($id)
     * @method static EO_CatalogViewedProduct_Result getList(array $parameters = array())
     * @method static EO_CatalogViewedProduct_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_CatalogViewedProduct createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_CatalogViewedProduct_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_CatalogViewedProduct wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_CatalogViewedProduct_Collection wakeUpCollection($rows)
     */
    class CatalogViewedProductTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_CatalogViewedProduct_Result exec()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct fetchObject()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_CatalogViewedProduct_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct fetchObject()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct_Collection fetchCollection()
     */
    class EO_CatalogViewedProduct_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct_Collection createCollection()
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_CatalogViewedProduct_Collection wakeUpCollection($rows)
     */
    class EO_CatalogViewedProduct_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Discount
     * @see \Bitrix\Catalog\DiscountTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_Discount setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getXmlId()
     * @method \Bitrix\Catalog\EO_Discount setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Catalog\EO_Discount resetXmlId()
     * @method \Bitrix\Catalog\EO_Discount unsetXmlId()
     * @method \string fillXmlId()
     * @method \string getSiteId()
     * @method \Bitrix\Catalog\EO_Discount setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string remindActualSiteId()
     * @method \string requireSiteId()
     * @method \Bitrix\Catalog\EO_Discount resetSiteId()
     * @method \Bitrix\Catalog\EO_Discount unsetSiteId()
     * @method \string fillSiteId()
     * @method \int getType()
     * @method \Bitrix\Catalog\EO_Discount setType(\int|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \int remindActualType()
     * @method \int requireType()
     * @method \Bitrix\Catalog\EO_Discount resetType()
     * @method \Bitrix\Catalog\EO_Discount unsetType()
     * @method \int fillType()
     * @method \boolean getActive()
     * @method \Bitrix\Catalog\EO_Discount setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Catalog\EO_Discount resetActive()
     * @method \Bitrix\Catalog\EO_Discount unsetActive()
     * @method \boolean fillActive()
     * @method \Bitrix\Main\Type\DateTime getActiveFrom()
     * @method \Bitrix\Catalog\EO_Discount setActiveFrom(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $activeFrom)
     * @method bool hasActiveFrom()
     * @method bool isActiveFromFilled()
     * @method bool isActiveFromChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualActiveFrom()
     * @method \Bitrix\Main\Type\DateTime requireActiveFrom()
     * @method \Bitrix\Catalog\EO_Discount resetActiveFrom()
     * @method \Bitrix\Catalog\EO_Discount unsetActiveFrom()
     * @method \Bitrix\Main\Type\DateTime fillActiveFrom()
     * @method \Bitrix\Main\Type\DateTime getActiveTo()
     * @method \Bitrix\Catalog\EO_Discount setActiveTo(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $activeTo)
     * @method bool hasActiveTo()
     * @method bool isActiveToFilled()
     * @method bool isActiveToChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualActiveTo()
     * @method \Bitrix\Main\Type\DateTime requireActiveTo()
     * @method \Bitrix\Catalog\EO_Discount resetActiveTo()
     * @method \Bitrix\Catalog\EO_Discount unsetActiveTo()
     * @method \Bitrix\Main\Type\DateTime fillActiveTo()
     * @method \boolean getRenewal()
     * @method \Bitrix\Catalog\EO_Discount setRenewal(\boolean|\Bitrix\Main\DB\SqlExpression $renewal)
     * @method bool hasRenewal()
     * @method bool isRenewalFilled()
     * @method bool isRenewalChanged()
     * @method \boolean remindActualRenewal()
     * @method \boolean requireRenewal()
     * @method \Bitrix\Catalog\EO_Discount resetRenewal()
     * @method \Bitrix\Catalog\EO_Discount unsetRenewal()
     * @method \boolean fillRenewal()
     * @method \string getName()
     * @method \Bitrix\Catalog\EO_Discount setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Catalog\EO_Discount resetName()
     * @method \Bitrix\Catalog\EO_Discount unsetName()
     * @method \string fillName()
     * @method \int getSort()
     * @method \Bitrix\Catalog\EO_Discount setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Catalog\EO_Discount resetSort()
     * @method \Bitrix\Catalog\EO_Discount unsetSort()
     * @method \int fillSort()
     * @method \float getMaxDiscount()
     * @method \Bitrix\Catalog\EO_Discount setMaxDiscount(\float|\Bitrix\Main\DB\SqlExpression $maxDiscount)
     * @method bool hasMaxDiscount()
     * @method bool isMaxDiscountFilled()
     * @method bool isMaxDiscountChanged()
     * @method \float remindActualMaxDiscount()
     * @method \float requireMaxDiscount()
     * @method \Bitrix\Catalog\EO_Discount resetMaxDiscount()
     * @method \Bitrix\Catalog\EO_Discount unsetMaxDiscount()
     * @method \float fillMaxDiscount()
     * @method \string getValueType()
     * @method \Bitrix\Catalog\EO_Discount setValueType(\string|\Bitrix\Main\DB\SqlExpression $valueType)
     * @method bool hasValueType()
     * @method bool isValueTypeFilled()
     * @method bool isValueTypeChanged()
     * @method \string remindActualValueType()
     * @method \string requireValueType()
     * @method \Bitrix\Catalog\EO_Discount resetValueType()
     * @method \Bitrix\Catalog\EO_Discount unsetValueType()
     * @method \string fillValueType()
     * @method \float getValue()
     * @method \Bitrix\Catalog\EO_Discount setValue(\float|\Bitrix\Main\DB\SqlExpression $value)
     * @method bool hasValue()
     * @method bool isValueFilled()
     * @method bool isValueChanged()
     * @method \float remindActualValue()
     * @method \float requireValue()
     * @method \Bitrix\Catalog\EO_Discount resetValue()
     * @method \Bitrix\Catalog\EO_Discount unsetValue()
     * @method \float fillValue()
     * @method \string getCurrency()
     * @method \Bitrix\Catalog\EO_Discount setCurrency(\string|\Bitrix\Main\DB\SqlExpression $currency)
     * @method bool hasCurrency()
     * @method bool isCurrencyFilled()
     * @method bool isCurrencyChanged()
     * @method \string remindActualCurrency()
     * @method \string requireCurrency()
     * @method \Bitrix\Catalog\EO_Discount resetCurrency()
     * @method \Bitrix\Catalog\EO_Discount unsetCurrency()
     * @method \string fillCurrency()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Catalog\EO_Discount setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Catalog\EO_Discount resetTimestampX()
     * @method \Bitrix\Catalog\EO_Discount unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \string getCountPeriod()
     * @method \Bitrix\Catalog\EO_Discount setCountPeriod(\string|\Bitrix\Main\DB\SqlExpression $countPeriod)
     * @method bool hasCountPeriod()
     * @method bool isCountPeriodFilled()
     * @method bool isCountPeriodChanged()
     * @method \string remindActualCountPeriod()
     * @method \string requireCountPeriod()
     * @method \Bitrix\Catalog\EO_Discount resetCountPeriod()
     * @method \Bitrix\Catalog\EO_Discount unsetCountPeriod()
     * @method \string fillCountPeriod()
     * @method \int getCountSize()
     * @method \Bitrix\Catalog\EO_Discount setCountSize(\int|\Bitrix\Main\DB\SqlExpression $countSize)
     * @method bool hasCountSize()
     * @method bool isCountSizeFilled()
     * @method bool isCountSizeChanged()
     * @method \int remindActualCountSize()
     * @method \int requireCountSize()
     * @method \Bitrix\Catalog\EO_Discount resetCountSize()
     * @method \Bitrix\Catalog\EO_Discount unsetCountSize()
     * @method \int fillCountSize()
     * @method \string getCountType()
     * @method \Bitrix\Catalog\EO_Discount setCountType(\string|\Bitrix\Main\DB\SqlExpression $countType)
     * @method bool hasCountType()
     * @method bool isCountTypeFilled()
     * @method bool isCountTypeChanged()
     * @method \string remindActualCountType()
     * @method \string requireCountType()
     * @method \Bitrix\Catalog\EO_Discount resetCountType()
     * @method \Bitrix\Catalog\EO_Discount unsetCountType()
     * @method \string fillCountType()
     * @method \Bitrix\Main\Type\DateTime getCountFrom()
     * @method \Bitrix\Catalog\EO_Discount setCountFrom(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $countFrom)
     * @method bool hasCountFrom()
     * @method bool isCountFromFilled()
     * @method bool isCountFromChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualCountFrom()
     * @method \Bitrix\Main\Type\DateTime requireCountFrom()
     * @method \Bitrix\Catalog\EO_Discount resetCountFrom()
     * @method \Bitrix\Catalog\EO_Discount unsetCountFrom()
     * @method \Bitrix\Main\Type\DateTime fillCountFrom()
     * @method \Bitrix\Main\Type\DateTime getCountTo()
     * @method \Bitrix\Catalog\EO_Discount setCountTo(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $countTo)
     * @method bool hasCountTo()
     * @method bool isCountToFilled()
     * @method bool isCountToChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualCountTo()
     * @method \Bitrix\Main\Type\DateTime requireCountTo()
     * @method \Bitrix\Catalog\EO_Discount resetCountTo()
     * @method \Bitrix\Catalog\EO_Discount unsetCountTo()
     * @method \Bitrix\Main\Type\DateTime fillCountTo()
     * @method \int getActionSize()
     * @method \Bitrix\Catalog\EO_Discount setActionSize(\int|\Bitrix\Main\DB\SqlExpression $actionSize)
     * @method bool hasActionSize()
     * @method bool isActionSizeFilled()
     * @method bool isActionSizeChanged()
     * @method \int remindActualActionSize()
     * @method \int requireActionSize()
     * @method \Bitrix\Catalog\EO_Discount resetActionSize()
     * @method \Bitrix\Catalog\EO_Discount unsetActionSize()
     * @method \int fillActionSize()
     * @method \string getActionType()
     * @method \Bitrix\Catalog\EO_Discount setActionType(\string|\Bitrix\Main\DB\SqlExpression $actionType)
     * @method bool hasActionType()
     * @method bool isActionTypeFilled()
     * @method bool isActionTypeChanged()
     * @method \string remindActualActionType()
     * @method \string requireActionType()
     * @method \Bitrix\Catalog\EO_Discount resetActionType()
     * @method \Bitrix\Catalog\EO_Discount unsetActionType()
     * @method \string fillActionType()
     * @method \int getModifiedBy()
     * @method \Bitrix\Catalog\EO_Discount setModifiedBy(\int|\Bitrix\Main\DB\SqlExpression $modifiedBy)
     * @method bool hasModifiedBy()
     * @method bool isModifiedByFilled()
     * @method bool isModifiedByChanged()
     * @method \int remindActualModifiedBy()
     * @method \int requireModifiedBy()
     * @method \Bitrix\Catalog\EO_Discount resetModifiedBy()
     * @method \Bitrix\Catalog\EO_Discount unsetModifiedBy()
     * @method \int fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Catalog\EO_Discount setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Catalog\EO_Discount resetDateCreate()
     * @method \Bitrix\Catalog\EO_Discount unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \int getCreatedBy()
     * @method \Bitrix\Catalog\EO_Discount setCreatedBy(\int|\Bitrix\Main\DB\SqlExpression $createdBy)
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \int remindActualCreatedBy()
     * @method \int requireCreatedBy()
     * @method \Bitrix\Catalog\EO_Discount resetCreatedBy()
     * @method \Bitrix\Catalog\EO_Discount unsetCreatedBy()
     * @method \int fillCreatedBy()
     * @method \int getPriority()
     * @method \Bitrix\Catalog\EO_Discount setPriority(\int|\Bitrix\Main\DB\SqlExpression $priority)
     * @method bool hasPriority()
     * @method bool isPriorityFilled()
     * @method bool isPriorityChanged()
     * @method \int remindActualPriority()
     * @method \int requirePriority()
     * @method \Bitrix\Catalog\EO_Discount resetPriority()
     * @method \Bitrix\Catalog\EO_Discount unsetPriority()
     * @method \int fillPriority()
     * @method \boolean getLastDiscount()
     * @method \Bitrix\Catalog\EO_Discount setLastDiscount(\boolean|\Bitrix\Main\DB\SqlExpression $lastDiscount)
     * @method bool hasLastDiscount()
     * @method bool isLastDiscountFilled()
     * @method bool isLastDiscountChanged()
     * @method \boolean remindActualLastDiscount()
     * @method \boolean requireLastDiscount()
     * @method \Bitrix\Catalog\EO_Discount resetLastDiscount()
     * @method \Bitrix\Catalog\EO_Discount unsetLastDiscount()
     * @method \boolean fillLastDiscount()
     * @method \string getVersion()
     * @method \Bitrix\Catalog\EO_Discount setVersion(\string|\Bitrix\Main\DB\SqlExpression $version)
     * @method bool hasVersion()
     * @method bool isVersionFilled()
     * @method bool isVersionChanged()
     * @method \string remindActualVersion()
     * @method \string requireVersion()
     * @method \Bitrix\Catalog\EO_Discount resetVersion()
     * @method \Bitrix\Catalog\EO_Discount unsetVersion()
     * @method \string fillVersion()
     * @method \string getNotes()
     * @method \Bitrix\Catalog\EO_Discount setNotes(\string|\Bitrix\Main\DB\SqlExpression $notes)
     * @method bool hasNotes()
     * @method bool isNotesFilled()
     * @method bool isNotesChanged()
     * @method \string remindActualNotes()
     * @method \string requireNotes()
     * @method \Bitrix\Catalog\EO_Discount resetNotes()
     * @method \Bitrix\Catalog\EO_Discount unsetNotes()
     * @method \string fillNotes()
     * @method \string getConditions()
     * @method \Bitrix\Catalog\EO_Discount setConditions(\string|\Bitrix\Main\DB\SqlExpression $conditions)
     * @method bool hasConditions()
     * @method bool isConditionsFilled()
     * @method bool isConditionsChanged()
     * @method \string remindActualConditions()
     * @method \string requireConditions()
     * @method \Bitrix\Catalog\EO_Discount resetConditions()
     * @method \Bitrix\Catalog\EO_Discount unsetConditions()
     * @method \string fillConditions()
     * @method \string getConditionsList()
     * @method \Bitrix\Catalog\EO_Discount setConditionsList(\string|\Bitrix\Main\DB\SqlExpression $conditionsList)
     * @method bool hasConditionsList()
     * @method bool isConditionsListFilled()
     * @method bool isConditionsListChanged()
     * @method \string remindActualConditionsList()
     * @method \string requireConditionsList()
     * @method \Bitrix\Catalog\EO_Discount resetConditionsList()
     * @method \Bitrix\Catalog\EO_Discount unsetConditionsList()
     * @method \string fillConditionsList()
     * @method \string getUnpack()
     * @method \Bitrix\Catalog\EO_Discount setUnpack(\string|\Bitrix\Main\DB\SqlExpression $unpack)
     * @method bool hasUnpack()
     * @method bool isUnpackFilled()
     * @method bool isUnpackChanged()
     * @method \string remindActualUnpack()
     * @method \string requireUnpack()
     * @method \Bitrix\Catalog\EO_Discount resetUnpack()
     * @method \Bitrix\Catalog\EO_Discount unsetUnpack()
     * @method \string fillUnpack()
     * @method \boolean getUseCoupons()
     * @method \Bitrix\Catalog\EO_Discount setUseCoupons(\boolean|\Bitrix\Main\DB\SqlExpression $useCoupons)
     * @method bool hasUseCoupons()
     * @method bool isUseCouponsFilled()
     * @method bool isUseCouponsChanged()
     * @method \boolean remindActualUseCoupons()
     * @method \boolean requireUseCoupons()
     * @method \Bitrix\Catalog\EO_Discount resetUseCoupons()
     * @method \Bitrix\Catalog\EO_Discount unsetUseCoupons()
     * @method \boolean fillUseCoupons()
     * @method \int getSaleId()
     * @method \Bitrix\Catalog\EO_Discount setSaleId(\int|\Bitrix\Main\DB\SqlExpression $saleId)
     * @method bool hasSaleId()
     * @method bool isSaleIdFilled()
     * @method bool isSaleIdChanged()
     * @method \int remindActualSaleId()
     * @method \int requireSaleId()
     * @method \Bitrix\Catalog\EO_Discount resetSaleId()
     * @method \Bitrix\Catalog\EO_Discount unsetSaleId()
     * @method \int fillSaleId()
     * @method \Bitrix\Main\EO_User getCreatedByUser()
     * @method \Bitrix\Main\EO_User remindActualCreatedByUser()
     * @method \Bitrix\Main\EO_User requireCreatedByUser()
     * @method \Bitrix\Catalog\EO_Discount setCreatedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Catalog\EO_Discount resetCreatedByUser()
     * @method \Bitrix\Catalog\EO_Discount unsetCreatedByUser()
     * @method bool hasCreatedByUser()
     * @method bool isCreatedByUserFilled()
     * @method bool isCreatedByUserChanged()
     * @method \Bitrix\Main\EO_User fillCreatedByUser()
     * @method \Bitrix\Main\EO_User getModifiedByUser()
     * @method \Bitrix\Main\EO_User remindActualModifiedByUser()
     * @method \Bitrix\Main\EO_User requireModifiedByUser()
     * @method \Bitrix\Catalog\EO_Discount setModifiedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Catalog\EO_Discount resetModifiedByUser()
     * @method \Bitrix\Catalog\EO_Discount unsetModifiedByUser()
     * @method bool hasModifiedByUser()
     * @method bool isModifiedByUserFilled()
     * @method bool isModifiedByUserChanged()
     * @method \Bitrix\Main\EO_User fillModifiedByUser()
     * @method \Bitrix\Sale\Internals\EO_Discount getSaleDiscount()
     * @method \Bitrix\Sale\Internals\EO_Discount remindActualSaleDiscount()
     * @method \Bitrix\Sale\Internals\EO_Discount requireSaleDiscount()
     * @method \Bitrix\Catalog\EO_Discount setSaleDiscount(\Bitrix\Sale\Internals\EO_Discount $object)
     * @method \Bitrix\Catalog\EO_Discount resetSaleDiscount()
     * @method \Bitrix\Catalog\EO_Discount unsetSaleDiscount()
     * @method bool hasSaleDiscount()
     * @method bool isSaleDiscountFilled()
     * @method bool isSaleDiscountChanged()
     * @method \Bitrix\Sale\Internals\EO_Discount fillSaleDiscount()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_Discount set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_Discount reset($fieldName)
     * @method \Bitrix\Catalog\EO_Discount unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_Discount wakeUp($data)
     */
    class EO_Discount
    {
        /* @var \Bitrix\Catalog\DiscountTable */
        public static $dataClass = '\\Bitrix\\Catalog\\DiscountTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Discount_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \string[] getSiteIdList()
     * @method \string[] fillSiteId()
     * @method \int[] getTypeList()
     * @method \int[] fillType()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \Bitrix\Main\Type\DateTime[] getActiveFromList()
     * @method \Bitrix\Main\Type\DateTime[] fillActiveFrom()
     * @method \Bitrix\Main\Type\DateTime[] getActiveToList()
     * @method \Bitrix\Main\Type\DateTime[] fillActiveTo()
     * @method \boolean[] getRenewalList()
     * @method \boolean[] fillRenewal()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \float[] getMaxDiscountList()
     * @method \float[] fillMaxDiscount()
     * @method \string[] getValueTypeList()
     * @method \string[] fillValueType()
     * @method \float[] getValueList()
     * @method \float[] fillValue()
     * @method \string[] getCurrencyList()
     * @method \string[] fillCurrency()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \string[] getCountPeriodList()
     * @method \string[] fillCountPeriod()
     * @method \int[] getCountSizeList()
     * @method \int[] fillCountSize()
     * @method \string[] getCountTypeList()
     * @method \string[] fillCountType()
     * @method \Bitrix\Main\Type\DateTime[] getCountFromList()
     * @method \Bitrix\Main\Type\DateTime[] fillCountFrom()
     * @method \Bitrix\Main\Type\DateTime[] getCountToList()
     * @method \Bitrix\Main\Type\DateTime[] fillCountTo()
     * @method \int[] getActionSizeList()
     * @method \int[] fillActionSize()
     * @method \string[] getActionTypeList()
     * @method \string[] fillActionType()
     * @method \int[] getModifiedByList()
     * @method \int[] fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \int[] getCreatedByList()
     * @method \int[] fillCreatedBy()
     * @method \int[] getPriorityList()
     * @method \int[] fillPriority()
     * @method \boolean[] getLastDiscountList()
     * @method \boolean[] fillLastDiscount()
     * @method \string[] getVersionList()
     * @method \string[] fillVersion()
     * @method \string[] getNotesList()
     * @method \string[] fillNotes()
     * @method \string[] getConditionsList()
     * @method \string[] fillConditions()
     * @method \string[] getConditionsListList()
     * @method \string[] fillConditionsList()
     * @method \string[] getUnpackList()
     * @method \string[] fillUnpack()
     * @method \boolean[] getUseCouponsList()
     * @method \boolean[] fillUseCoupons()
     * @method \int[] getSaleIdList()
     * @method \int[] fillSaleId()
     * @method \Bitrix\Main\EO_User[] getCreatedByUserList()
     * @method \Bitrix\Catalog\EO_Discount_Collection getCreatedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCreatedByUser()
     * @method \Bitrix\Main\EO_User[] getModifiedByUserList()
     * @method \Bitrix\Catalog\EO_Discount_Collection getModifiedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillModifiedByUser()
     * @method \Bitrix\Sale\Internals\EO_Discount[] getSaleDiscountList()
     * @method \Bitrix\Catalog\EO_Discount_Collection getSaleDiscountCollection()
     * @method \Bitrix\Sale\Internals\EO_Discount_Collection fillSaleDiscount()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_Discount $object)
     * @method bool has(\Bitrix\Catalog\EO_Discount $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Discount getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Discount[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_Discount $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_Discount_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_Discount current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Discount_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\DiscountTable */
        public static $dataClass = '\\Bitrix\\Catalog\\DiscountTable';
    }
    /**
     * @method static EO_Discount_Query query()
     * @method static EO_Discount_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Discount_Result getById($id)
     * @method static EO_Discount_Result getList(array $parameters = array())
     * @method static EO_Discount_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_Discount createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_Discount_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_Discount wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_Discount_Collection wakeUpCollection($rows)
     */
    class DiscountTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Discount_Result exec()
     * @method \Bitrix\Catalog\EO_Discount fetchObject()
     * @method \Bitrix\Catalog\EO_Discount_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Discount_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Discount fetchObject()
     * @method \Bitrix\Catalog\EO_Discount_Collection fetchCollection()
     */
    class EO_Discount_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Discount createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_Discount_Collection createCollection()
     * @method \Bitrix\Catalog\EO_Discount wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_Discount_Collection wakeUpCollection($rows)
     */
    class EO_Discount_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_DiscountCoupon
     * @see \Bitrix\Catalog\DiscountCouponTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_DiscountCoupon setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getDiscountId()
     * @method \Bitrix\Catalog\EO_DiscountCoupon setDiscountId(\int|\Bitrix\Main\DB\SqlExpression $discountId)
     * @method bool hasDiscountId()
     * @method bool isDiscountIdFilled()
     * @method bool isDiscountIdChanged()
     * @method \int remindActualDiscountId()
     * @method \int requireDiscountId()
     * @method \Bitrix\Catalog\EO_DiscountCoupon resetDiscountId()
     * @method \Bitrix\Catalog\EO_DiscountCoupon unsetDiscountId()
     * @method \int fillDiscountId()
     * @method \boolean getActive()
     * @method \Bitrix\Catalog\EO_DiscountCoupon setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Catalog\EO_DiscountCoupon resetActive()
     * @method \Bitrix\Catalog\EO_DiscountCoupon unsetActive()
     * @method \boolean fillActive()
     * @method \string getCoupon()
     * @method \Bitrix\Catalog\EO_DiscountCoupon setCoupon(\string|\Bitrix\Main\DB\SqlExpression $coupon)
     * @method bool hasCoupon()
     * @method bool isCouponFilled()
     * @method bool isCouponChanged()
     * @method \string remindActualCoupon()
     * @method \string requireCoupon()
     * @method \Bitrix\Catalog\EO_DiscountCoupon resetCoupon()
     * @method \Bitrix\Catalog\EO_DiscountCoupon unsetCoupon()
     * @method \string fillCoupon()
     * @method \Bitrix\Main\Type\DateTime getDateApply()
     * @method \Bitrix\Catalog\EO_DiscountCoupon setDateApply(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateApply)
     * @method bool hasDateApply()
     * @method bool isDateApplyFilled()
     * @method bool isDateApplyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateApply()
     * @method \Bitrix\Main\Type\DateTime requireDateApply()
     * @method \Bitrix\Catalog\EO_DiscountCoupon resetDateApply()
     * @method \Bitrix\Catalog\EO_DiscountCoupon unsetDateApply()
     * @method \Bitrix\Main\Type\DateTime fillDateApply()
     * @method \string getType()
     * @method \Bitrix\Catalog\EO_DiscountCoupon setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\Catalog\EO_DiscountCoupon resetType()
     * @method \Bitrix\Catalog\EO_DiscountCoupon unsetType()
     * @method \string fillType()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Catalog\EO_DiscountCoupon setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Catalog\EO_DiscountCoupon resetTimestampX()
     * @method \Bitrix\Catalog\EO_DiscountCoupon unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \int getModifiedBy()
     * @method \Bitrix\Catalog\EO_DiscountCoupon setModifiedBy(\int|\Bitrix\Main\DB\SqlExpression $modifiedBy)
     * @method bool hasModifiedBy()
     * @method bool isModifiedByFilled()
     * @method bool isModifiedByChanged()
     * @method \int remindActualModifiedBy()
     * @method \int requireModifiedBy()
     * @method \Bitrix\Catalog\EO_DiscountCoupon resetModifiedBy()
     * @method \Bitrix\Catalog\EO_DiscountCoupon unsetModifiedBy()
     * @method \int fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Catalog\EO_DiscountCoupon setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Catalog\EO_DiscountCoupon resetDateCreate()
     * @method \Bitrix\Catalog\EO_DiscountCoupon unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \int getCreatedBy()
     * @method \Bitrix\Catalog\EO_DiscountCoupon setCreatedBy(\int|\Bitrix\Main\DB\SqlExpression $createdBy)
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \int remindActualCreatedBy()
     * @method \int requireCreatedBy()
     * @method \Bitrix\Catalog\EO_DiscountCoupon resetCreatedBy()
     * @method \Bitrix\Catalog\EO_DiscountCoupon unsetCreatedBy()
     * @method \int fillCreatedBy()
     * @method \string getDescription()
     * @method \Bitrix\Catalog\EO_DiscountCoupon setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Catalog\EO_DiscountCoupon resetDescription()
     * @method \Bitrix\Catalog\EO_DiscountCoupon unsetDescription()
     * @method \string fillDescription()
     * @method \Bitrix\Main\EO_User getCreatedByUser()
     * @method \Bitrix\Main\EO_User remindActualCreatedByUser()
     * @method \Bitrix\Main\EO_User requireCreatedByUser()
     * @method \Bitrix\Catalog\EO_DiscountCoupon setCreatedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Catalog\EO_DiscountCoupon resetCreatedByUser()
     * @method \Bitrix\Catalog\EO_DiscountCoupon unsetCreatedByUser()
     * @method bool hasCreatedByUser()
     * @method bool isCreatedByUserFilled()
     * @method bool isCreatedByUserChanged()
     * @method \Bitrix\Main\EO_User fillCreatedByUser()
     * @method \Bitrix\Main\EO_User getModifiedByUser()
     * @method \Bitrix\Main\EO_User remindActualModifiedByUser()
     * @method \Bitrix\Main\EO_User requireModifiedByUser()
     * @method \Bitrix\Catalog\EO_DiscountCoupon setModifiedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Catalog\EO_DiscountCoupon resetModifiedByUser()
     * @method \Bitrix\Catalog\EO_DiscountCoupon unsetModifiedByUser()
     * @method bool hasModifiedByUser()
     * @method bool isModifiedByUserFilled()
     * @method bool isModifiedByUserChanged()
     * @method \Bitrix\Main\EO_User fillModifiedByUser()
     * @method \Bitrix\Catalog\EO_Discount getDiscount()
     * @method \Bitrix\Catalog\EO_Discount remindActualDiscount()
     * @method \Bitrix\Catalog\EO_Discount requireDiscount()
     * @method \Bitrix\Catalog\EO_DiscountCoupon setDiscount(\Bitrix\Catalog\EO_Discount $object)
     * @method \Bitrix\Catalog\EO_DiscountCoupon resetDiscount()
     * @method \Bitrix\Catalog\EO_DiscountCoupon unsetDiscount()
     * @method bool hasDiscount()
     * @method bool isDiscountFilled()
     * @method bool isDiscountChanged()
     * @method \Bitrix\Catalog\EO_Discount fillDiscount()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_DiscountCoupon set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_DiscountCoupon reset($fieldName)
     * @method \Bitrix\Catalog\EO_DiscountCoupon unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_DiscountCoupon wakeUp($data)
     */
    class EO_DiscountCoupon
    {
        /* @var \Bitrix\Catalog\DiscountCouponTable */
        public static $dataClass = '\\Bitrix\\Catalog\\DiscountCouponTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_DiscountCoupon_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getDiscountIdList()
     * @method \int[] fillDiscountId()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \string[] getCouponList()
     * @method \string[] fillCoupon()
     * @method \Bitrix\Main\Type\DateTime[] getDateApplyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateApply()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \int[] getModifiedByList()
     * @method \int[] fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \int[] getCreatedByList()
     * @method \int[] fillCreatedBy()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \Bitrix\Main\EO_User[] getCreatedByUserList()
     * @method \Bitrix\Catalog\EO_DiscountCoupon_Collection getCreatedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCreatedByUser()
     * @method \Bitrix\Main\EO_User[] getModifiedByUserList()
     * @method \Bitrix\Catalog\EO_DiscountCoupon_Collection getModifiedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillModifiedByUser()
     * @method \Bitrix\Catalog\EO_Discount[] getDiscountList()
     * @method \Bitrix\Catalog\EO_DiscountCoupon_Collection getDiscountCollection()
     * @method \Bitrix\Catalog\EO_Discount_Collection fillDiscount()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_DiscountCoupon $object)
     * @method bool has(\Bitrix\Catalog\EO_DiscountCoupon $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_DiscountCoupon getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_DiscountCoupon[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_DiscountCoupon $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_DiscountCoupon_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_DiscountCoupon current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_DiscountCoupon_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\DiscountCouponTable */
        public static $dataClass = '\\Bitrix\\Catalog\\DiscountCouponTable';
    }
    /**
     * @method static EO_DiscountCoupon_Query query()
     * @method static EO_DiscountCoupon_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_DiscountCoupon_Result getById($id)
     * @method static EO_DiscountCoupon_Result getList(array $parameters = array())
     * @method static EO_DiscountCoupon_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_DiscountCoupon createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_DiscountCoupon_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_DiscountCoupon wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_DiscountCoupon_Collection wakeUpCollection($rows)
     */
    class DiscountCouponTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_DiscountCoupon_Result exec()
     * @method \Bitrix\Catalog\EO_DiscountCoupon fetchObject()
     * @method \Bitrix\Catalog\EO_DiscountCoupon_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_DiscountCoupon_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_DiscountCoupon fetchObject()
     * @method \Bitrix\Catalog\EO_DiscountCoupon_Collection fetchCollection()
     */
    class EO_DiscountCoupon_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_DiscountCoupon createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_DiscountCoupon_Collection createCollection()
     * @method \Bitrix\Catalog\EO_DiscountCoupon wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_DiscountCoupon_Collection wakeUpCollection($rows)
     */
    class EO_DiscountCoupon_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_DiscountEntity
     * @see \Bitrix\Catalog\DiscountEntityTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_DiscountEntity setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getDiscountId()
     * @method \Bitrix\Catalog\EO_DiscountEntity setDiscountId(\int|\Bitrix\Main\DB\SqlExpression $discountId)
     * @method bool hasDiscountId()
     * @method bool isDiscountIdFilled()
     * @method bool isDiscountIdChanged()
     * @method \int remindActualDiscountId()
     * @method \int requireDiscountId()
     * @method \Bitrix\Catalog\EO_DiscountEntity resetDiscountId()
     * @method \Bitrix\Catalog\EO_DiscountEntity unsetDiscountId()
     * @method \int fillDiscountId()
     * @method \string getModuleId()
     * @method \Bitrix\Catalog\EO_DiscountEntity setModuleId(\string|\Bitrix\Main\DB\SqlExpression $moduleId)
     * @method bool hasModuleId()
     * @method bool isModuleIdFilled()
     * @method bool isModuleIdChanged()
     * @method \string remindActualModuleId()
     * @method \string requireModuleId()
     * @method \Bitrix\Catalog\EO_DiscountEntity resetModuleId()
     * @method \Bitrix\Catalog\EO_DiscountEntity unsetModuleId()
     * @method \string fillModuleId()
     * @method \string getEntity()
     * @method \Bitrix\Catalog\EO_DiscountEntity setEntity(\string|\Bitrix\Main\DB\SqlExpression $entity)
     * @method bool hasEntity()
     * @method bool isEntityFilled()
     * @method bool isEntityChanged()
     * @method \string remindActualEntity()
     * @method \string requireEntity()
     * @method \Bitrix\Catalog\EO_DiscountEntity resetEntity()
     * @method \Bitrix\Catalog\EO_DiscountEntity unsetEntity()
     * @method \string fillEntity()
     * @method \int getEntityId()
     * @method \Bitrix\Catalog\EO_DiscountEntity setEntityId(\int|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \int remindActualEntityId()
     * @method \int requireEntityId()
     * @method \Bitrix\Catalog\EO_DiscountEntity resetEntityId()
     * @method \Bitrix\Catalog\EO_DiscountEntity unsetEntityId()
     * @method \int fillEntityId()
     * @method \string getEntityValue()
     * @method \Bitrix\Catalog\EO_DiscountEntity setEntityValue(\string|\Bitrix\Main\DB\SqlExpression $entityValue)
     * @method bool hasEntityValue()
     * @method bool isEntityValueFilled()
     * @method bool isEntityValueChanged()
     * @method \string remindActualEntityValue()
     * @method \string requireEntityValue()
     * @method \Bitrix\Catalog\EO_DiscountEntity resetEntityValue()
     * @method \Bitrix\Catalog\EO_DiscountEntity unsetEntityValue()
     * @method \string fillEntityValue()
     * @method \string getFieldEntity()
     * @method \Bitrix\Catalog\EO_DiscountEntity setFieldEntity(\string|\Bitrix\Main\DB\SqlExpression $fieldEntity)
     * @method bool hasFieldEntity()
     * @method bool isFieldEntityFilled()
     * @method bool isFieldEntityChanged()
     * @method \string remindActualFieldEntity()
     * @method \string requireFieldEntity()
     * @method \Bitrix\Catalog\EO_DiscountEntity resetFieldEntity()
     * @method \Bitrix\Catalog\EO_DiscountEntity unsetFieldEntity()
     * @method \string fillFieldEntity()
     * @method \string getFieldTable()
     * @method \Bitrix\Catalog\EO_DiscountEntity setFieldTable(\string|\Bitrix\Main\DB\SqlExpression $fieldTable)
     * @method bool hasFieldTable()
     * @method bool isFieldTableFilled()
     * @method bool isFieldTableChanged()
     * @method \string remindActualFieldTable()
     * @method \string requireFieldTable()
     * @method \Bitrix\Catalog\EO_DiscountEntity resetFieldTable()
     * @method \Bitrix\Catalog\EO_DiscountEntity unsetFieldTable()
     * @method \string fillFieldTable()
     * @method \Bitrix\Catalog\EO_Discount getDiscount()
     * @method \Bitrix\Catalog\EO_Discount remindActualDiscount()
     * @method \Bitrix\Catalog\EO_Discount requireDiscount()
     * @method \Bitrix\Catalog\EO_DiscountEntity setDiscount(\Bitrix\Catalog\EO_Discount $object)
     * @method \Bitrix\Catalog\EO_DiscountEntity resetDiscount()
     * @method \Bitrix\Catalog\EO_DiscountEntity unsetDiscount()
     * @method bool hasDiscount()
     * @method bool isDiscountFilled()
     * @method bool isDiscountChanged()
     * @method \Bitrix\Catalog\EO_Discount fillDiscount()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_DiscountEntity set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_DiscountEntity reset($fieldName)
     * @method \Bitrix\Catalog\EO_DiscountEntity unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_DiscountEntity wakeUp($data)
     */
    class EO_DiscountEntity
    {
        /* @var \Bitrix\Catalog\DiscountEntityTable */
        public static $dataClass = '\\Bitrix\\Catalog\\DiscountEntityTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_DiscountEntity_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getDiscountIdList()
     * @method \int[] fillDiscountId()
     * @method \string[] getModuleIdList()
     * @method \string[] fillModuleId()
     * @method \string[] getEntityList()
     * @method \string[] fillEntity()
     * @method \int[] getEntityIdList()
     * @method \int[] fillEntityId()
     * @method \string[] getEntityValueList()
     * @method \string[] fillEntityValue()
     * @method \string[] getFieldEntityList()
     * @method \string[] fillFieldEntity()
     * @method \string[] getFieldTableList()
     * @method \string[] fillFieldTable()
     * @method \Bitrix\Catalog\EO_Discount[] getDiscountList()
     * @method \Bitrix\Catalog\EO_DiscountEntity_Collection getDiscountCollection()
     * @method \Bitrix\Catalog\EO_Discount_Collection fillDiscount()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_DiscountEntity $object)
     * @method bool has(\Bitrix\Catalog\EO_DiscountEntity $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_DiscountEntity getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_DiscountEntity[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_DiscountEntity $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_DiscountEntity_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_DiscountEntity current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_DiscountEntity_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\DiscountEntityTable */
        public static $dataClass = '\\Bitrix\\Catalog\\DiscountEntityTable';
    }
    /**
     * @method static EO_DiscountEntity_Query query()
     * @method static EO_DiscountEntity_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_DiscountEntity_Result getById($id)
     * @method static EO_DiscountEntity_Result getList(array $parameters = array())
     * @method static EO_DiscountEntity_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_DiscountEntity createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_DiscountEntity_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_DiscountEntity wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_DiscountEntity_Collection wakeUpCollection($rows)
     */
    class DiscountEntityTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_DiscountEntity_Result exec()
     * @method \Bitrix\Catalog\EO_DiscountEntity fetchObject()
     * @method \Bitrix\Catalog\EO_DiscountEntity_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_DiscountEntity_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_DiscountEntity fetchObject()
     * @method \Bitrix\Catalog\EO_DiscountEntity_Collection fetchCollection()
     */
    class EO_DiscountEntity_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_DiscountEntity createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_DiscountEntity_Collection createCollection()
     * @method \Bitrix\Catalog\EO_DiscountEntity wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_DiscountEntity_Collection wakeUpCollection($rows)
     */
    class EO_DiscountEntity_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_DiscountModule
     * @see \Bitrix\Catalog\DiscountModuleTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_DiscountModule setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getDiscountId()
     * @method \Bitrix\Catalog\EO_DiscountModule setDiscountId(\int|\Bitrix\Main\DB\SqlExpression $discountId)
     * @method bool hasDiscountId()
     * @method bool isDiscountIdFilled()
     * @method bool isDiscountIdChanged()
     * @method \int remindActualDiscountId()
     * @method \int requireDiscountId()
     * @method \Bitrix\Catalog\EO_DiscountModule resetDiscountId()
     * @method \Bitrix\Catalog\EO_DiscountModule unsetDiscountId()
     * @method \int fillDiscountId()
     * @method \string getModuleId()
     * @method \Bitrix\Catalog\EO_DiscountModule setModuleId(\string|\Bitrix\Main\DB\SqlExpression $moduleId)
     * @method bool hasModuleId()
     * @method bool isModuleIdFilled()
     * @method bool isModuleIdChanged()
     * @method \string remindActualModuleId()
     * @method \string requireModuleId()
     * @method \Bitrix\Catalog\EO_DiscountModule resetModuleId()
     * @method \Bitrix\Catalog\EO_DiscountModule unsetModuleId()
     * @method \string fillModuleId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_DiscountModule set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_DiscountModule reset($fieldName)
     * @method \Bitrix\Catalog\EO_DiscountModule unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_DiscountModule wakeUp($data)
     */
    class EO_DiscountModule
    {
        /* @var \Bitrix\Catalog\DiscountModuleTable */
        public static $dataClass = '\\Bitrix\\Catalog\\DiscountModuleTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_DiscountModule_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getDiscountIdList()
     * @method \int[] fillDiscountId()
     * @method \string[] getModuleIdList()
     * @method \string[] fillModuleId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_DiscountModule $object)
     * @method bool has(\Bitrix\Catalog\EO_DiscountModule $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_DiscountModule getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_DiscountModule[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_DiscountModule $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_DiscountModule_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_DiscountModule current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_DiscountModule_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\DiscountModuleTable */
        public static $dataClass = '\\Bitrix\\Catalog\\DiscountModuleTable';
    }
    /**
     * @method static EO_DiscountModule_Query query()
     * @method static EO_DiscountModule_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_DiscountModule_Result getById($id)
     * @method static EO_DiscountModule_Result getList(array $parameters = array())
     * @method static EO_DiscountModule_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_DiscountModule createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_DiscountModule_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_DiscountModule wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_DiscountModule_Collection wakeUpCollection($rows)
     */
    class DiscountModuleTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_DiscountModule_Result exec()
     * @method \Bitrix\Catalog\EO_DiscountModule fetchObject()
     * @method \Bitrix\Catalog\EO_DiscountModule_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_DiscountModule_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_DiscountModule fetchObject()
     * @method \Bitrix\Catalog\EO_DiscountModule_Collection fetchCollection()
     */
    class EO_DiscountModule_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_DiscountModule createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_DiscountModule_Collection createCollection()
     * @method \Bitrix\Catalog\EO_DiscountModule wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_DiscountModule_Collection wakeUpCollection($rows)
     */
    class EO_DiscountModule_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_DiscountRestriction
     * @see \Bitrix\Catalog\DiscountRestrictionTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_DiscountRestriction setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getDiscountId()
     * @method \Bitrix\Catalog\EO_DiscountRestriction setDiscountId(\int|\Bitrix\Main\DB\SqlExpression $discountId)
     * @method bool hasDiscountId()
     * @method bool isDiscountIdFilled()
     * @method bool isDiscountIdChanged()
     * @method \int remindActualDiscountId()
     * @method \int requireDiscountId()
     * @method \Bitrix\Catalog\EO_DiscountRestriction resetDiscountId()
     * @method \Bitrix\Catalog\EO_DiscountRestriction unsetDiscountId()
     * @method \int fillDiscountId()
     * @method \boolean getActive()
     * @method \Bitrix\Catalog\EO_DiscountRestriction setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Catalog\EO_DiscountRestriction resetActive()
     * @method \Bitrix\Catalog\EO_DiscountRestriction unsetActive()
     * @method \boolean fillActive()
     * @method \int getUserGroupId()
     * @method \Bitrix\Catalog\EO_DiscountRestriction setUserGroupId(\int|\Bitrix\Main\DB\SqlExpression $userGroupId)
     * @method bool hasUserGroupId()
     * @method bool isUserGroupIdFilled()
     * @method bool isUserGroupIdChanged()
     * @method \int remindActualUserGroupId()
     * @method \int requireUserGroupId()
     * @method \Bitrix\Catalog\EO_DiscountRestriction resetUserGroupId()
     * @method \Bitrix\Catalog\EO_DiscountRestriction unsetUserGroupId()
     * @method \int fillUserGroupId()
     * @method \int getPriceTypeId()
     * @method \Bitrix\Catalog\EO_DiscountRestriction setPriceTypeId(\int|\Bitrix\Main\DB\SqlExpression $priceTypeId)
     * @method bool hasPriceTypeId()
     * @method bool isPriceTypeIdFilled()
     * @method bool isPriceTypeIdChanged()
     * @method \int remindActualPriceTypeId()
     * @method \int requirePriceTypeId()
     * @method \Bitrix\Catalog\EO_DiscountRestriction resetPriceTypeId()
     * @method \Bitrix\Catalog\EO_DiscountRestriction unsetPriceTypeId()
     * @method \int fillPriceTypeId()
     * @method \Bitrix\Catalog\EO_Discount getDiscount()
     * @method \Bitrix\Catalog\EO_Discount remindActualDiscount()
     * @method \Bitrix\Catalog\EO_Discount requireDiscount()
     * @method \Bitrix\Catalog\EO_DiscountRestriction setDiscount(\Bitrix\Catalog\EO_Discount $object)
     * @method \Bitrix\Catalog\EO_DiscountRestriction resetDiscount()
     * @method \Bitrix\Catalog\EO_DiscountRestriction unsetDiscount()
     * @method bool hasDiscount()
     * @method bool isDiscountFilled()
     * @method bool isDiscountChanged()
     * @method \Bitrix\Catalog\EO_Discount fillDiscount()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_DiscountRestriction set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_DiscountRestriction reset($fieldName)
     * @method \Bitrix\Catalog\EO_DiscountRestriction unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_DiscountRestriction wakeUp($data)
     */
    class EO_DiscountRestriction
    {
        /* @var \Bitrix\Catalog\DiscountRestrictionTable */
        public static $dataClass = '\\Bitrix\\Catalog\\DiscountRestrictionTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_DiscountRestriction_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getDiscountIdList()
     * @method \int[] fillDiscountId()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \int[] getUserGroupIdList()
     * @method \int[] fillUserGroupId()
     * @method \int[] getPriceTypeIdList()
     * @method \int[] fillPriceTypeId()
     * @method \Bitrix\Catalog\EO_Discount[] getDiscountList()
     * @method \Bitrix\Catalog\EO_DiscountRestriction_Collection getDiscountCollection()
     * @method \Bitrix\Catalog\EO_Discount_Collection fillDiscount()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_DiscountRestriction $object)
     * @method bool has(\Bitrix\Catalog\EO_DiscountRestriction $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_DiscountRestriction getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_DiscountRestriction[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_DiscountRestriction $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_DiscountRestriction_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_DiscountRestriction current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_DiscountRestriction_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\DiscountRestrictionTable */
        public static $dataClass = '\\Bitrix\\Catalog\\DiscountRestrictionTable';
    }
    /**
     * @method static EO_DiscountRestriction_Query query()
     * @method static EO_DiscountRestriction_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_DiscountRestriction_Result getById($id)
     * @method static EO_DiscountRestriction_Result getList(array $parameters = array())
     * @method static EO_DiscountRestriction_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_DiscountRestriction createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_DiscountRestriction_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_DiscountRestriction wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_DiscountRestriction_Collection wakeUpCollection($rows)
     */
    class DiscountRestrictionTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_DiscountRestriction_Result exec()
     * @method \Bitrix\Catalog\EO_DiscountRestriction fetchObject()
     * @method \Bitrix\Catalog\EO_DiscountRestriction_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_DiscountRestriction_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_DiscountRestriction fetchObject()
     * @method \Bitrix\Catalog\EO_DiscountRestriction_Collection fetchCollection()
     */
    class EO_DiscountRestriction_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_DiscountRestriction createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_DiscountRestriction_Collection createCollection()
     * @method \Bitrix\Catalog\EO_DiscountRestriction wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_DiscountRestriction_Collection wakeUpCollection($rows)
     */
    class EO_DiscountRestriction_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Extra
     * @see \Bitrix\Catalog\ExtraTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_Extra setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getName()
     * @method \Bitrix\Catalog\EO_Extra setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Catalog\EO_Extra resetName()
     * @method \Bitrix\Catalog\EO_Extra unsetName()
     * @method \string fillName()
     * @method \float getPercentage()
     * @method \Bitrix\Catalog\EO_Extra setPercentage(\float|\Bitrix\Main\DB\SqlExpression $percentage)
     * @method bool hasPercentage()
     * @method bool isPercentageFilled()
     * @method bool isPercentageChanged()
     * @method \float remindActualPercentage()
     * @method \float requirePercentage()
     * @method \Bitrix\Catalog\EO_Extra resetPercentage()
     * @method \Bitrix\Catalog\EO_Extra unsetPercentage()
     * @method \float fillPercentage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_Extra set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_Extra reset($fieldName)
     * @method \Bitrix\Catalog\EO_Extra unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_Extra wakeUp($data)
     */
    class EO_Extra
    {
        /* @var \Bitrix\Catalog\ExtraTable */
        public static $dataClass = '\\Bitrix\\Catalog\\ExtraTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Extra_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \float[] getPercentageList()
     * @method \float[] fillPercentage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_Extra $object)
     * @method bool has(\Bitrix\Catalog\EO_Extra $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Extra getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Extra[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_Extra $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_Extra_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_Extra current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Extra_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\ExtraTable */
        public static $dataClass = '\\Bitrix\\Catalog\\ExtraTable';
    }
    /**
     * @method static EO_Extra_Query query()
     * @method static EO_Extra_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Extra_Result getById($id)
     * @method static EO_Extra_Result getList(array $parameters = array())
     * @method static EO_Extra_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_Extra createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_Extra_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_Extra wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_Extra_Collection wakeUpCollection($rows)
     */
    class ExtraTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Extra_Result exec()
     * @method \Bitrix\Catalog\EO_Extra fetchObject()
     * @method \Bitrix\Catalog\EO_Extra_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Extra_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Extra fetchObject()
     * @method \Bitrix\Catalog\EO_Extra_Collection fetchCollection()
     */
    class EO_Extra_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Extra createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_Extra_Collection createCollection()
     * @method \Bitrix\Catalog\EO_Extra wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_Extra_Collection wakeUpCollection($rows)
     */
    class EO_Extra_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Group
     * @see \Bitrix\Catalog\GroupTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_Group setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getName()
     * @method \Bitrix\Catalog\EO_Group setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Catalog\EO_Group resetName()
     * @method \Bitrix\Catalog\EO_Group unsetName()
     * @method \string fillName()
     * @method \boolean getBase()
     * @method \Bitrix\Catalog\EO_Group setBase(\boolean|\Bitrix\Main\DB\SqlExpression $base)
     * @method bool hasBase()
     * @method bool isBaseFilled()
     * @method bool isBaseChanged()
     * @method \boolean remindActualBase()
     * @method \boolean requireBase()
     * @method \Bitrix\Catalog\EO_Group resetBase()
     * @method \Bitrix\Catalog\EO_Group unsetBase()
     * @method \boolean fillBase()
     * @method \int getSort()
     * @method \Bitrix\Catalog\EO_Group setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Catalog\EO_Group resetSort()
     * @method \Bitrix\Catalog\EO_Group unsetSort()
     * @method \int fillSort()
     * @method \string getXmlId()
     * @method \Bitrix\Catalog\EO_Group setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Catalog\EO_Group resetXmlId()
     * @method \Bitrix\Catalog\EO_Group unsetXmlId()
     * @method \string fillXmlId()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Catalog\EO_Group setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Catalog\EO_Group resetTimestampX()
     * @method \Bitrix\Catalog\EO_Group unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \int getModifiedBy()
     * @method \Bitrix\Catalog\EO_Group setModifiedBy(\int|\Bitrix\Main\DB\SqlExpression $modifiedBy)
     * @method bool hasModifiedBy()
     * @method bool isModifiedByFilled()
     * @method bool isModifiedByChanged()
     * @method \int remindActualModifiedBy()
     * @method \int requireModifiedBy()
     * @method \Bitrix\Catalog\EO_Group resetModifiedBy()
     * @method \Bitrix\Catalog\EO_Group unsetModifiedBy()
     * @method \int fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Catalog\EO_Group setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Catalog\EO_Group resetDateCreate()
     * @method \Bitrix\Catalog\EO_Group unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \int getCreatedBy()
     * @method \Bitrix\Catalog\EO_Group setCreatedBy(\int|\Bitrix\Main\DB\SqlExpression $createdBy)
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \int remindActualCreatedBy()
     * @method \int requireCreatedBy()
     * @method \Bitrix\Catalog\EO_Group resetCreatedBy()
     * @method \Bitrix\Catalog\EO_Group unsetCreatedBy()
     * @method \int fillCreatedBy()
     * @method \Bitrix\Main\EO_User getCreatedByUser()
     * @method \Bitrix\Main\EO_User remindActualCreatedByUser()
     * @method \Bitrix\Main\EO_User requireCreatedByUser()
     * @method \Bitrix\Catalog\EO_Group setCreatedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Catalog\EO_Group resetCreatedByUser()
     * @method \Bitrix\Catalog\EO_Group unsetCreatedByUser()
     * @method bool hasCreatedByUser()
     * @method bool isCreatedByUserFilled()
     * @method bool isCreatedByUserChanged()
     * @method \Bitrix\Main\EO_User fillCreatedByUser()
     * @method \Bitrix\Main\EO_User getModifiedByUser()
     * @method \Bitrix\Main\EO_User remindActualModifiedByUser()
     * @method \Bitrix\Main\EO_User requireModifiedByUser()
     * @method \Bitrix\Catalog\EO_Group setModifiedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Catalog\EO_Group resetModifiedByUser()
     * @method \Bitrix\Catalog\EO_Group unsetModifiedByUser()
     * @method bool hasModifiedByUser()
     * @method bool isModifiedByUserFilled()
     * @method bool isModifiedByUserChanged()
     * @method \Bitrix\Main\EO_User fillModifiedByUser()
     * @method \Bitrix\Catalog\EO_GroupLang getLang()
     * @method \Bitrix\Catalog\EO_GroupLang remindActualLang()
     * @method \Bitrix\Catalog\EO_GroupLang requireLang()
     * @method \Bitrix\Catalog\EO_Group setLang(\Bitrix\Catalog\EO_GroupLang $object)
     * @method \Bitrix\Catalog\EO_Group resetLang()
     * @method \Bitrix\Catalog\EO_Group unsetLang()
     * @method bool hasLang()
     * @method bool isLangFilled()
     * @method bool isLangChanged()
     * @method \Bitrix\Catalog\EO_GroupLang fillLang()
     * @method \Bitrix\Catalog\EO_GroupLang getCurrentLang()
     * @method \Bitrix\Catalog\EO_GroupLang remindActualCurrentLang()
     * @method \Bitrix\Catalog\EO_GroupLang requireCurrentLang()
     * @method \Bitrix\Catalog\EO_Group setCurrentLang(\Bitrix\Catalog\EO_GroupLang $object)
     * @method \Bitrix\Catalog\EO_Group resetCurrentLang()
     * @method \Bitrix\Catalog\EO_Group unsetCurrentLang()
     * @method bool hasCurrentLang()
     * @method bool isCurrentLangFilled()
     * @method bool isCurrentLangChanged()
     * @method \Bitrix\Catalog\EO_GroupLang fillCurrentLang()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_Group set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_Group reset($fieldName)
     * @method \Bitrix\Catalog\EO_Group unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_Group wakeUp($data)
     */
    class EO_Group
    {
        /* @var \Bitrix\Catalog\GroupTable */
        public static $dataClass = '\\Bitrix\\Catalog\\GroupTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Group_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \boolean[] getBaseList()
     * @method \boolean[] fillBase()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \int[] getModifiedByList()
     * @method \int[] fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \int[] getCreatedByList()
     * @method \int[] fillCreatedBy()
     * @method \Bitrix\Main\EO_User[] getCreatedByUserList()
     * @method \Bitrix\Catalog\EO_Group_Collection getCreatedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCreatedByUser()
     * @method \Bitrix\Main\EO_User[] getModifiedByUserList()
     * @method \Bitrix\Catalog\EO_Group_Collection getModifiedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillModifiedByUser()
     * @method \Bitrix\Catalog\EO_GroupLang[] getLangList()
     * @method \Bitrix\Catalog\EO_Group_Collection getLangCollection()
     * @method \Bitrix\Catalog\EO_GroupLang_Collection fillLang()
     * @method \Bitrix\Catalog\EO_GroupLang[] getCurrentLangList()
     * @method \Bitrix\Catalog\EO_Group_Collection getCurrentLangCollection()
     * @method \Bitrix\Catalog\EO_GroupLang_Collection fillCurrentLang()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_Group $object)
     * @method bool has(\Bitrix\Catalog\EO_Group $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Group getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Group[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_Group $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_Group_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_Group current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Group_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\GroupTable */
        public static $dataClass = '\\Bitrix\\Catalog\\GroupTable';
    }
    /**
     * @method static EO_Group_Query query()
     * @method static EO_Group_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Group_Result getById($id)
     * @method static EO_Group_Result getList(array $parameters = array())
     * @method static EO_Group_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_Group createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_Group_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_Group wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_Group_Collection wakeUpCollection($rows)
     */
    class GroupTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Group_Result exec()
     * @method \Bitrix\Catalog\EO_Group fetchObject()
     * @method \Bitrix\Catalog\EO_Group_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Group_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Group fetchObject()
     * @method \Bitrix\Catalog\EO_Group_Collection fetchCollection()
     */
    class EO_Group_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Group createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_Group_Collection createCollection()
     * @method \Bitrix\Catalog\EO_Group wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_Group_Collection wakeUpCollection($rows)
     */
    class EO_Group_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_GroupAccess
     * @see \Bitrix\Catalog\GroupAccessTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_GroupAccess setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getCatalogGroupId()
     * @method \Bitrix\Catalog\EO_GroupAccess setCatalogGroupId(\int|\Bitrix\Main\DB\SqlExpression $catalogGroupId)
     * @method bool hasCatalogGroupId()
     * @method bool isCatalogGroupIdFilled()
     * @method bool isCatalogGroupIdChanged()
     * @method \int remindActualCatalogGroupId()
     * @method \int requireCatalogGroupId()
     * @method \Bitrix\Catalog\EO_GroupAccess resetCatalogGroupId()
     * @method \Bitrix\Catalog\EO_GroupAccess unsetCatalogGroupId()
     * @method \int fillCatalogGroupId()
     * @method \int getGroupId()
     * @method \Bitrix\Catalog\EO_GroupAccess setGroupId(\int|\Bitrix\Main\DB\SqlExpression $groupId)
     * @method bool hasGroupId()
     * @method bool isGroupIdFilled()
     * @method bool isGroupIdChanged()
     * @method \int remindActualGroupId()
     * @method \int requireGroupId()
     * @method \Bitrix\Catalog\EO_GroupAccess resetGroupId()
     * @method \Bitrix\Catalog\EO_GroupAccess unsetGroupId()
     * @method \int fillGroupId()
     * @method \boolean getAccess()
     * @method \Bitrix\Catalog\EO_GroupAccess setAccess(\boolean|\Bitrix\Main\DB\SqlExpression $access)
     * @method bool hasAccess()
     * @method bool isAccessFilled()
     * @method bool isAccessChanged()
     * @method \boolean remindActualAccess()
     * @method \boolean requireAccess()
     * @method \Bitrix\Catalog\EO_GroupAccess resetAccess()
     * @method \Bitrix\Catalog\EO_GroupAccess unsetAccess()
     * @method \boolean fillAccess()
     * @method \Bitrix\Catalog\EO_Group getCatalogGroup()
     * @method \Bitrix\Catalog\EO_Group remindActualCatalogGroup()
     * @method \Bitrix\Catalog\EO_Group requireCatalogGroup()
     * @method \Bitrix\Catalog\EO_GroupAccess setCatalogGroup(\Bitrix\Catalog\EO_Group $object)
     * @method \Bitrix\Catalog\EO_GroupAccess resetCatalogGroup()
     * @method \Bitrix\Catalog\EO_GroupAccess unsetCatalogGroup()
     * @method bool hasCatalogGroup()
     * @method bool isCatalogGroupFilled()
     * @method bool isCatalogGroupChanged()
     * @method \Bitrix\Catalog\EO_Group fillCatalogGroup()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_GroupAccess set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_GroupAccess reset($fieldName)
     * @method \Bitrix\Catalog\EO_GroupAccess unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_GroupAccess wakeUp($data)
     */
    class EO_GroupAccess
    {
        /* @var \Bitrix\Catalog\GroupAccessTable */
        public static $dataClass = '\\Bitrix\\Catalog\\GroupAccessTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_GroupAccess_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getCatalogGroupIdList()
     * @method \int[] fillCatalogGroupId()
     * @method \int[] getGroupIdList()
     * @method \int[] fillGroupId()
     * @method \boolean[] getAccessList()
     * @method \boolean[] fillAccess()
     * @method \Bitrix\Catalog\EO_Group[] getCatalogGroupList()
     * @method \Bitrix\Catalog\EO_GroupAccess_Collection getCatalogGroupCollection()
     * @method \Bitrix\Catalog\EO_Group_Collection fillCatalogGroup()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_GroupAccess $object)
     * @method bool has(\Bitrix\Catalog\EO_GroupAccess $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_GroupAccess getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_GroupAccess[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_GroupAccess $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_GroupAccess_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_GroupAccess current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_GroupAccess_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\GroupAccessTable */
        public static $dataClass = '\\Bitrix\\Catalog\\GroupAccessTable';
    }
    /**
     * @method static EO_GroupAccess_Query query()
     * @method static EO_GroupAccess_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_GroupAccess_Result getById($id)
     * @method static EO_GroupAccess_Result getList(array $parameters = array())
     * @method static EO_GroupAccess_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_GroupAccess createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_GroupAccess_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_GroupAccess wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_GroupAccess_Collection wakeUpCollection($rows)
     */
    class GroupAccessTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_GroupAccess_Result exec()
     * @method \Bitrix\Catalog\EO_GroupAccess fetchObject()
     * @method \Bitrix\Catalog\EO_GroupAccess_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_GroupAccess_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_GroupAccess fetchObject()
     * @method \Bitrix\Catalog\EO_GroupAccess_Collection fetchCollection()
     */
    class EO_GroupAccess_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_GroupAccess createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_GroupAccess_Collection createCollection()
     * @method \Bitrix\Catalog\EO_GroupAccess wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_GroupAccess_Collection wakeUpCollection($rows)
     */
    class EO_GroupAccess_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_GroupLang
     * @see \Bitrix\Catalog\GroupLangTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_GroupLang setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getCatalogGroupId()
     * @method \Bitrix\Catalog\EO_GroupLang setCatalogGroupId(\int|\Bitrix\Main\DB\SqlExpression $catalogGroupId)
     * @method bool hasCatalogGroupId()
     * @method bool isCatalogGroupIdFilled()
     * @method bool isCatalogGroupIdChanged()
     * @method \int remindActualCatalogGroupId()
     * @method \int requireCatalogGroupId()
     * @method \Bitrix\Catalog\EO_GroupLang resetCatalogGroupId()
     * @method \Bitrix\Catalog\EO_GroupLang unsetCatalogGroupId()
     * @method \int fillCatalogGroupId()
     * @method \string getLang()
     * @method \Bitrix\Catalog\EO_GroupLang setLang(\string|\Bitrix\Main\DB\SqlExpression $lang)
     * @method bool hasLang()
     * @method bool isLangFilled()
     * @method bool isLangChanged()
     * @method \string remindActualLang()
     * @method \string requireLang()
     * @method \Bitrix\Catalog\EO_GroupLang resetLang()
     * @method \Bitrix\Catalog\EO_GroupLang unsetLang()
     * @method \string fillLang()
     * @method \string getName()
     * @method \Bitrix\Catalog\EO_GroupLang setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Catalog\EO_GroupLang resetName()
     * @method \Bitrix\Catalog\EO_GroupLang unsetName()
     * @method \string fillName()
     * @method \Bitrix\Catalog\EO_Group getCatalogGroup()
     * @method \Bitrix\Catalog\EO_Group remindActualCatalogGroup()
     * @method \Bitrix\Catalog\EO_Group requireCatalogGroup()
     * @method \Bitrix\Catalog\EO_GroupLang setCatalogGroup(\Bitrix\Catalog\EO_Group $object)
     * @method \Bitrix\Catalog\EO_GroupLang resetCatalogGroup()
     * @method \Bitrix\Catalog\EO_GroupLang unsetCatalogGroup()
     * @method bool hasCatalogGroup()
     * @method bool isCatalogGroupFilled()
     * @method bool isCatalogGroupChanged()
     * @method \Bitrix\Catalog\EO_Group fillCatalogGroup()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_GroupLang set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_GroupLang reset($fieldName)
     * @method \Bitrix\Catalog\EO_GroupLang unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_GroupLang wakeUp($data)
     */
    class EO_GroupLang
    {
        /* @var \Bitrix\Catalog\GroupLangTable */
        public static $dataClass = '\\Bitrix\\Catalog\\GroupLangTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_GroupLang_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getCatalogGroupIdList()
     * @method \int[] fillCatalogGroupId()
     * @method \string[] getLangList()
     * @method \string[] fillLang()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \Bitrix\Catalog\EO_Group[] getCatalogGroupList()
     * @method \Bitrix\Catalog\EO_GroupLang_Collection getCatalogGroupCollection()
     * @method \Bitrix\Catalog\EO_Group_Collection fillCatalogGroup()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_GroupLang $object)
     * @method bool has(\Bitrix\Catalog\EO_GroupLang $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_GroupLang getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_GroupLang[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_GroupLang $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_GroupLang_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_GroupLang current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_GroupLang_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\GroupLangTable */
        public static $dataClass = '\\Bitrix\\Catalog\\GroupLangTable';
    }
    /**
     * @method static EO_GroupLang_Query query()
     * @method static EO_GroupLang_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_GroupLang_Result getById($id)
     * @method static EO_GroupLang_Result getList(array $parameters = array())
     * @method static EO_GroupLang_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_GroupLang createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_GroupLang_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_GroupLang wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_GroupLang_Collection wakeUpCollection($rows)
     */
    class GroupLangTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_GroupLang_Result exec()
     * @method \Bitrix\Catalog\EO_GroupLang fetchObject()
     * @method \Bitrix\Catalog\EO_GroupLang_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_GroupLang_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_GroupLang fetchObject()
     * @method \Bitrix\Catalog\EO_GroupLang_Collection fetchCollection()
     */
    class EO_GroupLang_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_GroupLang createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_GroupLang_Collection createCollection()
     * @method \Bitrix\Catalog\EO_GroupLang wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_GroupLang_Collection wakeUpCollection($rows)
     */
    class EO_GroupLang_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Measure
     * @see \Bitrix\Catalog\MeasureTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_Measure setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getCode()
     * @method \Bitrix\Catalog\EO_Measure setCode(\int|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \int remindActualCode()
     * @method \int requireCode()
     * @method \Bitrix\Catalog\EO_Measure resetCode()
     * @method \Bitrix\Catalog\EO_Measure unsetCode()
     * @method \int fillCode()
     * @method \string getMeasureTitle()
     * @method \Bitrix\Catalog\EO_Measure setMeasureTitle(\string|\Bitrix\Main\DB\SqlExpression $measureTitle)
     * @method bool hasMeasureTitle()
     * @method bool isMeasureTitleFilled()
     * @method bool isMeasureTitleChanged()
     * @method \string remindActualMeasureTitle()
     * @method \string requireMeasureTitle()
     * @method \Bitrix\Catalog\EO_Measure resetMeasureTitle()
     * @method \Bitrix\Catalog\EO_Measure unsetMeasureTitle()
     * @method \string fillMeasureTitle()
     * @method \string getSymbol()
     * @method \Bitrix\Catalog\EO_Measure setSymbol(\string|\Bitrix\Main\DB\SqlExpression $symbol)
     * @method bool hasSymbol()
     * @method bool isSymbolFilled()
     * @method bool isSymbolChanged()
     * @method \string remindActualSymbol()
     * @method \string requireSymbol()
     * @method \Bitrix\Catalog\EO_Measure resetSymbol()
     * @method \Bitrix\Catalog\EO_Measure unsetSymbol()
     * @method \string fillSymbol()
     * @method \string getSymbolIntl()
     * @method \Bitrix\Catalog\EO_Measure setSymbolIntl(\string|\Bitrix\Main\DB\SqlExpression $symbolIntl)
     * @method bool hasSymbolIntl()
     * @method bool isSymbolIntlFilled()
     * @method bool isSymbolIntlChanged()
     * @method \string remindActualSymbolIntl()
     * @method \string requireSymbolIntl()
     * @method \Bitrix\Catalog\EO_Measure resetSymbolIntl()
     * @method \Bitrix\Catalog\EO_Measure unsetSymbolIntl()
     * @method \string fillSymbolIntl()
     * @method \string getSymbolLetterIntl()
     * @method \Bitrix\Catalog\EO_Measure setSymbolLetterIntl(\string|\Bitrix\Main\DB\SqlExpression $symbolLetterIntl)
     * @method bool hasSymbolLetterIntl()
     * @method bool isSymbolLetterIntlFilled()
     * @method bool isSymbolLetterIntlChanged()
     * @method \string remindActualSymbolLetterIntl()
     * @method \string requireSymbolLetterIntl()
     * @method \Bitrix\Catalog\EO_Measure resetSymbolLetterIntl()
     * @method \Bitrix\Catalog\EO_Measure unsetSymbolLetterIntl()
     * @method \string fillSymbolLetterIntl()
     * @method \boolean getIsDefault()
     * @method \Bitrix\Catalog\EO_Measure setIsDefault(\boolean|\Bitrix\Main\DB\SqlExpression $isDefault)
     * @method bool hasIsDefault()
     * @method bool isIsDefaultFilled()
     * @method bool isIsDefaultChanged()
     * @method \boolean remindActualIsDefault()
     * @method \boolean requireIsDefault()
     * @method \Bitrix\Catalog\EO_Measure resetIsDefault()
     * @method \Bitrix\Catalog\EO_Measure unsetIsDefault()
     * @method \boolean fillIsDefault()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_Measure set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_Measure reset($fieldName)
     * @method \Bitrix\Catalog\EO_Measure unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_Measure wakeUp($data)
     */
    class EO_Measure
    {
        /* @var \Bitrix\Catalog\MeasureTable */
        public static $dataClass = '\\Bitrix\\Catalog\\MeasureTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Measure_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getCodeList()
     * @method \int[] fillCode()
     * @method \string[] getMeasureTitleList()
     * @method \string[] fillMeasureTitle()
     * @method \string[] getSymbolList()
     * @method \string[] fillSymbol()
     * @method \string[] getSymbolIntlList()
     * @method \string[] fillSymbolIntl()
     * @method \string[] getSymbolLetterIntlList()
     * @method \string[] fillSymbolLetterIntl()
     * @method \boolean[] getIsDefaultList()
     * @method \boolean[] fillIsDefault()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_Measure $object)
     * @method bool has(\Bitrix\Catalog\EO_Measure $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Measure getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Measure[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_Measure $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_Measure_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_Measure current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Measure_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\MeasureTable */
        public static $dataClass = '\\Bitrix\\Catalog\\MeasureTable';
    }
    /**
     * @method static EO_Measure_Query query()
     * @method static EO_Measure_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Measure_Result getById($id)
     * @method static EO_Measure_Result getList(array $parameters = array())
     * @method static EO_Measure_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_Measure createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_Measure_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_Measure wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_Measure_Collection wakeUpCollection($rows)
     */
    class MeasureTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Measure_Result exec()
     * @method \Bitrix\Catalog\EO_Measure fetchObject()
     * @method \Bitrix\Catalog\EO_Measure_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Measure_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Measure fetchObject()
     * @method \Bitrix\Catalog\EO_Measure_Collection fetchCollection()
     */
    class EO_Measure_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Measure createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_Measure_Collection createCollection()
     * @method \Bitrix\Catalog\EO_Measure wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_Measure_Collection wakeUpCollection($rows)
     */
    class EO_Measure_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_MeasureRatio
     * @see \Bitrix\Catalog\MeasureRatioTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_MeasureRatio setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getProductId()
     * @method \Bitrix\Catalog\EO_MeasureRatio setProductId(\int|\Bitrix\Main\DB\SqlExpression $productId)
     * @method bool hasProductId()
     * @method bool isProductIdFilled()
     * @method bool isProductIdChanged()
     * @method \int remindActualProductId()
     * @method \int requireProductId()
     * @method \Bitrix\Catalog\EO_MeasureRatio resetProductId()
     * @method \Bitrix\Catalog\EO_MeasureRatio unsetProductId()
     * @method \int fillProductId()
     * @method \float getRatio()
     * @method \Bitrix\Catalog\EO_MeasureRatio setRatio(\float|\Bitrix\Main\DB\SqlExpression $ratio)
     * @method bool hasRatio()
     * @method bool isRatioFilled()
     * @method bool isRatioChanged()
     * @method \float remindActualRatio()
     * @method \float requireRatio()
     * @method \Bitrix\Catalog\EO_MeasureRatio resetRatio()
     * @method \Bitrix\Catalog\EO_MeasureRatio unsetRatio()
     * @method \float fillRatio()
     * @method \boolean getIsDefault()
     * @method \Bitrix\Catalog\EO_MeasureRatio setIsDefault(\boolean|\Bitrix\Main\DB\SqlExpression $isDefault)
     * @method bool hasIsDefault()
     * @method bool isIsDefaultFilled()
     * @method bool isIsDefaultChanged()
     * @method \boolean remindActualIsDefault()
     * @method \boolean requireIsDefault()
     * @method \Bitrix\Catalog\EO_MeasureRatio resetIsDefault()
     * @method \Bitrix\Catalog\EO_MeasureRatio unsetIsDefault()
     * @method \boolean fillIsDefault()
     * @method \Bitrix\Catalog\EO_Product getProduct()
     * @method \Bitrix\Catalog\EO_Product remindActualProduct()
     * @method \Bitrix\Catalog\EO_Product requireProduct()
     * @method \Bitrix\Catalog\EO_MeasureRatio setProduct(\Bitrix\Catalog\EO_Product $object)
     * @method \Bitrix\Catalog\EO_MeasureRatio resetProduct()
     * @method \Bitrix\Catalog\EO_MeasureRatio unsetProduct()
     * @method bool hasProduct()
     * @method bool isProductFilled()
     * @method bool isProductChanged()
     * @method \Bitrix\Catalog\EO_Product fillProduct()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_MeasureRatio set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_MeasureRatio reset($fieldName)
     * @method \Bitrix\Catalog\EO_MeasureRatio unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_MeasureRatio wakeUp($data)
     */
    class EO_MeasureRatio
    {
        /* @var \Bitrix\Catalog\MeasureRatioTable */
        public static $dataClass = '\\Bitrix\\Catalog\\MeasureRatioTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_MeasureRatio_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getProductIdList()
     * @method \int[] fillProductId()
     * @method \float[] getRatioList()
     * @method \float[] fillRatio()
     * @method \boolean[] getIsDefaultList()
     * @method \boolean[] fillIsDefault()
     * @method \Bitrix\Catalog\EO_Product[] getProductList()
     * @method \Bitrix\Catalog\EO_MeasureRatio_Collection getProductCollection()
     * @method \Bitrix\Catalog\EO_Product_Collection fillProduct()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_MeasureRatio $object)
     * @method bool has(\Bitrix\Catalog\EO_MeasureRatio $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_MeasureRatio getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_MeasureRatio[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_MeasureRatio $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_MeasureRatio_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_MeasureRatio current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_MeasureRatio_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\MeasureRatioTable */
        public static $dataClass = '\\Bitrix\\Catalog\\MeasureRatioTable';
    }
    /**
     * @method static EO_MeasureRatio_Query query()
     * @method static EO_MeasureRatio_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_MeasureRatio_Result getById($id)
     * @method static EO_MeasureRatio_Result getList(array $parameters = array())
     * @method static EO_MeasureRatio_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_MeasureRatio createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_MeasureRatio_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_MeasureRatio wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_MeasureRatio_Collection wakeUpCollection($rows)
     */
    class MeasureRatioTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_MeasureRatio_Result exec()
     * @method \Bitrix\Catalog\EO_MeasureRatio fetchObject()
     * @method \Bitrix\Catalog\EO_MeasureRatio_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_MeasureRatio_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_MeasureRatio fetchObject()
     * @method \Bitrix\Catalog\EO_MeasureRatio_Collection fetchCollection()
     */
    class EO_MeasureRatio_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_MeasureRatio createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_MeasureRatio_Collection createCollection()
     * @method \Bitrix\Catalog\EO_MeasureRatio wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_MeasureRatio_Collection wakeUpCollection($rows)
     */
    class EO_MeasureRatio_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Price
     * @see \Bitrix\Catalog\PriceTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_Price setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getProductId()
     * @method \Bitrix\Catalog\EO_Price setProductId(\int|\Bitrix\Main\DB\SqlExpression $productId)
     * @method bool hasProductId()
     * @method bool isProductIdFilled()
     * @method bool isProductIdChanged()
     * @method \int remindActualProductId()
     * @method \int requireProductId()
     * @method \Bitrix\Catalog\EO_Price resetProductId()
     * @method \Bitrix\Catalog\EO_Price unsetProductId()
     * @method \int fillProductId()
     * @method \int getExtraId()
     * @method \Bitrix\Catalog\EO_Price setExtraId(\int|\Bitrix\Main\DB\SqlExpression $extraId)
     * @method bool hasExtraId()
     * @method bool isExtraIdFilled()
     * @method bool isExtraIdChanged()
     * @method \int remindActualExtraId()
     * @method \int requireExtraId()
     * @method \Bitrix\Catalog\EO_Price resetExtraId()
     * @method \Bitrix\Catalog\EO_Price unsetExtraId()
     * @method \int fillExtraId()
     * @method \int getCatalogGroupId()
     * @method \Bitrix\Catalog\EO_Price setCatalogGroupId(\int|\Bitrix\Main\DB\SqlExpression $catalogGroupId)
     * @method bool hasCatalogGroupId()
     * @method bool isCatalogGroupIdFilled()
     * @method bool isCatalogGroupIdChanged()
     * @method \int remindActualCatalogGroupId()
     * @method \int requireCatalogGroupId()
     * @method \Bitrix\Catalog\EO_Price resetCatalogGroupId()
     * @method \Bitrix\Catalog\EO_Price unsetCatalogGroupId()
     * @method \int fillCatalogGroupId()
     * @method \float getPrice()
     * @method \Bitrix\Catalog\EO_Price setPrice(\float|\Bitrix\Main\DB\SqlExpression $price)
     * @method bool hasPrice()
     * @method bool isPriceFilled()
     * @method bool isPriceChanged()
     * @method \float remindActualPrice()
     * @method \float requirePrice()
     * @method \Bitrix\Catalog\EO_Price resetPrice()
     * @method \Bitrix\Catalog\EO_Price unsetPrice()
     * @method \float fillPrice()
     * @method \string getCurrency()
     * @method \Bitrix\Catalog\EO_Price setCurrency(\string|\Bitrix\Main\DB\SqlExpression $currency)
     * @method bool hasCurrency()
     * @method bool isCurrencyFilled()
     * @method bool isCurrencyChanged()
     * @method \string remindActualCurrency()
     * @method \string requireCurrency()
     * @method \Bitrix\Catalog\EO_Price resetCurrency()
     * @method \Bitrix\Catalog\EO_Price unsetCurrency()
     * @method \string fillCurrency()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Catalog\EO_Price setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Catalog\EO_Price resetTimestampX()
     * @method \Bitrix\Catalog\EO_Price unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \int getQuantityFrom()
     * @method \Bitrix\Catalog\EO_Price setQuantityFrom(\int|\Bitrix\Main\DB\SqlExpression $quantityFrom)
     * @method bool hasQuantityFrom()
     * @method bool isQuantityFromFilled()
     * @method bool isQuantityFromChanged()
     * @method \int remindActualQuantityFrom()
     * @method \int requireQuantityFrom()
     * @method \Bitrix\Catalog\EO_Price resetQuantityFrom()
     * @method \Bitrix\Catalog\EO_Price unsetQuantityFrom()
     * @method \int fillQuantityFrom()
     * @method \int getQuantityTo()
     * @method \Bitrix\Catalog\EO_Price setQuantityTo(\int|\Bitrix\Main\DB\SqlExpression $quantityTo)
     * @method bool hasQuantityTo()
     * @method bool isQuantityToFilled()
     * @method bool isQuantityToChanged()
     * @method \int remindActualQuantityTo()
     * @method \int requireQuantityTo()
     * @method \Bitrix\Catalog\EO_Price resetQuantityTo()
     * @method \Bitrix\Catalog\EO_Price unsetQuantityTo()
     * @method \int fillQuantityTo()
     * @method \string getTmpId()
     * @method \Bitrix\Catalog\EO_Price setTmpId(\string|\Bitrix\Main\DB\SqlExpression $tmpId)
     * @method bool hasTmpId()
     * @method bool isTmpIdFilled()
     * @method bool isTmpIdChanged()
     * @method \string remindActualTmpId()
     * @method \string requireTmpId()
     * @method \Bitrix\Catalog\EO_Price resetTmpId()
     * @method \Bitrix\Catalog\EO_Price unsetTmpId()
     * @method \string fillTmpId()
     * @method \float getPriceScale()
     * @method \Bitrix\Catalog\EO_Price setPriceScale(\float|\Bitrix\Main\DB\SqlExpression $priceScale)
     * @method bool hasPriceScale()
     * @method bool isPriceScaleFilled()
     * @method bool isPriceScaleChanged()
     * @method \float remindActualPriceScale()
     * @method \float requirePriceScale()
     * @method \Bitrix\Catalog\EO_Price resetPriceScale()
     * @method \Bitrix\Catalog\EO_Price unsetPriceScale()
     * @method \float fillPriceScale()
     * @method \Bitrix\Catalog\EO_Group getCatalogGroup()
     * @method \Bitrix\Catalog\EO_Group remindActualCatalogGroup()
     * @method \Bitrix\Catalog\EO_Group requireCatalogGroup()
     * @method \Bitrix\Catalog\EO_Price setCatalogGroup(\Bitrix\Catalog\EO_Group $object)
     * @method \Bitrix\Catalog\EO_Price resetCatalogGroup()
     * @method \Bitrix\Catalog\EO_Price unsetCatalogGroup()
     * @method bool hasCatalogGroup()
     * @method bool isCatalogGroupFilled()
     * @method bool isCatalogGroupChanged()
     * @method \Bitrix\Catalog\EO_Group fillCatalogGroup()
     * @method \Bitrix\Iblock\EO_Element getElement()
     * @method \Bitrix\Iblock\EO_Element remindActualElement()
     * @method \Bitrix\Iblock\EO_Element requireElement()
     * @method \Bitrix\Catalog\EO_Price setElement(\Bitrix\Iblock\EO_Element $object)
     * @method \Bitrix\Catalog\EO_Price resetElement()
     * @method \Bitrix\Catalog\EO_Price unsetElement()
     * @method bool hasElement()
     * @method bool isElementFilled()
     * @method bool isElementChanged()
     * @method \Bitrix\Iblock\EO_Element fillElement()
     * @method \Bitrix\Catalog\EO_Product getProduct()
     * @method \Bitrix\Catalog\EO_Product remindActualProduct()
     * @method \Bitrix\Catalog\EO_Product requireProduct()
     * @method \Bitrix\Catalog\EO_Price setProduct(\Bitrix\Catalog\EO_Product $object)
     * @method \Bitrix\Catalog\EO_Price resetProduct()
     * @method \Bitrix\Catalog\EO_Price unsetProduct()
     * @method bool hasProduct()
     * @method bool isProductFilled()
     * @method bool isProductChanged()
     * @method \Bitrix\Catalog\EO_Product fillProduct()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_Price set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_Price reset($fieldName)
     * @method \Bitrix\Catalog\EO_Price unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_Price wakeUp($data)
     */
    class EO_Price
    {
        /* @var \Bitrix\Catalog\PriceTable */
        public static $dataClass = '\\Bitrix\\Catalog\\PriceTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Price_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getProductIdList()
     * @method \int[] fillProductId()
     * @method \int[] getExtraIdList()
     * @method \int[] fillExtraId()
     * @method \int[] getCatalogGroupIdList()
     * @method \int[] fillCatalogGroupId()
     * @method \float[] getPriceList()
     * @method \float[] fillPrice()
     * @method \string[] getCurrencyList()
     * @method \string[] fillCurrency()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \int[] getQuantityFromList()
     * @method \int[] fillQuantityFrom()
     * @method \int[] getQuantityToList()
     * @method \int[] fillQuantityTo()
     * @method \string[] getTmpIdList()
     * @method \string[] fillTmpId()
     * @method \float[] getPriceScaleList()
     * @method \float[] fillPriceScale()
     * @method \Bitrix\Catalog\EO_Group[] getCatalogGroupList()
     * @method \Bitrix\Catalog\EO_Price_Collection getCatalogGroupCollection()
     * @method \Bitrix\Catalog\EO_Group_Collection fillCatalogGroup()
     * @method \Bitrix\Iblock\EO_Element[] getElementList()
     * @method \Bitrix\Catalog\EO_Price_Collection getElementCollection()
     * @method \Bitrix\Iblock\EO_Element_Collection fillElement()
     * @method \Bitrix\Catalog\EO_Product[] getProductList()
     * @method \Bitrix\Catalog\EO_Price_Collection getProductCollection()
     * @method \Bitrix\Catalog\EO_Product_Collection fillProduct()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_Price $object)
     * @method bool has(\Bitrix\Catalog\EO_Price $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Price getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Price[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_Price $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_Price_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_Price current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Price_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\PriceTable */
        public static $dataClass = '\\Bitrix\\Catalog\\PriceTable';
    }
    /**
     * @method static EO_Price_Query query()
     * @method static EO_Price_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Price_Result getById($id)
     * @method static EO_Price_Result getList(array $parameters = array())
     * @method static EO_Price_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_Price createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_Price_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_Price wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_Price_Collection wakeUpCollection($rows)
     */
    class PriceTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Price_Result exec()
     * @method \Bitrix\Catalog\EO_Price fetchObject()
     * @method \Bitrix\Catalog\EO_Price_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Price_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Price fetchObject()
     * @method \Bitrix\Catalog\EO_Price_Collection fetchCollection()
     */
    class EO_Price_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Price createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_Price_Collection createCollection()
     * @method \Bitrix\Catalog\EO_Price wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_Price_Collection wakeUpCollection($rows)
     */
    class EO_Price_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Product
     * @see \Bitrix\Catalog\ProductTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_Product setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \float getQuantity()
     * @method \Bitrix\Catalog\EO_Product setQuantity(\float|\Bitrix\Main\DB\SqlExpression $quantity)
     * @method bool hasQuantity()
     * @method bool isQuantityFilled()
     * @method bool isQuantityChanged()
     * @method \float remindActualQuantity()
     * @method \float requireQuantity()
     * @method \Bitrix\Catalog\EO_Product resetQuantity()
     * @method \Bitrix\Catalog\EO_Product unsetQuantity()
     * @method \float fillQuantity()
     * @method \string getQuantityTrace()
     * @method \Bitrix\Catalog\EO_Product setQuantityTrace(\string|\Bitrix\Main\DB\SqlExpression $quantityTrace)
     * @method bool hasQuantityTrace()
     * @method bool isQuantityTraceFilled()
     * @method bool isQuantityTraceChanged()
     * @method \string remindActualQuantityTrace()
     * @method \string requireQuantityTrace()
     * @method \Bitrix\Catalog\EO_Product resetQuantityTrace()
     * @method \Bitrix\Catalog\EO_Product unsetQuantityTrace()
     * @method \string fillQuantityTrace()
     * @method \string getQuantityTraceOrig()
     * @method \string remindActualQuantityTraceOrig()
     * @method \string requireQuantityTraceOrig()
     * @method bool hasQuantityTraceOrig()
     * @method bool isQuantityTraceOrigFilled()
     * @method \Bitrix\Catalog\EO_Product unsetQuantityTraceOrig()
     * @method \string fillQuantityTraceOrig()
     * @method \float getWeight()
     * @method \Bitrix\Catalog\EO_Product setWeight(\float|\Bitrix\Main\DB\SqlExpression $weight)
     * @method bool hasWeight()
     * @method bool isWeightFilled()
     * @method bool isWeightChanged()
     * @method \float remindActualWeight()
     * @method \float requireWeight()
     * @method \Bitrix\Catalog\EO_Product resetWeight()
     * @method \Bitrix\Catalog\EO_Product unsetWeight()
     * @method \float fillWeight()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Catalog\EO_Product setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Catalog\EO_Product resetTimestampX()
     * @method \Bitrix\Catalog\EO_Product unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \string getPriceType()
     * @method \Bitrix\Catalog\EO_Product setPriceType(\string|\Bitrix\Main\DB\SqlExpression $priceType)
     * @method bool hasPriceType()
     * @method bool isPriceTypeFilled()
     * @method bool isPriceTypeChanged()
     * @method \string remindActualPriceType()
     * @method \string requirePriceType()
     * @method \Bitrix\Catalog\EO_Product resetPriceType()
     * @method \Bitrix\Catalog\EO_Product unsetPriceType()
     * @method \string fillPriceType()
     * @method \int getRecurSchemeLength()
     * @method \Bitrix\Catalog\EO_Product setRecurSchemeLength(\int|\Bitrix\Main\DB\SqlExpression $recurSchemeLength)
     * @method bool hasRecurSchemeLength()
     * @method bool isRecurSchemeLengthFilled()
     * @method bool isRecurSchemeLengthChanged()
     * @method \int remindActualRecurSchemeLength()
     * @method \int requireRecurSchemeLength()
     * @method \Bitrix\Catalog\EO_Product resetRecurSchemeLength()
     * @method \Bitrix\Catalog\EO_Product unsetRecurSchemeLength()
     * @method \int fillRecurSchemeLength()
     * @method \string getRecurSchemeType()
     * @method \Bitrix\Catalog\EO_Product setRecurSchemeType(\string|\Bitrix\Main\DB\SqlExpression $recurSchemeType)
     * @method bool hasRecurSchemeType()
     * @method bool isRecurSchemeTypeFilled()
     * @method bool isRecurSchemeTypeChanged()
     * @method \string remindActualRecurSchemeType()
     * @method \string requireRecurSchemeType()
     * @method \Bitrix\Catalog\EO_Product resetRecurSchemeType()
     * @method \Bitrix\Catalog\EO_Product unsetRecurSchemeType()
     * @method \string fillRecurSchemeType()
     * @method \int getTrialPriceId()
     * @method \Bitrix\Catalog\EO_Product setTrialPriceId(\int|\Bitrix\Main\DB\SqlExpression $trialPriceId)
     * @method bool hasTrialPriceId()
     * @method bool isTrialPriceIdFilled()
     * @method bool isTrialPriceIdChanged()
     * @method \int remindActualTrialPriceId()
     * @method \int requireTrialPriceId()
     * @method \Bitrix\Catalog\EO_Product resetTrialPriceId()
     * @method \Bitrix\Catalog\EO_Product unsetTrialPriceId()
     * @method \int fillTrialPriceId()
     * @method \boolean getWithoutOrder()
     * @method \Bitrix\Catalog\EO_Product setWithoutOrder(\boolean|\Bitrix\Main\DB\SqlExpression $withoutOrder)
     * @method bool hasWithoutOrder()
     * @method bool isWithoutOrderFilled()
     * @method bool isWithoutOrderChanged()
     * @method \boolean remindActualWithoutOrder()
     * @method \boolean requireWithoutOrder()
     * @method \Bitrix\Catalog\EO_Product resetWithoutOrder()
     * @method \Bitrix\Catalog\EO_Product unsetWithoutOrder()
     * @method \boolean fillWithoutOrder()
     * @method \boolean getSelectBestPrice()
     * @method \Bitrix\Catalog\EO_Product setSelectBestPrice(\boolean|\Bitrix\Main\DB\SqlExpression $selectBestPrice)
     * @method bool hasSelectBestPrice()
     * @method bool isSelectBestPriceFilled()
     * @method bool isSelectBestPriceChanged()
     * @method \boolean remindActualSelectBestPrice()
     * @method \boolean requireSelectBestPrice()
     * @method \Bitrix\Catalog\EO_Product resetSelectBestPrice()
     * @method \Bitrix\Catalog\EO_Product unsetSelectBestPrice()
     * @method \boolean fillSelectBestPrice()
     * @method \int getVatId()
     * @method \Bitrix\Catalog\EO_Product setVatId(\int|\Bitrix\Main\DB\SqlExpression $vatId)
     * @method bool hasVatId()
     * @method bool isVatIdFilled()
     * @method bool isVatIdChanged()
     * @method \int remindActualVatId()
     * @method \int requireVatId()
     * @method \Bitrix\Catalog\EO_Product resetVatId()
     * @method \Bitrix\Catalog\EO_Product unsetVatId()
     * @method \int fillVatId()
     * @method \boolean getVatIncluded()
     * @method \Bitrix\Catalog\EO_Product setVatIncluded(\boolean|\Bitrix\Main\DB\SqlExpression $vatIncluded)
     * @method bool hasVatIncluded()
     * @method bool isVatIncludedFilled()
     * @method bool isVatIncludedChanged()
     * @method \boolean remindActualVatIncluded()
     * @method \boolean requireVatIncluded()
     * @method \Bitrix\Catalog\EO_Product resetVatIncluded()
     * @method \Bitrix\Catalog\EO_Product unsetVatIncluded()
     * @method \boolean fillVatIncluded()
     * @method \string getCanBuyZero()
     * @method \Bitrix\Catalog\EO_Product setCanBuyZero(\string|\Bitrix\Main\DB\SqlExpression $canBuyZero)
     * @method bool hasCanBuyZero()
     * @method bool isCanBuyZeroFilled()
     * @method bool isCanBuyZeroChanged()
     * @method \string remindActualCanBuyZero()
     * @method \string requireCanBuyZero()
     * @method \Bitrix\Catalog\EO_Product resetCanBuyZero()
     * @method \Bitrix\Catalog\EO_Product unsetCanBuyZero()
     * @method \string fillCanBuyZero()
     * @method \string getCanBuyZeroOrig()
     * @method \string remindActualCanBuyZeroOrig()
     * @method \string requireCanBuyZeroOrig()
     * @method bool hasCanBuyZeroOrig()
     * @method bool isCanBuyZeroOrigFilled()
     * @method \Bitrix\Catalog\EO_Product unsetCanBuyZeroOrig()
     * @method \string fillCanBuyZeroOrig()
     * @method \string getNegativeAmountTrace()
     * @method \Bitrix\Catalog\EO_Product setNegativeAmountTrace(\string|\Bitrix\Main\DB\SqlExpression $negativeAmountTrace)
     * @method bool hasNegativeAmountTrace()
     * @method bool isNegativeAmountTraceFilled()
     * @method bool isNegativeAmountTraceChanged()
     * @method \string remindActualNegativeAmountTrace()
     * @method \string requireNegativeAmountTrace()
     * @method \Bitrix\Catalog\EO_Product resetNegativeAmountTrace()
     * @method \Bitrix\Catalog\EO_Product unsetNegativeAmountTrace()
     * @method \string fillNegativeAmountTrace()
     * @method \string getNegativeAmountTraceOrig()
     * @method \string remindActualNegativeAmountTraceOrig()
     * @method \string requireNegativeAmountTraceOrig()
     * @method bool hasNegativeAmountTraceOrig()
     * @method bool isNegativeAmountTraceOrigFilled()
     * @method \Bitrix\Catalog\EO_Product unsetNegativeAmountTraceOrig()
     * @method \string fillNegativeAmountTraceOrig()
     * @method \string getTmpId()
     * @method \Bitrix\Catalog\EO_Product setTmpId(\string|\Bitrix\Main\DB\SqlExpression $tmpId)
     * @method bool hasTmpId()
     * @method bool isTmpIdFilled()
     * @method bool isTmpIdChanged()
     * @method \string remindActualTmpId()
     * @method \string requireTmpId()
     * @method \Bitrix\Catalog\EO_Product resetTmpId()
     * @method \Bitrix\Catalog\EO_Product unsetTmpId()
     * @method \string fillTmpId()
     * @method \float getPurchasingPrice()
     * @method \Bitrix\Catalog\EO_Product setPurchasingPrice(\float|\Bitrix\Main\DB\SqlExpression $purchasingPrice)
     * @method bool hasPurchasingPrice()
     * @method bool isPurchasingPriceFilled()
     * @method bool isPurchasingPriceChanged()
     * @method \float remindActualPurchasingPrice()
     * @method \float requirePurchasingPrice()
     * @method \Bitrix\Catalog\EO_Product resetPurchasingPrice()
     * @method \Bitrix\Catalog\EO_Product unsetPurchasingPrice()
     * @method \float fillPurchasingPrice()
     * @method \string getPurchasingCurrency()
     * @method \Bitrix\Catalog\EO_Product setPurchasingCurrency(\string|\Bitrix\Main\DB\SqlExpression $purchasingCurrency)
     * @method bool hasPurchasingCurrency()
     * @method bool isPurchasingCurrencyFilled()
     * @method bool isPurchasingCurrencyChanged()
     * @method \string remindActualPurchasingCurrency()
     * @method \string requirePurchasingCurrency()
     * @method \Bitrix\Catalog\EO_Product resetPurchasingCurrency()
     * @method \Bitrix\Catalog\EO_Product unsetPurchasingCurrency()
     * @method \string fillPurchasingCurrency()
     * @method \boolean getBarcodeMulti()
     * @method \Bitrix\Catalog\EO_Product setBarcodeMulti(\boolean|\Bitrix\Main\DB\SqlExpression $barcodeMulti)
     * @method bool hasBarcodeMulti()
     * @method bool isBarcodeMultiFilled()
     * @method bool isBarcodeMultiChanged()
     * @method \boolean remindActualBarcodeMulti()
     * @method \boolean requireBarcodeMulti()
     * @method \Bitrix\Catalog\EO_Product resetBarcodeMulti()
     * @method \Bitrix\Catalog\EO_Product unsetBarcodeMulti()
     * @method \boolean fillBarcodeMulti()
     * @method \float getQuantityReserved()
     * @method \Bitrix\Catalog\EO_Product setQuantityReserved(\float|\Bitrix\Main\DB\SqlExpression $quantityReserved)
     * @method bool hasQuantityReserved()
     * @method bool isQuantityReservedFilled()
     * @method bool isQuantityReservedChanged()
     * @method \float remindActualQuantityReserved()
     * @method \float requireQuantityReserved()
     * @method \Bitrix\Catalog\EO_Product resetQuantityReserved()
     * @method \Bitrix\Catalog\EO_Product unsetQuantityReserved()
     * @method \float fillQuantityReserved()
     * @method \string getSubscribe()
     * @method \Bitrix\Catalog\EO_Product setSubscribe(\string|\Bitrix\Main\DB\SqlExpression $subscribe)
     * @method bool hasSubscribe()
     * @method bool isSubscribeFilled()
     * @method bool isSubscribeChanged()
     * @method \string remindActualSubscribe()
     * @method \string requireSubscribe()
     * @method \Bitrix\Catalog\EO_Product resetSubscribe()
     * @method \Bitrix\Catalog\EO_Product unsetSubscribe()
     * @method \string fillSubscribe()
     * @method \string getSubscribeOrig()
     * @method \string remindActualSubscribeOrig()
     * @method \string requireSubscribeOrig()
     * @method bool hasSubscribeOrig()
     * @method bool isSubscribeOrigFilled()
     * @method \Bitrix\Catalog\EO_Product unsetSubscribeOrig()
     * @method \string fillSubscribeOrig()
     * @method \float getWidth()
     * @method \Bitrix\Catalog\EO_Product setWidth(\float|\Bitrix\Main\DB\SqlExpression $width)
     * @method bool hasWidth()
     * @method bool isWidthFilled()
     * @method bool isWidthChanged()
     * @method \float remindActualWidth()
     * @method \float requireWidth()
     * @method \Bitrix\Catalog\EO_Product resetWidth()
     * @method \Bitrix\Catalog\EO_Product unsetWidth()
     * @method \float fillWidth()
     * @method \float getLength()
     * @method \Bitrix\Catalog\EO_Product setLength(\float|\Bitrix\Main\DB\SqlExpression $length)
     * @method bool hasLength()
     * @method bool isLengthFilled()
     * @method bool isLengthChanged()
     * @method \float remindActualLength()
     * @method \float requireLength()
     * @method \Bitrix\Catalog\EO_Product resetLength()
     * @method \Bitrix\Catalog\EO_Product unsetLength()
     * @method \float fillLength()
     * @method \float getHeight()
     * @method \Bitrix\Catalog\EO_Product setHeight(\float|\Bitrix\Main\DB\SqlExpression $height)
     * @method bool hasHeight()
     * @method bool isHeightFilled()
     * @method bool isHeightChanged()
     * @method \float remindActualHeight()
     * @method \float requireHeight()
     * @method \Bitrix\Catalog\EO_Product resetHeight()
     * @method \Bitrix\Catalog\EO_Product unsetHeight()
     * @method \float fillHeight()
     * @method \int getMeasure()
     * @method \Bitrix\Catalog\EO_Product setMeasure(\int|\Bitrix\Main\DB\SqlExpression $measure)
     * @method bool hasMeasure()
     * @method bool isMeasureFilled()
     * @method bool isMeasureChanged()
     * @method \int remindActualMeasure()
     * @method \int requireMeasure()
     * @method \Bitrix\Catalog\EO_Product resetMeasure()
     * @method \Bitrix\Catalog\EO_Product unsetMeasure()
     * @method \int fillMeasure()
     * @method \string getType()
     * @method \Bitrix\Catalog\EO_Product setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\Catalog\EO_Product resetType()
     * @method \Bitrix\Catalog\EO_Product unsetType()
     * @method \string fillType()
     * @method \boolean getAvailable()
     * @method \Bitrix\Catalog\EO_Product setAvailable(\boolean|\Bitrix\Main\DB\SqlExpression $available)
     * @method bool hasAvailable()
     * @method bool isAvailableFilled()
     * @method bool isAvailableChanged()
     * @method \boolean remindActualAvailable()
     * @method \boolean requireAvailable()
     * @method \Bitrix\Catalog\EO_Product resetAvailable()
     * @method \Bitrix\Catalog\EO_Product unsetAvailable()
     * @method \boolean fillAvailable()
     * @method \boolean getBundle()
     * @method \Bitrix\Catalog\EO_Product setBundle(\boolean|\Bitrix\Main\DB\SqlExpression $bundle)
     * @method bool hasBundle()
     * @method bool isBundleFilled()
     * @method bool isBundleChanged()
     * @method \boolean remindActualBundle()
     * @method \boolean requireBundle()
     * @method \Bitrix\Catalog\EO_Product resetBundle()
     * @method \Bitrix\Catalog\EO_Product unsetBundle()
     * @method \boolean fillBundle()
     * @method \Bitrix\Iblock\EO_Element getIblockElement()
     * @method \Bitrix\Iblock\EO_Element remindActualIblockElement()
     * @method \Bitrix\Iblock\EO_Element requireIblockElement()
     * @method \Bitrix\Catalog\EO_Product setIblockElement(\Bitrix\Iblock\EO_Element $object)
     * @method \Bitrix\Catalog\EO_Product resetIblockElement()
     * @method \Bitrix\Catalog\EO_Product unsetIblockElement()
     * @method bool hasIblockElement()
     * @method bool isIblockElementFilled()
     * @method bool isIblockElementChanged()
     * @method \Bitrix\Iblock\EO_Element fillIblockElement()
     * @method \Bitrix\Iblock\EO_Element getTrialIblockElement()
     * @method \Bitrix\Iblock\EO_Element remindActualTrialIblockElement()
     * @method \Bitrix\Iblock\EO_Element requireTrialIblockElement()
     * @method \Bitrix\Catalog\EO_Product setTrialIblockElement(\Bitrix\Iblock\EO_Element $object)
     * @method \Bitrix\Catalog\EO_Product resetTrialIblockElement()
     * @method \Bitrix\Catalog\EO_Product unsetTrialIblockElement()
     * @method bool hasTrialIblockElement()
     * @method bool isTrialIblockElementFilled()
     * @method bool isTrialIblockElementChanged()
     * @method \Bitrix\Iblock\EO_Element fillTrialIblockElement()
     * @method \Bitrix\Catalog\EO_Product getTrialProduct()
     * @method \Bitrix\Catalog\EO_Product remindActualTrialProduct()
     * @method \Bitrix\Catalog\EO_Product requireTrialProduct()
     * @method \Bitrix\Catalog\EO_Product setTrialProduct(\Bitrix\Catalog\EO_Product $object)
     * @method \Bitrix\Catalog\EO_Product resetTrialProduct()
     * @method \Bitrix\Catalog\EO_Product unsetTrialProduct()
     * @method bool hasTrialProduct()
     * @method bool isTrialProductFilled()
     * @method bool isTrialProductChanged()
     * @method \Bitrix\Catalog\EO_Product fillTrialProduct()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_Product set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_Product reset($fieldName)
     * @method \Bitrix\Catalog\EO_Product unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_Product wakeUp($data)
     */
    class EO_Product
    {
        /* @var \Bitrix\Catalog\ProductTable */
        public static $dataClass = '\\Bitrix\\Catalog\\ProductTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Product_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \float[] getQuantityList()
     * @method \float[] fillQuantity()
     * @method \string[] getQuantityTraceList()
     * @method \string[] fillQuantityTrace()
     * @method \string[] getQuantityTraceOrigList()
     * @method \string[] fillQuantityTraceOrig()
     * @method \float[] getWeightList()
     * @method \float[] fillWeight()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \string[] getPriceTypeList()
     * @method \string[] fillPriceType()
     * @method \int[] getRecurSchemeLengthList()
     * @method \int[] fillRecurSchemeLength()
     * @method \string[] getRecurSchemeTypeList()
     * @method \string[] fillRecurSchemeType()
     * @method \int[] getTrialPriceIdList()
     * @method \int[] fillTrialPriceId()
     * @method \boolean[] getWithoutOrderList()
     * @method \boolean[] fillWithoutOrder()
     * @method \boolean[] getSelectBestPriceList()
     * @method \boolean[] fillSelectBestPrice()
     * @method \int[] getVatIdList()
     * @method \int[] fillVatId()
     * @method \boolean[] getVatIncludedList()
     * @method \boolean[] fillVatIncluded()
     * @method \string[] getCanBuyZeroList()
     * @method \string[] fillCanBuyZero()
     * @method \string[] getCanBuyZeroOrigList()
     * @method \string[] fillCanBuyZeroOrig()
     * @method \string[] getNegativeAmountTraceList()
     * @method \string[] fillNegativeAmountTrace()
     * @method \string[] getNegativeAmountTraceOrigList()
     * @method \string[] fillNegativeAmountTraceOrig()
     * @method \string[] getTmpIdList()
     * @method \string[] fillTmpId()
     * @method \float[] getPurchasingPriceList()
     * @method \float[] fillPurchasingPrice()
     * @method \string[] getPurchasingCurrencyList()
     * @method \string[] fillPurchasingCurrency()
     * @method \boolean[] getBarcodeMultiList()
     * @method \boolean[] fillBarcodeMulti()
     * @method \float[] getQuantityReservedList()
     * @method \float[] fillQuantityReserved()
     * @method \string[] getSubscribeList()
     * @method \string[] fillSubscribe()
     * @method \string[] getSubscribeOrigList()
     * @method \string[] fillSubscribeOrig()
     * @method \float[] getWidthList()
     * @method \float[] fillWidth()
     * @method \float[] getLengthList()
     * @method \float[] fillLength()
     * @method \float[] getHeightList()
     * @method \float[] fillHeight()
     * @method \int[] getMeasureList()
     * @method \int[] fillMeasure()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \boolean[] getAvailableList()
     * @method \boolean[] fillAvailable()
     * @method \boolean[] getBundleList()
     * @method \boolean[] fillBundle()
     * @method \Bitrix\Iblock\EO_Element[] getIblockElementList()
     * @method \Bitrix\Catalog\EO_Product_Collection getIblockElementCollection()
     * @method \Bitrix\Iblock\EO_Element_Collection fillIblockElement()
     * @method \Bitrix\Iblock\EO_Element[] getTrialIblockElementList()
     * @method \Bitrix\Catalog\EO_Product_Collection getTrialIblockElementCollection()
     * @method \Bitrix\Iblock\EO_Element_Collection fillTrialIblockElement()
     * @method \Bitrix\Catalog\EO_Product[] getTrialProductList()
     * @method \Bitrix\Catalog\EO_Product_Collection getTrialProductCollection()
     * @method \Bitrix\Catalog\EO_Product_Collection fillTrialProduct()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_Product $object)
     * @method bool has(\Bitrix\Catalog\EO_Product $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Product getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Product[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_Product $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_Product_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_Product current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Product_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\ProductTable */
        public static $dataClass = '\\Bitrix\\Catalog\\ProductTable';
    }
    /**
     * @method static EO_Product_Query query()
     * @method static EO_Product_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Product_Result getById($id)
     * @method static EO_Product_Result getList(array $parameters = array())
     * @method static EO_Product_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_Product createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_Product_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_Product wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_Product_Collection wakeUpCollection($rows)
     */
    class ProductTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Product_Result exec()
     * @method \Bitrix\Catalog\EO_Product fetchObject()
     * @method \Bitrix\Catalog\EO_Product_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Product_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Product fetchObject()
     * @method \Bitrix\Catalog\EO_Product_Collection fetchCollection()
     */
    class EO_Product_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Product createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_Product_Collection createCollection()
     * @method \Bitrix\Catalog\EO_Product wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_Product_Collection wakeUpCollection($rows)
     */
    class EO_Product_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_ProductGroupAccess
     * @see \Bitrix\Catalog\ProductGroupAccessTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getProductId()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess setProductId(\int|\Bitrix\Main\DB\SqlExpression $productId)
     * @method bool hasProductId()
     * @method bool isProductIdFilled()
     * @method bool isProductIdChanged()
     * @method \int remindActualProductId()
     * @method \int requireProductId()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess resetProductId()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess unsetProductId()
     * @method \int fillProductId()
     * @method \int getGroupId()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess setGroupId(\int|\Bitrix\Main\DB\SqlExpression $groupId)
     * @method bool hasGroupId()
     * @method bool isGroupIdFilled()
     * @method bool isGroupIdChanged()
     * @method \int remindActualGroupId()
     * @method \int requireGroupId()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess resetGroupId()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess unsetGroupId()
     * @method \int fillGroupId()
     * @method \int getAccessLength()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess setAccessLength(\int|\Bitrix\Main\DB\SqlExpression $accessLength)
     * @method bool hasAccessLength()
     * @method bool isAccessLengthFilled()
     * @method bool isAccessLengthChanged()
     * @method \int remindActualAccessLength()
     * @method \int requireAccessLength()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess resetAccessLength()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess unsetAccessLength()
     * @method \int fillAccessLength()
     * @method \string getAccessLengthType()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess setAccessLengthType(\string|\Bitrix\Main\DB\SqlExpression $accessLengthType)
     * @method bool hasAccessLengthType()
     * @method bool isAccessLengthTypeFilled()
     * @method bool isAccessLengthTypeChanged()
     * @method \string remindActualAccessLengthType()
     * @method \string requireAccessLengthType()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess resetAccessLengthType()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess unsetAccessLengthType()
     * @method \string fillAccessLengthType()
     * @method \Bitrix\Catalog\EO_Product getProduct()
     * @method \Bitrix\Catalog\EO_Product remindActualProduct()
     * @method \Bitrix\Catalog\EO_Product requireProduct()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess setProduct(\Bitrix\Catalog\EO_Product $object)
     * @method \Bitrix\Catalog\EO_ProductGroupAccess resetProduct()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess unsetProduct()
     * @method bool hasProduct()
     * @method bool isProductFilled()
     * @method bool isProductChanged()
     * @method \Bitrix\Catalog\EO_Product fillProduct()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_ProductGroupAccess set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_ProductGroupAccess reset($fieldName)
     * @method \Bitrix\Catalog\EO_ProductGroupAccess unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_ProductGroupAccess wakeUp($data)
     */
    class EO_ProductGroupAccess
    {
        /* @var \Bitrix\Catalog\ProductGroupAccessTable */
        public static $dataClass = '\\Bitrix\\Catalog\\ProductGroupAccessTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_ProductGroupAccess_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getProductIdList()
     * @method \int[] fillProductId()
     * @method \int[] getGroupIdList()
     * @method \int[] fillGroupId()
     * @method \int[] getAccessLengthList()
     * @method \int[] fillAccessLength()
     * @method \string[] getAccessLengthTypeList()
     * @method \string[] fillAccessLengthType()
     * @method \Bitrix\Catalog\EO_Product[] getProductList()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess_Collection getProductCollection()
     * @method \Bitrix\Catalog\EO_Product_Collection fillProduct()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_ProductGroupAccess $object)
     * @method bool has(\Bitrix\Catalog\EO_ProductGroupAccess $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_ProductGroupAccess getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_ProductGroupAccess[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_ProductGroupAccess $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_ProductGroupAccess_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_ProductGroupAccess current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_ProductGroupAccess_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\ProductGroupAccessTable */
        public static $dataClass = '\\Bitrix\\Catalog\\ProductGroupAccessTable';
    }
    /**
     * @method static EO_ProductGroupAccess_Query query()
     * @method static EO_ProductGroupAccess_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_ProductGroupAccess_Result getById($id)
     * @method static EO_ProductGroupAccess_Result getList(array $parameters = array())
     * @method static EO_ProductGroupAccess_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_ProductGroupAccess createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_ProductGroupAccess_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_ProductGroupAccess wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_ProductGroupAccess_Collection wakeUpCollection($rows)
     */
    class ProductGroupAccessTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_ProductGroupAccess_Result exec()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess fetchObject()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_ProductGroupAccess_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_ProductGroupAccess fetchObject()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess_Collection fetchCollection()
     */
    class EO_ProductGroupAccess_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_ProductGroupAccess createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_ProductGroupAccess_Collection createCollection()
     * @method \Bitrix\Catalog\EO_ProductGroupAccess wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_ProductGroupAccess_Collection wakeUpCollection($rows)
     */
    class EO_ProductGroupAccess_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Rounding
     * @see \Bitrix\Catalog\RoundingTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_Rounding setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getCatalogGroupId()
     * @method \Bitrix\Catalog\EO_Rounding setCatalogGroupId(\int|\Bitrix\Main\DB\SqlExpression $catalogGroupId)
     * @method bool hasCatalogGroupId()
     * @method bool isCatalogGroupIdFilled()
     * @method bool isCatalogGroupIdChanged()
     * @method \int remindActualCatalogGroupId()
     * @method \int requireCatalogGroupId()
     * @method \Bitrix\Catalog\EO_Rounding resetCatalogGroupId()
     * @method \Bitrix\Catalog\EO_Rounding unsetCatalogGroupId()
     * @method \int fillCatalogGroupId()
     * @method \float getPrice()
     * @method \Bitrix\Catalog\EO_Rounding setPrice(\float|\Bitrix\Main\DB\SqlExpression $price)
     * @method bool hasPrice()
     * @method bool isPriceFilled()
     * @method bool isPriceChanged()
     * @method \float remindActualPrice()
     * @method \float requirePrice()
     * @method \Bitrix\Catalog\EO_Rounding resetPrice()
     * @method \Bitrix\Catalog\EO_Rounding unsetPrice()
     * @method \float fillPrice()
     * @method \string getRoundType()
     * @method \Bitrix\Catalog\EO_Rounding setRoundType(\string|\Bitrix\Main\DB\SqlExpression $roundType)
     * @method bool hasRoundType()
     * @method bool isRoundTypeFilled()
     * @method bool isRoundTypeChanged()
     * @method \string remindActualRoundType()
     * @method \string requireRoundType()
     * @method \Bitrix\Catalog\EO_Rounding resetRoundType()
     * @method \Bitrix\Catalog\EO_Rounding unsetRoundType()
     * @method \string fillRoundType()
     * @method \float getRoundPrecision()
     * @method \Bitrix\Catalog\EO_Rounding setRoundPrecision(\float|\Bitrix\Main\DB\SqlExpression $roundPrecision)
     * @method bool hasRoundPrecision()
     * @method bool isRoundPrecisionFilled()
     * @method bool isRoundPrecisionChanged()
     * @method \float remindActualRoundPrecision()
     * @method \float requireRoundPrecision()
     * @method \Bitrix\Catalog\EO_Rounding resetRoundPrecision()
     * @method \Bitrix\Catalog\EO_Rounding unsetRoundPrecision()
     * @method \float fillRoundPrecision()
     * @method \int getCreatedBy()
     * @method \Bitrix\Catalog\EO_Rounding setCreatedBy(\int|\Bitrix\Main\DB\SqlExpression $createdBy)
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \int remindActualCreatedBy()
     * @method \int requireCreatedBy()
     * @method \Bitrix\Catalog\EO_Rounding resetCreatedBy()
     * @method \Bitrix\Catalog\EO_Rounding unsetCreatedBy()
     * @method \int fillCreatedBy()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Catalog\EO_Rounding setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Catalog\EO_Rounding resetDateCreate()
     * @method \Bitrix\Catalog\EO_Rounding unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \int getModifiedBy()
     * @method \Bitrix\Catalog\EO_Rounding setModifiedBy(\int|\Bitrix\Main\DB\SqlExpression $modifiedBy)
     * @method bool hasModifiedBy()
     * @method bool isModifiedByFilled()
     * @method bool isModifiedByChanged()
     * @method \int remindActualModifiedBy()
     * @method \int requireModifiedBy()
     * @method \Bitrix\Catalog\EO_Rounding resetModifiedBy()
     * @method \Bitrix\Catalog\EO_Rounding unsetModifiedBy()
     * @method \int fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime getDateModify()
     * @method \Bitrix\Catalog\EO_Rounding setDateModify(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateModify)
     * @method bool hasDateModify()
     * @method bool isDateModifyFilled()
     * @method bool isDateModifyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateModify()
     * @method \Bitrix\Main\Type\DateTime requireDateModify()
     * @method \Bitrix\Catalog\EO_Rounding resetDateModify()
     * @method \Bitrix\Catalog\EO_Rounding unsetDateModify()
     * @method \Bitrix\Main\Type\DateTime fillDateModify()
     * @method \Bitrix\Main\EO_User getCreatedByUser()
     * @method \Bitrix\Main\EO_User remindActualCreatedByUser()
     * @method \Bitrix\Main\EO_User requireCreatedByUser()
     * @method \Bitrix\Catalog\EO_Rounding setCreatedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Catalog\EO_Rounding resetCreatedByUser()
     * @method \Bitrix\Catalog\EO_Rounding unsetCreatedByUser()
     * @method bool hasCreatedByUser()
     * @method bool isCreatedByUserFilled()
     * @method bool isCreatedByUserChanged()
     * @method \Bitrix\Main\EO_User fillCreatedByUser()
     * @method \Bitrix\Main\EO_User getModifiedByUser()
     * @method \Bitrix\Main\EO_User remindActualModifiedByUser()
     * @method \Bitrix\Main\EO_User requireModifiedByUser()
     * @method \Bitrix\Catalog\EO_Rounding setModifiedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Catalog\EO_Rounding resetModifiedByUser()
     * @method \Bitrix\Catalog\EO_Rounding unsetModifiedByUser()
     * @method bool hasModifiedByUser()
     * @method bool isModifiedByUserFilled()
     * @method bool isModifiedByUserChanged()
     * @method \Bitrix\Main\EO_User fillModifiedByUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_Rounding set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_Rounding reset($fieldName)
     * @method \Bitrix\Catalog\EO_Rounding unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_Rounding wakeUp($data)
     */
    class EO_Rounding
    {
        /* @var \Bitrix\Catalog\RoundingTable */
        public static $dataClass = '\\Bitrix\\Catalog\\RoundingTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Rounding_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getCatalogGroupIdList()
     * @method \int[] fillCatalogGroupId()
     * @method \float[] getPriceList()
     * @method \float[] fillPrice()
     * @method \string[] getRoundTypeList()
     * @method \string[] fillRoundType()
     * @method \float[] getRoundPrecisionList()
     * @method \float[] fillRoundPrecision()
     * @method \int[] getCreatedByList()
     * @method \int[] fillCreatedBy()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \int[] getModifiedByList()
     * @method \int[] fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime[] getDateModifyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateModify()
     * @method \Bitrix\Main\EO_User[] getCreatedByUserList()
     * @method \Bitrix\Catalog\EO_Rounding_Collection getCreatedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCreatedByUser()
     * @method \Bitrix\Main\EO_User[] getModifiedByUserList()
     * @method \Bitrix\Catalog\EO_Rounding_Collection getModifiedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillModifiedByUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_Rounding $object)
     * @method bool has(\Bitrix\Catalog\EO_Rounding $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Rounding getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Rounding[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_Rounding $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_Rounding_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_Rounding current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Rounding_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\RoundingTable */
        public static $dataClass = '\\Bitrix\\Catalog\\RoundingTable';
    }
    /**
     * @method static EO_Rounding_Query query()
     * @method static EO_Rounding_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Rounding_Result getById($id)
     * @method static EO_Rounding_Result getList(array $parameters = array())
     * @method static EO_Rounding_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_Rounding createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_Rounding_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_Rounding wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_Rounding_Collection wakeUpCollection($rows)
     */
    class RoundingTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Rounding_Result exec()
     * @method \Bitrix\Catalog\EO_Rounding fetchObject()
     * @method \Bitrix\Catalog\EO_Rounding_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Rounding_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Rounding fetchObject()
     * @method \Bitrix\Catalog\EO_Rounding_Collection fetchCollection()
     */
    class EO_Rounding_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Rounding createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_Rounding_Collection createCollection()
     * @method \Bitrix\Catalog\EO_Rounding wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_Rounding_Collection wakeUpCollection($rows)
     */
    class EO_Rounding_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Store
     * @see \Bitrix\Catalog\StoreTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_Store setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getTitle()
     * @method \Bitrix\Catalog\EO_Store setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Catalog\EO_Store resetTitle()
     * @method \Bitrix\Catalog\EO_Store unsetTitle()
     * @method \string fillTitle()
     * @method \boolean getActive()
     * @method \Bitrix\Catalog\EO_Store setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Catalog\EO_Store resetActive()
     * @method \Bitrix\Catalog\EO_Store unsetActive()
     * @method \boolean fillActive()
     * @method \string getAddress()
     * @method \Bitrix\Catalog\EO_Store setAddress(\string|\Bitrix\Main\DB\SqlExpression $address)
     * @method bool hasAddress()
     * @method bool isAddressFilled()
     * @method bool isAddressChanged()
     * @method \string remindActualAddress()
     * @method \string requireAddress()
     * @method \Bitrix\Catalog\EO_Store resetAddress()
     * @method \Bitrix\Catalog\EO_Store unsetAddress()
     * @method \string fillAddress()
     * @method \string getDescription()
     * @method \Bitrix\Catalog\EO_Store setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Catalog\EO_Store resetDescription()
     * @method \Bitrix\Catalog\EO_Store unsetDescription()
     * @method \string fillDescription()
     * @method \string getGpsN()
     * @method \Bitrix\Catalog\EO_Store setGpsN(\string|\Bitrix\Main\DB\SqlExpression $gpsN)
     * @method bool hasGpsN()
     * @method bool isGpsNFilled()
     * @method bool isGpsNChanged()
     * @method \string remindActualGpsN()
     * @method \string requireGpsN()
     * @method \Bitrix\Catalog\EO_Store resetGpsN()
     * @method \Bitrix\Catalog\EO_Store unsetGpsN()
     * @method \string fillGpsN()
     * @method \string getGpsS()
     * @method \Bitrix\Catalog\EO_Store setGpsS(\string|\Bitrix\Main\DB\SqlExpression $gpsS)
     * @method bool hasGpsS()
     * @method bool isGpsSFilled()
     * @method bool isGpsSChanged()
     * @method \string remindActualGpsS()
     * @method \string requireGpsS()
     * @method \Bitrix\Catalog\EO_Store resetGpsS()
     * @method \Bitrix\Catalog\EO_Store unsetGpsS()
     * @method \string fillGpsS()
     * @method \string getImageId()
     * @method \Bitrix\Catalog\EO_Store setImageId(\string|\Bitrix\Main\DB\SqlExpression $imageId)
     * @method bool hasImageId()
     * @method bool isImageIdFilled()
     * @method bool isImageIdChanged()
     * @method \string remindActualImageId()
     * @method \string requireImageId()
     * @method \Bitrix\Catalog\EO_Store resetImageId()
     * @method \Bitrix\Catalog\EO_Store unsetImageId()
     * @method \string fillImageId()
     * @method \int getLocationId()
     * @method \Bitrix\Catalog\EO_Store setLocationId(\int|\Bitrix\Main\DB\SqlExpression $locationId)
     * @method bool hasLocationId()
     * @method bool isLocationIdFilled()
     * @method bool isLocationIdChanged()
     * @method \int remindActualLocationId()
     * @method \int requireLocationId()
     * @method \Bitrix\Catalog\EO_Store resetLocationId()
     * @method \Bitrix\Catalog\EO_Store unsetLocationId()
     * @method \int fillLocationId()
     * @method \Bitrix\Main\Type\DateTime getDateModify()
     * @method \Bitrix\Catalog\EO_Store setDateModify(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateModify)
     * @method bool hasDateModify()
     * @method bool isDateModifyFilled()
     * @method bool isDateModifyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateModify()
     * @method \Bitrix\Main\Type\DateTime requireDateModify()
     * @method \Bitrix\Catalog\EO_Store resetDateModify()
     * @method \Bitrix\Catalog\EO_Store unsetDateModify()
     * @method \Bitrix\Main\Type\DateTime fillDateModify()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Catalog\EO_Store setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Catalog\EO_Store resetDateCreate()
     * @method \Bitrix\Catalog\EO_Store unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \int getUserId()
     * @method \Bitrix\Catalog\EO_Store setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Catalog\EO_Store resetUserId()
     * @method \Bitrix\Catalog\EO_Store unsetUserId()
     * @method \int fillUserId()
     * @method \int getModifiedBy()
     * @method \Bitrix\Catalog\EO_Store setModifiedBy(\int|\Bitrix\Main\DB\SqlExpression $modifiedBy)
     * @method bool hasModifiedBy()
     * @method bool isModifiedByFilled()
     * @method bool isModifiedByChanged()
     * @method \int remindActualModifiedBy()
     * @method \int requireModifiedBy()
     * @method \Bitrix\Catalog\EO_Store resetModifiedBy()
     * @method \Bitrix\Catalog\EO_Store unsetModifiedBy()
     * @method \int fillModifiedBy()
     * @method \string getPhone()
     * @method \Bitrix\Catalog\EO_Store setPhone(\string|\Bitrix\Main\DB\SqlExpression $phone)
     * @method bool hasPhone()
     * @method bool isPhoneFilled()
     * @method bool isPhoneChanged()
     * @method \string remindActualPhone()
     * @method \string requirePhone()
     * @method \Bitrix\Catalog\EO_Store resetPhone()
     * @method \Bitrix\Catalog\EO_Store unsetPhone()
     * @method \string fillPhone()
     * @method \string getSchedule()
     * @method \Bitrix\Catalog\EO_Store setSchedule(\string|\Bitrix\Main\DB\SqlExpression $schedule)
     * @method bool hasSchedule()
     * @method bool isScheduleFilled()
     * @method bool isScheduleChanged()
     * @method \string remindActualSchedule()
     * @method \string requireSchedule()
     * @method \Bitrix\Catalog\EO_Store resetSchedule()
     * @method \Bitrix\Catalog\EO_Store unsetSchedule()
     * @method \string fillSchedule()
     * @method \string getXmlId()
     * @method \Bitrix\Catalog\EO_Store setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Catalog\EO_Store resetXmlId()
     * @method \Bitrix\Catalog\EO_Store unsetXmlId()
     * @method \string fillXmlId()
     * @method \int getSort()
     * @method \Bitrix\Catalog\EO_Store setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Catalog\EO_Store resetSort()
     * @method \Bitrix\Catalog\EO_Store unsetSort()
     * @method \int fillSort()
     * @method \string getEmail()
     * @method \Bitrix\Catalog\EO_Store setEmail(\string|\Bitrix\Main\DB\SqlExpression $email)
     * @method bool hasEmail()
     * @method bool isEmailFilled()
     * @method bool isEmailChanged()
     * @method \string remindActualEmail()
     * @method \string requireEmail()
     * @method \Bitrix\Catalog\EO_Store resetEmail()
     * @method \Bitrix\Catalog\EO_Store unsetEmail()
     * @method \string fillEmail()
     * @method \boolean getIssuingCenter()
     * @method \Bitrix\Catalog\EO_Store setIssuingCenter(\boolean|\Bitrix\Main\DB\SqlExpression $issuingCenter)
     * @method bool hasIssuingCenter()
     * @method bool isIssuingCenterFilled()
     * @method bool isIssuingCenterChanged()
     * @method \boolean remindActualIssuingCenter()
     * @method \boolean requireIssuingCenter()
     * @method \Bitrix\Catalog\EO_Store resetIssuingCenter()
     * @method \Bitrix\Catalog\EO_Store unsetIssuingCenter()
     * @method \boolean fillIssuingCenter()
     * @method \boolean getShippingCenter()
     * @method \Bitrix\Catalog\EO_Store setShippingCenter(\boolean|\Bitrix\Main\DB\SqlExpression $shippingCenter)
     * @method bool hasShippingCenter()
     * @method bool isShippingCenterFilled()
     * @method bool isShippingCenterChanged()
     * @method \boolean remindActualShippingCenter()
     * @method \boolean requireShippingCenter()
     * @method \Bitrix\Catalog\EO_Store resetShippingCenter()
     * @method \Bitrix\Catalog\EO_Store unsetShippingCenter()
     * @method \boolean fillShippingCenter()
     * @method \string getSiteId()
     * @method \Bitrix\Catalog\EO_Store setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string remindActualSiteId()
     * @method \string requireSiteId()
     * @method \Bitrix\Catalog\EO_Store resetSiteId()
     * @method \Bitrix\Catalog\EO_Store unsetSiteId()
     * @method \string fillSiteId()
     * @method \string getCode()
     * @method \Bitrix\Catalog\EO_Store setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Catalog\EO_Store resetCode()
     * @method \Bitrix\Catalog\EO_Store unsetCode()
     * @method \string fillCode()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_Store set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_Store reset($fieldName)
     * @method \Bitrix\Catalog\EO_Store unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_Store wakeUp($data)
     */
    class EO_Store
    {
        /* @var \Bitrix\Catalog\StoreTable */
        public static $dataClass = '\\Bitrix\\Catalog\\StoreTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Store_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \string[] getAddressList()
     * @method \string[] fillAddress()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getGpsNList()
     * @method \string[] fillGpsN()
     * @method \string[] getGpsSList()
     * @method \string[] fillGpsS()
     * @method \string[] getImageIdList()
     * @method \string[] fillImageId()
     * @method \int[] getLocationIdList()
     * @method \int[] fillLocationId()
     * @method \Bitrix\Main\Type\DateTime[] getDateModifyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateModify()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \int[] getModifiedByList()
     * @method \int[] fillModifiedBy()
     * @method \string[] getPhoneList()
     * @method \string[] fillPhone()
     * @method \string[] getScheduleList()
     * @method \string[] fillSchedule()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \string[] getEmailList()
     * @method \string[] fillEmail()
     * @method \boolean[] getIssuingCenterList()
     * @method \boolean[] fillIssuingCenter()
     * @method \boolean[] getShippingCenterList()
     * @method \boolean[] fillShippingCenter()
     * @method \string[] getSiteIdList()
     * @method \string[] fillSiteId()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_Store $object)
     * @method bool has(\Bitrix\Catalog\EO_Store $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Store getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Store[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_Store $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_Store_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_Store current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Store_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\StoreTable */
        public static $dataClass = '\\Bitrix\\Catalog\\StoreTable';
    }
    /**
     * @method static EO_Store_Query query()
     * @method static EO_Store_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Store_Result getById($id)
     * @method static EO_Store_Result getList(array $parameters = array())
     * @method static EO_Store_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_Store createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_Store_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_Store wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_Store_Collection wakeUpCollection($rows)
     */
    class StoreTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Store_Result exec()
     * @method \Bitrix\Catalog\EO_Store fetchObject()
     * @method \Bitrix\Catalog\EO_Store_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Store_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Store fetchObject()
     * @method \Bitrix\Catalog\EO_Store_Collection fetchCollection()
     */
    class EO_Store_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Store createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_Store_Collection createCollection()
     * @method \Bitrix\Catalog\EO_Store wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_Store_Collection wakeUpCollection($rows)
     */
    class EO_Store_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_StoreBarcode
     * @see \Bitrix\Catalog\StoreBarcodeTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_StoreBarcode setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getProductId()
     * @method \Bitrix\Catalog\EO_StoreBarcode setProductId(\int|\Bitrix\Main\DB\SqlExpression $productId)
     * @method bool hasProductId()
     * @method bool isProductIdFilled()
     * @method bool isProductIdChanged()
     * @method \int remindActualProductId()
     * @method \int requireProductId()
     * @method \Bitrix\Catalog\EO_StoreBarcode resetProductId()
     * @method \Bitrix\Catalog\EO_StoreBarcode unsetProductId()
     * @method \int fillProductId()
     * @method \string getBarcode()
     * @method \Bitrix\Catalog\EO_StoreBarcode setBarcode(\string|\Bitrix\Main\DB\SqlExpression $barcode)
     * @method bool hasBarcode()
     * @method bool isBarcodeFilled()
     * @method bool isBarcodeChanged()
     * @method \string remindActualBarcode()
     * @method \string requireBarcode()
     * @method \Bitrix\Catalog\EO_StoreBarcode resetBarcode()
     * @method \Bitrix\Catalog\EO_StoreBarcode unsetBarcode()
     * @method \string fillBarcode()
     * @method \int getStoreId()
     * @method \Bitrix\Catalog\EO_StoreBarcode setStoreId(\int|\Bitrix\Main\DB\SqlExpression $storeId)
     * @method bool hasStoreId()
     * @method bool isStoreIdFilled()
     * @method bool isStoreIdChanged()
     * @method \int remindActualStoreId()
     * @method \int requireStoreId()
     * @method \Bitrix\Catalog\EO_StoreBarcode resetStoreId()
     * @method \Bitrix\Catalog\EO_StoreBarcode unsetStoreId()
     * @method \int fillStoreId()
     * @method \int getOrderId()
     * @method \Bitrix\Catalog\EO_StoreBarcode setOrderId(\int|\Bitrix\Main\DB\SqlExpression $orderId)
     * @method bool hasOrderId()
     * @method bool isOrderIdFilled()
     * @method bool isOrderIdChanged()
     * @method \int remindActualOrderId()
     * @method \int requireOrderId()
     * @method \Bitrix\Catalog\EO_StoreBarcode resetOrderId()
     * @method \Bitrix\Catalog\EO_StoreBarcode unsetOrderId()
     * @method \int fillOrderId()
     * @method \Bitrix\Main\Type\DateTime getDateModify()
     * @method \Bitrix\Catalog\EO_StoreBarcode setDateModify(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateModify)
     * @method bool hasDateModify()
     * @method bool isDateModifyFilled()
     * @method bool isDateModifyChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateModify()
     * @method \Bitrix\Main\Type\DateTime requireDateModify()
     * @method \Bitrix\Catalog\EO_StoreBarcode resetDateModify()
     * @method \Bitrix\Catalog\EO_StoreBarcode unsetDateModify()
     * @method \Bitrix\Main\Type\DateTime fillDateModify()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Catalog\EO_StoreBarcode setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Catalog\EO_StoreBarcode resetDateCreate()
     * @method \Bitrix\Catalog\EO_StoreBarcode unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \int getCreatedBy()
     * @method \Bitrix\Catalog\EO_StoreBarcode setCreatedBy(\int|\Bitrix\Main\DB\SqlExpression $createdBy)
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \int remindActualCreatedBy()
     * @method \int requireCreatedBy()
     * @method \Bitrix\Catalog\EO_StoreBarcode resetCreatedBy()
     * @method \Bitrix\Catalog\EO_StoreBarcode unsetCreatedBy()
     * @method \int fillCreatedBy()
     * @method \int getModifiedBy()
     * @method \Bitrix\Catalog\EO_StoreBarcode setModifiedBy(\int|\Bitrix\Main\DB\SqlExpression $modifiedBy)
     * @method bool hasModifiedBy()
     * @method bool isModifiedByFilled()
     * @method bool isModifiedByChanged()
     * @method \int remindActualModifiedBy()
     * @method \int requireModifiedBy()
     * @method \Bitrix\Catalog\EO_StoreBarcode resetModifiedBy()
     * @method \Bitrix\Catalog\EO_StoreBarcode unsetModifiedBy()
     * @method \int fillModifiedBy()
     * @method \Bitrix\Catalog\EO_Product getProduct()
     * @method \Bitrix\Catalog\EO_Product remindActualProduct()
     * @method \Bitrix\Catalog\EO_Product requireProduct()
     * @method \Bitrix\Catalog\EO_StoreBarcode setProduct(\Bitrix\Catalog\EO_Product $object)
     * @method \Bitrix\Catalog\EO_StoreBarcode resetProduct()
     * @method \Bitrix\Catalog\EO_StoreBarcode unsetProduct()
     * @method bool hasProduct()
     * @method bool isProductFilled()
     * @method bool isProductChanged()
     * @method \Bitrix\Catalog\EO_Product fillProduct()
     * @method \Bitrix\Catalog\EO_Store getStore()
     * @method \Bitrix\Catalog\EO_Store remindActualStore()
     * @method \Bitrix\Catalog\EO_Store requireStore()
     * @method \Bitrix\Catalog\EO_StoreBarcode setStore(\Bitrix\Catalog\EO_Store $object)
     * @method \Bitrix\Catalog\EO_StoreBarcode resetStore()
     * @method \Bitrix\Catalog\EO_StoreBarcode unsetStore()
     * @method bool hasStore()
     * @method bool isStoreFilled()
     * @method bool isStoreChanged()
     * @method \Bitrix\Catalog\EO_Store fillStore()
     * @method \Bitrix\Main\EO_User getCreatedByUser()
     * @method \Bitrix\Main\EO_User remindActualCreatedByUser()
     * @method \Bitrix\Main\EO_User requireCreatedByUser()
     * @method \Bitrix\Catalog\EO_StoreBarcode setCreatedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Catalog\EO_StoreBarcode resetCreatedByUser()
     * @method \Bitrix\Catalog\EO_StoreBarcode unsetCreatedByUser()
     * @method bool hasCreatedByUser()
     * @method bool isCreatedByUserFilled()
     * @method bool isCreatedByUserChanged()
     * @method \Bitrix\Main\EO_User fillCreatedByUser()
     * @method \Bitrix\Main\EO_User getModifiedByUser()
     * @method \Bitrix\Main\EO_User remindActualModifiedByUser()
     * @method \Bitrix\Main\EO_User requireModifiedByUser()
     * @method \Bitrix\Catalog\EO_StoreBarcode setModifiedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Catalog\EO_StoreBarcode resetModifiedByUser()
     * @method \Bitrix\Catalog\EO_StoreBarcode unsetModifiedByUser()
     * @method bool hasModifiedByUser()
     * @method bool isModifiedByUserFilled()
     * @method bool isModifiedByUserChanged()
     * @method \Bitrix\Main\EO_User fillModifiedByUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_StoreBarcode set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_StoreBarcode reset($fieldName)
     * @method \Bitrix\Catalog\EO_StoreBarcode unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_StoreBarcode wakeUp($data)
     */
    class EO_StoreBarcode
    {
        /* @var \Bitrix\Catalog\StoreBarcodeTable */
        public static $dataClass = '\\Bitrix\\Catalog\\StoreBarcodeTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_StoreBarcode_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getProductIdList()
     * @method \int[] fillProductId()
     * @method \string[] getBarcodeList()
     * @method \string[] fillBarcode()
     * @method \int[] getStoreIdList()
     * @method \int[] fillStoreId()
     * @method \int[] getOrderIdList()
     * @method \int[] fillOrderId()
     * @method \Bitrix\Main\Type\DateTime[] getDateModifyList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateModify()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \int[] getCreatedByList()
     * @method \int[] fillCreatedBy()
     * @method \int[] getModifiedByList()
     * @method \int[] fillModifiedBy()
     * @method \Bitrix\Catalog\EO_Product[] getProductList()
     * @method \Bitrix\Catalog\EO_StoreBarcode_Collection getProductCollection()
     * @method \Bitrix\Catalog\EO_Product_Collection fillProduct()
     * @method \Bitrix\Catalog\EO_Store[] getStoreList()
     * @method \Bitrix\Catalog\EO_StoreBarcode_Collection getStoreCollection()
     * @method \Bitrix\Catalog\EO_Store_Collection fillStore()
     * @method \Bitrix\Main\EO_User[] getCreatedByUserList()
     * @method \Bitrix\Catalog\EO_StoreBarcode_Collection getCreatedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCreatedByUser()
     * @method \Bitrix\Main\EO_User[] getModifiedByUserList()
     * @method \Bitrix\Catalog\EO_StoreBarcode_Collection getModifiedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillModifiedByUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_StoreBarcode $object)
     * @method bool has(\Bitrix\Catalog\EO_StoreBarcode $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_StoreBarcode getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_StoreBarcode[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_StoreBarcode $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_StoreBarcode_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_StoreBarcode current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_StoreBarcode_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\StoreBarcodeTable */
        public static $dataClass = '\\Bitrix\\Catalog\\StoreBarcodeTable';
    }
    /**
     * @method static EO_StoreBarcode_Query query()
     * @method static EO_StoreBarcode_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_StoreBarcode_Result getById($id)
     * @method static EO_StoreBarcode_Result getList(array $parameters = array())
     * @method static EO_StoreBarcode_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_StoreBarcode createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_StoreBarcode_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_StoreBarcode wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_StoreBarcode_Collection wakeUpCollection($rows)
     */
    class StoreBarcodeTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_StoreBarcode_Result exec()
     * @method \Bitrix\Catalog\EO_StoreBarcode fetchObject()
     * @method \Bitrix\Catalog\EO_StoreBarcode_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_StoreBarcode_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_StoreBarcode fetchObject()
     * @method \Bitrix\Catalog\EO_StoreBarcode_Collection fetchCollection()
     */
    class EO_StoreBarcode_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_StoreBarcode createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_StoreBarcode_Collection createCollection()
     * @method \Bitrix\Catalog\EO_StoreBarcode wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_StoreBarcode_Collection wakeUpCollection($rows)
     */
    class EO_StoreBarcode_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_StoreProduct
     * @see \Bitrix\Catalog\StoreProductTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_StoreProduct setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getStoreId()
     * @method \Bitrix\Catalog\EO_StoreProduct setStoreId(\int|\Bitrix\Main\DB\SqlExpression $storeId)
     * @method bool hasStoreId()
     * @method bool isStoreIdFilled()
     * @method bool isStoreIdChanged()
     * @method \int remindActualStoreId()
     * @method \int requireStoreId()
     * @method \Bitrix\Catalog\EO_StoreProduct resetStoreId()
     * @method \Bitrix\Catalog\EO_StoreProduct unsetStoreId()
     * @method \int fillStoreId()
     * @method \int getProductId()
     * @method \Bitrix\Catalog\EO_StoreProduct setProductId(\int|\Bitrix\Main\DB\SqlExpression $productId)
     * @method bool hasProductId()
     * @method bool isProductIdFilled()
     * @method bool isProductIdChanged()
     * @method \int remindActualProductId()
     * @method \int requireProductId()
     * @method \Bitrix\Catalog\EO_StoreProduct resetProductId()
     * @method \Bitrix\Catalog\EO_StoreProduct unsetProductId()
     * @method \int fillProductId()
     * @method \float getAmount()
     * @method \Bitrix\Catalog\EO_StoreProduct setAmount(\float|\Bitrix\Main\DB\SqlExpression $amount)
     * @method bool hasAmount()
     * @method bool isAmountFilled()
     * @method bool isAmountChanged()
     * @method \float remindActualAmount()
     * @method \float requireAmount()
     * @method \Bitrix\Catalog\EO_StoreProduct resetAmount()
     * @method \Bitrix\Catalog\EO_StoreProduct unsetAmount()
     * @method \float fillAmount()
     * @method \Bitrix\Catalog\EO_Store getStore()
     * @method \Bitrix\Catalog\EO_Store remindActualStore()
     * @method \Bitrix\Catalog\EO_Store requireStore()
     * @method \Bitrix\Catalog\EO_StoreProduct setStore(\Bitrix\Catalog\EO_Store $object)
     * @method \Bitrix\Catalog\EO_StoreProduct resetStore()
     * @method \Bitrix\Catalog\EO_StoreProduct unsetStore()
     * @method bool hasStore()
     * @method bool isStoreFilled()
     * @method bool isStoreChanged()
     * @method \Bitrix\Catalog\EO_Store fillStore()
     * @method \Bitrix\Catalog\EO_Product getProduct()
     * @method \Bitrix\Catalog\EO_Product remindActualProduct()
     * @method \Bitrix\Catalog\EO_Product requireProduct()
     * @method \Bitrix\Catalog\EO_StoreProduct setProduct(\Bitrix\Catalog\EO_Product $object)
     * @method \Bitrix\Catalog\EO_StoreProduct resetProduct()
     * @method \Bitrix\Catalog\EO_StoreProduct unsetProduct()
     * @method bool hasProduct()
     * @method bool isProductFilled()
     * @method bool isProductChanged()
     * @method \Bitrix\Catalog\EO_Product fillProduct()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_StoreProduct set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_StoreProduct reset($fieldName)
     * @method \Bitrix\Catalog\EO_StoreProduct unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_StoreProduct wakeUp($data)
     */
    class EO_StoreProduct
    {
        /* @var \Bitrix\Catalog\StoreProductTable */
        public static $dataClass = '\\Bitrix\\Catalog\\StoreProductTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_StoreProduct_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getStoreIdList()
     * @method \int[] fillStoreId()
     * @method \int[] getProductIdList()
     * @method \int[] fillProductId()
     * @method \float[] getAmountList()
     * @method \float[] fillAmount()
     * @method \Bitrix\Catalog\EO_Store[] getStoreList()
     * @method \Bitrix\Catalog\EO_StoreProduct_Collection getStoreCollection()
     * @method \Bitrix\Catalog\EO_Store_Collection fillStore()
     * @method \Bitrix\Catalog\EO_Product[] getProductList()
     * @method \Bitrix\Catalog\EO_StoreProduct_Collection getProductCollection()
     * @method \Bitrix\Catalog\EO_Product_Collection fillProduct()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_StoreProduct $object)
     * @method bool has(\Bitrix\Catalog\EO_StoreProduct $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_StoreProduct getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_StoreProduct[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_StoreProduct $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_StoreProduct_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_StoreProduct current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_StoreProduct_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\StoreProductTable */
        public static $dataClass = '\\Bitrix\\Catalog\\StoreProductTable';
    }
    /**
     * @method static EO_StoreProduct_Query query()
     * @method static EO_StoreProduct_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_StoreProduct_Result getById($id)
     * @method static EO_StoreProduct_Result getList(array $parameters = array())
     * @method static EO_StoreProduct_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_StoreProduct createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_StoreProduct_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_StoreProduct wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_StoreProduct_Collection wakeUpCollection($rows)
     */
    class StoreProductTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_StoreProduct_Result exec()
     * @method \Bitrix\Catalog\EO_StoreProduct fetchObject()
     * @method \Bitrix\Catalog\EO_StoreProduct_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_StoreProduct_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_StoreProduct fetchObject()
     * @method \Bitrix\Catalog\EO_StoreProduct_Collection fetchCollection()
     */
    class EO_StoreProduct_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_StoreProduct createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_StoreProduct_Collection createCollection()
     * @method \Bitrix\Catalog\EO_StoreProduct wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_StoreProduct_Collection wakeUpCollection($rows)
     */
    class EO_StoreProduct_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Subscribe
     * @see \Bitrix\Catalog\SubscribeTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_Subscribe setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getDateFrom()
     * @method \Bitrix\Catalog\EO_Subscribe setDateFrom(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateFrom)
     * @method bool hasDateFrom()
     * @method bool isDateFromFilled()
     * @method bool isDateFromChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateFrom()
     * @method \Bitrix\Main\Type\DateTime requireDateFrom()
     * @method \Bitrix\Catalog\EO_Subscribe resetDateFrom()
     * @method \Bitrix\Catalog\EO_Subscribe unsetDateFrom()
     * @method \Bitrix\Main\Type\DateTime fillDateFrom()
     * @method \Bitrix\Main\Type\DateTime getDateTo()
     * @method \Bitrix\Catalog\EO_Subscribe setDateTo(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateTo)
     * @method bool hasDateTo()
     * @method bool isDateToFilled()
     * @method bool isDateToChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateTo()
     * @method \Bitrix\Main\Type\DateTime requireDateTo()
     * @method \Bitrix\Catalog\EO_Subscribe resetDateTo()
     * @method \Bitrix\Catalog\EO_Subscribe unsetDateTo()
     * @method \Bitrix\Main\Type\DateTime fillDateTo()
     * @method \string getUserContact()
     * @method \Bitrix\Catalog\EO_Subscribe setUserContact(\string|\Bitrix\Main\DB\SqlExpression $userContact)
     * @method bool hasUserContact()
     * @method bool isUserContactFilled()
     * @method bool isUserContactChanged()
     * @method \string remindActualUserContact()
     * @method \string requireUserContact()
     * @method \Bitrix\Catalog\EO_Subscribe resetUserContact()
     * @method \Bitrix\Catalog\EO_Subscribe unsetUserContact()
     * @method \string fillUserContact()
     * @method \int getContactType()
     * @method \Bitrix\Catalog\EO_Subscribe setContactType(\int|\Bitrix\Main\DB\SqlExpression $contactType)
     * @method bool hasContactType()
     * @method bool isContactTypeFilled()
     * @method bool isContactTypeChanged()
     * @method \int remindActualContactType()
     * @method \int requireContactType()
     * @method \Bitrix\Catalog\EO_Subscribe resetContactType()
     * @method \Bitrix\Catalog\EO_Subscribe unsetContactType()
     * @method \int fillContactType()
     * @method \int getUserId()
     * @method \Bitrix\Catalog\EO_Subscribe setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Catalog\EO_Subscribe resetUserId()
     * @method \Bitrix\Catalog\EO_Subscribe unsetUserId()
     * @method \int fillUserId()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Catalog\EO_Subscribe setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Catalog\EO_Subscribe resetUser()
     * @method \Bitrix\Catalog\EO_Subscribe unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \int getItemId()
     * @method \Bitrix\Catalog\EO_Subscribe setItemId(\int|\Bitrix\Main\DB\SqlExpression $itemId)
     * @method bool hasItemId()
     * @method bool isItemIdFilled()
     * @method bool isItemIdChanged()
     * @method \int remindActualItemId()
     * @method \int requireItemId()
     * @method \Bitrix\Catalog\EO_Subscribe resetItemId()
     * @method \Bitrix\Catalog\EO_Subscribe unsetItemId()
     * @method \int fillItemId()
     * @method \Bitrix\Catalog\EO_Product getProduct()
     * @method \Bitrix\Catalog\EO_Product remindActualProduct()
     * @method \Bitrix\Catalog\EO_Product requireProduct()
     * @method \Bitrix\Catalog\EO_Subscribe setProduct(\Bitrix\Catalog\EO_Product $object)
     * @method \Bitrix\Catalog\EO_Subscribe resetProduct()
     * @method \Bitrix\Catalog\EO_Subscribe unsetProduct()
     * @method bool hasProduct()
     * @method bool isProductFilled()
     * @method bool isProductChanged()
     * @method \Bitrix\Catalog\EO_Product fillProduct()
     * @method \Bitrix\Iblock\EO_Element getIblockElement()
     * @method \Bitrix\Iblock\EO_Element remindActualIblockElement()
     * @method \Bitrix\Iblock\EO_Element requireIblockElement()
     * @method \Bitrix\Catalog\EO_Subscribe setIblockElement(\Bitrix\Iblock\EO_Element $object)
     * @method \Bitrix\Catalog\EO_Subscribe resetIblockElement()
     * @method \Bitrix\Catalog\EO_Subscribe unsetIblockElement()
     * @method bool hasIblockElement()
     * @method bool isIblockElementFilled()
     * @method bool isIblockElementChanged()
     * @method \Bitrix\Iblock\EO_Element fillIblockElement()
     * @method \boolean getNeedSending()
     * @method \Bitrix\Catalog\EO_Subscribe setNeedSending(\boolean|\Bitrix\Main\DB\SqlExpression $needSending)
     * @method bool hasNeedSending()
     * @method bool isNeedSendingFilled()
     * @method bool isNeedSendingChanged()
     * @method \boolean remindActualNeedSending()
     * @method \boolean requireNeedSending()
     * @method \Bitrix\Catalog\EO_Subscribe resetNeedSending()
     * @method \Bitrix\Catalog\EO_Subscribe unsetNeedSending()
     * @method \boolean fillNeedSending()
     * @method \string getSiteId()
     * @method \Bitrix\Catalog\EO_Subscribe setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string remindActualSiteId()
     * @method \string requireSiteId()
     * @method \Bitrix\Catalog\EO_Subscribe resetSiteId()
     * @method \Bitrix\Catalog\EO_Subscribe unsetSiteId()
     * @method \string fillSiteId()
     * @method \int getLandingSiteId()
     * @method \Bitrix\Catalog\EO_Subscribe setLandingSiteId(\int|\Bitrix\Main\DB\SqlExpression $landingSiteId)
     * @method bool hasLandingSiteId()
     * @method bool isLandingSiteIdFilled()
     * @method bool isLandingSiteIdChanged()
     * @method \int remindActualLandingSiteId()
     * @method \int requireLandingSiteId()
     * @method \Bitrix\Catalog\EO_Subscribe resetLandingSiteId()
     * @method \Bitrix\Catalog\EO_Subscribe unsetLandingSiteId()
     * @method \int fillLandingSiteId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_Subscribe set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_Subscribe reset($fieldName)
     * @method \Bitrix\Catalog\EO_Subscribe unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_Subscribe wakeUp($data)
     */
    class EO_Subscribe
    {
        /* @var \Bitrix\Catalog\SubscribeTable */
        public static $dataClass = '\\Bitrix\\Catalog\\SubscribeTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Subscribe_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getDateFromList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateFrom()
     * @method \Bitrix\Main\Type\DateTime[] getDateToList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateTo()
     * @method \string[] getUserContactList()
     * @method \string[] fillUserContact()
     * @method \int[] getContactTypeList()
     * @method \int[] fillContactType()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Catalog\EO_Subscribe_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \int[] getItemIdList()
     * @method \int[] fillItemId()
     * @method \Bitrix\Catalog\EO_Product[] getProductList()
     * @method \Bitrix\Catalog\EO_Subscribe_Collection getProductCollection()
     * @method \Bitrix\Catalog\EO_Product_Collection fillProduct()
     * @method \Bitrix\Iblock\EO_Element[] getIblockElementList()
     * @method \Bitrix\Catalog\EO_Subscribe_Collection getIblockElementCollection()
     * @method \Bitrix\Iblock\EO_Element_Collection fillIblockElement()
     * @method \boolean[] getNeedSendingList()
     * @method \boolean[] fillNeedSending()
     * @method \string[] getSiteIdList()
     * @method \string[] fillSiteId()
     * @method \int[] getLandingSiteIdList()
     * @method \int[] fillLandingSiteId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_Subscribe $object)
     * @method bool has(\Bitrix\Catalog\EO_Subscribe $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Subscribe getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Subscribe[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_Subscribe $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_Subscribe_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_Subscribe current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Subscribe_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\SubscribeTable */
        public static $dataClass = '\\Bitrix\\Catalog\\SubscribeTable';
    }
    /**
     * @method static EO_Subscribe_Query query()
     * @method static EO_Subscribe_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Subscribe_Result getById($id)
     * @method static EO_Subscribe_Result getList(array $parameters = array())
     * @method static EO_Subscribe_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_Subscribe createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_Subscribe_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_Subscribe wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_Subscribe_Collection wakeUpCollection($rows)
     */
    class SubscribeTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Subscribe_Result exec()
     * @method \Bitrix\Catalog\EO_Subscribe fetchObject()
     * @method \Bitrix\Catalog\EO_Subscribe_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Subscribe_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Subscribe fetchObject()
     * @method \Bitrix\Catalog\EO_Subscribe_Collection fetchCollection()
     */
    class EO_Subscribe_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Subscribe createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_Subscribe_Collection createCollection()
     * @method \Bitrix\Catalog\EO_Subscribe wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_Subscribe_Collection wakeUpCollection($rows)
     */
    class EO_Subscribe_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_SubscribeAccess
     * @see \Bitrix\Catalog\SubscribeAccessTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_SubscribeAccess setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getDateFrom()
     * @method \Bitrix\Catalog\EO_SubscribeAccess setDateFrom(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateFrom)
     * @method bool hasDateFrom()
     * @method bool isDateFromFilled()
     * @method bool isDateFromChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateFrom()
     * @method \Bitrix\Main\Type\DateTime requireDateFrom()
     * @method \Bitrix\Catalog\EO_SubscribeAccess resetDateFrom()
     * @method \Bitrix\Catalog\EO_SubscribeAccess unsetDateFrom()
     * @method \Bitrix\Main\Type\DateTime fillDateFrom()
     * @method \string getUserContact()
     * @method \Bitrix\Catalog\EO_SubscribeAccess setUserContact(\string|\Bitrix\Main\DB\SqlExpression $userContact)
     * @method bool hasUserContact()
     * @method bool isUserContactFilled()
     * @method bool isUserContactChanged()
     * @method \string remindActualUserContact()
     * @method \string requireUserContact()
     * @method \Bitrix\Catalog\EO_SubscribeAccess resetUserContact()
     * @method \Bitrix\Catalog\EO_SubscribeAccess unsetUserContact()
     * @method \string fillUserContact()
     * @method \Bitrix\Catalog\EO_Subscribe getSubscribe()
     * @method \Bitrix\Catalog\EO_Subscribe remindActualSubscribe()
     * @method \Bitrix\Catalog\EO_Subscribe requireSubscribe()
     * @method \Bitrix\Catalog\EO_SubscribeAccess setSubscribe(\Bitrix\Catalog\EO_Subscribe $object)
     * @method \Bitrix\Catalog\EO_SubscribeAccess resetSubscribe()
     * @method \Bitrix\Catalog\EO_SubscribeAccess unsetSubscribe()
     * @method bool hasSubscribe()
     * @method bool isSubscribeFilled()
     * @method bool isSubscribeChanged()
     * @method \Bitrix\Catalog\EO_Subscribe fillSubscribe()
     * @method \string getToken()
     * @method \Bitrix\Catalog\EO_SubscribeAccess setToken(\string|\Bitrix\Main\DB\SqlExpression $token)
     * @method bool hasToken()
     * @method bool isTokenFilled()
     * @method bool isTokenChanged()
     * @method \string remindActualToken()
     * @method \string requireToken()
     * @method \Bitrix\Catalog\EO_SubscribeAccess resetToken()
     * @method \Bitrix\Catalog\EO_SubscribeAccess unsetToken()
     * @method \string fillToken()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_SubscribeAccess set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_SubscribeAccess reset($fieldName)
     * @method \Bitrix\Catalog\EO_SubscribeAccess unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_SubscribeAccess wakeUp($data)
     */
    class EO_SubscribeAccess
    {
        /* @var \Bitrix\Catalog\SubscribeAccessTable */
        public static $dataClass = '\\Bitrix\\Catalog\\SubscribeAccessTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_SubscribeAccess_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getDateFromList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateFrom()
     * @method \string[] getUserContactList()
     * @method \string[] fillUserContact()
     * @method \Bitrix\Catalog\EO_Subscribe[] getSubscribeList()
     * @method \Bitrix\Catalog\EO_SubscribeAccess_Collection getSubscribeCollection()
     * @method \Bitrix\Catalog\EO_Subscribe_Collection fillSubscribe()
     * @method \string[] getTokenList()
     * @method \string[] fillToken()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_SubscribeAccess $object)
     * @method bool has(\Bitrix\Catalog\EO_SubscribeAccess $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_SubscribeAccess getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_SubscribeAccess[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_SubscribeAccess $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_SubscribeAccess_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_SubscribeAccess current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_SubscribeAccess_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\SubscribeAccessTable */
        public static $dataClass = '\\Bitrix\\Catalog\\SubscribeAccessTable';
    }
    /**
     * @method static EO_SubscribeAccess_Query query()
     * @method static EO_SubscribeAccess_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_SubscribeAccess_Result getById($id)
     * @method static EO_SubscribeAccess_Result getList(array $parameters = array())
     * @method static EO_SubscribeAccess_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_SubscribeAccess createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_SubscribeAccess_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_SubscribeAccess wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_SubscribeAccess_Collection wakeUpCollection($rows)
     */
    class SubscribeAccessTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_SubscribeAccess_Result exec()
     * @method \Bitrix\Catalog\EO_SubscribeAccess fetchObject()
     * @method \Bitrix\Catalog\EO_SubscribeAccess_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_SubscribeAccess_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_SubscribeAccess fetchObject()
     * @method \Bitrix\Catalog\EO_SubscribeAccess_Collection fetchCollection()
     */
    class EO_SubscribeAccess_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_SubscribeAccess createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_SubscribeAccess_Collection createCollection()
     * @method \Bitrix\Catalog\EO_SubscribeAccess wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_SubscribeAccess_Collection wakeUpCollection($rows)
     */
    class EO_SubscribeAccess_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Vat
     * @see \Bitrix\Catalog\VatTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Catalog\EO_Vat setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Catalog\EO_Vat setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Catalog\EO_Vat resetTimestampX()
     * @method \Bitrix\Catalog\EO_Vat unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \boolean getActive()
     * @method \Bitrix\Catalog\EO_Vat setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Catalog\EO_Vat resetActive()
     * @method \Bitrix\Catalog\EO_Vat unsetActive()
     * @method \boolean fillActive()
     * @method \int getSort()
     * @method \Bitrix\Catalog\EO_Vat setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Catalog\EO_Vat resetSort()
     * @method \Bitrix\Catalog\EO_Vat unsetSort()
     * @method \int fillSort()
     * @method \string getName()
     * @method \Bitrix\Catalog\EO_Vat setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Catalog\EO_Vat resetName()
     * @method \Bitrix\Catalog\EO_Vat unsetName()
     * @method \string fillName()
     * @method \float getRate()
     * @method \Bitrix\Catalog\EO_Vat setRate(\float|\Bitrix\Main\DB\SqlExpression $rate)
     * @method bool hasRate()
     * @method bool isRateFilled()
     * @method bool isRateChanged()
     * @method \float remindActualRate()
     * @method \float requireRate()
     * @method \Bitrix\Catalog\EO_Vat resetRate()
     * @method \Bitrix\Catalog\EO_Vat unsetRate()
     * @method \float fillRate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Catalog\EO_Vat set($fieldName, $value)
     * @method \Bitrix\Catalog\EO_Vat reset($fieldName)
     * @method \Bitrix\Catalog\EO_Vat unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Catalog\EO_Vat wakeUp($data)
     */
    class EO_Vat
    {
        /* @var \Bitrix\Catalog\VatTable */
        public static $dataClass = '\\Bitrix\\Catalog\\VatTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Vat_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \float[] getRateList()
     * @method \float[] fillRate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Catalog\EO_Vat $object)
     * @method bool has(\Bitrix\Catalog\EO_Vat $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Vat getByPrimary($primary)
     * @method \Bitrix\Catalog\EO_Vat[] getAll()
     * @method bool remove(\Bitrix\Catalog\EO_Vat $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Catalog\EO_Vat_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Catalog\EO_Vat current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Vat_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Catalog\VatTable */
        public static $dataClass = '\\Bitrix\\Catalog\\VatTable';
    }
    /**
     * @method static EO_Vat_Query query()
     * @method static EO_Vat_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Vat_Result getById($id)
     * @method static EO_Vat_Result getList(array $parameters = array())
     * @method static EO_Vat_Entity getEntity()
     * @method static \Bitrix\Catalog\EO_Vat createObject($setDefaultValues = true)
     * @method static \Bitrix\Catalog\EO_Vat_Collection createCollection()
     * @method static \Bitrix\Catalog\EO_Vat wakeUpObject($row)
     * @method static \Bitrix\Catalog\EO_Vat_Collection wakeUpCollection($rows)
     */
    class VatTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Vat_Result exec()
     * @method \Bitrix\Catalog\EO_Vat fetchObject()
     * @method \Bitrix\Catalog\EO_Vat_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Vat_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Vat fetchObject()
     * @method \Bitrix\Catalog\EO_Vat_Collection fetchCollection()
     */
    class EO_Vat_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Catalog\EO_Vat createObject($setDefaultValues = true)
     * @method \Bitrix\Catalog\EO_Vat_Collection createCollection()
     * @method \Bitrix\Catalog\EO_Vat wakeUpObject($row)
     * @method \Bitrix\Catalog\EO_Vat_Collection wakeUpCollection($rows)
     */
    class EO_Vat_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace {
    class XMLNode
    {
        var $childs;
        var $parent;
        var $value;
        var $attributes;
        var $name;
        var $r;
        function XMLNode(&$parent, $attributes, $name)
        {
        }
        function GetAttribute($name)
        {
        }
        function XMLSetValue($new_val)
        {
        }
        function &select_nodes($str_node)
        {
        }
    }
    class XMLParser
    {
        var $parser;
        var $cur;
        var $xml;
        function Load($file)
        {
        }
        function LoadString(&$text)
        {
        }
        function unquote($str)
        {
        }
        function parse(&$data)
        {
        }
        function startElement($name, $attrs)
        {
        }
        function endElement($name)
        {
        }
        function cdata($parser, $cdata)
        {
        }
        function select_nodes_attrib($str_node)
        {
        }
        function select_nodes($str_node)
        {
        }
    }
    class CCatalog extends \CAllCatalog
    {
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CCatalogStoreDocsBarcode extends \CCatalogStoreDocsBarcodeAll
    {
        public static function add($arFields)
        {
        }
        static function getList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CCatalogStoreBarCode extends \CAllCatalogStoreBarCode
    {
        public static function add($arFields)
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public static function getList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CCatalogExport extends \CAllCatalogExport
    {
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
    }
    class CCatalogDiscount extends \CAllCatalogDiscount
    {
        public function _Add(&$arFields)
        {
        }
        public function _Update($ID, &$arFields)
        {
        }
        public function Delete($ID)
        {
        }
        /**
         * @param int $ID
         * @return array|bool
         */
        public static function GetByID($ID)
        {
        }
        /**
         * @param mixed $val
         * @param mixed $key
         * @param string $operation
         * @param string $negative
         * @param string $field
         * @param array $arField
         * @param array $arFilter
         * @return bool|string
         * @noinspection PhpUnusedParameterInspection
         */
        public static function PrepareSection4Where($val, $key, $operation, $negative, $field, $arField, $arFilter)
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public function GetDiscountGroupsList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public function GetDiscountCatsList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        /**
         * @deprecated deprecated since catalog 12.0.0
         *
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public function GetDiscountProductsList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        /**
         * @deprecated deprecated since catalog 12.0.0
         *
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public function GetDiscountSectionsList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        /**
         * @deprecated deprecated since catalog 12.0.0
         *
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array$arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public function GetDiscountIBlocksList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        protected function __GetDiscountEntityList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        /**
         * @deprecated deprecated since catalog 12.0.0
         *
         * @return void
         *
         * @noinspection PhpDeprecationInspection
         */
        public function SaveFilterOptions()
        {
        }
        /**
         * @deprecated deprecated since catalog 14.5.6
         *
         * @param array $arParams
         * @return void
         */
        protected function __SaveFilterForEntity($arParams)
        {
        }
        protected function __UpdateSubdiscount($intDiscountID, &$arConditions, $active = '')
        {
        }
        protected function __GetDiscountID($arFilter)
        {
        }
        protected function __UpdateOldEntities($ID, &$arFields, $boolUpdate)
        {
        }
        protected function __FillArrays($intDiscountID, &$arFields, $strEntityID)
        {
        }
        protected function updateDiscountHandlers($discountID, $handlers, $update)
        {
        }
        protected function getDiscountHandlers($discountList)
        {
        }
    }
    class CCatalogProduct extends \CAllCatalogProduct
    {
        /**
         * @deprecated deprecated since catalog 17.6.0
         * @see Catalog\Model\Product::getList or Catalog\ProductTable::getList
         *
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        /**
         * @deprecated deprecated since catalog 8.5.1
         * @see CCatalogProduct::GetList()
         *
         * @param array $arOrder
         * @param array $arFilter
         *
         * @return false
         *
         */
        public static function GetListEx($arOrder = array("SORT" => "ASC"), $arFilter = array())
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.3
         * @see CCatalogProduct::GetVATDataByID
         *
         * @param int $PRODUCT_ID
         * @return false|CDBResult
         */
        public static function GetVATInfo($PRODUCT_ID)
        {
        }
        /**
         * @param array $list
         *
         * @return array
         */
        public static function GetVATDataByIDList(array $list)
        {
        }
        /**
         * @param int $id
         *
         * @return false|array
         */
        public static function GetVATDataByID($id)
        {
        }
        /**
         * @param array $list
         *
         * @return array
         */
        private static function loadVatInfoFromDB(array $list)
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.0
         * @see Catalog\Model\Product::update
         * @param int $intID
         * @param int $intTypeID
         * @return bool
         */
        public static function SetProductType($intID, $intTypeID)
        {
        }
    }
    class CCatalogDiscountSave extends \CAllCatalogDiscountSave
    {
        public static function Add($arFields, $boolCalc = \false)
        {
        }
        public static function Update($intID, $arFields, $boolCalc = \false)
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function GetRangeByDiscount($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function GetGroupByDiscount($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function GetUserInfoByDiscount($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        protected static function __GetDiscountIDByGroup($arUserGroup = array())
        {
        }
        protected static function __GetUserInfoByDiscount($arParams, $arSettings = array())
        {
        }
        protected static function __UpdateUserInfoByDiscount($arParams, $arSettings = array())
        {
        }
    }
    class CCatalogContractor extends \CAllCatalogContractor
    {
        /** Add new store in table b_catalog_contractor,
         * @static
         * @param $arFields
         * @return bool|int
         */
        public static function add($arFields)
        {
        }
        public static function getList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CCatalogStore extends \CAllCatalogStore
    {
        /** Add new store in table b_catalog_store,
         * @static
         * @param $arFields
         * @return bool|int
         */
        public static function Add($arFields)
        {
        }
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CCatalogProductSet extends \CCatalogProductSetAll
    {
        public static function add($arFields)
        {
        }
        public static function update($intID, $arFields)
        {
        }
        public static function delete($intID)
        {
        }
        public static function getList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelect = array())
        {
        }
        /**
         * @param int $intProductID
         * @param int $intSetType
         * @return bool
         */
        public static function isProductInSet($intProductID, $intSetType = 0)
        {
        }
        /**
         * @param int|array $arProductID
         * @param int $intSetType
         * @return bool
         */
        public static function isProductHaveSet($arProductID, $intSetType = 0)
        {
        }
        /**
         * @param int $intProductID
         * @param int $intSetType
         * @return array|false
         */
        public static function getAllSetsByProduct($intProductID, $intSetType)
        {
        }
        /**
         * @param int $intID
         * @return array|false
         */
        public static function getSetByID($intID)
        {
        }
        /**
         * @param int $product
         * @return void
         */
        public static function recalculateSetsByProduct($product)
        {
        }
        protected static function getSetID($intID)
        {
        }
        protected static function deleteFromSet($intID, $arEx)
        {
        }
        protected static function calculateSetParams($productID, $items)
        {
        }
        protected static function createSetItemsParamsFromUpdate($setID, $getProductID = \false)
        {
        }
    }
    class CCatalogGroup extends \CAllCatalogGroup
    {
        public static function GetByID($ID, $lang = \LANGUAGE_ID)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public static function GetListEx($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function GetGroupsList($arFilter = array())
        {
        }
        public static function GetLangList($arFilter = array())
        {
        }
    }
    class CCatalogDiscountCoupon extends \CAllCatalogDiscountCoupon
    {
        public static function Add($arFields, $bAffectDataFile = \true)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function Delete($ID, $bAffectDataFile = \true)
        {
        }
        public static function GetByID($ID)
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.4
         * @see \Bitrix\Sale\DiscountCouponsManager
         */
        public static function CouponApply($intUserID, $strCoupon)
        {
        }
        /**
         * @deprecated deprecated since catalog 12.5.6
         * @see CCatalogDiscountCoupon::CouponOneOrderDisable()
         */
        public static function __CouponOneOrderDisable($arCoupons)
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.4
         * @see \Bitrix\Sale\DiscountCouponsManager::saveApplied
         */
        public static function CouponOneOrderDisable($intOrderID = 0)
        {
        }
        /**
         * @deprecated deprecated since catalog 15.0.4
         * @see \Bitrix\Sale\DiscountCouponsManager::isExist
         */
        public static function IsExistCoupon($strCoupon)
        {
        }
    }
    class CCatalogImport extends \CAllCatalogImport
    {
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
    }
    class CExtra extends \CAllExtra
    {
        public static function Add($arFields)
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CCatalogLoad extends \CAllCatalogLoad
    {
    }
    class CCatalogVat extends \CAllCatalogVat
    {
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function GetListEx($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CCatalogDocs extends \CAllCatalogDocs
    {
        /**
         * @static
         * @param $arFields
         * @return bool|int
         */
        public static function add($arFields)
        {
        }
        public static function getList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function synchronizeStockQuantity($storeId, $iblockId = 0)
        {
        }
    }
    class CCatalogProductGroups extends \CAllCatalogProductGroups
    {
        public static function Add($arFields)
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CPrice extends \CAllPrice
    {
        /**
         * @deprecated deprecated since catalog 17.6.0
         * @see \Bitrix\Catalog\Model\Price::getList
         *
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        /**
         * @deprecated deprecated since catalog 17.6.0
         * @see \Bitrix\Catalog\Model\Price::getList
         *
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public static function GetListEx($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CCatalogDiscountConvertTmp
    {
        public static $strTableName = 'b_catalog_dsc_tmp';
        public static $strMainTableName = 'b_catalog_discount';
        public static $boolError = \false;
        public static $arErrors = \false;
        public static function CreateTable()
        {
        }
        public static function DropTable()
        {
        }
        public static function IsExistID($intID)
        {
        }
        public static function GetLastID()
        {
        }
        public static function SetID($intID)
        {
        }
        public static function GetNeedConvert($intMinProduct)
        {
        }
    }
    class CCatalogMeasureRatio extends \CCatalogMeasureRatioAll
    {
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public static function getList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CCatalogMeasure extends \CCatalogMeasureAll
    {
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return false|CCatalogMeasureResult
         */
        public static function getList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CCatalogStoreDocsElement extends \CCatalogStoreDocsElementAll
    {
        public static function add($arFields)
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public static function getList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CCatalogStoreProduct extends \CCatalogStoreProductAll
    {
        public static function Add($arFields)
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return bool|CDBResult
         */
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
}
namespace Bitrix\Catalog\Compatible {
    final class EventCompatibility
    {
        /* Events old kernel, which will be called in a new kernel */
        /* class \CProduct */
        const ENTITY_PRODUCT = 'Product';
        const EVENT_ON_BEFORE_PRODUCT_ADD = 'OnBeforeProductAdd';
        const EVENT_ON_PRODUCT_ADD = 'OnProductAdd';
        const EVENT_ON_BEFORE_PRODUCT_UPDATE = 'OnBeforeProductUpdate';
        const EVENT_ON_PRODUCT_UPDATE = 'OnProductUpdate';
        /* class \CPrice */
        const ENTITY_PRICE = 'Price';
        const EVENT_ON_BEFORE_PRICE_ADD = 'OnBeforePriceAdd';
        const EVENT_ON_PRICE_ADD = 'OnPriceAdd';
        const EVENT_ON_BEFORE_PRICE_UPDATE = 'OnBeforePriceUpdate';
        const EVENT_ON_PRICE_UPDATE = 'OnPriceUpdate';
        const EVENT_ON_BEFORE_PRICE_DELETE = 'OnBeforePriceDelete';
        const EVENT_ON_PRICE_DELETE = 'OnPriceDelete';
        private static $allowEvents = 0;
        private static $handlerList = array();
        private static $whiteList = array(self::ENTITY_PRODUCT => array('ID' => true, 'QUANTITY' => true, 'QUANTITY_TRACE' => true, 'WEIGHT' => true, 'PRICE_TYPE' => true, 'RECUR_SCHEME_LENGTH' => true, 'RECUR_SCHEME_TYPE' => true, 'TRIAL_PRICE_ID' => true, 'WITHOUT_ORDER' => true, 'SELECT_BEST_PRICE' => true, 'VAT_ID' => true, 'VAT_INCLUDED' => true, 'CAN_BUY_ZERO' => true, 'NEGATIVE_AMOUNT_TRACE' => true, 'TMP_ID' => true, 'PURCHASING_PRICE' => true, 'PURCHASING_CURRENCY' => true, 'BARCODE_MULTI' => true, 'QUANTITY_RESERVED' => true, 'SUBSCRIBE' => true, 'WIDTH' => true, 'LENGTH' => true, 'HEIGHT' => true, 'MEASURE' => true, 'TYPE' => true, 'AVAILABLE' => true, 'BUNDLE' => true, 'PRICE_MODE' => true), self::ENTITY_PRICE => array('PRODUCT_ID' => true, 'CATALOG_GROUP_ID' => true, 'PRICE' => true, 'CURRENCY' => true, 'QUANTITY_FROM' => true, 'QUANTITY_TO' => true, 'PRICE_SCALE' => true, 'EXTRA_ID' => true, 'TMP_ID' => true, 'MEASURE_RATIO_ID' => true));
        public static function execAgent()
        {
        }
        public static function registerEvents()
        {
        }
        public static function unRegisterEvents()
        {
        }
        public static function handlerProductOnBeforeAdd(\Bitrix\Catalog\Model\Event $event)
        {
        }
        public static function handlerProductOnAfterAdd(\Bitrix\Catalog\Model\Event $event)
        {
        }
        public static function handlerProductOnBeforeUpdate(\Bitrix\Catalog\Model\Event $event)
        {
        }
        public static function handlerProductOnAfterUpdate(\Bitrix\Catalog\Model\Event $event)
        {
        }
        public static function handlerPriceOnBeforeAdd(\Bitrix\Catalog\Model\Event $event)
        {
        }
        public static function handlerPriceOnAfterAdd(\Bitrix\Catalog\Model\Event $event)
        {
        }
        public static function handlerPriceOnBeforeUpdate(\Bitrix\Catalog\Model\Event $event)
        {
        }
        public static function handlerPriceOnAfterUpdate(\Bitrix\Catalog\Model\Event $event)
        {
        }
        public static function handlerPriceOnBeforeDelete(\Bitrix\Catalog\Model\Event $event)
        {
        }
        public static function handlerPriceOnAfterDelete(\Bitrix\Catalog\Model\Event $event)
        {
        }
        /**
         * Enable old kernel events.
         *
         * @return void
         */
        private static function enableEvents()
        {
        }
        /**
         * Disable old kernel events.
         *
         * @return void
         */
        private static function disableEvents()
        {
        }
        /**
         * Return is allow old kernel events.
         *
         * @return bool
         */
        private static function allowedEvents()
        {
        }
        private static function getHandlerList($module, $event)
        {
        }
        private static function handlerOnBeforeAdd(\Bitrix\Catalog\Model\Event $event, $entity, $eventName)
        {
        }
        private static function handlerOnAfterModify(\Bitrix\Catalog\Model\Event $event, $eventName)
        {
        }
        private static function handlerOnBeforeUpdate(\Bitrix\Catalog\Model\Event $event, $entity, $eventName)
        {
        }
        private static function handlerOnBeforeDelete(\Bitrix\Catalog\Model\Event $event, $eventName)
        {
        }
        private static function handlerOnAfterDelete(\Bitrix\Catalog\Model\Event $event, $eventName)
        {
        }
        private static function handlerPriceOnAfterModify(\Bitrix\Catalog\Model\Event $event, $eventName)
        {
        }
        private static function setHandlerError(\Bitrix\Catalog\Model\EventResult $result, $eventName)
        {
        }
        private static function fillResultData(\Bitrix\Catalog\Model\EventResult $result, $entity, array $fields, array $externalFields, array $handlerFields)
        {
        }
    }
}
namespace Bitrix\Catalog\Update {
    /**
     * Class FilterOption
     * The class is designed to convert the settings of the old administrative filter into a new one.
     * @package Bitrix\Main\Dev\Converter
     */
    class FilterOption extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "catalog";
        protected $deleteFile = true;
        protected $limit = 100;
        /**
         * The method records the necessary data for conversion into an option.
         *
         * @param string $filterId Filter id.
         * @param string $tableId Grid id.
         * @param array $ratioFields Fields of the old and new filter.
         *    array(
         *      "find_name" => "NAME",
         *      "find_lang" => "LID",
         *      ...
         *    )
         *
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function setFilterToConvert($filterId, $tableId, array $ratioFields)
        {
        }
        public function execute(array &$option)
        {
        }
        protected function convertOldFieldsToNewFields(array $oldFields, array $ratioFields)
        {
        }
        protected function getNewDateType($oldDateType, $oldDateValue)
        {
        }
    }
    /**
     * Class AdminGridOption
     * The class is designed to convert the settings of the old administrative grid into a new one.
     *
     * @package Bitrix\Catalog\Update
     */
    class AdminGridOption extends \Bitrix\Main\Update\AdminGridOption
    {
        protected static $moduleId = "catalog";
    }
    /**
     * Class GridOption
     * The class is designed to convert the settings of the old administrative grid into a new one.
     * @package Bitrix\Main\Dev\Converter
     */
    class GridOption extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "catalog";
        protected $deleteFile = true;
        protected $limit = 100;
        /**
         * The method records the necessary data for conversion into an option.
         * @param string $tableId Grid id.
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function setGridToConvert($tableId)
        {
        }
        public function execute(array &$option)
        {
        }
    }
    /**
     * Class AdminFilterOption
     * The class is designed to convert the settings of the old administrative filter into a new one.
     *
     * @package Bitrix\Catalog\Update
     */
    class AdminFilterOption extends \Bitrix\Main\Update\AdminFilterOption
    {
        protected static $moduleId = "catalog";
    }
}
namespace Bitrix\Catalog\RestView {
    final class Catalog extends \Bitrix\Rest\Integration\View\Base
    {
        public function getFields()
        {
        }
        public function internalizeArguments($name, $arguments)
        {
        }
    }
    final class Product extends \Bitrix\Rest\Integration\View\Base
    {
        /**
         * @return array
         * return fields all type product
         */
        public function getFields()
        {
        }
        protected function prepareFieldAttributs($info, $attributs)
        {
        }
        private function getFieldsIBlockElement()
        {
        }
        private function getFieldsIBlockPropertyValuesByFilter($filter)
        {
        }
        private function getFieldsCatalogProductCommonFields()
        {
        }
        private function getFieldsCatalogProductByFilter($filter)
        {
        }
        private function getFieldsCatalogProduct()
        {
        }
        private function getFieldsCatalogProductByType($id)
        {
        }
        private function getFieldsCatalogProductByTypeProduct()
        {
        }
        private function getFieldsCatalogProductByTypeSKU()
        {
        }
        private function getFieldsCatalogProductByTypeOffer()
        {
        }
        private function getFieldsCatalogProductByTypeSet()
        {
        }
        public function getFieldsByFilter(array $filter)
        {
        }
        private static function getProductTypes($catalogType)
        {
        }
        private static function getUserType()
        {
        }
        public function internalizeFieldsList($arguments, $fieldsInfo = [])
        {
        }
        public function internalizeFieldsAdd($fields, $fieldsInfo = [])
        {
        }
        public function internalizeFieldsUpdate($fields, $fieldsInfo = [])
        {
        }
        protected function internalizeDateValue($value)
        {
        }
        protected function internalizeDateTimeValue($value)
        {
        }
        protected function internalizeDateProductPropertyValue($value)
        {
        }
        protected function internalizeDateTimeProductPropertyValue($value)
        {
        }
        protected function internalizeExtendedTypeValue($value, $info)
        {
        }
        public function internalizeArguments($name, $arguments)
        {
        }
        public function externalizeFieldsGet($fields, $fieldsInfo = [])
        {
        }
        public function externalizeListFields($list, $fieldsInfo = [])
        {
        }
        public function externalizeResult($name, $fields)
        {
        }
        public function convertKeysToSnakeCaseArguments($name, $arguments)
        {
        }
        public function checkFieldsList($arguments)
        {
        }
        public function checkArguments($name, $arguments)
        {
        }
        protected function checkFieldsDownload($fields)
        {
        }
        protected function getActionUriToDownload()
        {
        }
        protected function externalizeFileValue($name, $value, $fields)
        {
        }
        protected function externalizeExtendedTypeValue($name, $value, $fields, $fieldsInfo)
        {
        }
    }
    final class Store extends \Bitrix\Rest\Integration\View\Base
    {
        public function getFields()
        {
        }
    }
    final class Enum extends \Bitrix\Rest\Integration\View\Base
    {
        public function getFields()
        {
        }
        public function externalizeResult($name, $fields)
        {
        }
        public function internalizeArguments($name, $arguments)
        {
        }
    }
    final class RoundingRule extends \Bitrix\Rest\Integration\View\Base
    {
        public function getFields()
        {
        }
    }
    final class Extra extends \Bitrix\Rest\Integration\View\Base
    {
        public function getFields()
        {
        }
    }
    final class Vat extends \Bitrix\Rest\Integration\View\Base
    {
        public function getFields()
        {
        }
    }
    final class Section extends \Bitrix\Rest\Integration\View\Base
    {
        public function getFields()
        {
        }
        public function checkFieldsList($arguments)
        {
        }
    }
    final class Price extends \Bitrix\Rest\Integration\View\Base
    {
        public function getFields()
        {
        }
        public function convertKeysToSnakeCaseArguments($name, $arguments)
        {
        }
        public function internalizeArguments($name, $arguments)
        {
        }
        public function internalizeFieldsModify($fields, $fieldsInfo = [])
        {
        }
        public function checkArguments($name, $arguments)
        {
        }
        public function checkFieldsModify($fields)
        {
        }
        public function checkRequiredFieldsModify($fields)
        {
        }
        public function externalizeResult($name, $fields)
        {
        }
        public function externalizeFieldsModify($fields)
        {
        }
        private function isNewItem($fields)
        {
        }
    }
    final class Ratio extends \Bitrix\Rest\Integration\View\Base
    {
        public function getFields()
        {
        }
    }
    final class Measure extends \Bitrix\Rest\Integration\View\Base
    {
        public function getFields()
        {
        }
    }
    final class PriceType extends \Bitrix\Rest\Integration\View\Base
    {
        public function getFields()
        {
        }
    }
}
namespace Bitrix\Catalog\Config {
    /**
     * Class Feature
     * Provides unified methods for check B24 tariff limits and Bitrix edition limits.
     *
     * @package Bitrix\Catalog\Config
     */
    final class Feature
    {
        private const PRODUCT_SETS = 'catalog_product_sets';
        private const MULTI_PRICE_TYPES = 'catalog_multi_price_types';
        private const CUMULATIVE_DISCOUNTS = 'catalog_cumulative_discounts';
        private const MULTI_WARENHOUSES = 'catalog_multi_warenhouses';
        private const EXTENDED_PRICES = 'catalog_price_quantity_ranges';
        private const INVENTORY_MANAGEMENT = 'catalog_inventory_management';
        private const COMMON_PRODUCT_PROCESSING = 'catalog_common_product_processing';
        private const PRODUCT_LIMIT = 'catalog_product_limit';
        /** @var null|bool sign of the presence of Bitrix24 */
        private static $bitrix24Included = null;
        /** @var array features hit cache */
        private static $featureList = [];
        /** @var array map of compliance with tariff and edition restrictions */
        private static $tranferList = [self::PRODUCT_SETS => 'CatCompleteSet', self::MULTI_PRICE_TYPES => 'CatMultiPrice', self::CUMULATIVE_DISCOUNTS => 'CatDiscountSave', self::MULTI_WARENHOUSES => 'CatMultiStore'];
        /** @var array edition restrictions */
        private static $retailExist = [self::PRODUCT_SETS => true, self::MULTI_PRICE_TYPES => true, self::CUMULATIVE_DISCOUNTS => true, self::MULTI_WARENHOUSES => true];
        /** @var array bitrix24 restrictions */
        private static $bitrix24exist = [self::PRODUCT_SETS => true, self::EXTENDED_PRICES => true, self::MULTI_PRICE_TYPES => true, self::MULTI_WARENHOUSES => true, self::INVENTORY_MANAGEMENT => true, self::COMMON_PRODUCT_PROCESSING => true];
        /** @var array bitrix24 articles about tarif features */
        private static $bitrix24helpCodes = [self::PRODUCT_SETS => 'limit_shop_bundles', self::MULTI_PRICE_TYPES => 'limit_shop_variable_prices', self::EXTENDED_PRICES => 'limit_shop_variable_prices', self::MULTI_WARENHOUSES => 'limit_shop_stocks', self::INVENTORY_MANAGEMENT => 'limit_shop_inventory_management', self::PRODUCT_LIMIT => 'limit_shop_products'];
        private static $helpCodesCounter = 0;
        private static $initUi = false;
        /**
         * Returns true if product sets are allowed.
         *
         * @return bool
         */
        public static function isProductSetsEnabled() : bool
        {
        }
        /**
         * Returns true if price quantity ranges are allowed.
         *
         * @return bool
         */
        public static function isPriceQuantityRangesEnabled() : bool
        {
        }
        /**
         * Returns true if multi types of prices are allowed.
         *
         * @return bool
         */
        public static function isMultiPriceTypesEnabled() : bool
        {
        }
        /**
         * Return true if cumulative discounts are allowed.
         *
         * @return bool
         */
        public static function isCumulativeDiscountsEnabled() : bool
        {
        }
        /**
         * Returns true if multiple warehouses are allowed.
         *
         * @return bool
         */
        public static function isMultiStoresEnabled() : bool
        {
        }
        /**
         * Returns true if warehouse inventory management is allowed.
         *
         * @return bool
         */
        public static function isInventoryManagementEnabled() : bool
        {
        }
        /**
         * Returns true if common product processing is enabled.
         *
         * @return bool
         */
        public static function isCommonProductProcessingEnabled() : bool
        {
        }
        /**
         * Returns url description for help article about sets and bunles.
         *
         * @return array|null
         */
        public static function getProductSetsHelpLink() : ?array
        {
        }
        /**
         * Returns url description for help article about price quantity ranges.
         *
         * @return array|null
         */
        public static function getPriceQuantityRangesHelpLink() : ?array
        {
        }
        /**
         * Returns url description for help article about multi price types.
         *
         * @return array|null
         */
        public static function getMultiPriceTypesHelpLink() : ?array
        {
        }
        /**
         * Returns url description for help article about multi stores.
         *
         * @return array|null
         */
        public static function getMultiStoresHelpLink() : ?array
        {
        }
        /**
         * Returns url description for help article about inventory managment.
         *
         * @return array|null
         */
        public static function getInventoryManagementHelpLink() : ?array
        {
        }
        /**
         * Returns url description for help article about product limits.
         *
         * @return array|null
         */
        public static function getProductLimitHelpLink() : ?array
        {
        }
        /**
         * Init ui scope for show help links on internal pages.
         *
         * @return void
         */
        public static function initUiHelpScope() : void
        {
        }
        /**
         * Check restriction.
         *
         * @param string $featureId		Restriction name.
         * @return bool
         */
        private static function isFeatureEnabled(string $featureId) : bool
        {
        }
        /**
         * Returns javascript link to bitrx24 feature help article.
         *
         * @param string $featureId
         * @return array|null
         */
        private static function getHelpLink(string $featureId) : ?array
        {
        }
        /**
         * Return true if Bitrix24 is exists.
         *
         * @return bool
         * @throws \Bitrix\Main\LoaderException
         */
        private static function isBitrix24() : bool
        {
        }
    }
    /**
     * Class State
     * Provides methods for checking product restrictions and obtaining current settings based on constraints.
     *
     * @package Bitrix\Catalog\Config
     */
    final class State
    {
        /** @var array */
        private static $landingSections = null;
        /** @var array */
        private static $iblockSections = null;
        /** @var array */
        private static $fullIblockSections = null;
        /** @var int */
        private static $elementCount = null;
        /** @var array */
        private static $iblockList = [];
        /**
         * Returns true if warehouse inventory management is allowed and enabled.
         *
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function isUsedInventoryManagement()
        {
        }
        /**
         * Returns true if the limit on the number of price types is exceeded.
         *
         * @return bool
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function isExceededPriceTypeLimit()
        {
        }
        /**
         * Returns true if it is allowed to add a new price type.
         *
         * @return bool
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function isAllowedNewPriceType()
        {
        }
        /**
         * Returns true if the limit on the number of warehouses is exceeded.
         *
         * @return bool
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function isExceededStoreLimit()
        {
        }
        /**
         * Returns true if it is allowed to add a new warehouse.
         *
         * @return bool
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function isAllowedNewStore()
        {
        }
        /**
         * Returns information about exceeding the number of goods in the landing for the information block.
         *
         * @param int $iblockId		Iblock Id.
         * @return array|false
         */
        public static function getExceedingProductLimit($iblockId)
        {
        }
        /**
         * OnIBlockElementAdd event handler. Do not use directly.
         *
         * @param array &$fields
         * @return bool
         */
        public static function handlerBeforeIblockElementAdd(array &$fields)
        {
        }
        /**
         * OnAfterIBlockElementAdd event handler. Do not use directly.
         *
         * @param array &$fields
         * @return void
         */
        public static function handlerAfterIblockElementAdd(array &$fields)
        {
        }
        /**
         * OnBeforeIBlockElementUpdate event handler. Do not use directly.
         *
         * @param array &$fields
         * @return bool
         */
        public static function handlerBeforeIblockElementUpdate(array &$fields)
        {
        }
        /**
         * OnAfterIBlockElementUpdate event handler. Do not use directly.
         *
         * @param array &$fields
         * @return void
         * @throws Main\LoaderException
         */
        public static function handlerAfterIblockElementUpdate(array &$fields)
        {
        }
        /**
         * OnAfterIBlockElementDelete event handler. Do not use directly.
         *
         * @param array $fields
         * @return void
         */
        public static function handlerAfterIblockElementDelete(array $fields)
        {
        }
        /**
         * OnAfterIBlockSectionAdd event handler. Do not use directly.
         *
         * @param array &$fields
         * @return void
         */
        public static function handlerAfterIblockSectionAdd(array &$fields)
        {
        }
        /**
         * OnBeforeIBlockSectionUpdate event handler. Do not use directly.
         *
         * @param array &$fields
         * @return bool
         */
        public static function handlerBeforeIblockSectionUpdate(array &$fields)
        {
        }
        /**
         * OnAfterIBlockSectionUpdate event handler. Do not use directly.
         *
         * @param array &$fields
         * @return void
         */
        public static function handlerAfterIblockSectionUpdate(array &$fields)
        {
        }
        /**
         * OnAfterIBlockSectionDelete event handler. Do not use directly.
         *
         * @param array $fields
         * @return void
         */
        public static function handlerAfterIblockSectionDelete(array $fields)
        {
        }
        /**
         * @param int $iblockId
         * @return int
         */
        private static function getElementCount($iblockId)
        {
        }
        /**
         * @param int $iblockId
         * @return array
         */
        private static function getIblockSections($iblockId)
        {
        }
        /**
         * @param int $iblockId
         * @return void
         */
        private static function loadIblockSections($iblockId)
        {
        }
        /**
         * Returns the sections Id used in landings.
         *
         * @return array
         */
        private static function getLandingSections()
        {
        }
        /**
         * @return int
         * @throws Main\LoaderException
         */
        private static function getCrmCatalogId()
        {
        }
        /**
         * @param array $fields
         * @return bool
         * @throws Main\LoaderException
         */
        private static function checkIblockId(array $fields)
        {
        }
        /**
         * Returns products limit.
         *
         * @param int $iblockId
         * @return array|false
         */
        private static function checkIblockLimit($iblockId)
        {
        }
        /**
         * @param $iblockId
         * @return array
         * 	keys are case sensitive:
         *		<ul>
         *		<li>int COUNT
         * 		<li>int LIMIT
         *		</ul>
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        private static function getIblockLimit($iblockId)
        {
        }
        /**
         * Send error.
         *
         * @param array $limit
         * @param string $messageId
         * @return void
         */
        private static function setProductLimitError(array $limit, $messageId = '')
        {
        }
        /**
         * Returns true if product card slider option is checked.
         *
         * @return bool
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function isProductCardSliderEnabled() : bool
        {
        }
    }
    class EditionLimit
    {
        public static function isExceededPriceTypeLimit()
        {
        }
        public static function isExceededStoreLimit()
        {
        }
    }
}
namespace Bitrix\Catalog\Component {
    abstract class BaseForm
    {
        public const GRID_FIELD_PREFIX = 'SKU_GRID_';
        public const PROPERTY_FIELD_PREFIX = 'PROPERTY_';
        public const PRICE_FIELD_PREFIX = 'CATALOG_GROUP_';
        public const CURRENCY_FIELD_PREFIX = 'CATALOG_CURRENCY_';
        public const MORE_PHOTO = 'MORE_PHOTO';
        private const USER_TYPE_METHOD = 'GetUIEntityEditorProperty';
        private const USER_TYPE_GET_VIEW_METHOD = 'GetUIEntityEditorPropertyViewHtml';
        private const USER_TYPE_GET_EDIT_METHOD = 'GetUIEntityEditorPropertyEditHtml';
        private const USER_TYPE_FORMAT_VALUE_METHOD = 'getFormattedValue';
        /** @var \Bitrix\Catalog\v2\BaseIblockElementEntity */
        protected $entity;
        /** @var array */
        protected $params;
        /** @var array|null */
        protected $descriptions;
        /** @var array|null */
        protected $propertyDescriptions;
        /** @var null|Crm\Product\Url\ShopBuilder */
        protected $urlBuilder = null;
        public function __construct(\Bitrix\Catalog\v2\BaseIblockElementEntity $entity, array $params = [])
        {
        }
        public function getControllers() : array
        {
        }
        protected function prepareFieldName(string $name) : string
        {
        }
        public function getValues(bool $allowDefaultValues = true) : array
        {
        }
        public function getVariationGridId() : string
        {
        }
        public function getCardSettings() : array
        {
        }
        public function getCardConfigId() : string
        {
        }
        public function getCardUserConfig() : array
        {
        }
        public function saveCardUserConfig(array $config) : bool
        {
        }
        public function getVariationIblockId() : ?int
        {
        }
        protected function getAdditionalValues(array $values) : array
        {
        }
        private function getImageValuesForEntity(\Bitrix\Catalog\v2\BaseIblockElementEntity $entity) : array
        {
        }
        private function getEntityEditPictureValues(\Bitrix\Catalog\v2\BaseIblockElementEntity $entity) : array
        {
        }
        private function getEntityViewPictureValues(\Bitrix\Catalog\v2\BaseIblockElementEntity $entity) : array
        {
        }
        protected function getFieldValue(array $field)
        {
        }
        public function getConfig() : array
        {
        }
        protected function collectFieldConfigs() : array
        {
        }
        public function getDescriptions() : array
        {
        }
        protected function buildDescriptions() : array
        {
        }
        private function getTableDescriptions(array $tableMap) : array
        {
        }
        private function getTableElementsWhiteList() : array
        {
        }
        protected function getIblockElementFieldsList() : array
        {
        }
        protected function showCatalogProductFields() : bool
        {
        }
        protected function getCatalogProductFieldsList() : array
        {
        }
        protected function showSpecificCatalogParameters() : bool
        {
        }
        private function getSpecificCatalogFieldsList() : array
        {
        }
        private function getFieldTypeByObject(\Bitrix\Main\ORM\Fields\ScalarField $field) : string
        {
        }
        private function isEditableField(\Bitrix\Main\ORM\Fields\Field $field) : bool
        {
        }
        private function isRequiredField(\Bitrix\Main\ORM\Fields\Field $field) : bool
        {
        }
        private function getFieldPlaceholders(\Bitrix\Main\ORM\Fields\Field $field) : ?array
        {
        }
        protected function showSubscribeCatalogParameters() : bool
        {
        }
        private function getSubscribeCatalogFieldList() : array
        {
        }
        private function isSpecificCatalogField(string $fieldName) : bool
        {
        }
        protected function getCatalogEnumFields(string $fieldName) : array
        {
        }
        private function getCommonEnumFields(\Bitrix\Main\ORM\Fields\EnumField $field) : array
        {
        }
        public function getIblockPropertiesDescriptions() : array
        {
        }
        protected function buildIblockPropertiesDescriptions() : array
        {
        }
        public static function preparePropertyName(string $name = '') : string
        {
        }
        public static function preparePropertyNameFromProperty(\Bitrix\Catalog\v2\Property\Property $property) : string
        {
        }
        protected function getPropertyDescription(\Bitrix\Catalog\v2\Property\Property $property) : array
        {
        }
        private function getPropertyType(\Bitrix\Catalog\v2\Property\Property $property) : string
        {
        }
        protected function getPropertiesConfigElements() : array
        {
        }
        protected function getGeneralPropertyDescription(\Bitrix\Catalog\v2\Property\Property $property) : array
        {
        }
        protected function getUserTypePropertyDescription(\Bitrix\Catalog\v2\Property\Property $property) : array
        {
        }
        private function getCurrencyList() : array
        {
        }
        protected function getPropertySettings(\Bitrix\Catalog\v2\Property\Property $property) : array
        {
        }
        protected function getFilePropertyViewHtml($value) : string
        {
        }
        /**
         * @return \CMain
         */
        protected function getApplication() : \CMain
        {
        }
        protected function getFileComponent(array $params) : string
        {
        }
        protected function getFilePropertyEditHtml(array $property, $value) : string
        {
        }
        protected function getFilePropertyInputName(array $property) : string
        {
        }
        protected function getElementPropertyEditHtml(string $name, array $propertyFields, $values, bool $bVarsFromForm = false, bool $isCopying = false) : string
        {
        }
        protected function getProductFieldValue(array $field)
        {
        }
        protected function getPropertyFieldValue(array $field)
        {
        }
        protected function getMeasures() : array
        {
        }
        protected function getVats() : array
        {
        }
    }
    class VariationForm extends \Bitrix\Catalog\Component\BaseForm
    {
        /** @var \Bitrix\Catalog\v2\Sku\BaseSku */
        protected $entity;
        protected function showCatalogProductFields() : bool
        {
        }
        protected function showSpecificCatalogParameters() : bool
        {
        }
        public static function formatFieldName($name) : string
        {
        }
        protected function buildDescriptions() : array
        {
        }
        protected function getPriceDescriptions() : array
        {
        }
        protected function preparePriceDescription(array $fields = []) : array
        {
        }
        private static function getDescriptionCurrencyList()
        {
        }
        protected function getMeasureRatioDescription() : array
        {
        }
        protected function getFieldValue(array $field)
        {
        }
        protected function getPriceFieldValue(array $field)
        {
        }
        protected function getCurrencyFieldValue(array $field)
        {
        }
        protected function getMeasureRatioFieldValue()
        {
        }
        protected function getAdditionalValues(array $values) : array
        {
        }
        public function getControllers() : array
        {
        }
        protected function getCatalogProductFieldsList() : array
        {
        }
    }
    class ProductForm extends \Bitrix\Catalog\Component\BaseForm
    {
        /** @var \Bitrix\Catalog\v2\Product\BaseProduct */
        protected $entity;
        public function getControllers() : array
        {
        }
        public function collectFieldConfigs() : array
        {
        }
        protected function getVariationGridComponentName() : string
        {
        }
        protected function getVariationGridParameters() : array
        {
        }
        protected function getVariationGridSignedParameters() : string
        {
        }
        protected function buildDescriptions() : array
        {
        }
        protected function getPropertiesConfigElements() : array
        {
        }
        private function getSectionDescriptions() : array
        {
        }
        protected function showSpecificCatalogParameters() : bool
        {
        }
        protected function getFieldValue(array $field)
        {
        }
        private function getIblockSectionFieldValue() : array
        {
        }
        protected function getAdditionalValues(array $values) : array
        {
        }
        private function getIblockSectionServiceFieldValue(array $values) : array
        {
        }
    }
    class GridVariationForm extends \Bitrix\Catalog\Component\VariationForm
    {
        /** @var \Bitrix\Catalog\v2\Sku\BaseSku */
        protected $entity;
        protected $headers = [];
        public static function formatFieldName($name) : string
        {
        }
        public static function preparePropertyName(string $name = '') : string
        {
        }
        protected function prepareFieldName(string $name) : string
        {
        }
        protected function getPropertyDescription(\Bitrix\Catalog\v2\Property\Property $property) : array
        {
        }
        public function getColumnValues(bool $allowDefaultValues = true) : array
        {
        }
        public function getGridHeaders() : array
        {
        }
        public function getValues(bool $allowDefaultValues = true) : array
        {
        }
        protected function getAdditionalValues(array $values) : array
        {
        }
        protected function getPropertySettings(\Bitrix\Catalog\v2\Property\Property $property) : array
        {
        }
        protected function getFilePropertyViewHtml($value) : string
        {
        }
        protected function getFilePropertyInputName(array $property) : string
        {
        }
        protected function getFieldValue(array $field)
        {
        }
        protected function getMoneyFieldValue(array $field)
        {
        }
    }
}
namespace Bitrix\Catalog\Product {
    /**
     * Class CatalogProviderCompatibility
     *
     * @package Bitrix\Catalog\Product
     */
    class CatalogProviderCompatibility
    {
        /**
         * @param array $basketItemData
         *
         * @return array|bool
         */
        public static function getProductData(array $basketItemData)
        {
        }
        /**
         * @param array $basketItemData
         *
         * @return array|bool
         */
        public static function orderProduct(array $basketItemData)
        {
        }
        /**
         * @param $productId
         *
         * @return array|bool
         */
        public static function getSetItems($productId)
        {
        }
        /**
         * @param array $values
         *
         * @return array|bool
         */
        public static function reserveProduct(array $values)
        {
        }
        /**
         * @param array $values
         *
         * @return array|bool
         */
        public static function deductProduct(array $values)
        {
        }
        /**
         * @param array $values
         *
         * @return array|bool
         */
        public static function viewProduct(array $values)
        {
        }
        /**
         * @param array $values
         *
         * @return array|bool
         */
        public static function getProductStores(array $values)
        {
        }
        /**
         * @param array $values
         *
         * @return array|bool
         */
        public static function recurringOrderProduct(array $values)
        {
        }
        /**
         * @param array $values
         *
         * @return array|bool
         */
        public static function getStoresCount(array $values)
        {
        }
        public static function DeliverProduct(array $values)
        {
        }
        /**
         * @param array $context
         *
         * @return null|Sale\SaleProviderBase
         */
        private static function getProviderClass($context = array())
        {
        }
        /**
         * @return array
         */
        private static function getContext()
        {
        }
        /**
         * @return string
         */
        private static function getProviderName()
        {
        }
    }
    final class SystemField
    {
        public const CODE_MARKING_CODE_GROUP = 'MARKING_CODE_GROUP';
        private const FIELD_PREFIX = 'UF_';
        private const STORAGE_TABLE_NAME_PREFIX = 'b_hlsys_';
        private const STORAGE_NAME_PREFIX = 'PRODUCT_';
        private const FIELD_ID_PREFIX = 'product_';
        private const FIELD_NAME_PREFIX = 'PRODUCT_';
        /** @var bool */
        private static $highloadInclude = null;
        /** @var bool */
        private static $bitrix24Include = null;
        private static $storageList = [];
        private static $languages = [];
        private static $dictionary = [];
        private static $reverseDictionary = [];
        /** @var array */
        private static $currentFieldSet = null;
        /**
         * @return string
         */
        public static function execAgent()
        {
        }
        /**
         * @return Main\Result
         */
        public static function create()
        {
        }
        /**
         * @return void
         */
        public static function delete()
        {
        }
        /**
         * @return array
         */
        public static function getFieldList()
        {
        }
        /**
         * @param array &$row
         * @return void
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function convertRow(array &$row)
        {
        }
        public static function prepareRow(array &$row)
        {
        }
        /**
         * @return array|null
         */
        public static function getGroupActions()
        {
        }
        /**
         * @param string $fieldId
         * @return array|null
         */
        public static function getGroupActionRequest(string $fieldId)
        {
        }
        /**
         * @param ORM\Event $event
         * @return ORM\EventResult
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function handlerHighloadBlockBeforeDelete(\Bitrix\Main\ORM\Event $event)
        {
        }
        /**
         * @param ORM\Event $event
         * @return ORM\EventResult
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function handlerHighloadBlockBeforeUpdate(\Bitrix\Main\ORM\Event $event)
        {
        }
        /**
         * @return bool
         */
        private static function isExistHighloadBlock()
        {
        }
        /**
         * @return bool
         */
        private static function checkHighloadBlock()
        {
        }
        /**
         * @return bool
         */
        private static function initHighloadBlock()
        {
        }
        /**
         * @return void
         *
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private static function highloadBlockAlert()
        {
        }
        /**
         * @return bool
         */
        private static function initBitrix24()
        {
        }
        /**
         * @return void
         */
        private static function initStorageList()
        {
        }
        /**
         * @return array
         */
        private static function getLanguages()
        {
        }
        /**
         * @param string $code
         * @return string
         */
        private static function getStorageTableName(string $code)
        {
        }
        /**
         * @param string $code
         * @return string
         */
        private static function getStorageName(string $code)
        {
        }
        /**
         * @param string $code
         * @return array|null
         */
        private static function getStorageDescription(string $code)
        {
        }
        /**
         * @param string $code
         * @return array
         */
        private static function getStorageLangTitles(string $code)
        {
        }
        /**
         * @return Main\Result
         */
        private static function createMarkingCodeGroup()
        {
        }
        /**
         * @return bool
         */
        private static function allowedMarkingCodeGroup()
        {
        }
        /**
         * @param array $storage
         * @return Main\Result
         */
        private static function createMarkingCodeGroupField(array $storage)
        {
        }
        /**
         * @return array
         */
        private static function getMarkingCodeGroupStorageFields()
        {
        }
        /**
         * @param array $storage
         * @return Main\Result
         */
        private static function fillMarkingCodeGroups(array $storage)
        {
        }
        /**
         * @param array $block
         * @param array $values
         * @return Main\Result
         */
        private static function transformMarkingCodes(array $block, array $values)
        {
        }
        /**
         * @return array|null
         */
        private static function getMarkingCodeGroupAction()
        {
        }
        private static function getFormRowFieldName(string $field)
        {
        }
        /**
         * @param string $field
         * @return string
         */
        private static function getFormRowFieldId(string $field)
        {
        }
        /**
         * @param array $block
         * @return Main\Result
         */
        private static function createHighloadBlock(array $block)
        {
        }
        /**
         * @param array $block
         * @param array $options
         * @return Main\Result
         */
        private static function createHighloadBlockStorage(array $block, array $options = [])
        {
        }
        /**
         * @param array $block
         * @return Main\Result
         */
        private static function setHighloadBlockTitle(array $block)
        {
        }
        /**
         * @param array $block
         * @return Main\Result
         */
        private static function setHighloadBlockRights(array $block)
        {
        }
        /**
         * @param string $moduleId
         * @param array $filter
         * @return array
         */
        private static function getModuleTasks(string $moduleId, array $filter = [])
        {
        }
        /**
         * @param array $block
         * @return Main\Result
         */
        private static function setHighloadBlockFields(array $block)
        {
        }
        /**
         * @param array $block
         * @param array $values
         * @return Main\Result
         */
        private static function fillHighloadBlock(array $block, array $values)
        {
        }
        /**
         * @param array $field
         * @return Main\Result
         */
        private static function createUserField(array $field)
        {
        }
    }
    class QuantityControl
    {
        private static $values = array();
        const QUANTITY_CONTROL_QUANTITY = 'quantity';
        const QUANTITY_CONTROL_AVAILABLE_QUANTITY = 'available_quantity';
        const QUANTITY_CONTROL_RESERVED_QUANTITY = 'reserved_quantity';
        /**
         * @param null $productId
         */
        public static function resetAllQuantity($productId = null)
        {
        }
        /**
         * @param $productId
         * @param $value
         */
        public static function setQuantity($productId, $value)
        {
        }
        /**
         * @param $productId
         * @param $value
         */
        public static function addQuantity($productId, $value)
        {
        }
        /**
         * @param $productId
         *
         * @return float|int|null
         */
        public static function getQuantity($productId)
        {
        }
        /**
         * @param $productId
         */
        public static function resetQuantity($productId)
        {
        }
        /**
         * @param $productId
         * @param $value
         */
        public static function setReservedQuantity($productId, $value)
        {
        }
        /**
         * @param $productId
         * @param $value
         */
        public static function addReservedQuantity($productId, $value)
        {
        }
        /**
         * @param $productId
         *
         * @return float|int|null
         */
        public static function getReservedQuantity($productId)
        {
        }
        /**
         * @param $productId
         */
        public static function resetReservedQuantity($productId)
        {
        }
        /**
         * @param $productId
         * @param $value
         */
        public static function setAvailableQuantity($productId, $value)
        {
        }
        /**
         * @param $productId
         * @param $value
         */
        public static function addAvailableQuantity($productId, $value)
        {
        }
        /**
         * @param $productId
         *
         * @return float|int|null
         */
        public static function getAvailableQuantity($productId)
        {
        }
        /**
         * @param $productId
         */
        public static function resetAvailableQuantity($productId)
        {
        }
        /**
         * @param $type
         * @param $productId
         * @param $value
         */
        private static function setValue($type, $productId, $value)
        {
        }
        /**
         * @param $type
         * @param $productId
         *
         * @return null|int|float
         */
        private static function getValue($type, $productId)
        {
        }
        /**
         * @param $type
         * @param null $productId
         */
        private static function resetValue($type, $productId = null)
        {
        }
        /**
         * @param $productId
         * @param array $values
         */
        public static function setValues($productId, array $values)
        {
        }
    }
    /**
     * Class Sku
     * Provides various useful methods for sku data.
     *
     * @package Bitrix\Catalog\Product
     */
    class Sku
    {
        const OFFERS_ERROR = 0x0;
        const OFFERS_NOT_EXIST = 0x1;
        const OFFERS_NOT_AVAILABLE = 0x2;
        const OFFERS_AVAILABLE = 0x4;
        protected static $allowUpdateAvailable = 0;
        protected static $allowPropertyHandler = 0;
        protected static $productIds = array();
        protected static $offers = array();
        private static $changeActive = array();
        private static $currentActive = array();
        private static $separateSkuMode = null;
        private static $deferredCalculation = -1;
        private static $calculateAvailable = false;
        private static $calculatePriceTypes = array();
        private static $deferredSku = array();
        private static $deferredOffers = array();
        private static $deferredUnknown = array();
        private static $skuExist = array();
        private static $skuAvailable = array();
        private static $offersIds = array();
        private static $offersMap = array();
        private static $skuPrices = array();
        /**
         * Enable automatic update parent product available and prices.
         *
         * @return void
         */
        public static function enableUpdateAvailable()
        {
        }
        /**
         * Disable automatic update parent product available and prices.
         *
         * @return void
         */
        public static function disableUpdateAvailable()
        {
        }
        /**
         * Return true if allowed automatic update parent product available and prices.
         *
         * @return bool
         */
        public static function allowedUpdateAvailable()
        {
        }
        /**
         * Enable deferred calculation parent product available and prices.
         *
         * @return void
         */
        public static function enableDeferredCalculation()
        {
        }
        /**
         * Disable deferred calculation parent product available and prices.
         *
         * @return void
         */
        public static function disableDeferredCalculation()
        {
        }
        /**
         * Return true if allowed deferred calculation parent product available and prices.
         *
         * @return bool
         */
        public static function usedDeferredCalculation()
        {
        }
        /**
         * Return default settings for product with sku.
         *
         * @param int $state			State flag.
         * @param bool $productIblock   Is iblock (no catalog) with offers.
         * @return array
         */
        public static function getDefaultParentSettings($state, $productIblock = false)
        {
        }
        /**
         * Update product available.
         *
         * @deprecated deprecated since catalog 17.6.0
         * @see Sku::calculateComplete (for sku) and Catalog\Model\Product::update (for all product types)
         *
         * @param int $productId			Product Id.
         * @param int $iblockId				Iblock Id (optional).
         * @param array $productFields		Product fields (optional).
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Exception
         */
        public static function updateAvailable($productId, $iblockId = 0, array $productFields = array())
        {
        }
        /**
         * Prepare data for update parent product available and prices. Run calculate, if disable deferred calculation.
         *
         * @param int $id				Product id (sku, offer).
         * @param null|int $iblockId	Product iblock (null, if unknown).
         * @param null|int $type		Real product type (or null, if unknown).
         *
         * @return void
         */
        public static function calculateComplete($id, $iblockId = null, $type = null)
        {
        }
        /**
         * Prepare data for update parent product prices. Run calculate, if disable deferred calculation.
         *
         * @param int $id				Product id (sku, offer).
         * @param null|int $iblockId	Product iblock (null, if unknown).
         * @param null|int $type		Real product type (or null, if unknown).
         * @param array $priceTypes		Price type ids for calculation (empty, if need all price types).
         *
         * @return void
         */
        public static function calculatePrice($id, $iblockId = null, $type = null, array $priceTypes = [])
        {
        }
        /**
         * Run calculate parent product available and prices. Need data must will be prepared in Sku::calculateComplete or Sku::calculatePrice.
         *
         * @return void
         */
        public static function calculate()
        {
        }
        /**
         * OnIBlockElementAdd event handler. Do not use directly.
         *
         * @param array $fields				Element data.
         * @return void
         */
        public static function handlerIblockElementAdd($fields)
        {
        }
        /**
         * OnAfterIBlockElementAdd event handler. Do not use directly.
         *
         * @param array &$fields			Element data.
         *
         * @return void
         */
        public static function handlerAfterIblockElementAdd(&$fields)
        {
        }
        /**
         * OnIBlockElementUpdate event handler. Do not use directly.
         *
         * @param array $newFields			New element data.
         * @param array $oldFields			Current element data.
         *
         * @return void
         */
        public static function handlerIblockElementUpdate($newFields, $oldFields)
        {
        }
        /**
         * OnAfterIBlockElementUpdate event handler. Do not use directly.
         *
         * @param array &$fields			New element data.
         *
         * @return void
         */
        public static function handlerAfterIblockElementUpdate(&$fields)
        {
        }
        /**
         * OnIBlockElementDelete event handler. Do not use directly.
         *
         * @param int $elementId			Element id.
         * @param array $elementData		Element data.
         *
         * @return void
         */
        public static function handlerIblockElementDelete($elementId, $elementData)
        {
        }
        /**
         * OnAfterIBlockElementDelete event handler. Do not use directly.
         *
         * @param array $elementData		Element data.
         *
         * @return void
         */
        public static function handlerAfterIblockElementDelete($elementData)
        {
        }
        /**
         * OnIBlockElementSetPropertyValues event handler. Do not use directly.
         *
         * @param int $elementId							Element id.
         * @param int $iblockId								Iblock id.
         * @param array $newValues							New properties values.
         * @param int|string|false $propertyIdentifyer		Property identifier.
         * @param array $propertyList						Changed property list.
         * @param array $currentValues						Current properties values.
         *
         * @return void
         */
        public static function handlerIblockElementSetPropertyValues($elementId, $iblockId, $newValues, $propertyIdentifyer, $propertyList, $currentValues)
        {
        }
        /**
         * OnAfterIBlockElementSetPropertyValues event handler. Do not use directly.
         *
         * @param int $elementId							Element id.
         * @param int $iblockId								Iblock id.
         * @param array $newValues							New properties values.
         * @param int|string|false $propertyIdentifyer		Property identifier.
         *
         * @return void
         */
        public static function handlerAfterIBlockElementSetPropertyValues($elementId, $iblockId, $newValues, $propertyIdentifyer)
        {
        }
        /**
         * OnIBlockElementSetPropertyValuesEx event handler. Do not use directly.
         *
         * @param int $elementId							Element id.
         * @param int $iblockId								Iblock id.
         * @param array $newValues							New properties values.
         * @param array $propertyList						Changed property list.
         * @param array $currentValues						Current properties values.
         *
         * @return void
         */
        public static function handlerIblockElementSetPropertyValuesEx($elementId, $iblockId, $newValues, $propertyList, $currentValues)
        {
        }
        /**
         * OnAfterIBlockElementSetPropertyValuesEx event handler. Do not use directly.
         *
         * @param int $elementId							Element id.
         * @param int $iblockId								Iblock id.
         * @param array $newValues							New properties values.
         * @param array $flags								Flags from \CIBlockElement::SetPropertyValuesEx.
         *
         * @return void
         */
        public static function handlerAfterIblockElementSetPropertyValuesEx($elementId, $iblockId, $newValues, $flags)
        {
        }
        /**
         * Return available and exist product offers.
         *
         * @param int $productId			Product id.
         * @param int $iblockId				Iblock id.
         *
         * @return int
         *
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getOfferState($productId, $iblockId = 0)
        {
        }
        /**
         * Update sku product available.
         * @deprecated deprecated since catalog 17.6.0
         * @see Sku::calculateComplete
         *
         * @param int $productId			Product id.
         * @param int|null $iblockId		Iblock id.
         *
         * @return bool
         */
        protected static function updateProductAvailable($productId, $iblockId)
        {
        }
        /**
         * Update offer product type.
         * @deprecated deprecated since catalog 17.6.0
         * @see \Bitrix\Catalog\Model\Product::update
         *
         * @param int $offerId				Offer id.
         * @param int $type					Product type.
         *
         * @return bool
         *
         * @throws \Exception
         */
        protected static function updateOfferType($offerId, $type)
        {
        }
        /**
         * Enable property handlers.
         *
         * @return void
         */
        protected static function enablePropertyHandler()
        {
        }
        /**
         * Disable property handlers.
         *
         * @return void
         */
        protected static function disablePropertyHandler()
        {
        }
        /**
         * Return is enabled property handlers.
         *
         * @return bool
         */
        protected static function allowedPropertyHandler()
        {
        }
        /**
         * Method for array_filter.
         *
         * @param array $row			Product/ Offer data.
         *
         * @return bool
         */
        protected static function filterActive(array $row)
        {
        }
        /**
         * Return separate sku mode (catalog option).
         * @internal
         *
         * @return bool
         *
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        private static function isSeparateSkuMode()
        {
        }
        /**
         * Calculate available for product with sku as simple product. Compatible only.
         * @internal
         *
         * @param int $productId				Product id.
         * @param array $productFields			Product fields (optional).
         *
         * @return array
         *
         * @throws Main\ArgumentException
         */
        private static function getParentDataAsProduct($productId, array $productFields = array())
        {
        }
        /**
         * Returns the current calculated availability of the product if it is necessary to update it.
         * @internal
         *
         * @param int $productId            Product id.
         * @param array $productFields      Current product values. Can be empty.
         *
         * @return array
         */
        private static function getProductAvailable($productId, array $productFields)
        {
        }
        /**
         * Change parent available.
         * @internal
         *
         * @param int $parentId             Parent id.
         * @param int $parentIblockId       Parent iblock id.
         * @return bool
         */
        private static function updateParentAvailable($parentId, $parentIblockId)
        {
        }
        /**
         * Check product type for unknown id and transfer to offer list or parent product list.
         * @internal
         *
         * @return void
         *
         * @throws Main\ArgumentException
         */
        private static function updateDeferredSkuList()
        {
        }
        /**
         * Fill entity list for calculation.
         * @internal
         *
         * @param array &$list			Item storage.
         * @param int $id				Item id.
         * @param null|int $iblockId	Iblock id (null if unknown).
         *
         * @return void
         */
        private static function setCalculateData(array &$list, $id, $iblockId)
        {
        }
        /**
         * Fill price type list for calculation.
         * @internal
         *
         * @param array &$list				Item storage.
         * @param int $id					Product id.
         * @param null|int $iblockId		Iblock id.
         * @param array $priceTypes			Price types (empty if need all).
         *
         * @return void
         */
        private static function setCalculatePriceTypes(array &$list, $id, $iblockId, array $priceTypes)
        {
        }
        /**
         * Remove data from unknown list to parent product list or offer list.
         * @internal
         *
         * @param array &$source		Source storage.
         * @param array &$destination	Destination storage
         * @param int $id				Product id.
         *
         * @return void
         */
        private static function migrateCalculateData(array &$source, array &$destination, $id)
        {
        }
        /**
         * Transfer data from unknown list to parent product list or offer list with change id.
         * @internal
         *
         * @param array &$source		Source storage.
         * @param array &$destination	Destination storage
         * @param int $sourceId			Product source id.
         * @param int $destinationId	Product destination id.
         * @param null|int $iblockId	Iblock id (null, if unknown).
         *
         * @return void
         */
        private static function transferCalculationData(array &$source, array &$destination, $sourceId, $destinationId, $iblockId)
        {
        }
        /**
         * Clear internal calculate data.
         * @internal
         *
         * @return void
         */
        private static function clearStepData()
        {
        }
        /**
         * Get iblock ids for products.
         * @internal
         *
         * @return void
         */
        private static function loadProductIblocks()
        {
        }
        /**
         * Load parent product data (offers exists and state, exist in database, etc).
         * @internal
         *
         * @param array $listIds	Product ids.
         *
         * @return void
         */
        private static function loadProductData(array $listIds)
        {
        }
        /**
         * Save available for parent products.
         * @internal
         *
         * @param array $listIds	Product ids.
         *
         * @return void
         */
        private static function updateProductData(array $listIds)
        {
        }
        /**
         * Load exist parent product prices.
         * @internal
         *
         * @return void
         *
         * @throws Main\ArgumentException
         */
        private static function loadProductPrices()
        {
        }
        /**
         * Update parent product prices.
         * @internal
         *
         * @param array $listIds	Product ids.
         *
         * @return void
         *
         * @throws Main\ArgumentException
         * @throws Main\Db\SqlQueryException
         * @throws \Exception
         */
        private static function updateProductPrices(array $listIds)
        {
        }
        /**
         * Update parent product facet index.
         * @internal
         *
         * @param array $listIds	Product ids.
         *
         * @return void
         */
        private static function updateProductFacetIndex(array $listIds)
        {
        }
        /**
         * Update parent product data from iblock event handlers.
         *
         * @param int $elementId	Offer id.
         * @param int $iblockId		Offer iblock id.
         *
         * @return void
         */
        private static function calculateOfferChange($elementId, $iblockId)
        {
        }
    }
    /**
     * Class Search
     * Provides various useful methods for product search.
     *
     * @package Bitrix\Catalog\Product
     */
    class Search
    {
        protected static $catalogList = array();
        /**
         * Fill parameters before create search index.
         *
         * @param array $fields		Item fields.
         * @return array
         */
        public static function onBeforeIndex($fields)
        {
        }
    }
}
namespace Bitrix\Catalog {
    /**
     * @deprecated deprecated since catalog 16.5.3
     * @see \Bitrix\Catalog\Product\Search
     *
     * Class SearchHandlers
     * @package Bitrix\Catalog
     */
    class SearchHandlers extends \Bitrix\Catalog\Product\Search
    {
    }
}
namespace Bitrix\Catalog\Product {
    /**
     * Class Basket
     * @package Bitrix\Catalog\Product
     */
    class Basket
    {
        private static $statisticIncluded = null;
        private static $saleIncluded = null;
        /**
         * Add to basket from public components.
         *
         * @param array $product				Product data (with properties).
         * @param array $basketFields			Basket fields (if used).
         * @param array $options				Execute options.
         *
         * @return Main\Result
         *
         * @throws Main\LoaderException
         * @throws Main\ObjectNotFoundException
         */
        public static function addProduct(array $product, array $basketFields = [], array $options = [])
        {
        }
        /**
         * Proxy method of adding a item to the basket.
         *
         * @param Sale\BasketBase $basket		Working basket.
         * @param array $fields					Basket item fields for add.
         * @param array $context				Working context (site, user).
         * @param array $options				Execute options.
         *
         * @return Main\Result
         *
         * @throws Main\LoaderException
         * @throws Main\ObjectNotFoundException
         */
        public static function addProductToBasket(\Bitrix\Sale\BasketBase $basket, array $fields, array $context, array $options = [])
        {
        }
        /**
         * Proxy method of adding a item to the basket. Already check iblock permissions.
         *
         * @param Sale\BasketBase $basket		Working basket.
         * @param array $fields					Basket item fields for add.
         * @param array $context				Working context (site, user).
         * @param bool|array $options			Execute options (by default - search existing row in basket before add options value).
         *
         * @return Main\Result
         *
         * @throws Main\LoaderException
         * @throws Main\ObjectNotFoundException
         */
        public static function addProductToBasketWithPermissions(\Bitrix\Sale\BasketBase $basket, array $fields, array $context, $options = true)
        {
        }
        /**
         * The main method of adding a item to the basket. Does not save the result in the database.
         * @internal
         *
         * @param Sale\BasketBase $basket		Working basket.
         * @param array $fields					Basket item fields for add.
         * @param array $context				Working context (site, user).
         * @param array $options				Options (check permiisons, search existing row, etc).
         *
         * @return Main\Result
         *
         * @throws Main\LoaderException
         * @throws Main\ObjectNotFoundException
         */
        private static function add(\Bitrix\Sale\BasketBase $basket, array $fields, array $context, array $options = [])
        {
        }
        /**
         * @return bool
         */
        private static function isCompatibilityEventAvailable()
        {
        }
        /**
         * @param array $fields
         * @return array|false
         */
        private static function runCompatibilityEvent(array $fields)
        {
        }
        /**
         * @param array &$propertyList
         * @param int $id
         * @param int $iblockId
         * @return void
         */
        private static function fillOfferProperties(array &$propertyList, $id, $iblockId)
        {
        }
        /**
         * Search basket property.
         *
         * @param string $code				Property code.
         * @param array $propertyList		Basket properties.
         * @return int|null
         */
        private static function getPropertyIndex($code, array $propertyList = array())
        {
        }
        /**
         * @return string
         */
        public static function getDefaultProviderName()
        {
        }
        /**
         * Returns the result of checking that the current user is not a search robot.
         *
         * @return bool
         */
        public static function isNotCrawler()
        {
        }
        /**
         * Checking that the current user is not a search robot.
         *
         * @return Main\Result
         */
        private static function checkCurrentUser()
        {
        }
    }
    /**
     * Class Price
     * Provides various useful methods for prices.
     *
     * @package Bitrix\Catalog\Product
     */
    class Price
    {
        /* cache id template */
        const CACHE_ID = 'catalog_price_round_';
        /* cache time */
        const CACHE_TIME = 360000;
        /* maximal precision */
        const VALUE_EPS = 1.0E-6;
        /* static cache */
        protected static $roundRules = array();
        /**
         * Handler onAfterUpdateCurrencyBaseRate for update field PRICE_SCALE after change currency base rate.
         *
         * @param Main\Event $event			Event data (old and new currency rate).
         * @return void
         */
        public static function handlerAfterUpdateCurrencyBaseRate(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Load round rules list for price types.
         *
         * @param array $priceTypes		Price type ids.
         * @return void
         */
        public static function loadRoundRules(array $priceTypes)
        {
        }
        /**
         * Return round rules list for price type.
         *
         * @param int $priceType		Price type id.
         * @return array
         */
        public static function getRoundRules($priceType)
        {
        }
        /**
         * Clear cache rules for price type.
         *
         * @param int $priceType		Price type id.
         * @return void
         */
        public static function clearRoundRulesCache($priceType)
        {
        }
        /**
         * Get rule for price value.
         *
         * @param int $priceType		Price type id.
         * @param float|int $price		Price value.
         * @param string $currency		Price currency.
         * @return array
         */
        public static function searchRoundRule($priceType, $price, $currency = '')
        {
        }
        /**
         * Round price.
         *
         * @param int $priceType		Price type id.
         * @param float|int $price		Price value.
         * @param string $currency		Currency.
         * @return float|int
         */
        public static function roundPrice($priceType, $price, $currency)
        {
        }
        /**
         * Round value with arbitrary precision.
         *
         * @param float|int $value			Round value.
         * @param float|int $precision		Precision.
         * @param int $type					Round type.
         * @return float|int
         */
        public static function roundValue($value, $precision, $type)
        {
        }
        /**
         * Return cache id for price type.
         *
         * @param string|int $priceType		Price type id.
         * @return string
         */
        protected static function getRulesCacheId($priceType)
        {
        }
        /**
         * Round whole part.
         *
         * @param float|int $value			Round value.
         * @param float|int $precision		Precision.
         * @param int $type					Round type.
         * @return float|int
         */
        protected static function roundWhole($value, $precision, $type)
        {
        }
        /**
         * Round fraction part.
         *
         * @param float|int $value			Round value.
         * @param float|int $precision		Precision.
         * @param int $type					Round type.
         * @return float
         */
        protected static function roundFraction($value, $precision, $type)
        {
        }
    }
}
namespace Bitrix\Iblock\Model {
    class PropertyFeature
    {
        const EVENT_ID_FEATURE_LIST = 'OnPropertyFeatureBuildList';
        // event name for build feature list
        const FEATURE_ID_LIST_PAGE_SHOW = 'LIST_PAGE_SHOW';
        // show property in element list
        const FEATURE_ID_DETAIL_PAGE_SHOW = 'DETAIL_PAGE_SHOW';
        // detail page show property
        /**
         * Add features for new property. Do not check features in database.
         *
         * @param int $propertyId	Property id.
         * @param array $features	Feature list.
         * @return Main\Entity\Result
         */
        public static function addFeatures($propertyId, array $features)
        {
        }
        public static function updateFeatures($propertyId, array $features)
        {
        }
        /**
         * Upsert property features.
         *
         * @param int $propertyId	Property id.
         * @param array $features	Feature list.
         * @return Main\Entity\Result
         * @throws Main\ArgumentException
         * @throws Main\Db\SqlQueryException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function setFeatures($propertyId, array $features)
        {
        }
        /**
         * Returns verified list of features for add, update or set.
         *
         * @param array $list	Raw features.
         * @return array|null
         */
        protected static function checkFeatureList(array $list)
        {
        }
        /**
         * Checks feature parameters. Returns normalized data or null.
         *
         * @param array $feature	Raw feature parameters.
         * @return array|null
         */
        protected static function checkFeature(array $feature)
        {
        }
        /**
         * Returns unique feature index for search.
         *
         * @param array $feature	Normalize feature parameters.
         * @return string
         */
        public static function getIndex(array $feature)
        {
        }
        /**
         * Build a list of available features for a property.
         *
         * @param array $property		Property description.
         * @param array $description	Additional description.
         * @return array
         */
        public static function getPropertyFeatureList(array $property, array $description = [])
        {
        }
        /**
         * Returns iblock properties identifiers (ID or CODE), showed in element list.
         *
         * @param int $iblockId			Iblock identifier.
         * @param array $parameters		Options.
         * 	keys are case sensitive:
         *		<ul>
         * 		<li>CODE	Return symbolic code as identifier (Y/N, default N).
         *		</ul>
         * @return array|null
         */
        public static function getListPageShowPropertyCodes($iblockId, array $parameters = [])
        {
        }
        /**
         * Returns iblock properties identifiers (ID or CODE), showed on detail element page.
         *
         * @param int $iblockId			Iblock identifier.
         * @param array $parameters		Options.
         * 	keys are case sensitive:
         *		<ul>
         * 		<li>CODE	Return symbolic code as identifier (Y/N, default N).
         *		</ul>
         * @return array|null
         */
        public static function getDetailPageShowPropertyCodes($iblockId, array $parameters = [])
        {
        }
        /**
         * @deprecated deprecated since iblock 19.0.0
         * @see self::getDetailPageShowPropertyCodes
         *
         * @param int $iblockId			Iblock identifier.
         * @param array $parameters		Options.
         * 	keys are case sensitive:
         *		<ul>
         * 		<li>CODE	Return symbolic code as identifier (Y/N, default N).
         *		</ul>
         * @return array|null
         */
        public static function getDetailPageShowProperties($iblockId, array $parameters = [])
        {
        }
        /**
         * Internal method for getting the list of features by filter (within one information block).
         *
         * @param int $iblockId			Iblock identifier.
         * @param array $filter			Feature filter.
         * @param array $parameters		Options.
         * 	keys are case sensitive:
         *		<ul>
         * 		<li>CODE	Return symbolic code as identifier (Y/N, default N).
         *		</ul>
         * @return array|null
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        protected static function getFilteredPropertyCodes($iblockId, array $filter, array $parameters = [])
        {
        }
        /**
         * Returns property identifier. Internal method.
         *
         * @param array $property	Property description (the ID and CODE fields are definitely needed)
         * @param bool $getCode		if true, returns property code or ID (if CODE is empty). Other - returns ID.
         * @return int|string
         */
        protected static function getPropertyCode(array $property, $getCode = false)
        {
        }
        /**
         * Check and normalize feature description. Internal method.
         *
         * @param array $row	Feature description.
         * @return array
         */
        private static function prepareFeatureDescription(array $row)
        {
        }
        /**
         * Returns a list of features available to any information block.
         * Used when building a list of features for an information block property.
         *
         * @return array
         */
        private static function getIblockFeatureList()
        {
        }
        /**
         * Returns three if the feature engine is enabled.
         *
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function isEnabledFeatures()
        {
        }
        /**
         * Returns true, if property features exist.
         *
         * @return bool
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function isPropertyFeaturesExist()
        {
        }
    }
}
namespace Bitrix\Catalog\Product {
    class PropertyCatalogFeature extends \Bitrix\Iblock\Model\PropertyFeature
    {
        const FEATURE_ID_BASKET_PROPERTY = 'IN_BASKET';
        // property added to basket
        const FEATURE_ID_OFFER_TREE_PROPERTY = 'OFFER_TREE';
        // property is used to select offers
        /**
         * Event handler. Returns catalog feature list for iblock.
         *
         * @param Main\Event $event		Event data.
         * @return Main\EventResult
         */
        public static function handlerPropertyFeatureBuildList(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Unified method to get properties added to basket.
         *
         * @param int $iblockId			Iblock identifier.
         * @param array $parameters		Options
         * 	keys are case sensitive:
         *		<ul>
         * 		<li>CODE	Return symbolic code as identifier (Y/N, default N).
         *		</ul>
         * @return array|null
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getBasketPropertyCodes($iblockId, array $parameters = [])
        {
        }
        /**
         * Unified method for obtaining properties used to select offers.
         *
         * @param int $iblockId			Iblock identifier.
         * @param array $parameters		Options
         * 	keys are case sensitive:
         *		<ul>
         * 		<li>CODE	Return symbolic code as identifier (Y/N, default N).
         *		</ul>
         * @return array|null
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getOfferTreePropertyCodes($iblockId, array $parameters = [])
        {
        }
        /**
         * Getting properties added to basket when feature engine is off.
         * Internal method.
         *
         * @param array $catalog		Catalog description.
         * @param array $parameters		Options
         * 	keys are case sensitive:
         *		<ul>
         * 		<li>CODE	Return symbolic code as identifier (Y/N, default N).
         *		</ul>
         * @return array|null
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private static function getBasketPropertyByTypes(array $catalog, array $parameters = [])
        {
        }
        /**
         * Getting the properties used to select offers when feature engine is off.
         * Internal method.
         *
         * @param array $catalog		Catalog description.
         * @param array $parameters		Options
         * 	keys are case sensitive:
         *		<ul>
         * 		<li>CODE	Return symbolic code as identifier (Y/N, default N).
         *		</ul>
         * @return array|null
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        private static function getOfferTreePropertyByTypes(array $catalog, array $parameters = [])
        {
        }
        /**
         * Check - can the property be added to the basket.
         * Internal method.
         *
         * @param array $property		Property description.
         * @param array $description	Additional description.
         * @return bool
         */
        private static function checkBasketProperty(array $property, array $description)
        {
        }
        /**
         * Check - can the property be used to select trade offers.
         * Internal method.
         *
         * @param array $property		Property description.
         * @param array $description	Additional description.
         * @return bool
         */
        private static function checkOfferTreeProperty(array $property, array $description)
        {
        }
    }
}
namespace Bitrix\Catalog\Product\Price {
    /**
     * Class Calculation
     * Provides methods for product price calculation (discounts, round, precision).
     *
     * @package Bitrix\Catalog\Product\Price
     */
    class Calculation
    {
        const RESULT_MODE_COMPONENT = 1;
        const RESULT_MODE_RAW = 2;
        protected static $config = array('CURRENCY' => null, 'PRECISION' => null, 'USE_DISCOUNTS' => true, 'RESULT_WITH_VAT' => true, 'RESULT_MODE' => self::RESULT_MODE_COMPONENT);
        private static $stack = array();
        /**
         * Set calculation settings.
         *
         * @param array $config
         *  keys are case sensitive:
         *		<ul>
         * 		<li>string CURRENCY				Result currency (can be null - use base currency (compatibility only)).
         *		<li>int PRECISION				Calculation precision (can be null - use default catalog precision - CATALOG_VALUE_PRECISION).
         *		<li>bool USE_DISCOUNTS			Use discounts for calculation (by default use discounts is allowed).
         *		<li>bool RESULT_WITH_VAT		Returns result price without/with VAT (by default return price with VAT).
         *		<li>int RESULT_MODE				Returns raw result for provider or prepared result for components (by default - for components).
         *		</ul>
         * @return void
         */
        public static function setConfig(array $config)
        {
        }
        /**
         * Returns current calculation settings.
         *
         * @return array
         */
        public static function getConfig()
        {
        }
        /**
         * Save current calculation settings to the stack before the changes.
         *
         * @return void
         */
        public static function pushConfig()
        {
        }
        /**
         * Set the calculation settings from the stack, if it is not empty.
         *
         * @return void
         */
        public static function popConfig()
        {
        }
        /**
         * Returns result calculation currency.
         *
         * @return string
         */
        public static function getCurrency()
        {
        }
        /**
         * Returns calculation precision.
         *
         * @return int
         */
        public static function getPrecision()
        {
        }
        /**
         * Returns true if allowed use discounts.
         *
         * @return bool
         */
        public static function isAllowedUseDiscounts()
        {
        }
        /**
         * Returns true if result price with VAT.
         *
         * @return bool
         */
        public static function isIncludingVat()
        {
        }
        public static function getResultMode()
        {
        }
        public static function isComponentResultMode()
        {
        }
        public static function isRawResultMode()
        {
        }
        /**
         * Rounding the price or discount to a specified number of decimal places.
         *
         * @param float|int $value		Value for rounding.
         * @return float
         */
        public static function roundPrecision($value)
        {
        }
        /**
         * Returns the result of comparing two values with the precision of rounding.
         *
         * @param float|int $firstValue         First value.
         * @param float|int $secondValue        Second value.
         * @param string $operator              Compare operator ( >, >=, <, <=, ==, !=).
         * @return bool
         */
        public static function compare($firstValue, $secondValue, $operator)
        {
        }
        /**
         * Validate new settings (allowed keys and values).
         * @internal
         *
         * @param array $config		New config.
         * @return array
         */
        protected static function checkConfig(array $config)
        {
        }
    }
}
namespace Bitrix\Catalog\Product {
    /**
     * Class SubscribeManager manages subscriptions.
     *
     **/
    class SubscribeManager
    {
        const ERROR_REQUIRED_PARAMATERS = 'ERROR_REQUIRED_PARAMATERS_12001';
        const ERROR_ADD_SUBSCRIBE = 'ERROR_ADD_SUBSCRIBE_12002';
        const ERROR_VALIDATE_FIELDS = 'ERROR_VALIDATE_FIELDS_12003';
        const ERROR_SUBSCRIBER_IDENTIFICATION = 'ERROR_SUBSCRIBER_IDENTIFICATION_12004';
        const ERROR_AUTHORIZATION = 'ERROR_AUTHORIZATION_12005';
        const ERROR_DELETE_SUBSCRIBE = 'ERROR_ADD_SUBSCRIBE_12006';
        const ERROR_ADD_SUBSCRIBE_ALREADY_EXISTS = 'ERROR_ADD_SUBSCRIBE_ALREADY_EXISTS_12007';
        const ERROR_ACTIVITY_CHANGE = 'ERROR_ACTIVITY_CHANGE_12008';
        const ERROR_UNSUBSCRIBE = 'ERROR_UNSUBSCRIBE_12009';
        /** @var  ErrorCollection */
        protected $errorCollection;
        /** @var integer */
        protected $userId = 0;
        /** @var bool|null  */
        protected $isAdmin = false;
        public $contactTypes = array();
        protected $fields = array();
        protected $listAvailableFields = array('DATE_TO', 'USER_CONTACT', 'CONTACT_TYPE', 'USER_ID', 'ITEM_ID', 'NEED_SENDING', 'SITE_ID', 'LANDING_SITE_ID');
        public function __construct()
        {
        }
        /**
         * @return array An array containing Error objects.
         */
        public function getErrors()
        {
        }
        /**
         * The method creates a new subscription.
         *
         * @param array $subscribeData An array containing the data of a new subscription.
         * @return bool|int
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Exception
         */
        public function addSubscribe(array $subscribeData)
        {
        }
        /**
         * The method removes a lot of subscriptions received subscribeId list with the account permissions.
         *
         * @param array $listSubscribeId List subscribe id.
         * @param integer $itemId If this parameter is passed, cleaned write to the session.
         * @return bool
         * @throws \Exception
         */
        public function deleteManySubscriptions(array $listSubscribeId, $itemId = 0)
        {
        }
        /**
         * The method checks the access to subscription by using the userId or token.
         * Administrators subscription is always available.
         *
         * @param integer $subscribeId Subscribe id.
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         */
        public function checkAccessToSubscription($subscribeId)
        {
        }
        /**
         * The method begins the process of identification of the anonymous subscriber.
         *
         * @param array $subscriberData An array containing the data necessary for identification.
         * @param bool $sendLetter Marker, checks whether to send a letter.
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function runSubscriberIdentification(array $subscriberData, $sendLetter = true)
        {
        }
        /**
         * The method authenticates an anonymous subscriber.
         *
         * @param array $authorizationData The authentication information.
         * @return bool
         */
        public function authorizeSubscriber(array $authorizationData)
        {
        }
        /**
         * Method unsubscribe subscribers with fixed input data.
         * 
         * @param array $data Input data.
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Exception
         */
        public function unSubscribe(array $data)
        {
        }
        /**
         * The method activates the subscription clearing a field DATE_TO or writing the subscription term.
         *
         * @param array $listSubscribeId List subscribe id.
         * @param int $timePeriod Subscription period in seconds.
         * @return bool
         * @throws \Exception
         */
        public function activateSubscription(array $listSubscribeId, $timePeriod = 0)
        {
        }
        /**
         * The method deactivates the subscription by writing the current date.
         *
         * @param array $listSubscribeId List subscribe id.
         * @return bool
         * @throws \Exception
         */
        public function deactivateSubscription(array $listSubscribeId)
        {
        }
        /**
         * The method checks the subscription activity field value DATE_TO.
         *
         * @param mixed $dateTo An empty value or an instance DateTime.
         * @return bool
         */
        public function checkSubscriptionActivity($dateTo)
        {
        }
        /**
         * Write product id to the session to check that the user has subscribed.
         *
         * @param integer $itemId Product id.
         * @return void
         */
        public function setSessionOfSibscribedProducts($itemId)
        {
        }
        private function deleteSessionOfSibscribedProducts($itemId = 0)
        {
        }
        private function checkDataBeforeSave($productSubscribeData, array $subscribeData)
        {
        }
        private function validateFields()
        {
        }
        private function checkRequiredInputParams(array $inputParams, array $requiredParams)
        {
        }
    }
    /**
     * Class CatalogProvider
     *
     * @package Bitrix\Catalog\Product
     */
    class CatalogProvider extends \Bitrix\Sale\SaleProviderBase
    {
        private static $userCache = array();
        protected static $hitCache = array();
        protected static $priceTitleCache = array();
        protected static $clearAutoCache = array();
        protected $enableCache = true;
        const CACHE_USER_GROUPS = 'USER_GROUPS';
        const CACHE_ITEM_WITHOUT_RIGHTS = 'IBLOCK_ELEMENT_PERM_N';
        const CACHE_ITEM_RIGHTS = 'IBLOCK_ELEMENT';
        const CACHE_ITEM_WITH_RIGHTS = 'IBLOCK_ELEMENT_PERM_Y';
        const CACHE_ELEMENT_RIGHTS_MODE = 'ELEMENT_RIGHTS_MODE';
        const CACHE_PRODUCT = 'CATALOG_PRODUCT';
        const CACHE_VAT = 'VAT_INFO';
        const CACHE_IBLOCK_RIGHTS = 'IBLOCK_RIGHTS';
        const CACHE_STORE = 'CATALOG_STORE';
        const CACHE_STORE_PRODUCT = 'CATALOG_STORE_PRODUCT';
        const CACHE_PARENT_PRODUCT_ACTIVE = 'PARENT_PRODUCT_ACTIVE';
        const CACHE_CATALOG_IBLOCK_LIST = 'CATALOG_IBLOCK_LIST';
        const CACHE_PRODUCT_STORE_LIST = 'CACHE_PRODUCT_STORE_LIST';
        const CACHE_PRODUCT_AVAILABLE_LIST = 'CACHE_PRODUCT_AVAILABLE_LIST';
        const CATALOG_PROVIDER_EMPTY_STORE_ID = 0;
        const BUNDLE_TYPE = 1;
        const RESULT_PRODUCT_LIST = 'PRODUCT_DATA_LIST';
        const RESULT_CATALOG_LIST = 'CATALOG_DATA_LIST';
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public function getProductData(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public function getCatalogData(array $products)
        {
        }
        /**
         * @param array $products
         * @param array $options
         *
         * @return Sale\Result
         */
        private function getData(array $products, array $options = array())
        {
        }
        private static function getOutputVariable(array $options = array())
        {
        }
        private static function getResultProvider(\Bitrix\Sale\Result $result, $outputVariable, array $resultList = array())
        {
        }
        /**
         * @param array $list
         * @param array $select
         * @param int|null $userId
         *
         * @return array
         */
        private function getElements(array $list, array $select, $userId = null)
        {
        }
        /**
         * @param array $products
         *
         * @return array|bool|mixed
         */
        public function getBundleItems(array $products)
        {
        }
        /**
         * @param $userId
         *
         * @return bool|array
         */
        protected static function getUserGroups($userId)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public function ship(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return array
         */
        private function createReverseQuantityProducts(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public function unship(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ObjectNotFoundException
         */
        public function deliver(array $products)
        {
        }
        /**
         * @param array $items
         *
         * @return Sale\Result
         */
        public function viewProduct(array $items)
        {
        }
        /**
         * @param array $items
         *
         * @return Sale\Result
         */
        public function recurring(array $items)
        {
        }
        /**
         * @param array $items
         *
         * @return Sale\Result
         */
        public function checkBarcode(array $items)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        protected function shipProducts(array $products)
        {
        }
        /**
         * @param array $quantityList
         *
         * @return Sale\Result
         */
        private static function updateCatalogStoreAmount(array $quantityList)
        {
        }
        /**
         * @param array $productData
         * @param array $productStoreDataList
         *
         * @return Sale\Result
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        private static function shipProduct(array $productData, array $productStoreDataList = array())
        {
        }
        /**
         * @param array $productData
         *
         * @return Sale\Result
         */
        private static function shipQuantityWithStoreControl(array $productData)
        {
        }
        /**
         * @param array $productData
         *
         * @return Sale\Result
         */
        private static function shipQuantityWithoutStoreControl(array $productData)
        {
        }
        /**
         * @param array $productData
         *
         * @return bool
         */
        private static function isExistsReserve(array $productData)
        {
        }
        /**
         * @param array $productData
         * @param array $productStoreDataList
         *
         * @return Sale\Result
         */
        private static function getSetableStoreQuantityProduct(array $productData, array $productStoreDataList)
        {
        }
        /**
         * @param array $productData
         *
         * @return array|bool
         */
        private static function getNeedQuantityFromStore(array $productData)
        {
        }
        /**
         * @param array $productData
         *
         * @return Sale\Result
         */
        private static function deleteBarcodes(array $productData)
        {
        }
        /**
         * @param array $storeData
         *
         * @return Sale\Result
         */
        private static function deleteBarcode(array $storeData)
        {
        }
        /**
         * @param array $productData
         *
         * @return Sale\Result
         */
        private static function addBarcodes(array $productData)
        {
        }
        /**
         * @param array $storeData
         *
         * @return Sale\Result
         */
        private static function addBarcode(array $storeData)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public function reserve(array $products)
        {
        }
        /**
         * @param array $productData
         *
         * @return Sale\Result|bool
         */
        private static function reserveProduct(array $productData)
        {
        }
        /**
         * @param array $productData
         *
         * @return Sale\Result
         */
        private static function reserveQuantityWithEnabledReservation(array $productData)
        {
        }
        /**
         * @param array $productData
         *
         * @return Sale\Result
         */
        private static function reserveQuantityWithDisabledReservation(array $productData)
        {
        }
        /**
         * Checks offers parent products existence and activity.
         *
         * @param     $productIds
         * @param int $iblockId
         *
         * @return array
         */
        private static function checkParentActivity($productIds, $iblockId = 0)
        {
        }
        /**
         * @param $priceType
         *
         * @return string
         */
        protected static function getPriceTitle($priceType)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public function tryShip(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public function isNeedShip(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return array
         */
        private function createQuantityFilteredProducts(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public function tryUnship(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public function checkProductsInStore(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        private function checkProductsQuantity(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return array
         */
        private function createProductsListWithCatalogData(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return array|bool
         */
        protected function createStoreProductMap(array $products)
        {
        }
        private function checkProductInStores($products)
        {
        }
        private static function isExistsBarcode(array $list)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        protected function checkProductQuantityInStore(array $products)
        {
        }
        /**
         * @param array
         * @param array $storeDataList
         *
         * @return Sale\Result
         */
        protected function checkExistsProductItemInStore(array $productData, array $storeDataList = array())
        {
        }
        /**
         * @param array $products
         * @param array $storeData
         *
         * @return Sale\Result
         */
        protected function checkExistsProductsInStore(array $products, array $storeData = array())
        {
        }
        /**
         * @param array $productData
         * @param array $productStoreData
         * @param array $storeData
         *
         * @return Sale\Result
         */
        protected static function checkProductBarcodes(array $productData, array $productStoreData, array $storeData = array())
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         * @throws Main\ArgumentNullException
         */
        private function canProductListAutoShip(array $products)
        {
        }
        /**
         * @param array $product
         * @param array $productStoreDataList
         *
         * @return bool|array
         */
        private static function getAutoShipStoreData(array $product, array $productStoreDataList)
        {
        }
        /**
         * @param array $products
         *
         * @return mixed
         */
        protected function getCountProductsInStore(array $products)
        {
        }
        /**
         * @internal
         * @return Sale\Result
         */
        public function getStoresCount()
        {
        }
        /**
         * @return array|false
         */
        private function getStoreIds()
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public function getProductListStores(array $products)
        {
        }
        /**
         * @param $type
         * @param $key
         * @param array $fields
         *
         * @return bool|mixed
         */
        protected static function getHitCache($type, $key, array $fields = array())
        {
        }
        /**
         * @param $type
         * @param $key
         * @param array $fields
         *
         * @return bool
         */
        protected static function isExistsHitCache($type, $key, array $fields = array())
        {
        }
        /**
         * @param string $type
         * @param string $key
         * @param mixed $value
         */
        protected static function setHitCache($type, $key, $value)
        {
        }
        /**
         * @param string|null $type
         */
        protected static function clearHitCache($type = null)
        {
        }
        /**
         * @param $fields
         *
         * @return array
         */
        protected static function clearNotCacheFields($fields)
        {
        }
        /**
         * @return array
         */
        protected static function getNotCacheFields()
        {
        }
        protected static function checkNeedFields(array $fields, array $need)
        {
        }
        protected static function isNeedClearPublicCache($currentQuantity, $newQuantity, $quantityTrace, $canBuyZero, $ratio = 1)
        {
        }
        protected static function clearPublicCache($productID, $productInfo = array())
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public function getAvailableQuantity(array $products)
        {
        }
        /**
         * @param array $products
         *
         * @return Sale\Result
         */
        public function getAvailableQuantityAndPrice(array $products)
        {
        }
        /**
         * @param $products
         *
         * @return bool
         */
        private function isExistsCatalogData($products)
        {
        }
        /**
         * @param array $products
         * @param array $list
         *
         * @return array
         */
        private static function removeNotExistsItemFromProducts(array $products, array $list)
        {
        }
        /**
         * @param array $list
         *
         * @return array
         */
        private function getIblockData(array $list)
        {
        }
        /**
         * @param array $iblockList
         * @param array $list
         *
         * @return array
         */
        private static function removeNotExistsIblockFromList(array $iblockList, array $list)
        {
        }
        /**
         * @param array $iblockProductMap
         *
         * @return array
         */
        private function checkSkuPermission(array $iblockProductMap)
        {
        }
        /**
         * @param array $iblockList
         * @param array $iblockDataList
         *
         * @return array
         */
        private static function createIblockProductMap(array $iblockList, array $iblockDataList)
        {
        }
        /**
         * @param array $products
         * @param array $iblockProductMap
         *
         * @return array
         */
        private static function changeSubscribeProductQuantity(array $products, array $iblockProductMap)
        {
        }
        /**
         * @param array $list
         * @param array $select
         *
         * @return array
         */
        private static function getCatalogProducts(array $list, array $select)
        {
        }
        /**
         * @param null $id
         *
         * @return array
         */
        private static function getMeasure($id = null)
        {
        }
        /**
         * @param array $products
         * @param array $productPriceList
         * @param array $discountList
         *
         * @return array
         */
        private function createProductPriceList(array $products, array $productPriceList, array $discountList = array())
        {
        }
        private static function setDataToProducts(array $products, array $resultData)
        {
        }
        /**
         * @param array $products
         * @param array $items
         * @param array $priceList
         * @param array $productQuantityList
         *
         * @return array
         */
        private static function createProductResult(array $products, array $items, array $priceList, array $productQuantityList)
        {
        }
        /**
         * @param array $products
         * @param array $catalogDataList
         * @param array $options
         *
         * @return array
         */
        private static function setCatalogDataToProducts(array $products, array $catalogDataList, array $options = array())
        {
        }
        /**
         * @return bool
         */
        protected static function isReservationEnabled()
        {
        }
        /**
         * @param array $products
         *
         * @return array
         * @throws Main\ObjectNotFoundException
         */
        public static function createOrderListFromProducts(array $products)
        {
        }
        /**
         * @param $productId
         *
         * @return array
         */
        private static function getProductCatalogInfo($productId)
        {
        }
    }
    /**
     * Class Viewed
     * Provides various useful methods for viewed products.
     *
     * @package Bitrix\Catalog\Product
     */
    class Viewed
    {
        /**
         * Return parent section id for need section depth.
         * 
         * @param int $sectionId			Section id.
         * @param int $depth				Parent section depth.
         * @return int|null
         * @throws Main\ArgumentException
         */
        public static function getParentSection($sectionId, $depth)
        {
        }
    }
}
namespace Bitrix\Catalog\Ebay {
    class EbayXMLer
    {
        protected $fieldsMap = array("NAME" => array("PATH" => "ProductInformation/Title"), "CATEGORIES" => array("PATH" => "ProductInformation/Categories/Category", "TYPE" => "eBayLeafCategory"));
        public function makeProductNode($product)
        {
        }
        public function isChildExist(\DOMNode $node, $childName)
        {
        }
        protected function parsePath($path)
        {
        }
    }
    class ExportOfferCreator
    {
        public static function getOfferObject(array $offerParams)
        {
        }
    }
}
namespace Bitrix\Catalog {
    /**
     * @deprecated deprecated since catalog 16.5.0
     * @see \Bitrix\Catalog\Ebay\EbayXMLer
     *
     * Class EbayXMLer
     * @package Bitrix\Catalog
     */
    class EbayXMLer extends \Bitrix\Catalog\Ebay\EbayXMLer
    {
    }
}
namespace Bitrix\Catalog\Ebay {
    class ExportOffer implements \Iterator
    {
        /*Constructor input vars*/
        protected $iBlockId;
        protected $xmlData;
        /*Counted by constructor vars*/
        protected $bAllSections;
        protected $arSections = array();
        protected $arIblock;
        protected $startPosition = null;
        protected $includeSubsections = true;
        protected $intMaxSectionID = 0;
        protected $arSectionIDs = array();
        /*Iterator vars*/
        protected $currentKey = 0;
        protected $currentRecord = array();
        /*other vars*/
        protected $cnt = 0;
        /** @var null|\CIBlockResult $dbItems */
        protected $dbItems = NULL;
        protected $catalogType;
        protected $onlyAvailableElements = false;
        // export with flag "available"
        public function __construct($catalogType, $params)
        {
        }
        /*Iterator methods*/
        /**
         * Return the current element.
         *
         * @return array
         */
        public function current()
        {
        }
        /**
         * Return the key of the current element.
         *
         * @return int
         */
        public function key()
        {
        }
        /**
         * Move forward to next element.
         *
         * @return void
         */
        public function next()
        {
        }
        /**
         * Rewind the Iterator to the first element.
         *
         * @return void
         */
        public function rewind()
        {
        }
        /**
         * Checks if current position is valid.
         *
         * @return bool
         */
        public function valid()
        {
        }
        protected function createDbResObject()
        {
        }
        protected function getMaxSectionId(array $arAvailGroups)
        {
        }
        protected function getAvailGroups()
        {
        }
        protected function getSections($selectedGroups)
        {
        }
        protected function getIblockProps($serverName)
        {
        }
        protected function getQuantity($productId)
        {
        }
        /**
         * Return ruble currency code.
         *
         * @return string
         */
        public static function getRub()
        {
        }
        /**
         * Change setting "export only available elements".
         *
         * @param bool $flag
         */
        public function setOnlyAvailableFlag($flag)
        {
        }
        protected function getPrices($productId, $siteId)
        {
        }
        protected function getDetailPageUrl($detailPageUrl)
        {
        }
        protected function getPictureUrl($pictNo)
        {
        }
        protected function getParams($product, $arIblock)
        {
        }
        protected function getValue($arOffer, $param, $PROPERTY, $arProperties, $arUserTypeFormat)
        {
        }
        protected function getCategories($productId)
        {
        }
        protected function getSectionIDs(array $availGroups)
        {
        }
        protected function checkDiscountCache()
        {
        }
        protected function nextItem()
        {
        }
    }
}
namespace Bitrix\Catalog {
    /**
     * @deprecated deprecated since catalog 16.5.0
     * @see \Bitrix\Catalog\Ebay\ExportOffer
     *
     * Class ExportOffer
     * @package Bitrix\Catalog
     */
    class ExportOffer extends \Bitrix\Catalog\Ebay\ExportOffer
    {
    }
    /**
     * @deprecated deprecated since catalog 16.5.0
     * @see \Bitrix\Catalog\Ebay\ExportOfferCreator
     *
     * Class ExportOfferCreator
     * @package Bitrix\Catalog
     */
    class ExportOfferCreator extends \Bitrix\Catalog\Ebay\ExportOfferCreator
    {
    }
}
namespace Bitrix\Catalog\Ebay {
    class ExportOfferSKU extends \Bitrix\Catalog\Ebay\ExportOffer
    {
        protected $arSKUExport = array();
        protected $arSelectOfferProps;
        protected $arProperties;
        protected $arOfferIBlock = array();
        protected $arOffers = array();
        protected $intOfferIBlockID = 0;
        public function __construct($catalogType, $params)
        {
        }
        protected function getOffers()
        {
        }
        protected function getSKUExport()
        {
        }
        protected function getOfferTemplateUrl()
        {
        }
        protected function getOffersItemsDb($itemId)
        {
        }
        protected function getProperties($arItem)
        {
        }
        protected function getItemParams(array $itemOffer)
        {
        }
        /**
         * @param \_CIBElement $obOfferItem
         * @param array $arItem
         * @return array|mixed
         */
        protected function getItemProps($obOfferItem, array $arItem)
        {
        }
        /**
         * @param \CIBlockResult $rsOfferItems
         * @param array $arItem
         * @return array
         */
        protected function getMinPriceOffer($rsOfferItems, $arItem)
        {
        }
        protected function nextItem()
        {
        }
    }
}
namespace Bitrix\Catalog {
    /**
     * @deprecated deprecated since catalog 16.5.0
     * @see \Bitrix\Catalog\Ebay\ExportOfferSKU
     *
     * Class ExportOfferSKU
     * @package Bitrix\Catalog
     */
    class ExportOfferSKU extends \Bitrix\Catalog\Ebay\ExportOfferSKU
    {
    }
}
namespace Bitrix\Iblock\Url\AdminPage {
    abstract class BaseBuilder
    {
        public const TYPE_AUTODETECT = 'AUTO';
        public const TYPE_ID = 'BASE';
        protected const TYPE_WEIGHT = null;
        protected const PATH_PREFIX = '';
        protected const PAGE_ELEMENT_LIST = 'elementList';
        protected const PAGE_ELEMENT_DETAIL = 'elementDetail';
        protected const PAGE_ELEMENT_COPY = 'elementCopy';
        protected const PAGE_ELEMENT_SAVE = 'elementSave';
        protected const PAGE_ELEMENT_SEARCH = 'elementSearch';
        protected const PAGE_SECTION_LIST = 'sectionList';
        protected const PAGE_SECTION_DETAIL = 'sectionDetail';
        protected const PAGE_SECTION_COPY = 'sectionCopy';
        protected const PAGE_SECTION_SAVE = 'sectionSave';
        protected const PAGE_SECTION_SEARCH = 'sectionSearch';
        protected $id = null;
        protected $weight = null;
        protected $languageId = null;
        /** @var int */
        protected $iblockId = null;
        /** @var array */
        protected $iblock = null;
        /** @var string */
        protected $iblockListMode = null;
        /** @var bool */
        protected $iblockListMixed = null;
        /** @var string */
        protected $prefix = null;
        protected $urlParams = [];
        protected $compiledUrlParams = '';
        protected $config = [];
        protected $urlTemplates = [];
        protected $templateVariables = [];
        public function __construct()
        {
        }
        public function getId() : string
        {
        }
        public function getWeight() : ?int
        {
        }
        public function setLanguageId(string $languageId) : void
        {
        }
        public function getLanguageId() : string
        {
        }
        public function setIblockId(int $iblockId) : void
        {
        }
        public function setPrefix(string $prefix) : void
        {
        }
        public function setUrlParams(array $list) : void
        {
        }
        public function getCompiledParams(array $params) : string
        {
        }
        public function isIblockListMixed() : bool
        {
        }
        public abstract function use() : bool;
        public function getSectionListUrl(?int $parentId, array $options = [], string $additional = '') : string
        {
        }
        public function getSectionDetailUrl(?int $entityId, array $options = [], string $additional = '') : string
        {
        }
        public function getSectionSaveUrl(?int $entityId, array $options = [], string $additional = '') : string
        {
        }
        public function getSectionSearchUrl(array $options = [], string $additional = '') : string
        {
        }
        public function getElementListUrl(?int $parentId, array $options = [], string $additional = '') : string
        {
        }
        public function getElementDetailUrl(?int $entityId, array $options = [], string $additional = '') : string
        {
        }
        public function getElementCopyUrl(?int $entityId, array $options = [], string $additional = '') : string
        {
        }
        public function getElementSaveUrl(?int $entityId, array $options = [], string $additional = '') : string
        {
        }
        public function getElementSearchUrl(array $options = [], string $additional = '') : string
        {
        }
        public function getBaseParams() : string
        {
        }
        public function getLanguageParam() : string
        {
        }
        protected function initSettings() : void
        {
        }
        protected function initConfig() : void
        {
        }
        protected static function clearNull($value) : bool
        {
        }
        protected function resetIblock() : void
        {
        }
        protected function initIblockListMode() : void
        {
        }
        protected function compileUrlParams(array $params) : string
        {
        }
        protected function compileParamsLevel(string &$result, string $prefix, array $params) : void
        {
        }
        protected function getParentFilter(?int $parentId) : string
        {
        }
        protected function extendUrl(array $options = [], string $additional = '') : string
        {
        }
        protected abstract function initUrlTemplates() : void;
        protected function getUrlTemplate(string $templateId) : ?string
        {
        }
        protected function fillUrlTemplate(?string $template, array $replaces) : string
        {
        }
        protected function setTemplateVariable(string $name, string $value) : void
        {
        }
        protected function getExtendedVariables(array $options = [], string $additional = '') : array
        {
        }
        protected function getListVariables(string $page, ?int $parentId, array $options = [], string $additional = '') : array
        {
        }
        protected function getDetailVariables(string $page, int $entityId, array $options = [], string $additional = '') : array
        {
        }
        protected function getCopyAction() : string
        {
        }
    }
    class IblockBuilder extends \Bitrix\Iblock\Url\AdminPage\BaseBuilder
    {
        public const TYPE_ID = 'IBLOCK';
        protected const TYPE_WEIGHT = 100;
        protected const PATH_PREFIX = '/bitrix/admin/';
        public function use() : bool
        {
        }
        protected function initUrlTemplates() : void
        {
        }
    }
}
namespace Bitrix\Catalog\Url\AdminPage {
    class CatalogBuilder extends \Bitrix\Iblock\Url\AdminPage\IblockBuilder
    {
        public const TYPE_ID = 'CATALOG';
        protected const TYPE_WEIGHT = 200;
        public function use() : bool
        {
        }
        protected function initUrlTemplates() : void
        {
        }
    }
    class Registry
    {
        /**
         * Returns list of url builders for catalogs.
         *
         * @param Main\Event $event
         * @return Main\EventResult
         *
         * @noinspection PhpUnused
         */
        public static function getBuilderList(\Bitrix\Main\Event $event) : \Bitrix\Main\EventResult
        {
        }
    }
}
namespace Bitrix\Catalog\Discount {
    class DiscountManager
    {
        protected static $discountCache = array();
        protected static $typeCache = array();
        protected static $editUrlTemplate = array();
        protected static $saleIncluded = null;
        protected static $preloadedPriceData = array();
        protected static $preloadedProductsData = array();
        protected static $productProperties = array();
        /**
         * Return methods for prepare discount.
         *
         * @param Main\Event $event					Event data from discount manager.
         * @return Main\EventResult
         */
        public static function catalogDiscountManager(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Prepare discount before saving.
         *
         * @param array $discount				Discount data.
         * @param array $params					Params.
         * @return array|bool
         */
        public static function prepareData($discount, $params = array())
        {
        }
        /**
         * Return url for edit discount.
         *
         * @param array $discount			Discount data.
         * @return string
         */
        public static function getEditUrl($discount)
        {
        }
        /**
         * Check apply coupons.
         *
         * @param array $couponsList		Coupons.
         * @param array $basket				Basket data.
         * @param array $params				Calculate params.
         * @return array
         * @throws Main\ArgumentException
         */
        public static function calculateApplyCoupons(array $couponsList, array $basket, array $params)
        {
        }
        /**
         * Round basket item price.
         * @deprecated
         * @see \Bitrix\Catalog\Discount\DiscountManager::roundBasket
         *
         * @param array $basketItem		Basket item data.
         * @param array $roundData		Round rule.
         * @return array
         */
        public static function roundPrice(array $basketItem, array $roundData = array())
        {
        }
        /**
         * Round basket prices.
         *
         * @param array $basket				Basket.
         * @param array $basketRoundData	Round rules.
         * @param array $order				Order fields (without basket, can be absent).
         * @return array
         */
        public static function roundBasket(array $basket, array $basketRoundData = array(), array $order = array())
        {
        }
        /**
         * Apply catalog discount by basket item.
         *
         * @param array &$product			Product data.
         * @param array $discount			Discount data.
         * @return void
         */
        public static function applyDiscount(&$product, $discount)
        {
        }
        /**
         * Returns price for product which has catalog group.
         *
         * @param int $productId		Product id.
         * @param int $catalogGroupId	Catalog group.
         * @return null|array
         */
        public static function getPriceDataByProductId($productId, $catalogGroupId)
        {
        }
        /**
         * Set property values cache for product.
         *
         * @param int $productId		Product id.
         * @param array $props			Property values.
         * @return void
         */
        public static function setProductPropertiesCache($productId, $props)
        {
        }
        /**
         * Clear property values cache.
         *
         * @return void
         */
        public static function clearProductPropertiesCache()
        {
        }
        /**
         * Clear products cache.
         *
         * @return void
         */
        public static function clearProductsCache()
        {
        }
        /**
         * Clear product prices cache.
         *
         * @return void
         */
        public static function clearProductPricesCache()
        {
        }
        /**
         * Preloads prices for products with catalog groups.
         *
         * @param array $productIds		List of product ids.
         * @param array $catalogGroups	Catalog groups.
         * @return void
         */
        public static function preloadPriceData(array $productIds, array $catalogGroups)
        {
        }
        private static function fillByPreloadedPrices(array &$productData, array $priceList)
        {
        }
        /**
         * Load product data for calculate discounts.
         *
         * @param array $productIds		Product id list.
         * @param array $userGroups		User group list.
         * @return void
         */
        public static function preloadProductDataToExtendOrder(array $productIds, array $userGroups)
        {
        }
        /**
         * Extend basket data.
         *
         * @param Main\Event $event			Event.
         * @return Main\EventResult
         */
        public static function extendOrderData(\Bitrix\Main\Event $event)
        {
        }
        protected static function getCacheKeyForEntityList(array $entityList)
        {
        }
        protected static function extendProductIdsToOffer(array $productIds)
        {
        }
        /**
         * Filter for catalog basket items.
         *
         * @param array $basketItem			Basket item data.
         * @return bool
         */
        protected static function basketFilter($basketItem)
        {
        }
        /**
         * Filter for stop discount calculate for basket item.
         *
         * @param array $basketItem			Basket item data.
         * @return bool
         */
        protected static function lastDiscountFilter($basketItem)
        {
        }
        /**
         * Load discount data from db.
         * @param int $id					Discount id.
         * @param array $discount			Exist discount data.
         * @return bool|array
         */
        protected static function loadFromDatabase($id, $discount)
        {
        }
        /**
         * Prepare entity to iblock and catalog fields.
         *
         * @param array $entityList			Entity list.
         * @return array|bool
         */
        protected static function prepareEntity($entityList)
        {
        }
        /**
         * Returns product separate by iblocks.
         *
         * @param array $productList		Product id list.
         * @return array
         */
        protected static function getProductIblocks($productList)
        {
        }
        /**
         * Create property list for discounts.
         *
         * @param array &$entityData			Entity data.
         * @param array $iblockData				Iblock data.
         * @return void
         */
        protected static function fillProductPropertyList(&$entityData, $iblockData)
        {
        }
        /**
         * Convert properties values to discount format.
         *
         * @param array &$productData			Product data.
         * @param array $propertyValues			Product properties.
         * @param array $entityData				Entity data.
         * @param array $iblockData				Iblock data.
         * @return void
         */
        protected static function convertProperties(&$productData, $propertyValues, $entityData, $iblockData)
        {
        }
        /**
         * Returns parent product data.
         *
         * @param array &$productData			Product data.
         * @param array $entityData				Entity data.
         * @param array $iblockData				Iblock data.
         * @return void
         */
        protected static function getParentProducts(&$productData, $entityData, $iblockData)
        {
        }
        protected static function loadIblockFields(array $productIds, array $fields)
        {
        }
        protected static function loadSections(array $productIds)
        {
        }
        protected static function loadCatalogFields(array $productIds, array $fields)
        {
        }
        protected static function fillProperties(array &$productData, array $productIds, array $iblockData, array $entityData)
        {
        }
        /**
         * Returns product data.
         *
         * @param array &$productData			Product data.
         * @param array $entityData				Entity data.
         * @param array $iblockData				Iblock list data.
         * @return void
         */
        protected static function getProductData(&$productData, $entityData, $iblockData)
        {
        }
        /**
         * Create sale action.
         *
         * @param array &$discount			Discount data.
         * @param array $params				Manager parameters.
         * @return void
         */
        protected static function createSaleAction(&$discount, $params)
        {
        }
        protected static function fillProductPriceList(&$entityData, $priceIds)
        {
        }
        /**
         * Rounded catalog discount value.
         *
         * @param float|int $value Value.
         * @param string $currency Currency.
         * @return float
         */
        protected static function roundValue($value, $currency)
        {
        }
        /**
         * Returns data after price rounding.
         * @internal
         *
         * @param array $basketItem     Basket row data.
         * @param array $roundData      Round rule.
         * @return array
         */
        private static function getRoundResult(array $basketItem, array $roundData)
        {
        }
        private static function getPriceDataByPriceId($priceId)
        {
        }
        private static function getCachedProductProperty($productId, $propertyId)
        {
        }
    }
}
namespace Bitrix\Catalog\Controller {
    class Controller extends \Bitrix\Rest\Integration\Controller\Base
    {
        const IBLOCK_READ = 'iblock_admin_display';
        const IBLOCK_ELEMENT_READ = 'element_read';
        const IBLOCK_ELEMENT_EDIT = 'element_edit';
        const IBLOCK_ELEMENT_DELETE = 'element_delete';
        const IBLOCK_SECTION_READ = 'section_read';
        const IBLOCK_SECTION_EDIT = 'section_edit';
        const IBLOCK_SECTION_DELETE = 'section_delete';
        const IBLOCK_ELEMENT_EDIT_PRICE = 'element_edit_price';
        const IBLOCK_SECTION_SECTION_BIND = 'section_section_bind';
        const IBLOCK_ELEMENT_SECTION_BIND = 'section_element_bind';
        const IBLOCK_EDIT = 'iblock_edit';
        protected function createViewManager(\Bitrix\Main\Engine\Action $action)
        {
        }
        protected static function getApplication()
        {
        }
        protected static function getGlobalUser()
        {
        }
        protected static function getNavData($start, $orm = false)
        {
        }
    }
    final class Catalog extends \Bitrix\Catalog\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        public function isOffersAction($id)
        {
        }
        public function listAction($select = [], $filter = [], $order = [], $start = 0)
        {
        }
        public function getAction($id)
        {
        }
        public function addAction($fields)
        {
        }
        public function updateAction($id, array $fields)
        {
        }
        public function deleteAction($id)
        {
        }
        //endregion
        protected function isOffers($id)
        {
        }
        protected function getEntityTable()
        {
        }
        protected function exists($id)
        {
        }
        protected function get($id)
        {
        }
        protected function addValidate(array $fields)
        {
        }
        protected function updateValidate(array $fields)
        {
        }
        protected function deleteValidate($id)
        {
        }
        protected function checkPermissionEntity($name, $arguments = [])
        {
        }
        protected function checkModifyPermissionEntity()
        {
        }
        protected function checkReadPermissionEntity()
        {
        }
    }
    final class Product extends \Bitrix\Catalog\Controller\Controller
    {
        public function configureActions()
        {
        }
        //region Actions
        public function getFieldsByFilterAction($filter)
        {
        }
        public function listAction($select = [], $filter = [], $order = [], $start = 0)
        {
        }
        public function getAction($id)
        {
        }
        public function addAction($fields)
        {
        }
        public function updateAction($id, array $fields)
        {
        }
        public function deleteAction($id)
        {
        }
        public function downloadAction(array $fields)
        {
        }
        //endregion Actions
        protected function splitFieldsByEntity($fields)
        {
        }
        protected function preparePropertyFields($fields)
        {
        }
        protected function preparePropertyFieldsUpdate($fields)
        {
        }
        protected function fillPropertyFieldsDefaultPropertyValues($id, $iblockId, $propertyValues)
        {
        }
        protected function exists($id)
        {
        }
        protected function get($id)
        {
        }
        protected function addValidate($fields)
        {
        }
        protected function updateValidate($fields)
        {
        }
        protected function checkFields($fields)
        {
        }
        protected function preparePropertyValues($list, $iblockId)
        {
        }
        protected function checkPermissionEntity($name, $arguments = [])
        {
        }
        protected function getAllowedFieldsProduct()
        {
        }
        protected function checkFieldsDownload($fields)
        {
        }
        public function addPropertyAction($fields)
        {
        }
        //region checkPermissionController
        protected function checkModifyPermissionEntity()
        {
        }
        protected function checkReadPermissionEntity()
        {
        }
        //endregion checkPermissionController
        //region checkPermissionIBlock
        protected function checkPermissionIBlockElementAdd($iblockId)
        {
        }
        protected function checkPermissionIBlockElementUpdate($elementId)
        {
        }
        protected function checkPermissionIBlockModify($iblockId)
        {
        }
        protected function checkPermissionIBlockElementModify($iblockId, $elementId)
        {
        }
        protected function checkPermissionIBlockElementDelete($elementId)
        {
        }
        protected function checkPermissionIBlockElementGet($elementId)
        {
        }
        protected function checkPermissionIBlockElementList($iblockId)
        {
        }
        protected function checkPermissionIBlockElementSectionBindModify($iblockId, $iblockSectionId)
        {
        }
        protected function checkPermissionIBlockElementSectionBindUpdate($iblockSectionId)
        {
        }
        protected function getIBlockBySectionId($id)
        {
        }
    }
    final class Store extends \Bitrix\Catalog\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function getAction($id)
        {
        }
        //endregion
        protected function exists($id)
        {
        }
        protected function getEntityTable()
        {
        }
        protected function checkModifyPermissionEntity()
        {
        }
        protected function checkReadPermissionEntity()
        {
        }
    }
    final class Enum extends \Bitrix\Catalog\Controller\Controller
    {
        public function getRoundTypesAction()
        {
        }
        protected function checkPermissionEntity($name, $arguments = [])
        {
        }
    }
    final class RoundingRule extends \Bitrix\Catalog\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function getAction($id)
        {
        }
        //endregion
        protected function exists($id)
        {
        }
        protected function getEntityTable()
        {
        }
        protected function checkModifyPermissionEntity()
        {
        }
        protected function checkReadPermissionEntity()
        {
        }
    }
    final class Extra extends \Bitrix\Catalog\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function getAction($id)
        {
        }
        //endregion
        protected function getEntityTable()
        {
        }
        protected function exists($id)
        {
        }
        protected function checkModifyPermissionEntity()
        {
        }
        protected function checkReadPermissionEntity()
        {
        }
    }
    final class Vat extends \Bitrix\Catalog\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function getAction($id)
        {
        }
        //endregion
        protected function exists($id)
        {
        }
        protected function getEntityTable()
        {
        }
        protected function checkModifyPermissionEntity()
        {
        }
        protected function checkReadPermissionEntity()
        {
        }
    }
    final class Section extends \Bitrix\Catalog\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function getAction($id)
        {
        }
        public function addAction($fields)
        {
        }
        public function updateAction($id, array $fields)
        {
        }
        public function deleteAction($id)
        {
        }
        //endregion
        protected function exists($id)
        {
        }
        protected function get($id)
        {
        }
        protected function addValidate($fields)
        {
        }
        protected function updateValidate($fields)
        {
        }
        //region checkPermissionController
        protected function checkModifyPermissionEntity()
        {
        }
        protected function checkReadPermissionEntity()
        {
        }
        //endregion
        //region checkPermissionIBlock
        protected function checkPermissionIBlockSectionAdd($iblockId)
        {
        }
        protected function checkPermissionIBlockSectionUpdate($sectionId)
        {
        }
        protected function checkPermissionIBlockSectionModify($iblockId, $sectionId)
        {
        }
        protected function checkPermissionIBlockSectionSectionBindModify($iblockId, $iblockSectionId)
        {
        }
        protected function checkPermissionIBlockSectionSectionBindUpdate($iblockSectionId)
        {
        }
        protected function checkPermissionIBlockSectionDelete($sectionId)
        {
        }
        protected function checkPermissionIBlockSectionGet($sectionId)
        {
        }
        protected function checkPermissionIBlockSectionList($iblockId)
        {
        }
        protected function getIBlockBySectionId($id)
        {
        }
    }
    final class Price extends \Bitrix\Catalog\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function getAction($id)
        {
        }
        public function modifyAction($fields)
        {
        }
        public function deleteAction($id)
        {
        }
        //endregion
        protected function modify($fields)
        {
        }
        protected function modifyBefore($fields)
        {
        }
        private static function normalizeFields(array &$fields)
        {
        }
        protected function modifyValidate($fields)
        {
        }
        protected function getEntityTable()
        {
        }
        protected function exists($id)
        {
        }
        protected function deleteValidate($id)
        {
        }
        //region checkPermissionController
        protected function checkPermissionEntity($name, $arguments = [])
        {
        }
        protected function checkModifyPermissionPrice($name, $arguments)
        {
        }
        protected function checkReadPermissionEntity()
        {
        }
        //endregion
        //region checkPermissionIBlock
        private function checkPermissionIBlockElementPriceModify($productId)
        {
        }
    }
    final class Ratio extends \Bitrix\Catalog\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function getAction($id)
        {
        }
        //endregion
        protected function getEntityTable()
        {
        }
        protected function exists($id)
        {
        }
        protected function checkModifyPermissionEntity()
        {
        }
        protected function checkReadPermissionEntity()
        {
        }
    }
    final class Measure extends \Bitrix\Catalog\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function getAction($id)
        {
        }
        //endregion
        protected function getEntityTable()
        {
        }
        protected function exists($id)
        {
        }
        protected function checkModifyPermissionEntity()
        {
        }
        protected function checkReadPermissionEntity()
        {
        }
    }
    final class PriceType extends \Bitrix\Catalog\Controller\Controller
    {
        //region Actions
        public function getFieldsAction()
        {
        }
        public function listAction($select = [], $filter = [], $order = [], \Bitrix\Main\UI\PageNavigation $pageNavigation)
        {
        }
        public function getAction($id)
        {
        }
        //endregion
        protected function getEntityTable()
        {
        }
        protected function exists($id)
        {
        }
        protected function checkModifyPermissionEntity()
        {
        }
        protected function checkReadPermissionEntity()
        {
        }
    }
}
namespace Bitrix\Catalog\v2 {
    /**
     * Class BaseEntity
     *
     * @package Bitrix\Catalog\v2
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    abstract class BaseEntity
    {
        /** @var \Bitrix\Catalog\v2\RepositoryContract */
        protected $entityRepository;
        /** @var \Bitrix\Catalog\v2\Fields\FieldStorage */
        private $fieldStorage;
        /** @var \Bitrix\Catalog\v2\BaseCollection */
        private $parentCollection;
        // ToDo do we need $repository for every base entity?
        public function __construct(\Bitrix\Catalog\v2\RepositoryContract $repository = null)
        {
        }
        protected function getFieldStorage() : \Bitrix\Catalog\v2\Fields\FieldStorage
        {
        }
        protected function createFieldStorage() : \Bitrix\Catalog\v2\Fields\FieldStorage
        {
        }
        public function initFields(array $fields) : self
        {
        }
        public function setParentCollection(?\Bitrix\Catalog\v2\BaseCollection $collection) : self
        {
        }
        public function getParentCollection() : ?\Bitrix\Catalog\v2\BaseCollection
        {
        }
        public function getParent() : ?self
        {
        }
        public function getHash() : string
        {
        }
        public function setField(string $name, $value) : self
        {
        }
        public function getField(string $name)
        {
        }
        // ToDo make map to execute set{$name} instead of setField($name) to check each field limitations? e.g. price with setFields is string instead of float
        public function setFields(array $fields) : self
        {
        }
        public function getFields() : array
        {
        }
        public function getChangedFields() : array
        {
        }
        public function hasChangedFields() : bool
        {
        }
        public function isChanged() : bool
        {
        }
        public function isNew() : bool
        {
        }
        public function getId() : ?int
        {
        }
        public function setId(int $id) : self
        {
        }
        public function remove() : self
        {
        }
        public function save() : \Bitrix\Main\Result
        {
        }
        protected function getFieldsMap() : ?array
        {
        }
        /**
         * ToDo is it a BaseEntity method? do all children need it? e.g. Property - doesn't
         *
         * @return \Bitrix\Main\Result
         * @internal
         */
        public function saveInternal() : \Bitrix\Main\Result
        {
        }
        protected function saveInternalEntity() : \Bitrix\Main\Result
        {
        }
        /**
         * @internal
         */
        public function deleteInternal() : \Bitrix\Main\Result
        {
        }
        /**
         * @param bool $initCollections
         * @return \Generator|\Bitrix\Catalog\v2\BaseCollection[]
         */
        protected final function getChildCollections(bool $initCollections = false) : \Generator
        {
        }
        /**
         * @return $this
         * @internal
         */
        public function clearChangedFields() : self
        {
        }
    }
    /**
     * Class BaseIblockElementFactory
     *
     * @package Bitrix\Catalog\v2
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    abstract class BaseIblockElementFactory
    {
        /** @var \Bitrix\Catalog\v2\IoC\ContainerContract */
        protected $container;
        /** @var \Bitrix\Catalog\v2\Iblock\IblockInfo */
        protected $iblockInfo;
        /**
         * BaseIblockElementFactory constructor.
         *
         * @param \Bitrix\Catalog\v2\IoC\ContainerContract $container
         * @param \Bitrix\Catalog\v2\Iblock\IblockInfo $iblockInfo
         */
        public function __construct(\Bitrix\Catalog\v2\IoC\ContainerContract $container, \Bitrix\Catalog\v2\Iblock\IblockInfo $iblockInfo)
        {
        }
        /**
         * @param string $entityClass
         * @return \Bitrix\Catalog\v2\BaseIblockElementEntity
         */
        public abstract function createEntity(string $entityClass) : \Bitrix\Catalog\v2\BaseIblockElementEntity;
        protected function makeEntity(string $entityClass) : \Bitrix\Catalog\v2\BaseIblockElementEntity
        {
        }
    }
}
namespace Bitrix\Catalog\v2\Section {
    /**
     * Class SectionFactory
     *
     * @package Bitrix\Catalog\v2\Section
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class SectionFactory
    {
        public const SECTION = \Bitrix\Catalog\v2\Section\Section::class;
        public const SECTION_COLLECTION = \Bitrix\Catalog\v2\Section\SectionCollection::class;
        protected $container;
        /**
         * SectionFactory constructor.
         *
         * @param \Bitrix\Catalog\v2\IoC\ContainerContract $container
         */
        public function __construct(\Bitrix\Catalog\v2\IoC\ContainerContract $container)
        {
        }
        /**
         * @return \Bitrix\Catalog\v2\Section\Section
         */
        public function createEntity() : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\BaseEntity|null $parent
         * @return \Bitrix\Catalog\v2\Section\SectionCollection
         */
        public function createCollection(\Bitrix\Catalog\v2\BaseEntity $parent = null) : \Bitrix\Catalog\v2\BaseCollection
        {
        }
    }
}
namespace Bitrix\Catalog\v2 {
    /**
     * Interface RepositoryContract
     *
     * @package Bitrix\Catalog\v2
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    interface RepositoryContract
    {
        // ToDo by primary with spread ...?
        /**
         * @param int $id
         * @return mixed
         */
        public function getEntityById(int $id);
        /**
         * @param $params array|\ArrayAccess
         * @return mixed
         */
        public function getEntitiesBy($params);
        /**
         * @param \Bitrix\Catalog\v2\BaseEntity ...$entities
         * @return \Bitrix\Main\Result
         */
        public function save(\Bitrix\Catalog\v2\BaseEntity ...$entities) : \Bitrix\Main\Result;
        /**
         * @param \Bitrix\Catalog\v2\BaseEntity ...$entities
         * @return \Bitrix\Main\Result
         */
        public function delete(\Bitrix\Catalog\v2\BaseEntity ...$entities) : \Bitrix\Main\Result;
    }
}
namespace Bitrix\Catalog\v2\Section {
    /**
     * Interface SectionRepositoryContract
     *
     * @package Bitrix\Catalog\v2\Section
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    interface SectionRepositoryContract extends \Bitrix\Catalog\v2\RepositoryContract
    {
        public function getCollectionByProduct(\Bitrix\Catalog\v2\Product\BaseProduct $product) : \Bitrix\Catalog\v2\BaseCollection;
    }
    /**
     * Class SectionRepository
     *
     * @package Bitrix\Catalog\v2\Section
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class SectionRepository implements \Bitrix\Catalog\v2\Section\SectionRepositoryContract
    {
        /** @var \Bitrix\Catalog\v2\Section\SectionFactory */
        protected $factory;
        public function __construct(\Bitrix\Catalog\v2\Section\SectionFactory $factory)
        {
        }
        public function getEntityById(int $id) : ?\Bitrix\Catalog\v2\BaseEntity
        {
        }
        // ToDo custom load section entities by filter?
        public function getEntitiesBy($params) : array
        {
        }
        public function save(\Bitrix\Catalog\v2\BaseEntity ...$entities) : \Bitrix\Main\Result
        {
        }
        public function delete(\Bitrix\Catalog\v2\BaseEntity ...$entities) : \Bitrix\Main\Result
        {
        }
        public function getCollectionByProduct(\Bitrix\Catalog\v2\Product\BaseProduct $product) : \Bitrix\Catalog\v2\BaseCollection
        {
        }
        protected function getListByProductId(int $productId) : array
        {
        }
        // ToDo getList for "get by filter" sections
        protected function getList(array $params) : array
        {
        }
        protected function createEntity(array $fields) : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        protected function createCollection(array $entityFields, \Bitrix\Catalog\v2\Product\BaseProduct $product) : \Bitrix\Catalog\v2\BaseCollection
        {
        }
    }
}
namespace Bitrix\Catalog\v2 {
    /**
     * Class BaseCollection
     *
     * @package Bitrix\Catalog\v2
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    abstract class BaseCollection implements \IteratorAggregate, \Countable
    {
        /** @var \Bitrix\Catalog\v2\BaseEntity */
        private $parent;
        /** @var \Bitrix\Catalog\v2\BaseEntity[] */
        protected $items = [];
        /** @var \Bitrix\Catalog\v2\BaseEntity[] */
        protected $removedItems = [];
        /** @var \Closure */
        private $iteratorCallback;
        /** @var bool */
        private $loaded = false;
        /** @var bool */
        private $parentChanged = false;
        public function getParent() : ?\Bitrix\Catalog\v2\BaseEntity
        {
        }
        public function setParent(?\Bitrix\Catalog\v2\BaseEntity $parent) : self
        {
        }
        public function add(\Bitrix\Catalog\v2\BaseEntity ...$items) : self
        {
        }
        protected function addInternal(\Bitrix\Catalog\v2\BaseEntity $item) : void
        {
        }
        public function remove(\Bitrix\Catalog\v2\BaseEntity ...$items) : self
        {
        }
        private function setItem(\Bitrix\Catalog\v2\BaseEntity $item) : self
        {
        }
        private function unsetItem(\Bitrix\Catalog\v2\BaseEntity $item) : self
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\BaseEntity ...$items
         * @return $this
         * @internal
         */
        public function clearRemoved(\Bitrix\Catalog\v2\BaseEntity ...$items) : self
        {
        }
        /**
         * @return $this
         * @internal
         */
        public function clearChanged() : self
        {
        }
        public function isEmpty() : bool
        {
        }
        public function isChanged() : bool
        {
        }
        public function findById(int $id) : ?\Bitrix\Catalog\v2\BaseEntity
        {
        }
        public function toArray() : array
        {
        }
        /*public function max($field)
        	{
        		return array_reduce($this->collection, static function ($result, $item) use ($field) {
        			$value = $item[$field] ?? null;
        
        			return $result === null || $value > $result ? $value : $result;
        		});
        	}
        
        	public function min($field)
        	{
        		return array_reduce($this->collection, static function ($result, $item) use ($field) {
        			$value = $item[$field] ?? null;
        
        			return $result === null || $value < $result ? $value : $result;
        		});
        	}
        
        	public function avg($field)
        	{
        		return array_sum(array_column($this->collection, $field)) / count($this->collection);
        	}*/
        /**
         * @return \ArrayIterator|\Traversable|\Bitrix\Catalog\v2\BaseEntity[]
         */
        public function getRemovedItems() : \ArrayIterator
        {
        }
        /**
         * @return \ArrayIterator|\Traversable|\Bitrix\Catalog\v2\BaseEntity[]
         */
        public function getIterator()
        {
        }
        protected function loadItems() : void
        {
        }
        /**
         * @return bool
         */
        protected function isLoaded() : bool
        {
        }
        protected function loadByIteratorCallback() : void
        {
        }
        protected function getAlreadyLoadedFilter() : array
        {
        }
        /**
         * @param \Closure $iteratorCallback
         * @return BaseCollection
         * @internal
         */
        public function setIteratorCallback(\Closure $iteratorCallback) : \Bitrix\Catalog\v2\BaseCollection
        {
        }
        /**
         * @return \Bitrix\Main\Result
         * @internal
         */
        public function saveInternal() : \Bitrix\Main\Result
        {
        }
        /**
         * @return \Bitrix\Main\Result
         * @internal
         */
        public function deleteInternal() : \Bitrix\Main\Result
        {
        }
        public function count() : int
        {
        }
    }
}
namespace Bitrix\Catalog\v2\Section {
    /**
     * Class SectionCollection
     *
     * @package Bitrix\Catalog\v2\Section
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class SectionCollection extends \Bitrix\Catalog\v2\BaseCollection
    {
        /** @var \Bitrix\Catalog\v2\Section\SectionFactory */
        protected $factory;
        /** @var \Bitrix\Catalog\v2\Section\SectionRepositoryContract */
        protected $repository;
        public function __construct(\Bitrix\Catalog\v2\Section\SectionFactory $factory, \Bitrix\Catalog\v2\Section\SectionRepositoryContract $repository)
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\BaseEntity|\Bitrix\Catalog\v2\Section\HasSectionCollection|null $parent
         * @return \Bitrix\Catalog\v2\BaseCollection
         */
        public function setParent(?\Bitrix\Catalog\v2\BaseEntity $parent) : \Bitrix\Catalog\v2\BaseCollection
        {
        }
        /**
         * @param array|int[] $values
         * @return $this
         */
        public function setValues(array $values) : self
        {
        }
        public function getValues() : array
        {
        }
        private function filterValues(array $values) : array
        {
        }
        public function saveInternal() : \Bitrix\Main\Result
        {
        }
    }
    /**
     * Class Section
     *
     * @package Bitrix\Catalog\v2\Section
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class Section extends \Bitrix\Catalog\v2\BaseEntity
    {
        public function __construct(\Bitrix\Catalog\v2\Section\SectionRepositoryContract $sectionRepository)
        {
        }
        public function setValue(int $value) : self
        {
        }
        public function getValue() : int
        {
        }
    }
    /**
     * Interface HasSectionCollection
     *
     * @package Bitrix\Catalog\v2\Section
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    interface HasSectionCollection
    {
        public function getSectionCollection() : \Bitrix\Catalog\v2\Section\SectionCollection;
        public function setSectionCollection(\Bitrix\Catalog\v2\Section\SectionCollection $sectionCollection);
    }
}
namespace Bitrix\Catalog\v2\MeasureRatio {
    /**
     * Interface MeasureRatioRepositoryContract
     *
     * @package Bitrix\Catalog\v2\MeasureRatio
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    interface MeasureRatioRepositoryContract extends \Bitrix\Catalog\v2\RepositoryContract
    {
        public function getCollectionByParent(\Bitrix\Catalog\v2\Sku\BaseSku $sku) : \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioCollection;
    }
    /**
     * Interface HasMeasureRatioCollection
     *
     * @package Bitrix\Catalog\v2\MeasureRatio
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    interface HasMeasureRatioCollection
    {
        public function getMeasureRatioCollection() : \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioCollection;
        public function setMeasureRatioCollection(\Bitrix\Catalog\v2\MeasureRatio\MeasureRatioCollection $measureRatioCollection);
    }
    /**
     * Class BaseMeasureRatio
     *
     * @package Bitrix\Catalog\v2\MeasureRatio
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    abstract class BaseMeasureRatio extends \Bitrix\Catalog\v2\BaseEntity
    {
        public function __construct(\Bitrix\Catalog\v2\MeasureRatio\MeasureRatioRepositoryContract $measureRatioRepository)
        {
        }
        public function setParentCollection(?\Bitrix\Catalog\v2\BaseCollection $collection) : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        public function setRatio(float $ratio) : self
        {
        }
        public function getRatio() : string
        {
        }
        public function isDefault() : bool
        {
        }
        public function setDefault(bool $state = true) : self
        {
        }
        public function setProductId(int $productId) : self
        {
        }
        public function getProductId() : int
        {
        }
        protected function getFieldsMap() : array
        {
        }
    }
    /**
     * Class SimpleMeasureRatio
     *
     * @package Bitrix\Catalog\v2\MeasureRatio
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class SimpleMeasureRatio extends \Bitrix\Catalog\v2\MeasureRatio\BaseMeasureRatio
    {
    }
    /**
     * Class MeasureRatioCollection
     *
     * @package Bitrix\Catalog\v2\MeasureRatio
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class MeasureRatioCollection extends \Bitrix\Catalog\v2\BaseCollection
    {
        /** @var \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioFactory */
        protected $factory;
        public function __construct(\Bitrix\Catalog\v2\MeasureRatio\MeasureRatioFactory $factory)
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\BaseEntity|\Bitrix\Catalog\v2\MeasureRatio\HasMeasureRatioCollection|null $parent
         * @return \Bitrix\Catalog\v2\BaseCollection
         */
        public function setParent(?\Bitrix\Catalog\v2\BaseEntity $parent) : \Bitrix\Catalog\v2\BaseCollection
        {
        }
        public function findDefault() : ?\Bitrix\Catalog\v2\MeasureRatio\BaseMeasureRatio
        {
        }
        // ToDo set product id by default? in prices too?
        public function create() : \Bitrix\Catalog\v2\MeasureRatio\BaseMeasureRatio
        {
        }
        public function setDefault(float $ratio) : \Bitrix\Catalog\v2\MeasureRatio\BaseMeasureRatio
        {
        }
    }
    /**
     * Class MeasureRatioRepository
     *
     * @package Bitrix\Catalog\v2\MeasureRatio
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class MeasureRatioRepository implements \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioRepositoryContract
    {
        /** @var \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioFactory */
        protected $factory;
        public function __construct(\Bitrix\Catalog\v2\MeasureRatio\MeasureRatioFactory $factory)
        {
        }
        public function getEntityById(int $id) : ?\Bitrix\Catalog\v2\BaseEntity
        {
        }
        public function getEntitiesBy($params) : array
        {
        }
        public function getProductId(\Bitrix\Catalog\v2\BaseEntity $entity) : ?int
        {
        }
        public function save(\Bitrix\Catalog\v2\BaseEntity ...$entities) : \Bitrix\Main\Result
        {
        }
        public function delete(\Bitrix\Catalog\v2\BaseEntity ...$entities) : \Bitrix\Main\Result
        {
        }
        public function getCollectionByParent(\Bitrix\Catalog\v2\Sku\BaseSku $sku) : \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioCollection
        {
        }
        protected function getByProductId(int $skuId) : array
        {
        }
        protected function getList(array $params) : array
        {
        }
        protected function createEntity(array $fields) : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        protected function createCollection(array $entityFields, \Bitrix\Catalog\v2\Sku\BaseSku $sku) : \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioCollection
        {
        }
        protected function addInternal(array $fields) : \Bitrix\Main\Result
        {
        }
        protected function updateInternal(int $id, array $fields) : \Bitrix\Main\Result
        {
        }
        protected function deleteInternal(int $id) : \Bitrix\Main\Result
        {
        }
    }
    /**
     * Class MeasureRatioFactory
     *
     * @package Bitrix\Catalog\v2\MeasureRatio
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class MeasureRatioFactory
    {
        public const SIMPLE_MEASURE_RATIO = \Bitrix\Catalog\v2\MeasureRatio\SimpleMeasureRatio::class;
        public const MEASURE_RATIO_COLLECTION = \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioCollection::class;
        protected $container;
        /**
         * MeasureRatioFactory constructor.
         *
         * @param \Bitrix\Catalog\v2\IoC\ContainerContract $container
         */
        public function __construct(\Bitrix\Catalog\v2\IoC\ContainerContract $container)
        {
        }
        /**
         * @return \Bitrix\Catalog\v2\MeasureRatio\BaseMeasureRatio
         */
        public function createEntity() : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\BaseEntity|null $parent
         * @return \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioCollection
         */
        public function createCollection(\Bitrix\Catalog\v2\BaseEntity $parent = null) : \Bitrix\Catalog\v2\BaseCollection
        {
        }
    }
}
namespace Bitrix\Catalog\v2\Converter {
    /**
     * Class ProductConverter
     *
     * @package Bitrix\Catalog\v2\Converter
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class ProductConverter
    {
        public const SIMPLE_PRODUCT = 'SIMPLE_PRODUCT';
        public const SKU_PRODUCT = 'SKU_PRODUCT';
        private $container;
        public function __construct(\Bitrix\Catalog\v2\IoC\ContainerContract $container)
        {
        }
        public function convert(\Bitrix\Catalog\v2\Product\BaseProduct $product, string $destinationType) : \Bitrix\Main\Result
        {
        }
        protected function convertSimpleProductToSkuProduct(\Bitrix\Catalog\v2\Product\BaseProduct $product) : \Bitrix\Main\Result
        {
        }
        protected function convertSimpleSkuToSku(\Bitrix\Catalog\v2\Sku\BaseSku $simpleItem) : \Bitrix\Catalog\v2\Sku\BaseSku
        {
        }
        // ToDo currently doesn't work properly because of different calculation handlers of old api
        protected function convertSkuToSimpleProduct(\Bitrix\Catalog\v2\Product\BaseProduct $product) : \Bitrix\Main\Result
        {
        }
        protected function convertSkuToSimpleSku(\Bitrix\Catalog\v2\Sku\BaseSku $skuItem) : \Bitrix\Catalog\v2\Sku\BaseSku
        {
        }
    }
}
namespace Bitrix\Catalog\v2\Property {
    /**
     * Interface HasPropertyCollection
     *
     * @package Bitrix\Catalog\v2\Property
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    interface HasPropertyCollection
    {
        public function getPropertyCollection() : \Bitrix\Catalog\v2\Property\PropertyCollection;
        public function setPropertyCollection(\Bitrix\Catalog\v2\Property\PropertyCollection $propertyCollection);
    }
    /**
     * Class PropertyCollection
     *
     * @package Bitrix\Catalog\v2\Property
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class PropertyCollection extends \Bitrix\Catalog\v2\BaseCollection
    {
        /** @var \Bitrix\Catalog\v2\Property\PropertyRepositoryContract */
        protected $repository;
        public function __construct(\Bitrix\Catalog\v2\Property\PropertyRepositoryContract $repository)
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\BaseEntity|\Bitrix\Catalog\v2\Property\HasPropertyCollection|null $parent
         * @return \Bitrix\Catalog\v2\BaseCollection
         */
        public function setParent(?\Bitrix\Catalog\v2\BaseEntity $parent) : \Bitrix\Catalog\v2\BaseCollection
        {
        }
        public function findBySetting(string $field, $value) : ?\Bitrix\Catalog\v2\Property\Property
        {
        }
        public function findByCode(string $code) : ?\Bitrix\Catalog\v2\Property\Property
        {
        }
        /**
         * @param array $propertyValues
         * @return $this
         */
        public function setValues(array $propertyValues) : self
        {
        }
        public function getValues() : array
        {
        }
        public function saveInternal() : \Bitrix\Main\Result
        {
        }
        public function deleteInternal() : \Bitrix\Main\Result
        {
        }
    }
    /**
     * Interface PropertyRepositoryContract
     *
     * @package Bitrix\Catalog\v2\Property
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    interface PropertyRepositoryContract extends \Bitrix\Catalog\v2\RepositoryContract
    {
        public function getCollectionByParent(\Bitrix\Catalog\v2\BaseIblockElementEntity $entity) : \Bitrix\Catalog\v2\BaseCollection;
    }
    /**
     * Class PropertyRepository
     *
     * @package Bitrix\Catalog\v2\Property
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class PropertyRepository implements \Bitrix\Catalog\v2\Property\PropertyRepositoryContract
    {
        /** @var \Bitrix\Catalog\v2\Property\PropertyFactory */
        protected $factory;
        /** @var \Bitrix\Catalog\v2\PropertyValue\PropertyValueFactory */
        private $propertyValueFactory;
        public function __construct(\Bitrix\Catalog\v2\Property\PropertyFactory $factory, \Bitrix\Catalog\v2\PropertyValue\PropertyValueFactory $propertyValueFactory)
        {
        }
        public function getEntityById(int $id) : ?\Bitrix\Catalog\v2\BaseEntity
        {
        }
        public function getEntitiesBy($params) : array
        {
        }
        public function save(\Bitrix\Catalog\v2\BaseEntity ...$entities) : \Bitrix\Main\Result
        {
        }
        public function delete(\Bitrix\Catalog\v2\BaseEntity ...$entities) : \Bitrix\Main\Result
        {
        }
        public function getCollectionByParent(\Bitrix\Catalog\v2\BaseIblockElementEntity $entity) : \Bitrix\Catalog\v2\BaseCollection
        {
        }
        protected function getList(array $params) : array
        {
        }
        protected function createCollection(array $entityFields, \Bitrix\Catalog\v2\BaseIblockElementEntity $parent) : \Bitrix\Catalog\v2\BaseCollection
        {
        }
        protected function getLinkedProperties(int $iblockId, \Bitrix\Catalog\v2\Section\HasSectionCollection $parent) : array
        {
        }
        private function getPropertiesSettingsByFilter(array $filter) : array
        {
        }
        protected function prepareField(array $fields, array $settings) : array
        {
        }
        protected function prepareSettings(array $settings) : array
        {
        }
        protected function createEntity(array $fields = []) : \Bitrix\Catalog\v2\BaseEntity
        {
        }
    }
}
namespace Bitrix\Catalog\v2\PropertyValue {
    /**
     * Interface HasPropertyValueCollection
     *
     * @package Bitrix\Catalog\v2\PropertyValue
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    interface HasPropertyValueCollection
    {
        public function getPropertyValueCollection();
        public function setPropertyValueCollection(\Bitrix\Catalog\v2\PropertyValue\PropertyValueCollection $propertyValueCollection);
    }
}
namespace Bitrix\Catalog\v2\Property {
    /**
     * Class Property
     *
     * @package Bitrix\Catalog\v2\Property
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class Property extends \Bitrix\Catalog\v2\BaseEntity implements \Bitrix\Catalog\v2\PropertyValue\HasPropertyValueCollection
    {
        /** @var \Bitrix\Catalog\v2\Fields\FieldStorage */
        protected $settings;
        /** @var \Bitrix\Catalog\v2\PropertyValue\PropertyValueCollection */
        protected $propertyValueCollection;
        public function __construct(\Bitrix\Catalog\v2\Property\PropertyRepositoryContract $productRepository)
        {
        }
        public function getPropertyValueCollection() : \Bitrix\Catalog\v2\PropertyValue\PropertyValueCollection
        {
        }
        public function setPropertyValueCollection(\Bitrix\Catalog\v2\PropertyValue\PropertyValueCollection $propertyValueCollection) : void
        {
        }
        /**
         * @param array $settings
         * @return \Bitrix\Catalog\v2\Property\Property
         */
        public function setSettings(array $settings) : \Bitrix\Catalog\v2\Property\Property
        {
        }
        public function getSettings() : array
        {
        }
        public function getSetting(string $name)
        {
        }
        public function getId() : ?int
        {
        }
        public function setId(int $id) : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        public function getCode() : string
        {
        }
        public function getName()
        {
        }
        public function getDefaultValue()
        {
        }
        public function getPropertyType()
        {
        }
        public function getUserType()
        {
        }
        public function getListType()
        {
        }
        public function isRequired() : bool
        {
        }
        public function isMultiple() : bool
        {
        }
        public function isFileType() : bool
        {
        }
        public function saveInternal() : \Bitrix\Main\Result
        {
        }
        public function deleteInternal() : \Bitrix\Main\Result
        {
        }
        // ToDo rethink PropertyValueCollection saving and clearing
        public function clearChangedFields() : \Bitrix\Catalog\v2\BaseEntity
        {
        }
    }
    /**
     * Class PropertyFactory
     *
     * @package Bitrix\Catalog\v2\Property
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class PropertyFactory
    {
        public const PROPERTY = \Bitrix\Catalog\v2\Property\Property::class;
        public const PROPERTY_COLLECTION = \Bitrix\Catalog\v2\Property\PropertyCollection::class;
        protected $container;
        /**
         * PropertyFactory constructor.
         *
         * @param \Bitrix\Catalog\v2\IoC\ContainerContract $container
         */
        public function __construct(\Bitrix\Catalog\v2\IoC\ContainerContract $container)
        {
        }
        /**
         * @return \Bitrix\Catalog\v2\BaseEntity
         */
        public function createEntity() : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\BaseEntity|null $parent
         * @return \Bitrix\Catalog\v2\BaseCollection
         */
        public function createCollection(\Bitrix\Catalog\v2\BaseEntity $parent = null) : \Bitrix\Catalog\v2\BaseCollection
        {
        }
    }
}
namespace Bitrix\Catalog\v2\Sku {
    /**
     * Interface HasSkuCollection
     *
     * @package Bitrix\Catalog\v2\Sku
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    interface HasSkuCollection
    {
        public function getSkuCollection() : \Bitrix\Catalog\v2\Sku\SkuCollection;
        public function setSkuCollection(\Bitrix\Catalog\v2\Sku\SkuCollection $skuCollection);
    }
}
namespace Bitrix\Catalog\v2 {
    /**
     * Class BaseIblockElementEntity
     *
     * @package Bitrix\Catalog\v2
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    abstract class BaseIblockElementEntity extends \Bitrix\Catalog\v2\BaseEntity implements \Bitrix\Catalog\v2\Property\HasPropertyCollection
    {
        /** @var \Bitrix\Catalog\v2\Iblock\IblockInfo */
        protected $iblockInfo;
        /** @var \Bitrix\Catalog\v2\Property\PropertyRepositoryContract */
        protected $propertyRepository;
        /** @var \Bitrix\Catalog\v2\Property\PropertyCollection|\Bitrix\Catalog\v2\Property\Property[] */
        protected $propertyCollection;
        public function __construct(\Bitrix\Catalog\v2\Iblock\IblockInfo $iblockInfo, \Bitrix\Catalog\v2\RepositoryContract $repository, \Bitrix\Catalog\v2\Property\PropertyRepositoryContract $propertyRepository)
        {
        }
        /**
         * @return \Bitrix\Catalog\v2\Iblock\IblockInfo
         */
        public function getIblockInfo() : \Bitrix\Catalog\v2\Iblock\IblockInfo
        {
        }
        /**
         * @return \Bitrix\Catalog\v2\Property\PropertyCollection|\Bitrix\Catalog\v2\Property\Property[]
         */
        public function getPropertyCollection() : \Bitrix\Catalog\v2\Property\PropertyCollection
        {
        }
        /**
         * @return \Bitrix\Catalog\v2\Property\PropertyCollection|\Bitrix\Catalog\v2\Property\Property[]
         */
        protected function loadPropertyCollection() : \Bitrix\Catalog\v2\BaseCollection
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\Property\PropertyCollection $propertyCollection
         * @return $this
         *
         * @internal
         */
        public function setPropertyCollection(\Bitrix\Catalog\v2\Property\PropertyCollection $propertyCollection) : self
        {
        }
        public function getIblockId() : ?int
        {
        }
        public function setIblockId(int $iblockId) : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        public function setField(string $name, $value) : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        // ToDo make tests coverage for TYPEs
        public function setType(int $type) : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        public function getType() : int
        {
        }
        public function isSimple() : bool
        {
        }
        public function setActive(bool $active) : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        public function isActive() : bool
        {
        }
        public function setName($name) : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        public function getName()
        {
        }
        public function hasName() : bool
        {
        }
        public function saveInternal() : \Bitrix\Main\Result
        {
        }
        protected function getFieldsMap() : array
        {
        }
    }
}
namespace Bitrix\Catalog\v2\Product {
    /**
     * Class BaseProduct
     *
     * @package Bitrix\Catalog\v2\Product
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    abstract class BaseProduct extends \Bitrix\Catalog\v2\BaseIblockElementEntity implements \Bitrix\Catalog\v2\Section\HasSectionCollection, \Bitrix\Catalog\v2\Sku\HasSkuCollection
    {
        /** @var \Bitrix\Catalog\v2\Section\SectionRepositoryContract */
        protected $sectionRepository;
        /** @var \Bitrix\Catalog\v2\Sku\SkuRepositoryContract */
        protected $skuRepository;
        /** @var \Bitrix\Catalog\v2\Sku\SkuFactory */
        protected $skuFactory;
        /** @var \Bitrix\Catalog\v2\Section\SectionCollection|\Bitrix\Catalog\v2\Section\Section[] */
        protected $sectionCollection;
        /** @var \Bitrix\Catalog\v2\Sku\SkuCollection|\Bitrix\Catalog\v2\Sku\Sku[] */
        protected $skuCollection;
        public function __construct(\Bitrix\Catalog\v2\Iblock\IblockInfo $iblockInfo, \Bitrix\Catalog\v2\Product\ProductRepositoryContract $productRepository, \Bitrix\Catalog\v2\Property\PropertyRepositoryContract $propertyRepository, \Bitrix\Catalog\v2\Section\SectionRepositoryContract $sectionRepository, \Bitrix\Catalog\v2\Sku\SkuRepositoryContract $skuRepository, \Bitrix\Catalog\v2\Sku\SkuFactory $skuFactory)
        {
        }
        /**
         * @return \Bitrix\Catalog\v2\Section\SectionCollection|\Bitrix\Catalog\v2\Section\Section[]
         */
        public function getSectionCollection() : \Bitrix\Catalog\v2\Section\SectionCollection
        {
        }
        /**
         * @return \Bitrix\Catalog\v2\Section\SectionCollection|\Bitrix\Catalog\v2\Section\Section[]
         */
        protected function loadSectionCollection() : \Bitrix\Catalog\v2\BaseCollection
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\Section\SectionCollection $sectionCollection
         * @return \Bitrix\Catalog\v2\Product\BaseProduct
         *
         * @internal
         */
        public function setSectionCollection(\Bitrix\Catalog\v2\Section\SectionCollection $sectionCollection) : self
        {
        }
        /**
         * @return \Bitrix\Catalog\v2\Sku\SkuCollection|\Bitrix\Catalog\v2\Sku\BaseSku[]
         */
        public function getSkuCollection() : \Bitrix\Catalog\v2\Sku\SkuCollection
        {
        }
        /**
         * @return \Bitrix\Catalog\v2\Sku\SkuCollection|\Bitrix\Catalog\v2\Sku\BaseSku[]
         */
        protected function loadSkuCollection() : \Bitrix\Catalog\v2\Sku\SkuCollection
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\Sku\SkuCollection $skuCollection
         * @return \Bitrix\Catalog\v2\Product\BaseProduct
         *
         * @internal
         */
        public function setSkuCollection(\Bitrix\Catalog\v2\Sku\SkuCollection $skuCollection) : self
        {
        }
        public function delete() : \Bitrix\Main\Result
        {
        }
    }
    /**
     * Class Product
     *
     * @package Bitrix\Catalog\v2\Product
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class Product extends \Bitrix\Catalog\v2\Product\BaseProduct
    {
    }
    /**
     * Interface ProductRepositoryContract
     *
     * @package Bitrix\Catalog\v2\Product
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    interface ProductRepositoryContract extends \Bitrix\Catalog\v2\RepositoryContract
    {
    }
}
namespace Bitrix\Catalog\v2 {
    /**
     * Class BaseIblockElementRepository
     *
     * @package Bitrix\Catalog\v2
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    abstract class BaseIblockElementRepository implements \Bitrix\Catalog\v2\RepositoryContract
    {
        /** @var \Bitrix\Catalog\v2\BaseIblockElementFactory */
        protected $factory;
        /** @var \Bitrix\Catalog\v2\Iblock\IblockInfo */
        protected $iblockInfo;
        /**
         * BaseIblockElementRepository constructor.
         *
         * @param \Bitrix\Catalog\v2\BaseIblockElementFactory $factory
         * @param \Bitrix\Catalog\v2\Iblock\IblockInfo $iblockInfo
         */
        public function __construct(\Bitrix\Catalog\v2\BaseIblockElementFactory $factory, \Bitrix\Catalog\v2\Iblock\IblockInfo $iblockInfo)
        {
        }
        public function getEntityById(int $id) : ?\Bitrix\Catalog\v2\BaseIblockElementEntity
        {
        }
        public function getEntitiesBy($params) : array
        {
        }
        public function save(\Bitrix\Catalog\v2\BaseEntity ...$entities) : \Bitrix\Main\Result
        {
        }
        public function delete(\Bitrix\Catalog\v2\BaseEntity ...$entities) : \Bitrix\Main\Result
        {
        }
        protected function getList(array $params) : array
        {
        }
        protected function getAdditionalFilter() : array
        {
        }
        protected function getAdditionalProductFilter() : array
        {
        }
        protected function createEntity(array $fields = []) : \Bitrix\Catalog\v2\BaseIblockElementEntity
        {
        }
        protected abstract function makeEntity(array $fields) : \Bitrix\Catalog\v2\BaseIblockElementEntity;
        protected function addInternal(array $fields) : \Bitrix\Main\Result
        {
        }
        protected function updateInternal(int $id, array $fields) : \Bitrix\Main\Result
        {
        }
        protected function deleteInternal(int $id) : \Bitrix\Main\Result
        {
        }
        protected function prepareElementFields(array $fields) : array
        {
        }
        protected function prepareProductFields(array $fields) : array
        {
        }
    }
}
namespace Bitrix\Catalog\v2\Product {
    /**
     * Class ProductRepository
     *
     * @package Bitrix\Catalog\v2\Product
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class ProductRepository extends \Bitrix\Catalog\v2\BaseIblockElementRepository implements \Bitrix\Catalog\v2\Product\ProductRepositoryContract
    {
        /** @var \Bitrix\Catalog\v2\Product\ProductFactory */
        protected $factory;
        /**
         * ProductRepository constructor.
         *
         * @param \Bitrix\Catalog\v2\Product\ProductFactory $factory
         * @param \Bitrix\Catalog\v2\Iblock\IblockInfo $iblockInfo
         */
        public function __construct(\Bitrix\Catalog\v2\Product\ProductFactory $factory, \Bitrix\Catalog\v2\Iblock\IblockInfo $iblockInfo)
        {
        }
        protected function getAdditionalFilter() : array
        {
        }
        protected function getAdditionalProductFilter() : array
        {
        }
        protected function makeEntity(array $fields) : \Bitrix\Catalog\v2\BaseIblockElementEntity
        {
        }
    }
    /**
     * Class ProductFactory
     *
     * @package Bitrix\Catalog\v2\Product
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class ProductFactory extends \Bitrix\Catalog\v2\BaseIblockElementFactory
    {
        public const PRODUCT = \Bitrix\Catalog\v2\Product\Product::class;
        /**
         * @param string $entityClass
         * @return \Bitrix\Catalog\v2\Product\BaseProduct
         * @throws \Bitrix\Main\NotSupportedException
         */
        public function createEntity(string $entityClass = self::PRODUCT) : \Bitrix\Catalog\v2\BaseIblockElementEntity
        {
        }
    }
}
namespace Bitrix\Catalog\v2\PropertyValue {
    /**
     * Class PropertyValueCollection
     *
     * @package Bitrix\Catalog\v2\PropertyValue
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class PropertyValueCollection extends \Bitrix\Catalog\v2\BaseCollection
    {
        /** @var \Bitrix\Catalog\v2\PropertyValue\PropertyValueFactory */
        protected $propertyValueFactory;
        public function __construct(\Bitrix\Catalog\v2\PropertyValue\PropertyValueFactory $propertyValueFactory)
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\BaseEntity|\Bitrix\Catalog\v2\PropertyValue\HasPropertyValueCollection|null $parent
         * @return \Bitrix\Catalog\v2\BaseCollection
         */
        public function setParent(?\Bitrix\Catalog\v2\BaseEntity $parent) : \Bitrix\Catalog\v2\BaseCollection
        {
        }
        /**
         * @param mixed $values
         * @return $this
         */
        public function setValues($values) : self
        {
        }
        /**
         * @param array $values
         * @return $this
         *
         * @internal
         */
        public function initValues($values) : self
        {
        }
        public function getValues()
        {
        }
        public function findByValue($value) : ?\Bitrix\Catalog\v2\BaseEntity
        {
        }
        private function isPropertyMultiple() : bool
        {
        }
        private function prepareValues($values) : array
        {
        }
        private function removeOldValues(array $values) : void
        {
        }
        private function setValue($fields) : void
        {
        }
    }
    /**
     * Class PropertyValue
     *
     * @package Bitrix\Catalog\v2\PropertyValue
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class PropertyValue extends \Bitrix\Catalog\v2\BaseEntity
    {
        // ToDo property cast map (int)1 => '1'
        public function setValue($value) : self
        {
        }
        // ToDo do we need to create HtmlProperty entity (descendant of PropertyValue)?
        protected function prepareValueForHtmlProperty($value)
        {
        }
        public function getValue()
        {
        }
        public function setDescription($description) : self
        {
        }
        public function getDescription()
        {
        }
        public function deleteInternal() : \Bitrix\Main\Result
        {
        }
        public function saveInternal() : \Bitrix\Main\Result
        {
        }
    }
    /**
     * Class PropertyValueFactory
     *
     * @package Bitrix\Catalog\v2\PropertyValue
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class PropertyValueFactory
    {
        public const PROPERTY_VALUE = \Bitrix\Catalog\v2\PropertyValue\PropertyValue::class;
        public const PROPERTY_VALUE_COLLECTION = \Bitrix\Catalog\v2\PropertyValue\PropertyValueCollection::class;
        protected $container;
        /**
         * PropertyFactory constructor.
         *
         * @param \Bitrix\Catalog\v2\IoC\ContainerContract $container
         */
        public function __construct(\Bitrix\Catalog\v2\IoC\ContainerContract $container)
        {
        }
        /**
         * @return \Bitrix\Catalog\v2\BaseEntity
         */
        public function createEntity() : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\BaseEntity|null $parent
         * @return \Bitrix\Catalog\v2\BaseCollection
         */
        public function createCollection(\Bitrix\Catalog\v2\BaseEntity $parent = null) : \Bitrix\Catalog\v2\BaseCollection
        {
        }
    }
}
namespace Bitrix\Catalog\v2\Iblock {
    /**
     * Class IblockInfo
     *
     * @package Bitrix\Catalog\v2\Iblock
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class IblockInfo
    {
        private $iblock;
        public function __construct(int $iblockId)
        {
        }
        public function toArray() : array
        {
        }
        public function getCatalogType()
        {
        }
        // ToDo all these wrappers
        public function getProductIblockId() : int
        {
        }
        public function hasSubscription() : bool
        {
        }
        public function canHaveSku() : bool
        {
        }
        public function getSkuIblockId() : ?int
        {
        }
        public function getSkuPropertyId() : ?int
        {
        }
    }
}
namespace Bitrix\Catalog\v2\Price {
    /**
     * Class BasePrice
     *
     * @package Bitrix\Catalog\v2\Price
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    abstract class BasePrice extends \Bitrix\Catalog\v2\BaseEntity
    {
        public function __construct(\Bitrix\Catalog\v2\Price\PriceRepositoryContract $priceRepository)
        {
        }
        public function setParentCollection(?\Bitrix\Catalog\v2\BaseCollection $collection) : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        public function setPrice(float $price) : self
        {
        }
        public function getPrice() : float
        {
        }
        public function setCurrency($currency) : self
        {
        }
        public function getCurrency() : string
        {
        }
        public function isPriceBase() : bool
        {
        }
        public function setPriceBase(bool $state) : self
        {
        }
        public function setGroupId(int $groupId) : self
        {
        }
        public function getGroupId() : int
        {
        }
        public function setProductId(int $productId) : self
        {
        }
        public function getProductId() : int
        {
        }
        protected function getFieldsMap() : array
        {
        }
    }
    /**
     * Interface PriceRepositoryContract
     *
     * @package Bitrix\Catalog\v2\Price
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    interface PriceRepositoryContract extends \Bitrix\Catalog\v2\RepositoryContract
    {
        public function getCollectionByParent(\Bitrix\Catalog\v2\Sku\BaseSku $sku) : \Bitrix\Catalog\v2\Price\PriceCollection;
    }
    /**
     * Class QuantityDependentPrice
     *
     * @package Bitrix\Catalog\v2\Price
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class QuantityDependentPrice extends \Bitrix\Catalog\v2\Price\BasePrice
    {
    }
    /**
     * Class SimplePrice
     *
     * @package Bitrix\Catalog\v2\Price
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class SimplePrice extends \Bitrix\Catalog\v2\Price\BasePrice
    {
    }
    /**
     * Class PriceFactory
     *
     * @package Bitrix\Catalog\v2\Price
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class PriceFactory
    {
        public const SIMPLE_PRICE = \Bitrix\Catalog\v2\Price\SimplePrice::class;
        public const QUANTITY_DEPENDENT_PRICE = \Bitrix\Catalog\v2\Price\QuantityDependentPrice::class;
        public const PRICE_COLLECTION = \Bitrix\Catalog\v2\Price\PriceCollection::class;
        protected $container;
        /**
         * PriceFactory constructor.
         *
         * @param \Bitrix\Catalog\v2\IoC\ContainerContract $container
         */
        public function __construct(\Bitrix\Catalog\v2\IoC\ContainerContract $container)
        {
        }
        /**
         * @return \Bitrix\Catalog\v2\Price\BasePrice
         */
        public function createEntity() : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\BaseEntity|null $parent
         * @return \Bitrix\Catalog\v2\Price\PriceCollection
         */
        public function createCollection(\Bitrix\Catalog\v2\BaseEntity $parent = null) : \Bitrix\Catalog\v2\BaseCollection
        {
        }
    }
    /**
     * Class PriceRepository
     *
     * @package Bitrix\Catalog\v2\Price
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class PriceRepository implements \Bitrix\Catalog\v2\Price\PriceRepositoryContract
    {
        /** @var \Bitrix\Catalog\v2\Price\PriceFactory */
        protected $factory;
        public function __construct(\Bitrix\Catalog\v2\Price\PriceFactory $factory)
        {
        }
        public function getEntityById(int $id) : ?\Bitrix\Catalog\v2\BaseEntity
        {
        }
        public function getEntitiesBy($params) : array
        {
        }
        public function getProductId(\Bitrix\Catalog\v2\BaseEntity $entity) : ?int
        {
        }
        public function save(\Bitrix\Catalog\v2\BaseEntity ...$entities) : \Bitrix\Main\Result
        {
        }
        public function delete(\Bitrix\Catalog\v2\BaseEntity ...$entities) : \Bitrix\Main\Result
        {
        }
        public function getCollectionByParent(\Bitrix\Catalog\v2\Sku\BaseSku $sku) : \Bitrix\Catalog\v2\Price\PriceCollection
        {
        }
        protected function getByProductId(int $skuId) : array
        {
        }
        protected function getList(array $params) : array
        {
        }
        protected function createEntity(array $fields) : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        protected function createCollection(array $entityFields, \Bitrix\Catalog\v2\Sku\BaseSku $sku) : \Bitrix\Catalog\v2\Price\PriceCollection
        {
        }
        protected function addInternal(array $fields) : \Bitrix\Main\Result
        {
        }
        protected function updateInternal(int $id, array $fields) : \Bitrix\Main\Result
        {
        }
        protected function deleteInternal(int $id) : \Bitrix\Main\Result
        {
        }
    }
    /**
     * Class PriceCollection
     *
     * @package Bitrix\Catalog\v2\Price
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class PriceCollection extends \Bitrix\Catalog\v2\BaseCollection
    {
        /** @var \Bitrix\Catalog\v2\Price\PriceFactory */
        protected $factory;
        public function __construct(\Bitrix\Catalog\v2\Price\PriceFactory $factory)
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\BaseEntity|\Bitrix\Catalog\v2\Price\HasPriceCollection|null $parent
         * @return \Bitrix\Catalog\v2\BaseCollection
         */
        public function setParent(?\Bitrix\Catalog\v2\BaseEntity $parent) : \Bitrix\Catalog\v2\BaseCollection
        {
        }
        public function findByGroupId(int $groupId) : ?\Bitrix\Catalog\v2\Price\BasePrice
        {
        }
        public function create() : \Bitrix\Catalog\v2\Price\BasePrice
        {
        }
        /**
         * @param array $values
         * @return $this
         */
        public function setValues(array $values) : self
        {
        }
        public function getValues() : array
        {
        }
        private function prepareValues(array $values) : array
        {
        }
    }
    /**
     * Interface HasPriceCollection
     *
     * @package Bitrix\Catalog\v2\Price
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    interface HasPriceCollection
    {
        public function getPriceCollection() : \Bitrix\Catalog\v2\Price\PriceCollection;
        public function setPriceCollection(\Bitrix\Catalog\v2\Price\PriceCollection $priceCollection);
    }
}
namespace Bitrix\Catalog\v2\Sku {
    /**
     * Class BaseSku
     *
     * @package Bitrix\Catalog\v2\Sku
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    abstract class BaseSku extends \Bitrix\Catalog\v2\BaseIblockElementEntity implements \Bitrix\Catalog\v2\Price\HasPriceCollection, \Bitrix\Catalog\v2\MeasureRatio\HasMeasureRatioCollection
    {
        /** @var \Bitrix\Catalog\v2\Price\PriceCollection|\Bitrix\Catalog\v2\Price\BasePrice[] */
        protected $priceCollection;
        /** @var \Bitrix\Catalog\v2\Price\PriceRepositoryContract */
        protected $priceRepository;
        /** @var \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioRepositoryContract */
        protected $measureRatioRepository;
        /** @var \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioCollection|\Bitrix\Catalog\v2\MeasureRatio\BaseMeasureRatio[] */
        protected $measureRatioCollection;
        public function __construct(\Bitrix\Catalog\v2\Iblock\IblockInfo $iblockInfo, \Bitrix\Catalog\v2\Sku\SkuRepositoryContract $skuRepository, \Bitrix\Catalog\v2\Property\PropertyRepositoryContract $propertyRepository, \Bitrix\Catalog\v2\Price\PriceRepositoryContract $priceRepository, \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioRepositoryContract $measureRatioRepository)
        {
        }
        /**
         * @return \Bitrix\Catalog\v2\Price\PriceCollection|\Bitrix\Catalog\v2\Price\BasePrice[]
         */
        public function getPriceCollection() : \Bitrix\Catalog\v2\Price\PriceCollection
        {
        }
        /**
         * @return \Bitrix\Catalog\v2\Price\PriceCollection|\Bitrix\Catalog\v2\Price\BasePrice[]
         */
        protected function loadPriceCollection() : \Bitrix\Catalog\v2\Price\PriceCollection
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\Price\PriceCollection $priceCollection
         * @return \Bitrix\Catalog\v2\Sku\BaseSku
         *
         * @internal
         */
        public function setPriceCollection(\Bitrix\Catalog\v2\Price\PriceCollection $priceCollection) : self
        {
        }
        /**
         * @return \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioCollection|\Bitrix\Catalog\v2\MeasureRatio\BaseMeasureRatio[]
         */
        public function getMeasureRatioCollection() : \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioCollection
        {
        }
        /**
         * @return \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioCollection|\Bitrix\Catalog\v2\MeasureRatio\BaseMeasureRatio[]
         */
        protected function loadMeasureRatioCollection() : \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioCollection
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioCollection $measureRatioCollection
         * @return \Bitrix\Catalog\v2\Sku\BaseSku
         *
         * @internal
         */
        public function setMeasureRatioCollection(\Bitrix\Catalog\v2\MeasureRatio\MeasureRatioCollection $measureRatioCollection) : self
        {
        }
    }
    /**
     * Interface SkuRepositoryContract
     *
     * @package Bitrix\Catalog\v2\Sku
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    interface SkuRepositoryContract extends \Bitrix\Catalog\v2\RepositoryContract
    {
        public function getCollectionByProduct(\Bitrix\Catalog\v2\Product\BaseProduct $product) : \Bitrix\Catalog\v2\Sku\SkuCollection;
    }
    /**
     * Class SkuRepository
     *
     * @package Bitrix\Catalog\v2\Sku
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class SkuRepository extends \Bitrix\Catalog\v2\BaseIblockElementRepository implements \Bitrix\Catalog\v2\Sku\SkuRepositoryContract
    {
        /** @var \Bitrix\Catalog\v2\Sku\SkuFactory */
        protected $factory;
        /** @var \Bitrix\Catalog\v2\Product\ProductRepositoryContract */
        protected $productRepository;
        /**
         * SkuRepository constructor.
         *
         * @param \Bitrix\Catalog\v2\Sku\SkuFactory $factory
         * @param \Bitrix\Catalog\v2\Iblock\IblockInfo $iblockInfo
         * @param \Bitrix\Catalog\v2\Product\ProductRepositoryContract $productRepository
         */
        public function __construct(\Bitrix\Catalog\v2\Sku\SkuFactory $factory, \Bitrix\Catalog\v2\Iblock\IblockInfo $iblockInfo, \Bitrix\Catalog\v2\Product\ProductRepositoryContract $productRepository)
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\Product\BaseProduct $product
         * @return \Bitrix\Catalog\v2\Sku\SkuCollection|\Bitrix\Catalog\v2\Sku\BaseSku[]
         */
        public function getCollectionByProduct(\Bitrix\Catalog\v2\Product\BaseProduct $product) : \Bitrix\Catalog\v2\Sku\SkuCollection
        {
        }
        public function getEntitiesBy($params) : array
        {
        }
        protected function getAdditionalFilter() : array
        {
        }
        protected function getAdditionalProductFilter() : array
        {
        }
        protected function makeEntity(array $fields) : \Bitrix\Catalog\v2\BaseIblockElementEntity
        {
        }
        private function loadParentProducts(\Bitrix\Catalog\v2\Sku\BaseSku ...$skuItems) : void
        {
        }
        private function getSkuByProductMap(array $skuItems) : array
        {
        }
        private function getSkuIteratorForProduct(\Bitrix\Catalog\v2\Product\BaseProduct $product, array $params = []) : \Generator
        {
        }
    }
    /**
     * Class Sku
     *
     * @package Bitrix\Catalog\v2\Sku
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class Sku extends \Bitrix\Catalog\v2\Sku\BaseSku
    {
        public function __construct(\Bitrix\Catalog\v2\Iblock\IblockInfo $iblockInfo, \Bitrix\Catalog\v2\Sku\SkuRepositoryContract $skuRepository, \Bitrix\Catalog\v2\Property\PropertyRepositoryContract $propertyRepository, \Bitrix\Catalog\v2\Price\PriceRepositoryContract $priceRepository, \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioRepositoryContract $measureRatioRepository)
        {
        }
        public function setParentCollection(?\Bitrix\Catalog\v2\BaseCollection $collection) : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        /**
         * @return $this
         * @internal
         */
        public function checkProductLink() : self
        {
        }
        protected function linkProduct(\Bitrix\Catalog\v2\Product\BaseProduct $product) : self
        {
        }
        protected function unlinkProduct() : self
        {
        }
        protected function getProductLinkProperty() : ?\Bitrix\Catalog\v2\Property\Property
        {
        }
        protected function setProductLinkProperty(int $productId) : self
        {
        }
        protected function unsetProductLinkProperty() : self
        {
        }
        public function saveInternalEntity() : \Bitrix\Main\Result
        {
        }
    }
    /**
     * Class SkuCollection
     *
     * @package Bitrix\Catalog\v2\Sku
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class SkuCollection extends \Bitrix\Catalog\v2\BaseCollection
    {
        /** @var ContainerContract */
        protected $container;
        /** @var \Bitrix\Catalog\v2\Sku\SkuFactory */
        protected $factory;
        public function __construct(\Bitrix\Catalog\v2\IoC\ContainerContract $container, \Bitrix\Catalog\v2\Sku\SkuFactory $factory)
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\BaseEntity|\Bitrix\Catalog\v2\Sku\HasSkuCollection|null $parent
         * @return \Bitrix\Catalog\v2\BaseCollection
         * @throws \Bitrix\Main\InvalidOperationException
         */
        public function setParent(?\Bitrix\Catalog\v2\BaseEntity $parent) : \Bitrix\Catalog\v2\BaseCollection
        {
        }
        public function create() : \Bitrix\Catalog\v2\Sku\BaseSku
        {
        }
        protected function createEntity() : \Bitrix\Catalog\v2\Sku\BaseSku
        {
        }
        protected function getAlreadyLoadedFilter() : array
        {
        }
    }
    /**
     * Class SimpleSku
     *
     * @package Bitrix\Catalog\v2\Sku
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class SimpleSku extends \Bitrix\Catalog\v2\Sku\BaseSku
    {
        /**
         * @return \Bitrix\Catalog\v2\BaseIblockElementEntity
         * @throws \Bitrix\Main\NotSupportedException
         */
        public function getParent() : \Bitrix\Catalog\v2\BaseEntity
        {
        }
        protected function createFieldStorage() : \Bitrix\Catalog\v2\Fields\FieldStorage
        {
        }
        /**
         * @return \Bitrix\Catalog\v2\Property\PropertyCollection|\Bitrix\Catalog\v2\Property\Property[]
         */
        protected function loadPropertyCollection() : \Bitrix\Catalog\v2\BaseCollection
        {
        }
        public function deleteInternal() : \Bitrix\Main\Result
        {
        }
    }
    /**
     * Class SkuFactory
     *
     * @package Bitrix\Catalog\v2\Sku
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class SkuFactory extends \Bitrix\Catalog\v2\BaseIblockElementFactory
    {
        public const SIMPLE_SKU = \Bitrix\Catalog\v2\Sku\SimpleSku::class;
        public const SKU = \Bitrix\Catalog\v2\Sku\Sku::class;
        public const SKU_COLLECTION = \Bitrix\Catalog\v2\Sku\SkuCollection::class;
        /**
         * @param string|null $entityClass
         * @return \Bitrix\Catalog\v2\Sku\BaseSku
         * @throws \Bitrix\Main\NotSupportedException
         */
        public function createEntity(string $entityClass = null) : \Bitrix\Catalog\v2\BaseIblockElementEntity
        {
        }
        /**
         * @param \Bitrix\Catalog\v2\BaseEntity|null $parent
         * @return \Bitrix\Catalog\v2\Sku\SkuCollection
         */
        public function createCollection(\Bitrix\Catalog\v2\BaseEntity $parent = null) : \Bitrix\Catalog\v2\BaseCollection
        {
        }
    }
}
namespace Bitrix\Catalog\v2\Fields\TypeCasters {
    /**
     * Interface TypeCasterContract
     *
     * @package Bitrix\Catalog\v2\Fields\TypeCasters
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    interface TypeCasterContract
    {
        public function cast($name, $value);
        public function has($name);
    }
    /**
     * Class NullTypeCaster
     *
     * @package Bitrix\Catalog\v2\Fields\TypeCasters
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class NullTypeCaster implements \Bitrix\Catalog\v2\Fields\TypeCasters\TypeCasterContract
    {
        public function cast($name, $value)
        {
        }
        public function has($name) : bool
        {
        }
    }
    // ToDo check it with real world on product/sku editing
    /**
     * Class MapTypeCaster
     *
     * @package Bitrix\Catalog\v2\Fields\TypeCasters
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class MapTypeCaster implements \Bitrix\Catalog\v2\Fields\TypeCasters\TypeCasterContract
    {
        public const NOTHING = 'Nothing';
        public const STRING = 'String';
        public const NULLABLE_STRING = 'NullableString';
        public const INT = 'Int';
        public const NULLABLE_INT = 'NullableInt';
        public const FLOAT = 'Float';
        public const NULLABLE_FLOAT = 'NullableFloat';
        public const BOOLEAN = 'Boolean';
        public const Y_OR_N = 'YesOrNo';
        public const Y_OR_N_OR_D = 'YesOrNoOrDefault';
        public const DATE = 'Date';
        public const DATETIME = 'DateTime';
        private $fieldMap = [];
        public function __construct(array $fieldMap = null)
        {
        }
        private function castToNothing($value)
        {
        }
        private function castToString($value) : string
        {
        }
        private function castToNullableString($value) : ?string
        {
        }
        private function castToInt($value) : int
        {
        }
        private function castToNullableInt($value) : ?int
        {
        }
        private function castToFloat($value) : float
        {
        }
        private function castToNullableFloat($value) : ?float
        {
        }
        private function castToYesOrNo($value) : string
        {
        }
        private function castToYesOrNoOrDefault($value) : string
        {
        }
        private function castToBoolean($value) : bool
        {
        }
        private function castToDate($value) : ?\Bitrix\Main\Type\Date
        {
        }
        private function castToDateTime($value) : ?\Bitrix\Main\Type\DateTime
        {
        }
        public function cast($name, $value)
        {
        }
        public function has($name) : bool
        {
        }
    }
}
namespace Bitrix\Catalog\v2\Fields {
    /**
     * Class FieldStorage
     *
     * @package Bitrix\Catalog\v2\Fields
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    class FieldStorage implements \ArrayAccess, \Iterator, \Countable
    {
        private $fields = [];
        private $originalFields = [];
        private $changedFields = [];
        private $typeCaster;
        public function __construct(\Bitrix\Catalog\v2\Fields\TypeCasters\TypeCasterContract $typeCaster = null)
        {
        }
        public function initFields(array $fields) : self
        {
        }
        public function initField($name, $value) : self
        {
        }
        public function setFields(array $fields) : self
        {
        }
        public function setField($name, $value) : self
        {
        }
        public function getField($name)
        {
        }
        public function toArray() : array
        {
        }
        public function isChanged($name) : bool
        {
        }
        public function clear() : void
        {
        }
        public function clearChanged() : void
        {
        }
        public function getFields() : array
        {
        }
        public function getOriginalFields() : array
        {
        }
        public function getChangedFields() : array
        {
        }
        public function hasChangedFields() : bool
        {
        }
        private function cast($name, $value)
        {
        }
        private function markChanged($name, $value) : bool
        {
        }
        /**
         * Return the current element
         */
        public function current()
        {
        }
        /**
         * Move forward to next element
         */
        public function next()
        {
        }
        /**
         * Return the key of the current element
         */
        public function key()
        {
        }
        /**
         * Checks if current position is valid
         */
        public function valid() : bool
        {
        }
        /**
         * Rewind the Iterator to the first element
         */
        public function rewind()
        {
        }
        /**
         * Whether a offset exists
         *
         * @param mixed $offset
         *
         * @return bool
         */
        public function offsetExists($offset) : bool
        {
        }
        /**
         * Offset to retrieve
         *
         * @param mixed $offset
         *
         * @return null|mixed
         */
        public function offsetGet($offset)
        {
        }
        /**
         * Offset to set
         *
         * @param mixed $offset
         * @param mixed $value
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * Offset to unset
         *
         * @param mixed $offset
         */
        public function offsetUnset($offset) : void
        {
        }
        /**
         * Count elements of an object
         */
        public function count() : int
        {
        }
    }
}
namespace Bitrix\Catalog\v2\IoC {
    /**
     * Interface ContainerContract
     * Describes the interface of a container that exposes methods to read its entries.
     *
     * @package Bitrix\Catalog\v2\IoC
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    interface ContainerContract
    {
        public function has(string $id) : bool;
        public function get(string $id, array $args = []);
        public function make(string $id, array $args = []);
        public function inject(string $id, $dependency);
    }
    /**
     * Class Container
     *
     * @package Bitrix\Catalog\v2\IoC
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    final class Container implements \Bitrix\Catalog\v2\IoC\ContainerContract
    {
        private $dependencies = [];
        private $entities = [];
        private $lock = false;
        public function __construct()
        {
        }
        private function __clone()
        {
        }
        public function has(string $id) : bool
        {
        }
        public function get(string $id, array $args = [])
        {
        }
        // ToDo highlight container return values with phpstorm.meta.php
        public function make(string $id, array $args = [])
        {
        }
        public function inject(string $id, $dependency) : \Bitrix\Catalog\v2\IoC\ContainerContract
        {
        }
        public function getIterator() : \ArrayIterator
        {
        }
        private function instantiate($id, array $args = [])
        {
        }
        private function instantiateClosure($dependency, array $args = [])
        {
        }
        private function instantiateClass($dependency, array $args = [])
        {
        }
        private function resolveParameter(\ReflectionParameter $parameter, array $args = [])
        {
        }
        private function resolveClassParameter(\ReflectionParameter $parameter, array $args = [])
        {
        }
        private function resolveVariableParameter(\ReflectionParameter $parameter, array $args = [])
        {
        }
        private function lock() : self
        {
        }
        private function isLocked() : bool
        {
        }
        private function getDefinition(string $id, array $args = []) : string
        {
        }
    }
    /**
     * Class Dependency
     *
     * @package Bitrix\Catalog\v2\IoC
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    final class Dependency
    {
        public const CONTAINER = \Bitrix\Catalog\v2\IoC\ContainerContract::class;
        public const IBLOCK_INFO = \Bitrix\Catalog\v2\Iblock\IblockInfo::class;
        public const PRODUCT_CONVERTER = \Bitrix\Catalog\v2\Converter\ProductConverter::class;
        public const PRODUCT_FACTORY = \Bitrix\Catalog\v2\Product\ProductFactory::class;
        public const PRODUCT_REPOSITORY = \Bitrix\Catalog\v2\Product\ProductRepositoryContract::class;
        public const SECTION_FACTORY = \Bitrix\Catalog\v2\Section\SectionFactory::class;
        public const SECTION_REPOSITORY = \Bitrix\Catalog\v2\Section\SectionRepositoryContract::class;
        public const SKU_FACTORY = \Bitrix\Catalog\v2\Sku\SkuFactory::class;
        public const SKU_REPOSITORY = \Bitrix\Catalog\v2\Sku\SkuRepositoryContract::class;
        public const PROPERTY_FACTORY = \Bitrix\Catalog\v2\Property\PropertyFactory::class;
        public const PROPERTY_REPOSITORY = \Bitrix\Catalog\v2\Property\PropertyRepositoryContract::class;
        public const PROPERTY_VALUE_FACTORY = \Bitrix\Catalog\v2\PropertyValue\PropertyValueFactory::class;
        public const PRICE_FACTORY = \Bitrix\Catalog\v2\Price\PriceFactory::class;
        public const PRICE_REPOSITORY = \Bitrix\Catalog\v2\Price\PriceRepositoryContract::class;
        public const MEASURE_RATIO_FACTORY = \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioFactory::class;
        public const MEASURE_RATIO_REPOSITORY = \Bitrix\Catalog\v2\MeasureRatio\MeasureRatioRepositoryContract::class;
        private function __construct()
        {
        }
    }
    /**
     * Class ContainerBuilder
     *
     * @package Bitrix\Catalog\v2\IoC
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    final class ContainerBuilder
    {
        private static function getLocalPaths($path) : array
        {
        }
        private static function getConfigPaths() : array
        {
        }
        private static function loadDependencies(string $customPath = null) : array
        {
        }
        private static function buildContainer(array $dependencies) : \Bitrix\Catalog\v2\IoC\ContainerContract
        {
        }
        public static function buildFromConfig(string $customPath = null) : \Bitrix\Catalog\v2\IoC\ContainerContract
        {
        }
    }
    /**
     * Class ServiceContainer
     *
     * @package Bitrix\Catalog\v2\IoC
     *
     * !!! This API is in alpha stage and is not stable. This is subject to change at any time without notice.
     * @internal
     */
    final class ServiceContainer
    {
        /** @var \Bitrix\Catalog\v2\IoC\ContainerContract */
        private static $container;
        private function __construct()
        {
        }
        public static function getContainer() : \Bitrix\Catalog\v2\IoC\ContainerContract
        {
        }
        public static function get($id, array $args = [])
        {
        }
        /**
         * @param int $iblockId
         * @return \Bitrix\Catalog\v2\Iblock\IblockInfo|null
         */
        public static function getIblockInfo(int $iblockId) : ?\Bitrix\Catalog\v2\Iblock\IblockInfo
        {
        }
        /**
         * @param int $iblockId
         * @return \Bitrix\Catalog\v2\Product\ProductFactory|null
         */
        public static function getProductFactory(int $iblockId) : ?\Bitrix\Catalog\v2\Product\ProductFactory
        {
        }
        /**
         * @param int $iblockId
         * @return \Bitrix\Catalog\v2\Product\ProductRepositoryContract|null
         */
        public static function getProductRepository(int $iblockId) : ?\Bitrix\Catalog\v2\Product\ProductRepositoryContract
        {
        }
        /**
         * @param int $iblockId
         * @return \Bitrix\Catalog\v2\Sku\SkuFactory|null
         */
        public static function getSkuFactory(int $iblockId) : ?\Bitrix\Catalog\v2\Sku\SkuFactory
        {
        }
        /**
         * @param int $iblockId
         * @return \Bitrix\Catalog\v2\Sku\SkuRepositoryContract|null
         */
        public static function getSkuRepository(int $iblockId) : ?\Bitrix\Catalog\v2\Sku\SkuRepositoryContract
        {
        }
    }
}
namespace Bitrix\Main {
    class Event
    {
        protected $moduleId;
        protected $type;
        protected $parameters = array();
        /** @var callable */
        protected $parametersLoader = null;
        protected $filter = null;
        protected $sender = null;
        protected $debugMode = false;
        protected $debugInfo = array();
        /** @var EventResult[] */
        protected $results = array();
        /** @var \Exception[] */
        protected $exceptions = array();
        /**
         * @param $moduleId
         * @param $type
         * @param array $parameters
         * @param null|string|string[] $filter Filter of module names, mail event names and component names of the event handlers
         */
        public function __construct($moduleId, $type, $parameters = array(), $filter = null)
        {
        }
        public function getModuleId()
        {
        }
        public function getEventType()
        {
        }
        public function setParameters($parameters)
        {
        }
        public function getParameters()
        {
        }
        public function setParameter($key, $value)
        {
        }
        public function getParameter($key)
        {
        }
        protected function loadParameters()
        {
        }
        public function setFilter($filter)
        {
        }
        public function getFilter()
        {
        }
        /**
         * @return EventResult[]
         */
        public function getResults()
        {
        }
        public function addResult(\Bitrix\Main\EventResult $result)
        {
        }
        public function getSender()
        {
        }
        public function send($sender = null)
        {
        }
        public function addException(\Exception $exception)
        {
        }
        public function getExceptions()
        {
        }
        public function turnDebugOn()
        {
        }
        public function isDebugOn()
        {
        }
        public function addDebugInfo($ar)
        {
        }
        public function getDebugInfo()
        {
        }
    }
}
namespace Bitrix\Catalog\Model {
    class Event extends \Bitrix\Main\Event
    {
        /** @var Entity */
        protected $entity = null;
        protected static $catalogHandlerExist = [];
        private static $keys = ['fields', 'external_fields', 'actions'];
        public function __construct(\Bitrix\Catalog\Model\Entity $entity, string $type, array $parameters = [])
        {
        }
        /**
         * Checks the result of the event for errors, fills the Result object.
         * Returns true on errors, false on no errors.
         *
         * @param Main\Result $result
         * @return bool
         */
        public function getErrors(\Bitrix\Main\Result $result) : bool
        {
        }
        /**
         * Merge data from handlers.
         *
         * @param array $data
         * @return void
         */
        public function mergeData(array &$data) : void
        {
        }
        /**
         * Search handlers for event.
         *
         * @param Entity $entity
         * @param string $type
         * @return bool
         */
        public static function existEventHandlers(\Bitrix\Catalog\Model\Entity $entity, string $type) : bool
        {
        }
        /**
         * Search handlers for event by id.
         *
         * @param string $id
         * @return bool
         */
        public static function existEventHandlersById(string $id) : bool
        {
        }
    }
    abstract class Entity
    {
        const PREFIX_OLD = 'OLD_';
        const EVENT_ON_BUILD_CACHED_FIELD_LIST = 'OnBuildCachedFieldList';
        private static $entity = [];
        /** @var ORM\Data\DataManager Tablet object */
        private $tablet = null;
        /** @var array Table scalar fields list */
        private $tabletFields = [];
        /** @var array User fields list */
        private $tabletUserFields = [];
        /** @var null|Main\DB\Result Database result object */
        private $result = null;
        /** @var array Entity cache */
        private $cache = [];
        /** @var array internal */
        private $cacheModifyed = [];
        private $fields = [];
        private $fieldsCount = 0;
        private $aliases = [];
        private $fieldMask = [];
        private $fetchCutMask = [];
        public function __construct()
        {
        }
        /**
         * Returns entity class.
         *
         * @return Entity
         */
        public static function getEntity() : \Bitrix\Catalog\Model\Entity
        {
        }
        /**
         * Entity getList with change cache. Need for use before add/update/delete entity row.
         *
         * @param array $parameters
         * @return Entity
         * @throws Main\ArgumentException
         * @throws Main\ObjectNotFoundException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        public static function getList(array $parameters) : \Bitrix\Catalog\Model\Entity
        {
        }
        /**
         * Entity fetch. Work with entity change cache.
         *
         * @param Main\Text\Converter|null $converter
         * @return array|bool|false
         */
        public function fetch(\Bitrix\Main\Text\Converter $converter = null)
        {
        }
        /**
         * Clear all cache for entity.
         *
         * @return void
         */
        public static function clearCache() : void
        {
        }
        /**
         * Add entity item. Use instead of DataManager method.
         *
         * @param array $data
         * @return ORM\Data\AddResult
         */
        public static function add(array $data) : \Bitrix\Main\ORM\Data\AddResult
        {
        }
        /**
         * Update entity item. Use instead of DataManager method.
         *
         * @param int $id
         * @param array $data
         * @return ORM\Data\UpdateResult
         */
        public static function update($id, array $data) : \Bitrix\Main\ORM\Data\UpdateResult
        {
        }
        /**
         * Delete entity item. Use instead of DataManager method.
         *
         * @param int $id
         * @return ORM\Data\DeleteResult
         */
        public static function delete($id) : \Bitrix\Main\ORM\Data\DeleteResult
        {
        }
        /**
         * Fill item cache data. Do not use without good reason.
         *
         * @param int $id
         * @param array $row
         * @return void
         */
        public static function setCacheItem($id, array $row) : void
        {
        }
        /**
         * Returns item cache.
         *
         * @param int $id
         * @param bool $load
         * @return array|null
         */
        public static function getCacheItem($id, bool $load = false) : ?array
        {
        }
        /**
         * Clear item cache. Do not use without good reason.
         *
         * @param int $id
         * @return void
         * @noinspection PhpUnused
         */
        public static function clearCacheItem($id) : void
        {
        }
        /**
         * Returns entity tablet name.
         *
         * @return string
         */
        public static function getTabletClassName() : string
        {
        }
        /**
         * Returns fields list in cache.
         *
         * @return array
         */
        public static function getCachedFieldList() : array
        {
        }
        /**
         * Returns entity table object.
         *
         * @return ORM\Data\DataManager
         * @throws Main\ObjectNotFoundException
         */
        protected function getTablet() : \Bitrix\Main\ORM\Data\DataManager
        {
        }
        /**
         * Check and modify fields before add entity item. Need for entity automation.
         *
         * @param ORM\Data\AddResult $result
         * @param int|null $id
         * @param array &$data
         * @return void
         */
        protected static function prepareForAdd(\Bitrix\Main\ORM\Data\AddResult $result, $id, array &$data) : void
        {
        }
        /**
         * Check and modify fields before update entity item. Need for entity automation.
         *
         * @param ORM\Data\UpdateResult $result
         * @param int $id
         * @param array &$data
         * @return void
         */
        protected static function prepareForUpdate(\Bitrix\Main\ORM\Data\UpdateResult $result, $id, array &$data) : void
        {
        }
        /**
         * Delete entity item without entity events (tablet events only).
         *
         * @param int $id
         * @return ORM\Data\DeleteResult
         * @throws Main\ObjectNotFoundException
         */
        protected static function deleteNoDemands($id) : \Bitrix\Main\ORM\Data\DeleteResult
        {
        }
        /**
         * Normalize data before prepare. Convert fields list into complex structure.
         *
         * @param array &$data
         * @return void
         */
        protected static function normalize(array &$data) : void
        {
        }
        /**
         * Run core automation after add entity item.
         *
         * @param int $id
         * @param array $data
         * @return void
         */
        protected static function runAddExternalActions($id, array $data) : void
        {
        }
        /**
         * Run core automation after update entity item.
         *
         * @param int $id
         * @param array $data
         * @return void
         */
        protected static function runUpdateExternalActions($id, array $data) : void
        {
        }
        /**
         * Run core automation after delete entity item.
         *
         * @param int $id
         * @return void
         */
        protected static function runDeleteExternalActions($id) : void
        {
        }
        /**
         * Returns entity default fields list for caching.
         *
         * @return array
         */
        protected static function getDefaultCachedFieldList() : array
        {
        }
        /**
         * Init entity table object.
         * @internal
         *
         * @return void
         */
        private function initEntityTablet() : void
        {
        }
        /**
         * Build entity cache environment.
         * @internal
         *
         * @return void
         */
        private function initEntityCache() : void
        {
        }
        /**
         * Remove all entity cache.
         * @internal
         *
         * @return void
         */
        private function clearEntityCache() : void
        {
        }
        /**
         * Add cached fields to entity getList parameters.
         * @internal
         *
         * @param array $parameters
         * @return array
         */
        private function prepareTabletQueryParameters(array $parameters) : array
        {
        }
        /**
         * If exists fields alias, result row is modified.
         * @internal
         *
         * @param array &$row
         * @return void
         */
        private function replaceFieldToAlias(array &$row) : void
        {
        }
        /**
         * Filter row by tablet fields (include uf fields, if exists).
         * @internal
         *
         * @param array $fields
         * @return array
         */
        private function checkTabletWhiteList(array $fields) : array
        {
        }
        /* entity cache item tools */
        /**
         * Load cached fields for entity item.
         * @internal
         *
         * @param int $id
         * @return void
         */
        private function loadEntityCacheItem($id) : void
        {
        }
        /**
         * Internal method for get entity item cache.
         * @internal
         *
         * @param int $id
         * @param bool $load
         * @return array
         */
        private function getEntityCacheItem($id, bool $load = false)
        {
        }
        /**
         * Internal method for setting entity item cache.
         * @internal
         *
         * @param int $id
         * @param array $row
         * @param bool $replaceAliases
         * @return void
         */
        private function setEntityCacheItem($id, array $row, bool $replaceAliases = false) : void
        {
        }
        /**
         * Internal method for modify entity item cache.
         * @internal
         *
         * @param int $id
         * @param array $row
         * @return void
         */
        private function modifyEntityCacheItem($id, array $row) : void
        {
        }
        /**
         * Internal method for marked entity item cache as modified.
         * @internal
         *
         * @param int $id
         * @param bool $copy
         * @return void
         */
        private function expireEntityCacheItem($id, bool $copy = false) : void
        {
        }
        /**
         * Clear entity cache for item.
         * @internal
         *
         * @param int $id
         * @return void
         */
        private function clearEntityCacheItem($id) : void
        {
        }
    }
    class Product extends \Bitrix\Catalog\Model\Entity
    {
        /** @var bool Enable offers automation */
        private static $separateSkuMode = null;
        /** @var bool Sale exists */
        private static $saleIncluded = null;
        /**
         * Returns product tablet name.
         *
         * @return string
         */
        public static function getTabletClassName() : string
        {
        }
        /**
         * Delete product item. Use instead of DataManager method.
         *
         * @param int $id
         * @return ORM\Data\DeleteResult
         */
        public static function delete($id) : \Bitrix\Main\ORM\Data\DeleteResult
        {
        }
        /**
         * Check and modify fields before add product. Need for product automation.
         *
         * @param ORM\Data\AddResult $result
         * @param int|null $id
         * @param array &$data
         * @return void
         */
        protected static function prepareForAdd(\Bitrix\Main\ORM\Data\AddResult $result, $id, array &$data) : void
        {
        }
        /**
         * Check and modify fields before update product. Need for product automation.
         *
         * @param ORM\Data\UpdateResult $result
         * @param int $id
         * @param array &$data
         * @return void
         */
        protected static function prepareForUpdate(\Bitrix\Main\ORM\Data\UpdateResult $result, $id, array &$data) : void
        {
        }
        /**
         * Run core automation after add product.
         *
         * @param int $id
         * @param array $data
         * @return void
         */
        protected static function runAddExternalActions($id, array $data) : void
        {
        }
        /**
         * Run core automation after update product.
         *
         * @param int $id
         * @param array $data
         * @return void
         */
        protected static function runUpdateExternalActions($id, array $data) : void
        {
        }
        /**
         * Returns product default fields list for caching.
         *
         * @return array
         */
        protected static function getDefaultCachedFieldList() : array
        {
        }
        /**
         * Run core automation after delete product.
         *
         * @param int $id
         * @return void
         */
        protected static function runDeleteExternalActions($id) : void
        {
        }
        /**
         * Sending messages that the product has become available.
         * @internal
         *
         * @param $id
         * @param array $product
         * @return void
         */
        private static function checkSubscription($id, array $product) : void
        {
        }
        private static function checkPriceValue($price) : ?float
        {
        }
        private static function checkPriceCurrency($currency) : ?string
        {
        }
        private static function calculateAvailable(array &$fields, array &$actions)
        {
        }
        //TODO: remove after create \Bitrix\Catalog\Model\CatalogIblock
        private static function getProductTypes($catalogType)
        {
        }
        //TODO: remove after create \Bitrix\Catalog\Model\CatalogIblock
        private static function getDefaultProductType($catalogType)
        {
        }
    }
    class EventResult extends \Bitrix\Main\Entity\EventResult
    {
        public function __construct()
        {
        }
        public function modifyFields(array $fields)
        {
        }
        public function unsetFields(array $fields)
        {
        }
        /**
         * @param string $fieldName
         */
        public function unsetField($fieldName)
        {
        }
        public function modifyExternalFields(array $fields)
        {
        }
        public function unsetExternalFields(array $fields)
        {
        }
        public function modifyActions(array $actions)
        {
        }
        public function unsetActions(array $actions)
        {
        }
    }
    class Price extends \Bitrix\Catalog\Model\Entity
    {
        /** @var bool Enable offers automation */
        private static $separateSkuMode = null;
        private static $productPrices = [];
        private static $basePriceType = null;
        private static $priceTypes = null;
        private static $extraList = null;
        /**
         * Returns price tablet name.
         *
         * @return string
         */
        public static function getTabletClassName() : string
        {
        }
        public static function recountPricesFromBase($id)
        {
        }
        /**
         * Check and modify fields before add product price. Need for entity automation.
         *
         * @param ORM\Data\AddResult $result
         * @param int|null $id
         * @param array &$data
         * @return void
         */
        protected static function prepareForAdd(\Bitrix\Main\ORM\Data\AddResult $result, $id, array &$data) : void
        {
        }
        /**
         * Check and modify fields before update product price. Need for entity automation.
         *
         * @param ORM\Data\UpdateResult $result
         * @param int $id
         * @param array &$data
         * @return void
         */
        protected static function prepareForUpdate(\Bitrix\Main\ORM\Data\UpdateResult $result, $id, array &$data) : void
        {
        }
        /**
         * Run core automation after add product price.
         *
         * @param int $id
         * @param array $data
         * @return void
         */
        protected static function runAddExternalActions($id, array $data) : void
        {
        }
        /**
         * Run core automation after update product price.
         *
         * @param int $id
         * @param array $data
         * @return void
         */
        protected static function runUpdateExternalActions($id, array $data) : void
        {
        }
        /**
         * Run core automation after delete product price.
         *
         * @param int $id
         * @return void
         */
        protected static function runDeleteExternalActions($id) : void
        {
        }
        /**
         * Returns product price default fields list for caching.
         *
         * @return array
         */
        protected static function getDefaultCachedFieldList() : array
        {
        }
        /**
         * Check and correct quantity range.
         * @internal
         *
         * @param ORM\Data\Result $result        for errors.
         * @param array &$fields                    price data.
         * @return void
         */
        private static function checkQuantityRange(\Bitrix\Main\ORM\Data\Result $result, array &$fields)
        {
        }
        /**
         * Check price value.
         * @internal
         *
         * @param string|int|float|null $price      Price value.
         * @return float|int|null
         */
        private static function checkPriceValue($price)
        {
        }
        private static function loadSettings()
        {
        }
        private static function calculatePriceFromBase($id, array &$fields)
        {
        }
        private static function getPriceIndex(array $row)
        {
        }
        private static function loadProductBasePrices($productId)
        {
        }
    }
}
namespace Bitrix\Catalog\Helpers\Admin {
    class IblockPriceChanger
    {
        private $iblockId = 0;
        private $userDialogParams = array();
        /**
         * IblockChangePrice constructor.
         *
         * @param array $userDialogParams
         * @param int $iblockId
         */
        public function __construct(array $userDialogParams, $iblockId)
        {
        }
        /**
         * Set of parameters which was set in CAdminDialog
         *
         * @param array $userDialogParams		Dialog's parameter.
         * @return array|bool
         */
        public function setUserDialogParams(array $userDialogParams)
        {
        }
        /**
         * Get list of all chosen elements
         *
         * @param @return array $productsIdList
         */
        private function collectAllSectionsElements(&$productsIdList)
        {
        }
        /**
         * Get list of id's price elements
         *
         * @param array $productsIdList
         * @return array priceElementsIdList
         */
        private function collectPriceSkuElementsId($productsIdList)
        {
        }
        /**
         * Return array of parameters for CPrice::GetList
         *
         * @return array $filterList
         */
        private function initFilterParams()
        {
        }
        /**
         * Calculate price element before update by user's params
         *
         * @param float $price
         * @return float $price
         */
        private function calculateResultPrice($price)
        {
        }
        /**
         * Function updates prices of chosen elements by GroupOperations
         *
         * @param array $productsIdList		 List of elements's IDs.
         * @return Main\Result
         */
        public function updatePrices($productsIdList)
        {
        }
        private function updatePriceBlock($productId, array $prices, $basePriceId)
        {
        }
    }
    class CatalogEdit
    {
        const CATALOG_ACTION_ADD = 'add';
        const CATALOG_ACTION_UPDATE = 'update';
        const CATALOG_ACTION_DELETE = 'delete';
        const IBLOCK_ACTION_FILL_PRODUCT = 0x1;
        protected $iblockId = 0;
        protected $iblockData = array();
        protected $iblockCatalogData = array();
        protected $simpleIblock = true;
        protected $parentIblock = false;
        protected $offerIblock = false;
        protected $catalogIblock = false;
        protected $enableRecurring = null;
        protected $updateData = array();
        protected $catalogTableActions = array();
        protected $iblockActions = array();
        protected $errors = array();
        protected static $siteListSeparator = '|';
        /**
         * @param int $iblockId				Iblock ID.
         */
        public function __construct($iblockId)
        {
        }
        /**
         * Return current status.
         *
         * @return bool
         */
        public function isSuccess()
        {
        }
        /**
         * Return current errors.
         *
         * @return array
         */
        public function getErrors()
        {
        }
        /**
         * Clear current errors.
         *
         * @return void
         */
        public function clearErrors()
        {
        }
        /**
         * Return sale recurring feature state.
         *
         * @return bool
         */
        public function isEnableRecurring()
        {
        }
        /**
         * Load iblock data.
         *
         * @return void
         * @throws Main\ArgumentException
         */
        public function loadIblock()
        {
        }
        /**
         * Load catalog data from database.
         *
         * @return void
         */
        public function loadCatalog()
        {
        }
        /**
         * Return iblock data.
         *
         * @return array
         */
        public function getIblock()
        {
        }
        /**
         * Return catalog data.
         *
         * @return array
         */
        public function getCatalog()
        {
        }
        /**
         * Save new catalog data.
         *
         * @param array $catalogData			Post form params.
         * @return void
         */
        public function saveCatalog($catalogData)
        {
        }
        /**
         * Check catalog data before update.
         *
         * @param array $catalogData			Post form params.
         * @return void
         */
        public function prepareCatalogData($catalogData)
        {
        }
        /**
         * Return iblock site list in string format.
         *
         * @param array $siteList			Iblock site list.
         * @param bool $sorted				Site list already sorted.
         * @return string
         */
        protected static function getSiteListString($siteList, $sorted = false)
        {
        }
        /**
         * Load iblock data from database.
         *
         * @param int $iblockId				Iblock id.
         * @return array|bool|false
         * @throws Main\ArgumentException
         */
        protected static function loadIblockFromDatabase($iblockId)
        {
        }
        /**
         * Load iblock sites from database.
         *
         * @param int $iblockId				Iblock id.
         * @return array
         * @throws Main\ArgumentException
         */
        protected static function loadIblockSitesFromDatabase($iblockId)
        {
        }
        /**
         * Return is iblock not use in catalog module.
         *
         * @param bool|array $iblockCatalog		Catalog data.
         * @return bool
         */
        protected static function isSimpleIblock($iblockCatalog)
        {
        }
        /**
         * Return is iblock - catalog.
         *
         * @param array $iblockCatalog		Catalog data.
         * @return bool
         */
        protected static function isCatalogIblock($iblockCatalog)
        {
        }
        /**
         * Return is iblock use sku.
         *
         * @param array $iblockCatalog		Catalog data.
         * @return bool
         */
        protected static function isParentIblock($iblockCatalog)
        {
        }
        /**
         * Return is sku iblock.
         *
         * @param array $iblockCatalog		Catalog data.
         * @return bool
         */
        protected static function isOfferIblock($iblockCatalog)
        {
        }
        /**
         * Init catalog data for update.
         *
         * @return void
         */
        protected function initUpdateData()
        {
        }
        /**
         * Get sku property.
         *
         * @param int $parentiblockId		Product iblock Id.
         * @param int $offerIblockId		Offer iblock id.
         * @return int
         */
        protected function createSkuProperty($parentiblockId, $offerIblockId)
        {
        }
    }
    /**
     * Class Tools
     * Provides various useful methods for admin pages.
     *
     * @package Bitrix\Catalog\Helpers\Admin
     */
    class Tools
    {
        /**
         * Return array with edit url for all price types.
         *
         * @return array
         */
        public static function getPriceTypeLinkList()
        {
        }
        /**
         * Return price type list for dropdown selectors.
         *
         * @param bool $codeIndex	Use price code for result index.
         * @return array
         */
        public static function getPriceTypeList($codeIndex = false)
        {
        }
    }
    /**
     * Class ProductEdit
     * Provides methods for admin product page.
     *
     * @package Bitrix\Catalog\Helpers\Admin
     */
    class ProductEdit
    {
        /**
         * Return default values for product fields.
         *
         * @param bool $subscribe		Is iblock subscribe.
         * @return array
         * @throws Main\ArgumentNullException
         */
        public static function getDefaultValues($subscribe = false)
        {
        }
    }
    /**
     * Class RoundEdit
     * Provides various useful methods for admin pages.
     *
     * @package Bitrix\Catalog\Helper\Admin
     */
    class RoundEdit
    {
        /**
         * Return default round values for admin forms.
         *
         * @param bool $dropdownList		Return list for usage in admin pages.
         * @return array
         */
        public static function getPresetRoundValues($dropdownList = false)
        {
        }
        /**
         * Prepare admin form data.
         *
         * @param array &$fields		Fields for update/add.
         * @return void
         */
        public static function prepareFields(array &$fields)
        {
        }
    }
}
namespace Bitrix\Catalog\Helpers {
    /**
     * Class Tools
     * Provides various useful methods for data.
     *
     * @package Bitrix\Catalog\Helpers
     */
    class Tools
    {
        /**
         * Check existing keys in array.
         *
         * @param array $fields			Source array.
         * @param array $keyList		Key list for search.
         * @param bool $checkNull		Checked null values.
         * @return bool
         */
        public static function checkExistKeys(array $fields, array $keyList, $checkNull = false)
        {
        }
        /**
         * Return missing key list.
         *
         * @param array $fields			Source array.
         * @param array $keyList		Key list for search.
         * @param bool $checkNull		Checked null values.
         * @return array
         */
        public static function getMissingKeys(array $fields, array $keyList, $checkNull = false)
        {
        }
        /**
         * Return keys status in fields.
         *
         * @param array $fields			Source array.
         * @param array $keyList		Key list for search.
         * @param bool $checkNull		Checked null values.
         * @return array|bool
         */
        public static function prepareKeys(array $fields, array $keyList, $checkNull = false)
        {
        }
        /**
         * Callback for array_filter - clear null fields.
         *
         * @param mixed $value		Clear value.
         * @return bool
         */
        public static function clearNullFields($value)
        {
        }
    }
}
namespace Bitrix\Iblock\Grid\Panel {
    class GroupAction
    {
        public const GRID_TYPE_UI = 'main.ui.grid';
        public const GRID_TYPE_LIST = 'adminList';
        public const GRID_TYPE_SUBLIST = 'subList';
        private const PREFIX_ID = 'iblock_grid_action_';
        /** @var string Grid Id */
        protected $entityId = '';
        protected $gridType = self::GRID_TYPE_UI;
        /** @var array */
        protected $options = [];
        /** @var int */
        protected $iblockId = null;
        /** @var array */
        protected $iblockConfig = ['SECTIONS' => 'N', 'SECTION_CHOOSER' => \Bitrix\Iblock\IblockTable::SECTION_CHOOSER_SELECT];
        /** @var Main\Grid\Panel\Snippet */
        protected $mainSnippet = null;
        /** @var Main\HttpRequest */
        protected $request = null;
        /** @var array */
        protected $sections = null;
        protected $actionHandlers = [];
        public function __construct(array $options)
        {
        }
        /**
         * @param array $actions
         * @return array
         */
        public function getList(array $actions)
        {
        }
        /**
         * @param string $code
         * @param array $params
         * @return array|null
         */
        public function get(string $code, array $params = [])
        {
        }
        /**
         * @param string $code
         * @return array|null
         */
        public function getRequest(string $code)
        {
        }
        /**
         * @return string
         */
        protected function getEntityId()
        {
        }
        /**
         * @return void
         */
        protected function initConfig()
        {
        }
        /**
         * @return void
         */
        protected function initActions()
        {
        }
        /**
         * @param string $value
         * @return void
         */
        protected function setGridType(string $value)
        {
        }
        /**
         * @return string
         */
        protected function getGridType()
        {
        }
        /**
         * @return bool
         */
        protected function isUiGrid()
        {
        }
        /**
         * @return array
         */
        protected function getActionHandlers()
        {
        }
        /**
         * @return array
         */
        protected function getDefaultApplyAction()
        {
        }
        /**
         * @param string $id
         * @return string
         */
        protected function getElementId($id)
        {
        }
        /**
         * @param array $params
         * @return array
         */
        protected function getApplyButton(array $params)
        {
        }
        /**
         * @param array $params
         * @return array
         */
        protected function getApplyButtonWithConfirm(array $params)
        {
        }
        /**
         * @return void
         */
        protected function loadSections()
        {
        }
        /**
         * @param bool $addTop
         * @return array
         */
        protected function getSections($addTop = false)
        {
        }
        /**
         * @param array $action
         * @return array
         */
        protected function getAddSectionList(array $action)
        {
        }
        /**
         * @param array $action
         * @return array
         */
        protected function getAddSectionDialog(array $action)
        {
        }
        /**
         * @param array $action
         * @return array
         */
        protected function getAdjustSectionList(array $action)
        {
        }
        /**
         * @param array $params
         * @return string
         */
        protected function actionEditPanel(array $params = [])
        {
        }
        /**
         * @param array $params
         * @return true
         * @noinspection PhpUnusedParameterInspection
         */
        protected function actionSelectAllPanel(array $params = [])
        {
        }
        /**
         * @param array $params
         * @return string
         */
        protected function actionDeletePanel(array $params = [])
        {
        }
        /**
         * @param array $params
         * @return string
         */
        protected function actionActivatePanel(array $params = [])
        {
        }
        /**
         * @param array $params
         * @return string
         */
        protected function actionDeactivatePanel(array $params = [])
        {
        }
        /**
         * @param array $params
         * @return array
         */
        protected function actionClearCounterPanel(array $params = [])
        {
        }
        /**
         * @param array $params
         * @return array
         */
        public function actionCodeTranslitPanel(array $params = [])
        {
        }
        /**
         * @param array $params
         * @return array|null
         */
        protected function actionAdjustSectionPanel(array $params = [])
        {
        }
        /**
         * @return array|null
         */
        protected function actionAdjustSectionRequest()
        {
        }
        /**
         * @param array $params
         * @return array|null
         */
        protected function actionAddSectionPanel(array $params = [])
        {
        }
        /**
         * @return array|null
         */
        protected function actionAddSectionRequest()
        {
        }
        /**
         * @param array $params
         * @return string
         */
        protected function actionElementUnlockPanel(array $params = [])
        {
        }
        /**
         * @param array $params
         * @return string
         */
        protected function actionElementLockPanel(array $params = [])
        {
        }
        /**
         * @param array $params
         * @return array|null
         */
        protected function actionElementWorkflowStatusPanel(array $params = [])
        {
        }
        /**
         * @return array|null
         */
        protected function actionElementWorkflowStatusRequest()
        {
        }
    }
}
namespace Bitrix\Catalog\Grid\Panel {
    class ProductGroupAction extends \Bitrix\Iblock\Grid\Panel\GroupAction
    {
        private const FIELD_ID_PREFIX = 'product_';
        private const FIELD_NAME_PREFIX = 'PRODUCT_';
        private const PRODUCT_FIELD_NAME = 'PRODUCT_FIELD_NAME';
        /** @var bool */
        protected $catalogIncluded = null;
        protected $catalogOptions = [];
        /** @var array */
        protected $catalogConfig = null;
        protected $productFieldHandlers = [];
        public function __construct(array $options)
        {
        }
        /**
         * @return void
         */
        protected function initConfig()
        {
        }
        /**
         * @return void
         */
        protected function initProductFieldHandlers()
        {
        }
        /**
         * @return array
         */
        protected function getActionHandlers()
        {
        }
        /**
         * @param array $params
         * @return array|null
         */
        protected function actionProductFieldPanel(array $params = [])
        {
        }
        /**
         * @return array|null
         */
        protected function actionProductFieldRequest()
        {
        }
        /**
         * @param array $params
         * @return array|null
         */
        protected function actionProductChangePricePanel(array $params = [])
        {
        }
        /**
         * @return array|null
         */
        protected function actionProductChangePriceRequest()
        {
        }
        /**
         * @return string
         */
        protected function getFormProductFieldName()
        {
        }
        /**
         * @return string
         */
        protected function getFormProductFieldId()
        {
        }
        /**
         * @param string $field
         * @return string
         */
        protected function getFormRowFieldName(string $field)
        {
        }
        /**
         * @param string $field
         * @return string
         */
        protected function getFormRowFieldId(string $field)
        {
        }
        /**
         * @param bool $defaultState
         * @return array
         */
        protected static function getStatusList(bool $defaultState)
        {
        }
        /**
         * @return array
         */
        protected static function getBinaryList()
        {
        }
        /**
         * @return bool
         */
        protected function isAllowedProductActions()
        {
        }
        /**
         * @param string $fieldId
         * @return array
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function getInputField(string $fieldId)
        {
        }
        /**
         * @param string $fieldId
         * @param array $list
         * @return array|null
         * @throws Main\ArgumentException
         * @throws Main\SystemException
         */
        protected function getDropdownField(string $fieldId, array $list)
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldWeightRow()
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldWeightRequest()
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldQuantityTraceRow()
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldQuantityTraceRequest()
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldCanBuyZeroRow()
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldCanBuyZeroRequest()
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldQuantityRow()
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldQuantityRequest()
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldPurchasingPriceRow()
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldPurchasingPriceRequest()
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldVatIncludedRow()
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldVatIncludedRequest()
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldVatIdRow()
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldVatIdRequest()
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldSubscribeRow()
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldSubscribeRequest()
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldMeasureRow()
        {
        }
        /**
         * @return array|null
         */
        protected function getProductFieldMeasureRequest()
        {
        }
        /**
         * Returns float value or null for data entered in user form.
         * @internal
         *
         * @param $value
         * @return float|null
         */
        protected static function checkFloatValue($value)
        {
        }
        /**
         * Returns float value or null for price data entered in user form. Need for php7.
         * @internal
         *
         * @param string|int|float $value		Float value from form.
         * @return float|null|string
         */
        protected static function checkEmptyFloatValue($value)
        {
        }
        /**
         * @param string $value
         * @return bool
         */
        protected static function checkStatusValue($value)
        {
        }
        /**
         * @param string $value
         * @return bool
         */
        protected static function checkBinaryValue($value)
        {
        }
        /**
         * Returns int value or null for data entered in user form.
         * @internal
         *
         * @param string|int $value		Integer value from form.
         * @return int|null
         */
        protected static function checkIntValue($value)
        {
        }
    }
}
namespace Bitrix\Catalog\Grid {
    class ProductAction
    {
        const SET_FIELD = 'product_field';
        const CHANGE_PRICE = 'change_price';
        public static function updateSectionList(int $iblockId, array $sections, array $fields)
        {
        }
        public static function updateElementList(int $iblockId, array $elementIds, array $fields)
        {
        }
        public static function updateProductField(int $iblockId, int $elementId, array $fields)
        {
        }
        protected static function getSectionProducts(int $iblockId, array $sections, array $filter)
        {
        }
        protected static function getBlockedProductTypes(array $catalog, array $fields)
        {
        }
    }
}
namespace {
    class ABTest extends \CModule
    {
        var $MODULE_ID = 'abtest';
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_GROUP_RIGHTS = 'Y';
        public function __construct()
        {
        }
        function doInstall()
        {
        }
        function installDB()
        {
        }
        function installEvents()
        {
        }
        function installFiles()
        {
        }
        function doUninstall()
        {
        }
        function uninstallDB($arParams = array())
        {
        }
        function uninstallEvents()
        {
        }
        function uninstallFiles()
        {
        }
    }
}
namespace Bitrix\ABTest {
    /**
     * EO_ABTest
     * @see \Bitrix\ABTest\ABTestTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\ABTest\EO_ABTest setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getSiteId()
     * @method \Bitrix\ABTest\EO_ABTest setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string remindActualSiteId()
     * @method \string requireSiteId()
     * @method \Bitrix\ABTest\EO_ABTest resetSiteId()
     * @method \Bitrix\ABTest\EO_ABTest unsetSiteId()
     * @method \string fillSiteId()
     * @method \boolean getActive()
     * @method \Bitrix\ABTest\EO_ABTest setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\ABTest\EO_ABTest resetActive()
     * @method \Bitrix\ABTest\EO_ABTest unsetActive()
     * @method \boolean fillActive()
     * @method \string getEnabled()
     * @method \Bitrix\ABTest\EO_ABTest setEnabled(\string|\Bitrix\Main\DB\SqlExpression $enabled)
     * @method bool hasEnabled()
     * @method bool isEnabledFilled()
     * @method bool isEnabledChanged()
     * @method \string remindActualEnabled()
     * @method \string requireEnabled()
     * @method \Bitrix\ABTest\EO_ABTest resetEnabled()
     * @method \Bitrix\ABTest\EO_ABTest unsetEnabled()
     * @method \string fillEnabled()
     * @method \string getName()
     * @method \Bitrix\ABTest\EO_ABTest setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\ABTest\EO_ABTest resetName()
     * @method \Bitrix\ABTest\EO_ABTest unsetName()
     * @method \string fillName()
     * @method \string getDescr()
     * @method \Bitrix\ABTest\EO_ABTest setDescr(\string|\Bitrix\Main\DB\SqlExpression $descr)
     * @method bool hasDescr()
     * @method bool isDescrFilled()
     * @method bool isDescrChanged()
     * @method \string remindActualDescr()
     * @method \string requireDescr()
     * @method \Bitrix\ABTest\EO_ABTest resetDescr()
     * @method \Bitrix\ABTest\EO_ABTest unsetDescr()
     * @method \string fillDescr()
     * @method \string getTestData()
     * @method \Bitrix\ABTest\EO_ABTest setTestData(\string|\Bitrix\Main\DB\SqlExpression $testData)
     * @method bool hasTestData()
     * @method bool isTestDataFilled()
     * @method bool isTestDataChanged()
     * @method \string remindActualTestData()
     * @method \string requireTestData()
     * @method \Bitrix\ABTest\EO_ABTest resetTestData()
     * @method \Bitrix\ABTest\EO_ABTest unsetTestData()
     * @method \string fillTestData()
     * @method \Bitrix\Main\Type\DateTime getStartDate()
     * @method \Bitrix\ABTest\EO_ABTest setStartDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $startDate)
     * @method bool hasStartDate()
     * @method bool isStartDateFilled()
     * @method bool isStartDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualStartDate()
     * @method \Bitrix\Main\Type\DateTime requireStartDate()
     * @method \Bitrix\ABTest\EO_ABTest resetStartDate()
     * @method \Bitrix\ABTest\EO_ABTest unsetStartDate()
     * @method \Bitrix\Main\Type\DateTime fillStartDate()
     * @method \Bitrix\Main\Type\DateTime getStopDate()
     * @method \Bitrix\ABTest\EO_ABTest setStopDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $stopDate)
     * @method bool hasStopDate()
     * @method bool isStopDateFilled()
     * @method bool isStopDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualStopDate()
     * @method \Bitrix\Main\Type\DateTime requireStopDate()
     * @method \Bitrix\ABTest\EO_ABTest resetStopDate()
     * @method \Bitrix\ABTest\EO_ABTest unsetStopDate()
     * @method \Bitrix\Main\Type\DateTime fillStopDate()
     * @method \int getDuration()
     * @method \Bitrix\ABTest\EO_ABTest setDuration(\int|\Bitrix\Main\DB\SqlExpression $duration)
     * @method bool hasDuration()
     * @method bool isDurationFilled()
     * @method bool isDurationChanged()
     * @method \int remindActualDuration()
     * @method \int requireDuration()
     * @method \Bitrix\ABTest\EO_ABTest resetDuration()
     * @method \Bitrix\ABTest\EO_ABTest unsetDuration()
     * @method \int fillDuration()
     * @method \int getPortion()
     * @method \Bitrix\ABTest\EO_ABTest setPortion(\int|\Bitrix\Main\DB\SqlExpression $portion)
     * @method bool hasPortion()
     * @method bool isPortionFilled()
     * @method bool isPortionChanged()
     * @method \int remindActualPortion()
     * @method \int requirePortion()
     * @method \Bitrix\ABTest\EO_ABTest resetPortion()
     * @method \Bitrix\ABTest\EO_ABTest unsetPortion()
     * @method \int fillPortion()
     * @method \int getMinAmount()
     * @method \Bitrix\ABTest\EO_ABTest setMinAmount(\int|\Bitrix\Main\DB\SqlExpression $minAmount)
     * @method bool hasMinAmount()
     * @method bool isMinAmountFilled()
     * @method bool isMinAmountChanged()
     * @method \int remindActualMinAmount()
     * @method \int requireMinAmount()
     * @method \Bitrix\ABTest\EO_ABTest resetMinAmount()
     * @method \Bitrix\ABTest\EO_ABTest unsetMinAmount()
     * @method \int fillMinAmount()
     * @method \int getUserId()
     * @method \Bitrix\ABTest\EO_ABTest setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\ABTest\EO_ABTest resetUserId()
     * @method \Bitrix\ABTest\EO_ABTest unsetUserId()
     * @method \int fillUserId()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\ABTest\EO_ABTest setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\ABTest\EO_ABTest resetUser()
     * @method \Bitrix\ABTest\EO_ABTest unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \int getSort()
     * @method \Bitrix\ABTest\EO_ABTest setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\ABTest\EO_ABTest resetSort()
     * @method \Bitrix\ABTest\EO_ABTest unsetSort()
     * @method \int fillSort()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\ABTest\EO_ABTest set($fieldName, $value)
     * @method \Bitrix\ABTest\EO_ABTest reset($fieldName)
     * @method \Bitrix\ABTest\EO_ABTest unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\ABTest\EO_ABTest wakeUp($data)
     */
    class EO_ABTest
    {
        /* @var \Bitrix\ABTest\ABTestTable */
        public static $dataClass = '\\Bitrix\\ABTest\\ABTestTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_ABTest_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getSiteIdList()
     * @method \string[] fillSiteId()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \string[] getEnabledList()
     * @method \string[] fillEnabled()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getDescrList()
     * @method \string[] fillDescr()
     * @method \string[] getTestDataList()
     * @method \string[] fillTestData()
     * @method \Bitrix\Main\Type\DateTime[] getStartDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillStartDate()
     * @method \Bitrix\Main\Type\DateTime[] getStopDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillStopDate()
     * @method \int[] getDurationList()
     * @method \int[] fillDuration()
     * @method \int[] getPortionList()
     * @method \int[] fillPortion()
     * @method \int[] getMinAmountList()
     * @method \int[] fillMinAmount()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\ABTest\EO_ABTest_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\ABTest\EO_ABTest $object)
     * @method bool has(\Bitrix\ABTest\EO_ABTest $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\ABTest\EO_ABTest getByPrimary($primary)
     * @method \Bitrix\ABTest\EO_ABTest[] getAll()
     * @method bool remove(\Bitrix\ABTest\EO_ABTest $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\ABTest\EO_ABTest_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\ABTest\EO_ABTest current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_ABTest_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\ABTest\ABTestTable */
        public static $dataClass = '\\Bitrix\\ABTest\\ABTestTable';
    }
    /**
     * @method static EO_ABTest_Query query()
     * @method static EO_ABTest_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_ABTest_Result getById($id)
     * @method static EO_ABTest_Result getList(array $parameters = array())
     * @method static EO_ABTest_Entity getEntity()
     * @method static \Bitrix\ABTest\EO_ABTest createObject($setDefaultValues = true)
     * @method static \Bitrix\ABTest\EO_ABTest_Collection createCollection()
     * @method static \Bitrix\ABTest\EO_ABTest wakeUpObject($row)
     * @method static \Bitrix\ABTest\EO_ABTest_Collection wakeUpCollection($rows)
     */
    class ABTestTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_ABTest_Result exec()
     * @method \Bitrix\ABTest\EO_ABTest fetchObject()
     * @method \Bitrix\ABTest\EO_ABTest_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_ABTest_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\ABTest\EO_ABTest fetchObject()
     * @method \Bitrix\ABTest\EO_ABTest_Collection fetchCollection()
     */
    class EO_ABTest_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\ABTest\EO_ABTest createObject($setDefaultValues = true)
     * @method \Bitrix\ABTest\EO_ABTest_Collection createCollection()
     * @method \Bitrix\ABTest\EO_ABTest wakeUpObject($row)
     * @method \Bitrix\ABTest\EO_ABTest_Collection wakeUpCollection($rows)
     */
    class EO_ABTest_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    class EventHandler
    {
        /**
         * Passes an A/B-test mode string from request to session
         *
         * @return void
         */
        public static function onPageStart()
        {
        }
        /**
         * Defines if site template should be overridden
         * 
         * @param \Bitrix\Main\Event $event Event.
         * @return string|null
         */
        public static function onGetCurrentSiteTemplate(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Defines if page file should be overridden
         * 
         * @param \Bitrix\Main\Event $event Event.
         * @return string|null
         */
        public static function onFileRewrite(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Returns A/B-test related attribute types
         * 
         * @return array
         */
        public static function onGetAttributeTypes()
        {
        }
        /**
         * Sets A/B-test related attributes to conversion context
         * 
         * @param \Bitrix\Conversion\DayContext $conversionContext Conversion context.
         * @return void
         */
        public static function onConversionSetContextAttributes(\Bitrix\Conversion\DayContext $conversionContext)
        {
        }
        /**
         * Adds A/B-test related buttons to Control Panel
         * 
         * @return void
         */
        public static function onPanelCreate()
        {
        }
    }
    class AdminHelper
    {
        /**
         * Returns script filename by URL
         *
         * @param string $site Site ID.
         * @param string $url URL.
         * @return string|null
         */
        public static function getRealPath($site, $url)
        {
        }
        /**
         * Returns urlrewrite array
         *
         * @param string $site Site ID.
         * @return array
         */
        private static function getRewriteRules($site)
        {
        }
        /**
         * Returns site traffic capacity
         *
         * @param string $id Site ID.
         * @return array
         */
        public static function getSiteCapacity($id)
        {
        }
        /**
         * Returns A/B-test traffic amounts
         *
         * @param int $id A/B-test ID.
         * @return array
         */
        public static function getTestCapacity($id)
        {
        }
    }
    class Helper
    {
        /**
         * Returns active A/B-test
         *
         * @return array|null
         */
        public static function getActiveTest()
        {
        }
        /**
         * Returns an A/B-test context array
         *
         * @param array $abtest A/B-test.
         * @param string $section Section.
         * @return array
         */
        private static function context($abtest, $section)
        {
        }
        /**
         * Returns current A/B-test context
         *
         * @return array|null
         */
        public static function getContext()
        {
        }
        /**
         * Returns alternative test value for current A/B-test context
         *
         * @param string $type Test type.
         * @param string $value Test original value.
         * @return string|null
         */
        public static function getAlternative($type, $value)
        {
        }
        /**
         * Starts an A/B-test
         *
         * @param int $id A/B-test ID.
         * @return bool
         */
        public static function startTest($id)
        {
        }
        /**
         * Stops an A/B-test
         *
         * @param int $id A/B-test ID.
         * @param bool $auto Auto-stop flag.
         * @return bool
         */
        public static function stopTest($id, $auto = false)
        {
        }
        /**
         * Deletes an A/B-test
         *
         * @param int $id A/B-test ID.
         * @return bool
         */
        public static function deleteTest($id)
        {
        }
        /**
         * Cleans active A/B-test cache
         *
         * @param int $siteId Site ID.
         * @return void
         */
        public static function clearCache($siteId)
        {
        }
    }
}
namespace {
    class socialservices extends \CModule
    {
        var $MODULE_ID = "socialservices";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        function socialservices()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        public function migrateToBox()
        {
        }
        function OnGetTableSchema()
        {
        }
    }
    class CSocialServicesAuthSplitAjaxController extends \Bitrix\Main\Engine\Controller
    {
        public function logoutAction()
        {
        }
    }
    class CSocservContactsComponent extends \CBitrixComponent
    {
        const DEFAULT_PAGE_SIZE = 12;
        const CONNECT_PREFIX = "network";
        protected $userId = \null;
        protected $contactList = array();
        protected $navObject = \null;
        /**
         * Load language file.
         */
        public function onIncludeComponentLang()
        {
        }
        /**
         * Is AJAX Request?
         * @return bool
         */
        protected function isAjax()
        {
        }
        /**
         * Prepare Component Params.
         *
         * @param array $params Component parameters.
         * @return array
         */
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * Process incoming request
         * @return void
         */
        protected function processRequest()
        {
        }
        /**
         * Check Required Modules
         * @throws Exception
         */
        protected function checkModules()
        {
        }
        /**
         * Check Required functionality
         * @throws Exception
         */
        protected function checkAvailability()
        {
        }
        /**
         * Get main data - user contacts
         * @return void
         */
        protected function prepareData()
        {
        }
        /**
         * Prepare data to render
         * @return void
         */
        protected function formatResult()
        {
        }
        protected function getConnectId($connect)
        {
        }
        /**
         * Extract data from cache
         * @return bool
         */
        protected function extractDataFromCache()
        {
        }
        protected function putDataToCache()
        {
        }
        protected function abortDataCache()
        {
        }
        /**
         * Start Component
         */
        public function executeComponent()
        {
        }
    }
    class CSocServEventHandlers
    {
        public static function OnFillSocNetLogEvents(&$arSocNetLogEvents)
        {
        }
        function FormatEvent_Data($arFields, $arParams, $bMail = \false)
        {
        }
        function GetEntity_Data($arFields, $bMail)
        {
        }
        function FormatComment_Data($arFields, $arParams, $bMail = \false, $arLog = array())
        {
        }
        function OnTimeManShow()
        {
        }
    }
    //base class for auth services
    class CSocServAuth
    {
        protected static $settingsSuffix = \false;
        protected $checkRestrictions = \true;
        protected $allowChangeOwner = \true;
        protected $userId = \null;
        function __construct($userId = \null)
        {
        }
        public static function getControllerUrl()
        {
        }
        public function GetSettings()
        {
        }
        protected function CheckFields($action, &$arFields)
        {
        }
        static function Update($id, $arFields)
        {
        }
        public static function Delete($id)
        {
        }
        function OnUserDelete($id)
        {
        }
        function OnAfterTMReportDailyAdd()
        {
        }
        function OnAfterTMDayStart()
        {
        }
        public function CheckSettings()
        {
        }
        public function CheckPhotoURI($photoURI)
        {
        }
        public static function OptionsSuffix()
        {
        }
        public static function GetOption($opt)
        {
        }
        public static function SetOption($opt, $value)
        {
        }
        public static function getGroupsDenyAuth()
        {
        }
        public static function getGroupsDenySplit()
        {
        }
        public static function setGroupsDenyAuth($value)
        {
        }
        public static function setGroupsDenySplit($value)
        {
        }
        public static function isSplitDenied($arGroups = \null)
        {
        }
        public static function isAuthDenied($arGroups)
        {
        }
        public function AuthorizeUser($socservUserFields)
        {
        }
        public static function OnFindExternalUser($login)
        {
        }
        public function setAllowChangeOwner($value)
        {
        }
        protected static function hasEncryptedFields($arFields)
        {
        }
        protected static function encryptFields(&$arFields)
        {
        }
    }
    class CSocServOffice365OAuth extends \CSocServAuth
    {
        const ID = "Office365";
        const CONTROLLER_URL = "https://www.bitrix24.ru/controller";
        /** @var COffice365OAuthInterface null  */
        protected $entityOAuth = \null;
        public function getEntityOAuth()
        {
        }
        public function GetSettings()
        {
        }
        public function CheckSettings()
        {
        }
        public function GetFormHtml($arParams)
        {
        }
        public function GetOnClickJs($arParams)
        {
        }
        public function getUrl($location = 'opener', $addScope = \null, $arParams = array())
        {
        }
        public function getStorageToken()
        {
        }
        public function prepareUser($office365User)
        {
        }
        public function Authorize()
        {
        }
        public function getProfileUrl($id)
        {
        }
    }
    class COffice365OAuthInterface extends \CSocServOAuthTransport
    {
        const SERVICE_ID = "Office365";
        const AUTH_URL = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize";
        const TOKEN_URL = "https://login.microsoftonline.com/common/oauth2/v2.0/token";
        const VERSION = "/v1.0";
        const CONTACTS_URL = "/me/";
        const REDIRECT_URI = "/bitrix/tools/oauth/office365.php";
        protected $resource = "https://graph.microsoft.com";
        protected $scope = "User.Read";
        public function __construct($appID = \false, $appSecret = \false, $code = \false)
        {
        }
        public function GetAuthUrl($redirect_uri, $state = '')
        {
        }
        public function GetAccessToken($redirect_uri = \false)
        {
        }
        public function getNewAccessToken($refreshToken, $userId = 0, $save = \false)
        {
        }
        public function getResource()
        {
        }
        public function GetCurrentUser()
        {
        }
        public function getTenant()
        {
        }
        public function getRedirectUri()
        {
        }
    }
    /* @deprecated */
    class COffice365OAuthInterfaceOld extends \COffice365OAuthInterface
    {
        const RESOURCE_TPL = "https://#TENANT#-my.sharepoint.com";
        const VERSION = "/_api/v2.0";
        protected $tenant = \null;
        public function __construct($tenant = \false, $appID = \false, $appSecret = \false, $code = \false)
        {
        }
        public function getTenant()
        {
        }
        public function setTenant($tenant)
        {
        }
    }
    class CSocServZoom extends \CSocServAuth
    {
        public const ID = 'zoom';
        private const CONTROLLER_URL = 'https://www.bitrix24.com/controller';
        private const LOGIN_PREFIX = 'zoom_';
        public const EMPTY_TYPE = "EMPTY";
        protected $entityOAuth;
        public function __construct($userId = \null)
        {
        }
        public function GetSettings()
        {
        }
        /**
         * @param string|bool $code = false
         * @return CZoomInterface
         */
        public function getEntityOAuth($code = \false) : \CZoomInterface
        {
        }
        public function GetFormHtml($arParams)
        {
        }
        public function GetOnClickJs($arParams) : string
        {
        }
        public function getUrl($arParams) : string
        {
        }
        public function addScope($scope) : \CZoomInterface
        {
        }
        public function prepareUser($arUser, $short = \false) : array
        {
        }
        public static function CheckUniqueKey($bUnset = \true) : bool
        {
        }
        public function Authorize() : void
        {
        }
        public function setUser($userId)
        {
        }
        public function getStorageToken()
        {
        }
        public function createConference($params)
        {
        }
        private function getShortLink(int $conferenceId) : string
        {
        }
        /**
         * Updates Zoom conference and saves the result in DB table.
         *
         * @param array $updateParams Params which uses for update (conference dates).
         * @return Result
         * @throws Exception
         */
        public function updateConference(array $updateParams) : \Bitrix\Main\Result
        {
        }
        /**
         * Prepares start date and duration for update in Zoom, only if it is different from activity start date and duration.
         *
         * @param array $updateParams
         * @return array|null
         * @throws ArgumentException
         * @throws ObjectPropertyException
         * @throws SystemException
         */
        private function prepareDataToUpdate(array $updateParams) : ?array
        {
        }
        public function getConferenceById(int $confId) : ?array
        {
        }
        private function attachPasswordToUrl(string $conferenceUrl, string $password) : string
        {
        }
        /**
         * Notifies Zoom that we comply with the user’s data policy after the user uninstalls Bitrix24 app.
         *
         * @param array $payload
         *
         * @return Result
         */
        public function sendComplianceRequest(array $payload) : \Bitrix\Main\Result
        {
        }
    }
    class CZoomInterface extends \CSocServOAuthTransport
    {
        const SERVICE_ID = "zoom";
        const AUTH_URL = 'https://zoom.us/oauth/authorize';
        const TOKEN_URL = 'https://zoom.us/oauth/token';
        const COMPLIANCE_URL = 'https://api.zoom.us/oauth/data/compliance';
        private const API_ENDPOINT = 'https://api.zoom.us/v2/';
        private const USER_INFO_URL = 'users/me';
        private const CREATE_MEETING_ENDPOINT = 'users/me/meetings';
        private const UPDATE_MEETING_ENDPOINT = 'meetings/';
        protected $userId = \false;
        protected $responseData = array();
        protected $idToken;
        protected $scope = ['meeting:write', 'user:read:admin', 'meeting:read', 'recording:read'];
        public function __construct($appID = \false, $appSecret = \false, $code = \false)
        {
        }
        public function GetRedirectURI() : string
        {
        }
        public function GetAuthUrl($redirect_uri, $state = '') : string
        {
        }
        public function getResult()
        {
        }
        public function GetAccessToken($redirect_uri = '') : bool
        {
        }
        public function getNewAccessToken($refreshToken = \false, $userId = 0, $save = \false) : bool
        {
        }
        public function getCurrentUser()
        {
        }
        public function requestConference($params) : \Bitrix\Main\Result
        {
        }
        public function updateConference(int $conferenceId, array $params) : \Bitrix\Main\Result
        {
        }
        public function getConferenceById($confId) : ?array
        {
        }
        public function getConferenceFiles($confId) : ?array
        {
        }
        public function sendComplianceNotify(array $params) : \Bitrix\Main\Result
        {
        }
        private function sendRequest(string $method, string $endPoint, array $params = []) : \Bitrix\Main\Result
        {
        }
        /**
         * Checks if zoom is connected to user profile.
         *
         * @param $userId
         * @return bool
         * @throws ArgumentException
         * @throws ObjectPropertyException
         * @throws SystemException
         */
        public static function isConnected($userId) : bool
        {
        }
        public function GetAppInfo() : bool
        {
        }
        public function getScopeEncode() : string
        {
        }
    }
    class CSocServLiveIDOAuth extends \CSocServAuth
    {
        const ID = "LiveIDOAuth";
        const CONTROLLER_URL = "https://www.bitrix24.ru/controller";
        /** @var CLiveIDOAuthInterface null  */
        protected $entityOAuth = \null;
        public function getEntityOAuth()
        {
        }
        public function GetSettings()
        {
        }
        public function GetFormHtml($arParams)
        {
        }
        public function GetOnClickJs($arParams)
        {
        }
        public function getUrl($location = 'opener', $addScope = \null, $arParams = array())
        {
        }
        public function getStorageToken()
        {
        }
        public function Authorize()
        {
        }
        public function getFriendsList($limit = 0, $offset = 0)
        {
        }
        public function getProfileUrl($id)
        {
        }
    }
    class CLiveIDOAuthInterface
    {
        const SERVICE_ID = "LiveIDOAuth";
        const AUTH_URL = "https://login.live.com/oauth20_authorize.srf";
        const TOKEN_URL = "https://login.live.com/oauth20_token.srf";
        const CONTACTS_URL = "https://apis.live.net/v5.0/me/";
        const FRIENDS_URL = "https://apis.live.net/v5.0/me/contacts/";
        protected $appID;
        protected $appSecret;
        protected $code = \false;
        protected $access_token = \false;
        protected $accessTokenExpires = 0;
        protected $refresh_token = '';
        protected $scope = array('wl.signin', 'wl.basic', 'wl.offline_access', 'wl.emails');
        public function __construct($appID = \false, $appSecret = \false, $code = \false)
        {
        }
        public function getAccessTokenExpires()
        {
        }
        public function getAppID()
        {
        }
        public function getAppSecret()
        {
        }
        public function getToken()
        {
        }
        /**
         * @param string $refresh_token
         */
        public function setRefreshToken($refresh_token)
        {
        }
        public function setScope($scope)
        {
        }
        public function getScope()
        {
        }
        public function addScope($scope)
        {
        }
        public function getScopeEncode()
        {
        }
        public function GetAuthUrl($redirect_uri, $state = '')
        {
        }
        public function GetAccessToken($redirect_uri)
        {
        }
        public function GetCurrentUser()
        {
        }
        public function GetCurrentUserFriends($limit = 0, $offset = 0)
        {
        }
        private function getStorageTokens()
        {
        }
        private function checkAccessToken()
        {
        }
        public function getNewAccessToken($refreshToken, $userId = 0, $save = \false)
        {
        }
        protected function deleteStorageTokens()
        {
        }
    }
    class CSocServLiveID extends \CSocServAuth
    {
        public function GetSettings()
        {
        }
        public function GetFormHtml($arParams)
        {
        }
    }
    class CSocServOpenID
    {
        public function Authorize($identity = \false, $var = \false)
        {
        }
        public function GetFormHtml($arParams)
        {
        }
    }
    class CSocServYandex extends \CSocServOpenID
    {
        public function Authorize($identity = \false, $var = \false)
        {
        }
        public function GetFormHtml($arParams)
        {
        }
    }
    class CSocServMailRu extends \CSocServOpenID
    {
        public function Authorize($identity = \false, $var = \false)
        {
        }
        public function GetFormHtml($arParams)
        {
        }
    }
    class CSocServLivejournal extends \CSocServOpenID
    {
        public function Authorize($identity = \false, $var = \false)
        {
        }
        public function GetFormHtml($arParams)
        {
        }
    }
    class CSocServLiveinternet extends \CSocServOpenID
    {
        public function Authorize($identity = \false, $var = \false)
        {
        }
        public function GetFormHtml($arParams)
        {
        }
    }
    class CSocServBlogger extends \CSocServOpenID
    {
        public function Authorize($identity = \false, $var = \false)
        {
        }
        public function GetFormHtml($arParams)
        {
        }
    }
    class CSocServRambler extends \CSocServOpenID
    {
        public function Authorize($identity = \false, $var = \false)
        {
        }
        public function GetFormHtml($arParams)
        {
        }
    }
    class CSocServOdnoklassniki extends \CSocServAuth
    {
        const ID = "Odnoklassniki";
        const CONTROLLER_URL = "https://www.bitrix24.ru/controller";
        protected $entityOAuth = \null;
        public function GetSettings()
        {
        }
        public function getEntityOAuth()
        {
        }
        public function GetFormHtml($arParams)
        {
        }
        public function GetOnClickJs($arParams)
        {
        }
        public function getUrl($location = 'opener', $addScope = \null, $arParams = array())
        {
        }
        public function Authorize()
        {
        }
        public static function SendUserFeed($userId, $message)
        {
        }
    }
    class COdnoklassnikiInterface
    {
        const AUTH_URL = "http://www.odnoklassniki.ru/oauth/authorize";
        const TOKEN_URL = "http://api.odnoklassniki.ru/oauth/token.do";
        const CONTACTS_URL = "http://api.odnoklassniki.ru/fb.do";
        protected $appID;
        protected $appSecret;
        protected $appKey;
        protected $code = \false;
        protected $access_token = \false;
        protected $sign = \false;
        protected $refresh_token = '';
        protected $userId = 0;
        public function __construct($appID = \false, $appSecret = \false, $appKey = \false, $code = \false)
        {
        }
        public function GetAuthUrl($redirect_uri, $state = '')
        {
        }
        public function GetAccessToken($redirect_uri)
        {
        }
        public function GetCurrentUser()
        {
        }
        public function SendFeed($socServUserId, $message, $getNewToken = \true)
        {
        }
        private function SetOauthKeys($socServUserId)
        {
        }
        private function RefreshToken($socServUserId)
        {
        }
    }
    class CSocServDropboxAuth extends \CSocServAuth
    {
        const ID = "Dropbox";
        const CONTROLLER_URL = "https://www.bitrix24.ru/controller";
        const LOGIN_PREFIX = "DB_";
        /** @var CDropboxOAuthInterface null  */
        protected $entityOAuth = \null;
        /**
         * @param string $code=false
         * @return CDropboxOAuthInterface
         */
        public function getEntityOAuth($code = \false)
        {
        }
        public function GetSettings()
        {
        }
        public function GetFormHtml($arParams)
        {
        }
        public function GetOnClickJs($arParams)
        {
        }
        public function getUrl($location = 'opener', $addScope = \null, $arParams = array())
        {
        }
        public function getStorageToken()
        {
        }
        public function prepareUser($arDropboxUser, $short = \false)
        {
        }
        public function Authorize()
        {
        }
    }
    class CDropboxOAuthInterface extends \CSocServOAuthTransport
    {
        const SERVICE_ID = "Dropbox";
        const AUTH_URL = "https://www.dropbox.com/oauth2/authorize";
        const TOKEN_URL = "https://www.dropbox.com/oauth2/token";
        const ACCOUNT_URL = "https://api.dropboxapi.com/2/users/get_current_account";
        protected $oauthResult;
        public function __construct($appID = \false, $appSecret = \false, $code = \false)
        {
        }
        public function GetRedirectURI()
        {
        }
        public function GetAuthUrl($redirect_uri, $state = '')
        {
        }
        public function GetAccessToken($redirect_uri)
        {
        }
        public function GetCurrentUser()
        {
        }
    }
    class CSocServApple extends \CSocServAuth
    {
        public const ID = 'apple';
        public const LOGIN_PREFIX = 'apple_';
        private const CONTROLLER_URL = 'https://www.bitrix24.ru/controller';
        protected $entityOAuth;
        public function GetSettings()
        {
        }
        /**
         * @param string|bool $code = false
         * @return CAppleInterface
         */
        public function getEntityOAuth($code = \false) : \CAppleInterface
        {
        }
        public function GetFormHtml($arParams)
        {
        }
        public function GetOnClickJs($arParams) : string
        {
        }
        public function getUrl($arParams) : string
        {
        }
        public function addScope($scope) : \CAppleInterface
        {
        }
        public function prepareUser($arUser) : array
        {
        }
        public static function CheckUniqueKey($bUnset = \true) : bool
        {
        }
        public function Authorize() : void
        {
        }
        public function setUser($userId)
        {
        }
    }
    class CAppleInterface extends \CSocServOAuthTransport
    {
        const SERVICE_ID = "apple";
        const AUTH_URL = 'https://appleid.apple.com/auth/authorize';
        const TOKEN_URL = 'https://appleid.apple.com/auth/token';
        private const PUBLIC_KEYS_URL = 'https://appleid.apple.com/auth/keys';
        private const CLIENT_SECRET_EXPIRATION_TIME = 3600;
        private const DECODE_ALGORITHM = 'RS256';
        private const BITRIX_APP_BUNDLE_ID = 'com.bitrixsoft.cpmobile';
        protected $userId = \false;
        protected $responseData = array();
        protected $idToken;
        protected $scope = ['name', 'email'];
        private $keyId;
        private $teamId;
        private $secretKey;
        public function __construct($appID = \false, $appSecret = \false, $code = \false)
        {
        }
        public function GetRedirectURI() : string
        {
        }
        public function GetAuthUrl($redirect_uri, $state = '') : string
        {
        }
        public function getResult()
        {
        }
        public function GetAccessToken($redirect_uri = '') : bool
        {
        }
        public function getNewAccessToken($refreshToken = \false, $userId = 0, $save = \false) : bool
        {
        }
        public function getCurrentUser()
        {
        }
        public function GetAppInfo() : array
        {
        }
        public function getScopeEncode() : string
        {
        }
        private function getClientSecret() : string
        {
        }
        private function generateSignedJWT(string $keyId, string $teamId, string $clientId, string $secretKey)
        {
        }
        private static function convertDERSignature(string $der, int $partLength) : string
        {
        }
        /**
         * @param string $data
         *
         * @return string
         */
        private static function retrievePositiveInteger(string $data) : string
        {
        }
        private function fetchPublicKey()
        {
        }
        private function decodeIdentityToken(string $identityToken)
        {
        }
    }
    class CSocServDescription
    {
        public function GetDescription()
        {
        }
    }
    class CBitrixServiceOAuthInterface extends \CSocServOAuthTransport
    {
        const SERVICE_ID = "bitrixgeneric";
        const AUTH_URL = "/oauth/authorize/";
        const TOKEN_URL = "/oauth/token/";
        const URL = '';
        protected $scope = array();
        protected $authResult = array();
        public function __construct($appID = \false, $appSecret = \false, $code = \false)
        {
        }
        public function getResult()
        {
        }
        public function getError()
        {
        }
    }
    class CBitrixSeoOAuthInterface extends \CBitrixServiceOAuthInterface
    {
        const SERVICE_ID = "bitrixseo";
        const URL = \BITRIXSEO_URL;
        protected $transport = \null;
        protected $scope = array('seo');
        public function __construct($appID = \false, $appSecret = \false, $code = \false)
        {
        }
        public function getTransport()
        {
        }
        public function getClientInfo()
        {
        }
        public function getClientList()
        {
        }
        public function clearClientAuth($engine, $clientId = \null)
        {
        }
        public function addCampaign($engine, array $campaignParams)
        {
        }
        public function updateCampaign($engine, array $campaignParams)
        {
        }
        public function getCampaign($engine, array $campaignParams)
        {
        }
        public function getCampaignList($engine)
        {
        }
        public function archiveCampaign($engine, $campaignId)
        {
        }
        public function unArchiveCampaign($engine, $campaignId)
        {
        }
        public function resumeCampaign($engine, $campaignId)
        {
        }
        public function stopCampaign($engine, $campaignId)
        {
        }
        public function deleteCampaign($engine, $campaignId)
        {
        }
        public function addBanner($engine, array $bannerParam)
        {
        }
        public function updateBanner($engine, array $bannerParam)
        {
        }
        public function getBannerList($engine, $filter)
        {
        }
        public function moderateBanners($engine, $filter)
        {
        }
        public function stopBanners($engine, $filter)
        {
        }
        public function resumeBanners($engine, $filter)
        {
        }
        public function archiveBanners($engine, $filter)
        {
        }
        public function unArchiveBanners($engine, $filter)
        {
        }
        public function deleteBanners($engine, $filter)
        {
        }
        public function getRegions($engine)
        {
        }
        /**
         * Get yandex direct clients settings and info
         * @param $engine
         * @return bool|mixed
         */
        public function getClientsSettings($engine)
        {
        }
        public function createWordstatReport($engine, $queryData)
        {
        }
        public function deleteWordstatReport($engine, $reportId)
        {
        }
        public function getWordstatReport($engine, $reportId)
        {
        }
        public function getWordstatReportList($engine)
        {
        }
        public function createForecastReport($engine, $queryData)
        {
        }
        public function deleteForecastReport($engine, $reportId)
        {
        }
        public function getForecastReport($engine, $reportId)
        {
        }
        public function getForecastReportList($engine)
        {
        }
        public function getBannerStats($engine, array $params)
        {
        }
    }
    class CBitrixServiceTransport
    {
        const SERVICE_URL = "/rest/";
        const METHOD_METHODS = 'methods';
        const METHOD_BATCH = 'batch';
        protected $clientId = '';
        protected $clientSecret = '';
        protected $httpTimeout = \SOCSERV_DEFAULT_HTTP_TIMEOUT;
        protected $serviceHost = '';
        public function __construct($clientId, $clientSecret)
        {
        }
        protected function setSeviceHost($host)
        {
        }
        protected function prepareAnswer($result)
        {
        }
        public function call($methodName, $additionalParams = \null, $licenseCheck = \false)
        {
        }
        public function batch($actions)
        {
        }
        public function getMethods()
        {
        }
        public function setTimeout($timeout)
        {
        }
        protected static function getLicense()
        {
        }
    }
    class CBitrixSeoTransport extends \CBitrixServiceTransport
    {
        const METHOD_CLIENT_INFO = 'seo.client.info';
        const METHOD_CLIENT_LIST = 'seo.client.list';
        const METHOD_CLIENT_AUTH_CLEAR = 'seo.client.auth.clear';
        const METHOD_CAMPAIGN_ADD = 'seo.campaign.add';
        const METHOD_CAMPAIGN_UPDATE = 'seo.campaign.update';
        const METHOD_CAMPAIGN_GET = 'seo.campaign.get';
        const METHOD_CAMPAIGN_LIST = 'seo.campaign.list';
        const METHOD_CAMPAIGN_ARCHIVE = 'seo.campaign.archive';
        const METHOD_CAMPAIGN_UNARCHIVE = 'seo.campaign.unarchive';
        const METHOD_CAMPAIGN_RESUME = 'seo.campaign.resume';
        const METHOD_CAMPAIGN_STOP = 'seo.campaign.stop';
        const METHOD_CAMPAIGN_DELETE = 'seo.campaign.delete';
        const METHOD_BANNER_ADD = 'seo.banner.add';
        const METHOD_BANNER_UPDATE = 'seo.banner.update';
        const METHOD_BANNER_LIST = 'seo.banner.list';
        const METHOD_BANNER_MODERATE = 'seo.banner.moderate';
        const METHOD_BANNER_ARCHIVE = 'seo.banner.archive';
        const METHOD_BANNER_UNARCHIVE = 'seo.banner.unarchive';
        const METHOD_BANNER_RESUME = 'seo.banner.resume';
        const METHOD_BANNER_STOP = 'seo.banner.stop';
        const METHOD_BANNER_DELETE = 'seo.banner.delete';
        const METHOD_REGION_GET = 'seo.region.get';
        const METHOD_CLIENTS_GET = 'seo.clients.get';
        const METHOD_REPORT_WORDSTAT_CREATE = 'seo.report.wordstat.create';
        const METHOD_REPORT_WORDSTAT_DELETE = 'seo.report.wordstat.delete';
        const METHOD_REPORT_WORDSTAT_GET = 'seo.report.wordstat.get';
        const METHOD_REPORT_WORDSTAT_LIST = 'seo.report.wordstat.list';
        const METHOD_REPORT_FORECAST_CREATE = 'seo.report.forecast.create';
        const METHOD_REPORT_FORECAST_DELETE = 'seo.report.forecast.delete';
        const METHOD_REPORT_FORECAST_GET = 'seo.report.forecast.get';
        const METHOD_REPORT_FORECAST_LIST = 'seo.report.forecast.list';
        const METHOD_STAT_GET = 'seo.stat.get';
        public function __construct($clientId, $clientSecret)
        {
        }
        public function getClientInfo()
        {
        }
        public function getClientList()
        {
        }
        public function clearClientAuth($engine, $clientId = \null)
        {
        }
    }
    class CSocServTwitter extends \CSocServAuth
    {
        const ID = "Twitter";
        public function GetSettings()
        {
        }
        public function GetFormHtml($arParams)
        {
        }
        public function GetOnClickJs($arParams)
        {
        }
        public function getUrl($arParams)
        {
        }
        public function Authorize()
        {
        }
        public function GetUserMessage($socServUserArray, $sinceId = '1')
        {
        }
        public function setUser($userId)
        {
        }
        public function getFriendsList($limit, &$next)
        {
        }
        public static function sendMessage($uid, $message)
        {
        }
        public function TwitterUserId($userId)
        {
        }
        public static function SendUserFeed($userId, $message, $messageId)
        {
        }
    }
    class CTwitterInterface
    {
        const REQUEST_URL = "https://api.twitter.com/oauth/request_token";
        const AUTH_URL = "https://api.twitter.com/oauth/authenticate";
        const TOKEN_URL = "https://api.twitter.com/oauth/access_token";
        const API_URL = "https://api.twitter.com/1.1/users/show.json";
        const POST_URL = "https://api.twitter.com/1.1/statuses/update.json";
        const SEARCH_URL = "https://api.twitter.com/1.1/search/tweets.json";
        const FRIENDS_URL = "https://api.twitter.com/1.1/friends/list.json";
        const MESSAGE_URL = "https://api.twitter.com/1.1/direct_messages/new.json";
        protected $appID;
        protected $appSecret;
        protected $token = \false;
        protected $tokenVerifier = \false;
        protected $tokenSecret = \false;
        protected $oauthArray;
        public function __construct($appID = \false, $appSecret = \false, $token = \false, $tokenVerifier = \false, $tokenSecret = \false)
        {
        }
        protected function GetDefParams()
        {
        }
        public function GetRequestToken($callback)
        {
        }
        public function RedirectAuthUrl()
        {
        }
        public function GetAccessToken()
        {
        }
        public function GetUserInfo($user_id)
        {
        }
        public function getUserFriends($user_id, $limit, &$next)
        {
        }
        public function sendMessage($user_id, $uid, $message)
        {
        }
        public function SetOauthKeys($socServUserId)
        {
        }
        public function SearchByHash($hash, $socServUserArray, $sinceId)
        {
        }
        private function GetAllPages($arResult)
        {
        }
        private function GetAllPagesNotAuth($arResult)
        {
        }
        public function SendTwit($socServUserId, $message, $messageId)
        {
        }
        private function GetUserPerms($userXmlId)
        {
        }
        protected function urlencode($mixParams)
        {
        }
        protected function GetSignatureString($arParams, $url)
        {
        }
        protected function BuildQuery($params)
        {
        }
        protected function BuildSignature($sigString)
        {
        }
    }
    class CSocServBitrix24Net extends \CSocServAuth
    {
        const ID = "Bitrix24Net";
        const NETWORK_URL = \B24NETWORK_NODE;
        protected $entityOAuth = \null;
        public function GetSettings()
        {
        }
        public function CheckSettings()
        {
        }
        public function getFormHtml($arParams)
        {
        }
        public function GetOnClickJs()
        {
        }
        public function getEntityOAuth($code = \false)
        {
        }
        public function getUrl($mode = "page")
        {
        }
        public function getInviteUrl($userId, $checkword)
        {
        }
        public function addScope($scope)
        {
        }
        public function Authorize($skipCheck = \false)
        {
        }
        public static function registerSite($domain)
        {
        }
    }
    class CBitrix24NetOAuthInterface
    {
        const NET_URL = \B24NETWORK_NODE;
        const INVITE_URL = "/invite/";
        const PASSPORT_URL = "/id/";
        const AUTH_URL = "/oauth/authorize/";
        const TOKEN_URL = "/oauth/token/";
        protected $appID;
        protected $appSecret;
        protected $code = \false;
        protected $access_token = \false;
        protected $accessTokenExpires = 0;
        protected $lastAuth = \null;
        protected $refresh_token = '';
        protected $scope = array('auth');
        protected $arResult = array();
        public function __construct($appID = \false, $appSecret = \false, $code = \false)
        {
        }
        public function getAppID()
        {
        }
        public function getAppSecret()
        {
        }
        public function getAccessTokenExpires()
        {
        }
        public function setAccessTokenExpires($accessTokenExpires)
        {
        }
        public function getToken()
        {
        }
        public function setToken($access_token)
        {
        }
        public function getRefreshToken()
        {
        }
        public function setRefreshToken($refresh_token)
        {
        }
        public function setCode($code)
        {
        }
        public function setScope($scope)
        {
        }
        public function getScope()
        {
        }
        public function addScope($scope)
        {
        }
        public function getScopeEncode()
        {
        }
        public function getResult()
        {
        }
        public function getError()
        {
        }
        public function GetAuthUrl($redirect_uri, $state = '', $mode = 'popup')
        {
        }
        public function getInviteUrl($userId, $checkword)
        {
        }
        public function getLastAuth()
        {
        }
        public function GetAccessToken($redirect_uri = '')
        {
        }
        public function getNewAccessToken($refreshToken = \false, $userId = 0, $save = \false, $scope = array())
        {
        }
        public function GetCurrentUser()
        {
        }
        public function RevokeAuth()
        {
        }
        public function UpdateCurrentUser($arFields)
        {
        }
        private function getStorageTokens()
        {
        }
        public function checkAccessToken()
        {
        }
    }
    class CBitrix24NetTransport
    {
        const SERVICE_URL = "/rest/";
        const METHOD_METHODS = 'methods';
        const METHOD_BATCH = 'batch';
        const METHOD_PROFILE = 'profile';
        const METHOD_PROFILE_ADD = 'profile.add';
        const METHOD_PROFILE_ADD_CHECK = 'profile.add.check';
        const METHOD_PROFILE_UPDATE = 'profile.update';
        const METHOD_PROFILE_DELETE = 'profile.delete';
        const METHOD_PROFILE_CONTACTS = 'profile.contacts';
        const METHOD_PROFILE_RESTORE_PASSWORD = 'profile.password.restore';
        const RESTORE_PASSWORD_METHOD_EMAIL = 'EMAIL';
        const RESTORE_PASSWORD_METHOD_PHONE = 'PHONE';
        const REPONSE_KEY_BROADCAST = "broadcast";
        protected $access_token = '';
        protected $httpTimeout = \SOCSERV_DEFAULT_HTTP_TIMEOUT;
        public static function init()
        {
        }
        public function __construct($access_token)
        {
        }
        protected function prepareResponse($result)
        {
        }
        protected function prepareRequest(array $request)
        {
        }
        protected function convertRequest(array $request)
        {
        }
        public function call($methodName, $additionalParams = \null)
        {
        }
        public function batch($actions)
        {
        }
        public function getMethods()
        {
        }
        public function getProfile()
        {
        }
        public function addProfile($arFields)
        {
        }
        public function checkProfile($arFields)
        {
        }
        public function updateProfile($arFields)
        {
        }
        public function deleteProfile($ID)
        {
        }
        public function getProfileContacts($userId)
        {
        }
        /**
         * Restore user profile password
         * @param int $userId User id whom password should be restored.
         * @param string $restoreMethod Restore method (via email or via phone).
         * @return mixed
         */
        public function restoreProfilePassword($userId, $restoreMethod)
        {
        }
    }
    class CBitrix24NetPortalTransport extends \CBitrix24NetTransport
    {
        protected $clientId = \null;
        protected $clientSecret = \null;
        public static function init()
        {
        }
        public function __construct($clientId, $clientSecret)
        {
        }
        protected function prepareRequest(array $request)
        {
        }
    }
    //manager to operate with services
    class CSocServAuthManager
    {
        /** @var array  */
        protected static $arAuthServices = \false;
        protected $userId = \null;
        public function __construct($userId = \null)
        {
        }
        protected static function AppyUserSettings($suffix)
        {
        }
        public function GetAuthServices($suffix)
        {
        }
        public function GetActiveAuthServices($arParams)
        {
        }
        public function GetProfileUrl($service, $uid, $arService = \false)
        {
        }
        public function GetFriendsList($service, $limit, &$next)
        {
        }
        public function GetSettings()
        {
        }
        public function Authorize($service_id, $arParams = array())
        {
        }
        public function GetError($service_id, $error_code)
        {
        }
        public static function GetUniqueKey()
        {
        }
        public static function SetUniqueKey()
        {
        }
        public static function CheckUniqueKey($bUnset = \true)
        {
        }
        function CleanParam()
        {
        }
        public static function GetUserArrayForSendMessages($userId)
        {
        }
        public static function SendUserMessage($socServUserId, $providerName, $message, $messageId)
        {
        }
        /**
         * Publishes messages from Twitter in Buzz corporate portal.
         * @static
         * @param $arUserTwit
         * @param $lastTwitId
         * @param $arSiteId
         * @return int|null
         */
        public static function PostIntoBuzz($arUserTwit, $lastTwitId, $arSiteId = array())
        {
        }
        public static function PostIntoBuzzAsBlog($userTwit, $arSiteId = array(), $userLogin = '')
        {
        }
        function GetTwitMessages($lastTwitId = "1", $counter = 1)
        {
        }
        public static function SendSocialservicesMessages()
        {
        }
        private static function MarkMessageAsSent($id)
        {
        }
        public function GetUserArray($authId)
        {
        }
        public static function GetCachedUserOption($option)
        {
        }
        public static function checkOldUser(&$socservUserFields)
        {
        }
        public static function checkAbandonedUser(&$socservUserFields)
        {
        }
    }
    //some repetitive functionality
    class CSocServUtil
    {
        const OAUTH_PACK_PARAM = "oauth_proxy_params";
        private static $oAuthParams = array("redirect_uri", "client_id", "scope", "response_type", "state");
        public static function GetCurUrl($addParam = "", $removeParam = \false, $checkOAuthProxy = \true)
        {
        }
        /**
         * @deprecated Use \CHTTP::URN2URI instead
         */
        public static function ServerName($forceHttps = \false)
        {
        }
        public static function packOAuthProxyString($proxyString)
        {
        }
        public static function getOAuthProxyString()
        {
        }
        public static function checkOAuthProxyParams()
        {
        }
    }
    class CSocServAllMessage
    {
        protected function CheckFields($action, &$arFields)
        {
        }
        static function Update($id, $arFields)
        {
        }
        static function Delete($id)
        {
        }
    }
    class COpenIDClient
    {
        var $_trust_providers = array();
        function SetTrustProviders($t)
        {
        }
        function CheckTrustProviders($url)
        {
        }
        function GetOpenIDServerTags($url)
        {
        }
        function GetRedirectUrl($identity, $return_to = \false)
        {
        }
        function Validate()
        {
        }
        function CleanParam($state = \false)
        {
        }
        function Authorize()
        {
        }
        /*public static*/
        function GetOpenIDAuthStep($request_var = 'OPENID_IDENTITY')
        {
        }
    }
    class CSocServMyMailRu extends \CSocServAuth
    {
        const ID = "MyMailRu";
        public function GetSettings()
        {
        }
        public function GetFormHtml($arParams)
        {
        }
        public function GetOnClickJs()
        {
        }
        public function getUrl()
        {
        }
        public function Authorize()
        {
        }
    }
    class CMailRuOAuthInterface
    {
        const AUTH_URL = "https://connect.mail.ru/oauth/authorize";
        const TOKEN_URL = "https://connect.mail.ru/oauth/token";
        const CONTACTS_URL = "http://www.appsmail.ru/platform/api";
        protected $appID;
        protected $appSecret;
        protected $code = \false;
        protected $access_token = \false;
        protected $userID = \false;
        public function __construct($appID, $appSecret, $code = \false)
        {
        }
        public function GetAuthUrl($redirect_uri, $state = '')
        {
        }
        public function GetAccessToken($redirect_uri)
        {
        }
        public function GetCurrentUser()
        {
        }
    }
    class CSocServBitrixOAuth extends \CSocServAuth
    {
        const ID = "Bitrix24OAuth";
        /** @var CBitrixOAuthInterface null  */
        protected $entityOAuth = \null;
        protected $appID;
        protected $appSecret;
        protected $portalURI = '';
        protected $redirectURI = '';
        protected $signature = \null;
        function __construct($appID, $appSecret, $portalURI, $redirectURI, $userId = \null)
        {
        }
        public function getEntityOAuth($code = \false)
        {
        }
        public function addScope($scope)
        {
        }
        public function getRequestTokenUrl()
        {
        }
        public function getAccessToken($code, $addScope = \null)
        {
        }
        public function getStorageToken()
        {
        }
        public function Authorize()
        {
        }
        public function gadgetAuthorize()
        {
        }
    }
    class CBitrixOAuthInterface extends \CSocServOAuthTransport
    {
        const SERVICE_ID = 'Bitrix24OAuth';
        protected $appID;
        protected $appSecret;
        protected $code = \false;
        protected $access_token = \false;
        protected $member_id = \false;
        protected $signatureKey = \false;
        protected $accessTokenExpires = 0;
        protected $refresh_token = '';
        protected $portalURI = '';
        protected $scope = array();
        public function __construct($appID, $appSecret, $portalURI, $code = \false)
        {
        }
        public function getMemberId()
        {
        }
        public function GetAuthUrl($redirect_uri, $state = '')
        {
        }
        public function GetAccessToken($redirect_uri)
        {
        }
        public function getNewAccessToken($refreshToken, $userId = 0, $save = \false, $scope = array())
        {
        }
        public function saveDataDB()
        {
        }
        public function getSignatureKey()
        {
        }
    }
    class CBitrixPHPAppTransport
    {
        protected $access_token = '';
        protected $signatureKey = \false;
        protected $portalURI = '';
        protected $httpTimeout = \SOCSERV_DEFAULT_HTTP_TIMEOUT;
        public function __construct($access_token, $portalURI, $signatureKey = \false)
        {
        }
        public function setSignatureKey($signatureKey)
        {
        }
        protected function prepareAnswer($result)
        {
        }
        protected function prepareRequest($params)
        {
        }
        public function call($methodName, $additionalParams = '')
        {
        }
        public function callSigned($methodName, $additionalParams = '')
        {
        }
        public function batch($actions)
        {
        }
        public function getAllMethods()
        {
        }
        public function getPlannerTasksId()
        {
        }
        public function getCurrentUser($signatureKey = '')
        {
        }
    }
    class CSocServYandexAuth extends \CSocServAuth
    {
        const ID = "YandexOAuth";
        const CONTROLLER_URL = "https://www.bitrix24.ru/controller";
        const LOGIN_PREFIX = "YA_";
        /** @var CYandexOAuthInterface null  */
        protected $entityOAuth = \null;
        /**
         * @param string $code=false
         * @return CYandexOAuthInterface
         */
        public function getEntityOAuth($code = \false)
        {
        }
        public function GetSettings()
        {
        }
        public function getUrl($location = 'opener', $addScope = \null, $arParams = array())
        {
        }
        public function GetFormHtml($arParams)
        {
        }
        public function GetOnClickJs($arParams)
        {
        }
        public function getStorageToken()
        {
        }
        public function prepareUser($yandexUser, $short = \false)
        {
        }
        public function Authorize()
        {
        }
    }
    class CSocServGoogleOAuth extends \CSocServAuth
    {
        const ID = "GoogleOAuth";
        const LOGIN_PREFIX = "G_";
        /** @var CGoogleOAuthInterface null  */
        protected $entityOAuth = \null;
        /**
         * @param string $code=false
         * @return CGoogleOAuthInterface
         */
        public function getEntityOAuth($code = \false)
        {
        }
        public function GetSettings()
        {
        }
        public function CheckSettings()
        {
        }
        public function GetFormHtml($arParams)
        {
        }
        public function GetOnClickJs($arParams)
        {
        }
        public function getUrl($location = 'opener', $addScope = \null, $arParams = array())
        {
        }
        public function getStorageToken()
        {
        }
        public function prepareUser($arGoogleUser, $short = \false)
        {
        }
        public function Authorize()
        {
        }
        public function setUser($userId)
        {
        }
        public function getFriendsList($limit, &$next)
        {
        }
    }
    class CSocServVKontakte extends \CSocServAuth
    {
        const ID = "VKontakte";
        const CONTROLLER_URL = "https://www.bitrix24.ru/controller";
        protected $entityOAuth = \NULL;
        public function GetSettings()
        {
        }
        public function GetFormHtml($arParams)
        {
        }
        public function GetOnClickJs($arParams)
        {
        }
        public function getUrl($arParams)
        {
        }
        public function getEntityOAuth($code = \false)
        {
        }
        public function prepareUser($arVkUser, $short = \false)
        {
        }
        public function Authorize()
        {
        }
        public function setUser($userId)
        {
        }
        public function getFriendsList($limit, &$next)
        {
        }
        public function sendMessage($uid, $message)
        {
        }
        public function getProfileUrl($uid)
        {
        }
    }
    class CVKontakteOAuthInterface extends \CSocServOAuthTransport
    {
        const SERVICE_ID = "VKontakte";
        // https://vk.com/dev/constant_version_updates
        const AUTH_URL = "https://oauth.vk.com/authorize";
        const TOKEN_URL = "https://oauth.vk.com/access_token";
        const CONTACTS_URL = "https://api.vk.com/method/users.get";
        const FRIENDS_URL = "https://api.vk.com/method/friends.get";
        const MESSAGE_URL = "https://api.vk.com/method/messages.send";
        const APP_URL = "https://api.vk.com/method/apps.get";
        // https://vk.com/dev/versions
        const API_VERSION = "5.107";
        protected $userID = \false;
        protected $userEmail = \false;
        protected $scope = array("friends", "offline", "email");
        public function __construct($appID = \false, $appSecret = \false, $code = \false)
        {
        }
        public function GetRedirectURI()
        {
        }
        public function GetAuthUrl($redirect_uri, $state = '')
        {
        }
        public function GetAccessToken($redirect_uri)
        {
        }
        public function GetCurrentUser()
        {
        }
        public function GetAppInfo()
        {
        }
        public function GetCurrentUserEmail()
        {
        }
        public function GetCurrentUserFriends($limit, &$next)
        {
        }
        public function sendMessage($uid, $message)
        {
        }
    }
    class CSocServMailRu2 extends \CSocServAuth
    {
        const ID = "MailRu2";
        const CONTROLLER_URL = "https://www.bitrix24.ru/controller";
        protected $entityOAuth;
        public function GetSettings()
        {
        }
        /**
         * @param string|bool $code = false
         * @return CMailRu2Interface
         */
        public function getEntityOAuth($code = \false)
        {
        }
        public function GetFormHtml($arParams)
        {
        }
        public function GetOnClickJs($arParams)
        {
        }
        public function getUrl($arParams)
        {
        }
        public function addScope($scope)
        {
        }
        public function prepareUser($arUser, $short = \false)
        {
        }
        public function Authorize()
        {
        }
        public function setUser($userId)
        {
        }
    }
    class CSocServFacebook extends \CSocServAuth
    {
        const ID = "Facebook";
        const CONTROLLER_URL = "https://www.bitrix24.ru/controller";
        const LOGIN_PREFIX = "FB_";
        protected $entityOAuth = \null;
        /**
         * @param string $code =false
         * @return CFacebookInterface
         */
        public function getEntityOAuth($code = \false)
        {
        }
        public function GetSettings()
        {
        }
        public function GetFormHtml($arParams)
        {
        }
        public function GetOnClickJs($arParams)
        {
        }
        public function getUrl($arParams)
        {
        }
        public function addScope($scope)
        {
        }
        public function prepareUser($arFBUser, $short = \false)
        {
        }
        public function Authorize()
        {
        }
        public function setUser($userId)
        {
        }
        public function getFriendsList($limit, &$next)
        {
        }
        public function sendMessage($uid, $message)
        {
        }
        public function getMessages($uid)
        {
        }
        public function getProfileUrl($uid)
        {
        }
        public static function SendUserFeed($userId, $message, $messageId)
        {
        }
    }
    class CFacebookInterface extends \CSocServOAuthTransport
    {
        const SERVICE_ID = "Facebook";
        const AUTH_URL = "https://www.facebook.com/dialog/oauth";
        const GRAPH_URL = "https://graph.facebook.com";
        protected $userId = \false;
        protected $responseData = array();
        protected $scope = array("email", "user_friends");
        public function __construct($appID = \false, $appSecret = \false, $code = \false)
        {
        }
        public function GetRedirectURI()
        {
        }
        public function GetAuthUrl($redirect_uri, $state = '')
        {
        }
        public function getResult()
        {
        }
        public function GetAccessToken($redirect_uri)
        {
        }
        public function GetCurrentUser()
        {
        }
        public function GetAppInfo()
        {
        }
        public function GetCurrentUserFriends($limit, &$next)
        {
        }
        public function SendFeed($socServUserId, $message, $messageId)
        {
        }
        public function sendMessage($uid, $message)
        {
        }
        public function getMessages($uid)
        {
        }
        private function SetOauthKeys($socServUserId)
        {
        }
    }
    class CSocServGooglePlusOAuth extends \CSocServGoogleOAuth
    {
        const ID = "GooglePlusOAuth";
        const LOGIN_PREFIX = "GP_";
        public function getEntityOAuth($code = \false)
        {
        }
        public function GetSettings()
        {
        }
        public function getFriendsList($limit, &$next)
        {
        }
        public function getProfileUrl($uid)
        {
        }
    }
    class CGooglePlusOAuthInterface extends \CGoogleOAuthInterface
    {
        const SERVICE_ID = "GooglePlusOAuth";
        const PROFILE_URL = 'https://www.googleapis.com/plus/v1/people/me';
        const FRIENDS_URL = 'https://www.googleapis.com/plus/v1/people/me/people/visible';
        const FRIENDS_FIELDS = 'items(displayName,emails,gender,id,image,name,nickname),nextPageToken,title,totalItems';
        protected $standardScope = array('https://www.googleapis.com/auth/plus.login', 'https://www.googleapis.com/auth/plus.me');
        public function getCurrentUser()
        {
        }
        public function getCurrentUserFriends($limit, &$next)
        {
        }
        protected function query($url)
        {
        }
    }
    class CSocServBoxAuth extends \CSocServAuth
    {
        const ID = "Box";
        const CONTROLLER_URL = "https://www.bitrix24.ru/controller";
        const LOGIN_PREFIX = "B_";
        /** @var CBoxOAuthInterface null  */
        protected $entityOAuth = \null;
        /**
         * @param string $code=false
         * @return CBoxOAuthInterface
         */
        public function getEntityOAuth($code = \false)
        {
        }
        public function GetSettings()
        {
        }
        public function GetFormHtml($arParams)
        {
        }
        public function GetOnClickJs($arParams)
        {
        }
        public function getUrl($location = 'opener', $addScope = \null, $arParams = array())
        {
        }
        public function getStorageToken()
        {
        }
        public function prepareUser($boxUser, $short = \false)
        {
        }
        public function Authorize()
        {
        }
    }
    class CBoxOAuthInterface extends \CSocServOAuthTransport
    {
        const SERVICE_ID = "Box";
        const AUTH_URL = "https://app.box.com/api/oauth2/authorize";
        const TOKEN_URL = "https://app.box.com/api/oauth2/token";
        const ACCOUNT_URL = "https://api.box.com/2.0/users/me";
        protected $oauthResult;
        public function __construct($appID = \false, $appSecret = \false, $code = \false)
        {
        }
        public function GetRedirectURI()
        {
        }
        public function GetAuthUrl($redirect_uri, $state = '')
        {
        }
        public function GetAccessToken($redirect_uri)
        {
        }
        public function getNewAccessToken($refreshToken = \false, $userId = 0, $save = \false, $scope = array())
        {
        }
        public function GetCurrentUser()
        {
        }
    }
    /**
     * Class CSocServAuthDB
     * @deprecated Use \Bitrix\Socialservices\UserTable
     */
    class CSocServAuthDB extends \CSocServAuth
    {
        public static function Add($arFields)
        {
        }
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function decryptDbRes(\CDBResult $dbRes)
        {
        }
    }
    class CSocServMessage extends \CSocServAllMessage
    {
        function CleanUp()
        {
        }
        static function Add($arFields)
        {
        }
        function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
}
namespace Bitrix\Socialservices {
    /**
     * EO_Ap
     * @see \Bitrix\Socialservices\ApTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialservices\EO_Ap setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Socialservices\EO_Ap setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Socialservices\EO_Ap resetTimestampX()
     * @method \Bitrix\Socialservices\EO_Ap unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \int getUserId()
     * @method \Bitrix\Socialservices\EO_Ap setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Socialservices\EO_Ap resetUserId()
     * @method \Bitrix\Socialservices\EO_Ap unsetUserId()
     * @method \int fillUserId()
     * @method \string getDomain()
     * @method \Bitrix\Socialservices\EO_Ap setDomain(\string|\Bitrix\Main\DB\SqlExpression $domain)
     * @method bool hasDomain()
     * @method bool isDomainFilled()
     * @method bool isDomainChanged()
     * @method \string remindActualDomain()
     * @method \string requireDomain()
     * @method \Bitrix\Socialservices\EO_Ap resetDomain()
     * @method \Bitrix\Socialservices\EO_Ap unsetDomain()
     * @method \string fillDomain()
     * @method \string getEndpoint()
     * @method \Bitrix\Socialservices\EO_Ap setEndpoint(\string|\Bitrix\Main\DB\SqlExpression $endpoint)
     * @method bool hasEndpoint()
     * @method bool isEndpointFilled()
     * @method bool isEndpointChanged()
     * @method \string remindActualEndpoint()
     * @method \string requireEndpoint()
     * @method \Bitrix\Socialservices\EO_Ap resetEndpoint()
     * @method \Bitrix\Socialservices\EO_Ap unsetEndpoint()
     * @method \string fillEndpoint()
     * @method \string getLogin()
     * @method \Bitrix\Socialservices\EO_Ap setLogin(\string|\Bitrix\Main\DB\SqlExpression $login)
     * @method bool hasLogin()
     * @method bool isLoginFilled()
     * @method bool isLoginChanged()
     * @method \string remindActualLogin()
     * @method \string requireLogin()
     * @method \Bitrix\Socialservices\EO_Ap resetLogin()
     * @method \Bitrix\Socialservices\EO_Ap unsetLogin()
     * @method \string fillLogin()
     * @method \string getPassword()
     * @method \Bitrix\Socialservices\EO_Ap setPassword(\string|\Bitrix\Main\DB\SqlExpression $password)
     * @method bool hasPassword()
     * @method bool isPasswordFilled()
     * @method bool isPasswordChanged()
     * @method \string remindActualPassword()
     * @method \string requirePassword()
     * @method \Bitrix\Socialservices\EO_Ap resetPassword()
     * @method \Bitrix\Socialservices\EO_Ap unsetPassword()
     * @method \string fillPassword()
     * @method \Bitrix\Main\Type\DateTime getLastAuthorize()
     * @method \Bitrix\Socialservices\EO_Ap setLastAuthorize(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastAuthorize)
     * @method bool hasLastAuthorize()
     * @method bool isLastAuthorizeFilled()
     * @method bool isLastAuthorizeChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastAuthorize()
     * @method \Bitrix\Main\Type\DateTime requireLastAuthorize()
     * @method \Bitrix\Socialservices\EO_Ap resetLastAuthorize()
     * @method \Bitrix\Socialservices\EO_Ap unsetLastAuthorize()
     * @method \Bitrix\Main\Type\DateTime fillLastAuthorize()
     * @method \string getSettings()
     * @method \Bitrix\Socialservices\EO_Ap setSettings(\string|\Bitrix\Main\DB\SqlExpression $settings)
     * @method bool hasSettings()
     * @method bool isSettingsFilled()
     * @method bool isSettingsChanged()
     * @method \string remindActualSettings()
     * @method \string requireSettings()
     * @method \Bitrix\Socialservices\EO_Ap resetSettings()
     * @method \Bitrix\Socialservices\EO_Ap unsetSettings()
     * @method \string fillSettings()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialservices\EO_Ap set($fieldName, $value)
     * @method \Bitrix\Socialservices\EO_Ap reset($fieldName)
     * @method \Bitrix\Socialservices\EO_Ap unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialservices\EO_Ap wakeUp($data)
     */
    class EO_Ap
    {
        /* @var \Bitrix\Socialservices\ApTable */
        public static $dataClass = '\\Bitrix\\Socialservices\\ApTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Ap_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \string[] getDomainList()
     * @method \string[] fillDomain()
     * @method \string[] getEndpointList()
     * @method \string[] fillEndpoint()
     * @method \string[] getLoginList()
     * @method \string[] fillLogin()
     * @method \string[] getPasswordList()
     * @method \string[] fillPassword()
     * @method \Bitrix\Main\Type\DateTime[] getLastAuthorizeList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastAuthorize()
     * @method \string[] getSettingsList()
     * @method \string[] fillSettings()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialservices\EO_Ap $object)
     * @method bool has(\Bitrix\Socialservices\EO_Ap $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialservices\EO_Ap getByPrimary($primary)
     * @method \Bitrix\Socialservices\EO_Ap[] getAll()
     * @method bool remove(\Bitrix\Socialservices\EO_Ap $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialservices\EO_Ap_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialservices\EO_Ap current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Ap_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialservices\ApTable */
        public static $dataClass = '\\Bitrix\\Socialservices\\ApTable';
    }
    /**
     * @method static EO_Ap_Query query()
     * @method static EO_Ap_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Ap_Result getById($id)
     * @method static EO_Ap_Result getList(array $parameters = array())
     * @method static EO_Ap_Entity getEntity()
     * @method static \Bitrix\Socialservices\EO_Ap createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialservices\EO_Ap_Collection createCollection()
     * @method static \Bitrix\Socialservices\EO_Ap wakeUpObject($row)
     * @method static \Bitrix\Socialservices\EO_Ap_Collection wakeUpCollection($rows)
     */
    class ApTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Ap_Result exec()
     * @method \Bitrix\Socialservices\EO_Ap fetchObject()
     * @method \Bitrix\Socialservices\EO_Ap_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Ap_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialservices\EO_Ap fetchObject()
     * @method \Bitrix\Socialservices\EO_Ap_Collection fetchCollection()
     */
    class EO_Ap_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialservices\EO_Ap createObject($setDefaultValues = true)
     * @method \Bitrix\Socialservices\EO_Ap_Collection createCollection()
     * @method \Bitrix\Socialservices\EO_Ap wakeUpObject($row)
     * @method \Bitrix\Socialservices\EO_Ap_Collection wakeUpCollection($rows)
     */
    class EO_Ap_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Contact
     * @see \Bitrix\Socialservices\ContactTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialservices\EO_Contact setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Socialservices\EO_Contact setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Socialservices\EO_Contact resetTimestampX()
     * @method \Bitrix\Socialservices\EO_Contact unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \int getUserId()
     * @method \Bitrix\Socialservices\EO_Contact setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Socialservices\EO_Contact resetUserId()
     * @method \Bitrix\Socialservices\EO_Contact unsetUserId()
     * @method \int fillUserId()
     * @method \int getContactUserId()
     * @method \Bitrix\Socialservices\EO_Contact setContactUserId(\int|\Bitrix\Main\DB\SqlExpression $contactUserId)
     * @method bool hasContactUserId()
     * @method bool isContactUserIdFilled()
     * @method bool isContactUserIdChanged()
     * @method \int remindActualContactUserId()
     * @method \int requireContactUserId()
     * @method \Bitrix\Socialservices\EO_Contact resetContactUserId()
     * @method \Bitrix\Socialservices\EO_Contact unsetContactUserId()
     * @method \int fillContactUserId()
     * @method \int getContactXmlId()
     * @method \Bitrix\Socialservices\EO_Contact setContactXmlId(\int|\Bitrix\Main\DB\SqlExpression $contactXmlId)
     * @method bool hasContactXmlId()
     * @method bool isContactXmlIdFilled()
     * @method bool isContactXmlIdChanged()
     * @method \int remindActualContactXmlId()
     * @method \int requireContactXmlId()
     * @method \Bitrix\Socialservices\EO_Contact resetContactXmlId()
     * @method \Bitrix\Socialservices\EO_Contact unsetContactXmlId()
     * @method \int fillContactXmlId()
     * @method \string getContactName()
     * @method \Bitrix\Socialservices\EO_Contact setContactName(\string|\Bitrix\Main\DB\SqlExpression $contactName)
     * @method bool hasContactName()
     * @method bool isContactNameFilled()
     * @method bool isContactNameChanged()
     * @method \string remindActualContactName()
     * @method \string requireContactName()
     * @method \Bitrix\Socialservices\EO_Contact resetContactName()
     * @method \Bitrix\Socialservices\EO_Contact unsetContactName()
     * @method \string fillContactName()
     * @method \string getContactLastName()
     * @method \Bitrix\Socialservices\EO_Contact setContactLastName(\string|\Bitrix\Main\DB\SqlExpression $contactLastName)
     * @method bool hasContactLastName()
     * @method bool isContactLastNameFilled()
     * @method bool isContactLastNameChanged()
     * @method \string remindActualContactLastName()
     * @method \string requireContactLastName()
     * @method \Bitrix\Socialservices\EO_Contact resetContactLastName()
     * @method \Bitrix\Socialservices\EO_Contact unsetContactLastName()
     * @method \string fillContactLastName()
     * @method \string getContactPhoto()
     * @method \Bitrix\Socialservices\EO_Contact setContactPhoto(\string|\Bitrix\Main\DB\SqlExpression $contactPhoto)
     * @method bool hasContactPhoto()
     * @method bool isContactPhotoFilled()
     * @method bool isContactPhotoChanged()
     * @method \string remindActualContactPhoto()
     * @method \string requireContactPhoto()
     * @method \Bitrix\Socialservices\EO_Contact resetContactPhoto()
     * @method \Bitrix\Socialservices\EO_Contact unsetContactPhoto()
     * @method \string fillContactPhoto()
     * @method \Bitrix\Main\Type\DateTime getLastAuthorize()
     * @method \Bitrix\Socialservices\EO_Contact setLastAuthorize(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastAuthorize)
     * @method bool hasLastAuthorize()
     * @method bool isLastAuthorizeFilled()
     * @method bool isLastAuthorizeChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastAuthorize()
     * @method \Bitrix\Main\Type\DateTime requireLastAuthorize()
     * @method \Bitrix\Socialservices\EO_Contact resetLastAuthorize()
     * @method \Bitrix\Socialservices\EO_Contact unsetLastAuthorize()
     * @method \Bitrix\Main\Type\DateTime fillLastAuthorize()
     * @method \boolean getNotify()
     * @method \Bitrix\Socialservices\EO_Contact setNotify(\boolean|\Bitrix\Main\DB\SqlExpression $notify)
     * @method bool hasNotify()
     * @method bool isNotifyFilled()
     * @method bool isNotifyChanged()
     * @method \boolean remindActualNotify()
     * @method \boolean requireNotify()
     * @method \Bitrix\Socialservices\EO_Contact resetNotify()
     * @method \Bitrix\Socialservices\EO_Contact unsetNotify()
     * @method \boolean fillNotify()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Socialservices\EO_Contact setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Socialservices\EO_Contact resetUser()
     * @method \Bitrix\Socialservices\EO_Contact unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \Bitrix\Main\EO_User getContactUser()
     * @method \Bitrix\Main\EO_User remindActualContactUser()
     * @method \Bitrix\Main\EO_User requireContactUser()
     * @method \Bitrix\Socialservices\EO_Contact setContactUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Socialservices\EO_Contact resetContactUser()
     * @method \Bitrix\Socialservices\EO_Contact unsetContactUser()
     * @method bool hasContactUser()
     * @method bool isContactUserFilled()
     * @method bool isContactUserChanged()
     * @method \Bitrix\Main\EO_User fillContactUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialservices\EO_Contact set($fieldName, $value)
     * @method \Bitrix\Socialservices\EO_Contact reset($fieldName)
     * @method \Bitrix\Socialservices\EO_Contact unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialservices\EO_Contact wakeUp($data)
     */
    class EO_Contact
    {
        /* @var \Bitrix\Socialservices\ContactTable */
        public static $dataClass = '\\Bitrix\\Socialservices\\ContactTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Contact_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \int[] getContactUserIdList()
     * @method \int[] fillContactUserId()
     * @method \int[] getContactXmlIdList()
     * @method \int[] fillContactXmlId()
     * @method \string[] getContactNameList()
     * @method \string[] fillContactName()
     * @method \string[] getContactLastNameList()
     * @method \string[] fillContactLastName()
     * @method \string[] getContactPhotoList()
     * @method \string[] fillContactPhoto()
     * @method \Bitrix\Main\Type\DateTime[] getLastAuthorizeList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastAuthorize()
     * @method \boolean[] getNotifyList()
     * @method \boolean[] fillNotify()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Socialservices\EO_Contact_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \Bitrix\Main\EO_User[] getContactUserList()
     * @method \Bitrix\Socialservices\EO_Contact_Collection getContactUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillContactUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialservices\EO_Contact $object)
     * @method bool has(\Bitrix\Socialservices\EO_Contact $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialservices\EO_Contact getByPrimary($primary)
     * @method \Bitrix\Socialservices\EO_Contact[] getAll()
     * @method bool remove(\Bitrix\Socialservices\EO_Contact $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialservices\EO_Contact_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialservices\EO_Contact current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Contact_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialservices\ContactTable */
        public static $dataClass = '\\Bitrix\\Socialservices\\ContactTable';
    }
    /**
     * @method static EO_Contact_Query query()
     * @method static EO_Contact_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Contact_Result getById($id)
     * @method static EO_Contact_Result getList(array $parameters = array())
     * @method static EO_Contact_Entity getEntity()
     * @method static \Bitrix\Socialservices\EO_Contact createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialservices\EO_Contact_Collection createCollection()
     * @method static \Bitrix\Socialservices\EO_Contact wakeUpObject($row)
     * @method static \Bitrix\Socialservices\EO_Contact_Collection wakeUpCollection($rows)
     */
    class ContactTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Contact_Result exec()
     * @method \Bitrix\Socialservices\EO_Contact fetchObject()
     * @method \Bitrix\Socialservices\EO_Contact_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Contact_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialservices\EO_Contact fetchObject()
     * @method \Bitrix\Socialservices\EO_Contact_Collection fetchCollection()
     */
    class EO_Contact_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialservices\EO_Contact createObject($setDefaultValues = true)
     * @method \Bitrix\Socialservices\EO_Contact_Collection createCollection()
     * @method \Bitrix\Socialservices\EO_Contact wakeUpObject($row)
     * @method \Bitrix\Socialservices\EO_Contact_Collection wakeUpCollection($rows)
     */
    class EO_Contact_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_ContactConnect
     * @see \Bitrix\Socialservices\ContactConnectTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialservices\EO_ContactConnect setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Socialservices\EO_ContactConnect setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Socialservices\EO_ContactConnect resetTimestampX()
     * @method \Bitrix\Socialservices\EO_ContactConnect unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \int getContactId()
     * @method \Bitrix\Socialservices\EO_ContactConnect setContactId(\int|\Bitrix\Main\DB\SqlExpression $contactId)
     * @method bool hasContactId()
     * @method bool isContactIdFilled()
     * @method bool isContactIdChanged()
     * @method \int remindActualContactId()
     * @method \int requireContactId()
     * @method \Bitrix\Socialservices\EO_ContactConnect resetContactId()
     * @method \Bitrix\Socialservices\EO_ContactConnect unsetContactId()
     * @method \int fillContactId()
     * @method \int getLinkId()
     * @method \Bitrix\Socialservices\EO_ContactConnect setLinkId(\int|\Bitrix\Main\DB\SqlExpression $linkId)
     * @method bool hasLinkId()
     * @method bool isLinkIdFilled()
     * @method bool isLinkIdChanged()
     * @method \int remindActualLinkId()
     * @method \int requireLinkId()
     * @method \Bitrix\Socialservices\EO_ContactConnect resetLinkId()
     * @method \Bitrix\Socialservices\EO_ContactConnect unsetLinkId()
     * @method \int fillLinkId()
     * @method \int getContactProfileId()
     * @method \Bitrix\Socialservices\EO_ContactConnect setContactProfileId(\int|\Bitrix\Main\DB\SqlExpression $contactProfileId)
     * @method bool hasContactProfileId()
     * @method bool isContactProfileIdFilled()
     * @method bool isContactProfileIdChanged()
     * @method \int remindActualContactProfileId()
     * @method \int requireContactProfileId()
     * @method \Bitrix\Socialservices\EO_ContactConnect resetContactProfileId()
     * @method \Bitrix\Socialservices\EO_ContactConnect unsetContactProfileId()
     * @method \int fillContactProfileId()
     * @method \string getContactPortal()
     * @method \Bitrix\Socialservices\EO_ContactConnect setContactPortal(\string|\Bitrix\Main\DB\SqlExpression $contactPortal)
     * @method bool hasContactPortal()
     * @method bool isContactPortalFilled()
     * @method bool isContactPortalChanged()
     * @method \string remindActualContactPortal()
     * @method \string requireContactPortal()
     * @method \Bitrix\Socialservices\EO_ContactConnect resetContactPortal()
     * @method \Bitrix\Socialservices\EO_ContactConnect unsetContactPortal()
     * @method \string fillContactPortal()
     * @method \Bitrix\Main\Type\DateTime getLastAuthorize()
     * @method \Bitrix\Socialservices\EO_ContactConnect setLastAuthorize(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastAuthorize)
     * @method bool hasLastAuthorize()
     * @method bool isLastAuthorizeFilled()
     * @method bool isLastAuthorizeChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastAuthorize()
     * @method \Bitrix\Main\Type\DateTime requireLastAuthorize()
     * @method \Bitrix\Socialservices\EO_ContactConnect resetLastAuthorize()
     * @method \Bitrix\Socialservices\EO_ContactConnect unsetLastAuthorize()
     * @method \Bitrix\Main\Type\DateTime fillLastAuthorize()
     * @method \string getConnectType()
     * @method \Bitrix\Socialservices\EO_ContactConnect setConnectType(\string|\Bitrix\Main\DB\SqlExpression $connectType)
     * @method bool hasConnectType()
     * @method bool isConnectTypeFilled()
     * @method bool isConnectTypeChanged()
     * @method \string remindActualConnectType()
     * @method \string requireConnectType()
     * @method \Bitrix\Socialservices\EO_ContactConnect resetConnectType()
     * @method \Bitrix\Socialservices\EO_ContactConnect unsetConnectType()
     * @method \string fillConnectType()
     * @method \Bitrix\Socialservices\EO_Contact getContact()
     * @method \Bitrix\Socialservices\EO_Contact remindActualContact()
     * @method \Bitrix\Socialservices\EO_Contact requireContact()
     * @method \Bitrix\Socialservices\EO_ContactConnect setContact(\Bitrix\Socialservices\EO_Contact $object)
     * @method \Bitrix\Socialservices\EO_ContactConnect resetContact()
     * @method \Bitrix\Socialservices\EO_ContactConnect unsetContact()
     * @method bool hasContact()
     * @method bool isContactFilled()
     * @method bool isContactChanged()
     * @method \Bitrix\Socialservices\EO_Contact fillContact()
     * @method \Bitrix\Socialservices\EO_UserLink getLink()
     * @method \Bitrix\Socialservices\EO_UserLink remindActualLink()
     * @method \Bitrix\Socialservices\EO_UserLink requireLink()
     * @method \Bitrix\Socialservices\EO_ContactConnect setLink(\Bitrix\Socialservices\EO_UserLink $object)
     * @method \Bitrix\Socialservices\EO_ContactConnect resetLink()
     * @method \Bitrix\Socialservices\EO_ContactConnect unsetLink()
     * @method bool hasLink()
     * @method bool isLinkFilled()
     * @method bool isLinkChanged()
     * @method \Bitrix\Socialservices\EO_UserLink fillLink()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialservices\EO_ContactConnect set($fieldName, $value)
     * @method \Bitrix\Socialservices\EO_ContactConnect reset($fieldName)
     * @method \Bitrix\Socialservices\EO_ContactConnect unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialservices\EO_ContactConnect wakeUp($data)
     */
    class EO_ContactConnect
    {
        /* @var \Bitrix\Socialservices\ContactConnectTable */
        public static $dataClass = '\\Bitrix\\Socialservices\\ContactConnectTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_ContactConnect_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \int[] getContactIdList()
     * @method \int[] fillContactId()
     * @method \int[] getLinkIdList()
     * @method \int[] fillLinkId()
     * @method \int[] getContactProfileIdList()
     * @method \int[] fillContactProfileId()
     * @method \string[] getContactPortalList()
     * @method \string[] fillContactPortal()
     * @method \Bitrix\Main\Type\DateTime[] getLastAuthorizeList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastAuthorize()
     * @method \string[] getConnectTypeList()
     * @method \string[] fillConnectType()
     * @method \Bitrix\Socialservices\EO_Contact[] getContactList()
     * @method \Bitrix\Socialservices\EO_ContactConnect_Collection getContactCollection()
     * @method \Bitrix\Socialservices\EO_Contact_Collection fillContact()
     * @method \Bitrix\Socialservices\EO_UserLink[] getLinkList()
     * @method \Bitrix\Socialservices\EO_ContactConnect_Collection getLinkCollection()
     * @method \Bitrix\Socialservices\EO_UserLink_Collection fillLink()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialservices\EO_ContactConnect $object)
     * @method bool has(\Bitrix\Socialservices\EO_ContactConnect $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialservices\EO_ContactConnect getByPrimary($primary)
     * @method \Bitrix\Socialservices\EO_ContactConnect[] getAll()
     * @method bool remove(\Bitrix\Socialservices\EO_ContactConnect $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialservices\EO_ContactConnect_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialservices\EO_ContactConnect current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_ContactConnect_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialservices\ContactConnectTable */
        public static $dataClass = '\\Bitrix\\Socialservices\\ContactConnectTable';
    }
    /**
     * @method static EO_ContactConnect_Query query()
     * @method static EO_ContactConnect_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_ContactConnect_Result getById($id)
     * @method static EO_ContactConnect_Result getList(array $parameters = array())
     * @method static EO_ContactConnect_Entity getEntity()
     * @method static \Bitrix\Socialservices\EO_ContactConnect createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialservices\EO_ContactConnect_Collection createCollection()
     * @method static \Bitrix\Socialservices\EO_ContactConnect wakeUpObject($row)
     * @method static \Bitrix\Socialservices\EO_ContactConnect_Collection wakeUpCollection($rows)
     */
    class ContactConnectTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_ContactConnect_Result exec()
     * @method \Bitrix\Socialservices\EO_ContactConnect fetchObject()
     * @method \Bitrix\Socialservices\EO_ContactConnect_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_ContactConnect_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialservices\EO_ContactConnect fetchObject()
     * @method \Bitrix\Socialservices\EO_ContactConnect_Collection fetchCollection()
     */
    class EO_ContactConnect_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialservices\EO_ContactConnect createObject($setDefaultValues = true)
     * @method \Bitrix\Socialservices\EO_ContactConnect_Collection createCollection()
     * @method \Bitrix\Socialservices\EO_ContactConnect wakeUpObject($row)
     * @method \Bitrix\Socialservices\EO_ContactConnect_Collection wakeUpCollection($rows)
     */
    class EO_ContactConnect_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_User
     * @see \Bitrix\Socialservices\UserTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialservices\EO_User setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getLogin()
     * @method \Bitrix\Socialservices\EO_User setLogin(\string|\Bitrix\Main\DB\SqlExpression $login)
     * @method bool hasLogin()
     * @method bool isLoginFilled()
     * @method bool isLoginChanged()
     * @method \string remindActualLogin()
     * @method \string requireLogin()
     * @method \Bitrix\Socialservices\EO_User resetLogin()
     * @method \Bitrix\Socialservices\EO_User unsetLogin()
     * @method \string fillLogin()
     * @method \string getName()
     * @method \Bitrix\Socialservices\EO_User setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Socialservices\EO_User resetName()
     * @method \Bitrix\Socialservices\EO_User unsetName()
     * @method \string fillName()
     * @method \string getLastName()
     * @method \Bitrix\Socialservices\EO_User setLastName(\string|\Bitrix\Main\DB\SqlExpression $lastName)
     * @method bool hasLastName()
     * @method bool isLastNameFilled()
     * @method bool isLastNameChanged()
     * @method \string remindActualLastName()
     * @method \string requireLastName()
     * @method \Bitrix\Socialservices\EO_User resetLastName()
     * @method \Bitrix\Socialservices\EO_User unsetLastName()
     * @method \string fillLastName()
     * @method \string getEmail()
     * @method \Bitrix\Socialservices\EO_User setEmail(\string|\Bitrix\Main\DB\SqlExpression $email)
     * @method bool hasEmail()
     * @method bool isEmailFilled()
     * @method bool isEmailChanged()
     * @method \string remindActualEmail()
     * @method \string requireEmail()
     * @method \Bitrix\Socialservices\EO_User resetEmail()
     * @method \Bitrix\Socialservices\EO_User unsetEmail()
     * @method \string fillEmail()
     * @method \string getPersonalPhoto()
     * @method \Bitrix\Socialservices\EO_User setPersonalPhoto(\string|\Bitrix\Main\DB\SqlExpression $personalPhoto)
     * @method bool hasPersonalPhoto()
     * @method bool isPersonalPhotoFilled()
     * @method bool isPersonalPhotoChanged()
     * @method \string remindActualPersonalPhoto()
     * @method \string requirePersonalPhoto()
     * @method \Bitrix\Socialservices\EO_User resetPersonalPhoto()
     * @method \Bitrix\Socialservices\EO_User unsetPersonalPhoto()
     * @method \string fillPersonalPhoto()
     * @method \string getExternalAuthId()
     * @method \Bitrix\Socialservices\EO_User setExternalAuthId(\string|\Bitrix\Main\DB\SqlExpression $externalAuthId)
     * @method bool hasExternalAuthId()
     * @method bool isExternalAuthIdFilled()
     * @method bool isExternalAuthIdChanged()
     * @method \string remindActualExternalAuthId()
     * @method \string requireExternalAuthId()
     * @method \Bitrix\Socialservices\EO_User resetExternalAuthId()
     * @method \Bitrix\Socialservices\EO_User unsetExternalAuthId()
     * @method \string fillExternalAuthId()
     * @method \int getUserId()
     * @method \Bitrix\Socialservices\EO_User setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Socialservices\EO_User resetUserId()
     * @method \Bitrix\Socialservices\EO_User unsetUserId()
     * @method \int fillUserId()
     * @method \string getXmlId()
     * @method \Bitrix\Socialservices\EO_User setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Socialservices\EO_User resetXmlId()
     * @method \Bitrix\Socialservices\EO_User unsetXmlId()
     * @method \string fillXmlId()
     * @method \boolean getCanDelete()
     * @method \Bitrix\Socialservices\EO_User setCanDelete(\boolean|\Bitrix\Main\DB\SqlExpression $canDelete)
     * @method bool hasCanDelete()
     * @method bool isCanDeleteFilled()
     * @method bool isCanDeleteChanged()
     * @method \boolean remindActualCanDelete()
     * @method \boolean requireCanDelete()
     * @method \Bitrix\Socialservices\EO_User resetCanDelete()
     * @method \Bitrix\Socialservices\EO_User unsetCanDelete()
     * @method \boolean fillCanDelete()
     * @method \string getPersonalWww()
     * @method \Bitrix\Socialservices\EO_User setPersonalWww(\string|\Bitrix\Main\DB\SqlExpression $personalWww)
     * @method bool hasPersonalWww()
     * @method bool isPersonalWwwFilled()
     * @method bool isPersonalWwwChanged()
     * @method \string remindActualPersonalWww()
     * @method \string requirePersonalWww()
     * @method \Bitrix\Socialservices\EO_User resetPersonalWww()
     * @method \Bitrix\Socialservices\EO_User unsetPersonalWww()
     * @method \string fillPersonalWww()
     * @method \string getPermissions()
     * @method \Bitrix\Socialservices\EO_User setPermissions(\string|\Bitrix\Main\DB\SqlExpression $permissions)
     * @method bool hasPermissions()
     * @method bool isPermissionsFilled()
     * @method bool isPermissionsChanged()
     * @method \string remindActualPermissions()
     * @method \string requirePermissions()
     * @method \Bitrix\Socialservices\EO_User resetPermissions()
     * @method \Bitrix\Socialservices\EO_User unsetPermissions()
     * @method \string fillPermissions()
     * @method \string getOatoken()
     * @method \Bitrix\Socialservices\EO_User setOatoken(\string|\Bitrix\Main\DB\SqlExpression $oatoken)
     * @method bool hasOatoken()
     * @method bool isOatokenFilled()
     * @method bool isOatokenChanged()
     * @method \string remindActualOatoken()
     * @method \string requireOatoken()
     * @method \Bitrix\Socialservices\EO_User resetOatoken()
     * @method \Bitrix\Socialservices\EO_User unsetOatoken()
     * @method \string fillOatoken()
     * @method \int getOatokenExpires()
     * @method \Bitrix\Socialservices\EO_User setOatokenExpires(\int|\Bitrix\Main\DB\SqlExpression $oatokenExpires)
     * @method bool hasOatokenExpires()
     * @method bool isOatokenExpiresFilled()
     * @method bool isOatokenExpiresChanged()
     * @method \int remindActualOatokenExpires()
     * @method \int requireOatokenExpires()
     * @method \Bitrix\Socialservices\EO_User resetOatokenExpires()
     * @method \Bitrix\Socialservices\EO_User unsetOatokenExpires()
     * @method \int fillOatokenExpires()
     * @method \string getOasecret()
     * @method \Bitrix\Socialservices\EO_User setOasecret(\string|\Bitrix\Main\DB\SqlExpression $oasecret)
     * @method bool hasOasecret()
     * @method bool isOasecretFilled()
     * @method bool isOasecretChanged()
     * @method \string remindActualOasecret()
     * @method \string requireOasecret()
     * @method \Bitrix\Socialservices\EO_User resetOasecret()
     * @method \Bitrix\Socialservices\EO_User unsetOasecret()
     * @method \string fillOasecret()
     * @method \string getRefreshToken()
     * @method \Bitrix\Socialservices\EO_User setRefreshToken(\string|\Bitrix\Main\DB\SqlExpression $refreshToken)
     * @method bool hasRefreshToken()
     * @method bool isRefreshTokenFilled()
     * @method bool isRefreshTokenChanged()
     * @method \string remindActualRefreshToken()
     * @method \string requireRefreshToken()
     * @method \Bitrix\Socialservices\EO_User resetRefreshToken()
     * @method \Bitrix\Socialservices\EO_User unsetRefreshToken()
     * @method \string fillRefreshToken()
     * @method \boolean getSendActivity()
     * @method \Bitrix\Socialservices\EO_User setSendActivity(\boolean|\Bitrix\Main\DB\SqlExpression $sendActivity)
     * @method bool hasSendActivity()
     * @method bool isSendActivityFilled()
     * @method bool isSendActivityChanged()
     * @method \boolean remindActualSendActivity()
     * @method \boolean requireSendActivity()
     * @method \Bitrix\Socialservices\EO_User resetSendActivity()
     * @method \Bitrix\Socialservices\EO_User unsetSendActivity()
     * @method \boolean fillSendActivity()
     * @method \string getSiteId()
     * @method \Bitrix\Socialservices\EO_User setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string remindActualSiteId()
     * @method \string requireSiteId()
     * @method \Bitrix\Socialservices\EO_User resetSiteId()
     * @method \Bitrix\Socialservices\EO_User unsetSiteId()
     * @method \string fillSiteId()
     * @method \boolean getInitialized()
     * @method \Bitrix\Socialservices\EO_User setInitialized(\boolean|\Bitrix\Main\DB\SqlExpression $initialized)
     * @method bool hasInitialized()
     * @method bool isInitializedFilled()
     * @method bool isInitializedChanged()
     * @method \boolean remindActualInitialized()
     * @method \boolean requireInitialized()
     * @method \Bitrix\Socialservices\EO_User resetInitialized()
     * @method \Bitrix\Socialservices\EO_User unsetInitialized()
     * @method \boolean fillInitialized()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Socialservices\EO_User setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Socialservices\EO_User resetUser()
     * @method \Bitrix\Socialservices\EO_User unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialservices\EO_User set($fieldName, $value)
     * @method \Bitrix\Socialservices\EO_User reset($fieldName)
     * @method \Bitrix\Socialservices\EO_User unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialservices\EO_User wakeUp($data)
     */
    class EO_User
    {
        /* @var \Bitrix\Socialservices\UserTable */
        public static $dataClass = '\\Bitrix\\Socialservices\\UserTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_User_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getLoginList()
     * @method \string[] fillLogin()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getLastNameList()
     * @method \string[] fillLastName()
     * @method \string[] getEmailList()
     * @method \string[] fillEmail()
     * @method \string[] getPersonalPhotoList()
     * @method \string[] fillPersonalPhoto()
     * @method \string[] getExternalAuthIdList()
     * @method \string[] fillExternalAuthId()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \boolean[] getCanDeleteList()
     * @method \boolean[] fillCanDelete()
     * @method \string[] getPersonalWwwList()
     * @method \string[] fillPersonalWww()
     * @method \string[] getPermissionsList()
     * @method \string[] fillPermissions()
     * @method \string[] getOatokenList()
     * @method \string[] fillOatoken()
     * @method \int[] getOatokenExpiresList()
     * @method \int[] fillOatokenExpires()
     * @method \string[] getOasecretList()
     * @method \string[] fillOasecret()
     * @method \string[] getRefreshTokenList()
     * @method \string[] fillRefreshToken()
     * @method \boolean[] getSendActivityList()
     * @method \boolean[] fillSendActivity()
     * @method \string[] getSiteIdList()
     * @method \string[] fillSiteId()
     * @method \boolean[] getInitializedList()
     * @method \boolean[] fillInitialized()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Socialservices\EO_User_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialservices\EO_User $object)
     * @method bool has(\Bitrix\Socialservices\EO_User $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialservices\EO_User getByPrimary($primary)
     * @method \Bitrix\Socialservices\EO_User[] getAll()
     * @method bool remove(\Bitrix\Socialservices\EO_User $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialservices\EO_User_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialservices\EO_User current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_User_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialservices\UserTable */
        public static $dataClass = '\\Bitrix\\Socialservices\\UserTable';
    }
    /**
     * @method static EO_User_Query query()
     * @method static EO_User_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_User_Result getById($id)
     * @method static EO_User_Result getList(array $parameters = array())
     * @method static EO_User_Entity getEntity()
     * @method static \Bitrix\Socialservices\EO_User createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialservices\EO_User_Collection createCollection()
     * @method static \Bitrix\Socialservices\EO_User wakeUpObject($row)
     * @method static \Bitrix\Socialservices\EO_User_Collection wakeUpCollection($rows)
     */
    class UserTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_User_Result exec()
     * @method \Bitrix\Socialservices\EO_User fetchObject()
     * @method \Bitrix\Socialservices\EO_User_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_User_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialservices\EO_User fetchObject()
     * @method \Bitrix\Socialservices\EO_User_Collection fetchCollection()
     */
    class EO_User_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialservices\EO_User createObject($setDefaultValues = true)
     * @method \Bitrix\Socialservices\EO_User_Collection createCollection()
     * @method \Bitrix\Socialservices\EO_User wakeUpObject($row)
     * @method \Bitrix\Socialservices\EO_User_Collection wakeUpCollection($rows)
     */
    class EO_User_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserLink
     * @see \Bitrix\Socialservices\UserLinkTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialservices\EO_UserLink setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Socialservices\EO_UserLink setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Socialservices\EO_UserLink resetUserId()
     * @method \Bitrix\Socialservices\EO_UserLink unsetUserId()
     * @method \int fillUserId()
     * @method \int getSocservUserId()
     * @method \Bitrix\Socialservices\EO_UserLink setSocservUserId(\int|\Bitrix\Main\DB\SqlExpression $socservUserId)
     * @method bool hasSocservUserId()
     * @method bool isSocservUserIdFilled()
     * @method bool isSocservUserIdChanged()
     * @method \int remindActualSocservUserId()
     * @method \int requireSocservUserId()
     * @method \Bitrix\Socialservices\EO_UserLink resetSocservUserId()
     * @method \Bitrix\Socialservices\EO_UserLink unsetSocservUserId()
     * @method \int fillSocservUserId()
     * @method \int getLinkUserId()
     * @method \Bitrix\Socialservices\EO_UserLink setLinkUserId(\int|\Bitrix\Main\DB\SqlExpression $linkUserId)
     * @method bool hasLinkUserId()
     * @method bool isLinkUserIdFilled()
     * @method bool isLinkUserIdChanged()
     * @method \int remindActualLinkUserId()
     * @method \int requireLinkUserId()
     * @method \Bitrix\Socialservices\EO_UserLink resetLinkUserId()
     * @method \Bitrix\Socialservices\EO_UserLink unsetLinkUserId()
     * @method \int fillLinkUserId()
     * @method \string getLinkUid()
     * @method \Bitrix\Socialservices\EO_UserLink setLinkUid(\string|\Bitrix\Main\DB\SqlExpression $linkUid)
     * @method bool hasLinkUid()
     * @method bool isLinkUidFilled()
     * @method bool isLinkUidChanged()
     * @method \string remindActualLinkUid()
     * @method \string requireLinkUid()
     * @method \Bitrix\Socialservices\EO_UserLink resetLinkUid()
     * @method \Bitrix\Socialservices\EO_UserLink unsetLinkUid()
     * @method \string fillLinkUid()
     * @method \string getLinkName()
     * @method \Bitrix\Socialservices\EO_UserLink setLinkName(\string|\Bitrix\Main\DB\SqlExpression $linkName)
     * @method bool hasLinkName()
     * @method bool isLinkNameFilled()
     * @method bool isLinkNameChanged()
     * @method \string remindActualLinkName()
     * @method \string requireLinkName()
     * @method \Bitrix\Socialservices\EO_UserLink resetLinkName()
     * @method \Bitrix\Socialservices\EO_UserLink unsetLinkName()
     * @method \string fillLinkName()
     * @method \string getLinkLastName()
     * @method \Bitrix\Socialservices\EO_UserLink setLinkLastName(\string|\Bitrix\Main\DB\SqlExpression $linkLastName)
     * @method bool hasLinkLastName()
     * @method bool isLinkLastNameFilled()
     * @method bool isLinkLastNameChanged()
     * @method \string remindActualLinkLastName()
     * @method \string requireLinkLastName()
     * @method \Bitrix\Socialservices\EO_UserLink resetLinkLastName()
     * @method \Bitrix\Socialservices\EO_UserLink unsetLinkLastName()
     * @method \string fillLinkLastName()
     * @method \string getLinkPicture()
     * @method \Bitrix\Socialservices\EO_UserLink setLinkPicture(\string|\Bitrix\Main\DB\SqlExpression $linkPicture)
     * @method bool hasLinkPicture()
     * @method bool isLinkPictureFilled()
     * @method bool isLinkPictureChanged()
     * @method \string remindActualLinkPicture()
     * @method \string requireLinkPicture()
     * @method \Bitrix\Socialservices\EO_UserLink resetLinkPicture()
     * @method \Bitrix\Socialservices\EO_UserLink unsetLinkPicture()
     * @method \string fillLinkPicture()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Socialservices\EO_UserLink setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Socialservices\EO_UserLink resetUser()
     * @method \Bitrix\Socialservices\EO_UserLink unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \Bitrix\Socialservices\EO_User getSocservUser()
     * @method \Bitrix\Socialservices\EO_User remindActualSocservUser()
     * @method \Bitrix\Socialservices\EO_User requireSocservUser()
     * @method \Bitrix\Socialservices\EO_UserLink setSocservUser(\Bitrix\Socialservices\EO_User $object)
     * @method \Bitrix\Socialservices\EO_UserLink resetSocservUser()
     * @method \Bitrix\Socialservices\EO_UserLink unsetSocservUser()
     * @method bool hasSocservUser()
     * @method bool isSocservUserFilled()
     * @method bool isSocservUserChanged()
     * @method \Bitrix\Socialservices\EO_User fillSocservUser()
     * @method \Bitrix\Main\EO_User getLinkUser()
     * @method \Bitrix\Main\EO_User remindActualLinkUser()
     * @method \Bitrix\Main\EO_User requireLinkUser()
     * @method \Bitrix\Socialservices\EO_UserLink setLinkUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Socialservices\EO_UserLink resetLinkUser()
     * @method \Bitrix\Socialservices\EO_UserLink unsetLinkUser()
     * @method bool hasLinkUser()
     * @method bool isLinkUserFilled()
     * @method bool isLinkUserChanged()
     * @method \Bitrix\Main\EO_User fillLinkUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialservices\EO_UserLink set($fieldName, $value)
     * @method \Bitrix\Socialservices\EO_UserLink reset($fieldName)
     * @method \Bitrix\Socialservices\EO_UserLink unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialservices\EO_UserLink wakeUp($data)
     */
    class EO_UserLink
    {
        /* @var \Bitrix\Socialservices\UserLinkTable */
        public static $dataClass = '\\Bitrix\\Socialservices\\UserLinkTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserLink_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \int[] getSocservUserIdList()
     * @method \int[] fillSocservUserId()
     * @method \int[] getLinkUserIdList()
     * @method \int[] fillLinkUserId()
     * @method \string[] getLinkUidList()
     * @method \string[] fillLinkUid()
     * @method \string[] getLinkNameList()
     * @method \string[] fillLinkName()
     * @method \string[] getLinkLastNameList()
     * @method \string[] fillLinkLastName()
     * @method \string[] getLinkPictureList()
     * @method \string[] fillLinkPicture()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Socialservices\EO_UserLink_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \Bitrix\Socialservices\EO_User[] getSocservUserList()
     * @method \Bitrix\Socialservices\EO_UserLink_Collection getSocservUserCollection()
     * @method \Bitrix\Socialservices\EO_User_Collection fillSocservUser()
     * @method \Bitrix\Main\EO_User[] getLinkUserList()
     * @method \Bitrix\Socialservices\EO_UserLink_Collection getLinkUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillLinkUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialservices\EO_UserLink $object)
     * @method bool has(\Bitrix\Socialservices\EO_UserLink $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialservices\EO_UserLink getByPrimary($primary)
     * @method \Bitrix\Socialservices\EO_UserLink[] getAll()
     * @method bool remove(\Bitrix\Socialservices\EO_UserLink $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialservices\EO_UserLink_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialservices\EO_UserLink current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserLink_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialservices\UserLinkTable */
        public static $dataClass = '\\Bitrix\\Socialservices\\UserLinkTable';
    }
    /**
     * @method static EO_UserLink_Query query()
     * @method static EO_UserLink_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserLink_Result getById($id)
     * @method static EO_UserLink_Result getList(array $parameters = array())
     * @method static EO_UserLink_Entity getEntity()
     * @method static \Bitrix\Socialservices\EO_UserLink createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialservices\EO_UserLink_Collection createCollection()
     * @method static \Bitrix\Socialservices\EO_UserLink wakeUpObject($row)
     * @method static \Bitrix\Socialservices\EO_UserLink_Collection wakeUpCollection($rows)
     */
    class UserLinkTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserLink_Result exec()
     * @method \Bitrix\Socialservices\EO_UserLink fetchObject()
     * @method \Bitrix\Socialservices\EO_UserLink_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserLink_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialservices\EO_UserLink fetchObject()
     * @method \Bitrix\Socialservices\EO_UserLink_Collection fetchCollection()
     */
    class EO_UserLink_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialservices\EO_UserLink createObject($setDefaultValues = true)
     * @method \Bitrix\Socialservices\EO_UserLink_Collection createCollection()
     * @method \Bitrix\Socialservices\EO_UserLink wakeUpObject($row)
     * @method \Bitrix\Socialservices\EO_UserLink_Collection wakeUpCollection($rows)
     */
    class EO_UserLink_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_ZoomMeeting
     * @see \Bitrix\Socialservices\ZoomMeetingTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getEntityTypeId()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting setEntityTypeId(\string|\Bitrix\Main\DB\SqlExpression $entityTypeId)
     * @method bool hasEntityTypeId()
     * @method bool isEntityTypeIdFilled()
     * @method bool isEntityTypeIdChanged()
     * @method \string remindActualEntityTypeId()
     * @method \string requireEntityTypeId()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting resetEntityTypeId()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting unsetEntityTypeId()
     * @method \string fillEntityTypeId()
     * @method \int getEntityId()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting setEntityId(\int|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \int remindActualEntityId()
     * @method \int requireEntityId()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting resetEntityId()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting unsetEntityId()
     * @method \int fillEntityId()
     * @method \string getConferenceUrl()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting setConferenceUrl(\string|\Bitrix\Main\DB\SqlExpression $conferenceUrl)
     * @method bool hasConferenceUrl()
     * @method bool isConferenceUrlFilled()
     * @method bool isConferenceUrlChanged()
     * @method \string remindActualConferenceUrl()
     * @method \string requireConferenceUrl()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting resetConferenceUrl()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting unsetConferenceUrl()
     * @method \string fillConferenceUrl()
     * @method \int getConferenceExternalId()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting setConferenceExternalId(\int|\Bitrix\Main\DB\SqlExpression $conferenceExternalId)
     * @method bool hasConferenceExternalId()
     * @method bool isConferenceExternalIdFilled()
     * @method bool isConferenceExternalIdChanged()
     * @method \int remindActualConferenceExternalId()
     * @method \int requireConferenceExternalId()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting resetConferenceExternalId()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting unsetConferenceExternalId()
     * @method \int fillConferenceExternalId()
     * @method \string getConferencePassword()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting setConferencePassword(\string|\Bitrix\Main\DB\SqlExpression $conferencePassword)
     * @method bool hasConferencePassword()
     * @method bool isConferencePasswordFilled()
     * @method bool isConferencePasswordChanged()
     * @method \string remindActualConferencePassword()
     * @method \string requireConferencePassword()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting resetConferencePassword()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting unsetConferencePassword()
     * @method \string fillConferencePassword()
     * @method \boolean getJoined()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting setJoined(\boolean|\Bitrix\Main\DB\SqlExpression $joined)
     * @method bool hasJoined()
     * @method bool isJoinedFilled()
     * @method bool isJoinedChanged()
     * @method \boolean remindActualJoined()
     * @method \boolean requireJoined()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting resetJoined()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting unsetJoined()
     * @method \boolean fillJoined()
     * @method \Bitrix\Main\Type\DateTime getConferenceCreated()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting setConferenceCreated(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $conferenceCreated)
     * @method bool hasConferenceCreated()
     * @method bool isConferenceCreatedFilled()
     * @method bool isConferenceCreatedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualConferenceCreated()
     * @method \Bitrix\Main\Type\DateTime requireConferenceCreated()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting resetConferenceCreated()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting unsetConferenceCreated()
     * @method \Bitrix\Main\Type\DateTime fillConferenceCreated()
     * @method \Bitrix\Main\Type\DateTime getConferenceStarted()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting setConferenceStarted(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $conferenceStarted)
     * @method bool hasConferenceStarted()
     * @method bool isConferenceStartedFilled()
     * @method bool isConferenceStartedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualConferenceStarted()
     * @method \Bitrix\Main\Type\DateTime requireConferenceStarted()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting resetConferenceStarted()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting unsetConferenceStarted()
     * @method \Bitrix\Main\Type\DateTime fillConferenceStarted()
     * @method \Bitrix\Main\Type\DateTime getConferenceEnded()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting setConferenceEnded(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $conferenceEnded)
     * @method bool hasConferenceEnded()
     * @method bool isConferenceEndedFilled()
     * @method bool isConferenceEndedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualConferenceEnded()
     * @method \Bitrix\Main\Type\DateTime requireConferenceEnded()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting resetConferenceEnded()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting unsetConferenceEnded()
     * @method \Bitrix\Main\Type\DateTime fillConferenceEnded()
     * @method \boolean getHasRecording()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting setHasRecording(\boolean|\Bitrix\Main\DB\SqlExpression $hasRecording)
     * @method bool hasHasRecording()
     * @method bool isHasRecordingFilled()
     * @method bool isHasRecordingChanged()
     * @method \boolean remindActualHasRecording()
     * @method \boolean requireHasRecording()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting resetHasRecording()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting unsetHasRecording()
     * @method \boolean fillHasRecording()
     * @method \int getDuration()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting setDuration(\int|\Bitrix\Main\DB\SqlExpression $duration)
     * @method bool hasDuration()
     * @method bool isDurationFilled()
     * @method bool isDurationChanged()
     * @method \int remindActualDuration()
     * @method \int requireDuration()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting resetDuration()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting unsetDuration()
     * @method \int fillDuration()
     * @method \string getTitle()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting resetTitle()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting unsetTitle()
     * @method \string fillTitle()
     * @method \string getShortLink()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting setShortLink(\string|\Bitrix\Main\DB\SqlExpression $shortLink)
     * @method bool hasShortLink()
     * @method bool isShortLinkFilled()
     * @method bool isShortLinkChanged()
     * @method \string remindActualShortLink()
     * @method \string requireShortLink()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting resetShortLink()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting unsetShortLink()
     * @method \string fillShortLink()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialservices\EO_ZoomMeeting set($fieldName, $value)
     * @method \Bitrix\Socialservices\EO_ZoomMeeting reset($fieldName)
     * @method \Bitrix\Socialservices\EO_ZoomMeeting unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialservices\EO_ZoomMeeting wakeUp($data)
     */
    class EO_ZoomMeeting
    {
        /* @var \Bitrix\Socialservices\ZoomMeetingTable */
        public static $dataClass = '\\Bitrix\\Socialservices\\ZoomMeetingTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_ZoomMeeting_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getEntityTypeIdList()
     * @method \string[] fillEntityTypeId()
     * @method \int[] getEntityIdList()
     * @method \int[] fillEntityId()
     * @method \string[] getConferenceUrlList()
     * @method \string[] fillConferenceUrl()
     * @method \int[] getConferenceExternalIdList()
     * @method \int[] fillConferenceExternalId()
     * @method \string[] getConferencePasswordList()
     * @method \string[] fillConferencePassword()
     * @method \boolean[] getJoinedList()
     * @method \boolean[] fillJoined()
     * @method \Bitrix\Main\Type\DateTime[] getConferenceCreatedList()
     * @method \Bitrix\Main\Type\DateTime[] fillConferenceCreated()
     * @method \Bitrix\Main\Type\DateTime[] getConferenceStartedList()
     * @method \Bitrix\Main\Type\DateTime[] fillConferenceStarted()
     * @method \Bitrix\Main\Type\DateTime[] getConferenceEndedList()
     * @method \Bitrix\Main\Type\DateTime[] fillConferenceEnded()
     * @method \boolean[] getHasRecordingList()
     * @method \boolean[] fillHasRecording()
     * @method \int[] getDurationList()
     * @method \int[] fillDuration()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getShortLinkList()
     * @method \string[] fillShortLink()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialservices\EO_ZoomMeeting $object)
     * @method bool has(\Bitrix\Socialservices\EO_ZoomMeeting $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialservices\EO_ZoomMeeting getByPrimary($primary)
     * @method \Bitrix\Socialservices\EO_ZoomMeeting[] getAll()
     * @method bool remove(\Bitrix\Socialservices\EO_ZoomMeeting $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialservices\EO_ZoomMeeting_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialservices\EO_ZoomMeeting current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_ZoomMeeting_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialservices\ZoomMeetingTable */
        public static $dataClass = '\\Bitrix\\Socialservices\\ZoomMeetingTable';
    }
    /**
     * @method static EO_ZoomMeeting_Query query()
     * @method static EO_ZoomMeeting_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_ZoomMeeting_Result getById($id)
     * @method static EO_ZoomMeeting_Result getList(array $parameters = array())
     * @method static EO_ZoomMeeting_Entity getEntity()
     * @method static \Bitrix\Socialservices\EO_ZoomMeeting createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialservices\EO_ZoomMeeting_Collection createCollection()
     * @method static \Bitrix\Socialservices\EO_ZoomMeeting wakeUpObject($row)
     * @method static \Bitrix\Socialservices\EO_ZoomMeeting_Collection wakeUpCollection($rows)
     */
    class ZoomMeetingTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_ZoomMeeting_Result exec()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting fetchObject()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_ZoomMeeting_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialservices\EO_ZoomMeeting fetchObject()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting_Collection fetchCollection()
     */
    class EO_ZoomMeeting_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialservices\EO_ZoomMeeting createObject($setDefaultValues = true)
     * @method \Bitrix\Socialservices\EO_ZoomMeeting_Collection createCollection()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting wakeUpObject($row)
     * @method \Bitrix\Socialservices\EO_ZoomMeeting_Collection wakeUpCollection($rows)
     */
    class EO_ZoomMeeting_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_ZoomMeetingRecording
     * @see \Bitrix\Socialservices\ZoomMeetingRecordingTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getExternalId()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording setExternalId(\string|\Bitrix\Main\DB\SqlExpression $externalId)
     * @method bool hasExternalId()
     * @method bool isExternalIdFilled()
     * @method bool isExternalIdChanged()
     * @method \string remindActualExternalId()
     * @method \string requireExternalId()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording resetExternalId()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording unsetExternalId()
     * @method \string fillExternalId()
     * @method \int getMeetingId()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording setMeetingId(\int|\Bitrix\Main\DB\SqlExpression $meetingId)
     * @method bool hasMeetingId()
     * @method bool isMeetingIdFilled()
     * @method bool isMeetingIdChanged()
     * @method \int remindActualMeetingId()
     * @method \int requireMeetingId()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording resetMeetingId()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording unsetMeetingId()
     * @method \int fillMeetingId()
     * @method \Bitrix\Main\Type\DateTime getStartDate()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording setStartDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $startDate)
     * @method bool hasStartDate()
     * @method bool isStartDateFilled()
     * @method bool isStartDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualStartDate()
     * @method \Bitrix\Main\Type\DateTime requireStartDate()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording resetStartDate()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording unsetStartDate()
     * @method \Bitrix\Main\Type\DateTime fillStartDate()
     * @method \Bitrix\Main\Type\DateTime getEndDate()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording setEndDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $endDate)
     * @method bool hasEndDate()
     * @method bool isEndDateFilled()
     * @method bool isEndDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualEndDate()
     * @method \Bitrix\Main\Type\DateTime requireEndDate()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording resetEndDate()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording unsetEndDate()
     * @method \Bitrix\Main\Type\DateTime fillEndDate()
     * @method \string getFileType()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording setFileType(\string|\Bitrix\Main\DB\SqlExpression $fileType)
     * @method bool hasFileType()
     * @method bool isFileTypeFilled()
     * @method bool isFileTypeChanged()
     * @method \string remindActualFileType()
     * @method \string requireFileType()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording resetFileType()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording unsetFileType()
     * @method \string fillFileType()
     * @method \int getFileSize()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording setFileSize(\int|\Bitrix\Main\DB\SqlExpression $fileSize)
     * @method bool hasFileSize()
     * @method bool isFileSizeFilled()
     * @method bool isFileSizeChanged()
     * @method \int remindActualFileSize()
     * @method \int requireFileSize()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording resetFileSize()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording unsetFileSize()
     * @method \int fillFileSize()
     * @method \string getPlayUrl()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording setPlayUrl(\string|\Bitrix\Main\DB\SqlExpression $playUrl)
     * @method bool hasPlayUrl()
     * @method bool isPlayUrlFilled()
     * @method bool isPlayUrlChanged()
     * @method \string remindActualPlayUrl()
     * @method \string requirePlayUrl()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording resetPlayUrl()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording unsetPlayUrl()
     * @method \string fillPlayUrl()
     * @method \string getDownloadUrl()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording setDownloadUrl(\string|\Bitrix\Main\DB\SqlExpression $downloadUrl)
     * @method bool hasDownloadUrl()
     * @method bool isDownloadUrlFilled()
     * @method bool isDownloadUrlChanged()
     * @method \string remindActualDownloadUrl()
     * @method \string requireDownloadUrl()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording resetDownloadUrl()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording unsetDownloadUrl()
     * @method \string fillDownloadUrl()
     * @method \string getRecordingType()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording setRecordingType(\string|\Bitrix\Main\DB\SqlExpression $recordingType)
     * @method bool hasRecordingType()
     * @method bool isRecordingTypeFilled()
     * @method bool isRecordingTypeChanged()
     * @method \string remindActualRecordingType()
     * @method \string requireRecordingType()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording resetRecordingType()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording unsetRecordingType()
     * @method \string fillRecordingType()
     * @method \string getDownloadToken()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording setDownloadToken(\string|\Bitrix\Main\DB\SqlExpression $downloadToken)
     * @method bool hasDownloadToken()
     * @method bool isDownloadTokenFilled()
     * @method bool isDownloadTokenChanged()
     * @method \string remindActualDownloadToken()
     * @method \string requireDownloadToken()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording resetDownloadToken()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording unsetDownloadToken()
     * @method \string fillDownloadToken()
     * @method \string getPassword()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording setPassword(\string|\Bitrix\Main\DB\SqlExpression $password)
     * @method bool hasPassword()
     * @method bool isPasswordFilled()
     * @method bool isPasswordChanged()
     * @method \string remindActualPassword()
     * @method \string requirePassword()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording resetPassword()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording unsetPassword()
     * @method \string fillPassword()
     * @method \int getFileId()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording setFileId(\int|\Bitrix\Main\DB\SqlExpression $fileId)
     * @method bool hasFileId()
     * @method bool isFileIdFilled()
     * @method bool isFileIdChanged()
     * @method \int remindActualFileId()
     * @method \int requireFileId()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording resetFileId()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording unsetFileId()
     * @method \int fillFileId()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting getMeeting()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting remindActualMeeting()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting requireMeeting()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording setMeeting(\Bitrix\Socialservices\EO_ZoomMeeting $object)
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording resetMeeting()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording unsetMeeting()
     * @method bool hasMeeting()
     * @method bool isMeetingFilled()
     * @method bool isMeetingChanged()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting fillMeeting()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording set($fieldName, $value)
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording reset($fieldName)
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialservices\EO_ZoomMeetingRecording wakeUp($data)
     */
    class EO_ZoomMeetingRecording
    {
        /* @var \Bitrix\Socialservices\ZoomMeetingRecordingTable */
        public static $dataClass = '\\Bitrix\\Socialservices\\ZoomMeetingRecordingTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_ZoomMeetingRecording_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getExternalIdList()
     * @method \string[] fillExternalId()
     * @method \int[] getMeetingIdList()
     * @method \int[] fillMeetingId()
     * @method \Bitrix\Main\Type\DateTime[] getStartDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillStartDate()
     * @method \Bitrix\Main\Type\DateTime[] getEndDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillEndDate()
     * @method \string[] getFileTypeList()
     * @method \string[] fillFileType()
     * @method \int[] getFileSizeList()
     * @method \int[] fillFileSize()
     * @method \string[] getPlayUrlList()
     * @method \string[] fillPlayUrl()
     * @method \string[] getDownloadUrlList()
     * @method \string[] fillDownloadUrl()
     * @method \string[] getRecordingTypeList()
     * @method \string[] fillRecordingType()
     * @method \string[] getDownloadTokenList()
     * @method \string[] fillDownloadToken()
     * @method \string[] getPasswordList()
     * @method \string[] fillPassword()
     * @method \int[] getFileIdList()
     * @method \int[] fillFileId()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting[] getMeetingList()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording_Collection getMeetingCollection()
     * @method \Bitrix\Socialservices\EO_ZoomMeeting_Collection fillMeeting()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialservices\EO_ZoomMeetingRecording $object)
     * @method bool has(\Bitrix\Socialservices\EO_ZoomMeetingRecording $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording getByPrimary($primary)
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording[] getAll()
     * @method bool remove(\Bitrix\Socialservices\EO_ZoomMeetingRecording $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialservices\EO_ZoomMeetingRecording_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_ZoomMeetingRecording_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialservices\ZoomMeetingRecordingTable */
        public static $dataClass = '\\Bitrix\\Socialservices\\ZoomMeetingRecordingTable';
    }
    /**
     * @method static EO_ZoomMeetingRecording_Query query()
     * @method static EO_ZoomMeetingRecording_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_ZoomMeetingRecording_Result getById($id)
     * @method static EO_ZoomMeetingRecording_Result getList(array $parameters = array())
     * @method static EO_ZoomMeetingRecording_Entity getEntity()
     * @method static \Bitrix\Socialservices\EO_ZoomMeetingRecording createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialservices\EO_ZoomMeetingRecording_Collection createCollection()
     * @method static \Bitrix\Socialservices\EO_ZoomMeetingRecording wakeUpObject($row)
     * @method static \Bitrix\Socialservices\EO_ZoomMeetingRecording_Collection wakeUpCollection($rows)
     */
    class ZoomMeetingRecordingTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_ZoomMeetingRecording_Result exec()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording fetchObject()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_ZoomMeetingRecording_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording fetchObject()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording_Collection fetchCollection()
     */
    class EO_ZoomMeetingRecording_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording createObject($setDefaultValues = true)
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording_Collection createCollection()
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording wakeUpObject($row)
     * @method \Bitrix\Socialservices\EO_ZoomMeetingRecording_Collection wakeUpCollection($rows)
     */
    class EO_ZoomMeetingRecording_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\Security\Sign {
    /**
     * Class Signer
     * @since 14.0.7
     * @package Bitrix\Main\Security\Sign
     */
    class Signer
    {
        /** @var \Bitrix\Main\Security\Sign\SigningAlgorithm Signing algorithm */
        protected $algorithm = null;
        protected $separator = '.';
        /** @var string Secret key */
        protected $key = null;
        /**
         * Creates new Signer object. If you want use your own signing algorithm - you can this
         *
         * @param SigningAlgorithm $algorithm Custom signing algorithm.
         */
        public function __construct(\Bitrix\Main\Security\Sign\SigningAlgorithm $algorithm = null)
        {
        }
        /**
         * Set key for signing
         *
         * @param string $value Key.
         * @return $this
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function setKey($value)
        {
        }
        /**
         * Return separator, used for packing/unpacking
         *
         * @return string
         */
        public function getSeparator()
        {
        }
        /**
         * Set separator, used for packing/unpacking
         *
         * @param string $value Separator.
         * @return $this
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function setSeparator($value)
        {
        }
        /**
         * Return message signature
         *
         * @param string $value Message.
         * @param string|null $salt Salt.
         * @return string
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function getSignature($value, $salt = null)
        {
        }
        /**
         * Sign message, return string in format "{message}{separator}{signature}"
         *
         * Simple example:
         * <code>
         *  // If salt needed
         *  $foo = (new Signer)->sign('test', 'my_salt');
         *
         *  // Otherwise
         *  $bar = (new Signer)->sign('test');
         * </code>
         *
         * @param string $value Message for signing.
         * @param string|null $salt Salt, if needed.
         * @return string
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function sign($value, $salt = null)
        {
        }
        /**
         * Check message signature and return original message.
         *
         * Simple example:
         * <code>
         *  $signer = new Signer;
         *
         *  // Sing message
         *  $signedValue = $signer->sign('test');
         *
         *  // Get original message with checking
         *  echo $signer->unsign($signedValue);
         *  // Output: 'test'
         *
         *  // Try to unsigning not signed value
         *  echo $signer->unsign('test');
         *  //throw BadSignatureException with message 'Separator not found in value'
         *
         *  // Or with invalid sign
         *  echo $signer->unsign('test.invalid_sign');
         *
         *  // Or invalid salt
         *  //throw BadSignatureException with message 'Signature does not match'
         *  echo $signer->unsign($signedValue, 'invalid_salt');
         *
         * </code>
         *
         * @param string $signedValue Signed value, must be in format "{message}{separator}{signature}".
         * @param string|null $salt Salt, if used while signing.
         * @return string
         * @throws BadSignatureException
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function unsign($signedValue, $salt = null)
        {
        }
        /**
         * Simply validation of message signature
         *
         * @param string $value Message.
         * @param string $signature Signature.
         * @param string|null $salt Salt, if used while signing.
         * @return bool True if OK, otherwise - false.
         */
        public function validate($value, $signature, $salt = null)
        {
        }
        /**
         * Verify message signature provided by hashing algorithm
         *
         * @param string $value Message.
         * @param string $sig Signature.
         * @param string|null $salt Salt, if used while signing.
         * @return bool
         */
        protected function verifySignature($value, $sig, $salt = null)
        {
        }
        /**
         * Return salted key for signing.
         * If key was set by setKey - use it
         * Otherwise - used default (if default key does not exists - automatically generate it)
         *
         * @param string|null $salt Salt, if needed.
         * @throws BadSignatureException
         * @return string
         */
        protected function getKey($salt = null)
        {
        }
        /**
         * Return default (system) key for signing or generate if it does not exists
         *
         * @return string
         */
        protected function getDefaultKey()
        {
        }
        /**
         * Pack array values to single string:
         * pack(['test', 'all', 'values']) -> 'test.all.values'
         *
         * @param array $values Values for packing.
         * @return string
         */
        public function pack(array $values)
        {
        }
        /**
         * Unpack values from string (something like rsplit).
         * Simple example for separator ".":
         * <code>
         *  // Unpack all values:
         *  unpack('test.all.values', 0) -> ['test', 'all', 'values']
         *
         *  // Unpack 2 values (by default). First element containing the rest of string.
         *  unpack('test.all.values') -> ['test.all', 'values']
         *
         *  // Exception if separator is missing
         *  unpack('test.all values', 3) -> throws BadSignatureException
         * </code>
         *
         * @param string $value String for unpacking.
         * @param int $limit If $limit === 0 - unpack all values, default - 2.
         * @return array
         * @throws BadSignatureException
         */
        public function unpack($value, $limit = 2)
        {
        }
        /**
         * Return encoded signature
         *
         * @param string $value Signature in binary representation.
         * @return string Encoded signature
         */
        protected function encodeSignature($value)
        {
        }
        /**
         * Return decoded signature
         *
         * @param string $value Encoded signature.
         * @return string Signature in binary representation
         * @throws BadSignatureException
         */
        protected function decodeSignature($value)
        {
        }
    }
}
namespace Bitrix\Socialservices {
    class Bitrix24Signer extends \Bitrix\Main\Security\Sign\Signer
    {
        public function __construct()
        {
        }
        public function sign($value, $salt = null)
        {
        }
        public function unsign($signedValue, $salt = null)
        {
        }
        /**
         * Return encoded signature
         *
         * @param string $value
         * @return mixed
         */
        protected function encodeSignature($value)
        {
        }
        /**
         * Return decoded signature
         *
         * @param string $value
         * @return string
         */
        protected function decodeSignature($value)
        {
        }
    }
}
namespace Bitrix\SocialServices\Integration\Zoom {
    class DiskHelper
    {
        const ROOT_FOLDER_CODE = "ZOOM_RECORDS";
        public static function saveFile(array $arFile, int $userId, $siteId = SITE_ID) : \Bitrix\Main\Result
        {
        }
        public static function getRecordsFolder($folderName, $siteId = SITE_ID)
        {
        }
        public static function getRootFolder($siteId = SITE_ID)
        {
        }
        /**
         * @param string $siteId
         * @return \Bitrix\Disk\Storage || null
         */
        public static function getStorageModel($siteId = SITE_ID) : ?\Bitrix\Disk\Storage
        {
        }
        public static function getRootFolderName($siteId) : string
        {
        }
        public static function createRootFolderAccessCodes(\Bitrix\Disk\Storage $storageModel)
        {
        }
    }
    class Recording
    {
        public const RECORDING_KIND_VIDEO = 'VIDEO';
        public const RECORDING_KIND_AUDIO = 'AUDIO';
        public const LENGTH_FORMAT_SHORT = 'short';
        public const LENGTH_FORMAT_FULL = 'full';
        public static function getRecordings($conferenceId) : \Bitrix\Main\Result
        {
        }
        public static function getRecordingKind($fileType) : ?string
        {
        }
        /**
         * @param DateTime $startDate
         * @param DateTime $endDate
         * @return int
         */
        public static function getRecordingLength(\Bitrix\Main\Type\DateTime $startDate, \Bitrix\Main\Type\DateTime $endDate) : int
        {
        }
        public static function formatLength(int $lengthSeconds, $format = self::LENGTH_FORMAT_SHORT) : string
        {
        }
        protected static function getNumericSuffix($number) : int
        {
        }
        public static function onRecordingStopped(int $conferenceId, array $recordingsData) : \Bitrix\Main\Result
        {
        }
        public static function delete(int $conferenceId) : \Bitrix\Main\Result
        {
        }
    }
}
namespace Bitrix\Socialservices\Integration\Zoom {
    class DownloadAgent
    {
        protected const MAX_ATTEMPTS = 3;
        public static function scheduleDownload(int $activityId, int $recordingId, $siteId = SITE_ID)
        {
        }
        public static function run($activityId, $recordingId, $siteId = SITE_ID, $attempt = 0)
        {
        }
        public static function attach($activityId, array $recordingFields, $siteId = SITE_ID)
        {
        }
        public static function download(string $recordingUrl, string $downloadToken, string $fileName) : \Bitrix\Main\Result
        {
        }
    }
}
namespace Bitrix\Main\Service\MicroService {
    /**
     * Class BaseSender
     */
    abstract class BaseSender
    {
        public function __construct()
        {
        }
        /**
         * @param string $action
         * @param array $parameters
         * @return Result
         * @throws ArgumentException
         */
        public function performRequest($action, array $parameters = []) : \Bitrix\Main\Result
        {
        }
        protected function createAnswer($queryResult, $response, $errors, $status)
        {
        }
        /**
         * @return array
         */
        public function getHttpClientParameters() : array
        {
        }
        protected abstract function getServiceUrl() : string;
    }
}
namespace Bitrix\SocialServices\Integration\Zoom {
    class ZoomController extends \Bitrix\Main\Service\MicroService\BaseSender
    {
        protected const DEFAULT_SERVICE_URL = "https://zoom.bitrix.info/";
        protected function getServiceUrl() : string
        {
        }
        public function registerZoomUser(array $userData) : \Bitrix\Main\Result
        {
        }
    }
    class Conference
    {
        public const MEETING_SCHEDULED_TYPE = 2;
        public const ACTIVITY_ENTITY_TYPE = 'activity';
        public const ZOOM_AUDIO_ONLY = 'audio_only';
        public static function isAvailable() : bool
        {
        }
        public static function create($userId, $data) : \Bitrix\Main\Result
        {
        }
        public static function update(int $userId, array $updateParams) : \Bitrix\Main\Result
        {
        }
        public static function delete(int $conferenceId) : \Bitrix\Main\Result
        {
        }
        private static function prepareConferenceParams(array $data) : \Bitrix\Main\Result
        {
        }
        public static function getInfo($conferenceId) : \Bitrix\Main\Result
        {
        }
        public static function setJoin(int $conferenceId) : \Bitrix\Main\Result
        {
        }
        public static function setEnd(int $conferenceId) : \Bitrix\Main\Result
        {
        }
        public static function bindActivity(array $conferenceData, int $activityId) : \Bitrix\Main\Result
        {
        }
        /**
         * @param int $conferenceId
         * @param $recordingsData
         * @param $downloadToken
         * @return Result
         * @throws \Bitrix\Main\LoaderException
         */
        public static function saveRecordings(int $conferenceId, array $recordingsData, $downloadToken) : \Bitrix\Main\Result
        {
        }
    }
}
namespace Bitrix\Main\Service\MicroService {
    class BaseReceiver extends \Bitrix\Main\Engine\Controller
    {
        protected function getDefaultPreFilters()
        {
        }
    }
}
namespace Bitrix\Socialservices\Controller {
    class ZoomUser extends \Bitrix\Main\Service\MicroService\BaseReceiver
    {
        protected $zoomSocServ;
        public function deauthorizeAction(string $socServLogin, array $payload) : void
        {
        }
    }
    class AuthFlow extends \Bitrix\Main\Engine\Controller
    {
        private const APPLE_OAUTH_URL = 'https://appleid.apple.com/auth/authorize';
        public function configureActions() : array
        {
        }
        public function signInAppleAction() : void
        {
        }
    }
}
namespace Bitrix\Socialservices\Properties {
    class Client
    {
        const SERVICE_HOST = 'https://properties.bitrix.info';
        const REST_URI = '/rest/';
        const REGISTER_URI = '/oauth/register/';
        const SCOPE = 'ps';
        const SERVICE_ACCESS_OPTION = 'properties_service_access';
        const METHOD_COMMON_GET_BY_INN = 'ps.common.getByInn';
        const METHOD_COMMON_GET_BY_OGRN = 'ps.common.getByOgrn';
        const METHOD_ORGANIZATION_SEARCH_BY_NAME = 'ps.organization.searchByName';
        const METHOD_IP_SEARCH_BY_NAME = 'ps.ip.searchByName';
        const METHOD_UA_GET_BY_EDRPOU = 'ps.ua.getByEdrpou';
        const METHOD_UA_GET_UO_BY_ID = 'ps.ua.getUoById';
        const METHOD_UA_GET_FO_BY_ID = 'ps.ua.getFoById';
        const METHOD_UA_SEARCH_UO_BY_NAME = 'ps.ua.searchUoByName';
        const METHOD_UA_SEARCH_FO_BY_NAME = 'ps.ua.searchFoByName';
        const METHOD_UA_SEARCH_BY_NAME = 'ps.ua.searchByName';
        const METHOD_IS_SERVICE_ONLINE = 'ps.common.isOnline';
        const ERROR_WRONG_INPUT = 1;
        const ERROR_WRONG_LICENSE = 2;
        const ERROR_SERVICE_UNAVAILABLE = 3;
        const ERROR_NOTHING_FOUND = 4;
        protected $httpTimeout = 5;
        protected $accessSettings = null;
        /** @var ErrorCollection */
        protected $errorCollection;
        /**
         * Constructor of the client of the properties service.
         */
        public function __construct()
        {
        }
        /**
         * Returns properties of the organization or individual businessman by its OGRN code.
         * @param string $ogrn OGRN code of the organization or individual businessman.
         * @return array|false
         */
        public function getByOgrn($ogrn, $showTerminated = false)
        {
        }
        /**
         * Returns properties of the organization or individual businessman by its INN code.
         * @param string $inn INN code of the organization or individual businessman.
         * @return array|false
         */
        public function getByInn($inn, $showTerminated = false)
        {
        }
        /**
         * Performs search of organizations by name and returns array of found organizations.
         * @param string $name Part of the organization's name.
         * @param int $limit Maximum size of returning array.
         * @param int $offset Offset of the returning array.
         * @return array|false Array of found organizations or false in case of error.
         */
        public function searchOrganizationByName($name, $limit, $offset = 0)
        {
        }
        /**
         * Performs search of individual businessmen by name and returns array of found businessmen.
         * @param string $name First name (full or partial).
         * @param string $secondName Second name (full or partial).
         * @param string $lastName Last name (full or partial).
         * @param int $limit Maximum size of returning array.
         * @param int $offset Offset of the returning array.
         * @return array|false Array of found businessmen or false in case of error.
         */
        public function searchIpByName($name, $secondName, $lastName, $limit, $offset = 0)
        {
        }
        /**
         * Returns properties of the ukrainian organization by its EDRPOU code.
         * @param string $edrpou EDRPOU code of the organization.
         * @return array|false
         */
        public function uaGetByEdrpou($edrpou)
        {
        }
        /**
         * Performs search of ukrainian organization by identifier and returns its properties.
         * @param int $id idenrifier of the organization.
         * @return array|false Properties of found organization or false in case of error.
         */
        public function uaGetUoById($id)
        {
        }
        /**
         * Performs search of ukrainian individual businessmen by identifier and returns its properties.
         * @param int $id idenrifier of the individual.
         * @return array|false Properties of found individual or false in case of error.
         */
        public function uaGetFoById($id)
        {
        }
        /**
         * Performs search of ukrainian organizations by name and returns array of found organizations.
         * @param string $name Part of the organization's name.
         * @param int $limit Maximum size of returning array.
         * @param int $offset Offset of the returning array.
         * @return array|false Array of found organizations or false in case of error.
         */
        public function uaSearchUoByName($name, $limit, $offset = 0)
        {
        }
        /**
         * Performs search of ukrainian individual businessmen by name and returns array of found individuals.
         * @param string $name Part of the individual's name.
         * @param int $limit Maximum size of returning array.
         * @param int $offset Offset of the returning array.
         * @return array|false Array of found individuals or false in case of error.
         */
        public function uaSearchFoByName($name, $limit, $offset = 0)
        {
        }
        /**
         * Performs search of ukrainian organizations and individuals by name and returns array of found
         * organizations and individuals.
         * @param string $name Part of the name.
         * @param int $limit Maximum size of returning array.
         * @param int $offset Offset of the returning array.
         * @return array|false Array of found organizations and individuals or false in case of error.
         */
        public function uaSearchByName($name, $limit, $offset = 0)
        {
        }
        /**
         * Checks service's availability.
         * @return bool Returns true if service is ready and false otherwise.
         */
        public function isServiceOnline()
        {
        }
        /**
         * Performs call to the REST method and returns decoded results of the call.
         * @param string $methodName Name of the REST method.
         * @param array $additionalParams Parameters, that should be passed to the method.
         * @param bool $licenseCheck Should client send license key as a parameter of the http request.
         * @param bool $clearAccessSettings Should client clear authorization before performing http request.
         * @return array|false
         */
        protected function call($methodName, $additionalParams = null, $licenseCheck = false, $clearAccessSettings = false)
        {
        }
        /**
         * Decodes answer of the method.
         * @param string $result Json-encoded answer.
         * @return array|bool|mixed|string Decoded answer.
         */
        protected function prepareAnswer($result)
        {
        }
        /**
         * Registers client on the properties service.
         * @return array|false Access credentials if registration was successful or false otherwise.
         */
        protected function register()
        {
        }
        /**
         * Stores access credentials.
         * @param array $params Access credentials.
         * @return void
         */
        protected static function setAccessSettings(array $params)
        {
        }
        /**
         * Reads and returns access credentials.
         * @return array|false Access credentials or false in case of errors.
         */
        protected function getAccessSettings()
        {
        }
        /**
         * Drops current stored access credentials.
         * @return void
         */
        public function clearAccessSettings()
        {
        }
        /**
         * Internal method for usage in registration process.
         * @return string URL of the host.
         */
        protected static function getRedirectUri()
        {
        }
        /**
         * Returns array of errors.
         * @return Error[] Errors.
         */
        public function getErrors()
        {
        }
        /**
         * Returns md5 hash of the license key.
         * @return string md5 hash of the license key.
         */
        protected static function getLicenseHash()
        {
        }
    }
}
namespace Bitrix\Socialservices\EncryptedToken {
    class Agent
    {
        public static function init()
        {
        }
        public static function runAgent()
        {
        }
        public static function run()
        {
        }
    }
}
namespace Bitrix\Main\ORM\Fields {
    /**
     * Interface for Entity Fields to be filtered by Query.
     * @package Bitrix\Main\ORM
     */
    interface IReadable
    {
        /**
         * Casts value strictly to field type.
         * Non-static because of field configuration (e.g. length for string or precision for float)
         *
         * @param mixed $value
         *
         * @return mixed
         */
        public function cast($value);
        /**
         * Returns value converted from SQL raw result.
         * Non-static because of dependency on Entity's Connection. Should use $this->getConnection() inside.
         *
         * @param mixed $value
         *
         * @return mixed
         */
        public function convertValueFromDb($value);
        /**
         * Returns raw SQL with escaped and quoted value.
         * Non-static because of dependency on Entity's Connection. Should use $this->getConnection() inside.
         *
         * @param mixed $value
         *
         * @return string
         */
        public function convertValueToDb($value);
    }
    /**
     * Interface for Entity Fields to be stored by DataManager.
     * @package Bitrix\Main\ORM
     */
    interface IStorable extends \Bitrix\Main\ORM\Fields\IReadable
    {
    }
    interface ITypeHintable
    {
        public function getGetterTypeHint();
        public function getSetterTypeHint();
    }
    /**
     * Base entity field class
     * @package bitrix
     * @subpackage main
     */
    abstract class Field
    {
        /** @var string */
        protected $name;
        /** @var string */
        protected $dataType;
        /** @var array */
        protected $initialParameters;
        /** @var string */
        protected $title;
        /** @var null|callback */
        protected $validation = null;
        /** @var null|callback[]|Validators\Validator[] */
        protected $validators = null;
        /** @var array|callback[]|Validators\Validator[] */
        protected $additionalValidators = array();
        /** @var null|callback */
        protected $fetchDataModification = null;
        /** @var null|callback[] */
        protected $fetchDataModifiers;
        /** @var null|callback[] */
        protected $additionalFetchDataModifiers = array();
        /** @var null|callback */
        protected $saveDataModification = null;
        /** @var null|callback[] */
        protected $saveDataModifiers;
        /** @var null|callback[] */
        protected $additionalSaveDataModifiers = array();
        /**
         * @deprecated
         * @see ArrayField
         * @var bool
         */
        protected $isSerialized = false;
        /** @var Field */
        protected $parentField;
        /** @var Entity */
        protected $entity;
        /**
         * @deprecated
         * @var array
         */
        protected static $oldDataTypes = array('float' => 'Bitrix\\Main\\ORM\\Fields\\FloatField', 'string' => 'Bitrix\\Main\\ORM\\Fields\\StringField', 'text' => 'Bitrix\\Main\\ORM\\Fields\\TextField', 'datetime' => 'Bitrix\\Main\\ORM\\Fields\\DatetimeField', 'date' => 'Bitrix\\Main\\ORM\\Fields\\DateField', 'integer' => 'Bitrix\\Main\\ORM\\Fields\\IntegerField', 'enum' => 'Bitrix\\Main\\ORM\\Fields\\EnumField', 'boolean' => 'Bitrix\\Main\\ORM\\Fields\\BooleanField');
        /**
         * @param string $name
         * @param array  $parameters deprecated, use configure* and add* methods instead
         *
         * @throws SystemException
         */
        public function __construct($name, $parameters = array())
        {
        }
        /**
         * @param Entity $entity
         *
         * @throws SystemException
         */
        public function setEntity(\Bitrix\Main\ORM\Entity $entity)
        {
        }
        public function resetEntity()
        {
        }
        public abstract function getTypeMask();
        /**
         * @param        $value
         * @param        $primary
         * @param        $row
         * @param Result $result
         *
         * @return Result
         * @throws SystemException
         */
        public function validateValue($value, $primary, $row, \Bitrix\Main\ORM\Data\Result $result)
        {
        }
        /**
         * @param $value
         * @param $data
         *
         * @return mixed
         * @throws SystemException
         */
        public function modifyValueBeforeSave($value, $data)
        {
        }
        /**
         * @return callback[]|Validators\Validator[]
         * @throws SystemException
         */
        public function getValidators()
        {
        }
        /**
         * @param Validators\Validator|callable $validator
         *
         * @return $this
         * @throws SystemException
         */
        public function addValidator($validator)
        {
        }
        /**
         * @param Validators\Validator|callable $validator
         *
         * @throws SystemException
         */
        protected function appendValidator($validator)
        {
        }
        /**
         * @return array|callback[]|null
         * @throws SystemException
         */
        public function getFetchDataModifiers()
        {
        }
        /**
         * @param \callable $modifier
         *
         * @return $this
         * @throws SystemException
         */
        public function addFetchDataModifier($modifier)
        {
        }
        /**
         * @param \callable $modifier
         *
         * @throws SystemException
         */
        protected function appendFetchDataModifier($modifier)
        {
        }
        /**
         * @return array|callback[]|null
         * @throws SystemException
         */
        public function getSaveDataModifiers()
        {
        }
        /**
         * @param \callable $modifier
         *
         * @return $this
         * @throws SystemException
         */
        public function addSaveDataModifier($modifier)
        {
        }
        /**
         * @param \callable $modifier
         *
         * @throws SystemException
         */
        protected function appendSaveDataModifier($modifier)
        {
        }
        /**
         * @return boolean
         */
        public function isSerialized()
        {
        }
        /**
         * @throws SystemException
         */
        public function setSerialized()
        {
        }
        /**
         * @deprecated
         * @return $this
         * @throws SystemException
         */
        public function configureSerialized()
        {
        }
        public function getName()
        {
        }
        public function setName($name)
        {
        }
        /**
         * Lang phrase
         *
         * @param $title
         *
         * @return $this
         */
        public function configureTitle($title)
        {
        }
        public function getTitle()
        {
        }
        public function setParameter($name, $value)
        {
        }
        public function getParameter($name)
        {
        }
        public function hasParameter($name)
        {
        }
        /**
         * @param Field $parentField
         */
        public function setParentField(\Bitrix\Main\ORM\Fields\Field $parentField)
        {
        }
        /**
         * @return Field
         */
        public function getParentField()
        {
        }
        /**
         * @deprecated
         * @return null|string
         */
        public function getDataType()
        {
        }
        /**
         * @deprecated
         * @param $class
         *
         * @return bool
         */
        public static function getOldDataTypeByClass($class)
        {
        }
        /**
         * @deprecated
         * @param Field $field
         *
         * @return bool
         */
        public static function getOldDataTypeByField(\Bitrix\Main\ORM\Fields\Field $field)
        {
        }
        /**
         * @deprecated
         * @param $dateType
         *
         * @return bool
         */
        public static function getClassByOldDataType($dateType)
        {
        }
        public function getEntity()
        {
        }
        public function getLangCode()
        {
        }
        /**
         * @return \Bitrix\Main\DB\Connection
         * @throws SystemException
         */
        public function getConnection()
        {
        }
        public function serialize($value)
        {
        }
        public function unserialize($value)
        {
        }
        /**
         * Called after being initialized by Entity
         * @return null
         */
        public function postInitialize()
        {
        }
    }
    /**
     * Scalar entity field class for non-array and non-object data types
     * @package bitrix
     * @subpackage main
     */
    abstract class ScalarField extends \Bitrix\Main\ORM\Fields\Field implements \Bitrix\Main\ORM\Fields\IStorable, \Bitrix\Main\ORM\Fields\ITypeHintable
    {
        protected $is_primary;
        protected $is_unique;
        protected $is_required;
        protected $is_autocomplete;
        /** @var boolean Permission to use in filter */
        protected $is_private;
        protected $column_name = '';
        /** @var null|callable|mixed  */
        protected $default_value;
        /**
         * ScalarField constructor.
         *
         * @param       $name
         * @param array $parameters deprecated, use configure* and add* methods instead
         *
         * @throws \Bitrix\Main\SystemException
         */
        public function __construct($name, $parameters = array())
        {
        }
        /**
         * @return int
         */
        public function getTypeMask()
        {
        }
        /**
         * @param boolean $value
         *
         * @return $this
         */
        public function configurePrimary($value = true)
        {
        }
        public function isPrimary()
        {
        }
        /**
         * @param boolean $value
         *
         * @return $this
         */
        public function configureRequired($value = true)
        {
        }
        public function isRequired()
        {
        }
        /**
         * @param boolean $value
         *
         * @return $this
         */
        public function configureUnique($value = true)
        {
        }
        public function isUnique()
        {
        }
        /**
         * @param boolean $value
         *
         * @return $this
         */
        public function configureAutocomplete($value = true)
        {
        }
        public function isAutocomplete()
        {
        }
        /**
         * @param bool $value
         *
         * @return ScalarField
         */
        public function configurePrivate($value = true)
        {
        }
        /**
         * @return bool
         */
        public function isPrivate()
        {
        }
        /**
         * @param string $value
         *
         * @return $this
         */
        public function configureColumnName($value)
        {
        }
        public function getColumnName()
        {
        }
        /**
         * @param string $column_name
         */
        public function setColumnName($column_name)
        {
        }
        /**
         * @param callable|mixed $value
         *
         * @return $this
         */
        public function configureDefaultValue($value)
        {
        }
        /**
         * @param array $row ORM data row in case of dependency value on other values
         *
         * @return callable|mixed|null
         */
        public function getDefaultValue($row = null)
        {
        }
        public function isValueEmpty($value)
        {
        }
        /**
         * @return string
         */
        public function getGetterTypeHint()
        {
        }
        /**
         * @return string
         */
        public function getSetterTypeHint()
        {
        }
    }
    /**
     * Entity field class for string data type
     * @package bitrix
     * @subpackage main
     */
    class StringField extends \Bitrix\Main\ORM\Fields\ScalarField
    {
        /**
         * Shortcut for Regexp validator
         * @var null|string
         */
        protected $format = null;
        /** @var int|null  */
        protected $size = null;
        /**
         * StringField constructor.
         *
         * @param       $name
         * @param array $parameters deprecated, use configure* and add* methods instead
         *
         * @throws \Bitrix\Main\SystemException
         */
        function __construct($name, $parameters = array())
        {
        }
        /**
         * @param $format
         *
         * @return $this
         */
        public function configureFormat($format)
        {
        }
        /**
         * Shortcut for Regexp validator
         * @return null|string
         */
        public function getFormat()
        {
        }
        /**
         * @return array|Validators\Validator[]|callback[]
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\SystemException
         */
        public function getValidators()
        {
        }
        /**
         * @param $size
         *
         * @return $this
         */
        public function configureSize($size)
        {
        }
        /**
         * Returns the size of the field in a database (in characters).
         * @return int|null
         */
        public function getSize()
        {
        }
        /**
         * @param mixed $value
         *
         * @return string
         */
        public function cast($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return string
         * @throws \Bitrix\Main\SystemException
         */
        public function convertValueFromDb($value)
        {
        }
        /**
         * @param string $value
         *
         * @return string
         * @throws \Bitrix\Main\SystemException
         */
        public function convertValueToDb($value)
        {
        }
    }
    /**
     * Entity field class for text data type
     * @package bitrix
     * @subpackage main
     */
    class TextField extends \Bitrix\Main\ORM\Fields\StringField
    {
        /**
         * @param mixed $value
         *
         * @return string
         * @throws \Bitrix\Main\SystemException
         */
        public function convertValueFromDb($value)
        {
        }
        /**
         * @param string $value
         *
         * @return string
         * @throws \Bitrix\Main\SystemException
         */
        public function convertValueToDb($value)
        {
        }
    }
    class CryptoField extends \Bitrix\Main\ORM\Fields\TextField
    {
        protected $cryptoKey;
        // we might want to use different algorithms, so single var might not be enough
        /** @var Security\Cipher */
        protected static $cipher;
        /**
         * CryptoField constructor.
         * @param string $name
         * @param array $parameters Can contain the 'crypto_key' parameter, otherwise the key is taken from .settings.php as
         *  'crypto' => array('value' =>
         *		array (
         * 			'crypto_key' => 'mysupersecretphrase',
         *	))
         * @throws \Bitrix\Main\SystemException
         */
        public function __construct($name, $parameters = array())
        {
        }
        /**
         * Checks availability of the crypto class and the crypto key.
         * @param string $key
         * @return bool
         */
        public static function cryptoAvailable($key = '')
        {
        }
        public static function getDefaultKey()
        {
        }
        public function encrypt($data)
        {
        }
        public function decrypt($data)
        {
        }
    }
}
namespace Bitrix\Socialservices\EncryptedToken {
    class CryptoField extends \Bitrix\Main\ORM\Fields\CryptoField
    {
        protected $encryptionComplete = false;
        protected $ivLength;
        public function __construct($name, $parameters = array())
        {
        }
        public static function cryptoAvailable($key = '')
        {
        }
        public function decrypt($data)
        {
        }
    }
}
namespace Bitrix\Socialservices {
    class ApClient
    {
        const SERVER_ENCODING = 'utf-8';
        const ERROR_WRONG_ANSWER = 'WRONG_ANWSER';
        const METHOD_BATCH = 'batch';
        const HTTP_SOCKET_TIMEOUT = 10;
        const HTTP_STREAM_TIMEOUT = 10;
        protected $connection = null;
        protected $errorCollection = null;
        protected static $requiredKeys = array('ENDPOINT');
        public static function init()
        {
        }
        public static function initById($connectionId)
        {
        }
        public function __construct(array $connection)
        {
        }
        public function getConnection()
        {
        }
        /**
         * Low-level function for REST method call. Returns method response including paging params and error messages.
         *
         * @param string $methodName Method name.
         * @param array|null $additionalParams Method params.
         *
         * @return bool|mixed
         *
         * @throws ArgumentException
         * @throws ArgumentNullException
         * @throws SystemException
         */
        public function call($methodName, $additionalParams = null)
        {
        }
        public function batch($actions)
        {
        }
        public function getErrorCollection()
        {
        }
        protected function getHttpClient()
        {
        }
        protected function getRequestUrl($methodName)
        {
        }
        protected function prepareRequestData($additionalParams)
        {
        }
        protected function prepareRequest($additionalParams)
        {
        }
        protected function prepareResponse($result)
        {
        }
        protected function checkConnection(array $connection)
        {
        }
    }
    /**
     * Integration with Bitrix24.Network
     * @package bitrix
     * @subpackage socialservices
     */
    class Network
    {
        const ERROR_SEARCH_STRING_TO_SHORT = 'ERROR_SEARCH_STRING_TO_SHORT';
        const ERROR_SEARCH_USER_NOT_FOUND = 'ERROR_SEARCH_USER_NOT_FOUND';
        const ERROR_REGISTER_USER = 'ERROR_REGISTER_USER';
        const ERROR_SOCSERV_TRANSPORT = 'ERROR_SOCSERV_TRANSPORT';
        const ERROR_NETWORK_IN_NOT_ENABLED = 'ERROR_NETWORK_IN_NOT_ENABLED';
        const ERROR_INCORRECT_PARAMS = 'ERROR_INCORRECT_PARAMS';
        const EXTERNAL_AUTH_ID = 'replica';
        const ADMIN_SESSION_KEY = "SS_B24NET_STATE";
        /** @var  ErrorCollection */
        public $errorCollection = null;
        protected static $lastUserStatus = null;
        function __construct()
        {
        }
        /**
         * Returns if option is turned on
         *
         * @return bool
         */
        public function isOptionEnabled()
        {
        }
        /**
         * Returns if network communication is avalable for current user
         *
         * @return boolean
         */
        public function isEnabled()
        {
        }
        /**
         * Enables network communication. Returns true on success.
         *
         * @param boolean $enable Pass true to enable and false to disable.
         *
         * @return boolean
         */
        public function setEnable($enable = true)
        {
        }
        /**
         * Searches the network for users by email or nickname.
         * Returns array on success and null on failure.
         * Check errorCollection public member for errors description.
         *
         * @param string $search Search query string.
         * @return array|null
         */
        public function searchUser($search)
        {
        }
        public static function sendMobileApplicationLink($phone, $language_id)
        {
        }
        /**
         * @param integer $networkId
         * @param string $lastSearch
         *
         * @return array|null
         */
        public function getUser($networkId, $lastSearch = '')
        {
        }
        /**
         * @param array $networkIds
         * @param string $lastSearch
         *
         * @return array|null
         */
        public function getUsers($networkIds, $lastSearch = '')
        {
        }
        /**
         * @param int $networkId
         * @param string $lastSearch
         *
         * @return integer|false
         */
        public function addUserById($networkId, $lastSearch = '')
        {
        }
        /**
         * @param array $networkIds
         * @param string $lastSearch
         *
         * @return array|boolean
         */
        public function addUsersById($networkIds, $lastSearch = '')
        {
        }
        /**
         * Add new user to b_user table.
         * Returns its identifier or false on failure.
         *
         * @param array $params
         *
         * @return integer|false
         */
        public function addUser($params)
        {
        }
        /**
         * @param integer $userId
         *
         * @return integer|null
         */
        public static function getNetworkId($userId)
        {
        }
        /**
         * @param string $networkId
         *
         * @return integer|null
         */
        public static function getUserId($networkId)
        {
        }
        /**
         * @param array $networkIds
         *
         * @return array|null
         */
        public static function getUsersId($networkIds)
        {
        }
        /**
         * @param array $params
         *
         * @return array|false
         */
        public static function formatUserParam($params)
        {
        }
        /**
         * Prepares and shows popup offerring current user to attach bitrix24.net account
         */
        public static function displayAdminPopup(array $params = array())
        {
        }
        public static function initAdminPopup(array $params = array())
        {
        }
        public static function getAuthUrl($mode = "page", $addScope = null)
        {
        }
        public static function setAdminPopupSession()
        {
        }
        public static function clearAdminPopupSession($userId)
        {
        }
        protected static function getShowOptions()
        {
        }
        public static function getAdminPopupSession()
        {
        }
        public static function setRegisterSettings($settings = array())
        {
        }
        public static function getRegisterSettings()
        {
        }
        protected static function updateRegisterSettings()
        {
        }
        public static function getLastBroadcastCheck()
        {
        }
        public static function setLastBroadcastCheck()
        {
        }
        public static function checkBroadcastData()
        {
        }
        public static function processBroadcastData($data)
        {
        }
        public static function setLastUserStatus($status)
        {
        }
        public static function getLastUserStatus()
        {
        }
    }
    class ApManager
    {
        public static function receive($userId, $connectionString)
        {
        }
        protected static function checkState()
        {
        }
        protected static function parseConnectionString($connectionString)
        {
        }
    }
}
namespace {
    class sender extends \CModule
    {
        var $MODULE_ID = "sender";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        var $errors;
        function sender()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
}
namespace Bitrix\Sender\Internals {
    /**
     * Common component for sender component classes
     * @package Bitrix\Sender\Internals
     */
    abstract class CommonSenderComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        /**
         * @var int $userId
         */
        protected $userId;
        /**
         * @var AccessController $accessController
         */
        protected $accessController;
        protected function checkRequiredParams()
        {
        }
        /**
         * Initialization of component parameters.
         * Validating access to the modify action by Permission Entity Code parameter
         *
         */
        protected function initParams()
        {
        }
        protected function canEdit()
        {
        }
        protected function printErrors()
        {
        }
        protected function checkComponentExecution()
        {
        }
        protected function getAccessController() : \Bitrix\Sender\Access\AccessController
        {
        }
        public function executeComponent()
        {
        }
        /**
         * @param string $template
         *
         * @return array|void
         */
        protected function prepareResultAndTemplate($template = "")
        {
        }
        protected abstract function prepareResult();
        public abstract function getEditAction();
        public abstract function getViewAction();
    }
}
namespace {
    class SenderTriggerChainComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        /** @var Entity\Campaign $entityCampaign */
        protected $entityCampaign;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderMailLinkEditorComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderSegmentComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderBlacklistComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderConfigLimitsComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class ConfigRoleEditSenderComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /**
         * @var RolePermissionServiceInterface;
         */
        private $permissionService;
        /**
         * @var RoleRelationServiceInterface;
         */
        private $roleRelationService;
        /**
         * @var RoleDealCategoryServiceInterface;
         */
        private $roleDealCategoryService;
        private $settings;
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        private function getDealCategories()
        {
        }
        protected function getData()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class ConfigRoleEditSenderAjaxController extends \Bitrix\Main\Engine\Controller
    {
        public function savePermissionsAction(array $userGroups, array $parameters)
        {
        }
        public function deleteRoleAction(int $roleId)
        {
        }
        /**
         *
         * @param array $parameters
         *
         * @return array
         */
        public function loadAction(array $parameters)
        {
        }
    }
    class SenderCallNumberComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderPageSliderWrapperComponent extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    class SenderStatsComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderCallTextEditorComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class ConfigRoleListSenderComponent extends \Bitrix\Sender\Internals\CommonSenderComponent implements \Bitrix\Main\Engine\Contract\Controllerable
    {
        /**
         * @var RolePermissionServiceInterface;
         */
        private $permissionService;
        /**
         * @var RoleRelationServiceInterface;
         */
        private $roleRelationService;
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        /**
         * configure access code list from database configuration
         */
        private function configureAccessCodes()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function onPrepareComponentParams($arParams)
        {
        }
        public function configureActions()
        {
        }
        public function deleteRoleAction($roleId)
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderSegmentListComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function getDataFilter()
        {
        }
        protected function getGridOrder()
        {
        }
        protected function setUiGridColumns()
        {
        }
        protected function getUiGridColumns()
        {
        }
        protected function setUiFilter()
        {
        }
        protected function setRowColumnUser(array &$data)
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderContactListComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareExport()
        {
        }
        protected function prepareResult()
        {
        }
        protected function getDataSelectedFields()
        {
        }
        protected function getDataFilter()
        {
        }
        protected function getGridOrder()
        {
        }
        protected function setUiGridColumns()
        {
        }
        protected function getUiGridColumns()
        {
        }
        protected function setUiFilter()
        {
        }
        protected function getUiFilterPresets()
        {
        }
        protected function setUiFilterPresets()
        {
        }
        protected function setRowColumnUser(array &$data)
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderYandexTolokaListComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        public function executeComponent()
        {
        }
        protected function printErrors()
        {
        }
        protected function initParams()
        {
        }
        protected function checkRequiredParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function getSenderMessages()
        {
        }
        protected function preparePost()
        {
        }
        protected function setUiFilter()
        {
        }
        protected function getFilterUserList(array $list)
        {
        }
        protected function setUiFilterPresets()
        {
        }
        protected function getUiFilterPresets()
        {
        }
        protected function setUiGridColumns()
        {
        }
        protected function getUiGridColumns()
        {
        }
        protected function getDataFilter()
        {
        }
        protected function getGridOrder()
        {
        }
        protected function setRowColumnUser(array &$data)
        {
        }
        protected function formatDate(\Bitrix\Main\Type\DateTime $dateTime = \null)
        {
        }
    }
    class SenderAdsListComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        protected function initParams()
        {
        }
        private function getEditList() : array
        {
        }
        protected function getSenderMessages()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function formatDate(\Bitrix\Main\Type\DateTime $dateTime = \null)
        {
        }
        protected function getDataFilter()
        {
        }
        protected function getGridOrder()
        {
        }
        protected function setUiGridColumns()
        {
        }
        protected function getUiGridColumns()
        {
        }
        protected function setUiFilter()
        {
        }
        protected function getFilterUserList(array $list)
        {
        }
        protected function getUiFilterPresets()
        {
        }
        protected function setUiFilterPresets()
        {
        }
        protected function setRowColumnUser(array &$data)
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderContactComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderTemplateComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderLetterComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderSegmentEditComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /**
         * @var Entity\Segment
         */
        private $entitySegment;
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        /**
         * @return void
         */
        protected function prepareExistedContacts()
        {
        }
        /**
         * @param Connector\Base[] $connectors Connectors.
         * @param array $filters Filters.
         * @return void
         */
        protected function prepareExistedConnectors($connectors, array &$filters)
        {
        }
        /**
         * @param Connector\Base[] $connectors Connectors.
         * @return void
         */
        protected function prepareAvailableConnectors($connectors)
        {
        }
        private function checkConnectorAccessDenied($connector)
        {
        }
        protected function prepareConnectorData(\Bitrix\Sender\Connector\Base $connector, $calcCount = \true)
        {
        }
        private function filterAbleDealCategories(&$filters)
        {
        }
        protected function prepareFieldValues(array $fieldValues, array $fields)
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderContactEditComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        /** @var Entity\Contact $entityContact */
        protected $entityContact;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderTolokaEditComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        /** @var Entity\Letter $letter Letter. */
        protected $letter;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function preparePostMessage()
        {
        }
        protected function preparePostSegments($include = \true)
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        public function executeComponent()
        {
        }
        public function getLocMessage($messageCode, $replace = [])
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderContactSetListComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function getDataFilter()
        {
        }
        protected function filterActionFieldsByGridColumns(array $fields)
        {
        }
        protected function getGridOrder()
        {
        }
        protected function setUiGridColumns()
        {
        }
        protected function getUiGridColumns()
        {
        }
        protected function setUiFilter()
        {
        }
        protected function getUiFilterPresets()
        {
        }
        protected function setUiFilterPresets()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderTriggerComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderMessageEditorMailComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderTemplateListComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function getDataFilter()
        {
        }
        protected function getGridOrder()
        {
        }
        protected function setUiGridColumns()
        {
        }
        protected function getUiGridColumns()
        {
        }
        protected function setUiFilter()
        {
        }
        protected function setRowColumnUser(array &$data)
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderCampaignStatComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class ContactRecipientSenderComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        /** @var  Entity\Letter $letter */
        protected $letter;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareExport()
        {
        }
        protected function prepareResult()
        {
        }
        protected function getDataSelectedFields()
        {
        }
        protected function getDataFilter()
        {
        }
        protected function getGridOrder()
        {
        }
        protected function setUiGridColumns()
        {
        }
        protected function getUiGridColumns()
        {
        }
        protected function setUiFilter()
        {
        }
        protected function getUiFilterPresets()
        {
        }
        protected function setUiFilterPresets()
        {
        }
        protected function setRowColumnUser(array &$data)
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderUiPanelTitle extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors Errors. */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderCampaignEditComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        /** @var Entity\Campaign $entityCampaign */
        protected $entityCampaign;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function getCampaignSites()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderTemplateEditComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        /** @var Entity\Template $entityTemplate */
        protected $entityTemplate;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderContactSetSelectorComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderAdsComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderCampaignComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderStartComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors Errors. */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function getSenderMessageIcon(\Bitrix\Sender\Message\Adapter $message)
        {
        }
        protected function getSenderMessages(array $messages)
        {
        }
        private function filterMessages($messages, $map) : array
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderTemplateSelectorComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderUiButtonPanel extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors Errors. */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderUiTileSelectorComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderMessageEditorComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderYandexTolokaComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderCampaignSelectorComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderCampaignListComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function getDataFilter()
        {
        }
        protected function getGridOrder()
        {
        }
        protected function setUiGridColumns()
        {
        }
        protected function getUiGridColumns()
        {
        }
        protected function setUiFilter()
        {
        }
        protected function setRowColumnUser(array &$data)
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderSmsSenderComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderUiUserSelectorComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderLetterTimeComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected $user_errors = [];
        /** @var Entity\Letter $letter */
        protected $letter;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getMessage($messageCode, $replace = [])
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderLetterEditComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        /** @var Entity\Letter $letter Letter. */
        protected $letter;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function preparePostMessage()
        {
        }
        protected function preparePostSegments($include = \true)
        {
        }
        protected function canSaveAsTemplate()
        {
        }
        protected function preparePostSaveAsTemplate()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function prepareDefaultSegments()
        {
        }
        protected function initTemplates()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getLocMessage($messageCode, $replace = [])
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class RcListSenderComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        protected function initParams()
        {
        }
        protected function getSenderMessages()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function formatDate(\Bitrix\Main\Type\DateTime $dateTime = \null)
        {
        }
        protected function getDataFilter()
        {
        }
        protected function addOptionsFilter(&$selectParameters)
        {
        }
        protected function getGridOrder()
        {
        }
        protected function setUiGridColumns()
        {
        }
        protected function getUiGridColumns()
        {
        }
        protected function setUiFilter()
        {
        }
        protected function getFilterUserList(array $list)
        {
        }
        protected function getUiFilterPresets()
        {
        }
        protected function setUiFilterPresets()
        {
        }
        protected function setRowColumnUser(array &$data)
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderTriggerListComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function getDataFilter()
        {
        }
        protected function getGridOrder()
        {
        }
        protected function setUiGridColumns()
        {
        }
        protected function getUiGridColumns()
        {
        }
        protected function setUiFilter()
        {
        }
        protected function setRowColumnUser(array &$data)
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderUiMailboxSelectorComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        public function getUserInfo($userId)
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderConnectorResultListComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function getDataTypeId()
        {
        }
        protected function getDataFilter()
        {
        }
        protected function getGridOrder()
        {
        }
        protected function setUiGridColumns()
        {
        }
        protected function getUiGridColumns()
        {
        }
        protected function setUiFilter()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderLetterStatComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderBlackListListComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareExport()
        {
        }
        protected function prepareResult()
        {
        }
        protected function getDataSelectedFields()
        {
        }
        protected function getDataFilter()
        {
        }
        protected function getGridOrder()
        {
        }
        protected function setUiGridColumns()
        {
        }
        protected function getUiGridColumns()
        {
        }
        protected function setUiFilter()
        {
        }
        protected function setRowColumnUser(array &$data)
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderTriggerStatComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function getTriggerStat()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderImMessageEditorComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderLetterListComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function getSenderMessages()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function formatDate(\Bitrix\Main\Type\DateTime $dateTime = \null)
        {
        }
        protected function getDataFilter()
        {
        }
        protected function getGridOrder()
        {
        }
        protected function setUiGridColumns()
        {
        }
        protected function getUiGridColumns()
        {
        }
        protected function setUiFilter()
        {
        }
        protected function getFilterUserList(array $list)
        {
        }
        protected function getUiFilterPresets()
        {
        }
        protected function setUiFilterPresets()
        {
        }
        protected function setRowColumnUser(array &$data)
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        protected function getExportGridColumns()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderMessageAudioComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function printErrors()
        {
        }
        public function onPrepareComponentParams($arParams)
        {
        }
        protected function getAudioFileData($json)
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderTriggerEditComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        /** @var Entity\TriggerCampaign $entityCampaign */
        protected $entityCampaign;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function setCampaignTriggers()
        {
        }
        protected function getCampaignSites()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class SenderRcComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        public function getViewAction()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
    }
    class SenderSegmentSelectorComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
    class ConfigRoleSenderComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        protected function initParams()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
        protected function prepareResult()
        {
        }
    }
    class SenderSmsTextEditorComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderMessageTestComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function prepareRecipients(array $codes)
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderContactImportComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        /** @var Entity\Template $entityTemplate */
        protected $entityTemplate;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class SenderAbuseListComponent extends \Bitrix\Sender\Internals\CommonSenderComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function getDataFilter()
        {
        }
        protected function getGridOrder()
        {
        }
        protected function setUiGridColumns()
        {
        }
        protected function getUiGridColumns()
        {
        }
        protected function setUiFilter()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getEditAction()
        {
        }
        public function getViewAction()
        {
        }
    }
}
namespace Bitrix\Sender {
    /**
     * Class PostingManager
     * @package Bitrix\Sender
     */
    class PostingManager
    {
        const SEND_RESULT_ERROR = false;
        const SEND_RESULT_SENT = true;
        const SEND_RESULT_CONTINUE = 'CONTINUE';
        public static $threadId;
        /** @var int $checkStatusStep */
        protected static $checkStatusStep = 20;
        /** @var int $emailSentPerIteration */
        protected static $emailSentPerIteration = 0;
        /**
         * Handler of read event.
         *
         * @param array $data Data.
         *
         * @return array
         */
        public static function onMailEventMailRead(array $data)
        {
        }
        /**
         * Do read actions.
         *
         * @param integer $recipientId Recipient ID.
         *
         * @return void
         */
        public static function read($recipientId)
        {
        }
        /**
         * Handler of click event.
         *
         * @param array $data Data.
         *
         * @return array
         */
        public static function onMailEventMailClick(array $data)
        {
        }
        /**
         * Do click actions.
         *
         * @param integer $recipientId Recipient ID.
         * @param string $url Url.
         *
         * @return void
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function click($recipientId, $url)
        {
        }
        /**
         * Get chain list for resending.
         *
         * @param integer $mailingId Mailing ID.
         *
         * @return array|null
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getChainReSend($mailingId)
        {
        }
        /**
         * Send letter by message from posting to address.
         *
         * @param integer $mailingChainId Chain ID.
         * @param string $address Address.
         *
         * @return bool
         * @throws \Bitrix\Main\DB\Exception
         */
        public static function sendToAddress($mailingChainId, $address)
        {
        }
        /**
         * Send posting.
         *
         * @param integer $id Posting ID.
         * @param int $timeout Timeout.
         * @param int $maxMailCount Max mail count.
         *
         * @param bool|int $threadId
         *
         * @return bool|string
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\DB\Exception
         */
        public static function send($id, $timeout = 0, $maxMailCount = 0, $threadId = false)
        {
        }
        /**
         * Lock posting for preventing double sending.
         *
         * @param integer $id ID.
         * @param $threadId
         *
         * @return bool
         * @throws \Bitrix\Main\Db\SqlQueryException
         * @throws \Bitrix\Main\SystemException
         * @deprecated
         * @use \Bitrix\Sender\Posting\Sender::lock
         */
        public static function lockPosting($id, $threadId)
        {
        }
        /**
         * UnLock posting that was locking for preventing double sending.
         *
         * @param integer $id ID.
         * @param $threadId
         *
         * @return bool
         * @throws \Bitrix\Main\Db\SqlQueryException
         * @throws \Bitrix\Main\SystemException
         * @deprecated
         * @use \Bitrix\Sender\Posting\Sender::unlock
         */
        public static function unlockPosting($id, $threadId)
        {
        }
    }
    class Subscription
    {
        const MODULE_ID = 'sender';
        /**
         * Return link to unsubsribe page for subscriber
         *
         * @param array $fields
         * @return string
         */
        public static function getLinkUnsub(array $fields)
        {
        }
        /**
         * Return link to confirmation subscription page for subscriber.
         *
         * @param array $fields Fields.
         * @return string
         */
        public static function getLinkSub(array $fields)
        {
        }
        /**
         * Event handler.
         *
         * @param array $data Data.
         * @return mixed
         */
        public static function onMailEventSubscriptionList($data)
        {
        }
        protected static function getSubscriptions($data)
        {
        }
        /**
         * Event handler.
         *
         * @param array $data Data.
         * @return EventResult
         */
        public static function onMailEventSubscriptionEnable($data)
        {
        }
        /**
         * Event handler.
         *
         * @param array $data Data.
         * @return EventResult
         */
        public static function onMailEventSubscriptionDisable($data)
        {
        }
        protected static function unsubscribeRecipient($data)
        {
        }
        /**
         * Return list of subscriptions on mailings for subscriber.
         *
         * @param array $data Data.
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @deprecated
         */
        public static function getList($data)
        {
        }
        /**
         * Subscribe email for mailings.
         *
         * @param array $data Data.
         * @return bool
         */
        public static function subscribe(array $data)
        {
        }
        /**
         * Unsubscribe email from mailing.
         *
         * @param array $data Data.
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @deprecated
         */
        public static function unsubscribe($data)
        {
        }
        /**
         * Subscribe email for mailings and returns subscription id.
         *
         * @param string $code Code.
         * @param array $mailingIdList Mailing list.
         * @return integer|null
         */
        public static function add($code, array $mailingIdList)
        {
        }
        /**
         * Get mailing list allowed for subscription.
         *
         * @param array $params Parameters.
         * @return array
         */
        public static function getMailingList($params)
        {
        }
        /**
         * Send email with link for confirmation of subscription.
         *
         * @param string $email Email.
         * @param array $mailingIdList Mailing List.
         * @param string $siteId Site ID.
         * @return void
         */
        public static function sendEventConfirm($email, array $mailingIdList, $siteId)
        {
        }
        /**
         * Return true if email address was unsubscribed.
         *
         * @param int $mailingId Campaign ID.
         * @param string $code Recipient code.
         * @param int $typeId Recipient type ID.
         * @return bool
         */
        public static function isUnsubscibed($mailingId, $code, $typeId = \Bitrix\Sender\Recipient\Type::EMAIL)
        {
        }
    }
}
namespace Bitrix\Main\UI {
    /**
     * Class PageNavigation
     *
     * This class helps to calculate limits for DB queries and other data sources
     * to organize page navigation through results.
     *
     * Examples of supported URLs:
     * /page.php?nav-cars=page-5&nav-books=page-2&other=params
     * /page.php?nav-cars=page-5-size-20&nav-books=page-2
     * /page.php?nav-cars=page-all&nav-books=page-2
     * /page/nav-cars/page-2/size-20/something/
     * /page/nav-cars/page-all/something/?other=params
     * /page/nav-cars/page-5/nav-books/page-2/size-10
     */
    class PageNavigation
    {
        protected $id;
        protected $pageSizes = array();
        protected $pageSize = 20;
        protected $recordCount;
        protected $currentPage;
        protected $allowAll = false;
        protected $allRecords = false;
        /**
         * @param string $id Navigation identity like "nav-cars".
         */
        public function __construct($id)
        {
        }
        /**
         * Initializes the navigation from URI.
         */
        public function initFromUri()
        {
        }
        /**
         * Returns number of pages or 0 if recordCount is not set.
         * @return int
         */
        public function getPageCount()
        {
        }
        /**
         * @param int $n Page size.
         * @return $this
         */
        public function setPageSize($n)
        {
        }
        /**
         * @param int $n The current page number.
         * @return $this
         */
        public function setCurrentPage($n)
        {
        }
        /**
         * Returns the current page number.
         * @return int
         */
        public function getCurrentPage()
        {
        }
        /**
         * @param bool $mode Allows to show all records, yes or no.
         * @return $this
         */
        public function allowAllRecords($mode)
        {
        }
        /**
         * @param int $n Number of records (to calculate number of pages).
         * @return $this
         */
        public function setRecordCount($n)
        {
        }
        /**
         * Returns number of records.
         * @return int|null
         */
        public function getRecordCount()
        {
        }
        /**
         * This controls which sizes are available via user interface.
         * @param array $sizes Array of integers.
         * @return $this
         */
        public function setPageSizes(array $sizes)
        {
        }
        /**
         * Returns allowed page sizes.
         * @return array
         */
        public function getPageSizes()
        {
        }
        /**
         * Returns "formal" page size.
         * @return int
         */
        public function getPageSize()
        {
        }
        /**
         * Returns navigation ID.
         * @return string
         */
        public function getId()
        {
        }
        /**
         * Returns offset of the first record of the current page.
         * @return int
         */
        public function getOffset()
        {
        }
        /**
         * Returns the number of records in the current page.
         * @return int
         */
        public function getLimit()
        {
        }
        /**
         * Returns true if all the records are shown in one page.
         * @return bool
         */
        public function allRecordsShown()
        {
        }
        /**
         * Returns true if showing all records is allowed.
         * @return bool
         */
        public function allRecordsAllowed()
        {
        }
        /**
         * Returns an URI with navigation parameters compatible with initFromUri().
         * @param Web\Uri $uri
         * @param bool $sef SEF mode.
         * @param string $page Page number.
         * @param string $size Page size.
         * @return Web\Uri
         */
        public function addParams(\Bitrix\Main\Web\Uri $uri, $sef, $page, $size = null)
        {
        }
        /**
         * Clears an URI from navigation parameters and returns it.
         * @param Web\Uri $uri
         * @param bool $sef SEF mode.
         * @return Web\Uri
         */
        public function clearParams(\Bitrix\Main\Web\Uri $uri, $sef)
        {
        }
    }
}
namespace Bitrix\Sender\UI {
    /**
     * Class PageNavigation
     * @package Bitrix\Sender\UI
     */
    class PageNavigation extends \Bitrix\Main\UI\PageNavigation
    {
        protected $sessionKeyName = 'sender_page_navigation';
        /**
         * Reset session variable.
         *
         * @return void
         */
        public function resetSessionVar()
        {
        }
        protected function setSessionVar($page = 1, $allRecords = false)
        {
        }
        protected function getSessionVar()
        {
        }
        /**
         * Init from uri.
         */
        public function initFromUri()
        {
        }
    }
    /**
     * Class TileView
     * @package Bitrix\Sender\UI
     */
    class TileView
    {
        const MAX_COUNT = 4;
        const COLOR_GREY = '#eef2f4';
        const SECTION_ALL = 'all';
        const SECTION_LAST = 'last';
        const SECTION_FREQ = 'freq';
        const SECTION_SYS = 'system';
        const SECTION_MY = 'my';
        /** @var array $tiles List of tiles. */
        protected $tiles = [];
        /** @var array $sections List of sections. */
        protected $sections = [];
        /**
         * Create instance.
         *
         * @return static
         */
        public static function create()
        {
        }
        /**
         * Constructor.
         */
        public function __construct()
        {
        }
        /**
         * Add tile.
         *
         * @param string|null $id ID.
         * @param string $name Name.
         * @param array $data Data.
         * @param string $bgColor Background color.
         * @param string $color Color.
         *
         * @return $this
         */
        public function addTile($id = null, $name, $data = [], $bgColor = null, $color = null)
        {
        }
        /**
         * Get tile.
         *
         * @param string|null $id ID.
         * @param string $name Name.
         * @param array $data Data.
         * @param string $bgColor Background color.
         * @param string $color Color.
         *
         * @return array
         */
        public function getTile($id = null, $name, $data = [], $bgColor = null, $color = null)
        {
        }
        /**
         * Get tiles.
         *
         * @return array
         */
        public function getTiles()
        {
        }
        /**
         * Remove tiles.
         *
         * @return $this
         */
        public function removeTiles()
        {
        }
        /**
         * Add section.
         *
         * @param string $id ID.
         * @param string $name Name.
         *
         * @return $this
         */
        public function addSection($id, $name = null)
        {
        }
        /**
         * Get sections.
         *
         * @return array
         */
        public function getSections()
        {
        }
        /**
         * Remove sections.
         *
         * @return $this
         */
        public function removeSections()
        {
        }
        /**
         * Get data for view.
         *
         * @return array
         */
        public function get()
        {
        }
        protected static function prepareTileForSorting(&$tile, $section)
        {
        }
        protected static function sortTiles(&$list)
        {
        }
    }
}
namespace Bitrix\Sender {
    class ContactListTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get table name.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Add if not exist.
         *
         * @param integer $contactId Contact ID.
         * @param integer $listId List ID.
         * @return bool
         */
        public static function addIfNotExist($contactId, $listId)
        {
        }
    }
    class MailingTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for DESCRIPTION field.
         *
         * @return array
         */
        public static function validateDescription()
        {
        }
        /**
         * @param Entity\Event $event
         * @return Entity\EventResult
         */
        public static function onAfterUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * @param Entity\Event $event
         * @return Entity\EventResult
         */
        public static function onAfterDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        /*
         *
         * @return \Bitrix\Main\DB\Result
         * */
        public static function getPresetMailingList(array $params = null)
        {
        }
        public static function checkFieldsChain(\Bitrix\Main\Entity\Result $result, $primary = null, array $fields)
        {
        }
        public static function updateChain($id, array $fields)
        {
        }
        public static function getChain($id)
        {
        }
        public static function updateChainTrigger($id)
        {
        }
        public static function setWasRunForOldData($id, $state)
        {
        }
        public static function getPersonalizeList($id)
        {
        }
        public static function getChainPersonalizeList($id)
        {
        }
        public static function getMailingSiteId($mailingId)
        {
        }
    }
    class MailingGroupTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
    }
    class MailingSubscriptionTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Get subscription list
         *
         * @param array $parameters
         * @return \Bitrix\Main\DB\Result
         */
        public static function getSubscriptionList(array $parameters = array())
        {
        }
        /**
         * Get un subscription list
         *
         * @param array $parameters
         * @return \Bitrix\Main\DB\Result
         */
        public static function getUnSubscriptionList(array $parameters = array())
        {
        }
        /**
         * Ad subscription row
         *
         * @param array $parameters
         * @return bool
         */
        public static function addSubscription(array $parameters = array())
        {
        }
        /**
         * Ad subscription row.
         *
         * @param array $parameters
         * @return bool
         */
        public static function addUnSubscription(array $parameters = array())
        {
        }
    }
}
namespace Bitrix\Sender\Trigger {
    class Settings
    {
        protected $endpoint = array('MODULE_ID' => '', 'CODE' => '');
        protected $fields = array();
        protected $eventOccur = true;
        protected $preventEmail = false;
        protected $intervalValue = 0;
        protected $intervalType = 'M';
        protected $typeStart = true;
        protected $isClosedTrigger = false;
        protected $runForOldData = false;
        protected $wasRunForOldData = false;
        protected $closedTriggerTime = '';
        protected $closedTriggerInterval = 0;
        protected $eventModuleId = '';
        protected $eventType = '';
        /*
        		array(
        			'MODULE_ID' => '',
        			'CODE' => 'order_cancel',
        			'FIELDS' => array(
        				'BASKET_PRODUCT_ID' => 99
        			),
        			'IS_TYPE_START' => true,
        			'IS_PREVENT_EMAIL' => true,
        			'IS_EVENT_OCCUR' => true,
        			'SEND_INTERVAL_UNIT' => 'M',
        			'SEND_INTERVAL' => 0,
        			'IS_CLOSED_TRIGGER' => false,
        			'CLOSED_TRIGGER_INTERVAL' => 0,
        			'CLOSED_TRIGGER_TIME' => '',
        			'RUN_FOR_OLD_DATA' => '',
        			'WAS_RUN_FOR_OLD_DATA' => '',
        		)
        */
        public function __construct(array $settings = null)
        {
        }
        public static function getArrayFromTrigger(\Bitrix\Sender\Trigger\Base $trigger)
        {
        }
        public function getArray()
        {
        }
        /**
         * @return string
         */
        public function getTriggerId()
        {
        }
        /**
         * @param mixed $key
         * @return mixed
         */
        public function getEndpoint($key = null)
        {
        }
        /**
         * @param string $code
         * @param string $moduleId
         */
        public function setEndpoint($code, $moduleId)
        {
        }
        /**
         * @return array
         */
        public function getFields()
        {
        }
        /**
         * @param array $fields
         */
        public function setFields($fields)
        {
        }
        /**
         * @param bool $state
         * @return void
         */
        public function setTypeStart($state)
        {
        }
        /**
         * @return bool
         */
        public function isTypeStart()
        {
        }
        /**
         * @param bool $state
         * @return void
         */
        public function setEventOccur($state)
        {
        }
        /**
         * @return bool
         */
        public function isEventOccur()
        {
        }
        /**
         * @return bool
         */
        public function isPreventEmail()
        {
        }
        /**
         * @param boolean $state
         * @return void
         */
        public function setPreventEmail($state)
        {
        }
        /**
         * @return bool
         */
        public function isClosedTrigger()
        {
        }
        /**
         * @param boolean $state
         * @return void
         */
        public function setClosedTrigger($state)
        {
        }
        /**
         * @return bool
         */
        public function getClosedTriggerTime()
        {
        }
        /**
         * @param string $time
         */
        public function setClosedTriggerTime($time)
        {
        }
        /**
         * @return bool
         */
        public function getClosedTriggerInterval()
        {
        }
        /**
         * @param int $interval Interval.
         */
        public function setClosedTriggerInterval($interval)
        {
        }
        /**
         * @param bool $state
         * @return void
         */
        public function setRunForOldData($state)
        {
        }
        /**
         * @return bool
         */
        public function canRunForOldData()
        {
        }
        /**
         * @param bool $state
         * @return void
         */
        public function setWasRunForOldData($state)
        {
        }
        /**
         * @return bool
         */
        public function wasRunForOldData()
        {
        }
        /**
         * @param string $moduleId Module ID.
         * @return void
         */
        public function setEventModuleId($moduleId)
        {
        }
        /**
         * @return string
         */
        public function getEventModuleId()
        {
        }
        /**
         * @param string $eventType Event type.
         * @return void
         */
        public function setEventType($eventType)
        {
        }
        /**
         * @return string
         */
        public function getEventType()
        {
        }
        /**
         * @return string
         */
        public function getFullEventType()
        {
        }
        /**
         * @param int $value
         * @param string $type
         */
        public function setInterval($value = 0, $type = 'H')
        {
        }
        /**
         * @return int
         */
        public function getInterval()
        {
        }
        /**
         * @return mixed
         */
        public function getIntervalValue()
        {
        }
        /**
         * @return mixed
         */
        public function getIntervalType()
        {
        }
        /**
         * @param int $intervalValue
         */
        public function setIntervalValue($intervalValue)
        {
        }
        /**
         * @param string $intervalType
         */
        public function setIntervalType($intervalType)
        {
        }
    }
    abstract class Base
    {
        protected $fieldPrefix;
        protected $fieldValues;
        protected $fieldFormName;
        protected $moduleId;
        protected $siteId;
        protected $fields;
        protected $params;
        protected $isRunForOldData = false;
        protected $recipient;
        /**
         * @param string $moduleId
         * @return void
         */
        public function setModuleId($moduleId)
        {
        }
        /**
         * @return mixed
         */
        public function getModuleId()
        {
        }
        /**
         * @param string $siteId
         * @return void
         */
        public function setSiteId($siteId)
        {
        }
        /**
         * @return string
         */
        public function getSiteId()
        {
        }
        /**
         * @return string
         */
        public function getId()
        {
        }
        /**
         * @return bool
         */
        public function requireConfigure()
        {
        }
        /**
         * @return bool
         */
        public static function isClosed()
        {
        }
        /**
         * @return bool
         */
        public static function canBeTarget()
        {
        }
        /**
         * @return bool
         */
        public static function canRunForOldData()
        {
        }
        /**
         * @param bool $isRunForOldData
         */
        public function setRunForOldData($isRunForOldData)
        {
        }
        /**
         * @return bool
         */
        public function isRunForOldData()
        {
        }
        /**
         * @param array $fieldValues
         * @return void
         */
        public function setFields(array $fieldValues = null)
        {
        }
        /**
         * @return array
         */
        public function getFields()
        {
        }
        /**
         * @param string $name
         * @param mixed|null $defaultValue
         * @return mixed|null
         */
        public function getFieldValue($name, $defaultValue = null)
        {
        }
        /**
         * @param array $fieldValues
         * @return void
         */
        public function setParams(array $fieldValues = null)
        {
        }
        /**
         * @return array
         */
        public function getParams()
        {
        }
        /**
         * @param string $name
         * @param mixed|null $defaultValue
         * @return mixed
         */
        public function getParam($name, $defaultValue = null)
        {
        }
        /**
         * @param string $fieldFormName
         * @return void
         */
        public function setFieldFormName($fieldFormName)
        {
        }
        /**
         * @return string
         */
        public function getFieldFormName()
        {
        }
        /**
         * @param string $fieldPrefix
         * @return void
         */
        public function setFieldPrefix($fieldPrefix)
        {
        }
        /**
         * @return string
         */
        public function getFieldPrefix()
        {
        }
        /**
         * @param $id
         * @return string
         */
        public function getFieldId($id)
        {
        }
        /**
         * @param $name
         * @return string
         */
        public function getFieldName($name)
        {
        }
        /**
         * @return string
         */
        public function getFullEventType()
        {
        }
        /** @return array */
        public function getMailEventToPrevent()
        {
        }
        /** @return bool */
        public function filter()
        {
        }
        /**
         * @return string
         */
        public function getForm()
        {
        }
        /**
         * @return Connector\Result
         */
        public function getRecipientResult()
        {
        }
        /**
         * @return array
         */
        public function getPersonalizeFields()
        {
        }
        /**
         * @return array
         */
        public static function getPersonalizeList()
        {
        }
        /**
         * @return string
         */
        public abstract function getName();
        /**
         * @return string
         */
        public abstract function getCode();
        /**
         * @return string
         */
        public abstract function getEventModuleId();
        /**
         * @return string
         */
        public abstract function getEventType();
        /**
         * @return array|\Bitrix\Main\DB\Result|\CAllDBResult
         */
        public abstract function getRecipient();
    }
    abstract class TriggerConnector extends \Bitrix\Sender\Trigger\Base
    {
        /** @var Connector\Base $connector */
        public $connector;
        /** @return string */
        protected final function getConnectorForm()
        {
        }
        /** @return bool */
        protected final function filterConnectorData()
        {
        }
        /** @return string */
        public function getForm()
        {
        }
        /** @return bool */
        public function filter()
        {
        }
        /** @return mixed */
        public function getRecipient()
        {
        }
        /** @return array */
        public function getProxyFieldsFromEventToConnector()
        {
        }
        /**
         * @return Connector\Result
         */
        public function getRecipientResult()
        {
        }
        /**
         * return filled array('MODULE_ID' => '', 'CODE' => '') that describes connector
         * or return object \Bitrix\Sender\Connector
         *
         * @return array|Connector\Base
         */
        public function getConnector()
        {
        }
    }
    class Manager
    {
        public static $debug = false;
        public static $postingId = null;
        /**
         * @param mixed
         * @return void
         */
        public static function handleEvent()
        {
        }
        /**
         * @param array $params
         * @return void
         */
        protected static function processEvent($params)
        {
        }
        /**
         * @param array $chain
         * @param array $data
         * @param bool $setGoal
         * @return void
         */
        protected static function stop($chain, $data, $setGoal)
        {
        }
        /**
         * @param array $chain
         * @return void
         */
        protected static function send($chain)
        {
        }
        /**
         * @param array $emailEvent
         * @return void
         */
        protected static function preventMailEvent(array $emailEvent)
        {
        }
        /**
         * @param array $chain
         * @param Settings $settings
         * @param array $data
         * @return void
         */
        protected static function addRecipient($chain, $settings, $data)
        {
        }
        /**
         * @param bool $activate
         * @return void
         */
        public static function activateAllHandlers($activate = true)
        {
        }
        /**
         * @param array $params
         * @param bool $activate
         * @return void
         */
        public static function actualizeHandler(array $params, $activate = null)
        {
        }
        /**
         * @param array $endpointList
         * @return array
         */
        public static function getFieldsFromEndpoint(array $endpointList)
        {
        }
        /**
         * @param array $fields
         * @return array|null
         */
        public static function getEndpointFromFields(array $fields)
        {
        }
        /**
         * Return array of instances of connector by endpoints array.
         *
         * @param array
         * @return Base[]
         */
        public static function getList(array $endpointList = null)
        {
        }
        /**
         * Return instance of trigger by endpoint array.
         *
         * @param array
         * @return Base|null
         */
        public static function getOnce(array $endpoint)
        {
        }
        /**
         * Return array of triggers information by endpoints array.
         *
         * @param array $endpointList
         * @return array
         */
        public static function getClassList(array $endpointList = null)
        {
        }
        /**
         * @param array $a
         * @param array $b
         * @return int
         */
        public static function sort($a, $b)
        {
        }
        /**
         * @param string $mess
         * @return void
         */
        public static function debug($mess)
        {
        }
        /**
         * @param string $moduleId
         * @param string $eventType
         * @param int $chainId
         * @return string
         */
        public static function getClosedEventAgentName($moduleId, $eventType, $chainId)
        {
        }
        /**
         * @param string $moduleId
         * @param string $eventType
         * @param int $chainId
         * @return string
         */
        public static function fireClosedEventAgent($moduleId, $eventType, $chainId)
        {
        }
        /**
         * @param bool $activate
         * @return void
         */
        public static function actualizeHandlerForChild($activate = null)
        {
        }
        /**
         * @param Event $event
         * @return void
         */
        public static function onAfterMailingChainSend(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param \Bitrix\Main\Event $event
         * @return void
         */
        public static function onAfterPostingSendRecipient(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param array $data
         * @return void
         */
        public static function onAfterRecipientUnsub($data)
        {
        }
        /**
         * @param array $data
         * @return array
         */
        public static function onTriggerList($data)
        {
        }
    }
    abstract class TriggerConnectorClosed extends \Bitrix\Sender\Trigger\TriggerConnector
    {
        /** @return bool */
        public static final function isClosed()
        {
        }
        /**
         * @return string
         */
        public final function getEventModuleId()
        {
        }
        /**
         * @return string
         */
        public final function getEventType()
        {
        }
        /** @return array */
        public final function getProxyFieldsFromEventToConnector()
        {
        }
    }
}
namespace Bitrix\Sender\Internals {
    /**
     * Class CodeBasedFactory
     * @package Bitrix\Sender\Internals
     */
    abstract class CodeBasedFactory
    {
        protected static $instances = array();
        protected static $classNames = array();
        public static function reset()
        {
        }
        protected static function getClasses()
        {
        }
        protected static function getObjectInstance($interface, $code)
        {
        }
        protected static function getObjectInstances($interface)
        {
        }
        protected static function getObjectClassList($interface)
        {
        }
    }
}
namespace Bitrix\Sender\Transport {
    /**
     * Class Factory
     * @package Bitrix\Sender\Transport
     */
    class Factory extends \Bitrix\Sender\Internals\CodeBasedFactory
    {
        /**
         * Get transport instances.
         *
         * @return iBase[]
         */
        public static function getTransports()
        {
        }
        /**
         * Get transport instance by code.
         *
         * @param string $code Transport code.
         *
         * @return null|iBase
         */
        public static function getTransport($code)
        {
        }
        protected static function getInterface()
        {
        }
        protected static function getClasses()
        {
        }
    }
    /**
     * Interface iLimitable
     * @package Bitrix\Sender\Transport
     */
    interface iLimitation
    {
        /**
         * Get limiters.
         *
         * @param Message\iBase $message Message.
         * @return iLimiter[]
         */
        public function getLimiters(\Bitrix\Sender\Message\iBase $message = null);
    }
    /**
     * Interface iTransportDuration
     * @package Bitrix\Sender\Transport
     */
    interface iDuration
    {
        /**
         * Get send duration in seconds.
         *
         * @param Message\Adapter|null $message Message.
         *
         * @return float
         */
        public function getDuration(\Bitrix\Sender\Message\Adapter $message = null);
    }
    /**
     * Interface iBase
     * @package Bitrix\Sender\Transport
     */
    interface iBase
    {
        const CODE_MAIL = 'mail';
        const CODE_WEB_HOOK = 'web_hook';
        const CODE_SMS = 'sms';
        const CODE_IM = 'im';
        const CODE_CALL = 'call';
        const CODE_AUDIO_CALL = 'audio_call';
        const CODE_UNDEFINED = '';
        const EVENT_NAME = 'onSenderTransportList';
        /**
         * Get name.
         *
         * @return string
         */
        public function getName();
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode();
        /**
         * Get supported recipient types.
         *
         * @return array
         */
        public function getSupportedRecipientTypes();
        /**
         * Load configuration.
         *
         * @return Message\Configuration
         */
        public function loadConfiguration();
        /**
         * Save configuration.
         *
         * @param Message\Configuration $configuration Configuration.
         * @return void
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration);
        /**
         * Start.
         * @return void
         */
        public function start();
        /**
         * Send message.
         *
         * @param Message\Adapter $message Message.
         *
         * @return bool
         */
        public function send(\Bitrix\Sender\Message\Adapter $message);
        /**
         * End.
         * @return void
         */
        public function end();
    }
    /**
     * Class Transport
     * @package Bitrix\Sender\Transport
     */
    class Adapter implements \Bitrix\Sender\Transport\iBase, \Bitrix\Sender\Transport\iLimitation
    {
        /** @var  iBase $transport Transport. */
        protected $transport;
        /** @var  Adapter[] $list List. */
        protected static $list;
        /** @var  boolean $startResult Start result. */
        protected $startResult = null;
        /** @var  boolean $isStarted Is started. */
        protected $isStarted = false;
        /** @var  boolean $isEnded Is ended. */
        protected $isEnded = false;
        /** @var  iLimiter[] $limiters Limiters. */
        protected $limiters = null;
        /** @var  integer $sendCount Count of send. */
        protected $sendCount = 0;
        /**
         * Get instance.
         *
         * @param string $code Code.
         *
         * @return Adapter
         */
        public static function getInstance($code)
        {
        }
        /**
         * Create.
         *
         * @param string $code Code.
         * @return static
         * @throws ArgumentException
         */
        public static function create($code)
        {
        }
        /**
         * Transport constructor.
         *
         * @param iBase $transport Transport.
         */
        public function __construct(\Bitrix\Sender\Transport\iBase $transport)
        {
        }
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get supported recipient types.
         *
         * @return integer[]
         */
        public function getSupportedRecipientTypes()
        {
        }
        /**
         * Set count of send.
         *
         * @param integer $sendCount Count of send.
         * @return $this
         */
        public function setSendCount($sendCount)
        {
        }
        /**
         * Get count of send.
         *
         * @return integer
         */
        public function getSendCount()
        {
        }
        /**
         * Load configuration.
         *
         * @return Message\Configuration
         */
        public function loadConfiguration()
        {
        }
        /**
         * Save configuration.
         *
         * @param Message\Configuration $configuration Configuration.
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * Start.
         */
        public function start()
        {
        }
        /**
         * Send message.
         *
         * @param Message\Adapter $message Message.
         *
         * @return bool
         */
        public function send(\Bitrix\Sender\Message\Adapter $message)
        {
        }
        /**
         * End.
         */
        public function end()
        {
        }
        /**
         * Destroy.
         */
        public function __destroy()
        {
        }
        /**
         * Get send duration in seconds.
         *
         * @param Adapter|null $message Message.
         * @return integer
         */
        public function getDuration($message = null)
        {
        }
        /**
         * Has limiters.
         *
         * @return bool
         */
        public function hasLimiters()
        {
        }
        /**
         * Get limiters.
         *
         * @param Message\iBase $message Message.
         * @return iLimiter[]
         */
        public function getLimiters(\Bitrix\Sender\Message\iBase $message = null)
        {
        }
        /**
         * Check limit exceeding.
         *
         * @param Message\iBase $message Message.
         * @return bool
         */
        public function isLimitsExceeded(\Bitrix\Sender\Message\iBase $message = null)
        {
        }
    }
    /**
     * Interface iLimiter
     * @package Bitrix\Sender\Transport
     */
    interface iLimiter
    {
        const MONTHS = 'months';
        const DAYS = 'days';
        const HOURS = 'hours';
        const MINUTES = 'minutes';
        /**
         * Get max.
         *
         * @return integer
         */
        public function getLimit();
        /**
         * Get current.
         *
         * @return integer
         */
        public function getCurrent();
        /**
         * Get unit name.
         *
         * @return string
         */
        public function getUnitName();
        /**
         * Get unit.
         * Examples:
         * "14 d" is equals 14 days;
         * "d" is equals 1 day.
         *
         * @return string
         */
        public function getUnit();
        /**
         * Get caption.
         *
         * @return string|null
         */
        public function getCaption();
        /**
         * Get parameter.
         *
         * @param string $name Name.
         * @return mixed|null
         */
        public function getParameter($name);
        /**
         * Set parameter.
         *
         * @param string $name Name.
         * @param mixed $value Value.
         * @return $this
         */
        public function setParameter($name, $value);
    }
    /**
     * Class CountLimiter
     * @package Bitrix\Sender\Transport
     */
    class CountLimiter implements \Bitrix\Sender\Transport\iLimiter
    {
        /** @var string $name Name. */
        private $name;
        /** @var string $caption Caption. */
        private $caption;
        /** @var array $parameters Parameters. */
        private $parameters = array();
        /** @var integer $limit Limit.  */
        private $limit;
        /** @var callable $current Current. */
        private $current;
        /** @var integer $interval Interval. */
        private $interval;
        /** @var string $unit Unit. */
        private $unit;
        /** @var string $unit Unit. */
        private $unitName;
        /**
         * Create instance.
         *
         * @return static
         */
        public static function create()
        {
        }
        private static function parseUnit($unit)
        {
        }
        /**
         * Create unit interval.
         *
         * @param string $unit Unit.
         * @return integer
         */
        public static function getUnitInterval($unit)
        {
        }
        /**
         * Limitation constructor.
         */
        public function __construct()
        {
        }
        /**
         * With name.
         *
         * @param string $name Name.
         * @return $this
         */
        public function withName($name)
        {
        }
        /**
         * With caption.
         *
         * @param string $caption Caption.
         * @return $this
         */
        public function withCaption($caption)
        {
        }
        /**
         * With limit.
         *
         * @param integer $limit Limit.
         * @return $this
         */
        public function withLimit($limit)
        {
        }
        /**
         * With time interval in seconds.
         *
         * @param integer $interval Time interval.
         * @return $this
         */
        public function withInterval($interval)
        {
        }
        /**
         * With unit.
         *
         * @param string $unit Unit.
         * @return $this
         */
        public function withUnit($unit)
        {
        }
        /**
         * With unit name.
         *
         * @param string $unitName Unit.
         * @return $this
         */
        public function withUnitName($unitName)
        {
        }
        /**
         * Set current.
         *
         * @param callable $callable Callable.
         * @return $this
         * @throws ArgumentException
         */
        public function withCurrent($callable)
        {
        }
        /**
         * Get initial limit.
         *
         * @return integer
         */
        public function getInitialLimit()
        {
        }
        /**
         * Get limit rate.
         *
         * @return integer
         */
        public function getLimit()
        {
        }
        /**
         * Get unit.
         *
         * @return string
         */
        public function getUnit()
        {
        }
        /**
         * Get unit name.
         *
         * @return string
         */
        public function getUnitName()
        {
        }
        /**
         * Get caption.
         *
         * @return string
         */
        public function getCaption()
        {
        }
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get text.
         *
         * @return string
         */
        public function getText()
        {
        }
        /**
         * Get parameter.
         *
         * @param string $name Name.
         * @return mixed|null
         */
        public function getParameter($name)
        {
        }
        /**
         * Set parameter.
         *
         * @param string $name Name.
         * @param mixed $value Value.
         * @return $this
         */
        public function setParameter($name, $value)
        {
        }
        /**
         * Inc current limit rate.
         *
         * @param integer $amount Amount.
         * @return $this
         * @throws SystemException
         */
        public function inc($amount = 1)
        {
        }
        /**
         * Get current limit rate.
         *
         * @return integer
         */
        public function getAvailable()
        {
        }
        /**
         * Get current limit rate.
         *
         * @return integer
         */
        public function getCurrent()
        {
        }
        /**
         * Set current limit rate.
         *
         * @param integer $value Value.
         * @return $this
         */
        private function setCurrent($value)
        {
        }
        /**
         * Set timestamp of current period.
         *
         * @param integer $value Value.
         * @return $this
         */
        private function setTimestamp($value)
        {
        }
        /**
         * Get timestamp of current period.
         *
         * @return int
         */
        public function getTimestamp()
        {
        }
        private function getCurrentTimestamp()
        {
        }
        private function getCounterOptionName()
        {
        }
        private function getDateOptionName()
        {
        }
    }
}
namespace Bitrix\Sender {
    class GroupTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for DESCRIPTION field.
         *
         * @return array
         */
        public static function validateDescription()
        {
        }
        /**
         * @param Entity\Event $event
         * @return Entity\EventResult
         */
        public static function onAfterDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onBeforeUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
    class GroupConnectorTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
    }
    class GroupDealCategoryTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Main\Access\Role {
    abstract class RoleUtil
    {
        protected $roleId;
        protected $role;
        protected static abstract function getRoleTableClass() : string;
        protected static abstract function getRoleRelationTableClass() : string;
        protected static abstract function getPermissionTableClass() : string;
        protected static abstract function getRoleDictionaryClass() : ?string;
        public static function getRoles()
        {
        }
        public static function createRole(string $title) : int
        {
        }
        public function __construct(int $roleId)
        {
        }
        public function getMembers(int $limit = 0)
        {
        }
        public function deleteRole()
        {
        }
        public function updateTitle(string $title)
        {
        }
        public function getPermissions() : array
        {
        }
        /**
         * @param array $permissions
         * 		[
         * 			permission_id => value
         * 		]
         * @throws RoleNotFoundException
         * @throws RoleSaveException
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function updatePermissions(array $permissions)
        {
        }
        /**
         * @param array $roleRelations
         *
         * @throws RoleRelationSaveException
         */
        public function updateRoleRelations(array $roleRelations)
        {
        }
        protected function loadRole()
        {
        }
        protected function validatePermissions(array $permissions) : bool
        {
        }
    }
}
namespace Bitrix\Sender\Access\Role {
    class RoleUtil extends \Bitrix\Main\Access\Role\RoleUtil
    {
        protected static function getRoleTableClass() : string
        {
        }
        protected static function getRoleRelationTableClass() : string
        {
        }
        protected static function getPermissionTableClass() : string
        {
        }
        protected static function getRoleDictionaryClass() : ?string
        {
        }
        /**
         * pre installed roles list
         * @return array
         */
        public static function preparedRoleMap()
        {
        }
        /**
         * building sql insert list
         * @param array $permissions permission list
         * @param int $roleId role identification number
         *
         * @return array
         */
        public static function buildInsertPermissionQuery(array $permissions, int $roleId)
        {
        }
        /**
         * insert data to permission table
         * @param array $valuesData
         *
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public static function insertPermissions(array $valuesData)
        {
        }
        /**
         * @param string $key
         *
         * @return string
         */
        public static function getLocalizedName(string $key)
        {
        }
    }
    /**
     * Class RoleTable
     *
     * @package Bitrix\Sender\Internals\Model\Role
     */
    class RoleTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get table name.
         *
         * @return string
         * @inheritdoc
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         * @throws SystemException
         * @inheritdoc
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for XML_ID field.
         *
         * @return array
         * @throws ArgumentTypeException
         */
        public static function validateXmlId()
        {
        }
    }
}
namespace Bitrix\Main\Access\Entity {
    class DataManager extends \Bitrix\Main\Entity\DataManager
    {
        public static function deleteList(array $filter)
        {
        }
    }
}
namespace Bitrix\Main\Access\Role {
    abstract class AccessRoleRelationTable extends \Bitrix\Main\Access\Entity\DataManager
    {
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Sender\Access\Role {
    class RoleRelationTable extends \Bitrix\Main\Access\Role\AccessRoleRelationTable
    {
        /**
         * Get table name.
         * @return string
         */
        public static function getTableName()
        {
        }
    }
}
namespace Bitrix\Sender\Access\Install {
    class AccessInstaller
    {
        /**
         * Use for install agent and install data to DB
         * @return string
         */
        public static function installAgent()
        {
        }
        /**
         * fill data by presetted array
         */
        private static function fillSystemPermissions() : void
        {
        }
    }
}
namespace Bitrix\Main\Access\Rule {
    interface RuleInterface
    {
        public function __construct(\Bitrix\Main\Access\AccessibleController $controller);
        public function execute(\Bitrix\Main\Access\AccessibleItem $item = null, $params = null) : bool;
    }
    abstract class AbstractRule implements \Bitrix\Main\Access\Rule\RuleInterface
    {
        /* @var AccessibleController $controller */
        protected $controller;
        /* @var AccessibleUser $user */
        protected $user;
        public function __construct(\Bitrix\Main\Access\AccessibleController $controller)
        {
        }
        public abstract function execute(\Bitrix\Main\Access\AccessibleItem $item = null, $params = null) : bool;
    }
}
namespace Bitrix\Sender\Access\Rule {
    class BaseRule extends \Bitrix\Main\Access\Rule\AbstractRule
    {
        /**
         * check access permission
         * @param AccessibleItem|null $item
         * @param null $params
         *
         * @return bool
         */
        public function execute(\Bitrix\Main\Access\AccessibleItem $item = null, $params = null) : bool
        {
        }
    }
}
namespace Bitrix\Main\Access {
    interface AccessibleController
    {
        public static function can($userId, string $action, $itemId = null, $params = null) : bool;
        public function __construct(int $userId);
        public function getUser() : \Bitrix\Main\Access\User\AccessibleUser;
        public function checkByItemId(string $action, int $itemId = null, $params = null) : bool;
        public function check(string $action, \Bitrix\Main\Access\AccessibleItem $item = null, $params = null) : bool;
        public function batchCheck(array $request, \Bitrix\Main\Access\AccessibleItem $item) : array;
    }
    abstract class BaseAccessController implements \Bitrix\Main\Access\AccessibleController
    {
        protected const RULE_SUFFIX = 'Rule';
        protected static $register = [];
        /* @var AccessibleUser $user */
        protected $user;
        public static function getInstance($userId)
        {
        }
        public static function can($userId, string $action, $itemId = null, $params = null) : bool
        {
        }
        public function __construct(int $userId)
        {
        }
        public function getUser() : \Bitrix\Main\Access\User\AccessibleUser
        {
        }
        public function checkByItemId(string $action, int $itemId = null, $params = null) : bool
        {
        }
        public function check(string $action, \Bitrix\Main\Access\AccessibleItem $item = null, $params = null) : bool
        {
        }
        /**
         * @param AccessibleItem $item
         * @param array $request
         * 	[
         * 		actionId => params
         * 	]
         * @return array
         * 	[
         * 		actionId => true|false
         * 	]
         * @throws UnknownActionException
         */
        public function batchCheck(array $request, \Bitrix\Main\Access\AccessibleItem $item) : array
        {
        }
        protected abstract function loadItem(int $itemId = null) : ?\Bitrix\Main\Access\AccessibleItem;
        protected abstract function loadUser(int $userId) : \Bitrix\Main\Access\User\AccessibleUser;
        protected function getRuleName(string $action) : ?string
        {
        }
        protected function getRuleNamespace() : string
        {
        }
        protected function sendEvent(string $eventName, string $action, \Bitrix\Main\Access\AccessibleItem $item = null, $params = null, bool $isAccess = null)
        {
        }
    }
}
namespace Bitrix\Sender\Access {
    class AccessController extends \Bitrix\Main\Access\BaseAccessController
    {
        private const BASE_RULE = 'Base';
        /**
         * Checking access rights by action
         * @param string $action
         * @param AccessibleItem|null $item
         * @param null $params
         *
         * @return bool
         * @throws UnknownActionException
         */
        public function check(string $action, \Bitrix\Main\Access\AccessibleItem $item = null, $params = null) : bool
        {
        }
        protected function getRuleName(string $actionCode) : ?string
        {
        }
        protected function loadItem(int $itemId = null) : ?\Bitrix\Main\Access\AccessibleItem
        {
        }
        protected function loadUser(int $userId) : \Bitrix\Main\Access\User\AccessibleUser
        {
        }
    }
}
namespace Bitrix\Sender\Access\Map {
    class RcAction
    {
        /**
         * legacy action map
         * @return array
         */
        public static function getMap() : array
        {
        }
    }
    class MailingAction
    {
        /**
         * legacy action map
         * @return array
         */
        public static function getMap() : array
        {
        }
    }
    class AdsAction
    {
        /**
         * legacy action map
         * @return array
         */
        public static function getMap() : array
        {
        }
    }
}
namespace Bitrix\Sender\Access {
    class ActionDictionary
    {
        const ACTION_MAILING_VIEW = 'mailing_view';
        const ACTION_MAILING_EMAIL_EDIT = 'mailing_email_edit';
        const ACTION_MAILING_SMS_EDIT = 'mailing_sms_edit';
        const ACTION_MAILING_MESSENGER_EDIT = 'mailing_messenger_edit';
        const ACTION_MAILING_INFO_CALL_EDIT = 'mailing_info_call_edit';
        const ACTION_MAILING_AUDIO_CALL_EDIT = 'mailing_audio_call_edit';
        const ACTION_MAILING_PAUSE_START_STOP = 'mailing_pause_start_stop';
        const ACTION_MAILING_CLIENT_VIEW = 'mailing_client_view';
        const ACTION_ADS_VIEW = 'ads_view';
        const ACTION_ADS_YANDEX_EDIT = 'ads_yandex_edit';
        const ACTION_ADS_GOOGLE_EDIT = 'ads_google_edit';
        const ACTION_ADS_VK_EDIT = 'ads_vk_edit';
        const ACTION_ADS_FB_INSTAGRAM_EDIT = 'ads_fb_instagram_edit';
        const ACTION_ADS_LOOK_ALIKE_VK_EDIT = 'ads_look_alike_vk_edit';
        const ACTION_ADS_LOOK_ALIKE_FB_EDIT = 'ads_look_alike_fb_edit';
        const ACTION_ADS_PAUSE_START_STOP = 'ads_pause_start_stop';
        const ACTION_ADS_CLIENT_VIEW = 'ads_client_view';
        const ACTION_ADS_CONNECT_CABINET = 'ads_connect_cabinet';
        const ACTION_RC_EDIT = 'rc_edit';
        const ACTION_RC_VIEW = 'rc_view';
        const ACTION_RC_PAUSE_START_STOP = 'rc_pause_start_stop';
        const ACTION_SEGMENT_EDIT = 'segment_edit';
        const ACTION_SEGMENT_VIEW = 'segment_view ';
        const ACTION_SEGMENT_CLIENT_EDIT = 'segment_client_edit';
        const ACTION_SEGMENT_CLIENT_VIEW = 'segment_client_view';
        const ACTION_SEGMENT_CLIENT_OWN_CATEGORY = 'segment_client_own_category';
        const ACTION_SEGMENT_LEAD_EDIT = 'segment_lead_edit';
        const ACTION_SEGMENT_CLIENT_PERSONAL_EDIT = 'segment_client_personal_edit';
        const ACTION_BLACKLIST_EDIT = 'blacklist_edit';
        const ACTION_BLACKLIST_VIEW = 'blacklist_view';
        const ACTION_TEMPLATE_EDIT = 'template_edit';
        const ACTION_TEMPLATE_VIEW = 'template_view';
        const ACTION_START_VIEW = 'start_view';
        const ACTION_SETTINGS_EDIT = 'settings_edit';
        //	const ACTION_SETTINGS_VIEW  = 'settings_view';
        public const PREFIX = "ACTION_";
        protected static function getClassName()
        {
        }
        /**
         * permission on action
         * @return array
         */
        public static function getActionPermissionMap()
        {
        }
        /**
         * legacy security map
         * @return array
         */
        public static function getLegacyMap()
        {
        }
        /**
         * get action name by string value
         * @param string $value string value of action
         *
         * @return string|null
         * @throws \ReflectionException
         */
        public static function getActionName(string $value) : ?string
        {
        }
        /**
         * @return array
         * @throws \ReflectionException
         */
        private static function getActionNames() : array
        {
        }
    }
}
namespace Bitrix\Main\Access\User {
    interface AccessibleUser
    {
        public static function createFromId(int $userId) : \Bitrix\Main\Access\User\AccessibleUser;
        public function getUserId() : int;
        public function getName() : string;
        public function getRoles() : array;
        public function getUserDepartments() : array;
        public function isAdmin() : bool;
        public function getAccessCodes() : array;
        public function getPermission(string $permissionId) : ?int;
        public function getSubordinate(int $userId) : int;
        public function setUserId(int $userId) : \Bitrix\Main\Access\User\AccessibleUser;
    }
    abstract class UserModel implements \Bitrix\Main\Access\User\AccessibleUser
    {
        protected $userId, $name, $roles, $userDepartments, $isAdmin, $accessCodes;
        protected static $cache = [];
        public static function createFromId(int $userId) : \Bitrix\Main\Access\User\AccessibleUser
        {
        }
        protected function __construct()
        {
        }
        public function getUserId() : int
        {
        }
        public function setUserId(int $userId) : \Bitrix\Main\Access\User\AccessibleUser
        {
        }
        public function getName() : string
        {
        }
        public function getUserDepartments() : array
        {
        }
        public function isAdmin() : bool
        {
        }
        public function getAccessCodes() : array
        {
        }
        public function getSubordinate(int $userId) : int
        {
        }
        public abstract function getRoles() : array;
        public abstract function getPermission(string $permissionId) : ?int;
    }
}
namespace Bitrix\Sender\Access\Model {
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage sender
     * @copyright 2001-2021 Bitrix
     */
    class UserModel extends \Bitrix\Main\Access\User\UserModel
    {
        private $permissions;
        /**
         * get user roles in system
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function getRoles() : array
        {
        }
        /**
         * return permission if exists
         *
         * @param string $permissionId string identification
         *
         * @return int|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function getPermission(string $permissionId) : ?int
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function getPermissions() : array
        {
        }
    }
}
namespace Bitrix\Sender\Access\Service {
    interface RoleRelationServiceInterface
    {
        /**
         * @param array $settings
         */
        public function saveRoleRelation(array $settings) : void;
        /**
         * @param array $relations
         *
         * @return array|null
         */
        public function getRolesByRelations(array $relations) : ?array;
        /**
         * @param int $roleId
         */
        public function deleteRoleRelations(int $roleId) : void;
        /**
         * @param array $parameters
         *
         * @return array|null
         */
        public function getRelationList(array $parameters) : ?array;
    }
    class RoleRelationService implements \Bitrix\Sender\Access\Service\RoleRelationServiceInterface
    {
        /**
         * @inheritDoc
         * @throws RoleRelationSaveException
         */
        public function saveRoleRelation(array $settings) : void
        {
        }
        /**
         * @inheritDoc
         */
        public function getRolesByRelations(array $relations) : ?array
        {
        }
        /**
         * @inheritDoc
         * @throws SqlQueryException
         */
        public function deleteRoleRelations(int $roleId) : void
        {
        }
        /**
         * @inheritDoc
         */
        public function getRelationList(array $parameters = []) : ?array
        {
        }
    }
    interface RolePermissionServiceInterface
    {
        /**
         * @param array $permissionSettings
         * @param int $dealCategoryId
         */
        public function saveRolePermissions(array &$permissionSettings, int $dealCategoryId) : void;
        /**
         * @param String $name
         * @param int $dealCategoryId
         * @param int|null $roleId
         *
         * @return int
         */
        public function saveRole(string $name, int $dealCategoryId = 0, int $roleId = null) : int;
        /**
         * @param int $roleId
         */
        public function deleteRole(int $roleId) : void;
        /**
         *
         * @param array $parameters
         *
         * @return array
         */
        public function getSavedPermissions(array $parameters = []) : array;
        /**
         * @param array $parameters
         *
         * @return array
         */
        public function getRoleList(array $parameters = []) : array;
        /**
         * @param int $userId
         *
         * @return array
         */
        public function getRoleListByUser(int $userId) : array;
        /**
         * returns user groups
         * @param int $dealCategoryId
         *
         * @return array
         */
        public function getUserGroups(int $dealCategoryId) : array;
        /**
         *  returns access rights list
         * @return array
         */
        public function getAccessRights() : array;
    }
    class RolePermissionService implements \Bitrix\Sender\Access\Service\RolePermissionServiceInterface
    {
        private const DB_ERROR_KEY = "SENDER_CONFIG_PERMISSIONS_DB_ERROR";
        /**
         * @var RoleRelationServiceInterface
         */
        private $roleRelationService;
        /**
         * @param array $permissionSettings permission settings array
         *
         * @param int $dealCategoryId deal category identification number
         *
         * @throws SqlQueryException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function saveRolePermissions(array &$permissionSettings, int $dealCategoryId = -1) : void
        {
        }
        /**
         * @param string $name
         * @param int $dealCategoryId deal category identification number
         * @param int|null $roleId  role identification number
         *
         * @return int
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function saveRole(string $name, int $dealCategoryId = -1, int $roleId = null) : int
        {
        }
        /**
         * @param int $roleId role identification number
         * @throws SqlQueryException
         */
        public function deleteRole(int $roleId) : void
        {
        }
        public function __construct()
        {
        }
        /**
         * @inheritDoc
         */
        public function getRoleList(array $parameters = []) : array
        {
        }
        /**
         * @inheritDoc
         */
        public function getSavedPermissions(array $parameters = []) : array
        {
        }
        /**
         * @inheritDoc
         */
        public function getRoleListByUser(int $userId) : array
        {
        }
        /**
         * @param int $dealCategoryId
         *
         * @return array
         */
        public function getUserGroups(int $dealCategoryId) : array
        {
        }
        /**
         * returns access rights list
         * @return array
         */
        public function getAccessRights() : array
        {
        }
        private function availablePermissionsMap()
        {
        }
        private function getRoleAccessRights(int $roleId) : array
        {
        }
        private function getMemberInfo(string $code)
        {
        }
        private function getRoleMembers(int $roleId) : array
        {
        }
        private function getSettings()
        {
        }
    }
    interface RoleDealCategoryServiceInterface
    {
        /**
         * @param int $userId
         *
         * @return array
         */
        public function getAbleDealCategories(int $userId) : array;
        /**
         * @param int $dealCategoryId
         *
         * @return array
         */
        public function fillDefaultDealCategoryPermission(int $dealCategoryId) : array;
        /**
         * @param int $userId
         * @param array $categories
         *
         * @return array
         * @throws SqlQueryException
         */
        public function getFilteredDealCategories(int $userId, array $categories) : array;
    }
    class RoleDealCategoryService implements \Bitrix\Sender\Access\Service\RoleDealCategoryServiceInterface
    {
        public const ALL_CATEGORIES = -1;
        /**
         * @var RolePermissionServiceInterface
         */
        private $rolePermissionService;
        /**
         * @inheritDoc
         */
        public function __construct()
        {
        }
        /**
         * get able deal categories by user id
         * @param int $userId
         *
         * @return array
         * @throws SqlQueryException
         */
        public function getAbleDealCategories(int $userId) : array
        {
        }
        /**
         * @param int $userId
         * @param array $categories
         *
         * @return array
         * @throws SqlQueryException
         */
        public function getFilteredDealCategories(int $userId, array $categories) : array
        {
        }
        /**
         * @param int $dealCategoryId
         *
         * @return array
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         * @throws SqlQueryException
         *
         */
        public function fillDefaultDealCategoryPermission(int $dealCategoryId) : array
        {
        }
    }
}
namespace Bitrix\Main\Access\Permission {
    interface AccessiblePermissionDictionary
    {
        public static function getType($permissionId) : string;
        public static function getTitle($permissionId) : string;
        public static function getList() : array;
        public static function getParentsPath(string $permissionId) : ?string;
    }
    abstract class PermissionDictionary implements \Bitrix\Main\Access\Permission\AccessiblePermissionDictionary
    {
        public const VALUE_NO = 0, VALUE_YES = 1;
        public const DELIMITER = '.';
        public const TYPE_TOGGLER = 'toggler', TYPE_VARIABLES = 'variables';
        public const HINT_PREFIX = 'HINT_';
        protected static $locLoaded = [];
        /**
         * @param $permissionId
         * @return string
         *
         * @ToDo type can be not only the toggler
         */
        public static function getType($permissionId) : string
        {
        }
        /**
         * @param $permissionId
         * @return array [
         * 		'id' 	=>
         * 		'type' 	=>
         * 		'title' =>
         * 		'hint' 	=>
         * ]
         */
        public static function getPermission($permissionId) : array
        {
        }
        public static function getTitle($permissionId) : string
        {
        }
        public static function getList() : array
        {
        }
        public static function getParentsPath(string $permissionId) : ?string
        {
        }
        public static function recursiveValidatePermission(array $permissions, $id)
        {
        }
        protected static function getLevel($id) : int
        {
        }
        protected static function loadLoc()
        {
        }
        protected static function getName($permissionId) : ?string
        {
        }
    }
}
namespace Bitrix\Sender\Access\Permission {
    class PermissionDictionary extends \Bitrix\Main\Access\Permission\PermissionDictionary
    {
        const MAILING_VIEW = 1;
        const MAILING_EMAIL_EDIT = 2;
        const MAILING_SMS_EDIT = 3;
        const MAILING_MESSENGER_EDIT = 4;
        const MAILING_INFO_CALL_EDIT = 5;
        const MAILING_AUDIO_CALL_EDIT = 6;
        const MAILING_PAUSE_START_STOP = 7;
        const MAILING_CLIENT_VIEW = 8;
        const ADS_VIEW = 9;
        const ADS_YANDEX_EDIT = 10;
        const ADS_GOOGLE_EDIT = 11;
        const ADS_VK_EDIT = 12;
        const ADS_FB_INSTAGRAM_EDIT = 13;
        const ADS_LOOK_ALIKE_VK_EDIT = 14;
        const ADS_LOOK_ALIKE_FB_EDIT = 15;
        const ADS_PAUSE_START_STOP = 16;
        const ADS_CLIENT_VIEW = 17;
        const ADS_CONNECT_CABINET = 18;
        const RC_EDIT = 19;
        const RC_VIEW = 20;
        const RC_PAUSE_START_STOP = 21;
        const SEGMENT_EDIT = 22;
        const SEGMENT_VIEW = 23;
        const SEGMENT_CLIENT_EDIT = 24;
        const SEGMENT_CLIENT_VIEW = 25;
        const SEGMENT_CLIENT_OWN_CATEGORY = 26;
        const SEGMENT_LEAD_EDIT = 27;
        const SEGMENT_CLIENT_PERSONAL_EDIT = 28;
        const BLACKLIST_EDIT = 29;
        const BLACKLIST_VIEW = 30;
        const TEMPLATE_EDIT = 31;
        const TEMPLATE_VIEW = 32;
        const START_VIEW = 33;
        const SETTINGS_EDIT = 34;
    }
}
namespace Bitrix\Main\Access\Permission {
    abstract class AccessPermissionTable extends \Bitrix\Main\Access\Entity\DataManager
    {
        public static function getMap()
        {
        }
        public static function checkFields(\Bitrix\Main\ORM\Data\Result $result, $primary, array $data)
        {
        }
        public static function addMulti($rows, $ignoreEvents = false)
        {
        }
        public static function updateMulti($primaries, $data, $ignoreEvents = false)
        {
        }
        public static function onAfterAdd(\Bitrix\Main\ORM\Event $event)
        {
        }
        public static function onAfterUpdate(\Bitrix\Main\ORM\Event $event)
        {
        }
        protected static function updateChildPermission($primary, array $data)
        {
        }
        protected static function loadUpdateRow($primary, array $data)
        {
        }
        protected static function validateRow(array $data) : bool
        {
        }
        protected static function checkDataFields(array $data)
        {
        }
    }
}
namespace Bitrix\Sender\Access\Permission {
    class PermissionTable extends \Bitrix\Main\Access\Permission\AccessPermissionTable
    {
        /**
         * Get table name.
         * @return string
         */
        public static function getTableName()
        {
        }
    }
}
namespace Bitrix\Sender\Access {
    class SectionDictionary
    {
        const MAILING = 1;
        const ADS = 2;
        const SEGMENT = 3;
        const RC = 4;
        const TEMPLATE = 5;
        const BLACKLIST = 6;
        const START = 7;
        const SETTINGS = 8;
        public static function getMap()
        {
        }
        public static function getAdsAccessMap()
        {
        }
        public static function getLegacyMap()
        {
        }
        protected static function getClassName()
        {
        }
        public static function getList() : array
        {
        }
        public static function getTitle(int $value)
        {
        }
    }
}
namespace Bitrix\Main\Access\Exception {
    class AccessException extends \Bitrix\Main\SystemException
    {
    }
}
namespace Bitrix\Sender\Access\Exception {
    class UnknownActionException extends \Bitrix\Main\Access\Exception\AccessException
    {
    }
    class WrongPermissionException extends \Bitrix\Main\Access\Exception\AccessException
    {
    }
    class UnknownPermissionException extends \Bitrix\Main\Access\Exception\AccessException
    {
    }
    class UnknownRoleException extends \Bitrix\Main\Access\Exception\AccessException
    {
    }
}
namespace Bitrix\Sender\Preset {
    /**
     * Class TemplateBase
     * @package Bitrix\Sender\Preset
     * @deprecated
     * @internal
     */
    class TemplateBase
    {
        const LOCAL_DIR_TMPL = '/modules/sender/preset/template/';
        const LOCAL_DIR_IMG = '/images/sender/preset/template/';
        /**
         * Return base templates.
         *
         * @param string|null $templateType Template type.
         * @param string|null $templateId Template ID.
         * @return array
         */
        public static function onPresetTemplateList($templateType = null, $templateId = null)
        {
        }
        /**
         * Return site templates.
         *
         * @param string|null $templateType Template type.
         * @param string|null $templateId Template ID.
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function onPresetTemplateListSite($templateType = null, $templateId = null)
        {
        }
        /**
         * @return array
         */
        public static function getListName()
        {
        }
        /**
         * @param string $templateName
         * @return array|null
         */
        public static function getById($templateName)
        {
        }
        /**
         * @param string $template
         * @return string
         */
        protected static function replaceTemplateByDefaultData($template)
        {
        }
        /**
         * @param $templateName
         * @param $html
         * @return bool|int
         */
        public static function update($templateName, $html)
        {
        }
    }
}
namespace Bitrix\Sender\Preset\Installation {
    /**
     * Class Factory
     * @package Bitrix\Sender\Preset\Installation
     */
    class Factory extends \Bitrix\Sender\Internals\CodeBasedFactory
    {
        /**
         * Get transport instances.
         *
         * @return iInstallable[]
         */
        public static function getInstallable()
        {
        }
        protected static function getInterface()
        {
        }
        protected static function getClasses()
        {
        }
    }
    /**
     * Interface iInstallable
     * @package Bitrix\Sender\Preset\Installation
     */
    interface iInstallable
    {
        const EVENT_NAME = 'onSenderPresetList';
        /**
         * Get installable ID.
         *
         * @return string
         */
        public function getId();
        /**
         * Return true if it is installed.
         *
         * @return bool
         */
        public function isInstalled();
        /**
         * Install.
         *
         * @return bool
         */
        public function install();
        /**
         * Uninstall.
         *
         * @return bool
         */
        public function uninstall();
    }
    /**
     * Class Installer
     * @package Bitrix\Sender\Preset\Installation
     */
    class Installer
    {
        protected $errors = array();
        protected static $version = 2;
        protected static $versionOptionName = 'sender_preset_version';
        /**
         * Check version.
         *
         * @return bool
         */
        public static function checkVersion()
        {
        }
        /**
         * Return true if it has errors.
         *
         * @return iInstallable[]
         */
        public static function getInstallable()
        {
        }
        /**
         * Install newest.
         * @return bool
         */
        public static function installNewest()
        {
        }
        /**
         * Install.
         * @return bool
         */
        public function install()
        {
        }
        /**
         * Uninstall.
         *
         * @param iInstallable|null $installable Installable.
         */
        public function uninstall(\Bitrix\Sender\Preset\Installation\iInstallable $installable = null)
        {
        }
        /**
         * Update installed version.
         *
         * @param integer|null $version Version
         */
        public static function updateInstalledVersion($version = null)
        {
        }
        protected static function getVersion()
        {
        }
        protected static function getInstalledVersion()
        {
        }
        /**
         * Get errors.
         *
         * @return array
         */
        public function getErrors()
        {
        }
        /**
         * Return true if it has errors.
         *
         * @return bool
         */
        public function hasErrors()
        {
        }
    }
}
namespace Bitrix\Sender\Preset {
    /**
     * Class MailBlock
     * @package Bitrix\Sender\Preset
     * @deprecated
     * @internal
     */
    class MailBlock
    {
        /**
         * @return array
         */
        public static function getListByType()
        {
        }
        /**
         * @return array
         */
        public static function getList()
        {
        }
        /**
         * @return array
         */
        public static function getBlockForVisualEditor()
        {
        }
    }
}
namespace Bitrix\Sender\Preset\Templates {
    /**
     * Class Sms
     * @package Bitrix\Sender\Preset\Templates
     */
    class Sms
    {
        /**
         * Return base templates.
         *
         * @param string|null $templateType Template type.
         * @param string|null $templateId Template ID.
         * @param string|null $messageCode Message code.
         * @return array
         */
        public static function onPresetTemplateList($templateType = null, $templateId = null, $messageCode = null)
        {
        }
        private static function getProvidedMessageCodes()
        {
        }
        private static function getTemplates($templateId = null, $messageCode = null)
        {
        }
    }
    /**
     * Class Mail
     * @package Bitrix\Sender\Preset\Templates
     */
    class Mail
    {
        const LOCAL_DIR = '/modules/sender/preset/template_v2/';
        /**
         * Return base templates.
         *
         * @param string|null $templateType Template type.
         * @param string|null $templateId Template ID.
         * @param string|null $messageCode Message code.
         * @return array
         */
        public static function onPresetTemplateList($templateType = null, $templateId = null, $messageCode = null)
        {
        }
        private static function getFileContent($fileName)
        {
        }
        /**
         * Get template html.
         *
         * @param array $replace Replace data.
         * @return mixed|null
         */
        public static function replaceTemplateHtml($content, $replace = [])
        {
        }
        /**
         * Get template html.
         *
         * @return string|null
         */
        public static function getTemplateHtml()
        {
        }
        private static function getTemplates($templateId = null)
        {
        }
    }
    /**
     * Class Rc
     * @package Bitrix\Sender\Preset\Templates
     */
    class Rc
    {
        const IMAGE_DIR = '/images/sender/preset/events/';
        /**
         * Return base templates.
         *
         * @param string|null $templateType Template type.
         * @param string|null $templateId Template ID.
         * @param string|null $messageCode Message code.
         * @return array
         */
        public static function onPresetTemplateList($templateType = null, $templateId = null, $messageCode = null)
        {
        }
        private static function getProvidedMessageCodes()
        {
        }
        private static function getListByType()
        {
        }
        private static function getTemplates($templateId = null, $messageCode = null)
        {
        }
    }
    /**
     * Class Sms
     * @package Bitrix\Sender\Preset\Templates
     */
    class AudioCall
    {
        const AUDIO_DIR = 'http://dl.bitrix24.com/sender/audiocall/';
        const METADATA_FILE = 'http://dl.bitrix24.com/sender/audiocall/metadata.json';
        /**
         * Get supported lang codes
         * @return array
         */
        public static function getSupportedLangs()
        {
        }
        /**
         * Return base templates.
         *
         * @param string|null $templateType Template type.
         * @param string|null $templateId Template ID.
         * @param string|null $messageCode Message code.
         * @return array
         */
        public static function onPresetTemplateList($templateType = null, $templateId = null, $messageCode = null)
        {
        }
        /**
         * Get audio file url by preset code
         * @param string $code Preset code.
         * @return bool|string
         */
        public static function getAudioFileUrlByCode($code)
        {
        }
        /**
         * Does preset exists
         * @param string $code Preset code.
         * @return bool
         */
        public static function presetExists($code)
        {
        }
        /**
         * Get audio duration by preset code
         * @param string $code Preset code.
         * @return bool|int
         */
        public static function getDurationByCode($code)
        {
        }
        /**
         * Get default preset code
         * @return mixed
         */
        public static function getDefaultCode()
        {
        }
        /**
         * Get preset code with lang
         * @param string $code Preset code.
         * @return string
         */
        private static function getCodeWithLang($code)
        {
        }
        /**
         * Get current audio lang
         * @return string
         */
        private static function getLang()
        {
        }
        /**
         * Get templates list
         * @param null|int $templateId Template id.
         * @return array
         */
        private static function getTemplates($templateId = null)
        {
        }
        /**
         * Get presets extra data
         * @return array|bool
         * @throws \Bitrix\Main\SystemException
         */
        private static function getMetadata()
        {
        }
    }
    /**
     * Class Rc
     * @package Bitrix\Sender\Preset\Templates
     */
    class Toloka
    {
        const IMAGE_DIR = '/images/sender/preset/events/';
        const LOCAL_DIR = '/modules/sender/preset/template_toloka/';
        private static function getFileContent($fileName)
        {
        }
        private static function fileExists($path) : bool
        {
        }
        /**
         * Return base templates.
         *
         * @param string|null $templateType Template type.
         * @param string|null $templateId Template ID.
         * @param string|null $messageCode Message code.
         * @return array
         */
        public static function onPresetTemplateList($templateType = null, $templateId = null, $messageCode = null)
        {
        }
        private static function getListByType()
        {
        }
        private static function getTemplates($templateId = null, $messageCode = null)
        {
        }
    }
    /**
     * Class Texts
     * @package Bitrix\Sender\Preset\Templates
     */
    class Texts
    {
        const IMAGE_DIR = '/images/sender/preset/template_v2/';
        /**
         * Get codes.
         *
         * @return array|null
         */
        public static function getCodes()
        {
        }
        /**
         * Get texts list by type.
         *
         * @param string $type Type.
         * @return array
         */
        public static function getListByType($type)
        {
        }
        /**
         * Get replace.
         *
         * @param string $text Text.
         * @return string
         */
        public static function replace($text = '')
        {
        }
        protected static function getMessage($code)
        {
        }
        /**
         * Get texts by code.
         *
         * @param string $code Code.
         * @return array|null
         */
        public static function getByCode($code)
        {
        }
    }
}
namespace Bitrix\Sender\Preset {
    /**
     * Class MailBlockBase
     * @package Bitrix\Sender\Preset
     * @deprecated
     * @internal
     */
    class MailBlockBase
    {
        /**
         *
         */
        const LOCAL_DIR_BLOCK = '/modules/sender/preset/mailblock/';
        /**
         * @return array
         */
        public static function onPresetMailBlockList()
        {
        }
        /**
         * @return array
         */
        public static function getList()
        {
        }
        /**
         * @return array
         */
        public static function getBlockListByType()
        {
        }
        /**
         * @param $blockName
         * @return array|null
         */
        public static function getById($blockName)
        {
        }
        /**
         * @param $blockName
         * @param $html
         * @return bool|int
         */
        public static function update($blockName, $html)
        {
        }
    }
    /**
     * Class Template
     * @package Bitrix\Sender\Preset
     * @deprecated
     * @internal
     */
    class Template
    {
        /**
         * Get list by type.
         *
         * @return array
         */
        public static function getListByType()
        {
        }
        /**
         * Get type list.
         *
         * @return array
         */
        public static function getTypeList()
        {
        }
        /**
         * Get template.
         *
         * @param string $type Template type.
         * @param string $id Template ID.
         * @return array|null
         */
        public static function getById($type, $id)
        {
        }
        /**
         * Get list.
         *
         * @param array $parameters Parameters.
         * @return array
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * Get template list html.
         *
         * @param string $containerId Container ID.
         * @return string
         * @deprecated Use component bitrix:sender.template.selector.
         */
        public static function getTemplateListHtml($containerId = 'TEMPLATE_CONTAINER')
        {
        }
    }
}
namespace Bitrix\Sender\Recipient {
    /**
     * Class Validator
     * @package Bitrix\Sender\Recipient
     */
    class Validator
    {
        /**
         * Validate.
         *
         * @param string $code Code.
         * @param integer $typeId Type ID.
         * @return string
         */
        public static function validate($code, $typeId = \Bitrix\Sender\Recipient\Type::EMAIL)
        {
        }
        /**
         * Validate email.
         *
         * @param string $email Email.
         * @return string
         */
        public static function validateEmail($email)
        {
        }
        /**
         * Validate phone number.
         *
         * @param string $phone Phone number.
         * @return bool
         */
        public static function validatePhone($phone)
        {
        }
        /**
         * Validate im code.
         *
         * @param string $code Code.
         * @return bool
         */
        public static function validateIm($code)
        {
        }
        /**
         * Validate Crm entity code.
         *
         * @param string $code Code.
         * @return bool
         */
        public static function validateCrmEntityId($code)
        {
        }
    }
}
namespace Bitrix\Sender\Internals {
    /**
     * Class Type
     * @package Bitrix\Sender\Internals
     */
    class ClassConstant
    {
        /**
         * Get caption.
         *
         * @param integer $id ID.
         * @return integer|null
         */
        public static function getName($id)
        {
        }
        /**
         * Get class constants.
         *
         * @return array
         */
        protected static function getConstants()
        {
        }
        /**
         * Get list.
         *
         * @return array
         */
        public static function getList()
        {
        }
        /**
         * Get codes.
         *
         * @return array
         */
        public static function getCodes()
        {
        }
        /**
         * Get named list.
         *
         * @return array
         */
        public static function getNamedList()
        {
        }
        /**
         * Get named list.
         *
         * @return array
         */
        public static function getNamedCodes()
        {
        }
        /**
         * Get ID.
         *
         * @param string $code Code.
         * @return integer|null
         */
        public static function getId($code)
        {
        }
        /**
         * Get code.
         *
         * @param integer $id ID.
         * @return string|null
         */
        public static function getCode($id)
        {
        }
    }
}
namespace Bitrix\Sender\Recipient {
    /**
     * Class Agent
     * @package Bitrix\Sender\Recipient
     */
    class Agent extends \Bitrix\Sender\Internals\ClassConstant
    {
        const UNDEFINED = 0;
        const GMAIL = 1;
        const IPHONE = 2;
        const IPAD = 3;
        const ANDROID = 4;
        const OUTLOOK = 5;
        const THUNDERBIRD = 6;
        const YANDEX = 7;
        /**
         * Detect agent by user agent string.
         *
         * @param string|null $string String.
         * @return integer|null
         */
        public static function detect($string = null)
        {
        }
        /**
         * Get caption.
         *
         * @param integer $id ID.
         * @return integer|null
         */
        public static function getName($id)
        {
        }
        /**
         * Get rules.
         *
         * @return array
         */
        protected static function getRules()
        {
        }
    }
    /**
     * Class Type
     * @package Bitrix\Sender\Recipient
     */
    class Type extends \Bitrix\Sender\Internals\ClassConstant
    {
        const EMAIL = 1;
        const PHONE = 2;
        const IM = 3;
        const CRM_COMPANY_ID = 4;
        const CRM_CONTACT_ID = 5;
        const CRM_DEAL_PRODUCT_CONTACT_ID = 6;
        const CRM_ORDER_PRODUCT_CONTACT_ID = 7;
        const CRM_DEAL_PRODUCT_COMPANY_ID = 8;
        const CRM_ORDER_PRODUCT_COMPANY_ID = 9;
        /**
         * Detect type by recipient code.
         *
         * @param string $recipientCode Recipient code.
         * @param bool $isNormalized Is code normalized.
         * @return integer|null
         */
        public static function detect($recipientCode, $isNormalized = false)
        {
        }
        /**
         * Get caption.
         *
         * @param integer $id ID.
         * @return integer|null
         */
        public static function getName($id)
        {
        }
    }
    /**
     * Class Normalizer
     * @package Bitrix\Sender\Recipient
     */
    class Normalizer
    {
        /**
         * Normalize.
         *
         * @param string $code Code.
         * @param integer $typeId Type ID.
         * @return string|null
         */
        public static function normalize($code, $typeId = \Bitrix\Sender\Recipient\Type::EMAIL)
        {
        }
        /**
         * Normalize email.
         *
         * @param string $code Code.
         * @return string
         */
        public static function normalizeEmail($code)
        {
        }
        /**
         * Normalize phone number.
         *
         * @param string $phone Phone number.
         * @return string|null
         */
        public static function normalizePhone($phone)
        {
        }
        /**
         * Normalize im.
         *
         * @param string $code Code.
         * @return string
         */
        public static function normalizeIm($code)
        {
        }
        /**
         * Normalize Crm entity code.
         *
         * @param string $code Code.
         * @return string
         */
        public static function normalizeCrmEntityId($code)
        {
        }
    }
    /**
     * Class Field
     * @package Bitrix\Sender\Recipient
     */
    class Field
    {
        /**
         * Get default.
         *
         * @return string
         */
        public static function getDefaultName()
        {
        }
    }
}
namespace Bitrix\Sender\Security {
    /**
     * Class Access
     *
     * @package Bitrix\Sender\Security
     */
    class Access
    {
        private static $list;
        /** @var  User $user User. */
        protected $user;
        /** @var array $permissions Permissions. */
        protected $permissions;
        private static $instance;
        protected const ACTION_VIEW = 'VIEW';
        /**
         * Get Access instance for current user.
         *
         * @deprecated
         * @return static
         * @throws ArgumentException
         */
        public static function current()
        {
        }
        /**
         * PageAccess constructor.
         *
         * @param User $user User instance.
         *
         * @throws ArgumentException
         */
        private function __construct(\Bitrix\Sender\Security\User $user)
        {
        }
        /**
         * singleton for DB requests optimization
         *
         * @param null $user
         *
         * @return Access
         * @throws ArgumentException
         */
        public static function getInstance($user = null)
        {
        }
        /**
         * Return true if can view anything.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canViewAnything()
        {
        }
        /**
         * Return true if can modify settings.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canModifySettings()
        {
        }
        /**
         * Return true if can modify template.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canModifyTemplates()
        {
        }
        /**
         * Return true if can pause start or stop Mailing
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canPauseStartStopLetter()
        {
        }
        /**
         * Return true if can pause start or stop ADS
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canPauseStartStopAds()
        {
        }
        /**
         * Return true if can pause start or stop RC
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canPauseStartStopRc()
        {
        }
        /**
         * Return true if can view letters.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canViewLetters()
        {
        }
        /**
         * Return true if can view letters.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canViewTemplates()
        {
        }
        /**
         * Return true if can view letters.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canViewClientList()
        {
        }
        /**
         * Return true if can modify letters.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canModifyLetters()
        {
        }
        /**
         * Return true if can view letters.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canViewAds()
        {
        }
        /**
         * Return true if can modify letters.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canModifyAds()
        {
        }
        /**
         * Return true if can view return customer tools.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canViewRc()
        {
        }
        /**
         * Return true if can view return customer tools.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canViewToloka()
        {
        }
        /**
         * Return true if can modify return customer tools.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canModifyRc()
        {
        }
        /**
         * Return true if can view segments.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canViewSegments()
        {
        }
        /**
         * Return true if can modify segments.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canModifySegments()
        {
        }
        /**
         * Return true if can view blacklist.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canViewStart()
        {
        }
        /**
         * Return true if can view blacklist.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canViewBlacklist()
        {
        }
        /**
         * Return true if can modify blacklist.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canModifyBlacklist()
        {
        }
        /**
         * Return true if can view abuses.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canViewAbuses()
        {
        }
        /**
         * Return true if can modify abuses.
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canModifyAbuses()
        {
        }
        /**
         * Returns true if user can view specified entity.
         * @param string $entityCode
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canView($entityCode)
        {
        }
        /**
         * Returns true if user can modify specified entity.
         * @param string $entityCode
         *
         * @return bool
         * @throws ArgumentException
         */
        public function canModify($entityCode)
        {
        }
        /**
         * Returns true if user can perform specified action on the entity.
         * @param string $entityCode Code of the entity.
         * @param string $actionCode Code of the action.
         * @param string $minPerm Code of minimal permission.
         * @return bool
         * @throws ArgumentException
         */
        public function canPerform($entityCode, $actionCode, $minPerm = null)
        {
        }
        private static function getSectionAndAction($action)
        {
        }
        /**
         * @param \Bitrix\Main\Event $event
         *
         * @return mixed
         * @throws ArgumentException
         */
        public static function handleEvent(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param $eventName
         * @param array $filter
         */
        public static function registerEvent($eventName, array $filter = [])
        {
        }
    }
}
namespace Bitrix\Sender\Security\Role {
    /**
     * Class Manager
     *
     * @package Bitrix\Sender\Security\Role
     */
    class Manager
    {
        /** @var array $userRoles User roles. */
        protected static $userRoles = [];
        // 'USER_ID' => 'ROLE_ID'
        /**
         * Clean menu cache.
         *
         * @return void
         */
        public static function clearMenuCache()
        {
        }
        /**
         * Return true if can use role access.
         *
         * @return bool
         */
        public static function canUse()
        {
        }
        /**
         * Return true if can use role access.
         *
         * @return bool
         */
        public static function getTrialText()
        {
        }
        /**
         * Get role list.
         *
         * @param array $parameters Parameters.
         * @return \Bitrix\Main\DB\Result
         */
        public static function getRoleList(array $parameters = [])
        {
        }
        /**
         * Get access list.
         *
         * @param array $parameters Parameters.
         * @return \Bitrix\Main\DB\Result
         */
        public static function getAccessList(array $parameters = [])
        {
        }
        /**
         * Set access codes.
         *
         * @param array $list List.
         * @return AddResult
         */
        public static function setAccessCodes(array $list = [])
        {
        }
        /**
         * Get roles by user ID.
         *
         * @param int $userId User ID.
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @internal
         */
        public static function getRolesByUserId($userId)
        {
        }
        /**
         * Get role permissions.
         *
         * @param int $roleId Role ID.
         * @return array
         */
        public static function getRolePermissions($roleId)
        {
        }
        /**
         * Set role permissions. Add or update role
         *
         * @param int|null $roleId Role ID.
         * @param array $roleFields Role fields.
         * @param array $permissions Permissions.
         * @return AddResult|\Bitrix\Main\Entity\UpdateResult
         * @throws ArgumentException
         */
        public static function setRolePermissions($roleId = null, array $roleFields = [], array $permissions)
        {
        }
        /**
         * Deletes role and all dependent records.
         *
         * @param int $roleId Id of the role.
         * @return void
         */
        public static function deleteRole($roleId)
        {
        }
        /**
         * Install roles.
         *
         * @return string
         */
        public static function installRolesAgent()
        {
        }
        /**
         * Install roles.
         *
         * @return void
         */
        public static function installRoles()
        {
        }
    }
    class Permission
    {
        const ENTITY_AD = 'AD';
        const ENTITY_RC = 'RC';
        const ENTITY_LETTER = 'LETTER';
        const ENTITY_SEGMENT = 'SEGMENT';
        const ENTITY_BLACKLIST = 'BLACKLIST';
        const ENTITY_SETTINGS = 'SETTINGS';
        const ACTION_VIEW = 'VIEW';
        const ACTION_MODIFY = 'MODIFY';
        const PERMISSION_NONE = '';
        const PERMISSION_SELF = 'A';
        const PERMISSION_DEPARTMENT = 'D';
        const PERMISSION_ANY = 'X';
        /**
         * Returns permission code according to the user's Permission.
         *
         * @param string $entityCode Code of the entity.
         * @param string $actionCode Code of the action.
         * @return string
         * @throws ArgumentException
         * @deprecated
         */
        /*
        public function getPermission($entityCode, $actionCode)
        {
        
        	$permissionMap = $this->getMap();
        	if(!isset($permissionMap[$entityCode][$actionCode]))
        		throw new ArgumentException('Unknown entity or action code');
        
        	return (isset($this->Permission[$entityCode][$actionCode]) ? $this->Permission[$entityCode][$actionCode] : self::PERMISSION_NONE);
        
        }
        */
        /**
         * Returns true if user can perform specified action on the entity.
         *
         * @param array $permissions Permissions.
         * @param string $entityCode Code of the entity.
         * @param string $actionCode Code of the action.
         * @param string $minPerm Code of minimal permission.
         * @return bool
         * @throws ArgumentException
         */
        public static function check(array $permissions, $entityCode, $actionCode, $minPerm = null)
        {
        }
        /**
         * Get permissions by user ID.
         *
         * @param int $userId User ID.
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getByUserId($userId)
        {
        }
        /**
         * Returns Permission map.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns normalized permission array.
         *
         * @param array $source Some not normalized permission array.
         * @return array
         */
        public static function normalize(array $source)
        {
        }
        /**
         * Returns name of the entity by its code.
         *
         * @param string $entity Entity code.
         * @return string
         */
        public static function getEntityName($entity)
        {
        }
        /**
         * Returns name of the action by its code.
         *
         * @param string $action Action code.
         * @return string
         */
        public static function getActionName($action)
        {
        }
        /**
         * Returns name of the permission by its code.
         *
         * @param string $permission Permission code.
         * @return string
         */
        public static function getPermissionName($permission)
        {
        }
        /**
         * Returns maximum available permissions.
         *
         * @return array
         */
        protected static function getAdminPermissions()
        {
        }
    }
}
namespace Bitrix\Sender\Security {
    /**
     * Class User
     * @package Bitrix\Sender\Security
     */
    class User
    {
        /** @var integer|null $id User ID. */
        protected $id = null;
        /** @var \CAllUser $object User object. */
        protected $object;
        /** @var Access $access Access. */
        protected $access;
        /** @var static $instanceCurrentUser Instance. */
        protected static $instanceCurrentUser;
        /** @var static $instance Instance. */
        protected static $instance;
        /**
         * Get current user.
         *
         * @return static
         */
        public static function current()
        {
        }
        /**
         * Get user by ID.
         *
         * @param integer $id ID.
         * @return static
         */
        public static function get($id)
        {
        }
        /**
         * User constructor.
         *
         * @param integer|null $id ID.
         */
        public function __construct($id = null)
        {
        }
        /**
         * Get current user ID.
         *
         * @return integer|null
         */
        public function getId()
        {
        }
        /**
         * Return true if current user is admin.
         *
         * @return bool
         */
        public function isAdmin()
        {
        }
        /**
         * Return true if current user has access to one or more module pages.
         *
         * @return bool
         */
        public function hasAccess()
        {
        }
        /**
         * Return access instance.
         *
         * @return Access
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getAccess()
        {
        }
        /**
         * Return true if current user can view module pages.
         *
         * @return bool
         */
        public function canView()
        {
        }
        private function isBroadAccess()
        {
        }
        private function isModuleAccessibleOnPortal()
        {
        }
        /**
         * Return true if current user can edit on module pages.
         *
         * @return bool
         */
        public function canEdit()
        {
        }
        /**
         * Return true if current user is portal admin.
         *
         * @return bool
         */
        public function isPortalAdmin()
        {
        }
        /**
         * Return true if user accepted agreement.
         *
         * @return bool
         */
        public function isAgreementAccepted()
        {
        }
        /**
         * Return true if current user can edit php.
         *
         * @return bool
         */
        public function canEditPhp()
        {
        }
        /**
         * Return true if current user can use LPA.
         *
         * @return bool
         */
        public function canUseLpa()
        {
        }
        /**
         * Get USER object.
         *
         * @return \CAllUser|null
         */
        public function getObject()
        {
        }
        private function isCurrent()
        {
        }
    }
    /**
     * Class Sanitizer
     * @package Bitrix\Sender\Security
     */
    class Sanitizer
    {
        /**
         * Clean html.
         *
         * @param string $html Html text.
         * @param string $previousHtml Previous html text.
         * @param User $user User instance.
         * @return string|null
         */
        public static function sanitizeHtml($html, $previousHtml = '', \Bitrix\Sender\Security\User $user = null)
        {
        }
        /**
         * Clean html.
         *
         * @param string $html Html text.
         * @return string|null
         */
        public static function cleanHtml($html)
        {
        }
        /**
         * Fix replaced style tags and attributes.
         *
         * @param string $html Html text.
         * @return string|null
         */
        public static function fixReplacedStyles($html)
        {
        }
        /**
         * Fix template styles.
         *
         * @param string $html Html text.
         * @return string|null
         */
        public static function fixTemplateStyles($html)
        {
        }
        /**
         * Remove php from string with checking operations `edit_php` and `lpa_template_edit`.
         *
         * @param string $string String.
         * @param User $user User instance.
         * @return bool
         */
        public static function removePhp($string = '', $previousString, \Bitrix\Sender\Security\User $user = null)
        {
        }
    }
    /**
     * Class Agreement
     * @package Bitrix\Sender\Security
     **/
    class Agreement
    {
        /**
         * Checks if User have access to module.
         *
         * @param integer $userId User ID.
         * @return bool
         */
        public static function isAcceptedByUser($userId)
        {
        }
        /**
         * Request agreement accept.
         *
         * @return void
         */
        public static function requestFromCurrentUser()
        {
        }
        /**
         * Return true if user accepted agreement.
         *
         * @return bool
         */
        public static function acceptByCurrentUser()
        {
        }
        /**
         * Get agreement text.
         *
         * @param bool $asRichHtml Get as rich html.
         * @return string
         */
        public static function getText($asRichHtml = false)
        {
        }
        /**
         * Get agreement error text.
         *
         * @return string
         */
        public static function getErrorText()
        {
        }
    }
    /**
     * Class AccessChecker
     * @package Bitrix\Sender\Security
     */
    class AccessChecker
    {
        const ERR_CODE_VIEW = 'ERR_VIEW';
        const ERR_CODE_EDIT = 'ERR_EDIT';
        const ERR_CODE_NOT_FOUND = 'ERR_NOT_FOUND';
        /**
         * Get message.
         *
         * @param string $code Code.
         * @return string
         */
        public static function getMessage($code)
        {
        }
        /**
         * Get error.
         *
         * @param string $code Code.
         * @return Error
         */
        public static function getError($code = self::ERR_CODE_VIEW)
        {
        }
        /**
         * Add error.
         *
         * @param ErrorCollection $collection Error collection.
         * @param string $code Code.
         * @return void
         */
        public static function addError(\Bitrix\Main\ErrorCollection $collection, $code = self::ERR_CODE_VIEW)
        {
        }
        /**
         * Check view access.
         *
         * @param ErrorCollection $collection Error collection.
         * @param User $user User.
         * @return bool
         */
        public static function checkViewAccess(\Bitrix\Main\ErrorCollection $collection, \Bitrix\Sender\Security\User $user = null)
        {
        }
    }
}
namespace Bitrix\Sender\Entity {
    /**
     * Class Base
     * @package Bitrix\Sender\Entity
     */
    abstract class Base
    {
        const SEARCH_FIELD_NAME = 'SEARCH_CONTENT';
        /** @var ErrorCollection $errors */
        protected $errors;
        /** @var integer $id ID. */
        protected $id;
        /** @var array $data Data. */
        protected $data = array();
        /** @var Security\User|null $user User. */
        protected $user;
        /** @var Search\Builder|null $searchBuilder Search builder. */
        protected $searchBuilder;
        /**
         * Create instance.
         *
         * @param integer|null $id ID.
         * @return static
         */
        public static function create($id = null)
        {
        }
        /**
         * Base constructor.
         *
         * @param integer|null $id ID.
         */
        public function __construct($id = null)
        {
        }
        /**
         * Get default data.
         *
         * @return array
         */
        protected function getDefaultData()
        {
        }
        protected function filterDataByEntityFields(\Bitrix\Main\Entity\Base $entity, array &$data)
        {
        }
        protected function filterDataByChanging(array &$data, array $previousData)
        {
        }
        /**
         * Save data by data manager class name.
         *
         * @param MainEntityBase $entity Entity.
         * @param array|integer|null $id ID.
         * @param array $data Data.
         * @param array|null $primary Primary.
         * @return integer|null
         * @throws SystemException
         */
        protected function saveByEntity(\Bitrix\Main\Entity\Base $entity, $id = null, array $data, $primary = null)
        {
        }
        /**
         * Remove by data manager class name.
         *
         * @param MainEntityBase $entity Entity.
         * @param array|integer $primary Primary.
         * @return bool
         * @throws SystemException
         */
        protected function removeByEntity(\Bitrix\Main\Entity\Base $entity, $primary)
        {
        }
        /**
         * Load data.
         *
         * @param integer $id ID.
         * @return array|null
         */
        protected abstract function loadData($id);
        /**
         * Save data.
         *
         * @param integer|null $id ID.
         * @param array $data Data.
         * @return integer|null
         */
        protected abstract function saveData($id = null, array $data);
        /**
         * Copy data.
         *
         * @param integer $id ID.
         * @param array $data Data.
         * @return integer|null
         */
        protected function copyData($id, array $data = array())
        {
        }
        /**
         * Load by array.
         *
         * @param array $data Data.
         * @return bool
         */
        public function loadByArray(array $data)
        {
        }
        /**
         * Load.
         *
         * @param integer $id ID.
         * @return bool
         */
        public function load($id)
        {
        }
        /**
         * Save.
         */
        public function save()
        {
        }
        /**
         * Get ID.
         *
         * @return integer
         */
        public function getId()
        {
        }
        /**
         * Set ID.
         *
         * @param integer $id ID.
         * @return $this
         */
        public function setId($id)
        {
        }
        /**
         * Set data value by key.
         *
         * @param string $key Key.
         * @param mixed $value Value.
         * @return $this
         */
        public function set($key, $value)
        {
        }
        /**
         * Unset data value by key.
         *
         * @param string $key Key.
         * @return $this
         */
        public function unsetByKey($key)
        {
        }
        /**
         * Get data value by key.
         *
         * @param string $key Key.
         * @param mixed|null $defaultValue Default value.
         * @return mixed
         */
        public function get($key, $defaultValue = null)
        {
        }
        /**
         * Merge data.
         *
         * @param array $data Data.
         * @return $this
         */
        public function mergeData(array $data)
        {
        }
        /**
         * Set data.
         *
         * @param array $data Data.
         * @return $this
         */
        public function setData(array $data)
        {
        }
        /**
         * Get data.
         */
        public function getData()
        {
        }
        /**
         * Return true if it have errors.
         *
         * @return bool
         */
        public function hasErrors()
        {
        }
        /**
         * Clear errors.
         */
        public function clearErrors()
        {
        }
        /**
         * Add error.
         *
         * @param string $message Message text.
         * @param string|null $code Code.
         */
        public function addError($message, $code = null)
        {
        }
        /**
         * Get error collection.
         *
         * @return ErrorCollection
         */
        public function getErrorCollection()
        {
        }
        /**
         * Get errors.
         *
         * @return array
         */
        public function getErrors()
        {
        }
        /**
         * Get error messages.
         *
         * @return array
         */
        public function getErrorMessages()
        {
        }
        /**
         * Set user.
         *
         * @param Security\User|null $user User.
         * @return $this;
         */
        public function setUser(\Bitrix\Sender\Security\User $user = null)
        {
        }
        /**
         * Get user.
         *
         * @return Security\User;
         */
        public function getUser()
        {
        }
        /**
         * Get data class.
         *
         * @return null|MainDataManager;
         */
        public static function getDataClass()
        {
        }
        /**
         * Get data class.
         *
         * @return null|Search\Builder
         */
        public static function getSearchBuilder()
        {
        }
        /**
         * Prepare search content.
         *
         * @return $this
         */
        protected function prepareSearchContent()
        {
        }
        /**
         * Save search index.
         *
         * @return bool
         */
        public function saveSearchIndex()
        {
        }
    }
    class Segment extends \Bitrix\Sender\Entity\Base
    {
        const CODE_ALL = 'all';
        /** @var bool $isFilterOnly Is filter only. */
        protected $isFilterOnly = false;
        /**
         * Get default segments.
         *
         * @return array
         */
        public static function getDefaultIds()
        {
        }
        /**
         * Get segment ID by code.
         *
         * @param string|string[] $code Code.
         * @return integer|null
         */
        public static function getIdByCode($code)
        {
        }
        /**
         * Get list.
         *
         * @param array $parameters Parameters.
         * @return \Bitrix\Main\DB\Result
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * Get default data.
         *
         * @return array
         */
        protected function getDefaultData()
        {
        }
        /**
         * Load data.
         *
         * @param integer $id ID.
         * @return array|null
         */
        protected function loadData($id)
        {
        }
        /**
         * Save data.
         *
         * @param integer|null $id ID.
         * @param array $data Data.
         * @return integer|null
         */
        protected function saveData($id = null, array $data)
        {
        }
        private function updateDealCategory(int $groupId, $connector)
        {
        }
        /**
         * Return true if segment is hidden.
         *
         * @return bool
         */
        public function isHidden()
        {
        }
        /**
         * Return true if segment is system.
         *
         * @return bool
         */
        public function isSystem()
        {
        }
        /**
         * Is save filters only.
         *
         * @return bool
         */
        public function isFilterOnly()
        {
        }
        /**
         * Set save filter only mode.
         *
         * @param bool $mode Mode.
         * @return $this
         */
        public function setFilterOnlyMode($mode = true)
        {
        }
        /**
         * Append contact set connector.
         *
         * @param int|null $contactSetId Contact set ID.
         * @return $this
         */
        public function appendContactSetConnector($contactSetId = null)
        {
        }
        /**
         * Return fisrt contact set ID from in segment.
         *
         * @return int|null
         */
        protected function getFirstContactSetId()
        {
        }
        /**
         * Upload.
         *
         * @param array $list List of emails and phones.
         * @return $this
         */
        public function upload(array $list)
        {
        }
        /**
         * Update segment address counters.
         *
         * @param integer $segmentId Segment ID.
         * @param Connector\DataCounter[] $counters Counters.
         * @return bool
         */
        public static function updateAddressCounters($segmentId, array $counters)
        {
        }
        /**
         * Get segment address counter.
         *
         * @param integer $segmentId Segment ID.
         * @return Connector\DataCounter
         */
        public static function getAddressCounter($segmentId)
        {
        }
        /**
         * Get segment address counters.
         *
         * @param integer[] $list List of ID.
         * @return array
         */
        public static function getAddressCounters(array $list)
        {
        }
        /**
         * Update segment use counter.
         *
         * @param integer[] $list Segment ID list.
         * @param bool $isInclude Update include counters.
         * @return void
         */
        public static function updateUseCounters(array $list, $isInclude = true)
        {
        }
        /**
         * Remove.
         *
         * @return bool
         */
        public function remove()
        {
        }
        /**
         * Remove by letter ID.
         *
         * @param integer $id Letter ID.
         * @return bool
         */
        public static function removeById($id)
        {
        }
    }
    class Letter extends \Bitrix\Sender\Entity\Base
    {
        /** @var null|array $postingData Posting data. */
        protected $postingData = null;
        /** @var  MainMessage\Adapter $message Message. */
        protected $message;
        /** @var null|array $messagesCache Created messages by type
         */
        protected $messagesCache = [];
        /** @var  Dispatch\Duration $duration Duration. */
        protected $duration;
        /** @var  Dispatch\Method $method Method. */
        protected $method;
        /** @var  Dispatch\State $state State. */
        protected $state;
        /** @var  Posting\Counter $counter Counter. */
        protected $counter;
        /**
         * Get filter fields.
         *
         * @return array
         */
        protected static function getFilterFields()
        {
        }
        /**
         * Get data manager.
         *
         * @return \Bitrix\Main\Entity\DataManager
         */
        public static function getDataClass()
        {
        }
        /**
         * Get list.
         *
         * @param array $parameters Parameters.
         * @return DB\Result
         */
        public static function getList(array $parameters = array())
        {
        }
        public static function getDefaultSelectFields()
        {
        }
        /**
         * Get list with message fields
         * @param array $parameters Getlist params.
         * @return DB\ArrayResult
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getListWithMessageFields(array $parameters = array())
        {
        }
        /**
         * Create instance by ID.
         *
         * @param integer|null $id ID.
         * @param array $messageCodes Message codes.
         * @return static|Letter|Ad|Rc|null
         */
        public static function createInstanceById($id = null, array $messageCodes = [])
        {
        }
        /**
         * Create instance by array data.
         *
         * @param array $data Data.
         * @param array $messageCodes Message codes.
         * @return static|Letter|Ad|Rc|null
         */
        public static function createInstanceByArray(array $data, array $messageCodes = [])
        {
        }
        /**
         * Create instance by posting ID.
         *
         * @param integer $postingId Posting ID.
         * @return static|Ad|null
         */
        public static function createInstanceByPostingId($postingId)
        {
        }
        /**
         * Create instance by contact ID.
         *
         * @param integer $contactId Contact ID.
         * @param array $messageCodes Message codes.
         * @return static|Ad|null
         */
        public static function createInstanceByContactId($contactId, array $messageCodes = [])
        {
        }
        protected static function createInstanceByCode($code = null, array $messageCodes = [])
        {
        }
        /**
         * Get default data.
         *
         * @return array
         */
        protected function getDefaultData()
        {
        }
        /**
         * Save data.
         *
         * @param integer|null $id ID.
         * @param array $data Data.
         * @return integer|null
         */
        protected function saveData($id = null, array $data)
        {
        }
        protected function prepareSearchContent()
        {
        }
        protected function saveDataSegments($id, array $segmentsInclude, array $segmentsExclude)
        {
        }
        private static function getArrayDiffNewest(array $current, array $old)
        {
        }
        private static function getArrayDiffRemoved(array $current, array $old)
        {
        }
        protected function updateTemplateUseCount(array $data, array $previousData)
        {
        }
        /**
         * Load data.
         *
         * @param integer $id ID.
         * @return array|null
         */
        public function loadData($id)
        {
        }
        /**
         * Return true if it have statistics.
         *
         * @return bool
         */
        public function hasStatistics()
        {
        }
        /**
         * Return true if can change segments.
         *
         * @return bool
         */
        public function canChangeSegments()
        {
        }
        /**
         * Load segments data.
         *
         * @param integer $id ID.
         * @return array
         */
        public function loadDataSegments($id)
        {
        }
        /**
         * Return true if can change template.
         *
         * @return bool
         */
        public function canChangeTemplate()
        {
        }
        /**
         * Get Message instance.
         *
         * @return MainMessage\Adapter
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getMessage()
        {
        }
        /**
         * Is support heat map.
         *
         * @return bool
         */
        public function isSupportHeatMap()
        {
        }
        /**
         * Is support reiterate run.
         *
         * @return bool
         */
        public function isSupportReiterate()
        {
        }
        /**
         * Get campaign ID.
         *
         * @return mixed
         */
        public function getCampaignId()
        {
        }
        /**
         * Get duration instance.
         *
         * @return Dispatch\Duration
         */
        public function getDuration()
        {
        }
        /**
         * Get state instance.
         *
         * @return Dispatch\State
         */
        public function getState()
        {
        }
        /**
         * Get method instance.
         *
         * @return Dispatch\Method
         */
        public function getMethod()
        {
        }
        /**
         * Get counter instance.
         *
         * @return Posting\Counter
         */
        public function getCounter()
        {
        }
        /**
         * Get Tester instance.
         *
         * @return MainMessage\Tester
         */
        protected function getTester()
        {
        }
        /**
         * Is reiterate letter.
         *
         * @return bool
         */
        public function isReiterate()
        {
        }
        /**
         * Is trigger letter.
         *
         * @return bool
         */
        public function isTrigger()
        {
        }
        /**
         * Is support testing.
         *
         * @return bool
         */
        public function isSupportTesting()
        {
        }
        /**
         * Remove.
         *
         * @return bool
         */
        public function remove()
        {
        }
        /**
         * Remove by letter ID.
         *
         * @param integer $id Letter ID.
         * @return bool
         */
        public static function removeById($id)
        {
        }
        /**
         * Copy.
         *
         * @return integer|null
         */
        public function copy()
        {
        }
        /**
         * Send test message to recipient.
         *
         * @param array $codes Recipient codes.
         * @param array $parameters Parameters.
         * @return Result
         */
        public function test(array $codes, array $parameters = array())
        {
        }
        /**
         * Plan sending.
         *
         * @param Date $date Date.
         * @return bool
         */
        public function plan(\Bitrix\Main\Type\Date $date)
        {
        }
        /**
         * Wait sending.
         *
         * @return bool
         */
        public function wait()
        {
        }
        /**
         * Send.
         *
         * @return bool
         */
        public function send()
        {
        }
        /**
         * Send errors.
         *
         * @return bool
         */
        public function sendErrors()
        {
        }
        /**
         * Stop.
         *
         * @return bool
         */
        public function stop()
        {
        }
        /**
         * Halt.
         *
         * @return bool
         */
        public function halt()
        {
        }
        /**
         * Resume.
         *
         * @return bool
         */
        public function resume()
        {
        }
        /**
         * Pause.
         *
         * @return bool
         */
        public function pause()
        {
        }
        /**
         * Get last posting data.
         *
         * @return array
         */
        public function getLastPostingData()
        {
        }
    }
    class Ad extends \Bitrix\Sender\Entity\Letter
    {
        /**
         * Get filter fields.
         *
         * @return array
         */
        protected static function getFilterFields()
        {
        }
        /**
         * Save data.
         *
         * @param integer|null $id ID.
         * @param array $data Data.
         * @return integer|null
         */
        protected function saveData($id = null, array $data)
        {
        }
    }
    /**
     * Class Campaign
     * @package Bitrix\Sender\Entity
     */
    class Campaign extends \Bitrix\Sender\Entity\Base
    {
        /** @var array $defaultId Default ID. */
        private static $defaultId;
        private static $defaultSiteId;
        /**
         * Get list.
         *
         * @param array $parameters Parameters.
         * @return \Bitrix\Main\DB\Result
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * Get default campaign id.
         *
         * @param null|string $siteId Site id.
         * @return int
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getDefaultId($siteId = null)
        {
        }
        /**
         * Get sites.
         *
         * @return array
         */
        public static function getSites()
        {
        }
        /**
         * Get default data.
         *
         * @return array
         */
        protected function getDefaultData()
        {
        }
        /**
         * Save data.
         *
         * @param integer|null $id ID.
         * @param array $data Data.
         * @return integer|null
         */
        protected function saveData($id = null, array $data)
        {
        }
        /**
         * Load data.
         *
         * @param integer $id ID.
         * @return array|null
         */
        public function loadData($id)
        {
        }
        /**
         * Get site ID.
         *
         * @return string
         */
        public function getSiteId()
        {
        }
        /**
         * Get site name.
         *
         * @return string
         */
        public function getSiteName()
        {
        }
        /**
         * Get subscriber count.
         *
         * @return int
         */
        public function getSubscriberCount()
        {
        }
        /**
         * Activate.
         *
         * @param bool $isActivate Is activate.
         * @return $this
         */
        public function activate($isActivate = true)
        {
        }
        /**
         * Deactivate.
         *
         * @return $this
         */
        public function deactivate()
        {
        }
        /**
         * Remove.
         *
         * @return bool
         */
        public function remove()
        {
        }
        /**
         * Remove by contact ID.
         *
         * @param integer $id Contact ID.
         * @return bool
         */
        public static function removeById($id)
        {
        }
    }
    /**
     * Class Chain
     * @package Bitrix\Sender\Entity
     */
    class Chain
    {
        /** @var Letter[] $letters */
        protected $letters = [];
        /** @var int[] $removeLetterList */
        protected $removeLetterList = [];
        /**
         * Get list.
         *
         * @return Letter[]
         */
        public function getList()
        {
        }
        /**
         * Get list.
         *
         * @return Letter|null
         */
        public function getLast()
        {
        }
        /**
         * Get letter.
         *
         * @param int $letterId Letter ID.
         * @return Letter|null
         */
        public function getLetter($letterId)
        {
        }
        /**
         * Add by ID.
         *
         * @param int $letterId Letter ID.
         * @return $this
         */
        public function addLetter($letterId)
        {
        }
        /**
         * shiftTime.
         *
         * @param int $letterId Letter ID.
         * @param int $timeShift Time shift.
         * @return $this
         */
        public function shiftTime($letterId, $timeShift = 0)
        {
        }
        /**
         * Remove.
         *
         * @param int $letterId Letter ID.
         * @return $this
         */
        public function removeLetter($letterId)
        {
        }
        /**
         * Move up.
         *
         * @param int $letterId Letter ID.
         * @return $this
         */
        public function moveUp($letterId)
        {
        }
        /**
         * Move down.
         *
         * @param int $letterId Letter ID.
         * @return $this
         */
        public function moveDown($letterId)
        {
        }
        /**
         * Sort.
         *
         * @return $this
         */
        public function sort()
        {
        }
        /**
         * Save data.
         *
         * @return $this
         */
        public function save()
        {
        }
        /**
         * Load data.
         *
         * @param integer $id Campaign ID.
         * @return $this
         */
        public function load($id)
        {
        }
        protected static function createInstanceById($id)
        {
        }
        protected static function getIdByParentId(array $list, $parentId = null)
        {
        }
        protected function move($letterId, $offset)
        {
        }
    }
    class Rc extends \Bitrix\Sender\Entity\Letter
    {
        /**
         * Get filter fields.
         *
         * @return array
         */
        protected static function getFilterFields()
        {
        }
        /**
         * Save data.
         *
         * @param integer|null $id ID.
         * @param array $data Data.
         * @return integer|null
         */
        protected function saveData($id = null, array $data)
        {
        }
    }
    /**
     * Class Contact
     * @package Bitrix\Sender\Entity
     */
    class Contact extends \Bitrix\Sender\Entity\Base
    {
        /**
         * Get list.
         *
         * @param array $parameters Parameters.
         * @return \Bitrix\Main\DB\Result
         */
        public static function getList(array $parameters = array())
        {
        }
        /**
         * Get default data.
         *
         * @return array
         */
        protected function getDefaultData()
        {
        }
        /**
         * Save data.
         *
         * @param integer|null $id ID.
         * @param array $data Data.
         * @return integer|null
         * @throws
         */
        protected function saveData($id = null, array $data)
        {
        }
        protected function saveDataLists($id, $setList, $subList, $unsubList)
        {
        }
        /**
         * Load data.
         *
         * @param integer $id ID.
         * @return array|null
         */
        public function loadData($id)
        {
        }
        /**
         * Remove.
         *
         * @return bool
         */
        public function remove()
        {
        }
        /**
         * Remove by contact ID.
         *
         * @param integer $id Contact ID.
         * @return bool
         */
        public static function removeById($id)
        {
        }
        /**
         * Remove from blacklist by contact ID.
         *
         * @param integer $id Contact ID.
         * @return bool
         */
        public static function removeFromBlacklistById($id)
        {
        }
        /**
         * Subscribe.
         *
         * @param integer|null $campaignId Campaign ID.
         * @return bool
         */
        public function subscribe($campaignId = null)
        {
        }
        /**
         * Unsubscribe.
         *
         * @param integer|null $campaignId Campaign ID.
         * @return bool
         */
        public function unsubscribe($campaignId = null)
        {
        }
        /**
         * Add to blacklist.
         *
         * @return bool
         */
        public function addToBlacklist()
        {
        }
        /**
         * Remove from blacklist.
         *
         * @return bool
         */
        public function removeFromBlacklist()
        {
        }
        /**
         * Add to list.
         *
         * @param int $listId List ID.
         * @return bool
         */
        public function addToList($listId)
        {
        }
        /**
         * Remove from list.
         *
         * @param int $listId List ID.
         * @return bool
         */
        public function removeFromList($listId)
        {
        }
    }
    class Toloka extends \Bitrix\Sender\Entity\Letter
    {
        /**
         * Get filter fields.
         *
         * @return array
         */
        protected static function getFilterFields()
        {
        }
        /**
         * Save data.
         *
         * @param integer|null $id ID.
         * @param array $data Data.
         * @return integer|null
         */
        protected function saveData($id = null, array $data)
        {
        }
    }
    /**
     * Class Trigger
     * @package Bitrix\Sender\Entity
     */
    class TriggerCampaign extends \Bitrix\Sender\Entity\Campaign
    {
        /** @var  Chain $chain */
        protected $chain;
        /**
         * Get default data.
         *
         * @return array
         */
        protected function getDefaultData()
        {
        }
        /**
         * Get list.
         *
         * @param array $parameters Parameters.
         * @return \Bitrix\Main\DB\Result
         */
        public static function getList(array $parameters = [])
        {
        }
        /**
         * Get chain.
         *
         * @return Chain
         */
        public function getChain()
        {
        }
    }
    class Template extends \Bitrix\Sender\Entity\Base
    {
        /**
         * Get default data.
         *
         * @return array
         */
        protected function getDefaultData()
        {
        }
        /**
         * Load data.
         *
         * @param integer $id ID.
         * @return array|null
         */
        protected function loadData($id)
        {
        }
        /**
         * Save data.
         *
         * @param integer|null $id ID.
         * @param array $data Data.
         * @return integer|null
         */
        protected function saveData($id = null, array $data)
        {
        }
        /**
         * Remove.
         *
         * @return bool
         */
        public function remove()
        {
        }
        /**
         * Remove by letter ID.
         *
         * @param integer $id Letter ID.
         * @return bool
         */
        public static function removeById($id)
        {
        }
    }
    /**
     * Class Message
     * @package Bitrix\Sender\Entity
     */
    class Message extends \Bitrix\Sender\Entity\Base
    {
        /**
         * Load configuration.
         *
         * @param integer|null $id ID.
         * @param Configuration $configuration Configuration.
         * @return Configuration
         */
        public function loadConfiguration($id = null, \Bitrix\Sender\Message\Configuration $configuration = null)
        {
        }
        /**
         * Save configuration.
         *
         * @param Configuration $configuration Configuration.
         * @return \Bitrix\Main\Result
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * Copy configuration.
         *
         * @param integer|string|null $id ID.
         * @return Result|null
         */
        public function copyConfiguration($id)
        {
        }
        /**
         * Remove configuration.
         *
         * @param integer $id ID.
         * @return bool
         */
        public function removeConfiguration($id)
        {
        }
        /**
         * Remove by ID.
         *
         * @param integer $id ID.
         * @return \Bitrix\Main\Result
         */
        public static function removeById($id)
        {
        }
        /**
         * Get fields.
         */
        public function getFields()
        {
        }
        /**
         * Set fields.
         *
         * @param array $fields Fields.
         * @return $this
         */
        public function setFields(array $fields)
        {
        }
        /**
         * Get code.
         */
        public function getCode()
        {
        }
        /**
         * Set code.
         *
         * @param string $code Code.
         * @return $this
         */
        public function setCode($code)
        {
        }
        /**
         * Get default data.
         *
         * @return array
         */
        protected function getDefaultData()
        {
        }
        /**
         * Load data.
         *
         * @param integer $id ID.
         * @return array|null
         */
        protected function loadData($id)
        {
        }
        protected function parsePersonalizeList($text)
        {
        }
        /**
         * Save data.
         *
         * @param integer|null $id ID.
         * @param array $data Data.
         * @return integer|null
         */
        protected function saveData($id = null, array $data)
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Sale\Preset {
    /**
     * Class TriggerCampaign
     *
     * @package Bitrix\Sender\Integration\Sale\Preset
     */
    class TriggerCampaign
    {
        protected static function getMailTemplate(array $params = null)
        {
        }
        protected static function getCoupon($perc = 5)
        {
        }
        protected static function getBasketCart()
        {
        }
        protected static function getMessagePlaceHolders()
        {
        }
        /**
         * Get template types.
         *
         * @return array
         */
        public static function getTemplateCategories()
        {
        }
        /**
         * Get all.
         *
         * @return array
         */
        public static function getAll()
        {
        }
        /**
         * Get forgotten cart.
         *
         * @param int $days Days.
         * @return array
         */
        public static function getForgottenCart($days)
        {
        }
        /**
         * Get canceled order.
         *
         * @return array
         */
        public static function getCanceledOrder()
        {
        }
        /**
         * Get paid order.
         *
         * @return array
         */
        public static function getPaidOrder()
        {
        }
        /**
         * Get don't buy.
         *
         * @param int $days Days.
         * @return array
         */
        public static function getDontBuy($days)
        {
        }
        /**
         * Get don't auth.
         *
         * @param int $days Days.
         * @return array
         */
        public static function getDontAuth($days)
        {
        }
    }
}
namespace Bitrix\Sender\Integration {
    /**
     * Class EventHandler
     * @package Bitrix\Sender\Integration\Crm
     */
    class EventHandler
    {
        /**
         * Handler of event sender/onSenderPresetList.
         *
         * @return array
         */
        public static function onSenderPresetList()
        {
        }
        /**
         * Handler of event sender/onSenderPresetList.
         *
         * @return array
         */
        public static function onSenderCompanyCard()
        {
        }
        /**
         * Handler of event sender/OnAfterPostingSendRecipient.
         *
         * @param array $eventData Event.
         * @param Entity\Letter $letter Letter.
         * @return void
         */
        public static function onAfterPostingSendRecipient(array $eventData, \Bitrix\Sender\Entity\Letter $letter)
        {
        }
        /**
         * Handler of event sender/OnAfterPostingSendRecipientMultiple.
         *
         * @param array $eventDataArray Event[].
         * @param Entity\Letter $letter Letter.
         * @return void
         */
        public static function onAfterPostingSendRecipientMultiple(array $eventDataArray, \Bitrix\Sender\Entity\Letter $letter)
        {
        }
        /**
         * Handler of event sender/onAfterPostingRecipientUnsubscribe.
         *
         * @param array $eventData Event.
         * @return void
         */
        public static function onAfterPostingRecipientUnsubscribe(array $eventData)
        {
        }
        /**
         * Handler of event sender/onConstantList.
         *
         * @param string $className Class name.
         * @return array
         */
        public static function onConstantList($className)
        {
        }
        /**
         * Handler of event sender/onTemplateList.
         *
         * @param string $messageType Message type.
         * @return array
         */
        public static function onTemplateList($messageType)
        {
        }
        /**
         * Handler of event sender/onConnectorList.
         *
         * @param array $data Data.
         * @return array
         */
        public static function onConnectorList(array $data = array())
        {
        }
        /**
         * Handler of event sender/onTriggerList.
         *
         * @param array $data Data.
         * @return array
         */
        public static function onTriggerList(array $data = [])
        {
        }
        /**
         * Handler of event sender/onSenderMessageList.
         *
         * @return array
         */
        public static function onSenderMessageList()
        {
        }
        /**
         * Handler of event sender/OnPresetMailingList.
         *
         * @return array
         */
        public static function onSenderTriggerCampaignPreset()
        {
        }
        /**
         * Handler of event sender/onSenderTransportList.
         *
         * @return array
         */
        public static function onSenderTransportList()
        {
        }
        /**
         * On before update LetterTable.
         *
         * @param MainEntity\Event $event Event.
         * @param MainEntity\EventResult $result Result.
         * @return void
         */
        public static function onBeforeUpdateLetterTable(\Bitrix\Main\Entity\Event $event, \Bitrix\Main\Entity\EventResult $result)
        {
        }
        /**
         * Handler of event main/onMailEventMailChangeStatus.
         *
         * @param Main\Mail\Callback\Result $result Callback result instance.
         * @return void
         */
        public static function onMailEventMailChangeStatus($result)
        {
        }
    }
}
namespace Bitrix\Sender\Message {
    /**
     * Interface iMessage
     * @package Bitrix\Sender\Message
     */
    interface iBase
    {
        const CODE_MAIL = 'mail';
        const CODE_TOLOKA = 'toloka';
        const CODE_WEB_HOOK = 'web_hook';
        const CODE_SMS = 'sms';
        const CODE_IM = 'im';
        const CODE_CALL = 'call';
        const CODE_AUDIO_CALL = 'audio_call';
        const CODE_UNDEFINED = '';
        const EVENT_NAME = 'onSenderMessageList';
        /**
         * Get name.
         *
         * @return string
         */
        public function getName();
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode();
        /**
         * Get supported recipient types.
         *
         * @return array
         */
        public function getSupportedTransports();
        /**
         * Load configuration.
         *
         * @param integer|string|null $id ID.
         * @return Configuration
         */
        public function loadConfiguration($id = null);
        /**
         * Save configuration.
         *
         * @param Configuration $configuration Configuration.
         * @return Result|null
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration);
        /**
         * Copy configuration.
         *
         * @param integer|string|null $id ID.
         * @return Result|null
         */
        public function copyConfiguration($id);
    }
}
namespace Bitrix\Sender\Integration\Sender\WebHook {
    /**
     * Class MessageWebHook
     * @package Bitrix\Sender\Integration\Sender\WebHook
     */
    class MessageWebHook implements \Bitrix\Sender\Message\iBase
    {
        const CODE = self::CODE_WEB_HOOK;
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get supported transports.
         *
         * @return array
         */
        public function getSupportedTransports()
        {
        }
        /**
         * Load configuration.
         *
         * @param integer|null $id ID.
         *
         * @return Message\Configuration
         */
        public function loadConfiguration($id = null)
        {
        }
        /**
         * Save configuration.
         *
         * @param Message\Configuration $configuration Configuration.
         *
         * @return Result
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * Copy configuration.
         *
         * @param integer|string|null $id ID.
         * @return Result|null
         */
        public function copyConfiguration($id)
        {
        }
    }
    /**
     * Class TransportWebHook
     * @package Bitrix\Sender\Integration\Sender\WebHook
     */
    class TransportWebHook implements \Bitrix\Sender\Transport\iBase, \Bitrix\Sender\Transport\iLimitation
    {
        const CODE = self::CODE_WEB_HOOK;
        const MAX_BUFFER_SIZE = 200;
        /** @var Message\Configuration $configuration Configuration. */
        protected $configuration;
        /** @var Transport\CountLimiter $limiter Limiter. */
        protected $limiter;
        /** @var HttpClient $httpClient Http client. */
        protected $httpClient = array();
        /** @var array $buffer Buffer. */
        protected $buffer = array('uri' => null, 'list' => array());
        /**
         * TransportWebHook constructor.
         */
        public function __construct()
        {
        }
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get supported recipient types.
         *
         * @return integer[]
         */
        public function getSupportedRecipientTypes()
        {
        }
        /**
         * Load configuration.
         *
         * @return Message\Configuration
         */
        public function loadConfiguration()
        {
        }
        /**
         * Save configuration.
         *
         * @param Message\Configuration $configuration Configuration.
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * Start.
         */
        public function start()
        {
        }
        /**
         * Send.
         *
         * @param Message\Adapter $message Message.
         *
         * @return bool
         */
        public function send(\Bitrix\Sender\Message\Adapter $message)
        {
        }
        /**
         * End.
         */
        public function end()
        {
        }
        protected function resetBuffer()
        {
        }
        protected function flushBuffer()
        {
        }
        /**
         * Get limiters.
         *
         * @param Message\iBase $message Message.
         * @return Transport\iLimiter[]
         */
        public function getLimiters(\Bitrix\Sender\Message\iBase $message = null)
        {
        }
        protected function getCountLimiter()
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Sender {
    class AllowedSender
    {
        /**
         * Get list of allowed senders
         * @param int|null $forUserId For whom.
         * @return array
         */
        public static function getList($forUserId = null)
        {
        }
        /**
         * Is $email an allowed sender or not
         * @param string $email Sender email.
         * @param int|null $userId For whom.
         * @return bool
         */
        public static function isAllowed($email, $userId = null)
        {
        }
    }
}
namespace Bitrix\Sender\Connector {
    abstract class Base
    {
        protected $fieldPrefix;
        protected $fieldPrefixExtended;
        protected $fieldValues;
        protected $fieldFormName;
        protected $moduleId;
        /** @var  ResultView $resultView View of result. */
        protected $resultView;
        /** @var  integer $dataTypeId Data type ID. */
        protected $dataTypeId = \Bitrix\Sender\Recipient\Type::EMAIL;
        /**
         * @param string $moduleId
         * @return void
         */
        public function setModuleId($moduleId)
        {
        }
        /**
         * @return mixed
         */
        public function getModuleId()
        {
        }
        /**
         * Get data type ID.
         *
         * @return integer
         */
        public function getDataTypeId()
        {
        }
        /**
         * Set data type ID.
         *
         * @param integer $dataTypeId Data type ID.
         * @return void
         */
        public function setDataTypeId($dataTypeId)
        {
        }
        /**
         * @param string $fieldFormName
         * @return void
         */
        public function setFieldFormName($fieldFormName)
        {
        }
        /** @return string */
        public function getFieldFormName()
        {
        }
        /**
         * @param string $fieldPrefix
         * @return void
         */
        public function setFieldPrefix($fieldPrefix)
        {
        }
        /** @return string */
        public function getFieldPrefix()
        {
        }
        /**
         * @param string $fieldPrefixExtended
         * @return void
         */
        public function setFieldPrefixExtended($fieldPrefixExtended)
        {
        }
        /** @return string */
        public function getFieldPrefixExtended()
        {
        }
        /**
         * Set field values.
         *
         * @param array $fieldValues Values.
         * @return void
         */
        public function setFieldValues(array $fieldValues = null)
        {
        }
        /**
         * Get field values.
         *
         * @return array
         */
        public function getFieldValues()
        {
        }
        /**
         * Return true if it has field values.
         *
         * @return bool
         */
        public function hasFieldValues()
        {
        }
        /**
         * @param $id
         * @return string
         */
        public function getFieldId($id)
        {
        }
        /**
         * @param $name
         * @return string
         */
        public function getFieldName($name)
        {
        }
        /**
         * @param $name
         * @param mixed $defaultValue
         * @return null
         */
        public function getFieldValue($name, $defaultValue = null)
        {
        }
        /**
         * @return string
         */
        public function getId()
        {
        }
        /**
         * Get data count.
         *
         * @return integer
         */
        public function getDataCount()
        {
        }
        /**
         * Get data count by type.
         *
         * @return null|array|DataCounter
         */
        protected function getDataCountByType()
        {
        }
        /**
         * Get data counter.
         *
         * @return DataCounter
         */
        final function getDataCounter()
        {
        }
        /**
         * Get result.
         *
         * @return Result
         */
        final function getResult()
        {
        }
        /**
         * Return true if support view of result.
         *
         * @return bool
         */
        public function isResultViewable()
        {
        }
        /**
         * Get result view.
         *
         * @return ResultView
         * @return void
         */
        public function getResultView()
        {
        }
        /**
         * Set result view.
         *
         * @param ResultView $resultView Result view.
         * @return void
         */
        public function setResultView($resultView)
        {
        }
        protected function onInitResultView()
        {
        }
        /**
         * @return bool
         */
        public function requireConfigure()
        {
        }
        /**
         * @return array
         */
        public static function getPersonalizeList()
        {
        }
        /**
         * @return string
         */
        public abstract function getName();
        /**
         * @return string
         */
        public abstract function getCode();
        /**
         *
         *
         * @return array|\Bitrix\Main\DB\Result|\CAllDBResult
         */
        public abstract function getData();
        /**
         * @param array $selectList
         *
         * @return array|\Bitrix\Main\DB\Result|\CAllDBResult
         */
        public function getDataWithCustomSelect($selectList = [])
        {
        }
        /**
         * @return string
         */
        public abstract function getForm();
        /**
         * Get fields for statistic
         * @return array
         */
        public function getStatFields()
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Sender\Connectors {
    class Recipient extends \Bitrix\Sender\Connector\Base
    {
        /**
         * @return string
         */
        public function getName()
        {
        }
        /**
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * @return \Bitrix\Main\DB\Result
         */
        public function getData()
        {
        }
        /**
         * @return string
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getForm()
        {
        }
    }
    class BlackList extends \Bitrix\Sender\Connector\Base
    {
        /**
         * @return string
         */
        public function getName()
        {
        }
        /**
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * @return \Bitrix\Main\DB\Result
         */
        public function getData()
        {
        }
        /**
         * @return string
         */
        public function getForm()
        {
        }
    }
}
namespace Bitrix\Sender\Connector {
    /**
     * Class BaseFilter
     * @package Bitrix\Sender\Connector
     */
    abstract class BaseFilter extends \Bitrix\Sender\Connector\Base
    {
        const FIELD_FOR_PRESET_ALL = 'SENDER_SELECT_ALL';
        const FIELD_PRESET_ID = 'BX_PRESET_ID';
        /** @var string	$filterSettingsUri Filter settings uri. */
        protected $filterSettingsUri = '';
        /**
         * Get form html.
         *
         * @return string
         */
        public final function getForm()
        {
        }
        /**
         * Get form html.
         *
         * @param array $params
         *
         * @return string
         */
        public final function getCustomForm(array $params)
        {
        }
        private function buildUi($filterId, $currentPresetId, $presets, $filter)
        {
        }
        /**
         * Get date-from field value.
         *
         * @param string $name Field name.
         * @param string|null $defaultValue Default value.
         * @return null|string
         */
        protected function getFieldDateFrom($name, $defaultValue = null)
        {
        }
        /**
         * Get date-to field value.
         *
         * @param string $name Field name.
         * @param string|null $defaultValue Default value.
         * @return null|string
         */
        protected function getFieldDateTo($name, $defaultValue = null)
        {
        }
        public function getUiFilterId()
        {
        }
        public function getCurrentPresetId()
        {
        }
        public function setFieldValues(array $fieldValues = null)
        {
        }
        /**
         * Get filters.
         * Return array of field filters \Bitrix\Main\UI\Filter\Field
         *
         * @return \Bitrix\Main\UI\Filter\Field[]
         */
        public static function getUiFilterFields()
        {
        }
        /**
         * Get UI filter fields.
         *
         * @param string $id ID.
         * @return array|null
         */
        public static function getUiFilterField($id)
        {
        }
        /**
         * Get Ui filter data.
         *
         * @param string $filterId Filter ID.
         * @return array
         */
        public static function getUiFilterData($filterId)
        {
        }
        /**
         * Get Ui filter presets.
         *
         * @return array
         */
        protected static function getUiFilterPresets()
        {
        }
        /**
         * Get Ui filter presets.
         *
         * @param null $filter
         *
         * @return array
         */
        private static function getFilterFields($filter = null)
        {
        }
        protected function clearFilterState($filterId)
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Sender\Connectors {
    class Contact extends \Bitrix\Sender\Connector\BaseFilter
    {
        /**
         * @return string
         */
        public function getName()
        {
        }
        /**
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get data count by type.
         *
         * @return null|array
         */
        public function getDataCountByType()
        {
        }
        /**
         *
         * @return \Bitrix\Main\DB\Result|array
         */
        public function getData()
        {
        }
        /**
         * Get filter fields.
         *
         * @return array
         */
        public static function getUiFilterFields()
        {
        }
        /**
         * @param array $selectList
         *
         * @return array|\Bitrix\Main\DB\Result|\CAllDBResult
         */
        public function getDataWithCustomSelect($selectList = [])
        {
        }
    }
    class Subscriber extends \Bitrix\Sender\Connector\Base
    {
        /**
         * @return string
         */
        public function getName()
        {
        }
        /**
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * @return \Bitrix\Main\DB\Result
         */
        public function getData()
        {
        }
        /**
         * @return string
         */
        public function getForm()
        {
        }
    }
    class UnSubscribers extends \Bitrix\Sender\Connector\Base
    {
        /**
         * Return name
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Return code
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Return email list
         * @return \Bitrix\Main\DB\Result
         */
        public function getData()
        {
        }
        /**
         * Return form layout
         * @return string
         */
        public function getForm()
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Sender\Mail {
    /**
     * Class TransportMail
     * @package Bitrix\Sender\Integration\Sender\Mail
     */
    class TransportMail implements \Bitrix\Sender\Transport\iBase, \Bitrix\Sender\Transport\iDuration, \Bitrix\Sender\Transport\iLimitation
    {
        const CODE = self::CODE_MAIL;
        /** @var Message\Configuration $configuration Configuration. */
        protected $configuration;
        /** @var Mail\Context $mailContext Mail context. */
        protected $mailContext;
        /** @var Mail\Address $mailAddress Mail address. */
        protected $mailAddress;
        /**
         * TransportMail constructor.
         */
        public function __construct()
        {
        }
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get supported recipient types.
         *
         * @return integer[]
         */
        public function getSupportedRecipientTypes()
        {
        }
        /**
         * Load configuration.
         *
         * @param string|null $id ID.
         *
         * @return Message\Configuration
         */
        public function loadConfiguration($id = null)
        {
        }
        /**
         * Save configuration.
         *
         * @param Message\Configuration $configuration Configuration.
         *
         * @return Result|null
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * Start.
         *
         * @return void
         */
        public function start()
        {
        }
        /**
         * Send.
         *
         * @param Message\Adapter $message Message.
         *
         * @return bool
         */
        public function send(\Bitrix\Sender\Message\Adapter $message)
        {
        }
        /**
         * End.
         *
         * @return void
         */
        public function end()
        {
        }
        /**
         * Get send duration in seconds.
         *
         * @param Message\Adapter|null $message Message.
         *
         * @return float
         */
        public function getDuration(\Bitrix\Sender\Message\Adapter $message = null)
        {
        }
        /**
         * Get limiters.
         *
         * @param Message\iBase $message Message.
         * @return Transport\iLimiter[]
         */
        public function getLimiters(\Bitrix\Sender\Message\iBase $message = null)
        {
        }
        protected function getSenderLinkProtocol()
        {
        }
        protected function canTrackMails()
        {
        }
        protected function getMailContext()
        {
        }
        /**
         * Get clean address.
         *
         * @param string $address Address.
         * @return string|null
         */
        protected function getCleanMailAddress($address)
        {
        }
    }
}
namespace Bitrix\Sender\Message {
    /**
     * Interface iMailable
     * @package Bitrix\Sender\Message
     */
    interface iMailable
    {
    }
}
namespace Bitrix\Sender\Integration\Sender\Mail {
    /**
     * Class MessageMail
     * @package Bitrix\Sender\Integration\Sender\Mail
     */
    class MessageMail implements \Bitrix\Sender\Message\iBase, \Bitrix\Sender\Message\iMailable
    {
        const CODE = self::CODE_MAIL;
        /** @var Message\Configuration $configuration Configuration. */
        protected $configuration;
        /** @var integer $configurationId Configuration ID. */
        protected $configurationId;
        protected $closureRefCountFix;
        /**
         * MessageMail constructor.
         */
        public function __construct()
        {
        }
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get supported transports.
         *
         * @return array
         */
        public function getSupportedTransports()
        {
        }
        /**
         * Set configuration options
         * @return void
         */
        protected function setConfigurationOptions()
        {
        }
        /**
         * Load configuration.
         *
         * @param string|null $id ID.
         *
         * @return Message\Configuration
         */
        public function loadConfiguration($id = null)
        {
        }
        /**
         * Save configuration.
         *
         * @param Message\Configuration $configuration Configuration.
         * @return Result|null
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * Copy configuration.
         *
         * @param integer|string|null $id ID.
         * @return Result|null
         */
        public function copyConfiguration($id)
        {
        }
        /**
         * Remove php code from html
         * @param string $html Input html.
         * @return string
         */
        protected function removePhp($html)
        {
        }
        /**
         * Get main body.
         *
         * @return string
         */
        public function getMailBody()
        {
        }
        /**
         * Get template
         * @return array|null
         */
        protected function getTemplate()
        {
        }
        /**
         * Add option headers to headers
         * @param array $headers Headers.
         * @return array
         */
        protected static function fillHeadersByOptionHeaders(array $headers = array())
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Sender {
    class Holiday
    {
        /** @var  string $code */
        private $code;
        /** @var  Date $date */
        private $date;
        /** @var  Date $dateFrom */
        private $dateFrom;
        /** @var  Date $dateTo */
        private $dateTo;
        /** @var array $list */
        private static $list = [
            'feb14' => [14, 2],
            // code => [day, month]
            'feb23' => [23, 2],
            'mar8' => [8, 3],
            'halloween' => [31, 10],
            'thanks' => [22, 11],
            'christmas' => [25, 12],
            'new_year' => [[1, 12], [10, 1]],
        ];
        /** @var int $defaultYear */
        private static $defaultYear = 2049;
        /**
         * Get list by language.
         *
         * @param string|mixed $languageId Language ID.
         * @return self[]
         */
        public static function getList($languageId = LANGUAGE_ID)
        {
        }
        /**
         * Holiday constructor.
         *
         * @param string $code Code.
         * @param Date|null $date Date.
         * @param Date $dateFrom Date from.
         * @param Date $dateTo Date to.
         */
        public function __construct($code, \Bitrix\Main\Type\Date $date = null, \Bitrix\Main\Type\Date $dateFrom, \Bitrix\Main\Type\Date $dateTo)
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get upper code.
         *
         * @return string
         */
        public function getCodeUpper()
        {
        }
        /**
         * Get name.
         *
         * @param string $template Template of name.
         * @param string $placeholder Placeholder of name in template.
         * @return string
         */
        public function getName($template = null, $placeholder = '%name%')
        {
        }
        /**
         * Get formatted date.
         *
         * @return string
         */
        public function formatDate()
        {
        }
        /**
         * Get date.
         *
         * @return Date
         */
        public function getDate()
        {
        }
        /**
         * Get day.
         *
         * @return int
         */
        public function getDay()
        {
        }
        /**
         * Get day.
         *
         * @return int
         */
        public function getMonth()
        {
        }
        /**
         * Get date from.
         *
         * @return Date
         */
        public function getDateFrom()
        {
        }
        /**
         * Get date to.
         *
         * @return Date
         */
        public function getDateTo()
        {
        }
        private static function createDate($day, $month, $year = null)
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Crm\ReturnCustomer {
    /**
     * Class TransportBase
     * @package Bitrix\Sender\Integration\Crm\ReturnCustomer;
     */
    class TransportBase implements \Bitrix\Sender\Transport\iBase
    {
        const CODE = self::CODE_UNDEFINED;
        const CODE_RC_LEAD = 'rc_lead';
        const CODE_RC_DEAL = 'rc_deal';
        /** @var Message\Configuration $configuration Configuration. */
        protected $configuration;
        /** @var  Queue|null Queue. */
        protected $responsibleQueue;
        /**
         * Transport constructor.
         */
        public function __construct()
        {
        }
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get supported recipient types.
         *
         * @return integer[]
         */
        public function getSupportedRecipientTypes()
        {
        }
        /**
         * Get configuration.
         *
         * @return string
         */
        public function loadConfiguration()
        {
        }
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * Start.
         *
         * @return void
         */
        public function start()
        {
        }
        /**
         * Send.
         *
         * @param Message\Adapter $message Message.
         * @return bool
         */
        public function send(\Bitrix\Sender\Message\Adapter $message)
        {
        }
        /**
         * End.
         *
         * @return void
         */
        public function end()
        {
        }
        protected function detectDealCategoryId($categoryId, \Bitrix\Crm\EntityManageFacility $facility)
        {
        }
        protected function getLastDealCategoryId(\Bitrix\Crm\EntityManageFacility $facility)
        {
        }
    }
    /**
     * Class TransportDeal
     * @package Bitrix\Sender\Integration\Crm\ReturnCustomer
     */
    class TransportDeal extends \Bitrix\Sender\Integration\Crm\ReturnCustomer\TransportBase
    {
        const CODE = self::CODE_RC_DEAL;
    }
}
namespace Bitrix\Sender\Message {
    /**
     * Interface iHideable
     * @package Bitrix\Sender\Message
     */
    interface iHideable
    {
        /**
         * Return true if is hidden.
         *
         * @return bool
         */
        public function isHidden();
    }
    /**
     * Interface iReturnCustomer
     * @package Bitrix\Sender\Message
     */
    interface iReturnCustomer
    {
    }
}
namespace Bitrix\Sender\Integration\Crm\ReturnCustomer {
    /**
     * Class MessageBase
     * @package Bitrix\Sender\Integration\Crm\ReturnCustomer
     */
    class MessageBase implements \Bitrix\Sender\Message\iBase, \Bitrix\Sender\Message\iReturnCustomer
    {
        const CODE = self::CODE_UNDEFINED;
        const CODE_RC_LEAD = 'rc_lead';
        const CODE_RC_DEAL = 'rc_deal';
        /** @var Message\Configuration $configuration Configuration. */
        protected $configuration;
        /** @var integer $configurationId Configuration ID. */
        protected $configurationId;
        /**
         * MessageSms constructor.
         */
        public function __construct()
        {
        }
        /**
         * Get name.
         * @return string
         */
        public function getName()
        {
        }
        public function getCode()
        {
        }
        public function getSupportedTransports()
        {
        }
        protected function setConfigurationOptions()
        {
        }
        /**
         * Load configuration.
         *
         * @param integer|null $id ID.
         *
         * @return Message\Configuration
         */
        public function loadConfiguration($id = null)
        {
        }
        /**
         * Save configuration.
         *
         * @param Message\Configuration $configuration Configuration.
         *
         * @return Result
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * Remove configuration.
         *
         * @param integer $id ID.
         * @return bool
         */
        public function removeConfiguration($id)
        {
        }
        /**
         * Copy configuration.
         *
         * @param integer|string|null $id ID.
         * @return Result|null
         */
        public function copyConfiguration($id)
        {
        }
        /**
         * Get sms sender.
         *
         * @return string
         */
        public function getSmsSender()
        {
        }
    }
    /**
     * Class MessageLead
     * @package Bitrix\Sender\Integration\Crm\ReturnCustomer;
     */
    class MessageLead extends \Bitrix\Sender\Integration\Crm\ReturnCustomer\MessageBase implements \Bitrix\Sender\Message\iHideable
    {
        const CODE = self::CODE_RC_LEAD;
        /**
         * Get name.
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Return true if is hidden.
         *
         * @return bool
         */
        public function isHidden()
        {
        }
        protected function setConfigurationOptions()
        {
        }
    }
    /**
     * Class Service
     * @package Bitrix\Sender\Integration\Crm\ReturnCustomer
     */
    class Service
    {
        /**
         * Return true if can use.
         *
         * @return bool
         */
        public static function canUse()
        {
        }
        /**
         * Service can be used, but is not available because of plan.
         *
         * @return bool
         */
        public static function isAvailable()
        {
        }
        /**
         * Return true if current user can use.
         *
         * @return bool
         */
        public static function canCurrentUserUse()
        {
        }
        /**
         * Return true if lead enabled.
         *
         * @return bool
         */
        public static function isLeadEnabled()
        {
        }
        /**
         * Get crm entity type ID by recipient type.
         *
         * @param string $recipientType Recipient type.
         * @return bool
         */
        public static function getTypeIdByRecipientType($recipientType)
        {
        }
        /**
         * Get crm entity type ID by recipient type ID.
         *
         * @param int $recipientTypeId Recipient type ID.
         * @return int|null
         */
        public static function getTypeIdByRecipientTypeId($recipientTypeId)
        {
        }
    }
    /**
     * Class MessageDeal
     * @package Bitrix\Sender\Integration\Crm\ReturnCustomer;
     */
    class MessageDeal extends \Bitrix\Sender\Integration\Crm\ReturnCustomer\MessageBase
    {
        const CODE = self::CODE_RC_DEAL;
        /**
         * Get name.
         * @return string
         */
        public function getName()
        {
        }
        protected function setConfigurationOptions()
        {
        }
    }
    /**
     * Class TransportLead
     * @package Bitrix\Sender\Integration\Crm\ReturnCustomer
     */
    class TransportLead extends \Bitrix\Sender\Integration\Crm\ReturnCustomer\TransportBase
    {
        const CODE = self::CODE_RC_LEAD;
    }
}
namespace Bitrix\Sender\Integration\Crm\Connectors {
    /**
     * Class QueryData
     * @package Bitrix\Sender\Integration\Crm\Connectors
     */
    class QueryData
    {
        /**
         * Get unionized data.
         *
         * @param Entity\Query[] $queries Queries.
         * @param integer $dataTypeId Data type ID.
         * @param PageNavigation $nav Nav.
         * @return Entity\Query
         */
        public static function getUnionizedQuery(array $queries, $dataTypeId = null, \Bitrix\Sender\UI\PageNavigation $nav = null)
        {
        }
        /**
         * Get unionized data.
         *
         * @param Entity\Query $query Query.
         * @return Result
         */
        public static function getUnionizedData(\Bitrix\Main\Entity\Query $query)
        {
        }
        private static function prepare(\Bitrix\Main\Entity\Query $query, $dataTypeId = null)
        {
        }
        private static function exec(\Bitrix\Main\Entity\Query $query)
        {
        }
        /**
         * Get data.
         *
         * @param Entity\Query $query Query.
         * @param integer $dataTypeId Data type ID.
         * @return Result
         */
        public static function getData(\Bitrix\Main\Entity\Query $query, $dataTypeId = null)
        {
        }
        protected static function getSelectFields($dataTypeId = null)
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Crm\Connectors\Personalize {
    abstract class BasePersonalize
    {
        private const COMMA = ',';
        public static function getMap()
        {
        }
        public static function getEntityFields($entityType)
        {
        }
        protected static function getAssignedByFields()
        {
        }
        /**
         * Get filter user fields.
         *
         * @param integer $entityTypeId Entity type ID.
         *
         * @return array
         */
        public static function getFilterUserFields($entityTypeId)
        {
        }
        /**
         * @param string $entityType
         * @param array $entityIds
         * @param array|string[] $usedFields
         * @param string $sortBy
         * @param string $sortOrder
         *
         * @return array
         * @throws Bitrix\Main\ArgumentException
         * @throws Bitrix\Main\ObjectPropertyException
         * @throws Bitrix\Main\SystemException
         */
        public static function getData(string $entityType, array $entityIds, array $usedFields = ['*'], string $sortBy = 'id', string $sortOrder = 'asc')
        {
        }
        /**
         * @param $entityType
         * @param $objDocument
         */
        private static function addAddressFieldsValue($entityType, $usedFields, &$objDocument)
        {
        }
        private static function buildAddress($entityType, $address)
        {
        }
        /**
         * @param $usedFields
         * @param $entityType
         * @param $objDocument
         */
        private static function addMultiFieldsValue($usedFields, $entityType, &$objDocument)
        {
        }
        /**
         * @param $className
         * @param $objDocument
         */
        private static function addUserFieldsValue($className, &$objDocument)
        {
        }
        private static function getBool($value)
        {
        }
        /**
         * @param $assignedByID
         * @param $objDocument
         */
        private static function addAssignedByFieldsValue($assignedByID, &$objDocument)
        {
        }
        /**
         * @param $usedField
         * @param $entityType
         * @param $objDocument
         */
        private static function checkUsedField($usedField, $entityType, &$objDocument)
        {
        }
        /**
         * @param $typeId
         * @param $ids
         *
         * @return string[]
         * @throws Bitrix\Main\ArgumentException
         * @throws Bitrix\Main\ObjectPropertyException
         * @throws Bitrix\Main\SystemException
         */
        protected static function getCommunicationFieldsValues($typeId, $ids)
        {
        }
    }
    class Contact extends \Bitrix\Sender\Integration\Crm\Connectors\Personalize\BasePersonalize
    {
        public static function getEntityFields($entityType)
        {
        }
    }
    class Company extends \Bitrix\Sender\Integration\Crm\Connectors\Personalize\BasePersonalize
    {
        public static function getEntityFields($entityType)
        {
        }
    }
    class Lead extends \Bitrix\Sender\Integration\Crm\Connectors\Personalize\BasePersonalize
    {
        public static function getEntityFields($entityType)
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Crm\Connectors {
    /**
     * Class QueryCount
     * @package Bitrix\Sender\Integration\Crm\Connectors
     */
    class QueryCount
    {
        /**
         * Get unionized count.
         *
         * @param Entity\Query[] $queries Queries.
         * @param integer $dataTypeId Data type ID.
         * @return array
         */
        public static function getUnionizedCount(array $queries, $dataTypeId = null)
        {
        }
        /**
         * Get count.
         *
         * @param Entity\Query $query Query.
         * @param integer $dataTypeId Data type ID.
         * @return array
         */
        public static function getCount(\Bitrix\Main\Entity\Query $query, $dataTypeId = null)
        {
        }
        /**
         * Execute query.
         *
         * @param Entity\Query $query Query.
         * @param integer $dataTypeId Data type ID.
         *
         * @return array
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        protected static function exec(\Bitrix\Main\Entity\Query $query, $dataTypeId = null)
        {
        }
        /**
         * Prepare query.
         *
         * @param Entity\Query $query Query.
         * @param integer $dataTypeId Data type ID.
         * @return Entity\Query
         */
        private static function prepare(\Bitrix\Main\Entity\Query $query, $dataTypeId = null)
        {
        }
        private static function getTypes()
        {
        }
    }
    /**
     * Class Helper
     * @package Bitrix\Sender\Integration\Crm\Connectors
     */
    class Helper
    {
        public static $runtimeByEntity = [];
        private const PERSONALIZE_NAMESPACE = "\\Bitrix\\Sender\\Integration\\Crm\\Connectors\\Personalize\\";
        /**
         * Create Orm expression field for selecting multi field.
         *
         * @param string $entityName Entity name.
         * @param string $multiFieldTypeId Multi-field type ID.
         * @return Orm\Fields\ExpressionField
         */
        public static function createExpressionMultiField($entityName, $multiFieldTypeId)
        {
        }
        /**
         * Get personalize field list.
         *
         * @return array
         */
        public static function getPersonalizeList()
        {
        }
        public static function buildPersonalizeList($entityType)
        {
        }
        public static function getData($entityType, $entityIds, $fields = ['*'])
        {
        }
        public static function getPersonalizeFieldsFromConnectors($isTrigger = false)
        {
        }
        /**
         * Get filter user fields.
         *
         * @param integer $entityTypeId Entity type ID.
         * @return array
         */
        public static function getFilterUserFields($entityTypeId)
        {
        }
        /**
         * Prepare query select.
         *
         * @param Entity\Query $query Query.
         * @param integer $dataTypeId Data type ID.
         * @return Entity\Query
         */
        public static function prepareQuery(\Bitrix\Main\Entity\Query $query, $dataTypeId = null)
        {
        }
        protected static function getImSqlExpression(\Bitrix\Main\Entity\Query $query)
        {
        }
        /**
         * Get runtime by entity.
         *
         * @param string $entityTypeName Entity type name.
         * @return Entity\ExpressionField[]
         */
        public static function getRuntimeByEntity($entityTypeName = '')
        {
        }
        protected static function processRuntimeFilter(array &$filter, $entityTypeName = '')
        {
        }
        /**
         * Get filter by entity.
         *
         * @param array $fields Fields.
         * @param array $values Values.
         * @param array $entityTypeNames Entity type names.
         * @return array
         */
        public static function getFilterByEntity(array $fields = array(), array $values = array(), array $entityTypeNames = array())
        {
        }
        private static function isFieldFilterable(array $field = array(), array $values = array())
        {
        }
        /**
         * Get filter by fields.
         *
         * @param array $fields Fields.
         * @param array $values Values.
         * @param string $entityTypeName Entity type name.
         * @return array
         */
        public static function getFilterByFields(array $fields = array(), array $values = array(), $entityTypeName = '')
        {
        }
        protected static function getFilterFieldKey(array $field)
        {
        }
        protected static function isFieldTypeFilter($type)
        {
        }
        protected static function setFieldTypeFilter($filterKey, array $fieldData, &$filter)
        {
        }
        protected static function getCommunicationTypeFilter(array $commTypes, &$filter, $extraCallbackParams = [])
        {
        }
        protected static function getNoPurchasesFilter($value, &$filter, $extraCallbackParams = [])
        {
        }
        protected static function productSourceFilter($value, &$filter, $extraCallbackParams = [])
        {
        }
        protected static function getDealCategoryFilter($values, &$filter, $extraCallbackParams = [])
        {
        }
        /**
         * Callback on draw of result view.
         *
         * @param array &$row Row.
         * @return void
         */
        public function onResultViewDraw(array &$row)
        {
        }
        protected function getCrmStatusName($statusType, $statusId)
        {
        }
        protected function getResultViewTitle($entityTypeId, $entityId, $title, $secondTitle = null, $thirdTitle = null)
        {
        }
        protected function getPathToDetail($entityTypeId, $entityId)
        {
        }
        public static function isCrmSaleEnabled()
        {
        }
    }
    /**
     * Class Lead
     * @package Bitrix\Sender\Integration\Crm\Connectors
     */
    class Lead extends \Bitrix\Sender\Connector\BaseFilter
    {
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get query.
         *
         * @return null|Entity\Query
         */
        public function getQuery($selectList = [])
        {
        }
        /**
         * Get data count by type.
         *
         * @return null|array
         */
        protected function getDataCountByType()
        {
        }
        /**
         * Get data.
         *
         * @return array|Result
         */
        public function getData()
        {
        }
        /**
         * Get personalize field list.
         *
         * @return array
         */
        public static function getPersonalizeList()
        {
        }
        /**
         * Get filter fields.
         *
         * @return array
         */
        public static function getUiFilterFields()
        {
        }
        /**
         * Get filter presets.
         *
         * @return array
         */
        public static function getUiFilterPresets()
        {
        }
        /**
         * Return true if support view of result.
         *
         * @return bool
         */
        public function isResultViewable()
        {
        }
        protected function onInitResultView()
        {
        }
        public function getUiFilterId()
        {
        }
        /**
         * Get fields for statistic
         * @return array
         */
        public function getStatFields()
        {
        }
        /**
         * @param array $selectList
         *
         * @return array|Result|\CAllDBResult
         */
        public function getDataWithCustomSelect($selectList = [])
        {
        }
    }
    /**
     * Class Client
     * @package Bitrix\Sender\Integration\Crm\Connectors
     */
    class Client extends \Bitrix\Sender\Connector\BaseFilter
    {
        const PRODUCT_SOURCE_ORDERS_ALL = "ORDERS_ALL";
        const PRODUCT_SOURCE_ORDERS_PAID = "ORDERS_PAID";
        const PRODUCT_SOURCE_ORDERS_UNPAID = "ORDERS_UNPAID";
        const PRODUCT_SOURCE_DEALS_ALL = "DEALS_ALL";
        const PRODUCT_SOURCE_DEALS_PROCESS = "DEALS_PROCESS";
        const PRODUCT_SOURCE_DEALS_SUCCESS = "DEALS_SUCCESS";
        const PRODUCT_SOURCE_DEALS_FAILURE = "DEALS_FAILURE";
        const API_VERSION = 3;
        const YES = 'Y';
        const NO = 'N';
        const DEAL_CATEGORY_ID = "DEAL_CATEGORY_ID";
        private $crmEntityFilter = null;
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get queries.
         *
         * @return Entity\Query[]
         */
        public function getQueries($selectList = [])
        {
        }
        protected function getContactQuery($selectList = [])
        {
        }
        protected function getCompanyQuery()
        {
        }
        protected function addCrmEntityReferences(\Bitrix\Main\Entity\Query $query)
        {
        }
        /**
         * Add filter to exclude contacts/companies who has deals/orders in $filterValue period
         * @param Entity\Query $query Modifying query.
         * @param array $filterValue No purchases period.
         * @param array $productSource Purchases source (deal, order, etc).
         * @return void
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\ObjectException
         * @throws \Bitrix\Main\SystemException
         */
        protected function addNoPurchasesFilter($query, $filterValue, $productSource)
        {
        }
        protected function prepareQueryCollection(\Bitrix\Main\Entity\Query $query)
        {
        }
        protected function getQueryCollectionForProductsFilter(\Bitrix\Main\Entity\Query $query, $productIds, $productSource)
        {
        }
        protected function getCrmReferencedEntityFilter($entityTypeName)
        {
        }
        protected function getCrmEntityFilter($entityTypeName, $isReferenced = false)
        {
        }
        protected static function getCrmDocumentTypes()
        {
        }
        /**
         * Get data count by type.
         *
         * @return array
         */
        protected function getDataCountByType()
        {
        }
        /**
         * Get data.
         *
         * @return array|\Bitrix\Main\DB\Result
         */
        public function getData()
        {
        }
        /**
         * Get personalize field list.
         *
         * @return array
         */
        public static function getPersonalizeList()
        {
        }
        public static function getDealCategoryList()
        {
        }
        public static function getDealCategoryStageList()
        {
        }
        /**
         * Get filter fields.
         *
         * @return array
         */
        public static function getUiFilterFields()
        {
        }
        /**
         * Get filter presets.
         *
         * @return array
         */
        public static function getUiFilterPresets()
        {
        }
        /**
         * Return true if support view of result.
         *
         * @return bool
         */
        public function isResultViewable()
        {
        }
        protected function onInitResultView()
        {
        }
        protected function getProductSkuIds($productIds)
        {
        }
        public function getUiFilterId()
        {
        }
        /**
         * Get fields for statistic
         * @return array
         */
        public function getStatFields()
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Crm {
    /**
     * Class EventHandler
     * @package Bitrix\Sender\Integration\Crm
     */
    class EventHandler
    {
        private const TIME_LINE_COUNT_LIMIT = 500;
        /**
         * Handler of event sender/OnAfterPostingSendRecipient.
         *
         * @param array $eventData Event.
         * @param Entity\Letter $letter Letter.
         */
        public static function onAfterPostingSendRecipient(array $eventData, \Bitrix\Sender\Entity\Letter $letter)
        {
        }
        /**
         * Handler of event sender/onAfterPostingSendRecipientMultiple.
         *
         * @param array $eventDataArray Event[].
         * @param Entity\Letter $letter Letter.
         */
        public static function onAfterPostingSendRecipientMultiple(array $eventDataArray, \Bitrix\Sender\Entity\Letter $letter)
        {
        }
        /**
         * @return string
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function handleTimeLineEvents($letterId)
        {
        }
        protected static function addTimeLineEvent(\Bitrix\Crm\Integrity\ActualEntitySelector $selector, \Bitrix\Sender\Entity\Letter $letter, $recipient)
        {
        }
        protected static function buildTimeLineEvent(\Bitrix\Crm\Integrity\ActualEntitySelector $selector, \Bitrix\Sender\Entity\Letter $letter, $recipient)
        {
        }
        protected static function getEntitySelector()
        {
        }
        protected static function getEntitySelectorById($entityTypeId, $entityId)
        {
        }
        protected static function getEntitySelectorByRecipient($recipientTypeId, $recipientCode)
        {
        }
        /**
         * lock table from selecting of the other agents
         * @return bool
         * @throws SqlQueryException
         * @throws \Bitrix\Main\SystemException
         */
        protected static function lockTimelineQueue($letterId)
        {
        }
        /**
         * unlock table for select
         * @return bool
         * @throws SqlQueryException
         * @throws \Bitrix\Main\SystemException
         */
        protected static function unlockTimelineQueue($letterId)
        {
        }
    }
    /**
     * Class CompanyCard
     * @package Bitrix\Sender\Integration\Crm
     */
    class CompanyCard
    {
        const DATA_PROVIDER_CODE = 'crm/requisites';
        /**
         * Get array.
         *
         * @return array
         */
        public static function getArray()
        {
        }
        /**
         * Get requisites.
         *
         * @return array|null
         */
        public static function getRequisites()
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Crm\Preset {
    /**
     * class Segment
     * @package Bitrix\Sender\Integration\Crm\Preset
     */
    class Segment implements \Bitrix\Sender\Preset\Installation\iInstallable
    {
        /**
         * Get installable ID.
         *
         * @return string
         */
        public function getId()
        {
        }
        /**
         * Return true if it is installed.
         *
         * @return bool
         */
        public function isInstalled()
        {
        }
        /**
         * Install.
         *
         * @return bool
         * @throws SqlQueryException
         */
        public function install()
        {
        }
        /**
         * Uninstall.
         *
         * @return bool
         */
        public function uninstall()
        {
        }
        private function getSegments()
        {
        }
        private static function convertPresetFields($fields)
        {
        }
        private function getInstalledSegment($code = null)
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Crm\Timeline {
    /**
     * Class RecipientEntry
     * @package Bitrix\Sender\Integration\Crm\Timeline
     */
    class RecipientEntry extends \Bitrix\Crm\Timeline\TimelineEntry
    {
        /**
         * Create.
         *
         * @param array $params Parameters.
         * @return array|int
         * @throws Main\ArgumentException
         */
        public static function create(array $params)
        {
        }
        /**
         * Create multi.
         *
         * @param array $params array of Parameters.
         * @return array|int
         * @throws Main\ArgumentException
         */
        public static function createMulti(array $parameters)
        {
        }
    }
    /**
     * Class RecipientController
     * @package Bitrix\Sender\Integration\Crm\Timeline
     */
    class RecipientController extends \Bitrix\Crm\Timeline\EntityController
    {
        /** @var static|null */
        protected static $instance = null;
        /**
         * Get instance.
         *
         * @return static
         */
        public static function getInstance()
        {
        }
        /**
         * Get entity type ID.
         *
         * @return int
         */
        public function getEntityTypeID()
        {
        }
        /**
         * Handler of event 'onCreate'.
         *
         * @param integer $id ID.
         * @param array $params Parameters.
         */
        public function onCreate($id, array $params)
        {
        }
        /**
         * Handler of event 'onModify'.
         *
         * @param integer $id ID.
         * @param array $params Parameters.
         */
        public function onModify($id, array $params)
        {
        }
        /**
         * Handler of event 'onDelete'.
         *
         * @param integer $ownerID Owner ID.
         * @param array $params Parameters.
         */
        public function onDelete($ownerID, array $params)
        {
        }
        /**
         * Prepare history data model.
         *
         * @param array $data Data.
         * @param array|null $options Options.
         * @return array
         */
        public function prepareHistoryDataModel(array $data, array $options = null)
        {
        }
    }
}
namespace Bitrix\Sender\Message {
    /**
     * Interface iAudible
     * @package Bitrix\Sender\Message
     */
    interface iAudible
    {
        /**
         * Check value of audio field and prepare it for DB
         * @param string $optionCode Field code.
         * @param string $newValue New field value.
         * @return bool|string
         */
        public function getAudioValue($optionCode, $newValue);
    }
}
namespace Bitrix\Sender\Integration\VoxImplant {
    /**
     * Class MessageCall
     * @package Bitrix\Sender\Integration\VoxImplant
     */
    class MessageAudioCall implements \Bitrix\Sender\Message\iBase, \Bitrix\Sender\Message\iMailable, \Bitrix\Sender\Message\iAudible
    {
        const CODE = self::CODE_AUDIO_CALL;
        /** @var Message\Configuration $configuration Configuration. */
        protected $configuration;
        /**
         * MessageSms constructor.
         */
        public function __construct()
        {
        }
        /**
         * Get name.
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get supported transports.
         *
         * @return array
         */
        public function getSupportedTransports()
        {
        }
        /**
         * Set configuration options
         *
         * @return void
         */
        protected function setConfigurationOptions()
        {
        }
        /**
         * Load configuration.
         *
         * @param integer|null $id ID.
         *
         * @return Message\Configuration
         */
        public function loadConfiguration($id = null)
        {
        }
        /**
         * Save configuration.
         *
         * @param Message\Configuration $configuration Configuration.
         *
         * @return Result
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * Remove configuration.
         *
         * @param integer $id ID.
         * @return bool
         */
        public function removeConfiguration($id)
        {
        }
        /**
         * Copy configuration.
         *
         * @param integer|string|null $id ID.
         * @return Result|null
         */
        public function copyConfiguration($id)
        {
        }
        /**
         * Check value of audio field and prepare it for DB
         * @param string $optionCode Field code.
         * @param string $newValue New field value.
         * @return bool|string
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function getAudioValue($optionCode, $newValue)
        {
        }
    }
    /**
     * Class Service
     * @package Bitrix\Sender\Integration\VoxImplant
     */
    class Service
    {
        /**
         * Can use.
         *
         * @return bool|null
         */
        public static function canUse()
        {
        }
        /**
         * Send.
         *
         * @param string $outputNumber Id of the line to perform outgoing call.
         * @param string $number Number to be called.
         * @param string $text Text to say.
         * @param string $voiceLanguage TTS voice (@see: Tts\Language).
         * @param string $voiceSpeed TTS voice speed (@see Tts\Speed).
         * @param string $voiceVolume TTS voice volume (@see Tts\Volume).
         * @return string|null
         */
        public static function send($outputNumber, $number, $text, $voiceLanguage = '', $voiceSpeed = '', $voiceVolume = '')
        {
        }
        /**
         * Send recordered audio file.
         *
         * @param string $outputNumber Id of the line to perform outgoing call.
         * @param string $number Number to be called.
         * @param string $fileUrl Audio file to be voiced.
         * @return string|null
         */
        public static function sendFile($outputNumber, $number, $fileUrl)
        {
        }
        /**
         * OnInfoCallResult event handler.
         * @param int  $callId Call id.
         * @param array $callData Call data.
         * @return void
         */
        public static function onInfoCallResult($callId, $callData)
        {
        }
        public static function getFormattedOutputNumber($value)
        {
        }
    }
    /**
     * Class CallLogTable
     * @package Bitrix\Sender\Integration\VoxImplant
     */
    class CallLogTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get recipient id by call id.
         *
         * @return integer|null
         */
        public static function getRecipientIdByCallId($callId)
        {
        }
        /**
         * Get actual call count.
         *
         * @return int
         */
        public static function getActualCallCount()
        {
        }
        protected static function getFilterCurrentDate()
        {
        }
        /**
         * Remove by call id.
         *
         * @param integer $callId Call ID.
         * @return void
         */
        public static function removeByCallId($callId = null)
        {
        }
        /**
         * Get table name.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
    /**
     * Class MessageCall
     * @package Bitrix\Sender\Integration\VoxImplant
     */
    class MessageCall implements \Bitrix\Sender\Message\iBase, \Bitrix\Sender\Message\iMailable
    {
        const CODE = self::CODE_CALL;
        /** @var Message\Configuration $configuration Configuration. */
        protected $configuration;
        /**
         * MessageSms constructor.
         */
        public function __construct()
        {
        }
        /**
         * Get name.
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get supported transports.
         *
         * @return array
         */
        public function getSupportedTransports()
        {
        }
        /**
         * Set configuration options
         * @return void
         */
        protected function setConfigurationOptions()
        {
        }
        /**
         * Load configuration.
         *
         * @param integer|null $id ID.
         *
         * @return Message\Configuration
         */
        public function loadConfiguration($id = null)
        {
        }
        /**
         * Save configuration.
         *
         * @param Message\Configuration $configuration Configuration.
         *
         * @return Result
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * Remove configuration.
         *
         * @param integer $id ID.
         * @return bool
         */
        public function removeConfiguration($id)
        {
        }
        /**
         * Copy configuration.
         *
         * @param integer|string|null $id ID.
         * @return Result|null
         */
        public function copyConfiguration($id)
        {
        }
    }
    /**
     * Class Audio
     * @package Bitrix\Sender\Integration\VoxImplant
     */
    class Audio
    {
        const AUDIO_TYPE_PRESET = 'preset';
        const AUDIO_TYPE_FILE = 'file';
        /** @var string $fileId File name. */
        private $fileId = '';
        /** @var string $presetName Preset name. */
        private $presetName = '';
        /** @var string $messageCode Message code. */
        private $messageCode = '';
        private $duration;
        /**
         * Create instance.
         *
         * @return static
         */
        public static function create()
        {
        }
        /**
         * SpeechRate constructor.
         */
        public function __construct()
        {
        }
        /**
         * With value.
         *
         * @param string $value Value from user interface.
         * @return $this
         */
        public function withValue($value)
        {
        }
        /**
         * With json value.
         *
         * @param string $json Value as json string from DB.
         * @return $this
         */
        public function withJsonString($json)
        {
        }
        /**
         * With message code.
         *
         * @param string $messageCode Message code.
         * @return $this
         */
        public function withMessageCode($messageCode = null)
        {
        }
        /**
         * With file.
         *
         * @param string $fileId File id.
         * @return $this
         */
        public function withFile($fileId = null)
        {
        }
        /**
         * With preset.
         *
         * @param string $presetName Preset code.
         * @return $this
         */
        public function withPreset($presetName = null)
        {
        }
        /**
         * Does audio created from a preset
         *
         * @return bool
         */
        public function createdFromPreset()
        {
        }
        /**
         * Get audio file url
         * @param bool $useAbsoluteUrl Force using absolute url.
         * @return bool|string|null
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function getFileUrl($useAbsoluteUrl = false)
        {
        }
        /**
         * Get value for db (as json string)
         * @return bool|string
         * @throws ArgumentException
         */
        public function getDbValue()
        {
        }
        /**
         * Get default audio preset url for player.
         * @return string
         */
        public function getDefaultFileUrl()
        {
        }
        /**
         * Get file id
         * @return string
         */
        public function getFileId()
        {
        }
        /**
         * Get preset code
         * @return string
         */
        public function getPreset()
        {
        }
        /**
         * Get message code
         * @return string
         */
        public function getMessageCode()
        {
        }
        /**
         * get duration of current audio
         * @return integer
         */
        public function getDuration()
        {
        }
        /**
         * Get preset audio duration
         * @param string $presetCode Preset code.
         * @return bool
         */
        protected function getPresetFileDuration($presetCode)
        {
        }
        /**
         * Get preset code without message code
         * @return string
         */
        private function getPresetCode()
        {
        }
        /**
         * Get mp3 file duration
         * @param int $fileId File id.
         * @return int
         */
        protected function getMp3fileDuration($fileId)
        {
        }
        /**
         * Get length of Id3v2 tag
         * @param string $header Header.
         * @return int
         */
        private function getId3v2TagLength($header)
        {
        }
        /**
         * Get frame info
         * @param string $frame Frame.
         * @return array
         */
        private function getFrameInfo($frame)
        {
        }
        /**
         * Is $fileName an url?
         * @param string $fileName Filename or url.
         * @return bool
         */
        private function isRemoteFile($fileName)
        {
        }
    }
    /**
     * Class Limiter
     * @package Bitrix\Sender\Integration\VoxImplant
     */
    class Limiter implements \Bitrix\Sender\Transport\iLimiter
    {
        /** @var array $parameters Parameters. */
        private $parameters = array();
        /**
         * Limiter constructor.
         */
        public function __construct()
        {
        }
        /**
         * Get max.
         *
         * @return integer
         */
        public function getLimit()
        {
        }
        /**
         * Get current.
         *
         * @return integer
         */
        public function getCurrent()
        {
        }
        /**
         * Get caption.
         *
         * @return string|null
         */
        public function getCaption()
        {
        }
        /**
         * Get parameter.
         *
         * @param string $name Name.
         * @return mixed|null
         */
        public function getParameter($name)
        {
        }
        /**
         * Set parameter.
         *
         * @param string $name Name.
         * @param mixed $value Value.
         * @return $this
         */
        public function setParameter($name, $value)
        {
        }
        /**
         * Get unit name.
         *
         * @return string
         */
        public function getUnitName()
        {
        }
        /**
         * Get unit.
         * Examples:
         * "14 d" is equals 14 days;
         * "d" is equals 1 day.
         *
         * @return string
         */
        public function getUnit()
        {
        }
    }
    /**
     * Class TransportCall
     * @package Bitrix\Sender\Integration\VoxImplant
     */
    class TransportCall implements \Bitrix\Sender\Transport\iBase, \Bitrix\Sender\Transport\iDuration, \Bitrix\Sender\Transport\iLimitation
    {
        const CODE = self::CODE_CALL;
        /** @var Message\Configuration $configuration Configuration. */
        protected $configuration;
        /** @var Transport\CountLimiter $limiter Limiter. */
        protected $limiter;
        /** @var HttpClient $httpClient Http client. */
        protected $httpClient = array();
        public function __construct()
        {
        }
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get supported recipient types.
         *
         * @return integer[]
         */
        public function getSupportedRecipientTypes()
        {
        }
        /**
         * Get configuration.
         *
         * @return string
         */
        public function loadConfiguration()
        {
        }
        /**
         * Save configuration.
         *
         * @param Message\Configuration $configuration
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * Start.
         */
        public function start()
        {
        }
        /**
         * Send.
         *
         * @param Message\Adapter $message
         *
         * @return bool
         */
        public function send(\Bitrix\Sender\Message\Adapter $message)
        {
        }
        /**
         * End.
         */
        public function end()
        {
        }
        /**
         * Get send duration in seconds.
         * Calc: length(message text based) + magic(connection time) / limit(because calls is parallel).
         *
         * @param Message\Adapter|null $message Message.
         *
         * @return float
         */
        public function getDuration(\Bitrix\Sender\Message\Adapter $message = null)
        {
        }
        /**
         * Get limiters.
         *
         * @param Message\iBase $message Message.
         * @return Transport\iLimiter[]
         */
        public function getLimiters(\Bitrix\Sender\Message\iBase $message = null)
        {
        }
        protected function getCountLimiter()
        {
        }
    }
    /**
     * Class TransportCall
     * @package Bitrix\Sender\Integration\VoxImplant
     */
    class TransportAudioCall implements \Bitrix\Sender\Transport\iBase, \Bitrix\Sender\Transport\iDuration, \Bitrix\Sender\Transport\iLimitation
    {
        const CODE = self::CODE_AUDIO_CALL;
        /** @var Message\Configuration $configuration Configuration. */
        protected $configuration;
        /** @var Transport\CountLimiter $limiter Limiter. */
        protected $limiter;
        /** @var HttpClient $httpClient Http client. */
        protected $httpClient = array();
        public function __construct()
        {
        }
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get supported recipient types.
         *
         * @return integer[]
         */
        public function getSupportedRecipientTypes()
        {
        }
        /**
         * Get configuration.
         *
         * @return string
         */
        public function loadConfiguration()
        {
        }
        /**
         * Save configuration.
         *
         * @param Message\Configuration $configuration Configuration.
         * @return void
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * Start.
         * @return void
         */
        public function start()
        {
        }
        /**
         * Send.
         *
         * @param Message\Adapter $message Message.
         *
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function send(\Bitrix\Sender\Message\Adapter $message)
        {
        }
        /**
         * End.
         * @return void
         */
        public function end()
        {
        }
        /**
         * Get send duration in seconds.
         * Calc: length(message text based) + magic(connection time) / limit(because calls is parallel).
         *
         * @param Message\Adapter|null $message Message.
         *
         * @return float
         */
        public function getDuration(\Bitrix\Sender\Message\Adapter $message = null)
        {
        }
        /**
         * Get limiters.
         *
         * @param Message\iBase $message Message.
         * @return Transport\iLimiter[]
         */
        public function getLimiters(\Bitrix\Sender\Message\iBase $message = null)
        {
        }
        /**
         * Get count limiter
         * @return Limiter
         */
        protected function getCountLimiter()
        {
        }
    }
    /**
     * Class SpeechRate
     * @package Bitrix\Sender\Integration\VoxImplant
     */
    class SpeechRate
    {
        /** @var string $speedId Speed ID. */
        private $speedId;
        /** @var string $text Text. */
        private $text = '';
        /**
         * Create instance.
         *
         * @return static
         */
        public static function create()
        {
        }
        /**
         * SpeechRate constructor.
         */
        public function __construct()
        {
        }
        /**
         * With speed.
         *
         * @param string|null $speedId
         * @return $this
         */
        public function withSpeed($speedId = null)
        {
        }
        /**
         * With text.
         *
         * @param string $text
         * @return $this
         */
        public function withText($text = '')
        {
        }
        /**
         * Return speech duration of text.
         *
         * @return integer
         */
        public function getDuration()
        {
        }
        private function getRatioPerChar()
        {
        }
        /**
         * Get list of rates: chars in 30 seconds.
         *
         * @return array
         */
        public static function getList()
        {
        }
        /**
         * Get base interval in seconds.
         *
         * @return integer
         */
        public static function getBaseInterval()
        {
        }
    }
}
namespace Bitrix\Sender\Integration\MessageService\Sms {
    /**
     * Class TransportSms
     * @package Bitrix\Sender\Integration\MessageService\Sms
     */
    class TransportSms implements \Bitrix\Sender\Transport\iBase, \Bitrix\Sender\Transport\iLimitation
    {
        const CODE = self::CODE_SMS;
        /** @var Message\Configuration $configuration Configuration. */
        protected $configuration;
        /** @var Transport\CountLimiter[] $limiters Limiters. */
        protected $limiters;
        /** @var HttpClient $httpClient Http client. */
        protected $httpClient = array();
        public function __construct()
        {
        }
        public function getName()
        {
        }
        public function getCode()
        {
        }
        /**
         * Get supported recipient types.
         *
         * @return integer[]
         */
        public function getSupportedRecipientTypes()
        {
        }
        public function loadConfiguration()
        {
        }
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        public function start()
        {
        }
        public function send(\Bitrix\Sender\Message\Adapter $message)
        {
        }
        public function end()
        {
        }
        /**
         * Get limiters.
         *
         * @param Message\iBase $message Message.
         * @return Transport\iLimiter[]
         */
        public function getLimiters(\Bitrix\Sender\Message\iBase $message = null)
        {
        }
    }
    /**
     * Class Service
     * @package Bitrix\Sender\Integration\MessageService\Sms
     */
    class Service
    {
        public static function canUse()
        {
        }
        /**
         * Get providers.
         *
         * @return array
         */
        public static function getProviders()
        {
        }
        /**
         * Get sender names.
         *
         * @return array
         */
        public static function getSenderNames()
        {
        }
        /**
         * Get daily limits.
         *
         * @return array
         */
        public static function getDailyLimits()
        {
        }
        /**
         * Send.
         *
         * @param string $senderId Sender ID.
         * @param string $from From number.
         * @param string $to To number.
         * @param string $text Text.
         * @param integer $authorId Author ID.
         * @return bool
         */
        public static function send($senderId, $from, $to, $text, $authorId = 1)
        {
        }
        /**
         * Get manage url.
         *
         * @return string
         */
        public static function getManageUrl()
        {
        }
        /**
         * Get limits url.
         *
         * @return string
         */
        public static function getLimitsUrl()
        {
        }
        /**
         * @param string $senderId Sender id.
         * @return array Simple list of sender From aliases
         */
        protected static function getSenderFromList($senderId)
        {
        }
        /**
         * @param bool $getFromList
         * @return array Senders information.
         */
        protected static function getSenderInfoList($getFromList = false)
        {
        }
        public static function getFormattedOutputNumber($value)
        {
        }
    }
    /**
     * Class MessageSms
     * @package Bitrix\Sender\Integration\MessageService\Sms
     */
    class MessageSms implements \Bitrix\Sender\Message\iBase, \Bitrix\Sender\Message\iMailable
    {
        const CODE = self::CODE_SMS;
        /** @var Message\Configuration $configuration Configuration. */
        protected $configuration;
        /** @var integer $configurationId Configuration ID. */
        protected $configurationId;
        /**
         * MessageSms constructor.
         */
        public function __construct()
        {
        }
        /**
         * Get name.
         * @return string
         */
        public function getName()
        {
        }
        public function getCode()
        {
        }
        public function getSupportedTransports()
        {
        }
        protected function setConfigurationOptions()
        {
        }
        /**
         * Load configuration.
         *
         * @param integer|null $id ID.
         *
         * @return Message\Configuration
         */
        public function loadConfiguration($id = null)
        {
        }
        /**
         * Save configuration.
         *
         * @param Message\Configuration $configuration Configuration.
         *
         * @return Result
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * Remove configuration.
         *
         * @param integer $id ID.
         * @return bool
         */
        public function removeConfiguration($id)
        {
        }
        /**
         * Copy configuration.
         *
         * @param integer|string|null $id ID.
         * @return Result|null
         */
        public function copyConfiguration($id)
        {
        }
        /**
         * Get sms sender.
         *
         * @return string
         */
        public function getSmsSender()
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Yandex\Toloka\DTO {
    class QualityControl
    {
    }
    interface TolokaTransferObject
    {
        public function toArray() : array;
    }
    class ViewConfig implements \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TolokaTransferObject
    {
        public function toArray() : array
        {
        }
    }
    class InputValue implements \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TolokaTransferObject
    {
        /**
         * @var string
         */
        private $identificator;
        /**
         * @var string
         */
        private $value;
        /**
         * @return string
         */
        public function getIdentificator() : string
        {
        }
        /**
         * @param string $identificator
         *
         * @return InputValue
         */
        public function setIdentificator(string $identificator) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\InputValue
        {
        }
        /**
         * @return string
         */
        public function getValue() : string
        {
        }
        /**
         * @param string $value
         *
         * @return InputValue
         */
        public function setValue(string $value) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\InputValue
        {
        }
        public function toArray() : array
        {
        }
    }
    class Interval
    {
    }
    class ViewSpecSettings implements \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TolokaTransferObject
    {
        /**
         * @var boolean
         */
        private $showTimer = true;
        /**
         * @var boolean
         */
        private $showTitle = true;
        /**
         * @var boolean
         */
        private $showInstructions = true;
        /**
         * @var boolean
         */
        private $showFullscreen = true;
        /**
         * @var boolean
         */
        private $showSubmit = true;
        /**
         * @var boolean
         */
        private $showSkip = true;
        /**
         * @var boolean
         */
        private $showFinish = true;
        /**
         * @var boolean
         */
        private $showMessage = true;
        /**
         * @return bool
         */
        public function isShowTimer() : bool
        {
        }
        /**
         * @param bool $showTimer
         *
         * @return ViewSpecSettings
         */
        public function setShowTimer(bool $showTimer) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewSpecSettings
        {
        }
        /**
         * @return bool
         */
        public function isShowTitle() : bool
        {
        }
        /**
         * @param bool $showTitle
         *
         * @return ViewSpecSettings
         */
        public function setShowTitle(bool $showTitle) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewSpecSettings
        {
        }
        /**
         * @return bool
         */
        public function isShowInstructions() : bool
        {
        }
        /**
         * @param bool $showInstructions
         *
         * @return ViewSpecSettings
         */
        public function setShowInstructions(bool $showInstructions) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewSpecSettings
        {
        }
        /**
         * @return bool
         */
        public function isShowFullscreen() : bool
        {
        }
        /**
         * @param bool $showFullscreen
         *
         * @return ViewSpecSettings
         */
        public function setShowFullscreen(bool $showFullscreen) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewSpecSettings
        {
        }
        /**
         * @return bool
         */
        public function isShowSubmit() : bool
        {
        }
        /**
         * @param bool $showSubmit
         *
         * @return ViewSpecSettings
         */
        public function setShowSubmit(bool $showSubmit) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewSpecSettings
        {
        }
        /**
         * @return bool
         */
        public function isShowSkip() : bool
        {
        }
        /**
         * @param bool $showSkip
         *
         * @return ViewSpecSettings
         */
        public function setShowSkip(bool $showSkip) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewSpecSettings
        {
        }
        /**
         * @return bool
         */
        public function isShowFinish() : bool
        {
        }
        /**
         * @param bool $showFinish
         *
         * @return ViewSpecSettings
         */
        public function setShowFinish(bool $showFinish) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewSpecSettings
        {
        }
        /**
         * @return bool
         */
        public function isShowMessage() : bool
        {
        }
        /**
         * @param bool $showMessage
         *
         * @return ViewSpecSettings
         */
        public function setShowMessage(bool $showMessage) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewSpecSettings
        {
        }
        public function toArray() : array
        {
        }
    }
    class ViewSpec implements \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TolokaTransferObject
    {
        /**
         * @var string
         */
        private $markup;
        /**
         * @var string
         */
        private $script;
        /**
         * @var string
         */
        private $styles;
        /**
         * @var Asset
         */
        private $assets;
        /**
         * @var ViewSpecSettings
         */
        private $settings;
        public function toArray() : array
        {
        }
        /**
         * @return string
         */
        public function getMarkup() : string
        {
        }
        /**
         * @param string $markup
         *
         * @return ViewSpec
         */
        public function setMarkup(string $markup) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewSpec
        {
        }
        /**
         * @return string
         */
        public function getScript() : string
        {
        }
        /**
         * @param string $script
         *
         * @return ViewSpec
         */
        public function setScript(string $script) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewSpec
        {
        }
        /**
         * @return string
         */
        public function getStyles() : string
        {
        }
        /**
         * @param string $styles
         *
         * @return ViewSpec
         */
        public function setStyles(string $styles) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewSpec
        {
        }
        /**
         * @return ViewSpecSettings
         */
        public function getSettings() : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewSpecSettings
        {
        }
        /**
         * @param ViewSpecSettings $settings
         *
         * @return ViewSpec
         */
        public function setSettings(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewSpecSettings $settings) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewSpec
        {
        }
        /**
         * @return Asset
         */
        public function getAssets() : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Asset
        {
        }
        /**
         * @param Asset $assets
         *
         * @return ViewSpec
         */
        public function setAssets(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\Asset $assets) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewSpec
        {
        }
    }
    class Pool
    {
        /**
         * @var int
         */
        private $id;
        /**
         * @var string
         */
        private $projectId;
        /**
         * @var string
         */
        private $privateName;
        /**
         * @var string
         */
        private $publicDescription;
        /**
         * @var boolean
         */
        private $mayContainAdultContent;
        /**
         * @var string
         */
        private $willExpire;
        /**
         * @var float
         */
        private $rewardPerAssignment;
        /**
         * @var PricingConfig
         */
        private $dynamicPricingConfig;
        /**
         * @var int
         */
        private $assignmentMaxDurationSeconds = 300;
        /**
         * @var QualityControl
         */
        private $qualityControl;
        /**
         * @var PoolDefaults
         */
        private $defaults;
        private $autoAcceptSolutions = true;
        /**
         * @var Filter[]
         */
        private $filter = [];
        /**
         * @return Filter[]
         */
        public function getFilter() : array
        {
        }
        /**
         * @param Filter[] $filter
         *
         * @return Pool
         */
        public function setFilter(array $filter) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Pool
        {
        }
        /**
         * @param Filter $filter
         *
         * @return Pool
         */
        public function addFilter(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\Filter $filter) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Pool
        {
        }
        /**
         * @return string
         */
        public function getProjectId() : string
        {
        }
        /**
         * @param string $projectId
         *
         * @return Pool
         */
        public function setProjectId(string $projectId) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Pool
        {
        }
        /**
         * @return string
         */
        public function getPrivateName() : string
        {
        }
        /**
         * @param string $privateName
         *
         * @return Pool
         */
        public function setPrivateName(string $privateName) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Pool
        {
        }
        /**
         * @return bool
         */
        public function isMayContainAdultContent() : bool
        {
        }
        /**
         * @param bool $mayContainAdultContent
         *
         * @return Pool
         */
        public function setMayContainAdultContent(bool $mayContainAdultContent) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Pool
        {
        }
        /**
         * @return string
         */
        public function getWillExpire() : string
        {
        }
        /**
         * @param string $willExpire
         *
         * @return Pool
         */
        public function setWillExpire(string $willExpire) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Pool
        {
        }
        /**
         * @return float
         */
        public function getRewardPerAssignment() : float
        {
        }
        /**
         * @param float $rewardPerAssignment
         *
         * @return Pool
         */
        public function setRewardPerAssignment(float $rewardPerAssignment) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Pool
        {
        }
        /**
         * @return PricingConfig
         */
        public function getDynamicPricingConfig() : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\PricingConfig
        {
        }
        /**
         * @param PricingConfig $dynamicPricingConfig
         *
         * @return Pool
         */
        public function setDynamicPricingConfig(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\PricingConfig $dynamicPricingConfig) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Pool
        {
        }
        /**
         * @return int
         */
        public function getAssignmentMaxDurationSeconds() : int
        {
        }
        /**
         * @param int $assignmentMaxDurationSeconds
         *
         * @return Pool
         */
        public function setAssignmentMaxDurationSeconds(int $assignmentMaxDurationSeconds) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Pool
        {
        }
        /**
         * @return QualityControl
         */
        public function getQualityControl() : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\QualityControl
        {
        }
        /**
         * @param QualityControl $qualityControl
         *
         * @return Pool
         */
        public function setQualityControl(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\QualityControl $qualityControl) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Pool
        {
        }
        /**
         * @return PoolDefaults
         */
        public function getDefaults() : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\PoolDefaults
        {
        }
        /**
         * @param PoolDefaults $defaults
         *
         * @return Pool
         */
        public function setDefaults(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\PoolDefaults $defaults) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Pool
        {
        }
        /**
         * @return int
         */
        public function getId() : int
        {
        }
        /**
         * @param int $id
         *
         * @return Pool
         */
        public function setId(int $id) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Pool
        {
        }
        /**
         * @return mixed
         */
        public function getAutoAcceptSolutions()
        {
        }
        /**
         * @param mixed $autoAcceptSolutions
         *
         * @return Pool
         */
        public function setAutoAcceptSolutions($autoAcceptSolutions)
        {
        }
        /**
         * @return string
         */
        public function getPublicDescription() : string
        {
        }
        /**
         * @param string $publicDescription
         *
         * @return Pool
         */
        public function setPublicDescription(string $publicDescription) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Pool
        {
        }
        public function toArray() : array
        {
        }
    }
    class TaskSpec implements \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TolokaTransferObject
    {
        /**
         * @var InputOutputSpec
         */
        private $inputSpec;
        /**
         * @var InputOutputSpec
         */
        private $outputSpec;
        /**
         * @var ViewSpec
         */
        private $viewSpec;
        /**
         * @return InputOutputSpec
         */
        public function getInputSpec() : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\InputOutputSpec
        {
        }
        /**
         * @param InputOutputSpec $inputSpec
         *
         * @return TaskSpec
         */
        public function setInputSpec(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\InputOutputSpec $inputSpec) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TaskSpec
        {
        }
        /**
         * @return InputOutputSpec
         */
        public function getOutputSpec() : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\InputOutputSpec
        {
        }
        /**
         * @param InputOutputSpec $outputSpec
         *
         * @return TaskSpec
         */
        public function setOutputSpec(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\InputOutputSpec $outputSpec) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TaskSpec
        {
        }
        /**
         * @return ViewSpec
         */
        public function getViewSpec() : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewSpec
        {
        }
        /**
         * @param ViewSpec $viewSpec
         *
         * @return TaskSpec
         */
        public function setViewSpec(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewSpec $viewSpec) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TaskSpec
        {
        }
        public function toArray() : array
        {
        }
    }
    class Task implements \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TolokaTransferObject
    {
        /**
         * @var int
         */
        private $id;
        /**
         * @var int
         */
        private $poolId;
        /**
         * @var InputValue
         */
        private $inputValues;
        /**
         * @var int
         */
        private $overlap = 3;
        /**
         * @return int
         */
        public function getId() : int
        {
        }
        /**
         * @param int $id
         *
         * @return Task
         */
        public function setId(int $id) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Task
        {
        }
        /**
         * @return int
         */
        public function getPoolId() : int
        {
        }
        /**
         * @param int $poolId
         *
         * @return Task
         */
        public function setPoolId(int $poolId) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Task
        {
        }
        /**
         * @return InputValue
         */
        public function getInputValues() : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\InputValue
        {
        }
        /**
         * @param InputValue $inputValues
         *
         * @return Task
         */
        public function setInputValues(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\InputValue $inputValues) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Task
        {
        }
        /**
         * @return int
         */
        public function getOverlap() : int
        {
        }
        /**
         * @param int $overlap
         *
         * @return Task
         */
        public function setOverlap(int $overlap) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Task
        {
        }
        /**
         * @return Pool
         */
        public function getPool() : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Pool
        {
        }
        /**
         * @param Pool $pool
         *
         * @return Task
         */
        public function setPool(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\Pool $pool) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Task
        {
        }
        public function toArray() : array
        {
        }
    }
    class Project implements \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TolokaTransferObject
    {
        public const ASSIGNMENTS_ISSUING_TYPE_AUTOMATED = 'AUTOMATED';
        public const ASSIGNMENTS_ISSUING_TYPE_MAP_SELECTOR = 'MAP_SELECTOR';
        public const STATUS_ACTIVE = 'ACTIVE';
        public const STATUS_ARCHIVE = 'ARCHIVE';
        /**
         * @var string
         */
        private $publicName;
        /**
         * @var string
         */
        private $publicDescription;
        /**
         * @var string
         */
        private $publicInstructions;
        /**
         * @var string
         */
        private $privateComment;
        /**
         * @var TaskSpec
         */
        private $taskSpec;
        /**
         * @var string
         */
        private $assignmentsIssuingType = self::ASSIGNMENTS_ISSUING_TYPE_AUTOMATED;
        /**
         * @var ViewConfig
         */
        private $assignmentsIssuingViewConfig;
        /**
         * @var QualityControl
         */
        private $qualityControl;
        /**
         * @var int
         */
        private $id;
        /**
         * @var string
         */
        private $status = self::STATUS_ACTIVE;
        /**
         * @var string
         */
        private $created;
        /**
         * @return string
         */
        public function getPublicInstructions() : string
        {
        }
        /**
         * @param string $publicInstructions
         *
         * @return Project
         */
        public function setPublicInstructions(string $publicInstructions) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Project
        {
        }
        /**
         * @return string
         */
        public function getPrivateComment() : string
        {
        }
        /**
         * @param string $privateComment
         *
         * @return Project
         */
        public function setPrivateComment(string $privateComment) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Project
        {
        }
        /**
         * @return TaskSpec
         */
        public function getTaskSpec() : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TaskSpec
        {
        }
        /**
         * @param TaskSpec $taskSpec
         *
         * @return Project
         */
        public function setTaskSpec(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\TaskSpec $taskSpec) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Project
        {
        }
        /**
         * @return ViewConfig
         */
        public function getAssignmentsIssuingViewConfig() : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewConfig
        {
        }
        /**
         * @param ViewConfig $assignmentsIssuingViewConfig
         *
         * @return Project
         */
        public function setAssignmentsIssuingViewConfig(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\ViewConfig $assignmentsIssuingViewConfig) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Project
        {
        }
        /**
         * @return QualityControl
         */
        public function getQualityControl() : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\QualityControl
        {
        }
        /**
         * @param QualityControl $qualityControl
         *
         * @return Project
         */
        public function setQualityControl(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\QualityControl $qualityControl) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Project
        {
        }
        /**
         * @return int
         */
        public function getId() : int
        {
        }
        /**
         * @param int $id
         *
         * @return Project
         */
        public function setId(int $id) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Project
        {
        }
        /**
         * @return string
         */
        public function getStatus() : string
        {
        }
        /**
         * @param string $status
         *
         * @return Project
         */
        public function setStatus(string $status) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Project
        {
        }
        /**
         * @return string
         */
        public function getCreated() : string
        {
        }
        /**
         * @param string $created
         *
         * @return Project
         */
        public function setCreated(string $created) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Project
        {
        }
        public function toArray() : array
        {
        }
        /**
         * @return string
         */
        public function getPublicName() : string
        {
        }
        /**
         * @param string $publicName
         *
         * @return Project
         */
        public function setPublicName(string $publicName) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Project
        {
        }
        /**
         * @return string
         */
        public function getPublicDescription() : string
        {
        }
        /**
         * @param string $publicDescription
         *
         * @return Project
         */
        public function setPublicDescription(string $publicDescription) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Project
        {
        }
        /**
         * @return string
         */
        public function getAssignmentsIssuingType() : string
        {
        }
        /**
         * @param string $assignmentsIssuingType
         *
         * @return Project
         */
        public function setAssignmentsIssuingType(string $assignmentsIssuingType) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Project
        {
        }
    }
    class TaskSuite implements \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TolokaTransferObject
    {
        /**
         * @var int
         */
        private $id;
        /**
         * @var int
         */
        private $poolId;
        /**
         * @var Task[]
         */
        private $tasks;
        /**
         * @return int
         */
        public function getId() : int
        {
        }
        /**
         * @param int $id
         *
         * @return TaskSuite
         */
        public function setId(int $id) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TaskSuite
        {
        }
        /**
         * @return int
         */
        public function getPoolId() : int
        {
        }
        /**
         * @param int $poolId
         *
         * @return TaskSuite
         */
        public function setPoolId(int $poolId) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TaskSuite
        {
        }
        /**
         * @return Task[]
         */
        public function getTasks() : array
        {
        }
        /**
         * @param Task[] $tasks
         *
         * @return TaskSuite
         */
        public function setTasks(array $tasks) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TaskSuite
        {
        }
        public function toArray() : array
        {
        }
    }
    class Filter implements \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TolokaTransferObject
    {
        /**
         * @var string
         */
        private $operator = 'IN';
        /**
         * @var string
         */
        private $category = 'computed';
        /**
         * @var string
         */
        private $key;
        /**
         * @var string
         */
        private $value;
        /**
         * @return string
         */
        public function getOperator() : string
        {
        }
        /**
         * @param string $operator
         *
         * @return Filter
         */
        public function setOperator(string $operator) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Filter
        {
        }
        /**
         * @return string
         */
        public function getCategory() : string
        {
        }
        /**
         * @param string $category
         *
         * @return Filter
         */
        public function setCategory(string $category) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Filter
        {
        }
        /**
         * @return string
         */
        public function getKey() : string
        {
        }
        /**
         * @param string $key
         *
         * @return Filter
         */
        public function setKey(string $key) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Filter
        {
        }
        /**
         * @return string
         */
        public function getValue() : string
        {
        }
        /**
         * @param string $value
         *
         * @return Filter
         */
        public function setValue(string $value) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Filter
        {
        }
        public function ableFilters()
        {
        }
        public function toArray() : array
        {
        }
    }
    class PricingConfig
    {
    }
    class PoolDefaults implements \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TolokaTransferObject
    {
        private $overlapForNewTaskSuites;
        private $overlapForNewTasks;
        /**
         * @return mixed
         */
        public function getOverlapForNewTaskSuites()
        {
        }
        /**
         * @param mixed $overlapForNewTaskSuites
         *
         * @return PoolDefaults
         */
        public function setOverlapForNewTaskSuites($overlapForNewTaskSuites)
        {
        }
        /**
         * @return mixed
         */
        public function getOverlapForNewTasks()
        {
        }
        /**
         * @param mixed $overlapForNewTasks
         *
         * @return PoolDefaults
         */
        public function setOverlapForNewTasks($overlapForNewTasks)
        {
        }
        public function toArray() : array
        {
        }
    }
    class DistributionFunction
    {
    }
    class OutputValue
    {
    }
    class Solution
    {
    }
    class OverlapConfig implements \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TolokaTransferObject
    {
        /**
         * @var string
         */
        private $type = "BASIC";
        /**
         * @var int
         */
        private $maxOverlap;
        /**
         * @var float
         */
        private $minConfidence;
        /**
         * @var int
         */
        private $answerWeightSkill;
        /**
         * @var InputValue[]
         */
        private $fields;
        /**
         * @return string
         */
        public function getType() : string
        {
        }
        /**
         * @param string $type
         *
         * @return OverlapConfig
         */
        public function setType(string $type) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\OverlapConfig
        {
        }
        /**
         * @return int
         */
        public function getMaxOverlap() : int
        {
        }
        /**
         * @param int $maxOverlap
         *
         * @return OverlapConfig
         */
        public function setMaxOverlap(int $maxOverlap) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\OverlapConfig
        {
        }
        /**
         * @return float
         */
        public function getMinConfidence() : float
        {
        }
        /**
         * @param float $minConfidence
         *
         * @return OverlapConfig
         */
        public function setMinConfidence(float $minConfidence) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\OverlapConfig
        {
        }
        /**
         * @return int
         */
        public function getAnswerWeightSkill() : int
        {
        }
        /**
         * @param int $answerWeightSkill
         *
         * @return OverlapConfig
         */
        public function setAnswerWeightSkill(int $answerWeightSkill) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\OverlapConfig
        {
        }
        /**
         * @return InputValue[]
         */
        public function getFields() : array
        {
        }
        /**
         * @param InputValue[] $fields
         *
         * @return OverlapConfig
         */
        public function setFields(array $fields) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\OverlapConfig
        {
        }
        public function toArray() : array
        {
        }
    }
    class MixerConfig
    {
    }
    class InputOutputSpec implements \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TolokaTransferObject
    {
        public const TYPES = ['URL' => 'url', 'BOOLEAN' => 'boolean', 'INTEGER' => 'integer', 'STRING' => 'string', 'FLOAT' => 'float', 'JSON' => 'json', 'FILE' => 'file'];
        /**
         * @var string
         */
        private $identificator;
        /**
         * @var string
         */
        private $type;
        /**
         * @var bool
         */
        private $required = true;
        /**
         * @return string
         */
        public function getIdentificator() : string
        {
        }
        /**
         * @param string $identificator
         *
         * @return InputOutputSpec
         */
        public function setIdentificator(string $identificator) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\InputOutputSpec
        {
        }
        /**
         * @return string
         */
        public function getType() : string
        {
        }
        /**
         * @param string $type
         *
         * @return InputOutputSpec
         */
        public function setType(string $type) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\InputOutputSpec
        {
        }
        public function toArray() : array
        {
        }
    }
    class Asset implements \Bitrix\Sender\Integration\Yandex\Toloka\DTO\TolokaTransferObject
    {
        /**
         * @var String[]
         */
        private $scriptUrls = [];
        /**
         * Asset constructor.
         *
         * @param String[] $scriptUrls
         */
        public function __construct()
        {
        }
        /**
         * @return String[]
         */
        public function getScriptUrls() : array
        {
        }
        /**
         * @param String[] $scriptUrls
         *
         * @return Asset
         */
        public function setScriptUrls(array $scriptUrls) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Asset
        {
        }
        /**
         * @param string $scriptUrl
         *
         * @return Asset
         */
        public function addScriptUrl(string $scriptUrl) : \Bitrix\Sender\Integration\Yandex\Toloka\DTO\Asset
        {
        }
        public function toArray() : array
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Yandex\Toloka {
    abstract class BaseApiObject
    {
        private const API_URL = SEO_BITRIX_API_URL;
        protected $result;
        protected $accessToken;
        protected $clientId;
        protected $clientSecret;
        private function checkResult() : void
        {
        }
        /**
         * @return mixed
         */
        public function getAccessToken()
        {
        }
        /**
         * @param mixed $accessToken
         *
         * @return BaseApiObject
         */
        public function setAccessToken($accessToken)
        {
        }
        /**
         * @return mixed
         */
        public function getClientId()
        {
        }
        /**
         * @param mixed $clientId
         *
         * @return BaseApiObject
         */
        public function setClientId($clientId)
        {
        }
        /**
         * @return mixed
         */
        public function getClientSecret()
        {
        }
        /**
         * @param mixed $clientSecret
         *
         * @return BaseApiObject
         */
        public function setClientSecret($clientSecret)
        {
        }
        protected function sendRequest($data = [])
        {
        }
        protected function registerOnCloudAdv()
        {
        }
        protected function query($scope, $param = NULL)
        {
        }
        abstract function getScope() : string;
    }
}
namespace Bitrix\Sender\Message {
    interface iToloka
    {
    }
}
namespace Bitrix\Sender\Integration\Yandex\Toloka {
    class MessageToloka implements \Bitrix\Sender\Message\iBase, \Bitrix\Sender\Message\iToloka
    {
        const CODE = 'toloka';
        /** @var Message\Configuration $configuration Configuration. */
        protected $configuration;
        /**
         * MessageBase constructor.
         */
        public function __construct()
        {
        }
        /**
         * @inheritDoc
         */
        public function getName()
        {
        }
        /**
         * @inheritDoc
         */
        public function getSupportedTransports()
        {
        }
        /**
         * Load configuration.
         *
         * @param integer|null $id ID.
         *
         * @return Message\Configuration
         */
        public function loadConfiguration($id = null)
        {
        }
        protected function setConfigurationOptions()
        {
        }
        public function getUiFilterFields()
        {
        }
        /**
         * @inheritDoc
         */
        public function getCode()
        {
        }
        /**
         * Save configuration.
         *
         * @param Message\Configuration $configuration Configuration.
         *
         * @return \Bitrix\Main\Result
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * @inheritDoc
         */
        public function copyConfiguration($id)
        {
        }
    }
    class ApiRequest extends \Bitrix\Sender\Integration\Yandex\Toloka\BaseApiObject
    {
        public const ACCESS_CODE = 'toloka_access_code';
        /**
         * ApiRequest constructor.
         */
        public function __construct()
        {
        }
        public function getTaskList($params = [])
        {
        }
        public function getPoolList($params = [])
        {
        }
        public function getProjectList($params = [])
        {
        }
        public function getGeoList($params = [])
        {
        }
        public function getProjectInfo($params = [])
        {
        }
        public function createProject(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\Project $project)
        {
        }
        public function createPool(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\Pool $pool)
        {
        }
        public function editProject(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\Project $project)
        {
        }
        public function editPool(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\Pool $pool)
        {
        }
        public function createTask(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\Task $task)
        {
        }
        public function createTaskSuite(\Bitrix\Sender\Integration\Yandex\Toloka\DTO\TaskSuite $taskSuite)
        {
        }
        public function getOperations()
        {
        }
        public function createTasks(array $taskList)
        {
        }
        public function stopTaskSuite(string $suiteId)
        {
        }
        public function deleteTasks(int $poolId)
        {
        }
        public function openPool($poolId)
        {
        }
        public function closePool($poolId)
        {
        }
        function getScope() : string
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Yandex\Toloka\Exception {
    class AccessDeniedException extends \Exception
    {
    }
}
namespace Bitrix\Sender\Integration\Yandex\Toloka {
    /**
     * Class TransportToloka
     */
    class TransportToloka implements \Bitrix\Sender\Transport\iBase
    {
        const CODE = 'toloka';
        /**
         * @inheritDoc
         */
        public function getName()
        {
        }
        /**
         * @inheritDoc
         */
        public function getCode()
        {
        }
        /**
         * Get supported recipient types.
         *
         * @return integer[]
         */
        public function getSupportedRecipientTypes()
        {
        }
        /**
         * @inheritDoc
         */
        public function loadConfiguration()
        {
        }
        /**
         * @inheritDoc
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * @inheritDoc
         */
        public function start()
        {
        }
        /**
         * @inheritDoc
         */
        public function send(\Bitrix\Sender\Message\Adapter $message)
        {
        }
        /**
         * @inheritDoc
         */
        public function end()
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Im {
    /**
     * Class TransportIm
     * @package Bitrix\Sender\Integration\Im
     */
    class TransportIm implements \Bitrix\Sender\Transport\iBase
    {
        const CODE = self::CODE_IM;
        /** @var Message\Configuration $configuration Configuration. */
        protected $configuration;
        public function __construct()
        {
        }
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get supported recipient types.
         *
         * @return integer[]
         */
        public function getSupportedRecipientTypes()
        {
        }
        /**
         * Get configuration.
         *
         * @return string
         */
        public function loadConfiguration()
        {
        }
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        public function start()
        {
        }
        public function send(\Bitrix\Sender\Message\Adapter $message)
        {
        }
        public function end()
        {
        }
    }
    /**
     * Class Service
     * @package Bitrix\Sender\Integration\Im
     */
    class Service
    {
        /**
         * Can use.
         *
         * @return bool|null
         */
        public static function canUse()
        {
        }
        /**
         * Get excluded channel codes.
         *
         * @return array
         */
        public static function getExcludedChannelCodes()
        {
        }
        /**
         * Send.
         *
         * @param string $to To number. Like: livechat|12323|213123, without imol|.
         * @param string $text Text.
         * @return bool
         */
        public static function send($to, $text)
        {
        }
    }
    /**
     * Class MessageIm
     * @package Bitrix\Sender\Integration\Im
     */
    class MessageIm implements \Bitrix\Sender\Message\iBase, \Bitrix\Sender\Message\iMailable
    {
        const CODE = self::CODE_IM;
        /** @var Message\Configuration $configuration Configuration. */
        protected $configuration;
        /**
         * MessageSms constructor.
         */
        public function __construct()
        {
        }
        /**
         * Get name.
         * @return string
         */
        public function getName()
        {
        }
        public function getCode()
        {
        }
        public function getSupportedTransports()
        {
        }
        protected function setConfigurationOptions()
        {
        }
        /**
         * Load configuration.
         *
         * @param integer|null $id ID.
         *
         * @return Message\Configuration
         */
        public function loadConfiguration($id = null)
        {
        }
        /**
         * Save configuration.
         *
         * @param Message\Configuration $configuration Configuration.
         *
         * @return Result
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * Remove configuration.
         *
         * @param integer $id ID.
         * @return bool
         */
        public function removeConfiguration($id)
        {
        }
        /**
         * Copy configuration.
         *
         * @param integer|string|null $id ID.
         * @return Result|null
         */
        public function copyConfiguration($id)
        {
        }
    }
    /**
     * Class Notification
     * @package Bitrix\Sender\Integration\Im
     */
    class Notification
    {
        /** @var array $to */
        protected $to = array();
        /** @var string $message */
        protected $message;
        /**
         * Can use.
         *
         * @return bool|null
         */
        public static function canUse()
        {
        }
        /**
         * Create.
         *
         * @return static
         */
        public static function create()
        {
        }
        /**
         * Set to.
         *
         * @param integer[] $list List.
         * @return $this
         */
        public function setTo(array $list)
        {
        }
        /**
         * Add to.
         *
         * @param integer $userId User ID.
         * @return $this
         */
        public function addTo($userId)
        {
        }
        /**
         * Add all authors.
         *
         * @return $this
         */
        public function toAllAuthors()
        {
        }
        /**
         * Add current user.
         *
         * @return $this
         */
        public function toCurrentUser()
        {
        }
        /**
         * With message.
         *
         * @param string $message Text.
         * @return $this
         */
        public function withMessage($message)
        {
        }
        /**
         * Send.
         *
         * @return void
         */
        public function send()
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Main\Triggers {
    class UserDontAuth extends \Bitrix\Sender\Trigger\TriggerConnectorClosed
    {
        public function getName()
        {
        }
        public function getCode()
        {
        }
        /** @return bool */
        public static function canBeTarget()
        {
        }
        /** @return bool */
        public static function canRunForOldData()
        {
        }
        public function filter()
        {
        }
        public function getRecipient()
        {
        }
        public function getForm()
        {
        }
        public function getFetchDataModifier($fields)
        {
        }
    }
    class UserAuth extends \Bitrix\Sender\Trigger\Base
    {
        public function getName()
        {
        }
        public function getCode()
        {
        }
        public function getEventModuleId()
        {
        }
        public function getEventType()
        {
        }
        public function filter()
        {
        }
        public function getRecipient()
        {
        }
    }
}
namespace Bitrix\Sender\Message {
    /**
     * Interface iAds
     * @package Bitrix\Sender\Message
     */
    interface iAds
    {
    }
}
namespace Bitrix\Sender\Integration\Seo\Ads {
    /**
     * Class MessageBase
     * @package Bitrix\Sender\Integration\Seo\Ads
     */
    abstract class MessageBase implements \Bitrix\Sender\Message\iBase, \Bitrix\Sender\Message\iAds
    {
        const CODE = self::CODE_UNDEFINED;
        const CODE_ADS_VK = 'ads_vk';
        const CODE_ADS_FB = 'ads_fb';
        const CODE_ADS_YA = 'ads_ya';
        const CODE_ADS_GA = 'ads_ga';
        const CODE_ADS_LOOKALIKE_FB = 'ads_lookalike_fb';
        const CODE_ADS_LOOKALIKE_VK = 'ads_lookalike_vk';
        /** @var Message\Configuration $configuration Configuration. */
        protected $configuration;
        /**
         * MessageBase constructor.
         */
        public function __construct()
        {
        }
        /**
         * Get name.
         * @return string
         */
        public function getName()
        {
        }
        public function getCode()
        {
        }
        public function getSupportedTransports()
        {
        }
        protected function getAdsType()
        {
        }
        protected function setConfigurationOptions()
        {
        }
        /**
         * Load configuration.
         *
         * @param integer|null $id ID.
         *
         * @return Message\Configuration
         */
        public function loadConfiguration($id = null)
        {
        }
        /**
         * Save configuration.
         *
         * @param Message\Configuration $configuration Configuration.
         * @return Result
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * Remove configuration.
         *
         * @param integer $id ID.
         * @return bool
         */
        public function removeConfiguration($id)
        {
        }
        /**
         * Copy configuration.
         *
         * @param integer|string|null $id ID.
         * @return Result|null
         */
        public function copyConfiguration($id)
        {
        }
    }
    /**
     * Class MessageVk
     * @package Bitrix\Sender\Integration\Seo\Ads
     */
    class MessageVk extends \Bitrix\Sender\Integration\Seo\Ads\MessageBase
    {
        const CODE = self::CODE_ADS_VK;
        /**
         * Get name.
         * @return string
         */
        public function getName()
        {
        }
    }
    /**
     * Class TransportBase
     * @package Bitrix\Sender\Integration\Seo\Ads;
     */
    class TransportBase implements \Bitrix\Sender\Transport\iBase
    {
        const CODE = self::CODE_UNDEFINED;
        const CODE_ADS_VK = 'ads_vk';
        const CODE_ADS_FB = 'ads_fb';
        const CODE_ADS_YA = 'ads_ya';
        const CODE_ADS_GA = 'ads_ga';
        const CODE_ADS_LOOKALIKE_FB = 'ads_lookalike_fb';
        const CODE_ADS_LOOKALIKE_VK = 'ads_lookalike_vk';
        /** @var Message\Configuration $configuration Configuration. */
        protected $configuration;
        /** @var Retargeting\AdsAudienceConfig $adsConfig Ads config. */
        protected $adsConfig;
        /**
         * Transport constructor.
         */
        public function __construct()
        {
        }
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        protected function getAdsType()
        {
        }
        /**
         * Get supported recipient types.
         *
         * @return integer[]
         */
        public function getSupportedRecipientTypes()
        {
        }
        /**
         * Get configuration.
         *
         * @return string
         */
        public function loadConfiguration()
        {
        }
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        public function start()
        {
        }
        public function send(\Bitrix\Sender\Message\Adapter $message)
        {
        }
        public function end()
        {
        }
    }
    /**
     * Class TransportGa
     * @package Bitrix\Sender\Integration\Seo\Ads
     */
    class TransportGa extends \Bitrix\Sender\Integration\Seo\Ads\TransportBase
    {
        const CODE = self::CODE_ADS_GA;
    }
    /**
     * Class TransportFb
     * @package Bitrix\Sender\Integration\Seo\Ads
     */
    class TransportLookalikeVk extends \Bitrix\Sender\Integration\Seo\Ads\TransportBase
    {
        const CODE = self::CODE_ADS_LOOKALIKE_VK;
    }
    /**
     * Class TransportFb
     * @package Bitrix\Sender\Integration\Seo\Ads
     */
    class TransportFb extends \Bitrix\Sender\Integration\Seo\Ads\TransportBase
    {
        const CODE = self::CODE_ADS_FB;
    }
    /**
     * Class MessageYa
     * @package Bitrix\Sender\Integration\Seo\Ads
     */
    class MessageYa extends \Bitrix\Sender\Integration\Seo\Ads\MessageBase
    {
        const CODE = self::CODE_ADS_YA;
        /**
         * Get name.
         * @return string
         */
        public function getName()
        {
        }
    }
    /**
     * Class Service
     * @package Bitrix\Sender\Integration\Seo\Ads
     */
    class Service
    {
        /**
         * Can use.
         *
         * @return bool
         */
        public static function canUse()
        {
        }
        /**
         * Service can be used, but is not available because of plan.
         *
         * @return bool
         */
        public static function isAvailable()
        {
        }
        /**
         * Get type map.
         *
         * @return array
         */
        public static function getTypeMap()
        {
        }
        /**
         * Get ads provider.
         *
         * @param string $adsType Ads type.
         * @return array
         */
        public static function getAdsProvider($adsType, $clientId = null)
        {
        }
        /**
         * Send.
         *
         * @param \stdClass $config Config.
         * @param array $contacts.
         * @return bool
         */
        public static function send(\stdClass $config, array $contacts)
        {
        }
    }
    /**
     * Class MessageGa
     * @package Bitrix\Sender\Integration\Seo\Ads
     */
    class MessageGa extends \Bitrix\Sender\Integration\Seo\Ads\MessageBase
    {
        const CODE = self::CODE_ADS_GA;
        /**
         * Get name.
         * @return string
         */
        public function getName()
        {
        }
    }
    /**
     * Class TransportVk
     * @package Bitrix\Sender\Integration\Seo\Ads
     */
    class TransportVk extends \Bitrix\Sender\Integration\Seo\Ads\TransportBase
    {
        const CODE = self::CODE_ADS_VK;
    }
    /**
     * Class TransportFb
     * @package Bitrix\Sender\Integration\Seo\Ads
     */
    class TransportLookalikeFb extends \Bitrix\Sender\Integration\Seo\Ads\TransportBase
    {
        const CODE = self::CODE_ADS_LOOKALIKE_FB;
    }
    /**
     * Class TransportYa
     * @package Bitrix\Sender\Integration\Seo\Ads
     */
    class TransportYa extends \Bitrix\Sender\Integration\Seo\Ads\TransportBase
    {
        const CODE = self::CODE_ADS_YA;
    }
    /**
     * Class MessageFb
     * @package Bitrix\Sender\Integration\Seo\Ads
     */
    class MessageFb extends \Bitrix\Sender\Integration\Seo\Ads\MessageBase
    {
        const CODE = self::CODE_ADS_FB;
        /**
         * Get name.
         * @return string
         */
        public function getName()
        {
        }
    }
}
namespace Bitrix\Sender\Message {
    /**
     * Interface iLookalikeAds
     * @package Bitrix\Sender\Message
     */
    interface iLookalikeAds
    {
    }
    /**
     * Interface iBeforeAfter
     * @package Bitrix\Sender\Message
     */
    interface iBeforeAfter
    {
        public function onBeforeStart() : \Bitrix\Main\Result;
        public function onAfterEnd() : \Bitrix\Main\Result;
    }
}
namespace Bitrix\Sender\Integration\Seo\Ads {
    /**
     * Class MessageLookalike
     * @package Bitrix\Sender\Integration\Seo\Ads
     */
    abstract class MessageLookalike extends \Bitrix\Sender\Integration\Seo\Ads\MessageBase implements \Bitrix\Sender\Message\iLookalikeAds, \Bitrix\Sender\Message\iBeforeAfter
    {
        public function onBeforeStart() : \Bitrix\Main\Result
        {
        }
        public function onAfterEnd() : \Bitrix\Main\Result
        {
        }
        public abstract function getLookalikeOptions();
    }
    /**
     * Class MessageLookalikeFb
     * @package Bitrix\Sender\Integration\Seo\Ads
     */
    class MessageLookalikeFb extends \Bitrix\Sender\Integration\Seo\Ads\MessageLookalike
    {
        const CODE = self::CODE_ADS_LOOKALIKE_FB;
        /**
         * Get name.
         * @return string
         */
        public function getName()
        {
        }
        protected function setConfigurationOptions()
        {
        }
        public function getLookalikeOptions()
        {
        }
    }
    /**
     * Class MessageLookalikeVk
     * @package Bitrix\Sender\Integration\Seo\Ads
     */
    class MessageLookalikeVk extends \Bitrix\Sender\Integration\Seo\Ads\MessageLookalike
    {
        const CODE = self::CODE_ADS_LOOKALIKE_VK;
        /**
         * Get name.
         * @return string
         */
        public function getName()
        {
        }
        protected function setConfigurationOptions()
        {
        }
        public function getLookalikeOptions()
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Bitrix24\Limitation {
    /**
     * Class DailyLimit
     * @package Bitrix\Sender\Integration\Bitrix24\Limitation
     */
    class DailyLimit
    {
        /**	@var static $instance Instance */
        protected static $instance;
        /**
         * Return true if installation is portal.
         *
         * @return static
         */
        public static function instance()
        {
        }
        /**
         * Constructor.
         */
        public function __construct()
        {
        }
        /**
         * Get current.
         *
         * @return integer
         */
        public function getCurrent()
        {
        }
        /**
         * Get limit.
         *
         * @return integer
         */
        public function getLimit()
        {
        }
        /**
         * Set limit.
         *
         * @param int $limit Limit.
         * @return void
         */
        public function setLimit($limit)
        {
        }
        /**
         * Increment sent mails.
         *
         * @return void
         */
        public static function increment()
        {
        }
        /**
         * Increment error mails.
         *
         * @return void
         */
        public static function incrementError()
        {
        }
    }
    /**
     * Class TesterDailyLimit
     * @package Bitrix\Sender\Integration\Bitrix24\Limitation
     */
    class TesterDailyLimit extends \Bitrix\Sender\Integration\Bitrix24\Limitation\DailyLimit
    {
        /**
         * Get current.
         *
         * @return integer
         */
        public function getCurrent()
        {
        }
        /**
         * Get limit.
         *
         * @return integer
         */
        public function getLimit()
        {
        }
        /**
         * Set limit.
         *
         * @param int $limit Limit.
         * @return void
         */
        public function setLimit($limit)
        {
        }
        /**
         * Increment sent mails.
         *
         * @return void
         */
        public static function increment()
        {
        }
    }
    /**
     * Class Limiter
     * @package Bitrix\Sender\Integration\Bitrix24\Limitation
     */
    class Limiter
    {
        /** @var  Transport\iLimiter[] $limiters */
        protected static $limiters;
        /**
         * Return true if installation is portal.
         *
         * @return Transport\iLimiter[]
         */
        public static function getList()
        {
        }
        /**
         * Get monthly limiter percentage.
         *
         * @return int
         */
        public static function getMonthlyLimitPercentage()
        {
        }
        /**
         * Set monthly limiter percentage.
         *
         * @param int $value Value.
         * @return void
         */
        public static function setMonthlyLimitPercentage($value)
        {
        }
        /**
         * Return monthly limiter.
         *
         * @return Transport\CountLimiter
         */
        public static function getMonthly()
        {
        }
        /**
         * Return daily limiter.
         *
         * @return Transport\iLimiter
         */
        protected static function getDaily()
        {
        }
    }
    /**
     * Class Rating
     * @package Bitrix\Sender\Integration\Bitrix24\Limitation
     */
    class Rating
    {
        /** @var int $base Base count of mail. */
        protected static $base = 1000;
        /**
         * Regulate: downgrade or block.
         *
         * @return void
         */
        public static function regulate()
        {
        }
        /**
         * Calculate.
         *
         * @return void
         */
        public static function calculate()
        {
        }
        /**
         * Upgrade.
         *
         * @return void
         */
        public static function upgrade()
        {
        }
        /**
         * Downgrade.
         *
         * @param bool $isNotify Is notify.
         * @return void
         */
        public static function downgrade($isNotify = true)
        {
        }
        /**
         * Block.
         *
         * @return void
         */
        public static function block()
        {
        }
        /**
         * Is blocked.
         *
         * @return bool
         */
        public static function isBlocked()
        {
        }
        /**
         * Get downgrade rate.
         *
         * @return float
         */
        public static function getDownRate()
        {
        }
        /**
         * Get downgrade rate.
         *
         * @return float
         */
        public static function getBlockRate()
        {
        }
        /**
         * Get initial limit.
         *
         * @return int
         */
        public static function getInitialLimit()
        {
        }
        /**
         * Get max limit.
         *
         * @return float
         */
        public static function getMaxLimit()
        {
        }
        /**
         * Get limit multiplier.
         *
         * @return float
         */
        public static function getLimitMultiplier()
        {
        }
        /**
         * Get ratio.
         *
         * @param integer $daysLeft Days left.
         * @return float
         */
        protected static function getRatio($daysLeft = 0)
        {
        }
        /**
         * Get parameter.
         *
         * @param string $name Name.
         * @param mixed $defaultValue Default value.
         * @return mixed
         */
        protected static function getParam($name, $defaultValue = 0)
        {
        }
        /**
         * Set parameter.
         *
         * @param string $name Name.
         * @param mixed $value Value.
         * @return void
         */
        protected static function setParam($name, $value)
        {
        }
        /**
         * Set notify text.
         *
         * @param string $code Code.
         * @return string
         */
        public static function getNotifyText($code)
        {
        }
    }
}
namespace Bitrix\Sender\Integration\Bitrix24 {
    /**
     * Class Service
     * @package Bitrix\Sender\Integration\Bitrix24
     */
    class Service
    {
        /**
         * Return true if installation is portal.
         *
         * @return bool
         */
        public static function isPortal()
        {
        }
        /**
         * Return true if some instrument is available.
         *
         * @return bool
         */
        public static function isAvailable()
        {
        }
        /**
         * Return true if Ad is available.
         *
         * @return bool
         */
        public static function isAdAvailable()
        {
        }
        /**
         * Return true if Rc is available.
         *
         * @return bool
         */
        public static function isRcAvailable()
        {
        }
        /**
         * Return true if Campaigns is available.
         *
         * @return bool
         */
        public static function isCampaignsAvailable()
        {
        }
        /**
         * Return true if region of cloud portal is Russian.
         *
         * @return bool
         */
        public static function isCloudRegionRussian()
        {
        }
        /**
         * Return true if Ad provider is available in region.
         *
         * @param string $code Service message code.
         * @return bool
         */
        public static function isAdVisibleInRegion($code)
        {
        }
        /**
         * Return true if toloka is available.
         *
         * @param string $code Service message code.
         * @return bool
         */
        public static function isTolokaVisibleInRegion()
        {
        }
        /**
         * Return true if sms, call, web hook is available.
         *
         * @return bool
         */
        public static function isMailingsAvailable()
        {
        }
        /**
         * Return true if email is available.
         *
         * @return bool
         */
        public static function isEmailAvailable()
        {
        }
        /**
         * Get available mailing codes.
         *
         * @return array
         */
        public static function getAvailableMailingCodes()
        {
        }
        /**
         * Return true if portal is cloud.
         *
         * @return bool
         */
        public static function isCloud()
        {
        }
        /**
         * Return tracking uri.
         *
         * @param int $type Tracker type.
         * @param null|String $siteId Site id.
         * @return bool
         * @throws \Bitrix\Main\LoaderException
         */
        public static function getTrackingUri($type, $siteId = null)
        {
        }
        /**
         * Return true if installation is portal.
         *
         * @return void
         */
        public static function initLicensePopup()
        {
        }
        /**
         * Return true if plan is top.
         *
         * @return bool
         */
        public static function isLicenceTop()
        {
        }
        /**
         * Lock additional services.
         *
         * @return void
         */
        public static function lockServices()
        {
        }
    }
}
namespace Bitrix\Sender {
    class TimeLineQueueTable extends \Bitrix\Main\Access\Entity\DataManager
    {
        const STATUS_NEW = 'N';
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Sender\Dispatch {
    /**
     * Class DurationCountBased
     * @package Bitrix\Sender\Dispatch
     */
    class DurationCountBased
    {
        /** @var Message\Adapter $message Message. */
        private $message;
        /** @var integer $count Count. */
        private $count;
        /**
         * Create instance.
         *
         * @param Message\Adapter $message Message.
         *
         * @return static
         */
        public static function create(\Bitrix\Sender\Message\Adapter $message)
        {
        }
        /**
         * Constructor.
         *
         * @param Message\Adapter $message Message.
         */
        public function __construct(\Bitrix\Sender\Message\Adapter $message)
        {
        }
        /**
         * Get interval in seconds.
         *
         * @param integer $count Count.
         * @return integer
         */
        public function getInterval($count)
        {
        }
        /**
         * Get interval in seconds.
         *
         * @param integer $count Count.
         * @return integer
         */
        public function getIntervalDefault($count)
        {
        }
        protected function getLimitUnit(\Bitrix\Sender\Transport\iLimiter $limiter)
        {
        }
        protected function getLimitTimeouts(\Bitrix\Sender\Transport\iLimiter $limiter)
        {
        }
        protected function getLimiters()
        {
        }
    }
    interface iMethod
    {
        /**
         * Constructor.
         *
         * @param Entity\Letter $letter Letter.
         */
        public function __construct(\Bitrix\Sender\Entity\Letter $letter);
        /**
         * Apply method.
         *
         * @return void
         */
        public function apply();
        /**
         * Revoke method.
         *
         * @return void
         */
        public function revoke();
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode();
    }
    /**
     * Class MethodDefered
     * @package Bitrix\Sender\Dispatch
     */
    class MethodDefered implements \Bitrix\Sender\Dispatch\iMethod
    {
        /** @var Entity\Letter $letter Letter. */
        private $letter;
        /**
         * Constructor.
         *
         * @param Entity\Letter $letter Letter.
         */
        public function __construct(\Bitrix\Sender\Entity\Letter $letter)
        {
        }
        /**
         * Apply method.
         *
         * @return void
         */
        public function apply()
        {
        }
        /**
         * Revoke method.
         *
         * @return void
         */
        public function revoke()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
    }
    /**
     * Class Method
     * @package Bitrix\Sender\Dispatch
     */
    class Method implements \Bitrix\Sender\Dispatch\iMethod
    {
        const DEFERED = 'defered';
        const TIME = 'time';
        const SCHEDULE = 'schedule';
        /** @var Entity\Letter $letter Letter. */
        private $letter;
        /** @var iMethod $method Method. */
        private $method;
        /**
         * Constructor.
         *
         * @param Entity\Letter $letter Letter.
         */
        public function __construct(\Bitrix\Sender\Entity\Letter $letter)
        {
        }
        /**
         * Check change possibility.
         *
         * @return bool
         */
        public function canChange()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Set defer method.
         *
         * @return void
         */
        public function defer()
        {
        }
        /**
         * Set time method.
         *
         * @param DateTime $dateTime Date.
         * @return void
         */
        public function time(\Bitrix\Main\Type\DateTime $dateTime)
        {
        }
        /**
         * Set time method with current time.
         *
         * @return void
         */
        public function now()
        {
        }
        /**
         * Set method.
         *
         * @param iMethod $method Method.
         */
        public function set(\Bitrix\Sender\Dispatch\iMethod $method)
        {
        }
        /**
         * Get method.
         *
         * @return iMethod
         */
        public function get()
        {
        }
        /**
         * Apply method.
         *
         * @return void
         */
        public function apply()
        {
        }
        /**
         * Revoke method.
         *
         * @return void
         */
        public function revoke()
        {
        }
    }
    /**
     * Class DurationDateBased
     * @package Bitrix\Sender\Dispatch
     */
    class DurationDateBased
    {
        /** @var Entity\Letter $letter Letter. */
        private $letter;
        /**
         * Constructor.
         *
         * @param Entity\Letter $letter Letter.
         */
        public function __construct(\Bitrix\Sender\Entity\Letter $letter)
        {
        }
        /**
         * Get interval in seconds.
         *
         * @param integer $count Count.
         * @return integer
         */
        public function getInterval($count)
        {
        }
        /**
         * Get elapsed interval in seconds.
         *
         * @return integer
         */
        private function getElapsedInterval()
        {
        }
    }
    /**
     * Class State
     * @package Bitrix\Sender\Dispatch
     */
    class State
    {
        const NEWISH = 'N';
        const INIT = 'I';
        const READY = 'R';
        const SENDING = 'S';
        const WAITING = 'W';
        const PLANNED = 'T';
        const PAUSED = 'P';
        const SENT = 'Y';
        const STOPPED = 'X';
        const HALTED = 'H';
        /** @var Entity\Letter $letter Letter. */
        private $letter;
        /** @var DateTime $dateTime Date. */
        protected $dateTime;
        /**
         * Constructor.
         *
         * @param Entity\Letter $letter Letter.
         */
        public function __construct(\Bitrix\Sender\Entity\Letter $letter)
        {
        }
        /**
         * Is ready to send.
         *
         * @return bool
         */
        public function isReady()
        {
        }
        /**
         * Is sent.
         *
         * @return bool
         */
        public function isSent()
        {
        }
        /**
         * Is finished.
         *
         * @return bool
         */
        public function isFinished()
        {
        }
        /**
         * Is stopped.
         *
         * @return bool
         */
        public function isStopped()
        {
        }
        /**
         * Is sending started.
         *
         * @return bool
         */
        public function isWaiting()
        {
        }
        /**
         * Is halted.
         *
         * @return bool
         */
        public function isHalted()
        {
        }
        /**
         * Is sending started.
         *
         * @return bool
         */
        public function isSending()
        {
        }
        /**
         * Is sending planned.
         *
         * @return bool
         */
        public function isPlanned()
        {
        }
        /**
         * Is sending paused.
         *
         * @return bool
         */
        public function isPaused()
        {
        }
        /**
         * Is sending was started.
         *
         * @return bool
         */
        public function wasStartedSending()
        {
        }
        /**
         * Is posting was built.
         *
         * @return bool
         */
        public function wasPostingBuilt()
        {
        }
        /**
         * Is sending limit exceeded.
         *
         * @return bool
         */
        public function isSendingLimitExceeded()
        {
        }
        /**
         * Is sending limit exceeded.
         *
         * @return bool
         * @deprecated
         */
        public function isSendingPlanned()
        {
        }
        /**
         * Get sent date.
         *
         * @return string|DateTime|null
         */
        public function getDateSend()
        {
        }
        /**
         * Get send date.
         *
         * @return string|DateTime|null
         */
        public function getDatePause()
        {
        }
        /**
         * Get send date.
         *
         * @return string|DateTime|null
         */
        public function getDateSent()
        {
        }
        /**
         * Get create date.
         *
         * @return string|DateTime|null
         */
        public function getDateCreate()
        {
        }
        /**
         * Get planned date send.
         *
         * @return string|DateTime|null
         */
        public function getPlannedDateSend()
        {
        }
        /**
         * Get last exec date.
         *
         * @return string|DateTime|null
         */
        public function getLastExecutedDate()
        {
        }
        /**
         * Update planed date send.
         *
         * @param Date $date Date.
         * @return bool
         */
        public function updatePlannedDateSend(\Bitrix\Main\Type\Date $date)
        {
        }
        /**
         * Update send date.
         *
         * @return bool
         */
        protected function updateDateSend()
        {
        }
        /**
         * Update pause date.
         *
         * @return bool
         */
        protected function updateDatePause()
        {
        }
        /**
         * Update sent date.
         *
         * @return bool
         */
        protected function updateDateSent()
        {
        }
        /**
         * Update date.
         *
         * @param string $name Name.
         * @param DateTime|null $date Date.
         * @return bool
         */
        protected function updateDate($name, $date = null)
        {
        }
        /**
         * Get current state code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get current state name.
         *
         * @return string
         */
        public function getName()
        {
        }
        protected static function getStateName($code)
        {
        }
        /**
         * Get states.
         *
         * @return array
         */
        public static function getList()
        {
        }
        /**
         * Plan sending.
         *
         * @param Date $sendDate Send date.
         * @return bool
         * @throws InvalidOperationException
         */
        public function plan(\Bitrix\Main\Type\Date $sendDate)
        {
        }
        /**
         * Change state to ready.
         *
         * @return bool
         * @throws InvalidOperationException
         */
        public function ready()
        {
        }
        /**
         * Send.
         *
         * @return bool
         * @throws InvalidOperationException
         */
        public function send()
        {
        }
        /**
         * Send errors.
         *
         * @return bool
         * @throws InvalidOperationException
         */
        public function sendErrors()
        {
        }
        /**
         * Pause.
         *
         * @return bool
         * @throws InvalidOperationException
         */
        public function pause()
        {
        }
        /**
         * Halt.
         *
         * @return bool
         * @throws InvalidOperationException
         */
        public function halt()
        {
        }
        /**
         * Resume.
         *
         * @return bool
         * @throws InvalidOperationException
         */
        public function resume()
        {
        }
        /**
         * Stop.
         *
         * @return bool
         * @throws InvalidOperationException
         */
        public function stop()
        {
        }
        /**
         * Init.
         *
         * @return bool
         * @throws InvalidOperationException
         */
        public function init()
        {
        }
        /**
         * Reset.
         *
         * @return bool
         * @throws InvalidOperationException
         * @throws NotImplementedException
         */
        public function reset()
        {
        }
        /**
         * Wait.
         *
         * @param Dispatch\MethodSchedule|null $method Method.
         * @return bool
         * @throws InvalidOperationException
         */
        public function wait(\Bitrix\Sender\Dispatch\MethodSchedule $method = null)
        {
        }
        /**
         * Check ready possibility.
         *
         * @return bool
         */
        public function canReady()
        {
        }
        /**
         * Check send possibility.
         *
         * @return bool
         */
        public function canSend()
        {
        }
        /**
         * Check send errors possibility.
         *
         * @return bool
         */
        public function canSendErrors()
        {
        }
        /**
         * Check plan possibility.
         *
         * @return bool
         */
        public function canPlan()
        {
        }
        /**
         * Check pause possibility.
         *
         * @return bool
         */
        public function canPause()
        {
        }
        /**
         * Check stop possibility.
         *
         * @return bool
         */
        public function canStop()
        {
        }
        /**
         * Check resume possibility.
         *
         * @return bool
         */
        public function canResume()
        {
        }
        /**
         * Check reset possibility.
         *
         * @return bool
         */
        public function canReset()
        {
        }
        /**
         * Check init possibility.
         *
         * @return bool
         */
        public function canInit()
        {
        }
        /**
         * Check wait possibility.
         *
         * @return bool
         */
        public function canWait()
        {
        }
        /**
         * Check halt possibility.
         *
         * @return bool
         */
        public function canHalt()
        {
        }
        /**
         * Get possible states.
         *
         * @return array
         */
        protected function getPossibleStates()
        {
        }
        /**
         * Return true if can change state.
         *
         * @param string $state State.
         * @return bool
         */
        private function canChangeState($state)
        {
        }
        /**
         * Change state.
         *
         * @param string $state State.
         * @param Date|null $sendDate Send date.
         * @return bool
         * @throws InvalidOperationException
         */
        private function changeState($state, \Bitrix\Main\Type\Date $sendDate = null)
        {
        }
        /**
         * Change status.
         *
         * @param string $state State.
         * @return bool
         */
        private function isPossibleState($state)
        {
        }
        /**
         * Update status.
         *
         * @param string $status Status.
         * @param string $state State.
         * @param Date|null $sendDate Send date.
         * @return bool
         */
        private function updateStatus($status, $state, \Bitrix\Main\Type\Date $sendDate = null)
        {
        }
        /**
         * Change status.
         *
         * @return array
         */
        private static function getStateMap()
        {
        }
        /**
         * Change status.
         *
         * @return array
         */
        private static function getStatusMap()
        {
        }
        private function isCampaignActive()
        {
        }
    }
    /**
     * Class State
     * @package Bitrix\Sender\Dispatch
     */
    class Semantics
    {
        const FINISHED = 1;
        const READY = 2;
        const WORKING = 3;
        /**
         * Get finish states.
         *
         * @return array
         */
        public static function getFinishStates()
        {
        }
        /**
         * Get ready states.
         *
         * @return array
         */
        public static function getReadyStates()
        {
        }
        /**
         * Get work states.
         *
         * @return array
         */
        public static function getWorkStates()
        {
        }
        /**
         * Get states by semantic ID.
         *
         * @param integer $semanticId Semantic ID.
         * @return array
         */
        public static function getStates($semanticId)
        {
        }
    }
    class MethodSchedule implements \Bitrix\Sender\Dispatch\iMethod
    {
        /** @var integer[] $monthsOfYear Months. */
        protected $monthsOfYear = array();
        /** @var integer[] $daysOfMonth Days. */
        protected $daysOfMonth = array();
        /** @var integer[] $daysOfWeek Week days. */
        protected $daysOfWeek = array();
        /** @var integer $hours Hour. */
        protected $hours = 0;
        /** @var integer $minutes Minutes. */
        protected $minutes = 0;
        /** @var Entity\Letter $letter Letter. */
        private $letter;
        /**
         * Constructor.
         *
         * @param Entity\Letter $letter Letter.
         */
        public function __construct(\Bitrix\Sender\Entity\Letter $letter)
        {
        }
        /**
         * Set days of month.
         *
         * @param integer[] $days Days.
         * @return $this
         */
        public function setDaysOfMonth(array $days)
        {
        }
        /**
         * Set days of week.
         *
         * @param integer[] $days Days.
         * @return $this
         */
        public function setDaysOfWeek(array $days)
        {
        }
        /**
         * Set month of year.
         *
         * @param integer[] $months Months.
         * @return $this
         */
        public function setMonthsOfYear(array $months)
        {
        }
        /**
         * Set time.
         *
         * @param string $hours Hours.
         * @param string $minutes Minutes.
         * @return $this
         */
        public function setTime($hours, $minutes)
        {
        }
        private function getDateTimeByData(array $months = [], array $days = [])
        {
        }
        private function checkDateTime(\Bitrix\Main\Type\DateTime $date = null)
        {
        }
        private function getDateTime($month = null, $day = null, $nextYear = false)
        {
        }
        /**
         * Get next date.
         *
         * @return DateTime
         * @throws NotImplementedException
         */
        public function getNextDate()
        {
        }
        /**
         * Apply method.
         *
         * @return void
         */
        public function apply()
        {
        }
        /**
         * Revoke method.
         *
         * @return void
         */
        public function revoke()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Parse days of month.
         *
         * @param string $daysOfMonth Days of month.
         * @return array|null
         */
        public static function parseDaysOfMonth($daysOfMonth)
        {
        }
        /**
         * Parse days of week.
         *
         * @param string $daysOfWeek Days of week.
         * @return array|null
         */
        public static function parseDaysOfWeek($daysOfWeek)
        {
        }
        /**
         * Parse months of year.
         *
         * @param string $monthsOfYear Months of year.
         * @return array|null
         */
        public static function parseMonthsOfYear($monthsOfYear)
        {
        }
        /**
         * Parse times of day.
         *
         * @param string $time Time.
         * @return array|null
         */
        public static function parseTimesOfDay($time)
        {
        }
        /**
         * Get time list.
         *
         * @return array
         */
        public static function getTimeList()
        {
        }
    }
    class MethodTime implements \Bitrix\Sender\Dispatch\iMethod
    {
        /** @var DateTime $dateTime Date. */
        protected $dateTime;
        /** @var Entity\Letter $letter Letter. */
        private $letter;
        /**
         * Constructor.
         *
         * @param Entity\Letter $letter Letter.
         */
        public function __construct(\Bitrix\Sender\Entity\Letter $letter)
        {
        }
        /**
         * Apply method.
         *
         * @param DateTime $dateTime Date.
         */
        public function setDateTime(\Bitrix\Main\Type\DateTime $dateTime)
        {
        }
        /**
         * Apply method.
         *
         * @return DateTime
         */
        public function getDateTime()
        {
        }
        /**
         * Apply method.
         *
         * @return void
         */
        public function apply()
        {
        }
        /**
         * Revoke method.
         *
         * @return void
         */
        public function revoke()
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
    }
    /**
     * Class Duration
     * @package Bitrix\Sender\Dispatch
     */
    class Duration
    {
        /** @var Entity\Letter $letter Letter. */
        private $letter;
        /** @var DurationCountBased $durationCountBased Count based duration. */
        private $durationCountBased;
        /** @var DurationDateBased $durationDateBased Date based duration. */
        private $durationDateBased;
        /**
         * Constructor.
         *
         * @param Entity\Letter $letter Letter.
         */
        public function __construct(\Bitrix\Sender\Entity\Letter $letter)
        {
        }
        /**
         * Get date.
         *
         * @return DateTime
         */
        public function getDate()
        {
        }
        /**
         * Get count.
         *
         * @return integer
         */
        protected function getCount()
        {
        }
        /**
         * Get interval in seconds.
         *
         * @return integer
         */
        public function getInterval()
        {
        }
        /**
         * Get formatted interval.
         *
         * @return string
         */
        public function getFormatted()
        {
        }
        /**
         * Get formatted minimal interval.
         *
         * @return string
         */
        public static function getFormattedMinimalInterval()
        {
        }
        /**
         * Get formatted maximal interval.
         *
         * @return string
         */
        public static function getFormattedMaximalInterval()
        {
        }
        /**
         * Get minimal interval in seconds.
         *
         * @return integer
         */
        public static function getMinimalInterval()
        {
        }
        /**
         * Get maximal interval in seconds.
         *
         * @return integer
         */
        public static function getMaximalInterval()
        {
        }
        /**
         * Get warn interval in seconds.
         *
         * @return integer
         */
        public static function getWarnInterval()
        {
        }
        /**
         * Get formatted interval.
         *
         * @return string
         */
        public function getFormattedInterval()
        {
        }
        /**
         * Format date.
         *
         * @param DateTime $dateTime Date.
         * @return string
         */
        public function format(\Bitrix\Main\Type\DateTime $dateTime = null)
        {
        }
    }
}
namespace Bitrix\Sender\Segment {
    /**
     * Class TileView
     * @package Bitrix\Sender\Entity
     * @internal
     */
    class TileView
    {
        const MAX_COUNT = 4;
        /** @var bool $isInclude Is include. */
        protected $isInclude = true;
        /** @var Message\Adapter $message Message. */
        protected $message;
        /**
         * Create instance.
         *
         * @param bool $isInclude Get stat by including or excluding segments in letters.
         * @return static
         */
        public static function create($isInclude = true)
        {
        }
        /**
         * Constructor.
         *
         * @param bool $isInclude Get stat by including or excluding segments in letters.
         */
        public function __construct($isInclude = true)
        {
        }
        /**
         * Set message.
         *
         * @param Message\Adapter|null $message Message.
         *
         * @return $this
         */
        public function setMessage(\Bitrix\Sender\Message\Adapter $message = null)
        {
        }
        /**
         * Get segments as tiles array.
         *
         * @return array
         */
        public function getSections()
        {
        }
        /**
         * Get segments as tiles array.
         *
         * @param integer $segmentId Segment ID.
         * @return array|null
         */
        public function getTile($segmentId)
        {
        }
        /**
         * Get segments as tiles array.
         *
         * @param array $parameters Parameters.
         * @return array
         */
        public function getTiles(array $parameters = array())
        {
        }
        protected static function getBackgroundColor(array $data)
        {
        }
    }
}
namespace Bitrix\Sender\Runtime {
    /**
     * Class Job
     * @package Bitrix\Sender\Runtime
     */
    abstract class Job
    {
        /**
         * Actualize jobs by campaign ID.
         * @return void
         */
        public static function actualizeByCampaignId($campaignId)
        {
        }
        /**
         * Actualize jobs by letter ID.
         * @return void
         */
        public static function actualizeByLetterId($letterId)
        {
        }
        /**
         * Actualize all jobs.
         * @return void
         */
        public static function actualizeAll()
        {
        }
        protected function addAgent($agentName, $interval = 60, $nextDateExec = '')
        {
        }
        protected function removeAgent($agentName)
        {
        }
    }
    /**
     * Class ReiteratedJob
     * @package Bitrix\Sender\Runtime
     */
    class ReiteratedJob extends \Bitrix\Sender\Runtime\Job
    {
        /**
         * Actualize jobs.
         * @return $this
         */
        public function actualize()
        {
        }
        /**
         * Get agent name.
         *
         * @return string
         */
        public static function getAgentName()
        {
        }
    }
    /**
     * Class Env
     * @package Bitrix\Sender\Runtime
     */
    class Env
    {
        /**
         * Return true if jobs run at cron.
         * @return bool
         */
        public static function isSenderJobCron()
        {
        }
        /**
         * Return true if reiterated jobs run at cron.
         * @return bool
         */
        public static function isReiteratedJobCron()
        {
        }
        /**
         * Get execution timeout.
         * @return int
         */
        public static function getJobExecutionTimeout()
        {
        }
        /**
         * Get execution item limit.
         * @return int
         */
        public static function getJobExecutionItemLimit()
        {
        }
        /**
         * Get execution item limit.
         * @return IThreadStrategy
         */
        public static function getThreadContext()
        {
        }
    }
    /**
     * Class TimeLine
     * @package Bitrix\Sender\Runtime
     */
    class TimeLineJob extends \Bitrix\Sender\Runtime\Job
    {
        /** @var  int $letterId Letter ID. */
        protected $letterId;
        /** @var  int $campaignId Campaign ID. */
        protected $campaignId;
        /**
         * Add agent to handle time line tasks
         * @return void
         */
        public static function addEventAgent($letterId)
        {
        }
        /**
         * get timeline agent name
         * @return string
         */
        public static function getAgentName($letterId)
        {
        }
    }
    /**
     * Class Timer
     * @package Bitrix\Sender\Runtime
     */
    class Timer
    {
        /** @var  integer|null $timeout Timeout. */
        protected $timeout;
        /** @var  integer|null $timeAtStart Time at start. */
        protected $timeAtStart;
        /** @var  integer|null $limit Limit. */
        protected $limit;
        /** @var  integer $current Current. */
        protected $current = 0;
        /** @var  bool $isManualIncrement Limit inc is manual. */
        protected $isManualIncrement = false;
        /**
         * Timer constructor.
         *
         * @param integer|null $timeout Timeout.
         * @param integer|null $limit Limit.
         */
        public function __construct($timeout = null, $limit = null)
        {
        }
        /**
         * Return true if timer is elapsed.
         *
         * @return bool
         */
        public function isElapsed()
        {
        }
        /**
         * Enable manual increment.
         *
         * @return $this
         */
        public function enableManualIncrement()
        {
        }
        /**
         * Increment current value of limit.
         *
         * @return $this
         */
        public function increment()
        {
        }
        /**
         * Set limit.
         *
         * @param integer $limit Limit.
         * @return $this
         */
        public function setLimit($limit)
        {
        }
        /**
         * Set timeout.
         *
         * @param integer $timeout Timeout.
         * @return $this
         */
        public function setTimeout($timeout)
        {
        }
        /**
         * Start time watch.
         *
         * @return $this
         */
        public function startTime()
        {
        }
        /**
         * Check timeout.
         *
         * @return bool
         */
        public function isTimeout()
        {
        }
        /**
         * Check limits.
         *
         * @return bool
         */
        public function isLimitExceeded()
        {
        }
    }
    /**
     * Class SenderJob
     * @package Bitrix\Sender\Runtime
     */
    class SenderJob extends \Bitrix\Sender\Runtime\Job
    {
        /** @var  int $letterId Letter ID. */
        protected $letterId;
        /** @var  int $campaignId Campaign ID. */
        protected $campaignId;
        /**
         * Set campaign ID.
         *
         * @param int $campaignId Campaign ID.
         * @return $this
         */
        public function withCampaignId($campaignId)
        {
        }
        /**
         * Set letter ID.
         *
         * @param int $letterId Letter ID.
         * @return $this
         */
        public function withLetterId($letterId)
        {
        }
        /**
         * Actualize jobs.
         * @return $this
         */
        public function actualize()
        {
        }
        /**
         * Get agent name.
         *
         * @param int $letterId Letter ID.
         * @param bool|int $threadId
         *
         * @return string
         */
        public static function getAgentName($letterId, $threadId = false)
        {
        }
    }
}
namespace Bitrix\Sender {
    /**
     * Class MailingChainTable
     * @package Bitrix\Sender
     * @internal
     */
    class MailingChainTable extends \Bitrix\Main\Entity\DataManager
    {
        const STATUS_NEW = 'N';
        const STATUS_SEND = 'S';
        const STATUS_PAUSE = 'P';
        const STATUS_WAIT = 'W';
        const STATUS_PLAN = 'T';
        const STATUS_END = 'Y';
        const STATUS_CANCEL = 'C';
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for EMAIL_FROM field.
         *
         * @return array
         */
        public static function validateEmailForm()
        {
        }
        /**
         * @param string $value Value.
         * @return mixed
         */
        public static function checkEmail($value)
        {
        }
        /**
         * Copy mailing chain.
         *
         * @param integer $id Chain id
         * @return int|null Copied chain id
         */
        public static function copy($id)
        {
        }
        /**
         * @param integer $mailingChainId
         * @param bool $prepareFields
         *
         * @return int|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function initPosting($mailingChainId, $prepareFields = true)
        {
        }
        /**
         * @param Entity\Event $event
         * @return Entity\EventResult
         */
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * @param Entity\Event $event
         * @return Entity\EventResult
         */
        public static function onBeforeUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * @param Entity\Event $event
         * @return Entity\EventResult
         */
        public static function onAfterUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * @param Entity\Event $event
         * @return Entity\EventResult
         */
        public static function onDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * @param Entity\Event $event
         * @return void
         */
        public static function onAfterDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * @param $id
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function isReadyToSend($id)
        {
        }
        /**
         * @param $id
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function isManualSentPartly($id)
        {
        }
        /**
         * Return true if chain will auto send.
         *
         * @param $id
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function isAutoSend($id)
        {
        }
        /**
         * Return true if chain can resend mails to recipients who have error sending
         *
         * @param $id
         * @return bool
         */
        public static function canReSendErrorRecipients($id)
        {
        }
        /**
         * Change status of recipients and mailing chain for resending mails to recipients who have error sending
         *
         * @param $id
         * @return void
         */
        public static function prepareReSendErrorRecipients($id)
        {
        }
        /**
         * @param $mailingId
         */
        public static function setStatusNew($mailingId)
        {
        }
        /**
         * @return array
         */
        public static function getStatusList()
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getDefaultEmailFromList()
        {
        }
        /**
         * @return array
         */
        public static function getEmailFromList()
        {
        }
        /**
         * @param $email
         */
        public static function setEmailFromToList($email)
        {
        }
        /**
         * @return array
         */
        public static function getEmailToMeList()
        {
        }
        /**
         * @param $email
         */
        public static function setEmailToMeList($email)
        {
        }
        /**
         * @param string|null $templateType Template type.
         * @param string|null $templateId Template ID.
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function onPresetTemplateList($templateType = null, $templateId = null)
        {
        }
        /**
         * Get message of mailing chain by ID.
         *
         * @param string $id ID of mailing chain
         * @return null|string
         * @internal
         */
        public static function getMessageById($id)
        {
        }
    }
    class MailingAttachmentTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Sender\Message {
    /**
     * Class Factory
     * @package Bitrix\Sender\Message
     */
    class Factory extends \Bitrix\Sender\Internals\CodeBasedFactory
    {
        /**
         * Get interface.
         *
         * @return string
         */
        protected static function getInterface()
        {
        }
        protected static function getClasses()
        {
        }
        /**
         * Get ads message instances.
         *
         * @return iBase[]
         */
        public static function getAdsMessages()
        {
        }
        /**
         * Get ads message instances.
         *
         * @return iBase[]
         */
        public static function getTolokaMessages()
        {
        }
        /**
         * Get non ads message instances.
         *
         * @return iBase[]
         */
        public static function getMailingMessages()
        {
        }
        /**
         * Get non ads message instances.
         *
         * @return iBase[]
         */
        public static function getReturnCustomerMessages()
        {
        }
        /**
         * Get ads message instances.
         *
         * @return iBase[]
         */
        public static function getAdsMessageCodes()
        {
        }
        /**
         * Get non ads message instances.
         *
         * @return iBase[]
         */
        public static function getMailingMessageCodes()
        {
        }
        /**
         * Get non ads message instances.
         *
         * @return iBase[]
         */
        public static function getTolokaMessageCodes()
        {
        }
        /**
         * Get non ads message instances.
         *
         * @return string[]
         */
        public static function getReturnCustomerMessageCodes()
        {
        }
        /**
         * Get message instances.
         *
         * @return iBase[]
         */
        public static function getMessages()
        {
        }
        /**
         * Get transport instance by code.
         *
         * @param string $code Transport code.
         *
         * @return null|iBase
         */
        public static function getMessage($code)
        {
        }
    }
    /**
     * Class Result
     * @package Bitrix\Sender\Message
     */
    class Result extends \Bitrix\Main\Result
    {
        /** @var integer|string|null $id ID. */
        protected $id;
        /**
         * Get ID.
         *
         * @return integer|string|null
         */
        public function getId()
        {
        }
        /**
         * Set ID.
         *
         * @param integer|string|null
         * @return $this
         */
        public function setId($id)
        {
        }
    }
    class Configuration
    {
        /** @var integer|string|null $id ID. */
        protected $id;
        /** @var array $data Data. */
        protected $data = array();
        /** @var callable $view View. */
        protected $view;
        /** @var ConfigurationOption[] $options UI Options. */
        protected $options = array();
        /**
         * Configuration constructor.
         * @param array $data Data.
         */
        public function __construct(array $data = array())
        {
        }
        /**
         * Get ID.
         *
         * @return int|string|null
         */
        public function getId()
        {
        }
        /**
         * Set ID.
         *
         * @param int|string|null $id ID.
         */
        public function setId($id)
        {
        }
        /**
         * Get view.
         *
         * @return string|null
         */
        public function getView()
        {
        }
        /**
         * Set view.
         *
         * @param callable $view View.
         */
        public function setView($view)
        {
        }
        /**
         * Set.
         *
         * @param $key
         * @param $value
         */
        public function set($key, $value)
        {
        }
        /**
         * Get.
         *
         * @param string $key Key
         * @param mixed $defaultValue Default value.
         * @return mixed
         */
        public function get($key, $defaultValue = null)
        {
        }
        /**
         * Get value.
         *
         * @param string $key Key.
         * @param mixed $defaultValue Default value.
         * @return mixed
         */
        public function getReadonlyView($key, $defaultValue = null)
        {
        }
        /**
         * Get option.
         *
         * @param $key
         * @return ConfigurationOption|null
         */
        public function getOption($key)
        {
        }
        /**
         * Has options.
         *
         * @return boolean
         */
        public function hasOptions()
        {
        }
        /**
         * Get options.
         *
         * @return ConfigurationOption[]
         */
        public function getOptions()
        {
        }
        /**
         * Get Array options.
         *
         * @return array
         */
        public function getArrayOptions()
        {
        }
        /**
         * Convert to array.
         *
         * @param ConfigurationOption[] $options Options.
         * @return array
         */
        public static function convertToArray(array $options)
        {
        }
        /**
         * Add option.
         *
         * @param ConfigurationOption $option Option.
         * @param string $targetOptionCode Target option code.
         * @param bool $isInsertAfter Is insert after.
         * @return void
         * @throws ArgumentException
         */
        public function addOption(\Bitrix\Sender\Message\ConfigurationOption $option, $targetOptionCode = null, $isInsertAfter = true)
        {
        }
        /**
         * Set array options.
         *
         * @param array $options Options.
         * @return void
         */
        public function setArrayOptions(array $options)
        {
        }
        /**
         * Get templated option.
         *
         * @return ConfigurationOption
         */
        public function getTemplatedOption()
        {
        }
        /**
         * Has templated option.
         *
         * @return bool
         */
        public function hasTemplatedOption()
        {
        }
        /**
         * Get options by group.
         *
         * @param integer $group Group.
         * @return ConfigurationOption[]
         */
        public function getOptionsByGroup($group)
        {
        }
        /**
         * Get options by type.
         *
         * @param string $type Type.
         * @return ConfigurationOption[]
         */
        public function getOptionsByType($type)
        {
        }
        /**
         * Get options of type.
         *
         * @param string $type Type.
         * @return ConfigurationOption|null
         */
        public function getOptionByType($type)
        {
        }
        /**
         * Has options of type.
         *
         * @param string $type Type.
         * @return bool
         */
        public function hasOptionsOfType($type)
        {
        }
        /**
         * Check options.
         *
         * @return Result
         */
        public function checkOptions()
        {
        }
        /**
         * Check required options.
         *
         * @param Result $result Result.
         * @return Result
         */
        protected function checkRequiredOptions(\Bitrix\Main\Result $result = null)
        {
        }
    }
    /**
     * Class Result
     * @package Bitrix\Sender\Message
     */
    class EventResult extends \Bitrix\Main\Result
    {
        public function setSuccess($isSuccess)
        {
        }
    }
    class ConfigurationOption
    {
        const TYPE_DATE_TIME = 'datetime';
        const TYPE_NUMBER = 'number';
        const TYPE_CUSTOM = 'custom';
        const TYPE_PRESET_STRING = 'preset-string';
        const TYPE_STRING = 'string';
        const TYPE_CHECKBOX = 'checkbox';
        const TYPE_EMAIL = 'email';
        const TYPE_LIST = 'list';
        const TYPE_HTML = 'html';
        const TYPE_TEXT = 'text';
        const TYPE_FILE = 'file';
        const TYPE_TEMPLATE_TYPE = 'template-type';
        const TYPE_TEMPLATE_ID = 'template-id';
        const TYPE_MAIL_EDITOR = 'mail-editor';
        const TYPE_AUDIO = 'audio';
        const TYPE_SMS_EDITOR = 'sms-editor';
        const TYPE_USER_LIST = 'user-list';
        const GROUP_DEFAULT = 0;
        const GROUP_ADDITIONAL = 1;
        /** @var string $type Type. */
        protected $type;
        /** @var string $code Code. */
        protected $code;
        /** @var string $view View. */
        protected $view;
        /** @var string $name Name. */
        protected $name;
        /** @var string|array $value Value. */
        protected $value;
        /** @var array $items Items. */
        protected $items = array();
        /** @var integer $group Group. */
        protected $group = self::GROUP_DEFAULT;
        /** @var null|string|array $hint Hint. */
        protected $hint;
        /** @var boolean $required Required. */
        protected $required = false;
        /** @var boolean $templated Templated. */
        protected $templated = false;
        /** @var callable|null $readonlyView Render readonly value. */
        protected $readonlyView;
        /** @var boolean $showInList Show option value in items list. */
        protected $showInList = false;
        /** @var boolean $showInFilter Show option value in filter. */
        protected $showInFilter = false;
        /** @var int $maxLength max length of string field */
        protected $maxLength;
        /**
         * Configuration constructor.
         * @param array $data Data.
         */
        public function __construct(array $data = array())
        {
        }
        /**
         * Get as array.
         *
         * @return array
         */
        public function getArray()
        {
        }
        /**
         * Get type.
         *
         * @return string
         */
        public function getType()
        {
        }
        /**
         * Set type.
         *
         * @param string $type Type.
         * @return void
         */
        public function setType($type)
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Set code.
         *
         * @param string $code Code.
         * @return void
         */
        public function setCode($code)
        {
        }
        /**
         * Get view.
         *
         * @return string|callable
         */
        public function getView()
        {
        }
        /**
         * Set view.
         *
         * @param string|callable $view View.
         * @return void
         */
        public function setView($view)
        {
        }
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Set name.
         *
         * @param string $name Name.
         * @return void
         */
        public function setName($name)
        {
        }
        /**
         * Get value.
         *
         * @return string|array
         */
        public function getValue()
        {
        }
        /**
         * Has value.
         *
         * @return bool
         */
        public function hasValue()
        {
        }
        /**
         * Set value.
         *
         * @param string|array $value Value.
         * @return void
         */
        public function setValue($value)
        {
        }
        /**
         * Get group.
         *
         * @return integer
         */
        public function getGroup()
        {
        }
        /**
         * Set value.
         *
         * @param integer $group Group.
         * @return void
         */
        public function setGroup($group)
        {
        }
        /**
         * Get items.
         *
         * @return array
         */
        public function getItems()
        {
        }
        /**
         * Set items.
         *
         * @param array $items Items.
         * @return void
         */
        public function setItems(array $items)
        {
        }
        /**
         * Is required.
         *
         * @return boolean
         */
        public function isRequired()
        {
        }
        /**
         * Set required.
         *
         * @param boolean $required Required.
         * @return void
         */
        public function setRequired($required)
        {
        }
        /**
         * Is templated.
         *
         * @return boolean
         */
        public function isTemplated()
        {
        }
        /**
         * Set required.
         *
         * @param boolean $templated Templated.
         * @return void
         */
        public function setTemplated($templated)
        {
        }
        /**
         * Get hint.
         *
         * @return null|string|array
         */
        public function getHint()
        {
        }
        /**
         * Set required.
         *
         * @param null|string|array $hint Hint.
         * @return void
         */
        public function setHint($hint)
        {
        }
        /**
         * Get readonly view.
         *
         * @param mixed $value Option value
         * @return mixed
         */
        public function getReadonlyView($value)
        {
        }
        /**
         * @return int
         */
        public function getMaxLength()
        {
        }
        /**
         * Get show in list or not.
         *
         * @return bool
         */
        public function getShowInList()
        {
        }
        /**
         * Get show in filter or not.
         *
         * @return bool
         */
        public function getShowInFilter()
        {
        }
        /**
         * Set readonly view callback.
         *
         * @param callable|null $readonlyView Readonly view callback.
         * @return void
         */
        public function setReadonlyView($readonlyView)
        {
        }
        /**
         * Set show in list or not.
         *
         * @param boolean $showInList Show in items list.
         * @return void
         */
        public function setShowInList($showInList)
        {
        }
        /**
         * Set show in list or not.
         *
         * @param boolean $showInFilter Show in filter.
         * @return void
         */
        public function setShowInFilter($showInFilter)
        {
        }
        /**
         * @param int $maxLength
         */
        public function setMaxLength(int $maxLength)
        {
        }
    }
    /**
     * Class Adapter
     * @package Bitrix\Sender\Message
     */
    class Adapter implements \Bitrix\Sender\Message\iBase
    {
        /** @var  static[] $list List. */
        protected static $list;
        /** @var iBase $message Message. */
        protected $message;
        /** @var  Tester $tester tester. */
        protected $tester;
        /** @var Configuration $configuration Configuration. */
        protected $configuration;
        /** @var Transport\Adapter $transport Transport. */
        protected $transport;
        /** @var array $fields Fields. */
        protected $fields = array();
        /** @var string|null $siteId Site ID. */
        protected $siteId = null;
        /** @var array|null $siteData Site data. */
        protected $siteData = null;
        /** @var string $recipientCode Recipient code. */
        protected $recipientCode;
        /** @var string $recipientId Recipient ID. */
        protected $recipientId;
        /** @var string $recipientType Recipient type. */
        protected $recipientType;
        /** @var [] $recipientData Recipient data. */
        protected $recipientData;
        /** @var Tracker $readTracker Read tracker. */
        protected $readTracker;
        /** @var Tracker $clickTracker Click tracker. */
        protected $clickTracker;
        /** @var Tracker $unsubTracker Unsubscribe tracker. */
        protected $unsubTracker;
        /**
         * Get instance.
         *
         * @param string $code Message code.
         * @return static
         * @throws ArgumentException
         */
        public static function getInstance($code)
        {
        }
        /**
         * Create instance.
         *
         * @param string $code Code.
         * @return static
         * @throws ArgumentException
         */
        public static function create($code)
        {
        }
        /**
         * Message constructor.
         *
         * @param iBase $message Message.
         */
        public function __construct(\Bitrix\Sender\Message\iBase $message)
        {
        }
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get transport.
         *
         * @return Transport\Adapter
         */
        public function getTransport()
        {
        }
        /**
         * Set transport.
         *
         * @param Transport\Adapter $transport Transport.
         * @return void
         */
        public function setTransport(\Bitrix\Sender\Transport\Adapter $transport)
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get ID.
         *
         * @return string
         */
        public function getId()
        {
        }
        /**
         * Get supported transports.
         *
         * @return array
         */
        public function getSupportedTransports()
        {
        }
        /**
         * Get supported recipient types.
         *
         * @return integer[]
         */
        public function getSupportedRecipientTypes()
        {
        }
        /**
         * Is support testing.
         *
         * @return Tester
         */
        public function getTester()
        {
        }
        /**
         * Load configuration.
         *
         * @param string|null $id ID.
         * @return Configuration
         */
        public function loadConfiguration($id = null)
        {
        }
        /**
         * Set configuration data.
         *
         * @param array $data Data.
         * @return void
         */
        public function setConfigurationData(array $data)
        {
        }
        /**
         * Get configuration.
         *
         * @return Configuration
         */
        public function getConfiguration()
        {
        }
        /**
         * Save configuration.
         *
         * @param Configuration $configuration Configuration.
         * @return Result
         */
        public function saveConfiguration(\Bitrix\Sender\Message\Configuration $configuration)
        {
        }
        /**
         * Copy configuration.
         *
         * @param integer|string|null $id ID.
         * @return Result|null
         */
        public function copyConfiguration($id)
        {
        }
        /**
         * Get field.
         *
         * @param string $key Key.
         * @return mixed|string|null
         */
        public function getField($key)
        {
        }
        /**
         * Get fields.
         *
         * @return array
         */
        public function getFields()
        {
        }
        /**
         * Set fields.
         *
         * @param array $fields Fields.
         * @return void
         */
        public function setFields(array $fields)
        {
        }
        /**
         * Replace fields in content.
         *
         * @param string $content Content.
         * @param string $replaceChar Replace char.
         * @return string
         */
        public function replaceFields($content = "", $replaceChar = '#')
        {
        }
        /**
         * Get to.
         *
         * @return string
         */
        public function getTo()
        {
        }
        /**
         * Get recipient code.
         *
         * @return string
         */
        public function getRecipientCode()
        {
        }
        /**
         * Set recipient code.
         *
         * @param string $code Code.
         * @return void
         */
        public function setRecipientCode($code)
        {
        }
        /**
         * Get recipient ID.
         *
         * @return string
         */
        public function getRecipientId()
        {
        }
        /**
         * Set recipient ID.
         *
         * @param string $id Recipient ID.
         * @return void
         */
        public function setRecipientId($id)
        {
        }
        /**
         * Get recipient type.
         *
         * @return string
         */
        public function getRecipientType()
        {
        }
        /**
         * Set recipient type.
         *
         * @param string $type Type.
         * @return void
         */
        public function setRecipientType($type)
        {
        }
        /**
         * Get recipient data.
         *
         * @return array
         */
        public function getRecipientData()
        {
        }
        /**
         * Set recipient data.
         *
         * @param array $data Data.
         * @return void
         */
        public function setRecipientData(array $data)
        {
        }
        /**
         * Get read tracker.
         *
         * @return Tracker
         */
        public function getReadTracker()
        {
        }
        /**
         * Get click tracker.
         *
         * @return Tracker
         */
        public function getClickTracker()
        {
        }
        /**
         * Get unsub tracker.
         *
         * @return Tracker
         */
        public function getUnsubTracker()
        {
        }
        /**
         * Send.
         *
         * @return bool
         */
        public function send()
        {
        }
        /**
         * Get send duration.
         *
         * @return integer
         */
        public function getSendDuration()
        {
        }
        /**
         * Set site ID.
         *
         * @param string $id ID.
         * @return void
         */
        public function setSiteId($id = null)
        {
        }
        /**
         * Get site ID.
         *
         * @return string
         */
        public function getSiteId()
        {
        }
        /**
         * Get charset.
         *
         * @return string
         */
        public function getCharset()
        {
        }
        /**
         * Get site ID.
         *
         * @return string
         */
        public function getSiteName()
        {
        }
        /**
         * Get site server name.
         *
         * @return string
         */
        public function getSiteServerName()
        {
        }
        /**
         * Get site data.
         * @param int $id Id.
         * @return array
         * @throws ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function getSiteData($id)
        {
        }
        /**
         * Is ads.
         *
         * @return bool
         */
        public function isAds()
        {
        }
        /**
         * Is mailing.
         *
         * @return bool
         */
        public function isMailing()
        {
        }
        /**
         * Is return customer.
         *
         * @return bool
         */
        public function isReturnCustomer()
        {
        }
        /**
         * Return true if is hidden.
         *
         * @return bool
         */
        public function isHidden()
        {
        }
        /**
         * Is available.
         *
         * @return bool
         */
        public function isAvailable()
        {
        }
        /**
         * Return true if it has statistics.
         *
         * @return bool
         */
        public function hasStatistics()
        {
        }
        /**
         *  Check value of audio field and prepare it for DB
         * @param string $optionCode Field code.
         * @param string $newValue New field value.
         * @return bool|string
         */
        public function getAudioValue($optionCode, $newValue)
        {
        }
        public function onBeforeStart()
        {
        }
        public function onAfterEnd()
        {
        }
        /**
         * @inheritDoc
         */
        public function getEntityCode()
        {
        }
    }
    class Tester
    {
        const MAX_LAST_CODES = 6;
        const MAX_SEND_CODES = 15;
        /** @var Adapter $message Message. */
        protected $message;
        /** @var string $userOptionLastCodesName User option last codes name. */
        protected static $userOptionLastCodesName = 'last_codes';
        /**
         * Checker constructor.
         *
         * @param Adapter $message Message.
         */
        public function __construct(\Bitrix\Sender\Message\Adapter $message)
        {
        }
        /**
         * Is support.
         *
         * @return bool
         */
        public function isSupport()
        {
        }
        /**
         * Get recipient type.
         *
         * @return int|null
         */
        public function getRecipientType()
        {
        }
        /**
         * Get default code.
         *
         * @return null|string
         */
        protected function getDefaultCode()
        {
        }
        /**
         * @return string
         */
        protected function getUserOptionLastCodesName()
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        protected function getEmailToMeList()
        {
        }
        /**
         * Get last codes.
         *
         * @return array
         */
        public function getLastCodes()
        {
        }
        /**
         * Set last codes.
         *
         * @param array $list Codes.
         * @return void
         */
        protected function setLastCodes(array $list)
        {
        }
        /**
         * Add last code.
         *
         * @param string $code Code.
         * @return bool
         */
        protected function addLastCode($code)
        {
        }
        /**
         * Prepare codes.
         *
         * @param array $codes Codes.
         * @param bool $isRemoveLast Is remove last item.
         * @return array
         */
        protected function cutCodes(array $codes, $isRemoveLast = false)
        {
        }
        /**
         * Prepare codes.
         *
         * @param array $codes Codes.
         * @param bool $doCut Do cut.
         * @return array
         */
        protected function prepareCodes(array $codes, $doCut = true)
        {
        }
        /**
         * Send test message to recipients.
         *
         * @param array $codes Recipient codes.
         * @param array $parameters Parameters.
         * @return Result
         */
        public function send(array $codes, array $parameters)
        {
        }
    }
    class Tracker
    {
        const TYPE_READ = 1;
        const TYPE_CLICK = 2;
        const TYPE_UNSUB = 3;
        /** @var  integer $type Type. */
        protected $type;
        /** @var  string $moduleId Module ID. */
        protected $moduleId;
        /** @var  array $fields Fields. */
        protected $fields = array();
        /** @var  array $uriParameters Uri parameters. */
        protected $uriParameters = array();
        /** @var  string $handlerUri Handler uri. */
        protected $handlerUri;
        /** @var  string $linkDomain Link domain. */
        protected $linkDomain;
        /** @var  string $siteId Site id. */
        protected $siteId;
        private $siteData;
        /**
         * Constructor.
         *
         * @param integer $type Type.
         */
        public function __construct($type)
        {
        }
        /**
         * @return string
         */
        public function getModuleId()
        {
        }
        /**
         * @param string $moduleId
         * @return $this
         */
        public function setModuleId($moduleId)
        {
        }
        /**
         * @return string
         */
        public function getSiteId()
        {
        }
        /**
         * @param string $siteId
         * @return $this
         */
        public function setSiteId($siteId)
        {
        }
        /**
         * @return array
         */
        public function getFields()
        {
        }
        /**
         * @param array $fields Fields.
         * @return $this
         */
        public function setFields($fields)
        {
        }
        /**
         * @param string $key Fields.
         * @param string|integer|null $value Value.
         */
        public function addField($key, $value)
        {
        }
        /**
         * @return array
         */
        public function getUriParameters()
        {
        }
        /**
         * @param array $uriParameters
         * @return $this
         */
        public function setUriParameters($uriParameters)
        {
        }
        /**
         * @param string $key Fields.
         * @param string|integer|null $value Value.
         * @return $this
         */
        public function addUriParameter($key, $value)
        {
        }
        /**
         * Get page uri.
         *
         * @return string
         */
        public function getHandlerUri()
        {
        }
        /**
         * Set handler uri.
         *
         * @param string $handlerUri
         * @return $this
         */
        public function setHandlerUri($handlerUri)
        {
        }
        /**
         * Get link domain name.
         *
         * @return string
         */
        public function getLinkDomain()
        {
        }
        /**
         * Set link domain name.
         *
         * @param string $linkDomain
         * @return $this
         */
        public function setLinkDomain($linkDomain)
        {
        }
        /**
         * Get link.
         *
         * @return string
         */
        public function getLink()
        {
        }
        /**
         * Get as array.
         *
         * @return array
         */
        public function getArray()
        {
        }
        /**
         * Set as array.
         *
         * @param array $data Data.
         * @return $this
         */
        public function setArray(array $data)
        {
        }
    }
}
namespace Bitrix\Sender {
    class MailingManager
    {
        /* @var Exception $error */
        protected static $error = null;
        /**
         * @return Exception
         */
        public static function getErrors()
        {
        }
        /**
         * @return string
         * @deprecated
         */
        public static function getAgentNamePeriod()
        {
        }
        /**
         * @param $mailingChainId
         * @return string
         * @deprecated
         */
        public static function getAgentName($mailingChainId)
        {
        }
        /**
         * @param null $mailingId
         * @param null $mailingChainId
         * @throws \Bitrix\Main\ArgumentException
         * @deprecated
         */
        public static function actualizeAgent($mailingId = null, $mailingChainId = null)
        {
        }
        /**
         * Send letter.
         *
         * @param integer $letterId Letter ID.
         *
         * @return string
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function chainSend($letterId)
        {
        }
        /**
         *
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function checkSend()
        {
        }
        /**
         * Check period letters.
         *
         * @param bool $isAgentExec Is agent exec.
         * @return string
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function checkPeriod($isAgentExec = true)
        {
        }
        /**
         * @param \DateTime $date
         * @param $daysOfMonth
         * @param $dayOfWeek
         * @param $timesOfDay
         * @return \DateTime|null
         */
        protected static function getDateExecute(\DateTime $date, $daysOfMonth, $dayOfWeek, $timesOfDay)
        {
        }
    }
    /**
     * Class ContactTable
     *
     * @package Bitrix\Sender
     */
    class ContactTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get table name.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for EMAIL_FROM field.
         *
         * @return array
         */
        public static function validateEmail()
        {
        }
        /**
         * Check email.
         *
         * @return bool|string
         */
        public static function checkEmail($value)
        {
        }
        /**
         * Handler of before add event.
         *
         * @param Entity\Event $event Event object.
         * @return Entity\EventResult
         */
        public static function onBeforeAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Handler of before update event.
         *
         * @param Entity\Event $event Event object.
         * @return Entity\EventResult
         */
        public static function onBeforeUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * On after delete.
         *
         * @param Entity\Event $event Event.
         * @return Entity\EventResult
         */
        public static function onAfterDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Add if not exist.
         *
         * @param array $ar Data.
         * @return bool|int
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function addIfNotExist($ar)
        {
        }
        /**
         * Check connectors.
         *
         * @return void
         */
        public static function checkConnectors()
        {
        }
        /**
         * Add from connector.
         *
         * @param Connector\Base $connector Connector instance.
         * @param null|integer $pageNumber Page number.
         * @param int $timeout Timeout.
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function addFromConnector(\Bitrix\Sender\Connector\Base $connector, $pageNumber = null, $timeout = 0)
        {
        }
        /**
         * Upload contacts.
         *
         * @param array $list List of contacts.
         * @param bool $isBlacklist Is blacklist.
         * @param int $listId List ID.
         * @return bool|int
         */
        public static function upload(array $list, $isBlacklist = false, $listId = null)
        {
        }
    }
    class ListTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get table name.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for CODE field.
         *
         * @return array
         */
        public static function validateCode()
        {
        }
        /**
         * On after delete.
         *
         * @param Entity\Event $event Event.
         * @return Entity\EventResult
         */
        public static function onAfterDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Add if not exist.
         *
         * @param string $code Code.
         * @param string $name Name.
         * @return bool|int
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function addIfNotExist($code, $name)
        {
        }
    }
}
namespace Bitrix\Sender\Search {
    /**
     * Class Builder
     * @package Bitrix\Sender\Search
     */
    class Builder
    {
        /** @var  Entity\Base $entity Entity. */
        private $entity;
        /** @var  Content $content Content. */
        private $content;
        /** @var string $fieldName Field name. */
        private $fieldName;
        /**
         * Filter constructor.
         *
         * @param Entity\Base $entity Entity.
         * @param string|null $fieldName Field name.
         */
        public function __construct(\Bitrix\Main\Entity\Base $entity, $fieldName)
        {
        }
        /**
         * Is full text index enabled.
         *
         * @return bool
         */
        public function isFullTextIndexEnabled()
        {
        }
        /**
         * Return true if entity has field.
         *
         * @return bool
         */
        public function hasField()
        {
        }
        /**
         * Get content.
         *
         * @return Content
         */
        public function getContent()
        {
        }
        /**
         * Return true if ca save.
         *
         * @return bool
         */
        public function isEnabled()
        {
        }
        /**
         * Save.
         *
         * @param int $entityId Entity ID.
         * @return bool
         */
        public function save($entityId)
        {
        }
        /**
         * Apply filter.
         *
         * @param array &$filter Filter.
         * @param string|null $searchString Search string.
         * @return bool
         */
        public function applyFilter(array &$filter, $searchString)
        {
        }
    }
    /**
     * Class Content
     * @package Bitrix\Sender\Search
     */
    class Content
    {
        const TEXT = 0;
        const EMAIL = 1;
        const PHONE = 2;
        const USER = 3;
        const HTML_LAYOUT = 4;
        /** @var array $data Data. */
        private $data = [];
        /** @var array $callbacks Callback list. */
        private $callbacks = [];
        /**
         * Encode text.
         *
         * @param string $text Text.
         * @return string
         */
        public static function encodeText($text)
        {
        }
        /**
         * Get string.
         *
         * @return string
         */
        public function getString()
        {
        }
        /**
         * Add callback.
         *
         * @param callable $callback Callback.
         * @return $this
         * @throws ArgumentException
         */
        public function addCallback($callback)
        {
        }
        /**
         * Clear.
         *
         * @return $this
         */
        public function clear()
        {
        }
        /**
         * Add.
         *
         * @param string $value Value.
         * @param integer $typeId Type ID.
         * @param integer|null $length Length.
         * @return $this
         */
        public function add($value, $typeId = self::TEXT, $length = null)
        {
        }
        /**
         * Add one field from fields.
         *
         * @param array $fields Fields.
         * @param string $name Name.
         * @param integer $typeId Type ID.
         * @param integer|null $length Length.
         * @return $this
         */
        public function addField(array $fields, $name, $typeId = self::TEXT, $length = null)
        {
        }
        /**
         * Add text.
         *
         * @param string $text Text.
         * @param integer|null $length Length.
         * @return $this
         */
        public function addText($text, $length = null)
        {
        }
        /**
         * Add html layout.
         *
         * @param string $layout Layout.
         * @param integer|null $length Length.
         * @return $this
         */
        public function addHtmlLayout($layout, $length = null)
        {
        }
        /**
         * Add recipient.
         *
         * @param string $code Code.
         * @param integer $typeId Type ID.
         * @return $this
         */
        public function addRecipient($code, $typeId)
        {
        }
        /**
         * Add email.
         *
         * @param string $email Email.
         * @return $this
         */
        public function addEmail($email)
        {
        }
        /**
         * Add phone.
         *
         * @param string $phone Phone.
         * @return $this
         */
        public function addPhone($phone)
        {
        }
        /**
         * Add user by id.
         *
         * @param integer $userID User ID.
         * @return $this
         */
        public function addUserById($userID)
        {
        }
        protected static function convertBodyHtmlToText($body)
        {
        }
    }
    /**
     * Class Indexer
     * @package Bitrix\Sender\Search
     */
    class Indexer
    {
        /**
         * Index letters.
         *
         * @param int|null $lastId ID of last indexed element.
         * @return int|null
         */
        public static function indexLetters($lastId = null)
        {
        }
        /**
         * Index letters by agent.
         *
         * @param int|null $lastId ID of last indexed element.
         * @return string
         */
        public static function indexLettersAgent($lastId = null)
        {
        }
    }
}
namespace Bitrix\Sender\Internals {
    class ConversionHandler
    {
        const CLICK_PARAM_NAME = 'BITRIX_SENDER_TO_CONVERSION_CLICK_ID';
        public static function onAfterRecipientClick($data)
        {
        }
        public static function onBeforeProlog()
        {
        }
        public static function onSetDayContextAttributes(\Bitrix\Conversion\DayContext $context)
        {
        }
        public static function onGetAttributeTypes()
        {
        }
    }
    /**
     * Class PrettyDate
     * @package Bitrix\Sender\Internals
     */
    class PrettyDate
    {
        /**
         * Get datetime format.
         *
         * @return string
         */
        public static function getDateTimeFormat()
        {
        }
        /**
         * Get date format.
         *
         * @return string
         */
        public static function getDateFormat()
        {
        }
        /**
         * Format datetime.
         *
         * @param DateTime|null $date Date.
         * @return string
         */
        public static function formatDateTime(\Bitrix\Main\Type\DateTime $date = null)
        {
        }
        /**
         * Format date.
         *
         * @param Date|null $date Date.
         * @return string
         */
        public static function formatDate(\Bitrix\Main\Type\Date $date = null)
        {
        }
    }
    /**
     * Class SqlBatch
     * @package Bitrix\Sender\Internals
     */
    class SqlBatch
    {
        /**
         * Return true if batch fulled.
         *
         * @param array $list List.
         * @param integer $limit Batch limit.
         * @return array
         */
        public static function divide(array $list, $limit = 300)
        {
        }
        /**
         * Get string for sql-IN.
         *
         * @param array $values Values.
         * @return string
         */
        public static function getInString(array $values)
        {
        }
        /**
         * Update.
         *
         * @param string $tableName Table name.
         * @param array $fields Fields.
         * @return void
         */
        public static function update($tableName, array $fields)
        {
        }
        /**
         * Insert.
         *
         * @param string $tableName Table name.
         * @param array $fields Fields.
         * @param array $onDuplicateUpdateFields Duplicate update fields.
         * @return void
         */
        public static function insert($tableName, array $fields, array $onDuplicateUpdateFields = array())
        {
        }
        private static function getFieldNames(array &$fields)
        {
        }
        private static function getFieldValues(array &$fields)
        {
        }
    }
    /**
     * Class PostFiles
     * @package Bitrix\Sender\Internals
     */
    class PostFiles
    {
        /** @var  HttpRequest $request Request. */
        protected $request;
        /** @var  string $inputName Input name. */
        protected $inputName;
        /**
         * Get posted files from context.
         *
         * @param string $inputName Input name.
         * @param array $savedFiles Saved files.
         * @return array
         */
        public static function getFromContext($inputName, array $savedFiles = array())
        {
        }
        /**
         * PostFiles constructor.
         *
         * @param string $inputName Input name.
         * @param HttpRequest|null $request Request.
         */
        public function __construct($inputName, \Bitrix\Main\HttpRequest $request = null)
        {
        }
        /**
         * Get files.
         *
         * @param array $savedFiles Saved files.
         * @param array $files Temporary files or files from media lib.
         * @return array
         */
        public function getFiles(array $savedFiles = [], array $files = [])
        {
        }
        protected function getDeleted()
        {
        }
        protected function getPosted()
        {
        }
        /**
         * Get media lib files.
         *
         * @param array|null $files Files.
         * @return array
         */
        public function getMediaLib(array $files = null)
        {
        }
        /**
         * Get existed files.
         *
         * @param array|null $files Files.
         * @return array
         */
        public function getExisted(array $files = null)
        {
        }
        /**
         * Save file.
         *
         * @param array $file File data.
         * @return int|null
         */
        public static function saveFile(array $file)
        {
        }
    }
    /**
     * Class DataExport
     * @package Bitrix\Sender\Internals
     */
    class DataExport
    {
        /**
         * Export to csv.
         *
         * @param array $columns Columns.
         * @param array|Result $list Data list.
         * @param callable|null $rowCallback Row callback.
         * @return void
         */
        public static function toCsv(array $columns, $list, $rowCallback = null)
        {
        }
        protected static function flushHeaders()
        {
        }
    }
}
namespace Bitrix\Sender\Internals\CommonAjax {
    /**
     * Class ActionGetTemplate
     * @package Bitrix\Sender\Internals\CommonAjax
     */
    abstract class CommonAction
    {
        const NAME = 'unknown';
        /**
         * Get action instance.
         *
         * @return Controller\Action
         */
        public static function get()
        {
        }
        /**
         * Get action requesting uri.
         *
         * @param string $controllerUri Controller uri.
         * @param array $parameters Parameters.
         * @return string
         */
        public static function getRequestingUri($controllerUri, array $parameters = array())
        {
        }
        /**
         * On request event handler.
         *
         * @param HttpRequest $request Request.
         * @param Controller\Response $response Response.
         */
        public static function onRequest(\Bitrix\Main\HttpRequest $request, \Bitrix\Sender\Internals\QueryController\Response $response)
        {
        }
    }
    /**
     * Class ActionGetTemplate
     * @package Bitrix\Sender\Internals\CommonAjax
     */
    class ActionGetTemplate extends \Bitrix\Sender\Internals\CommonAjax\CommonAction
    {
        const NAME = 'getTemplate';
        /**
         * Get action instance.
         *
         * @return Controller\Action
         */
        public static function get()
        {
        }
        /**
         * On request event handler.
         *
         * @param HttpRequest $request Request.
         * @param Controller\Response $response Response.
         */
        public static function onRequest(\Bitrix\Main\HttpRequest $request, \Bitrix\Sender\Internals\QueryController\Response $response)
        {
        }
    }
    /**
     * Class Checker
     * @package Bitrix\Sender\Internals\CommonAjax
     */
    class Checker
    {
        /**
         * Get read permission checker.
         *
         * @return array
         */
        public static function getReadPermissionChecker()
        {
        }
        /**
         * On read permission check.
         *
         * @param Result $result Result.
         * @return void
         */
        public static function onReadPermissionCheck(\Bitrix\Main\Result $result)
        {
        }
        /**
         * Get write permission checker.
         *
         * @return array
         */
        public static function getWritePermissionChecker()
        {
        }
        /**
         * On write permission check.
         *
         * @param Result $result Result.
         * @return void
         */
        public static function onWritePermissionCheck(\Bitrix\Main\Result $result)
        {
        }
        /**
         * Get permission checker for viewing Letter.
         *
         * @return callable
         */
        public static function getViewLetterPermissionChecker()
        {
        }
        /**
         * Get permission checker for modifying Letter.
         *
         * @return callable
         */
        public static function getModifyLetterPermissionChecker()
        {
        }
        /**
         * Get permission checker for modifying Abuse.
         *
         * @return callable
         */
        public static function getModifyAbusePermissionChecker()
        {
        }
        /**
         * Get permission checker for viewing Segment.
         *
         * @return callable
         */
        public static function getViewSegmentPermissionChecker()
        {
        }
        /**
         * Get permission checker for selecting Segment.
         *
         * @return callable
         */
        public static function getSelectSegmentPermissionChecker()
        {
        }
        /**
         * Get permission checker for modifying Segment.
         *
         * @return callable
         */
        public static function getModifySegmentPermissionChecker()
        {
        }
        /**
         * Get permission checker for viewing RC.
         *
         * @return callable
         */
        public static function getViewRcPermissionChecker()
        {
        }
        /**
         * Get permission checker for modifying RC.
         *
         * @return callable
         */
        public static function getModifyRcPermissionChecker()
        {
        }
        /**
         * Get permission checker for viewing RC.
         *
         * @return callable
         */
        public static function getViewBlacklistPermissionChecker()
        {
        }
        /**
         * Get permission checker for modifying RC.
         *
         * @return callable
         */
        public static function getModifyBlacklistPermissionChecker()
        {
        }
        /**
         * Get permission checker for viewing ad.
         *
         * @return callable
         */
        public static function getViewAdPermissionChecker()
        {
        }
        /**
         * Get permission checker for modifying ad.
         *
         * @return callable
         */
        public static function getModifyAdPermissionChecker()
        {
        }
        /**
         * Get permission checker for viewing recipients.
         *
         * @return callable
         */
        public static function getViewRecipientsPermissionChecker()
        {
        }
        /**
         * Get permission checker for modifying recipients.
         *
         * @return callable
         */
        public static function getModifyRecipientsPermissionChecker()
        {
        }
        /**
         * Get permission checker for modifying settings.
         *
         * @return callable
         */
        public static function getModifySettingsPermissionChecker()
        {
        }
        /**
         *
         * @return callable
         */
        public static function getPauseStopStartLetterPermissionChecker()
        {
        }
        /**
         *
         * @return callable
         */
        public static function getPauseStopStartAdsPermissionChecker()
        {
        }
        /**
         *
         * @return callable
         */
        public static function getPauseStopStartRcPermissionChecker()
        {
        }
        /**
         *
         * @return callable
         */
        public static function getModifyTemplatePermissionChecker()
        {
        }
    }
    /**
     * Class ActionPreview
     * @package Bitrix\Sender\Internals\CommonAjax
     */
    class ActionPreview extends \Bitrix\Sender\Internals\CommonAjax\CommonAction
    {
        const NAME = 'preview';
        /**
         * On request event handler.
         *
         * @param Main\HttpRequest $request Request.
         * @param Controller\Response $response Response.
         */
        public static function onRequest(\Bitrix\Main\HttpRequest $request, \Bitrix\Sender\Internals\QueryController\Response $response)
        {
        }
    }
}
namespace Bitrix\Sender\Internals {
    /**
     * Class Queue
     *
     * @package Bitrix\Sender\Internals
     */
    class Queue
    {
        protected $list = [];
        protected $lastItem = null;
        protected $previousStack = [];
        protected $isLastItemRestored = false;
        protected $type = null;
        protected $id = null;
        protected $isWorkTimeCheckEnabled = false;
        protected $isUserCheckEnabled = false;
        protected $isAutoSaveEnabled = true;
        /**
         * Queue constructor.
         *
         * @param string $type Type.
         * @param string $id ID.
         * @param array $list List.
         */
        public function __construct($type, $id, array $list = [])
        {
        }
        /**
         * Save last item automatically.
         *
         * @return $this
         */
        public function disableAutoSave()
        {
        }
        /**
         * Enable work time checking.
         *
         * @return $this
         */
        public function enableWorkTimeCheck()
        {
        }
        /**
         * Return true if user checking enabled.
         *
         * @return $this
         */
        public function enableUserCheck()
        {
        }
        /**
         * Return true if work time checking enabled.
         *
         * @return bool
         */
        public function isWorkTimeCheckEnabled()
        {
        }
        /**
         * Get ID.
         *
         * @return null|string
         */
        public function getId()
        {
        }
        /**
         * Set ID.
         *
         * @param null|string $id
         * @return $this
         */
        public function setId($id)
        {
        }
        /**
         * Set list.
         *
         * @param array $list List.
         * @return $this
         */
        public function setValues(array $list)
        {
        }
        /**
         * Get list.
         *
         * @return array
         */
        public function getValues()
        {
        }
        /**
         * Remove data from DB by type and ID.
         *
         * @return $this
         */
        public function delete()
        {
        }
        /**
         * Return true if wirk time is supported.
         *
         * @return bool
         */
        public static function isSupportedWorkTime()
        {
        }
        /**
         * Get last used item from list.
         *
         * @return null|string
         */
        public function current()
        {
        }
        /**
         * Save last item to DB.
         *
         * @return $this
         */
        public function save()
        {
        }
        /**
         * Restore last item from DB.
         *
         * @return $this
         */
        public function restore()
        {
        }
        /**
         * Return next item from list.
         * Save item to DB if $isAutoSaveEnabled is true.
         * Check item as User if $isUserCheckEnabled is true.
         * Check item for work time if $isWorkTimeCheckEnabled is true.
         *
         * @return string|null
         */
        public function next()
        {
        }
        /**
         * Return previous used item.
         * Stack of previous items is limited by 3 values.
         *
         * @return string|null
         */
        public function previous()
        {
        }
        protected function setLastItem($item)
        {
        }
        protected function getStack()
        {
        }
        protected static function checkUser($userId)
        {
        }
        protected static function checkUserWorkTime($userId)
        {
        }
    }
}
namespace Bitrix\Sender\Internals\Model\Role {
    /**
     * Class AccessTable
     *
     * @package Bitrix\Sender\Internals\Model\Role
     */
    class AccessTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get table name.
         *
         * @return string
         * @inheritdoc
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         * @inheritdoc
         */
        public static function getMap()
        {
        }
        /**
         * Deletes all records from the table.
         *
         * @return Entity\DeleteResult
         */
        public static function truncate()
        {
        }
        /**
         * Deletes all access codes associated with the specified role.
         *
         * @param int $roleId Id of the role.
         * @return Entity\DeleteResult
         * @throws ArgumentException
         */
        public static function deleteByRoleId($roleId)
        {
        }
    }
    /**
     * Class RoleTable
     *
     * @package Bitrix\Sender\Internals\Model\Role
     */
    class RoleTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get table name.
         *
         * @return string
         * @inheritdoc
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         * @inheritdoc
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for XML_ID field.
         *
         * @return array
         */
        public static function validateXmlId()
        {
        }
    }
    /**
     * Class PermissionTable
     *
     * @package Bitrix\Sender\Internals\Model\Role
     */
    class PermissionTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get table name.
         *
         * @return string
         * @inheritdoc
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         * @inheritdoc
         */
        public static function getMap()
        {
        }
        /**
         * Deletes all access codes associated with the specified role.
         *
         * @param int $roleId Id of the role.
         * @return Entity\DeleteResult
         * @throws ArgumentException
         */
        public static function deleteByRoleId($roleId)
        {
        }
    }
}
namespace Bitrix\Sender\Internals\Model {
    /**
     * Class DailyCounterTable
     * @package Bitrix\Sender\Internals\Model
     */
    class DailyCounterTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get table name.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Merge data.
         *
         * @param array $insert Insert data.
         * @param array $update Update data.
         * @return void
         */
        public static function mergeData(array $insert, array $update)
        {
        }
        /**
         * Increment field value.
         *
         * @param string $fieldName Field name.
         * @param int $increment Increment.
         * @return void
         */
        public static function incrementFieldValue($fieldName, $increment = 1)
        {
        }
        /**
         * Get current field value.
         *
         * @param string $fieldName Field name.
         * @return int
         */
        public static function getCurrentFieldValue($fieldName)
        {
        }
        /**
         * Get row by days left.
         *
         * @param integer $daysLeft Days left.
         * @return array|null
         */
        public static function getRowByDate($daysLeft = 0)
        {
        }
    }
    class GroupCounterTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get table name.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Delete counters by group ID.
         *
         * @param int $groupId Group ID.
         * @return bool
         */
        public static function deleteByGroupId($groupId)
        {
        }
    }
    class LetterTable extends \Bitrix\Main\Entity\DataManager
    {
        const STATUS_NEW = 'N';
        const STATUS_READY = 'R';
        const STATUS_SEND = 'S';
        const STATUS_PAUSE = 'P';
        const STATUS_WAIT = 'W';
        const STATUS_HALT = 'H';
        const STATUS_PLAN = 'T';
        const STATUS_END = 'Y';
        const STATUS_CANCEL = 'C';
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * After add event handler.
         *
         * @param Entity\Event $event Event.
         * @return Entity\EventResult
         */
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * On after update event handler.
         *
         * @param Entity\Event $event Event.
         * @return Entity\EventResult
         */
        public static function onBeforeUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * On after update event handler.
         *
         * @param Entity\Event $event Event.
         * @return Entity\EventResult
         */
        public static function onAfterUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * On delete event handler.
         *
         * @param Entity\Event $event Event.
         * @return Entity\EventResult
         */
        public static function onDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * @param Entity\Event $event
         * @return void
         */
        public static function onAfterDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
    /**
     * Class CounterTable
     * @package Bitrix\Sender\Internals\Model
     **/
    class CounterTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Merge data.
         *
         * @param array $insert Insert data.
         * @param array $update Update data.
         * @return void
         */
        public static function mergeData(array $insert, array $update)
        {
        }
        /**
         * Increment value.
         *
         * @param string $code Code.
         * @param int $increment Increment.
         * @return void
         */
        public static function incrementByCode($code, $increment = 1)
        {
        }
        /**
         * Get value by code.
         *
         * @param string $code Code.
         * @return int
         */
        public static function getValueByCode($code)
        {
        }
        /**
         * Get value by code.
         *
         * @param string $code Code.
         * @return bool
         */
        public static function resetValueByCode($code)
        {
        }
    }
    class QueueTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    /**
     * Class MessageFieldTable
     * @package Bitrix\Sender\Internals\Model
     */
    class MessageFieldTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get table name.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Delete fields by message ID.
         *
         * @param int $messageId Message ID.
         * @return bool
         */
        public static function deleteByMessageId($messageId)
        {
        }
    }
    /**
     * Class LetterSegmentTable
     * @package Bitrix\Sender
     */
    class LetterSegmentTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get table name.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
    /**
     * Class PostingTable
     *
     * @package Bitrix\Sender\Internals\Model
     */
    class PostingTable extends \Bitrix\Main\Entity\DataManager
    {
        const STATUS_NEW = 'N';
        const STATUS_PART = 'P';
        const STATUS_SENT = 'S';
        const STATUS_SENT_WITH_ERRORS = 'E';
        const STATUS_ABORT = 'A';
        /**
         * Get table name.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Handler of event `onDelete`.
         *
         * @param Main\Entity\Event $event Event.
         * @return Main\Entity\EventResult
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function onDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
    /**
     * Class AgreementTable
     * @package Bitrix\Sender\Internals\Model
     **/
    class AgreementTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
    class PostingThreadTable extends \Bitrix\Main\Entity\DataManager
    {
        const STATUS_NEW = 'N';
        const STATUS_IN_PROGRESS = 'P';
        const STATUS_DONE = 'D';
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
    }
    /**
     * Class MessageTable
     * @package Bitrix\Sender\Internals\Model
     */
    class MessageTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get table name.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Handler of after delete event.
         *
         * @param Entity\Event $event Event.
         * @return Entity\EventResult
         */
        public static function onAfterDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
}
namespace Bitrix\Sender\Internals\Model\Posting {
    /**
     * Class RecipientTable
     *
     * @package Bitrix\Sender\Internals\Model\Posting
     */
    class RecipientTable extends \Bitrix\Main\Entity\DataManager
    {
        const SEND_RESULT_NONE = 'Y';
        const SEND_RESULT_SUCCESS = 'N';
        const SEND_RESULT_ERROR = 'E';
        const SEND_RESULT_WAIT = 'W';
        const SEND_RESULT_DENY = 'D';
        /**
         * Get table name.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
    /**
     * Class UnsubTable
     *
     * @package Bitrix\Sender\Internals\Model\Posting
     */
    class UnsubTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get table name.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
    /**
     * Class ReadTable
     *
     * @package Bitrix\Sender\Internals\Model\Posting
     */
    class ReadTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get table name.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
    /**
     * Class ClickTable
     *
     * @package Bitrix\Sender\Internals\Model\Posting
     */
    class ClickTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get table name.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Sender\Internals\Model {
    /**
     * Class AbuseTable
     * @package Bitrix\Sender\Internals\Model
     **/
    class AbuseTable extends \Bitrix\Main\Entity\DataManager
    {
        const COUNTER_CODE_ABUSES = 'abuses';
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * After add event handler.
         *
         * @param Entity\Event $event Event.
         * @return Entity\EventResult
         */
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Get count of new abuses.
         *
         * @return int
         */
        public static function getCountOfNew()
        {
        }
        /**
         * Reset count of new abuses.
         *
         * @return bool
         */
        public static function resetCountOfNew()
        {
        }
    }
}
namespace Bitrix\Sender\Internals {
    class CounterCalculation
    {
        private static $optionName = '~update_counters_16';
        public static $maxExecutionTime = 10;
        private static $startTime = null;
        private static $stages = array('RECIPIENT_READ' => '1', 'RECIPIENT_CLICK' => '2', 'RECIPIENT_UNSUB' => '3', 'POSTING_STATUS' => '4', 'POSTING_READ' => '5', 'POSTING_CLICK' => '6', 'POSTING_UNSUB' => '7', 'MAILING_SUBSCRIPTION' => '8', 'CONTACT_EMAIL_REGISTER' => '9', 'FINISH' => '');
        public static function wasCompleted($stageCode = 'FINISH')
        {
        }
        public static function setCompleted($stageCode = 'FINISH')
        {
        }
        public static function getCompletedPercent()
        {
        }
        private static function isTimeUp()
        {
        }
        public static function getExecutionTime()
        {
        }
        public static function update()
        {
        }
        public static function updateRecipientReadCounters($type)
        {
        }
        public static function updatePostingStatusCounters()
        {
        }
        public static function updatePostingReadCounters($type)
        {
        }
        public static function updateMailingSubscription()
        {
        }
        public static function updateContactEmailRegister()
        {
        }
        private static function getPostingStatusUpdateFields($postingId, $statusList)
        {
        }
        /**
         * Index letters.
         *
         * @return string
         */
        public static function updateRecipientsAgent()
        {
        }
    }
}
namespace Bitrix\Sender\Internals\QueryController {
    /**
     * Class Answer
     * @package Bitrix\Sender\Internals\QueryController
     */
    abstract class Content
    {
        const TYPE_JSON = 'json';
        const TYPE_HTML = 'html';
        /** @var ErrorCollection $errors Errors. */
        protected $errors;
        /** @var Response $response Response. */
        protected $response;
        public static function create(\Bitrix\Sender\Internals\QueryController\Response $response, $type)
        {
        }
        /**
         * Answer constructor.
         * @param Response $response Response.
         */
        public function __construct(\Bitrix\Sender\Internals\QueryController\Response $response)
        {
        }
        /**
         * On flush callback.
         */
        public function onFlush()
        {
        }
        /**
         * @return string
         */
        public abstract function toText();
        /**
         * @param $message
         * @param null $code
         */
        public function addError($message, $code = null)
        {
        }
        /**
         * @param string|null $message Message.
         */
        public function addPermissionError($message = null)
        {
        }
        /**
         * @return ErrorCollection
         */
        public function getErrorCollection()
        {
        }
        protected function getErrorMessages()
        {
        }
    }
    /**
     * Class AnswerHtml
     * @package Bitrix\Sender\Internals\QueryController
     */
    class ContentHtml extends \Bitrix\Sender\Internals\QueryController\Content
    {
        /**
         * @var string $html Html.
         */
        protected $html;
        /**
         * @param string $html Html.
         */
        public function set($html)
        {
        }
        /**
         * @return string
         */
        public function toText()
        {
        }
    }
    /**
     * Class Base
     * @package Bitrix\Sender\Internals\QueryController
     */
    class Base
    {
        /** @var callable[] $checkers Checkers. */
        protected $checkers = array();
        /** @var callable[] $responseModifiers Response modifiers. */
        protected $responseModifiers = array();
        /**
         * Add checker.
         *
         * @param callable $checker Checker.
         * @return $this
         * @throws ArgumentException
         */
        public function addChecker($checker)
        {
        }
        /**
         * Set checkers.
         *
         * @param callable[] $checkers Checkers.
         * @return $this
         */
        public function setCheckers(array $checkers)
        {
        }
        /**
         * Add response modifier.
         *
         * @param callable $modifier Modifier.
         * @return $this
         * @throws ArgumentException
         */
        public function addResponseModifier($modifier)
        {
        }
        /**
         * Set response modifiers.
         *
         * @param callable[] $modifiers Modifiers.
         * @return $this
         */
        public function setResponseModifiers(array $modifiers)
        {
        }
        /**
         * Get checkers.
         *
         * @return array
         */
        public function getCheckers()
        {
        }
        /**
         * Get response modifiers.
         *
         * @return array
         */
        public function getResponseModifiers()
        {
        }
        /**
         * Call.
         *
         * @param callable $callee Callee.
         * @param array $parameters Parameters.
         * @return mixed
         * @throws ArgumentException
         */
        public static function call($callee, array $parameters = array())
        {
        }
    }
    class Action extends \Bitrix\Sender\Internals\QueryController\Base
    {
        /** @var string $name Name. */
        protected $name;
        /** @var string $contentType Content type. */
        protected $contentType;
        /** @var callable $handler Handler. */
        protected $handler;
        /** @var string $postMethod Post method. */
        protected $requestMethod = \Bitrix\Sender\Internals\QueryController\Listener::REQUEST_METHOD_POST;
        /**
         * Create instance.
         * @param string $name Name.
         * @return static
         */
        public static function create($name)
        {
        }
        /**
         * Action constructor.
         * @param string $name Name.
         * @param callable|null $handler Handler.
         */
        public function __construct($name, $handler = null)
        {
        }
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Set handler.
         *
         * @param callable $handler Handler.
         * @return $this
         * @throws ArgumentException
         */
        public function setHandler($handler)
        {
        }
        /**
         * Get request method.
         *
         * @return string
         */
        public function getRequestMethod()
        {
        }
        /**
         * Set request method GET.
         *
         * @return $this
         */
        public function setRequestMethodGet()
        {
        }
        /**
         * Run.
         *
         * @param HttpRequest $request
         * @param Response $response
         * @throws \Bitrix\Main\Error;
         */
        public function run(\Bitrix\Main\HttpRequest $request, \Bitrix\Sender\Internals\QueryController\Response $response)
        {
        }
    }
}
namespace Bitrix\Main {
    abstract class Response
    {
        /** @var string */
        protected $content;
        public function __construct()
        {
        }
        public function clear()
        {
        }
        public function flush($text = '')
        {
        }
        /**
         * Sets content.
         * Valid types are strings, numbers, null, and objects that implement a __toString() method.
         *
         * @param mixed $content Content that can be cast to string.
         *
         * @return $this
         * @throws ArgumentTypeException
         */
        public function setContent($content)
        {
        }
        /**
         * Appends content.
         * Valid types are strings, numbers, null, and objects that implement a __toString() method.
         *
         * @param mixed $content Content that can be cast to string.
         *
         * @return $this
         * @throws ArgumentTypeException
         */
        public function appendContent($content)
        {
        }
        protected function checkContent($content)
        {
        }
        /**
         * Returns content of response.
         *
         * @return string
         */
        public function getContent()
        {
        }
        /**
         * Sends content to the output.
         *
         * @return void
         */
        public function send()
        {
        }
        protected function writeBody($text)
        {
        }
    }
    class HttpResponse extends \Bitrix\Main\Response
    {
        const STORE_COOKIE_NAME = "STORE_COOKIES";
        /** @var \Bitrix\Main\Web\Cookie[] */
        protected $cookies = array();
        /** @var Web\HttpHeaders */
        protected $headers;
        /** @var \Bitrix\Main\Type\DateTime */
        protected $lastModified;
        public function __construct()
        {
        }
        protected function initializeHeaders()
        {
        }
        /**
         * Flushes the content to the output buffer. All following output will be ignored.
         * @param string $text
         */
        public function flush($text = '')
        {
        }
        /**
         *	Adds a HTTP header field to the response.
         *
         * @param string $name Header field name
         * @param string $value Header field value
         * @return $this
         * @throws ArgumentNullException
         */
        public function addHeader($name, $value = '')
        {
        }
        /**
         * Sets a collection of HTTP headers.
         * @param Web\HttpHeaders $headers Headers collection.
         *
         * @return $this
         */
        public function setHeaders(\Bitrix\Main\Web\HttpHeaders $headers)
        {
        }
        /**
         * Adds a cookie to the response.
         *
         * @param Web\Cookie $cookie The cookie.
         * @param bool $replace Replace an existing cookie or not.
         * @param bool $checkExpires Check expires value of the cookie or not.
         * @return $this
         */
        public function addCookie(\Bitrix\Main\Web\Cookie $cookie, $replace = true, $checkExpires = true)
        {
        }
        /**
         * Remembers user's choice about storing persistent cookies.
         * @param bool $mode
         */
        public function allowPersistentCookies($mode)
        {
        }
        /**
         * @return Web\Cookie[]
         */
        public function getCookies()
        {
        }
        /**
         * @return Web\HttpHeaders
         */
        public function getHeaders()
        {
        }
        /**
         * Flushes all headers and cookies
         */
        public function writeHeaders()
        {
        }
        protected function flushHeader($header)
        {
        }
        protected function setCookie(\Bitrix\Main\Web\Cookie $cookie)
        {
        }
        /**
         * Sets the HTTP status of the response.
         *
         * @param string $status
         * @return $this
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         */
        public function setStatus($status)
        {
        }
        /**
         * Returns the HTTP status of the response.
         * @return int|string|null
         */
        public function getStatus()
        {
        }
        /**
         * Sets the latest time for the Last-Modified header field.
         *
         * @param Type\DateTime $time
         * @return $this
         */
        public function setLastModified(\Bitrix\Main\Type\DateTime $time)
        {
        }
        /**
         * @param $url
         * @return Engine\Response\Redirect
         */
        public final function redirectTo($url) : \Bitrix\Main\HttpResponse
        {
        }
        public function copyHeadersTo(\Bitrix\Main\HttpResponse $response) : \Bitrix\Main\HttpResponse
        {
        }
        private function shouldIgnoreHeaderToClone($headerName)
        {
        }
    }
}
namespace Bitrix\Sender\Internals\QueryController {
    /**
     * Class Response
     * @package Bitrix\Sender\Internals\QueryController
     */
    class Response extends \Bitrix\Main\HttpResponse
    {
        /** @var Content $content Content. */
        protected $content;
        /**
         * Flush content.
         *
         */
        public function flushContent()
        {
        }
        /**
         * Set Content instance.
         *
         * @param Content $content Content.
         * @return $this
         */
        public function setContent($content)
        {
        }
        /**
         * Get Content instance.
         *
         * @return Content
         */
        public function getContent()
        {
        }
        /**
         * Create Content instance.
         *
         * @param string $type Type.
         * @return Content
         */
        public function initContent($type = \Bitrix\Sender\Internals\QueryController\Content::TYPE_JSON)
        {
        }
        /**
         * Create ContentJson instance.
         *
         * @return ContentJson|Content
         */
        public function initContentJson()
        {
        }
        /**
         * Create ContentHtml instance.
         *
         * @return ContentHtml|Content
         */
        public function initContentHtml()
        {
        }
    }
    class Listener extends \Bitrix\Sender\Internals\QueryController\Base
    {
        const REQUEST_METHOD_POST = 'POST';
        const REQUEST_METHOD_GET = 'GET';
        /** @var ErrorCollection $errors Errors. */
        protected $errors;
        /** @var Action $action Action. */
        protected $action;
        /** @var string $actionName Action name. */
        protected $actionName;
        /** @var Action[] $actions */
        protected $actions = array();
        /** @var HttpRequest $request */
        protected $request;
        /** @var Response $response */
        protected $response;
        /**
         * Create instance.
         *
         * @return static
         */
        public static function create()
        {
        }
        /**
         * Controller constructor.
         */
        public function __construct()
        {
        }
        /**
         * Set actions.
         * @param Action[] $actions Actions.
         * @return $this
         */
        public function setActions(array $actions)
        {
        }
        /**
         * Add action.
         * @param Action $action Action.
         * @return $this
         */
        public function addAction(\Bitrix\Sender\Internals\QueryController\Action $action)
        {
        }
        protected function giveResponse()
        {
        }
        /**
         * Get error collection.
         *
         * @return ErrorCollection
         */
        public function getErrorCollection()
        {
        }
        protected function check()
        {
        }
        protected function findAction()
        {
        }
        protected function process()
        {
        }
        /**
         * Run.
         */
        public function run()
        {
        }
        /**
         * Call list.
         *
         * @param callable[] $list Callee list.
         * @param array $parameters Parameters.
         * @return void
         */
        protected function callList(array $list, array $parameters = array())
        {
        }
    }
    /**
     * Class AnswerJson
     * @package Bitrix\Sender\Internals\QueryController
     */
    class ContentJson extends \Bitrix\Sender\Internals\QueryController\Content
    {
        protected $parameters = array();
        public function set(array $parameters)
        {
        }
        public function add($name, $value)
        {
        }
        public function toText()
        {
        }
        public function onFlush()
        {
        }
    }
    class Manager
    {
        /**
         * Get action requesting uri.
         *
         * @param string $actionName Action name.
         * @param array $parameters Parameters.
         * @param string $controllerUri Controller uri.
         * @return string
         */
        public static function getActionRequestingUri($actionName, array $parameters = array(), $controllerUri)
        {
        }
    }
}
namespace Bitrix\Sender\Stat {
    class Statistics
    {
        const AVERAGE_EFFICIENCY = 0.15;
        const USER_OPTION_FILTER_NAME = 'statistics_filter';
        /** @var Filter */
        protected $filter;
        /** @var integer */
        protected $cacheTtl = 3600;
        /** @var array */
        protected $counters = null;
        /** @var integer */
        protected $userId = null;
        /**
         * Create instance.
         *
         * @param Filter $filter Filter.
         * @return static
         */
        public static function create(\Bitrix\Sender\Stat\Filter $filter = null)
        {
        }
        /**
         * Constructor.
         *
         * @param Filter $filter Filter.
         */
        public function __construct(\Bitrix\Sender\Stat\Filter $filter = null)
        {
        }
        /**
         * Set cache TTL.
         *
         * @param integer $cacheTtl Cache ttl.
         * @return $this
         */
        public function setCacheTtl($cacheTtl)
        {
        }
        /**
         * Set user Id.
         *
         * @param integer $userId User Id.
         * @return $this
         */
        public function setUserId($userId)
        {
        }
        /**
         * Get cache TTL.
         *
         * @return integer
         */
        public function getCacheTtl()
        {
        }
        /**
         * Return filter.
         *
         * @return Filter
         */
        public function getFilter()
        {
        }
        /**
         * Return filter.
         *
         * @param string $name Filter name.
         * @param string $value Filter value.
         * @return $this
         */
        public function filter($name, $value = null)
        {
        }
        /**
         * Init filter from request.
         *
         * @return $this
         */
        public function initFilterFromRequest()
        {
        }
        /**
         * Init filter from request.
         *
         * @return $this
         */
        protected function initFilterFromUserOption()
        {
        }
        protected function saveFilterToUserOption()
        {
        }
        protected static function calculateEfficiency($counters, $maxEfficiency = null)
        {
        }
        protected static function div($dividendCode, $dividerCode, $items)
        {
        }
        protected static function formatNumber($number, $num = 1)
        {
        }
        protected static function getCounterCalculation($code, $value, $percentBase = 0)
        {
        }
        protected function getMappedFilter()
        {
        }
        /**
         * Return efficiency.
         *
         * @return float
         */
        public function getEfficiency()
        {
        }
        /**
         * Return dynamic of counters.
         *
         * @return array
         */
        public function getCountersDynamic()
        {
        }
        /**
         * Return counters.
         *
         * @return array
         */
        public function getCounters()
        {
        }
        public function initFromArray($postingData)
        {
        }
        protected function createListFromItem($item)
        {
        }
        /**
         * Return subscribers.
         *
         * @return array
         */
        public function getCounterPostings()
        {
        }
        /**
         * Return subscribers.
         *
         * @return array
         */
        public function getCounterSubscribers()
        {
        }
        /**
         * Return click links.
         *
         * @param integer $limit Limit.
         * @return array
         */
        public function getClickLinks($limit = 15)
        {
        }
        /**
         * Return read counter data by day time.
         *
         * @param int $step Step.
         * @return array
         */
        public function getReadingByDayTime($step = 2)
        {
        }
        /**
         * Return recommended sending time for mailing.
         *
         * @param integer $chainId Chain Id.
         * @return string
         */
        public function getRecommendedSendTime($chainId = null)
        {
        }
        /**
         * Return chain list.
         *
         * @param integer $limit Limit.
         * @return array
         */
        public function getChainList($limit = 20)
        {
        }
        /**
         * Return global filter data.
         *
         * @return array
         */
        public function getGlobalFilterData()
        {
        }
        /**
         * Return period list.
         *
         * @return array
         */
        protected function getPeriodList()
        {
        }
        /**
         * Return author list.
         *
         * @return array
         */
        protected function getAuthorList()
        {
        }
    }
    class Filter
    {
        const PERIOD_WEEK = 7;
        const PERIOD_MONTH = 30;
        const PERIOD_MONTH_3 = 90;
        const PERIOD_MONTH_6 = 180;
        const PERIOD_MONTH_12 = 365;
        protected $values = array('authorId' => null, 'chainId' => null, 'mailingId' => null, 'postingId' => null, 'periodFrom' => null, 'periodTo' => null, 'period' => null);
        public function __construct(array $values = array())
        {
        }
        public function set($name, $value = null)
        {
        }
        public function get($name)
        {
        }
        public function getNames()
        {
        }
        public function getMappedArray(array $map, array $filter = array())
        {
        }
        public function clear()
        {
        }
        protected function setPeriod($period = self::PERIOD_MONTH)
        {
        }
    }
    class Posting
    {
        public static function getData($letterId, array $parameters = array())
        {
        }
    }
}
namespace Bitrix\Sender {
    class PostingTable extends \Bitrix\Main\Entity\DataManager
    {
        const STATUS_NEW = 'N';
        const STATUS_PART = 'P';
        const STATUS_SENT = 'S';
        const STATUS_SENT_WITH_ERRORS = 'E';
        const STATUS_ABORT = 'A';
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * @param Entity\Event $event
         * @return Entity\EventResult
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function onDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * @param $ar
         * @param bool $checkDuplicate
         */
        public static function addRecipient($ar, $checkDuplicate = false)
        {
        }
        /**
         * @param $postingId
         * @param bool $checkDuplicate
         * @param bool $prepareFields
         *
         * @return bool
         */
        public static function initGroupRecipients($postingId, $checkDuplicate = true, $prepareFields = true)
        {
        }
        /**
         * @param $id
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getRecipientCountByStatus($id)
        {
        }
        /**
         * @param $id
         * @param string $status
         * @return int
         */
        public static function getRecipientCount($id, $status = '')
        {
        }
        /**
         * Return send status of posting in percents by posting id.
         *
         * @param $id
         * @return int
         */
        public static function getSendPercent($id)
        {
        }
        /**
         * @return array
         */
        public static function getRecipientStatusToPostingFieldMap()
        {
        }
    }
    class PostingReadTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Handler of after add event
         *
         * @param Entity\Event $event
         * @return Entity\EventResult
         */
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
    class PostingClickTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Handler of after add event
         *
         * @param Entity\Event $event
         * @return Entity\EventResult
         */
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
    class PostingUnsubTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Handler of after add event
         *
         * @param Entity\Event $event
         * @return Entity\EventResult
         */
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
    class PostingRecipientTable extends \Bitrix\Main\Entity\DataManager
    {
        const SEND_RESULT_NONE = 'Y';
        const SEND_RESULT_SUCCESS = 'N';
        const SEND_RESULT_ERROR = 'E';
        const SEND_RESULT_WAIT = 'W';
        const SEND_RESULT_DENY = 'D';
        protected static $personalizeList = null;
        /**
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * @return array
         */
        public static function getMap()
        {
        }
        public static function setPersonalizeList(array $personalizeList = null)
        {
        }
        /**
         * @return array
         */
        public static function getPersonalizeList()
        {
        }
        /**
         * @return array
         */
        public static function getStatusList()
        {
        }
        public static function hasUnprocessed($postingId, $threadId = null)
        {
        }
    }
    class MailingTriggerTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get table name.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Handler of "On after add" event.
         *
         * @param Entity\Event $event Event.
         * @return Entity\EventResult
         */
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Handler of "On update" event.
         *
         * @param Entity\Event $event Event.
         * @return Entity\EventResult
         */
        public static function onUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Handler of "On delete" event.
         *
         * @param Entity\Event $event Event.
         * @return Entity\EventResult
         */
        public static function onDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Actualize handlers.
         *
         * @param int $chainId Letter ID.
         * @param array|null $fieldsNew New fields.
         * @param array|null $fieldsOld Old fields.
         */
        public static function actualizeHandlers($chainId, array $fieldsNew = null, array $fieldsOld = null)
        {
        }
    }
}
namespace Bitrix\Sender\Connector {
    class Result
    {
        /** @var \Bitrix\Main\DB\Result $resource */
        public $resource;
        /** @var \CAllDBResult $resourceCDBResult */
        public $resourceCDBResult;
        /** fields filter */
        protected $fields;
        /** additional fields */
        protected $additionalFields;
        /** disallowed fields */
        protected $fieldsDisallowed = ['NAME', 'USER_ID'];
        /** @var  integer $dataTypeId Data type ID. */
        protected $dataTypeId = \Bitrix\Sender\Recipient\Type::EMAIL;
        /**
         * @param array|\Bitrix\Main\DB\Result|\CAllDBResult $resource
         */
        public function __construct($resource)
        {
        }
        /**
         * Get data type ID.
         *
         * @return integer
         */
        public function getDataTypeId()
        {
        }
        /**
         * Set data type ID.
         *
         * @param integer $dataTypeId Data type ID.
         * @return void
         */
        public function setDataTypeId($dataTypeId)
        {
        }
        /**
         * @param array $fields
         */
        public function setFilterFields(array $fields)
        {
        }
        /**
         * @return array
         */
        public function getFilterFields()
        {
        }
        /**
         * @param array $additionalFields
         */
        public function setAdditionalFields(array $additionalFields)
        {
        }
        /**
         * @return array|null
         */
        public function fetchPlain()
        {
        }
        /**
         * @return array|null
         */
        public function fetch()
        {
        }
        protected function fetchModifierFields(array $result)
        {
        }
        /**
         * @return int
         */
        public function getSelectedRowsCount()
        {
        }
        /**
         * Get query sql.
         *
         * @return string|null
         */
        public function getQuerySql()
        {
        }
    }
    /**
     * Class DataCounter
     * @package Bitrix\Sender\Connector
     */
    class DataCounter
    {
        /** @var array $data Data. */
        public $data;
        /**
         * DataCounter constructor.
         *
         * @param array $data Data.
         */
        public function __construct(array $data)
        {
        }
        /**
         * Get summary.
         *
         * @return integer
         */
        public function getSummary()
        {
        }
        /**
         * Get count by type.
         *
         * @param integer $typeId Type ID.
         * @return integer
         */
        public function getCount($typeId)
        {
        }
        /**
         * Leave by type ID.
         *
         * @param integer $leaveTypeId Type ID.
         * @return $this
         */
        public function leave($leaveTypeId = null)
        {
        }
        /**
         * Get count by type.
         *
         * @return array
         */
        public function getList()
        {
        }
        /**
         * Get array.
         *
         * @return array
         */
        public function getArray()
        {
        }
        /**
         * Get array counters.
         *
         * @return array
         */
        public function getArrayCounters()
        {
        }
        /**
         * Get default array.
         *
         * @return array
         */
        public static function getDefaultArray()
        {
        }
    }
    /**
     * Class ResultView
     *
     * @package Bitrix\Sender\Connector
     */
    class ResultView
    {
        const Title = 'title';
        const Draw = 'draw';
        const Filter = 'filter';
        const FilterModifier = 'filter-modifier';
        const ColumnModifier = 'column-modifier';
        /** @var Base $connector Connector. */
        protected $connector;
        /** @var array $callbacks Callbacks. */
        protected $callbacks;
        /** @var PageNavigation $nav Page navigation. */
        protected $nav;
        /**
         * Constructor.
         *
         * @param Base $connector Connector.
         */
        public function __construct(\Bitrix\Sender\Connector\Base $connector)
        {
        }
        /**
         * Set callback.
         *
         * @param string $name Name.
         * @param callable $callable Callback.
         * @return $this
         * @throws ArgumentException
         */
        public function setCallback($name, $callable)
        {
        }
        protected function runCallback($name, array $arguments = [])
        {
        }
        /**
         * Get filter.
         *
         * @return string|null
         */
        public function getTitle()
        {
        }
        /**
         * Modify result view filter.
         *
         * @param array $filter Filter.
         * @return void
         */
        public function modifyFilter(array &$filter)
        {
        }
        /**
         * Modify result view columns.
         *
         * @param array $columns columns.
         * @return void
         */
        public function modifyColumns(array &$columns)
        {
        }
        /**
         * Set page navigation.
         *
         * @param PageNavigation|null $nav Page navigation.
         * @return $this
         */
        public function setNav(\Bitrix\Sender\UI\PageNavigation $nav = null)
        {
        }
        /**
         * Get page navigation.
         *
         * @return PageNavigation|null
         */
        public function getNav()
        {
        }
        /**
         * Has page navigation.
         *
         * @return bool
         */
        public function hasNav()
        {
        }
        /**
         * Callback on filter of result view.
         *
         * @return void
         */
        public function onFilter()
        {
        }
        /**
         * Callback on draw of result view.
         *
         * @param array $raw Raw.
         * @return void
         */
        public function onDraw(array &$raw)
        {
        }
    }
    /**
     * Class Manager
     * @package Bitrix\Sender\Connector
     */
    class Manager
    {
        /**
         * Return connector for contacts.
         *
         * @param array $data Event Data.
         * @return mixed
         * @deprecated
         */
        public static function onConnectorListContact($data)
        {
        }
        /**
         * Return connector for recipients.
         *
         * @param array $data Event Data.
         * @return mixed
         * @deprecated
         */
        public static function onConnectorListRecipient($data)
        {
        }
        /**
         * Return list of connectors.
         *
         * @param array $data Event Data.
         * @return array
         */
        public static function onConnectorList($data)
        {
        }
        /**
         * Get fields from endpoint.
         *
         * @param array $endpointList Endpoints.
         * @return array
         */
        public static function getFieldsFromEndpoint(array $endpointList)
        {
        }
        /**
         * Get endpoint from fields.
         *
         * @param array $postData Post data.
         * @return array|null
         */
        public static function getEndpointFromFields(array $postData)
        {
        }
        /**
         * Return instance of connector by endpoint array.
         *
         * @param array
         * @return Base|null
         */
        public static function getConnector(array $endpoint)
        {
        }
        /**
         * Return array of instances of connector by endpoints array.
         *
         * @param array
         * @return Base[]
         */
        public static function getConnectorList(array $endpointList = null)
        {
        }
        /**
         * Return array of connectors information by endpoints array.
         *
         * @param array
         * @return array
         */
        public static function getConnectorClassList(array $endpointList = null)
        {
        }
        /**
         * Sort.
         *
         * @param $a
         * @param $b
         * @return int
         */
        public static function sort($a, $b)
        {
        }
    }
}
namespace Bitrix\Sender\Connector\Filter {
    /**
     * Class DateField
     * @package Bitrix\Sender\Connector\Filter
     */
    abstract class AbstractField
    {
        /** @var array $data Data. */
        protected $data;
        /**
         * DateField constructor.
         *
         * @param array $data Data.
         * @return static
         */
        public static function create(array $data)
        {
        }
        /**
         * DateField constructor.
         *
         * @param array $data Data.
         */
        public function __construct(array $data)
        {
        }
        /**
         * Get id.
         *
         * @return string
         */
        public function getId()
        {
        }
        /**
         * Get filter key.
         *
         * @return string
         */
        public function getFilterKey()
        {
        }
        /**
         * Get value.
         *
         * @param mixed $defaultValue Default value.
         * @return string
         */
        public function getValue($defaultValue = null)
        {
        }
        /**
         * Apply filter.
         *
         * @param array $filter Filter.
         * @return void
         */
        public abstract function applyFilter(array &$filter = array());
    }
    /**
     * Class DateField
     * @package Bitrix\Sender\Connector\Filter
     */
    class DestSelectorField extends \Bitrix\Sender\Connector\Filter\AbstractField
    {
        /**
         * Apply filter.
         *
         * @param array $filter Filter.
         * @return void
         */
        public function applyFilter(array &$filter = array())
        {
        }
        /**
         * Fetch field value.
         *
         * @param array $filterFields Filter fields.
         * @return array
         */
        public function fetchFieldValue($filterFields)
        {
        }
        private function getData()
        {
        }
    }
    /**
     * Class DateField
     * @package Bitrix\Sender\Connector\Filter
     */
    class NumberField extends \Bitrix\Sender\Connector\Filter\AbstractField
    {
        /**
         * Apply filter.
         *
         * @param array $filter Filter.
         * @return void
         */
        public function applyFilter(array &$filter = array())
        {
        }
        private function calcNumbers()
        {
        }
    }
    /**
     * Class RuntimeFilter
     * @package Bitrix\Sender\Connector\Filter
     */
    class RuntimeFilter
    {
        /** @var  string $key Key. */
        protected $key;
        /** @var  string $value Value. */
        protected $value;
        /** @var ExpressionField[] $runtime Runtime */
        protected $runtime = [];
        /**
         * Set filter.
         *
         * @param string $key Key.
         * @param string $value Value.
         * @return $this
         */
        public function setFilter($key, $value)
        {
        }
        /**
         * Add runtime field.
         *
         * @param array $field Field.
         * @return $this
         */
        public function addRuntime(array $field)
        {
        }
        /**
         * Get runtime.
         *
         * @return ExpressionField[]
         */
        public function getRuntime()
        {
        }
        /**
         * Get key.
         *
         * @return string
         */
        public function getKey()
        {
        }
        /**
         * Get value.
         *
         * @return string
         */
        public function getValue()
        {
        }
    }
    /**
     * Class DateField
     * @package Bitrix\Sender\Connector\Filter
     */
    class DateField extends \Bitrix\Sender\Connector\Filter\AbstractField
    {
        /**
         * Fetch field value.
         *
         * @param array $filterFields Filter fields.
         * @return array
         */
        public function fetchFieldValue($filterFields)
        {
        }
        /**
         * Apply filter.
         *
         * @param array $filter Filter.
         * @return void
         */
        public function applyFilter(array &$filter = array())
        {
        }
        /**
         * Get date from.
         *
         * @param string|null $defaultValue Default value.
         * @return null|string
         */
        public function getFrom($defaultValue = null)
        {
        }
        /**
         * Get date to.
         *
         * @param string|null $defaultValue Default value.
         * @return null|string
         */
        public function getTo($defaultValue = null)
        {
        }
        /**
         * Get days.
         *
         * @return int[]
         */
        public function getDays()
        {
        }
        /**
         * Get months.
         *
         * @return int[]
         */
        public function getMonths()
        {
        }
        /**
         * Get years.
         *
         * @return int[]
         */
        public function getYears()
        {
        }
        private function getCustomDateData($key)
        {
        }
        private function isMoreThanDaysAgo()
        {
        }
        private function isAfterDays()
        {
        }
        private function getDateDataByKey($key)
        {
        }
        private function getDate($defaultValue = null, $isFrom = true)
        {
        }
        private function isCustomDate()
        {
        }
        private function isAllowYears()
        {
        }
        private function getAllowYearName()
        {
        }
        private function getFilterYearLess($tag, $value, $operation = "=", $fromValue = null)
        {
        }
    }
}
namespace Bitrix\Sender\Templates {
    /**
     * Class Category
     * @package Bitrix\Sender\Templates
     */
    class Category extends \Bitrix\Sender\Internals\ClassConstant
    {
        const RECENT = 100;
        const BASE = 1;
        const USER = 2;
        const ADDITIONAL = 3;
        const CASES = 4;
        /**
         * Get caption.
         *
         * @param integer $id ID.
         * @return integer|null
         */
        public static function getName($id)
        {
        }
        /**
         * Sort by code.
         *
         * @param string $codeA Code A.
         * @param string $codeB Code B.
         * @return integer
         */
        public static function sortByCode($codeA, $codeB)
        {
        }
    }
    /**
     * Class Type
     * @package Bitrix\Sender\Templates
     */
    class Type extends \Bitrix\Sender\Internals\ClassConstant
    {
        const BASE = 1;
        const USER = 2;
        const ADDITIONAL = 3;
        const SITE_TMPL = 4;
        /**
         * Get caption.
         *
         * @param integer $id ID.
         * @return integer|null
         */
        public static function getName($id)
        {
        }
    }
    /**
     * Class Selector
     * @package Bitrix\Sender\Templates
     */
    class Selector
    {
        /** @var  string $messageCode Message code. */
        private $messageCode;
        /** @var  integer $version Version. */
        private $version;
        /** @var  integer $typeId Type ID. */
        private $typeId = null;
        /** @var  bool $includeTriggers Include triggers. */
        private $includeTriggers = true;
        /** @var  integer $id Template ID. */
        private $id = null;
        /** @var  integer $templateCounter Template counter. */
        private $templateCounter = 0;
        /**
         * Create selector instance.
         *
         * @return static;
         */
        public static function create()
        {
        }
        /**
         * With default message code.
         *
         * @return $this
         */
        public function withDefaultMessageCode()
        {
        }
        /**
         * With message code.
         *
         * @param string $messageCode Message code.
         * @return $this
         */
        public function withMessageCode($messageCode)
        {
        }
        /**
         * With minimal version.
         *
         * @param integer $version Version.
         * @return $this
         */
        public function withVersion($version)
        {
        }
        /**
         * With type ID.
         *
         * @param integer $typeId Type ID.
         * @return $this
         */
        public function withTypeId($typeId)
        {
        }
        /**
         * With id.
         *
         * @param integer $id Template ID.
         * @return $this
         */
        public function withId($id)
        {
        }
        /**
         * With triggers.
         *
         * @param bool $include Include triggers.
         * @return $this
         */
        public function withTriggers($include)
        {
        }
        /**
         * Get list.
         *
         * @return array
         */
        public function get()
        {
        }
        /**
         * Get list.
         *
         * @return array
         */
        public function getList()
        {
        }
        /**
         * Return true if it has templates.
         *
         * @return bool
         */
        public function hasAny()
        {
        }
        /**
         * Get categories of list.
         *
         * @return array
         */
        public function getCategories()
        {
        }
        /**
         * Get categorized list.
         *
         * @return array
         */
        public function getCategorized()
        {
        }
        /**
         * Get templates
         * @param int $limit Limit.
         * @return array
         */
        private function getTemplates($limit = 0)
        {
        }
        /**
         * Check template
         * @param array $template Template.
         * @return bool
         */
        private function checkTemplate($template)
        {
        }
        /**
         * Prepare template
         * @param array $template Template.
         * @return array
         */
        private function prepareTemplate($template)
        {
        }
    }
    /**
     * Class Recent
     * @package Bitrix\Sender\Templates
     */
    class Recent
    {
        private static $maxCount = 4;
        private static $cacheTtl = 3600;
        /**
         * Return recent templates.
         *
         * @param string|null $templateType Template type.
         * @param string|null $templateId Template ID.
         * @param string|null $messageCode Message code.
         * @return array
         */
        public static function onPresetTemplateList($templateType = null, $templateId = null, $messageCode = null)
        {
        }
        private static function getTemplates($messageCode = null)
        {
        }
    }
}
namespace Bitrix\Sender {
    class Log
    {
        /**
         * Save statistic data
         * @param string $event Event.
         * @param string $tag Tag.
         * @param string $label Label.
         * @return void
         */
        public static function stat($event, $tag = '', $label = '')
        {
        }
    }
    class TemplateTable extends \Bitrix\Main\ORM\Data\DataManager
    {
        const LOCAL_DIR_IMG = '/images/sender/preset/template/';
        /**
         * Handler of event that return array of templates
         *
         * @param string|null $templateType
         * @param string|null $templateId
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function onPresetTemplateList($templateType = null, $templateId = null)
        {
        }
        /**
         * Increment use counter.
         *
         * @return bool
         */
        public static function incUseCount($id)
        {
        }
        /**
         * Get table name
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Return the map
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * @param ORM\Event $event
         * @return ORM\EventResult
         */
        public static function onBeforeAdd(\Bitrix\Main\ORM\Event $event)
        {
        }
        /**
         * Handler of before delete event.
         *
         * @param ORM\Event $event Event.
         * @return ORM\EventResult
         */
        public static function onBeforeUpdate(\Bitrix\Main\ORM\Event $event)
        {
        }
        /**
         * Handler of before delete event.
         * 
         * @param ORM\Event $event Event.
         * @return ORM\EventResult
         */
        public static function onBeforeDelete(\Bitrix\Main\ORM\Event $event)
        {
        }
        /**
         * Function return true if html in $content is supported by Block Editor
         *
         * @param string $content
         * @return boolean
         */
        public static function isContentForBlockEditor($content)
        {
        }
        /**
         * Init editor
         *
         * @param array $params
         * @return string
         */
        public static function initEditor(array $params)
        {
        }
    }
}
namespace Bitrix\Main\Mail {
    class StopException extends \Bitrix\Main\SystemException
    {
        protected $isBufferCleaned = false;
        public function __construct($message = "", $code = 0, \Exception $previous = null)
        {
        }
    }
}
namespace Bitrix\Sender\Posting {
    /**
     * Class StopException
     * @package Bitrix\Sender\Posting
     */
    class StopException extends \Bitrix\Main\Mail\StopException
    {
    }
    /**
     * Class Builder
     * @package Bitrix\Sender\Posting
     */
    class Builder
    {
        /** @var bool $checkDuplicates Check duplicates. */
        protected $checkDuplicates = true;
        /** @var array $groupCount Group count. */
        protected $groupCount = array();
        /** @var integer $postingId Posting ID. */
        protected $postingId;
        /** @var array $postingData Posting data. */
        protected $postingData;
        /** @var integer $typeId Type ID. */
        protected $typeId;
        /**
         * Create instance.
         *
         * @return static
         */
        public static function create()
        {
        }
        /**
         * Shaper constructor.
         *
         * @param integer|null $postingId Posting ID.
         * @param bool $checkDuplicates Check duplicates.
         */
        public function __construct($postingId = null, $checkDuplicates = true)
        {
        }
        /**
         * Load.
         *
         * @param integer $postingId Posting ID.
         * @param bool $checkDuplicates Check duplicates.
         * @param bool $prepareFields
         *
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function run($postingId, $checkDuplicates = true, $prepareFields = true)
        {
        }
        protected function runForRecipientType($usedPersonalizeFields = [], $prepareFields = true)
        {
        }
        protected static function clean($postingId)
        {
        }
        protected function getTypeCode()
        {
        }
        protected function getSubscriptionConnectors($campaignId)
        {
        }
        protected function getCampaignGroups($campaignId)
        {
        }
        protected function getLetterConnectors($letterId)
        {
        }
        protected function setRecipientIdentificators(array &$dataList)
        {
        }
        protected function checkUsedFields($entityType, $ids, $usedPersonalizeFields, &$dataList)
        {
        }
        protected function fill(\Bitrix\Sender\Connector\Base $connector, $isInclude = false, $groupId = null, $usedPersonalizeFields = [], $prepareFields = true)
        {
        }
        protected function removePostingRecipients(array &$list)
        {
        }
        protected function updateContacts(array &$list, array $codeFilter)
        {
        }
        protected function addPostingRecipients(array &$list)
        {
        }
        protected function incGroupCounters($groupId = null, $count = 0)
        {
        }
    }
    /**
     * Class Counter
     * @package Bitrix\Sender\Posting
     */
    class Counter
    {
        /** @var Entity\Letter $letter Letter. */
        private $letter;
        /**
         * Constructor.
         *
         * @param Entity\Letter $letter Letter.
         */
        public function __construct(\Bitrix\Sender\Entity\Letter $letter)
        {
        }
        /**
         * Get all.
         *
         * @return integer.
         */
        public function getAll()
        {
        }
        /**
         * Get unsent.
         *
         * @return integer.
         */
        public function getUnsent()
        {
        }
        /**
         * Get sent.
         *
         * @return integer.
         */
        public function getSent()
        {
        }
        /**
         * Get success.
         *
         * @return integer.
         */
        public function getSuccess()
        {
        }
        /**
         * Get errors.
         *
         * @return integer.
         */
        public function getErrors()
        {
        }
        /**
         * Get read.
         *
         * @return integer.
         */
        public function getRead()
        {
        }
        /**
         * Get clicked.
         *
         * @return integer.
         */
        public function getClicked()
        {
        }
        /**
         * Get unsubscribed.
         *
         * @return integer.
         */
        public function getUnsubscribed()
        {
        }
    }
}
namespace Bitrix\Sender\Posting\ThreadStrategy {
    interface IThreadStrategy
    {
        public const TEN = 'Ten';
        public const SINGLE = 'Single';
        function getRecipients(int $limit) : \Bitrix\Main\ORM\Query\Result;
        function fillThreads() : void;
        function lockThread() : void;
        function hasUnprocessedThreads() : bool;
        function getThreadId() : ?int;
        function setPostingId(int $postingId) : \Bitrix\Sender\Posting\ThreadStrategy\IThreadStrategy;
        function updateStatus(string $status) : bool;
        function lastThreadId() : int;
    }
    abstract class AbstractThreadStrategy implements \Bitrix\Sender\Posting\ThreadStrategy\IThreadStrategy
    {
        /**
         * @var int
         */
        protected $threadId;
        protected $postingId;
        protected $select;
        protected $filter;
        protected $runtime;
        /**
         *
         * @return array
         */
        public function fillThreads() : void
        {
        }
        /**
         * @param $limit
         *
         * @return Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function getRecipients(int $limit) : \Bitrix\Main\ORM\Query\Result
        {
        }
        protected abstract function setRuntime() : void;
        protected abstract function setFilter() : void;
        protected function setSelect() : void
        {
        }
        /**
         * lock thread for duplicate select
         * @return int|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function lockThread() : void
        {
        }
        /**
         * lock table from selecting of the thread
         * @return bool
         * @throws SqlQueryException
         * @throws \Bitrix\Main\SystemException
         */
        protected function lock()
        {
        }
        /**
         * update status with expire date
         * @param $threadId
         * @param $status
         */
        public function updateStatus(string $status) : bool
        {
        }
        /**
         * unlock table for select
         * @return bool
         * @throws SqlQueryException
         * @throws \Bitrix\Main\SystemException
         */
        protected function unlock()
        {
        }
        /**
         * checking that all threads are completed
         * @return bool
         */
        public function hasUnprocessedThreads() : bool
        {
        }
        /**
         * get current thread id
         * @return int
         */
        public function getThreadId() : ?int
        {
        }
        /**
         * get last thread number
         * @return int
         */
        public function lastThreadId() : int
        {
        }
        /**
         * @param int $postingId
         *
         * @return TenThreadsStrategy
         */
        public function setPostingId(int $postingId) : \Bitrix\Sender\Posting\ThreadStrategy\IThreadStrategy
        {
        }
        /**
         * wait while threads are calculating
         * @return bool
         */
        protected function checkLock()
        {
        }
        /**
         * Finalize thread activity
         */
        public function finalize()
        {
        }
        private function checkToFinalizeStatus()
        {
        }
    }
    class SingleThreadStrategy extends \Bitrix\Sender\Posting\ThreadStrategy\AbstractThreadStrategy
    {
        public const THREADS_COUNT = 1;
        protected function setFilter() : void
        {
        }
        protected function setRuntime() : void
        {
        }
        /**
         * wait while threads are calculating
         * @return bool
         */
        protected function checkLock()
        {
        }
    }
    class ThreadStrategyContext
    {
        public static function buildStrategy($type) : ?\Bitrix\Sender\Posting\ThreadStrategy\IThreadStrategy
        {
        }
    }
    class TenThreadsStrategy extends \Bitrix\Sender\Posting\ThreadStrategy\AbstractThreadStrategy
    {
        public const THREADS_COUNT = 10;
        protected function setFilter() : void
        {
        }
        protected function setRuntime() : void
        {
        }
    }
}
namespace Bitrix\Sender\Posting {
    /**
     * Class Sender
     * @package Bitrix\Sender\Posting
     */
    class Sender
    {
        const RESULT_NONE = 0;
        const RESULT_SENT = 1;
        const RESULT_CONTINUE = 2;
        const RESULT_ERROR = 3;
        /** @var  Letter $letter Letter. */
        protected $letter;
        /** @var  Adapter $message Message. */
        protected $message;
        /** @var  integer|null $timeout Timeout. */
        protected $timeout;
        /** @var  integer|null $timeAtStart Time at start. */
        protected $timeAtStart;
        /** @var  integer|null $limit Limit. */
        protected $limit;
        /** @var  integer $sentCount Count of sent. */
        protected $sentCount = 0;
        /** @var  integer $checkStatusStep Step for status checking. */
        protected $checkStatusStep = 25;
        /** @var  integer $checkStatusCounter Counter for status checking. */
        protected $checkStatusCounter = 0;
        /** @var  boolean $isPrevented Is prevented. */
        protected $isPrevented = false;
        /** @var  boolean $isTrigger Is trigger. */
        protected $isTrigger = false;
        /** @var  boolean $isReiterate Is reiterate. */
        protected $isReiterate = false;
        /** @var  integer $mailingId Campaign ID. */
        protected $mailingId;
        /** @var  integer $postingId Posting ID. */
        protected $postingId;
        /** @var  integer $letterId Letter ID. */
        protected $letterId;
        /** @var  string $status Status. */
        protected $status;
        /** @var  integer $sendCount Count of send. */
        protected $sendCount = 0;
        /** @var  string $resultCode Code of result. */
        protected $resultCode = self::RESULT_NONE;
        /**
         * @var IThreadStrategy
         */
        protected $threadStrategy;
        /**
         * Sender constructor.
         *
         * @param Letter $letter Letter.
         */
        public function __construct(\Bitrix\Sender\Entity\Letter $letter)
        {
        }
        /**
         * Set limit.
         *
         * @param integer $limit Limit.
         *
         * @return $this
         */
        public function setLimit($limit)
        {
        }
        /**
         * Set timeout.
         *
         * @param integer $timeout Timeout.
         *
         * @return $this
         */
        public function setTimeout($timeout)
        {
        }
        /**
         * Get result code.
         *
         * @return int
         */
        public function getResultCode()
        {
        }
        /**
         * Send.
         *
         * @return void
         * @throws DB\Exception
         */
        public function send()
        {
        }
        /**
         * Load posting.
         *
         * @param integer $postingId Posting ID.
         *
         * @return void
         */
        public function load($postingId)
        {
        }
        /**
         * Start time watch.
         *
         * @return void
         */
        public function startTime()
        {
        }
        protected function initRecipients()
        {
        }
        protected function changeStatusToPart()
        {
        }
        /**
         * Update actual status.
         *
         * @param int $postingId Posting ID.
         * @param bool $isPrevented Is sending prevented.
         *
         * @return string
         */
        public static function updateActualStatus($postingId, $isPrevented = false)
        {
        }
        /**
         * Lock posting for preventing double sending
         *
         * @param integer $id ID.
         * @param $threadId default 0
         *
         * @return bool
         * @throws Main\Db\SqlQueryException
         * @throws Main\SystemException
         */
        public static function lock($id, $threadId = 0)
        {
        }
        protected static function getLockUniqueSalt($generate = true)
        {
        }
        /**
         * Check transport limits.
         *
         * @return bool
         */
        public function isTransportLimitsExceeded()
        {
        }
        protected function prevent()
        {
        }
        /**
         * @param $recipients
         *
         * @return bool
         * @throws \Exception
         */
        private function sendToRecipients($recipients)
        {
        }
        protected function isPrevented()
        {
        }
        protected function isStoppedOnRun()
        {
        }
        protected function setPostingDateSend()
        {
        }
        protected function sendToRecipient($recipient)
        {
        }
        /**
         * Apply recipient data to message.
         *
         * @param Adapter $message Message.
         * @param array $recipient Recipient.
         * @param bool $isTest Is test.
         *
         * @return void
         */
        public static function applyRecipientToMessage(\Bitrix\Sender\Message\Adapter $message, array $recipient, $isTest = false)
        {
        }
        protected static function prepareRecipientFields($recipient)
        {
        }
        /**
         * Check timeout.
         *
         * @return bool
         */
        public function isTimeout()
        {
        }
        /**
         * Check limits.
         *
         * @return bool
         */
        public function isLimitExceeded()
        {
        }
        /**
         * UnLock posting that was locking for preventing double sending
         *
         * @param integer $id ID.
         * @param int $threadId
         *
         * @return bool
         * @throws Main\Db\SqlQueryException
         * @throws Main\SystemException
         */
        public static function unlock($id, $threadId = 0)
        {
        }
        /**
         * @return IThreadStrategy
         */
        public function getThreadStrategy() : \Bitrix\Sender\Posting\ThreadStrategy\IThreadStrategy
        {
        }
        /**
         * @param IThreadStrategy $threadStrategy
         *
         * @return Sender
         */
        public function setThreadStrategy(\Bitrix\Sender\Posting\ThreadStrategy\IThreadStrategy $threadStrategy) : \Bitrix\Sender\Posting\Sender
        {
        }
    }
}
namespace Bitrix\Sender {
    class MailEventHandler
    {
        private static $list = array();
        /**
         * @param \Bitrix\Main\Event $event
         * @return mixed
         */
        public static function handleEvent(\Bitrix\Main\Event $event)
        {
        }
        public static function prevent($eventName, array $filter)
        {
        }
        public static function isPreventable($eventName, array $fields)
        {
        }
    }
}
namespace {
    class wiki extends \CModule
    {
        var $MODULE_ID = 'wiki';
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = 'Y';
        var $error = '';
        function __construct()
        {
        }
        function InstallDB()
        {
        }
        function UnInstallDB()
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function GetModuleRightList()
        {
        }
    }
    class CSocNetWikiForumEvent
    {
        var $arPath;
        var $ForumID = \null;
        function SetVars($arParams, $arResult)
        {
        }
        private function createLogEntry($iblockElementID)
        {
        }
        private function createLogComment($messageID, $bSocNetLogRecordExists, $iblockElementID, $topicID, $arLogParams)
        {
        }
        private function deleteLogComment($messageID)
        {
        }
        function onMessageModerate($ID, $TYPE, $arMessage)
        {
        }
        function onAfterMessageAdd($ID, $arFields)
        {
        }
        function onAfterMessageDelete($ID, $arFields)
        {
        }
        function onBeforeTopicAdd(&$arFields)
        {
        }
    }
    /* Categories list*/
    class CWikiCategories
    {
        private $arItems = array();
        public function addItem($catParams)
        {
        }
        public function getItems()
        {
        }
        public function getItemsNames()
        {
        }
    }
    class CWikiCategoryParams
    {
        public $sName = "";
        public $sTitle = "";
        public $iItemsCount = 0;
        public $bIsRed = \false;
        public $sLink = "";
        private $sPathTemplate = "";
        public function setPathTemplate($sTemplate)
        {
        }
        public function createLinkFromTemplate($sTemplate = "")
        {
        }
        public function clear($bClearTemplate = \false)
        {
        }
    }
    class CRatingsComponentsWiki
    {
        function OnAddRatingVote($id, $arParams)
        {
        }
        function OnCancelRatingVote($id, $arParams)
        {
        }
        function BeforeIndex($arParams)
        {
        }
    }
    class CWiki
    {
        /**
         *
         *
         * @var CIBlockElement
         */
        var $cIB_E = \null;
        const PAGE_UPDATED_CACHE_ID = "WIKI_PAGE_UPDATED_";
        const GET_BY_NAME_CACHE_ID = "WIKI_BY_NAME_CACHE_ID_";
        const CWIKI_CACHE_TTL = 36000000;
        /** @var ErrorCollection */
        protected $errorCollection;
        function __construct()
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function Recover($HISTORY_ID, $ID, $IBLOCK_ID)
        {
        }
        function UpdateHistory($ID, $IBLOCK_ID, $modifyComment = \false)
        {
        }
        function UpdateCategory($ID, $IBLOCK_ID, $arCats)
        {
        }
        //TODO: Delete (check) all comments
        function Delete($ID, $IBLOCK_ID)
        {
        }
        function AddImage($ID, $IBLOCK_ID, $arImage)
        {
        }
        function DeleteImage($IMAGE_ID, $ID, $IBLOCK_ID)
        {
        }
        function Rename($ID, $arFields, $bUpdateSearch = \true)
        {
        }
        /**
         * Renames inner links, and categories on wiki pages
         * alternatively you must do that manualy, after page, or catgory was renamed.
         * @param int $iBlockId (mandatory)- id of iblock witch contain page, or category.
         * @param str $oldName (mandatory)- old page or category name.
         * @param str $newName (mandatory)- new page or category name.
         * @param int $iBlockSectId (optional) - id of iBlock section witch contain page, or category.
         *			if wiki used with socnet groups, this param must be setted, otherwise all pages of all soc. groups
         *			will be changed.
         * @return int the amount of changed pages.
         */
        function RenameLinkOnPages($iBlockId, $oldName, $newName, $iBlockSectId = \false)
        {
        }
        function RenameCategoryOnPage($pageText, $oldCategoryName, $newCategoryName)
        {
        }
        static function SetDefaultPage($IBLOCK_ID, $NAME)
        {
        }
        static function GetDefaultPage($IBLOCK_ID)
        {
        }
        function GetCategory($NAME, $IBLOCK_ID)
        {
        }
        /**
         *
         *
         *
         * @param int $ID
         * @return array
         */
        public static function GetElementById($ID, $arFilter)
        {
        }
        /**
         * @param string $NAME (mandatory) - the name of page
         * @param array $arFilter (mandatory) - the filter for CIBlockElement::GetList
         * @param array $arComponentParams (optional) - params of the calling wiki component
         *		  using indexes: CACHE_TIME, PATH_TO_SEARCH, IN_COMPLEX, SEF_MODE, OPER_VAR, ELEMENT_NAME
         *		  necessary for: building search tag links
         * @return array
         */
        public static function GetElementByName($NAME, $arFilter, $arComponentParams = array())
        {
        }
        /**
         * @return \Bitrix\Main\ErrorCollection
         */
        public function getErrors()
        {
        }
        public function CleanCacheById($ID, $iBlockId = \false)
        {
        }
        public function CleanCache($ID = \false, $Name = \false, $iBlockId = \false)
        {
        }
        private static function GetIdForCacheByName($iBlockId, $iSocCatId, $elementName)
        {
        }
        public static function UnMarkPageAsUpdated($iBlockId, $iSocCatId, $name)
        {
        }
        public static function IsPageUpdated($iBlockId, $iSocCatId, $name, $cacheTime = self::CWIKI_CACHE_TTL)
        {
        }
        private static function MarkPageAsUpdated($iBlockId, $iSocCatId, $name)
        {
        }
        private static function GetCacheIdForPageUpdated($iBlockId, $iSocCatId, $name)
        {
        }
    }
    class CWikiSecurity
    {
        var $_filters = \false;
        function __construct($char = \false)
        {
        }
        function clear(&$str)
        {
        }
        protected function _dostr(&$str)
        {
        }
        /*
        Function is used in regular expressions in order to decode characters presented as &#123;
        */
        function _decode_cb($in)
        {
        }
        /*
        Function is used in regular expressions in order to decode characters presented as  &#xAB;
        */
        function _decode_cb_hex($in)
        {
        }
        /*
        Decodes string from html codes &#***;
        One pass!
        -- Decode only a-zA-Z:().=, because only theese are used in filters
        */
        function _decode($str)
        {
        }
    }
    class CWikiParser
    {
        public $arNowiki = array();
        public $arCode = array();
        public $arLink = array();
        public $arLinkExists = array();
        public $arFile = array();
        public $arVersionFile = array();
        private $postUrl = "";
        private $textType = "";
        function __construct()
        {
        }
        function Parse($text, $type = 'text', $arFile = array(), $arParams = array())
        {
        }
        static function NToBr($text)
        {
        }
        static function BrToN($text)
        {
        }
        static function Clear($text)
        {
        }
        function _processFileCallback($matches)
        {
        }
        function _processExternalLinkCallback($matches)
        {
        }
        function processInternalLink($text)
        {
        }
        function _processInternalLinkPrepareCallback($matches)
        {
        }
        function _processInternalLinkCallback($matches)
        {
        }
        function processToc($text)
        {
        }
        function _codeCallback($matches)
        {
        }
        function _noWikiCallback($matches)
        {
        }
        function _codeReturnCallback($matches)
        {
        }
        function _noWikiReturnCallback($matches)
        {
        }
        function _noWikiReturn2Callback($matches)
        {
        }
        function parseBeforeSave($text, &$arCat = array(), $nameTemplate = "")
        {
        }
        function parseForSearch($text)
        {
        }
    }
    class CWikiNotifySchema
    {
        public function __construct()
        {
        }
        public static function OnGetNotifySchema()
        {
        }
    }
    class CWikiUtils
    {
        static function getRightsLinks($arPage)
        {
        }
        static function IsReadable()
        {
        }
        static function IsWriteable()
        {
        }
        static function isAllowHTML()
        {
        }
        static function IsDeleteable()
        {
        }
        static function CheckAccess($access = 'view')
        {
        }
        static function CheckServicePage($NAME, &$SERVICE_NAME)
        {
        }
        static function IsCategoryPage($NAME, &$CATEGORY_NAME)
        {
        }
        static function OnBeforeIndex($arFields)
        {
        }
        static function GetUserLogin($arUserData = array(), $nameTemplate = "")
        {
        }
        static function htmlspecialcharsback($str, $end = \true)
        {
        }
        static function htmlspecialchars_decode($str)
        {
        }
        /**
         * Sets right search path for comments, likes etc.
         * http://jabber.bx/view.php?id=25340
         * @param int $forumID - forum's ID were comments saving (for example $arParams['FORUM_ID'])
         * @param str $rightPath - wich path must leads to the comment ( for example: "/comment/#MESSAGE_ID#/" )
         * @param str $urlRewriterPath - wich path leads to curent module (complex component) ( for example: "/services/wiki.php" )
         * @return bool true|false
         */
        static function SetCommentPath($forumID, $rightPath, $urlRewriterPath)
        {
        }
        /**
         * Gets right search path for comments,
         * http://jabber.bx/view.php?id=25340
         * @param int $forumID - forum's ID were comments saving (for example $arParams['FORUM_ID'])
         * @return array( $siteID => $forumURL )
         */
        static function GetCommentPath($forumID)
        {
        }
        static function UnlocalizeCategoryName($categoryName)
        {
        }
        static function GetTagsAsLinks($arTags)
        {
        }
        static function isCategoryVirtual($name)
        {
        }
        static function isVirtualCategoryExist($categoryName)
        {
        }
    }
    /**
     * Class CUserTypeString
     * @deprecated deprecated since main 20.0.700
     */
    class CUserTypeString extends \Bitrix\Main\UserField\TypeBase
    {
        const USER_TYPE_ID = \Bitrix\Main\UserField\Types\StringType::USER_TYPE_ID;
        function getUserTypeDescription()
        {
        }
        public static function getPublicView($userField, $additionalParameters = array())
        {
        }
        public static function getPublicEdit($userField, $additionalParameters = array())
        {
        }
        function getSettingsHtml($userField, $additionalParameters, $varsFromForm)
        {
        }
        function getEditFormHtml($userField, $additionalParameters)
        {
        }
        function getAdminListViewHtml($userField, $additionalParameters)
        {
        }
        function getAdminListEditHtml($userField, $additionalParameters)
        {
        }
        function getFilterHtml($userField, $additionalParameters)
        {
        }
        function getDbColumnType()
        {
        }
        function getFilterData($userField, $additionalParameters)
        {
        }
        function prepareSettings($userField)
        {
        }
        function checkFields($userField, $value)
        {
        }
        function onSearchIndex($userField)
        {
        }
    }
    class CUserTypeWiki extends \CUserTypeString
    {
        function GetUserTypeDescription()
        {
        }
        function CheckPermission()
        {
        }
    }
    class CWikiSocnet
    {
        public static $bActive = \false;
        public static $bInit = \false;
        public static $iCatId = 0;
        public static $iCatLeftBorder = 0;
        public static $iCatRightBorder = 0;
        public static $iSocNetId = 0;
        static function Init($SOCNET_GROUP_ID, $IBLOCK_ID)
        {
        }
        static function IsEnabledSocnet()
        {
        }
        static function IsSocNet()
        {
        }
        static function EnableSocnet($bActive = \false)
        {
        }
        static function OnFillSocNetFeaturesList(&$arSocNetFeaturesSettings)
        {
        }
        static function OnFillSocNetMenu(&$arResult, $arParams = array())
        {
        }
        static function OnParseSocNetComponentPath(&$arUrlTemplates, &$arCustomPagesPath, $arParams)
        {
        }
        static function OnInitSocNetComponentVariables(&$arVariableAliases, &$arCustomPagesPath)
        {
        }
        static function FormatEvent_Wiki($arFields, $arParams, $bMail = \false)
        {
        }
        static function FormatComment_Wiki($arFields, $arParams, $bMail = \false, $arLog = array())
        {
        }
        static function AddComment_Wiki($arFields)
        {
        }
        static function RecalcIBlockID($SocNetGroupID)
        {
        }
        static function PrepareTextForFeed($text)
        {
        }
        function __ProcessPath($arUrl, $user_id)
        {
        }
        function BeforeIndexSocNet($bxSocNetSearch, $arFields)
        {
        }
    }
    class CWikiDocument extends \CIBlockDocument
    {
        function CanUserOperateDocument($operation, $userId, $documentId, $arParameters = array())
        {
        }
    }
    class CWikiDiff
    {
        /**
         * @deprecated Use Bitrix\Wiki\Diff::getDiffHtml() instead.
         * @param string $a First version of text to be compared.
         * @param string $b Second version of text to be compared.
         * @return string Formatted result of comparison.
         */
        public static function getDiff($a, $b)
        {
        }
    }
}
namespace Bitrix\Wiki {
    /**
     * This Class implements the Difference Algorithm published in
     * "An O(ND) Difference Algorithm and its Variations" by Eugene Myers
     *  Algorithmica Vol. 1 No. 2, 1986, p 251.
     */
    class Diff
    {
        protected $upVector = array();
        protected $downVector = array();
        protected $modifiedA = array();
        protected $modifiedB = array();
        /**
         * Function finds the difference between two versions of text and creates html output with highlighted edits to
         * transform text from first to second version.
         *
         * @param string $a First version of text to be compared.
         * @param string $b Second version of text to be compared.
         * @return string
         */
        public function getDiffHtml($a, $b)
        {
        }
        /**
         * Function compares two arrays and creates edit script, that is required to transform array $a to array $b
         *
         * @param array $a First array to be compared.
         * @param array $b Second array to be compared.
         * @return array Array of edit steps to transform array $a to array $b. Each step is an array with keys:
         * <li>startA - position in array $a
         * <li>startB - position in array $b
         * <li>deletedA - count of elements deleted from array $a
         * <li>insertedB - count of elements inserted from array $b.
         */
        public function getDiffScript(array $a, array $b)
        {
        }
        /**
         * Function initializes object's fields for usage in difference algorithm.
         *
         * @return void
         */
        protected function init()
        {
        }
        /**
         * Function looks for longest common subsequence between two array
         *
         * @param array $a First array to be compared.
         * @param int $lowerA Lower bound of the first array.
         * @param int $upperA Upper bound of the first array.
         * @param array $b Second array to be compared.
         * @param int $lowerB Lower bound of the second array.
         * @param int $upperB Upper bound of the second array.
         * @return void
         */
        protected function longestCommonSubsequence(array $a, $lowerA, $upperA, array $b, $lowerB, $upperB)
        {
        }
        /**
         * Function looks for shortest middle snake between two arrays (see Meyer's work
         * "An O(ND) Difference Algorithm and its Variations")
         *
         * @param array $a First array to be compared.
         * @param int $lowerA Lower bound of the first array.
         * @param int $upperA Upper bound of the first array.
         * @param array $b Second array to be compared.
         * @param int $lowerB Lower bound of the second array.
         * @param int $upperB Upper bound of the second array.
         * @return array Array with keys 'x' and 'y', describing found shortest middle snake
         */
        protected function shortestMiddleSnake(array $a, $lowerA, $upperA, array $b, $lowerB, $upperB)
        {
        }
        /**
         * Function creates diff script. Should be called after longestCommonSubsequence().
         * @param array $a First array to be compared.
         * @param array $b Second array to be compared.
         * @return array Array of edit steps to transform array $a to array $b.
         */
        protected function createDiff(array $a, array $b)
        {
        }
    }
}
namespace Bitrix\Wiki\Update {
    final class LivefeedIndexLog extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "wiki";
        public function execute(array &$result)
        {
        }
    }
    final class LivefeedIndexComment extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "wiki";
        public function execute(array &$result)
        {
        }
    }
}
namespace Bitrix\Wiki\Integration\SocialNetwork {
    class Log
    {
        const EVENT_ID_WIKI = 'wiki';
        /**
         * Returns set EVENT_ID processed by handler to generate content for full index.
         *
         * @param void
         * @return array
         */
        public static function getEventIdList()
        {
        }
        /**
         * Returns content for LogIndex.
         *
         * @param Event $event Event from LogIndex::setIndex().
         * @return EventResult
         */
        public static function onIndexGetContent(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace {
    class bizprocdesigner extends \CModule
    {
        var $MODULE_ID = "bizprocdesigner";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function __construct()
        {
        }
        function InstallDB($install_wizard = \true)
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function InstallPublic()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
    class BizprocWorkflowEditComponent extends \CBitrixComponent
    {
        protected function listKeysSignedParameters()
        {
        }
        /**
         * @param array $params
         * @return array
         */
        public function onPrepareComponentParams($params)
        {
        }
        protected function isAuthorizationNeeded()
        {
        }
        protected function setPageTitle($title)
        {
        }
        public function executeComponent()
        {
        }
    }
    class BizprocWorkflowEditAjaxController extends \Bitrix\Main\Engine\Controller
    {
        protected function init()
        {
        }
        public function configureActions()
        {
        }
        public function exportAction($templateId)
        {
        }
        private function importTemplateAction()
        {
        }
        private function saveUserParamsAction()
        {
        }
        private function saveTemplateAction($templateId)
        {
        }
    }
    class CPGalleryInterface
    {
        var $IBlockID = 0;
        var $Gallery = \false;
        var $User = array("Permission" => "D");
        // current user
        var $arCache = array();
        var $arError = array();
        private static $userAliasesCache = array(), $arPassFormShowed = array();
        function CPGalleryInterface($main_params = array(), $additional_params = array())
        {
        }
        function GetGallery($gallery_id)
        {
        }
        function GetSection($id, &$arSection, $params = array())
        {
        }
        function GetSectionGallery($arSection = array())
        {
        }
        function GetPermission()
        {
        }
        function CheckPermission($permission = "D", $arSection = array(), $bOutput = \true)
        {
        }
        public function IsPassFormDisplayed($sectId)
        {
        }
        public static function GetUserAlias($userId = \false, $iblockId = 0)
        {
        }
        public static function GetPathWithUserAlias($path, $userId = \false, $iblockId = 0)
        {
        }
        public static function HandleUserAliases($arUserIds = array(), $iblockId = 0)
        {
        }
        private static function GetUniqAjaxId()
        {
        }
        public static function GetSign($params = array())
        {
        }
        public static function CheckSign($sign, $params = array())
        {
        }
        public static function CheckUploaderType($type = "")
        {
        }
    }
    class photogallery extends \CModule
    {
        var $MODULE_ID = "photogallery";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "N";
        function photogallery()
        {
        }
        function InstallDB()
        {
        }
        function UnInstallDB()
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
    class CPhotoUploader
    {
        var $arParams;
        var $arResult;
        var $arWatermark = array();
        var $post;
        function __construct(&$arParams, $arResult)
        {
        }
        /**
         * Creates new section in iblock
         * @param $arParams
         * @param $arResult
         * @param $name
         * @return bool|int
         */
        public static function createAlbum($arParams, $arResult, &$name)
        {
        }
        /**
         * Adds new properties in block
         * @param $arParams
         * @return bool
         */
        public static function adjustIBlock($arParams)
        {
        }
        function onBeforeUpload(&$package, &$upload, $post, $files, &$error)
        {
        }
        function onAfterUpload($data, $post, $files)
        {
        }
        function handleFile($hash, $photo, &$package, &$upload, &$error)
        {
        }
    }
    class CPhotogalleryElement
    {
        //	static $arSections = array();
        //	static $arGalleries = array();
        //	static $arIBlock = array();
        function CheckElement($ID, &$arElement, &$arSection, &$arGallery)
        {
        }
        function OnBeforeIBlockElementDelete($ID)
        {
        }
        function OnRecalcGalleries($ID, $INDEX)
        {
        }
        function OnAfterRecalcGalleries($IBLOCK_ID, $INDEX)
        {
        }
        function OnAfterIBlockElementAdd($res)
        {
        }
    }
    class CRatingsComponentsPhotogallery
    {
        function BeforeIndex($arParams)
        {
        }
    }
    class CPhotogalleryNotifySchema
    {
        public function __construct()
        {
        }
        public static function OnGetNotifySchema()
        {
        }
    }
}
namespace Bitrix\Photogallery\Integration\SocialNetwork {
    class Group
    {
        public static function onSocNetGroupDelete($groupId)
        {
        }
    }
}
namespace Bitrix\Photogallery\Copy\Integration {
    class Group implements \Bitrix\Socialnetwork\Copy\Integration\Feature
    {
        const MODULE_ID = "photogallery";
        const QUEUE_OPTION = "PhotogalleryGroupQueue";
        const CHECKER_OPTION = "PhotogalleryGroupChecker_";
        const STEPPER_OPTION = "PhotogalleryGroupStepper_";
        const STEPPER_CLASS = \Bitrix\Photogallery\Copy\Integration\GroupStepper::class;
        const ERROR_OPTION = "PhotogalleryGroupError_";
        private $executiveUserId;
        private $features = [];
        public function __construct($executiveUserId = 0, array $features = [])
        {
        }
        public function copy($groupId, $copiedGroupId)
        {
        }
        private function getParentSectionId($groupId, $sectionName)
        {
        }
        private function getSectionName($groupId)
        {
        }
        private function getNewSectionName($copiedGroupId)
        {
        }
        private function addToQueue(int $copiedGroupId)
        {
        }
    }
    class GroupStepper extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "photogallery";
        protected $queueName = "PhotogalleryGroupQueue";
        protected $checkerName = "PhotogalleryGroupChecker_";
        protected $baseName = "PhotogalleryGroupStepper_";
        protected $errorName = "PhotogalleryGroupError_";
        /**
         * Executes some action, and if return value is false, agent will be deleted.
         * @param array $option Array with main data to show if it is necessary like {steps : 35, count : 7},
         * where steps is an amount of iterations, count - current position.
         * @return boolean
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\SystemException
         */
        public function execute(array &$option)
        {
        }
        protected function getQueue() : array
        {
        }
        protected function setQueue(array $queue) : void
        {
        }
        protected function getQueueOption()
        {
        }
        protected function saveQueueOption(array $data)
        {
        }
        protected function deleteQueueOption()
        {
        }
        protected function deleteCurrentQueue(array $queue) : void
        {
        }
        protected function isQueueEmpty()
        {
        }
        protected function getOptionData($optionName)
        {
        }
        protected function deleteOption($optionName)
        {
        }
    }
}
namespace Bitrix\Photogallery\Copy\Stepper {
    class Section extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "photogallery";
        protected $queueName = "SectionGroupQueue";
        protected $checkerName = "SectionGroupChecker_";
        protected $baseName = "SectionGroupStepper_";
        protected $errorName = "SectionGroupError_";
        /**
         * Executes some action, and if return value is false, agent will be deleted.
         * @param array $option Array with main data to show if it is necessary like {steps : 35, count : 7},
         * where steps is an amount of iterations, count - current position.
         * @return boolean
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         */
        public function execute(array &$option)
        {
        }
        private function getElementIds(int $sectionId, int $limit, int $offset) : array
        {
        }
        private function getOffset(int $copiedSectionId) : int
        {
        }
        private function getErrorOffset(\Bitrix\Main\Copy\EntityCopier $elementCopier) : int
        {
        }
        private function getContainerCollection($elementIds, array $sectionsRatio, array $enumRatio, $targetIblockId = 0)
        {
        }
        private function getElementCopier()
        {
        }
        private function onAfterQueueCopy(array $queueOption) : void
        {
        }
        protected function getQueue() : array
        {
        }
        protected function setQueue(array $queue) : void
        {
        }
        protected function getQueueOption()
        {
        }
        protected function saveQueueOption(array $data)
        {
        }
        protected function deleteQueueOption()
        {
        }
        protected function deleteCurrentQueue(array $queue) : void
        {
        }
        protected function isQueueEmpty()
        {
        }
        protected function getOptionData($optionName)
        {
        }
        protected function deleteOption($optionName)
        {
        }
    }
}
namespace Bitrix\Iblock\Copy\Implement\Children {
    class Element implements \Bitrix\Iblock\Copy\Implement\Children\Child
    {
        const IBLOCK_COPY_MODE = "iblock";
        const SECTION_COPY_MODE = "section";
        protected $moduleId = "iblock";
        private $copyMode;
        protected $sectionsRatio = [];
        protected $enumRatio = [];
        /**
         * @var Result
         */
        protected $result;
        public function __construct($copyMode)
        {
        }
        public function setSectionsRatio(array $sectionsRatio)
        {
        }
        public function setEnumRatio(array $enumRatio)
        {
        }
        /**
         * @param int $entityId
         * @param int $copiedEntityId
         * @return Result
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function copy($entityId, $copiedEntityId) : \Bitrix\Main\Result
        {
        }
        /**
         * @param int $sectionId
         * @param int $copiedSectionId
         * @return Result
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        protected function copySectionElements(int $sectionId, int $copiedSectionId)
        {
        }
        /**
         * @param int $iblockId
         * @param int $copiedIblockId
         * @return Result
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        private function copyIblockElements(int $iblockId, int $copiedIblockId)
        {
        }
        protected function addToQueue(int $copiedSectionId, $queueName)
        {
        }
    }
}
namespace Bitrix\Photogallery\Copy\Implement\Children {
    class Element extends \Bitrix\Iblock\Copy\Implement\Children\Element
    {
        protected $moduleId = "photogallery";
        protected function copySectionElements(int $sectionId, int $copiedSectionId)
        {
        }
    }
}
namespace {
    class blog extends \CModule
    {
        var $MODULE_ID = "blog";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function blog()
        {
        }
        public static function installDiskUserFields()
        {
        }
        public static function installMailUserFields(&$errors = [])
        {
        }
        function InstallUserFields($id = "all")
        {
        }
        function InstallDB($install_wizard = \true)
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function UnInstallUserFields()
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function GetModuleRightList()
        {
        }
    }
    class CBlogPostCommentEdit extends \CBitrixComponent
    {
        const FILE_CONTROL_ID_PREFIX = 'blogcommentfiles';
        const POST_COMMENT_FORM_PREFIX = 'POST_BLOG_COMMENT_FORM';
        const POST_COMMENT_MESSAGE = "POST_COMMENT_MESSAGE";
        const AVATAR_SIZE_COMMENT = 100;
        protected $commentUrlID;
        public function onPrepareComponentParams($arParams)
        {
        }
        public function executeComponent()
        {
        }
        /**
         * Create list of ALL comments for this post, but with just base parameters.
         * Need to small cache of comments list, to convert them in tree or flat list.
         * And next we can add additional params only for visible elements.
         */
        protected function createCommentsList()
        {
        }
        public function createPostFormId()
        {
        }
        public function createEditorId()
        {
        }
        protected function createCacheId($uniqueString = "")
        {
        }
        protected function createCachePath()
        {
        }
        private function createXmlId($entityId)
        {
        }
        private function parseFilesArray()
        {
        }
        private function getNotAttachedFiles($removeOldFiles = \false)
        {
        }
        public function bindPostToEditorForm($xmlId, $formIdGet = \NULL, $arParams)
        {
        }
        /**
         * If not set "consent for registered users" option - always set flag to true;
         * Else - match flag by checking consents for this component URL
         */
        private function isUserGivenConsent()
        {
        }
        private function setParamsForRegisteredUsers($user_id)
        {
        }
        private function createSmilesParams()
        {
        }
        protected function createImagesParams()
        {
        }
        /**
         * Formatting author name, set url and blog params and save this in user cache
         * @param $userId
         */
        protected function setCommentAuthorCache($userId)
        {
        }
        protected function createCommentsProperties()
        {
        }
        /**
         * Get all all comments from cache, or process them in cycle, create params, page etc
         */
        protected function createAdditionalCommentsParams()
        {
        }
        /**
         * Create base params for one comment, author params, formatting title and text etc
         *
         * @param $comment
         * @param blogTextParser $textParser
         * @return mixed
         */
        protected function createAdditionalCommentParams($comment, \blogTextParser $textParser)
        {
        }
        protected function createCommentTitle($arComment, \blogTextParser $textParser)
        {
        }
        protected function createCommentAllows($arComment)
        {
        }
        /**
         * Loop all comments and mark HIDDEN and SKRINNED to hide them later
         */
        private function createHiddenCommentsParams()
        {
        }
        /**
         * Match and mark one comment HIDDEN and SKRINNED to hide him later
         * @param $comment
         */
        private function createHiddenCommentParams($comment)
        {
        }
        /**
         * Find hidden comments, and if not need how them - remove from result
         */
        private function hideHiddenComments()
        {
        }
        private function createCommentsPages()
        {
        }
        /**
         * collect subchilds comments not from current page
         * @param $ids
         * @return array
         */
        private function searchSubchildComments($ids)
        {
        }
        protected function markNewComments()
        {
        }
        protected function saveLastPostView()
        {
        }
        private static function clearBlogCaches($blogUrl, $postId)
        {
        }
        protected function addCaptcha()
        {
        }
        public function printPaging($top = \true, $useLink = \true)
        {
        }
        public function printCommentPages()
        {
        }
    }
    class CBlogPostCommentList extends \CBlogPostCommentEdit
    {
        protected function createCacheId($uniqueString = "")
        {
        }
        /**
         * Create list of ALL comments for this post, but with just base parameters.
         * Need to small cache of comments list, to convert them in tree or flat list.
         * And next we can add additional params only for visible elements.
         */
        protected function createCommentsList()
        {
        }
        protected function createAdditionalCommentsParams()
        {
        }
        protected function createAdditionalCommentParams($comment, \blogTextParser $textParser)
        {
        }
        protected function markNewComments()
        {
        }
        private function addTitleToMessage($message, $title)
        {
        }
        private function createCacheIdByPagination()
        {
        }
    }
    class CBlogPostEdit extends \CBitrixComponent
    {
        const FILE_CONTROL_ID_PREFIX = 'blogfiles';
        const POST_FORM_PREFIX = 'POST_BLOG_FORM';
        const POST_MESSAGE_PREFIX = "POST_MESSAGE";
        public $userId;
        public function onPrepareComponentParams($arParams)
        {
        }
        public function executeComponent()
        {
        }
        private function setUserId($userId)
        {
        }
        public function createPostFormId()
        {
        }
        public function createEditorId()
        {
        }
        private function processImagesOldVersion($arBlog)
        {
        }
        private function parseFilesArray()
        {
        }
        private function getNotAttachedFiles($removeOldFiles = \false)
        {
        }
        private function getCategoryIdsByPostNames($blogParams)
        {
        }
        private function getCategoryIdsByPostIds($blogParams)
        {
        }
        private function getCategoriesIds($blogParams)
        {
        }
        private function getDatePublish()
        {
        }
        private function getPublishStatus($perms)
        {
        }
        private function setSeoFields()
        {
        }
        private function setCodeFields($blogParams)
        {
        }
        private function setPermsFields()
        {
        }
        private function setMicroblogFields($title1, $title2)
        {
        }
        private function saveOrUpdatePost($fields, $blogParams)
        {
        }
        private function copyOrMovePost($blogParams)
        {
        }
        private function initPostToShowExistPost($postParams, $blogParams)
        {
        }
        private function initPostToShowPreview($blogParams)
        {
        }
        private function getAvBlogs($blogParams, $blogModulePermissions)
        {
        }
        private function getSmilesParams()
        {
        }
        private function clearBlogCache($blogParams)
        {
        }
        private function isUserGivenConsent()
        {
        }
    }
    class CTextParser
    {
        public $type = "html";
        public $serverName = "";
        public $preg;
        public $imageWidth = 800;
        public $imageHeight = 800;
        public $maxStringLen = 0;
        public $maxAnchorLength = 40;
        //https://www.w3.org/TR/CSS2/fonts.html#propdef-font-size
        public $arFontSize = array(1 => "xx-small", 2 => "small", 3 => "medium", 4 => "large", 5 => "x-large", 6 => "xx-large");
        public $allow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "EMOJI" => "Y", "SMILES" => "Y", "CLEAR_SMILES" => "N", "NL2BR" => "N", "VIDEO" => "Y", "TABLE" => "Y", "CUT_ANCHOR" => "N", "SHORT_ANCHOR" => "N", "ALIGN" => "Y", "USERFIELDS" => "N", "USER" => "Y", "P" => "Y", "TAG" => "N");
        public $smiles = \null;
        protected $wordSeparator = "\\s.,;:!?\\#\\-\\*\\|\\[\\]\\(\\)\\{\\}";
        protected $smilePatterns = \null;
        protected $smileReplaces = \null;
        protected static $repoSmiles = array();
        public $smilesGallery = \CSmileGallery::GALLERY_DEFAULT;
        protected $defended_urls = array();
        protected $anchorSchemes = \null;
        protected $userField;
        public $bMobile = \false;
        public $LAZYLOAD = "N";
        protected $tagPattern = "/([\\s]+|^)#([^\\s,\\.\\[\\]<>]+)/is";
        public function __construct()
        {
        }
        /** @deprecated */
        public function CTextParser()
        {
        }
        public function getAnchorSchemes()
        {
        }
        public function setAnchorSchemes($schemes)
        {
        }
        protected function initSmiles()
        {
        }
        protected function initSmilePatterns()
        {
        }
        protected static function chr($a)
        {
        }
        protected static function strpos($s, $a)
        {
        }
        public function convertText($text)
        {
        }
        public function defendTags($matches)
        {
        }
        function defended_tags($text, $tag = 'replace')
        {
        }
        function convert4mail($text)
        {
        }
        public function convertVideo($matches)
        {
        }
        protected function convert_video($arParams)
        {
        }
        function convertEmoticon($matches)
        {
        }
        function convert_emoticon($code = "", $image = "", $description = "", $width = "", $height = "", $descriptionDecode = \false, $imageDefinition = \CSmile::IMAGE_SD)
        {
        }
        public function convertCode($matches)
        {
        }
        public function convertQuote($matches)
        {
        }
        function convert_quote_tag($text = "")
        {
        }
        function convert_spoiler_tag($text, $title = "")
        {
        }
        function convert_cut_tag($text, $title = "")
        {
        }
        function renderSpoiler($text, $title = "")
        {
        }
        function convert_open_tag($marker = "quote")
        {
        }
        function convert_close_tag($marker = "quote")
        {
        }
        public function convertImage($matches)
        {
        }
        function convert_image_tag($url = "", $params = "")
        {
        }
        public function convertFont($matches)
        {
        }
        public function convertFontSize($matches)
        {
        }
        public function convertFontColor($matches)
        {
        }
        public function stripAllTags($text)
        {
        }
        function convert_font_attr($attr, $value = "", $text = "")
        {
        }
        function convert_userfields($matches)
        {
        }
        function convert_user($userId = 0, $userName = "")
        {
        }
        protected function render_user($fields)
        {
        }
        public function getTagPattern()
        {
        }
        function cleanTag($tag)
        {
        }
        function detectTags($text)
        {
        }
        function convert_tag($tag = array())
        {
        }
        // Only for public using
        function wrap_long_words($text = "")
        {
        }
        public function partWords($matches)
        {
        }
        function part_long_words($str)
        {
        }
        public function cutWords($matches)
        {
        }
        function cut_long_words($str)
        {
        }
        protected function parseSpaces($matches)
        {
        }
        public function convertAnchor($matches)
        {
        }
        function convert_anchor_tag($url, $text, $pref = "")
        {
        }
        private function preconvertUrl($matches)
        {
        }
        public function preconvertAnchor($matches)
        {
        }
        function pre_convert_anchor_tag($url, $text = "", $str = "")
        {
        }
        function post_convert_anchor_tag($str)
        {
        }
        function strip_words($string, $count)
        {
        }
        function closeTags($html)
        {
        }
        public static function clearAllTags($text)
        {
        }
        function html_cut($html, $size)
        {
        }
        function convertHTMLToBB($html = "", $allow = \null)
        {
        }
        public static function TextParserHTMLToBBHack(&$text, &$TextParser)
        {
        }
    }
    class blogTextParser extends \CTextParser
    {
        public $bPublic = \false;
        public $pathToUserEntityId = \false;
        public $pathToUserEntityType = \false;
        public $smilesGallery = 0;
        public $maxStringLen = 100;
        private $arImages = array();
        public $showedImages = array();
        //	max sizes for show image in popup
        const IMAGE_MAX_SHOWING_WIDTH = 1000;
        const IMAGE_MAX_SHOWING_HEIGHT = 1000;
        public function __construct($strLang = \False, $pathToSmile = \false, $arParams = array())
        {
        }
        public function convert($text, $bPreview = \True, $arImages = array(), $allow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y", "TABLE" => "Y", "CUT_ANCHOR" => "N", "SHORT_ANCHOR" => "N"), $arParams = array())
        {
        }
        public function ParserCut(&$text, &$obj)
        {
        }
        public function ParserCutAfter(&$text, &$obj)
        {
        }
        public function ParserBlogImageBefore(&$text, &$obj = \null)
        {
        }
        public function ParserBlogImage(&$text, &$obj)
        {
        }
        private function convertBlogImage($matches)
        {
        }
        private function convertBlogImageMail($matches)
        {
        }
        public function ParserTag(&$text, &$obj)
        {
        }
        private function convertBlogTag($matches)
        {
        }
        private function convert_blog_tag($name = "")
        {
        }
        function convert4im($text, $arImages = array())
        {
        }
        public function convert4mail($text, $arImages = array())
        {
        }
        private function convert_blog_image($p1 = "", $imageId = "", $p2 = "", $type = "html")
        {
        }
        public function convert_to_rss($text, $arImages = array(), $arAllow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y", "TABLE" => "Y", "CUT_ANCHOR" => "N"), $bPreview = \true, $arParams = array())
        {
        }
        function convert_open_tag($marker = "quote")
        {
        }
        function blogConvertVideo(&$arParams)
        {
        }
        public static function killAllTags($text)
        {
        }
        function render_user($fields)
        {
        }
        private static function getEditorDefaultFeatures()
        {
        }
        private static function getEditorExtendFeatures()
        {
        }
        public static function GetEditorToolbar($params, $arResult = \null)
        {
        }
        public function getEditorButtons($blog, $arResult)
        {
        }
    }
    class CBlogTools
    {
        public static function htmlspecialcharsExArray($array)
        {
        }
        function ResizeImage($aFile, $sizeX, $sizeY)
        {
        }
        function GetDateTimeFormat()
        {
        }
        public static function DeleteDoubleBR($text)
        {
        }
        function blogUFfileEdit($arResult, $arParams)
        {
        }
        function blogUFfileShow($arResult, $arParams)
        {
        }
    }
    class CAllBlogSitePath
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Delete($ID)
        {
        }
        //*************** SELECT *********************/
        function GetByID($ID)
        {
        }
        function GetBySiteID($siteID)
        {
        }
        function DeleteBySiteID($siteID)
        {
        }
    }
    class CBlogMetaWeblog
    {
        function Authorize($user, $password)
        {
        }
        function DecodeParams($value)
        {
        }
        function GetUsersBlogs($params, $arPath)
        {
        }
        function GetCategories($params)
        {
        }
        function GetRecentPosts($params, $arPath)
        {
        }
        function NewMediaObject($params)
        {
        }
        function NewPost($params)
        {
        }
        function EditPost($params)
        {
        }
        function GetPost($params, $arPath)
        {
        }
        function DeletePost($params)
        {
        }
        function GetUserInfo($params)
        {
        }
    }
    class CAllBlogUserGroup
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Delete($ID)
        {
        }
        function SetGroupPerms($ID, $blogID, $postID = 0, $permission = \BLOG_PERMS_DENY, $permsType = \BLOG_PERMS_POST)
        {
        }
        //*************** SELECT *********************/
        function GetByID($ID)
        {
        }
        public static function GetGroupPerms($ID, $blogID, $postID = 0, $permsType = \BLOG_PERMS_POST)
        {
        }
    }
    class CBlogSoNetPost
    {
        function CanUserDeletePost($ID, $userID, $blogOwnerID, $groupOwnerID)
        {
        }
        function OnGroupDelete($ID)
        {
        }
    }
    class CBlogNotifySchema
    {
        public function __construct()
        {
        }
        public static function OnGetNotifySchema()
        {
        }
        public static function CBlogEventsIMCallback($module, $tag, $text, $arNotify)
        {
        }
    }
    class CAllRatingsComponentsBlog
    {
        // return configs of component-rating
        function OnGetRatingConfigs()
        {
        }
        // return support object
        function OnGetRatingObject()
        {
        }
        // check the value of the component-rating which relate to the module
        function OnAfterAddRating($ID, $arFields)
        {
        }
        // check the value of the component-rating which relate to the module
        function OnAfterUpdateRating($ID, $arFields)
        {
        }
        // Utilities
        // check input values, if value does not validate, set the default value
        function __CheckFields($entityId, $arConfigs)
        {
        }
        // collect the default and regular expressions for the fields component-rating
        function __AssembleConfigDefault($objectType = \null)
        {
        }
        function OnGetRatingContentOwner($arParams)
        {
        }
    }
    class CAllBlogCandidate
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Delete($ID)
        {
        }
        //*************** SELECT *********************/
        function GetByID($ID)
        {
        }
    }
    class CAllBlogCategory
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Delete($ID)
        {
        }
        //*************** SELECT *********************/
        public static function GetByID($ID)
        {
        }
    }
    class CAllBlogUserGroupPerms
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function __AutoSetPerms($ID)
        {
        }
        public static function Delete($ID)
        {
        }
        //*************** SELECT *********************/
        function GetByID($ID)
        {
        }
    }
    class CAllBlogGroup
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Delete($ID)
        {
        }
        //*************** SELECT *********************/
        public static function GetByID($ID)
        {
        }
    }
    class CAllBlogUser
    {
        public static function IsLocked($userID)
        {
        }
        public static function CanUserUpdateUser($ID, $userID, $selectType = \BLOG_BY_BLOG_USER_ID)
        {
        }
        /*************** ADD, UPDATE, DELETE *****************/
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function DeleteFromUserGroup($ID, $blogID, $selectType = \BLOG_BY_BLOG_USER_ID)
        {
        }
        public static function AddToUserGroup($ID, $blogID, $arGroups = array(), $joinStatus = "Y", $selectType = \BLOG_BY_BLOG_USER_ID, $action = \BLOG_CHANGE)
        {
        }
        public static function SetLastVisit()
        {
        }
        //*************** SELECT *********************/
        public static function GetByID($ID, $selectType = \BLOG_BY_BLOG_USER_ID)
        {
        }
        public static function GetUserFriends($ID, $bFlag = \True)
        {
        }
        public static function GetUserGroups($ID, $blogID, $joinStatus = "", $selectType = \BLOG_BY_BLOG_USER_ID, $bUrl = \false)
        {
        }
        public static function GetUserPerms($arGroups, $blogID, $postID = 0, $permsType = \BLOG_PERMS_POST, $selectType = \BLOG_BY_BLOG_USER_ID)
        {
        }
        public static function GetUserName($alias, $name, $lastName, $login, $secondName = "")
        {
        }
        public static function GetUserNameEx($arUser, $arBlogUser, $arParams)
        {
        }
        public static function PreparePath($userID = 0, $siteID = \False, $is404 = \True)
        {
        }
        public static function PreparePath2User($arParams = array())
        {
        }
        public static function GetUserIP()
        {
        }
        public static function GetUserInfo($id, $path, $arParams = array())
        {
        }
        public static function GetUserInfoArray($arId, $path, $arParams = array())
        {
        }
    }
    class CAllBlog
    {
        public static function IsBlogOwner($ID, $userID)
        {
        }
        function CanUserCreateBlog($userID = 0)
        {
        }
        function CanUserViewBlogs($arUserGroups = array())
        {
        }
        public static function CanUserManageBlog($ID, $userID = 0)
        {
        }
        function GetBlogUserPostPerms($ID, $userID = 0)
        {
        }
        function GetBlogUserCommentPerms($ID, $userID)
        {
        }
        /*************** ADD, UPDATE, DELETE *****************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Delete($ID)
        {
        }
        function SetBlogPerms($ID, $arPerms = array(), $permsType = \BLOG_PERMS_POST)
        {
        }
        public static function SetStat($ID)
        {
        }
        //*************** COMMON UTILS *********************/
        public static function GetFilterOperation($key)
        {
        }
        public static function PrepareSql(&$arFields, $arOrder, &$arFilter, $arGroupBy, $arSelectFields, $obUserFieldsSql = \false)
        {
        }
        //*************** SELECT *********************/
        public static function GetByID($ID)
        {
        }
        public static function GetByOwnerID($ID, $arGroup = array())
        {
        }
        public static function GetByUrl($BLOG_URL, $arGroup = array())
        {
        }
        public static function GetBySocNetGroupID($ID, $arGroup = array())
        {
        }
        function BuildRSS($ID, $type = "RSS .92", $numPosts = 10, $blogTemplate = "", $postTemplate = "", $userTemplate = "", $bSoNet = \false, $arParams = array())
        {
        }
        public static function PreparePath($blogUrl, $siteID = \False, $is404 = \True, $userID = 0, $groupID = 0)
        {
        }
        function IsFriend($ID, $userID)
        {
        }
        function BuildRSSAll($GroupId = 0, $type = "RSS .92", $numPosts = 10, $siteID = \SITE_ID, $postTemplate = "", $userTemplate = "", $arAvBlog = array(), $arPathTemplates = array(), $arGroupID = array(), $bUserSocNet = "N")
        {
        }
        public static function DeleteSocnetRead($ID)
        {
        }
        function GetSocnetReadByBlog($ID)
        {
        }
        public static function SendPing($blogName, $blogUrl, $blogXml = "")
        {
        }
        function GetWritableSocnetBlogs($user_id = 0, $type = "U", $site_id = \SITE_ID)
        {
        }
    }
    class CAllBlogImage
    {
        const NOT_ATTACHED_IMAGES_LIFETIME = 86400;
        //one day
        /*************** ADD, UPDATE, DELETE *****************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function ImageFixSize($aFile)
        {
        }
        public static function Delete($ID)
        {
        }
        //*************** SELECT *********************/
        public static function GetByID($ID)
        {
        }
        public static function AddImageResizeHandler($arParams)
        {
        }
        public static function AddImageCreateHandler($arParams)
        {
        }
        static function ImageResizeHandler(&$arCustomFile, $arParams = \null)
        {
        }
        static function ImageCreateHandler(&$arCustomFile, $arParams = \null)
        {
        }
    }
    class CBlogSearch
    {
        public static function fillSearchPermsWithSonetGroupData($sonetPerms, $authorId, &$arSearchIndex = array(), $arParams = array())
        {
        }
        public static function fillSearchParamsWithMentionData($arMentionedUserID = array(), &$arSearchIndex = array())
        {
        }
        public static function OnSearchReindex($NS = array(), $oCallback = \NULL, $callback_method = "")
        {
        }
        function Trace($method, $varname, $var)
        {
        }
        function SetSoNetFeatureIndexSearch($ID, $arFields)
        {
        }
        public static function OnBeforeSocNetFeaturesPermsAdd($arFields)
        {
        }
        public static function OnBeforeSocNetFeaturesPermsUpdate($ID, $arFields)
        {
        }
        public static function setSoNetFeaturePermIndexSearchBefore($fields)
        {
        }
        public static function SetSoNetFeaturePermIndexSearch($ID, $arFields)
        {
        }
    }
    class CAllBlogComment
    {
        const UF_NAME = 'UF_BLOG_COMMENT_DOC';
        /*************** ADD, UPDATE, DELETE *****************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Delete($ID)
        {
        }
        //*************** SELECT *********************/
        public static function GetByID($ID)
        {
        }
        function BuildRSS($postID, $blogID, $type = "RSS2.0", $numPosts = 10, $arPathTemplate = array())
        {
        }
        public static function _IndexPostComments($arParams = array())
        {
        }
        public static function UpdateLog($commentID, $arBlogUser, $arUser, $arComment, $arPost, $arParams)
        {
        }
        public static function DeleteLog($commentID)
        {
        }
        public static function GetSocNetPostsPerms($entity_type, $entity_id)
        {
        }
        public static function GetSocNetCommentPerms($postID = 0)
        {
        }
        public static function GetSocNetUserPerms($postId = 0, $authorId = 0, $userId = 0)
        {
        }
        public static function GetSocNetUserPermsNew($postId = 0, $authorId = 0, $userId = 0, &$permsBySG)
        {
        }
        public static function GetMentionedUserID($arFields)
        {
        }
        /**
         * Use component main.post.list to work with LiveFeed
         * @param int $commentId Comment ID which needs to send.
         * @param array $arParams Array of settings (DATE_TIME_FORMAT, SHOW_RATING, PATH_TO_USER, AVATAR_SIZE, NAME_TEMPLATE, SHOW_LOGIN)
         * @return string
         */
        public static function addLiveComment($commentId = 0, $arParams = array())
        {
        }
        public static function BuildUFFields($arUF)
        {
        }
    }
    class CAllBlogPost
    {
        public static $arSocNetPostPermsCache = array();
        public static $arUACCache = array();
        public static $arBlogPostCache = array();
        public static $arBlogPostIdCache = array();
        public static $arBlogPCCache = array();
        public static $arBlogUCache = array();
        const UF_NAME = 'UF_BLOG_POST_DOC';
        function CanUserEditPost($ID, $userID)
        {
        }
        public static function CanUserDeletePost($ID, $userID)
        {
        }
        public static function GetBlogUserPostPerms($ID, $userID)
        {
        }
        public static function GetBlogUserCommentPerms($ID, $userID)
        {
        }
        /*************** ADD, UPDATE, DELETE *****************/
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function SetPostPerms($ID, $arPerms = array(), $permsType = \BLOG_PERMS_POST)
        {
        }
        public static function Delete($ID)
        {
        }
        //*************** SELECT *********************/
        public static function PreparePath($blogUrl, $postID = 0, $siteID = \False, $is404 = \True, $userID = 0, $groupID = 0)
        {
        }
        function PreparePath2Post($realUrl, $url, $arParams = array())
        {
        }
        public static function CounterInc($ID)
        {
        }
        public static function Notify($arPost, $arBlog, $arParams)
        {
        }
        public static function UpdateLog($postID, $arPost, $arBlog, $arParams)
        {
        }
        public static function DeleteLog($postID, $bMicroblog = \false)
        {
        }
        public static function GetID($code, $blogID)
        {
        }
        public static function GetPostID($postID, $code, $allowCode = \false)
        {
        }
        public static function AddSocNetPerms($ID, $perms = array(), $arPost = array())
        {
        }
        public static function UpdateSocNetPerms($ID, $perms = array(), $arPost = array())
        {
        }
        public static function __AddSocNetPerms($ID, $entityType = "", $entityID = 0, $entity)
        {
        }
        public static function GetSocNetGroups($entity_type, $entity_id, $operation = "view_post")
        {
        }
        public static function getFullGroupRoleSet($role = "", $prefix = "")
        {
        }
        public static function getSocNetPerms($ID, $useCache = \true)
        {
        }
        public static function GetSocNetPermsName($ID)
        {
        }
        public static function GetSocNetPermsCode($ID)
        {
        }
        public static function ChangeSocNetPermission($entity_type, $entity_id, $operation)
        {
        }
        public static function GetSocNetPostsPerms($entity_type, $entity_id)
        {
        }
        public static function GetSocNetPostPerms($postId = 0, $bNeedFull = \false, $userId = \false, $postAuthor = 0)
        {
        }
        public static function NotifyIm($arParams)
        {
        }
        public static function NotifyImReady($arParams = array())
        {
        }
        public static function NotifyImPublish($arParams = array())
        {
        }
        private static function processNotifyTitle($title)
        {
        }
        public static function NotifyMail($arFields)
        {
        }
        public static function DeleteSocNetPostPerms($postId)
        {
        }
        public static function GetMentionedUserID($arFields)
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage blog
     * @copyright 2001-2013 Bitrix
     */
    class CBlogUserOptions
    {
        protected static $__USER_OPTIONS_CACHE;
        public static function GetList($arOrder = array("ID" => "ASC"), $arFilter = array(), $arAddParams = array())
        {
        }
        public static function GetOption($post_id, $name, $default_value = \false, $user_id = \false)
        {
        }
        public static function SetOption($post_id, $name, $value, $user_id = \false)
        {
        }
        public static function DeleteOption($post_id, $name, $user_id = \false)
        {
        }
        public static function DeleteUsersOptions($user_id = \false)
        {
        }
        //*****************************
        // Events
        //*****************************
        //user deletion event
        public static function OnUserDelete($user_id)
        {
        }
        protected static function _clear_cache($user_id = 0)
        {
        }
    }
    class CAllBlogPostCategory
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Delete($ID)
        {
        }
        //*************** SELECT *********************/
        function GetByID($ID)
        {
        }
        public static function DeleteByPostID($ID)
        {
        }
    }
    class CAllBlogTrackback
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Delete($ID)
        {
        }
        //*************** SELECT *********************/
        function GetByID($ID)
        {
        }
        //*************** SEND / RECEIVE PINGS *********************/
        function SendPing($postID, $arPingUrls = array())
        {
        }
        function GetPing($blogUrl, $postID, $arParams = array())
        {
        }
        function SendPingResponce($error = 0, $text = "")
        {
        }
    }
    class CBlogSmile
    {
        static $smiles = array();
        static $sets = array();
        function CheckFields()
        {
        }
        function Add()
        {
        }
        function Update()
        {
        }
        function Delete()
        {
        }
        function GetList()
        {
        }
        function GetByID()
        {
        }
        function GetByIDEx()
        {
        }
        function GetLangByID()
        {
        }
        public static function GetSmilesList()
        {
        }
        public static function getSmiles($type, $lang)
        {
        }
    }
}
namespace Bitrix\Blog {
    /**
     * EO_Comment
     * @see \Bitrix\Blog\CommentTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Blog\EO_Comment setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getBlogId()
     * @method \Bitrix\Blog\EO_Comment setBlogId(\int|\Bitrix\Main\DB\SqlExpression $blogId)
     * @method bool hasBlogId()
     * @method bool isBlogIdFilled()
     * @method bool isBlogIdChanged()
     * @method \int remindActualBlogId()
     * @method \int requireBlogId()
     * @method \Bitrix\Blog\EO_Comment resetBlogId()
     * @method \Bitrix\Blog\EO_Comment unsetBlogId()
     * @method \int fillBlogId()
     * @method \int getPostId()
     * @method \Bitrix\Blog\EO_Comment setPostId(\int|\Bitrix\Main\DB\SqlExpression $postId)
     * @method bool hasPostId()
     * @method bool isPostIdFilled()
     * @method bool isPostIdChanged()
     * @method \int remindActualPostId()
     * @method \int requirePostId()
     * @method \Bitrix\Blog\EO_Comment resetPostId()
     * @method \Bitrix\Blog\EO_Comment unsetPostId()
     * @method \int fillPostId()
     * @method \Bitrix\Blog\EO_Post getPost()
     * @method \Bitrix\Blog\EO_Post remindActualPost()
     * @method \Bitrix\Blog\EO_Post requirePost()
     * @method \Bitrix\Blog\EO_Comment setPost(\Bitrix\Blog\EO_Post $object)
     * @method \Bitrix\Blog\EO_Comment resetPost()
     * @method \Bitrix\Blog\EO_Comment unsetPost()
     * @method bool hasPost()
     * @method bool isPostFilled()
     * @method bool isPostChanged()
     * @method \Bitrix\Blog\EO_Post fillPost()
     * @method \int getParentId()
     * @method \Bitrix\Blog\EO_Comment setParentId(\int|\Bitrix\Main\DB\SqlExpression $parentId)
     * @method bool hasParentId()
     * @method bool isParentIdFilled()
     * @method bool isParentIdChanged()
     * @method \int remindActualParentId()
     * @method \int requireParentId()
     * @method \Bitrix\Blog\EO_Comment resetParentId()
     * @method \Bitrix\Blog\EO_Comment unsetParentId()
     * @method \int fillParentId()
     * @method \int getAuthorId()
     * @method \Bitrix\Blog\EO_Comment setAuthorId(\int|\Bitrix\Main\DB\SqlExpression $authorId)
     * @method bool hasAuthorId()
     * @method bool isAuthorIdFilled()
     * @method bool isAuthorIdChanged()
     * @method \int remindActualAuthorId()
     * @method \int requireAuthorId()
     * @method \Bitrix\Blog\EO_Comment resetAuthorId()
     * @method \Bitrix\Blog\EO_Comment unsetAuthorId()
     * @method \int fillAuthorId()
     * @method \int getIconId()
     * @method \Bitrix\Blog\EO_Comment setIconId(\int|\Bitrix\Main\DB\SqlExpression $iconId)
     * @method bool hasIconId()
     * @method bool isIconIdFilled()
     * @method bool isIconIdChanged()
     * @method \int remindActualIconId()
     * @method \int requireIconId()
     * @method \Bitrix\Blog\EO_Comment resetIconId()
     * @method \Bitrix\Blog\EO_Comment unsetIconId()
     * @method \int fillIconId()
     * @method \string getAuthorName()
     * @method \Bitrix\Blog\EO_Comment setAuthorName(\string|\Bitrix\Main\DB\SqlExpression $authorName)
     * @method bool hasAuthorName()
     * @method bool isAuthorNameFilled()
     * @method bool isAuthorNameChanged()
     * @method \string remindActualAuthorName()
     * @method \string requireAuthorName()
     * @method \Bitrix\Blog\EO_Comment resetAuthorName()
     * @method \Bitrix\Blog\EO_Comment unsetAuthorName()
     * @method \string fillAuthorName()
     * @method \string getAuthorEmail()
     * @method \Bitrix\Blog\EO_Comment setAuthorEmail(\string|\Bitrix\Main\DB\SqlExpression $authorEmail)
     * @method bool hasAuthorEmail()
     * @method bool isAuthorEmailFilled()
     * @method bool isAuthorEmailChanged()
     * @method \string remindActualAuthorEmail()
     * @method \string requireAuthorEmail()
     * @method \Bitrix\Blog\EO_Comment resetAuthorEmail()
     * @method \Bitrix\Blog\EO_Comment unsetAuthorEmail()
     * @method \string fillAuthorEmail()
     * @method \string getAuthorIp()
     * @method \Bitrix\Blog\EO_Comment setAuthorIp(\string|\Bitrix\Main\DB\SqlExpression $authorIp)
     * @method bool hasAuthorIp()
     * @method bool isAuthorIpFilled()
     * @method bool isAuthorIpChanged()
     * @method \string remindActualAuthorIp()
     * @method \string requireAuthorIp()
     * @method \Bitrix\Blog\EO_Comment resetAuthorIp()
     * @method \Bitrix\Blog\EO_Comment unsetAuthorIp()
     * @method \string fillAuthorIp()
     * @method \string getAuthorIp1()
     * @method \Bitrix\Blog\EO_Comment setAuthorIp1(\string|\Bitrix\Main\DB\SqlExpression $authorIp1)
     * @method bool hasAuthorIp1()
     * @method bool isAuthorIp1Filled()
     * @method bool isAuthorIp1Changed()
     * @method \string remindActualAuthorIp1()
     * @method \string requireAuthorIp1()
     * @method \Bitrix\Blog\EO_Comment resetAuthorIp1()
     * @method \Bitrix\Blog\EO_Comment unsetAuthorIp1()
     * @method \string fillAuthorIp1()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Blog\EO_Comment setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Blog\EO_Comment resetDateCreate()
     * @method \Bitrix\Blog\EO_Comment unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \string getTitle()
     * @method \Bitrix\Blog\EO_Comment setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Blog\EO_Comment resetTitle()
     * @method \Bitrix\Blog\EO_Comment unsetTitle()
     * @method \string fillTitle()
     * @method \string getPostText()
     * @method \Bitrix\Blog\EO_Comment setPostText(\string|\Bitrix\Main\DB\SqlExpression $postText)
     * @method bool hasPostText()
     * @method bool isPostTextFilled()
     * @method bool isPostTextChanged()
     * @method \string remindActualPostText()
     * @method \string requirePostText()
     * @method \Bitrix\Blog\EO_Comment resetPostText()
     * @method \Bitrix\Blog\EO_Comment unsetPostText()
     * @method \string fillPostText()
     * @method \string getPublishStatus()
     * @method \Bitrix\Blog\EO_Comment setPublishStatus(\string|\Bitrix\Main\DB\SqlExpression $publishStatus)
     * @method bool hasPublishStatus()
     * @method bool isPublishStatusFilled()
     * @method bool isPublishStatusChanged()
     * @method \string remindActualPublishStatus()
     * @method \string requirePublishStatus()
     * @method \Bitrix\Blog\EO_Comment resetPublishStatus()
     * @method \Bitrix\Blog\EO_Comment unsetPublishStatus()
     * @method \string fillPublishStatus()
     * @method \string getHasProps()
     * @method \Bitrix\Blog\EO_Comment setHasProps(\string|\Bitrix\Main\DB\SqlExpression $hasProps)
     * @method bool hasHasProps()
     * @method bool isHasPropsFilled()
     * @method bool isHasPropsChanged()
     * @method \string remindActualHasProps()
     * @method \string requireHasProps()
     * @method \Bitrix\Blog\EO_Comment resetHasProps()
     * @method \Bitrix\Blog\EO_Comment unsetHasProps()
     * @method \string fillHasProps()
     * @method \string getShareDest()
     * @method \Bitrix\Blog\EO_Comment setShareDest(\string|\Bitrix\Main\DB\SqlExpression $shareDest)
     * @method bool hasShareDest()
     * @method bool isShareDestFilled()
     * @method bool isShareDestChanged()
     * @method \string remindActualShareDest()
     * @method \string requireShareDest()
     * @method \Bitrix\Blog\EO_Comment resetShareDest()
     * @method \Bitrix\Blog\EO_Comment unsetShareDest()
     * @method \string fillShareDest()
     * @method \string getPath()
     * @method \Bitrix\Blog\EO_Comment setPath(\string|\Bitrix\Main\DB\SqlExpression $path)
     * @method bool hasPath()
     * @method bool isPathFilled()
     * @method bool isPathChanged()
     * @method \string remindActualPath()
     * @method \string requirePath()
     * @method \Bitrix\Blog\EO_Comment resetPath()
     * @method \Bitrix\Blog\EO_Comment unsetPath()
     * @method \string fillPath()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Blog\EO_Comment set($fieldName, $value)
     * @method \Bitrix\Blog\EO_Comment reset($fieldName)
     * @method \Bitrix\Blog\EO_Comment unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Blog\EO_Comment wakeUp($data)
     */
    class EO_Comment
    {
        /* @var \Bitrix\Blog\CommentTable */
        public static $dataClass = '\\Bitrix\\Blog\\CommentTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Comment_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getBlogIdList()
     * @method \int[] fillBlogId()
     * @method \int[] getPostIdList()
     * @method \int[] fillPostId()
     * @method \Bitrix\Blog\EO_Post[] getPostList()
     * @method \Bitrix\Blog\EO_Comment_Collection getPostCollection()
     * @method \Bitrix\Blog\EO_Post_Collection fillPost()
     * @method \int[] getParentIdList()
     * @method \int[] fillParentId()
     * @method \int[] getAuthorIdList()
     * @method \int[] fillAuthorId()
     * @method \int[] getIconIdList()
     * @method \int[] fillIconId()
     * @method \string[] getAuthorNameList()
     * @method \string[] fillAuthorName()
     * @method \string[] getAuthorEmailList()
     * @method \string[] fillAuthorEmail()
     * @method \string[] getAuthorIpList()
     * @method \string[] fillAuthorIp()
     * @method \string[] getAuthorIp1List()
     * @method \string[] fillAuthorIp1()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getPostTextList()
     * @method \string[] fillPostText()
     * @method \string[] getPublishStatusList()
     * @method \string[] fillPublishStatus()
     * @method \string[] getHasPropsList()
     * @method \string[] fillHasProps()
     * @method \string[] getShareDestList()
     * @method \string[] fillShareDest()
     * @method \string[] getPathList()
     * @method \string[] fillPath()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Blog\EO_Comment $object)
     * @method bool has(\Bitrix\Blog\EO_Comment $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Blog\EO_Comment getByPrimary($primary)
     * @method \Bitrix\Blog\EO_Comment[] getAll()
     * @method bool remove(\Bitrix\Blog\EO_Comment $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Blog\EO_Comment_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Blog\EO_Comment current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Comment_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Blog\CommentTable */
        public static $dataClass = '\\Bitrix\\Blog\\CommentTable';
    }
    /**
     * @method static EO_Comment_Query query()
     * @method static EO_Comment_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Comment_Result getById($id)
     * @method static EO_Comment_Result getList(array $parameters = array())
     * @method static EO_Comment_Entity getEntity()
     * @method static \Bitrix\Blog\EO_Comment createObject($setDefaultValues = true)
     * @method static \Bitrix\Blog\EO_Comment_Collection createCollection()
     * @method static \Bitrix\Blog\EO_Comment wakeUpObject($row)
     * @method static \Bitrix\Blog\EO_Comment_Collection wakeUpCollection($rows)
     */
    class CommentTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Comment_Result exec()
     * @method \Bitrix\Blog\EO_Comment fetchObject()
     * @method \Bitrix\Blog\EO_Comment_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Comment_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Blog\EO_Comment fetchObject()
     * @method \Bitrix\Blog\EO_Comment_Collection fetchCollection()
     */
    class EO_Comment_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Blog\EO_Comment createObject($setDefaultValues = true)
     * @method \Bitrix\Blog\EO_Comment_Collection createCollection()
     * @method \Bitrix\Blog\EO_Comment wakeUpObject($row)
     * @method \Bitrix\Blog\EO_Comment_Collection wakeUpCollection($rows)
     */
    class EO_Comment_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Blog\Internals {
    /**
     * EO_BlogUser
     * @see \Bitrix\Blog\Internals\BlogUserTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Blog\Internals\EO_BlogUser setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Blog\Internals\EO_BlogUser setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Blog\Internals\EO_BlogUser resetUserId()
     * @method \Bitrix\Blog\Internals\EO_BlogUser unsetUserId()
     * @method \int fillUserId()
     * @method \string getAlias()
     * @method \Bitrix\Blog\Internals\EO_BlogUser setAlias(\string|\Bitrix\Main\DB\SqlExpression $alias)
     * @method bool hasAlias()
     * @method bool isAliasFilled()
     * @method bool isAliasChanged()
     * @method \string remindActualAlias()
     * @method \string requireAlias()
     * @method \Bitrix\Blog\Internals\EO_BlogUser resetAlias()
     * @method \Bitrix\Blog\Internals\EO_BlogUser unsetAlias()
     * @method \string fillAlias()
     * @method \string getDescription()
     * @method \Bitrix\Blog\Internals\EO_BlogUser setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Blog\Internals\EO_BlogUser resetDescription()
     * @method \Bitrix\Blog\Internals\EO_BlogUser unsetDescription()
     * @method \string fillDescription()
     * @method \int getAvatar()
     * @method \Bitrix\Blog\Internals\EO_BlogUser setAvatar(\int|\Bitrix\Main\DB\SqlExpression $avatar)
     * @method bool hasAvatar()
     * @method bool isAvatarFilled()
     * @method bool isAvatarChanged()
     * @method \int remindActualAvatar()
     * @method \int requireAvatar()
     * @method \Bitrix\Blog\Internals\EO_BlogUser resetAvatar()
     * @method \Bitrix\Blog\Internals\EO_BlogUser unsetAvatar()
     * @method \int fillAvatar()
     * @method \string getInterests()
     * @method \Bitrix\Blog\Internals\EO_BlogUser setInterests(\string|\Bitrix\Main\DB\SqlExpression $interests)
     * @method bool hasInterests()
     * @method bool isInterestsFilled()
     * @method bool isInterestsChanged()
     * @method \string remindActualInterests()
     * @method \string requireInterests()
     * @method \Bitrix\Blog\Internals\EO_BlogUser resetInterests()
     * @method \Bitrix\Blog\Internals\EO_BlogUser unsetInterests()
     * @method \string fillInterests()
     * @method \Bitrix\Main\Type\DateTime getLastVisit()
     * @method \Bitrix\Blog\Internals\EO_BlogUser setLastVisit(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastVisit)
     * @method bool hasLastVisit()
     * @method bool isLastVisitFilled()
     * @method bool isLastVisitChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastVisit()
     * @method \Bitrix\Main\Type\DateTime requireLastVisit()
     * @method \Bitrix\Blog\Internals\EO_BlogUser resetLastVisit()
     * @method \Bitrix\Blog\Internals\EO_BlogUser unsetLastVisit()
     * @method \Bitrix\Main\Type\DateTime fillLastVisit()
     * @method \Bitrix\Main\Type\DateTime getDateReg()
     * @method \Bitrix\Blog\Internals\EO_BlogUser setDateReg(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateReg)
     * @method bool hasDateReg()
     * @method bool isDateRegFilled()
     * @method bool isDateRegChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateReg()
     * @method \Bitrix\Main\Type\DateTime requireDateReg()
     * @method \Bitrix\Blog\Internals\EO_BlogUser resetDateReg()
     * @method \Bitrix\Blog\Internals\EO_BlogUser unsetDateReg()
     * @method \Bitrix\Main\Type\DateTime fillDateReg()
     * @method \boolean getAllowPost()
     * @method \Bitrix\Blog\Internals\EO_BlogUser setAllowPost(\boolean|\Bitrix\Main\DB\SqlExpression $allowPost)
     * @method bool hasAllowPost()
     * @method bool isAllowPostFilled()
     * @method bool isAllowPostChanged()
     * @method \boolean remindActualAllowPost()
     * @method \boolean requireAllowPost()
     * @method \Bitrix\Blog\Internals\EO_BlogUser resetAllowPost()
     * @method \Bitrix\Blog\Internals\EO_BlogUser unsetAllowPost()
     * @method \boolean fillAllowPost()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Blog\Internals\EO_BlogUser setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Blog\Internals\EO_BlogUser resetUser()
     * @method \Bitrix\Blog\Internals\EO_BlogUser unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Blog\Internals\EO_BlogUser set($fieldName, $value)
     * @method \Bitrix\Blog\Internals\EO_BlogUser reset($fieldName)
     * @method \Bitrix\Blog\Internals\EO_BlogUser unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Blog\Internals\EO_BlogUser wakeUp($data)
     */
    class EO_BlogUser
    {
        /* @var \Bitrix\Blog\Internals\BlogUserTable */
        public static $dataClass = '\\Bitrix\\Blog\\Internals\\BlogUserTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_BlogUser_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \string[] getAliasList()
     * @method \string[] fillAlias()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \int[] getAvatarList()
     * @method \int[] fillAvatar()
     * @method \string[] getInterestsList()
     * @method \string[] fillInterests()
     * @method \Bitrix\Main\Type\DateTime[] getLastVisitList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastVisit()
     * @method \Bitrix\Main\Type\DateTime[] getDateRegList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateReg()
     * @method \boolean[] getAllowPostList()
     * @method \boolean[] fillAllowPost()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Blog\Internals\EO_BlogUser_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Blog\Internals\EO_BlogUser $object)
     * @method bool has(\Bitrix\Blog\Internals\EO_BlogUser $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Blog\Internals\EO_BlogUser getByPrimary($primary)
     * @method \Bitrix\Blog\Internals\EO_BlogUser[] getAll()
     * @method bool remove(\Bitrix\Blog\Internals\EO_BlogUser $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Blog\Internals\EO_BlogUser_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Blog\Internals\EO_BlogUser current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_BlogUser_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Blog\Internals\BlogUserTable */
        public static $dataClass = '\\Bitrix\\Blog\\Internals\\BlogUserTable';
    }
    /**
     * @method static EO_BlogUser_Query query()
     * @method static EO_BlogUser_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_BlogUser_Result getById($id)
     * @method static EO_BlogUser_Result getList(array $parameters = array())
     * @method static EO_BlogUser_Entity getEntity()
     * @method static \Bitrix\Blog\Internals\EO_BlogUser createObject($setDefaultValues = true)
     * @method static \Bitrix\Blog\Internals\EO_BlogUser_Collection createCollection()
     * @method static \Bitrix\Blog\Internals\EO_BlogUser wakeUpObject($row)
     * @method static \Bitrix\Blog\Internals\EO_BlogUser_Collection wakeUpCollection($rows)
     */
    class BlogUserTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_BlogUser_Result exec()
     * @method \Bitrix\Blog\Internals\EO_BlogUser fetchObject()
     * @method \Bitrix\Blog\Internals\EO_BlogUser_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_BlogUser_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Blog\Internals\EO_BlogUser fetchObject()
     * @method \Bitrix\Blog\Internals\EO_BlogUser_Collection fetchCollection()
     */
    class EO_BlogUser_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Blog\Internals\EO_BlogUser createObject($setDefaultValues = true)
     * @method \Bitrix\Blog\Internals\EO_BlogUser_Collection createCollection()
     * @method \Bitrix\Blog\Internals\EO_BlogUser wakeUpObject($row)
     * @method \Bitrix\Blog\Internals\EO_BlogUser_Collection wakeUpCollection($rows)
     */
    class EO_BlogUser_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Blog {
    /**
     * EO_Post
     * @see \Bitrix\Blog\PostTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Blog\EO_Post setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getBlogId()
     * @method \Bitrix\Blog\EO_Post setBlogId(\int|\Bitrix\Main\DB\SqlExpression $blogId)
     * @method bool hasBlogId()
     * @method bool isBlogIdFilled()
     * @method bool isBlogIdChanged()
     * @method \int remindActualBlogId()
     * @method \int requireBlogId()
     * @method \Bitrix\Blog\EO_Post resetBlogId()
     * @method \Bitrix\Blog\EO_Post unsetBlogId()
     * @method \int fillBlogId()
     * @method \int getAuthorId()
     * @method \Bitrix\Blog\EO_Post setAuthorId(\int|\Bitrix\Main\DB\SqlExpression $authorId)
     * @method bool hasAuthorId()
     * @method bool isAuthorIdFilled()
     * @method bool isAuthorIdChanged()
     * @method \int remindActualAuthorId()
     * @method \int requireAuthorId()
     * @method \Bitrix\Blog\EO_Post resetAuthorId()
     * @method \Bitrix\Blog\EO_Post unsetAuthorId()
     * @method \int fillAuthorId()
     * @method \string getCode()
     * @method \Bitrix\Blog\EO_Post setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Blog\EO_Post resetCode()
     * @method \Bitrix\Blog\EO_Post unsetCode()
     * @method \string fillCode()
     * @method \string getMicro()
     * @method \Bitrix\Blog\EO_Post setMicro(\string|\Bitrix\Main\DB\SqlExpression $micro)
     * @method bool hasMicro()
     * @method bool isMicroFilled()
     * @method bool isMicroChanged()
     * @method \string remindActualMicro()
     * @method \string requireMicro()
     * @method \Bitrix\Blog\EO_Post resetMicro()
     * @method \Bitrix\Blog\EO_Post unsetMicro()
     * @method \string fillMicro()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Blog\EO_Post setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Blog\EO_Post resetDateCreate()
     * @method \Bitrix\Blog\EO_Post unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDatePublish()
     * @method \Bitrix\Blog\EO_Post setDatePublish(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $datePublish)
     * @method bool hasDatePublish()
     * @method bool isDatePublishFilled()
     * @method bool isDatePublishChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDatePublish()
     * @method \Bitrix\Main\Type\DateTime requireDatePublish()
     * @method \Bitrix\Blog\EO_Post resetDatePublish()
     * @method \Bitrix\Blog\EO_Post unsetDatePublish()
     * @method \Bitrix\Main\Type\DateTime fillDatePublish()
     * @method \string getPublishStatus()
     * @method \Bitrix\Blog\EO_Post setPublishStatus(\string|\Bitrix\Main\DB\SqlExpression $publishStatus)
     * @method bool hasPublishStatus()
     * @method bool isPublishStatusFilled()
     * @method bool isPublishStatusChanged()
     * @method \string remindActualPublishStatus()
     * @method \string requirePublishStatus()
     * @method \Bitrix\Blog\EO_Post resetPublishStatus()
     * @method \Bitrix\Blog\EO_Post unsetPublishStatus()
     * @method \string fillPublishStatus()
     * @method \string getEnableComments()
     * @method \Bitrix\Blog\EO_Post setEnableComments(\string|\Bitrix\Main\DB\SqlExpression $enableComments)
     * @method bool hasEnableComments()
     * @method bool isEnableCommentsFilled()
     * @method bool isEnableCommentsChanged()
     * @method \string remindActualEnableComments()
     * @method \string requireEnableComments()
     * @method \Bitrix\Blog\EO_Post resetEnableComments()
     * @method \Bitrix\Blog\EO_Post unsetEnableComments()
     * @method \string fillEnableComments()
     * @method \int getNumComments()
     * @method \Bitrix\Blog\EO_Post setNumComments(\int|\Bitrix\Main\DB\SqlExpression $numComments)
     * @method bool hasNumComments()
     * @method bool isNumCommentsFilled()
     * @method bool isNumCommentsChanged()
     * @method \int remindActualNumComments()
     * @method \int requireNumComments()
     * @method \Bitrix\Blog\EO_Post resetNumComments()
     * @method \Bitrix\Blog\EO_Post unsetNumComments()
     * @method \int fillNumComments()
     * @method \int getNumCommentsAll()
     * @method \Bitrix\Blog\EO_Post setNumCommentsAll(\int|\Bitrix\Main\DB\SqlExpression $numCommentsAll)
     * @method bool hasNumCommentsAll()
     * @method bool isNumCommentsAllFilled()
     * @method bool isNumCommentsAllChanged()
     * @method \int remindActualNumCommentsAll()
     * @method \int requireNumCommentsAll()
     * @method \Bitrix\Blog\EO_Post resetNumCommentsAll()
     * @method \Bitrix\Blog\EO_Post unsetNumCommentsAll()
     * @method \int fillNumCommentsAll()
     * @method \int getViews()
     * @method \Bitrix\Blog\EO_Post setViews(\int|\Bitrix\Main\DB\SqlExpression $views)
     * @method bool hasViews()
     * @method bool isViewsFilled()
     * @method bool isViewsChanged()
     * @method \int remindActualViews()
     * @method \int requireViews()
     * @method \Bitrix\Blog\EO_Post resetViews()
     * @method \Bitrix\Blog\EO_Post unsetViews()
     * @method \int fillViews()
     * @method \string getHasSocnetAll()
     * @method \Bitrix\Blog\EO_Post setHasSocnetAll(\string|\Bitrix\Main\DB\SqlExpression $hasSocnetAll)
     * @method bool hasHasSocnetAll()
     * @method bool isHasSocnetAllFilled()
     * @method bool isHasSocnetAllChanged()
     * @method \string remindActualHasSocnetAll()
     * @method \string requireHasSocnetAll()
     * @method \Bitrix\Blog\EO_Post resetHasSocnetAll()
     * @method \Bitrix\Blog\EO_Post unsetHasSocnetAll()
     * @method \string fillHasSocnetAll()
     * @method \string getHasTags()
     * @method \Bitrix\Blog\EO_Post setHasTags(\string|\Bitrix\Main\DB\SqlExpression $hasTags)
     * @method bool hasHasTags()
     * @method bool isHasTagsFilled()
     * @method bool isHasTagsChanged()
     * @method \string remindActualHasTags()
     * @method \string requireHasTags()
     * @method \Bitrix\Blog\EO_Post resetHasTags()
     * @method \Bitrix\Blog\EO_Post unsetHasTags()
     * @method \string fillHasTags()
     * @method \string getHasImages()
     * @method \Bitrix\Blog\EO_Post setHasImages(\string|\Bitrix\Main\DB\SqlExpression $hasImages)
     * @method bool hasHasImages()
     * @method bool isHasImagesFilled()
     * @method bool isHasImagesChanged()
     * @method \string remindActualHasImages()
     * @method \string requireHasImages()
     * @method \Bitrix\Blog\EO_Post resetHasImages()
     * @method \Bitrix\Blog\EO_Post unsetHasImages()
     * @method \string fillHasImages()
     * @method \string getHasProps()
     * @method \Bitrix\Blog\EO_Post setHasProps(\string|\Bitrix\Main\DB\SqlExpression $hasProps)
     * @method bool hasHasProps()
     * @method bool isHasPropsFilled()
     * @method bool isHasPropsChanged()
     * @method \string remindActualHasProps()
     * @method \string requireHasProps()
     * @method \Bitrix\Blog\EO_Post resetHasProps()
     * @method \Bitrix\Blog\EO_Post unsetHasProps()
     * @method \string fillHasProps()
     * @method \string getHasCommentImages()
     * @method \Bitrix\Blog\EO_Post setHasCommentImages(\string|\Bitrix\Main\DB\SqlExpression $hasCommentImages)
     * @method bool hasHasCommentImages()
     * @method bool isHasCommentImagesFilled()
     * @method bool isHasCommentImagesChanged()
     * @method \string remindActualHasCommentImages()
     * @method \string requireHasCommentImages()
     * @method \Bitrix\Blog\EO_Post resetHasCommentImages()
     * @method \Bitrix\Blog\EO_Post unsetHasCommentImages()
     * @method \string fillHasCommentImages()
     * @method \string getTitle()
     * @method \Bitrix\Blog\EO_Post setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Blog\EO_Post resetTitle()
     * @method \Bitrix\Blog\EO_Post unsetTitle()
     * @method \string fillTitle()
     * @method \string getDetailText()
     * @method \Bitrix\Blog\EO_Post setDetailText(\string|\Bitrix\Main\DB\SqlExpression $detailText)
     * @method bool hasDetailText()
     * @method bool isDetailTextFilled()
     * @method bool isDetailTextChanged()
     * @method \string remindActualDetailText()
     * @method \string requireDetailText()
     * @method \Bitrix\Blog\EO_Post resetDetailText()
     * @method \Bitrix\Blog\EO_Post unsetDetailText()
     * @method \string fillDetailText()
     * @method \string getCategoryId()
     * @method \Bitrix\Blog\EO_Post setCategoryId(\string|\Bitrix\Main\DB\SqlExpression $categoryId)
     * @method bool hasCategoryId()
     * @method bool isCategoryIdFilled()
     * @method bool isCategoryIdChanged()
     * @method \string remindActualCategoryId()
     * @method \string requireCategoryId()
     * @method \Bitrix\Blog\EO_Post resetCategoryId()
     * @method \Bitrix\Blog\EO_Post unsetCategoryId()
     * @method \string fillCategoryId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Blog\EO_Post set($fieldName, $value)
     * @method \Bitrix\Blog\EO_Post reset($fieldName)
     * @method \Bitrix\Blog\EO_Post unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Blog\EO_Post wakeUp($data)
     */
    class EO_Post
    {
        /* @var \Bitrix\Blog\PostTable */
        public static $dataClass = '\\Bitrix\\Blog\\PostTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Post_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getBlogIdList()
     * @method \int[] fillBlogId()
     * @method \int[] getAuthorIdList()
     * @method \int[] fillAuthorId()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \string[] getMicroList()
     * @method \string[] fillMicro()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDatePublishList()
     * @method \Bitrix\Main\Type\DateTime[] fillDatePublish()
     * @method \string[] getPublishStatusList()
     * @method \string[] fillPublishStatus()
     * @method \string[] getEnableCommentsList()
     * @method \string[] fillEnableComments()
     * @method \int[] getNumCommentsList()
     * @method \int[] fillNumComments()
     * @method \int[] getNumCommentsAllList()
     * @method \int[] fillNumCommentsAll()
     * @method \int[] getViewsList()
     * @method \int[] fillViews()
     * @method \string[] getHasSocnetAllList()
     * @method \string[] fillHasSocnetAll()
     * @method \string[] getHasTagsList()
     * @method \string[] fillHasTags()
     * @method \string[] getHasImagesList()
     * @method \string[] fillHasImages()
     * @method \string[] getHasPropsList()
     * @method \string[] fillHasProps()
     * @method \string[] getHasCommentImagesList()
     * @method \string[] fillHasCommentImages()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getDetailTextList()
     * @method \string[] fillDetailText()
     * @method \string[] getCategoryIdList()
     * @method \string[] fillCategoryId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Blog\EO_Post $object)
     * @method bool has(\Bitrix\Blog\EO_Post $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Blog\EO_Post getByPrimary($primary)
     * @method \Bitrix\Blog\EO_Post[] getAll()
     * @method bool remove(\Bitrix\Blog\EO_Post $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Blog\EO_Post_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Blog\EO_Post current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Post_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Blog\PostTable */
        public static $dataClass = '\\Bitrix\\Blog\\PostTable';
    }
    /**
     * @method static EO_Post_Query query()
     * @method static EO_Post_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Post_Result getById($id)
     * @method static EO_Post_Result getList(array $parameters = array())
     * @method static EO_Post_Entity getEntity()
     * @method static \Bitrix\Blog\EO_Post createObject($setDefaultValues = true)
     * @method static \Bitrix\Blog\EO_Post_Collection createCollection()
     * @method static \Bitrix\Blog\EO_Post wakeUpObject($row)
     * @method static \Bitrix\Blog\EO_Post_Collection wakeUpCollection($rows)
     */
    class PostTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Post_Result exec()
     * @method \Bitrix\Blog\EO_Post fetchObject()
     * @method \Bitrix\Blog\EO_Post_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Post_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Blog\EO_Post fetchObject()
     * @method \Bitrix\Blog\EO_Post_Collection fetchCollection()
     */
    class EO_Post_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Blog\EO_Post createObject($setDefaultValues = true)
     * @method \Bitrix\Blog\EO_Post_Collection createCollection()
     * @method \Bitrix\Blog\EO_Post wakeUpObject($row)
     * @method \Bitrix\Blog\EO_Post_Collection wakeUpCollection($rows)
     */
    class EO_Post_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_PostSocnetRights
     * @see \Bitrix\Blog\PostSocnetRightsTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Blog\EO_PostSocnetRights setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getPostId()
     * @method \Bitrix\Blog\EO_PostSocnetRights setPostId(\int|\Bitrix\Main\DB\SqlExpression $postId)
     * @method bool hasPostId()
     * @method bool isPostIdFilled()
     * @method bool isPostIdChanged()
     * @method \int remindActualPostId()
     * @method \int requirePostId()
     * @method \Bitrix\Blog\EO_PostSocnetRights resetPostId()
     * @method \Bitrix\Blog\EO_PostSocnetRights unsetPostId()
     * @method \int fillPostId()
     * @method \Bitrix\Blog\EO_Post getPost()
     * @method \Bitrix\Blog\EO_Post remindActualPost()
     * @method \Bitrix\Blog\EO_Post requirePost()
     * @method \Bitrix\Blog\EO_PostSocnetRights setPost(\Bitrix\Blog\EO_Post $object)
     * @method \Bitrix\Blog\EO_PostSocnetRights resetPost()
     * @method \Bitrix\Blog\EO_PostSocnetRights unsetPost()
     * @method bool hasPost()
     * @method bool isPostFilled()
     * @method bool isPostChanged()
     * @method \Bitrix\Blog\EO_Post fillPost()
     * @method \string getEntityType()
     * @method \Bitrix\Blog\EO_PostSocnetRights setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \string remindActualEntityType()
     * @method \string requireEntityType()
     * @method \Bitrix\Blog\EO_PostSocnetRights resetEntityType()
     * @method \Bitrix\Blog\EO_PostSocnetRights unsetEntityType()
     * @method \string fillEntityType()
     * @method \int getEntityId()
     * @method \Bitrix\Blog\EO_PostSocnetRights setEntityId(\int|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \int remindActualEntityId()
     * @method \int requireEntityId()
     * @method \Bitrix\Blog\EO_PostSocnetRights resetEntityId()
     * @method \Bitrix\Blog\EO_PostSocnetRights unsetEntityId()
     * @method \int fillEntityId()
     * @method \string getEntity()
     * @method \Bitrix\Blog\EO_PostSocnetRights setEntity(\string|\Bitrix\Main\DB\SqlExpression $entity)
     * @method bool hasEntity()
     * @method bool isEntityFilled()
     * @method bool isEntityChanged()
     * @method \string remindActualEntity()
     * @method \string requireEntity()
     * @method \Bitrix\Blog\EO_PostSocnetRights resetEntity()
     * @method \Bitrix\Blog\EO_PostSocnetRights unsetEntity()
     * @method \string fillEntity()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Blog\EO_PostSocnetRights set($fieldName, $value)
     * @method \Bitrix\Blog\EO_PostSocnetRights reset($fieldName)
     * @method \Bitrix\Blog\EO_PostSocnetRights unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Blog\EO_PostSocnetRights wakeUp($data)
     */
    class EO_PostSocnetRights
    {
        /* @var \Bitrix\Blog\PostSocnetRightsTable */
        public static $dataClass = '\\Bitrix\\Blog\\PostSocnetRightsTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_PostSocnetRights_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getPostIdList()
     * @method \int[] fillPostId()
     * @method \Bitrix\Blog\EO_Post[] getPostList()
     * @method \Bitrix\Blog\EO_PostSocnetRights_Collection getPostCollection()
     * @method \Bitrix\Blog\EO_Post_Collection fillPost()
     * @method \string[] getEntityTypeList()
     * @method \string[] fillEntityType()
     * @method \int[] getEntityIdList()
     * @method \int[] fillEntityId()
     * @method \string[] getEntityList()
     * @method \string[] fillEntity()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Blog\EO_PostSocnetRights $object)
     * @method bool has(\Bitrix\Blog\EO_PostSocnetRights $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Blog\EO_PostSocnetRights getByPrimary($primary)
     * @method \Bitrix\Blog\EO_PostSocnetRights[] getAll()
     * @method bool remove(\Bitrix\Blog\EO_PostSocnetRights $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Blog\EO_PostSocnetRights_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Blog\EO_PostSocnetRights current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_PostSocnetRights_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Blog\PostSocnetRightsTable */
        public static $dataClass = '\\Bitrix\\Blog\\PostSocnetRightsTable';
    }
    /**
     * @method static EO_PostSocnetRights_Query query()
     * @method static EO_PostSocnetRights_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_PostSocnetRights_Result getById($id)
     * @method static EO_PostSocnetRights_Result getList(array $parameters = array())
     * @method static EO_PostSocnetRights_Entity getEntity()
     * @method static \Bitrix\Blog\EO_PostSocnetRights createObject($setDefaultValues = true)
     * @method static \Bitrix\Blog\EO_PostSocnetRights_Collection createCollection()
     * @method static \Bitrix\Blog\EO_PostSocnetRights wakeUpObject($row)
     * @method static \Bitrix\Blog\EO_PostSocnetRights_Collection wakeUpCollection($rows)
     */
    class PostSocnetRightsTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_PostSocnetRights_Result exec()
     * @method \Bitrix\Blog\EO_PostSocnetRights fetchObject()
     * @method \Bitrix\Blog\EO_PostSocnetRights_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_PostSocnetRights_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Blog\EO_PostSocnetRights fetchObject()
     * @method \Bitrix\Blog\EO_PostSocnetRights_Collection fetchCollection()
     */
    class EO_PostSocnetRights_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Blog\EO_PostSocnetRights createObject($setDefaultValues = true)
     * @method \Bitrix\Blog\EO_PostSocnetRights_Collection createCollection()
     * @method \Bitrix\Blog\EO_PostSocnetRights wakeUpObject($row)
     * @method \Bitrix\Blog\EO_PostSocnetRights_Collection wakeUpCollection($rows)
     */
    class EO_PostSocnetRights_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace {
    class CBlogSitePath extends \CAllBlogSitePath
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        //*************** SELECT *********************/
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CBlogUserGroup extends \CAllBlogUserGroup
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        //*************** SELECT *********************/
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CRatingsComponentsBlog extends \CAllRatingsComponentsBlog
    {
        function CalcPost($arConfigs)
        {
        }
        function CalcComment($arConfigs)
        {
        }
        function CalcActivity($arConfigs)
        {
        }
    }
    class CBlogCandidate extends \CAllBlogCandidate
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        //*************** SELECT *********************/
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CBlogCategory extends \CAllBlogCategory
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        //*************** SELECT *********************/
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CBlogUserGroupPerms extends \CAllBlogUserGroupPerms
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        //*************** SELECT *********************/
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CBlogGroup extends \CAllBlogGroup
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        //*************** SELECT *********************/
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CBlogUser extends \CAllBlogUser
    {
        /*************** ADD, UPDATE, DELETE *****************/
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        //*************** SELECT *********************/
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function GetUserFriendsList($ID, $userID = \False, $bAuth = \False, $limit = 20, $arGroup = array())
        {
        }
    }
    class CBlog extends \CAllBlog
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        //*************** SELECT *********************/
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function AddSocnetRead($ID)
        {
        }
    }
    class CBlogImage extends \CAllBlogImage
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        //*************** SELECT *********************/
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CBlogComment extends \CAllBlogComment
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function Add($arFields, $bSearchIndex = \true)
        {
        }
        function Update($ID, $arFields, $bSearchIndex = \true)
        {
        }
        //*************** SELECT *********************/
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CBlogPost extends \CAllBlogPost
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function Add($arFields)
        {
        }
        public static function Update($ID, $arFields, $bSearchIndex = \true)
        {
        }
        //*************** SELECT *********************/
        public static function GetByID($ID)
        {
        }
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function GetListCalendar($blogID, $year = \false, $month = \false, $day = \false)
        {
        }
    }
    class CBlogPostCategory extends \CAllBlogPostCategory
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        //*************** SELECT *********************/
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CBlogTrackback extends \CAllBlogTrackback
    {
        /*************** ADD, UPDATE, DELETE *****************/
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        //*************** SELECT *********************/
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
}
namespace Bitrix\Blog {
    class BlogUser
    {
        const CACHE_ID = 'BLOG_USERS';
        private $blogId = NULL;
        //	this values was be hardcoded in components. If we want customization - need add settings and remake
        private $avatarSizes = array('COMMENT' => array('WIDTH' => 30, 'HEIGHT' => 30), 'POST' => array('WIDTH' => 100, 'HEIGHT' => 100));
        private $cacheTime = 0;
        public function addAvatarSize($width, $height, $key = "")
        {
        }
        /**
         * Blog users can be saved in cache or get from DB. To cached - set cacheTime
         *
         * BlogUser constructor.
         * @param int $cacheTime - integer - value of cache TTL
         */
        public function __construct($cacheTime = 0)
        {
        }
        /**
         * Blog ID using to separate cache for different blogs
         * @param $id
         */
        public function setBlogId($id)
        {
        }
        public function setCacheTime($cacheTime)
        {
        }
        /**
         * Get users from cache (if set cache time) or from DB.
         *
         * @param array $ids - array of users ids
         * @return array|bool
         */
        public function getUsers($ids = array())
        {
        }
        /**
         * Get blog users data from cache. If them not exist on cache - get new data from DB and write on cache.
         * False if error.
         *
         * @return array|bool
         */
        private function getUsersFromCache($ids)
        {
        }
        /**
         * Delete all data from blog users cache
         *
         * @return mixed
         */
        public static function cleanCache($blogId = NULL)
        {
        }
        private static function createCacheDir($blogId = NULL)
        {
        }
        /**
         * Get only unique IDs, sorting them and glue in string. It is will unique string for this chunk of users
         *
         * @param $ids
         * @return string
         */
        private static function createCacheId($ids)
        {
        }
        /**
         * Catch data from CUser, CBlogUser and formatted them to array to save in cache
         */
        private function getUsersFromDB($ids = array())
        {
        }
        private function addNotExistingUsers($ids = array())
        {
        }
        /**
         * Return users ids of post author and comments authors (for this post)
         *
         * @param $postId
         */
        public static function getCommentAuthorsIdsByPostId($postId)
        {
        }
        /**
         * Return users ids of blog posts
         * @param $blogId
         */
        public static function getPostAuthorsIdsByBlogId($blogId)
        {
        }
        /**
         * Return IDs of post authors by custom selection
         *
         * @param $arFilter
         * @return array
         * @throws ArgumentNullException
         */
        public static function getPostAuthorsIdsByDbFilter($arFilter)
        {
        }
        /**
         * Creat correctly blog user name from name, alias and login
         *
         * @param $alias
         * @param $name
         * @param $lastName
         * @param $login
         * @param string $secondName
         * @return string
         *
         */
        public static function GetUserName($alias, $name, $lastName, $login, $secondName = "")
        {
        }
        public static function GetUserNameEx($user, $blogUser, $params)
        {
        }
        /**
         * Check, is user given consent for current agreement ever in the past.
         * Consent checked based on component URL, it means, that if URL will be changed, result will be false again.
         *
         * @param $userId - ID of main user (not blog user!)
         */
        public static function isUserGivenConsent($userId, $agreementId)
        {
        }
        /**
         * Handles onUserDelete main module event
         *
         * @return bool
         */
        public static function onUserDelete($userId = NULL)
        {
        }
    }
}
namespace Bitrix\Blog\Update {
    final class LivefeedIndexComment extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "blog";
        public function execute(array &$result)
        {
        }
    }
    final class LivefeedIndexPost extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "blog";
        public function execute(array &$result)
        {
        }
    }
}
namespace Bitrix\Blog\Integration\Disk {
    class Transformation
    {
        public static function getStatus($params = array())
        {
        }
    }
}
namespace Bitrix\Blog\Integration\Socialnetwork {
    class LogComment
    {
        const EVENT_ID_COMMENT = 'blog_comment';
        public static function getEventIdList()
        {
        }
        /**
         * Return content for LogIndex.
         *
         * @param Event $event Event from LogIndex::setIndex().
         * @return EventResult
         */
        public static function onIndexGetContent(\Bitrix\Main\Event $event)
        {
        }
    }
    class CounterPost
    {
        public static function increment($params = array())
        {
        }
    }
    /**
     * Class for content view event handlers
     *
     * Class ContentViewHandler
     * @package Bitrix\Blog\Integration\Socialnetwork
     */
    final class ContentViewHandler
    {
        const CONTENT_TYPE_ID_POST = 'BLOG_POST';
        const CONTENT_TYPE_ID_COMMENT = 'BLOG_COMMENT';
        static final function getContentTypeIdList()
        {
        }
        /**
         * Handles content view event, marking IM notifications as read
         *
         * @param \Bitrix\Main\Event $event Event.
         * @return int|false
         */
        public static function onContentViewed(\Bitrix\Main\Event $event)
        {
        }
    }
    class Log
    {
        const EVENT_ID_POST = 'blog_post';
        const EVENT_ID_POST_IMPORTANT = 'blog_post_important';
        const EVENT_ID_POST_VOTE = 'blog_post_vote';
        const EVENT_ID_POST_GRAT = 'blog_post_grat';
        /**
         * Returns set EVENT_ID processed by handler to generate content for full index.
         *
         * @param void
         * @return array
         */
        public static function getEventIdList()
        {
        }
        /**
         * Returns content for LogIndex.
         *
         * @param Event $event Event from LogIndex::setIndex().
         * @return EventResult
         */
        public static function onIndexGetContent(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Blog\Internals {
    final class ConversionHandlers
    {
        /**
         * Returns conversion counter types
         *
         * @return array
         */
        public static function onGetCounterTypes()
        {
        }
        /**
         * Returns conversion rate types
         *
         * @return array
         */
        public static function onGetRateTypes()
        {
        }
        /**
         * Increments conversion post day counter
         *
         * @param int $id Post ID.
         * @param array $fields Post fields.
         * @return void
         */
        public static function onPostAdd($id, $fields)
        {
        }
    }
    /**
     * Class for incoming mail event handlers
     *
     * Class MailHandler
     * @package Bitrix\Blog\Internals
     */
    final class MailHandler
    {
        /**
         * Adds new comment from mail
         *
         * @param \Bitrix\Main\Event $event Event.
         * @return int|false
         */
        public static function handleReplyReceivedBlogPost(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Adds new post from mail
         *
         * @param \Bitrix\Main\Event $event Event.
         * @return int|false
         */
        public static function handleForwardReceivedBlogPost(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Blog\Item {
    class Post
    {
        private $perm;
        private $permByOpenGroup;
        private $fields;
        public function __construct()
        {
        }
        public static function getById($postId = 0, $params = array())
        {
        }
        public function setFields($fields = array())
        {
        }
        public function getFields()
        {
        }
        public function setId($id = 0)
        {
        }
        public function getId()
        {
        }
        public function getSonetPerms($params = array())
        {
        }
        /**
         * Detect tags in data array.
         * @param array $fields Data array.
         * @return array
         */
        public function detectTags()
        {
        }
        public function getTags()
        {
        }
        /**
         * Returns log entry Id of a blog post
         * @return int|boolean
         */
        public function getLogId(array $params = [])
        {
        }
        /**
         * Deactivates log entry of a blog post
         * @param int $postId
         * @return boolean
         */
        public function deactivateLogEntry()
        {
        }
        /**
         * Activates log entry of a blog post
         * @param int $postId
         * @return boolean
         */
        public function activateLogEntry()
        {
        }
    }
    class Permissions
    {
        const DENY = BLOG_PERMS_DENY;
        const READ = BLOG_PERMS_READ;
        const PREMODERATE = BLOG_PERMS_PREMODERATE;
        const WRITE = BLOG_PERMS_WRITE;
        const MODERATE = BLOG_PERMS_MODERATE;
        const FULL = BLOG_PERMS_FULL;
    }
    class PostSocnetRights
    {
        private static $cache = array();
        public static function set($groupId, $value)
        {
        }
        public static function get($groupId)
        {
        }
    }
    class Blog
    {
        public static function getByUser(array $params)
        {
        }
    }
    class Comment
    {
        private $fields;
        public function __construct()
        {
        }
        public static function getById($commentId = 0)
        {
        }
        public function setFields($fields = array())
        {
        }
        public function getFields()
        {
        }
        public static function checkDuplicate(array $params)
        {
        }
        public static function actionsAfter(array $params)
        {
        }
        public static function processCommentShare($params = array())
        {
        }
    }
}
namespace Bitrix\Blog {
    /**
     * Class Util
     * @package Bitrix\Blog
     */
    class Util
    {
        /**
         * Returns blog/image_max_width option value
         * @return integer
         */
        public static function getImageMaxWidth()
        {
        }
        /**
         * Returns blog/image_max_height option value
         * @return integer
         */
        public static function getImageMaxHeight()
        {
        }
        public static function sendBlogPing($params = array())
        {
        }
    }
}
namespace Bitrix\Blog\Copy {
    class BlogPostManager
    {
        private $executiveUserId;
        private $blogPostIdsToCopy = [];
        private $features = [];
        private $changedRights = [];
        private $result;
        private $mapIdsCopiedPosts = [];
        public function __construct($executiveUserId, array $blogPostIdsToCopy)
        {
        }
        /**
         * Writes features to the copy queue.
         *
         * @param array $features
         */
        public function setFeatures(array $features)
        {
        }
        public function setChangedRights($changedRights)
        {
        }
        public function startCopy()
        {
        }
        public function getMapIdsCopiedPosts()
        {
        }
        private function getContainerCollection()
        {
        }
        private function getBlogPostCopier(\Bitrix\Blog\Copy\Implement\BlogPost $blogPostImplementer)
        {
        }
        private function getBlogPostImplementer()
        {
        }
        private function getBlogCommentCopier()
        {
        }
    }
}
namespace Bitrix\Blog\Copy\Integration {
    class Group implements \Bitrix\Socialnetwork\Copy\Integration\Feature
    {
        const MODULE_ID = "blog";
        const QUEUE_OPTION = "BlogGroupQueue";
        const CHECKER_OPTION = "BlogGroupChecker_";
        const STEPPER_OPTION = "BlogGroupStepper_";
        const STEPPER_CLASS = \Bitrix\Blog\Copy\Integration\GroupStepper::class;
        const ERROR_OPTION = "BlogGroupError_";
        private $executiveUserId;
        private $features = [];
        public function __construct($executiveUserId = 0, array $features = [])
        {
        }
        public function copy($groupId, $copiedGroupId)
        {
        }
        private function getBlogPostIdsByGroupId($groupId)
        {
        }
        // use it if need attach posts to another group
        private function attachGroupToPost($groupIdToCopy, $copiedGroupId)
        {
        }
        private function getBlogPosts($groupId)
        {
        }
        private function getSonetBlogPostRights($blogPostId)
        {
        }
        private function addToQueue(int $copiedGroupId)
        {
        }
    }
    class GroupStepper extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "blog";
        protected $queueName = "BlogGroupQueue";
        protected $checkerName = "BlogGroupChecker_";
        protected $baseName = "BlogGroupStepper_";
        protected $errorName = "BlogGroupError_";
        /**
         * @param array $option
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         */
        public function execute(array &$option)
        {
        }
        private function getBlogPostIdsByGroupId($groupId)
        {
        }
        private function getOffset(int $copiedGroupId) : int
        {
        }
        private function getErrorOffset(\Bitrix\Blog\Copy\BlogPostManager $copyManager) : int
        {
        }
        protected function getQueue() : array
        {
        }
        protected function setQueue(array $queue) : void
        {
        }
        protected function getQueueOption()
        {
        }
        protected function saveQueueOption(array $data)
        {
        }
        protected function deleteQueueOption()
        {
        }
        protected function deleteCurrentQueue(array $queue) : void
        {
        }
        protected function isQueueEmpty()
        {
        }
        protected function getOptionData($optionName)
        {
        }
        protected function deleteOption($optionName)
        {
        }
    }
}
namespace Bitrix\Blog\Copy\Implement {
    abstract class Base extends \Bitrix\Main\Copy\CopyImplementer
    {
        /**
         * Updates entity.
         *
         * @param int $entityId Entity id.
         * @param array $fields List entity fields.
         * @return bool
         */
        public abstract function update($entityId, array $fields);
        public function updateAttachedIdsInText(int $id, array $attachedIds, callable $callback) : void
        {
        }
    }
    class BlogPost extends \Bitrix\Blog\Copy\Implement\Base
    {
        const BLOG_POST_COPY_ERROR = "BLOG_POST_COPY_ERROR";
        /**
         * @var EntityCopier|null
         */
        private $blogCommentCopier = null;
        private $features = [];
        private $changedRights = [];
        protected $ufEntityObject = "BLOG_POST";
        protected $ufDiskFileField = "UF_BLOG_POST_FILE";
        /**
         * To copy comments needs comment copier.
         *
         * @param EntityCopier $blogCommentCopier Comment copier.
         */
        public function setBlogCommentCopier(\Bitrix\Main\Copy\EntityCopier $blogCommentCopier)
        {
        }
        /**
         * Writes features to the copy queue.
         *
         * @param array $features List features.
         */
        public function setFeatures(array $features)
        {
        }
        /**
         * To overwrite access rights to a post in a new entity, you need to specify the identifier of the new entity.
         *
         * @param array $changedRights Ration changed id.
         */
        public function setChangedRights($changedRights)
        {
        }
        /**
         * Adds entity.
         *
         * @param Container $container
         * @param array $fields
         * @return int|bool Added entity id or false.
         */
        public function add(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        public function update($blogPostId, array $fields)
        {
        }
        /**
         * Returns entity fields.
         *
         * @param Container $container
         * @param int $entityId
         * @return array $fields
         */
        public function getFields(\Bitrix\Main\Copy\Container $container, $entityId)
        {
        }
        /**
         * Preparing data before creating a new BlogPost.
         *
         * @param Container $container
         * @param array $fields List entity fields.
         * @return array $fields
         */
        public function prepareFieldsToCopy(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Starts copying children entities.
         *
         * @param Container $container
         * @param int $entityId BlogPost id.
         * @param int $copiedEntityId Copied BlogPost id.
         * @return Result
         */
        public function copyChildren(\Bitrix\Main\Copy\Container $container, $entityId, $copiedEntityId)
        {
        }
        /**
         * Copies vote.
         *
         * @param int $voteId Vote id.
         * @return int copied vote id.
         */
        public function copyVote(int $voteId) : int
        {
        }
        protected function getText($blogPostId)
        {
        }
        private function addCategory($blogPostId, array $fields)
        {
        }
        private function getSocnetRights($blogPostId)
        {
        }
        private function copyComments($blogPostId, $copiedBlogPostId)
        {
        }
        private function addNotify($blogPostId, $fields)
        {
        }
        private function getCopiedVoteId($voteId, array $result)
        {
        }
    }
    class BlogComment extends \Bitrix\Blog\Copy\Implement\Base
    {
        const BLOG_COMMENT_COPY_ERROR = "BLOG_COMMENT_COPY_ERROR";
        protected $ufEntityObject = "BLOG_COMMENT";
        protected $ufDiskFileField = "UF_BLOG_COMMENT_FILE";
        /**
         * Adds comment.
         *
         * @param Container $container
         * @param array $fields
         * @return int|bool return comment id or false.
         */
        public function add(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Returns comment fields.
         *
         * @param Container $container
         * @param int $entityId
         * @return array $fields
         */
        public function getFields(\Bitrix\Main\Copy\Container $container, $entityId)
        {
        }
        /**
         * Preparing data before creating a new comment.
         *
         * @param Container $container
         * @param array $fields List comment fields.
         * @return array $fields
         */
        public function prepareFieldsToCopy(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Starts copying children entities.
         *
         * @param Container $container
         * @param int $entityId Entity id.
         * @param int $copiedEntityId Copied entity id.
         * @return Result
         */
        public function copyChildren(\Bitrix\Main\Copy\Container $container, $entityId, $copiedEntityId)
        {
        }
        public function update($entityId, array $fields)
        {
        }
        public function getText($entityId)
        {
        }
    }
}
namespace Bitrix\Blog {
    class Broadcast
    {
        const ON_CNT = 5;
        const OFF_CNT = 5;
        const ON_PERIOD = 'P7D';
        // 7 days
        const OFF_PERIOD = 'P7D';
        // 7 days
        private static function getValue()
        {
        }
        private static function setValue($value = false)
        {
        }
        private static function getOffModeRequested()
        {
        }
        private static function getOnModeRequested()
        {
        }
        private static function setOffModeRequested()
        {
        }
        private static function setOnModeRequested()
        {
        }
        private static function getCount($period)
        {
        }
        private static function onModeNeeded()
        {
        }
        private static function offModeNeeded()
        {
        }
        public static function getData()
        {
        }
        public static function setRequestedMode($value)
        {
        }
        public static function checkMode()
        {
        }
        private static function sendRequest($value, $siteId = SITE_ID)
        {
        }
        public static function send($params)
        {
        }
        function onBeforeConfirmNotify($module, $tag, $value, $params)
        {
        }
    }
}
namespace {
    class clouds extends \CModule
    {
        var $MODULE_ID = "clouds";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function clouds()
        {
        }
        function GetModuleTasks()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function OnGetTableSchema()
        {
        }
    }
    class CCloudsDebug
    {
        protected static $instances = array();
        public static function getInstance($action = "counters")
        {
        }
        protected $head = '';
        protected $id = '';
        public function __construct($action)
        {
        }
        public function __destruct()
        {
        }
        public static function getBackTrace($skip = 0)
        {
        }
        public function startAction($filePath = '')
        {
        }
        public function endAction()
        {
        }
    }
    abstract class CCloudStorageService
    {
        protected $verb = '';
        protected $host = '';
        protected $url = '';
        protected $errno = 0;
        protected $errstr = '';
        protected $status = 0;
        protected $headers = array();
        protected $result = '';
        public $tokenHasExpired = \false;
        /**
         * @return CCloudStorageService
         * @deprecated
         */
        public abstract function GetObject();
        /**
         * @return string
         */
        public abstract function GetID();
        /**
         * @return string
         */
        public abstract function GetName();
        /**
         * @return array[string]string
         */
        public abstract function GetLocationList();
        /**
         * @param array[string]string $arBucket
         * @param bool $bServiceSet
         * @param string $cur_SERVICE_ID
         * @param bool $bVarsFromForm
         * @return string
         */
        public abstract function GetSettingsHTML($arBucket, $bServiceSet, $cur_SERVICE_ID, $bVarsFromForm);
        /**
         * @param array[string]string $arBucket
         * @param array[string]string & $arSettings
         * @return bool
         */
        public abstract function CheckSettings($arBucket, &$arSettings);
        /**
         * @param array[string]string $arBucket
         * @return bool
         */
        public abstract function CreateBucket($arBucket);
        /**
         * @param array[string]string $arBucket
         * @return bool
         */
        public abstract function DeleteBucket($arBucket);
        /**
         * @param array[string]string $arBucket
         * @return bool
         */
        public abstract function IsEmptyBucket($arBucket);
        /**
         * @param array[string]string $arBucket
         * @param mixed $arFile
         * @return string
         */
        public abstract function GetFileSRC($arBucket, $arFile);
        /**
         * @param array[string]string $arBucket
         * @param string $filePath
         * @return bool
         */
        public abstract function FileExists($arBucket, $filePath);
        /**
         * @param array[string]string $arBucket
         * @param mixed $arFile
         * @param string $filePath
         * @return bool
         */
        public abstract function FileCopy($arBucket, $arFile, $filePath);
        /**
         * @param array[string]string $arBucket
         * @param mixed $arFile
         * @param string $filePath
         * @return bool
         */
        public abstract function DownloadToFile($arBucket, $arFile, $filePath);
        /**
         * @param array[string]string $arBucket
         * @param string $filePath
         * @return bool
         */
        public abstract function DeleteFile($arBucket, $filePath);
        /**
         * @param array[string]string $arBucket
         * @param string $filePath
         * @param mixed $arFile
         * @return bool
         */
        public abstract function SaveFile($arBucket, $filePath, $arFile);
        /**
         * @param array[string]string $arBucket
         * @param string $filePath
         * @param bool $bRecursive
         * @return array[string][int]string
         */
        public abstract function ListFiles($arBucket, $filePath, $bRecursive = \false);
        /**
         * @param array[string]string $arBucket
         * @param string $sourcePath
         * @param string $targetPath
         * @param bool $overwrite
         * @return bool
         */
        public function FileRename($arBucket, $sourcePath, $targetPath, $overwrite = \true)
        {
        }
        /**
         * @param array[string]string $arBucket
         * @param mixed & $NS
         * @param string $filePath
         * @param float $fileSize
         * @param string $ContentType
         * @return bool
         */
        public abstract function InitiateMultipartUpload($arBucket, &$NS, $filePath, $fileSize, $ContentType);
        /**
         * @return float
         */
        public abstract function GetMinUploadPartSize();
        /**
         * @param array[string]string $arBucket
         * @param mixed & $NS
         * @param string $data
         * @return bool
         */
        public abstract function UploadPart($arBucket, &$NS, $data);
        /**
         * @param array[string]string $arBucket
         * @param mixed & $NS
         * @return bool
         */
        public abstract function CompleteMultipartUpload($arBucket, &$NS);
        /**
         * @param array[string]string $arBucket
         * @param mixed & $NS
         * @return bool
         */
        public function CancelMultipartUpload($arBucket, &$NS)
        {
        }
        /**
         * @param string $name
         * @param string $value
         * @return void
         */
        public function SetHeader($name, $value)
        {
        }
        /**
         * @param string $name
         * @return void
         */
        public function UnsetHeader($name)
        {
        }
        /**
         * @param bool $state
         * @return void
         */
        public function SetPublic($state = \true)
        {
        }
        /**
         * @return array[string]string
         */
        function getHeaders()
        {
        }
        /**
         * @return int
         */
        function GetLastRequestStatus()
        {
        }
        /**
         * @param string $headerName
         * @return string
         */
        function GetLastRequestHeader($headerName)
        {
        }
        /**
         * @return CCloudStorageService
         */
        public static function GetObjectInstance()
        {
        }
    }
    class CCloudStorageService_OpenStackStorage extends \CCloudStorageService
    {
        function GetObject()
        {
        }
        function GetID()
        {
        }
        function GetName()
        {
        }
        function GetLocationList()
        {
        }
        function GetSettingsHTML($arBucket, $bServiceSet, $cur_SERVICE_ID, $bVarsFromForm)
        {
        }
        function CheckSettings($arBucket, &$arSettings)
        {
        }
        function _GetToken($host, $user, $key)
        {
        }
        function SendRequest($settings, $verb, $bucket, $file_name = '', $params = '', $content = \false, $additional_headers = array())
        {
        }
        function CreateBucket($arBucket)
        {
        }
        function DeleteBucket($arBucket)
        {
        }
        function IsEmptyBucket($arBucket)
        {
        }
        function GetFileSRC($arBucket, $arFile)
        {
        }
        function FileExists($arBucket, $filePath)
        {
        }
        function FileCopy($arBucket, $arFile, $filePath)
        {
        }
        function DownloadToFile($arBucket, $arFile, $filePath)
        {
        }
        function DeleteFile($arBucket, $filePath)
        {
        }
        function SaveFile($arBucket, $filePath, $arFile)
        {
        }
        function ListFiles($arBucket, $filePath, $bRecursive = \false)
        {
        }
        function InitiateMultipartUpload($arBucket, &$NS, $filePath, $fileSize, $ContentType)
        {
        }
        function GetMinUploadPartSize()
        {
        }
        function UploadPartNo($arBucket, &$NS, $data, $part_no)
        {
        }
        function UploadPart($arBucket, &$NS, $data)
        {
        }
        function CompleteMultipartUpload($arBucket, &$NS)
        {
        }
    }
    class CCloudStorageService_Selectel extends \CCloudStorageService_OpenStackStorage
    {
        function GetObject()
        {
        }
        function GetID()
        {
        }
        function GetName()
        {
        }
        function GetSettingsHTML($arBucket, $bServiceSet, $cur_SERVICE_ID, $bVarsFromForm)
        {
        }
        function CheckSettings($arBucket, &$arSettings)
        {
        }
    }
    class CAllCloudStorageBucket
    {
        protected $_ID = 0;
        /**
         * @param double $file_size
         * @param int $file_count
         * @return CDBResult
         */
        public function SetFileCounter($file_size, $file_count)
        {
        }
        /**
         * @param double $file_size
         * @return CDBResult
         */
        function IncFileCounter($file_size = 0.0)
        {
        }
        /**
         * @param double $file_size
         * @return CDBResult
         */
        function DecFileCounter($file_size = 0.0)
        {
        }
        protected function GetActualBucketId()
        {
        }
    }
    /**
     * @property integer $ID
     * @property string $ACTIVE
     * @property integer $SORT
     * @property string $READ_ONLY
     * @property string $SERVICE_ID
     * @property string $BUCKET
     * @property string $LOCATION
     * @property string $CNAME
     * @property integer $FILE_COUNT
     * @property float $FILE_SIZE
     * @property integer $LAST_FILE_ID
     * @property string $PREFIX
     * @property string $SETTINGS
     * @property string $FILE_RULES
     */
    class CCloudStorageBucket extends \CAllCloudStorageBucket
    {
        protected $arBucket;
        protected $enabledFailover = \true;
        protected $queueFlag = \true;
        /** @var CCloudStorageService $service */
        protected $service;
        protected static $arBuckets;
        /**
         * @param int $ID
         * @param bool $enabledFailover
         */
        public function __construct($ID, $enabledFailover = \true)
        {
        }
        public function disableFailOver()
        {
        }
        /**
         * @return boolean
         */
        public function isFailoverEnabled()
        {
        }
        /**
         * @param boolean $queueFlag
         */
        public function setQueueFlag($queueFlag = \true)
        {
        }
        /**
         * @return boolean
         */
        public function getQueueFlag()
        {
        }
        /**
         * @return array[string]string
         */
        public function getBucketArray()
        {
        }
        /**
         * @return CCloudStorageService
         */
        public function getService()
        {
        }
        /**
         * @param string $str
         * @return string
         */
        private static function CompileModuleRule($str)
        {
        }
        /**
         * @param string $str
         * @return string
         */
        private static function CompileExtentionRule($str)
        {
        }
        /**
         * @param string $str
         * @return double
         */
        private static function ParseSize($str)
        {
        }
        /**
         * @param string $str
         * @return array[int][int]double
         */
        private static function CompileSizeRule($str)
        {
        }
        /**
         * @param array[int][string]string $arRules
         * @return array[int][string]string
         */
        private static function CompileRules($arRules)
        {
        }
        /**
         * @return void
         */
        private static function _init()
        {
        }
        /**
         * @param string $name
         * @return mixed
         */
        function __get($name)
        {
        }
        /**
         * @return bool
         */
        function Init()
        {
        }
        /**
         * @return bool
         */
        function RenewToken()
        {
        }
        /**
         * @param array[string]string $arSettings
         * @return bool
         */
        function CheckSettings(&$arSettings)
        {
        }
        /**
         * @return bool
         */
        function CreateBucket()
        {
        }
        /**
         * @param mixed $arFile
         * @return string
         */
        function GetFileSRC($arFile)
        {
        }
        /**
         * @param string $filePath
         * @return bool
         */
        function FileExists($filePath)
        {
        }
        /**
         * @param mixed $arFile
         * @param string $filePath
         * @return bool
         */
        function DownloadToFile($arFile, $filePath)
        {
        }
        /**
         * @param string $filePath
         * @param mixed $arFile
         * @return bool
         */
        function SaveFile($filePath, $arFile)
        {
        }
        /**
         * @param string $filePath
         * @return bool
         */
        function DeleteFile($filePath)
        {
        }
        /**
         * @param mixed $arFile
         * @param string $filePath
         * @return bool
         */
        function FileCopy($arFile, $filePath)
        {
        }
        /**
         * @param string $sourcePath
         * @param string $targetPath
         * @param bool $overwrite
         * @return bool
         */
        function FileRename($sourcePath, $targetPath, $overwrite = \true)
        {
        }
        /**
         * @param string $filePath
         * @param bool $bRecursive
         * @param int $pageSize
         * @param string $pageMarker
         * @return array[string][int]string
         */
        function ListFiles($filePath = "/", $bRecursive = \false, $pageSize = 0, $pageMarker = '')
        {
        }
        /**
         * @param string $filePath
         * @return array|false
         */
        function GetFileInfo($filePath)
        {
        }
        /**
         * @param string $filePath
         * @return double
         */
        function GetFileSize($filePath)
        {
        }
        /**
         * @return array[int][string]string
         */
        static function GetAllBuckets()
        {
        }
        /**
         * @param array[string]string $arFields
         * @param int $ID
         * @return bool
         */
        function CheckFields(&$arFields, $ID)
        {
        }
        /**
         * @param array[string]string $arOrder
         * @param array[string]string $arFilter
         * @param array[string]string $arSelect
         * @return CDBResult
         */
        static function GetList($arOrder = array(), $arFilter = array(), $arSelect = array())
        {
        }
        /**
         * @param array[string]string $arFields
         * @param boolean $createBucket
         * @return mixed
         */
        function Add($arFields, $createBucket = \true)
        {
        }
        /**
         * @return bool
         */
        function Delete()
        {
        }
        /**
         * @param array[string]string $arFields
         * @return mixed
         */
        function Update($arFields)
        {
        }
        /**
         * @param array[string][int]string $arPOST
         * @return array[int][string]string
         */
        static function ConvertPOST($arPOST)
        {
        }
        /**
         * @param string $name
         * @param string $value
         * @return void
         */
        function setHeader($name, $value)
        {
        }
    }
    class CCloudTempFile
    {
        private static $buckets = array();
        /**
         * @return string
         */
        protected static function GetAbsoluteRoot()
        {
        }
        /**
         * @param string $file_name
         * @return bool
         */
        public static function IsTempFile($file_name)
        {
        }
        protected static $shutdownRegistered = \false;
        protected static function RegisterShutdown()
        {
        }
        /**
         * @param CCloudStorageBucket $obBucket
         * @param string $file_name
         * @return string
         */
        public static function GetFileName($obBucket, $file_name = '')
        {
        }
        /**
         * @param CCloudStorageBucket $obBucket
         * @param integer $hours_to_keep_files
         * @param string $subdir
         * @return string
         */
        public static function GetDirectoryName($obBucket, $hours_to_keep_files = 0, $subdir = "")
        {
        }
        protected static $my_pid = '';
        /**
         * @param bool $lock
         * @return bool
         */
        protected static function cleanupFilesLock($lock = \true)
        {
        }
        /**
         * @param CCloudStorageBucket $obBucket
         * @param string $dir_name
         * @param array $files
         * @return string
         */
        protected static function cleanupFiles($obBucket, $dir_name, $files)
        {
        }
        //PHP shutdown cleanup
        public static function Cleanup()
        {
        }
    }
    class CCloudStorageService_GoogleStorage extends \CCloudStorageService
    {
        protected $new_end_point;
        function GetObject()
        {
        }
        function GetID()
        {
        }
        function GetName()
        {
        }
        function GetLocationList()
        {
        }
        function GetSettingsHTML($arBucket, $bServiceSet, $cur_SERVICE_ID, $bVarsFromForm)
        {
        }
        function CheckSettings($arBucket, &$arSettings)
        {
        }
        function CreateBucket($arBucket)
        {
        }
        function DeleteBucket($arBucket)
        {
        }
        function IsEmptyBucket($arBucket)
        {
        }
        function GetFileSRC($arBucket, $arFile)
        {
        }
        function FileExists($arBucket, $filePath)
        {
        }
        function FileCopy($arBucket, $arFile, $filePath)
        {
        }
        function DownloadToFile($arBucket, $arFile, $filePath)
        {
        }
        function DeleteFile($arBucket, $filePath)
        {
        }
        function SaveFile($arBucket, $filePath, $arFile)
        {
        }
        function ListFiles($arBucket, $filePath, $bRecursive = \false)
        {
        }
        protected function StartUpload($arBucket, $filePath, $ContentType)
        {
        }
        function InitiateMultipartUpload($arBucket, &$NS, $filePath, $fileSize, $ContentType)
        {
        }
        function GetMinUploadPartSize()
        {
        }
        private function UploadRange($filePathU, $arBucket, &$NS, $data, $pos)
        {
        }
        function UploadPartNo($arBucket, &$NS, $data, $part_no)
        {
        }
        function UploadPart($arBucket, &$NS, $data)
        {
        }
        function CompleteMultipartUpload($arBucket, &$NS)
        {
        }
        function SendRequest($access_key, $secret_key, $verb, $bucket, $file_name = '/', $params = '', $content = '', $additional_headers = array())
        {
        }
        function hmacsha1($data, $key)
        {
        }
    }
    class CCloudStorageService_S3 extends \CCloudStorageService
    {
        protected $set_headers = array();
        protected $new_end_point = '';
        protected $_public = \true;
        protected $location = '';
        /**
         * @return CCloudStorageService
         */
        function GetObject()
        {
        }
        /**
         * @return string
         */
        function GetID()
        {
        }
        /**
         * @return string
         */
        function GetName()
        {
        }
        /**
         * @return array[string]string
         */
        function GetLocationList()
        {
        }
        /**
         * @param array[string]string $arBucket
         * @param bool $bServiceSet
         * @param string $cur_SERVICE_ID
         * @param bool $bVarsFromForm
         * @return string
         */
        function GetSettingsHTML($arBucket, $bServiceSet, $cur_SERVICE_ID, $bVarsFromForm)
        {
        }
        /**
         * @param array[string]string $arBucket
         * @param array[string]string & $arSettings
         * @return bool
         */
        function CheckSettings($arBucket, &$arSettings)
        {
        }
        /**
         * @param string $data
         * @param string $key
         * @return string
         */
        function hmacsha1($data, $key)
        {
        }
        /**
         * @param array[string]string $arSettings
         * @param string $RequestMethod
         * @param string $bucket
         * @param string $RequestURI
         * @param string $ContentType
         * @param array[string]string $additional_headers
         * @param string $params
         * @param string|resource $content
         * @return array[string]string
         */
        function SignRequest($arSettings, $RequestMethod, $bucket, $RequestURI, $ContentType, $additional_headers, $params = "", $content = "")
        {
        }
        /**
         * @param string $location
         * @return void
         **/
        function SetLocation($location)
        {
        }
        /**
         * @param string $bucket
         * @return string
         **/
        protected function GetRequestHost($bucket, $arSettings)
        {
        }
        /**
         * @param array[string]string $arSettings
         * @param string $verb
         * @param string $bucket
         * @param string $file_name
         * @param string $params
         * @param string $content
         * @param array[string]string $additional_headers
         * @return mixed
         */
        function SendRequest($arSettings, $verb, $bucket, $file_name = '/', $params = '', $content = '', $additional_headers = array())
        {
        }
        function ListBuckets($arBucket)
        {
        }
        /**
         * @param array[string]string $arBucket
         * @return bool
         */
        function CreateBucket($arBucket)
        {
        }
        /**
         * @param array[string]string $arBucket
         * @return bool
         */
        function IsEmptyBucket($arBucket)
        {
        }
        /**
         * @param array[string]string $arBucket
         * @return bool
         */
        function DeleteBucket($arBucket)
        {
        }
        /**
         * @param array[string]string $arBucket
         * @param mixed $arFile
         * @return string
         */
        function GetFileSRC($arBucket, $arFile)
        {
        }
        /**
         * @param array[string]string $arBucket
         * @param string $filePath
         * @return bool
         */
        function FileExists($arBucket, $filePath)
        {
        }
        function FileCopy($arBucket, $arFile, $filePath)
        {
        }
        function DownloadToFile($arBucket, $arFile, $filePath)
        {
        }
        function DeleteFile($arBucket, $filePath)
        {
        }
        function SaveFile($arBucket, $filePath, $arFile)
        {
        }
        function ListFiles($arBucket, $filePath, $bRecursive = \false, $pageSize = 0, $pageMarker = '')
        {
        }
        function InitiateMultipartUpload($arBucket, &$NS, $filePath, $fileSize, $ContentType)
        {
        }
        function GetMinUploadPartSize()
        {
        }
        function UploadPartNo($arBucket, &$NS, $data, $part_no)
        {
        }
        /**
         * @param array[string]string $arBucket
         * @param mixed & $NS
         * @param string $data
         * @return bool
         */
        function UploadPart($arBucket, &$NS, $data)
        {
        }
        /**
         * @param array[string]string $arBucket
         * @param mixed & $NS
         * @return bool
         */
        function CompleteMultipartUpload($arBucket, &$NS)
        {
        }
        /**
         * @param array[string]string $arBucket
         * @param mixed & $NS
         * @return bool
         */
        public function CancelMultipartUpload($arBucket, &$NS)
        {
        }
        /**
         * @param bool $state
         * @return void
         */
        function SetPublic($state = \true)
        {
        }
        /**
         * @param string $name
         * @param string $value
         * @return void
         */
        function SetHeader($name, $value)
        {
        }
        /**
         * @param string $name
         * @return void
         */
        function UnsetHeader($name)
        {
        }
        /**
         * @param int $status
         * @param string $result
         * @return bool
         */
        protected function checkForTokenExpiration($status, $result)
        {
        }
    }
    class CCloudStorageService_Yandex extends \CCloudStorageService_S3
    {
        protected $set_headers = array();
        protected $new_end_point = '';
        protected $_public = \true;
        protected $location = '';
        /**
         * @return CCloudStorageService
         */
        function GetObject()
        {
        }
        /**
         * @return string
         */
        function GetID()
        {
        }
        /**
         * @return string
         */
        function GetName()
        {
        }
        /**
         * @return array[string]string
         */
        function GetLocationList()
        {
        }
        /**
         * @param array[string]string $arBucket
         * @param bool $bServiceSet
         * @param string $cur_SERVICE_ID
         * @param bool $bVarsFromForm
         * @return string
         */
        function GetSettingsHTML($arBucket, $bServiceSet, $cur_SERVICE_ID, $bVarsFromForm)
        {
        }
        /**
         * @param array[string]string $arBucket
         * @param array[string]string & $arSettings
         * @return bool
         */
        function CheckSettings($arBucket, &$arSettings)
        {
        }
        /**
         * @param string $bucket
         * @return string
         **/
        protected function GetRequestHost($bucket, $arSettings)
        {
        }
        /**
         * @param array[string]string $arSettings
         * @param string $verb
         * @param string $bucket
         * @param string $file_name
         * @param string $params
         * @param string $content
         * @param array[string]string $additional_headers
         * @return mixed
         */
        function SendRequest($arSettings, $verb, $bucket, $file_name = '/', $params = '', $content = '', $additional_headers = array())
        {
        }
        /**
         * @param array[string]string $arBucket
         * @param mixed $arFile
         * @return string
         */
        function GetFileSRC($arBucket, $arFile)
        {
        }
        /**
         * @param array[string]string $arBucket
         * @return bool
         */
        function DeleteBucket($arBucket)
        {
        }
    }
    class CCloudStorageService_RackSpaceCloudFiles extends \CCloudStorageService_OpenStackStorage
    {
        function GetObject()
        {
        }
        function GetID()
        {
        }
        function GetName()
        {
        }
        function _GetToken($host, $user, $key)
        {
        }
        function SendCDNRequest($settings, $verb, $bucket, $file_name = '', $params = '', $content = \false, $additional_headers = array())
        {
        }
        function CreateBucket($arBucket)
        {
        }
        function GetFileSRC($arBucket, $arFile)
        {
        }
    }
    class CCloudStorageService_ClodoRU extends \CCloudStorageService_OpenStackStorage
    {
        function GetObject()
        {
        }
        function GetID()
        {
        }
        function GetName()
        {
        }
        function GetSettingsHTML($arBucket, $bServiceSet, $cur_SERVICE_ID, $bVarsFromForm)
        {
        }
    }
    class CCloudStorageUpload
    {
        protected $_filePath = "";
        protected $_ID = "";
        protected $obBucket;
        protected $_max_retries = 3;
        protected $_cache = \null;
        /**
         * @param string $filePath
         * @return void
         */
        function __construct($filePath)
        {
        }
        /**
         * @return array[string]string
         */
        public function GetArray()
        {
        }
        /**
         * @return bool
         */
        public function isStarted()
        {
        }
        /**
         * @return void
         */
        public function Delete()
        {
        }
        /**
         * @return void
         */
        public function DeleteOld()
        {
        }
        /**
         * @param int $bucket_id
         * @param float $fileSize
         * @param string $ContentType
         * @return bool
         */
        function Start($bucket_id, $fileSize, $ContentType = 'binary/octet-stream', $tmpFileName = \false)
        {
        }
        /**
         * @param string $data
         * @return bool
         */
        function Next($data, $obBucket = \null)
        {
        }
        /**
         * @param string $data
         * @param int $part_no
         * @return bool
         */
        function Part($data, $part_no, $obBucket = \null)
        {
        }
        /**
         * @return bool
         */
        function Finish($obBucket = \null)
        {
        }
        /**
         * @return int
         */
        function GetPartCount()
        {
        }
        /**
         * @return float
         */
        function GetPos()
        {
        }
        /**
         * @return int
         */
        function getPartSize()
        {
        }
        /**
         * @return bool
         */
        function hasRetries()
        {
        }
        /**
         * @return string
         */
        function getTempFileName()
        {
        }
        /**
         * @param array $arUploadInfo
         * @param boolean $bSuccess
         * @return boolean
         */
        protected function UpdateProgress($arUploadInfo, $bSuccess)
        {
        }
        public static function CleanUp($ID = '')
        {
        }
    }
    class CCloudStorageService_HotBox extends \CCloudStorageService_S3
    {
        protected $set_headers = array();
        protected $new_end_point = '';
        protected $_public = \true;
        protected $location = '';
        /**
         * @return CCloudStorageService
         */
        function GetObject()
        {
        }
        /**
         * @return string
         */
        function GetID()
        {
        }
        /**
         * @return string
         */
        function GetName()
        {
        }
        /**
         * @return array[string]string
         */
        function GetLocationList()
        {
        }
        /**
         * @param array[string]string $arBucket
         * @param bool $bServiceSet
         * @param string $cur_SERVICE_ID
         * @param bool $bVarsFromForm
         * @return string
         */
        function GetSettingsHTML($arBucket, $bServiceSet, $cur_SERVICE_ID, $bVarsFromForm)
        {
        }
        /**
         * @param array[string]string $arBucket
         * @param array[string]string & $arSettings
         * @return bool
         */
        function CheckSettings($arBucket, &$arSettings)
        {
        }
        /**
         * @param string $bucket
         * @return string
         **/
        protected function GetRequestHost($bucket, $arSettings)
        {
        }
        /**
         * @param array[string]string $arBucket
         * @param mixed $arFile
         * @return string
         */
        function GetFileSRC($arBucket, $arFile)
        {
        }
        /**
         * @param array[string]string $arBucket
         * @return bool
         */
        function DeleteBucket($arBucket)
        {
        }
    }
    class CCloudStorageService_AmazonS3 extends \CCloudStorageService_S3
    {
        /**
         * @return CCloudStorageService
         */
        function GetObject()
        {
        }
        /**
         * @return string
         */
        function GetID()
        {
        }
        /**
         * @return string
         */
        function GetName()
        {
        }
        /**
         * @return array[string]string
         */
        function GetLocationList()
        {
        }
        /**
         * @return array[string]string
         */
        function GetAPList()
        {
        }
        /**
         * @param array[string]string $arBucket
         * @param bool $bServiceSet
         * @param string $cur_SERVICE_ID
         * @param bool $bVarsFromForm
         * @return string
         */
        function GetSettingsHTML($arBucket, $bServiceSet, $cur_SERVICE_ID, $bVarsFromForm)
        {
        }
        /**
         * @param array[string]string $arBucket
         * @param array[string]string & $arSettings
         * @return bool
         */
        function CheckSettings($arBucket, &$arSettings)
        {
        }
        /**
         * @param string $bucket
         * @return string
         **/
        protected function GetRequestHost($bucket, $arSettings)
        {
        }
        /**
         * @param array[string]string $arBucket
         * @param mixed $arFile
         * @return string
         */
        function GetFileSRC($arBucket, $arFile)
        {
        }
    }
    class CCloudStorage
    {
        const FILE_SKIPPED = 0;
        const FILE_MOVED = 1;
        const FILE_PARTLY_UPLOADED = 2;
        const FILE_UPLOAD_ERROR = 3;
        public static $part_size = 0;
        public static $part_count = 0;
        private static $_services = \null;
        public static $file_skip_reason = '';
        /**
         * @return void
         */
        static function _init()
        {
        }
        /**
         * @param string $ID
         * @return CCloudStorageService
         */
        public static function GetServiceByID($ID)
        {
        }
        /**
         * @return array[string]CCloudStorageService
         */
        public static function GetServiceList()
        {
        }
        /**
         * @param string $ID
         * @return array[string]string
         */
        public static function GetServiceLocationList($ID)
        {
        }
        /**
         * @param string $ID
         * @return string
         */
        public static function GetServiceDescription($ID)
        {
        }
        /**
         * @param array [string]string $arFile
         * @param string $strFileName
         * @return CCloudStorageBucket
         */
        public static function FindBucketForFile($arFile, $strFileName)
        {
        }
        /**
         * @param array [string]string $arFile
         * @param array [string]string $arResizeParams
         * @param array [string]mixed $callbackData
         * @param bool $bNeedResize
         * @param array [string]string $sourceImageFile
         * @param array [string]string $cacheImageFileTmp
         * @return bool
         */
        public static function OnBeforeResizeImage($arFile, $arResizeParams, &$callbackData, &$bNeedResize, &$sourceImageFile, &$cacheImageFileTmp)
        {
        }
        public static function OnAfterResizeImage($arFile, $arResizeParams, &$callbackData, &$cacheImageFile, &$cacheImageFileTmp, &$arImageSize)
        {
        }
        public static function ResizeImageFileGet($destinationFile)
        {
        }
        public static function ResizeImageFileAdd(&$arDestinationSize, $sourceFile, $destinationFile, $arResizeParams, $errorCode = 0)
        {
        }
        public static function ResizeImageFileDelay(&$arDestinationSize, $sourceFile, $destinationFile, $arResizeParams)
        {
        }
        /**
         * @param CCloudStorageBucket $obBucket
         * @param string $path
         * @return bool
         */
        public static function ResizeImageFileCheck($obBucket, $path)
        {
        }
        public static function OnMakeFileArray($arSourceFile, &$arDestination)
        {
        }
        public static function OnFileDelete($arFile)
        {
        }
        public static function DeleteDirFilesEx($path)
        {
        }
        public static function OnFileCopy(&$arFile, $newPath = "")
        {
        }
        public static function OnGetFileSRC($arFile)
        {
        }
        protected static function _delete_file($file)
        {
        }
        public static function MoveFile($arFile, $obTargetBucket)
        {
        }
        public static function OnFileSave(&$arFile, $strFileName, $strSavePath, $bForceMD5 = \false, $bSkipExt = \false, $dirAdd = '', $checkDuplicates = \true)
        {
        }
        public static function OnAfterFileSave($arFile)
        {
        }
        public static function CleanUp()
        {
        }
        public static function FindBucketByFile($file_name)
        {
        }
        public static function FindFileURIByURN($urn, $log_descr = "")
        {
        }
        public static function OnBuildGlobalMenu(&$aGlobalMenu, &$aModuleMenu)
        {
        }
        public static function OnAdminListDisplay(&$obList)
        {
        }
        public static function HasActiveBuckets()
        {
        }
        public static function OnBeforeProlog()
        {
        }
        public static function GetAuditTypes()
        {
        }
        public static function translit($file_name, $safe_chars = '')
        {
        }
        /**
         * @param array [string]string $arFile
         * @return void
         */
        public static function FixFileContentType(&$arFile)
        {
        }
    }
    class CCloudUtil
    {
        /**
         * @param string $str
         * @param string $charset
         * @return string
         */
        public static function URLEncode($str, $charset, $file_name = \false)
        {
        }
        /**
         * @param string $str
         * @return \Bitrix\Main\Type\DateTime
         */
        public static function gmtTimeToDateTime($str)
        {
        }
    }
    class CCloudFileHash
    {
        public static function getFileHashAgent($bucket_id, $step_size = 1000)
        {
        }
        public static function setFileHashAgent($bucket_id, $last_file_id, $step_size = 1000)
        {
        }
    }
    class CCloudFailover
    {
        const ST_ERROR = -1;
        const ST_UNKNOWN = 0;
        const ST_FAILOVER = 1;
        const ST_END = 2;
        const ST_CONTINUE = 3;
        public static function IsEnabled()
        {
        }
        public static function queueDelete($obBucket, $FILE_PATH)
        {
        }
        public static function queueCopy($obBucket, $FILE_PATH)
        {
        }
        public static function queueRename($obBucket, $FILE_PATH_FROM, $FILE_PATH_TO)
        {
        }
        public static function executeDeleteQueue()
        {
        }
        public static function executeCopyQueue()
        {
        }
        public static function executeCopyTask($copyTask, $overwrite)
        {
        }
        public static function executeRenameTask($renameTask)
        {
        }
        public static function queueAgent()
        {
        }
        public static function syncAgent($bucketFrom, $bucketTo, $limit = 100)
        {
        }
        protected static $lock = \false;
        public static function lock()
        {
        }
        public static function unlock()
        {
        }
        protected static function _lock_by_id($lockId)
        {
        }
    }
    class CCloudSecurityService_AmazonS3
    {
        protected $status = 0;
        protected $headers = array();
        protected $error = \false;
        protected $result = '';
        function GetLastRequestStatus()
        {
        }
        function GetObject()
        {
        }
        function GetID()
        {
        }
        function GetName()
        {
        }
        function GetDefaultBucketControlPolicy($bucket, $prefix)
        {
        }
        function GetFederationToken($arBucket, $Policy, $Name, $DurationSeconds = 129600)
        {
        }
        function SendRequest($access_key, $secret_key, $verb, $bucket, $file_name = '/', $params = '')
        {
        }
        function hmacsha1($data, $key)
        {
        }
        function PhpToJSObject($arData, $bWS = \false, $bSkipTilda = \false)
        {
        }
    }
    class CCloudSecurityService_HotBox
    {
        /* @var $service CCloudStorageService_HotBox */
        protected $service = \null;
        protected $arBucket = \false;
        function __construct()
        {
        }
        function GetObject()
        {
        }
        function GetID()
        {
        }
        function GetName()
        {
        }
        function SetBucketArray($arBucket)
        {
        }
        function CreatePrefixKey($UserName, $Prefix)
        {
        }
        function ListPrefixKeys($namePrefix = '')
        {
        }
        function IsUserExists($UserName)
        {
        }
        function DeletePrefixKey($UserName, $prefix)
        {
        }
    }
}
namespace Bitrix\Clouds {
    /**
     * EO_CopyQueue
     * @see \Bitrix\Clouds\CopyQueueTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Clouds\EO_CopyQueue setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Clouds\EO_CopyQueue setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Clouds\EO_CopyQueue resetTimestampX()
     * @method \Bitrix\Clouds\EO_CopyQueue unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \string getOp()
     * @method \Bitrix\Clouds\EO_CopyQueue setOp(\string|\Bitrix\Main\DB\SqlExpression $op)
     * @method bool hasOp()
     * @method bool isOpFilled()
     * @method bool isOpChanged()
     * @method \string remindActualOp()
     * @method \string requireOp()
     * @method \Bitrix\Clouds\EO_CopyQueue resetOp()
     * @method \Bitrix\Clouds\EO_CopyQueue unsetOp()
     * @method \string fillOp()
     * @method \int getSourceBucketId()
     * @method \Bitrix\Clouds\EO_CopyQueue setSourceBucketId(\int|\Bitrix\Main\DB\SqlExpression $sourceBucketId)
     * @method bool hasSourceBucketId()
     * @method bool isSourceBucketIdFilled()
     * @method bool isSourceBucketIdChanged()
     * @method \int remindActualSourceBucketId()
     * @method \int requireSourceBucketId()
     * @method \Bitrix\Clouds\EO_CopyQueue resetSourceBucketId()
     * @method \Bitrix\Clouds\EO_CopyQueue unsetSourceBucketId()
     * @method \int fillSourceBucketId()
     * @method \string getSourceFilePath()
     * @method \Bitrix\Clouds\EO_CopyQueue setSourceFilePath(\string|\Bitrix\Main\DB\SqlExpression $sourceFilePath)
     * @method bool hasSourceFilePath()
     * @method bool isSourceFilePathFilled()
     * @method bool isSourceFilePathChanged()
     * @method \string remindActualSourceFilePath()
     * @method \string requireSourceFilePath()
     * @method \Bitrix\Clouds\EO_CopyQueue resetSourceFilePath()
     * @method \Bitrix\Clouds\EO_CopyQueue unsetSourceFilePath()
     * @method \string fillSourceFilePath()
     * @method \int getTargetBucketId()
     * @method \Bitrix\Clouds\EO_CopyQueue setTargetBucketId(\int|\Bitrix\Main\DB\SqlExpression $targetBucketId)
     * @method bool hasTargetBucketId()
     * @method bool isTargetBucketIdFilled()
     * @method bool isTargetBucketIdChanged()
     * @method \int remindActualTargetBucketId()
     * @method \int requireTargetBucketId()
     * @method \Bitrix\Clouds\EO_CopyQueue resetTargetBucketId()
     * @method \Bitrix\Clouds\EO_CopyQueue unsetTargetBucketId()
     * @method \int fillTargetBucketId()
     * @method \string getTargetFilePath()
     * @method \Bitrix\Clouds\EO_CopyQueue setTargetFilePath(\string|\Bitrix\Main\DB\SqlExpression $targetFilePath)
     * @method bool hasTargetFilePath()
     * @method bool isTargetFilePathFilled()
     * @method bool isTargetFilePathChanged()
     * @method \string remindActualTargetFilePath()
     * @method \string requireTargetFilePath()
     * @method \Bitrix\Clouds\EO_CopyQueue resetTargetFilePath()
     * @method \Bitrix\Clouds\EO_CopyQueue unsetTargetFilePath()
     * @method \string fillTargetFilePath()
     * @method \int getFileSize()
     * @method \Bitrix\Clouds\EO_CopyQueue setFileSize(\int|\Bitrix\Main\DB\SqlExpression $fileSize)
     * @method bool hasFileSize()
     * @method bool isFileSizeFilled()
     * @method bool isFileSizeChanged()
     * @method \int remindActualFileSize()
     * @method \int requireFileSize()
     * @method \Bitrix\Clouds\EO_CopyQueue resetFileSize()
     * @method \Bitrix\Clouds\EO_CopyQueue unsetFileSize()
     * @method \int fillFileSize()
     * @method \int getFilePos()
     * @method \Bitrix\Clouds\EO_CopyQueue setFilePos(\int|\Bitrix\Main\DB\SqlExpression $filePos)
     * @method bool hasFilePos()
     * @method bool isFilePosFilled()
     * @method bool isFilePosChanged()
     * @method \int remindActualFilePos()
     * @method \int requireFilePos()
     * @method \Bitrix\Clouds\EO_CopyQueue resetFilePos()
     * @method \Bitrix\Clouds\EO_CopyQueue unsetFilePos()
     * @method \int fillFilePos()
     * @method \int getFailCounter()
     * @method \Bitrix\Clouds\EO_CopyQueue setFailCounter(\int|\Bitrix\Main\DB\SqlExpression $failCounter)
     * @method bool hasFailCounter()
     * @method bool isFailCounterFilled()
     * @method bool isFailCounterChanged()
     * @method \int remindActualFailCounter()
     * @method \int requireFailCounter()
     * @method \Bitrix\Clouds\EO_CopyQueue resetFailCounter()
     * @method \Bitrix\Clouds\EO_CopyQueue unsetFailCounter()
     * @method \int fillFailCounter()
     * @method \string getStatus()
     * @method \Bitrix\Clouds\EO_CopyQueue setStatus(\string|\Bitrix\Main\DB\SqlExpression $status)
     * @method bool hasStatus()
     * @method bool isStatusFilled()
     * @method bool isStatusChanged()
     * @method \string remindActualStatus()
     * @method \string requireStatus()
     * @method \Bitrix\Clouds\EO_CopyQueue resetStatus()
     * @method \Bitrix\Clouds\EO_CopyQueue unsetStatus()
     * @method \string fillStatus()
     * @method \string getErrorMessage()
     * @method \Bitrix\Clouds\EO_CopyQueue setErrorMessage(\string|\Bitrix\Main\DB\SqlExpression $errorMessage)
     * @method bool hasErrorMessage()
     * @method bool isErrorMessageFilled()
     * @method bool isErrorMessageChanged()
     * @method \string remindActualErrorMessage()
     * @method \string requireErrorMessage()
     * @method \Bitrix\Clouds\EO_CopyQueue resetErrorMessage()
     * @method \Bitrix\Clouds\EO_CopyQueue unsetErrorMessage()
     * @method \string fillErrorMessage()
     * @method \Bitrix\Clouds\EO_FileBucket getSourceBucket()
     * @method \Bitrix\Clouds\EO_FileBucket remindActualSourceBucket()
     * @method \Bitrix\Clouds\EO_FileBucket requireSourceBucket()
     * @method \Bitrix\Clouds\EO_CopyQueue setSourceBucket(\Bitrix\Clouds\EO_FileBucket $object)
     * @method \Bitrix\Clouds\EO_CopyQueue resetSourceBucket()
     * @method \Bitrix\Clouds\EO_CopyQueue unsetSourceBucket()
     * @method bool hasSourceBucket()
     * @method bool isSourceBucketFilled()
     * @method bool isSourceBucketChanged()
     * @method \Bitrix\Clouds\EO_FileBucket fillSourceBucket()
     * @method \Bitrix\Clouds\EO_FileBucket getTargetBucket()
     * @method \Bitrix\Clouds\EO_FileBucket remindActualTargetBucket()
     * @method \Bitrix\Clouds\EO_FileBucket requireTargetBucket()
     * @method \Bitrix\Clouds\EO_CopyQueue setTargetBucket(\Bitrix\Clouds\EO_FileBucket $object)
     * @method \Bitrix\Clouds\EO_CopyQueue resetTargetBucket()
     * @method \Bitrix\Clouds\EO_CopyQueue unsetTargetBucket()
     * @method bool hasTargetBucket()
     * @method bool isTargetBucketFilled()
     * @method bool isTargetBucketChanged()
     * @method \Bitrix\Clouds\EO_FileBucket fillTargetBucket()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Clouds\EO_CopyQueue set($fieldName, $value)
     * @method \Bitrix\Clouds\EO_CopyQueue reset($fieldName)
     * @method \Bitrix\Clouds\EO_CopyQueue unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Clouds\EO_CopyQueue wakeUp($data)
     */
    class EO_CopyQueue
    {
        /* @var \Bitrix\Clouds\CopyQueueTable */
        public static $dataClass = '\\Bitrix\\Clouds\\CopyQueueTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_CopyQueue_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \string[] getOpList()
     * @method \string[] fillOp()
     * @method \int[] getSourceBucketIdList()
     * @method \int[] fillSourceBucketId()
     * @method \string[] getSourceFilePathList()
     * @method \string[] fillSourceFilePath()
     * @method \int[] getTargetBucketIdList()
     * @method \int[] fillTargetBucketId()
     * @method \string[] getTargetFilePathList()
     * @method \string[] fillTargetFilePath()
     * @method \int[] getFileSizeList()
     * @method \int[] fillFileSize()
     * @method \int[] getFilePosList()
     * @method \int[] fillFilePos()
     * @method \int[] getFailCounterList()
     * @method \int[] fillFailCounter()
     * @method \string[] getStatusList()
     * @method \string[] fillStatus()
     * @method \string[] getErrorMessageList()
     * @method \string[] fillErrorMessage()
     * @method \Bitrix\Clouds\EO_FileBucket[] getSourceBucketList()
     * @method \Bitrix\Clouds\EO_CopyQueue_Collection getSourceBucketCollection()
     * @method \Bitrix\Clouds\EO_FileBucket_Collection fillSourceBucket()
     * @method \Bitrix\Clouds\EO_FileBucket[] getTargetBucketList()
     * @method \Bitrix\Clouds\EO_CopyQueue_Collection getTargetBucketCollection()
     * @method \Bitrix\Clouds\EO_FileBucket_Collection fillTargetBucket()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Clouds\EO_CopyQueue $object)
     * @method bool has(\Bitrix\Clouds\EO_CopyQueue $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Clouds\EO_CopyQueue getByPrimary($primary)
     * @method \Bitrix\Clouds\EO_CopyQueue[] getAll()
     * @method bool remove(\Bitrix\Clouds\EO_CopyQueue $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Clouds\EO_CopyQueue_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Clouds\EO_CopyQueue current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_CopyQueue_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Clouds\CopyQueueTable */
        public static $dataClass = '\\Bitrix\\Clouds\\CopyQueueTable';
    }
    /**
     * @method static EO_CopyQueue_Query query()
     * @method static EO_CopyQueue_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_CopyQueue_Result getById($id)
     * @method static EO_CopyQueue_Result getList(array $parameters = array())
     * @method static EO_CopyQueue_Entity getEntity()
     * @method static \Bitrix\Clouds\EO_CopyQueue createObject($setDefaultValues = true)
     * @method static \Bitrix\Clouds\EO_CopyQueue_Collection createCollection()
     * @method static \Bitrix\Clouds\EO_CopyQueue wakeUpObject($row)
     * @method static \Bitrix\Clouds\EO_CopyQueue_Collection wakeUpCollection($rows)
     */
    class CopyQueueTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_CopyQueue_Result exec()
     * @method \Bitrix\Clouds\EO_CopyQueue fetchObject()
     * @method \Bitrix\Clouds\EO_CopyQueue_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_CopyQueue_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Clouds\EO_CopyQueue fetchObject()
     * @method \Bitrix\Clouds\EO_CopyQueue_Collection fetchCollection()
     */
    class EO_CopyQueue_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Clouds\EO_CopyQueue createObject($setDefaultValues = true)
     * @method \Bitrix\Clouds\EO_CopyQueue_Collection createCollection()
     * @method \Bitrix\Clouds\EO_CopyQueue wakeUpObject($row)
     * @method \Bitrix\Clouds\EO_CopyQueue_Collection wakeUpCollection($rows)
     */
    class EO_CopyQueue_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_DeleteQueue
     * @see \Bitrix\Clouds\DeleteQueueTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Clouds\EO_DeleteQueue setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Clouds\EO_DeleteQueue setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Clouds\EO_DeleteQueue resetTimestampX()
     * @method \Bitrix\Clouds\EO_DeleteQueue unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \int getBucketId()
     * @method \Bitrix\Clouds\EO_DeleteQueue setBucketId(\int|\Bitrix\Main\DB\SqlExpression $bucketId)
     * @method bool hasBucketId()
     * @method bool isBucketIdFilled()
     * @method bool isBucketIdChanged()
     * @method \int remindActualBucketId()
     * @method \int requireBucketId()
     * @method \Bitrix\Clouds\EO_DeleteQueue resetBucketId()
     * @method \Bitrix\Clouds\EO_DeleteQueue unsetBucketId()
     * @method \int fillBucketId()
     * @method \string getFilePath()
     * @method \Bitrix\Clouds\EO_DeleteQueue setFilePath(\string|\Bitrix\Main\DB\SqlExpression $filePath)
     * @method bool hasFilePath()
     * @method bool isFilePathFilled()
     * @method bool isFilePathChanged()
     * @method \string remindActualFilePath()
     * @method \string requireFilePath()
     * @method \Bitrix\Clouds\EO_DeleteQueue resetFilePath()
     * @method \Bitrix\Clouds\EO_DeleteQueue unsetFilePath()
     * @method \string fillFilePath()
     * @method \Bitrix\Clouds\EO_FileBucket getBucket()
     * @method \Bitrix\Clouds\EO_FileBucket remindActualBucket()
     * @method \Bitrix\Clouds\EO_FileBucket requireBucket()
     * @method \Bitrix\Clouds\EO_DeleteQueue setBucket(\Bitrix\Clouds\EO_FileBucket $object)
     * @method \Bitrix\Clouds\EO_DeleteQueue resetBucket()
     * @method \Bitrix\Clouds\EO_DeleteQueue unsetBucket()
     * @method bool hasBucket()
     * @method bool isBucketFilled()
     * @method bool isBucketChanged()
     * @method \Bitrix\Clouds\EO_FileBucket fillBucket()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Clouds\EO_DeleteQueue set($fieldName, $value)
     * @method \Bitrix\Clouds\EO_DeleteQueue reset($fieldName)
     * @method \Bitrix\Clouds\EO_DeleteQueue unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Clouds\EO_DeleteQueue wakeUp($data)
     */
    class EO_DeleteQueue
    {
        /* @var \Bitrix\Clouds\DeleteQueueTable */
        public static $dataClass = '\\Bitrix\\Clouds\\DeleteQueueTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_DeleteQueue_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \int[] getBucketIdList()
     * @method \int[] fillBucketId()
     * @method \string[] getFilePathList()
     * @method \string[] fillFilePath()
     * @method \Bitrix\Clouds\EO_FileBucket[] getBucketList()
     * @method \Bitrix\Clouds\EO_DeleteQueue_Collection getBucketCollection()
     * @method \Bitrix\Clouds\EO_FileBucket_Collection fillBucket()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Clouds\EO_DeleteQueue $object)
     * @method bool has(\Bitrix\Clouds\EO_DeleteQueue $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Clouds\EO_DeleteQueue getByPrimary($primary)
     * @method \Bitrix\Clouds\EO_DeleteQueue[] getAll()
     * @method bool remove(\Bitrix\Clouds\EO_DeleteQueue $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Clouds\EO_DeleteQueue_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Clouds\EO_DeleteQueue current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_DeleteQueue_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Clouds\DeleteQueueTable */
        public static $dataClass = '\\Bitrix\\Clouds\\DeleteQueueTable';
    }
    /**
     * @method static EO_DeleteQueue_Query query()
     * @method static EO_DeleteQueue_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_DeleteQueue_Result getById($id)
     * @method static EO_DeleteQueue_Result getList(array $parameters = array())
     * @method static EO_DeleteQueue_Entity getEntity()
     * @method static \Bitrix\Clouds\EO_DeleteQueue createObject($setDefaultValues = true)
     * @method static \Bitrix\Clouds\EO_DeleteQueue_Collection createCollection()
     * @method static \Bitrix\Clouds\EO_DeleteQueue wakeUpObject($row)
     * @method static \Bitrix\Clouds\EO_DeleteQueue_Collection wakeUpCollection($rows)
     */
    class DeleteQueueTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_DeleteQueue_Result exec()
     * @method \Bitrix\Clouds\EO_DeleteQueue fetchObject()
     * @method \Bitrix\Clouds\EO_DeleteQueue_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_DeleteQueue_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Clouds\EO_DeleteQueue fetchObject()
     * @method \Bitrix\Clouds\EO_DeleteQueue_Collection fetchCollection()
     */
    class EO_DeleteQueue_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Clouds\EO_DeleteQueue createObject($setDefaultValues = true)
     * @method \Bitrix\Clouds\EO_DeleteQueue_Collection createCollection()
     * @method \Bitrix\Clouds\EO_DeleteQueue wakeUpObject($row)
     * @method \Bitrix\Clouds\EO_DeleteQueue_Collection wakeUpCollection($rows)
     */
    class EO_DeleteQueue_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_FileBucket
     * @see \Bitrix\Clouds\FileBucketTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Clouds\EO_FileBucket setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \boolean getActive()
     * @method \Bitrix\Clouds\EO_FileBucket setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Clouds\EO_FileBucket resetActive()
     * @method \Bitrix\Clouds\EO_FileBucket unsetActive()
     * @method \boolean fillActive()
     * @method \int getSort()
     * @method \Bitrix\Clouds\EO_FileBucket setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Clouds\EO_FileBucket resetSort()
     * @method \Bitrix\Clouds\EO_FileBucket unsetSort()
     * @method \int fillSort()
     * @method \boolean getReadOnly()
     * @method \Bitrix\Clouds\EO_FileBucket setReadOnly(\boolean|\Bitrix\Main\DB\SqlExpression $readOnly)
     * @method bool hasReadOnly()
     * @method bool isReadOnlyFilled()
     * @method bool isReadOnlyChanged()
     * @method \boolean remindActualReadOnly()
     * @method \boolean requireReadOnly()
     * @method \Bitrix\Clouds\EO_FileBucket resetReadOnly()
     * @method \Bitrix\Clouds\EO_FileBucket unsetReadOnly()
     * @method \boolean fillReadOnly()
     * @method \string getServiceId()
     * @method \Bitrix\Clouds\EO_FileBucket setServiceId(\string|\Bitrix\Main\DB\SqlExpression $serviceId)
     * @method bool hasServiceId()
     * @method bool isServiceIdFilled()
     * @method bool isServiceIdChanged()
     * @method \string remindActualServiceId()
     * @method \string requireServiceId()
     * @method \Bitrix\Clouds\EO_FileBucket resetServiceId()
     * @method \Bitrix\Clouds\EO_FileBucket unsetServiceId()
     * @method \string fillServiceId()
     * @method \string getBucket()
     * @method \Bitrix\Clouds\EO_FileBucket setBucket(\string|\Bitrix\Main\DB\SqlExpression $bucket)
     * @method bool hasBucket()
     * @method bool isBucketFilled()
     * @method bool isBucketChanged()
     * @method \string remindActualBucket()
     * @method \string requireBucket()
     * @method \Bitrix\Clouds\EO_FileBucket resetBucket()
     * @method \Bitrix\Clouds\EO_FileBucket unsetBucket()
     * @method \string fillBucket()
     * @method \string getLocation()
     * @method \Bitrix\Clouds\EO_FileBucket setLocation(\string|\Bitrix\Main\DB\SqlExpression $location)
     * @method bool hasLocation()
     * @method bool isLocationFilled()
     * @method bool isLocationChanged()
     * @method \string remindActualLocation()
     * @method \string requireLocation()
     * @method \Bitrix\Clouds\EO_FileBucket resetLocation()
     * @method \Bitrix\Clouds\EO_FileBucket unsetLocation()
     * @method \string fillLocation()
     * @method \string getCname()
     * @method \Bitrix\Clouds\EO_FileBucket setCname(\string|\Bitrix\Main\DB\SqlExpression $cname)
     * @method bool hasCname()
     * @method bool isCnameFilled()
     * @method bool isCnameChanged()
     * @method \string remindActualCname()
     * @method \string requireCname()
     * @method \Bitrix\Clouds\EO_FileBucket resetCname()
     * @method \Bitrix\Clouds\EO_FileBucket unsetCname()
     * @method \string fillCname()
     * @method \int getFileCount()
     * @method \Bitrix\Clouds\EO_FileBucket setFileCount(\int|\Bitrix\Main\DB\SqlExpression $fileCount)
     * @method bool hasFileCount()
     * @method bool isFileCountFilled()
     * @method bool isFileCountChanged()
     * @method \int remindActualFileCount()
     * @method \int requireFileCount()
     * @method \Bitrix\Clouds\EO_FileBucket resetFileCount()
     * @method \Bitrix\Clouds\EO_FileBucket unsetFileCount()
     * @method \int fillFileCount()
     * @method \float getFileSize()
     * @method \Bitrix\Clouds\EO_FileBucket setFileSize(\float|\Bitrix\Main\DB\SqlExpression $fileSize)
     * @method bool hasFileSize()
     * @method bool isFileSizeFilled()
     * @method bool isFileSizeChanged()
     * @method \float remindActualFileSize()
     * @method \float requireFileSize()
     * @method \Bitrix\Clouds\EO_FileBucket resetFileSize()
     * @method \Bitrix\Clouds\EO_FileBucket unsetFileSize()
     * @method \float fillFileSize()
     * @method \int getLastFileId()
     * @method \Bitrix\Clouds\EO_FileBucket setLastFileId(\int|\Bitrix\Main\DB\SqlExpression $lastFileId)
     * @method bool hasLastFileId()
     * @method bool isLastFileIdFilled()
     * @method bool isLastFileIdChanged()
     * @method \int remindActualLastFileId()
     * @method \int requireLastFileId()
     * @method \Bitrix\Clouds\EO_FileBucket resetLastFileId()
     * @method \Bitrix\Clouds\EO_FileBucket unsetLastFileId()
     * @method \int fillLastFileId()
     * @method \string getPrefix()
     * @method \Bitrix\Clouds\EO_FileBucket setPrefix(\string|\Bitrix\Main\DB\SqlExpression $prefix)
     * @method bool hasPrefix()
     * @method bool isPrefixFilled()
     * @method bool isPrefixChanged()
     * @method \string remindActualPrefix()
     * @method \string requirePrefix()
     * @method \Bitrix\Clouds\EO_FileBucket resetPrefix()
     * @method \Bitrix\Clouds\EO_FileBucket unsetPrefix()
     * @method \string fillPrefix()
     * @method \string getSettings()
     * @method \Bitrix\Clouds\EO_FileBucket setSettings(\string|\Bitrix\Main\DB\SqlExpression $settings)
     * @method bool hasSettings()
     * @method bool isSettingsFilled()
     * @method bool isSettingsChanged()
     * @method \string remindActualSettings()
     * @method \string requireSettings()
     * @method \Bitrix\Clouds\EO_FileBucket resetSettings()
     * @method \Bitrix\Clouds\EO_FileBucket unsetSettings()
     * @method \string fillSettings()
     * @method \string getFileRules()
     * @method \Bitrix\Clouds\EO_FileBucket setFileRules(\string|\Bitrix\Main\DB\SqlExpression $fileRules)
     * @method bool hasFileRules()
     * @method bool isFileRulesFilled()
     * @method bool isFileRulesChanged()
     * @method \string remindActualFileRules()
     * @method \string requireFileRules()
     * @method \Bitrix\Clouds\EO_FileBucket resetFileRules()
     * @method \Bitrix\Clouds\EO_FileBucket unsetFileRules()
     * @method \string fillFileRules()
     * @method \boolean getFailoverActive()
     * @method \Bitrix\Clouds\EO_FileBucket setFailoverActive(\boolean|\Bitrix\Main\DB\SqlExpression $failoverActive)
     * @method bool hasFailoverActive()
     * @method bool isFailoverActiveFilled()
     * @method bool isFailoverActiveChanged()
     * @method \boolean remindActualFailoverActive()
     * @method \boolean requireFailoverActive()
     * @method \Bitrix\Clouds\EO_FileBucket resetFailoverActive()
     * @method \Bitrix\Clouds\EO_FileBucket unsetFailoverActive()
     * @method \boolean fillFailoverActive()
     * @method \int getFailoverBucketId()
     * @method \Bitrix\Clouds\EO_FileBucket setFailoverBucketId(\int|\Bitrix\Main\DB\SqlExpression $failoverBucketId)
     * @method bool hasFailoverBucketId()
     * @method bool isFailoverBucketIdFilled()
     * @method bool isFailoverBucketIdChanged()
     * @method \int remindActualFailoverBucketId()
     * @method \int requireFailoverBucketId()
     * @method \Bitrix\Clouds\EO_FileBucket resetFailoverBucketId()
     * @method \Bitrix\Clouds\EO_FileBucket unsetFailoverBucketId()
     * @method \int fillFailoverBucketId()
     * @method \boolean getFailoverCopy()
     * @method \Bitrix\Clouds\EO_FileBucket setFailoverCopy(\boolean|\Bitrix\Main\DB\SqlExpression $failoverCopy)
     * @method bool hasFailoverCopy()
     * @method bool isFailoverCopyFilled()
     * @method bool isFailoverCopyChanged()
     * @method \boolean remindActualFailoverCopy()
     * @method \boolean requireFailoverCopy()
     * @method \Bitrix\Clouds\EO_FileBucket resetFailoverCopy()
     * @method \Bitrix\Clouds\EO_FileBucket unsetFailoverCopy()
     * @method \boolean fillFailoverCopy()
     * @method \boolean getFailoverDelete()
     * @method \Bitrix\Clouds\EO_FileBucket setFailoverDelete(\boolean|\Bitrix\Main\DB\SqlExpression $failoverDelete)
     * @method bool hasFailoverDelete()
     * @method bool isFailoverDeleteFilled()
     * @method bool isFailoverDeleteChanged()
     * @method \boolean remindActualFailoverDelete()
     * @method \boolean requireFailoverDelete()
     * @method \Bitrix\Clouds\EO_FileBucket resetFailoverDelete()
     * @method \Bitrix\Clouds\EO_FileBucket unsetFailoverDelete()
     * @method \boolean fillFailoverDelete()
     * @method \int getFailoverDeleteDelay()
     * @method \Bitrix\Clouds\EO_FileBucket setFailoverDeleteDelay(\int|\Bitrix\Main\DB\SqlExpression $failoverDeleteDelay)
     * @method bool hasFailoverDeleteDelay()
     * @method bool isFailoverDeleteDelayFilled()
     * @method bool isFailoverDeleteDelayChanged()
     * @method \int remindActualFailoverDeleteDelay()
     * @method \int requireFailoverDeleteDelay()
     * @method \Bitrix\Clouds\EO_FileBucket resetFailoverDeleteDelay()
     * @method \Bitrix\Clouds\EO_FileBucket unsetFailoverDeleteDelay()
     * @method \int fillFailoverDeleteDelay()
     * @method \Bitrix\Clouds\EO_FileBucket getFailoverBucket()
     * @method \Bitrix\Clouds\EO_FileBucket remindActualFailoverBucket()
     * @method \Bitrix\Clouds\EO_FileBucket requireFailoverBucket()
     * @method \Bitrix\Clouds\EO_FileBucket setFailoverBucket(\Bitrix\Clouds\EO_FileBucket $object)
     * @method \Bitrix\Clouds\EO_FileBucket resetFailoverBucket()
     * @method \Bitrix\Clouds\EO_FileBucket unsetFailoverBucket()
     * @method bool hasFailoverBucket()
     * @method bool isFailoverBucketFilled()
     * @method bool isFailoverBucketChanged()
     * @method \Bitrix\Clouds\EO_FileBucket fillFailoverBucket()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Clouds\EO_FileBucket set($fieldName, $value)
     * @method \Bitrix\Clouds\EO_FileBucket reset($fieldName)
     * @method \Bitrix\Clouds\EO_FileBucket unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Clouds\EO_FileBucket wakeUp($data)
     */
    class EO_FileBucket
    {
        /* @var \Bitrix\Clouds\FileBucketTable */
        public static $dataClass = '\\Bitrix\\Clouds\\FileBucketTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_FileBucket_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \boolean[] getReadOnlyList()
     * @method \boolean[] fillReadOnly()
     * @method \string[] getServiceIdList()
     * @method \string[] fillServiceId()
     * @method \string[] getBucketList()
     * @method \string[] fillBucket()
     * @method \string[] getLocationList()
     * @method \string[] fillLocation()
     * @method \string[] getCnameList()
     * @method \string[] fillCname()
     * @method \int[] getFileCountList()
     * @method \int[] fillFileCount()
     * @method \float[] getFileSizeList()
     * @method \float[] fillFileSize()
     * @method \int[] getLastFileIdList()
     * @method \int[] fillLastFileId()
     * @method \string[] getPrefixList()
     * @method \string[] fillPrefix()
     * @method \string[] getSettingsList()
     * @method \string[] fillSettings()
     * @method \string[] getFileRulesList()
     * @method \string[] fillFileRules()
     * @method \boolean[] getFailoverActiveList()
     * @method \boolean[] fillFailoverActive()
     * @method \int[] getFailoverBucketIdList()
     * @method \int[] fillFailoverBucketId()
     * @method \boolean[] getFailoverCopyList()
     * @method \boolean[] fillFailoverCopy()
     * @method \boolean[] getFailoverDeleteList()
     * @method \boolean[] fillFailoverDelete()
     * @method \int[] getFailoverDeleteDelayList()
     * @method \int[] fillFailoverDeleteDelay()
     * @method \Bitrix\Clouds\EO_FileBucket[] getFailoverBucketList()
     * @method \Bitrix\Clouds\EO_FileBucket_Collection getFailoverBucketCollection()
     * @method \Bitrix\Clouds\EO_FileBucket_Collection fillFailoverBucket()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Clouds\EO_FileBucket $object)
     * @method bool has(\Bitrix\Clouds\EO_FileBucket $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Clouds\EO_FileBucket getByPrimary($primary)
     * @method \Bitrix\Clouds\EO_FileBucket[] getAll()
     * @method bool remove(\Bitrix\Clouds\EO_FileBucket $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Clouds\EO_FileBucket_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Clouds\EO_FileBucket current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_FileBucket_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Clouds\FileBucketTable */
        public static $dataClass = '\\Bitrix\\Clouds\\FileBucketTable';
    }
    /**
     * @method static EO_FileBucket_Query query()
     * @method static EO_FileBucket_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_FileBucket_Result getById($id)
     * @method static EO_FileBucket_Result getList(array $parameters = array())
     * @method static EO_FileBucket_Entity getEntity()
     * @method static \Bitrix\Clouds\EO_FileBucket createObject($setDefaultValues = true)
     * @method static \Bitrix\Clouds\EO_FileBucket_Collection createCollection()
     * @method static \Bitrix\Clouds\EO_FileBucket wakeUpObject($row)
     * @method static \Bitrix\Clouds\EO_FileBucket_Collection wakeUpCollection($rows)
     */
    class FileBucketTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_FileBucket_Result exec()
     * @method \Bitrix\Clouds\EO_FileBucket fetchObject()
     * @method \Bitrix\Clouds\EO_FileBucket_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_FileBucket_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Clouds\EO_FileBucket fetchObject()
     * @method \Bitrix\Clouds\EO_FileBucket_Collection fetchCollection()
     */
    class EO_FileBucket_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Clouds\EO_FileBucket createObject($setDefaultValues = true)
     * @method \Bitrix\Clouds\EO_FileBucket_Collection createCollection()
     * @method \Bitrix\Clouds\EO_FileBucket wakeUpObject($row)
     * @method \Bitrix\Clouds\EO_FileBucket_Collection wakeUpCollection($rows)
     */
    class EO_FileBucket_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_FileResize
     * @see \Bitrix\Clouds\FileResizeTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Clouds\EO_FileResize setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Clouds\EO_FileResize setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Clouds\EO_FileResize resetTimestampX()
     * @method \Bitrix\Clouds\EO_FileResize unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \string getErrorCode()
     * @method \Bitrix\Clouds\EO_FileResize setErrorCode(\string|\Bitrix\Main\DB\SqlExpression $errorCode)
     * @method bool hasErrorCode()
     * @method bool isErrorCodeFilled()
     * @method bool isErrorCodeChanged()
     * @method \string remindActualErrorCode()
     * @method \string requireErrorCode()
     * @method \Bitrix\Clouds\EO_FileResize resetErrorCode()
     * @method \Bitrix\Clouds\EO_FileResize unsetErrorCode()
     * @method \string fillErrorCode()
     * @method \int getFileId()
     * @method \Bitrix\Clouds\EO_FileResize setFileId(\int|\Bitrix\Main\DB\SqlExpression $fileId)
     * @method bool hasFileId()
     * @method bool isFileIdFilled()
     * @method bool isFileIdChanged()
     * @method \int remindActualFileId()
     * @method \int requireFileId()
     * @method \Bitrix\Clouds\EO_FileResize resetFileId()
     * @method \Bitrix\Clouds\EO_FileResize unsetFileId()
     * @method \int fillFileId()
     * @method \string getParams()
     * @method \Bitrix\Clouds\EO_FileResize setParams(\string|\Bitrix\Main\DB\SqlExpression $params)
     * @method bool hasParams()
     * @method bool isParamsFilled()
     * @method bool isParamsChanged()
     * @method \string remindActualParams()
     * @method \string requireParams()
     * @method \Bitrix\Clouds\EO_FileResize resetParams()
     * @method \Bitrix\Clouds\EO_FileResize unsetParams()
     * @method \string fillParams()
     * @method \string getFromPath()
     * @method \Bitrix\Clouds\EO_FileResize setFromPath(\string|\Bitrix\Main\DB\SqlExpression $fromPath)
     * @method bool hasFromPath()
     * @method bool isFromPathFilled()
     * @method bool isFromPathChanged()
     * @method \string remindActualFromPath()
     * @method \string requireFromPath()
     * @method \Bitrix\Clouds\EO_FileResize resetFromPath()
     * @method \Bitrix\Clouds\EO_FileResize unsetFromPath()
     * @method \string fillFromPath()
     * @method \string getToPath()
     * @method \Bitrix\Clouds\EO_FileResize setToPath(\string|\Bitrix\Main\DB\SqlExpression $toPath)
     * @method bool hasToPath()
     * @method bool isToPathFilled()
     * @method bool isToPathChanged()
     * @method \string remindActualToPath()
     * @method \string requireToPath()
     * @method \Bitrix\Clouds\EO_FileResize resetToPath()
     * @method \Bitrix\Clouds\EO_FileResize unsetToPath()
     * @method \string fillToPath()
     * @method \Bitrix\Main\EO_File getFile()
     * @method \Bitrix\Main\EO_File remindActualFile()
     * @method \Bitrix\Main\EO_File requireFile()
     * @method \Bitrix\Clouds\EO_FileResize setFile(\Bitrix\Main\EO_File $object)
     * @method \Bitrix\Clouds\EO_FileResize resetFile()
     * @method \Bitrix\Clouds\EO_FileResize unsetFile()
     * @method bool hasFile()
     * @method bool isFileFilled()
     * @method bool isFileChanged()
     * @method \Bitrix\Main\EO_File fillFile()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Clouds\EO_FileResize set($fieldName, $value)
     * @method \Bitrix\Clouds\EO_FileResize reset($fieldName)
     * @method \Bitrix\Clouds\EO_FileResize unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Clouds\EO_FileResize wakeUp($data)
     */
    class EO_FileResize
    {
        /* @var \Bitrix\Clouds\FileResizeTable */
        public static $dataClass = '\\Bitrix\\Clouds\\FileResizeTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_FileResize_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \string[] getErrorCodeList()
     * @method \string[] fillErrorCode()
     * @method \int[] getFileIdList()
     * @method \int[] fillFileId()
     * @method \string[] getParamsList()
     * @method \string[] fillParams()
     * @method \string[] getFromPathList()
     * @method \string[] fillFromPath()
     * @method \string[] getToPathList()
     * @method \string[] fillToPath()
     * @method \Bitrix\Main\EO_File[] getFileList()
     * @method \Bitrix\Clouds\EO_FileResize_Collection getFileCollection()
     * @method \Bitrix\Main\EO_File_Collection fillFile()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Clouds\EO_FileResize $object)
     * @method bool has(\Bitrix\Clouds\EO_FileResize $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Clouds\EO_FileResize getByPrimary($primary)
     * @method \Bitrix\Clouds\EO_FileResize[] getAll()
     * @method bool remove(\Bitrix\Clouds\EO_FileResize $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Clouds\EO_FileResize_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Clouds\EO_FileResize current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_FileResize_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Clouds\FileResizeTable */
        public static $dataClass = '\\Bitrix\\Clouds\\FileResizeTable';
    }
    /**
     * @method static EO_FileResize_Query query()
     * @method static EO_FileResize_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_FileResize_Result getById($id)
     * @method static EO_FileResize_Result getList(array $parameters = array())
     * @method static EO_FileResize_Entity getEntity()
     * @method static \Bitrix\Clouds\EO_FileResize createObject($setDefaultValues = true)
     * @method static \Bitrix\Clouds\EO_FileResize_Collection createCollection()
     * @method static \Bitrix\Clouds\EO_FileResize wakeUpObject($row)
     * @method static \Bitrix\Clouds\EO_FileResize_Collection wakeUpCollection($rows)
     */
    class FileResizeTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_FileResize_Result exec()
     * @method \Bitrix\Clouds\EO_FileResize fetchObject()
     * @method \Bitrix\Clouds\EO_FileResize_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_FileResize_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Clouds\EO_FileResize fetchObject()
     * @method \Bitrix\Clouds\EO_FileResize_Collection fetchCollection()
     */
    class EO_FileResize_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Clouds\EO_FileResize createObject($setDefaultValues = true)
     * @method \Bitrix\Clouds\EO_FileResize_Collection createCollection()
     * @method \Bitrix\Clouds\EO_FileResize wakeUpObject($row)
     * @method \Bitrix\Clouds\EO_FileResize_Collection wakeUpCollection($rows)
     */
    class EO_FileResize_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_FileSave
     * @see \Bitrix\Clouds\FileSaveTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Clouds\EO_FileSave setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Clouds\EO_FileSave setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Clouds\EO_FileSave resetTimestampX()
     * @method \Bitrix\Clouds\EO_FileSave unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \int getBucketId()
     * @method \Bitrix\Clouds\EO_FileSave setBucketId(\int|\Bitrix\Main\DB\SqlExpression $bucketId)
     * @method bool hasBucketId()
     * @method bool isBucketIdFilled()
     * @method bool isBucketIdChanged()
     * @method \int remindActualBucketId()
     * @method \int requireBucketId()
     * @method \Bitrix\Clouds\EO_FileSave resetBucketId()
     * @method \Bitrix\Clouds\EO_FileSave unsetBucketId()
     * @method \int fillBucketId()
     * @method \string getSubdir()
     * @method \Bitrix\Clouds\EO_FileSave setSubdir(\string|\Bitrix\Main\DB\SqlExpression $subdir)
     * @method bool hasSubdir()
     * @method bool isSubdirFilled()
     * @method bool isSubdirChanged()
     * @method \string remindActualSubdir()
     * @method \string requireSubdir()
     * @method \Bitrix\Clouds\EO_FileSave resetSubdir()
     * @method \Bitrix\Clouds\EO_FileSave unsetSubdir()
     * @method \string fillSubdir()
     * @method \string getFileName()
     * @method \Bitrix\Clouds\EO_FileSave setFileName(\string|\Bitrix\Main\DB\SqlExpression $fileName)
     * @method bool hasFileName()
     * @method bool isFileNameFilled()
     * @method bool isFileNameChanged()
     * @method \string remindActualFileName()
     * @method \string requireFileName()
     * @method \Bitrix\Clouds\EO_FileSave resetFileName()
     * @method \Bitrix\Clouds\EO_FileSave unsetFileName()
     * @method \string fillFileName()
     * @method \string getExternalId()
     * @method \Bitrix\Clouds\EO_FileSave setExternalId(\string|\Bitrix\Main\DB\SqlExpression $externalId)
     * @method bool hasExternalId()
     * @method bool isExternalIdFilled()
     * @method bool isExternalIdChanged()
     * @method \string remindActualExternalId()
     * @method \string requireExternalId()
     * @method \Bitrix\Clouds\EO_FileSave resetExternalId()
     * @method \Bitrix\Clouds\EO_FileSave unsetExternalId()
     * @method \string fillExternalId()
     * @method \int getFileSize()
     * @method \Bitrix\Clouds\EO_FileSave setFileSize(\int|\Bitrix\Main\DB\SqlExpression $fileSize)
     * @method bool hasFileSize()
     * @method bool isFileSizeFilled()
     * @method bool isFileSizeChanged()
     * @method \int remindActualFileSize()
     * @method \int requireFileSize()
     * @method \Bitrix\Clouds\EO_FileSave resetFileSize()
     * @method \Bitrix\Clouds\EO_FileSave unsetFileSize()
     * @method \int fillFileSize()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Clouds\EO_FileSave set($fieldName, $value)
     * @method \Bitrix\Clouds\EO_FileSave reset($fieldName)
     * @method \Bitrix\Clouds\EO_FileSave unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Clouds\EO_FileSave wakeUp($data)
     */
    class EO_FileSave
    {
        /* @var \Bitrix\Clouds\FileSaveTable */
        public static $dataClass = '\\Bitrix\\Clouds\\FileSaveTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_FileSave_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \int[] getBucketIdList()
     * @method \int[] fillBucketId()
     * @method \string[] getSubdirList()
     * @method \string[] fillSubdir()
     * @method \string[] getFileNameList()
     * @method \string[] fillFileName()
     * @method \string[] getExternalIdList()
     * @method \string[] fillExternalId()
     * @method \int[] getFileSizeList()
     * @method \int[] fillFileSize()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Clouds\EO_FileSave $object)
     * @method bool has(\Bitrix\Clouds\EO_FileSave $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Clouds\EO_FileSave getByPrimary($primary)
     * @method \Bitrix\Clouds\EO_FileSave[] getAll()
     * @method bool remove(\Bitrix\Clouds\EO_FileSave $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Clouds\EO_FileSave_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Clouds\EO_FileSave current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_FileSave_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Clouds\FileSaveTable */
        public static $dataClass = '\\Bitrix\\Clouds\\FileSaveTable';
    }
    /**
     * @method static EO_FileSave_Query query()
     * @method static EO_FileSave_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_FileSave_Result getById($id)
     * @method static EO_FileSave_Result getList(array $parameters = array())
     * @method static EO_FileSave_Entity getEntity()
     * @method static \Bitrix\Clouds\EO_FileSave createObject($setDefaultValues = true)
     * @method static \Bitrix\Clouds\EO_FileSave_Collection createCollection()
     * @method static \Bitrix\Clouds\EO_FileSave wakeUpObject($row)
     * @method static \Bitrix\Clouds\EO_FileSave_Collection wakeUpCollection($rows)
     */
    class FileSaveTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_FileSave_Result exec()
     * @method \Bitrix\Clouds\EO_FileSave fetchObject()
     * @method \Bitrix\Clouds\EO_FileSave_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_FileSave_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Clouds\EO_FileSave fetchObject()
     * @method \Bitrix\Clouds\EO_FileSave_Collection fetchCollection()
     */
    class EO_FileSave_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Clouds\EO_FileSave createObject($setDefaultValues = true)
     * @method \Bitrix\Clouds\EO_FileSave_Collection createCollection()
     * @method \Bitrix\Clouds\EO_FileSave wakeUpObject($row)
     * @method \Bitrix\Clouds\EO_FileSave_Collection wakeUpCollection($rows)
     */
    class EO_FileSave_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_FileUpload
     * @see \Bitrix\Clouds\FileUploadTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getId()
     * @method \Bitrix\Clouds\EO_FileUpload setId(\string|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Clouds\EO_FileUpload setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Clouds\EO_FileUpload resetTimestampX()
     * @method \Bitrix\Clouds\EO_FileUpload unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \string getFilePath()
     * @method \Bitrix\Clouds\EO_FileUpload setFilePath(\string|\Bitrix\Main\DB\SqlExpression $filePath)
     * @method bool hasFilePath()
     * @method bool isFilePathFilled()
     * @method bool isFilePathChanged()
     * @method \string remindActualFilePath()
     * @method \string requireFilePath()
     * @method \Bitrix\Clouds\EO_FileUpload resetFilePath()
     * @method \Bitrix\Clouds\EO_FileUpload unsetFilePath()
     * @method \string fillFilePath()
     * @method \int getFileSize()
     * @method \Bitrix\Clouds\EO_FileUpload setFileSize(\int|\Bitrix\Main\DB\SqlExpression $fileSize)
     * @method bool hasFileSize()
     * @method bool isFileSizeFilled()
     * @method bool isFileSizeChanged()
     * @method \int remindActualFileSize()
     * @method \int requireFileSize()
     * @method \Bitrix\Clouds\EO_FileUpload resetFileSize()
     * @method \Bitrix\Clouds\EO_FileUpload unsetFileSize()
     * @method \int fillFileSize()
     * @method \string getTmpFile()
     * @method \Bitrix\Clouds\EO_FileUpload setTmpFile(\string|\Bitrix\Main\DB\SqlExpression $tmpFile)
     * @method bool hasTmpFile()
     * @method bool isTmpFileFilled()
     * @method bool isTmpFileChanged()
     * @method \string remindActualTmpFile()
     * @method \string requireTmpFile()
     * @method \Bitrix\Clouds\EO_FileUpload resetTmpFile()
     * @method \Bitrix\Clouds\EO_FileUpload unsetTmpFile()
     * @method \string fillTmpFile()
     * @method \int getBucketId()
     * @method \Bitrix\Clouds\EO_FileUpload setBucketId(\int|\Bitrix\Main\DB\SqlExpression $bucketId)
     * @method bool hasBucketId()
     * @method bool isBucketIdFilled()
     * @method bool isBucketIdChanged()
     * @method \int remindActualBucketId()
     * @method \int requireBucketId()
     * @method \Bitrix\Clouds\EO_FileUpload resetBucketId()
     * @method \Bitrix\Clouds\EO_FileUpload unsetBucketId()
     * @method \int fillBucketId()
     * @method \int getPartSize()
     * @method \Bitrix\Clouds\EO_FileUpload setPartSize(\int|\Bitrix\Main\DB\SqlExpression $partSize)
     * @method bool hasPartSize()
     * @method bool isPartSizeFilled()
     * @method bool isPartSizeChanged()
     * @method \int remindActualPartSize()
     * @method \int requirePartSize()
     * @method \Bitrix\Clouds\EO_FileUpload resetPartSize()
     * @method \Bitrix\Clouds\EO_FileUpload unsetPartSize()
     * @method \int fillPartSize()
     * @method \int getPartNo()
     * @method \Bitrix\Clouds\EO_FileUpload setPartNo(\int|\Bitrix\Main\DB\SqlExpression $partNo)
     * @method bool hasPartNo()
     * @method bool isPartNoFilled()
     * @method bool isPartNoChanged()
     * @method \int remindActualPartNo()
     * @method \int requirePartNo()
     * @method \Bitrix\Clouds\EO_FileUpload resetPartNo()
     * @method \Bitrix\Clouds\EO_FileUpload unsetPartNo()
     * @method \int fillPartNo()
     * @method \int getPartFailCounter()
     * @method \Bitrix\Clouds\EO_FileUpload setPartFailCounter(\int|\Bitrix\Main\DB\SqlExpression $partFailCounter)
     * @method bool hasPartFailCounter()
     * @method bool isPartFailCounterFilled()
     * @method bool isPartFailCounterChanged()
     * @method \int remindActualPartFailCounter()
     * @method \int requirePartFailCounter()
     * @method \Bitrix\Clouds\EO_FileUpload resetPartFailCounter()
     * @method \Bitrix\Clouds\EO_FileUpload unsetPartFailCounter()
     * @method \int fillPartFailCounter()
     * @method \string getNextStep()
     * @method \Bitrix\Clouds\EO_FileUpload setNextStep(\string|\Bitrix\Main\DB\SqlExpression $nextStep)
     * @method bool hasNextStep()
     * @method bool isNextStepFilled()
     * @method bool isNextStepChanged()
     * @method \string remindActualNextStep()
     * @method \string requireNextStep()
     * @method \Bitrix\Clouds\EO_FileUpload resetNextStep()
     * @method \Bitrix\Clouds\EO_FileUpload unsetNextStep()
     * @method \string fillNextStep()
     * @method \Bitrix\Clouds\EO_FileBucket getBucket()
     * @method \Bitrix\Clouds\EO_FileBucket remindActualBucket()
     * @method \Bitrix\Clouds\EO_FileBucket requireBucket()
     * @method \Bitrix\Clouds\EO_FileUpload setBucket(\Bitrix\Clouds\EO_FileBucket $object)
     * @method \Bitrix\Clouds\EO_FileUpload resetBucket()
     * @method \Bitrix\Clouds\EO_FileUpload unsetBucket()
     * @method bool hasBucket()
     * @method bool isBucketFilled()
     * @method bool isBucketChanged()
     * @method \Bitrix\Clouds\EO_FileBucket fillBucket()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Clouds\EO_FileUpload set($fieldName, $value)
     * @method \Bitrix\Clouds\EO_FileUpload reset($fieldName)
     * @method \Bitrix\Clouds\EO_FileUpload unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Clouds\EO_FileUpload wakeUp($data)
     */
    class EO_FileUpload
    {
        /* @var \Bitrix\Clouds\FileUploadTable */
        public static $dataClass = '\\Bitrix\\Clouds\\FileUploadTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_FileUpload_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \string[] getFilePathList()
     * @method \string[] fillFilePath()
     * @method \int[] getFileSizeList()
     * @method \int[] fillFileSize()
     * @method \string[] getTmpFileList()
     * @method \string[] fillTmpFile()
     * @method \int[] getBucketIdList()
     * @method \int[] fillBucketId()
     * @method \int[] getPartSizeList()
     * @method \int[] fillPartSize()
     * @method \int[] getPartNoList()
     * @method \int[] fillPartNo()
     * @method \int[] getPartFailCounterList()
     * @method \int[] fillPartFailCounter()
     * @method \string[] getNextStepList()
     * @method \string[] fillNextStep()
     * @method \Bitrix\Clouds\EO_FileBucket[] getBucketList()
     * @method \Bitrix\Clouds\EO_FileUpload_Collection getBucketCollection()
     * @method \Bitrix\Clouds\EO_FileBucket_Collection fillBucket()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Clouds\EO_FileUpload $object)
     * @method bool has(\Bitrix\Clouds\EO_FileUpload $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Clouds\EO_FileUpload getByPrimary($primary)
     * @method \Bitrix\Clouds\EO_FileUpload[] getAll()
     * @method bool remove(\Bitrix\Clouds\EO_FileUpload $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Clouds\EO_FileUpload_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Clouds\EO_FileUpload current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_FileUpload_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Clouds\FileUploadTable */
        public static $dataClass = '\\Bitrix\\Clouds\\FileUploadTable';
    }
    /**
     * @method static EO_FileUpload_Query query()
     * @method static EO_FileUpload_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_FileUpload_Result getById($id)
     * @method static EO_FileUpload_Result getList(array $parameters = array())
     * @method static EO_FileUpload_Entity getEntity()
     * @method static \Bitrix\Clouds\EO_FileUpload createObject($setDefaultValues = true)
     * @method static \Bitrix\Clouds\EO_FileUpload_Collection createCollection()
     * @method static \Bitrix\Clouds\EO_FileUpload wakeUpObject($row)
     * @method static \Bitrix\Clouds\EO_FileUpload_Collection wakeUpCollection($rows)
     */
    class FileUploadTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_FileUpload_Result exec()
     * @method \Bitrix\Clouds\EO_FileUpload fetchObject()
     * @method \Bitrix\Clouds\EO_FileUpload_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_FileUpload_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Clouds\EO_FileUpload fetchObject()
     * @method \Bitrix\Clouds\EO_FileUpload_Collection fetchCollection()
     */
    class EO_FileUpload_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Clouds\EO_FileUpload createObject($setDefaultValues = true)
     * @method \Bitrix\Clouds\EO_FileUpload_Collection createCollection()
     * @method \Bitrix\Clouds\EO_FileUpload wakeUpObject($row)
     * @method \Bitrix\Clouds\EO_FileUpload_Collection wakeUpCollection($rows)
     */
    class EO_FileUpload_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
    li
     * <li> FILE_PATH string(600) mandatory
     * <li> FILE_SIZE int optional
     * <li> FILE_MTIME datetime optional
     * <li> FILE_HASH string(50) optional
     * </ul>
     *
     * @package Bitrix\Clouds
     **/
    class FileHashTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for FILE_PATH field.
         *
         * @return array
         */
        public static function validateFilePath()
        {
        }
        /**
         * Returns validators for FILE_HASH field.
         *
         * @return array
         */
        public static function validateFileHash()
        {
        }
        /**
         * Stores file hashes to the database.
         *
         * @param integer $bucketId Clouds storage bucket identifier.
         * @param array $files File list as it returned by CCloudStorageBucket::ListFiles.
         *
         * @return Main\DB\Result
         * @see CCloudStorageBucket::ListFiles
         */
        public static function addList($bucketId, array $files)
        {
        }
        /**
         * Returns last stored key for given bucket.
         *
         * @param integer $bucketId Clouds storage bucket identifier.
         *
         * @return string
         */
        public static function getLastKey($bucketId)
        {
        }
        /**
         * Clears all stored file hashes for the bucket.
         *
         * @param integer $bucketId Clouds storage bucket identifier.
         *
         * @return Main\DB\Result
         */
        public static function deleteAll($bucketId)
        {
        }
    }
}
namespace {
    class CSearchFullText
    {
        /**
         * @var CSearchFullText
         */
        protected static $instance = \null;
        /**
         * Returns current instance of the full text indexer.
         *
         * @return CSearchFullText
         */
        public static function getInstance()
        {
        }
        public function connect($connectionString)
        {
        }
        public function truncate()
        {
        }
        public function deleteById($ID)
        {
        }
        public function replace($ID, $arFields)
        {
        }
        public function update($ID, $arFields)
        {
        }
        public function search($arParams, $aSort, $aParamsEx, $bTagsCloud)
        {
        }
        function searchTitle($phrase = "", $arPhrase = array(), $nTopCount = 5, $arParams = array(), $bNotFilter = \false, $order = "")
        {
        }
        public function getErrorText()
        {
        }
        public function getErrorNumber()
        {
        }
        function getRowFormatter()
        {
        }
    }
    class CSearchStemTable extends \CSearchFullText
    {
        public function connect($connectionIndex, $indexName = "")
        {
        }
        public function truncate()
        {
        }
        public function deleteById($ID)
        {
        }
        public function replace($ID, $arFields)
        {
        }
        public static function DelayStemIndex($ID)
        {
        }
        private static function _addAgent()
        {
        }
        public static function DelayedStemIndex()
        {
        }
    }
    class CSearchLanguage
    {
        var $_abc = array();
        var $_lang_id;
        var $_lang_bigramm_cache;
        var $_trigrams = array();
        var $_has_bigramm_info = \null;
        var $_bigrams = \null;
        function __construct($lang_id)
        {
        }
        //Function loads language class
        static function GetLanguage($sLang)
        {
        }
        //Reads file with trigrams (combinations not allowed in the words)
        function LoadTrigrams($dir_name)
        {
        }
        function HasTrigrams()
        {
        }
        //Check phrase against trigrams
        function CheckTrigrams($arScanCodes)
        {
        }
        //This function returns positions of the letters
        //on the keyboard. This one is default English layout
        function GetKeyboardLayout()
        {
        }
        function ConvertFromScancode($arScancode)
        {
        }
        function StrToArray($str)
        {
        }
        //This function converts text between layouts
        static function ConvertKeyboardLayout($text, $from, $to)
        {
        }
        //This function converts text into array of character positions
        //on the keyboard. Not defined chars turns into "false" value.
        function ConvertToScancode($text, $strict = \false, $binary = \false)
        {
        }
        function PreGuessLanguage($text, $lang = \false)
        {
        }
        public static function GuessLanguage($text, $lang = \false)
        {
        }
        //Compare to results of text analysis
        static function cmp($a, $b)
        {
        }
        //Function returns distance of the text (sequence of scan codes)
        //from language model
        function GetDeviation($arScanCodes)
        {
        }
        //Function returns bigramms of the text (array of scancodes)
        //For example "FAT RAT" will be
        //array("FA", "AT", "RA", "AT")
        //This is model of the text
        function ConvertToBigramms($arScancodes)
        {
        }
        function HasBigrammInfo()
        {
        }
        //Function returns model of the language
        function GetBigrammScancodeFreq()
        {
        }
    }
    class CSearchLanguageRu extends \CSearchLanguage
    {
        function GetKeyboardLayout()
        {
        }
        function GetBigrammLetterFreq()
        {
        }
    }
    class CSearchSphinx extends \CSearchFullText
    {
        public $arForumTopics = array();
        public $db = \false;
        private static $fields = array("title" => "field", "body" => "field", "module_id" => "uint", "module" => "string", "item_id" => "uint", "item" => "string", "param1_id" => "uint", "param1" => "string", "param2_id" => "uint", "param2" => "string", "date_change" => "timestamp", "date_from" => "timestamp", "date_to" => "timestamp", "custom_rank" => "uint", "tags" => "mva", "right" => "mva", "site" => "mva", "param" => "mva");
        private static $typesMap = array("timestamp" => "rt_attr_timestamp", "string" => "rt_attr_string", "bigint" => "rt_attr_bigint", "uint" => "rt_attr_uint", "field" => "rt_field", "mva" => "rt_attr_multi");
        private $errorText = "";
        private $errorNumber = 0;
        private $recodeToUtf = \false;
        public $tags = "";
        public $query = "";
        public $SITE_ID = "";
        public $connectionIndex = "";
        public $indexName = "";
        public function connect($connectionIndex, $indexName = "", $ignoreErrors = \false)
        {
        }
        public function truncate()
        {
        }
        public function deleteById($ID)
        {
        }
        public function recodeTo($text)
        {
        }
        public function recodeFrom($text)
        {
        }
        public function replace($ID, $arFields)
        {
        }
        public function update($ID, $arFields)
        {
        }
        function tags($arLID, $sContent)
        {
        }
        function tagsRegister($arLID, $sContent)
        {
        }
        function tagsFromArray($arTags)
        {
        }
        function rights($arRights)
        {
        }
        function sites($arSites)
        {
        }
        function params($arParams)
        {
        }
        public function getErrorText()
        {
        }
        public function getErrorNumber()
        {
        }
        public function search($arParams, $aSort, $aParamsEx, $bTagsCloud)
        {
        }
        function searchTitle($phrase = "", $arPhrase = array(), $nTopCount = 5, $arParams = array(), $bNotFilter = \false, $order = "")
        {
        }
        function getRowFormatter()
        {
        }
        function filterField($field, $value, $inSelect)
        {
        }
        function prepareFilter($arFilter, $inSelect = \false)
        {
        }
        function CheckPermissions()
        {
        }
        function __PrepareSort($aSort = array())
        {
        }
        public function Escape($str)
        {
        }
        public function Escape2($str)
        {
        }
        protected function canConnect()
        {
        }
        protected function internalConnect($connectionIndex, &$error)
        {
        }
        public function query($query)
        {
        }
        public function fetch($queryResult)
        {
        }
        public function getError()
        {
        }
    }
    class CSearchFormatter
    {
        function format($r)
        {
        }
    }
    class CSearchSphinxFormatter extends \CSearchFormatter
    {
        /** @var CSearchSphinx */
        private $sphinx = \null;
        function __construct($sphinx)
        {
        }
        function format($r)
        {
        }
        function formatTagsRow($r)
        {
        }
        function formatRow($r)
        {
        }
        public function buildExcerpts($str)
        {
        }
    }
    class CSearchMysql extends \CSearchFullText
    {
        protected $error = "";
        protected $errorno = 0;
        public function connect($connectionString = '')
        {
        }
        public function truncate()
        {
        }
        public function deleteById($ID)
        {
        }
        public function replace($ID, $arFields)
        {
        }
        public function search($arParams, $aSort, $aParamsEx, $bTagsCloud)
        {
        }
        function searchTitle($phrase = "", $arPhrase = array(), $nTopCount = 5, $arParams = array(), $bNotFilter = \false, $order = "")
        {
        }
        public function getErrorText()
        {
        }
        public function getErrorNumber()
        {
        }
        function getRowFormatter()
        {
        }
        function __PrepareSort($aSort = array(), $strSearchContentAlias = "sc.", $bTagsCloud = \false)
        {
        }
        function PrepareQuery($queryObject, $q)
        {
        }
    }
    class CSearchMySqlFormatter extends \CSearchFormatter
    {
        function format($r)
        {
        }
        function formatRow($r)
        {
        }
    }
    class CSearchLanguageEn extends \CSearchLanguage
    {
        function GetKeyboardLayout()
        {
        }
        function GetBigrammLetterFreq()
        {
        }
    }
    class search extends \CModule
    {
        var $MODULE_ID = "search";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $errors;
        function search()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        public static function OnGetTableList()
        {
        }
        public static function OnGetTableSchema()
        {
        }
    }
    class CAllSearchTitle extends \CDBResult
    {
        var $_arPhrase = array();
        var $_arStemFunc;
        var $minLength = 1;
        function __construct()
        {
        }
        function Search($phrase = "", $nTopCount = 5, $arParams = array(), $bNotFilter = \false, $order = "")
        {
        }
        function getRankFunction($phrase)
        {
        }
        function setMinWordLength($minLength)
        {
        }
        function Fetch()
        {
        }
        public static function MakeFilterUrl($prefix, $arFilter)
        {
        }
        function searchTitle($phrase = "", $nTopCount = 5, $arParams = array(), $bNotFilter = \false, $order = "")
        {
        }
    }
    class CSearchCustomRank
    {
        var $LAST_ERROR = "";
        public static function GetList($aSort = array(), $aFilter = array())
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function Delete($ID)
        {
        }
        function CheckFields($arFields)
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function StartUpdate()
        {
        }
        function NextUpdate()
        {
        }
        public static function __GetParam($lang, $site_id, $module_id = \false, $param1 = \false, $param2 = \false, $item_id = \false)
        {
        }
        public static function ModulesList()
        {
        }
        public static function ModulesSelectBox($sFieldName, $sValue, $sDefaultValue = "", $sFuncName = "", $field = "class=\"typeselect\"")
        {
        }
    }
    class CSearchUser
    {
        protected $_user_id;
        function __construct($user_id)
        {
        }
        public static function OnAfterUserUpdate(&$arFields)
        {
        }
        public static function DeleteByUserID($USER_ID)
        {
        }
        public static function CheckCurrentUserGroups()
        {
        }
        function IsGroupsExists()
        {
        }
        function DeleteGroups()
        {
        }
        function AddGroups($arGroups)
        {
        }
        function SetGroups($arGroups)
        {
        }
    }
    class CAllSearch extends \CDBResult
    {
        var $Query;
        //Query parset
        var $Statistic;
        //Search statistic
        var $strQueryText = \false;
        //q
        var $strTagsText = \false;
        //tags
        var $strSqlWhere = "";
        //additional sql filter
        var $strTags = "";
        //string of tags in double quotes separated by commas
        var $errorno = 0;
        var $error = \false;
        var $arParams = array();
        var $url_add_params = array();
        //additional url params (OnSearch event)
        var $tf_hwm = 0;
        var $tf_hwm_site_id = "";
        var $_opt_ERROR_ON_EMPTY_STEM = \false;
        var $_opt_NO_WORD_LOGIC = \false;
        var $offset = \false;
        var $limit = \false;
        var $bUseRatingSort = \false;
        var $flagsUseRatingSort = 0;
        /** @var CSearchFormatter */
        var $formatter = \null;
        function __construct($strQuery = \false, $SITE_ID = \false, $MODULE_ID = \false, $ITEM_ID = \false, $PARAM1 = \false, $PARAM2 = \false, $aSort = array(), $aParamsEx = array(), $bTagsCloud = \false)
        {
        }
        function CSearch($strQuery = \false, $LID = \false, $MODULE_ID = \false, $ITEM_ID = \false, $PARAM1 = \false, $PARAM2 = \false, $aSort = array(), $aParamsEx = array(), $bTagsCloud = \false)
        {
        }
        //combination ($MODULE_ID, $PARAM1, $PARAM2, $PARAM3) is used to narrow search
        //returns recordset with search results
        function Search($arParams, $aSort = array(), $aParamsEx = array(), $bTagsCloud = \false)
        {
        }
        function SetOptions($arOptions)
        {
        }
        function SetOffset($offset)
        {
        }
        function SetLimit($limit)
        {
        }
        function GetFilterMD5()
        {
        }
        function chr($a)
        {
        }
        function GetFreqStatistics($lang_id, $arStem, $site_id = "")
        {
        }
        function Repl($strCond, $strType, $strWh)
        {
        }
        function PrepareSearchResult($str)
        {
        }
        function NavStart($nPageSize = 0, $bShowAll = \true, $iNumPage = \false)
        {
        }
        function Fetch()
        {
        }
        public static function CheckPath($path)
        {
        }
        public static function GetGroupCached()
        {
        }
        public static function QueryMnogoSearch(&$xml)
        {
        }
        //////////////////////////////////
        //reindex the whole server content
        //$bFull = true - no not check change_date. all index tables will be truncated
        //       = false - add new ones. update changed and delete deleted.
        public static function ReIndexAll($bFull = \false, $max_execution_time = 0, $NS = array(), $clear_suggest = \false)
        {
        }
        public static function ReindexModule($MODULE_ID, $bFull = \false)
        {
        }
        public static function GetIndex($MODULE_ID, $ITEM_ID)
        {
        }
        //index one item (forum message, news, etc.)
        //combination of ($MODULE_ID, $ITEM_ID) is used to determine the documents
        public static function Index($MODULE_ID, $ITEM_ID, $arFields, $bOverWrite = \false, $SEARCH_SESS_ID = "")
        {
        }
        public static function KillEntities($str)
        {
        }
        public static function ReindexFile($path, $SEARCH_SESS_ID = "")
        {
        }
        public static function RecurseIndex($path = array(), $max_execution_time = 0, &$NS)
        {
        }
        public static function RemovePHP($str)
        {
        }
        public static function KillTags($str)
        {
        }
        public static function OnChangeFile($path, $site)
        {
        }
        public static function OnGroupDelete($ID)
        {
        }
        public static function __PrepareFilter($arFilter, &$bIncSites, $strSearchContentAlias = "sc.")
        {
        }
        function __PrepareSort($aSort = array(), $strSearchContentAlias = "sc.", $bTagsCloud = \false)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function OnChangeFilePermissions($path, $permission = array(), $old_permission = array(), $arGroups = \false)
        {
        }
        public static function SetContentItemGroups($index_id, $arGroups)
        {
        }
        public static function CheckPermissions($FIELD = "sc.ID")
        {
        }
        public static function SetContentItemParams($index_id, $arParams)
        {
        }
        public static function GetContentItemParams($index_id, $param_name = \false)
        {
        }
        function stddev($arValues)
        {
        }
        function normdev($words_count)
        {
        }
        public static function DeleteOld($SESS_ID, $MODULE_ID = "", $SITE_ID = "")
        {
        }
        public static function DeleteForReindex($MODULE_ID)
        {
        }
        public static function DeleteIndex($MODULE_ID, $ITEM_ID = \false, $PARAM1 = \false, $PARAM2 = \false, $SITE_ID = \false)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function UpdateSite($ID, $arSITE_ID)
        {
        }
        public static function ChangeIndex($MODULE_ID, $arFields, $ITEM_ID = \false, $PARAM1 = \false, $PARAM2 = \false, $SITE_ID = \false)
        {
        }
        public static function ChangeSite($MODULE_ID, $arSite, $ITEM_ID = \false, $PARAM1 = \false, $PARAM2 = \false, $SITE_ID = \false)
        {
        }
        public static function ChangePermission($MODULE_ID, $arGroups, $ITEM_ID = \false, $PARAM1 = \false, $PARAM2 = \false, $SITE_ID = \false, $PARAMS = \false)
        {
        }
    }
    class CSearchSQLHelper
    {
        var $bIncSites = \false;
        var $strSearchContentAlias = "";
        function __construct($strSearchContentAlias)
        {
        }
        function _CallbackURL($field_name, $operation, $field_value)
        {
        }
        function _CallbackPARAMS($field_name, $operation, $field_value)
        {
        }
    }
    class CAllSearchQuery
    {
        var $m_query;
        var $m_parsed_query;
        var $m_words;
        var $m_stemmed_words;
        var $m_stemmed_words_id;
        var $m_fields;
        var $m_kav;
        var $default_query_type;
        var $rus_bool_lang;
        var $no_bool_lang;
        var $m_casematch;
        var $error = "";
        var $errorno = 0;
        var $bTagsSearch = \false;
        var $m_tags_words;
        var $bStemming = \false;
        var $bText = \false;
        function __construct($default_query_type = "and", $rus_bool_lang = "yes", $m_casematch = 0, $site_id = "")
        {
        }
        function GetQueryString($fields, $query, $bTagsSearch = \false, $bUseStemming = \true, $bErrorOnEmptyStem = \false)
        {
        }
        function CutKav($query)
        {
        }
        function ParseQ($q)
        {
        }
        function ParseStr($qwe)
        {
        }
        function StemWord($w)
        {
        }
        function StemQuery($q, $lang = "en")
        {
        }
        function PrepareQuery($q)
        {
        }
    }
    class CSearchCallback
    {
        var $MODULE = "";
        var $max_execution_time = 0;
        var $CNT = 0;
        var $SESS_ID = "";
        function Index($arFields)
        {
        }
    }
    class CSearchStatistic
    {
        var $phrase_id = 0;
        var $_phrase = \false;
        var $_tags = \false;
        var $_session_id = "";
        var $_stat_sess_id = \false;
        function __construct($phrase = "", $tags = "")
        {
        }
        function PhraseStat($result_count = 0, $page_num = 0)
        {
        }
        public static function GetList($arOrder = \false, $arFilter = \false, $arSelect = \false, $bGroup = \false)
        {
        }
        public static function CleanUpAgent()
        {
        }
        public static function IsActive()
        {
        }
        public static function SetActive($bActive = \false)
        {
        }
        public static function GetCurrentURL()
        {
        }
        public static function OnEpilog()
        {
        }
    }
    class CSearchTags
    {
        public static function GetList($arSelect = array(), $arFilter = array(), $arOrder = array(), $limit = 100)
        {
        }
        public static function CleanCache($arTags = "", $content_id = \false)
        {
        }
    }
    class CAllSiteMap extends \CDBResult
    {
        var $m_href = "";
        //URL for result
        var $m_error = "";
        //Error message
        var $m_events = array();
        //Events cache
        var $m_errors_count = 0;
        //Number of wrong URLs
        var $m_errors_href = "";
        //URL for errors file
        function Create($site_id, $max_execution_time, $NS, $arOptions = array())
        {
        }
        function Fetch()
        {
        }
        function URLEncode($str, $charset)
        {
        }
        function LocationEncode($str)
        {
        }
        function TimeEncode($iTime)
        {
        }
        function GetURLs($site_id, $ID, $limit = 0)
        {
        }
    }
    class CSearchItem extends \CDBResult
    {
        function GetList($arOrder = array(), $arFilter = array(), $arSelect = array())
        {
        }
        function Fetch()
        {
        }
    }
    class CSearchParameters
    {
        public static function ConvertParamsToFilter($arParams, $strFilterParamName)
        {
        }
        public static function GetFilterDropDown($bFilter = \false)
        {
        }
        public static function GetModulesList()
        {
        }
        public static function AddFilterParams(&$arComponentParameters, $arCurrentValues, $name, $parent, $MULTIPLE = "Y")
        {
        }
        protected static function _main($arParam)
        {
        }
        protected static function _forum($arParam)
        {
        }
        protected static function _iblock($arParam, $strFILTER)
        {
        }
        protected static function _blog($arParam)
        {
        }
        protected static function _socialnetwork($arParam)
        {
        }
        protected static function _socialnetwork_user($arParam)
        {
        }
    }
    class CSearchTitle extends \CAllSearchTitle
    {
        function searchTitle($phrase = "", $nTopCount = 5, $arParams = array(), $bNotFilter = \false, $order = "")
        {
        }
        function getRankFunction($phrase)
        {
        }
        function getSqlOrder($bOrderByRank)
        {
        }
    }
    class CSearchSuggest
    {
        var $_filter_md5 = "";
        var $_phrase = "";
        function __construct($strFilterMD5 = "", $phrase = "")
        {
        }
        function CSearchSuggest($strFilterMD5 = "", $phrase = "")
        {
        }
        function SetResultCount($result_count)
        {
        }
        function GetList($nTopCount, $site_id = \null)
        {
        }
        function CleanUpAgent()
        {
        }
    }
    class CSearch extends \CAllSearch
    {
        /*
        var $arForumTopics = array();
        
        function DBNavStart()
        {
        	//total rows count
        	$this->NavRecordCount = mysql_num_rows($this->result);
        	if($this->NavRecordCount < 1)
        		return;
        
        	if($this->NavShowAll)
        		$this->NavPageSize = $this->NavRecordCount;
        
        	//calculate total pages depend on rows count. start with 1
        	$this->NavPageCount = floor($this->NavRecordCount/$this->NavPageSize);
        	if($this->NavRecordCount % $this->NavPageSize > 0)
        		$this->NavPageCount++;
        
        	//page number to display. start with 1
        	$this->NavPageNomer = ($this->PAGEN < 1 || $this->PAGEN > $this->NavPageCount? ($_SESSION[$this->SESS_PAGEN] < 1 || $_SESSION[$this->SESS_PAGEN] > $this->NavPageCount? 1:$_SESSION[$this->SESS_PAGEN]):$this->PAGEN);
        
        	//rows to skip
        	$NavFirstRecordShow = $this->NavPageSize * ($this->NavPageNomer-1);
        	$NavLastRecordShow = $this->NavPageSize;
        
        	if($this->SqlTraceIndex)
        	{
        		list($usec, $sec) = explode(" ", microtime());
        		$start_time = ((float)$usec + (float)$sec);
        	}
        
        	while($NavFirstRecordShow > 0)
        	{
        		if(($res = mysql_fetch_array($this->result, MYSQL_ASSOC)))
        		{
        			if(
        				$res["MODULE_ID"] == "forum"
        				&& array_key_exists($res["PARAM2"], $this->arForumTopics)
        			)
        				$this->NavRecordCount--; //eat forum topic duplicates
        			elseif(
        				$res["module"] == "forum"
        				&& array_key_exists($res["param2"], $this->arForumTopics)
        			)
        				$this->NavRecordCount--; //eat forum topic duplicates
        			else
        				$NavFirstRecordShow--;
        
        			if($res["MODULE_ID"] == "forum")
        				$this->arForumTopics[$res["PARAM2"]] = true;
        			elseif($res["module"] == "forum")
        				$this->arForumTopics[$res["param2"]] = true;
        		}
        		else
        		{
        			break;
        		}
        	}
        
        	$temp_arrray = array();
        	while($NavLastRecordShow > 0)
        	{
        		if(($res = mysql_fetch_array($this->result, MYSQL_ASSOC)))
        		{
        			if(
        				$res["MODULE_ID"] == "forum"
        				&& array_key_exists($res["PARAM2"], $this->arForumTopics)
        			)
        				$this->NavRecordCount--; //eat forum topic duplicates
        			elseif(
        				$res["module"] == "forum"
        				&& array_key_exists($res["param2"], $this->arForumTopics)
        			)
        				$this->NavRecordCount--; //eat forum topic duplicates
        			else
        			{
        				if($this->arUserMultyFields)
        					foreach($this->arUserMultyFields as $FIELD_NAME=>$flag)
        						if($res[$FIELD_NAME])
        							$res[$FIELD_NAME] = unserialize($res[$FIELD_NAME]);
        				$temp_arrray[] = $res;
        				$NavLastRecordShow--;
        			}
        
        			if($res["MODULE_ID"] == "forum")
        				$this->arForumTopics[$res["PARAM2"]] = true;
        			elseif($res["module"] == "forum")
        				$this->arForumTopics[$res["param2"]] = true;
        		}
        		else
        		{
        			break;
        		}
        	}
        
        	//Adjust total pages depend on rows count. start with 1
        	$this->NavPageCount = floor($this->NavRecordCount/$this->NavPageSize);
        	if($this->NavRecordCount % $this->NavPageSize > 0)
        		$this->NavPageCount++;
        
        	if($this->SqlTraceIndex)
        	{
        		list($usec, $sec) = explode(" ", microtime());
        		$end_time = ((float)$usec + (float)$sec);
        		$exec_time = round($end_time-$start_time, 10);
        		$GLOBALS["DB"]->arQueryDebug[$this->SqlTraceIndex - 1]["TIME"] += $exec_time;
        		$GLOBALS["DB"]->timeQuery += $exec_time;
        	}
        
        	$this->nSelectedCount = $this->NavRecordCount;
        	$this->arResult = $temp_arrray;
        }
        */
        function MakeSQL($query, $strSqlWhere, $strSort, $bIncSites, $bStem)
        {
        }
        function tagsMakeSQL($query, $strSqlWhere, $strSort, $bIncSites, $bStem, $limit = 100)
        {
        }
        public static function ReindexLock()
        {
        }
        public static function OnLangDelete($lang)
        {
        }
        public static function FormatDateString($strField)
        {
        }
        public static function FormatLimit($strSql, $limit)
        {
        }
        public static function CleanFreqCache($ID)
        {
        }
        public static function IndexTitle($arLID, $ID, $sTitle)
        {
        }
        public static function RegisterStem($stem)
        {
        }
        public static function StemIndex($arLID, $ID, $sContent)
        {
        }
        public static function TagsIndex($arLID, $ID, $sContent)
        {
        }
        public static function UpdateSite($ID, $arSITE_ID)
        {
        }
    }
    class CSearchQuery extends \CAllSearchQuery
    {
        var $cnt = 0;
        function BuildWhereClause($word)
        {
        }
    }
    class CSiteMap extends \CAllSiteMap
    {
        function GetURLs($site_id, $ID, $limit = 0)
        {
        }
    }
    class webservice extends \CModule
    {
        var $MODULE_ID = "webservice";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_GROUP_RIGHTS = "N";
        public function __construct()
        {
        }
        function DoInstall()
        {
        }
        function InstallFiles()
        {
        }
        function InstallDB()
        {
        }
        function InstallEvents()
        {
        }
        function DoUninstall()
        {
        }
        function UnInstallDB()
        {
        }
        function UnInstallFiles()
        {
        }
        function UnInstallEvents()
        {
        }
    }
    class CCheckAuthWS extends \IWebService
    {
        function CheckAuthorization($user, $password)
        {
        }
        function GetHTTPUserInfo()
        {
        }
        function GetWebServiceDesc()
        {
        }
        function TestComponent()
        {
        }
    }
    class CSaleWS extends \IWebService
    {
        function CheckAuth()
        {
        }
        function GetLiveFeedData($site_id = "", $lang = "en")
        {
        }
        function GetWebServiceDesc()
        {
        }
    }
    class CStatisticWS extends \IWebService
    {
        function CheckAuth()
        {
        }
        function UsersOnline()
        {
        }
        function GetCommonValues()
        {
        }
        function GetAdv()
        {
        }
        function GetEvents()
        {
        }
        function GetPhrases()
        {
        }
        function GetRefSites()
        {
        }
        function GetSearchers()
        {
        }
        function GetLiveFeedData($site_id = "", $lang = "en")
        {
        }
        function GetWebServiceDesc()
        {
        }
    }
    class CXMLCreator
    {
        var $tag;
        var $data;
        var $startCDATA = "";
        var $endCDATA = "";
        var $attributs = array();
        var $children = array();
        function CXMLCreator($tag, $cdata = \false)
        {
        }
        // format of $heavyTag = '[Index:]TagName [asd:qwe="asd"] [zxc:dfg="111"]'
        // returns created CXMLCreator node with setted TagName and Attributes
        function createTagAttributed($heavyTag, $value = \null)
        {
        }
        /* static */
        function encodeValueLight($name, $value)
        {
        }
        function setCDATA()
        {
        }
        function setAttribute($attrName, $attrValue)
        {
        }
        function setData($data)
        {
        }
        function setName($tag)
        {
        }
        function addChild($element)
        {
        }
        function getChildrenCount()
        {
        }
        function _getAttributs()
        {
        }
        function _getChildren()
        {
        }
        function getXML()
        {
        }
        function getXMLHeader()
        {
        }
        function __destruct()
        {
        }
        /* static */
        function CreateFromDOM($dom)
        {
        }
        /* static */
        function __createFromDOM($domNode)
        {
        }
        public static function xmlspecialchars($str)
        {
        }
        public static function xmlspecialcharsback($str)
        {
        }
    }
    class CWebServiceDesc
    {
        var $wsname;
        // webservice name
        var $wsclassname;
        // webservice class wrapper (i-face implementor) name
        var $wsdlauto;
        // boolean, automatic generating wsdl
        var $wstargetns;
        // target namespace
        var $wsendpoint;
        /*
         * Return info about $reflect method, class, para,
         * For method:
         * 	classname=>method
         *
         * 	must contain array(
         * 		"name"	=> string,
         * 		"documentation" => "Description"
         * 		"input" => array(..),
         * 		"output" => array(..)
         * 		)
         * 	Input in method: list of para's.
         * 		array(
         * 			"name" => "type",
         * 			...
         * 		)
         * 	Output in method:
         * 		1) "simpleType" => "type"
         * 		2) "complexType" => array[] of structModuleSoapRetData declared by output array.
         * */
        var $classes;
        // class methods for soap
        /*
         * On next two, syntax same as for $classes, but:
         *
         */
        var $structTypes;
        // complex assoc array data types.
        var $classTypes;
        // complex class data struct. when soaped. must be unserialized to class.
        ////////////////////// registrating
        var $_wsdlci;
        // wsdlcreator instance class
        var $_soapsi;
    }
    class CWebService
    {
        function SetComponentContext($arParams)
        {
        }
        function GetComponentContext($arParams)
        {
        }
        function SOAPServerProcessRequest($wsname)
        {
        }
        function RegisterWebService($className)
        {
        }
        function GetSOAPServerRequest($wsname)
        {
        }
        function GetSOAPServerResponse($wsname)
        {
        }
        function MethodRequireHTTPAuth($class, $method)
        {
        }
        function TestComponent($wsname)
        {
        }
        function GetWSDL($wsname)
        {
        }
        function GetDefaultEndpoint()
        {
        }
        function GetDefaultTargetNS()
        {
        }
        function &GetWebServiceDeclaration($className)
        {
        }
        function &GetInterface($className)
        {
        }
    }
    class CSOAPServerResponser
    {
        function OnBeforeRequest(&$cserver)
        {
        }
        /* $cserver->RawPostData */
        function OnAfterResponse(&$cserver)
        {
        }
        /*
         * If function returns true, chain of ProcessRequest ends.
         * If function returns true, this means function already passed It's value to ShowResponse handler
         * If returns false, then next item in a chain will be called.
         * Result Value must be set to $cserver->ResponseValue 
         */
        function ProcessRequestHeader(&$cserver, $header)
        {
        }
        /* stub, never used */
        function ProcessRequestBody(&$cserver, $body)
        {
        }
    }
    class CWSSOAPResponser extends \CSOAPServerResponser
    {
        /*
         * typename => name => array()
         * funcname => parameters => array()
         * Array can contain:
         * 	serialize => class/assoc array.
         * 	varType, arrType
         * */
        var $TypensVars;
        /// message => function
        var $MessageTags;
        /// Contains a list over registered functions
        var $FunctionList;
        function RegisterFunction($name, $params = array())
        {
        }
        /*
         * $complex = array( "typename" => array( paraname => array(type desc, valType)))
         */
        function RegisterComplexType($complex)
        {
        }
        function ProcessRequestBody(&$cserver, $body)
        {
        }
        function ShowResponse(&$cserver, $functionName, $namespaceURI, &$value)
        {
        }
    }
    class CSOAPServer
    {
        /// Contains the RAW HTTP post data information
        var $RawPostData;
        var $RawPayloadData;
        /// Consists of instances of CSOAPServerResponser
        var $OnRequestEvent = array();
        function CSOAPServer()
        {
        }
        function GetRequestData()
        {
        }
        function GetResponseData()
        {
        }
        function AddServerResponser(&$respobject)
        {
        }
        // $valueEncoded type of CXMLCreator
        function ShowRawResponse($valueEncoded, $wrapEnvelope = \false)
        {
        }
        function ShowResponse($functionName, $namespaceURI, $valueName, &$value)
        {
        }
        /* static */
        function ShowSOAPFault($errorString)
        {
        }
        /**
        	Processes the SOAP request and prints out the
        	propper response.
        */
        function ProcessRequest()
        {
        }
        function stripHTTPHeader($data)
        {
        }
    }
    class CSOAPEnvelope
    {
        var $Header;
        var $Body;
        function CSOAPEnvelope()
        {
        }
    }
    class CSOAPResponse extends \CSOAPEnvelope
    {
        /// Contains the response value
        var $Value = \false;
        var $ValueName = 0;
        /// Contains the response type
        var $Type = \false;
        /// Contains fault string
        var $FaultString = \false;
        /// Contains the fault code
        var $FaultCode = \false;
        /// Contains true if the response was an fault
        var $IsFault = \false;
        /// Contains the name of the response, i.e. function call name
        var $Name;
        /// Contains the target namespace for the response
        var $Namespace;
        var $typensVars = array();
        /// Contains the DOM document for the current SOAP response
        var $DOMDocument = \false;
        function CSOAPResponse($name = "", $namespace = "")
        {
        }
        //	Decodes the SOAP response stream
        function decodeStream($request, $stream)
        {
        }
        // Decodes a DOM node and returns the PHP datatype instance of it.
        function decodeDataTypes($node, $complexDataTypeName = "")
        {
        }
        //	  Returns the XML payload for the response.
        function payload()
        {
        }
        //	 Strips the header information from the HTTP raw response.
        function stripHTTPHeader($data)
        {
        }
        function value()
        {
        }
        function setValue($value)
        {
        }
        function setValueName($valname)
        {
        }
        function isFault()
        {
        }
        function faultCode()
        {
        }
        function faultString()
        {
        }
        function setTypensVars($vars)
        {
        }
    }
    class CSOAPCodec
    {
        var $outputVars = array();
        var $typensVars = array();
        function CSOAPCodec()
        {
        }
        function setTypensVars($vars)
        {
        }
        function setOutputVars($functionName)
        {
        }
        function _validateSimpleType($dataType, $value)
        {
        }
        function _validateClassType($classType, $value)
        {
        }
        function _validateType($dataType, $value)
        {
        }
        function _errorTypeValidation($dataType, $value)
        {
        }
        // Encodes a PHP variable into a SOAP datatype.
        function encodeValue($name, $value, $complexDataTypeName = "")
        {
        }
    }
    class CSOAPClient
    {
        /// The name or IP of the server to communicate with
        var $Server;
        /// The path to the SOAP server
        var $Path;
        /// The port of the server to communicate with.
        var $Port;
        /// How long to wait for the call.
        var $Timeout = 0;
        /// HTTP login for HTTP authentification
        var $Login;
        /// HTTP password for HTTP authentification
        var $Password;
        var $SOAPRawRequest;
        var $SOAPRawResponse;
        function CSOAPClient($server, $path = '/', $port = 80)
        {
        }
        /*!
        	  Sends a SOAP message and returns the response object.
        	*/
        function send($request)
        {
        }
        function setTimeout($timeout)
        {
        }
        function setLogin($login)
        {
        }
        function getRawRequest()
        {
        }
        function getRawResponse()
        {
        }
        function login()
        {
        }
        function setPassword($password)
        {
        }
        function password()
        {
        }
    }
    class CSOAPRequest extends \CSOAPEnvelope
    {
        /// The request name
        var $Name;
        /// The request target namespace
        var $Namespace;
        /// Headers
        var $Headers = array();
        /// Additional body element attributes.
        var $BodyAttributes = array();
        /// Contains the request parameters
        var $Parameters = array();
        function CSOAPRequest($name = "", $namespace = "", $parameters = array())
        {
        }
        function name()
        {
        }
        function get_namespace()
        {
        }
        function GetSOAPAction($separator = '/')
        {
        }
        function addSOAPHeader($name, $value)
        {
        }
        //     Adds a new attribute to the body element.
        function addBodyAttribute($name, $value)
        {
        }
        //      Adds a new parameter to the request. You have to provide a prameter name
        //      and value.
        function addParameter($name, $value)
        {
        }
        //      Returns the request payload
        function payload()
        {
        }
    }
    class CSOAPHeader
    {
        var $Headers = array();
        function CSOAPHeader()
        {
        }
        function addHeader()
        {
        }
    }
    class CSOAPBody
    {
        function CSOAPBody()
        {
        }
    }
    class CSOAPParameter
    {
        var $Name;
        var $Value;
        function CSOAPParameter($name, $value)
        {
        }
        function setName($name)
        {
        }
        function name()
        {
        }
        function setValue($value)
        {
        }
        function value()
        {
        }
    }
    class CSOAPFault
    {
        var $FaultCode;
        var $FaultString;
        var $detail;
        function CSOAPFault($faultCode = "", $faultString = "", $detail = '')
        {
        }
        function faultCode()
        {
        }
        function faultString()
        {
        }
        function detail()
        {
        }
    }
    class CSPListsClient extends \CSOAPClient
    {
        protected $bInit = \false;
        protected $RESPONSE;
        protected $arConnectionParams = array();
        protected $ATTACHMENTS_PATH = '/upload/sharepoint';
        /* public section */
        public function __construct($arParams)
        {
        }
        public function SetConnectionParams($arParams)
        {
        }
        public function Call($method, $arParams = array())
        {
        }
        /* ws methods functions */
        public function GetListCollection()
        {
        }
        protected function _GetByID_query($XML_ID)
        {
        }
        public function GetByID($listName, $XML_ID)
        {
        }
        public function GetList($listName)
        {
        }
        /*
        	Paging work algorithm:
        
        	1. No changeToken
        	1.1. Send Query w/o changeToken (TOKEN) and with rowLimit (NUM_ROWS);
        	1.2. Recieve Changes section with LastChangeToken (TOKEN), first page of data (DATA) and ListItemCollectionPositionNext (PAGING) param. WARNING! Now's the only chance to remember LastChangeToken - it won't be available during pages navigation
        	1.3. Send another request w/o changeToken (TOKEN) and with rowLimit (NUM_ROWS) and attached queryOptions element with ListItemCollectionPositionNext (PAGING) param taken from previous query
        	1.4. Recieve more rows with new ListItemCollectionPositionNext (PAGING) value
        	1.5. Continue from 1.3 till data is over - no ListItemCollectionPositionNext param recieved
        
        	2. We have changeToken
        	1.1. Send Query with changeToken (TOKEN) and rowLimit (NUM_ROWS)
        	1.2. Recieve rows and Changes section with new LastChangeToken (TOKEN)
        	1.3. Continue to 1.1. with new TOKEN till data is over
        	1.4. Final query will result empty data and unchanged TOKEN;
        
        	WARNING! Don't event try to analyze and change TOKEN and PAGING values! They SHOULD be unchanged for further queries.
        
        	Input:
        		listName - id of a list (ex. {9C00647C-836C-485B-A025-0663F6EE972A})
        		arParams - array(
        			'TOKEN' - token to set timing start of a list
        			'PAGING' - token to set paging
        			'NUM_ROWS' - number of a rows per page
        			'FIELDS' - array with a list of a field names needed
        		)
        
        	Output: array(
        		'MORE_ROWS' => {true|false} - flag "is there more data available"
        		'TOKEN' => string that chould be used for further queries (or for next page query, if it's not a first query)
        		'PAGING' => string that chould be used for next page query (if it's the query w/o TOKEN)
        		'COUNT' => recieved data rows count
        		'DATA' => array of data rows ('ows_' prefix is cutted from attrubute names)
        	)
        */
        public function GetListItemChangesSinceToken($listName, $arParams = array())
        {
        }
        public function GetAttachmentCollection($listName, $arParams)
        {
        }
        public function UpdateListItems($listName, $arChanges)
        {
        }
        public function LoadFile($listName, $arParams)
        {
        }
        /* getters */
        public function GetConnectionParams()
        {
        }
        public function GetResponseObject()
        {
        }
        /* protected section */
        protected function __initialize()
        {
        }
        /* override these methods to add custom processing for method results */
        protected function GetListCollectionProcessResult($RESULT)
        {
        }
        protected function GetListProcessResult($RESULT)
        {
        }
        protected function GetListItemChangesSinceTokenProcessResult($RESULT)
        {
        }
        protected function GetAttachmentCollectionProcessResult($RESULT)
        {
        }
        protected function GetByIDProcessResult($RESULT)
        {
        }
        protected function ConvertRows($DATA_NODE)
        {
        }
    }
    class CWSDLCreator
    {
        var $typensXSDType = array();
        var $typensVars = array();
        var $typensDefined = array();
        var $typens = array();
        var $typeTypens = array();
        var $WSDL;
        var $WSDLXML;
        var $messages = array();
        var $portTypes = array();
        var $bindings = array();
        var $services = array();
        var $paramsNames = array();
        var $XMLCreator;
        var $serviceName;
        var $serviceUrl;
        var $targetNamespace;
        var $classes = array();
        function CWSDLCreator($serviceName, $serviceUrl = "", $targetNamespace = "")
        {
        }
        function setClasses($classes)
        {
        }
        function AddComplexDataType($name, $vars)
        {
        }
        function AddArrayType($pname, $param)
        {
        }
        function __createMessage($name, $returnType = \false, $params = array())
        {
        }
        function __createPortType($portTypes)
        {
        }
        function __createBinding($bindings)
        {
        }
        function __createService($services)
        {
        }
        function createWSDL()
        {
        }
        function getWSDL()
        {
        }
        function printWSDL()
        {
        }
        function saveWSDL($targetFile, $overwrite = \true)
        {
        }
        function downloadWSDL()
        {
        }
    }
}
namespace Bitrix\WebService {
    class StsSync
    {
        const SERVICE_PATH = '/stssync/';
        public static function getUrl($type, $servicePath, $linkUrl, $prefix, $name, $guid)
        {
        }
        public static function checkAuth($userId, $ap)
        {
        }
        public static function getAuth($type = '')
        {
        }
    }
}
namespace {
    class iblock extends \CModule
    {
        var $MODULE_ID = "iblock";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $errors;
        function __construct()
        {
        }
        function InstallDB()
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function GetModuleTasks()
        {
        }
        function OnGetTableSchema()
        {
        }
    }
}
namespace Bitrix\Main\Component {
    /**
     * Class BaseUfComponent
     * @package Bitrix\Main\Component
     */
    abstract class BaseUfComponent extends \CBitrixComponent
    {
        public const MODE_DEFAULT = '.default', TEMPLATE_PAGE_DEFAULT = '.default', TEMPLATE_NAME_DEFAULT = '.default';
        /*
         * List of available media types
         * MediaType === Template folder by default, may be overriding in child class
         */
        public const MEDIA_TYPE_DEFAULT = '.default', MEDIA_TYPE_MOBILE = 'mobile';
        /**
         * @var array $htmlBuilder
         */
        protected static $htmlBuilder = [];
        /**
         * @var CBitrixComponentTemplate $componentTemplate
         * @var array $userField
         * @var array $additionalParameters
         */
        protected $componentTemplate, $userField = [], $additionalParameters = [];
        /**
         * @var string $mediaType
         * @var string $mode
         */
        private $mediaType = '', $mode = '', $availableModes = [];
        public function __construct($component = null)
        {
        }
        public final function executeComponent()
        {
        }
        protected final function initResult() : void
        {
        }
        /**
         * @return array|bool
         */
        public function getUserField()
        {
        }
        /**
         * @param array|bool $userField
         */
        public function setUserField($userField) : void
        {
        }
        /**
         * @param string $key
         * @return mixed|null
         */
        public function getAdditionalParameter(string $key)
        {
        }
        /**
         * @return array
         */
        public function getAdditionalParameters() : array
        {
        }
        /**
         * @param array $additionalParameters
         */
        public function setAdditionalParameters(?array $additionalParameters) : void
        {
        }
        /**
         * @return CBitrixComponent|null
         */
        public function getParentComponent() : ?\CBitrixComponent
        {
        }
        /**
         * @param CBitrixComponent|null $_parent
         */
        public function setParentComponent(?\CBitrixComponent $_parent) : void
        {
        }
        /**
         * You can override this method in a child class
         * to add the personal custom functionality of the child class
         */
        protected function prepareResult() : void
        {
        }
        protected function initAvailableModes() : void
        {
        }
        /**
         * @return array
         */
        public function getAvailableModes() : array
        {
        }
        /**
         * @param array $availableModes
         */
        public function setAvailableModes(array $availableModes) : void
        {
        }
        protected function initMode() : void
        {
        }
        /**
         * @param string $mode
         */
        protected function setMode(string $mode) : void
        {
        }
        protected function initMediaType() : void
        {
        }
        /**
         * @param string $mediaType
         */
        protected function setMediaType(string $mediaType) : void
        {
        }
        /**
         * Resolving a mode name to template name.
         * By default mode === templateFolderName, can be otherwise in child class
         * @return string
         */
        protected function resolveTemplateName() : string
        {
        }
        /**
         * @return string
         */
        public final function getMode() : string
        {
        }
        /**
         * @return string
         */
        protected function getTemplateNameFromMode() : string
        {
        }
        /**
         * Return templatePage name from mediaType
         * or null if mediaType incorrect
         * @return null|string
         */
        protected final function resolveTemplatePage() : ?string
        {
        }
        /**
         * @param string|null $templatePage
         * @return bool
         */
        protected final function isExistTemplatePage(?string $templatePage = '') : bool
        {
        }
        /**
         * Checking if mediaType specified when calling the component is valid
         * @return bool
         */
        protected final function isPossibleMediaType() : bool
        {
        }
        /**
         * @return string
         */
        protected function getTemplatePageFromMediaType() : string
        {
        }
        /**
         * Return all mediaTypes
         * @return array
         */
        protected final function getMediaTypes() : array
        {
        }
        /**
         * @return string
         */
        protected function getMediaType() : string
        {
        }
        /**
         * @return bool
         */
        protected final function hasTemplateFolder() : bool
        {
        }
        /**
         * Returning first correct template folder from array of availables modes
         * @return null|string
         */
        protected final function getAvailableTemplateFolder() : ?string
        {
        }
        /**
         * @return string
         */
        protected final function generateAvailableModesHash() : string
        {
        }
        /**
         * @param string $templatePage
         * @return bool
         */
        protected final function hasTemplatePage(string $templatePage) : bool
        {
        }
        /**
         * @return string
         */
        protected function getFieldName() : string
        {
        }
        /**
         * @return array
         */
        protected function getFieldValue() : array
        {
        }
        /**
         * @param mixed $value
         * @return array
         */
        protected static final function normalizeFieldValue($value) : array
        {
        }
        /**
         * @return HtmlBuilder
         */
        public final function getHtmlBuilder()
        {
        }
        /**
         * @param HtmlBuilder $htmlBuilder
         */
        public final function setHtmlBuilder(\Bitrix\Main\UserField\HtmlBuilder $htmlBuilder) : void
        {
        }
        /**
         * @return bool
         */
        public final function isDefaultMode() : bool
        {
        }
        /**
         * @return bool
         */
        public final function isMobileMode() : bool
        {
        }
        /**
         * @return string
         */
        protected static abstract function getUserTypeId() : string;
    }
}
namespace {
    /**
     * Class SectionUfComponent
     *
     * @todo Now autoloader not load ElementUfComponent
     */
    class SectionUfComponent extends \Bitrix\Main\Component\BaseUfComponent
    {
        protected static $iblockIncluded = \null;
        public function __construct($component = \null)
        {
        }
        /**
         * @return bool
         */
        public function isIblockIncluded() : bool
        {
        }
        protected static function getUserTypeId() : string
        {
        }
    }
    class __CIBlockTV
    {
        public static function Prepare($Value)
        {
        }
    }
    class CBitrixIBlockTV extends \CBitrixComponent
    {
    }
    class CatalogTopComponent extends \Bitrix\Iblock\Component\ElementList
    {
        public function __construct($component = \null)
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        protected function checkIblock()
        {
        }
        public function prepareTemplateParams()
        {
        }
        public function getTemplateDefaultParams()
        {
        }
        protected function editTemplateData()
        {
        }
        protected function checkTemplateTheme()
        {
        }
        public static function getTemplateVariantsMapForSlider()
        {
        }
    }
    /**
     * Class ElementUfComponent
     */
    class ElementUfComponent extends \Bitrix\Main\Component\BaseUfComponent
    {
        protected static $iblockIncluded = \null;
        public function __construct($component = \null)
        {
        }
        /**
         * @return bool
         */
        public function isIblockIncluded() : bool
        {
        }
        protected static function getUserTypeId() : string
        {
        }
    }
    class IblockElementSelector extends \CBitrixComponent
    {
        public function onIncludeComponentLang()
        {
        }
        protected function checkModules()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
        /**
         * @return void
         * @throws SystemException
         */
        protected function checkRequiredParams()
        {
        }
        /**
         * @return void
         */
        protected function checkPermissions()
        {
        }
        protected function getLastElements()
        {
        }
        protected function getCurrentElements()
        {
        }
        private function getUrlToElement($elementId, $iblockId, $sectionId)
        {
        }
        protected function fillResult()
        {
        }
        /**
         * @return void
         */
        private function setMinPermission()
        {
        }
        /**
         * @return void
         * @throws SystemException
         */
        private function checkAdminSection()
        {
        }
    }
}
namespace Bitrix\Iblock\Component\Selector {
    abstract class Entity extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable, \Bitrix\Main\Errorable
    {
        const RESULT_ACTION_TYPE_NONE = 'none';
        const RESULT_ACTION_TYPE_EVENT = 'event';
        const RESULT_ACTION_TYPE_CALLBACK = 'callback';
        const RESULT_ACTION_TYPE_CLASS_METHOD = 'method';
        const RESULT_ACTION_TYPE_SLIDER = 'slider';
        const RESULT_DATA_TYPE_NONE = 'none';
        const RESULT_DATA_TYPE_SET = 'set';
        const RESULT_DATA_TYPE_FILTER = 'filter';
        const MODE_PAGE = 'page';
        const MODE_DIALOG = 'dialog';
        const MODE_SLIDER = 'slider';
        const STORAGE_GRID = 'GRID';
        const STORAGE_GRID_FILTER = 'GRID_FILTER';
        const STORAGE_ENTITY_IBLOCK = 'IBLOCK_SETTINGS';
        protected $useMode = self::MODE_PAGE;
        /** @var  Main\ErrorCollection */
        protected $errorCollection = null;
        /** @var Main\Grid\Options $gridConfig */
        protected $gridConfig = null;
        protected $storage = [];
        protected $defaultSettings = [];
        protected $rows = [];
        /** @var UI\PageNavigation $navigation */
        protected $navigation = null;
        protected $navigationString = '';
        protected $implicitPageNavigation = false;
        /** @var bool use filter in selector */
        protected $useGridFilter = true;
        /** @var UI\Filter\Options */
        protected $gridFilterConfig = null;
        protected $resultAction = ['TYPE' => self::RESULT_ACTION_TYPE_NONE, 'NAME' => '', 'DATA_TYPE' => self::RESULT_DATA_TYPE_NONE, 'DATA_SET' => []];
        protected $resultActionMap = [self::MODE_PAGE => [self::RESULT_ACTION_TYPE_EVENT, self::RESULT_ACTION_TYPE_CALLBACK, self::RESULT_ACTION_TYPE_CLASS_METHOD], self::MODE_DIALOG => [self::RESULT_ACTION_TYPE_EVENT, self::RESULT_ACTION_TYPE_CALLBACK, self::RESULT_ACTION_TYPE_CLASS_METHOD], self::MODE_SLIDER => [self::RESULT_ACTION_TYPE_EVENT, self::RESULT_ACTION_TYPE_CALLBACK, self::RESULT_ACTION_TYPE_CLASS_METHOD, self::RESULT_ACTION_TYPE_SLIDER]];
        /**
         * Base constructor.
         * @param \CBitrixComponent|null $component		Component object if exists.
         */
        public function __construct($component = null)
        {
        }
        /**
         * @return void
         */
        public function onIncludeComponentLang()
        {
        }
        /**
         * @param array $params
         * @return array
         */
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * @return void
         */
        public function executeComponent()
        {
        }
        /**
         * @return array
         */
        public function configureActions()
        {
        }
        /**
         * @param string $code
         * @return Main\Error|null
         */
        public function getErrorByCode($code)
        {
        }
        /**
         * @return array|Main\Error[]
         */
        public function getErrors()
        {
        }
        /**
         * @return void
         */
        protected function useImplicitPageNavigation()
        {
        }
        /**
         * @return bool
         */
        protected function isUsedImplicitPageNavigation()
        {
        }
        /**
         * @return void
         */
        protected function disableGridFilter()
        {
        }
        /**
         * @return bool
         */
        protected function isUsedGridFilter()
        {
        }
        /**
         * @param string $mode
         * @return void
         */
        protected function setUseMode($mode)
        {
        }
        /**
         * @return string
         */
        protected function getUseMode()
        {
        }
        /**
         * @return bool
         */
        protected function isPageMode()
        {
        }
        /**
         * @return bool
         */
        protected function isDialogWindowMode()
        {
        }
        /**
         * @return bool
         */
        protected function isSliderMode()
        {
        }
        /**
         * @return void
         */
        protected function initResultDescription()
        {
        }
        /**
         * @return bool
         */
        protected function isUsedSliderFilter()
        {
        }
        /**
         * @return void
         */
        protected function initEntitySettings()
        {
        }
        /**
         * @return void
         */
        protected function checkModules()
        {
        }
        /**
         * @return void
         */
        protected function prepareRequest()
        {
        }
        /**
         * @return void
         */
        protected function initDefaultSettings()
        {
        }
        /**
         * @return string
         */
        protected function getDefaultGridId()
        {
        }
        /**
         * @param string $gridId
         * @return string
         */
        protected static function createFilterId($gridId)
        {
        }
        /**
         * @param string $gridId
         * @return string
         */
        protected static function createNavigationId($gridId)
        {
        }
        /**
         * @return void
         */
        protected function initSettings()
        {
        }
        /**
         * @return void
         */
        protected function prepareResult()
        {
        }
        /* Client library, styles, etc tools */
        /**
         * @return void
         */
        protected function initClientScope()
        {
        }
        /**
         * @return array
         */
        protected function getClientExtensions()
        {
        }
        /**
         * @return array
         */
        protected function getClientStyles()
        {
        }
        /* Client library, styles, etc tools finish */
        /* Storage tools */
        /**
         * @param string $node
         * @param array $nodeValues
         * @return void
         */
        protected function fillStorageNode($node, array $nodeValues)
        {
        }
        /**
         * @param $node
         * @return array|null
         */
        protected function getStorageNode($node)
        {
        }
        /**
         * @param string $node
         * @param string $item
         * @param mixed $value
         * @return void
         */
        protected function setStorageItem($node, $item, $value)
        {
        }
        /**
         * @param string $node
         * @param string $item
         * @return mixed|null
         */
        protected function getStorageItem($node, $item)
        {
        }
        /**
         * @return boolean
         */
        protected function getShowXmlId()
        {
        }
        /**
         * @return string
         */
        protected function getGridId()
        {
        }
        /**
         * @return string
         */
        protected function getFilterId()
        {
        }
        /**
         * @return string
         */
        protected function getNavigationId()
        {
        }
        /**
         * @return array
         */
        protected function getPageSizes()
        {
        }
        /* Storage tools finish */
        /**
         * @return void
         */
        protected function initGrid()
        {
        }
        /**
         * @return void
         */
        protected function initGridConfig()
        {
        }
        /**
         * @return void
         */
        protected function initGridColumns()
        {
        }
        /**
         * @return void
         */
        protected function initGridPageNavigation()
        {
        }
        /**
         * @return array
         */
        protected function getGridNavigationParams()
        {
        }
        /**
         * @return array
         */
        protected function getGridFilterDefinition()
        {
        }
        /**
         * @return array
         */
        protected function getGridFilterRows()
        {
        }
        /**
         * @return string|null
         */
        protected function getQuickSearchField()
        {
        }
        /**
         * @return array
         */
        protected function getQuickSearchDescription()
        {
        }
        /**
         * @return array
         */
        protected function getGridColumnsDescription()
        {
        }
        /**
         * @return array
         */
        protected function getUserGridColumnIds()
        {
        }
        /**
         * @return array
         */
        protected function getColumns()
        {
        }
        /**
         * @return array
         */
        protected function getVisibleColumns()
        {
        }
        /**
         * @return void
         */
        protected function initGridOrder()
        {
        }
        /**
         * @param array $order
         * @return array
         */
        protected function modifyGridOrder(array $order)
        {
        }
        /**
         * @return void
         */
        protected function initGridFilter()
        {
        }
        /**
         * @return void
         */
        protected function initGridFilterConfig()
        {
        }
        /**
         * @return void
         */
        protected function initGridFilterSettings()
        {
        }
        /**
         * @return void
         */
        protected function initGridFilterCurrentPreset()
        {
        }
        /**
         * @return array
         */
        protected function prepareGridFilterCurrentPreset()
        {
        }
        /**
         * @return array
         */
        protected function getDataOrder()
        {
        }
        /**
         * @return array
         */
        protected function getDataFields()
        {
        }
        /**
         * @return array
         */
        protected function getDataFilter()
        {
        }
        /**
         * @return string
         */
        protected function getDataTitleField()
        {
        }
        /**
         * @return array
         */
        protected function getInternalFilter()
        {
        }
        /**
         * @return array
         */
        protected function getUserFilter()
        {
        }
        /**
         * @return array
         */
        protected function prepareUserFilter()
        {
        }
        /**
         * @param array $filter
         * @return array
         */
        protected function compileUserFilter(array $filter)
        {
        }
        /**
         * @param array $field
         * @param string $operator
         * @return string
         */
        private function getFilterOperator(array $field, $operator)
        {
        }
        /**
         * @param array &$result
         * @param array $items
         * @param array $field
         * @return void
         */
        private function addFilterItems(array &$result, array $items, array $field)
        {
        }
        /**
         * @param array &$result
         * @param array $filter
         * @param string $fieldId
         * @param array $field
         * @return void
         */
        private function addFilterQuickSearchValue(array &$result, array $filter, $fieldId, array $field)
        {
        }
        /**
         * @param array &$result
         * @param array $filter
         * @param string $fieldId
         * @param array $field
         * @return void
         */
        private function addFilterNumberValue(array &$result, array $filter, $fieldId, array $field)
        {
        }
        /**
         * @param array &$result
         * @param array $filter
         * @param string $fieldId
         * @param array $field
         * @return void
         */
        private function addFilterDateValue(array &$result, array $filter, $fieldId, array $field)
        {
        }
        /**
         * @param array &$result
         * @param array $filter
         * @param string $fieldId
         * @param array $field
         * @return void
         */
        private function addFilterListValue(array &$result, array $filter, $fieldId, array $field)
        {
        }
        /**
         * @param array &$result
         * @param array $filter
         * @param string $fieldId
         * @param array $field
         * @return void
         */
        private function addFilterCheckboxValue(array &$result, array $filter, $fieldId, array $field)
        {
        }
        /**
         * @param array &$result
         * @param array $filter
         * @param string $fieldId
         * @param array $field
         * @return void
         */
        private function addFilterDestSelectorValue(array &$result, array $filter, $fieldId, array $field)
        {
        }
        /**
         * @param array &$result
         * @param array $filter
         * @param string $fieldId
         * @param array $field
         * @return void
         */
        private function addFilterStringValue(array &$result, array $filter, $fieldId, array $field)
        {
        }
        /**
         * @return void
         */
        protected function getData()
        {
        }
        /**
         * @param \CDBResult $iterator
         * @return void
         */
        protected function setImplicitNavigationData(\CDBResult $iterator)
        {
        }
        /**
         * @return string
         */
        protected function getNavigationTitle()
        {
        }
        /**
         * @return array
         */
        protected function getGridRows()
        {
        }
        /**
         * @return array
         */
        protected function getBinaryDictionary()
        {
        }
        /**
         * @param array $row
         * @return string|null
         */
        protected function getRowAction(array $row)
        {
        }
        /**
         * @param array $row
         * @return array
         */
        protected function getSliderResultDataSet(array $row)
        {
        }
        /**
         * @param array $row
         * @return bool
         */
        protected static function isGridFilterRow(array $row)
        {
        }
    }
    class Element extends \Bitrix\Iblock\Component\Selector\Entity
    {
        protected $catalogIncluded = null;
        /** @var array Element property list */
        protected $elementProperties = null;
        /** @var array Offer property list */
        protected $offerProperties = null;
        public function __construct($component = null)
        {
        }
        /**
         * @return void
         */
        public function onIncludeComponentLang()
        {
        }
        /**
         * @return void
         */
        protected function checkModules()
        {
        }
        /**
         * @return void
         */
        protected function initEntitySettings()
        {
        }
        /**
         * @return array
         */
        protected function getGridFilterDefinition()
        {
        }
        /**
         * @return array
         */
        protected function getGridColumnsDescription()
        {
        }
        /**
         * @param array $filter
         * @return array
         */
        protected function compileUserFilter(array $filter)
        {
        }
        /**
         * @return array
         */
        protected function getClientExtensions()
        {
        }
        /**
         * @return array
         */
        protected function getDataOrder()
        {
        }
        /**
         * @return void
         */
        protected function getData()
        {
        }
        /**
         * @return string
         */
        protected function getNavigationTitle()
        {
        }
        /**
         * @return array
         */
        protected function getInternalFilter()
        {
        }
        /**
         * @return array
         */
        protected function getSectionFilterDefinition()
        {
        }
        /**
         * @return array
         */
        protected function getElementFieldsFilterDefinition()
        {
        }
        /**
         * @return array
         */
        protected function getProductFieldsFilterDefinition()
        {
        }
        /**
         * @return array
         */
        protected function getElementPropertyFilterDefinition()
        {
        }
        /**
         * @return array
         */
        protected function getOfferPropertyFilterDefinition()
        {
        }
        /**
         * @param array $list
         * @return array
         */
        protected function compileFilterProperties(array $list)
        {
        }
        /**
         * @return array
         */
        protected function getElementFieldsDescription()
        {
        }
        /**
         * @return array
         */
        protected function getProductFieldsDescription()
        {
        }
        /**
         * @return array|null
         */
        protected function getElementPropertiesDescription()
        {
        }
        /**
         * @return void
         */
        protected function loadElementPropertiesDescription()
        {
        }
        /**
         * @return void
         */
        protected function loadOfferPropertiesDescription()
        {
        }
        /**
         * @param array $filter
         * @return array
         */
        protected function loadPropertiesDescription(array $filter)
        {
        }
        /**
         * @param array $row
         * @return bool
         */
        protected static function isFilterableProperty(array $row)
        {
        }
    }
}
namespace {
    class IblockElement extends \Bitrix\Iblock\Component\Selector\Element
    {
        public function __construct($component = \null)
        {
        }
    }
}
namespace Bitrix\Iblock\Component {
    abstract class Element extends \Bitrix\Iblock\Component\Base
    {
        public function onPrepareComponentParams($params)
        {
        }
        protected function getIblockParams(&$params)
        {
        }
        protected function checkModules()
        {
        }
        protected function initialLoadAction()
        {
        }
        protected function processResultData()
        {
        }
        /**
         * Check by ID if element is correct.
         *
         * @return bool
         */
        protected function checkElementId()
        {
        }
        protected function initCatalogInfo()
        {
        }
        /**
         * @return void
         */
        protected function initIblockPropertyFeatures()
        {
        }
        /**
         * @param int $iblockId
         * @return void
         */
        protected function loadDisplayPropertyCodes($iblockId)
        {
        }
        protected function getSelect()
        {
        }
        protected function getFilter()
        {
        }
        protected function showWorkflowHistory()
        {
        }
        protected function getElementList($iblockId, $products)
        {
        }
        protected function getSection()
        {
        }
        protected function getIblockElements($elementIterator)
        {
        }
        protected function modifyDisplayProperties($iblock, &$iblockElements)
        {
        }
        protected function chooseOffer($offers, $iblockId)
        {
        }
        protected function getCacheKeys()
        {
        }
        /**
         * Fill additional keys for component cache.
         *
         * @param array &$resultCacheKeys		Cached result keys.
         * @return void
         */
        protected function initAdditionalCacheKeys(&$resultCacheKeys)
        {
        }
        protected function initAdminIconsPanel()
        {
        }
        protected function sendCounters()
        {
        }
        protected function saveViewedProduct()
        {
        }
        protected function initMetaData()
        {
        }
        protected function getAdditionalCacheId()
        {
        }
        protected function getComponentCachePath()
        {
        }
        protected function makeOutputResult()
        {
        }
        protected function prepareTemplateParams()
        {
        }
        protected function getTemplateIblockParams(&$params)
        {
        }
        protected function getTemplateDefaultParams()
        {
        }
        protected function editTemplateData()
        {
        }
        protected function editTemplateOfferProps(&$item)
        {
        }
        protected function editTemplateProductSets(&$item)
        {
        }
        protected function editTemplateJsOffers(&$item, $offerSet)
        {
        }
        public function getTemplateSkuPropList()
        {
        }
        protected function editTemplateItems(&$item)
        {
        }
    }
}
namespace {
    class CatalogElementComponent extends \Bitrix\Iblock\Component\Element
    {
        public function __construct($component = \null)
        {
        }
        /**
         * Processing parameters unique to catalog.element component.
         *
         * @param array $params		Component parameters.
         * @return array
         */
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * Fill additional keys for component cache.
         *
         * @param array &$resultCacheKeys		Cached result keys.
         * @return void
         */
        protected function initAdditionalCacheKeys(&$resultCacheKeys)
        {
        }
        /**
         * Save compatible viewed product in catalog.element only.
         *
         * @return void
         */
        protected function saveViewedProduct()
        {
        }
        /**
         * Save bigdata analytics for catalog.element only.
         *
         * @return void
         */
        protected function sendCounters()
        {
        }
    }
    /*DEMO CODE for component inheritance
    CBitrixComponent::includeComponentClass("bitrix::news.base");
    class CBitrixCatalogSmartFilter extends CBitrixNewsBase
    */
    class CBitrixCatalogSmartFilter extends \CBitrixComponent
    {
        public $IBLOCK_ID = 0;
        public $SKU_IBLOCK_ID = 0;
        public $SKU_PROPERTY_ID = 0;
        public $SECTION_ID = 0;
        public $FILTER_NAME = "";
        public $SAFE_FILTER_NAME = "";
        public $convertCurrencyId = "";
        protected $currencyTagList = array();
        protected $currencyCache = array();
        protected $cache = array();
        protected static $catalogIncluded = \null;
        protected static $iblockIncluded = \null;
        /** @var \Bitrix\Iblock\PropertyIndex\Facet **/
        protected $facet = \null;
        public function onPrepareComponentParams($arParams)
        {
        }
        public function executeComponent()
        {
        }
        public function getIBlockItems($IBLOCK_ID)
        {
        }
        public function getPriceItems()
        {
        }
        public function getResultItems()
        {
        }
        public function processProperties(array &$resultItem, array $elements, array $dictionaryID, array $directoryPredict = [])
        {
        }
        public function predictIBSectionFetch($id = array())
        {
        }
        public function predictIBElementFetch($id = array())
        {
        }
        public function predictHlFetch($userType, $valueIDs)
        {
        }
        public function fillItemPrices(&$resultItem, $arElement)
        {
        }
        public function convertPrice($price, $currency)
        {
        }
        public function fillItemValues(&$resultItem, $arProperty, $flag = \null)
        {
        }
        function combineCombinations(&$arCombinations)
        {
        }
        function filterCombinations(&$arCombinations, $arItems, $currentPID)
        {
        }
        function combinationMatch($combination, $arItems, $currentPID)
        {
        }
        function matchProperty($value, $arValues)
        {
        }
        public function _sort($v1, $v2)
        {
        }
        /*
        This function takes an array (arTuple) which is mix of scalar values and arrays
        and return "rectangular" array of arrays.
        For example:
        array(1, array(1, 2), 3, arrays(4, 5))
        will be transformed as
        array(
        	array(1, 1, 3, 4),
        	array(1, 1, 3, 5),
        	array(1, 2, 3, 4),
        	array(1, 2, 3, 5),
        )
        */
        function ArrayMultiply(&$arResult, $arTuple, $arTemp = array())
        {
        }
        function makeFilter($FILTER_NAME)
        {
        }
        public function getCurrencyFullName($currencyId)
        {
        }
        public function searchPrice($items, $lookupValue)
        {
        }
        public function searchProperty($items, $lookupValue)
        {
        }
        public function searchValue($item, $lookupValue)
        {
        }
        public function convertUrlToCheck($url)
        {
        }
        public function makeSmartUrl($url, $apply, $checkedControlId = \false)
        {
        }
        public function encodeSmartParts($smartParts)
        {
        }
        public function setCurrencyTag()
        {
        }
        public function setIblockTag()
        {
        }
    }
    class CNewsTools
    {
        function OnSearchGetURL($arFields)
        {
        }
    }
    class IblockSelectorLanding extends \Bitrix\Iblock\Component\Selector\Element
    {
        protected $landingIncluded = \null;
        public function __construct($component = \null)
        {
        }
        /**
         * @param array $params
         * @return array
         */
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * @return void
         */
        protected function checkModules()
        {
        }
        /**
         * @return array
         */
        protected function prepareGridFilterCurrentPreset()
        {
        }
        /**
         * @return array
         */
        protected function getProductFieldsFilterDefinition()
        {
        }
        /**
         * @return void
         */
        protected function prepareResult()
        {
        }
        /**
         * @return array
         */
        protected function getClientExtensions()
        {
        }
        /**
         * @return array
         */
        protected function getInternalFilter()
        {
        }
        /**
         * @return array
         */
        protected function getOfferPropertyFilterDefinition()
        {
        }
        /**
         * Temporary method.
         *
         * @param array $filter
         * @return array
         */
        private function simpleProductFilter(array $filter)
        {
        }
    }
    class CatalogSectionComponent extends \Bitrix\Iblock\Component\ElementList
    {
        public function __construct($component = \null)
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        protected function processResultData()
        {
        }
        protected function initSectionResult()
        {
        }
        protected function initSectionProperties()
        {
        }
        protected function initCatalogInfo()
        {
        }
        protected function getCacheKeys()
        {
        }
        protected function getFilter()
        {
        }
        protected function makeOutputResult()
        {
        }
        protected function initialLoadAction()
        {
        }
        protected function initAdminIconsPanel()
        {
        }
        protected function initMetaData()
        {
        }
        protected function getElementList($iblockId, $products)
        {
        }
        protected function processElement(array &$element)
        {
        }
        protected function checkLastModified($element)
        {
        }
        protected function initElementList()
        {
        }
        protected function modifyItemPath(&$element)
        {
        }
    }
    class IblockSelectorSection extends \Bitrix\Iblock\Component\EntitySelector
    {
        public function __construct($component = \null)
        {
        }
        /**
         * @return array
         */
        protected function getGridFilterDescription()
        {
        }
        /**
         * @return void
         */
        protected function getData()
        {
        }
        /**
         * @return string
         */
        protected function getNavigationTitle()
        {
        }
        /**
         * @return array
         */
        protected function getInternalFilter()
        {
        }
        /**
         * @param array $row
         * @return array
         */
        protected function getSliderResultDataSet(array $row)
        {
        }
    }
    class CatalogItemComponent extends \CBitrixComponent
    {
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
    }
    class CIBlockPropertyDateTime
    {
        const USER_TYPE = 'DateTime';
        public static function GetUserTypeDescription()
        {
        }
        public static function AddFilterFields($arProperty, $strHTMLControlName, &$arFilter, &$filtered)
        {
        }
        public static function GetAdminFilterHTML($arProperty, $strHTMLControlName)
        {
        }
        public static function GetPublicFilterHTML($arProperty, $strHTMLControlName)
        {
        }
        public static function GetPublicViewHTML($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function GetPublicEditHTML($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function GetAdminListViewHTML($arProperty, $value, $strHTMLControlName)
        {
        }
        //PARAMETERS:
        //$arProperty - b_iblock_property.*
        //$value - array("VALUE","DESCRIPTION") -- here comes HTML form value
        //strHTMLControlName - array("VALUE","DESCRIPTION")
        //return:
        //safe html
        public static function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
        {
        }
        //PARAMETERS:
        //$arProperty - b_iblock_property.*
        //$value - array("VALUE",["DESCRIPTION"]) -- here comes HTML form value
        //return:
        //array of error messages
        public static function CheckFields($arProperty, $value)
        {
        }
        //PARAMETERS:
        //$arProperty - b_iblock_property.*
        //$value - array("VALUE",["DESCRIPTION"]) -- here comes HTML form value
        //return:
        //DB form of the value
        public static function ConvertToDB($arProperty, $value)
        {
        }
        public static function ConvertFromDB($arProperty, $value, $format = '')
        {
        }
        public static function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
        {
        }
        /**
         * @param array $property
         * @param array $strHTMLControlName
         * @param array &$fields
         * @return void
         */
        public static function GetUIFilterProperty($property, $strHTMLControlName, &$fields)
        {
        }
        public static function GetUIEntityEditorProperty($settings, $value)
        {
        }
    }
    class CIBlockPropertyElementList
    {
        const USER_TYPE = 'EList';
        public static function GetUserTypeDescription()
        {
        }
        public static function PrepareSettings($arProperty)
        {
        }
        public static function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
        {
        }
        //PARAMETERS:
        //$arProperty - b_iblock_property.*
        //$value - array("VALUE","DESCRIPTION") -- here comes HTML form value
        //strHTMLControlName - array("VALUE","DESCRIPTION")
        //return:
        //safe html
        public static function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function GetPropertyFieldHtmlMulty($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function GetAdminFilterHTML($arProperty, $strHTMLControlName)
        {
        }
        public static function GetUIFilterProperty($arProperty, $strHTMLControlName, &$fields)
        {
        }
        private static function getItemsForUiFilter($arProperty)
        {
        }
        public static function GetPublicViewHTML($arProperty, $arValue, $strHTMLControlName)
        {
        }
        public static function GetOptionsHtml($arProperty, $values, &$bWasSelect)
        {
        }
        /**
         * Returns data for smart filter.
         *
         * @param array $arProperty				Property description.
         * @param array $value					Current value.
         * @return false|array
         */
        public static function GetExtendedValue($arProperty, $value)
        {
        }
        public static function GetElements($IBLOCK_ID)
        {
        }
        public static function GetSections($IBLOCK_ID)
        {
        }
        public static function GetUIEntityEditorProperty($settings, $value)
        {
        }
        public static function GetUIEntityEditorPropertyEditHtml(array $params = []) : string
        {
        }
        public static function GetUIEntityEditorPropertyViewHtml(array $params = []) : string
        {
        }
    }
    class CIBlockPropertyTools
    {
        public const CODE_MORE_PHOTO = 'MORE_PHOTO';
        public const CODE_SKU_LINK = 'CML2_LINK';
        public const CODE_BLOG_POST = 'BLOG_POST_ID';
        public const CODE_BLOG_COMMENTS_COUNT = 'BLOG_COMMENTS_CNT';
        public const CODE_FORUM_TOPIC = 'FORUM_TOPIC_ID';
        public const CODE_FORUM_MESSAGES_COUNT = 'FORUM_MESSAGE_CNT';
        public const CODE_VOTE_COUNT = 'VOTE_COUNT';
        public const CODE_VOTE_COUNT_OLD = 'vote_count';
        public const CODE_VOTE_SUMM = 'VOTE_SUM';
        public const CODE_VOTE_SUMM_OLD = 'vote_sum';
        public const CODE_VOTE_RATING = 'RATING';
        public const CODE_VOTE_RATING_OLD = 'rating';
        public const CODE_ARTNUMBER = 'ARTNUMBER';
        public const CODE_BACKGROUND_IMAGE = 'BACKGROUND_IMAGE';
        public const XML_MORE_PHOTO = self::CODE_MORE_PHOTO;
        public const XML_SKU_LINK = self::CODE_SKU_LINK;
        public const USER_TYPE_SKU_LINK = 'SKU';
        protected static $errors = array();
        /**
         * Return error list.
         *
         * @return array
         */
        public static function getErrors()
        {
        }
        /**
         * Clear error list
         *
         * @return void
         */
        public static function clearErrors()
        {
        }
        /**
         * Create property.
         *
         * @param int $iblockID					Iblock id.
         * @param string $propertyCode			Property code.
         * @param array $propertyParams			Property params.
         * @return bool|int
         */
        public static function createProperty($iblockID, $propertyCode, $propertyParams = array())
        {
        }
        /**
         * Return filled property description.
         *
         * @param string $propertyCode			Property code.
         * @param array $propertyParams			Property params.
         * @return array|bool
         */
        public static function getPropertyDescription($propertyCode, $propertyParams = array())
        {
        }
        /**
         * Check property description before create.
         *
         * @param array $propertyDescription		Property description.
         * @return bool
         */
        public static function validatePropertyDescription($propertyDescription)
        {
        }
        /**
         * Returns the list of infoblock properties, values for which need to be emptied when copying infoblock element.
         *
         * @param int $iblockID						Iblock id.
         * @param array $propertyCodes			Property codes.
         * @return array
         */
        public static function getClearedPropertiesID($iblockID, $propertyCodes = array())
        {
        }
        /**
         * Return exist property list.
         *
         * @param int $iblockID							Iblock id.
         * @param array|string $propertyCodes			Property codes.
         * @param bool $indexCode						Return codes as key.
         * @return array|bool
         */
        public static function getExistProperty($iblockID, $propertyCodes, $indexCode = \true)
        {
        }
        /**
         * Return property symbolic codes.
         *
         * @param bool $extendedMode		Get codes as keys.
         * @return array
         */
        public static function getPropertyCodes($extendedMode = \false)
        {
        }
        /**
         * Clear property symbolic codes.
         *
         * @param array|string $propertyCodes
         * @return array|string
         */
        public static function clearPropertyList($propertyCodes)
        {
        }
        /**
         * Modify getList params for property search.
         *
         * @param array &$getListParams			\Bitrix\Main\Entity\DataManager::getList params.
         * @param string $propertyCode			Property code.
         * @param array $propertyDescription	Property description.
         * @return void
         */
        protected static function modifyGetListParams(&$getListParams, $propertyCode, $propertyDescription)
        {
        }
        /**
         * Validate and modify exist property.
         *
         * @param string $propertyCode			Property code.
         * @param array $property				Current property data.
         * @return bool
         * @throws Exception
         */
        protected static function validateExistProperty($propertyCode, $property)
        {
        }
    }
    class CIBlockSectionPropertyLink
    {
        public static function Set($SECTION_ID, $PROPERTY_ID, $arLink = array())
        {
        }
        public static function Add($SECTION_ID, $PROPERTY_ID, $arLink = array())
        {
        }
        public static function CheckProperty($SECTION_ID, $PROPERTY_ID)
        {
        }
        public static function Delete($SECTION_ID, $PROPERTY_ID)
        {
        }
        public static function DeleteByIBlock($IBLOCK_ID)
        {
        }
        public static function DeleteBySection($SECTION_ID, $PROPERTY_ID = \null)
        {
        }
        public static function DeleteByProperty($PROPERTY_ID)
        {
        }
        /**
         * @param int $IBLOCK_ID
         * @return bool
         */
        public static function HasIBlockLinks($IBLOCK_ID)
        {
        }
        /**
         * @param int $iblockId
         * @return void
         */
        public static function CleanIBlockLinks(int $iblockId)
        {
        }
        public static function GetArray($IBLOCK_ID, $SECTION_ID = 0, $bNewSection = \false)
        {
        }
        public static function getDisplayTypes($property_type, $user_type)
        {
        }
        public static function getDisplayTypesJsFunction()
        {
        }
        public static function _sort($a, $b)
        {
        }
        public static function cleanFilterHint($filterHint)
        {
        }
    }
    class CIBlockPriceTools
    {
        protected static $catalogIncluded = \null;
        protected static $highLoadInclude = \null;
        protected static $saleIncluded = \null;
        protected static $needDiscountCache = \null;
        protected static $calculationDiscounts = 0;
        /**
         * @param int $IBLOCK_ID
         * @param array $arPriceCode
         * @return array
         * @throws Main\LoaderException
         */
        public static function GetCatalogPrices($IBLOCK_ID, $arPriceCode)
        {
        }
        /**
         * @param array $arPriceTypes
         * @return array
         */
        public static function GetAllowCatalogPrices($arPriceTypes)
        {
        }
        public static function SetCatalogDiscountCache($arCatalogGroups, $arUserGroups, $siteId = \false)
        {
        }
        public static function GetItemPrices($IBLOCK_ID, $arCatalogPrices, $arItem, $bVATInclude = \true, $arCurrencyParams = array(), $USER_ID = 0, $LID = \SITE_ID)
        {
        }
        /**
         * @param int $IBLOCK_ID
         * @param array $arCatalogPrices
         * @param array $arItem
         * @return bool
         */
        public static function CanBuy($IBLOCK_ID, $arCatalogPrices, $arItem)
        {
        }
        public static function GetProductProperties($IBLOCK_ID, $ELEMENT_ID, $arPropertiesList, $arPropertiesValues)
        {
        }
        public static function getFillProductProperties($productProps)
        {
        }
        /*
        Checks arPropertiesValues against DB values
        returns array on success
        or number on fail (may be used for debug)
        */
        public static function CheckProductProperties($iblockID, $elementID, $propertiesList, $propertiesValues, $enablePartialList = \false)
        {
        }
        public static function GetOffersIBlock($IBLOCK_ID)
        {
        }
        public static function GetOfferProperties($offerID, $iblockID, $propertiesList, $skuTreeProps = '')
        {
        }
        public static function GetOffersArray($arFilter, $arElementID, $arOrder, $arSelectFields, $arSelectProperties, $limit, $arPrices, $vat_include, $arCurrencyParams = array(), $USER_ID = 0, $LID = \SITE_ID)
        {
        }
        /**
         * @deprecated since 14.5.0
         * @see CCatalogMeasure::getDefaultMeasure
         *
         * @return array|null
         * @throws Main\LoaderException
         */
        public static function GetDefaultMeasure()
        {
        }
        public static function setRatioMinPrice(&$item, $replaceMinPrice = \false)
        {
        }
        public static function checkPropDirectory(&$property, $getPropInfo = \false)
        {
        }
        public static function getTreeProperties($skuInfo, $propertiesCodes, $defaultFields = array())
        {
        }
        public static function getTreePropertyValues(&$propList, &$propNeedValues)
        {
        }
        public static function getMinPriceFromOffers(&$offers, $currency, $replaceMinPrice = \true)
        {
        }
        public static function getDoublePicturesForItem(&$item, $propertyCode, $encode = \true)
        {
        }
        public static function getSliderForItem(&$item, $propertyCode, $addDetailToSlider, $encode = \true)
        {
        }
        public static function getLabel(&$item, $propertyCode)
        {
        }
        public static function clearProperties(&$properties, $clearCodes)
        {
        }
        public static function getMinPriceFromList($priceList)
        {
        }
        public static function isEnabledCalculationDiscounts()
        {
        }
        public static function enableCalculationDiscounts()
        {
        }
        public static function disableCalculationDiscounts()
        {
        }
    }
    class CEventIBlock
    {
        function MakeIBlockObject()
        {
        }
        function GetFilter()
        {
        }
        function GetAuditTypes()
        {
        }
        function GetEventInfo($row, $arParams, $arUser, $arResult)
        {
        }
        function GetFilterSQL($var)
        {
        }
    }
    class CIBlockPropertyFileMan
    {
        const USER_TYPE = 'FileMan';
        public static function GetUserTypeDescription()
        {
        }
        public static function GetPropertyFieldHtmlMulty($arProperty, $arValues, $strHTMLControlName)
        {
        }
        public static function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function ConvertToDB($arProperty, $value)
        {
        }
        public static function ConvertFromDB($arProperty, $value)
        {
        }
        public static function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
        {
        }
        public static function GetUIEntityEditorProperty($settings, $value)
        {
        }
        public static function GetUIEntityEditorPropertyEditHtml(array $params = []) : string
        {
        }
        public static function GetUIEntityEditorPropertyViewHtml(array $params = []) : string
        {
        }
    }
    class CRatingsComponentsIBlock
    {
        function OnGetRatingContentOwner($arParams)
        {
        }
    }
    class CIBlockPropertyHTML
    {
        const USER_TYPE = 'HTML';
        public static function GetUserTypeDescription()
        {
        }
        public static function GetPublicViewHTML($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function GetAdminListViewHTML($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function GetPublicEditHTML($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function ConvertToDB($arProperty, $value)
        {
        }
        public static function ConvertFromDB($arProperty, $value)
        {
        }
        /**
         * Check value.
         *
         * @param bool|array $arFields			Current value.
         * @param bool $defaultValue			Is default value.
         * @return array|bool
         */
        public static function CheckArray($arFields = \false, $defaultValue = \false)
        {
        }
        public static function GetLength($arProperty, $value)
        {
        }
        public static function PrepareSettings($arProperty)
        {
        }
        public static function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
        {
        }
        /**
         * @param array $property
         * @param array $strHTMLControlName
         * @param array &$fields
         * @return void
         */
        public static function GetUIFilterProperty($property, $strHTMLControlName, &$fields)
        {
        }
        protected static function getValueFromString($value, $getFull = \false)
        {
        }
    }
    class CAllIBlockOffersTmp
    {
        public static function Add($intProductIBlockID, $intOffersIBlockID)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function GetOldID($intProductIBlockID, $intOffersIBlockID)
        {
        }
        public static function DeleteOldID($intProductIBlockID, $intOffersIBlockID, $intInterval = 86400)
        {
        }
    }
    class CIBlockPropertyXmlID
    {
        const USER_TYPE = 'ElementXmlID';
        public static function GetUserTypeDescription()
        {
        }
        public static function GetPublicViewHTML($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function GetAdminListViewHTML($arProperty, $value, $strHTMLControlName)
        {
        }
        //PARAMETERS:
        //$arProperty - b_iblock_property.*
        //$value - array("VALUE","DESCRIPTION") -- here comes HTML form value
        //strHTMLControlName - array("VALUE","DESCRIPTION")
        //return:
        //safe html
        public static function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
        {
        }
        public static function GetUIEntityEditorProperty($settings, $value)
        {
        }
        public static function GetUIEntityEditorPropertyEditHtml(array $params = []) : string
        {
        }
        public static function GetUIEntityEditorPropertyViewHtml(array $params = []) : string
        {
        }
    }
    class CIBlockPropertyResult extends \CDBResult
    {
        protected $IBLOCK_ID = 0;
        protected $VERSION = 0;
        protected $arProperties = array();
        protected static $propertiesCache = array();
        protected $arPropertiesValues = array();
        protected $lastRes = \null;
        protected $extMode = \false;
        protected $arPropertyValuesID = array();
        protected $arDescriptions = array();
        function Fetch()
        {
        }
        private function addPropertyValue($IBLOCK_PROPERTY_ID, $VALUE)
        {
        }
        private function initPropertiesValues($IBLOCK_ELEMENT_ID)
        {
        }
        private function addPropertyData($IBLOCK_PROPERTY_ID, $VALUE_ID, $DESCRIPTION)
        {
        }
        function setIBlock($IBLOCK_ID, $propertyID = array())
        {
        }
        function setMode($extMode)
        {
        }
    }
    class CIBlockRights
    {
        const GROUP_CODE = 1;
        const RIGHT_ID = 2;
        const TASK_ID = 3;
        const ANY_OPERATION = 1;
        const ALL_OPERATIONS = 2;
        const RETURN_OPERATIONS = 4;
        /** @var string Public reading */
        public const PUBLIC_READ = 'R';
        /** @var string Admin access */
        public const FULL_ACCESS = 'X';
        protected $IBLOCK_ID = 0;
        protected $id = 0;
        protected static $arLetterToTask = \null;
        protected static $arLetterToOperations = \null;
        function __construct($IBLOCK_ID)
        {
        }
        function GetIBlockID()
        {
        }
        function GetID()
        {
        }
        function _entity_type()
        {
        }
        function _self_check()
        {
        }
        public static function Post2Array($ar)
        {
        }
        private static function initTaskLetters()
        {
        }
        static function LetterToTask($letter = '')
        {
        }
        static function TaskToLetter($task = 0)
        {
        }
        static function LetterToOperations($letter = '')
        {
        }
        function ConvertGroups($arGroups)
        {
        }
        public static function GetRightsList($bTitle = \true)
        {
        }
        function GetGroups($arOperations = \false, $opMode = \false)
        {
        }
        function GetList($arFilter)
        {
        }
        function GetRights($arOptions = array())
        {
        }
        function DeleteAllRights()
        {
        }
        function Recalculate()
        {
        }
        function ChangeParents($arOldParents, $arNewParents)
        {
        }
        function _get_parent_object($id)
        {
        }
        function SetRights($arRights)
        {
        }
        function _add($GROUP_CODE, $bInherit, $TASK_ID, $XML_ID)
        {
        }
        function _update($RIGHT_ID, $GROUP_CODE, $bInherit, $TASK_ID)
        {
        }
        function _delete($RIGHT_ID)
        {
        }
        function _storage_object()
        {
        }
        static function UserHasRightTo($IBLOCK_ID, $ID, $permission, $flags = 0)
        {
        }
        /**
         * @param CIBlockRights $obRights
         * @param array|integer $ID
         * @param string $permission
         * @param integer $flags
         * @return array|boolean
         */
        static function _check_if_user_has_right($obRights, $ID, $permission, $flags = 0)
        {
        }
        static function _mk_result($ID, $arOperations, $bAllow, $flags)
        {
        }
        static function GetUserOperations($arID, $USER_ID = 0)
        {
        }
        public static function setGroupRight($groupId, $iblockType, $letter, $iblockId = 0)
        {
        }
    }
    class CIBlockSectionRights extends \CIBlockRights
    {
        function __construct($IBLOCK_ID, $SECTION_ID)
        {
        }
        function _self_check()
        {
        }
        function _entity_type()
        {
        }
        function _storage_object()
        {
        }
        function GetList($arFilter)
        {
        }
        function GetRights($arOptions = array())
        {
        }
        function DeleteAllRights()
        {
        }
        static function UserHasRightTo($IBLOCK_ID, $ID, $permission, $flags = 0)
        {
        }
        static function GetUserOperations($arID, $USER_ID = 0)
        {
        }
    }
    class CIBlockElementRights extends \CIBlockRights
    {
        function __construct($IBLOCK_ID, $ELEMENT_ID)
        {
        }
        function _self_check()
        {
        }
        function _entity_type()
        {
        }
        function _storage_object()
        {
        }
        function GetList($arFilter)
        {
        }
        function GetRights($arOptions = array())
        {
        }
        function DeleteAllRights()
        {
        }
        static function UserHasRightTo($IBLOCK_ID, $ID, $permission, $flags = 0)
        {
        }
        static function GetUserOperations($arID, $USER_ID = 0)
        {
        }
    }
    class CIBlockRightsStorage
    {
        protected $IBLOCK_ID = 0;
        protected $SECTION_ID = 0;
        protected $ELEMENT_ID = 0;
        protected $arSection = \null;
        function __construct($IBLOCK_ID, $SECTION_ID, $ELEMENT_ID)
        {
        }
        function _set_section($SECTION_ID)
        {
        }
        function _get_section()
        {
        }
        function CountOverWrited($GROUP_CODE)
        {
        }
        function DeleteSelfSet($ID, $TYPE)
        {
        }
        function DeleteChildrenSet($ID, $TYPE)
        {
        }
        function AddSelfSet($RIGHT_ID, $bInherited = \false)
        {
        }
        function AddChildrenSet($RIGHT_ID, $GROUP_CODE, $bInherited)
        {
        }
        function FindParentWithInherit($GROUP_CODE)
        {
        }
        function DeleteRights()
        {
        }
        function CleanUp($bFull = \false)
        {
        }
        function Recalculate()
        {
        }
        public static function OnTaskOperationsChanged($TASK_ID, $arOld, $arNew)
        {
        }
        public static function OnGroupDelete($GROUP_ID)
        {
        }
        public static function OnUserDelete($USER_ID)
        {
        }
    }
    class CIBlockPropertyElementAutoComplete
    {
        const USER_TYPE = 'EAutocomplete';
        public static function GetUserTypeDescription()
        {
        }
        public static function GetValueForAutoComplete($arProperty, $arValue, $arBanSym = "", $arRepSym = "")
        {
        }
        public static function GetValueForAutoCompleteMulti($arProperty, $arValues, $arBanSym = "", $arRepSym = "")
        {
        }
        public static function GetPublicFilterHTML($arProperty, $strHTMLControlName)
        {
        }
        public static function GetPropertyFieldHtml($arProperty, $arValue, $strHTMLControlName)
        {
        }
        public static function GetPropertyFieldHtmlMulty($arProperty, $arValues, $strHTMLControlName)
        {
        }
        public static function GetAdminListViewHTML($arProperty, $arValue, $strHTMLControlName)
        {
        }
        public static function GetPublicViewHTML($arProperty, $arValue, $strHTMLControlName)
        {
        }
        public static function GetPublicEditHTML($property, $value, $control)
        {
        }
        public static function PrepareSettings($arFields)
        {
        }
        public static function GetSettingsHTML($arFields, $strHTMLControlName, &$arPropertyFields)
        {
        }
        public static function GetAdminFilterHTML($arProperty, $strHTMLControlName)
        {
        }
        public static function AddFilterFields($arProperty, $strHTMLControlName, &$arFilter, &$filtered)
        {
        }
        /**
         * @param array $property
         * @param array $strHTMLControlName
         * @param array &$fields
         * @return void
         */
        public static function GetUIFilterProperty($property, $strHTMLControlName, &$fields)
        {
        }
        protected static function GetLinkElement($intElementID, $intIBlockID)
        {
        }
        protected static function GetPropertyValue($arProperty, $arValue)
        {
        }
        protected static function GetPropertyViewsList($boolFull)
        {
        }
        protected static function GetReplaceSymList($boolFull = \false)
        {
        }
        protected static function GetSymbols($arSettings)
        {
        }
        /**
         * Returns search page url.
         *
         * @return string
         */
        protected static function getSearchUrl()
        {
        }
        public static function GetUIEntityEditorProperty($settings, $value)
        {
        }
        public static function GetUIEntityEditorPropertyEditHtml(array $params = []) : string
        {
        }
        public static function GetUIEntityEditorPropertyViewHtml(array $params = []) : string
        {
        }
    }
    class CIBlockPropertySKU extends \CIBlockPropertyElementAutoComplete
    {
        const USER_TYPE = 'SKU';
        public static function GetUserTypeDescription()
        {
        }
        public static function PrepareSettings($arFields)
        {
        }
        public static function GetSettingsHTML($arFields, $strHTMLControlName, &$arPropertyFields)
        {
        }
    }
    class CIBlockPropertyDate extends \CIBlockPropertyDateTime
    {
        const USER_TYPE = 'Date';
        public static function GetUserTypeDescription()
        {
        }
        /**
         * @param \Bitrix\Main\ORM\Entity $valueEntity
         * @param Iblock\Property         $property
         *
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public static function GetORMFields($valueEntity, $property)
        {
        }
        public static function ConvertToDB($arProperty, $value)
        {
        }
        public static function ConvertFromDB($arProperty, $value, $format = '')
        {
        }
        public static function GetPublicEditHTML($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
        {
        }
        /**
         * @param array $property
         * @param array $control
         * @param array &$fields
         * @return void
         */
        public static function GetUIFilterProperty($property, $control, &$fields)
        {
        }
        /**
         * @param $settings
         * @param $value
         *
         * @return array
         */
        public static function GetUIEntityEditorProperty($settings, $value)
        {
        }
    }
    class CAllIBlockProperty
    {
        public $LAST_ERROR = "";
        public static function GetList($arOrder = array(), $arFilter = array())
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Delete by property ID
        ///////////////////////////////////////////////////////////////////
        public static function Delete($ID)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Add
        ///////////////////////////////////////////////////////////////////
        public function Add($arFields)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // This one called before any Update or Add
        ///////////////////////////////////////////////////////////////////
        public function CheckFields(&$arFields, $ID = \false, $bFormValidate = \false)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Update method
        ///////////////////////////////////////////////////////////////////
        public function Update($ID, $arFields, $bCheckDescription = \false)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Get property information by ID
        ///////////////////////////////////////////////////////////////////
        public static function GetByID($ID, $IBLOCK_ID = \false, $IBLOCK_CODE = \false)
        {
        }
        public static function GetPropertyArray($ID, $IBLOCK_ID, $bCached = \true)
        {
        }
        public static function GetPropertyEnum($PROP_ID, $arOrder = array("SORT" => "asc"), $arFilter = array())
        {
        }
        function UpdateEnum($ID, $arVALUES, $bForceDelete = \true)
        {
        }
        public static function GetUserType($USER_TYPE = \false)
        {
        }
        function FormatUpdateError($ID, $CODE)
        {
        }
        function FormatNotFoundError($ID)
        {
        }
        /**
         * @deprecated deprecated since iblock 17.0.9
         * @see \CIBlockPropertyDateTime::GetUserTypeDescription()
         *
         * @return array
         */
        public static function _DateTime_GetUserTypeDescription()
        {
        }
        /**
         * @deprecated deprecated since iblock 17.0.9
         * @see \CIBlockPropertyDate::GetUserTypeDescription()
         *
         * @return array
         */
        public static function _Date_GetUserTypeDescription()
        {
        }
        /**
         * @deprecated deprecated since iblock 17.0.9
         * @see \CIBlockPropertyXmlID::GetUserTypeDescription()
         *
         * @return array
         */
        public static function _XmlID_GetUserTypeDescription()
        {
        }
        /**
         * @deprecated deprecated since iblock 17.0.9
         * @see \CIBlockPropertyFileMan::GetUserTypeDescription()
         *
         * @return array
         */
        public static function _FileMan_GetUserTypeDescription()
        {
        }
        /**
         * @deprecated deprecated since iblock 17.0.9
         * @see \CIBlockPropertyHTML::GetUserTypeDescription()
         *
         * @return array
         */
        public static function _HTML_GetUserTypeDescription()
        {
        }
        /**
         * @deprecated deprecated since iblock 17.0.9
         * @see \CIBlockPropertyElementList::GetUserTypeDescription()
         *
         * @return array
         */
        public static function _ElementList_GetUserTypeDescription()
        {
        }
        /**
         * @deprecated deprecated since iblock 17.0.9
         * @see \CIBlockPropertySequence::GetUserTypeDescription()
         *
         * @return array
         */
        public static function _Sequence_GetUserTypeDescription()
        {
        }
        /**
         * @deprecated deprecated since iblock 17.0.9
         * @see \CIBlockPropertyElementAutoComplete::GetUserTypeDescription()
         *
         * @return array
         */
        public static function _ElementAutoComplete_GetUserTypeDescription()
        {
        }
        /**
         * @deprecated deprecated since iblock 17.0.9
         * @see \CIBlockPropertySKU::GetUserTypeDescription()
         *
         * @return array
         */
        public static function _SKU_GetUserTypeDescription()
        {
        }
        /**
         * @deprecated deprecated since iblock 17.0.9
         * @see \CIBlockPropertySectionAutoComplete::GetUserTypeDescription()
         *
         * @return array
         */
        public static function _SectionAutoComplete_GetUserTypeDescription()
        {
        }
        function _Update($ID, $arFields, $bCheckDescription = \false)
        {
        }
        function DropColumnSQL($strTable, $arColumns)
        {
        }
        function _Add($ID, $arFields)
        {
        }
    }
    class CIBlockFormatProperties
    {
        private static $b24Installed = \null;
        private static $statisticInstalled = \null;
        public static function GetDisplayValue($arItem, $arProperty, $event1 = '')
        {
        }
        /**
         * @param string $format
         * @param int $timestamp
         * @return string
         */
        public static function DateFormat($format, $timestamp)
        {
        }
    }
    class CIBlockCMLImport
    {
        const IBLOCK_CACHE_FREEZE = 'D';
        const IBLOCK_CACHE_FINAL = 'F';
        const IBLOCK_CACHE_HIT = 'H';
        const IBLOCK_CACHE_NORMAL = 'N';
        var $LAST_ERROR = "";
        /** @var bool|array */
        var $next_step = \false;
        var $files_dir = \false;
        var $use_offers = \true;
        var $force_offers = \false;
        var $use_iblock_type_id = \false;
        var $use_crc = \true;
        var $preview = \false;
        var $detail = \false;
        var $iblock_resize = \false;
        /** @var CIBlockXMLFile $_xml_file */
        var $_xml_file = \null;
        var $bCatalog = \false;
        var $isCatalogIblock = \false;
        var $PROPERTY_MAP = array();
        var $SECTION_MAP = array();
        var $PRICES_MAP = array();
        var $arProperties = array();
        var $arSectionCache = array();
        var $arElementCache = array();
        var $arEnumCache = array();
        var $arCurrencyCache = array();
        var $arTaxCache = array();
        var $mess = array();
        var $arTempFiles = array();
        var $arFileDescriptionsMap = array();
        var $arElementFilesId = array();
        var $arElementFiles = array();
        var $arLinkedProps = \false;
        var $translit_on_add = \false;
        var $translit_on_update = \false;
        var $translit_params = array();
        var $skip_root_section = \false;
        var $disable_change_price_name = \false;
        protected $activeStores = array();
        protected $iblockCacheMode = self::IBLOCK_CACHE_NORMAL;
        private $bitrix24mode = \null;
        protected $currentUserId = \null;
        function InitEx(&$next_step, $params)
        {
        }
        function Init(&$next_step, $files_dir = \false, $use_crc = \true, $preview = \false, $detail = \false, $use_offers = \false, $use_iblock_type_id = \false, $table_name = "b_xml_tree")
        {
        }
        function CheckIfFileIsCML($file_name)
        {
        }
        function DropTemporaryTables()
        {
        }
        function CreateTemporaryTables()
        {
        }
        function IndexTemporaryTables()
        {
        }
        function ReadXMLToDatabase($fp, &$NS, $time_limit = 0, $read_size = 1024)
        {
        }
        public function GetRoot()
        {
        }
        function StartSession($sess_id)
        {
        }
        function GetSessionRoot()
        {
        }
        function EndSession()
        {
        }
        public function GetFilePosition()
        {
        }
        function CleanTempFiles()
        {
        }
        function MakeFileArray($file, $fields = array())
        {
        }
        function URLEncode($str)
        {
        }
        function CheckFileByName($file, $fields = \null)
        {
        }
        function ResizePicture($file, $resize, $primaryField, $secondaryField = "")
        {
        }
        function GetIBlockByXML_ID($XML_ID)
        {
        }
        function GetSectionByXML_ID($IBLOCK_ID, $XML_ID)
        {
        }
        function GetElementByXML_ID($IBLOCK_ID, $XML_ID)
        {
        }
        function GetEnumByXML_ID($PROP_ID, $XML_ID)
        {
        }
        function GetSectionEnumByXML_ID($FIELD_ID, $XML_ID)
        {
        }
        function GetPropertyByXML_ID($IBLOCK_ID, $XML_ID)
        {
        }
        function CheckProperty($IBLOCK_ID, $code, $xml_name)
        {
        }
        function CheckTax($title, $rate)
        {
        }
        function CheckCurrency($currency)
        {
        }
        function CheckIBlockType($ID)
        {
        }
        function CheckSites($arSite)
        {
        }
        function ImportMetaData($xml_root_id, $IBLOCK_TYPE, $IBLOCK_LID, $bUpdateIBlock = \true)
        {
        }
        function ImportSections()
        {
        }
        function DeactivateSections($action)
        {
        }
        function SectionsResort()
        {
        }
        function ImportPrices($XML_PRICES_PARENT, $IBLOCK_ID, $IBLOCK_LID)
        {
        }
        function ImportBaseUnits($XML_BASE_UNITS_PARENT)
        {
        }
        function ImportStores($XML_STORES_PARENT)
        {
        }
        function ImportStoresAmount($arElement, $elementID, &$counter)
        {
        }
        function ImportSectionsProperties($XML_PARENT, $IBLOCK_ID)
        {
        }
        function ImportProperties($XML_PROPERTIES_PARENT, $IBLOCK_ID)
        {
        }
        function ImportPropertyEnum($arProperty, $arEnumXmlNodes)
        {
        }
        /**
         * @param array $arProperty
         * @param array $arEnumXmlNodes
         * @return true|string
         * @throws Main\ArgumentException
         * @throws Main\ObjectPropertyException
         * @throws Main\SystemException
         */
        function ImportPropertyDirectory($arProperty, $arEnumXmlNodes)
        {
        }
        function ImportSectionPropertyEnum($FIELD_ID, $arEnumXmlNodes)
        {
        }
        function ImportSectionProperties($XML_SECTION_PROPERTIES, $IBLOCK_ID, $SECTION_ID = 0)
        {
        }
        function ReadCatalogData(&$SECTION_MAP, &$PRICES_MAP)
        {
        }
        function GetElementCRC($arElement)
        {
        }
        function CheckManufacturer($xml)
        {
        }
        /**
         * @return bool
         */
        public function GetTotalCountElementsForImport()
        {
        }
        /**
         * @param int $start_time
         * @param int $interval
         * @return array
         */
        public function ImportElements($start_time, $interval)
        {
        }
        function ImportProductSets()
        {
        }
        function ChangeOffersStatus($ELEMENT_ID, $STATUS = "Y", $bWF = \true)
        {
        }
        function safeTranslit($str)
        {
        }
        /**
         * @param string $str
         * @return float
         */
        public function ToFloat($str)
        {
        }
        /**
         * @param string $value
         * @return float|string
         */
        public function ToFloatEmpty($value)
        {
        }
        /**
         * @param string $str
         * @return int
         */
        public function ToInt($str)
        {
        }
        function Unserialize($string)
        {
        }
        function __unserialize_callback($match)
        {
        }
        function convertBaseUnitFromXmlToPropertyValue($xmlValue)
        {
        }
        function CheckIfElementIsActive($arXMLElement)
        {
        }
        function ImportElement($arXMLElement, &$counter, $bWF, $arParent)
        {
        }
        function ImportElementPrices($arXMLElement, &$counter, $arParent = \false)
        {
        }
        function fillDefaultPropertyValues(&$arElement, $iblockProperties)
        {
        }
        function ConvertDiscounts($arDiscounts)
        {
        }
        /**
         * @param int $PRODUCT_ID
         * @param array $arPrices
         * @param bool|array $arDiscounts
         */
        function SetProductPrice($PRODUCT_ID, $arPrices, $arDiscounts = \false)
        {
        }
        function ImportSection($xml_tree_id, $IBLOCK_ID, $parent_section_id)
        {
        }
        function CheckElementCode($IBLOCK_ID, $ID, $CODE)
        {
        }
        function CheckSectionCode($IBLOCK_ID, $ID, $CODE)
        {
        }
        function DeactivateElement($action, $start_time, $interval)
        {
        }
        /**
         * @param array $counters
         * @return int
         */
        public function updateCounters(array $counters)
        {
        }
        /**
         * @param bool $description
         * @return array
         */
        public static function getIblockCacheModeList($description = \false)
        {
        }
        /**
         * @return void
         */
        public function freezeIblockCache()
        {
        }
        /**
         * @return void
         */
        public function unFreezeIblockCache()
        {
        }
        /**
         * @return void
         */
        public function clearIblockCacheOnHit()
        {
        }
        /**
         * @return void
         */
        public function clearIblockCacheAfterFinal()
        {
        }
        /**
         * @return string
         */
        public function getIblockCacheMode()
        {
        }
        /**
         * @return bool
         */
        public function isIblockCacheModeNormal()
        {
        }
        /**
         * @return bool
         */
        public function isIblockCacheModeHit()
        {
        }
        /**
         * @return bool
         */
        public function isIblockCacheModeFinal()
        {
        }
        /**
         * @return bool
         */
        public function isIblockCacheModeFreeze()
        {
        }
        /**
         * Returns a external codes list of warehouses.
         *
         * @return array
         */
        protected function getStoreList()
        {
        }
        /**
         * Returns a external codes list of active warehouses.
         *
         * @return array
         */
        protected function getActiveStores()
        {
        }
        /**
         * Count total product quantity.
         *
         * @param array $stores
         * @return int|float
         */
        protected function countTotalQuantity(array $stores)
        {
        }
    }
    class CAllIBlockSection
    {
        var $LAST_ERROR;
        protected static $arSectionCodeCache = array();
        protected static $arSectionPathCache = array();
        protected static $arSectionNavChainCache = array();
        public static function GetFilter($arFilter = array())
        {
        }
        public static function GetTreeList($arFilter = array(), $arSelect = array())
        {
        }
        public static function GetNavChain($IBLOCK_ID, $SECTION_ID, $arSelect = array(), $arrayResult = \false)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Function returns section by ID
        ///////////////////////////////////////////////////////////////////
        public static function GetByID($ID)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // New section
        ///////////////////////////////////////////////////////////////////
        function Add($arFields, $bResort = \true, $bUpdateSearch = \true, $bResizePictures = \false)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Update section properties
        ///////////////////////////////////////////////////////////////////
        function Update($ID, $arFields, $bResort = \true, $bUpdateSearch = \true, $bResizePictures = \false)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Function delete section by its ID
        ///////////////////////////////////////////////////////////////////
        public static function Delete($ID, $bCheckPermissions = \true)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Check function called from Add and Update
        ///////////////////////////////////////////////////////////////////
        function CheckFields(&$arFields, $ID = \false)
        {
        }
        public static function TreeReSort($IBLOCK_ID, $ID = 0, $cnt = 0, $depth = 0, $ACTIVE = "Y")
        {
        }
        public static function ReSort($IBLOCK_ID, $ID = 0, $cnt = 0, $depth = 0, $ACTIVE = "Y")
        {
        }
        function UpdateSearch($ID, $bOverWrite = \false)
        {
        }
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool $bIncCnt
         * @param bool|array $arSelectedFields
         * @return CDBResult
         */
        public static function GetMixedList($arOrder = array("SORT" => "ASC"), $arFilter = array(), $bIncCnt = \false, $arSelectedFields = \false)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // GetSectionElementsCount($ID, $arFilter=Array())
        ///////////////////////////////////////////////////////////////////
        function GetSectionElementsCount($ID, $arFilter = array())
        {
        }
        protected static function _check_rights_sql($min_permission, $permissionsBy = \null)
        {
        }
        function GetCount($arFilter = array())
        {
        }
        function UserTypeRightsCheck($entity_id)
        {
        }
        function RecalcGlobalActiveFlag($arSection, $distance = 0)
        {
        }
        public static function getSectionCodePath($sectionId)
        {
        }
        public static function getSectionCode($sectionId)
        {
        }
        /**
         * Returns a filter by element properties and product fields.
         *
         * @param array $filter
         * @return array
         */
        public static function getElementInherentFilter(array $filter) : array
        {
        }
        /**
         * @param array $filter
         * @return bool
         */
        public static function checkLoadSections(array $filter) : bool
        {
        }
        /**
         * @param array $filter
         * @return array
         */
        protected static function getPreparedFilterById(array $filter) : array
        {
        }
        /**
         * @param mixed $value
         * @return bool
         */
        protected static function clearNull($value) : bool
        {
        }
    }
    /* Sorting in lists */
    class CAdminSorting
    {
        var $by_name;
        var $ord_name;
        var $table_id;
        var $by_initial;
        var $order_initial;
        protected $field;
        protected $order;
        /**
         * @param string $table_id
         * @param string|false $by_initial
         * @param string|false $order_initial
         * @param string $by_name
         * @param string $ord_name
         */
        public function __construct($table_id, $by_initial = \false, $order_initial = \false, $by_name = "by", $ord_name = "order")
        {
        }
        /**
         * @param string $text
         * @param string $sort_by
         * @param string|false $alt_title
         * @param string $baseCssClass
         * @return string
         */
        public function Show($text, $sort_by, $alt_title = \false, $baseCssClass = "")
        {
        }
        /**
         * @return string
         */
        public function getField()
        {
        }
        /**
         * @return string
         */
        public function getOrder()
        {
        }
        /**
         * @return array
         */
        protected function getUserSorting()
        {
        }
    }
    class CAdminSubSorting extends \CAdminSorting
    {
        public $list_url;
        public function __construct($table_id, $by_initial = \false, $order_initial = \false, $by_name = "by", $ord_name = "order", $list_url = '')
        {
        }
        public function Show($text, $sort_by, $alt_title = \false, $baseCssClass = "")
        {
        }
    }
    class CAdminSubList extends \CAdminList
    {
        /*
         *	list_url - string with params or array:
         *		LINK
         *		PARAMS (array key => value)
         */
        public $strListUrl = '';
        // add
        public $strListUrlParams = '';
        // add
        public $arListUrlParams = array();
        // add
        public $boolNew = \false;
        // add
        public $arFieldNames = array();
        // add
        public $arHideHeaders = array();
        // add
        protected $bPublicMode = \false;
        protected $dialogParams = array();
        protected $requiredDialogParams = array('bxpublic' => 'Y');
        protected $dialogButtons = array('BX.CAdminDialog.btnSave', 'BX.CAdminDialog.btnCancel');
        /**
         * @param string $table_id
         * @param bool|CAdminSubSorting $sort
         * @param string $list_url
         * @param bool|array $arHideHeaders
         */
        public function __construct($table_id, $sort = \false, $list_url, $arHideHeaders = \false)
        {
        }
        /**
         * @deprecated
         * @param $table_id
         * @param bool $sort
         * @param $list_url
         * @param bool $arHideHeaders
         */
        public function CAdminSubList($table_id, $sort = \false, $list_url, $arHideHeaders = \false)
        {
        }
        function GetListUrl($boolFull = \false)
        {
        }
        function __UpdateListUrlParams()
        {
        }
        function __ClearListUrlParams()
        {
        }
        function __AddListUrlParams($strKey, $strValue)
        {
        }
        function __DeleteListUrlParams($mxKey)
        {
        }
        function __SetListUrlParams($mxParams, $boolClear = \false)
        {
        }
        function __ParseListUrl($boolClear = \false)
        {
        }
        function AddHideHeader($strID)
        {
        }
        //id, name, content, sort, default
        public function AddHeaders($aParams)
        {
        }
        public function AddVisibleHeaderColumn($id)
        {
        }
        public function AddAdminContextMenu($aContext = array(), $bShowExcel = \true, $bShowSettings = \true)
        {
        }
        /**
         * Returns true if the user has set the flag "To all" in the list.
         *
         * @return bool
         */
        public function IsGroupActionToAll()
        {
        }
        /**
         * @return array|null
         */
        protected function GetGroupIds()
        {
        }
        public function ActionPost($url = \false, $action_name = \false, $action_value = 'Y')
        {
        }
        public function ActionDoGroup($id, $action_id, $add_params = '')
        {
        }
        public function &AddRow($id = \false, $arRes = array(), $link = \false, $title = \false, $boolBX = \false)
        {
        }
        public function Display()
        {
        }
        public function ShowActionTable()
        {
        }
        public function DisplayList($boolFlag = \true)
        {
        }
        public function CheckListMode()
        {
        }
        function SetBaseFieldNames()
        {
        }
        function AddListFieldNames()
        {
        }
        function SetListFieldNames($boolClear = \true)
        {
        }
        function DeleteFieldNames($arList = array())
        {
        }
        function GetListFieldNames()
        {
        }
        function AddFieldNames($strFieldName, $strFieldType)
        {
        }
        public function setDialogParams($params)
        {
        }
        public function getDialogParams($withRequired = \false)
        {
        }
        public function setDialogButtons($buttons)
        {
        }
        public function getDialogButtons($jsFormat = \false)
        {
        }
        public function getRowAction($url)
        {
        }
        private function prepareGroupMultiControl(string $id, array $action)
        {
        }
        private function createGroupSubControl(array $data)
        {
        }
        /**
         * @param array $actions
         * @return array
         */
        private function compileActions(array $actions)
        {
        }
        private function createGroupSubControlDropdown(array $data)
        {
        }
        /**
         * @param array $data
         * @return string|null
         */
        private function createGroupSubControlText(array $data)
        {
        }
    }
    class CAdminListRow
    {
        var $aHeaders = array();
        var $aHeadersID = array();
        var $aFields = array();
        var $aActions = array();
        var $table_id;
        var $indexFields = 0;
        var $edit = \false;
        var $id;
        var $bReadOnly = \false;
        var $aFeatures = array();
        var $bEditMode = \false;
        var $arRes;
        var $link;
        var $title;
        var $pList;
        var $isPublicMode = \false;
        /**
         * CAdminListRow constructor.
         * @param array &$aHeaders
         * @param string $table_id
         */
        public function __construct(&$aHeaders, $table_id)
        {
        }
        /** @deprecated
         * @param array &$aHeaders
         * @param string $table_id
         */
        public function CAdminListRow(&$aHeaders, $table_id)
        {
        }
        function SetFeatures($aFeatures)
        {
        }
        function AddField($id, $text, $edit = \false, $isHtml = \true)
        {
        }
        /**
         * @param string $id
         * @param array|boolean $arAttributes
         * @return void
         */
        function AddCheckField($id, $arAttributes = array())
        {
        }
        /**
         * @param string $id
         * @param array $arValues
         * @param array|boolean $arAttributes
         * @return void
         */
        function AddSelectField($id, $arValues = array(), $arAttributes = array())
        {
        }
        /**
         * @param string $id
         * @param array|boolean $arAttributes
         * @return void
         */
        function AddInputField($id, $arAttributes = array())
        {
        }
        /**
         * @param string $id
         * @param array|boolean $arAttributes
         * @param bool $useTime
         * @return void
         */
        function AddCalendarField($id, $arAttributes = array(), $useTime = \false)
        {
        }
        /**
         * @param string $id
         * @param array|boolean $currencies
         * @param array|boolean $arAttributes
         * @return void
         */
        function AddMoneyField($id, $arAttributes = [])
        {
        }
        function AddViewField($id, $sHTML)
        {
        }
        function AddEditField($id, $sHTML)
        {
        }
        /**
         * @param string $id
         * @param bool|array $showInfo
         * @return void
         */
        function AddViewFileField($id, $showInfo = \false)
        {
        }
        /**
         * @param string $id
         * @param bool|array $showInfo
         * @param array $inputs
         * @return void
         */
        function AddFileField($id, $showInfo = \false, $inputs = array())
        {
        }
        function AddActions($aActions)
        {
        }
        function __AttrGen($attr)
        {
        }
        function VarsFromForm()
        {
        }
        function Display()
        {
        }
        /**
         * @param string $url
         * @return string
         */
        protected function getActionLink($url)
        {
        }
        /**
         * @param array $item
         * @return bool
         */
        protected function getActionsItemLink(array $item)
        {
        }
    }
    class CAdminSubListRow extends \CAdminListRow
    {
        /** @var \CAdminSubList pList */
        var $pList;
        public $arFieldNames = array();
        //add
        public $boolBX = \false;
        // add
        public function __construct($aHeaders, $table_id)
        {
        }
        /**
         * @deprecated
         * @param $aHeaders
         * @param $table_id
         */
        function CAdminSubListRow(&$aHeaders, $table_id)
        {
        }
        public function Display()
        {
        }
        function AddFieldNames($strFieldName, $strFieldType = 'HIDDEN')
        {
        }
        function GetFieldNames()
        {
        }
    }
    /* Context links menu for edit forms */
    class CAdminContextMenu
    {
        var $items;
        var $additional_items;
        var $bMenuAdded = \false;
        var $bRightBarAdded = \false;
        var $isSidePanel = \false;
        var $isPublicMode = \false;
        var $isPublicSidePanel = \false;
        var $isPublicFrame = \false;
        public function __construct($items, $additional_items = array())
        {
        }
        function prepareItemLink(array &$listItems)
        {
        }
        /**
         * @deprecated
         * @param $items
         * @param array $additional_items
         */
        function CAdminContextMenu($items, $additional_items = array())
        {
        }
        function Show()
        {
        }
        function BeginBar()
        {
        }
        function EndBar()
        {
        }
        function BeginRightBar()
        {
        }
        function EndRightBar()
        {
        }
        function GetClassByID($icon_id)
        {
        }
        function GetActiveClassByID($icon_id)
        {
        }
        /**
         * @param array $item
         * @param CHotKeys $hkInst
         */
        function Button($item, $hkInst)
        {
        }
        function Additional()
        {
        }
    }
    class CAdminSubContextMenu extends \CAdminContextMenu
    {
        public function __construct($items, $additional_items = array())
        {
        }
        /**
         * @deprecated
         * @param $items
         * @param array $additional_items
         */
        function CAdminSubContextMenu($items, $additional_items = array())
        {
        }
        function Show()
        {
        }
        function GetClassByID($icon_id)
        {
        }
        function GetActiveClassByID($icon_id)
        {
        }
    }
    class CAdminSubContextMenuList extends \CAdminSubContextMenu
    {
        function BeginBar()
        {
        }
        function BeginRightBar()
        {
        }
        function EndRightBar()
        {
        }
        function GetClassByID($icon_id)
        {
        }
        function GetActiveClassByID($icon_id)
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2016 Bitrix
     */
    /*Tab Control*/
    class CAdminTabControl
    {
        var $name, $unique_name;
        var $tabs = array();
        var $selectedTab;
        var $tabIndex = 0;
        var $bButtons = \false;
        var $arButtonsParams = \false;
        var $bCanExpand;
        var $bPublicModeBuffer = \false;
        var $bShowSettings = \false;
        var $publicModeBuffer_id;
        /** @var CAdminTabEngine */
        var $customTabber;
        var $bPublicMode = \false;
        var $isPublicFrame = \false;
        var $publicObject = 'BX.WindowManager.Get()';
        var $AUTOSAVE = \null;
        protected $tabEvent = \false;
        var $isSidePanel = \false;
        var $publicSidePanel = \false;
        var $isShownSidePanelFields = \false;
        public function __construct($name, $tabs, $bCanExpand = \true, $bDenyAutoSave = \false)
        {
        }
        function SetPublicMode($jsObject = \false)
        {
        }
        /**
         * @param CAdminTabEngine $customTabber
         */
        function AddTabs(&$customTabber)
        {
        }
        function OnAdminTabControlBegin()
        {
        }
        function SetSelectedTab()
        {
        }
        function Begin()
        {
        }
        function ShowTabButtons()
        {
        }
        function BeginNextTab($options = array())
        {
        }
        function EndTab()
        {
        }
        /**
         * @param bool|array $aParams
         */
        function Buttons($aParams = \false)
        {
        }
        protected function getAjaxButtons(array $params)
        {
        }
        public function getSidePanelFields()
        {
        }
        /**
         * @param bool|array $arJSButtons
         */
        function ButtonsPublic($arJSButtons = \false)
        {
        }
        function End()
        {
        }
        function GetSelectedTab()
        {
        }
        function ActiveTabParam()
        {
        }
        // this method is temporarily disabled!
        //string, CAdminException, array("id"=>"name", ...)
        function ShowWarnings($form, $messages, $aFields = \false)
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2016 Bitrix
     */
    class CAdminForm extends \CAdminTabControl
    {
        var $arParams = array();
        var $arFields = array();
        var $arForbiddenFields = array();
        var $group = "";
        var $group_ajax = \false;
        var $arFieldValues = array();
        var $sPrologContent = "";
        var $sEpilogContent = "";
        var $arButtonsParams = \false;
        var $sButtonsContent = "";
        var $arSavedTabs = array();
        var $arSystemTabs = array();
        var $arSystemFields = array();
        var $arReqiredTabs = array();
        var $arCustomLabels = array();
        var $bCustomFields = \false;
        var $sCurrentLabel = "";
        var $bCurrentReq = \false;
        var $bShowSettings = \true;
        public function __construct($name, $tabs, $bCanExpand = \true, $bDenyAutosave = \false)
        {
        }
        /** @deprecated */
        public function CAdminForm($name, $tabs, $bCanExpand = \true, $bDenyAutosave = \false)
        {
        }
        function SetSelectedTab()
        {
        }
        function SetShowSettings($v)
        {
        }
        function ShowSettings()
        {
        }
        function SetFieldsValues($bVarsFromForm, $db_record, $default_values)
        {
        }
        function SetFieldValue($field_name, $bVarsFromForm, $db_record, $default_value = \false)
        {
        }
        function GetFieldValue($field_name)
        {
        }
        function GetHTMLFieldValue($field_name)
        {
        }
        function GetHTMLFieldValueEx($field_name)
        {
        }
        function GetFieldLabel($id)
        {
        }
        function ShowTabButtons()
        {
        }
        function Begin($arParams = array())
        {
        }
        function BeginNextFormTab()
        {
        }
        function Show()
        {
        }
        function GetName()
        {
        }
        function GetFormName()
        {
        }
        function GetCustomLabel($id, $content)
        {
        }
        function GetCustomLabelHTML($id = \false, $content = "")
        {
        }
        function ShowWarnings($form, $messages, $aFields = \false)
        {
        }
        function BeginPrologContent()
        {
        }
        function EndPrologContent()
        {
        }
        function BeginEpilogContent()
        {
        }
        function EndEpilogContent()
        {
        }
        function AddFieldGroup($id, $content, $arFields, $bAjax = \false)
        {
        }
        function HideField($id)
        {
        }
        function AddSection($id, $content, $required = \false)
        {
        }
        function AddViewField($id, $content, $html, $required = \false)
        {
        }
        function AddDropDownField($id, $content, $required, $arSelect, $value = \false, $arParams = array())
        {
        }
        function AddEditField($id, $content, $required, $arParams = array(), $value = \false)
        {
        }
        function AddTextField($id, $label, $value, $arParams = array(), $required = \false)
        {
        }
        function AddCalendarField($id, $label, $value, $required = \false)
        {
        }
        function AddCheckBoxField($id, $content, $required, $value, $checked, $arParams = array())
        {
        }
        function AddFileField($id, $label, $value, $arParams = array(), $required = \false)
        {
        }
        function BeginCustomField($id, $content, $required = \false)
        {
        }
        function EndCustomField($id, $hidden = "")
        {
        }
        function ShowUserFields($PROPERTY_ID, $ID, $bVarsFromForm)
        {
        }
        function ShowUserFieldsWithReadyData($PROPERTY_ID, $readyData, $bVarsFromForm, $primaryIdName = 'VALUE_ID')
        {
        }
        function Buttons($aParams = \false, $additional_html = "")
        {
        }
        /**
         * @param bool|array $arJSButtons
         * @return void
         */
        function ButtonsPublic($arJSButtons = \false)
        {
        }
    }
    class CAdminSubForm extends \CAdminForm
    {
        /*
         *	list_url - string with params or array:
         *		LINK
         *		PARAMS (array key => value)
         *		POST_PARAMS (array key => value)
         */
        var $strListUrl = '';
        // add
        var $strListUrlParams = '';
        // add
        var $arListUrlParams = array();
        // add
        var $strListPostParams = '';
        var $arListPostParams = array();
        var $boolShowSettings = \false;
        public function __construct($name, $tabs, $bCanExpand = \true, $bDenyAutosave = \false, $list_url = '', $boolShowSettings = \false)
        {
        }
        public function CAdminSubForm($name, $tabs, $bCanExpand = \true, $bDenyAutosave = \false, $list_url = '', $boolShowSettings = \false)
        {
        }
        function ShowSettings()
        {
        }
        public function GetListUrl($boolFull = \false)
        {
        }
        public function GetListPostParams($boolType = \false, $boolJS = \false)
        {
        }
        private function __UpdateListUrlParams()
        {
        }
        private function __ClearListUrlParams()
        {
        }
        private function __AddListUrlParams($strKey, $strValue)
        {
        }
        private function __DeleteListUrlParams($mxKey)
        {
        }
        private function __SetListUrlParams($mxParams, $boolClear = \false)
        {
        }
        private function __ParseListUrl($boolClear = \false)
        {
        }
        private function __UpdateListPostParams()
        {
        }
        private function __ClearListPostParams()
        {
        }
        private function __AddListPostParams($strKey, $strValue)
        {
        }
        private function __DeleteListPostParams($mxKey)
        {
        }
        private function __SetListPostParams($mxParams, $boolClear)
        {
        }
        function ShowTabButtons()
        {
        }
        function End()
        {
        }
        public static function closeSubForm($reload = \true, $closeWait = \true)
        {
        }
    }
    class CAdminSubResult extends \CAdminResult
    {
        var $list_url;
        var $list_url_params;
        public function __construct($res, $table_id, $list_url)
        {
        }
        public function CAdminSubResult($res, $table_id, $list_url)
        {
        }
        public function NavStart($nPageSize = 20, $bShowAll = \true, $iNumPage = \false)
        {
        }
        /**
         * @param bool|string $table_id
         * @param int|array $nPageSize
         * @param string $list_url
         * @return int
         */
        public function GetNavSize($table_id = \false, $nPageSize = 20, $list_url = '')
        {
        }
        public function GetNavPrint($title, $show_allways = \true, $StyleText = "", $template_path = \false, $arDeleteParam = \false)
        {
        }
    }
    class CAdminMessage
    {
        /** @var CAdminException */
        var $exception;
        var $message;
        /**
         * @param string|array $message
         * @param CAdminException|bool $exception
         */
        public function __construct($message, $exception = \false)
        {
        }
        /**
         * @deprecated
         * @param string|array $message
         * @param CAdminException|bool $exception
         */
        public function CAdminMessage($message, $exception = \false)
        {
        }
        function Show()
        {
        }
        function _getProgressHtml()
        {
        }
        function _getButtonsHtml()
        {
        }
        function _formatHTML($html)
        {
        }
        function GetMessages()
        {
        }
        function ShowOldStyleError($message)
        {
        }
        function ShowMessage($message)
        {
        }
        function ShowNote($message)
        {
        }
    }
    class CAdminSubMessage extends \CAdminMessage
    {
        public function __construct($message, $exception = \false)
        {
        }
        /**
         * @deprecated
         * @param $message
         * @param bool $exception
         */
        public function CAdminSubMessage($message, $exception = \false)
        {
        }
        function Show()
        {
        }
        function ShowOldStyleError($message)
        {
        }
        function ShowMessage($message)
        {
        }
        function ShowNote($message)
        {
        }
    }
    class CAllIBlock
    {
        public $LAST_ERROR = "";
        protected static $disabledCacheTag = array();
        protected static $enableClearTagCache = 0;
        protected static $catalogIncluded = \null;
        protected static $workflowIncluded = \null;
        public static function ShowPanel($IBLOCK_ID = 0, $ELEMENT_ID = 0, $SECTION_ID = "", $type = "news", $bGetIcons = \false, $componentName = "", $arLabels = array())
        {
        }
        public static function AddPanelButtons($mode, $componentName, $arButtons)
        {
        }
        public static function GetComponentMenu($mode, $arButtons)
        {
        }
        public static function GetPanelButtons($IBLOCK_ID = 0, $ELEMENT_ID = 0, $SECTION_ID = 0, $arOptions = array())
        {
        }
        /**
         * @param int $iblock_id
         * @return CDBResult
         */
        public static function GetSite($iblock_id)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Block by ID
        ///////////////////////////////////////////////////////////////////
        public static function GetByID($ID)
        {
        }
        /**
         * @param int $ID
         * @param string $FIELD
         * @return mixed
         */
        public static function GetArrayByID($ID, $FIELD = "")
        {
        }
        public static function CleanCache($ID)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // New block
        ///////////////////////////////////////////////////////////////////
        function Add($arFields)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Update
        ///////////////////////////////////////////////////////////////////
        function Update($ID, $arFields)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Function deletes iblock by ID
        ///////////////////////////////////////////////////////////////////
        public static function Delete($ID)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Check function called from Add and Update
        ///////////////////////////////////////////////////////////////////
        function CheckFields(&$arFields, $ID = \false)
        {
        }
        public static function SetPermission($IBLOCK_ID, $arGROUP_ID)
        {
        }
        public static function SetMessages($ID, $arFields)
        {
        }
        public static function GetMessages($ID, $type = "")
        {
        }
        public static function GetFieldsDefaults()
        {
        }
        /**
         * @param string $fieldName
         * @return array|null
         */
        public static function getFieldDefaultSettings(string $fieldName) : ?array
        {
        }
        public static function SetFields($ID, $arFields)
        {
        }
        public static function GetFields($ID)
        {
        }
        public static function GetProperties($ID, $arOrder = array(), $arFilter = array())
        {
        }
        public static function GetGroupPermissions($ID)
        {
        }
        public static function GetPermission($IBLOCK_ID, $FOR_USER_ID = \false)
        {
        }
        public static function OnBeforeLangDelete($lang)
        {
        }
        public static function OnLangDelete($lang)
        {
        }
        public static function OnGroupDelete($group_id)
        {
        }
        public static function MkOperationFilter($key)
        {
        }
        public static function FilterCreate($field_name, $values, $type, $cOperationType = \false, $bSkipEmpty = \true)
        {
        }
        public static function ForLIKE($str)
        {
        }
        public static function FilterCreateEx($fname, $vals, $type, &$bFullJoin, $cOperationType = \false, $bSkipEmpty = \true)
        {
        }
        public static function _MergeIBArrays($iblock_id, $iblock_code = \false, $iblock_id2 = \false, $iblock_code2 = \false)
        {
        }
        public static function OnSearchGetURL($arFields)
        {
        }
        public static function ReplaceSectionUrl($url, $arr, $server_name = \false, $arrType = \false)
        {
        }
        public static function _GetProductUrl($OF_ELEMENT_ID, $OF_IBLOCK_ID, $server_name = \false, $arrType = \false)
        {
        }
        public static function ReplaceDetailUrl($url, $arr, $server_name = \false, $arrType = \false)
        {
        }
        public static function OnSearchReindex($NS = array(), $oCallback = \NULL, $callback_method = "")
        {
        }
        public static function GetElementCount($iblock_id)
        {
        }
        public static function ResizePicture($arFile, $arResize)
        {
        }
        public static function FilterPicture($filePath, $arFilter)
        {
        }
        public static function NumberFormat($num)
        {
        }
        public static function _Order($by, $order, $default_order, $nullable = \true)
        {
        }
        public static function GetAdminIBlockEditLink($IBLOCK_ID, $arParams = array(), $strAdd = "")
        {
        }
        /**
         * @deprecated
         * @see \Bitrix\Iblock\Url\AdminPage\IblockBuilder
         *
         * @param int $IBLOCK_ID
         * @param int|null $SECTION_ID
         * @param array $arParams
         * @param string $strAdd
         * @return string
         */
        public static function GetAdminSectionEditLink($IBLOCK_ID, $SECTION_ID, $arParams = array(), $strAdd = "")
        {
        }
        /**
         * @deprecated
         * @see \Bitrix\Iblock\Url\AdminPage\IblockBuilder
         *
         * @param int $IBLOCK_ID
         * @param int|null $ELEMENT_ID
         * @param array $arParams
         * @param string $strAdd
         * @return string
         */
        public static function GetAdminElementEditLink($IBLOCK_ID, $ELEMENT_ID, $arParams = array(), $strAdd = "")
        {
        }
        public static function GetAdminSubElementEditLink($IBLOCK_ID, $ELEMENT_ID, $SUBELEMENT_ID, $arParams = array(), $strAdd = '', $absoluteUrl = \false)
        {
        }
        /**
         * @deprecated
         * @see \Bitrix\Iblock\Url\AdminPage\IblockBuilder
         *
         * @param int $IBLOCK_ID
         * @param array $arParams
         * @param string $strAdd
         * @return string
         */
        public static function GetAdminElementListLink($IBLOCK_ID, $arParams = array(), $strAdd = "")
        {
        }
        /**
         * @deprecated
         * @see \Bitrix\Iblock\Url\AdminPage\IblockBuilder
         *
         * @param int $IBLOCK_ID
         * @param array $arParams
         * @return string
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function GetAdminElementListScriptName($IBLOCK_ID, $arParams = array())
        {
        }
        /**
         * @deprecated
         * @see \Bitrix\Iblock\Url\AdminPage\IblockBuilder
         *
         * @param int $IBLOCK_ID
         * @param array $arParams
         * @param string $strAdd
         * @return string
         */
        public static function GetAdminSectionListLink($IBLOCK_ID, $arParams = array(), $strAdd = "")
        {
        }
        /**
         * @deprecated
         * @see \Bitrix\Iblock\Url\AdminPage\IblockBuilder
         *
         * @param int $IBLOCK_ID
         * @param array $arParams
         * @return string
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function GetAdminSectionListScriptName($IBLOCK_ID, $arParams = array())
        {
        }
        private static function isPublicSidePanel()
        {
        }
        private static function replaceScriptName($url)
        {
        }
        /**
         * @param int $IBLOCK_ID
         * @return string
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function GetAdminListMode($IBLOCK_ID) : string
        {
        }
        public static function CheckForIndexes($IBLOCK_ID)
        {
        }
        public static function GetAuditTypes()
        {
        }
        public static function roundDB($value)
        {
        }
        public static function _transaction_lock($IBLOCK_ID)
        {
        }
        public static function isShortDate($strDate)
        {
        }
        public static function _Upper($str)
        {
        }
        function _Add($ID)
        {
        }
        public static function _NotEmpty($column)
        {
        }
        public static function makeFilePropArray($data, $del = \false, $description = \null, $options = array())
        {
        }
        public static function makeFileArray($data, $del = \false, $description = \null, $options = array())
        {
        }
        private static function makeFileArrayFromId($file_id, $description = \null, $options = array())
        {
        }
        private static function makeFileArrayFromPath($file_path, $description = \null, $options = array())
        {
        }
        private static function makeFileArrayFromArray($file_array, $description = \null, $options = array())
        {
        }
        public static function disableTagCache($iblock_id)
        {
        }
        public static function enableTagCache($iblock_id)
        {
        }
        public static function clearIblockTagCache($iblock_id)
        {
        }
        public static function registerWithTagCache($iblock_id)
        {
        }
        public static function enableClearTagCache()
        {
        }
        public static function disableClearTagCache()
        {
        }
        public static function isEnabledClearTagCache()
        {
        }
        public static function getDefaultJpegQuality()
        {
        }
        public static function checkActivityDatesAgent($iblockId, $previousTime)
        {
        }
        /**
         * Returns default rights for apply to iblock (admin access and public reading).
         *
         * @return array
         */
        public static function getDefaultRights() : array
        {
        }
    }
    /**
     * Class CIBlockType
     *
     * Fields:
     * <ul>
     * <li> ID string(50) mandatory
     * <li> SECTIONS bool optional default 'Y'
     * <li> EDIT_FILE_BEFORE string(255) optional
     * <li> EDIT_FILE_AFTER string(255) optional
     * <li> IN_RSS bool optional default 'N'
     * <li> SORT int optional default 500
     * </ul>
     */
    class CIBlockType
    {
        /**
         * @var string Contains an error message in case of error in last Update or Add functions.
         */
        public $LAST_ERROR = "";
        /**
         * Returns list of iblock types.
         * @example iblocktype.php
         *
         * @param array $arOrder Order of the list.<br>
         * 	keys are case insensitive:
         * 		<ul>
         * 		<li>SORT - by SORT field.
         * 		<li>ID - by ID field.
         * 		<li>NAME - by language depended NAME field (must be used with LANGUAGE_ID in the filter).
         * 		</ul>
         * 	values are case insensitive:
         * 		<ul>
         * 		<li>DESC - in descending order.
         * 		<li>ASC - in ascending order.
         * 		</ul>
         * @param array $arFilter Filter criteria.<br>
         * 	keys are case insensitive:
         * 		<ul>
         * 		<li>ID - uses <i>like</i> operator and is <i>case insensitive</i>.
         * 		<li>=ID - when contains string uses <i>strict equal</i> operator.
         * 		<li>=ID - when contains array[]string uses <i>in</i> operator.
         * 		<li>NAME - uses <i>like</i> operator and is <i>case insensitive</i>.
         * 		<li>LANGUAGE_ID - uses <i>strict equal</i> operator and is <i>case sensitive</i>.
         * 		</ul>
         * 	values with zero string length are ignored.
         * @return CDBResult
         */
        public static function GetList($arOrder = array("SORT" => "ASC"), $arFilter = array())
        {
        }
        /**
         * Returns cached version of the iblock type information.
         *
         * @param string $ID
         * @return bool|array
         */
        protected static function _GetCache($ID)
        {
        }
        /**
         * Returns iblock type information by ID.
         * @see CIBlockType
         * <code>
         * if (CModule::IncludeModule('iblock'))
         * &#123;
         * 	$rsType = CIBlockType::GetByID('test');
         * 	$arType = $rsType->GetNext();
         * 	if ($arType)
         * 	&#123;
         * 		echo '&lt;pre&gt;', htmlspecialcharsEx(print_r($arType, true)), '&lt;/pre&gt;';
         * 	&#125;
         * &#125;
         * </code>
         * @param string $ID iblock type ID
         * @return CDBResult
         */
        public static function GetByID($ID)
        {
        }
        /**
         * Returns iblock type information with additional language depended messages.<br>
         *
         * Additional to {@link CIBlockType} language depended fields:
         * <ul>
         * <li>NAME - Name of the type
         * <li>SECTION_NAME - How sections are called
         * <li>ELEMENT_NAME - How elements are called
         * </ul>
         *
         * <code>
         * if (CModule::IncludeModule('iblock'))
         * &#123;
         * 	$rsTypeLang = CIBlockType::GetByIDLang('test', 'en');
         * 	$arTypeLang = $rsTypeLang->GetNext();
         * 	if ($arTypeLang)
         * 	&#123;
         * 		echo '&lt;pre&gt;', htmlspecialcharsEx(print_r($arTypeLang, true)), '&lt;/pre&gt;';
         * 	&#125;
         * &#125;
         * </code>
         * @param string $ID iblock type ID
         * @param string $LID language ID
         * @param bool $bFindAny Forces strict search
         * @return array|bool
         */
        public static function GetByIDLang($ID, $LID, $bFindAny = \true)
        {
        }
        /**
         * Deletes iblock type including all iblocks.<br>
         * When there is an error occured on iblock deletion
         * it stops and returns false.
         *
         * @param string $ID iblock type ID.
         * @return bool|CDBResult
         */
        public static function Delete($ID)
        {
        }
        /**
         * Helper internal function.<br>
         * Checks correctness of the information. Called by Add and Update methods.
         * List of errors returned by LAST_ERROR member variable.
         *
         * @param array $arFields
         * @param bool $ID iblock type ID. false - if new one.
         * @return bool
         */
        public function CheckFields($arFields, $ID = \false)
        {
        }
        /**
         * Creates new iblock type in the database.
         * For arFields see {@link CIBlockType} class description.<br>
         * In addition it may contain key "LANG" with and array of language depended parameters.<br>
         * For example:
         * <code>
         * $arFields = array(
         * 	"ID" =&gt; "test",
         * 	"LANG" =&gt; array(
         * 		"en" =&gt; array(
         * 			"NAME" => "Test",
         * 			"ELEMENT_NAME" =&gt; "Test element",
         * 			"SECTION_NAME" =&gt; "Test section",
         * 		),
         * 	),
         * );
         * </code>
         *
         * @param array $arFields
         * @return bool
         */
        public function Add($arFields)
        {
        }
        /**
         * Updates iblock type in the database.
         *
         * $arFields is the same as for {@link CIBlockType::Add} method.
         * @see CIBlockType::Add
         *
         * @param string $ID
         * @param array $arFields
         * @return bool
         */
        public function Update($ID, $arFields)
        {
        }
        /**
         * Internal helper function which helps to store language depended fields into database.
         *
         * @param string $ID iblock type ID
         * @param array $arLang language depended fields
         */
        protected static function SetLang($ID, $arLang)
        {
        }
    }
    class CIBlockPropertySectionAutoComplete extends \CIBlockPropertyElementAutoComplete
    {
        const USER_TYPE = 'SectionAuto';
        public static function GetUserTypeDescription()
        {
        }
        public static function GetValueForAutoComplete($arProperty, $arValue, $arBanSym = "", $arRepSym = "")
        {
        }
        public static function GetValueForAutoCompleteMulti($arProperty, $arValues, $arBanSym = "", $arRepSym = "")
        {
        }
        public static function GetPublicFilterHTML($arProperty, $strHTMLControlName)
        {
        }
        public static function GetPropertyFieldHtml($arProperty, $arValue, $strHTMLControlName)
        {
        }
        public static function GetPropertyFieldHtmlMulty($arProperty, $arValues, $strHTMLControlName)
        {
        }
        public static function GetAdminListViewHTML($arProperty, $arValue, $strHTMLControlName)
        {
        }
        public static function GetPublicViewHTML($arProperty, $arValue, $strHTMLControlName)
        {
        }
        public static function GetPublicEditHTML($property, $value, $control)
        {
        }
        public static function PrepareSettings($arFields)
        {
        }
        public static function GetSettingsHTML($arFields, $strHTMLControlName, &$arPropertyFields)
        {
        }
        public static function GetAdminFilterHTML($arProperty, $strHTMLControlName)
        {
        }
        public static function AddFilterFields($arProperty, $strHTMLControlName, &$arFilter, &$filtered)
        {
        }
        protected static function GetLinkElement($sectionID, $iblockID)
        {
        }
        protected static function GetPropertyValue($arProperty, $arValue)
        {
        }
        protected static function GetPropertyViewsList($boolFull)
        {
        }
        protected static function GetReplaceSymList($boolFull = \false)
        {
        }
        protected static function GetSymbols($arSettings)
        {
        }
        /**
         * Returns search page url.
         *
         * @return string
         */
        protected static function getSearchUrl()
        {
        }
    }
    class _CIBElement
    {
        var $fields;
        var $props = \false;
        function GetFields()
        {
        }
        /**
         * @param bool|array $arOrder
         * @param array $arFilter
         * @return array
         */
        function GetProperties($arOrder = \false, $arFilter = array())
        {
        }
        function GetProperty($ID)
        {
        }
        function GetGroups()
        {
        }
    }
    class CIBlockFindTools
    {
        public static function GetElementID($element_id, $element_code, $section_id, $section_code, $arFilter)
        {
        }
        public static function GetSectionID($section_id, $section_code, $arFilter)
        {
        }
        public static function GetSectionIDByCodePath($iblock_id, $section_code_path)
        {
        }
        public static function resolveComponentEngine(\CComponentEngine $engine, $pageCandidates, &$arVariables)
        {
        }
        public static function checkElement($iblock_id, &$arVariables, $strict_check = \false)
        {
        }
        public static function checkSection($iblock_id, &$arVariables)
        {
        }
    }
    class CIBlockPropertySequence
    {
        const USER_TYPE = 'Sequence';
        public static function GetUserTypeDescription()
        {
        }
        public static function AddFilterFields($arProperty, $strHTMLControlName, &$arFilter, &$filtered)
        {
        }
        public static function GetPublicFilterHTML($arProperty, $strHTMLControlName)
        {
        }
        public static function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function PrepareSettings($arProperty)
        {
        }
        public static function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
        {
        }
        /**
         * @param array $property
         * @param array $control
         * @param array &$fields
         * @return void
         */
        public static function GetUIFilterProperty($property, $control, &$fields)
        {
        }
        public static function GetUIEntityEditorProperty($settings, $value)
        {
        }
        public static function GetUIEntityEditorPropertyEditHtml(array $params = []) : string
        {
        }
        public static function GetUIEntityEditorPropertyViewHtml(array $params = []) : string
        {
        }
    }
    class CIBlockPropertyEnumResult extends \CDBResult
    {
        function Fetch()
        {
        }
    }
    class CIBlockPropertyEnum
    {
        public static function GetList($arOrder = array("SORT" => "ASC", "VALUE" => "ASC"), $arFilter = array())
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function DeleteByPropertyID($PROPERTY_ID, $bIgnoreError = \false)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function GetByID($ID)
        {
        }
    }
    class CCMLResult extends \CDBResult
    {
        function Fetch()
        {
        }
    }
    class CIBlockResult extends \CDBResult
    {
        /** @var bool|array */
        var $arIBlockMultProps = \false;
        /** @var bool|array */
        var $arIBlockConvProps = \false;
        /** @var bool|array */
        var $arIBlockAllProps = \false;
        /** @var bool|array */
        var $arIBlockNumProps = \false;
        /** @var bool|array */
        var $arIBlockLongProps = \false;
        var $nInitialSize;
        var $table_id;
        var $strDetailUrl = \false;
        var $strSectionUrl = \false;
        var $strListUrl = \false;
        var $arSectionContext = \false;
        var $bIBlockSection = \false;
        var $nameTemplate = "";
        var $_LAST_IBLOCK_ID = "";
        var $_FILTER_IBLOCK_ID = array();
        public function __construct($res = \null)
        {
        }
        /**
         * @deprected
         *
         * @param $res
         */
        function CIBlockResult($res)
        {
        }
        function SetUrlTemplates($DetailUrl = "", $SectionUrl = "", $ListUrl = "")
        {
        }
        function SetSectionContext($arSection)
        {
        }
        function SetIBlockTag($iblock_id)
        {
        }
        function SetNameTemplate($nameTemplate)
        {
        }
        function Fetch()
        {
        }
        function GetNext($bTextHtmlAuto = \true, $use_tilda = \true)
        {
        }
        function GetNextElement($bTextHtmlAuto = \true, $use_tilda = \true)
        {
        }
        function SetTableID($table_id)
        {
        }
        function NavStart($nPageSize = 20, $bShowAll = \true, $iNumPage = \false)
        {
        }
        function GetNavPrint($title, $show_allways = \true, $StyleText = "", $template_path = \false, $arDeleteParam = \false)
        {
        }
    }
    class CAllIBlockRSS
    {
        public static function GetRSSNodes()
        {
        }
        public static function Delete($IBLOCK_ID)
        {
        }
        public static function GetNodeList($IBLOCK_ID)
        {
        }
        function GetNewsEx($SITE, $PORT, $PATH, $QUERY_STR, $bOutChannel = \False)
        {
        }
        function GetNews($ID, $LANG, $TYPE, $SITE, $PORT, $PATH, $LIMIT = 0)
        {
        }
        function FormatArray(&$arRes, $bOutChannel = \false)
        {
        }
        function XMLDate2Dec($date_XML, $dateFormat = "DD.MM.YYYY")
        {
        }
        function ExtractProperties($str, &$arProps, &$arItem)
        {
        }
        function GetRSS($ID, $LANG, $TYPE, $LIMIT_NUM = \false, $LIMIT_DAY = \false, $yandex = \false)
        {
        }
    }
    class CIBlockParameters
    {
        protected static $catalogIncluded = \null;
        static $elementPropertyCache = array();
        private static function getIblockElementProperties($iblock_id)
        {
        }
        static $catalogStoreCache = \null;
        private static function getCatalogStores()
        {
        }
        static $catalogPriceCache = \null;
        private static function getCatalogPrices()
        {
        }
        public static function GetFieldCode($name, $parent, $options = array())
        {
        }
        public static function GetSectionFieldCode($name, $parent, $options = array())
        {
        }
        public static function GetDateFormat($name, $parent)
        {
        }
        public static function GetPathTemplateMenuItems($menuType, $action_function, $menuID, $inputID = "")
        {
        }
        public static function GetInheritedPropertyTemplateSectionMenuItems($iblock_id, $action_function, $menuID, $inputID = "")
        {
        }
        public static function GetInheritedPropertyTemplateElementMenuItems($iblock_id, $action_function, $menuID, $inputID = "")
        {
        }
        public static function GetPathTemplateParam($menuType, $ID, $parameterName, $defaultValue = "", $parentID = "URL_TEMPLATES")
        {
        }
        public static function AddPagerSettings(&$arComponentParameters, $pager_title, $bDescNumbering = \true, $bShowAllParam = \false, $bBaseLink = \false, $bBaseLinkEnabled = \false)
        {
        }
        public static function Add404Settings(&$arComponentParameters, $arCurrentValues, $bStatus = \true, $bPage = \true)
        {
        }
        /**
         * @param bool|array $arTop
         * @return array
         */
        public static function GetIBlockTypes($arTop = \false)
        {
        }
        public static function GetElementSortFields($arFields = array(), $arOptions = array())
        {
        }
        public static function GetSectionSortFields($arFields = array(), $arOptions = array())
        {
        }
        public static function checkParamValues($value)
        {
        }
    }
    class CAllIBlockElement
    {
        public $LAST_ERROR = "";
        protected $bWF_SetMove = \true;
        public $strField;
        protected $subQueryProp;
        public $arFilter;
        public $bOnlyCount;
        public $bDistinct;
        public $bCatalogSort;
        public $arFilterIBlocks = array();
        public $arIBlockMultProps = array();
        public $arIBlockConvProps = array();
        public $arIBlockAllProps = array();
        public $arIBlockNumProps = array();
        public $arIBlockLongProps = array();
        public $sSelect;
        public $sFrom;
        public $sWhere;
        public $sGroupBy;
        public $sOrderBy;
        protected static $elementIblock = array();
        /**
         * @param $strField
         * @param $arFilter
         * @return CIBlockElement|null
         */
        public static function SubQuery($strField, $arFilter)
        {
        }
        function CancelWFSetMove()
        {
        }
        function WF_Restore($ID)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Clear history
        ///////////////////////////////////////////////////////////////////
        function WF_CleanUpHistory()
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Send changing status message
        ///////////////////////////////////////////////////////////////////
        function WF_SetMove($NEW_ID, $OLD_ID = 0)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Clears the last or old records in history using parameters from workflow module
        ///////////////////////////////////////////////////////////////////
        function WF_CleanUpHistoryCopies($ELEMENT_ID = \false, $HISTORY_COPIES = \false)
        {
        }
        public static function WF_GetSqlLimit($PS = "BE.", $SHOW_NEW = "N")
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Returns last ID of element in the history
        ///////////////////////////////////////////////////////////////////
        public static function WF_GetLast($ID)
        {
        }
        public static function GetRealElement($ID)
        {
        }
        public static function WF_GetStatusTitle($STATUS_ID)
        {
        }
        public static function WF_GetCurrentStatus($ELEMENT_ID, &$STATUS_TITLE)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Returns permission status
        ///////////////////////////////////////////////////////////////////
        public static function WF_GetStatusPermission($STATUS_ID, $ID = \false)
        {
        }
        public static function WF_IsLocked($ID, &$locked_by, &$date_lock)
        {
        }
        public function MkFilter($arFilter, &$arJoinProps, &$arAddWhereFields, $level = 0, $bPropertyLeftJoin = \false)
        {
        }
        function MkPropertyFilter($res, $cOperationType, $propVAL, $db_prop, &$arJoinProps, &$arSqlSearch)
        {
        }
        function MkPropertyOrder($by, $order, $bSort, $db_prop, &$arJoinProps, &$arSqlOrder)
        {
        }
        function MkPropertyGroup($db_prop, &$arJoinProps, $bSort = \false)
        {
        }
        function MkPropertySelect($PR_ID, $db_prop, &$arJoinProps, $bWasGroup, $sGroupBy, &$sSelect, $bSort = \false)
        {
        }
        function MkAlias($max_alias_len, $alias, &$arIBlockLongProps)
        {
        }
        function PrepareGetList(&$arIblockElementFields, &$arJoinProps, &$arSelectFields, &$sSelect, &$arAddSelectFields, &$arFilter, &$sWhere, &$sSectionWhere, &$arAddWhereFields, &$arGroupBy, &$sGroupBy, &$arOrder, &$arSqlOrder, &$arAddOrderByFields)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Add function
        ///////////////////////////////////////////////////////////////////
        function Add($arFields, $bWorkFlow = \false, $bUpdateSearch = \true, $bResizePictures = \false)
        {
        }
        function DeleteFile($FILE_ID, $ELEMENT_ID, $TYPE = \false, $PARENT_ID = -1, $IBLOCK_ID = \false, $bCheckOnly = \false)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Removes element
        ///////////////////////////////////////////////////////////////////
        public static function Delete($ID)
        {
        }
        public static function GetByID($ID)
        {
        }
        /**
         * Return IBLOCK_ID for element.
         *
         * @param int $ID				Element id.
         * @return bool|int
         */
        public static function GetIBlockByID($ID)
        {
        }
        /**
         * Return IBLOCK_ID for element.
         *
         * @param array $list
         * @return array
         */
        public static function GetIBlockByIDList(array $list)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Checks fields before update or insert
        ///////////////////////////////////////////////////////////////////
        function CheckFields(&$arFields, $ID = \false, $bCheckDiskQuota = \true)
        {
        }
        /**
         * @param int $ELEMENT_ID
         * @param string|int $PROPERTY_CODE
         * @param mixed $PROPERTY_VALUE
         * @return bool
         */
        function SetPropertyValueCode($ELEMENT_ID, $PROPERTY_CODE, $PROPERTY_VALUE)
        {
        }
        public static function GetElementGroups($ID, $bElementOnly = \false, $arSelect = array())
        {
        }
        //////////////////////////////////////////////////////////////////////////
        //
        //////////////////////////////////////////////////////////////////////////
        public static function RecalcSections($ID, $sectionId = \null)
        {
        }
        //////////////////////////////////////////////////////////////////////////
        //
        //////////////////////////////////////////////////////////////////////////
        function SetElementSection($ID, $arSections, $bNew = \false, $bRightsIBlock = 0, $sectionId = \null)
        {
        }
        function __InitFile($old_id, &$arFields, $fname)
        {
        }
        static function __GetFileContent($FILE_ID)
        {
        }
        function UpdateSearch($ID, $bOverWrite = \false)
        {
        }
        public static function GetPropertyValues($IBLOCK_ID, $arElementFilter, $extMode = \false, $propertyFilter = array())
        {
        }
        public static function GetPropertyValuesArray(&$result, $iblockID, $filter, $propertyFilter = array(), $options = array())
        {
        }
        public static function GetProperty($IBLOCK_ID, $ELEMENT_ID, $by = "sort", $order = "asc", $arFilter = array())
        {
        }
        public static function CounterInc($ID)
        {
        }
        public static function GetIBVersion($iblock_id)
        {
        }
        function DeletePropertySQL($property, $iblock_element_id)
        {
        }
        public static function SetPropertyValuesEx($ELEMENT_ID, $IBLOCK_ID, $PROPERTY_VALUES, $FLAGS = array())
        {
        }
        protected static function _check_rights_sql($min_permission, $permissionsBy = \null)
        {
        }
        protected function __GetDescriptionUpdateSql($iblock_id, $property_id, $description = \false)
        {
        }
        /**
         * @param mixed $order
         * @return string
         */
        protected function getIdOrder($order)
        {
        }
    }
    final class CIBlockXmlImport
    {
        const ACTION_NOTHING = 'N';
        const ACTION_DEACTIVATE = 'A';
        const ACTION_REMOVE = 'D';
        const STEP_INIT_IMPORT_TABLES = 'INIT_IMPORT_TABLES';
        const STEP_READ_XML = 'READ_XML';
        const STEP_INDEX_IMPORT_TABLES = 'INDEX_IMPORT_TABLES';
        const STEP_IMPORT_METADATA = 'IMPORT_METADATA';
        const STEP_IMPORT_SECTIONS = 'IMPORT_SECTIONS';
        const STEP_MISSING_SECTIONS = 'MISSING_SECTIONS';
        const STEP_RESORT_SECTIONS = 'RESORT_SECTIONS';
        const STEP_IMPORT_ELEMENTS = 'IMPORT_ELEMENTS';
        const STEP_MISSING_ELEMENTS = 'MISSING_ELEMENTS';
        const STEP_IMPORT_PRODUCT_BUNDLES = 'IMPORT_PRODUCT_BUNDLES';
        const STEP_FINAL = 'FINAL';
        const RESULT_TYPE_SUCCESS = 0;
        const RESULT_TYPE_ERROR = 1;
        const TRANSLITERATION_ON_ADD = 0x1;
        const TRANSLITERATION_ON_UPDATE = 0x2;
        const SESSION_STORAGE_ID = 'BX_CML2_IMPORT';
        /** @var CIBlockCMLImport importer */
        private $xmlImport = \null;
        private $fileHandler = \null;
        private $fileParameters = ['PATH' => '', 'ABSOLUTE_PATH' => '', 'FILES_DIRECTORY' => '', 'SIZE' => 0];
        private $parameters = [];
        private $config = [];
        private $stepList = [self::STEP_INIT_IMPORT_TABLES, self::STEP_READ_XML, self::STEP_INDEX_IMPORT_TABLES, self::STEP_IMPORT_METADATA, self::STEP_IMPORT_SECTIONS, self::STEP_MISSING_SECTIONS, self::STEP_RESORT_SECTIONS, self::STEP_IMPORT_ELEMENTS, self::STEP_IMPORT_PRODUCT_BUNDLES, self::STEP_MISSING_ELEMENTS, self::STEP_FINAL];
        private $stepId = \null;
        private $stepParameters = \null;
        private $final = \false;
        private $iblockId = \null;
        private $message = '';
        private $progressCounter = [];
        private $errors = [];
        private $startTime = \null;
        public function __construct()
        {
        }
        public function __destruct()
        {
        }
        public function init(array $parameters, array $config = [])
        {
        }
        private function initSessionStorage()
        {
        }
        private function initStepParameters()
        {
        }
        /**
         * @return void
         */
        private function internalInit()
        {
        }
        /**
         * @return bool
         */
        public function isFinal()
        {
        }
        /**
         * @return void
         */
        public function run()
        {
        }
        /**
         * @return array
         */
        public function getStepResult()
        {
        }
        /**
         * @return null|int
         */
        public function getIblockId()
        {
        }
        /**
         * @return bool
         */
        public function isSuccess()
        {
        }
        /**
         * @return array
         */
        public function getErrors()
        {
        }
        /**
         * @return void
         */
        public function clearErrors()
        {
        }
        /**
         * @param string $error
         * @return void
         */
        private function addError($error)
        {
        }
        /**
         * @param array $parameters
         * @return void
         */
        private function setParameters(array $parameters)
        {
        }
        /**
         * @param array &$parameters
         * @return void
         */
        private function prepareParameters(array &$parameters)
        {
        }
        /**
         * @param string $name
         * @return mixed|null
         */
        private function getParameter($name)
        {
        }
        /**
         * @return array
         */
        private function getDefaultParameters()
        {
        }
        /**
         * @param array $config
         * @return void
         */
        private function setConfig(array $config)
        {
        }
        /**
         * @param array &$config
         * @return void
         */
        private function prepareConfig(array &$config)
        {
        }
        /**
         * @return array
         */
        private function getConfig()
        {
        }
        /**
         * @param string $field
         * @return mixed|null
         */
        private function getConfigFieldValue($field)
        {
        }
        /**
         * @return array
         */
        private function getDefaultConfig()
        {
        }
        /**
         * @return mixed
         */
        private function getCurrentStep()
        {
        }
        /**
         * @param mixed $step
         * @return void
         */
        private function setCurrentStep($step)
        {
        }
        /**
         * @return void
         */
        private function nextStep()
        {
        }
        /**
         * @param string $message
         * @return void
         */
        private function setMessage($message)
        {
        }
        /**
         * @return string
         */
        private function getMessage()
        {
        }
        /**
         * @return void
         */
        private function clearProgressCounter()
        {
        }
        /**
         * @param int $total
         * @param int $current
         * @return void
         */
        private function setProgressCounter($total, $current)
        {
        }
        /**
         * @return array|null
         */
        private function getProgressCounter()
        {
        }
        /**
         * @return void
         */
        private function setXmlImporterParameters()
        {
        }
        /**
         * @return array
         */
        private function getXmlImporterConfig()
        {
        }
        /**
         * @return void
         */
        private function initTemporaryTablesAction()
        {
        }
        /**
         * @return void
         */
        private function readXmlAction()
        {
        }
        /**
         * @return void
         */
        private function indexTemporaryTablesAction()
        {
        }
        /**
         * @return void
         */
        private function importMetadataAction()
        {
        }
        /**
         * @return void
         */
        private function importSectionsAction()
        {
        }
        /**
         * @return void
         */
        private function processMissingSectionsAction()
        {
        }
        /**
         * @return void
         */
        private function resortSectionsAction()
        {
        }
        /**
         * @return void
         */
        private function importElementsAction()
        {
        }
        /**
         * @return void
         */
        private function processMissingElementsAction()
        {
        }
        /**
         * @return void
         */
        private function importProductBundlesAction()
        {
        }
        /**
         * @return void
         */
        private function finalAction()
        {
        }
        /**
         * @return void
         */
        private function openXmlFile()
        {
        }
        /**
         * @return void
         */
        private function closeXmlFile()
        {
        }
        /**
         * @return float|int
         */
        private function getXmlFileProgressPercent()
        {
        }
        /**
         * @return void
         */
        private function createXmlImporter()
        {
        }
        /**
         * @return void
         */
        private function destroyXmlImporter()
        {
        }
        /**
         * @return void
         */
        private function destroySessionStorage()
        {
        }
        /**
         * @param int $currentValue
         * @param int $mode
         * @return bool
         */
        private function checkTranslitMode($currentValue, $mode)
        {
        }
        /**
         * @return array
         */
        private function getXmlImporterTransliterationSettings()
        {
        }
        /**
         * @param mixed $value
         * @return bool
         */
        private static function clearNull($value)
        {
        }
    }
    class CIBlockOffersTmp extends \CAllIBlockOffersTmp
    {
        public static function GetOldID($intProductIBlockID, $intOffersIBlockID, $intInterval = 1800)
        {
        }
        public static function DeleteOldID($intProductIBlockID, $intOffersIBlockID = 0, $intInterval = 86400)
        {
        }
    }
    class CIBlockProperty extends \CAllIBlockProperty
    {
        function _Update($ID, $arFields, $bCheckDescription = \false)
        {
        }
        function DropColumnSQL($strTable, $arColumns)
        {
        }
        function _Add($ID, $arFields)
        {
        }
    }
    /*
    This class is used to parse and load an xml file into database table.
    */
    class CIBlockXMLFile
    {
        var $_table_name = "";
        var $_sessid = "";
        var $charset = \false;
        var $element_stack = \false;
        var $file_position = 0;
        var $read_size = 10240;
        var $buf = "";
        var $buf_position = 0;
        var $buf_len = 0;
        private $_get_xml_chunk_function = "_get_xml_chunk";
        function __construct($table_name = "b_xml_tree")
        {
        }
        function StartSession($sess_id)
        {
        }
        function GetSessionRoot()
        {
        }
        function EndSession()
        {
        }
        public function GetRoot()
        {
        }
        /*
        This function have to called once at the import start.
        
        return : result of the CDatabase::Query method
        We use drop due to mysql innodb slow truncate bug.
        */
        function DropTemporaryTables()
        {
        }
        function CreateTemporaryTables($with_sess_id = \false)
        {
        }
        function IsExistTemporaryTable()
        {
        }
        function GetCountItemsWithParent($parentID)
        {
        }
        /*
        This function indexes contents of the loaded data for future lookups.
        May be called after tables creation and loading will perform slowly.
        But it is recommented to call this function after all data load.
        This is much faster.
        
        return : result of the CDatabase::Query method
        */
        function IndexTemporaryTables($with_sess_id = \false)
        {
        }
        function Add($arFields)
        {
        }
        function GetFilePosition()
        {
        }
        /*
        Reads portion of xml data.
        
        hFile - file handle opened with fopen function for reading
        NS - will be populated with to members
        	charset parameter is used to recode file contents if needed.
        	element_stack parameters save parsing stack of xml tree parents.
        	file_position parameters marks current file position.
        time_limit - duration of one step in seconds.
        
        NS have to be preserved between steps.
        They automatically extracted from xml file and should not be modified!
        */
        function ReadXMLToDatabase($fp, &$NS, $time_limit = 0, $read_size = 1024)
        {
        }
        /*
        Internal function.
        Used to read an xml by chunks started with "<" and endex with "<"
        */
        function _get_xml_chunk($fp)
        {
        }
        /*
        Internal function.
        Used to read an xml by chunks started with "<" and endex with "<"
        */
        function _get_xml_chunk_mb_orig($fp)
        {
        }
        /*
        Internal function.
        Used to read an xml by chunks started with "<" and endex with "<"
        */
        function _get_xml_chunk_mb($fp)
        {
        }
        /*
        Internal function.
        Stores an element into xml database tree.
        */
        function _start_element($xmlChunk)
        {
        }
        /*
        Internal function.
        Winds tree stack back. Modifies (if neccessary) internal tree structure.
        */
        function _end_element($xmlChunk)
        {
        }
        /*
        Returns an associative array of the part of xml tree.
        Elements with same name on the same level gets an additional suffix.
        For example
        	<a>
        		<b>123</b>
        		<b>456</b>
        	<a>
        will return
        	array(
        		"a => array(
        			"b" => "123",
        			"b1" => "456",
        		),
        	);
        */
        function GetAllChildrenArray($arParent, $handleAttributes = \false)
        {
        }
        function GetList($arOrder = array(), $arFilter = array(), $arSelect = array(), $handleAttributes = \false)
        {
        }
        function Delete($ID)
        {
        }
        public static function UnZip($file_name, $last_zip_entry = "", $start_time = 0, $interval = 0)
        {
        }
    }
    class CIBlockSection extends \CAllIBlockSection
    {
        /**
         * @param array $arOrder
         * @param array $arFilter
         * @param bool $bIncCnt
         * @param array $arSelect
         * @param array|false $arNavStartParams
         * @return CIBlockResult
         */
        public static function GetList($arOrder = array("SORT" => "ASC"), $arFilter = array(), $bIncCnt = \false, $arSelect = array(), $arNavStartParams = \false)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Update list of sections w/o any events
        ///////////////////////////////////////////////////////////////////
        protected function UpdateList($arFields, $arFilter = array())
        {
        }
        /**
         * @param array $order
         * @param array $filter
         * @param array $select
         * @return bool
         */
        private static function checkUfFields(array $order, array $filter, array $select) : bool
        {
        }
    }
    class CIBlock extends \CAllIBlock
    {
        ///////////////////////////////////////////////////////////////////
        // List of blocks
        ///////////////////////////////////////////////////////////////////
        public static function GetList($arOrder = array("SORT" => "ASC"), $arFilter = array(), $bIncCnt = \false)
        {
        }
        public static function _Upper($str)
        {
        }
        function _Add($ID)
        {
        }
        public static function _Order($by, $order, $default_order, $nullable = \true)
        {
        }
        public static function _NotEmpty($column)
        {
        }
    }
    class CIBlockSequence
    {
        var $iblock_id = 0;
        var $property_id = 0;
        function __construct($iblock_id, $property_id = 0)
        {
        }
        function CIBlockSequence($iblock_id, $property_id = 0)
        {
        }
        function Drop($bAll = \false)
        {
        }
        function GetCurrent()
        {
        }
        function GetNext()
        {
        }
        function SetNext($value)
        {
        }
    }
    class CIBlockRSS extends \CAllIBlockRSS
    {
        public static function GetCache($cacheKey)
        {
        }
        public static function Add($IBLOCK_ID, $NODE, $NODE_VALUE)
        {
        }
        function UpdateCache($cacheKey, $CACHE, $HOURS_CACHE, $bCACHED)
        {
        }
        function GetRSSText($arIBLOCK, $LIMIT_NUM = \false, $LIMIT_DAY = \false, $yandex = \false)
        {
        }
        // Agent
        public static function PreGenerateRSS($IBLOCK_ID, $yandex = \true)
        {
        }
    }
    class CIBlockElement extends \CAllIBlockElement
    {
        ///////////////////////////////////////////////////////////////////
        // Function returns lock status of element (red, yellow, green)
        ///////////////////////////////////////////////////////////////////
        public static function WF_GetLockStatus($ID, &$locked_by, &$date_lock)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Locking element
        ///////////////////////////////////////////////////////////////////
        public static function WF_Lock($LAST_ID, $bWorkFlow = \true)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Unlock element
        ///////////////////////////////////////////////////////////////////
        public static function WF_UnLock($LAST_ID, $bWorkFlow = \true)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // List the history items
        ///////////////////////////////////////////////////////////////////
        function WF_GetHistoryList($ELEMENT_ID, &$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        function prepareSql($arSelectFields = array(), $arFilter = array(), $arGroupBy = \false, $arOrder = array("SORT" => "ASC"))
        {
        }
        /**
         * List of elements.
         *
         * @param array $arOrder
         * @param array $arFilter
         * @param bool|array $arGroupBy
         * @param bool|array $arNavStartParams
         * @param array $arSelectFields
         * @return integer|CIBlockResult
         */
        public static function GetList($arOrder = array("SORT" => "ASC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Update element function
        ///////////////////////////////////////////////////////////////////
        function Update($ID, $arFields, $bWorkFlow = \false, $bUpdateSearch = \true, $bResizePictures = \false, $bCheckDiskQuota = \true)
        {
        }
        function SetPropertyValues($ELEMENT_ID, $IBLOCK_ID, $PROPERTY_VALUES, $PROPERTY_CODE = \false)
        {
        }
        function GetRandFunction()
        {
        }
        function GetShowedFunction()
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Update list of elements w/o any events
        ///////////////////////////////////////////////////////////////////
        protected function UpdateList($arFields, $arFilter = array())
        {
        }
        /**
         * @param mixed $order
         * @return string
         */
        protected function getIdOrder($order)
        {
        }
    }
    /////////////////////////////////////////////////////////////////////
    class CAssocData extends \CCSVData
    {
        var $__rows = array();
        var $__pos = array();
        var $__last_pos = 0;
        var $NUM_FIELDS = 0;
        var $IBLOCK_ID = 0;
        var $tmpid = "";
        var $PK = array();
        var $GROUP_REGEX = "";
        function __construct($fields_type = "R", $first_header = \false, $NUM_FIELDS = 0)
        {
        }
        function GetPos()
        {
        }
        function Fetch()
        {
        }
        function PutBack($row)
        {
        }
        function AddPrimaryKey($field_name, $field_ind)
        {
        }
        function SetGroupFields($arGroupFields)
        {
        }
        function FetchAssoc()
        {
        }
        function MapSections($arRes)
        {
        }
        function MapEnum($prop_id, $value)
        {
        }
        function MapFiles($value)
        {
        }
    }
}
namespace Bitrix\Iblock {
    /**
     * Class IblockMessageTable
     *
     * Fields:
     * <ul>
     * <li> IBLOCK_ID int mandatory
     * <li> MESSAGE_ID string(50) mandatory
     * <li> MESSAGE_TEXT string(255) optional
     * <li> IBLOCK reference to {@link \Bitrix\Iblock\IblockTable}
     * </ul>
     *
     * @package Bitrix\Iblock
     */
    class IblockMessageTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for MESSAGE_ID field.
         *
         * @return array
         */
        public static function validateMessageId()
        {
        }
        /**
         * Returns validators for MESSAGE_TEXT field.
         *
         * @return array
         */
        public static function validateMessageText()
        {
        }
    }
    class InheritedPropertyTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Main\UserField\Types {
    abstract class BaseType
    {
        public const MODE_EDIT = 'main.edit', MODE_VIEW = 'main.view';
        private const MODE_ADMIN_SETTINGS = 'main.admin_settings', MODE_EDIT_FORM = 'main.edit_form', MODE_FILTER_HTML = 'main.filter_html', MODE_ADMIN_LIST_VIEW_HTML = 'main.admin_list_view_html', MODE_ADMIN_LIST_EDIT_HTML = 'main.admin_list_edit_html', MODE_PUBLIC_TEXT = 'main.public_text';
        protected const USER_TYPE_ID = null, RENDER_COMPONENT = null;
        // component name, sample bitrix:main.field.string
        /**
         * @return array
         */
        public static function getUserTypeDescription() : array
        {
        }
        /**
         * @return array
         */
        protected static function getDescription() : array
        {
        }
        /**
         * @return array
         */
        protected static function getBaseUserTypeDescription() : array
        {
        }
        /**
         * @param array $userField
         * @param array|null $additionalParameters
         * @return string
         */
        public static function renderField(array $userField, ?array $additionalParameters = []) : string
        {
        }
        /**
         * This function is called when the property values are displayed
         * in the public part of the site.
         *
         * Returns html. If the class does not provide such a function,
         * then the type manager will call the component specified
         * in the property metadata or system bitrix: system.field.view
         *
         * @param array $userField An array describing the field.
         * @param array $additionalParameters Additional parameters (e.g. context).
         * @return string
         */
        public static function renderView(array $userField, ?array $additionalParameters = []) : string
        {
        }
        /**
         * This function is called when editing property values in the public part of the site.
         *
         * Returns html. If the class does not provide such a function,
         * then the type manager will call the component specified
         * in the property metadata or system bitrix: system.field.edit
         *
         * @param array $userField An array describing the field.
         * @param array $additionalParameters Additional parameters (e.g. context).
         * @return string HTML äëÿ âûâîäà.
         */
        public static function renderEdit(array $userField, ?array $additionalParameters = []) : string
        {
        }
        /**
         * This function is called when the property settings form is displayed.
         *
         * Returns html for embedding in a 2-column table in the form usertype_edit.php
         *
         * @param bool|array $userField An array describing the field. For a new (not yet added field - false)
         * @param array $additionalParameters Array of advanced parameters
         * @param bool $bVarsFromForm
         * @return string HTML
         */
        public static function renderSettings($userField, ?array $additionalParameters, $varsFromForm) : string
        {
        }
        /**
         * This function is called when the form for editing the property value is displayed,
         * for example, here /bitrix/admin/iblock_section_edit.php
         *
         * Returns html for embedding in a table cell in the entity editing form
         * (on the "Advanced Properties" tab).
         *
         * @param array $userField An array describing the field..
         * @param array $additionalParameters An array of controls from the form. Contains the elements NAME and VALUE.
         * @return string
         */
        public static function renderEditForm(array $userField, ?array $additionalParameters) : string
        {
        }
        /**
         * This function is called when the property value is displayed in the list of elements.
         *
         * Returns html to embed in a table cell.
         * $AdditionalParameters elements are converted to html safe mode.
         *
         * @param array $userField An array describing the field.
         * @param array $additionalParameters An array of controls from the form. Contains the elements NAME and VALUE.
         * @return string HTML
         */
        public static function renderAdminListView(array $userField, ?array $additionalParameters) : string
        {
        }
        /**
         * This function is called when the property value is displayed in the list of items in edit mode.
         *
         * Returns html to embed in a table cell.
         * $AdditionalParameters elements are converted to html safe mode.
         * @param array $userField An array describing the field.
         * @param array $additionalParameters An array of controls from the form. Contains the elements NAME and VALUE.
         * @return string HTML
         */
        public static function renderAdminListEdit(array $userField, ?array $additionalParameters)
        {
        }
        /**
         * This function is called when the filter is displayed on the list page.
         *
         * Returns html to embed in a table cell.
         * $additionalParameters elements are html safe.
         *
         * @param array $userField An array describing the field.
         * @param array $additionalParameters An array of controls from the form. Contains the elements NAME and VALUE.
         * @return string
         */
        public static function renderFilter(array $userField, ?array $additionalParameters) : string
        {
        }
        /**
         * @param array $userField
         * @return string
         */
        public static function renderText(array $userField) : string
        {
        }
        /**
         * @param $userField
         * @param $additionalParameters
         * @return string
         */
        private static function getHtml($userField, $additionalParameters) : string
        {
        }
        /**
         * If RENDER_COMPONENT not contain namespace (bitrix or others)
         * means set the default namespace value as "bitrix:"
         * @return string
         */
        private static function getComponentName() : string
        {
        }
        /**
         * @param array|bool $userField
         * @param array|null $additionalParameters
         * @param $varsFromForm
         * @return string
         */
        public static function getSettingsHtml($userField, ?array $additionalParameters, $varsFromForm) : string
        {
        }
        /**
         * @param array $userField
         * @param array|null $additionalParameters
         * @return string
         */
        public static function getPublicView(array $userField, ?array $additionalParameters = []) : string
        {
        }
        /**
         * @param array $userField
         * @param array|null $additionalParameters
         * @return string
         */
        public static function getPublicEdit(array $userField, ?array $additionalParameters = []) : string
        {
        }
        /**
         * @param array $userField
         * @param array|null $additionalParameters
         * @return string
         */
        public static function getEditFormHtml(array $userField, ?array $additionalParameters) : string
        {
        }
        /**
         * @param array $userField
         * @param array|null $additionalParameters
         * @return string
         */
        public static function getAdminListViewHtml(array $userField, ?array $additionalParameters)
        {
        }
        /**
         * @param array $userField
         * @param array|null $additionalParameters
         * @return string
         */
        public static function getAdminListEditHTML(array $userField, ?array $additionalParameters)
        {
        }
        /**
         * @param array $userField
         * @param array|null $additionalParameters
         * @return string
         */
        public static function getFilterHtml(array $userField, ?array $additionalParameters) : string
        {
        }
        /**
         * @param array $userField
         * @return string
         */
        public static function getPublicText(array $userField) : string
        {
        }
        /**
         * @param array $userField
         * @param array $additionalParameters
         * @return mixed
         */
        public static function getDefaultValue(array $userField, array $additionalParameters = [])
        {
        }
        public static abstract function getDbColumnType() : string;
    }
    /**
     * Class EnumType
     * @package Bitrix\Main\UserField\Types
     */
    class EnumType extends \Bitrix\Main\UserField\Types\BaseType
    {
        public const USER_TYPE_ID = 'enumeration', RENDER_COMPONENT = 'bitrix:main.field.enum';
        public const DISPLAY_LIST = 'LIST', DISPLAY_CHECKBOX = 'CHECKBOX', DISPLAY_UI = 'UI';
        /**
         * @return array
         */
        public static function getDescription() : array
        {
        }
        public static function renderField(array $userField, ?array $additionalParameters = []) : string
        {
        }
        public static function renderView(array $userField, ?array $additionalParameters = []) : string
        {
        }
        public static function renderEdit(array $userField, ?array $additionalParameters = []) : string
        {
        }
        public static function renderEditForm(array $userField, ?array $additionalParameters) : string
        {
        }
        public static function renderFilter(array $userField, ?array $additionalParameters) : string
        {
        }
        public static function renderAdminListView(array $userField, ?array $additionalParameters) : string
        {
        }
        public static function renderAdminListEdit(array $userField, ?array $additionalParameters) : string
        {
        }
        /**
         * @return string
         */
        public static function getDbColumnType() : string
        {
        }
        /**
         * @param array $userField
         * @return array
         */
        public static function prepareSettings(array $userField) : array
        {
        }
        /**
         * @param array $userField
         * @param string|array $value
         * @return array
         */
        public static function checkFields(array $userField, $value) : array
        {
        }
        /**
         * @param array $userField
         * @return string|null
         */
        public static function onSearchIndex(array $userField) : ?string
        {
        }
        /**
         * @param array $userField
         * @param array $additionalParameters
         * @return array
         */
        public static function getFilterData(array $userField, array $additionalParameters) : array
        {
        }
        /**
         * @param array $userField
         * @return bool|CDBResult
         */
        public static function getList(array $userField)
        {
        }
        /**
         * @param array $userField
         * @param array $additionalParameters
         */
        public static function getEnumList(array &$userField, array $additionalParameters = []) : void
        {
        }
        /**
         * @array $userField
         * @param $userField
         * @return string
         */
        public static function getEmptyCaption(array $userField) : string
        {
        }
        /**
         * Returns values from multiple enumerations by their ID.
         * @param array[] $userFields It has to have the "ID" keys in subarrays.
         * @return bool|CDBResult
         */
        public static function getListMultiple(array $userFields)
        {
        }
        /**
         * @param array $userField
         * @param array|null $additionalParameters
         * @return array
         */
        public static function getGroupActionData(array $userField, ?array $additionalParameters) : array
        {
        }
        /**
         * @param array $userField
         * @param array|null $additionalParameters
         * @return string
         */
        public static function getAdminListEditHtmlMulty(array $userField, ?array $additionalParameters) : string
        {
        }
        public static function getDefaultValue(array $userField, array $additionalParameters = [])
        {
        }
        public static function getFieldValue(array $userField, array $additionalParameters = [])
        {
        }
    }
}
namespace Bitrix\Iblock\UserField\Types {
    /**
     * Class ElementType
     * @package Bitrix\Iblock\UserField\Types
     */
    class ElementType extends \Bitrix\Main\UserField\Types\EnumType
    {
        public const USER_TYPE_ID = 'iblock_element', RENDER_COMPONENT = 'bitrix:iblock.field.element';
        protected static $iblockIncluded = null;
        /**
         * @return array
         */
        public static function getDescription() : array
        {
        }
        /**
         * @param array $userField
         * @return array
         */
        public static function prepareSettings(array $userField) : array
        {
        }
        /**
         * @param array $userField
         * @return string|null
         */
        public static function onSearchIndex(array $userField) : ?string
        {
        }
        public static function renderField(array $userField, ?array $additionalParameters = []) : string
        {
        }
        /**
         * @param array $userField
         * @return bool|CDBResult
         */
        public static function getList(array $userField)
        {
        }
        /**
         * @param array $userField
         * @param array $additionalParameters
         */
        public static function getEnumList(array &$userField, array $additionalParameters = []) : void
        {
        }
    }
    /**
     * Class SectionType
     * @package Bitrix\Iblock\UserField\Types
     */
    class SectionType extends \Bitrix\Iblock\UserField\Types\ElementType
    {
        public const USER_TYPE_ID = 'iblock_section', RENDER_COMPONENT = 'bitrix:iblock.field.section';
        /**
         * @return array
         */
        public static function getDescription() : array
        {
        }
        /**
         * @param array $userField
         * @return string
         */
        public static function onSearchIndex(array $userField) : string
        {
        }
        public static function renderField(array $userField, ?array $additionalParameters = []) : string
        {
        }
        /**
         * @param array $userField
         * @return bool|CDBResult
         */
        public static function getList(array $userField)
        {
        }
        /**
         * @param array $userField
         * @param array $additionalParameters
         */
        public static function getEnumList(array &$userField, array $additionalParameters = []) : void
        {
        }
    }
}
namespace Bitrix\Bizproc\BaseType {
    /**
     * Class Base
     * @package Bitrix\Bizproc\BaseType
     */
    class Base
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /** @var array $formats	 */
        protected static $formats = array('printable' => array('callable' => 'formatValuePrintable', 'separator' => ', '));
        /**
         * @param string $format
         * @return callable|null
         */
        protected static function getFormatCallable($format)
        {
        }
        /**
         * @param string $format
         * @return string
         */
        protected static function getFormatSeparator($format)
        {
        }
        /**
         * @param string $name Format name.
         * @param array $options Format options.
         * @throws Main\ArgumentException
         * @return void
         */
        public static function addFormat($name, array $options)
        {
        }
        /**
         * Get formats list.
         * @return array
         */
        public static function getFormats()
        {
        }
        /**
         * Normalize single value.
         *
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @return mixed Normalized value
         */
        public static function toSingleValue(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $format Format name.
         * @return string
         */
        public static function formatValueMultiple(\Bitrix\Bizproc\FieldType $fieldType, $value, $format = 'printable')
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $format Format name.
         * @return mixed|null
         */
        public static function formatValueSingle(\Bitrix\Bizproc\FieldType $fieldType, $value, $format = 'printable')
        {
        }
        /**
         * @param FieldType $fieldType
         * @param $value
         * @return string
         */
        protected static function formatValuePrintable(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $toTypeClass Type class name.
         * @return array
         */
        public static function convertValueMultiple(\Bitrix\Bizproc\FieldType $fieldType, $value, $toTypeClass)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $toTypeClass Type class name.
         * @return bool|int|float|string
         * @throws Main\ArgumentException
         */
        public static function convertValueSingle(\Bitrix\Bizproc\FieldType $fieldType, $value, $toTypeClass)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $toTypeClass Type class name.
         * @return null
         */
        public static function convertTo(\Bitrix\Bizproc\FieldType $fieldType, $value, $toTypeClass)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $fromTypeClass Type class name.
         * @return null
         */
        public static function convertFrom(\Bitrix\Bizproc\FieldType $fieldType, $value, $fromTypeClass)
        {
        }
        /**
         * Return conversion map for current type.
         * @return array Map.
         */
        public static function getConversionMap()
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $baseValue Base value.
         * @param mixed $appendValue Value to append.
         * @return mixed Merge result.
         */
        public static function mergeValue(\Bitrix\Bizproc\FieldType $fieldType, array $baseValue, $appendValue) : array
        {
        }
        /**
         * @var array
         */
        protected static $errors = array();
        /**
         * @param mixed $error Error description.
         */
        public static function addError($error)
        {
        }
        /**
         * @param array $errors Errors description.
         * @return void
         */
        public static function addErrors(array $errors)
        {
        }
        /**
         * @return array
         */
        public static function getErrors()
        {
        }
        /**
         * Clean errors
         */
        protected static function cleanErrors()
        {
        }
        /**
         * @param array $field
         * @return string
         */
        protected static function generateControlId(array $field)
        {
        }
        /**
         * @param array $field
         * @return string
         */
        protected static function generateControlName(array $field)
        {
        }
        protected static function generateControlClassName(\Bitrix\Bizproc\FieldType $fieldType, array $field)
        {
        }
        /**
         * @param array $controls
         * @param string $wrapperId
         * @return string
         */
        protected static function wrapCloneableControls(array $controls, $wrapperId)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param array $controls
         * @return string
         */
        protected static function renderPublicMultipleWrapper(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $controls)
        {
        }
        /**
         * Low-level control rendering method
         * @param FieldType $fieldType
         * @param array $field
         * @param mixed $value
         * @param bool $allowSelection
         * @param int $renderMode
         * @return string - HTML rendering
         */
        protected static function renderControl(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param int $renderMode Control render mode.
         * @return bool
         */
        public static function canRenderControl($renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param array $field
         * @param null|string $value
         * @param bool $showInput
         * @param string $selectorMode
         * @param FieldType $fieldType
         * @return string
         */
        protected static function renderControlSelector(array $field, $value = null, $showInput = false, $selectorMode = '', \Bitrix\Bizproc\FieldType $fieldType = null)
        {
        }
        protected static function renderControlSelectorButton($controlId, \Bitrix\Bizproc\FieldType $fieldType, $selectorMode = '')
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param string $callbackFunctionName Client callback function name.
         * @param mixed $value Field value.
         * @return string
         */
        public static function renderControlOptions(\Bitrix\Bizproc\FieldType $fieldType, $callbackFunctionName, $value)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param array $request
         * @return null|mixed
         */
        protected static function extractValue(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param array $request Request data.
         * @return mixed|null
         */
        public static function extractValueSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param array $request Request data.
         * @return array
         */
        public static function extractValueMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @return void
         */
        public static function clearValueSingle(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @return void
         */
        public static function clearValueMultiple(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param string $context Context identification (Document, Variable etc.)
         * @param mixed $value Field value.
         * @return mixed
         */
        public static function internalizeValue(\Bitrix\Bizproc\FieldType $fieldType, $context, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param string $context Context identification (Document, Variable etc.)
         * @param mixed $value Field value.
         * @return mixed
         */
        public static function internalizeValueSingle(\Bitrix\Bizproc\FieldType $fieldType, $context, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param string $context Context identification (Document, Variable etc.)
         * @param mixed $value Field value.
         * @return mixed
         */
        public static function internalizeValueMultiple(\Bitrix\Bizproc\FieldType $fieldType, $context, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param string $context Context identification (Document, Variable etc.)
         * @param mixed $value Field value.
         * @return mixed
         */
        public static function externalizeValue(\Bitrix\Bizproc\FieldType $fieldType, $context, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param string $context Context identification (Document, Variable etc.)
         * @param mixed $value Field value.
         * @return mixed
         */
        public static function externalizeValueSingle(\Bitrix\Bizproc\FieldType $fieldType, $context, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param string $context Context identification (Document, Variable etc.)
         * @param mixed $value Field value.
         * @return mixed
         */
        public static function externalizeValueMultiple(\Bitrix\Bizproc\FieldType $fieldType, $context, $value)
        {
        }
        /**
         * @param mixed $valueA First value.
         * @param mixed $valueB Second value.
         * @return int Returns 1, -1 or 0
         */
        public static function compareValues($valueA, $valueB)
        {
        }
    }
}
namespace Bitrix\Iblock\BizprocType {
    class UserTypeProperty extends \Bitrix\Bizproc\BaseType\Base
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @param FieldType $fieldType
         * @param $value
         * @return string
         */
        protected static function formatValuePrintable(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param mixed $value Field value.
         * @param string $toTypeClass Type class manager name.
         * @return null|mixed
         */
        public static function convertTo(\Bitrix\Bizproc\FieldType $fieldType, $value, $toTypeClass)
        {
        }
        /**
         * Return conversion map for current type.
         * @return array Map.
         */
        public static function getConversionMap()
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param array $field Form field information.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param array $field Form field information.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param array $request
         * @return null|mixed
         */
        protected static function extractValue(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        protected static function getUserType(\Bitrix\Bizproc\FieldType $fieldType)
        {
        }
    }
    class UserTypePropertyEmployee extends \Bitrix\Iblock\BizprocType\UserTypeProperty
    {
        private static $isCompatible;
        /**
         * @return string
         */
        public static function getType()
        {
        }
        public static function convertTo(\Bitrix\Bizproc\FieldType $fieldType, $value, $toTypeClass)
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param mixed $value Field value.
         * @param string $fromTypeClass Type class manager name.
         * @return null
         */
        public static function convertFrom(\Bitrix\Bizproc\FieldType $fieldType, $value, $fromTypeClass)
        {
        }
        /**
         * Return conversion map for current type.
         * @return array Map.
         */
        public static function getConversionMap()
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param array $field Form field information.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param array $field Form field information.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param array $request
         * @return null|mixed
         */
        protected static function extractValue(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        public static function extractValueMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param $value
         * @return string
         */
        protected static function formatValuePrintable(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        public static function toSingleValue(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        private static function fixUserPrefix($value)
        {
        }
        private static function isCompatibleMode()
        {
        }
    }
    class Sequence extends \Bitrix\Iblock\BizprocType\UserTypeProperty
    {
        public static function getType()
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * Low-level control rendering method
         * @param FieldType $fieldType
         * @param array $field
         * @param mixed $value
         * @param bool $allowSelection
         * @param int $renderMode
         * @return string - HTML rendering
         */
        protected static function renderControl(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        private static function getIblockId(\Bitrix\Bizproc\FieldType $fieldType)
        {
        }
    }
    class UserTypePropertyHtml extends \Bitrix\Iblock\BizprocType\UserTypeProperty
    {
        /**
         * @param FieldType $fieldType Document field object.
         * @param mixed $value Field value.
         * @param string $toTypeClass Type class manager name.
         * @return null|mixed
         */
        public static function convertTo(\Bitrix\Bizproc\FieldType $fieldType, $value, $toTypeClass)
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param mixed $value Field value.
         * @param string $fromTypeClass Type class manager name.
         * @return null
         */
        public static function convertFrom(\Bitrix\Bizproc\FieldType $fieldType, $value, $fromTypeClass)
        {
        }
        /**
         * Return conversion map for current type.
         * @return array Map.
         */
        public static function getConversionMap()
        {
        }
        /**
         * @param FieldType $fieldType
         * @param $value
         * @return string
         */
        protected static function formatValuePrintable(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * Low-level control rendering method
         * @param FieldType $fieldType
         * @param array $field
         * @param mixed $value
         * @param bool $allowSelection
         * @param int $renderMode
         * @return string - HTML rendering
         */
        protected static function renderControl(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param array $field Form field information.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param array $field Form field information.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param array $controls
         * @param string $wrapperId
         * @return string
         */
        protected static function wrapCloneableControls(array $controls, $wrapperId)
        {
        }
    }
    class ECrm extends \Bitrix\Iblock\BizprocType\UserTypeProperty
    {
        protected static $formatSeparator = ', ';
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $format Format name.
         * @return string
         */
        public static function formatValueMultiple(\Bitrix\Bizproc\FieldType $fieldType, $value, $format = 'printable')
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $format Format name.
         * @return string
         */
        public static function formatValueSingle(\Bitrix\Bizproc\FieldType $fieldType, $value, $format = 'printable')
        {
        }
        protected static function formatValuePrintable(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param string $callbackFunctionName Callback name.
         * @param mixed $value Field value.
         * @return string
         */
        public static function renderControlOptions(\Bitrix\Bizproc\FieldType $fieldType, $callbackFunctionName, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param array $field Form field information.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param array $field Form field information.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        public static function extractValueSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        private static function getIblockId(\Bitrix\Bizproc\FieldType $fieldType)
        {
        }
        public static function toSingleValue(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
    }
    class Money extends \Bitrix\Iblock\BizprocType\UserTypeProperty
    {
        protected static function formatValuePrintable(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param array $field Form field information.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param array $field Form field information.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param array $controls
         * @param string $wrapperId
         * @return string
         */
        protected static function wrapCloneableControls(array $controls, $wrapperId)
        {
        }
        private static function getIblockId(\Bitrix\Bizproc\FieldType $fieldType)
        {
        }
        /** @inheritdoc */
        public static function compareValues($valueA, $valueB)
        {
        }
        private static function convertMoney($sum, $srcCurrencyId, $dstCurrencyId)
        {
        }
    }
    class UserTypePropertyDiskFile extends \Bitrix\Iblock\BizprocType\UserTypeProperty
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        public static function formatValueMultiple(\Bitrix\Bizproc\FieldType $fieldType, $value, $format = 'printable')
        {
        }
        public static function formatValueSingle(\Bitrix\Bizproc\FieldType $fieldType, $value, $format = 'printable')
        {
        }
        /**
         * @param FieldType $fieldType
         * @param $value
         * @return string
         */
        protected static function formatValuePrintable(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param mixed $value Field value.
         * @param string $toTypeClass Type class manager name.
         * @return null|mixed
         */
        public static function convertTo(\Bitrix\Bizproc\FieldType $fieldType, $value, $toTypeClass)
        {
        }
        /**
         * Return conversion map for current type.
         * @return array Map.
         */
        public static function getConversionMap()
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param array $field Form field information.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param array $field Form field information.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        public static function extractValueSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        private static function getIblockId(\Bitrix\Bizproc\FieldType $fieldType)
        {
        }
        public static function extractValue(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        public static function clearValueSingle(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        public static function clearValueMultiple(\Bitrix\Bizproc\FieldType $fieldType, $values)
        {
        }
        public static function toSingleValue(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
    }
    class UserTypePropertyElist extends \Bitrix\Iblock\BizprocType\UserTypeProperty
    {
        private static $controlIsRendered = false;
        /**
         * @param FieldType $fieldType
         * @param string $callbackFunctionName
         * @param mixed $value
         * @return string
         */
        public static function renderControlOptions(\Bitrix\Bizproc\FieldType $fieldType, $callbackFunctionName, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param array $field Form field information.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param array $field Form field information.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        private function initControlHelpers()
        {
        }
    }
}
namespace Bitrix\Iblock {
    /**
     * Class SectionPropertyTable
     *
     * Fields:
     * <ul>
     * <li> IBLOCK_ID int mandatory
     * <li> SECTION_ID int mandatory
     * <li> PROPERTY_ID int mandatory
     * <li> SMART_FILTER bool optional default 'N'
     * <li> DISPLAY_TYPE enum ('A', 'B', 'F', 'G', 'H', 'K', 'P', 'R') optional
     * <li> DISPLAY_EXPANDED bool optional default 'N'
     * <li> FILTER_HINT string(255) optional
     * <li> IBLOCK reference to {@link \Bitrix\Iblock\IblockTable}
     * <li> PROPERTY reference to {@link \Bitrix\Iblock\PropertyTable}
     * <li> SECTION reference to {@link \Bitrix\Iblock\SectionTable}
     * </ul>
     *
     * @package Bitrix\Iblock
     **/
    class SectionPropertyTable extends \Bitrix\Main\Entity\DataManager
    {
        //ABCDE - for numbers
        const NUMBERS_WITH_SLIDER = 'A';
        const NUMBERS = 'B';
        //FGHIJ - for checkboxes
        const CHECKBOXES = 'F';
        const CHECKBOXES_WITH_PICTURES = 'G';
        const CHECKBOXES_WITH_PICTURES_AND_LABELS = 'H';
        //KLMNO - for radio buttons
        const RADIO_BUTTONS = 'K';
        //PQRST - for drop down
        const DROPDOWN = 'P';
        const DROPDOWN_WITH_PICTURES_AND_LABELS = 'R';
        //UWXYZ - reserved
        const CALENDAR = 'U';
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for FILTER_HINT field.
         *
         * @return array
         */
        public static function validateFilterHint()
        {
        }
    }
    class SenderEventHandler
    {
        /**
         * Return connector class description.
         *
         * @param array $data		Connector data.
         * @return array
         */
        public static function onConnectorListIblock($data)
        {
        }
    }
    class SenderConnectorIblock extends \Bitrix\Sender\Connector
    {
        /**
         * @return string
         */
        public function getName()
        {
        }
        /**
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * @return bool
         */
        public function requireConfigure()
        {
        }
        /** @return \CDBResult */
        public function getData()
        {
        }
        /**
         * @return string
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getForm()
        {
        }
        protected static function getIblockFieldList()
        {
        }
    }
    class CDBResultSenderConnector extends \CDBResult
    {
        public $senderConnectorFieldName = null;
        public $senderConnectorFieldEmail = null;
        /**
         * @return array|null
         */
        public function Fetch()
        {
        }
    }
    /**
     * Class SectionTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> TIMESTAMP_X datetime mandatory default 'CURRENT_TIMESTAMP'
     * <li> MODIFIED_BY int optional
     * <li> DATE_CREATE datetime optional
     * <li> CREATED_BY int optional
     * <li> IBLOCK_ID int mandatory
     * <li> IBLOCK_SECTION_ID int optional
     * <li> ACTIVE bool optional default 'Y'
     * <li> GLOBAL_ACTIVE bool optional default 'Y'
     * <li> SORT int optional default 500
     * <li> NAME string(255) mandatory
     * <li> PICTURE int optional
     * <li> LEFT_MARGIN int optional
     * <li> RIGHT_MARGIN int optional
     * <li> DEPTH_LEVEL int optional
     * <li> DESCRIPTION string optional
     * <li> DESCRIPTION_TYPE enum ('text', 'html') optional default 'text'
     * <li> SEARCHABLE_CONTENT string optional
     * <li> CODE string(255) optional
     * <li> XML_ID string(255) optional
     * <li> TMP_ID string(40) optional
     * <li> DETAIL_PICTURE int optional
     * <li> SOCNET_GROUP_ID int optional
     * <li> IBLOCK reference to {@link \Bitrix\Iblock\IblockTable}
     * <li> PARENT_SECTION reference to {@link \Bitrix\Iblock\SectionTable}
     * <li> CREATED_BY_USER reference to {@link \Bitrix\Main\UserTable}
     * <li> MODIFIED_BY_USER reference to {@link \Bitrix\Main\UserTable}
     * </ul>
     *
     * @package Bitrix\Iblock
     **/
    class SectionTable extends \Bitrix\Main\ORM\Data\DataManager
    {
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for NAME field.
         *
         * @return array
         */
        public static function validateName()
        {
        }
        /**
         * Returns validators for CODE field.
         *
         * @return array
         */
        public static function validateCode()
        {
        }
        /**
         * Returns validators for XML_ID field.
         *
         * @return array
         */
        public static function validateXmlId()
        {
        }
        /**
         * Returns validators for TMP_ID field.
         *
         * @return array
         */
        public static function validateTmpId()
        {
        }
        /**
         * Add iblock section.
         *
         * @param array $data			Section data.
         * @return ORM\Data\AddResult
         */
        public static function add(array $data)
        {
        }
        /**
         * Updates iblock section by primary key.
         *
         * @param mixed $primary		Section primary key.
         * @param array $data			Section data.
         * @return ORM\Data\UpdateResult
         */
        public static function update($primary, array $data)
        {
        }
        /**
         * Deletes iblock section by primary key.
         *
         * @param mixed $primary		Section primary key.
         * @return ORM\Data\DeleteResult
         */
        public static function delete($primary)
        {
        }
    }
    /**
     * Class TypeTable
     *
     * Fields:
     * <ul>
     * <li> ID string(50) mandatory
     * <li> SECTIONS bool optional default 'Y'
     * <li> EDIT_FILE_BEFORE string(255) optional
     * <li> EDIT_FILE_AFTER string(255) optional
     * <li> IN_RSS bool optional default 'N'
     * <li> SORT int optional default 500
     * <li> LANG_MESSAGE reference to {@link \Bitrix\Iblock\TypeLanguageTable}
     * </ul>
     *
     * @package Bitrix\Iblock
     */
    class TypeTable extends \Bitrix\Main\ORM\Data\DataManager
    {
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for ID field.
         *
         * @return array
         * @noinspection PhpUnused
         */
        public static function validateId()
        {
        }
        /**
         * Returns validators for EDIT_FILE_BEFORE field.
         *
         * @return array
         * @noinspection PhpUnused
         */
        public static function validateEditFileBefore()
        {
        }
        /**
         * Returns validators for EDIT_FILE_AFTER field.
         *
         * @return array
         * @noinspection PhpUnused
         */
        public static function validateEditFileAfter()
        {
        }
        public static function onAfterAdd(\Bitrix\Main\ORM\Event $event)
        {
        }
        public static function onAfterUpdate(\Bitrix\Main\ORM\Event $event)
        {
        }
        /**
         * Deletes information blocks of given type
         * and language messages from TypeLanguageTable
         *
         * @param ORM\Event $event Contains information about iblock type being deleted.
         *
         * @return void
         */
        public static function onDelete(\Bitrix\Main\ORM\Event $event)
        {
        }
        private static function cleanCache() : void
        {
        }
    }
    /**
     * Class PropertyTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> TIMESTAMP_X datetime mandatory default 'CURRENT_TIMESTAMP'
     * <li> IBLOCK_ID int mandatory
     * <li> NAME string(255) mandatory
     * <li> ACTIVE bool optional default 'Y'
     * <li> SORT int optional default 500
     * <li> CODE string(50) optional
     * <li> DEFAULT_VALUE text optional
     * <li> PROPERTY_TYPE enum ('S', 'N', 'L', 'F', 'E' or 'G') optional default 'S'
     * <li> ROW_COUNT int optional default 1
     * <li> COL_COUNT int optional default 30
     * <li> LIST_TYPE enum ('C' or 'L') optional default 'L'
     * <li> MULTIPLE bool optional default 'N'
     * <li> XML_ID string(100) optional
     * <li> FILE_TYPE string(200) optional
     * <li> MULTIPLE_CNT int optional
     * <li> TMP_ID string(40) optional
     * <li> LINK_IBLOCK_ID int optional
     * <li> WITH_DESCRIPTION bool optional default 'N'
     * <li> SEARCHABLE bool optional default 'N'
     * <li> FILTRABLE bool optional default 'N'
     * <li> IS_REQUIRED bool optional default 'N'
     * <li> VERSION enum (1 or 2) optional default 1
     * <li> USER_TYPE string(255) optional
     * <li> USER_TYPE_SETTINGS string optional
     * <li> HINT string(255) optional
     * <li> LINK_IBLOCK reference to {@link \Bitrix\Iblock\IblockTable}
     * <li> IBLOCK reference to {@link \Bitrix\Iblock\IblockTable}
     * </ul>
     *
     * @package Bitrix\Iblock
     **/
    class PropertyTable extends \Bitrix\Main\ORM\Data\DataManager
    {
        const CHECKBOX = 'C';
        const LISTBOX = 'L';
        const TYPE_STRING = 'S';
        const TYPE_NUMBER = 'N';
        const TYPE_FILE = 'F';
        const TYPE_ELEMENT = 'E';
        const TYPE_SECTION = 'G';
        const TYPE_LIST = 'L';
        const DEFAULT_MULTIPLE_CNT = 5;
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        public static function getObjectClass()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for NAME field.
         *
         * @return array
         */
        public static function validateName()
        {
        }
        /**
         * Returns validators for CODE field.
         *
         * @return array
         */
        public static function validateCode()
        {
        }
        /**
         * Returns validators for XML_ID field.
         *
         * @return array
         */
        public static function validateXmlId()
        {
        }
        /**
         * Returns validators for FILE_TYPE field.
         *
         * @return array
         */
        public static function validateFileType()
        {
        }
        /**
         * Returns validators for TMP_ID field.
         *
         * @return array
         */
        public static function validateTmpId()
        {
        }
        /**
         * Returns validators for USER_TYPE field.
         *
         * @return array
         */
        public static function validateUserType()
        {
        }
        /**
         * Returns validators for HINT field.
         *
         * @return array
         */
        public static function validateHint()
        {
        }
        /**
         * Default onBeforeAdd handler. Absolutely necessary.
         *
         * @param ORM\Event $event		Event object.
         * @return ORM\EventResult
         */
        public static function onBeforeAdd(\Bitrix\Main\ORM\Event $event)
        {
        }
        /**
         * Default onBeforeUpdate handler. Absolutely necessary.
         *
         * @param ORM\Event $event		Event object.
         * @return ORM\EventResult
         */
        public static function onBeforeUpdate(\Bitrix\Main\ORM\Event $event)
        {
        }
        /**
         * Remove values from old fields (for compatibility with old api).
         *
         * @param array &$result			Modified data for add/update property.
         * @param array $data				Current data for add/update property.
         * @return void
         */
        private static function copyOldFields(&$result, $data)
        {
        }
    }
}
namespace Bitrix\Iblock\Update {
    /**
     * Class FilterOption
     * The class is designed to convert the settings of the old administrative filter into a new one.
     * @package Bitrix\Main\Dev\Converter
     */
    class FilterOption extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "iblock";
        protected $deleteFile = true;
        protected $limit = 100;
        /**
         * The method records the necessary data for conversion into an option.
         *
         * @param string $filterId Filter id.
         * @param string $tableId Grid id.
         * @param array $ratioFields Fields of the old and new filter.
         *    array(
         *      "find_name" => "NAME",
         *      "find_lang" => "LID",
         *      ...
         *    )
         *
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function setFilterToConvert($filterId, $tableId, array $ratioFields)
        {
        }
        public function execute(array &$option)
        {
        }
        protected function convertOldFieldsToNewFields(array $oldFields, array $ratioFields)
        {
        }
        protected function getNewDateType($oldDateType, $oldDateValue)
        {
        }
    }
    /**
     * Class AdminGridOption
     * The class is designed to convert the settings of the old administrative grid into a new one.
     *
     * @package Bitrix\Iblock\Update
     */
    class AdminGridOption extends \Bitrix\Main\Update\AdminGridOption
    {
        protected static $moduleId = "iblock";
    }
    /**
     * Class GridOption
     * The class is designed to convert the settings of the old administrative grid into a new one.
     * @package Bitrix\Main\Dev\Converter
     */
    class GridOption extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "iblock";
        protected $deleteFile = true;
        protected $limit = 100;
        /**
         * The method records the necessary data for conversion into an option.
         * @param string $tableId Grid id.
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function setGridToConvert($tableId)
        {
        }
        public function execute(array &$option)
        {
        }
    }
    /**
     * Class AdminFilterOption
     * The class is designed to convert the settings of the old administrative filter into a new one.
     *
     * @package Bitrix\Iblock\Update
     */
    class AdminFilterOption extends \Bitrix\Main\Update\AdminFilterOption
    {
        protected static $moduleId = "iblock";
    }
}
namespace Bitrix\Iblock {
    class SectionElementTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
    /**
     * Class IblockFieldTable
     *
     * Fields:
     * <ul>
     * <li> IBLOCK_ID int mandatory
     * <li> FIELD_ID string(50) mandatory
     * <li> IS_REQUIRED bool optional default 'N'
     * <li> DEFAULT_VALUE string optional
     * <li> IBLOCK reference to {@link \Bitrix\Iblock\IblockTable}
     * </ul>
     *
     * @package Bitrix\Iblock
     */
    class IblockFieldTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for FIELD_ID field.
         *
         * @return array
         */
        public static function validateFieldId()
        {
        }
    }
    /**
     * @package    bitrix
     * @subpackage iblock
     */
    class ElementPropertyTable extends \Bitrix\Main\ORM\Data\DataManager
    {
        public static function getMap()
        {
        }
    }
    /**
     * Class SequenceTable
     *
     * Fields:
     * <ul>
     * <li> IBLOCK_ID int mandatory
     * <li> CODE string(50) mandatory
     * <li> SEQ_VALUE int optional
     * <li> IBLOCK reference to {@link \Bitrix\Iblock\IblockTable}
     * </ul>
     *
     * @package Bitrix\Iblock
     **/
    class SequenceTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for CODE field.
         *
         * @return array
         */
        public static function validateCode()
        {
        }
    }
}
namespace Bitrix\Iblock\Template {
    /**
     * Class Engine
     * Provides interface for templates processing.
     * @package Bitrix\Iblock\Template
     */
    class Engine
    {
        /**
         * Takes an entity (Element, Section or Iblock) and processes the template.
         * <code>
         * if (\Bitrix\Main\Loader::includeModule('iblock'))
         * &#123;
         * 	$e = new \Bitrix\Iblock\Template\Entity\Element(6369);
         * 	echo "<pre>", print_r(\Bitrix\Iblock\Template\Engine::process($e, "Name: {=this.Name}. Code:{=this.code}"), 1), "</pre>";
         * &#125;
         * </code>
         *
         * @param Entity\Base $entity Context entity for template processing.
         * @param string $template Template to make substitutions in.
         *
         * @return string
         */
        public static function process(\Bitrix\Iblock\Template\Entity\Base $entity, $template)
        {
        }
        /**
         * Splits template by tokens and builds execution tree.
         *
         * @param string $template Source expression.
         * @param NodeRoot $parent Root node.
         *
         * @return NodeRoot
         */
        protected static function parseTemplateTree($template, \Bitrix\Iblock\Template\NodeRoot $parent)
        {
        }
        /**
         * Parses "{=" part of the template. Moves internal pointer right behind balanced "}"
         * after {= a field of the entity should follow
         * or a function call.
         *
         * @param array[]string &$parsedTemplate Template tokens.
         *
         * @return NodeEntityField|NodeFunction|null
         */
        protected static function parseFormula(array &$parsedTemplate)
        {
        }
        /**
         * Adds function arguments to a $function.
         * An formula may be evaluated as oa argument.
         * An number or
         * A string in double quotes.
         *
         * @param string $token Expression string.
         * @param array[]string &$parsedTemplate Template tokens.
         * @param NodeFunction $function Function object to which arguments will be added.
         *
         * @return void
         */
        protected static function parseFunctionArguments($token, array &$parsedTemplate, \Bitrix\Iblock\Template\NodeFunction $function)
        {
        }
        /**
         * Explodes a string into function arguments.
         * Numbers or strings.
         *
         * @param string $token Expression string.
         * @param NodeFunction $function Function object to which arguments will be added.
         *
         * @return void
         */
        protected static function explodeFunctionArgument($token, \Bitrix\Iblock\Template\NodeFunction $function)
        {
        }
    }
    /**
     * Class NodeBase
     * Base class for template parsed tree nodes.
     * @package Bitrix\Iblock\Template
     */
    abstract class NodeBase
    {
        /**
         * Converts internal contents of the node into external presentation.
         * It's a string or an array of strings.
         *
         * @param Entity\Base $entity Sets the context of processing.
         *
         * @return string
         */
        public abstract function process(\Bitrix\Iblock\Template\Entity\Base $entity);
    }
    /**
     * Class NodeRoot
     * Present simple collection of child nodes
     *
     * @package Bitrix\Iblock\Template
     */
    class NodeRoot extends \Bitrix\Iblock\Template\NodeBase
    {
        /** @var array[int]NodeBase */
        protected $children = array();
        protected $modifiers = array();
        /**
         * Appends a child to the children collection.
         *
         * @param NodeBase $child Object to be added as a child.
         *
         * @return void
         */
        public function addChild(\Bitrix\Iblock\Template\NodeBase $child)
        {
        }
        /**
         * Sets modifiers to be used at the last stage of processing.
         *
         * @param string $modifiers String which contains modifiers.
         *
         * @return void
         */
        public function setModifiers($modifiers)
        {
        }
        /**
         * Calls process for each of it's children.
         * Returns concatenation of their results.
         *
         * @param Entity\Base $entity Sets the context of processing.
         *
         * @return string
         */
        public function process(\Bitrix\Iblock\Template\Entity\Base $entity)
        {
        }
    }
    /**
     * Class NodeText
     * Plain text node
     *
     * @package Bitrix\Iblock\Template
     */
    class NodeText extends \Bitrix\Iblock\Template\NodeBase
    {
        protected $content = "";
        /**
         * Sets text contents into $content.
         *
         * @param string $content A text to be saved.
         */
        function __construct($content = "")
        {
        }
        /**
         * Returns text contents.
         *
         * @param Entity\Base $entity Sets the context of processing.
         *
         * @return string
         */
        public function process(\Bitrix\Iblock\Template\Entity\Base $entity)
        {
        }
    }
    /**
     * Class NodeEntityField
     * Represents an entity field in the formula.
     * For example: this.name
     *
     * @package Bitrix\Iblock\Template
     */
    class NodeEntityField extends \Bitrix\Iblock\Template\NodeBase
    {
        protected $entityField = "";
        /**
         * Initializes the object.
         * $entityName and $entityField is case insensitive.
         *
         * @param string $entityField Field of the Entity.
         */
        function __construct($entityField = "")
        {
        }
        /**
         * Calls "resolve" method of the $entity.
         * On success returns field value of the resolved.
         * Otherwise returns empty string.
         *
         * @param Entity\Base $entity Sets the context of processing.
         *
         * @return string
         */
        public function process(\Bitrix\Iblock\Template\Entity\Base $entity)
        {
        }
    }
    /**
     * Class NodeFunction
     * Represents a function call in the formula.
     *
     * @package Bitrix\Iblock\Template
     */
    class NodeFunction extends \Bitrix\Iblock\Template\NodeBase
    {
        protected $functionName = "";
        protected $parameters = array();
        /**
         * Initialize function object.
         *
         * @param string $functionName Name of the function. Case insensitive.
         */
        public function __construct($functionName = "")
        {
        }
        /**
         * Adds new parameters to the function call.
         *
         * @param NodeBase $parameter A new parameter to be added.
         *
         * @return void
         */
        public function addParameter(\Bitrix\Iblock\Template\NodeBase $parameter)
        {
        }
        /**
         * Uses Functions\Fabric to get an instance of the function object by it's name.
         * On success calls onPrepareParameters, then calculate method.
         * Otherwise returns an empty string.
         *
         * @param Entity\Base $entity Sets the context of processing.
         *
         * @return string
         */
        public function process(\Bitrix\Iblock\Template\Entity\Base $entity)
        {
        }
    }
}
namespace Bitrix\Iblock\Template\Entity {
    /**
     * Class Base
     *
     * @package Bitrix\Iblock\Template\Entity
     */
    class Base
    {
        /** @var integer  */
        protected $id = null;
        /** @var array[string]mixed  */
        protected $fields = null;
        /** @var array[string]string  */
        protected $fieldMap = array();
        /**
         * @param integer $id Entity identifier.
         */
        public function __construct($id)
        {
        }
        /**
         * Returns entity identifier.
         *
         * @return integer
         */
        public function getId()
        {
        }
        /**
         * Used to find entity for template processing.
         *
         * @param string $entity What to find.
         *
         * @return \Bitrix\Iblock\Template\Entity\Base
         */
        public function resolve($entity)
        {
        }
        /**
         * Used to initialize entity fields from some external source.
         *
         * @param array $fields Entity fields.
         *
         * @return void
         */
        public function setFields(array $fields)
        {
        }
        /**
         * Returns field value.
         *
         * @param string $fieldName Name of the field to retrieve data from.
         *
         * @return string
         */
        public function getField($fieldName)
        {
        }
        /**
         * Loads values from database.
         * Returns true on success.
         *
         * @return boolean
         */
        protected function loadFromDatabase()
        {
        }
        /**
         * Sets new field value only when is not set yet.
         * Adds mapping from field name to it's internal presentation.
         *
         * @param string $fieldName The name of the field.
         * @param string $internalName Internal name of the field.
         * @param string $value Value to be stored.
         *
         * @return void
         */
        protected function addField($fieldName, $internalName, $value)
        {
        }
    }
    class Element extends \Bitrix\Iblock\Template\Entity\Base
    {
        protected $property = null;
        protected $iblock = null;
        protected $parent = null;
        protected $sections = null;
        protected $catalog = null;
        /**
         * @param integer $id Iblock element identifier.
         */
        public function __construct($id)
        {
        }
        /**
         * Used to find entity for template processing.
         *
         * @param string $entity What to find.
         *
         * @return \Bitrix\Iblock\Template\Entity\Base
         */
        public function resolve($entity)
        {
        }
        /**
         * Used to initialize entity fields from some external source.
         *
         * @param array $fields Entity fields.
         *
         * @return void
         */
        public function setFields(array $fields)
        {
        }
        /**
         * Loads values from database.
         * Returns true on success.
         *
         * @return boolean
         */
        protected function loadFromDatabase()
        {
        }
    }
    class CatalogStore extends \Bitrix\Iblock\Template\Entity\Base
    {
        /**
         * @param integer $id Catalog store identifier.
         */
        public function __construct($id)
        {
        }
        /**
         * Used to find entity for template processing.
         *
         * @param string $entity What to find.
         *
         * @return \Bitrix\Iblock\Template\Entity\Base
         */
        public function resolve($entity)
        {
        }
        /**
         * Used to initialize entity fields from some external source.
         *
         * @param array $fields Entity fields.
         *
         * @return void
         */
        public function setFields(array $fields)
        {
        }
        /**
         * Loads values from database.
         * Returns true on success.
         *
         * @return boolean
         */
        protected function loadFromDatabase()
        {
        }
    }
    class ElementCatalog extends \Bitrix\Iblock\Template\Entity\Base
    {
        protected $price = null;
        protected $sku = null;
        protected $store = null;
        /**
         * @param integer $id Catalog product identifier.
         */
        public function __construct($id)
        {
        }
        /**
         * Used to find entity for template processing.
         *
         * @param string $entity What to find.
         *
         * @return \Bitrix\Iblock\Template\Entity\Base
         */
        public function resolve($entity)
        {
        }
        /**
         * Used to initialize entity fields from some external source.
         *
         * @param array $fields Entity fields.
         *
         * @return void
         */
        public function setFields(array $fields)
        {
        }
        /**
         * Loads values from database.
         * Returns true on success.
         *
         * @return boolean
         */
        protected function loadFromDatabase()
        {
        }
    }
    /**
     * Class LazyValueLoader
     * Strategy class used for delaying queries to DB.
     *
     * @package Bitrix\Iblock\Template\Entity
     */
    class LazyValueLoader
    {
        protected $value = null;
        protected $key = null;
        /**
         * @param string|integer $key Unique identifier.
         */
        function __construct($key)
        {
        }
        /**
         * Calls load method if value was not loaded yet.
         *
         * @return mixed
         */
        public function __toString()
        {
        }
        /**
         * Calls load method if value was not loaded yet.
         *
         * @return mixed
         */
        public function getValue()
        {
        }
        /**
         * Actual work method which have to retrieve data from the DB.
         *
         * @return mixed
         */
        protected function load()
        {
        }
    }
    class ElementCatalogMeasure extends \Bitrix\Iblock\Template\Entity\LazyValueLoader
    {
        /**
         * Actual work method which have to retrieve data from the DB.
         *
         * @return mixed
         */
        protected function load()
        {
        }
    }
    class ElementCatalogStoreList extends \Bitrix\Iblock\Template\Entity\LazyValueLoader
    {
        /**
         * Actual work method which have to retrieve data from the DB.
         *
         * @return mixed
         */
        protected function load()
        {
        }
    }
    class SectionPath extends \Bitrix\Iblock\Template\Entity\Base
    {
        protected $dbPath = null;
        /**
         * @param integer $id Iblock section identifier.
         */
        public function __construct($id)
        {
        }
        /**
         * Loads values from database.
         * Returns true on success.
         *
         * @return boolean
         */
        public function loadFromDatabase()
        {
        }
        /**
         * Helper method for loading user defined properties from DB.
         *
         * @return void
         */
        protected function loadProperty()
        {
        }
    }
    class ElementSkuPrice extends \Bitrix\Iblock\Template\Entity\Base
    {
        /**
         * @param integer $id Catalog product identifier.
         */
        public function __construct($id)
        {
        }
        /**
         * Used to initialize entity fields from some external source.
         *
         * @param array $fields Entity fields.
         *
         * @return void
         */
        public function setFields(array $fields)
        {
        }
        /**
         * Loads values from database.
         * Returns true on success.
         *
         * @return boolean
         */
        protected function loadFromDatabase()
        {
        }
    }
    class Section extends \Bitrix\Iblock\Template\Entity\Base
    {
        protected $property = null;
        protected $iblock = null;
        protected $parent = null;
        protected $sections = null;
        protected $catalog = null;
        /**
         * @param integer $id Iblock section identifier.
         */
        public function __construct($id)
        {
        }
        /**
         * Used to find entity for template processing.
         *
         * @param string $entity What to find.
         *
         * @return \Bitrix\Iblock\Template\Entity\Base
         */
        public function resolve($entity)
        {
        }
        /**
         * Used to initialize entity fields from some external source.
         *
         * @param array $fields Entity fields.
         *
         * @return void
         */
        public function setFields(array $fields)
        {
        }
        /**
         * Loads values from database.
         * Returns true on success.
         *
         * @return boolean
         */
        protected function loadFromDatabase()
        {
        }
    }
    class Iblock extends \Bitrix\Iblock\Template\Entity\Base
    {
        protected $catalog = null;
        /**
         * @param integer $id Iblock identifier.
         */
        public function __construct($id)
        {
        }
        /**
         * Used to find entity for template processing.
         *
         * @param string $entity What to find.
         *
         * @return \Bitrix\Iblock\Template\Entity\Base
         */
        public function resolve($entity)
        {
        }
        /**
         * Loads values from database.
         * Returns true on success.
         *
         * @return boolean
         */
        protected function loadFromDatabase()
        {
        }
    }
    class ElementSku extends \Bitrix\Iblock\Template\Entity\Base
    {
        protected $elementFields = null;
        protected $skuIblockId = null;
        protected $skuList = null;
        protected $property = null;
        protected $price = null;
        /**
         * @param integer $id Iblock element identifier.
         */
        public function __construct($id)
        {
        }
        /**
         * Used to find entity for template processing.
         *
         * @param string $entity What to find.
         *
         * @return \Bitrix\Iblock\Template\Entity\Base
         */
        public function resolve($entity)
        {
        }
        /**
         * Loads values from database.
         * Returns true on success.
         *
         * @return boolean
         */
        public function loadFromDatabase()
        {
        }
    }
    class ElementSkuProperty extends \Bitrix\Iblock\Template\Entity\Base
    {
        protected $ids = null;
        protected $iblockId = 0;
        protected $properties = array();
        /**
         * @param array|mixed $ids Array of iblock element identifiers.
         */
        public function __construct($ids)
        {
        }
        /**
         * Set the iblock of the elements.
         *
         * @param integer $iblockId Iblock identifier.
         *
         * @return void
         */
        public function setIblockId($iblockId)
        {
        }
        /**
         * Loads values from database.
         * Returns true on success.
         *
         * @return boolean
         */
        protected function loadFromDatabase()
        {
        }
    }
    class ElementProperty extends \Bitrix\Iblock\Template\Entity\Base
    {
        protected $iblockId = 0;
        protected $properties = array();
        protected $elementLinkProperties = array();
        protected $sectionLinkProperties = array();
        /**
         * @param integer $id Iblock element identifier.
         */
        public function __construct($id)
        {
        }
        /**
         * Set the iblock of the element.
         *
         * @param integer $iblockId Iblock identifier.
         *
         * @return void
         */
        public function setIblockId($iblockId)
        {
        }
        /**
         * Used to find entity for template processing.
         *
         * @param string $entity What to find.
         *
         * @return \Bitrix\Iblock\Template\Entity\Base
         */
        public function resolve($entity)
        {
        }
        /**
         * Used to initialize entity fields from some external source.
         *
         * @param array $fields Entity fields.
         *
         * @return void
         */
        public function setFields(array $fields)
        {
        }
        /**
         * Loads values from database.
         * Returns true on success.
         *
         * @return boolean
         */
        protected function loadFromDatabase()
        {
        }
    }
    class ElementPropertyUserField extends \Bitrix\Iblock\Template\Entity\LazyValueLoader
    {
        /** @var array  */
        private $property = null;
        /**
         * @param integer $key  Iblock element identifier.
         * @param array|mixed $property Iblock property array.
         */
        function __construct($key, $property)
        {
        }
        /**
         * Actual work method which have to retrieve data from the DB.
         *
         * @return mixed
         */
        protected function load()
        {
        }
        /**
         * Retruns GetPublicViewHTML handler function for $this->property.
         * Returns false if no handler defined.
         *
         * @return callable|false
         */
        protected function getFormatFunction()
        {
        }
    }
    class ElementPropertyEnum extends \Bitrix\Iblock\Template\Entity\LazyValueLoader
    {
        /**
         * Actual work method which have to retrieve data from the DB.
         *
         * @return mixed
         */
        protected function load()
        {
        }
    }
    class ElementPropertyElement extends \Bitrix\Iblock\Template\Entity\LazyValueLoader
    {
        /**
         * Actual work method which have to retrieve data from the DB.
         *
         * @return mixed
         */
        protected function load()
        {
        }
    }
    class ElementPropertySection extends \Bitrix\Iblock\Template\Entity\LazyValueLoader
    {
        /**
         * Actual work method which have to retrieve data from the DB.
         *
         * @return mixed
         */
        protected function load()
        {
        }
    }
    class SectionProperty extends \Bitrix\Iblock\Template\Entity\Base
    {
        protected $iblockId = 0;
        /**
         * @param integer $id Iblock section identifier.
         */
        public function __construct($id)
        {
        }
        /**
         * Set the iblock of the section.
         *
         * @param integer $iblockId Iblock identifier.
         *
         * @return void
         */
        public function setIblockId($iblockId)
        {
        }
        /**
         * Used to initialize entity fields from some external source.
         *
         * @param array $fields Entity fields.
         *
         * @return void
         */
        public function setFields(array $fields)
        {
        }
        /**
         * Loads values from database.
         * Returns true on success.
         *
         * @return boolean
         */
        protected function loadFromDatabase()
        {
        }
    }
    class ElementPrice extends \Bitrix\Iblock\Template\Entity\Base
    {
        /**
         * @param integer $id Catalog product identifier.
         */
        public function __construct($id)
        {
        }
        /**
         * Used to find entity for template processing.
         *
         * @param string $entity What to find.
         *
         * @return \Bitrix\Iblock\Template\Entity\Base
         */
        public function resolve($entity)
        {
        }
        /**
         * Used to initialize entity fields from some external source.
         *
         * @param array $fields Entity fields.
         *
         * @return void
         */
        public function setFields(array $fields)
        {
        }
        /**
         * Loads values from database.
         * Returns true on success.
         *
         * @return boolean
         */
        protected function loadFromDatabase()
        {
        }
    }
}
namespace Bitrix\Iblock\Template\Functions {
    /**
     * Class Fabric
     * Provides function object instance by it's name.
     * Has some builtin function such as: upper, lower, concat and limit.
     * Fires event OnTemplateGetFunctionClass. Handler of the event has to return acclass name not an instance.
     *
     * @package Bitrix\Iblock\Template\Functions
     */
    class Fabric
    {
        protected static $functionMap = array();
        /**
         * Instantiates an function object by function name.
         *
         * @param string $functionName Name of the function in the lower case.
         * @param mixed $data Additional data for function instance.
         *
         * @return FunctionBase
         */
        public static function createInstance($functionName, $data = null)
        {
        }
    }
    /**
     * Class FunctionBase
     * Base class for all function objects processed by engine.
     *
     * @package Bitrix\Iblock\Template\Functions
     */
    class FunctionBase
    {
        protected $data = null;
        /**
         * @param mixed|null $data Additional data for function instance.
         */
        function __construct($data = null)
        {
        }
        /**
         * Called before calculation. It's result will be passed to the calculate method.
         *
         * @param \Bitrix\Iblock\Template\Entity\Base $entity This object.
         * @param array[]\Bitrix\Iblock\Template\NodeBase $parameters Parsed and prepared list of parameters.
         *
         * @return array
         */
        public function onPrepareParameters(\Bitrix\Iblock\Template\Entity\Base $entity, array $parameters)
        {
        }
        /**
         * Called by engine to process function call.
         *
         * @param array $parameters Function parameters.
         *
         * @return string
         */
        public function calculate(array $parameters)
        {
        }
        /**
         * Helper function. Concatenates all the parameters into a string.
         *
         * @param array $parameters Function parameters.
         *
         * @return string
         */
        protected function parametersToString(array $parameters)
        {
        }
        /**
         * Helper function. Gathers all the parameters into an flat array.
         *
         * @param array $parameters Function parameters.
         *
         * @return array
         */
        protected function parametersToArray(array $parameters)
        {
        }
    }
    /**
     * Class FunctionUpper
     * Represents upper function {=upper this.name}.
     *
     * @package Bitrix\Iblock\Template\Functions
     */
    class FunctionUpper extends \Bitrix\Iblock\Template\Functions\FunctionBase
    {
        /**
         * Called by engine to process function call.
         *
         * @param array $parameters Function parameters.
         *
         * @return string
         */
        public function calculate(array $parameters)
        {
        }
    }
    /**
     * Class FunctionLower
     * Represents lower function {=lower this.name}.
     *
     * @package Bitrix\Iblock\Template\Functions
     */
    class FunctionLower extends \Bitrix\Iblock\Template\Functions\FunctionBase
    {
        /**
         * Called by engine to process function call.
         *
         * @param array $parameters Function parameters.
         *
         * @return string
         */
        public function calculate(array $parameters)
        {
        }
    }
    /**
     * Class FunctionTranslit
     * Transliterates it's input {=translit this.name}.
     *
     * @package Bitrix\Iblock\Template\Functions
     */
    class FunctionTranslit extends \Bitrix\Iblock\Template\Functions\FunctionBase
    {
        /**
         * Called by engine to process function call.
         *
         * @param array $parameters Function parameters.
         *
         * @return string
         */
        public function calculate(array $parameters)
        {
        }
    }
    /**
     * Class FunctionConcat
     * Represents concatenation function {=concat iblock.name sections.name this.property.cml2_link.property.articul " / "}.
     *
     * @package Bitrix\Iblock\Template\Functions
     */
    class FunctionConcat extends \Bitrix\Iblock\Template\Functions\FunctionBase
    {
        /**
         * Called by engine to process function call.
         *
         * @param array $parameters Function parameters.
         *
         * @return string
         */
        public function calculate(array $parameters)
        {
        }
    }
    /**
     * Class FunctionLimit
     * Explodes list elements by delimiter and returns no more than limit elements {=limit this.previewText this.DetailText  " \t\n\r" 10}.
     *
     * @package Bitrix\Iblock\Template\Functions
     */
    class FunctionLimit extends \Bitrix\Iblock\Template\Functions\FunctionBase
    {
        /**
         * Called by engine to process function call.
         *
         * @param array $parameters Function parameters.
         *
         * @return string
         */
        public function calculate(array $parameters)
        {
        }
    }
    /**
     * Class FunctionContrast
     * Explodes list elements by delimiter and returns no more than limit most contrast words {=contrast this.previewText this.DetailText  " \t\n\r" 10}.
     *
     * @package Bitrix\Iblock\Template\Functions
     */
    class FunctionContrast extends \Bitrix\Iblock\Template\Functions\FunctionBase
    {
        /**
         * Called by engine to process function call.
         *
         * @param array $parameters Function parameters.
         *
         * @return string
         */
        public function calculate(array $parameters)
        {
        }
    }
    /**
     * Class FunctionMin
     * Returns minimum value of given {=min  this.catalog.sku.price.base}.
     *
     * @package Bitrix\Iblock\Template\Functions
     */
    class FunctionMin extends \Bitrix\Iblock\Template\Functions\FunctionBase
    {
        /**
         * Called by engine to process function call.
         *
         * @param array $parameters Function parameters.
         *
         * @return string
         */
        public function calculate(array $parameters)
        {
        }
    }
    /**
     * Class FunctionMax
     * Returns maximum value of given {=min  this.catalog.sku.price.base}.
     *
     * @package Bitrix\Iblock\Template\Functions
     */
    class FunctionMax extends \Bitrix\Iblock\Template\Functions\FunctionBase
    {
        /**
         * Called by engine to process function call.
         *
         * @param array $parameters Function parameters.
         *
         * @return string
         */
        public function calculate(array $parameters)
        {
        }
    }
    /**
     * Class FunctionDistinct
     * Returns maximum value of given {=min  this.catalog.sku.price.base}.
     *
     * @package Bitrix\Iblock\Template\Functions
     */
    class FunctionDistinct extends \Bitrix\Iblock\Template\Functions\FunctionBase
    {
        /**
         * Called by engine to process function call.
         *
         * @param array $parameters Function parameters.
         *
         * @return string
         */
        public function calculate(array $parameters)
        {
        }
    }
}
namespace Bitrix\Iblock\Template {
    /**
     * Class Helper
     * Provides some helper functions.
     * @package Bitrix\Iblock\Template
     */
    class Helper
    {
        /**
         * Returns array with two elements.
         * First with template and second with optional modifiers.
         *
         * @param string $template Template string. For example: "{=this.name}/lt-".
         *
         * @return array
         */
        public static function splitTemplate($template)
        {
        }
        /**
         * Returns array of modifiers if any found.
         *
         * @param string $modifiers Modifiers string. for example: "lt-".
         *
         * @return array
         */
        public static function splitModifiers($modifiers)
        {
        }
        /**
         * Returns TEMPLATE with modifiers encoded and concatenated.
         *
         * @param array[string]string $template Template information as it comes from DB.
         *
         * @return string
         */
        public static function convertArrayToModifiers(array $template)
        {
        }
        /**
         * Returns $template with additional information.
         * TEMPLATE field without modifiers
         * and each modifier as distinct field.
         *
         * @param array[string]string $template Template information as it comes from DB.
         *
         * @return array[string]string
         */
        public static function convertModifiersToArray(array $template = null)
        {
        }
        /**
         * Function returns file name formatted by the template.
         *
         * @param \Bitrix\Iblock\InheritedProperty\BaseTemplate $ipropTemplates Templates to lookup.
         * @param string $templateName Name of the template to choose from $ipropTemplates.
         * @param array $fields Array contains fields for processing the template.
         * @param array $file Array contains information about file in format of $_FILES.
         *
         * @return string
         */
        public static function makeFileName(\Bitrix\Iblock\InheritedProperty\BaseTemplate $ipropTemplates, $templateName, array $fields, array $file)
        {
        }
    }
}
namespace Bitrix\Iblock {
    /**
     * Class IblockSiteTable
     *
     * Fields:
     * <ul>
     * <li> IBLOCK_ID int mandatory
     * <li> SITE_ID char(2) mandatory
     * <li> IBLOCK reference to {@link \Bitrix\Iblock\IblockTable}
     * <li> SITE reference to {@link \Bitrix\Main\SiteTable}
     * </ul>
     *
     * @package Bitrix\Iblock
     */
    class IblockSiteTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for SITE_ID field.
         *
         * @return array
         */
        public static function validateSiteId()
        {
        }
    }
}
namespace Bitrix\Iblock\Component {
    /**
     * Class Filters
     * Provides various useful methods for sorted offers.
     *
     * @package Bitrix\Iblock\Component
     */
    class Filters
    {
        /**
         * Return offers id by filter.
         *
         * @param array $filter				CIBlockElement::getList filter.
         * @return array
         */
        public static function getFilteredOffersId(array $filter)
        {
        }
        /**
         * Return offer id by filter group by product id.
         *
         * @param int $iblockId				Offers iblock id.
         * @param int $propertyId			Sku property id.
         * @param array $filter				CIBlockElement::getList filter.
         * @return array
         */
        public static function getFilteredOffersByProduct($iblockId, $propertyId, array $filter)
        {
        }
    }
    /**
     * Class Tools
     * Provides various useful methods.
     *
     * @package Bitrix\Iblock\Component
     */
    class Tools
    {
        const IPROPERTY_ENTITY_ELEMENT = 'ELEMENT';
        const IPROPERTY_ENTITY_SECTION = 'SECTION';
        /**
         * Performs actions enabled by its parameters.
         *
         * @param string $message Message to show with bitrix:system.show_message component.
         * @param bool $defineConstant If true then ERROR_404 constant defined.
         * @param bool $setStatus If true sets http response status.
         * @param bool $showPage If true then work area will be cleaned and /404.php will be included.
         * @param string $pageFile Alternative file to /404.php.
         *
         * @return void
         */
        public static function process404($message = "", $defineConstant = true, $setStatus = true, $showPage = false, $pageFile = "")
        {
        }
        /**
         * Get image data for element fields.
         *
         * @param array &$item				Result CIBlockResult::GetNext/Fetch or _CIBElement::GetFields.
         * @param array $keys				Field keys.
         * @param string $entity			Entity id.
         * @param string $ipropertyKey		Key with seo data.
         *
         * @return void
         */
        public static function getFieldImageData(array &$item, array $keys, $entity, $ipropertyKey = 'IPROPERTY_VALUES')
        {
        }
        /**
         * Get absolute path to image.
         *
         * @param array $image			Image array from CFile::GetFileArray or Tools::getImageData.
         * @param bool $safe			Get encode path or unsafe.
         * @return string
         */
        public static function getImageSrc(array $image, $safe = true)
        {
        }
    }
}
namespace Bitrix\Iblock\Url\AdminPage {
    class BuilderManager
    {
        public const EVENT_ID = 'onGetUrlBuilders';
        private static $instance = null;
        protected $mode = null;
        /** @var BaseBuilder[] */
        protected $builders = null;
        /** @var array */
        protected $map = null;
        protected function __construct()
        {
        }
        public static function getInstance() : \Bitrix\Iblock\Url\AdminPage\BuilderManager
        {
        }
        public function getBuilder(string $builder = \Bitrix\Iblock\Url\AdminPage\BaseBuilder::TYPE_AUTODETECT) : ?\Bitrix\Iblock\Url\AdminPage\BaseBuilder
        {
        }
    }
}
namespace Bitrix\Iblock {
    /**
     * Class IblockGroupTable
     *
     * Fields:
     * <ul>
     * <li> IBLOCK_ID int mandatory
     * <li> GROUP_ID int mandatory
     * <li> PERMISSION string(1) mandatory
     * <li> GROUP reference to {@link \Bitrix\Main\GroupTable}
     * <li> IBLOCK reference to {@link \Bitrix\Iblock\IblockTable}
     * </ul>
     *
     * @package Bitrix\Iblock
     **/
    class IblockGroupTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for PERMISSION field.
         *
         * @return array
         */
        public static function validatePermission()
        {
        }
    }
}
namespace Bitrix\Iblock\InheritedProperty {
    abstract class BaseValues
    {
        /** @var integer */
        protected $iblockId = null;
        /** @var array[string][string]string */
        protected $values = false;
        /** @var ValuesQueue */
        protected $queue = null;
        /**
         * @param integer $iblockId Iblock identifier.
         */
        public function __construct($iblockId)
        {
        }
        /**
         * Returns the identifier of the iblock of the entity.
         *
         * @return integer
         */
        public function getIblockId()
        {
        }
        /**
         * Returns the table name where values will be stored.
         *
         * @return string
         */
        public function getValueTableName()
        {
        }
        /**
         * Returns type of the entity which will be stored into DB.
         *
         * @return string
         */
        public abstract function getType();
        /**
         * Returns unique identifier of the entity
         *
         * @return integer
         */
        public abstract function getId();
        /**
         * Creates an entity which will be used to process the templates.
         *
         * @return \Bitrix\Iblock\Template\Entity\Base
         */
        public abstract function createTemplateEntity();
        /**
         * Returns all the parents of the entity.
         *
         * @return array[]\Bitrix\Iblock\InheritedProperty\BaseValues
         */
        public function getParents()
        {
        }
        /**
         * Returns it's first parent if exists one.
         * Otherwise returns null.
         *
         * @return \Bitrix\Iblock\InheritedProperty\BaseValues|null
         */
        public function getParent()
        {
        }
        /**
         * Returns all calculated values of inherited properties
         * for this entity.
         *
         * @return array[string]string
         */
        public function getValues()
        {
        }
        /**
         * Returns value of the inherited property.
         * The result is html encoded string.
         *
         * @param string $propertyCode Mnemonic code.
         * @return string
         */
        public function getValue($propertyCode)
        {
        }
        /**
         * Queries templates for this entity.
         * Then processes them in order to get
         * calculated values.
         *
         * @return array[string][string]string
         */
        public function queryValues()
        {
        }
        /**
         * Checks if there are some templates exists for this set of values.
         *
         * @return boolean
         */
        public function hasTemplates()
        {
        }
        /**
         * Clears entity values DB cache
         *
         * @return void
         */
        abstract function clearValues();
        /**
         * Must be called on template delete.
         *
         * @param integer $ipropertyId Identifier of the inherited property.
         *
         * @return void
         */
        public function deleteValues($ipropertyId)
        {
        }
        /**
         * Helper method to save batch values.
         *
         * @param string $tableName Where to insert data.
         * @param array  $fields Fields list.
         * @param array  $rows Data to insert.
         *
         * @return void
         */
        protected function insertValues($tableName, $fields, $rows)
        {
        }
        /**
         * Puts a mark for and element or section to be queried from the database.
         *
         * @param integer $iblockId IBlock identifier.
         * @param integer $id Element or section identifier.
         *
         * @return void
         */
        public static function queue($iblockId, $id)
        {
        }
    }
    class SectionValues extends \Bitrix\Iblock\InheritedProperty\BaseValues
    {
        protected $sectionId = 0;
        /** @var ValuesQueue */
        protected $queue = null;
        /**
         * @param integer $iblockId Iblock identifier.
         * @param integer $sectionId Section identifier.
         */
        public function __construct($iblockId, $sectionId)
        {
        }
        /**
         * Returns the table name where values will be stored.
         *
         * @return string
         */
        public function getValueTableName()
        {
        }
        /**
         * Returns type of the entity which will be stored into DB.
         *
         * @return string
         */
        public function getType()
        {
        }
        /**
         * Returns unique identifier of the section.
         *
         * @return integer
         */
        public function getId()
        {
        }
        /**
         * Creates an entity which will be used to process the templates.
         *
         * @return \Bitrix\Iblock\Template\Entity\Base
         */
        public function createTemplateEntity()
        {
        }
        /**
         * Returns all the parents of the section which is
         * array with one element: parent section or iblock.
         *
         * @return array[]\Bitrix\Iblock\InheritedProperty\BaseValues
         */
        public function getParents()
        {
        }
        /**
         * Returns all calculated values of inherited properties
         * for this section.
         *
         * @return array[string]string
         */
        public function queryValues()
        {
        }
        /**
         * Clears section values DB cache
         *
         * @return void
         */
        function clearValues()
        {
        }
    }
    class ValuesQueue
    {
        /** var array[intger][integer]false|array */
        protected $db_values = array();
        /** @var array[string]ValuesQueue */
        protected static $queues = array();
        /**
         * Returns a queue instance by the key provided.
         * Creates new instance if first time called for the given key.
         *
         * @param string $key Queue identifier.
         *
         * @return ValuesQueue
         */
        public static function getInstance($key)
        {
        }
        /**
         * Clears all the queues.
         *
         * @return void
         */
        public static function deleteAll()
        {
        }
        /**
         * Returns the queue elements for the given iblock
         * which were not queried from the database.
         *
         * @param integer $iblockId Iblock identifier.
         *
         * @return array[integer]integer
         */
        public function get($iblockId)
        {
        }
        /**
         * Stores the values for queue elements for future reference.
         * Missing elements are assigned empty arrays.
         *
         * @param integer $iblockId Iblock identifier.
         * @param array[integer]array $values Values from the database.
         *
         * @return void
         */
        public function set($iblockId, $values)
        {
        }
        /**
         * Puts an element into the queue.
         *
         * @param integer $iblockId Iblock identifier.
         * @param integer $id Element identifier.
         *
         * @return void
         */
        public function addElement($iblockId, $id)
        {
        }
        /**
         * Removes an element from the queue.
         *
         * @param integer $iblockId Iblock identifier.
         * @param integer $id Element identifier.
         *
         * @return void
         */
        public function deleteElement($iblockId, $id)
        {
        }
        /**
         * Returns data of the element from the queue.
         * False when element was not queried from the database.
         * And null when element was not queued.
         *
         * @param integer $iblockId Iblock identifier.
         * @param integer $id Element identifier.
         *
         * @return false|null|array
         */
        public function getElement($iblockId, $id)
        {
        }
        /**
         * Stores the data for the element in the queue.
         * Rewrites any existing value.
         *
         * @param integer $iblockId Iblock identifier.
         * @param integer $id Element identifier.
         * @param array   $value A Value to be stored.
         *
         * @return void
         */
        public function setElement($iblockId, $id, $value)
        {
        }
    }
    class ElementValues extends \Bitrix\Iblock\InheritedProperty\BaseValues
    {
        protected $sectionId = 0;
        protected $elementId = 0;
        /**
         * @param integer $iblockId Iblock identifier.
         * @param integer $elementId Element identifier.
         */
        public function __construct($iblockId, $elementId)
        {
        }
        /**
         * Returns the table name where values will be stored.
         *
         * @return string
         */
        public function getValueTableName()
        {
        }
        /**
         * Returns type of the entity which will be stored into DB.
         *
         * @return string
         */
        public function getType()
        {
        }
        /**
         * Returns unique identifier of the element.
         *
         * @return integer
         */
        public function getId()
        {
        }
        /**
         * Creates an entity which will be used to process the templates.
         *
         * @return \Bitrix\Iblock\Template\Entity\Base
         */
        public function createTemplateEntity()
        {
        }
        /**
         * Sets parent to minimal value from array or to $sectionId.
         *
         * @param array[]integer|integer $sectionId Section identifier.
         *
         * @return void
         */
        public function setParents($sectionId)
        {
        }
        /**
         * Returns all the parents of the element which is
         * array with one element: parent section with minimal identifier or iblock.
         *
         * @return array[]\Bitrix\Iblock\InheritedProperty\BaseValues
         */
        public function getParents()
        {
        }
        /**
         * Returns all calculated values of inherited properties
         * for this element.
         *
         * @return array[string]string
         */
        public function queryValues()
        {
        }
        /**
         * Clears element values DB cache
         *
         * @return void
         */
        function clearValues()
        {
        }
    }
    class IblockValues extends \Bitrix\Iblock\InheritedProperty\BaseValues
    {
        /**
         * @param integer $iblockId Iblock identifier.
         */
        public function __construct($iblockId)
        {
        }
        /**
         * Returns the table name where values will be stored.
         *
         * @return string
         */
        public function getValueTableName()
        {
        }
        /**
         * Returns type of the entity which will be stored into DB.
         *
         * @return string
         */
        public function getType()
        {
        }
        /**
         * Returns unique identifier of the iblock.
         *
         * @return integer
         */
        public function getId()
        {
        }
        /**
         * Creates an entity which will be used to process the templates.
         *
         * @return \Bitrix\Iblock\Template\Entity\Base
         */
        public function createTemplateEntity()
        {
        }
        /**
         * Returns all the parents of the iblock which is empty array.
         *
         * @return array[]\Bitrix\Iblock\InheritedProperty\BaseValues
         */
        public function getParents()
        {
        }
        /**
         * Returns all calculated values of inherited properties
         * for iblock.
         *
         * @return array[string]string
         */
        public function queryValues()
        {
        }
        /**
         * Clears iblock values DB cache
         *
         * @return void
         */
        function clearValues()
        {
        }
    }
    class BaseTemplate
    {
        /** @var \Bitrix\Iblock\InheritedProperty\BaseValues|null */
        protected $entity = null;
        /**
         * @param BaseValues $entity Sets the context for template substitution.
         */
        function __construct(\Bitrix\Iblock\InheritedProperty\BaseValues $entity)
        {
        }
        /**
         * Returns entity for which this template is executing.
         *
         * @return BaseValues|null
         */
        public function getValuesEntity()
        {
        }
        /**
         * Stores templates for entity into database.
         *
         * @param array $templates Templates to be stored to DB.
         *
         * @return void
         * @throws \Bitrix\Main\ArgumentException
         */
        public function set(array $templates)
        {
        }
        /**
         * Returns array of templates stored for the entity from database.
         *
         * @param BaseValues $entity Entity.
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public function get(\Bitrix\Iblock\InheritedProperty\BaseValues $entity = null)
        {
        }
        /**
         * Checks if entity has any templates stored in the database.
         * Caches the result in static variable.
         *
         * @param BaseValues $entity Entity.
         *
         * @return boolean
         * @throws \Bitrix\Main\ArgumentException
         */
        public function hasTemplates(\Bitrix\Iblock\InheritedProperty\BaseValues $entity)
        {
        }
        /**
         * Deletes templates for this entity from database.
         *
         * @return void
         * @throws \Bitrix\Main\ArgumentException
         */
        public function delete()
        {
        }
        /**
         * Returns templates for the entity and all it's parents
         * into $templates parameter.
         *
         * @param BaseValues $entity Entity.
         * @param array &$templates Templates returned.
         *
         * @return void
         */
        protected function findTemplatesRecursive(\Bitrix\Iblock\InheritedProperty\BaseValues $entity, array &$templates)
        {
        }
        /**
         * Returns templates for the  entity and all it's parents.
         * Adds INHERITED flag to each template found.
         *
         * @return array
         */
        public function findTemplates()
        {
        }
    }
    class ElementTemplates extends \Bitrix\Iblock\InheritedProperty\BaseTemplate
    {
        /**
         * @param integer $iblockId Identifier of the iblock of element.
         * @param integer $elementId Identifier of the element.
         */
        function __construct($iblockId, $elementId)
        {
        }
    }
    class IblockTemplates extends \Bitrix\Iblock\InheritedProperty\BaseTemplate
    {
        /**
         * @param integer $iblockId Identifier of the iblock.
         */
        function __construct($iblockId)
        {
        }
    }
    class SectionTemplates extends \Bitrix\Iblock\InheritedProperty\BaseTemplate
    {
        /**
         * @param integer $iblockId Identifier of the iblock of the section.
         * @param integer $sectionId Identifier of the section.
         */
        function __construct($iblockId, $sectionId)
        {
        }
    }
}
namespace Bitrix\Iblock {
    /**
     * Class ElementTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> TIMESTAMP_X datetime optional
     * <li> MODIFIED_BY int optional
     * <li> DATE_CREATE datetime optional
     * <li> CREATED_BY int optional
     * <li> IBLOCK_ID int mandatory
     * <li> IBLOCK_SECTION_ID int optional
     * <li> ACTIVE bool optional default 'Y'
     * <li> ACTIVE_FROM datetime optional
     * <li> ACTIVE_TO datetime optional
     * <li> SORT int optional default 500
     * <li> NAME string(255) mandatory
     * <li> PREVIEW_PICTURE int optional
     * <li> PREVIEW_TEXT string optional
     * <li> PREVIEW_TEXT_TYPE enum ('text', 'html') optional default 'text'
     * <li> DETAIL_PICTURE int optional
     * <li> DETAIL_TEXT string optional
     * <li> DETAIL_TEXT_TYPE enum ('text', 'html') optional default 'text'
     * <li> SEARCHABLE_CONTENT string optional
     * <li> WF_STATUS_ID int optional default 1
     * <li> WF_PARENT_ELEMENT_ID int optional
     * <li> WF_NEW enum ('N', 'Y') optional
     * <li> WF_LOCKED_BY int optional
     * <li> WF_DATE_LOCK datetime optional
     * <li> WF_COMMENTS string optional
     * <li> IN_SECTIONS bool optional default 'N'
     * <li> XML_ID string(255) optional
     * <li> CODE string(255) optional
     * <li> TAGS string(255) optional
     * <li> TMP_ID string(40) optional
     * <li> WF_LAST_HISTORY_ID int optional
     * <li> SHOW_COUNTER int optional
     * <li> SHOW_COUNTER_START datetime optional
     * <li> PREVIEW_PICTURE_FILE reference to {@link \Bitrix\Main\FileTable}
     * <li> DETAIL_PICTURE_FILE reference to {@link \Bitrix\Main\FileTable}
     * <li> IBLOCK reference to {@link \Bitrix\Iblock\IblockTable}
     * <li> WF_PARENT_ELEMENT reference to {@link \Bitrix\Iblock\IblockElementTable}
     * <li> IBLOCK_SECTION reference to {@link \Bitrix\Iblock\IblockSectionTable}
     * <li> MODIFIED_BY_USER reference to {@link \Bitrix\Main\UserTable}
     * <li> CREATED_BY_USER reference to {@link \Bitrix\Main\UserTable}
     * <li> WF_LOCKED_BY_USER reference to {@link \Bitrix\Main\UserTable}
     * </ul>
     *
     * @package Bitrix\Iblock
     **/
    class ElementTable extends \Bitrix\Main\ORM\Data\DataManager
    {
        const TYPE_TEXT = 'text';
        const TYPE_HTML = 'html';
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for NAME field.
         *
         * @return array
         */
        public static function validateName()
        {
        }
        /**
         * Returns validators for XML_ID field.
         *
         * @return array
         */
        public static function validateXmlId()
        {
        }
        /**
         * Returns validators for CODE field.
         *
         * @return array
         */
        public static function validateCode()
        {
        }
        /**
         * Returns validators for TAGS field.
         *
         * @return array
         */
        public static function validateTags()
        {
        }
        /**
         * Returns validators for TMP_ID field.
         *
         * @return array
         */
        public static function validateTmpId()
        {
        }
        /**
         * Add iblock element.
         *
         * @param array $data			Element data.
         * @return ORM\Data\AddResult
         */
        public static function add(array $data)
        {
        }
        /**
         * Updates iblock element by primary key.
         *
         * @param mixed $primary		Element primary key.
         * @param array $data			Element data.
         * @return ORM\Data\UpdateResult
         */
        public static function update($primary, array $data)
        {
        }
        /**
         * Deletes iblock element by primary key.
         *
         * @param mixed $primary		Element primary key.
         * @return ORM\Data\DeleteResult
         */
        public static function delete($primary)
        {
        }
    }
}
namespace Bitrix\Iblock\PropertyIndex {
    class Element
    {
        protected $iblockId = 0;
        protected $elementId = 0;
        protected static $catalog = null;
        protected static $filterPropertyID = array();
        protected $skuIblockId = 0;
        protected $skuPropertyId = 0;
        protected $elementPropertyValues = array();
        protected $elementPrices = array();
        protected $elementSections = array();
        protected static $sectionParents = array();
        /**
         * @param integer $iblockId Information block identifier.
         * @param integer $elementId Element identifier.
         *
         * @throws \Bitrix\Main\LoaderException
         */
        public function __construct($iblockId, $elementId)
        {
        }
        /**
         * Returns identifier of the element.
         *
         * @return integer
         */
        public function getId()
        {
        }
        /**
         * Fills element with data from the database.
         *
         * @return void
         */
        public function loadFromDatabase()
        {
        }
        /**
         * Fills member elementPropertyValues member with property values.
         *
         * @param integer $iblockId Information block identifier.
         * @param array[string]string $elementFilter Element property values criteria.
         *
         * @return void
         */
        protected function loadElementProperties($iblockId, array $elementFilter)
        {
        }
        /**
         * Fills member elementPrices member with prices.
         *
         * @param integer[] $productList Identifiers of the elements.
         *
         * @return void
         */
        protected function loadElementPrices(array $productList)
        {
        }
        /**
         * Fills member elementSections member with sections identifiers of the element.
         *
         * @param integer $elementId Identifier of the element.
         *
         * @return void
         */
        protected function loadElementSections($elementId)
        {
        }
        /**
         * Returns loaded property values.
         *
         * @param integer $propertyId Property identifier.
         *
         * @return array[]mixed
         */
        public function getPropertyValues($propertyId)
        {
        }
        /**
         * Returns loaded price values.
         *
         * @param integer $priceId Price identifier.
         *
         * @return mixed
         */
        public function getPriceValues($priceId)
        {
        }
        /**
         * Returns true if section is the one element connected with.
         *
         * @param integer $sectionId Section identifier.
         *
         * @return boolean
         */
        public function isElementSection($sectionId)
        {
        }
        /**
         * Returns unique array of the element sections.
         *
         * @return integer[]
         */
        public function getSections()
        {
        }
        /**
         * Returns unique array of the element sections with all of their parents.
         *
         * @return integer[]
         */
        public function getParentSections()
        {
        }
        /**
         * Returns all section parents.
         *
         * @param integer $sectionId Section identifier.
         *
         * @return mixed
         */
        public function getSectionParents($sectionId)
        {
        }
    }
    class Dictionary
    {
        protected $iblockId = 0;
        protected $cache = array();
        protected static $exists = array();
        /**
         * @param integer $iblockId Information block identifier.
         */
        public function __construct($iblockId)
        {
        }
        /**
         * Returns information block identifier.
         *
         * @return integer
         */
        public function getIblockId()
        {
        }
        /**
         * Internal method to get database table name for storing values.
         *
         * @return string
         */
        public function getTableName()
        {
        }
        /**
         * Checks if dictionary exists in the database.
         * Returns true on success.
         *
         * @return boolean
         */
        public function isExists()
        {
        }
        /**
         * Returns validators for VALUE field.
         * This is an internal method for eAccelerator compatibility.
         *
         * @return array[]\Bitrix\Main\Entity\Validator\Base
         */
        public static function validateValue()
        {
        }
        /**
         * Creates new dictionary for information block.
         * You have to be sure that dictionary does not exists.
         *
         * @return void
         */
        public function create()
        {
        }
        /**
         * Deletes existing dictionary in the database.
         * You have to check that dictionary exists before calling this method.
         *
         * @return void
         */
        public function drop()
        {
        }
        /**
         * Returns unique number presentation of the string.
         *
         * @param string  $value           Value for dictionary lookup.
         * @param boolean $addWhenNotFound Add new value to the dictionary if none found.
         *
         * @return int
         */
        public function getStringId($value, $addWhenNotFound = true)
        {
        }
        /**
         * Returns string by its identifier in the dictionary.
         *
         * @param integer $valueId Value identifier for dictionary lookup.
         *
         * @return string
         */
        public function getStringById($valueId)
        {
        }
        /**
         * Returns array of string by its identifier in the dictionary.
         *
         * @param array $valueIDs Value identifier for dictionary lookup.
         *
         * @return array
         */
        public function getStringByIds($valueIDs)
        {
        }
    }
    class Manager
    {
        private static $catalog = null;
        private static $deferredIndexing = -1;
        private static $elementQueue = array();
        private static $indexerInstances = array();
        /**
         * For offers iblock identifier returns it's products iblock.
         * Otherwise $iblockId returned.
         *
         * @param integer $iblockId Information block identifier.
         *
         * @return integer
         */
        public static function resolveIblock($iblockId)
        {
        }
        /**
         * If elementId is an offer, then it's product identifier returned
         * Otherwise $elementId returned.
         *
         * @param integer $iblockId Information block identifier.
         * @param integer $elementId Element identifier.
         *
         * @return integer
         */
        public static function resolveElement($iblockId, $elementId)
        {
        }
        /**
         * Drops all related to index database structures.
         *
         * @param integer $iblockId Information block identifier.
         *
         * @return void
         */
        public static function dropIfExists($iblockId)
        {
        }
        /**
         * Creates and initializes new indexer instance.
         *
         * @param integer $iblockId Information block identifier.
         *
         * @return Iblock\PropertyIndex\Indexer
         */
        public static function createIndexer($iblockId)
        {
        }
        /**
         * Marks iblock as one who needs index rebuild.
         *
         * @param integer $iblockId Information block identifier.
         *
         * @return void
         */
        public static function markAsInvalid($iblockId)
        {
        }
        /**
         * Marks iblock as one who needs index rebuild when it is needed.
         *
         * @param integer $iblockId Information block identifier.
         * @param array $propertyOld Previos property fields.
         * @param array $propertyNew New property fields.
         *
         * @return void
         */
        public static function onPropertyUpdate($iblockId, $propertyOld, $propertyNew)
        {
        }
        /**
         * Adds admin users notification about index rebuild.
         *
         * @param boolean $force Whenever skip iblock check.
         *
         * @return void
         */
        public static function checkAdminNotification($force = false)
        {
        }
        /**
         * Deletes index and mark iblock as having none.
         *
         * @param integer $iblockId Information block identifier.
         *
         * @return void
         */
        public static function deleteIndex($iblockId)
        {
        }
        /**
         * Deletes all related to element information if index exists.
         *
         * @param integer $iblockId Information block identifier.
         * @param integer $elementId Identifier of the element.
         *
         * @return void
         */
        public static function deleteElementIndex($iblockId, $elementId)
        {
        }
        /**
         * Updates all related to element information if index exists.
         *
         * @param integer $iblockId Information block identifier.
         * @param integer $elementId Identifier of the element.
         *
         * @return void
         */
        public static function updateElementIndex($iblockId, $elementId)
        {
        }
        /**
         * Enable deferred indexing.
         *
         * @return void
         */
        public static function enableDeferredIndexing()
        {
        }
        /**
         * Disable deferred indexing.
         *
         * @return void
         */
        public static function disableDeferredIndexing()
        {
        }
        /**
         * Return true if allowed deferred indexing.
         *
         * @return bool
         */
        public static function usedDeferredIndexing()
        {
        }
        /**
         * Update iblock index if defered data exists.
         *
         * @param int $iblockId		Iblock.
         * @return void
         */
        public static function runDeferredIndexing($iblockId)
        {
        }
        private static function pushToQueue($iblockId, $elementId)
        {
        }
        private static function elementIndexing(\Bitrix\Iblock\PropertyIndex\Indexer $indexer, $elementId)
        {
        }
    }
    class Storage
    {
        protected $iblockId = 0;
        protected static $exists = array();
        const PRICE = 1;
        const DICTIONARY = 2;
        const STRING = 3;
        const NUMERIC = 4;
        const DATETIME = 5;
        /**
         * @param integer $iblockId Information block identifier.
         */
        public function __construct($iblockId)
        {
        }
        /**
         * Returns information block identifier.
         *
         * @return integer
         */
        public function getIblockId()
        {
        }
        /**
         * Internal method to get database table name for storing property index.
         *
         * @return string
         */
        public function getTableName()
        {
        }
        /**
         * Checks if property index exists in the database.
         * Returns true on success.
         *
         * @return boolean
         */
        public function isExists()
        {
        }
        /**
         * Creates new property values index for information block.
         * You have to be sure that index does not exists.
         *
         * @return void
         */
        public function create()
        {
        }
        /**
         * Deletes existing index from the database.
         * You have to check that index exists before calling this method.
         *
         * @return void
         */
        public function drop()
        {
        }
        /**
         * Returns maximum stored element identifier.
         *
         * @return int
         */
        public function getLastStoredElementId()
        {
        }
        /**
         * Adds new index entry.
         *
         * @param integer $sectionId Identifier of the element section.
         * @param integer $elementId Identifier of the element.
         * @param integer $facetId   Identifier of the property/price.
         * @param integer $value     Dictionary value or 0.
         * @param float   $valueNum  Value of an numeric property or price.
         * @param boolean $includeSubsections If section has parent or direct element connection.
         *
         * @return boolean
         */
        public function addIndexEntry($sectionId, $elementId, $facetId, $value, $valueNum, $includeSubsections)
        {
        }
        /**
         * Deletes all element entries from the index.
         *
         * @param integer $elementId Identifier of the element to be deleted.
         *
         * @return boolean
         */
        public function deleteIndexElement($elementId)
        {
        }
        /**
         * Converts iblock property identifier into internal storage facet identifier.
         *
         * @param integer $propertyId Property identifier.
         * @return integer
         */
        public static function propertyIdToFacetId($propertyId)
        {
        }
        /**
         * Converts catalog price identifier into internal storage facet identifier.
         *
         * @param integer $priceId Price identifier.
         * @return integer
         */
        public static function priceIdToFacetId($priceId)
        {
        }
        /**
         * Returns true if given identifier is catalog price one.
         *
         * @param integer $facetId Internal storage facet identifier.
         *
         * @return boolean
         */
        public static function isPriceId($facetId)
        {
        }
        /**
         * Returns true if given identifier is iblock property one.
         *
         * @param integer $facetId Internal storage facet identifier.
         *
         * @return boolean
         */
        public static function isPropertyId($facetId)
        {
        }
        /**
         * Converts internal storage facet identifier into iblock property identifier.
         *
         * @param integer $facetId Internal storage facet identifier.
         *
         * @return integer
         */
        public static function facetIdToPropertyId($facetId)
        {
        }
        /**
         * Converts internal storage facet identifier into catalog price identifier.
         *
         * @param integer $facetId Internal storage facet identifier.
         *
         * @return integer
         */
        public static function facetIdToPriceId($facetId)
        {
        }
    }
    class Facet
    {
        protected $iblockId = 0;
        protected $valid = false;
        protected $skuIblockId = 0;
        protected $skuPropertyId = 0;
        protected $sectionFilter = array();
        protected $priceFilter = null;
        protected $toCurrencyId = 0;
        protected $convertCurrencyId = array();
        /** @var \Bitrix\Iblock\PropertyIndex\Dictionary */
        protected $dictionary = null;
        /** @var \Bitrix\Iblock\PropertyIndex\Storage  */
        protected $storage = null;
        protected static $catalog = null;
        protected $sectionId = 0;
        protected $where = array();
        /**
         * @param integer $iblockId Information block identifier.
         */
        public function __construct($iblockId)
        {
        }
        /**
         * Returns true if filter rewrite is possible.
         *
         * @return boolean
         */
        public function isValid()
        {
        }
        /**
         * Returns iblock identifier.
         *
         * @return integer
         */
        public function getIblockId()
        {
        }
        /**
         * Returns SKU iblock identifier.
         *
         * @return integer
         */
        public function getSkuIblockId()
        {
        }
        /**
         * Returns SKU property identifier.
         *
         * @return integer
         */
        public function getSkuPropertyId()
        {
        }
        /**
         * Returns facet storage object.
         *
         * @return \Bitrix\Iblock\PropertyIndex\Storage
         */
        public function getStorage()
        {
        }
        /**
         * Returns facet dictionary object.
         *
         * @return \Bitrix\Iblock\PropertyIndex\Dictionary
         */
        public function getDictionary()
        {
        }
        /**
         * Returns string by its identifier in the dictionary.
         *
         * @param integer $valueId Value identifier for dictionary lookup.
         *
         * @return string
         */
        public function lookupDictionaryValue($valueId)
        {
        }
        /**
         * Returns filter join with index tables.
         * <p>
         * $filter parameters same as for CIBlockElement::getList
         * <p>
         * $facetTypes allows to get only "checkboxes" or "prices" and such.
         *
         * @param array $filter Filter to apply additionally to filter elements.
         * @param array $facetTypes Which facet types will be used.
         * @param integer $facetId Which facet category filter should not be applied.
         *
         * @return \Bitrix\Main\DB\Result|false
         */
        public function query(array $filter, array $facetTypes = array(), $facetId = 0)
        {
        }
        /**
         * Returns array of facets id filtered against $facetTypes.
         *
         * @param array $facetTypes Filter types.
         *
         * @return integer[]
         */
        protected function getFacetFilter(array $facetTypes)
        {
        }
        /**
         * Returns where condition without facet given.
         *
         * @param integer $facetToExclude Facet id.
         *
         * @return array
         */
        protected function getWhere($facetToExclude)
        {
        }
        /**
         * Converts structured $where array into sql condition or empty string.
         *
         * @param array $where Structured condition.
         * @param string $tableAlias Table alias to use in sql.
         * @param string $subsectionsCondition If not empty will be added.
         *
         * @return string
         */
        public function whereToSql(array $where, $tableAlias, $subsectionsCondition = "")
        {
        }
        /**
         * Returns list of properties IDs linked to the section according their "TYPE".
         * Property has to be not only linked to the section, but has to be marked as smart filter one.
         * - N - maps to Indexer::NUMERIC
         * - S - to Indexer::STRING
         * - F, E, G, L - to Indexer::DICTIONARY
         *
         * @param integer $sectionId Section for with properties will be returned.
         *
         * @return integer[]
         */
        protected function getSectionFilterProperty($sectionId)
        {
        }
        /**
         * Sets section context for further filtering.
         * <p>
         * Returns this object instance for calls chaining.
         *
         * @param integer $sectionId Section identifier.
         *
         * @return \Bitrix\Iblock\PropertyIndex\Facet
         */
        public function setSectionId($sectionId)
        {
        }
        /**
         * Sets prices for further filtering.
         * <p>
         * Returns this object instance for calls chaining.
         *
         * @param array $prices Prices identifiers.
         *
         * @return \Bitrix\Iblock\PropertyIndex\Facet
         */
        public function setPrices(array $prices)
        {
        }
        /**
         * Returns list of price IDs for storing in the index.
         *
         * @return integer[]
         */
        protected function getFilterPrices()
        {
        }
        /**
         * Adds a condition for further filtering.
         *
         * @param integer $propertyId Iblock property identifier.
         * @param string $operator Comparing operator.
         * @param float $value Value to compare.
         *
         * @return void
         */
        public function addNumericPropertyFilter($propertyId, $operator, $value)
        {
        }
        /**
         * Adds a condition for further filtering.
         *
         * @param integer $priceId Catalog price identifier.
         * @param string $operator Comparing operator.
         * @param float $value Value to compare.
         *
         * @return void
         */
        public function addPriceFilter($priceId, $operator, $value)
        {
        }
        /**
         * Adds a condition for further filtering.
         *
         * @param integer $propertyId Iblock property identifier.
         * @param string $operator Comparing operator.
         * @param float $value Value to compare.
         *
         * @return void
         */
        public function addDictionaryPropertyFilter($propertyId, $operator, $value)
        {
        }
        /**
         * Adds a condition for further filtering.
         *
         * @param integer $propertyId Iblock property identifier.
         * @param string $operator Comparing operator.
         * @param float $value Timestamp to compare.
         *
         * @return void
         */
        public function addDatetimePropertyFilter($propertyId, $operator, $value)
        {
        }
        /**
         * Returns true if not filters were applied.
         *
         * @return boolean
         */
        public function isEmptyWhere()
        {
        }
        /**
         * When called subsequent queries will use currency conversion for filtering.
         * Works only with 'currency' module installed.
         *
         * @param string $toCurrencyId Valid currency id for price value passed into addPriceFilter method.
         * @param array $convertCurrencyId Array of valid currencies ids.
         *
         * @return void
         */
        public function enableCurrencyConversion($toCurrencyId, array $convertCurrencyId)
        {
        }
    }
    class Indexer
    {
        protected $iblockId = 0;
        protected $lastElementId = null;
        protected static $catalog = null;
        protected $skuIblockId = 0;
        protected $skuPropertyId = 0;
        protected $sectionParents = array();
        protected $propertyFilter = null;
        protected $priceFilter = null;
        /** @var Dictionary */
        protected $dictionary = null;
        /** @var Storage */
        protected $storage = null;
        /**
         * @param integer $iblockId Information block identifier.
         */
        public function __construct($iblockId)
        {
        }
        /**
         * Initializes internal object state. Must be called before usage.
         *
         * @throws \Bitrix\Main\LoaderException
         * @return void
         */
        public function init()
        {
        }
        /**
         * Sets index mark/cursor.
         *
         * @param integer $lastElementId Element identifier.
         *
         * @return void
         */
        public function setLastElementId($lastElementId)
        {
        }
        /**
         * Returns index mark/cursor. Last indexed element or null if there was none.
         *
         * @return integer|null
         */
        public function getLastElementId()
        {
        }
        /**
         * Checks if storage and dictionary exists in the database.
         * Returns true on success.
         *
         * @return boolean
         */
        public function isExists()
        {
        }
        /**
         * Drops and recreates the index. So one can start indexing.
         *
         * @return boolean
         */
        public function startIndex()
        {
        }
        /**
         * End of index creation. Marks iblock as indexed.
         *
         * @return boolean
         */
        public function endIndex()
        {
        }
        /**
         * Does index step. Returns number of indexed elements.
         *
         * @param integer $interval Time limit for execution.
         * @return integer
         */
        public function continueIndex($interval = 0)
        {
        }
        /**
         * Returns number of elements to be indexed.
         *
         * @return integer
         */
        public function estimateElementCount()
        {
        }
        /**
         * Indexes one element.
         *
         * @param integer $elementId Element identifier.
         *
         * @return void
         */
        public function indexElement($elementId)
        {
        }
        /**
         * Removes element from the index.
         *
         * @param integer $elementId Element identifier.
         *
         * @return void
         */
        public function deleteElement($elementId)
        {
        }
        /**
         * Returns elements list database cursor for indexing.
         * This list contains only active elements,
         * starts with $lastElementID and ID in ascending order.
         *
         * @param integer $lastElementID Element identifier.
         * @return \CIBlockResult
         */
        protected function getElementsCursor($lastElementID = 0)
        {
        }
        /**
         * Returns all relevant information for the element in section context.
         *
         * @param Element $element Loaded from the database element information.
         *
         * @return array
         */
        protected function getSectionIndexEntries(\Bitrix\Iblock\PropertyIndex\Element $element)
        {
        }
        /**
         * Returns list of properties IDs marked as indexed to the section according their "TYPE".
         * - N - maps to Indexer::NUMERIC
         * - S - to Indexer::STRING
         * - F, E, G, L - to Indexer::DICTIONARY
         *
         * @param integer $propertyType Property classification for the index.
         *
         * @return integer[]
         */
        protected function getFilterProperty($propertyType)
        {
        }
        /**
         * Returns list of price IDs for storing in the index.
         *
         * @return integer[]
         */
        protected function getFilterPrices()
        {
        }
        /**
         * Returns storage type for the property.
         * - N - maps to Indexer::NUMERIC
         * - S - to Indexer::STRING
         * - F, E, G, L - to Indexer::DICTIONARY
         *
         * @param array[string]string $property Property description.
         *
         * @return integer
         */
        public static function getPropertyStorageType($property)
        {
        }
    }
    class QueryBuilder
    {
        /** @var \Bitrix\Iblock\PropertyIndex\Facet */
        protected $facet = null;
        /** @var \Bitrix\Iblock\PropertyIndex\Dictionary */
        protected $dictionary = null;
        /** @var \Bitrix\Iblock\PropertyIndex\Storage  */
        protected $storage = null;
        protected $sectionFilter = null;
        protected $priceFilter = null;
        protected $distinct = false;
        protected $options = array();
        /**
         * @param integer $iblockId Information block identifier.
         */
        public function __construct($iblockId)
        {
        }
        /**
         * Returns true if filter rewrite is possible.
         *
         * @return boolean
         */
        public function isValid()
        {
        }
        /**
         * Returns true if filter needs distinct sql clause.
         *
         * @return boolean
         */
        public function getDistinct()
        {
        }
        /**
         * Returns filter join with index tables.
         *
         * @param array &$filter Filter which may be rewritten.
         * @param array &$sqlSearch Additional result of rewrite.
         *
         * @return string
         */
        public function getFilterSql(&$filter, &$sqlSearch)
        {
        }
        /**
         * Goes through the $filter and creates unified conditions in $where array.
         *
         * @param array &$where Output result.
         * @param boolean &$hasAdditionalFilters Whenever has some filters left or not.
         * @param array &$toUnset Output $filter keys which may be excluded.
         * @param array &$filter Filter to go through.
         *
         * @return void
         */
        private function fillWhere(&$where, &$hasAdditionalFilters, &$toUnset, &$filter)
        {
        }
        /**
         * Returns array on integers representing values for sql query.
         *
         * @param mixed $value Value to be intvaled.
         * @param boolean $lookup Whenever to convert the value from string to dictionary or not.
         *
         * @return integer[]
         */
        protected function getInSql($value, $lookup)
        {
        }
        /**
         * Returns map of properties to their types.
         * Properties of iblock and its sku returned
         * which marked as for smart filter.
         *
         * @return integer[]
         */
        private function getFilterProperty()
        {
        }
    }
}
namespace Bitrix\Iblock {
    /**
     * @package    bitrix
     * @subpackage iblock
     */
    class Property extends \Bitrix\Iblock\EO_Property
    {
        /** @var Entity */
        protected $valueEntity;
        /**
         * Generates personal property entity
         *
         * @param ElementEntity $elementEntity
         *
         * @return Entity|null
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         */
        public function getValueEntity($elementEntity = null)
        {
        }
    }
    /**
     * @package    bitrix
     * @subpackage iblock
     */
    class Iblock extends \Bitrix\Iblock\EO_Iblock
    {
        public function getEntityDataClassName()
        {
        }
        /**
         * @return CommonElementTable|string
         */
        public function getEntityDataClass()
        {
        }
    }
}
namespace Bitrix\Iblock\Model {
    class Section
    {
        private static $entityInstance = array();
        public static final function compileEntityByIblock($iblockId)
        {
        }
    }
}
namespace Bitrix\Iblock {
    /**
     * Class PropertyEnumerationTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> PROPERTY_ID int mandatory
     * <li> VALUE string(255) mandatory
     * <li> DEF bool optional default 'N'
     * <li> SORT int optional default 500
     * <li> XML_ID string(200) mandatory
     * <li> TMP_ID string(40) optional
     * <li> PROPERTY reference to {@link \Bitrix\Iblock\PropertyTable}
     * </ul>
     *
     * @package Bitrix\Iblock
     **/
    class PropertyEnumerationTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for VALUE field.
         *
         * @return array
         */
        public static function validateValue()
        {
        }
        /**
         * Returns validators for XML_ID field.
         *
         * @return array
         */
        public static function validateXmlId()
        {
        }
        /**
         * Returns validators for TMP_ID field.
         *
         * @return array
         */
        public static function validateTmpId()
        {
        }
    }
    /**
     * Class IblockTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> TIMESTAMP_X datetime
     * <li> IBLOCK_TYPE_ID string(50) mandatory
     * <li> CODE string(50) optional
     * <li> NAME string(255) mandatory
     * <li> ACTIVE bool optional default 'Y'
     * <li> SORT int optional default 500
     * <li> LIST_PAGE_URL string(255) optional
     * <li> DETAIL_PAGE_URL string(255) optional
     * <li> SECTION_PAGE_URL string(255) optional
     * <li> CANONICAL_PAGE_URL string(255) optional
     * <li> PICTURE int optional
     * <li> DESCRIPTION text optional
     * <li> DESCRIPTION_TYPE enum ('text', 'html') optional default 'text'
     * <li> XML_ID string(255) optional
     * <li> TMP_ID string(40) optional <b>internal use only</b>
     * <li> INDEX_ELEMENT bool optional default 'Y'
     * <li> INDEX_SECTION bool optional default 'N'
     * <li> WORKFLOW bool optional default 'Y'
     * <li> BIZPROC bool optional default 'N'
     * <li> SECTION_CHOOSER enum ('L', 'D' or 'P') optional default 'L'
     * <li> LIST_MODE enum ('S' or 'C') optional default ''
     * <li> RIGHTS_MODE enum ('S' or 'E') optional default 'S'
     * <li> SECTION_PROPERTY bool optional default 'N'
     * <li> PROPERTY_INDEX enum ('N', 'Y', 'I') optional default 'N'
     * <li> VERSION enum (1 or 2) optional default 1
     * <li> LAST_CONV_ELEMENT int optional default 0 <b>internal use only</b>
     * <li> SOCNET_GROUP_ID int optional <b>internal use only</b>
     * <li> EDIT_FILE_BEFORE string(255) optional
     * <li> EDIT_FILE_AFTER string(255) optional
     * <li> TYPE reference to {@link \Bitrix\Iblock\TypeTable}
     * </ul>
     *
     * @package Bitrix\Iblock
     */
    class IblockTable extends \Bitrix\Main\ORM\Data\DataManager
    {
        const PROPERTY_STORAGE_COMMON = 1;
        const PROPERTY_STORAGE_SEPARATE = 2;
        const RIGHTS_SIMPLE = 'S';
        const RIGHTS_EXTENDED = 'E';
        const PROPERTY_INDEX_DISABLE = 'N';
        const PROPERTY_INDEX_ENABLE = 'Y';
        const PROPERTY_INDEX_INVALID = 'I';
        const LIST_MODE_SEPARATE = 'S';
        const LIST_MODE_COMBINED = 'C';
        const SECTION_CHOOSER_SELECT = 'L';
        const SECTION_CHOOSER_DROPDOWNS = 'D';
        const SECTION_CHOOSER_PATH = 'P';
        /* deprecated constants */
        const SELECT = self::SECTION_CHOOSER_SELECT;
        const DROPDOWNS = self::SECTION_CHOOSER_DROPDOWNS;
        const PATH = self::SECTION_CHOOSER_PATH;
        const SIMPLE = self::RIGHTS_SIMPLE;
        const EXTENDED = self::RIGHTS_EXTENDED;
        const SEPARATE = self::LIST_MODE_SEPARATE;
        const COMBINED = self::LIST_MODE_COMBINED;
        const INVALID = self::PROPERTY_INDEX_INVALID;
        const DATA_CLASS_NAMESPACE = 'Bitrix\\Iblock\\Elements';
        const DATA_CLASS_PREFIX = 'Element';
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        public static function getObjectClass()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         * @throws \Bitrix\Main\SystemException
         */
        public static function getMap()
        {
        }
        /**
         * @param int|Iblock $iblockApiCode
         *
         * @return ElementEntity|false
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function compileEntity($iblockApiCode)
        {
        }
        /**
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function compileAllEntities()
        {
        }
        /**
         * Returns validators for IBLOCK_TYPE_ID field.
         *
         * @return array
         */
        public static function validateIblockTypeId()
        {
        }
        /**
         * Returns validators for LID field.
         *
         * @return array
         */
        public static function validateLid()
        {
        }
        /**
         * Returns validators for CODE field.
         *
         * @return array
         */
        public static function validateCode()
        {
        }
        /**
         * Returns validators for NAME field.
         *
         * @return array
         */
        public static function validateName()
        {
        }
        /**
         * Returns validators for LIST_PAGE_URL field.
         *
         * @return array
         */
        public static function validateListPageUrl()
        {
        }
        /**
         * Returns validators for DETAIL_PAGE_URL field.
         *
         * @return array
         */
        public static function validateDetailPageUrl()
        {
        }
        /**
         * Returns validators for SECTION_PAGE_URL field.
         *
         * @return array
         */
        public static function validateSectionPageUrl()
        {
        }
        /**
         * Returns validators for CANONICAL_PAGE_URL field.
         *
         * @return array
         */
        public static function validateCanonicalPageUrl()
        {
        }
        /**
         * Returns validators for XML_ID field.
         *
         * @return array
         */
        public static function validateXmlId()
        {
        }
        /**
         * Returns validators for TMP_ID field.
         *
         * @return array
         */
        public static function validateTmpId()
        {
        }
        /**
         * Returns validators for EDIT_FILE_BEFORE field.
         *
         * @return array
         */
        public static function validateEditFileBefore()
        {
        }
        /**
         * Returns validators for EDIT_FILE_AFTER field.
         *
         * @return array
         */
        public static function validateEditFileAfter()
        {
        }
    }
    /**
     * Class TypeLanguageTable
     *
     * Fields:
     * <ul>
     * <li> IBLOCK_TYPE_ID string(50) mandatory
     * <li> LANGUAGE_ID char(2) mandatory
     * <li> NAME string(100) mandatory
     * <li> SECTIONS_NAME string(100) optional
     * <li> ELEMENTS_NAME string(100) optional
     * <li> LANGUAGE reference to {@link \Bitrix\Main\Localization\LanguageTable}
     * </ul>
     *
     * @package Bitrix\Iblock
     */
    class TypeLanguageTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for IBLOCK_TYPE_ID field.
         *
         * @return array
         */
        public static function validateIblockTypeId()
        {
        }
        /**
         * Returns validators for LANGUAGE_ID field.
         *
         * @return array
         */
        public static function validateLanguageId()
        {
        }
        /**
         * Returns validators for NAME field.
         *
         * @return array
         */
        public static function validateName()
        {
        }
        /**
         * Returns validators for SECTIONS_NAME field.
         *
         * @return array
         */
        public static function validateSectionsName()
        {
        }
        /**
         * Returns validators for ELEMENTS_NAME field.
         *
         * @return array
         */
        public static function validateElementsName()
        {
        }
        /**
         * Deletes information blocks type messages.
         * and language messages from TypeLanguageTable
         *
         * @param string $iblockTypeId Iblock type identifier.
         *
         * @return \Bitrix\Main\Entity\EventResult
         */
        public static function deleteByIblockTypeId($iblockTypeId)
        {
        }
    }
}
namespace Bitrix\Iblock\Copy\Stepper {
    abstract class Entity extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "iblock";
        protected function getContainerCollection($elementIds, array $sectionsRatio, array $enumRatio, $targetIblockId = 0)
        {
        }
        protected function getElementCopier()
        {
        }
        protected function onAfterCopy(array $queueOption)
        {
        }
        protected function getErrorOffset(\Bitrix\Main\Copy\EntityCopier $elementCopier) : int
        {
        }
        private function saveErrorOption(array $queueOption)
        {
        }
        protected function getQueue() : array
        {
        }
        protected function setQueue(array $queue) : void
        {
        }
        protected function getQueueOption()
        {
        }
        protected function saveQueueOption(array $data)
        {
        }
        protected function deleteQueueOption()
        {
        }
        protected function deleteCurrentQueue(array $queue) : void
        {
        }
        protected function isQueueEmpty()
        {
        }
        protected function getOptionData($optionName)
        {
        }
        protected function deleteOption($optionName)
        {
        }
    }
    class Section extends \Bitrix\Iblock\Copy\Stepper\Entity
    {
        protected $queueName = "SectionGroupQueue";
        protected $checkerName = "SectionGroupChecker_";
        protected $baseName = "SectionGroupStepper_";
        protected $errorName = "SectionGroupError_";
        /**
         * Executes some action, and if return value is false, agent will be deleted.
         * @param array $option Array with main data to show if it is necessary like {steps : 35, count : 7},
         * where steps is an amount of iterations, count - current position.
         * @return boolean
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         */
        public function execute(array &$option)
        {
        }
        private function getElementIds(int $sectionId, int $limit, int $offset) : array
        {
        }
        private function getOffset(int $copiedSectionId) : int
        {
        }
    }
    class Iblock extends \Bitrix\Iblock\Copy\Stepper\Entity
    {
        protected $queueName = "IblockGroupQueue";
        protected $checkerName = "IblockGroupChecker_";
        protected $baseName = "IblockGroupStepper_";
        protected $errorName = "IblockGroupError_";
        /**
         * Executes some action, and if return value is false, agent will be deleted.
         * @param array $option Array with main data to show if it is necessary like {steps : 35, count : 7},
         * where steps is an amount of iterations, count - current position.
         * @return boolean
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         */
        public function execute(array &$option)
        {
        }
        private function getElementIds(int $iblockId, int $limit, int $offset) : array
        {
        }
        private function getOffset(int $copiedIblockId) : int
        {
        }
    }
}
namespace Bitrix\Main\Copy {
    interface Copyable
    {
        /**
         * Copies entity.
         *
         * @param ContainerCollection $containerCollection
         * @return Result
         */
        public function copy(\Bitrix\Main\Copy\ContainerCollection $containerCollection);
    }
    class EntityCopier implements \Bitrix\Main\Copy\Copyable
    {
        protected $implementer;
        protected $implementerName;
        /**
         * @var Result
         */
        protected $result;
        /**
         * @var Copyable[]
         */
        private $entitiesToCopy = [];
        public function __construct(\Bitrix\Main\Copy\CopyImplementer $implementer)
        {
        }
        /**
         * Adding entities to be copied later by the parent.
         *
         * @param Copyable $entity
         */
        public function addEntityToCopy(\Bitrix\Main\Copy\Copyable $entity)
        {
        }
        /**
         * Starts copying added entities.
         *
         * @param ContainerCollection $containerManager
         */
        protected function startCopyEntities(\Bitrix\Main\Copy\ContainerCollection $containerManager)
        {
        }
        /**
         * Copies entity.
         *
         * @param ContainerCollection $containerCollection
         * @return Result
         */
        public function copy(\Bitrix\Main\Copy\ContainerCollection $containerCollection)
        {
        }
        /**
         * Returns the ids map of the parent copied entity.
         *
         * @return array
         */
        public function getMapIdsCopiedEntity() : array
        {
        }
        /**
         * Returns the ids map of result by name implementer.
         *
         * @param string $implementerName Implementer name.
         * @param array $data Result list.
         * @return array
         */
        public function getMapIdsByImplementer(string $implementerName, array $data) : array
        {
        }
        protected function getEntityIdToCopy(\Bitrix\Main\Copy\Container $container)
        {
        }
        protected function getFields(\Bitrix\Main\Copy\Container $container, $entityId)
        {
        }
        protected function getDictionary(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        protected function prepareFieldsToCopy(\Bitrix\Main\Copy\Container $container, $fields)
        {
        }
        protected function addEntity(\Bitrix\Main\Copy\Container $container, $fields)
        {
        }
        protected function copyChildren(\Bitrix\Main\Copy\Container $container, $entityIdToCopy, $copiedEntityId)
        {
        }
        protected function setCopiedEntityId(\Bitrix\Main\Copy\Container $container, $copiedEntityId)
        {
        }
        protected function setDictionary(\Bitrix\Main\Copy\Container $container, \Bitrix\Main\Type\Dictionary $dictionary)
        {
        }
        private function addToResultByName(array $result, array $mapIds, string $implementerName) : array
        {
        }
        private function addToResult(array $result, array $mapIds) : array
        {
        }
    }
}
namespace Bitrix\Iblock\Copy {
    class Section extends \Bitrix\Main\Copy\EntityCopier
    {
        public function __construct(\Bitrix\Iblock\Copy\Implement\Section $implementer)
        {
        }
    }
    class Manager
    {
        protected $iblockTypeId;
        protected $iblockIdsToCopy;
        protected $socnetGroupId;
        protected $targetIblockTypeId = "";
        protected $targetSocnetGroupId = 0;
        private $iblockImplementer;
        private $fieldImplementer;
        private $workflowImplementer;
        protected $features = ["field", "section", "element", "workflow"];
        private $mapIdsCopiedIblock = [];
        /**
         * @var Dictionary
         */
        private $dictionary;
        public function __construct($iblockTypeId, array $iblockIdsToCopy, $socnetGroupId = 0)
        {
        }
        /**
         * Writes the entities id of the target place.
         * This is necessary if you want to copy the lists to another type of information block or another group.
         *
         * @param string $targetIblockTypeId Id type of information block.
         * @param int $targetSocnetGroupId Group id.
         */
        public function setTargetLocation($targetIblockTypeId, $targetSocnetGroupId = 0)
        {
        }
        /**
         * Removes feature from the copy queue.
         *
         * @param string $feature Feature name.
         */
        public function removeFeature($feature)
        {
        }
        /**
         * @param Dictionary $dictionary
         */
        public function setDictionary(\Bitrix\Main\Type\Dictionary $dictionary) : void
        {
        }
        public function setIblockImplementer(\Bitrix\Iblock\Copy\Implement\Iblock $implementer)
        {
        }
        public function setFieldImplementer(\Bitrix\Iblock\Copy\Implement\Children\Child $implementer)
        {
        }
        public function setWorkflowImplementer(\Bitrix\Iblock\Copy\Implement\Children\Child $implementer)
        {
        }
        public function startCopy()
        {
        }
        /**
         * Returns the identifier map of the parent copied entity.
         *
         * @return array
         */
        public function getMapIdsCopiedEntity()
        {
        }
        private function getContainerCollection()
        {
        }
        private function getIblockCopier()
        {
        }
    }
}
namespace Bitrix\Iblock\Copy\Implement {
    class Element extends \Bitrix\Main\Copy\CopyImplementer
    {
        const ELEMENT_COPY_ERROR = "ELEMENT_COPY_ERROR";
        /**
         * Adds entity.
         *
         * @param Container $container
         * @param array $fields
         * @return int|bool return entity id or false.
         */
        public function add(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Returns element fields.
         *
         * @param Container $container
         * @param int $entityId
         * @return array $fields
         */
        public function getFields(\Bitrix\Main\Copy\Container $container, $entityId)
        {
        }
        /**
         * Preparing data before creating a new entity.
         *
         * @param Container $container
         * @param array $inputFields List element fields.
         * @return array $fields
         */
        public function prepareFieldsToCopy(\Bitrix\Main\Copy\Container $container, array $inputFields)
        {
        }
        /**
         * Starts copying children entities.
         *
         * @param Container $container
         * @param int $elementId Entity id.
         * @param int $copiedElementId Copied entity id.
         * @return Result
         */
        public function copyChildren(\Bitrix\Main\Copy\Container $container, $elementId, $copiedElementId)
        {
        }
        private function getFieldValue($fieldId, $fieldValue)
        {
        }
        private function getPropertyFieldValue(\Bitrix\Main\Copy\Container $container, $fieldId, $fieldValue)
        {
        }
        private function getPictureValue($fieldValue)
        {
        }
        private function getBaseValue($fieldValue)
        {
        }
        private function getFileValue(array $fieldValue)
        {
        }
        private function getListValue(\Bitrix\Main\Copy\Container $container, array $inputValue)
        {
        }
        private function getPropertyValue(array $inputValue)
        {
        }
        private function getIntegerValue(array $fieldValue)
        {
        }
        private function convertPropertyId(array $fields, $targetIblockId)
        {
        }
        private function getValueFromPropertyClass(array $fieldValue, $callback)
        {
        }
        private function getRights(int $iblockId, int $elementId)
        {
        }
        private function getGroupCodeIgnoreList(int $iblockId) : array
        {
        }
    }
    class Section extends \Bitrix\Main\Copy\CopyImplementer
    {
        const SECTION_COPY_ERROR = "SECTION_COPY_ERROR";
        /**
         * @var Child[]
         */
        private $child;
        private $changedFields = [];
        private $changedFieldsForChildSections = [];
        /**
         * @var SectionCopier|null
         */
        private $sectionCopier = null;
        /**
         * Writes child implementer to the copy queue.
         *
         * @param Child $child Child implementer.
         */
        public function setChild(\Bitrix\Iblock\Copy\Implement\Children\Child $child)
        {
        }
        /**
         * To copy child sections needs section copier.
         *
         * @param SectionCopier $sectionCopier Section copier.
         */
        public function setSectionCopier(\Bitrix\Iblock\Copy\Section $sectionCopier) : void
        {
        }
        public function setChangedFields($changedFields)
        {
        }
        public function setChangedFieldsForChildSections($changedFieldsForChildSections)
        {
        }
        /**
         * Adds entity.
         *
         * @param Container $container
         * @param array $fields
         * @return int|bool return entity id or false.
         */
        public function add(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Returns section fields.
         *
         * @param Container $container
         * @param int $entityId
         * @return array $fields
         */
        public function getFields(\Bitrix\Main\Copy\Container $container, $entityId)
        {
        }
        /**
         * Preparing data before creating a new entity.
         *
         * @param Container $container
         * @param array $fields List entity fields.
         * @return array $fields
         */
        public function prepareFieldsToCopy(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Starts copying children entities.
         *
         * @param Container $container
         * @param int $sectionId Section id.
         * @param int $copiedSectionId Copied section id.
         * @return Result
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function copyChildren(\Bitrix\Main\Copy\Container $container, $sectionId, $copiedSectionId)
        {
        }
        private function copyChildSections(int $sectionId, int $copiedSectionId)
        {
        }
        private function getSectionsMapIds(array $data) : array
        {
        }
        private function changeFields(array $fields)
        {
        }
        private function cleanChangedFields()
        {
        }
        private function getRights(int $iblockId, int $elementId)
        {
        }
        private function getGroupCodeIgnoreList(int $iblockId) : array
        {
        }
    }
}
namespace Bitrix\Iblock\Copy\Implement\Children {
    class Section implements \Bitrix\Iblock\Copy\Implement\Children\Child
    {
        /**
         * @var Result
         */
        private $result;
        private $sectionsRatio = [];
        public function __construct()
        {
        }
        /**
         * In order for the elements to be copied to the desired sections will return
         * the identifier ratio of the copied partitions.
         * @param int $iblockId Iblock id.
         * @return array
         */
        public function getSectionsRatio($iblockId = 0) : array
        {
        }
        public function copy($iblockId, $copiedIblockId) : \Bitrix\Main\Result
        {
        }
        private function getSections($iblockId, $copiedIblockId)
        {
        }
        private function getParentRatioIds(array $sections) : array
        {
        }
        private function addSections(\CIBlockSection $sectionObject, array $sections) : array
        {
        }
        private function updateSections(\CIBlockSection $sectionObject, array $parentRatioIds, array $ratioIds)
        {
        }
        private function addSection(\CIBlockSection $sectionObject, $section)
        {
        }
        private function setRatios($iblockId, array $ratioIds)
        {
        }
    }
}
namespace Bitrix\Iblock\ORM {
    /**
     * @package    bitrix
     * @subpackage iblock
     */
    class Loader
    {
        public static function autoLoad($class)
        {
        }
    }
    /**
     * @package    bitrix
     * @subpackage iblock
     */
    abstract class ElementEntity extends \Bitrix\Main\ORM\Entity
    {
        /** @var Iblock */
        protected $iblock;
        /**
         * @param EO_Iblock $iblock
         *
         * @throws \Bitrix\Main\ArgumentException
         */
        public function setIblock($iblock)
        {
        }
        /**
         * @return EO_Iblock
         */
        public function getIblock()
        {
        }
        public abstract function getSingleValueTableName();
        public abstract function getMultiValueTableName();
    }
    /**
     * @package    bitrix
     * @subpackage iblock
     */
    class ElementV2Entity extends \Bitrix\Iblock\ORM\ElementEntity
    {
        public function getSingleValueTableName()
        {
        }
        public function getMultiValueTableName()
        {
        }
    }
    /**
     * Generates entity fields for base types
     *
     * @package    bitrix
     * @subpackage iblock
     */
    class PropertyToField
    {
        /**
         * @param Property $property
         * @param Entity $propertyValueEntity
         *
         * @throws \Bitrix\Main\SystemException
         */
        public static function attachField($property, $propertyValueEntity)
        {
        }
    }
    /**
     * @package    bitrix
     * @subpackage iblock
     *
     * @method static ElementEntity getEntity()
     */
    abstract class CommonElementTable extends \Bitrix\Main\ORM\Data\DataManager
    {
        public static function getEntityClass()
        {
        }
        public static function getQueryClass()
        {
        }
        public static function setDefaultScope($query)
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function onAfterDelete(\Bitrix\Main\ORM\Event $event)
        {
        }
    }
    /**
     * @package    bitrix
     * @subpackage iblock
     *
     * @method static ElementV2Entity getEntity()
     */
    class ElementV2Table extends \Bitrix\Iblock\ORM\CommonElementTable
    {
        public static function getEntityClass()
        {
        }
        public static function getObjectParentClass()
        {
        }
        /**
         * Protection from ElementTable classes
         * @return EntityObject|string
         */
        public static function getObjectClass()
        {
        }
        /**
         * Protection from ElementTable classes
         * @return Collection|string
         */
        public static function getCollectionClass()
        {
        }
    }
    /**
     * @package    bitrix
     * @subpackage iblock
     */
    abstract class ValueStorageTable extends \Bitrix\Main\ORM\Data\DataManager
    {
        const GENERIC_VALUE_FIELD_NAME = 'IBLOCK_GENERIC_VALUE';
        public static function getObjectParentClass()
        {
        }
    }
    /**
     * @package    bitrix
     * @subpackage iblock
     */
    abstract class CommonElement extends \Bitrix\Iblock\ORM\EO_CommonElement
    {
        /**
         * Handles relation with general section
         *
         * @param $iblockSectionId
         *
         * @return CommonElement
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public function setIblockSectionId($iblockSectionId)
        {
        }
        /**
         * Accepts PropertyValue and scalar, converts it to property reference
         *
         * @param $fieldName
         * @param $value
         *
         * @return EntityObject
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public function sysSetValue($fieldName, $value)
        {
        }
        /**
         * Accepts PropertyValue and scalar, converts it to property reference
         *
         * @param $fieldName
         * @param $remoteObject
         *
         * @return bool|void
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public function sysAddToCollection($fieldName, $remoteObject)
        {
        }
        /**
         * Accepts PropertyValue and scalar, converts it to property reference
         *
         * @param $fieldName
         * @param $remoteObject
         *
         * @return bool|void
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public function sysRemoveFromCollection($fieldName, $remoteObject)
        {
        }
        /**
         * @param mixed               $value
         * @param PropertyReference|PropertyOneToMany $field
         *
         * @return mixed|EntityObject
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        protected function sysConvertPropertyValue($value, $field)
        {
        }
    }
    /**
     * @package    bitrix
     * @subpackage iblock
     */
    class PropertyValue
    {
        protected $value;
        protected $description;
        public function __construct($value, $description = null)
        {
        }
        /**
         * @return mixed
         */
        public function getValue()
        {
        }
        /**
         * @return null
         */
        public function getDescription()
        {
        }
        /**
         * @return bool
         */
        public function hasDescription()
        {
        }
    }
}
namespace Bitrix\Main\ORM\Fields\Relations {
    /**
     * Performs relation mapping: back-reference and many-to-many relations.
     *
     * @package    bitrix
     * @subpackage main
     */
    abstract class Relation extends \Bitrix\Main\ORM\Fields\Field implements \Bitrix\Main\ORM\Fields\ITypeHintable
    {
        /** @var string Name of target entity */
        protected $refEntityName;
        /** @var Entity Target entity */
        protected $refEntity;
        /** @var string */
        protected $joinType = null;
        /** @var int */
        protected $cascadeSavePolicy;
        /** @var int */
        protected $cascadeDeletePolicy;
        /**
         * @param int $cascadeSavePolicy
         *
         * @return Relation
         */
        public function configureCascadeSavePolicy($cascadeSavePolicy)
        {
        }
        /**
         * @param int $cascadeDeletePolicy
         *
         * @return Relation
         */
        public function configureCascadeDeletePolicy($cascadeDeletePolicy)
        {
        }
        /**
         * @return Entity
         * @throws \Bitrix\Main\ArgumentException
         * @throws SystemException
         */
        public function getRefEntity()
        {
        }
        /**
         * @return string
         */
        public function getRefEntityName()
        {
        }
        /**
         * @param $type
         *
         * @return $this
         * @throws ArgumentException
         */
        public function configureJoinType($type)
        {
        }
        /**
         * @return string
         */
        public function getJoinType()
        {
        }
        /**
         * @return int
         */
        public function getCascadeSavePolicy()
        {
        }
        /**
         * @return int
         */
        public function getCascadeDeletePolicy()
        {
        }
        /**
         * @return EntityObject|string
         * @throws ArgumentException
         * @throws SystemException
         */
        public function getGetterTypeHint()
        {
        }
        /**
         * @return EntityObject|string
         * @throws ArgumentException
         * @throws SystemException
         */
        public function getSetterTypeHint()
        {
        }
    }
    /**
     * Reference field describes relation 1-to-1 or 1-to-many between two entities
     * @package bitrix
     * @subpackage main
     */
    class Reference extends \Bitrix\Main\ORM\Fields\Relations\Relation
    {
        /** @var array|Filter */
        protected $reference;
        protected $joinType = \Bitrix\Main\ORM\Query\Join::TYPE_LEFT;
        protected $cascadeSavePolicy = \Bitrix\Main\ORM\Fields\Relations\CascadePolicy::NO_ACTION;
        protected $cascadeDeletePolicy = \Bitrix\Main\ORM\Fields\Relations\CascadePolicy::NO_ACTION;
        // follow | no_action
        const ELEMENTAL_THIS = 1;
        const ELEMENTAL_REF = 2;
        const ELEMENTAL_BOTH = 3;
        /**
         * @param string        $name
         * @param string|Entity $referenceEntity
         * @param array|Filter  $referenceFilter
         * @param array         $parameters deprecated, use configure* and add* methods instead
         *
         * @throws ArgumentException
         * @throws SystemException
         */
        public function __construct($name, $referenceEntity, $referenceFilter, $parameters = array())
        {
        }
        public function getTypeMask()
        {
        }
        /**
         * @param        $value
         * @param        $primary
         * @param        $row
         * @param Result $result
         *
         * @return Result
         * @throws ArgumentException
         * @throws SystemException
         */
        public function validateValue($value, $primary, $row, \Bitrix\Main\ORM\Data\Result $result)
        {
        }
        public function getDataType()
        {
        }
        public function getReference()
        {
        }
        /**
         * Returns set of strictly linked fields of this and ref entities [localFieldName => remoteFieldName]
         *
         * @return array|bool
         */
        public function getElementals()
        {
        }
        protected static function getElementalFlag($definition)
        {
        }
    }
}
namespace Bitrix\Iblock\ORM\Fields {
    trait PropertyRelation
    {
        /** @var Property */
        protected $iblockElementProperty;
        /**
         * @return Property
         */
        public function getIblockElementProperty()
        {
        }
        /**
         * @param $property
         *
         * @return $this
         */
        public function configureIblockElementProperty($property)
        {
        }
        public function getSetterTypeHint()
        {
        }
    }
    /**
     * @package    bitrix
     * @subpackage iblock
     */
    class PropertyReference extends \Bitrix\Main\ORM\Fields\Relations\Reference
    {
        use \Bitrix\Iblock\ORM\Fields\PropertyRelation;
    }
}
namespace Bitrix\Main\ORM\Fields\Relations {
    /**
     * Performs back-reference relation
     *
     * @package    bitrix
     * @subpackage main
     */
    class OneToMany extends \Bitrix\Main\ORM\Fields\Relations\Relation
    {
        /** @var string */
        protected $referenceName;
        /** @var int */
        protected $cascadeSavePolicy = \Bitrix\Main\ORM\Fields\Relations\CascadePolicy::FOLLOW;
        protected $cascadeDeletePolicy = \Bitrix\Main\ORM\Fields\Relations\CascadePolicy::SET_NULL;
        // follow | no_action | set_null
        public function __construct($name, $referenceEntity, $referenceName)
        {
        }
        public function getTypeMask()
        {
        }
        public function getRefField()
        {
        }
        /**
         * @return string
         */
        public function getReferenceName()
        {
        }
    }
}
namespace Bitrix\Iblock\ORM\Fields {
    /**
     * @package    bitrix
     * @subpackage iblock
     */
    class PropertyOneToMany extends \Bitrix\Main\ORM\Fields\Relations\OneToMany
    {
        use \Bitrix\Iblock\ORM\Fields\PropertyRelation;
    }
}
namespace Bitrix\Iblock\ORM {
    /**
     * @package    bitrix
     * @subpackage iblock
     */
    abstract class ElementV1 extends \Bitrix\Iblock\ORM\CommonElement
    {
        /**
         * Accepts PropertyValue and scalar, converts it to property reference
         *
         * @param $fieldName
         * @param $value
         *
         * @return EntityObject
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public function sysSetValue($fieldName, $value)
        {
        }
        public function sysSaveRelations(\Bitrix\Main\ORM\Data\Result $result)
        {
        }
    }
    /**
     * Separate query to fix PropertyValue emulation in 2.0
     * Collapses similar joins to b_iblock_element_prop_sX table into one join
     *
     * @package    bitrix
     * @subpackage iblock
     */
    class Query extends \Bitrix\Main\ORM\Query\Query
    {
        protected function buildJoin()
        {
        }
    }
    /**
     * @property-read ElementV2Entity $entity
     *
     * @package    bitrix
     * @subpackage iblock
     */
    abstract class ElementV2 extends \Bitrix\Iblock\ORM\CommonElement
    {
        public function sysSaveRelations(\Bitrix\Main\ORM\Data\Result $result)
        {
        }
    }
    /**
     * @package    bitrix
     * @subpackage iblock
     */
    class ElementV1Entity extends \Bitrix\Iblock\ORM\ElementEntity
    {
        public function getSingleValueTableName()
        {
        }
        public function getMultiValueTableName()
        {
        }
    }
}
namespace Bitrix\Main\ORM\Objectify {
    /**
     * Entity object
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see State
     * @property-read Dictionary $customData
     * @property Context $authContext For UF values validation
     *
     * @package    bitrix
     * @subpackage main
     */
    abstract class EntityObject implements \ArrayAccess
    {
        /**
         * Entity Table class. Read-only property.
         * @var DataManager
         */
        public static $dataClass;
        /** @var Entity */
        protected $_entity;
        /**
         * @var int
         * @see State
         */
        protected $_state = \Bitrix\Main\ORM\Objectify\State::RAW;
        /**
         * Actual values fetched from DB and collections of relations
         * @var mixed[]|static[]|Collection[]
         */
        protected $_actualValues = [];
        /**
         * Current values - new or rewritten by setter (except changed collections - they are still in actual values)
         * @var mixed[]|static[]
         */
        protected $_currentValues = [];
        /**
         * Container for non-entity data
         * @var mixed[]
         */
        protected $_runtimeValues = [];
        /**
         * @var Dictionary
         */
        protected $_customData = null;
        /** @var callable[] */
        protected $_onPrimarySetListeners = [];
        /** @var Context */
        protected $_authContext;
        /**
         * Cache for lastName => LAST_NAME transforming
         * @var string[]
         */
        protected static $_camelToSnakeCache = [];
        /**
         * Cache for LAST_NAME => lastName transforming
         * @var string[]
         */
        protected static $_snakeToCamelCache = [];
        /**
         * EntityObject constructor
         *
         * @param bool|array $setDefaultValues
         *
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function __construct($setDefaultValues = true)
        {
        }
        /**
         * Returns all objects values as an array
         *
         * @param int  $valuesType
         * @param int  $fieldsMask
         * @param bool $recursive
         *
         * @return array
         * @throws ArgumentException
         */
        public final function collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL, $recursive = false)
        {
        }
        /**
         * ActiveRecord save.
         *
         * @return Result
         * @throws ArgumentException
         * @throws SystemException
         * @throws \Exception
         */
        public final function save()
        {
        }
        /**
         * ActiveRecord delete.
         *
         * @return Result
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function delete()
        {
        }
        /**
         * Constructs existing object from pre-selected data, including references and relations.
         *
         * @param mixed $row Array of [field => value] or single scalar primary value.
         *
         * @return static
         * @throws ArgumentException
         * @throws SystemException
         */
        public static final function wakeUp($row)
        {
        }
        /**
         * Fills all the values and relations of object
         *
         * @param int|string[] $fields Names of fields to fill
         *
         * @return mixed
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
        {
        }
        /**
         * Fast popular alternative to __call().
         *
         * @return Collection|EntityObject|mixed
         * @throws SystemException
         */
        public function getId()
        {
        }
        /**
         * @param $fieldName
         *
         * @return mixed
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function get($fieldName)
        {
        }
        /**
         * @param $fieldName
         *
         * @return mixed
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function remindActual($fieldName)
        {
        }
        /**
         * @param $fieldName
         *
         * @return mixed
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function require($fieldName)
        {
        }
        /**
         * @param $fieldName
         * @param $value
         *
         * @return mixed
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function set($fieldName, $value)
        {
        }
        /**
         * @param $fieldName
         *
         * @return mixed
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function reset($fieldName)
        {
        }
        /**
         * @param $fieldName
         *
         * @return mixed
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function unset($fieldName)
        {
        }
        /**
         * @param $fieldName
         *
         * @return mixed
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function has($fieldName)
        {
        }
        /**
         * @param $fieldName
         *
         * @return mixed
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function isFilled($fieldName)
        {
        }
        /**
         * @param $fieldName
         *
         * @return mixed
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function isChanged($fieldName)
        {
        }
        /**
         * @param $fieldName
         * @param $value
         *
         * @return mixed
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function addTo($fieldName, $value)
        {
        }
        /**
         * @param $fieldName
         * @param $value
         *
         * @return mixed
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function removeFrom($fieldName, $value)
        {
        }
        /**
         * @param $fieldName
         *
         * @return mixed
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function removeAll($fieldName)
        {
        }
        public final function defineAuthContext(\Bitrix\Main\Authentication\Context $authContext)
        {
        }
        /**
         * Magic read-only properties
         *
         * @param $name
         *
         * @return mixed
         * @throws ArgumentException
         * @throws SystemException
         */
        public function __get($name)
        {
        }
        /**
         * Magic read-only properties
         *
         * @param $name
         * @param $value
         *
         * @throws SystemException
         */
        public function __set($name, $value)
        {
        }
        /**
         * Magic to handle getters, setters etc.
         *
         * @param $name
         * @param $arguments
         *
         * @return mixed
         * @throws ArgumentException
         * @throws SystemException
         */
        public function __call($name, $arguments)
        {
        }
        /**
         * @return Entity
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public function sysGetEntity()
        {
        }
        /**
         * Returns [primary => value] array.
         *
         * @return array
         * @throws ArgumentException
         * @throws SystemException
         */
        public function sysGetPrimary()
        {
        }
        /**
         * Query Runtime Field values or just any runtime value getter
         * @internal For internal system usage only.
         *
         * @param $name
         *
         * @return mixed
         */
        public function sysGetRuntime($name)
        {
        }
        /**
         * Any runtime value setter
         * @internal For internal system usage only.
         *
         * @param $name
         * @param $value
         *
         * @return $this
         */
        public function sysSetRuntime($name, $value)
        {
        }
        /**
         * Sets actual value.
         * @internal For internal system usage only.
         *
         * @param $fieldName
         * @param $value
         */
        public function sysSetActual($fieldName, $value)
        {
        }
        /**
         * Changes state.
         * @see State
         * @internal For internal system usage only.
         *
         * @param $state
         */
        public function sysChangeState($state)
        {
        }
        /**
         * Returns current state.
         * @see State
         * @internal For internal system usage only.
         *
         * @return int
         */
        public function sysGetState()
        {
        }
        /**
         * Regular getter, called by __call.
         * @internal For internal system usage only.
         *
         * @param string $fieldName
         * @param bool $require Throws an exception in the absence of value
         *
         * @return mixed
         * @throws SystemException
         */
        public function sysGetValue($fieldName, $require = false)
        {
        }
        /**
         * Regular setter, called by __call. Doesn't validate values.
         * @internal For internal system usage only.
         *
         * @param $fieldName
         * @param $value
         *
         * @return $this
         * @throws ArgumentException
         * @throws SystemException
         */
        public function sysSetValue($fieldName, $value)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param $fieldName
         *
         * @return bool
         */
        public function sysHasValue($fieldName)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param $fieldName
         *
         * @return bool
         */
        public function sysIsFilled($fieldName)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param $fieldName
         *
         * @return bool
         */
        public function sysIsChanged($fieldName)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @return bool
         */
        public function sysHasPrimary()
        {
        }
        /**
         * @internal For internal system usage only.
         */
        public function sysOnPrimarySet()
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param callable $callback
         */
        public function sysAddOnPrimarySetListener($callback)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param $fieldName
         *
         * @return $this
         */
        public function sysUnset($fieldName)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param $fieldName
         *
         * @return $this
         */
        public function sysReset($fieldName)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param $fieldName
         *
         * @return $this
         */
        public function sysResetRelation($fieldName)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @return array
         * @throws ArgumentException
         * @throws SystemException
         */
        public function sysRequirePrimary()
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * Returns non-filled field names according to array of $fields
         *
         * @param array $fields
         *
         * @return array
         */
        public function sysGetIdleFields($fields = [])
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * Returns non-filled field names according to $mask
         *
         * @param int $mask
         *
         * @return array
         */
        public function sysGetIdleFieldsByMask($mask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param Result $result
         *
         * @throws ArgumentException
         * @throws SystemException
         */
        public function sysSaveRelations(\Bitrix\Main\ORM\Data\Result $result)
        {
        }
        public function sysPostSave()
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param $fieldName
         * @param $remoteObject
         *
         * @throws ArgumentException
         * @throws SystemException
         */
        public function sysAddToCollection($fieldName, $remoteObject)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param $fieldName
         * @param $remoteObject
         *
         * @throws ArgumentException
         * @throws SystemException
         */
        public function sysRemoveFromCollection($fieldName, $remoteObject)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param $fieldName
         *
         * @throws ArgumentException
         * @throws SystemException
         */
        public function sysRemoveAllFromCollection($fieldName)
        {
        }
        /**
         * @param OneToMany|ManyToMany|string $field
         *
         * @return Collection
         * @throws ArgumentException
         * @throws SystemException
         */
        public function sysFillRelationCollection($field)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param $methodName
         *
         * @return string
         */
        public static function sysMethodToFieldCase($methodName)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param $fieldName
         *
         * @return string
         */
        public static function sysFieldToMethodCase($fieldName)
        {
        }
        /**
         * ArrayAccess interface implementation.
         *
         * @param mixed $offset
         *
         * @return bool
         * @throws ArgumentException
         * @throws SystemException
         */
        public function offsetExists($offset)
        {
        }
        /**
         * ArrayAccess interface implementation.
         *
         * @param mixed $offset
         *
         * @return mixed|null
         * @throws ArgumentException
         * @throws SystemException
         */
        public function offsetGet($offset)
        {
        }
        /**
         * ArrayAccess interface implementation.
         *
         * @param mixed $offset
         * @param mixed $value
         *
         * @throws ArgumentException
         * @throws SystemException
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * ArrayAccess interface implementation.
         *
         * @param mixed $offset
         */
        public function offsetUnset($offset)
        {
        }
    }
}
namespace Bitrix\Iblock\ORM {
    /**
     * @package    bitrix
     * @subpackage main
     */
    class ValueStorage extends \Bitrix\Main\ORM\Objectify\EntityObject
    {
        public function setValue($value)
        {
        }
    }
    /**
     * @package    bitrix
     * @subpackage iblock
     *
     * @method static ElementV1Entity getEntity()
     */
    class ElementV1Table extends \Bitrix\Iblock\ORM\CommonElementTable
    {
        public static function getEntityClass()
        {
        }
        public static function getObjectParentClass()
        {
        }
        /**
         * Protection from ElementTable classes
         * @return EntityObject|string
         */
        public static function getObjectClass()
        {
        }
        /**
         * Protection from ElementTable classes
         * @return Collection|string
         */
        public static function getCollectionClass()
        {
        }
    }
}
namespace Bitrix\Iblock {
    /**
     * Class IblockRssTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> IBLOCK_ID int mandatory
     * <li> NODE string(50) mandatory
     * <li> NODE_VALUE string(250) optional
     * <li> IBLOCK reference to {@link \Bitrix\Iblock\IblockTable}
     * </ul>
     *
     * @package Bitrix\Iblock
     **/
    class IblockRssTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for NODE field.
         *
         * @return array
         */
        public static function validateNode()
        {
        }
        /**
         * Returns validators for NODE_VALUE field.
         *
         * @return array
         */
        public static function validateNodeValue()
        {
        }
    }
    /**
     * Class PropertyFeatureTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> PROPERTY_ID int mandatory
     * <li> MODULE_ID string(50) mandatory
     * <li> FEATURE_ID string(100) mandatory
     * <li> IS_ENABLED bool optional default 'N'
     * <li> PROPERTY reference to {@link \Bitrix\Iblock\PropertyTable}
     * </ul>
     *
     * @package Bitrix\Iblock
     **/
    class PropertyFeatureTable extends \Bitrix\Main\ORM\Data\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for MODULE_ID field.
         *
         * @return array
         */
        public static function validateModuleId()
        {
        }
        /**
         * Returns validators for FEATURE_ID field.
         *
         * @return array
         */
        public static function validateFeatureId()
        {
        }
        /**
         * Delete all features for property.
         *
         * @param int $property		Property Id.
         * @return void
         */
        public static function deleteByProperty($property)
        {
        }
    }
}
namespace Bitrix\Iblock\LandingSource {
    class DataLoader extends \Bitrix\Landing\Source\DataLoader
    {
        protected $catalogIncluded = null;
        protected $saleIncluded = null;
        protected $iblockId = 0;
        /** @var null|array Catalog description */
        protected $catalog = null;
        protected $productFields = null;
        protected $priceTypes = null;
        /**
         * @return void
         */
        public function __construct()
        {
        }
        /**
         * @return array
         */
        public function getElementListData()
        {
        }
        /**
         * @param string|int $element
         * @return array
         */
        public function getElementData($element)
        {
        }
        /**
         * @return array
         */
        private static function getInternalSettings()
        {
        }
        /**
         * @return array
         */
        protected function getPreparedSelectFields()
        {
        }
        /**
         * Returns element order.
         *
         * @return array
         */
        protected function getOrder()
        {
        }
        /**
         * Returns max element count for showing.
         *
         * @return int
         */
        protected function getLimit()
        {
        }
        /**
         * @return void
         */
        protected function initIblock()
        {
        }
        /**
         * @return array
         */
        protected function getIblockElementListFilter()
        {
        }
        /**
         * @param array $filter
         * @return array
         */
        protected function compileIblockElementListFilter(array $filter)
        {
        }
        /**
         * @param array $settings
         * @param array $select
         * @return void
         */
        private function prepareSelectFields(array &$settings, array $select)
        {
        }
        /**
         * @param array $settings
         * @param array $order
         * @return void
         */
        private static function prepareOrder(array &$settings, array $order)
        {
        }
        /**
         * @return array
         */
        protected function getProductFields()
        {
        }
        private function getFilterFieldsDescription()
        {
        }
        private static function getFilterPropertiesDescription(array $filter)
        {
        }
        private function getFilterProductPropertiesDescription()
        {
        }
        private function getFilterOfferPropertiesDescription()
        {
        }
        /**
         * @param array $settings
         * @return array
         */
        private function getElementsInternal(array $settings)
        {
        }
        /**
         * @param array $property
         * @return mixed|null
         */
        private static function getPropertyValue(array $property)
        {
        }
        private static function loadProduct(array &$result, array $fields)
        {
        }
        private function loadPrices(array &$result)
        {
        }
        private function fillElementSeo(array &$row)
        {
        }
        /**
         * @param int $iblockId
         * @param array $propertyIds
         * @param string $mode
         * @return array
         */
        private function getAllowedPropertyId($iblockId, array $propertyIds, $mode)
        {
        }
        /**
         * Return user groups. Now worked only with current user.
         *
         * @return array
         */
        protected function getUserGroups()
        {
        }
        /**
         * @return array
         */
        protected function getPriceTypes()
        {
        }
    }
    class Element
    {
        const SELECTOR_ENTITY = 'element';
        const FIELD_ALLOWED_SELECT = 0x1;
        const FIELD_ALLOWED_ORDER = 0x2;
        const FIELD_ALLOWED_ALL = self::FIELD_ALLOWED_SELECT | self::FIELD_ALLOWED_ORDER;
        protected static $catalogIncluded = null;
        /**
         * @param Main\Event $event
         * @return Main\EventResult
         */
        public static function onBuildSourceListHandler(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param array $iblocks
         * @return array
         */
        protected static function getCatalogs(array $iblocks = [])
        {
        }
        /**
         * @return array
         */
        protected static function getElementFields()
        {
        }
        /**
         * @return array
         */
        protected static function getProductFields()
        {
        }
        /**
         * @param int $iblockId
         * @return array
         */
        protected static function getIblockProperties($iblockId)
        {
        }
        /**
         * @return array
         */
        protected static function getProductActionList()
        {
        }
        /**
         * @param array $actions
         * @return array
         */
        protected static function getLinkDefinition(array $actions)
        {
        }
        /**
         * @param array $fields
         * @return array
         */
        protected static function getOrderFields(array $fields)
        {
        }
        /**
         * @param array $fields
         * @return array
         */
        protected static function getShowedFields(array $fields)
        {
        }
        /**
         * @param array $property
         * @return bool
         */
        protected static function checkImageProperty(array $property)
        {
        }
    }
}
namespace Bitrix\Iblock\Helpers\Admin {
    class Property
    {
        /**
         * Returns base type list.
         *
         * @param bool $descr			Return with description.
         * @return array
         */
        public static function getBaseTypeList($descr = false)
        {
        }
    }
}
namespace Bitrix\Iblock\Helpers\Filter {
    class PropertyManager
    {
        private $iblockId = 0;
        private $listProperty = null;
        private $filterFields = null;
        private $catalogIncluded = null;
        private $catalog = null;
        public function __construct($iblockId)
        {
        }
        /**
         * @return array
         */
        public function getFilterFields()
        {
        }
        /**
         * @param string $filterId
         * @return void
         */
        public function renderCustomFields($filterId)
        {
        }
        /**
         * @param string $filterId
         * @param array &$filter
         * @return void
         */
        public function AddFilter($filterId, array &$filter)
        {
        }
        /**
         * @return array
         */
        private function getListProperty()
        {
        }
    }
    /**
     * Class Property
     *
     * The class to display iblock property with the type of "custom_entity" in the main.ui.filter
     *
     * @package Bitrix\Iblock\Helpers\Filter
     */
    class Property
    {
        /**
         * Method renders the html for custom_entity field.
         *
         * @param string $filterId Filter id.
         * @param string $propertyType Type property.
         * @param array $listProperty List properties.
         * @return string Html.
         */
        public static function render($filterId, $propertyType, array $listProperty)
        {
        }
        /**
         * Add values in filter.
         *
         * @param array $property Property data.
         * @param array $controlSettings Form data.
         * @param array &$filter Filter data.
         * @param bool &$filtered Marker filter.
         * @return void
         */
        public static function addFilter($property, $controlSettings, &$filter, &$filtered)
        {
        }
        protected static function renderByECrm($filterId, $listProperty)
        {
        }
        protected static function renderByE($filterId, array $listProperty)
        {
        }
        protected static function renderByEmployee($filterId, array $listProperty)
        {
        }
        protected static function getJsHandlerECrm()
        {
        }
        protected static function getJsHandlerEmployee()
        {
        }
        protected static function getJsHandlerE()
        {
        }
        protected static function addFilterByE($property, $controlSettings, &$filter, &$filtered)
        {
        }
    }
}
namespace Bitrix\Iblock {
    /**
     * Class SiteTable
     * @package Bitrix\Iblock
     * @deprecated
     */
    class SiteTable extends \Bitrix\Iblock\IblockSiteTable
    {
    }
}
namespace Bitrix\Iblock\Grid {
    class ActionType
    {
        public const EDIT = 'edit';
        public const SELECT_ALL = 'for_all';
        public const DELETE = 'delete';
        public const CLEAR_COUNTER = 'clear_counter';
        public const CODE_TRANSLIT = 'code_translit';
        public const ACTIVATE = 'activate';
        public const DEACTIVATE = 'deactivate';
        public const MOVE_TO_SECTION = 'section';
        public const ADD_TO_SECTION = 'add_section';
        public const ELEMENT_LOCK = 'lock';
        public const ELEMENT_UNLOCK = 'unlock';
        public const ELEMENT_WORKFLOW_STATUS = 'wf_status';
    }
}
namespace {
    class _CIBlockError
    {
        var $err_type, $err_text, $err_level;
        function _CIBlockError($err_level = \false, $err_type = "", $err_text = "")
        {
        }
        function GetErrorText($error = \false)
        {
        }
    }
    class CEditorPopupControl
    {
        protected $width;
        protected $height;
        protected $initHtml = \false;
        /** @var bool  */
        protected $filemanIncluded = \null;
        public function __construct(int $width = 420, int $height = 200)
        {
        }
        public function getEditorHtml() : string
        {
        }
        public function getControlHtml(string $name, string $value, $maxLength = 255) : string
        {
        }
    }
    class CForumDBTools
    {
        /*
         * RegisterModuleDependences('forum', 'CollectDBUpdater', 'forum', '', '');
         */
        static function GetDBUpdaters()
        {
        }
        static function Unregister($caller)
        {
        }
        static function ShowOffer($TRIGGER, $message)
        {
        }
        static function ShowMessage($message, $error = \false)
        {
        }
        static function Alter($arParams)
        {
        }
        static function DropIndex_message_TA()
        {
        }
        static function CreateIndex_message_TAI()
        {
        }
        static function DropIndex_message_AAF()
        {
        }
        static function CreateIndex_message_AAFI()
        {
        }
        static function CreateIndex_message_ATI()
        {
        }
        static function CreateIndex_message_AFIAT()
        {
        }
    }
    class CForumParameters
    {
        public static function GetDateTimeFormat($name = "", $parent = "")
        {
        }
        public static function GetDateFormat($name = "", $parent = "")
        {
        }
        public static function GetForumsMultiSelect($name = "", $parent = "")
        {
        }
        public static function GetForumsList()
        {
        }
        public static function GetSendMessageRights($name = "", $parent = "", $default = "A", $object = "MAIL")
        {
        }
        public static function GetSetNavigation($name = "", $parent = "")
        {
        }
        public static function GetWordLength($name = "", $parent = "ADDITIONAL_SETTINGS")
        {
        }
        public static function GetWordWrapCut($name = "", $parent = "ADDITIONAL_SETTINGS")
        {
        }
        public static function GetAjaxType($name = "", $parent = "ADDITIONAL_SETTINGS")
        {
        }
        public static function AddPagerSettings(&$arComponentParameters, $sTitle = "", $arParams = array())
        {
        }
    }
    class CForumFormat
    {
        public static function DateFormat($format = "", $timestamp = "")
        {
        }
        public static function FormatDate($strDate, $format = "DD.MM.YYYY HH:MI:SS", $new_format = "DD.MM.YYYY HH:MI:SS")
        {
        }
    }
    class CForumHTMLPresrnation
    {
        function GetChainString($items = \false, $templates = \false)
        {
        }
        function ShowFilter($arForm = \false, $arFields = \false, $prefix = \false, $arTable = array())
        {
        }
    }
    class CIBlockPropertyTopicID
    {
        function GetUserTypeDescription()
        {
        }
        function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
        {
        }
        //PARAMETERS:
        //$arProperty - b_iblock_property.*
        //$value - array("VALUE","DESCRIPTION") -- here comes HTML form value
        //strHTMLControlName - array("VALUE","DESCRIPTION")
        //return:
        //safe html
        function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
        {
        }
        function GetAdminListViewHTML($arProperty, $value, $strHTMLControlName)
        {
        }
        //PARAMETERS:
        //$arProperty - b_iblock_property.*
        //$value - array("VALUE",["DESCRIPTION"]) -- here comes HTML form value
        //return:
        //array of error messages
        //PARAMETERS:
        //$arProperty - b_iblock_property.*
        //$value - array("VALUE",["DESCRIPTION"]) -- here comes HTML form value
        //return:
        //DB form of the value
        function ConvertToDB($arProperty, $value)
        {
        }
        function ConvertFromDB($arProperty, $value)
        {
        }
    }
    class forum extends \CModule
    {
        var $MODULE_ID = "forum";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function __construct()
        {
        }
        function InstallDB()
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function UnInstallFiles()
        {
        }
        function InstallUserFields($id = "all")
        {
        }
        function UnInstallUserFields()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
    class ForumIndexComponent extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
        private function prepareParams()
        {
        }
        private function getFilter()
        {
        }
        private function processAction(array $filter)
        {
        }
        private function prepareData(array $filter)
        {
        }
        private function setNavigation()
        {
        }
        private function setTitle()
        {
        }
        private function getApplication()
        {
        }
        private function getUser()
        {
        }
    }
    class CForumAdminMessages extends \CBitrixComponent
    {
        /** @var ErrorCollection */
        protected $errorCollection;
        /** @var \Bitrix\Forum\User */
        protected $user;
        protected $rights = "D";
        /** @var string */
        protected $gridId = "grid_admin_forum_forums";
        public function __construct($component = \null)
        {
        }
        public function executeComponent()
        {
        }
        protected function prepareParams()
        {
        }
        /**
         * @return array
         */
        protected function processAction()
        {
        }
        protected function initFilter()
        {
        }
        protected function prepareFilter($filter)
        {
        }
        protected function initOrder()
        {
        }
    }
    final class ForumCommentsComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable
    {
        const ERROR_REQUIRED_PARAMETER = 'FORUM_BASE_COMPONENT_22001';
        const ERROR_ACTION = 'FORUM_BASE_COMPONENT_22002';
        const STATUS_SUCCESS = 'success';
        const STATUS_DENIED = 'denied';
        const STATUS_ERROR = 'error';
        /** @var  string */
        protected $actionPrefix = 'action';
        /** @var  string */
        protected $action;
        /** @var  ErrorCollection */
        protected $errorCollection;
        protected $componentId = '';
        /** @var \Bitrix\Forum\Comments\Feed */
        protected $feed;
        /** @var  CCaptcha */
        public $captcha;
        /** @var  array */
        private $forum;
        /** @var array */
        private static $users = array();
        /** @var integer */
        private static $index = 0;
        const STATUS_SCOPE_MOBILE = 'mobile';
        const STATUS_SCOPE_WEB = 'web';
        private $scope;
        public $prepareMobileData;
        public function __construct($component = \null)
        {
        }
        protected function changeTemplate()
        {
        }
        public function isWeb()
        {
        }
        protected function sendResponse($response)
        {
        }
        protected function sendJsonResponse($response)
        {
        }
        protected function showError()
        {
        }
        protected function sendError()
        {
        }
        protected function handleException(\Exception $e)
        {
        }
        protected function end($terminate = \true)
        {
        }
        public function hasErrors()
        {
        }
        public function getErrors()
        {
        }
        public function onPrepareComponentParams($arParams)
        {
        }
        public function executeComponent()
        {
        }
        protected function checkRequiredParams()
        {
        }
        protected function prepareParams()
        {
        }
        public function subscribeAuthor($type, $id, $tid)
        {
        }
        public function readTopic($type, $id, $tid)
        {
        }
        /**
         * Returns whether this is an AJAX (XMLHttpRequest) request.
         * @return boolean
         */
        protected function isAjaxRequest()
        {
        }
        private function bindObjects()
        {
        }
        private function checkCaptcha()
        {
        }
        private function checkPreview()
        {
        }
        private function checkActions()
        {
        }
        public function getApplication()
        {
        }
        public function getUser()
        {
        }
        private static function getUserFromForum($userId)
        {
        }
        private function getUserName()
        {
        }
        public function configureActions()
        {
        }
        protected function listKeysSignedParameters()
        {
        }
        public function navigateCommentAction()
        {
        }
        public function processCommentAction()
        {
        }
        public function readCommentAction()
        {
        }
    }
    class CCommentRatings
    {
        var $component = \null;
        var $arRatings = array();
        var $display = array("BEFORE_HEADER" => \true, "AFTER_ACTIONS" => \false);
        function __construct(&$component)
        {
        }
        function OnCommentsDisplayTemplate($output, $arParams, $arResult)
        {
        }
        function OnPrepareComments()
        {
        }
        function RatingDisplay($top = \true, $commentID, $authorID)
        {
        }
        function OnCommentDisplay($arComment)
        {
        }
    }
    class CCommentUFs
    {
        var $component = \null;
        function __construct(&$component)
        {
        }
        function OnCommentsInit()
        {
        }
        function OnPrepareComments()
        {
        }
        function OnCommentPreviewDisplay()
        {
        }
        function OnCommentDisplay($arComment)
        {
        }
        function OnCommentFormDisplay()
        {
        }
    }
    class CCommentFiles
    {
        var $imageSize = 100;
        var $component = \null;
        function __construct(&$component)
        {
        }
        public static function OnFileUploadToMFI(&$arCustomFile, $arParams = \null)
        {
        }
        function OnPrepareComments()
        {
        }
        function OnCommentError()
        {
        }
        function OnCommentPreview()
        {
        }
        function OnCommentPreviewDisplay()
        {
        }
        function OnCommentsInit()
        {
        }
        function OnCommentDisplay($arComment)
        {
        }
        function OnCommentFormDisplay()
        {
        }
        function OnCommentAdd($entityType, $entityID, &$arPost)
        {
        }
        function OnAfterCommentAdd($entityType, $entityID, $params = array())
        {
        }
    }
    final class ForumTopicRead extends \CBitrixComponent
    {
        /** @var  Main\ErrorCollection */
        protected $errorCollection;
        public function __construct($component = \null)
        {
        }
        protected function checkRequiredParams()
        {
        }
        public function executeComponent()
        {
        }
    }
    class forumTextParser extends \CTextParser
    {
        /* @deprecated */
        var $image_params = array();
        /* @deprecated */
        var $pathToUser = "";
        public $imageWidth = 300;
        public $imageHeight = 300;
        public $maxStringLen = 60;
        public $imageHtmlWidth = 0;
        public $imageHtmlHeight = 0;
        public $imageTemplate = "popup_image";
        public $component = \null;
        public $smilesGallery = 0;
        public $arFilesIDParsed = array();
        function __construct($lang = \false, $pathToSmiles = '', $type = \false, $mode = 'full')
        {
        }
        public static function GetFeatures($arForum)
        {
        }
        public static function GetEditorButtons($arParams)
        {
        }
        public static function GetEditorToolbar($arParams)
        {
        }
        function convert($text, $allow = array(), $type = "html", $arFiles = \false)
        {
        }
        function convert4mail($text, $files = \false, $allow = array(), $params = array())
        {
        }
        function ParserFile(&$text, &$obj, $type = "html")
        {
        }
        function convert_open_tag($marker = "quote")
        {
        }
        function convert_close_tag($marker = "quote")
        {
        }
        function convert_image_tag($url = "", $params = "")
        {
        }
        function convert_attachment($fileID = "", $p = "", $type = "", $text = "")
        {
        }
        function convert_to_rss($text, $arImages = array(), $arAllow = array())
        {
        }
        function render_user($fields)
        {
        }
    }
    //===========================
    class CForumSimpleHTMLParser
    {
        var $data;
        var $parse_search_needle = '/([^\\[]*)(?:\\[(.*)\\])*/i';
        var $parse_tag = '/((\\<\\s*(\\/)?\\s*([a-z]+).*?(?:(\\/)\\>|\\>))[^<]*)/ism';
        var $parse_beginning_spaces = '/^([\\s]*)/m';
        var $replace_tag_begin = '/^\\s*\\w+\\s*/';
        var $parse_params = '/([a-z]+)\\s*=\\s*(?:([^\\s]*)|(?:[\'"]([^\'"])[\'"]))/im';
        var $lastError = '';
        private $preg = array("counter" => 0, "pattern" => array(), "replace" => array());
        function __construct($data)
        {
        }
        /**
         * @param string $text
         * @return string
         */
        private function prepare($text)
        {
        }
        /**
         * @param array $matches
         * @return string
         */
        public function defendTags($matches)
        {
        }
        function findTagStart($needle)
        {
        }
        function skipTags($tmp)
        {
        }
        function setError($msg)
        {
        }
        function findTagEnd($startIndex)
        {
        }
        function getTagHTML($search)
        {
        }
        function getInnerHTML($startLabel, $endLabel, $multiple = \false)
        {
        }
    }
    class CForumCacheManager
    {
        public function __construct()
        {
        }
        public static function Compress($arDictCollection)
        {
        }
        public static function Expand($arDictCollection)
        {
        }
        public static function SetTag($path, $tags)
        {
        }
        public static function ClearTag($type, $ID = 0)
        {
        }
        public function OnRate($rateID, $arData)
        {
        }
        public function OnMessageAdd($ID, $arFields)
        {
        }
        public function OnMessageUpdate($ID, $arFields, $arMessage = array())
        {
        }
        public function OnMessageDelete($ID, $arMessage)
        {
        }
        public function OnTopicAdd($ID, $arFields)
        {
        }
        public function OnTopicUpdate($ID, $arFields)
        {
        }
        public function OnTopicDelete(&$ID, $arTopic)
        {
        }
        //public function OnForumAdd(&$ID, &$arFields)
        //{
        //}
        public function OnForumUpdate($ID, $arFields)
        {
        }
    }
    class CForumAutosave
    {
        private static $instance;
        private $as;
        public function __construct()
        {
        }
        public static function GetInstance()
        {
        }
        public function LoadScript($arParams)
        {
        }
        public function Init()
        {
        }
        public function Reset()
        {
        }
    }
    /**********************************************************************/
    /************** FORUM *************************************************/
    /**********************************************************************/
    class CAllForumNew
    {
        //---------------> Forum insert, update, delete
        public static function CanUserViewForum($FID, $arUserGroups, $ExternalPermission = \false)
        {
        }
        public static function CanUserAddForum($arUserGroups, $iUserID = 0)
        {
        }
        public static function CanUserUpdateForum($FID, $arUserGroups, $iUserID = 0, $ExternalPermission = \false)
        {
        }
        public static function CanUserDeleteForum($FID, $arUserGroups, $iUserID = 0, $ExternalPermission = \false)
        {
        }
        public static function CanUserModerateForum($FID, $arUserGroups, $iUserID = 0, $ExternalPermission = \false)
        {
        }
        public static function CanUserEditForum($FID, $arUserGroups, $iUserID = 0, $ExternalPermission = \false)
        {
        }
        public static function CheckFields($ACTION, &$arFields)
        {
        }
        public static function Update($ID, $arFields, $bReindex = \true)
        {
        }
        public static function Delete($ID)
        {
        }
        //---------------> Array of sites (langs) where forum is available
        public static function GetSites($ID)
        {
        }
        //---------------> Forum permissions
        public static function GetPermissionUserDefault($ID)
        {
        }
        public static function GetAccessPermissions($ID, $TYPE = "ONE")
        {
        }
        public static function GetAccessPermsList($arOrder = array("ID" => "ASC"), $arFilter = array())
        {
        }
        public static function SetAccessPermissions($ID, $arGROUP_ID)
        {
        }
        public static function GetUserPermission($ID, $arUserGroups)
        {
        }
        //---------------> Forum Utils
        public static function GetFilterOperation($key)
        {
        }
        public static function prepareField($operation, $type, $vals)
        {
        }
        public static function GetSelectFields($arAddParams = array())
        {
        }
        //---------------> Forum list
        public static function GetList($arOrder = array("SORT" => "ASC"), $arFilter = array(), $arAddParams = array())
        {
        }
        public static function GetListEx($arOrder = array("SORT" => "ASC"), $arFilter = array(), $bCount = \false, $iNum = 0, $arAddParams = array())
        {
        }
        public static function GetForumRenew($data)
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function GetByIDEx($ID, $SITE_ID = \false, $arAddParams = array())
        {
        }
        //---------------> Forum labels
        public static function InitReadLabels($ID, $arUserGroups)
        {
        }
        public static function SetLabelsBeRead($ID, $arUserGroups)
        {
        }
        //---------------> Forum utils
        public static function SetStat($ID = 0, $arParams = array())
        {
        }
        /**
         * Replace path to forum message link.
         * @param string|null $strPath
         * @param array $arVals
         * @return string|array
         */
        public static function PreparePath2Message($strPath, $arVals = array())
        {
        }
        //---------------> Forum actions
        public static function OnGroupDelete($GROUP_ID)
        {
        }
        public static function OnBeforeLangDelete($lang)
        {
        }
        public static function OnPanelCreate()
        {
        }
        public static function OnReindex($NS = array(), $oCallback = \NULL, $callback_method = "")
        {
        }
        public static function ShowPanel($FID, $TID = 0, $bGetIcons = \false)
        {
        }
        public static function ClearHTML($ID)
        {
        }
    }
    /**********************************************************************/
    /************** FORUM GROUP *******************************************/
    /**********************************************************************/
    class CAllForumGroup
    {
        //---------------> User insert, update, delete
        public static function CanUserAddGroup($arUserGroups)
        {
        }
        public static function CanUserUpdateGroup($ID, $arUserGroups)
        {
        }
        public static function CanUserDeleteGroup($ID, $arUserGroups)
        {
        }
        public static function CheckFields($ACTION, &$arFields, $ID = \false)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function GetList($arOrder = array("SORT" => "ASC"), $arFilter = array())
        {
        }
        public static function GetListEx($arOrder = array("SORT" => "ASC"), $arFilter = array())
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function GetByIDEx($ID, $LANGUAGE_ID)
        {
        }
        public static function GetLangByID($FORUM_GROUP_ID, $strLang)
        {
        }
        public static function GetByLang($LANGUAGE_ID)
        {
        }
        public static function Resort($ID = 0, $cnt = 0, $depth = 0)
        {
        }
    }
    /**********************************************************************/
    /************** FORUM SMILE *******************************************/
    /**********************************************************************/
    class CForumSmile
    {
        static $smiles = array();
        static $sets = array();
        public static function Add()
        {
        }
        public static function CheckFields()
        {
        }
        public static function Update()
        {
        }
        public static function Delete()
        {
        }
        public static function GetList()
        {
        }
        public static function GetListEx()
        {
        }
        public static function GetByID()
        {
        }
        public static function GetByIDEx($ID, $strLang)
        {
        }
        public static function GetLangByID($SMILE_ID, $strLang)
        {
        }
        /**
         * @deprecated
         * @param $type
         * @param $lang
         * @return mixed
         */
        public static function GetByType($type, $lang)
        {
        }
        public static function getSmiles($type, $lang)
        {
        }
        public static function getSetsByType($type, $lang)
        {
        }
    }
    class _CForumDBResult extends \CDBResult
    {
        var $sNameTemplate = '';
        function _CForumDBResult($res, $params = array())
        {
        }
        function Fetch()
        {
        }
    }
    class CAllFilterDictionary
    {
        function CheckFields($arFields = array(), $ACTION = "ADD")
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function Delete($ID)
        {
        }
        function GetFilterOperation($key)
        {
        }
    }
    class CAllFilterLetter
    {
        function CheckFields($arFields = array())
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function Delete($ID)
        {
        }
        function GetByID($ID)
        {
        }
    }
    class CAllFilterUnquotableWords
    {
        function CheckPattern($sPattern, &$sError)
        {
        }
        function CheckFields($action = "INSERT", $ID = \false, $arFields = array())
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function Delete($ID)
        {
        }
        function GetById($ID)
        {
        }
        function GetFilterOperation($key)
        {
        }
        function GenPattern($ID = \false, $DICTIONARY_ID_T = 0)
        {
        }
        function GenPatternAll($DICTIONARY_ID_W = 0, $DICTIONARY_ID_T = 0)
        {
        }
        function CreatePattern($pattern = "", $DICTIONARY_ID = 0)
        {
        }
        function FilterPerm()
        {
        }
        function Filter($message)
        {
        }
    }
    class CAllRatingsComponentsForum
    {
        // return configs of component-rating
        function OnGetRatingConfigs()
        {
        }
        // return support object
        function OnGetRatingObject()
        {
        }
        // check the value of the component-rating which relate to the module
        function OnAfterAddRating($ID, $arFields)
        {
        }
        // check the value of the component-rating which relate to the module
        function OnAfterUpdateRating($ID, $arFields)
        {
        }
        // Utilities
        // check input values, if value does not validate, set the default value
        function __CheckFields($entityId, $arConfigs)
        {
        }
        // collect the default and regular expressions for the fields component-rating
        function __AssembleConfigDefault($objectType = \null)
        {
        }
        function OnGetRatingContentOwner($arParams)
        {
        }
    }
    //*****************************************************************************************************************
    //	PM
    //************************************!****************************************************************************
    class CAllForumPrivateMessage
    {
        public static function Send($arFields = array())
        {
        }
        public static function Copy($ID, $arFields = array())
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function MakeRead($ID)
        {
        }
        public static function CheckPermissions($ID)
        {
        }
        public static function CheckFields(&$arFields, $update = \false)
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter, $bCnt = \false)
        {
        }
        public static function PMSize($USER_ID, $CountMess = \false)
        {
        }
        public static function GetNewPM($FOLDER_ID = \false)
        {
        }
    }
    //*****************************************************************************************************************
    //	PM. Folders.
    //************************************!****************************************************************************
    class CALLForumPMFolder
    {
        public static function Add($title)
        {
        }
        public static function Update($ID, $arFields = array())
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function GetList($arOrder = array("SORT" => "DESC", "TITLE" => "DESC"), $arFilter, $bCnt = \false)
        {
        }
        public static function CheckPermissions($ID)
        {
        }
        public static function Delete($ID)
        {
        }
    }
    class CForumNotifySchema
    {
        public function __construct()
        {
        }
        public static function OnGetNotifySchema()
        {
        }
    }
    /**********************************************************************/
    /************** FORUM USER ********************************************/
    /**********************************************************************/
    class CAllForumUser
    {
        public static function IsAdmin($userId = \false, $arGroups = \false)
        {
        }
        public static function GetUserTopicVisits($forumID, $arTopic, $userID = \null)
        {
        }
        //---------------> User insert, update, delete
        public static function IsLocked($USER_ID)
        {
        }
        public static function CanUserAddUser($arUserGroups)
        {
        }
        public static function CanUserUpdateUser($ID, $arUserGroups, $CurrentUserID = 0)
        {
        }
        public static function CanUserDeleteUser($ID, $arUserGroups)
        {
        }
        public static function CheckFields($ACTION, &$arFields, $ID = \false)
        {
        }
        public static function Add($fields, $strUploadDir = \false)
        {
        }
        public static function Update($ID, $arFields, $strUploadDir = \false, $UpdateByUserId = \false)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function CountUsers($bActive = \False, $arFilter = array())
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function GetByLogin($Name)
        {
        }
        public static function GetByIDEx($ID, $arAddParams = array())
        {
        }
        public static function GetByUSER_ID($USER_ID)
        {
        }
        public static function GetByUSER_IDEx($USER_ID, $arAddParams = array())
        {
        }
        public static function GetUserRank($USER_ID, $strLang = \false)
        {
        }
        //---------------> User visited
        public static function SetUserForumLastVisit($USER_ID, $FORUM_ID = 0, $LAST_VISIT = \false)
        {
        }
        public static function GetListUserForumLastVisit($arOrder = array("LAST_VISIT" => "DESC"), $arFilter = array())
        {
        }
        //---------------> User visited
        //---------------> User utils/
        /**
         * Returns formatted user name
         * @param integer $userID
         * @param string $template
         * @param array $arUser - array with user data
         * @return string
         */
        public static function GetFormattedNameByUserID($userID, $template = "", $arUser = array())
        {
        }
        public static function GetUserPoints($USER_ID, $arAddParams = array())
        {
        }
        public static function CountUserPoints($USER_ID = 0, $iCnt = \false)
        {
        }
        public static function SetStat($USER_ID = 0, $arParams = array())
        {
        }
        //---------------> User actions
        public static function OnUserDelete($user_id)
        {
        }
        // >-- Using for private message
        public static function SearchUser($template)
        {
        }
        public static function UserAddInfo($arOrder = array(), $arFilter = array(), $mode = \false, $iNum = 0, $check_permission = \true, $arNavigation = array())
        {
        }
        // <-- Using for private message
        public static function OnSocNetGroupDelete($group_id)
        {
        }
        public static function OnAfterUserUpdate($arFields = array())
        {
        }
    }
    /**********************************************************************/
    /************** SUBSCRIBE *********************************************/
    /**********************************************************************/
    class CAllForumSubscribe
    {
        //---------------> User insert, update, delete
        public static function CanUserAddSubscribe($FID, $arUserGroups)
        {
        }
        public static function CanUserUpdateSubscribe($ID, $arUserGroups, $CurrentUserID = 0)
        {
        }
        public static function CanUserDeleteSubscribe($ID, $arUserGroups, $CurrentUserID = 0)
        {
        }
        public static function CheckFields($ACTION, &$arFields)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function DeleteUSERSubscribe($USER_ID)
        {
        }
        public static function UpdateLastSend($MID, $sIDs)
        {
        }
        public static function GetList($arOrder = array("ID" => "ASC"), $arFilter = array(), $arAddParams = array())
        {
        }
        public static function GetListEx($arOrder = array("ID" => "ASC"), $arFilter = array())
        {
        }
        public static function GetByID($ID)
        {
        }
    }
    /**********************************************************************/
    /************** RANK **************************************************/
    /**********************************************************************/
    class CAllForumRank
    {
        //---------------> User insert, update, delete
        public static function CanUserAddRank($arUserGroups)
        {
        }
        public static function CanUserUpdateRank($ID, $arUserGroups)
        {
        }
        public static function CanUserDeleteRank($ID, $arUserGroups)
        {
        }
        public static function CheckFields($ACTION, &$arFields)
        {
        }
        // Tekuwie statusy posetitelej srazu ne pereschityvayutsya. Tol'ko postepenno v processe raboty.
        public static function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function GetList($arOrder = array("MIN_NUM_POSTS" => "ASC"), $arFilter = array())
        {
        }
        public static function GetListEx($arOrder = array("MIN_NUM_POSTS" => "ASC"), $arFilter = array())
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function GetByIDEx($ID, $strLang)
        {
        }
        public static function GetLangByID($RANK_ID, $strLang)
        {
        }
    }
    class CALLForumStat
    {
        /**
         * @param array $arFields
         * @return bool
         * @deprecated
         * @see CALLForumStat::RegisterUSER()
         */
        public static function RegisterUSER_OLD($arFields = array())
        {
        }
        public static function RegisterUSER($arFields = array())
        {
        }
        public static function Add($arFields)
        {
        }
        public static function GetListEx($arOrder = array("ID" => "ASC"), $arFilter = array())
        {
        }
        public static function CleanUp($period = 48)
        {
        }
    }
    /**********************************************************************/
    /************** POINTS ************************************************/
    /**********************************************************************/
    class CAllForumPoints
    {
        //---------------> Points insert, update, delete
        function CanUserAddPoints($arUserGroups)
        {
        }
        function CanUserUpdatePoints($ID, $arUserGroups)
        {
        }
        function CanUserDeletePoints($ID, $arUserGroups)
        {
        }
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function Delete($ID)
        {
        }
        function GetList($arOrder = array("MIN_POINTS" => "ASC"), $arFilter = array())
        {
        }
        function GetListEx($arOrder = array("MIN_POINTS" => "ASC"), $arFilter = array())
        {
        }
        function GetByID($ID)
        {
        }
        function GetByIDEx($ID, $strLang)
        {
        }
        function GetLangByID($POINTS_ID, $strLang)
        {
        }
    }
    /**********************************************************************/
    /************** POINTS2POST *******************************************/
    /**********************************************************************/
    class CAllForumPoints2Post
    {
        //---------------> Insert, update, delete
        function CanUserAddPoints2Post($arUserGroups)
        {
        }
        function CanUserUpdatePoints2Post($ID, $arUserGroups)
        {
        }
        function CanUserDeletePoints2Post($ID, $arUserGroups)
        {
        }
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        // User points is not recount.
        function Update($ID, $arFields)
        {
        }
        // User points is not recount.
        function Delete($ID)
        {
        }
        function GetList($arOrder = array("MIN_NUM_POSTS" => "ASC"), $arFilter = array())
        {
        }
        function GetByID($ID)
        {
        }
    }
    /**********************************************************************/
    /************** FORUM USER POINTS *************************************/
    /**********************************************************************/
    class CAllForumUserPoints
    {
        //---------------> Insert, update, delete
        function CanUserAddUserPoints($iUserID)
        {
        }
        function CanUserUpdateUserPoints($iUserID)
        {
        }
        function CanUserDeleteUserPoints($iUserID)
        {
        }
        function CheckFields($ACTION, &$arFields)
        {
        }
        function Update($FROM_USER_ID, $TO_USER_ID, $arFields)
        {
        }
        function Delete($FROM_USER_ID, $TO_USER_ID)
        {
        }
        function GetList($arOrder = array("TO_USER_ID" => "ASC"), $arFilter = array())
        {
        }
        function GetByID($FROM_USER_ID, $TO_USER_ID)
        {
        }
        function CountSumPoints($TO_USER_ID)
        {
        }
    }
    /**********************************************************************/
    /************** FORUM TOPIC *******************************************/
    /**********************************************************************/
    class CAllForumTopic
    {
        public static function CanUserViewTopic($TID, $arUserGroups, $iUserID = 0, $ExternalPermission = \false)
        {
        }
        public static function CanUserAddTopic($FID, $arUserGroups, $iUserID = 0, $arForum = \false, $ExternalPermission = \false)
        {
        }
        public static function CanUserUpdateTopic($TID, $arUserGroups, $iUserID = 0, $ExternalPermission = \false)
        {
        }
        public static function CanUserDeleteTopic($TID, $arUserGroups, $iUserID = 0, $ExternalPermission = \false)
        {
        }
        public static function CanUserDeleteTopicMessage($TID, $arUserGroups, $iUserID = 0, $ExternalPermission = \false)
        {
        }
        public static function CheckFields($ACTION, &$arFields)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields, $skip_counts = \False)
        {
        }
        public static function MoveTopic2Forum($TID, $FID, $leaveLink = "N")
        {
        }
        public static function Delete($ID)
        {
        }
        public static function GetByID($ID, $arAddParams = array())
        {
        }
        public static function GetByIDEx($ID, $arAddParams = array())
        {
        }
        public static function GetNeighboringTopics($TID, $arUserGroups)
        {
        }
        public static function GetSelectFields($arAddParams = array(), $fields = array())
        {
        }
        public static function SetReadLabels($ID, $arUserGroups)
        {
        }
        public static function SetReadLabelsNew($ID, $update = \false, $LastVisit = \false, $arAddParams = array())
        {
        }
        public static function CleanUp($period = 168)
        {
        }
        //---------------> Topic utils
        public static function SetStat($ID = 0, $arParams = array())
        {
        }
        public static function OnBeforeIBlockElementDelete($ELEMENT_ID)
        {
        }
        public static function GetMessageCount($forumID, $topicID, $approved = \null)
        {
        }
    }
    class _CTopicDBResult extends \CDBResult
    {
        private $sNameTemplate = '';
        private $noFilter = \false;
        private static $icons;
        function _CTopicDBResult($res, $params = array())
        {
        }
        protected static function getIcon($iconTyping)
        {
        }
        function Fetch()
        {
        }
    }
    class CForumRestService extends \IRestService
    {
        const PERM_DENY = 'D';
        const PERM_READ = 'R';
        const PERM_WRITE = 'W';
        public static function OnRestServiceBuildDescription()
        {
        }
        public static function getUserMessage($arParams, $offset, \CRestServer $server)
        {
        }
        public static function deleteMessage($arFields)
        {
        }
        private static function getForumMessagePerm($arFields)
        {
        }
        private static function getForumMessageFields($messageId)
        {
        }
        private static function isAdmin()
        {
        }
        private static function getFileData($diskObjectId)
        {
        }
        private static function convertFileData($fileData)
        {
        }
        private static function getPublicDomain()
        {
        }
    }
    class CAllForumMessage
    {
        //---------------> Message add, update, delete
        public static function CanUserAddMessage($TID, $arUserGroups, $iUserID = 0, $ExternalPermission = \false)
        {
        }
        public static function CanUserUpdateMessage($MID, $arUserGroups, $iUserID = 0, $ExternalPermission = \false)
        {
        }
        public static function CanUserDeleteMessage($MID, $arUserGroups, $iUserID = 0, $ExternalPermission = \false)
        {
        }
        public static function CheckFields($ACTION, &$arFields, $ID = 0, $arParams = array())
        {
        }
        public static function Update($ID, $arFields, $skip_counts = \false, $strUploadDir = \false)
        {
        }
        public static function Reindex($ID, &$arMessage)
        {
        }
        public static function Delete($ID)
        {
        }
        //---------------> Message list
        public static function GetByID($ID, $arAddParams = array())
        {
        }
        public static function GetByIDEx($ID, $arAddParams = array())
        {
        }
        //---------------> Message utils
        public static function GetMessagePage($ID, $messagePerPage, $arUserGroups, $TID = 0, $addParams = [])
        {
        }
        public static function SendMailMessage($MID, $arFields = array(), $strLang = \false, $mailTemplate = \false)
        {
        }
        public static function GetFirstUnreadEx($FID, $TID, $arUserGroups)
        {
        }
        public static function GetFirstUnread($FID, $TID, $PERMISSION)
        {
        }
        public static function OnSocNetLogFormatEvent($arEvent, $arParams)
        {
        }
        /**
         * @param $arFilter - array("FORUM_ID" => 241, "TOPIC_ID" => 82383, "APPROVED" => "Y")
         * @param $rights - string(1) (A|R|U|W);
         */
        public static function setWebdavRights($arFilter, $rights)
        {
        }
        public static function GetMentionedUserID($strMessage)
        {
        }
    }
    class _CMessageDBResult extends \CDBResult
    {
        var $sNameTemplate = '';
        function _CMessageDBResult($res, $params = array())
        {
        }
        function Fetch()
        {
        }
    }
    class CALLForumFiles
    {
        public static function getByMessageID($ID)
        {
        }
        public static function CheckFields(&$arFields, &$arParams, $ACTION = "ADD", $extParams = array())
        {
        }
        public static function Add($arFileID, &$arParams, $bCheckFields = \false)
        {
        }
        public static function Save(&$arFields, $arParams, $bCheckFields = \true)
        {
        }
        public static function UpdateByID($ID, $arFields)
        {
        }
        public static function Delete($arFields = array(), $arParams = array())
        {
        }
        public static function OnFileDelete($arFile)
        {
        }
    }
    class CForumEventLog
    {
        public static function Log($object, $action, $id, $description = "", $title = "")
        {
        }
        function GetAuditTypes()
        {
        }
    }
    class CEventForum
    {
        function MakeForumObject()
        {
        }
        function GetFilter()
        {
        }
        function GetAuditTypes()
        {
        }
        function GetEventInfo($row, $arParams)
        {
        }
        function GetFilterSQL($var)
        {
        }
    }
    #############################################
    # Bitrix Site Manager Forum					#
    # Copyright (c) 2002-2013 Bitrix			#
    # http://www.bitrixsoft.com					#
    # mailto:admin@bitrixsoft.com				#
    #############################################
    class ForumEventManager
    {
        function ForumEventManager()
        {
        }
        function updateIBlockPropertyAfterAddingMessage($ID, $arFields, $arTopic = array())
        {
        }
        function updateIBlockPropertyAfterDeletingMessage($ID, $arFields)
        {
        }
        public static function updateIBlockProperty($ID, $TYPE, $arMessage, $arTopic = array())
        {
        }
    }
    /**********************************************************************/
    /************** FORUM *************************************************/
    /**********************************************************************/
    class CForumNew extends \CAllForumNew
    {
        public static function Add($arFields)
        {
        }
        public static function reindex(&$NS, $oCallback = \NULL, $callback_method = "")
        {
        }
        public static function GetNowTime($ResultType = "timestamp")
        {
        }
        public static function Concat($glue = "", $pieces = array())
        {
        }
    }
    /**********************************************************************/
    /************** FORUM GROUP *******************************************/
    /**********************************************************************/
    class CForumGroup extends \CAllForumGroup
    {
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
    }
    class CFilterDictionary extends \CAllFilterDictionary
    {
        function GetList($arOrder = array("ID" => "ASC"), $arFilter = array(), $bCount = \false)
        {
        }
    }
    class CFilterLetter extends \CAllFilterLetter
    {
        function GetList($arOrder = array("ID" => "ASC"), $arFilter = array(), $bCount = \false)
        {
        }
    }
    class CFilterUnquotableWords extends \CAllFilterUnquotableWords
    {
        function GetList($arOrder = array("ID" => "ASC"), $arFilter = array(), $bCount = \false)
        {
        }
    }
    class CForum extends \CAllForum
    {
    }
    class CRatingsComponentsForum extends \CAllRatingsComponentsForum
    {
        // Calc function
        function CalcUserVoteForumPost($arConfigs)
        {
        }
        function CalcUserVoteForumTopic($arConfigs)
        {
        }
        function CalcUserRatingForumActivity($arConfigs)
        {
        }
        // Exception function
        function ExceptionUserRatingForumActivity()
        {
        }
    }
    class CForumPrivateMessage extends \CAllForumPrivateMessage
    {
        public static function GetListEx($arOrder = array("ID" => "ASC"), $arFilter = array(), $bCount = \false, $iNum = 0, $arAddParams = array())
        {
        }
    }
    class CForumPMFolder extends \CAllForumPMFolder
    {
    }
    class CForumUser extends \CAllForumUser
    {
        public static function GetList($arOrder = array("ID" => "ASC"), $arFilter = array(), $arAddParams = array())
        {
        }
        public static function GetListEx($arOrder = array("ID" => "ASC"), $arFilter = array())
        {
        }
        public static function SearchUser($template, $arAddParams = array())
        {
        }
        /**
         * Converts name template fields from Bitrix name template to SQL query fields
         *
         * @param string $sNameTemplate Bitrix name template (ex: #LAST_NAME# #NAME#). Uses site name template if empty @see CSite::GetNameTemplates
         * @return string (ex: U.LAST_NAME, U.NAME)
         */
        public static function GetNameFieldsForQuery($sNameTemplate, $userTablePrefix = "U.")
        {
        }
        public static function GetFormattedNameFieldsForSelect($arParams = array(), $bReturnAll = \true)
        {
        }
    }
    class CForumSubscribe extends \CAllForumSubscribe
    {
    }
    class CForumRank extends \CAllForumRank
    {
        // Tekuwie statusy posetitelej srazu ne pereschityvayutsya. Tol'ko postepenno v processe raboty.
        public static function Add($arFields)
        {
        }
    }
    class CForumStat extends \CALLForumStat
    {
        public static function GetListEx($arOrder = array("ID" => "ASC"), $arFilter = array(), $arAddParams = array())
        {
        }
    }
    /**********************************************************************/
    /************** POINTS ************************************************/
    /**********************************************************************/
    class CForumPoints extends \CAllForumPoints
    {
        function Add($arFields)
        {
        }
    }
    /**********************************************************************/
    /************** POINTS2POST *******************************************/
    /**********************************************************************/
    class CForumPoints2Post extends \CAllForumPoints2Post
    {
        function Add($arFields)
        {
        }
    }
    /**********************************************************************/
    /************** FORUM USER POINTS *************************************/
    /**********************************************************************/
    class CForumUserPoints extends \CAllForumUserPoints
    {
        function Add($arFields)
        {
        }
    }
    class CForumTopic extends \CAllForumTopic
    {
        public static function GetList($arOrder = array("SORT" => "ASC"), $arFilter = array(), $bCount = \false, $iNum = 0, $arAddParams = array())
        {
        }
        public static function GetListEx($arOrder = array("SORT" => "ASC"), $arFilter = array(), $bCount = \false, $iNum = 0, $arAddParams = array())
        {
        }
    }
    class CForumMessage extends \CAllForumMessage
    {
        public static function Add($arFields, $strUploadDir = \false, $arParams = array())
        {
        }
        public static function GetList($arOrder = array("ID" => "ASC"), $arFilter = array(), $bCount = \false, $iNum = 0, $arAddParams = array())
        {
        }
        public static function GetListEx($arOrder = array("ID" => "ASC"), $arFilter = array(), $bCount = \false, $iNum = 0, $arAddParams = array())
        {
        }
        public static function QueryFirstUnread($arFilter)
        {
        }
    }
    class CForumFiles extends \CAllForumFiles
    {
        public static function GetList($arOrder = array("ID" => "ASC"), $arFilter = array(), $iNum = 0, $arAddParams = array())
        {
        }
        public static function CleanUp()
        {
        }
    }
    class CForumEMail
    {
        function GetForumFilters($FID, $SOCNET_GROUP_ID = \false)
        {
        }
        function GetMailFilters($MAIL_FILTER_ID)
        {
        }
        function Set($arFields)
        {
        }
        function OnGetSocNetFilterList()
        {
        }
        function SocnetPrepareVars()
        {
        }
        public static function SocnetLogMessageAdd($arParams, $arMessageFields, $action = "")
        {
        }
        function SocnetEMailMessageCheck(&$arMessageFields, $ACTION_VARS)
        {
        }
        function SocnetEMailMessageAdd($arMessageFields, $ACTION_VARS)
        {
        }
        function GetLangMessage($ID, $lang)
        {
        }
    }
}
namespace Bitrix\Forum\BadWords {
    /**
     * EO_Dictionary
     * @see \Bitrix\Forum\BadWords\DictionaryTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Forum\BadWords\EO_Dictionary setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getTitle()
     * @method \Bitrix\Forum\BadWords\EO_Dictionary setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Forum\BadWords\EO_Dictionary resetTitle()
     * @method \Bitrix\Forum\BadWords\EO_Dictionary unsetTitle()
     * @method \string fillTitle()
     * @method \string getType()
     * @method \Bitrix\Forum\BadWords\EO_Dictionary setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\Forum\BadWords\EO_Dictionary resetType()
     * @method \Bitrix\Forum\BadWords\EO_Dictionary unsetType()
     * @method \string fillType()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Forum\BadWords\EO_Dictionary set($fieldName, $value)
     * @method \Bitrix\Forum\BadWords\EO_Dictionary reset($fieldName)
     * @method \Bitrix\Forum\BadWords\EO_Dictionary unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Forum\BadWords\EO_Dictionary wakeUp($data)
     */
    class EO_Dictionary
    {
        /* @var \Bitrix\Forum\BadWords\DictionaryTable */
        public static $dataClass = '\\Bitrix\\Forum\\BadWords\\DictionaryTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Dictionary_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Forum\BadWords\EO_Dictionary $object)
     * @method bool has(\Bitrix\Forum\BadWords\EO_Dictionary $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Forum\BadWords\EO_Dictionary getByPrimary($primary)
     * @method \Bitrix\Forum\BadWords\EO_Dictionary[] getAll()
     * @method bool remove(\Bitrix\Forum\BadWords\EO_Dictionary $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Forum\BadWords\EO_Dictionary_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Forum\BadWords\EO_Dictionary current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Dictionary_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Forum\BadWords\DictionaryTable */
        public static $dataClass = '\\Bitrix\\Forum\\BadWords\\DictionaryTable';
    }
    /**
     * @method static EO_Dictionary_Query query()
     * @method static EO_Dictionary_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Dictionary_Result getById($id)
     * @method static EO_Dictionary_Result getList(array $parameters = array())
     * @method static EO_Dictionary_Entity getEntity()
     * @method static \Bitrix\Forum\BadWords\EO_Dictionary createObject($setDefaultValues = true)
     * @method static \Bitrix\Forum\BadWords\EO_Dictionary_Collection createCollection()
     * @method static \Bitrix\Forum\BadWords\EO_Dictionary wakeUpObject($row)
     * @method static \Bitrix\Forum\BadWords\EO_Dictionary_Collection wakeUpCollection($rows)
     */
    class DictionaryTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Dictionary_Result exec()
     * @method \Bitrix\Forum\BadWords\EO_Dictionary fetchObject()
     * @method \Bitrix\Forum\BadWords\EO_Dictionary_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Dictionary_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Forum\BadWords\EO_Dictionary fetchObject()
     * @method \Bitrix\Forum\BadWords\EO_Dictionary_Collection fetchCollection()
     */
    class EO_Dictionary_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Forum\BadWords\EO_Dictionary createObject($setDefaultValues = true)
     * @method \Bitrix\Forum\BadWords\EO_Dictionary_Collection createCollection()
     * @method \Bitrix\Forum\BadWords\EO_Dictionary wakeUpObject($row)
     * @method \Bitrix\Forum\BadWords\EO_Dictionary_Collection wakeUpCollection($rows)
     */
    class EO_Dictionary_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Filter
     * @see \Bitrix\Forum\BadWords\FilterTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Forum\BadWords\EO_Filter setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getDictionaryId()
     * @method \Bitrix\Forum\BadWords\EO_Filter setDictionaryId(\int|\Bitrix\Main\DB\SqlExpression $dictionaryId)
     * @method bool hasDictionaryId()
     * @method bool isDictionaryIdFilled()
     * @method bool isDictionaryIdChanged()
     * @method \int remindActualDictionaryId()
     * @method \int requireDictionaryId()
     * @method \Bitrix\Forum\BadWords\EO_Filter resetDictionaryId()
     * @method \Bitrix\Forum\BadWords\EO_Filter unsetDictionaryId()
     * @method \int fillDictionaryId()
     * @method \string getWords()
     * @method \Bitrix\Forum\BadWords\EO_Filter setWords(\string|\Bitrix\Main\DB\SqlExpression $words)
     * @method bool hasWords()
     * @method bool isWordsFilled()
     * @method bool isWordsChanged()
     * @method \string remindActualWords()
     * @method \string requireWords()
     * @method \Bitrix\Forum\BadWords\EO_Filter resetWords()
     * @method \Bitrix\Forum\BadWords\EO_Filter unsetWords()
     * @method \string fillWords()
     * @method \string getPattern()
     * @method \Bitrix\Forum\BadWords\EO_Filter setPattern(\string|\Bitrix\Main\DB\SqlExpression $pattern)
     * @method bool hasPattern()
     * @method bool isPatternFilled()
     * @method bool isPatternChanged()
     * @method \string remindActualPattern()
     * @method \string requirePattern()
     * @method \Bitrix\Forum\BadWords\EO_Filter resetPattern()
     * @method \Bitrix\Forum\BadWords\EO_Filter unsetPattern()
     * @method \string fillPattern()
     * @method \string getPatternCreate()
     * @method \Bitrix\Forum\BadWords\EO_Filter setPatternCreate(\string|\Bitrix\Main\DB\SqlExpression $patternCreate)
     * @method bool hasPatternCreate()
     * @method bool isPatternCreateFilled()
     * @method bool isPatternCreateChanged()
     * @method \string remindActualPatternCreate()
     * @method \string requirePatternCreate()
     * @method \Bitrix\Forum\BadWords\EO_Filter resetPatternCreate()
     * @method \Bitrix\Forum\BadWords\EO_Filter unsetPatternCreate()
     * @method \string fillPatternCreate()
     * @method \string getReplacement()
     * @method \Bitrix\Forum\BadWords\EO_Filter setReplacement(\string|\Bitrix\Main\DB\SqlExpression $replacement)
     * @method bool hasReplacement()
     * @method bool isReplacementFilled()
     * @method bool isReplacementChanged()
     * @method \string remindActualReplacement()
     * @method \string requireReplacement()
     * @method \Bitrix\Forum\BadWords\EO_Filter resetReplacement()
     * @method \Bitrix\Forum\BadWords\EO_Filter unsetReplacement()
     * @method \string fillReplacement()
     * @method \string getDescription()
     * @method \Bitrix\Forum\BadWords\EO_Filter setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Forum\BadWords\EO_Filter resetDescription()
     * @method \Bitrix\Forum\BadWords\EO_Filter unsetDescription()
     * @method \string fillDescription()
     * @method \boolean getUseIt()
     * @method \Bitrix\Forum\BadWords\EO_Filter setUseIt(\boolean|\Bitrix\Main\DB\SqlExpression $useIt)
     * @method bool hasUseIt()
     * @method bool isUseItFilled()
     * @method bool isUseItChanged()
     * @method \boolean remindActualUseIt()
     * @method \boolean requireUseIt()
     * @method \Bitrix\Forum\BadWords\EO_Filter resetUseIt()
     * @method \Bitrix\Forum\BadWords\EO_Filter unsetUseIt()
     * @method \boolean fillUseIt()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Forum\BadWords\EO_Filter set($fieldName, $value)
     * @method \Bitrix\Forum\BadWords\EO_Filter reset($fieldName)
     * @method \Bitrix\Forum\BadWords\EO_Filter unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Forum\BadWords\EO_Filter wakeUp($data)
     */
    class EO_Filter
    {
        /* @var \Bitrix\Forum\BadWords\FilterTable */
        public static $dataClass = '\\Bitrix\\Forum\\BadWords\\FilterTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Filter_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getDictionaryIdList()
     * @method \int[] fillDictionaryId()
     * @method \string[] getWordsList()
     * @method \string[] fillWords()
     * @method \string[] getPatternList()
     * @method \string[] fillPattern()
     * @method \string[] getPatternCreateList()
     * @method \string[] fillPatternCreate()
     * @method \string[] getReplacementList()
     * @method \string[] fillReplacement()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \boolean[] getUseItList()
     * @method \boolean[] fillUseIt()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Forum\BadWords\EO_Filter $object)
     * @method bool has(\Bitrix\Forum\BadWords\EO_Filter $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Forum\BadWords\EO_Filter getByPrimary($primary)
     * @method \Bitrix\Forum\BadWords\EO_Filter[] getAll()
     * @method bool remove(\Bitrix\Forum\BadWords\EO_Filter $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Forum\BadWords\EO_Filter_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Forum\BadWords\EO_Filter current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Filter_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Forum\BadWords\FilterTable */
        public static $dataClass = '\\Bitrix\\Forum\\BadWords\\FilterTable';
    }
    /**
     * @method static EO_Filter_Query query()
     * @method static EO_Filter_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Filter_Result getById($id)
     * @method static EO_Filter_Result getList(array $parameters = array())
     * @method static EO_Filter_Entity getEntity()
     * @method static \Bitrix\Forum\BadWords\EO_Filter createObject($setDefaultValues = true)
     * @method static \Bitrix\Forum\BadWords\EO_Filter_Collection createCollection()
     * @method static \Bitrix\Forum\BadWords\EO_Filter wakeUpObject($row)
     * @method static \Bitrix\Forum\BadWords\EO_Filter_Collection wakeUpCollection($rows)
     */
    class FilterTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Filter_Result exec()
     * @method \Bitrix\Forum\BadWords\EO_Filter fetchObject()
     * @method \Bitrix\Forum\BadWords\EO_Filter_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Filter_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Forum\BadWords\EO_Filter fetchObject()
     * @method \Bitrix\Forum\BadWords\EO_Filter_Collection fetchCollection()
     */
    class EO_Filter_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Forum\BadWords\EO_Filter createObject($setDefaultValues = true)
     * @method \Bitrix\Forum\BadWords\EO_Filter_Collection createCollection()
     * @method \Bitrix\Forum\BadWords\EO_Filter wakeUpObject($row)
     * @method \Bitrix\Forum\BadWords\EO_Filter_Collection wakeUpCollection($rows)
     */
    class EO_Filter_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Letter
     * @see \Bitrix\Forum\BadWords\LetterTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Forum\BadWords\EO_Letter setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getDictionaryId()
     * @method \Bitrix\Forum\BadWords\EO_Letter setDictionaryId(\int|\Bitrix\Main\DB\SqlExpression $dictionaryId)
     * @method bool hasDictionaryId()
     * @method bool isDictionaryIdFilled()
     * @method bool isDictionaryIdChanged()
     * @method \int remindActualDictionaryId()
     * @method \int requireDictionaryId()
     * @method \Bitrix\Forum\BadWords\EO_Letter resetDictionaryId()
     * @method \Bitrix\Forum\BadWords\EO_Letter unsetDictionaryId()
     * @method \int fillDictionaryId()
     * @method \string getLetter()
     * @method \Bitrix\Forum\BadWords\EO_Letter setLetter(\string|\Bitrix\Main\DB\SqlExpression $letter)
     * @method bool hasLetter()
     * @method bool isLetterFilled()
     * @method bool isLetterChanged()
     * @method \string remindActualLetter()
     * @method \string requireLetter()
     * @method \Bitrix\Forum\BadWords\EO_Letter resetLetter()
     * @method \Bitrix\Forum\BadWords\EO_Letter unsetLetter()
     * @method \string fillLetter()
     * @method \string getReplacement()
     * @method \Bitrix\Forum\BadWords\EO_Letter setReplacement(\string|\Bitrix\Main\DB\SqlExpression $replacement)
     * @method bool hasReplacement()
     * @method bool isReplacementFilled()
     * @method bool isReplacementChanged()
     * @method \string remindActualReplacement()
     * @method \string requireReplacement()
     * @method \Bitrix\Forum\BadWords\EO_Letter resetReplacement()
     * @method \Bitrix\Forum\BadWords\EO_Letter unsetReplacement()
     * @method \string fillReplacement()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Forum\BadWords\EO_Letter set($fieldName, $value)
     * @method \Bitrix\Forum\BadWords\EO_Letter reset($fieldName)
     * @method \Bitrix\Forum\BadWords\EO_Letter unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Forum\BadWords\EO_Letter wakeUp($data)
     */
    class EO_Letter
    {
        /* @var \Bitrix\Forum\BadWords\LetterTable */
        public static $dataClass = '\\Bitrix\\Forum\\BadWords\\LetterTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Letter_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getDictionaryIdList()
     * @method \int[] fillDictionaryId()
     * @method \string[] getLetterList()
     * @method \string[] fillLetter()
     * @method \string[] getReplacementList()
     * @method \string[] fillReplacement()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Forum\BadWords\EO_Letter $object)
     * @method bool has(\Bitrix\Forum\BadWords\EO_Letter $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Forum\BadWords\EO_Letter getByPrimary($primary)
     * @method \Bitrix\Forum\BadWords\EO_Letter[] getAll()
     * @method bool remove(\Bitrix\Forum\BadWords\EO_Letter $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Forum\BadWords\EO_Letter_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Forum\BadWords\EO_Letter current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Letter_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Forum\BadWords\LetterTable */
        public static $dataClass = '\\Bitrix\\Forum\\BadWords\\LetterTable';
    }
    /**
     * @method static EO_Letter_Query query()
     * @method static EO_Letter_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Letter_Result getById($id)
     * @method static EO_Letter_Result getList(array $parameters = array())
     * @method static EO_Letter_Entity getEntity()
     * @method static \Bitrix\Forum\BadWords\EO_Letter createObject($setDefaultValues = true)
     * @method static \Bitrix\Forum\BadWords\EO_Letter_Collection createCollection()
     * @method static \Bitrix\Forum\BadWords\EO_Letter wakeUpObject($row)
     * @method static \Bitrix\Forum\BadWords\EO_Letter_Collection wakeUpCollection($rows)
     */
    class LetterTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Letter_Result exec()
     * @method \Bitrix\Forum\BadWords\EO_Letter fetchObject()
     * @method \Bitrix\Forum\BadWords\EO_Letter_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Letter_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Forum\BadWords\EO_Letter fetchObject()
     * @method \Bitrix\Forum\BadWords\EO_Letter_Collection fetchCollection()
     */
    class EO_Letter_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Forum\BadWords\EO_Letter createObject($setDefaultValues = true)
     * @method \Bitrix\Forum\BadWords\EO_Letter_Collection createCollection()
     * @method \Bitrix\Forum\BadWords\EO_Letter wakeUpObject($row)
     * @method \Bitrix\Forum\BadWords\EO_Letter_Collection wakeUpCollection($rows)
     */
    class EO_Letter_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Forum {
    /**
     * EO_File
     * @see \Bitrix\Forum\FileTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getForumId()
     * @method \Bitrix\Forum\EO_File setForumId(\int|\Bitrix\Main\DB\SqlExpression $forumId)
     * @method bool hasForumId()
     * @method bool isForumIdFilled()
     * @method bool isForumIdChanged()
     * @method \int remindActualForumId()
     * @method \int requireForumId()
     * @method \Bitrix\Forum\EO_File resetForumId()
     * @method \Bitrix\Forum\EO_File unsetForumId()
     * @method \int fillForumId()
     * @method \int getTopicId()
     * @method \Bitrix\Forum\EO_File setTopicId(\int|\Bitrix\Main\DB\SqlExpression $topicId)
     * @method bool hasTopicId()
     * @method bool isTopicIdFilled()
     * @method bool isTopicIdChanged()
     * @method \int remindActualTopicId()
     * @method \int requireTopicId()
     * @method \Bitrix\Forum\EO_File resetTopicId()
     * @method \Bitrix\Forum\EO_File unsetTopicId()
     * @method \int fillTopicId()
     * @method \int getMessageId()
     * @method \Bitrix\Forum\EO_File setMessageId(\int|\Bitrix\Main\DB\SqlExpression $messageId)
     * @method bool hasMessageId()
     * @method bool isMessageIdFilled()
     * @method bool isMessageIdChanged()
     * @method \int remindActualMessageId()
     * @method \int requireMessageId()
     * @method \Bitrix\Forum\EO_File resetMessageId()
     * @method \Bitrix\Forum\EO_File unsetMessageId()
     * @method \int fillMessageId()
     * @method \int getFileId()
     * @method \Bitrix\Forum\EO_File setFileId(\int|\Bitrix\Main\DB\SqlExpression $fileId)
     * @method bool hasFileId()
     * @method bool isFileIdFilled()
     * @method bool isFileIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Forum\EO_File setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Forum\EO_File resetUserId()
     * @method \Bitrix\Forum\EO_File unsetUserId()
     * @method \int fillUserId()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Forum\EO_File setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Forum\EO_File resetUser()
     * @method \Bitrix\Forum\EO_File unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Forum\EO_File setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Forum\EO_File resetTimestampX()
     * @method \Bitrix\Forum\EO_File unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \int getHits()
     * @method \Bitrix\Forum\EO_File setHits(\int|\Bitrix\Main\DB\SqlExpression $hits)
     * @method bool hasHits()
     * @method bool isHitsFilled()
     * @method bool isHitsChanged()
     * @method \int remindActualHits()
     * @method \int requireHits()
     * @method \Bitrix\Forum\EO_File resetHits()
     * @method \Bitrix\Forum\EO_File unsetHits()
     * @method \int fillHits()
     * @method \Bitrix\Forum\EO_Forum getForum()
     * @method \Bitrix\Forum\EO_Forum remindActualForum()
     * @method \Bitrix\Forum\EO_Forum requireForum()
     * @method \Bitrix\Forum\EO_File setForum(\Bitrix\Forum\EO_Forum $object)
     * @method \Bitrix\Forum\EO_File resetForum()
     * @method \Bitrix\Forum\EO_File unsetForum()
     * @method bool hasForum()
     * @method bool isForumFilled()
     * @method bool isForumChanged()
     * @method \Bitrix\Forum\EO_Forum fillForum()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Forum\EO_File set($fieldName, $value)
     * @method \Bitrix\Forum\EO_File reset($fieldName)
     * @method \Bitrix\Forum\EO_File unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Forum\EO_File wakeUp($data)
     */
    class EO_File
    {
        /* @var \Bitrix\Forum\FileTable */
        public static $dataClass = '\\Bitrix\\Forum\\FileTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_File_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getForumIdList()
     * @method \int[] fillForumId()
     * @method \int[] getTopicIdList()
     * @method \int[] fillTopicId()
     * @method \int[] getMessageIdList()
     * @method \int[] fillMessageId()
     * @method \int[] getFileIdList()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Forum\EO_File_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \int[] getHitsList()
     * @method \int[] fillHits()
     * @method \Bitrix\Forum\EO_Forum[] getForumList()
     * @method \Bitrix\Forum\EO_File_Collection getForumCollection()
     * @method \Bitrix\Forum\EO_Forum_Collection fillForum()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Forum\EO_File $object)
     * @method bool has(\Bitrix\Forum\EO_File $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Forum\EO_File getByPrimary($primary)
     * @method \Bitrix\Forum\EO_File[] getAll()
     * @method bool remove(\Bitrix\Forum\EO_File $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Forum\EO_File_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Forum\EO_File current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_File_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Forum\FileTable */
        public static $dataClass = '\\Bitrix\\Forum\\FileTable';
    }
    /**
     * @method static EO_File_Query query()
     * @method static EO_File_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_File_Result getById($id)
     * @method static EO_File_Result getList(array $parameters = array())
     * @method static EO_File_Entity getEntity()
     * @method static \Bitrix\Forum\EO_File createObject($setDefaultValues = true)
     * @method static \Bitrix\Forum\EO_File_Collection createCollection()
     * @method static \Bitrix\Forum\EO_File wakeUpObject($row)
     * @method static \Bitrix\Forum\EO_File_Collection wakeUpCollection($rows)
     */
    class FileTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_File_Result exec()
     * @method \Bitrix\Forum\EO_File fetchObject()
     * @method \Bitrix\Forum\EO_File_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_File_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Forum\EO_File fetchObject()
     * @method \Bitrix\Forum\EO_File_Collection fetchCollection()
     */
    class EO_File_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Forum\EO_File createObject($setDefaultValues = true)
     * @method \Bitrix\Forum\EO_File_Collection createCollection()
     * @method \Bitrix\Forum\EO_File wakeUpObject($row)
     * @method \Bitrix\Forum\EO_File_Collection wakeUpCollection($rows)
     */
    class EO_File_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Forum
     * @see \Bitrix\Forum\ForumTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Forum\EO_Forum setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getForumGroupId()
     * @method \Bitrix\Forum\EO_Forum setForumGroupId(\int|\Bitrix\Main\DB\SqlExpression $forumGroupId)
     * @method bool hasForumGroupId()
     * @method bool isForumGroupIdFilled()
     * @method bool isForumGroupIdChanged()
     * @method \int remindActualForumGroupId()
     * @method \int requireForumGroupId()
     * @method \Bitrix\Forum\EO_Forum resetForumGroupId()
     * @method \Bitrix\Forum\EO_Forum unsetForumGroupId()
     * @method \int fillForumGroupId()
     * @method \string getName()
     * @method \Bitrix\Forum\EO_Forum setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Forum\EO_Forum resetName()
     * @method \Bitrix\Forum\EO_Forum unsetName()
     * @method \string fillName()
     * @method \string getDescription()
     * @method \Bitrix\Forum\EO_Forum setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Forum\EO_Forum resetDescription()
     * @method \Bitrix\Forum\EO_Forum unsetDescription()
     * @method \string fillDescription()
     * @method \int getSort()
     * @method \Bitrix\Forum\EO_Forum setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Forum\EO_Forum resetSort()
     * @method \Bitrix\Forum\EO_Forum unsetSort()
     * @method \int fillSort()
     * @method \boolean getActive()
     * @method \Bitrix\Forum\EO_Forum setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Forum\EO_Forum resetActive()
     * @method \Bitrix\Forum\EO_Forum unsetActive()
     * @method \boolean fillActive()
     * @method \boolean getAllowHtml()
     * @method \Bitrix\Forum\EO_Forum setAllowHtml(\boolean|\Bitrix\Main\DB\SqlExpression $allowHtml)
     * @method bool hasAllowHtml()
     * @method bool isAllowHtmlFilled()
     * @method bool isAllowHtmlChanged()
     * @method \boolean remindActualAllowHtml()
     * @method \boolean requireAllowHtml()
     * @method \Bitrix\Forum\EO_Forum resetAllowHtml()
     * @method \Bitrix\Forum\EO_Forum unsetAllowHtml()
     * @method \boolean fillAllowHtml()
     * @method \boolean getAllowAnchor()
     * @method \Bitrix\Forum\EO_Forum setAllowAnchor(\boolean|\Bitrix\Main\DB\SqlExpression $allowAnchor)
     * @method bool hasAllowAnchor()
     * @method bool isAllowAnchorFilled()
     * @method bool isAllowAnchorChanged()
     * @method \boolean remindActualAllowAnchor()
     * @method \boolean requireAllowAnchor()
     * @method \Bitrix\Forum\EO_Forum resetAllowAnchor()
     * @method \Bitrix\Forum\EO_Forum unsetAllowAnchor()
     * @method \boolean fillAllowAnchor()
     * @method \boolean getAllowBiu()
     * @method \Bitrix\Forum\EO_Forum setAllowBiu(\boolean|\Bitrix\Main\DB\SqlExpression $allowBiu)
     * @method bool hasAllowBiu()
     * @method bool isAllowBiuFilled()
     * @method bool isAllowBiuChanged()
     * @method \boolean remindActualAllowBiu()
     * @method \boolean requireAllowBiu()
     * @method \Bitrix\Forum\EO_Forum resetAllowBiu()
     * @method \Bitrix\Forum\EO_Forum unsetAllowBiu()
     * @method \boolean fillAllowBiu()
     * @method \boolean getAllowImg()
     * @method \Bitrix\Forum\EO_Forum setAllowImg(\boolean|\Bitrix\Main\DB\SqlExpression $allowImg)
     * @method bool hasAllowImg()
     * @method bool isAllowImgFilled()
     * @method bool isAllowImgChanged()
     * @method \boolean remindActualAllowImg()
     * @method \boolean requireAllowImg()
     * @method \Bitrix\Forum\EO_Forum resetAllowImg()
     * @method \Bitrix\Forum\EO_Forum unsetAllowImg()
     * @method \boolean fillAllowImg()
     * @method \boolean getAllowVideo()
     * @method \Bitrix\Forum\EO_Forum setAllowVideo(\boolean|\Bitrix\Main\DB\SqlExpression $allowVideo)
     * @method bool hasAllowVideo()
     * @method bool isAllowVideoFilled()
     * @method bool isAllowVideoChanged()
     * @method \boolean remindActualAllowVideo()
     * @method \boolean requireAllowVideo()
     * @method \Bitrix\Forum\EO_Forum resetAllowVideo()
     * @method \Bitrix\Forum\EO_Forum unsetAllowVideo()
     * @method \boolean fillAllowVideo()
     * @method \boolean getAllowList()
     * @method \Bitrix\Forum\EO_Forum setAllowList(\boolean|\Bitrix\Main\DB\SqlExpression $allowList)
     * @method bool hasAllowList()
     * @method bool isAllowListFilled()
     * @method bool isAllowListChanged()
     * @method \boolean remindActualAllowList()
     * @method \boolean requireAllowList()
     * @method \Bitrix\Forum\EO_Forum resetAllowList()
     * @method \Bitrix\Forum\EO_Forum unsetAllowList()
     * @method \boolean fillAllowList()
     * @method \boolean getAllowQuote()
     * @method \Bitrix\Forum\EO_Forum setAllowQuote(\boolean|\Bitrix\Main\DB\SqlExpression $allowQuote)
     * @method bool hasAllowQuote()
     * @method bool isAllowQuoteFilled()
     * @method bool isAllowQuoteChanged()
     * @method \boolean remindActualAllowQuote()
     * @method \boolean requireAllowQuote()
     * @method \Bitrix\Forum\EO_Forum resetAllowQuote()
     * @method \Bitrix\Forum\EO_Forum unsetAllowQuote()
     * @method \boolean fillAllowQuote()
     * @method \boolean getAllowCode()
     * @method \Bitrix\Forum\EO_Forum setAllowCode(\boolean|\Bitrix\Main\DB\SqlExpression $allowCode)
     * @method bool hasAllowCode()
     * @method bool isAllowCodeFilled()
     * @method bool isAllowCodeChanged()
     * @method \boolean remindActualAllowCode()
     * @method \boolean requireAllowCode()
     * @method \Bitrix\Forum\EO_Forum resetAllowCode()
     * @method \Bitrix\Forum\EO_Forum unsetAllowCode()
     * @method \boolean fillAllowCode()
     * @method \boolean getAllowFont()
     * @method \Bitrix\Forum\EO_Forum setAllowFont(\boolean|\Bitrix\Main\DB\SqlExpression $allowFont)
     * @method bool hasAllowFont()
     * @method bool isAllowFontFilled()
     * @method bool isAllowFontChanged()
     * @method \boolean remindActualAllowFont()
     * @method \boolean requireAllowFont()
     * @method \Bitrix\Forum\EO_Forum resetAllowFont()
     * @method \Bitrix\Forum\EO_Forum unsetAllowFont()
     * @method \boolean fillAllowFont()
     * @method \boolean getAllowSmiles()
     * @method \Bitrix\Forum\EO_Forum setAllowSmiles(\boolean|\Bitrix\Main\DB\SqlExpression $allowSmiles)
     * @method bool hasAllowSmiles()
     * @method bool isAllowSmilesFilled()
     * @method bool isAllowSmilesChanged()
     * @method \boolean remindActualAllowSmiles()
     * @method \boolean requireAllowSmiles()
     * @method \Bitrix\Forum\EO_Forum resetAllowSmiles()
     * @method \Bitrix\Forum\EO_Forum unsetAllowSmiles()
     * @method \boolean fillAllowSmiles()
     * @method \boolean getAllowTable()
     * @method \Bitrix\Forum\EO_Forum setAllowTable(\boolean|\Bitrix\Main\DB\SqlExpression $allowTable)
     * @method bool hasAllowTable()
     * @method bool isAllowTableFilled()
     * @method bool isAllowTableChanged()
     * @method \boolean remindActualAllowTable()
     * @method \boolean requireAllowTable()
     * @method \Bitrix\Forum\EO_Forum resetAllowTable()
     * @method \Bitrix\Forum\EO_Forum unsetAllowTable()
     * @method \boolean fillAllowTable()
     * @method \boolean getAllowAlign()
     * @method \Bitrix\Forum\EO_Forum setAllowAlign(\boolean|\Bitrix\Main\DB\SqlExpression $allowAlign)
     * @method bool hasAllowAlign()
     * @method bool isAllowAlignFilled()
     * @method bool isAllowAlignChanged()
     * @method \boolean remindActualAllowAlign()
     * @method \boolean requireAllowAlign()
     * @method \Bitrix\Forum\EO_Forum resetAllowAlign()
     * @method \Bitrix\Forum\EO_Forum unsetAllowAlign()
     * @method \boolean fillAllowAlign()
     * @method \boolean getAllowNl2br()
     * @method \Bitrix\Forum\EO_Forum setAllowNl2br(\boolean|\Bitrix\Main\DB\SqlExpression $allowNl2br)
     * @method bool hasAllowNl2br()
     * @method bool isAllowNl2brFilled()
     * @method bool isAllowNl2brChanged()
     * @method \boolean remindActualAllowNl2br()
     * @method \boolean requireAllowNl2br()
     * @method \Bitrix\Forum\EO_Forum resetAllowNl2br()
     * @method \Bitrix\Forum\EO_Forum unsetAllowNl2br()
     * @method \boolean fillAllowNl2br()
     * @method \string getAllowUpload()
     * @method \Bitrix\Forum\EO_Forum setAllowUpload(\string|\Bitrix\Main\DB\SqlExpression $allowUpload)
     * @method bool hasAllowUpload()
     * @method bool isAllowUploadFilled()
     * @method bool isAllowUploadChanged()
     * @method \string remindActualAllowUpload()
     * @method \string requireAllowUpload()
     * @method \Bitrix\Forum\EO_Forum resetAllowUpload()
     * @method \Bitrix\Forum\EO_Forum unsetAllowUpload()
     * @method \string fillAllowUpload()
     * @method \string getAllowUploadExt()
     * @method \Bitrix\Forum\EO_Forum setAllowUploadExt(\string|\Bitrix\Main\DB\SqlExpression $allowUploadExt)
     * @method bool hasAllowUploadExt()
     * @method bool isAllowUploadExtFilled()
     * @method bool isAllowUploadExtChanged()
     * @method \string remindActualAllowUploadExt()
     * @method \string requireAllowUploadExt()
     * @method \Bitrix\Forum\EO_Forum resetAllowUploadExt()
     * @method \Bitrix\Forum\EO_Forum unsetAllowUploadExt()
     * @method \string fillAllowUploadExt()
     * @method \boolean getAllowMoveTopic()
     * @method \Bitrix\Forum\EO_Forum setAllowMoveTopic(\boolean|\Bitrix\Main\DB\SqlExpression $allowMoveTopic)
     * @method bool hasAllowMoveTopic()
     * @method bool isAllowMoveTopicFilled()
     * @method bool isAllowMoveTopicChanged()
     * @method \boolean remindActualAllowMoveTopic()
     * @method \boolean requireAllowMoveTopic()
     * @method \Bitrix\Forum\EO_Forum resetAllowMoveTopic()
     * @method \Bitrix\Forum\EO_Forum unsetAllowMoveTopic()
     * @method \boolean fillAllowMoveTopic()
     * @method \boolean getAllowTopicTitled()
     * @method \Bitrix\Forum\EO_Forum setAllowTopicTitled(\boolean|\Bitrix\Main\DB\SqlExpression $allowTopicTitled)
     * @method bool hasAllowTopicTitled()
     * @method bool isAllowTopicTitledFilled()
     * @method bool isAllowTopicTitledChanged()
     * @method \boolean remindActualAllowTopicTitled()
     * @method \boolean requireAllowTopicTitled()
     * @method \Bitrix\Forum\EO_Forum resetAllowTopicTitled()
     * @method \Bitrix\Forum\EO_Forum unsetAllowTopicTitled()
     * @method \boolean fillAllowTopicTitled()
     * @method \boolean getAllowSignature()
     * @method \Bitrix\Forum\EO_Forum setAllowSignature(\boolean|\Bitrix\Main\DB\SqlExpression $allowSignature)
     * @method bool hasAllowSignature()
     * @method bool isAllowSignatureFilled()
     * @method bool isAllowSignatureChanged()
     * @method \boolean remindActualAllowSignature()
     * @method \boolean requireAllowSignature()
     * @method \Bitrix\Forum\EO_Forum resetAllowSignature()
     * @method \Bitrix\Forum\EO_Forum unsetAllowSignature()
     * @method \boolean fillAllowSignature()
     * @method \boolean getAskGuestEmail()
     * @method \Bitrix\Forum\EO_Forum setAskGuestEmail(\boolean|\Bitrix\Main\DB\SqlExpression $askGuestEmail)
     * @method bool hasAskGuestEmail()
     * @method bool isAskGuestEmailFilled()
     * @method bool isAskGuestEmailChanged()
     * @method \boolean remindActualAskGuestEmail()
     * @method \boolean requireAskGuestEmail()
     * @method \Bitrix\Forum\EO_Forum resetAskGuestEmail()
     * @method \Bitrix\Forum\EO_Forum unsetAskGuestEmail()
     * @method \boolean fillAskGuestEmail()
     * @method \boolean getUseCaptcha()
     * @method \Bitrix\Forum\EO_Forum setUseCaptcha(\boolean|\Bitrix\Main\DB\SqlExpression $useCaptcha)
     * @method bool hasUseCaptcha()
     * @method bool isUseCaptchaFilled()
     * @method bool isUseCaptchaChanged()
     * @method \boolean remindActualUseCaptcha()
     * @method \boolean requireUseCaptcha()
     * @method \Bitrix\Forum\EO_Forum resetUseCaptcha()
     * @method \Bitrix\Forum\EO_Forum unsetUseCaptcha()
     * @method \boolean fillUseCaptcha()
     * @method \boolean getIndexation()
     * @method \Bitrix\Forum\EO_Forum setIndexation(\boolean|\Bitrix\Main\DB\SqlExpression $indexation)
     * @method bool hasIndexation()
     * @method bool isIndexationFilled()
     * @method bool isIndexationChanged()
     * @method \boolean remindActualIndexation()
     * @method \boolean requireIndexation()
     * @method \Bitrix\Forum\EO_Forum resetIndexation()
     * @method \Bitrix\Forum\EO_Forum unsetIndexation()
     * @method \boolean fillIndexation()
     * @method \boolean getDeduplication()
     * @method \Bitrix\Forum\EO_Forum setDeduplication(\boolean|\Bitrix\Main\DB\SqlExpression $deduplication)
     * @method bool hasDeduplication()
     * @method bool isDeduplicationFilled()
     * @method bool isDeduplicationChanged()
     * @method \boolean remindActualDeduplication()
     * @method \boolean requireDeduplication()
     * @method \Bitrix\Forum\EO_Forum resetDeduplication()
     * @method \Bitrix\Forum\EO_Forum unsetDeduplication()
     * @method \boolean fillDeduplication()
     * @method \boolean getModeration()
     * @method \Bitrix\Forum\EO_Forum setModeration(\boolean|\Bitrix\Main\DB\SqlExpression $moderation)
     * @method bool hasModeration()
     * @method bool isModerationFilled()
     * @method bool isModerationChanged()
     * @method \boolean remindActualModeration()
     * @method \boolean requireModeration()
     * @method \Bitrix\Forum\EO_Forum resetModeration()
     * @method \Bitrix\Forum\EO_Forum unsetModeration()
     * @method \boolean fillModeration()
     * @method \string getOrderBy()
     * @method \Bitrix\Forum\EO_Forum setOrderBy(\string|\Bitrix\Main\DB\SqlExpression $orderBy)
     * @method bool hasOrderBy()
     * @method bool isOrderByFilled()
     * @method bool isOrderByChanged()
     * @method \string remindActualOrderBy()
     * @method \string requireOrderBy()
     * @method \Bitrix\Forum\EO_Forum resetOrderBy()
     * @method \Bitrix\Forum\EO_Forum unsetOrderBy()
     * @method \string fillOrderBy()
     * @method \string getOrderDirection()
     * @method \Bitrix\Forum\EO_Forum setOrderDirection(\string|\Bitrix\Main\DB\SqlExpression $orderDirection)
     * @method bool hasOrderDirection()
     * @method bool isOrderDirectionFilled()
     * @method bool isOrderDirectionChanged()
     * @method \string remindActualOrderDirection()
     * @method \string requireOrderDirection()
     * @method \Bitrix\Forum\EO_Forum resetOrderDirection()
     * @method \Bitrix\Forum\EO_Forum unsetOrderDirection()
     * @method \string fillOrderDirection()
     * @method \int getTopics()
     * @method \Bitrix\Forum\EO_Forum setTopics(\int|\Bitrix\Main\DB\SqlExpression $topics)
     * @method bool hasTopics()
     * @method bool isTopicsFilled()
     * @method bool isTopicsChanged()
     * @method \int remindActualTopics()
     * @method \int requireTopics()
     * @method \Bitrix\Forum\EO_Forum resetTopics()
     * @method \Bitrix\Forum\EO_Forum unsetTopics()
     * @method \int fillTopics()
     * @method \int getPosts()
     * @method \Bitrix\Forum\EO_Forum setPosts(\int|\Bitrix\Main\DB\SqlExpression $posts)
     * @method bool hasPosts()
     * @method bool isPostsFilled()
     * @method bool isPostsChanged()
     * @method \int remindActualPosts()
     * @method \int requirePosts()
     * @method \Bitrix\Forum\EO_Forum resetPosts()
     * @method \Bitrix\Forum\EO_Forum unsetPosts()
     * @method \int fillPosts()
     * @method \int getPostsUnapproved()
     * @method \Bitrix\Forum\EO_Forum setPostsUnapproved(\int|\Bitrix\Main\DB\SqlExpression $postsUnapproved)
     * @method bool hasPostsUnapproved()
     * @method bool isPostsUnapprovedFilled()
     * @method bool isPostsUnapprovedChanged()
     * @method \int remindActualPostsUnapproved()
     * @method \int requirePostsUnapproved()
     * @method \Bitrix\Forum\EO_Forum resetPostsUnapproved()
     * @method \Bitrix\Forum\EO_Forum unsetPostsUnapproved()
     * @method \int fillPostsUnapproved()
     * @method \int getLastPosterId()
     * @method \Bitrix\Forum\EO_Forum setLastPosterId(\int|\Bitrix\Main\DB\SqlExpression $lastPosterId)
     * @method bool hasLastPosterId()
     * @method bool isLastPosterIdFilled()
     * @method bool isLastPosterIdChanged()
     * @method \int remindActualLastPosterId()
     * @method \int requireLastPosterId()
     * @method \Bitrix\Forum\EO_Forum resetLastPosterId()
     * @method \Bitrix\Forum\EO_Forum unsetLastPosterId()
     * @method \int fillLastPosterId()
     * @method \string getLastPosterName()
     * @method \Bitrix\Forum\EO_Forum setLastPosterName(\string|\Bitrix\Main\DB\SqlExpression $lastPosterName)
     * @method bool hasLastPosterName()
     * @method bool isLastPosterNameFilled()
     * @method bool isLastPosterNameChanged()
     * @method \string remindActualLastPosterName()
     * @method \string requireLastPosterName()
     * @method \Bitrix\Forum\EO_Forum resetLastPosterName()
     * @method \Bitrix\Forum\EO_Forum unsetLastPosterName()
     * @method \string fillLastPosterName()
     * @method \Bitrix\Main\Type\DateTime getLastPostDate()
     * @method \Bitrix\Forum\EO_Forum setLastPostDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastPostDate)
     * @method bool hasLastPostDate()
     * @method bool isLastPostDateFilled()
     * @method bool isLastPostDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastPostDate()
     * @method \Bitrix\Main\Type\DateTime requireLastPostDate()
     * @method \Bitrix\Forum\EO_Forum resetLastPostDate()
     * @method \Bitrix\Forum\EO_Forum unsetLastPostDate()
     * @method \Bitrix\Main\Type\DateTime fillLastPostDate()
     * @method \int getLastMessageId()
     * @method \Bitrix\Forum\EO_Forum setLastMessageId(\int|\Bitrix\Main\DB\SqlExpression $lastMessageId)
     * @method bool hasLastMessageId()
     * @method bool isLastMessageIdFilled()
     * @method bool isLastMessageIdChanged()
     * @method \int remindActualLastMessageId()
     * @method \int requireLastMessageId()
     * @method \Bitrix\Forum\EO_Forum resetLastMessageId()
     * @method \Bitrix\Forum\EO_Forum unsetLastMessageId()
     * @method \int fillLastMessageId()
     * @method \int getAbsLastPosterId()
     * @method \Bitrix\Forum\EO_Forum setAbsLastPosterId(\int|\Bitrix\Main\DB\SqlExpression $absLastPosterId)
     * @method bool hasAbsLastPosterId()
     * @method bool isAbsLastPosterIdFilled()
     * @method bool isAbsLastPosterIdChanged()
     * @method \int remindActualAbsLastPosterId()
     * @method \int requireAbsLastPosterId()
     * @method \Bitrix\Forum\EO_Forum resetAbsLastPosterId()
     * @method \Bitrix\Forum\EO_Forum unsetAbsLastPosterId()
     * @method \int fillAbsLastPosterId()
     * @method \string getAbsLastPosterName()
     * @method \Bitrix\Forum\EO_Forum setAbsLastPosterName(\string|\Bitrix\Main\DB\SqlExpression $absLastPosterName)
     * @method bool hasAbsLastPosterName()
     * @method bool isAbsLastPosterNameFilled()
     * @method bool isAbsLastPosterNameChanged()
     * @method \string remindActualAbsLastPosterName()
     * @method \string requireAbsLastPosterName()
     * @method \Bitrix\Forum\EO_Forum resetAbsLastPosterName()
     * @method \Bitrix\Forum\EO_Forum unsetAbsLastPosterName()
     * @method \string fillAbsLastPosterName()
     * @method \Bitrix\Main\Type\DateTime getAbsLastPostDate()
     * @method \Bitrix\Forum\EO_Forum setAbsLastPostDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $absLastPostDate)
     * @method bool hasAbsLastPostDate()
     * @method bool isAbsLastPostDateFilled()
     * @method bool isAbsLastPostDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualAbsLastPostDate()
     * @method \Bitrix\Main\Type\DateTime requireAbsLastPostDate()
     * @method \Bitrix\Forum\EO_Forum resetAbsLastPostDate()
     * @method \Bitrix\Forum\EO_Forum unsetAbsLastPostDate()
     * @method \Bitrix\Main\Type\DateTime fillAbsLastPostDate()
     * @method \int getAbsLastMessageId()
     * @method \Bitrix\Forum\EO_Forum setAbsLastMessageId(\int|\Bitrix\Main\DB\SqlExpression $absLastMessageId)
     * @method bool hasAbsLastMessageId()
     * @method bool isAbsLastMessageIdFilled()
     * @method bool isAbsLastMessageIdChanged()
     * @method \int remindActualAbsLastMessageId()
     * @method \int requireAbsLastMessageId()
     * @method \Bitrix\Forum\EO_Forum resetAbsLastMessageId()
     * @method \Bitrix\Forum\EO_Forum unsetAbsLastMessageId()
     * @method \int fillAbsLastMessageId()
     * @method \string getEvent1()
     * @method \Bitrix\Forum\EO_Forum setEvent1(\string|\Bitrix\Main\DB\SqlExpression $event1)
     * @method bool hasEvent1()
     * @method bool isEvent1Filled()
     * @method bool isEvent1Changed()
     * @method \string remindActualEvent1()
     * @method \string requireEvent1()
     * @method \Bitrix\Forum\EO_Forum resetEvent1()
     * @method \Bitrix\Forum\EO_Forum unsetEvent1()
     * @method \string fillEvent1()
     * @method \string getEvent2()
     * @method \Bitrix\Forum\EO_Forum setEvent2(\string|\Bitrix\Main\DB\SqlExpression $event2)
     * @method bool hasEvent2()
     * @method bool isEvent2Filled()
     * @method bool isEvent2Changed()
     * @method \string remindActualEvent2()
     * @method \string requireEvent2()
     * @method \Bitrix\Forum\EO_Forum resetEvent2()
     * @method \Bitrix\Forum\EO_Forum unsetEvent2()
     * @method \string fillEvent2()
     * @method \string getEvent3()
     * @method \Bitrix\Forum\EO_Forum setEvent3(\string|\Bitrix\Main\DB\SqlExpression $event3)
     * @method bool hasEvent3()
     * @method bool isEvent3Filled()
     * @method bool isEvent3Changed()
     * @method \string remindActualEvent3()
     * @method \string requireEvent3()
     * @method \Bitrix\Forum\EO_Forum resetEvent3()
     * @method \Bitrix\Forum\EO_Forum unsetEvent3()
     * @method \string fillEvent3()
     * @method \string getXmlId()
     * @method \Bitrix\Forum\EO_Forum setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Forum\EO_Forum resetXmlId()
     * @method \Bitrix\Forum\EO_Forum unsetXmlId()
     * @method \string fillXmlId()
     * @method \string getHtml()
     * @method \Bitrix\Forum\EO_Forum setHtml(\string|\Bitrix\Main\DB\SqlExpression $html)
     * @method bool hasHtml()
     * @method bool isHtmlFilled()
     * @method bool isHtmlChanged()
     * @method \string remindActualHtml()
     * @method \string requireHtml()
     * @method \Bitrix\Forum\EO_Forum resetHtml()
     * @method \Bitrix\Forum\EO_Forum unsetHtml()
     * @method \string fillHtml()
     * @method \Bitrix\Forum\EO_Permission getPermission()
     * @method \Bitrix\Forum\EO_Permission remindActualPermission()
     * @method \Bitrix\Forum\EO_Permission requirePermission()
     * @method \Bitrix\Forum\EO_Forum setPermission(\Bitrix\Forum\EO_Permission $object)
     * @method \Bitrix\Forum\EO_Forum resetPermission()
     * @method \Bitrix\Forum\EO_Forum unsetPermission()
     * @method bool hasPermission()
     * @method bool isPermissionFilled()
     * @method bool isPermissionChanged()
     * @method \Bitrix\Forum\EO_Permission fillPermission()
     * @method \Bitrix\Forum\EO_ForumSite getSite()
     * @method \Bitrix\Forum\EO_ForumSite remindActualSite()
     * @method \Bitrix\Forum\EO_ForumSite requireSite()
     * @method \Bitrix\Forum\EO_Forum setSite(\Bitrix\Forum\EO_ForumSite $object)
     * @method \Bitrix\Forum\EO_Forum resetSite()
     * @method \Bitrix\Forum\EO_Forum unsetSite()
     * @method bool hasSite()
     * @method bool isSiteFilled()
     * @method bool isSiteChanged()
     * @method \Bitrix\Forum\EO_ForumSite fillSite()
     * @method \Bitrix\Forum\EO_Group getGroup()
     * @method \Bitrix\Forum\EO_Group remindActualGroup()
     * @method \Bitrix\Forum\EO_Group requireGroup()
     * @method \Bitrix\Forum\EO_Forum setGroup(\Bitrix\Forum\EO_Group $object)
     * @method \Bitrix\Forum\EO_Forum resetGroup()
     * @method \Bitrix\Forum\EO_Forum unsetGroup()
     * @method bool hasGroup()
     * @method bool isGroupFilled()
     * @method bool isGroupChanged()
     * @method \Bitrix\Forum\EO_Group fillGroup()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Forum\EO_Forum set($fieldName, $value)
     * @method \Bitrix\Forum\EO_Forum reset($fieldName)
     * @method \Bitrix\Forum\EO_Forum unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Forum\EO_Forum wakeUp($data)
     */
    class EO_Forum
    {
        /* @var \Bitrix\Forum\ForumTable */
        public static $dataClass = '\\Bitrix\\Forum\\ForumTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Forum_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getForumGroupIdList()
     * @method \int[] fillForumGroupId()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \boolean[] getAllowHtmlList()
     * @method \boolean[] fillAllowHtml()
     * @method \boolean[] getAllowAnchorList()
     * @method \boolean[] fillAllowAnchor()
     * @method \boolean[] getAllowBiuList()
     * @method \boolean[] fillAllowBiu()
     * @method \boolean[] getAllowImgList()
     * @method \boolean[] fillAllowImg()
     * @method \boolean[] getAllowVideoList()
     * @method \boolean[] fillAllowVideo()
     * @method \boolean[] getAllowListList()
     * @method \boolean[] fillAllowList()
     * @method \boolean[] getAllowQuoteList()
     * @method \boolean[] fillAllowQuote()
     * @method \boolean[] getAllowCodeList()
     * @method \boolean[] fillAllowCode()
     * @method \boolean[] getAllowFontList()
     * @method \boolean[] fillAllowFont()
     * @method \boolean[] getAllowSmilesList()
     * @method \boolean[] fillAllowSmiles()
     * @method \boolean[] getAllowTableList()
     * @method \boolean[] fillAllowTable()
     * @method \boolean[] getAllowAlignList()
     * @method \boolean[] fillAllowAlign()
     * @method \boolean[] getAllowNl2brList()
     * @method \boolean[] fillAllowNl2br()
     * @method \string[] getAllowUploadList()
     * @method \string[] fillAllowUpload()
     * @method \string[] getAllowUploadExtList()
     * @method \string[] fillAllowUploadExt()
     * @method \boolean[] getAllowMoveTopicList()
     * @method \boolean[] fillAllowMoveTopic()
     * @method \boolean[] getAllowTopicTitledList()
     * @method \boolean[] fillAllowTopicTitled()
     * @method \boolean[] getAllowSignatureList()
     * @method \boolean[] fillAllowSignature()
     * @method \boolean[] getAskGuestEmailList()
     * @method \boolean[] fillAskGuestEmail()
     * @method \boolean[] getUseCaptchaList()
     * @method \boolean[] fillUseCaptcha()
     * @method \boolean[] getIndexationList()
     * @method \boolean[] fillIndexation()
     * @method \boolean[] getDeduplicationList()
     * @method \boolean[] fillDeduplication()
     * @method \boolean[] getModerationList()
     * @method \boolean[] fillModeration()
     * @method \string[] getOrderByList()
     * @method \string[] fillOrderBy()
     * @method \string[] getOrderDirectionList()
     * @method \string[] fillOrderDirection()
     * @method \int[] getTopicsList()
     * @method \int[] fillTopics()
     * @method \int[] getPostsList()
     * @method \int[] fillPosts()
     * @method \int[] getPostsUnapprovedList()
     * @method \int[] fillPostsUnapproved()
     * @method \int[] getLastPosterIdList()
     * @method \int[] fillLastPosterId()
     * @method \string[] getLastPosterNameList()
     * @method \string[] fillLastPosterName()
     * @method \Bitrix\Main\Type\DateTime[] getLastPostDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastPostDate()
     * @method \int[] getLastMessageIdList()
     * @method \int[] fillLastMessageId()
     * @method \int[] getAbsLastPosterIdList()
     * @method \int[] fillAbsLastPosterId()
     * @method \string[] getAbsLastPosterNameList()
     * @method \string[] fillAbsLastPosterName()
     * @method \Bitrix\Main\Type\DateTime[] getAbsLastPostDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillAbsLastPostDate()
     * @method \int[] getAbsLastMessageIdList()
     * @method \int[] fillAbsLastMessageId()
     * @method \string[] getEvent1List()
     * @method \string[] fillEvent1()
     * @method \string[] getEvent2List()
     * @method \string[] fillEvent2()
     * @method \string[] getEvent3List()
     * @method \string[] fillEvent3()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \string[] getHtmlList()
     * @method \string[] fillHtml()
     * @method \Bitrix\Forum\EO_Permission[] getPermissionList()
     * @method \Bitrix\Forum\EO_Forum_Collection getPermissionCollection()
     * @method \Bitrix\Forum\EO_Permission_Collection fillPermission()
     * @method \Bitrix\Forum\EO_ForumSite[] getSiteList()
     * @method \Bitrix\Forum\EO_Forum_Collection getSiteCollection()
     * @method \Bitrix\Forum\EO_ForumSite_Collection fillSite()
     * @method \Bitrix\Forum\EO_Group[] getGroupList()
     * @method \Bitrix\Forum\EO_Forum_Collection getGroupCollection()
     * @method \Bitrix\Forum\EO_Group_Collection fillGroup()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Forum\EO_Forum $object)
     * @method bool has(\Bitrix\Forum\EO_Forum $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Forum\EO_Forum getByPrimary($primary)
     * @method \Bitrix\Forum\EO_Forum[] getAll()
     * @method bool remove(\Bitrix\Forum\EO_Forum $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Forum\EO_Forum_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Forum\EO_Forum current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Forum_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Forum\ForumTable */
        public static $dataClass = '\\Bitrix\\Forum\\ForumTable';
    }
    /**
     * @method static EO_Forum_Query query()
     * @method static EO_Forum_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Forum_Result getById($id)
     * @method static EO_Forum_Result getList(array $parameters = array())
     * @method static EO_Forum_Entity getEntity()
     * @method static \Bitrix\Forum\EO_Forum createObject($setDefaultValues = true)
     * @method static \Bitrix\Forum\EO_Forum_Collection createCollection()
     * @method static \Bitrix\Forum\EO_Forum wakeUpObject($row)
     * @method static \Bitrix\Forum\EO_Forum_Collection wakeUpCollection($rows)
     */
    class ForumTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Forum_Result exec()
     * @method \Bitrix\Forum\EO_Forum fetchObject()
     * @method \Bitrix\Forum\EO_Forum_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Forum_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Forum\EO_Forum fetchObject()
     * @method \Bitrix\Forum\EO_Forum_Collection fetchCollection()
     */
    class EO_Forum_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Forum\EO_Forum createObject($setDefaultValues = true)
     * @method \Bitrix\Forum\EO_Forum_Collection createCollection()
     * @method \Bitrix\Forum\EO_Forum wakeUpObject($row)
     * @method \Bitrix\Forum\EO_Forum_Collection wakeUpCollection($rows)
     */
    class EO_Forum_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_ForumSite
     * @see \Bitrix\Forum\ForumSiteTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getForumId()
     * @method \Bitrix\Forum\EO_ForumSite setForumId(\int|\Bitrix\Main\DB\SqlExpression $forumId)
     * @method bool hasForumId()
     * @method bool isForumIdFilled()
     * @method bool isForumIdChanged()
     * @method \string getSiteId()
     * @method \Bitrix\Forum\EO_ForumSite setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string getPath2forumMessage()
     * @method \Bitrix\Forum\EO_ForumSite setPath2forumMessage(\string|\Bitrix\Main\DB\SqlExpression $path2forumMessage)
     * @method bool hasPath2forumMessage()
     * @method bool isPath2forumMessageFilled()
     * @method bool isPath2forumMessageChanged()
     * @method \string remindActualPath2forumMessage()
     * @method \string requirePath2forumMessage()
     * @method \Bitrix\Forum\EO_ForumSite resetPath2forumMessage()
     * @method \Bitrix\Forum\EO_ForumSite unsetPath2forumMessage()
     * @method \string fillPath2forumMessage()
     * @method \Bitrix\Forum\EO_Forum getForum()
     * @method \Bitrix\Forum\EO_Forum remindActualForum()
     * @method \Bitrix\Forum\EO_Forum requireForum()
     * @method \Bitrix\Forum\EO_ForumSite setForum(\Bitrix\Forum\EO_Forum $object)
     * @method \Bitrix\Forum\EO_ForumSite resetForum()
     * @method \Bitrix\Forum\EO_ForumSite unsetForum()
     * @method bool hasForum()
     * @method bool isForumFilled()
     * @method bool isForumChanged()
     * @method \Bitrix\Forum\EO_Forum fillForum()
     * @method \Bitrix\Main\EO_Site getSite()
     * @method \Bitrix\Main\EO_Site remindActualSite()
     * @method \Bitrix\Main\EO_Site requireSite()
     * @method \Bitrix\Forum\EO_ForumSite setSite(\Bitrix\Main\EO_Site $object)
     * @method \Bitrix\Forum\EO_ForumSite resetSite()
     * @method \Bitrix\Forum\EO_ForumSite unsetSite()
     * @method bool hasSite()
     * @method bool isSiteFilled()
     * @method bool isSiteChanged()
     * @method \Bitrix\Main\EO_Site fillSite()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Forum\EO_ForumSite set($fieldName, $value)
     * @method \Bitrix\Forum\EO_ForumSite reset($fieldName)
     * @method \Bitrix\Forum\EO_ForumSite unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Forum\EO_ForumSite wakeUp($data)
     */
    class EO_ForumSite
    {
        /* @var \Bitrix\Forum\ForumSiteTable */
        public static $dataClass = '\\Bitrix\\Forum\\ForumSiteTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_ForumSite_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getForumIdList()
     * @method \string[] getSiteIdList()
     * @method \string[] getPath2forumMessageList()
     * @method \string[] fillPath2forumMessage()
     * @method \Bitrix\Forum\EO_Forum[] getForumList()
     * @method \Bitrix\Forum\EO_ForumSite_Collection getForumCollection()
     * @method \Bitrix\Forum\EO_Forum_Collection fillForum()
     * @method \Bitrix\Main\EO_Site[] getSiteList()
     * @method \Bitrix\Forum\EO_ForumSite_Collection getSiteCollection()
     * @method \Bitrix\Main\EO_Site_Collection fillSite()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Forum\EO_ForumSite $object)
     * @method bool has(\Bitrix\Forum\EO_ForumSite $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Forum\EO_ForumSite getByPrimary($primary)
     * @method \Bitrix\Forum\EO_ForumSite[] getAll()
     * @method bool remove(\Bitrix\Forum\EO_ForumSite $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Forum\EO_ForumSite_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Forum\EO_ForumSite current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_ForumSite_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Forum\ForumSiteTable */
        public static $dataClass = '\\Bitrix\\Forum\\ForumSiteTable';
    }
    /**
     * @method static EO_ForumSite_Query query()
     * @method static EO_ForumSite_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_ForumSite_Result getById($id)
     * @method static EO_ForumSite_Result getList(array $parameters = array())
     * @method static EO_ForumSite_Entity getEntity()
     * @method static \Bitrix\Forum\EO_ForumSite createObject($setDefaultValues = true)
     * @method static \Bitrix\Forum\EO_ForumSite_Collection createCollection()
     * @method static \Bitrix\Forum\EO_ForumSite wakeUpObject($row)
     * @method static \Bitrix\Forum\EO_ForumSite_Collection wakeUpCollection($rows)
     */
    class ForumSiteTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_ForumSite_Result exec()
     * @method \Bitrix\Forum\EO_ForumSite fetchObject()
     * @method \Bitrix\Forum\EO_ForumSite_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_ForumSite_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Forum\EO_ForumSite fetchObject()
     * @method \Bitrix\Forum\EO_ForumSite_Collection fetchCollection()
     */
    class EO_ForumSite_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Forum\EO_ForumSite createObject($setDefaultValues = true)
     * @method \Bitrix\Forum\EO_ForumSite_Collection createCollection()
     * @method \Bitrix\Forum\EO_ForumSite wakeUpObject($row)
     * @method \Bitrix\Forum\EO_ForumSite_Collection wakeUpCollection($rows)
     */
    class EO_ForumSite_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Group
     * @see \Bitrix\Forum\GroupTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Forum\EO_Group setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getSort()
     * @method \Bitrix\Forum\EO_Group setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Forum\EO_Group resetSort()
     * @method \Bitrix\Forum\EO_Group unsetSort()
     * @method \int fillSort()
     * @method \int getParentId()
     * @method \Bitrix\Forum\EO_Group setParentId(\int|\Bitrix\Main\DB\SqlExpression $parentId)
     * @method bool hasParentId()
     * @method bool isParentIdFilled()
     * @method bool isParentIdChanged()
     * @method \int remindActualParentId()
     * @method \int requireParentId()
     * @method \Bitrix\Forum\EO_Group resetParentId()
     * @method \Bitrix\Forum\EO_Group unsetParentId()
     * @method \int fillParentId()
     * @method \int getLeftMargin()
     * @method \Bitrix\Forum\EO_Group setLeftMargin(\int|\Bitrix\Main\DB\SqlExpression $leftMargin)
     * @method bool hasLeftMargin()
     * @method bool isLeftMarginFilled()
     * @method bool isLeftMarginChanged()
     * @method \int remindActualLeftMargin()
     * @method \int requireLeftMargin()
     * @method \Bitrix\Forum\EO_Group resetLeftMargin()
     * @method \Bitrix\Forum\EO_Group unsetLeftMargin()
     * @method \int fillLeftMargin()
     * @method \int getRightMargin()
     * @method \Bitrix\Forum\EO_Group setRightMargin(\int|\Bitrix\Main\DB\SqlExpression $rightMargin)
     * @method bool hasRightMargin()
     * @method bool isRightMarginFilled()
     * @method bool isRightMarginChanged()
     * @method \int remindActualRightMargin()
     * @method \int requireRightMargin()
     * @method \Bitrix\Forum\EO_Group resetRightMargin()
     * @method \Bitrix\Forum\EO_Group unsetRightMargin()
     * @method \int fillRightMargin()
     * @method \int getDepthLevel()
     * @method \Bitrix\Forum\EO_Group setDepthLevel(\int|\Bitrix\Main\DB\SqlExpression $depthLevel)
     * @method bool hasDepthLevel()
     * @method bool isDepthLevelFilled()
     * @method bool isDepthLevelChanged()
     * @method \int remindActualDepthLevel()
     * @method \int requireDepthLevel()
     * @method \Bitrix\Forum\EO_Group resetDepthLevel()
     * @method \Bitrix\Forum\EO_Group unsetDepthLevel()
     * @method \int fillDepthLevel()
     * @method \string getXmlId()
     * @method \Bitrix\Forum\EO_Group setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Forum\EO_Group resetXmlId()
     * @method \Bitrix\Forum\EO_Group unsetXmlId()
     * @method \string fillXmlId()
     * @method \Bitrix\Forum\EO_GroupLang getLang()
     * @method \Bitrix\Forum\EO_GroupLang remindActualLang()
     * @method \Bitrix\Forum\EO_GroupLang requireLang()
     * @method \Bitrix\Forum\EO_Group setLang(\Bitrix\Forum\EO_GroupLang $object)
     * @method \Bitrix\Forum\EO_Group resetLang()
     * @method \Bitrix\Forum\EO_Group unsetLang()
     * @method bool hasLang()
     * @method bool isLangFilled()
     * @method bool isLangChanged()
     * @method \Bitrix\Forum\EO_GroupLang fillLang()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Forum\EO_Group set($fieldName, $value)
     * @method \Bitrix\Forum\EO_Group reset($fieldName)
     * @method \Bitrix\Forum\EO_Group unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Forum\EO_Group wakeUp($data)
     */
    class EO_Group
    {
        /* @var \Bitrix\Forum\GroupTable */
        public static $dataClass = '\\Bitrix\\Forum\\GroupTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Group_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \int[] getParentIdList()
     * @method \int[] fillParentId()
     * @method \int[] getLeftMarginList()
     * @method \int[] fillLeftMargin()
     * @method \int[] getRightMarginList()
     * @method \int[] fillRightMargin()
     * @method \int[] getDepthLevelList()
     * @method \int[] fillDepthLevel()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \Bitrix\Forum\EO_GroupLang[] getLangList()
     * @method \Bitrix\Forum\EO_Group_Collection getLangCollection()
     * @method \Bitrix\Forum\EO_GroupLang_Collection fillLang()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Forum\EO_Group $object)
     * @method bool has(\Bitrix\Forum\EO_Group $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Forum\EO_Group getByPrimary($primary)
     * @method \Bitrix\Forum\EO_Group[] getAll()
     * @method bool remove(\Bitrix\Forum\EO_Group $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Forum\EO_Group_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Forum\EO_Group current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Group_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Forum\GroupTable */
        public static $dataClass = '\\Bitrix\\Forum\\GroupTable';
    }
    /**
     * @method static EO_Group_Query query()
     * @method static EO_Group_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Group_Result getById($id)
     * @method static EO_Group_Result getList(array $parameters = array())
     * @method static EO_Group_Entity getEntity()
     * @method static \Bitrix\Forum\EO_Group createObject($setDefaultValues = true)
     * @method static \Bitrix\Forum\EO_Group_Collection createCollection()
     * @method static \Bitrix\Forum\EO_Group wakeUpObject($row)
     * @method static \Bitrix\Forum\EO_Group_Collection wakeUpCollection($rows)
     */
    class GroupTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Group_Result exec()
     * @method \Bitrix\Forum\EO_Group fetchObject()
     * @method \Bitrix\Forum\EO_Group_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Group_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Forum\EO_Group fetchObject()
     * @method \Bitrix\Forum\EO_Group_Collection fetchCollection()
     */
    class EO_Group_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Forum\EO_Group createObject($setDefaultValues = true)
     * @method \Bitrix\Forum\EO_Group_Collection createCollection()
     * @method \Bitrix\Forum\EO_Group wakeUpObject($row)
     * @method \Bitrix\Forum\EO_Group_Collection wakeUpCollection($rows)
     */
    class EO_Group_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_GroupLang
     * @see \Bitrix\Forum\GroupLangTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Forum\EO_GroupLang setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getForumGroupId()
     * @method \Bitrix\Forum\EO_GroupLang setForumGroupId(\int|\Bitrix\Main\DB\SqlExpression $forumGroupId)
     * @method bool hasForumGroupId()
     * @method bool isForumGroupIdFilled()
     * @method bool isForumGroupIdChanged()
     * @method \int remindActualForumGroupId()
     * @method \int requireForumGroupId()
     * @method \Bitrix\Forum\EO_GroupLang resetForumGroupId()
     * @method \Bitrix\Forum\EO_GroupLang unsetForumGroupId()
     * @method \int fillForumGroupId()
     * @method \string getLid()
     * @method \Bitrix\Forum\EO_GroupLang setLid(\string|\Bitrix\Main\DB\SqlExpression $lid)
     * @method bool hasLid()
     * @method bool isLidFilled()
     * @method bool isLidChanged()
     * @method \string remindActualLid()
     * @method \string requireLid()
     * @method \Bitrix\Forum\EO_GroupLang resetLid()
     * @method \Bitrix\Forum\EO_GroupLang unsetLid()
     * @method \string fillLid()
     * @method \string getName()
     * @method \Bitrix\Forum\EO_GroupLang setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Forum\EO_GroupLang resetName()
     * @method \Bitrix\Forum\EO_GroupLang unsetName()
     * @method \string fillName()
     * @method \string getDescription()
     * @method \Bitrix\Forum\EO_GroupLang setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Forum\EO_GroupLang resetDescription()
     * @method \Bitrix\Forum\EO_GroupLang unsetDescription()
     * @method \string fillDescription()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Forum\EO_GroupLang set($fieldName, $value)
     * @method \Bitrix\Forum\EO_GroupLang reset($fieldName)
     * @method \Bitrix\Forum\EO_GroupLang unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Forum\EO_GroupLang wakeUp($data)
     */
    class EO_GroupLang
    {
        /* @var \Bitrix\Forum\GroupLangTable */
        public static $dataClass = '\\Bitrix\\Forum\\GroupLangTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_GroupLang_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getForumGroupIdList()
     * @method \int[] fillForumGroupId()
     * @method \string[] getLidList()
     * @method \string[] fillLid()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Forum\EO_GroupLang $object)
     * @method bool has(\Bitrix\Forum\EO_GroupLang $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Forum\EO_GroupLang getByPrimary($primary)
     * @method \Bitrix\Forum\EO_GroupLang[] getAll()
     * @method bool remove(\Bitrix\Forum\EO_GroupLang $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Forum\EO_GroupLang_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Forum\EO_GroupLang current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_GroupLang_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Forum\GroupLangTable */
        public static $dataClass = '\\Bitrix\\Forum\\GroupLangTable';
    }
    /**
     * @method static EO_GroupLang_Query query()
     * @method static EO_GroupLang_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_GroupLang_Result getById($id)
     * @method static EO_GroupLang_Result getList(array $parameters = array())
     * @method static EO_GroupLang_Entity getEntity()
     * @method static \Bitrix\Forum\EO_GroupLang createObject($setDefaultValues = true)
     * @method static \Bitrix\Forum\EO_GroupLang_Collection createCollection()
     * @method static \Bitrix\Forum\EO_GroupLang wakeUpObject($row)
     * @method static \Bitrix\Forum\EO_GroupLang_Collection wakeUpCollection($rows)
     */
    class GroupLangTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_GroupLang_Result exec()
     * @method \Bitrix\Forum\EO_GroupLang fetchObject()
     * @method \Bitrix\Forum\EO_GroupLang_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_GroupLang_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Forum\EO_GroupLang fetchObject()
     * @method \Bitrix\Forum\EO_GroupLang_Collection fetchCollection()
     */
    class EO_GroupLang_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Forum\EO_GroupLang createObject($setDefaultValues = true)
     * @method \Bitrix\Forum\EO_GroupLang_Collection createCollection()
     * @method \Bitrix\Forum\EO_GroupLang wakeUpObject($row)
     * @method \Bitrix\Forum\EO_GroupLang_Collection wakeUpCollection($rows)
     */
    class EO_GroupLang_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Message
     * @see \Bitrix\Forum\MessageTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Forum\EO_Message setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getForumId()
     * @method \Bitrix\Forum\EO_Message setForumId(\int|\Bitrix\Main\DB\SqlExpression $forumId)
     * @method bool hasForumId()
     * @method bool isForumIdFilled()
     * @method bool isForumIdChanged()
     * @method \int remindActualForumId()
     * @method \int requireForumId()
     * @method \Bitrix\Forum\EO_Message resetForumId()
     * @method \Bitrix\Forum\EO_Message unsetForumId()
     * @method \int fillForumId()
     * @method \int getTopicId()
     * @method \Bitrix\Forum\EO_Message setTopicId(\int|\Bitrix\Main\DB\SqlExpression $topicId)
     * @method bool hasTopicId()
     * @method bool isTopicIdFilled()
     * @method bool isTopicIdChanged()
     * @method \int remindActualTopicId()
     * @method \int requireTopicId()
     * @method \Bitrix\Forum\EO_Message resetTopicId()
     * @method \Bitrix\Forum\EO_Message unsetTopicId()
     * @method \int fillTopicId()
     * @method \boolean getUseSmiles()
     * @method \Bitrix\Forum\EO_Message setUseSmiles(\boolean|\Bitrix\Main\DB\SqlExpression $useSmiles)
     * @method bool hasUseSmiles()
     * @method bool isUseSmilesFilled()
     * @method bool isUseSmilesChanged()
     * @method \boolean remindActualUseSmiles()
     * @method \boolean requireUseSmiles()
     * @method \Bitrix\Forum\EO_Message resetUseSmiles()
     * @method \Bitrix\Forum\EO_Message unsetUseSmiles()
     * @method \boolean fillUseSmiles()
     * @method \boolean getNewTopic()
     * @method \Bitrix\Forum\EO_Message setNewTopic(\boolean|\Bitrix\Main\DB\SqlExpression $newTopic)
     * @method bool hasNewTopic()
     * @method bool isNewTopicFilled()
     * @method bool isNewTopicChanged()
     * @method \boolean remindActualNewTopic()
     * @method \boolean requireNewTopic()
     * @method \Bitrix\Forum\EO_Message resetNewTopic()
     * @method \Bitrix\Forum\EO_Message unsetNewTopic()
     * @method \boolean fillNewTopic()
     * @method \boolean getApproved()
     * @method \Bitrix\Forum\EO_Message setApproved(\boolean|\Bitrix\Main\DB\SqlExpression $approved)
     * @method bool hasApproved()
     * @method bool isApprovedFilled()
     * @method bool isApprovedChanged()
     * @method \boolean remindActualApproved()
     * @method \boolean requireApproved()
     * @method \Bitrix\Forum\EO_Message resetApproved()
     * @method \Bitrix\Forum\EO_Message unsetApproved()
     * @method \boolean fillApproved()
     * @method \boolean getSourceId()
     * @method \Bitrix\Forum\EO_Message setSourceId(\boolean|\Bitrix\Main\DB\SqlExpression $sourceId)
     * @method bool hasSourceId()
     * @method bool isSourceIdFilled()
     * @method bool isSourceIdChanged()
     * @method \boolean remindActualSourceId()
     * @method \boolean requireSourceId()
     * @method \Bitrix\Forum\EO_Message resetSourceId()
     * @method \Bitrix\Forum\EO_Message unsetSourceId()
     * @method \boolean fillSourceId()
     * @method \Bitrix\Main\Type\DateTime getPostDate()
     * @method \Bitrix\Forum\EO_Message setPostDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $postDate)
     * @method bool hasPostDate()
     * @method bool isPostDateFilled()
     * @method bool isPostDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualPostDate()
     * @method \Bitrix\Main\Type\DateTime requirePostDate()
     * @method \Bitrix\Forum\EO_Message resetPostDate()
     * @method \Bitrix\Forum\EO_Message unsetPostDate()
     * @method \Bitrix\Main\Type\DateTime fillPostDate()
     * @method \string getPostMessage()
     * @method \Bitrix\Forum\EO_Message setPostMessage(\string|\Bitrix\Main\DB\SqlExpression $postMessage)
     * @method bool hasPostMessage()
     * @method bool isPostMessageFilled()
     * @method bool isPostMessageChanged()
     * @method \string remindActualPostMessage()
     * @method \string requirePostMessage()
     * @method \Bitrix\Forum\EO_Message resetPostMessage()
     * @method \Bitrix\Forum\EO_Message unsetPostMessage()
     * @method \string fillPostMessage()
     * @method \string getPostMessageHtml()
     * @method \Bitrix\Forum\EO_Message setPostMessageHtml(\string|\Bitrix\Main\DB\SqlExpression $postMessageHtml)
     * @method bool hasPostMessageHtml()
     * @method bool isPostMessageHtmlFilled()
     * @method bool isPostMessageHtmlChanged()
     * @method \string remindActualPostMessageHtml()
     * @method \string requirePostMessageHtml()
     * @method \Bitrix\Forum\EO_Message resetPostMessageHtml()
     * @method \Bitrix\Forum\EO_Message unsetPostMessageHtml()
     * @method \string fillPostMessageHtml()
     * @method \string getPostMessageFilter()
     * @method \Bitrix\Forum\EO_Message setPostMessageFilter(\string|\Bitrix\Main\DB\SqlExpression $postMessageFilter)
     * @method bool hasPostMessageFilter()
     * @method bool isPostMessageFilterFilled()
     * @method bool isPostMessageFilterChanged()
     * @method \string remindActualPostMessageFilter()
     * @method \string requirePostMessageFilter()
     * @method \Bitrix\Forum\EO_Message resetPostMessageFilter()
     * @method \Bitrix\Forum\EO_Message unsetPostMessageFilter()
     * @method \string fillPostMessageFilter()
     * @method \string getPostMessageCheck()
     * @method \Bitrix\Forum\EO_Message setPostMessageCheck(\string|\Bitrix\Main\DB\SqlExpression $postMessageCheck)
     * @method bool hasPostMessageCheck()
     * @method bool isPostMessageCheckFilled()
     * @method bool isPostMessageCheckChanged()
     * @method \string remindActualPostMessageCheck()
     * @method \string requirePostMessageCheck()
     * @method \Bitrix\Forum\EO_Message resetPostMessageCheck()
     * @method \Bitrix\Forum\EO_Message unsetPostMessageCheck()
     * @method \string fillPostMessageCheck()
     * @method \int getAttachImg()
     * @method \Bitrix\Forum\EO_Message setAttachImg(\int|\Bitrix\Main\DB\SqlExpression $attachImg)
     * @method bool hasAttachImg()
     * @method bool isAttachImgFilled()
     * @method bool isAttachImgChanged()
     * @method \int remindActualAttachImg()
     * @method \int requireAttachImg()
     * @method \Bitrix\Forum\EO_Message resetAttachImg()
     * @method \Bitrix\Forum\EO_Message unsetAttachImg()
     * @method \int fillAttachImg()
     * @method \string getParam1()
     * @method \Bitrix\Forum\EO_Message setParam1(\string|\Bitrix\Main\DB\SqlExpression $param1)
     * @method bool hasParam1()
     * @method bool isParam1Filled()
     * @method bool isParam1Changed()
     * @method \string remindActualParam1()
     * @method \string requireParam1()
     * @method \Bitrix\Forum\EO_Message resetParam1()
     * @method \Bitrix\Forum\EO_Message unsetParam1()
     * @method \string fillParam1()
     * @method \int getParam2()
     * @method \Bitrix\Forum\EO_Message setParam2(\int|\Bitrix\Main\DB\SqlExpression $param2)
     * @method bool hasParam2()
     * @method bool isParam2Filled()
     * @method bool isParam2Changed()
     * @method \int remindActualParam2()
     * @method \int requireParam2()
     * @method \Bitrix\Forum\EO_Message resetParam2()
     * @method \Bitrix\Forum\EO_Message unsetParam2()
     * @method \int fillParam2()
     * @method \int getAuthorId()
     * @method \Bitrix\Forum\EO_Message setAuthorId(\int|\Bitrix\Main\DB\SqlExpression $authorId)
     * @method bool hasAuthorId()
     * @method bool isAuthorIdFilled()
     * @method bool isAuthorIdChanged()
     * @method \int remindActualAuthorId()
     * @method \int requireAuthorId()
     * @method \Bitrix\Forum\EO_Message resetAuthorId()
     * @method \Bitrix\Forum\EO_Message unsetAuthorId()
     * @method \int fillAuthorId()
     * @method \string getAuthorName()
     * @method \Bitrix\Forum\EO_Message setAuthorName(\string|\Bitrix\Main\DB\SqlExpression $authorName)
     * @method bool hasAuthorName()
     * @method bool isAuthorNameFilled()
     * @method bool isAuthorNameChanged()
     * @method \string remindActualAuthorName()
     * @method \string requireAuthorName()
     * @method \Bitrix\Forum\EO_Message resetAuthorName()
     * @method \Bitrix\Forum\EO_Message unsetAuthorName()
     * @method \string fillAuthorName()
     * @method \string getAuthorEmail()
     * @method \Bitrix\Forum\EO_Message setAuthorEmail(\string|\Bitrix\Main\DB\SqlExpression $authorEmail)
     * @method bool hasAuthorEmail()
     * @method bool isAuthorEmailFilled()
     * @method bool isAuthorEmailChanged()
     * @method \string remindActualAuthorEmail()
     * @method \string requireAuthorEmail()
     * @method \Bitrix\Forum\EO_Message resetAuthorEmail()
     * @method \Bitrix\Forum\EO_Message unsetAuthorEmail()
     * @method \string fillAuthorEmail()
     * @method \string getAuthorIp()
     * @method \Bitrix\Forum\EO_Message setAuthorIp(\string|\Bitrix\Main\DB\SqlExpression $authorIp)
     * @method bool hasAuthorIp()
     * @method bool isAuthorIpFilled()
     * @method bool isAuthorIpChanged()
     * @method \string remindActualAuthorIp()
     * @method \string requireAuthorIp()
     * @method \Bitrix\Forum\EO_Message resetAuthorIp()
     * @method \Bitrix\Forum\EO_Message unsetAuthorIp()
     * @method \string fillAuthorIp()
     * @method \string getAuthorRealIp()
     * @method \Bitrix\Forum\EO_Message setAuthorRealIp(\string|\Bitrix\Main\DB\SqlExpression $authorRealIp)
     * @method bool hasAuthorRealIp()
     * @method bool isAuthorRealIpFilled()
     * @method bool isAuthorRealIpChanged()
     * @method \string remindActualAuthorRealIp()
     * @method \string requireAuthorRealIp()
     * @method \Bitrix\Forum\EO_Message resetAuthorRealIp()
     * @method \Bitrix\Forum\EO_Message unsetAuthorRealIp()
     * @method \string fillAuthorRealIp()
     * @method \int getGuestId()
     * @method \Bitrix\Forum\EO_Message setGuestId(\int|\Bitrix\Main\DB\SqlExpression $guestId)
     * @method bool hasGuestId()
     * @method bool isGuestIdFilled()
     * @method bool isGuestIdChanged()
     * @method \int remindActualGuestId()
     * @method \int requireGuestId()
     * @method \Bitrix\Forum\EO_Message resetGuestId()
     * @method \Bitrix\Forum\EO_Message unsetGuestId()
     * @method \int fillGuestId()
     * @method \int getEditorId()
     * @method \Bitrix\Forum\EO_Message setEditorId(\int|\Bitrix\Main\DB\SqlExpression $editorId)
     * @method bool hasEditorId()
     * @method bool isEditorIdFilled()
     * @method bool isEditorIdChanged()
     * @method \int remindActualEditorId()
     * @method \int requireEditorId()
     * @method \Bitrix\Forum\EO_Message resetEditorId()
     * @method \Bitrix\Forum\EO_Message unsetEditorId()
     * @method \int fillEditorId()
     * @method \string getEditorName()
     * @method \Bitrix\Forum\EO_Message setEditorName(\string|\Bitrix\Main\DB\SqlExpression $editorName)
     * @method bool hasEditorName()
     * @method bool isEditorNameFilled()
     * @method bool isEditorNameChanged()
     * @method \string remindActualEditorName()
     * @method \string requireEditorName()
     * @method \Bitrix\Forum\EO_Message resetEditorName()
     * @method \Bitrix\Forum\EO_Message unsetEditorName()
     * @method \string fillEditorName()
     * @method \string getEditorEmail()
     * @method \Bitrix\Forum\EO_Message setEditorEmail(\string|\Bitrix\Main\DB\SqlExpression $editorEmail)
     * @method bool hasEditorEmail()
     * @method bool isEditorEmailFilled()
     * @method bool isEditorEmailChanged()
     * @method \string remindActualEditorEmail()
     * @method \string requireEditorEmail()
     * @method \Bitrix\Forum\EO_Message resetEditorEmail()
     * @method \Bitrix\Forum\EO_Message unsetEditorEmail()
     * @method \string fillEditorEmail()
     * @method \string getEditReason()
     * @method \Bitrix\Forum\EO_Message setEditReason(\string|\Bitrix\Main\DB\SqlExpression $editReason)
     * @method bool hasEditReason()
     * @method bool isEditReasonFilled()
     * @method bool isEditReasonChanged()
     * @method \string remindActualEditReason()
     * @method \string requireEditReason()
     * @method \Bitrix\Forum\EO_Message resetEditReason()
     * @method \Bitrix\Forum\EO_Message unsetEditReason()
     * @method \string fillEditReason()
     * @method \Bitrix\Main\Type\DateTime getEditDate()
     * @method \Bitrix\Forum\EO_Message setEditDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $editDate)
     * @method bool hasEditDate()
     * @method bool isEditDateFilled()
     * @method bool isEditDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualEditDate()
     * @method \Bitrix\Main\Type\DateTime requireEditDate()
     * @method \Bitrix\Forum\EO_Message resetEditDate()
     * @method \Bitrix\Forum\EO_Message unsetEditDate()
     * @method \Bitrix\Main\Type\DateTime fillEditDate()
     * @method \string getXmlId()
     * @method \Bitrix\Forum\EO_Message setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Forum\EO_Message resetXmlId()
     * @method \Bitrix\Forum\EO_Message unsetXmlId()
     * @method \string fillXmlId()
     * @method \string getHtml()
     * @method \Bitrix\Forum\EO_Message setHtml(\string|\Bitrix\Main\DB\SqlExpression $html)
     * @method bool hasHtml()
     * @method bool isHtmlFilled()
     * @method bool isHtmlChanged()
     * @method \string remindActualHtml()
     * @method \string requireHtml()
     * @method \Bitrix\Forum\EO_Message resetHtml()
     * @method \Bitrix\Forum\EO_Message unsetHtml()
     * @method \string fillHtml()
     * @method \string getMailHeader()
     * @method \Bitrix\Forum\EO_Message setMailHeader(\string|\Bitrix\Main\DB\SqlExpression $mailHeader)
     * @method bool hasMailHeader()
     * @method bool isMailHeaderFilled()
     * @method bool isMailHeaderChanged()
     * @method \string remindActualMailHeader()
     * @method \string requireMailHeader()
     * @method \Bitrix\Forum\EO_Message resetMailHeader()
     * @method \Bitrix\Forum\EO_Message unsetMailHeader()
     * @method \string fillMailHeader()
     * @method \Bitrix\Forum\EO_Topic getTopic()
     * @method \Bitrix\Forum\EO_Topic remindActualTopic()
     * @method \Bitrix\Forum\EO_Topic requireTopic()
     * @method \Bitrix\Forum\EO_Message setTopic(\Bitrix\Forum\EO_Topic $object)
     * @method \Bitrix\Forum\EO_Message resetTopic()
     * @method \Bitrix\Forum\EO_Message unsetTopic()
     * @method bool hasTopic()
     * @method bool isTopicFilled()
     * @method bool isTopicChanged()
     * @method \Bitrix\Forum\EO_Topic fillTopic()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Forum\EO_Message set($fieldName, $value)
     * @method \Bitrix\Forum\EO_Message reset($fieldName)
     * @method \Bitrix\Forum\EO_Message unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Forum\EO_Message wakeUp($data)
     */
    class EO_Message
    {
        /* @var \Bitrix\Forum\MessageTable */
        public static $dataClass = '\\Bitrix\\Forum\\MessageTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Message_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getForumIdList()
     * @method \int[] fillForumId()
     * @method \int[] getTopicIdList()
     * @method \int[] fillTopicId()
     * @method \boolean[] getUseSmilesList()
     * @method \boolean[] fillUseSmiles()
     * @method \boolean[] getNewTopicList()
     * @method \boolean[] fillNewTopic()
     * @method \boolean[] getApprovedList()
     * @method \boolean[] fillApproved()
     * @method \boolean[] getSourceIdList()
     * @method \boolean[] fillSourceId()
     * @method \Bitrix\Main\Type\DateTime[] getPostDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillPostDate()
     * @method \string[] getPostMessageList()
     * @method \string[] fillPostMessage()
     * @method \string[] getPostMessageHtmlList()
     * @method \string[] fillPostMessageHtml()
     * @method \string[] getPostMessageFilterList()
     * @method \string[] fillPostMessageFilter()
     * @method \string[] getPostMessageCheckList()
     * @method \string[] fillPostMessageCheck()
     * @method \int[] getAttachImgList()
     * @method \int[] fillAttachImg()
     * @method \string[] getParam1List()
     * @method \string[] fillParam1()
     * @method \int[] getParam2List()
     * @method \int[] fillParam2()
     * @method \int[] getAuthorIdList()
     * @method \int[] fillAuthorId()
     * @method \string[] getAuthorNameList()
     * @method \string[] fillAuthorName()
     * @method \string[] getAuthorEmailList()
     * @method \string[] fillAuthorEmail()
     * @method \string[] getAuthorIpList()
     * @method \string[] fillAuthorIp()
     * @method \string[] getAuthorRealIpList()
     * @method \string[] fillAuthorRealIp()
     * @method \int[] getGuestIdList()
     * @method \int[] fillGuestId()
     * @method \int[] getEditorIdList()
     * @method \int[] fillEditorId()
     * @method \string[] getEditorNameList()
     * @method \string[] fillEditorName()
     * @method \string[] getEditorEmailList()
     * @method \string[] fillEditorEmail()
     * @method \string[] getEditReasonList()
     * @method \string[] fillEditReason()
     * @method \Bitrix\Main\Type\DateTime[] getEditDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillEditDate()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \string[] getHtmlList()
     * @method \string[] fillHtml()
     * @method \string[] getMailHeaderList()
     * @method \string[] fillMailHeader()
     * @method \Bitrix\Forum\EO_Topic[] getTopicList()
     * @method \Bitrix\Forum\EO_Message_Collection getTopicCollection()
     * @method \Bitrix\Forum\EO_Topic_Collection fillTopic()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Forum\EO_Message $object)
     * @method bool has(\Bitrix\Forum\EO_Message $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Forum\EO_Message getByPrimary($primary)
     * @method \Bitrix\Forum\EO_Message[] getAll()
     * @method bool remove(\Bitrix\Forum\EO_Message $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Forum\EO_Message_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Forum\EO_Message current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Message_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Forum\MessageTable */
        public static $dataClass = '\\Bitrix\\Forum\\MessageTable';
    }
    /**
     * @method static EO_Message_Query query()
     * @method static EO_Message_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Message_Result getById($id)
     * @method static EO_Message_Result getList(array $parameters = array())
     * @method static EO_Message_Entity getEntity()
     * @method static \Bitrix\Forum\EO_Message createObject($setDefaultValues = true)
     * @method static \Bitrix\Forum\EO_Message_Collection createCollection()
     * @method static \Bitrix\Forum\EO_Message wakeUpObject($row)
     * @method static \Bitrix\Forum\EO_Message_Collection wakeUpCollection($rows)
     */
    class MessageTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Message_Result exec()
     * @method \Bitrix\Forum\EO_Message fetchObject()
     * @method \Bitrix\Forum\EO_Message_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Message_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Forum\EO_Message fetchObject()
     * @method \Bitrix\Forum\EO_Message_Collection fetchCollection()
     */
    class EO_Message_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Forum\EO_Message createObject($setDefaultValues = true)
     * @method \Bitrix\Forum\EO_Message_Collection createCollection()
     * @method \Bitrix\Forum\EO_Message wakeUpObject($row)
     * @method \Bitrix\Forum\EO_Message_Collection wakeUpCollection($rows)
     */
    class EO_Message_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Permission
     * @see \Bitrix\Forum\PermissionTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Forum\EO_Permission setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getForumId()
     * @method \Bitrix\Forum\EO_Permission setForumId(\int|\Bitrix\Main\DB\SqlExpression $forumId)
     * @method bool hasForumId()
     * @method bool isForumIdFilled()
     * @method bool isForumIdChanged()
     * @method \int remindActualForumId()
     * @method \int requireForumId()
     * @method \Bitrix\Forum\EO_Permission resetForumId()
     * @method \Bitrix\Forum\EO_Permission unsetForumId()
     * @method \int fillForumId()
     * @method \int getGroupId()
     * @method \Bitrix\Forum\EO_Permission setGroupId(\int|\Bitrix\Main\DB\SqlExpression $groupId)
     * @method bool hasGroupId()
     * @method bool isGroupIdFilled()
     * @method bool isGroupIdChanged()
     * @method \int remindActualGroupId()
     * @method \int requireGroupId()
     * @method \Bitrix\Forum\EO_Permission resetGroupId()
     * @method \Bitrix\Forum\EO_Permission unsetGroupId()
     * @method \int fillGroupId()
     * @method \string getPermission()
     * @method \Bitrix\Forum\EO_Permission setPermission(\string|\Bitrix\Main\DB\SqlExpression $permission)
     * @method bool hasPermission()
     * @method bool isPermissionFilled()
     * @method bool isPermissionChanged()
     * @method \string remindActualPermission()
     * @method \string requirePermission()
     * @method \Bitrix\Forum\EO_Permission resetPermission()
     * @method \Bitrix\Forum\EO_Permission unsetPermission()
     * @method \string fillPermission()
     * @method \Bitrix\Main\EO_Group getGroup()
     * @method \Bitrix\Main\EO_Group remindActualGroup()
     * @method \Bitrix\Main\EO_Group requireGroup()
     * @method \Bitrix\Forum\EO_Permission setGroup(\Bitrix\Main\EO_Group $object)
     * @method \Bitrix\Forum\EO_Permission resetGroup()
     * @method \Bitrix\Forum\EO_Permission unsetGroup()
     * @method bool hasGroup()
     * @method bool isGroupFilled()
     * @method bool isGroupChanged()
     * @method \Bitrix\Main\EO_Group fillGroup()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Forum\EO_Permission set($fieldName, $value)
     * @method \Bitrix\Forum\EO_Permission reset($fieldName)
     * @method \Bitrix\Forum\EO_Permission unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Forum\EO_Permission wakeUp($data)
     */
    class EO_Permission
    {
        /* @var \Bitrix\Forum\PermissionTable */
        public static $dataClass = '\\Bitrix\\Forum\\PermissionTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Permission_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getForumIdList()
     * @method \int[] fillForumId()
     * @method \int[] getGroupIdList()
     * @method \int[] fillGroupId()
     * @method \string[] getPermissionList()
     * @method \string[] fillPermission()
     * @method \Bitrix\Main\EO_Group[] getGroupList()
     * @method \Bitrix\Forum\EO_Permission_Collection getGroupCollection()
     * @method \Bitrix\Main\EO_Group_Collection fillGroup()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Forum\EO_Permission $object)
     * @method bool has(\Bitrix\Forum\EO_Permission $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Forum\EO_Permission getByPrimary($primary)
     * @method \Bitrix\Forum\EO_Permission[] getAll()
     * @method bool remove(\Bitrix\Forum\EO_Permission $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Forum\EO_Permission_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Forum\EO_Permission current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Permission_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Forum\PermissionTable */
        public static $dataClass = '\\Bitrix\\Forum\\PermissionTable';
    }
    /**
     * @method static EO_Permission_Query query()
     * @method static EO_Permission_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Permission_Result getById($id)
     * @method static EO_Permission_Result getList(array $parameters = array())
     * @method static EO_Permission_Entity getEntity()
     * @method static \Bitrix\Forum\EO_Permission createObject($setDefaultValues = true)
     * @method static \Bitrix\Forum\EO_Permission_Collection createCollection()
     * @method static \Bitrix\Forum\EO_Permission wakeUpObject($row)
     * @method static \Bitrix\Forum\EO_Permission_Collection wakeUpCollection($rows)
     */
    class PermissionTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Permission_Result exec()
     * @method \Bitrix\Forum\EO_Permission fetchObject()
     * @method \Bitrix\Forum\EO_Permission_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Permission_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Forum\EO_Permission fetchObject()
     * @method \Bitrix\Forum\EO_Permission_Collection fetchCollection()
     */
    class EO_Permission_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Forum\EO_Permission createObject($setDefaultValues = true)
     * @method \Bitrix\Forum\EO_Permission_Collection createCollection()
     * @method \Bitrix\Forum\EO_Permission wakeUpObject($row)
     * @method \Bitrix\Forum\EO_Permission_Collection wakeUpCollection($rows)
     */
    class EO_Permission_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Subscribe
     * @see \Bitrix\Forum\SubscribeTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Forum\EO_Subscribe setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Forum\EO_Subscribe setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Forum\EO_Subscribe resetUserId()
     * @method \Bitrix\Forum\EO_Subscribe unsetUserId()
     * @method \int fillUserId()
     * @method \int getForumId()
     * @method \Bitrix\Forum\EO_Subscribe setForumId(\int|\Bitrix\Main\DB\SqlExpression $forumId)
     * @method bool hasForumId()
     * @method bool isForumIdFilled()
     * @method bool isForumIdChanged()
     * @method \int remindActualForumId()
     * @method \int requireForumId()
     * @method \Bitrix\Forum\EO_Subscribe resetForumId()
     * @method \Bitrix\Forum\EO_Subscribe unsetForumId()
     * @method \int fillForumId()
     * @method \int getTopicId()
     * @method \Bitrix\Forum\EO_Subscribe setTopicId(\int|\Bitrix\Main\DB\SqlExpression $topicId)
     * @method bool hasTopicId()
     * @method bool isTopicIdFilled()
     * @method bool isTopicIdChanged()
     * @method \int remindActualTopicId()
     * @method \int requireTopicId()
     * @method \Bitrix\Forum\EO_Subscribe resetTopicId()
     * @method \Bitrix\Forum\EO_Subscribe unsetTopicId()
     * @method \int fillTopicId()
     * @method \Bitrix\Main\Type\DateTime getStartDate()
     * @method \Bitrix\Forum\EO_Subscribe setStartDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $startDate)
     * @method bool hasStartDate()
     * @method bool isStartDateFilled()
     * @method bool isStartDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualStartDate()
     * @method \Bitrix\Main\Type\DateTime requireStartDate()
     * @method \Bitrix\Forum\EO_Subscribe resetStartDate()
     * @method \Bitrix\Forum\EO_Subscribe unsetStartDate()
     * @method \Bitrix\Main\Type\DateTime fillStartDate()
     * @method \int getLastSend()
     * @method \Bitrix\Forum\EO_Subscribe setLastSend(\int|\Bitrix\Main\DB\SqlExpression $lastSend)
     * @method bool hasLastSend()
     * @method bool isLastSendFilled()
     * @method bool isLastSendChanged()
     * @method \int remindActualLastSend()
     * @method \int requireLastSend()
     * @method \Bitrix\Forum\EO_Subscribe resetLastSend()
     * @method \Bitrix\Forum\EO_Subscribe unsetLastSend()
     * @method \int fillLastSend()
     * @method \string getNewTopicOnly()
     * @method \Bitrix\Forum\EO_Subscribe setNewTopicOnly(\string|\Bitrix\Main\DB\SqlExpression $newTopicOnly)
     * @method bool hasNewTopicOnly()
     * @method bool isNewTopicOnlyFilled()
     * @method bool isNewTopicOnlyChanged()
     * @method \string remindActualNewTopicOnly()
     * @method \string requireNewTopicOnly()
     * @method \Bitrix\Forum\EO_Subscribe resetNewTopicOnly()
     * @method \Bitrix\Forum\EO_Subscribe unsetNewTopicOnly()
     * @method \string fillNewTopicOnly()
     * @method \string getSiteId()
     * @method \Bitrix\Forum\EO_Subscribe setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string remindActualSiteId()
     * @method \string requireSiteId()
     * @method \Bitrix\Forum\EO_Subscribe resetSiteId()
     * @method \Bitrix\Forum\EO_Subscribe unsetSiteId()
     * @method \string fillSiteId()
     * @method \int getSocnetGroupId()
     * @method \Bitrix\Forum\EO_Subscribe setSocnetGroupId(\int|\Bitrix\Main\DB\SqlExpression $socnetGroupId)
     * @method bool hasSocnetGroupId()
     * @method bool isSocnetGroupIdFilled()
     * @method bool isSocnetGroupIdChanged()
     * @method \int remindActualSocnetGroupId()
     * @method \int requireSocnetGroupId()
     * @method \Bitrix\Forum\EO_Subscribe resetSocnetGroupId()
     * @method \Bitrix\Forum\EO_Subscribe unsetSocnetGroupId()
     * @method \int fillSocnetGroupId()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Forum\EO_Subscribe setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Forum\EO_Subscribe resetUser()
     * @method \Bitrix\Forum\EO_Subscribe unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \Bitrix\Forum\EO_User getForumUser()
     * @method \Bitrix\Forum\EO_User remindActualForumUser()
     * @method \Bitrix\Forum\EO_User requireForumUser()
     * @method \Bitrix\Forum\EO_Subscribe setForumUser(\Bitrix\Forum\EO_User $object)
     * @method \Bitrix\Forum\EO_Subscribe resetForumUser()
     * @method \Bitrix\Forum\EO_Subscribe unsetForumUser()
     * @method bool hasForumUser()
     * @method bool isForumUserFilled()
     * @method bool isForumUserChanged()
     * @method \Bitrix\Forum\EO_User fillForumUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Forum\EO_Subscribe set($fieldName, $value)
     * @method \Bitrix\Forum\EO_Subscribe reset($fieldName)
     * @method \Bitrix\Forum\EO_Subscribe unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Forum\EO_Subscribe wakeUp($data)
     */
    class EO_Subscribe
    {
        /* @var \Bitrix\Forum\SubscribeTable */
        public static $dataClass = '\\Bitrix\\Forum\\SubscribeTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Subscribe_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \int[] getForumIdList()
     * @method \int[] fillForumId()
     * @method \int[] getTopicIdList()
     * @method \int[] fillTopicId()
     * @method \Bitrix\Main\Type\DateTime[] getStartDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillStartDate()
     * @method \int[] getLastSendList()
     * @method \int[] fillLastSend()
     * @method \string[] getNewTopicOnlyList()
     * @method \string[] fillNewTopicOnly()
     * @method \string[] getSiteIdList()
     * @method \string[] fillSiteId()
     * @method \int[] getSocnetGroupIdList()
     * @method \int[] fillSocnetGroupId()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Forum\EO_Subscribe_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \Bitrix\Forum\EO_User[] getForumUserList()
     * @method \Bitrix\Forum\EO_Subscribe_Collection getForumUserCollection()
     * @method \Bitrix\Forum\EO_User_Collection fillForumUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Forum\EO_Subscribe $object)
     * @method bool has(\Bitrix\Forum\EO_Subscribe $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Forum\EO_Subscribe getByPrimary($primary)
     * @method \Bitrix\Forum\EO_Subscribe[] getAll()
     * @method bool remove(\Bitrix\Forum\EO_Subscribe $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Forum\EO_Subscribe_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Forum\EO_Subscribe current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Subscribe_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Forum\SubscribeTable */
        public static $dataClass = '\\Bitrix\\Forum\\SubscribeTable';
    }
    /**
     * @method static EO_Subscribe_Query query()
     * @method static EO_Subscribe_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Subscribe_Result getById($id)
     * @method static EO_Subscribe_Result getList(array $parameters = array())
     * @method static EO_Subscribe_Entity getEntity()
     * @method static \Bitrix\Forum\EO_Subscribe createObject($setDefaultValues = true)
     * @method static \Bitrix\Forum\EO_Subscribe_Collection createCollection()
     * @method static \Bitrix\Forum\EO_Subscribe wakeUpObject($row)
     * @method static \Bitrix\Forum\EO_Subscribe_Collection wakeUpCollection($rows)
     */
    class SubscribeTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Subscribe_Result exec()
     * @method \Bitrix\Forum\EO_Subscribe fetchObject()
     * @method \Bitrix\Forum\EO_Subscribe_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Subscribe_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Forum\EO_Subscribe fetchObject()
     * @method \Bitrix\Forum\EO_Subscribe_Collection fetchCollection()
     */
    class EO_Subscribe_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Forum\EO_Subscribe createObject($setDefaultValues = true)
     * @method \Bitrix\Forum\EO_Subscribe_Collection createCollection()
     * @method \Bitrix\Forum\EO_Subscribe wakeUpObject($row)
     * @method \Bitrix\Forum\EO_Subscribe_Collection wakeUpCollection($rows)
     */
    class EO_Subscribe_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Topic
     * @see \Bitrix\Forum\TopicTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Forum\EO_Topic setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getForumId()
     * @method \Bitrix\Forum\EO_Topic setForumId(\int|\Bitrix\Main\DB\SqlExpression $forumId)
     * @method bool hasForumId()
     * @method bool isForumIdFilled()
     * @method bool isForumIdChanged()
     * @method \int remindActualForumId()
     * @method \int requireForumId()
     * @method \Bitrix\Forum\EO_Topic resetForumId()
     * @method \Bitrix\Forum\EO_Topic unsetForumId()
     * @method \int fillForumId()
     * @method \int getTopicId()
     * @method \Bitrix\Forum\EO_Topic setTopicId(\int|\Bitrix\Main\DB\SqlExpression $topicId)
     * @method bool hasTopicId()
     * @method bool isTopicIdFilled()
     * @method bool isTopicIdChanged()
     * @method \int remindActualTopicId()
     * @method \int requireTopicId()
     * @method \Bitrix\Forum\EO_Topic resetTopicId()
     * @method \Bitrix\Forum\EO_Topic unsetTopicId()
     * @method \int fillTopicId()
     * @method \string getTitle()
     * @method \Bitrix\Forum\EO_Topic setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Forum\EO_Topic resetTitle()
     * @method \Bitrix\Forum\EO_Topic unsetTitle()
     * @method \string fillTitle()
     * @method \string getTitleSeo()
     * @method \Bitrix\Forum\EO_Topic setTitleSeo(\string|\Bitrix\Main\DB\SqlExpression $titleSeo)
     * @method bool hasTitleSeo()
     * @method bool isTitleSeoFilled()
     * @method bool isTitleSeoChanged()
     * @method \string remindActualTitleSeo()
     * @method \string requireTitleSeo()
     * @method \Bitrix\Forum\EO_Topic resetTitleSeo()
     * @method \Bitrix\Forum\EO_Topic unsetTitleSeo()
     * @method \string fillTitleSeo()
     * @method \string getTags()
     * @method \Bitrix\Forum\EO_Topic setTags(\string|\Bitrix\Main\DB\SqlExpression $tags)
     * @method bool hasTags()
     * @method bool isTagsFilled()
     * @method bool isTagsChanged()
     * @method \string remindActualTags()
     * @method \string requireTags()
     * @method \Bitrix\Forum\EO_Topic resetTags()
     * @method \Bitrix\Forum\EO_Topic unsetTags()
     * @method \string fillTags()
     * @method \string getDescription()
     * @method \Bitrix\Forum\EO_Topic setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Forum\EO_Topic resetDescription()
     * @method \Bitrix\Forum\EO_Topic unsetDescription()
     * @method \string fillDescription()
     * @method \string getIcon()
     * @method \Bitrix\Forum\EO_Topic setIcon(\string|\Bitrix\Main\DB\SqlExpression $icon)
     * @method bool hasIcon()
     * @method bool isIconFilled()
     * @method bool isIconChanged()
     * @method \string remindActualIcon()
     * @method \string requireIcon()
     * @method \Bitrix\Forum\EO_Topic resetIcon()
     * @method \Bitrix\Forum\EO_Topic unsetIcon()
     * @method \string fillIcon()
     * @method \string getState()
     * @method \Bitrix\Forum\EO_Topic setState(\string|\Bitrix\Main\DB\SqlExpression $state)
     * @method bool hasState()
     * @method bool isStateFilled()
     * @method bool isStateChanged()
     * @method \string remindActualState()
     * @method \string requireState()
     * @method \Bitrix\Forum\EO_Topic resetState()
     * @method \Bitrix\Forum\EO_Topic unsetState()
     * @method \string fillState()
     * @method \boolean getApproved()
     * @method \Bitrix\Forum\EO_Topic setApproved(\boolean|\Bitrix\Main\DB\SqlExpression $approved)
     * @method bool hasApproved()
     * @method bool isApprovedFilled()
     * @method bool isApprovedChanged()
     * @method \boolean remindActualApproved()
     * @method \boolean requireApproved()
     * @method \Bitrix\Forum\EO_Topic resetApproved()
     * @method \Bitrix\Forum\EO_Topic unsetApproved()
     * @method \boolean fillApproved()
     * @method \int getSort()
     * @method \Bitrix\Forum\EO_Topic setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Forum\EO_Topic resetSort()
     * @method \Bitrix\Forum\EO_Topic unsetSort()
     * @method \int fillSort()
     * @method \int getViews()
     * @method \Bitrix\Forum\EO_Topic setViews(\int|\Bitrix\Main\DB\SqlExpression $views)
     * @method bool hasViews()
     * @method bool isViewsFilled()
     * @method bool isViewsChanged()
     * @method \int remindActualViews()
     * @method \int requireViews()
     * @method \Bitrix\Forum\EO_Topic resetViews()
     * @method \Bitrix\Forum\EO_Topic unsetViews()
     * @method \int fillViews()
     * @method \int getUserStartId()
     * @method \Bitrix\Forum\EO_Topic setUserStartId(\int|\Bitrix\Main\DB\SqlExpression $userStartId)
     * @method bool hasUserStartId()
     * @method bool isUserStartIdFilled()
     * @method bool isUserStartIdChanged()
     * @method \int remindActualUserStartId()
     * @method \int requireUserStartId()
     * @method \Bitrix\Forum\EO_Topic resetUserStartId()
     * @method \Bitrix\Forum\EO_Topic unsetUserStartId()
     * @method \int fillUserStartId()
     * @method \string getUserStartName()
     * @method \Bitrix\Forum\EO_Topic setUserStartName(\string|\Bitrix\Main\DB\SqlExpression $userStartName)
     * @method bool hasUserStartName()
     * @method bool isUserStartNameFilled()
     * @method bool isUserStartNameChanged()
     * @method \string remindActualUserStartName()
     * @method \string requireUserStartName()
     * @method \Bitrix\Forum\EO_Topic resetUserStartName()
     * @method \Bitrix\Forum\EO_Topic unsetUserStartName()
     * @method \string fillUserStartName()
     * @method \Bitrix\Main\Type\DateTime getStartDate()
     * @method \Bitrix\Forum\EO_Topic setStartDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $startDate)
     * @method bool hasStartDate()
     * @method bool isStartDateFilled()
     * @method bool isStartDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualStartDate()
     * @method \Bitrix\Main\Type\DateTime requireStartDate()
     * @method \Bitrix\Forum\EO_Topic resetStartDate()
     * @method \Bitrix\Forum\EO_Topic unsetStartDate()
     * @method \Bitrix\Main\Type\DateTime fillStartDate()
     * @method \int getPosts()
     * @method \Bitrix\Forum\EO_Topic setPosts(\int|\Bitrix\Main\DB\SqlExpression $posts)
     * @method bool hasPosts()
     * @method bool isPostsFilled()
     * @method bool isPostsChanged()
     * @method \int remindActualPosts()
     * @method \int requirePosts()
     * @method \Bitrix\Forum\EO_Topic resetPosts()
     * @method \Bitrix\Forum\EO_Topic unsetPosts()
     * @method \int fillPosts()
     * @method \int getLastPosterId()
     * @method \Bitrix\Forum\EO_Topic setLastPosterId(\int|\Bitrix\Main\DB\SqlExpression $lastPosterId)
     * @method bool hasLastPosterId()
     * @method bool isLastPosterIdFilled()
     * @method bool isLastPosterIdChanged()
     * @method \int remindActualLastPosterId()
     * @method \int requireLastPosterId()
     * @method \Bitrix\Forum\EO_Topic resetLastPosterId()
     * @method \Bitrix\Forum\EO_Topic unsetLastPosterId()
     * @method \int fillLastPosterId()
     * @method \string getLastPosterName()
     * @method \Bitrix\Forum\EO_Topic setLastPosterName(\string|\Bitrix\Main\DB\SqlExpression $lastPosterName)
     * @method bool hasLastPosterName()
     * @method bool isLastPosterNameFilled()
     * @method bool isLastPosterNameChanged()
     * @method \string remindActualLastPosterName()
     * @method \string requireLastPosterName()
     * @method \Bitrix\Forum\EO_Topic resetLastPosterName()
     * @method \Bitrix\Forum\EO_Topic unsetLastPosterName()
     * @method \string fillLastPosterName()
     * @method \Bitrix\Main\Type\DateTime getLastPostDate()
     * @method \Bitrix\Forum\EO_Topic setLastPostDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastPostDate)
     * @method bool hasLastPostDate()
     * @method bool isLastPostDateFilled()
     * @method bool isLastPostDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastPostDate()
     * @method \Bitrix\Main\Type\DateTime requireLastPostDate()
     * @method \Bitrix\Forum\EO_Topic resetLastPostDate()
     * @method \Bitrix\Forum\EO_Topic unsetLastPostDate()
     * @method \Bitrix\Main\Type\DateTime fillLastPostDate()
     * @method \int getLastMessageId()
     * @method \Bitrix\Forum\EO_Topic setLastMessageId(\int|\Bitrix\Main\DB\SqlExpression $lastMessageId)
     * @method bool hasLastMessageId()
     * @method bool isLastMessageIdFilled()
     * @method bool isLastMessageIdChanged()
     * @method \int remindActualLastMessageId()
     * @method \int requireLastMessageId()
     * @method \Bitrix\Forum\EO_Topic resetLastMessageId()
     * @method \Bitrix\Forum\EO_Topic unsetLastMessageId()
     * @method \int fillLastMessageId()
     * @method \int getPostsUnapproved()
     * @method \Bitrix\Forum\EO_Topic setPostsUnapproved(\int|\Bitrix\Main\DB\SqlExpression $postsUnapproved)
     * @method bool hasPostsUnapproved()
     * @method bool isPostsUnapprovedFilled()
     * @method bool isPostsUnapprovedChanged()
     * @method \int remindActualPostsUnapproved()
     * @method \int requirePostsUnapproved()
     * @method \Bitrix\Forum\EO_Topic resetPostsUnapproved()
     * @method \Bitrix\Forum\EO_Topic unsetPostsUnapproved()
     * @method \int fillPostsUnapproved()
     * @method \int getAbsLastPosterId()
     * @method \Bitrix\Forum\EO_Topic setAbsLastPosterId(\int|\Bitrix\Main\DB\SqlExpression $absLastPosterId)
     * @method bool hasAbsLastPosterId()
     * @method bool isAbsLastPosterIdFilled()
     * @method bool isAbsLastPosterIdChanged()
     * @method \int remindActualAbsLastPosterId()
     * @method \int requireAbsLastPosterId()
     * @method \Bitrix\Forum\EO_Topic resetAbsLastPosterId()
     * @method \Bitrix\Forum\EO_Topic unsetAbsLastPosterId()
     * @method \int fillAbsLastPosterId()
     * @method \string getAbsLastPosterName()
     * @method \Bitrix\Forum\EO_Topic setAbsLastPosterName(\string|\Bitrix\Main\DB\SqlExpression $absLastPosterName)
     * @method bool hasAbsLastPosterName()
     * @method bool isAbsLastPosterNameFilled()
     * @method bool isAbsLastPosterNameChanged()
     * @method \string remindActualAbsLastPosterName()
     * @method \string requireAbsLastPosterName()
     * @method \Bitrix\Forum\EO_Topic resetAbsLastPosterName()
     * @method \Bitrix\Forum\EO_Topic unsetAbsLastPosterName()
     * @method \string fillAbsLastPosterName()
     * @method \Bitrix\Main\Type\DateTime getAbsLastPostDate()
     * @method \Bitrix\Forum\EO_Topic setAbsLastPostDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $absLastPostDate)
     * @method bool hasAbsLastPostDate()
     * @method bool isAbsLastPostDateFilled()
     * @method bool isAbsLastPostDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualAbsLastPostDate()
     * @method \Bitrix\Main\Type\DateTime requireAbsLastPostDate()
     * @method \Bitrix\Forum\EO_Topic resetAbsLastPostDate()
     * @method \Bitrix\Forum\EO_Topic unsetAbsLastPostDate()
     * @method \Bitrix\Main\Type\DateTime fillAbsLastPostDate()
     * @method \int getAbsLastMessageId()
     * @method \Bitrix\Forum\EO_Topic setAbsLastMessageId(\int|\Bitrix\Main\DB\SqlExpression $absLastMessageId)
     * @method bool hasAbsLastMessageId()
     * @method bool isAbsLastMessageIdFilled()
     * @method bool isAbsLastMessageIdChanged()
     * @method \int remindActualAbsLastMessageId()
     * @method \int requireAbsLastMessageId()
     * @method \Bitrix\Forum\EO_Topic resetAbsLastMessageId()
     * @method \Bitrix\Forum\EO_Topic unsetAbsLastMessageId()
     * @method \int fillAbsLastMessageId()
     * @method \string getXmlId()
     * @method \Bitrix\Forum\EO_Topic setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Forum\EO_Topic resetXmlId()
     * @method \Bitrix\Forum\EO_Topic unsetXmlId()
     * @method \string fillXmlId()
     * @method \string getHtml()
     * @method \Bitrix\Forum\EO_Topic setHtml(\string|\Bitrix\Main\DB\SqlExpression $html)
     * @method bool hasHtml()
     * @method bool isHtmlFilled()
     * @method bool isHtmlChanged()
     * @method \string remindActualHtml()
     * @method \string requireHtml()
     * @method \Bitrix\Forum\EO_Topic resetHtml()
     * @method \Bitrix\Forum\EO_Topic unsetHtml()
     * @method \string fillHtml()
     * @method \int getSocnetGroupId()
     * @method \Bitrix\Forum\EO_Topic setSocnetGroupId(\int|\Bitrix\Main\DB\SqlExpression $socnetGroupId)
     * @method bool hasSocnetGroupId()
     * @method bool isSocnetGroupIdFilled()
     * @method bool isSocnetGroupIdChanged()
     * @method \int remindActualSocnetGroupId()
     * @method \int requireSocnetGroupId()
     * @method \Bitrix\Forum\EO_Topic resetSocnetGroupId()
     * @method \Bitrix\Forum\EO_Topic unsetSocnetGroupId()
     * @method \int fillSocnetGroupId()
     * @method \int getOwnerId()
     * @method \Bitrix\Forum\EO_Topic setOwnerId(\int|\Bitrix\Main\DB\SqlExpression $ownerId)
     * @method bool hasOwnerId()
     * @method bool isOwnerIdFilled()
     * @method bool isOwnerIdChanged()
     * @method \int remindActualOwnerId()
     * @method \int requireOwnerId()
     * @method \Bitrix\Forum\EO_Topic resetOwnerId()
     * @method \Bitrix\Forum\EO_Topic unsetOwnerId()
     * @method \int fillOwnerId()
     * @method \Bitrix\Forum\EO_Forum getForum()
     * @method \Bitrix\Forum\EO_Forum remindActualForum()
     * @method \Bitrix\Forum\EO_Forum requireForum()
     * @method \Bitrix\Forum\EO_Topic setForum(\Bitrix\Forum\EO_Forum $object)
     * @method \Bitrix\Forum\EO_Topic resetForum()
     * @method \Bitrix\Forum\EO_Topic unsetForum()
     * @method bool hasForum()
     * @method bool isForumFilled()
     * @method bool isForumChanged()
     * @method \Bitrix\Forum\EO_Forum fillForum()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Forum\EO_Topic set($fieldName, $value)
     * @method \Bitrix\Forum\EO_Topic reset($fieldName)
     * @method \Bitrix\Forum\EO_Topic unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Forum\EO_Topic wakeUp($data)
     */
    class EO_Topic
    {
        /* @var \Bitrix\Forum\TopicTable */
        public static $dataClass = '\\Bitrix\\Forum\\TopicTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Topic_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getForumIdList()
     * @method \int[] fillForumId()
     * @method \int[] getTopicIdList()
     * @method \int[] fillTopicId()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getTitleSeoList()
     * @method \string[] fillTitleSeo()
     * @method \string[] getTagsList()
     * @method \string[] fillTags()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getIconList()
     * @method \string[] fillIcon()
     * @method \string[] getStateList()
     * @method \string[] fillState()
     * @method \boolean[] getApprovedList()
     * @method \boolean[] fillApproved()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \int[] getViewsList()
     * @method \int[] fillViews()
     * @method \int[] getUserStartIdList()
     * @method \int[] fillUserStartId()
     * @method \string[] getUserStartNameList()
     * @method \string[] fillUserStartName()
     * @method \Bitrix\Main\Type\DateTime[] getStartDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillStartDate()
     * @method \int[] getPostsList()
     * @method \int[] fillPosts()
     * @method \int[] getLastPosterIdList()
     * @method \int[] fillLastPosterId()
     * @method \string[] getLastPosterNameList()
     * @method \string[] fillLastPosterName()
     * @method \Bitrix\Main\Type\DateTime[] getLastPostDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastPostDate()
     * @method \int[] getLastMessageIdList()
     * @method \int[] fillLastMessageId()
     * @method \int[] getPostsUnapprovedList()
     * @method \int[] fillPostsUnapproved()
     * @method \int[] getAbsLastPosterIdList()
     * @method \int[] fillAbsLastPosterId()
     * @method \string[] getAbsLastPosterNameList()
     * @method \string[] fillAbsLastPosterName()
     * @method \Bitrix\Main\Type\DateTime[] getAbsLastPostDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillAbsLastPostDate()
     * @method \int[] getAbsLastMessageIdList()
     * @method \int[] fillAbsLastMessageId()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \string[] getHtmlList()
     * @method \string[] fillHtml()
     * @method \int[] getSocnetGroupIdList()
     * @method \int[] fillSocnetGroupId()
     * @method \int[] getOwnerIdList()
     * @method \int[] fillOwnerId()
     * @method \Bitrix\Forum\EO_Forum[] getForumList()
     * @method \Bitrix\Forum\EO_Topic_Collection getForumCollection()
     * @method \Bitrix\Forum\EO_Forum_Collection fillForum()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Forum\EO_Topic $object)
     * @method bool has(\Bitrix\Forum\EO_Topic $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Forum\EO_Topic getByPrimary($primary)
     * @method \Bitrix\Forum\EO_Topic[] getAll()
     * @method bool remove(\Bitrix\Forum\EO_Topic $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Forum\EO_Topic_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Forum\EO_Topic current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Topic_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Forum\TopicTable */
        public static $dataClass = '\\Bitrix\\Forum\\TopicTable';
    }
    /**
     * @method static EO_Topic_Query query()
     * @method static EO_Topic_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Topic_Result getById($id)
     * @method static EO_Topic_Result getList(array $parameters = array())
     * @method static EO_Topic_Entity getEntity()
     * @method static \Bitrix\Forum\EO_Topic createObject($setDefaultValues = true)
     * @method static \Bitrix\Forum\EO_Topic_Collection createCollection()
     * @method static \Bitrix\Forum\EO_Topic wakeUpObject($row)
     * @method static \Bitrix\Forum\EO_Topic_Collection wakeUpCollection($rows)
     */
    class TopicTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Topic_Result exec()
     * @method \Bitrix\Forum\EO_Topic fetchObject()
     * @method \Bitrix\Forum\EO_Topic_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Topic_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Forum\EO_Topic fetchObject()
     * @method \Bitrix\Forum\EO_Topic_Collection fetchCollection()
     */
    class EO_Topic_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Forum\EO_Topic createObject($setDefaultValues = true)
     * @method \Bitrix\Forum\EO_Topic_Collection createCollection()
     * @method \Bitrix\Forum\EO_Topic wakeUpObject($row)
     * @method \Bitrix\Forum\EO_Topic_Collection wakeUpCollection($rows)
     */
    class EO_Topic_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_User
     * @see \Bitrix\Forum\UserTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Forum\EO_User setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Forum\EO_User setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Forum\EO_User resetUserId()
     * @method \Bitrix\Forum\EO_User unsetUserId()
     * @method \int fillUserId()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Forum\EO_User setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Forum\EO_User resetUser()
     * @method \Bitrix\Forum\EO_User unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \string getDescription()
     * @method \Bitrix\Forum\EO_User setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Forum\EO_User resetDescription()
     * @method \Bitrix\Forum\EO_User unsetDescription()
     * @method \string fillDescription()
     * @method \int getAvatar()
     * @method \Bitrix\Forum\EO_User setAvatar(\int|\Bitrix\Main\DB\SqlExpression $avatar)
     * @method bool hasAvatar()
     * @method bool isAvatarFilled()
     * @method bool isAvatarChanged()
     * @method \int remindActualAvatar()
     * @method \int requireAvatar()
     * @method \Bitrix\Forum\EO_User resetAvatar()
     * @method \Bitrix\Forum\EO_User unsetAvatar()
     * @method \int fillAvatar()
     * @method \int getPoints()
     * @method \Bitrix\Forum\EO_User setPoints(\int|\Bitrix\Main\DB\SqlExpression $points)
     * @method bool hasPoints()
     * @method bool isPointsFilled()
     * @method bool isPointsChanged()
     * @method \int remindActualPoints()
     * @method \int requirePoints()
     * @method \Bitrix\Forum\EO_User resetPoints()
     * @method \Bitrix\Forum\EO_User unsetPoints()
     * @method \int fillPoints()
     * @method \int getRankId()
     * @method \Bitrix\Forum\EO_User setRankId(\int|\Bitrix\Main\DB\SqlExpression $rankId)
     * @method bool hasRankId()
     * @method bool isRankIdFilled()
     * @method bool isRankIdChanged()
     * @method \int remindActualRankId()
     * @method \int requireRankId()
     * @method \Bitrix\Forum\EO_User resetRankId()
     * @method \Bitrix\Forum\EO_User unsetRankId()
     * @method \int fillRankId()
     * @method \int getNumPosts()
     * @method \Bitrix\Forum\EO_User setNumPosts(\int|\Bitrix\Main\DB\SqlExpression $numPosts)
     * @method bool hasNumPosts()
     * @method bool isNumPostsFilled()
     * @method bool isNumPostsChanged()
     * @method \int remindActualNumPosts()
     * @method \int requireNumPosts()
     * @method \Bitrix\Forum\EO_User resetNumPosts()
     * @method \Bitrix\Forum\EO_User unsetNumPosts()
     * @method \int fillNumPosts()
     * @method \string getInterests()
     * @method \Bitrix\Forum\EO_User setInterests(\string|\Bitrix\Main\DB\SqlExpression $interests)
     * @method bool hasInterests()
     * @method bool isInterestsFilled()
     * @method bool isInterestsChanged()
     * @method \string remindActualInterests()
     * @method \string requireInterests()
     * @method \Bitrix\Forum\EO_User resetInterests()
     * @method \Bitrix\Forum\EO_User unsetInterests()
     * @method \string fillInterests()
     * @method \int getLastPost()
     * @method \Bitrix\Forum\EO_User setLastPost(\int|\Bitrix\Main\DB\SqlExpression $lastPost)
     * @method bool hasLastPost()
     * @method bool isLastPostFilled()
     * @method bool isLastPostChanged()
     * @method \int remindActualLastPost()
     * @method \int requireLastPost()
     * @method \Bitrix\Forum\EO_User resetLastPost()
     * @method \Bitrix\Forum\EO_User unsetLastPost()
     * @method \int fillLastPost()
     * @method \string getSignature()
     * @method \Bitrix\Forum\EO_User setSignature(\string|\Bitrix\Main\DB\SqlExpression $signature)
     * @method bool hasSignature()
     * @method bool isSignatureFilled()
     * @method bool isSignatureChanged()
     * @method \string remindActualSignature()
     * @method \string requireSignature()
     * @method \Bitrix\Forum\EO_User resetSignature()
     * @method \Bitrix\Forum\EO_User unsetSignature()
     * @method \string fillSignature()
     * @method \string getIpAddress()
     * @method \Bitrix\Forum\EO_User setIpAddress(\string|\Bitrix\Main\DB\SqlExpression $ipAddress)
     * @method bool hasIpAddress()
     * @method bool isIpAddressFilled()
     * @method bool isIpAddressChanged()
     * @method \string remindActualIpAddress()
     * @method \string requireIpAddress()
     * @method \Bitrix\Forum\EO_User resetIpAddress()
     * @method \Bitrix\Forum\EO_User unsetIpAddress()
     * @method \string fillIpAddress()
     * @method \string getRealIpAddress()
     * @method \Bitrix\Forum\EO_User setRealIpAddress(\string|\Bitrix\Main\DB\SqlExpression $realIpAddress)
     * @method bool hasRealIpAddress()
     * @method bool isRealIpAddressFilled()
     * @method bool isRealIpAddressChanged()
     * @method \string remindActualRealIpAddress()
     * @method \string requireRealIpAddress()
     * @method \Bitrix\Forum\EO_User resetRealIpAddress()
     * @method \Bitrix\Forum\EO_User unsetRealIpAddress()
     * @method \string fillRealIpAddress()
     * @method \Bitrix\Main\Type\DateTime getDateReg()
     * @method \Bitrix\Forum\EO_User setDateReg(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateReg)
     * @method bool hasDateReg()
     * @method bool isDateRegFilled()
     * @method bool isDateRegChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateReg()
     * @method \Bitrix\Main\Type\DateTime requireDateReg()
     * @method \Bitrix\Forum\EO_User resetDateReg()
     * @method \Bitrix\Forum\EO_User unsetDateReg()
     * @method \Bitrix\Main\Type\DateTime fillDateReg()
     * @method \Bitrix\Main\Type\DateTime getLastVisit()
     * @method \Bitrix\Forum\EO_User setLastVisit(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastVisit)
     * @method bool hasLastVisit()
     * @method bool isLastVisitFilled()
     * @method bool isLastVisitChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastVisit()
     * @method \Bitrix\Main\Type\DateTime requireLastVisit()
     * @method \Bitrix\Forum\EO_User resetLastVisit()
     * @method \Bitrix\Forum\EO_User unsetLastVisit()
     * @method \Bitrix\Main\Type\DateTime fillLastVisit()
     * @method \boolean getAllowPost()
     * @method \Bitrix\Forum\EO_User setAllowPost(\boolean|\Bitrix\Main\DB\SqlExpression $allowPost)
     * @method bool hasAllowPost()
     * @method bool isAllowPostFilled()
     * @method bool isAllowPostChanged()
     * @method \boolean remindActualAllowPost()
     * @method \boolean requireAllowPost()
     * @method \Bitrix\Forum\EO_User resetAllowPost()
     * @method \Bitrix\Forum\EO_User unsetAllowPost()
     * @method \boolean fillAllowPost()
     * @method \boolean getShowName()
     * @method \Bitrix\Forum\EO_User setShowName(\boolean|\Bitrix\Main\DB\SqlExpression $showName)
     * @method bool hasShowName()
     * @method bool isShowNameFilled()
     * @method bool isShowNameChanged()
     * @method \boolean remindActualShowName()
     * @method \boolean requireShowName()
     * @method \Bitrix\Forum\EO_User resetShowName()
     * @method \Bitrix\Forum\EO_User unsetShowName()
     * @method \boolean fillShowName()
     * @method \boolean getHideFromOnline()
     * @method \Bitrix\Forum\EO_User setHideFromOnline(\boolean|\Bitrix\Main\DB\SqlExpression $hideFromOnline)
     * @method bool hasHideFromOnline()
     * @method bool isHideFromOnlineFilled()
     * @method bool isHideFromOnlineChanged()
     * @method \boolean remindActualHideFromOnline()
     * @method \boolean requireHideFromOnline()
     * @method \Bitrix\Forum\EO_User resetHideFromOnline()
     * @method \Bitrix\Forum\EO_User unsetHideFromOnline()
     * @method \boolean fillHideFromOnline()
     * @method \boolean getSubscGroupMessage()
     * @method \Bitrix\Forum\EO_User setSubscGroupMessage(\boolean|\Bitrix\Main\DB\SqlExpression $subscGroupMessage)
     * @method bool hasSubscGroupMessage()
     * @method bool isSubscGroupMessageFilled()
     * @method bool isSubscGroupMessageChanged()
     * @method \boolean remindActualSubscGroupMessage()
     * @method \boolean requireSubscGroupMessage()
     * @method \Bitrix\Forum\EO_User resetSubscGroupMessage()
     * @method \Bitrix\Forum\EO_User unsetSubscGroupMessage()
     * @method \boolean fillSubscGroupMessage()
     * @method \boolean getSubscGetMyMessage()
     * @method \Bitrix\Forum\EO_User setSubscGetMyMessage(\boolean|\Bitrix\Main\DB\SqlExpression $subscGetMyMessage)
     * @method bool hasSubscGetMyMessage()
     * @method bool isSubscGetMyMessageFilled()
     * @method bool isSubscGetMyMessageChanged()
     * @method \boolean remindActualSubscGetMyMessage()
     * @method \boolean requireSubscGetMyMessage()
     * @method \Bitrix\Forum\EO_User resetSubscGetMyMessage()
     * @method \Bitrix\Forum\EO_User unsetSubscGetMyMessage()
     * @method \boolean fillSubscGetMyMessage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Forum\EO_User set($fieldName, $value)
     * @method \Bitrix\Forum\EO_User reset($fieldName)
     * @method \Bitrix\Forum\EO_User unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Forum\EO_User wakeUp($data)
     */
    class EO_User
    {
        /* @var \Bitrix\Forum\UserTable */
        public static $dataClass = '\\Bitrix\\Forum\\UserTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_User_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Forum\EO_User_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \int[] getAvatarList()
     * @method \int[] fillAvatar()
     * @method \int[] getPointsList()
     * @method \int[] fillPoints()
     * @method \int[] getRankIdList()
     * @method \int[] fillRankId()
     * @method \int[] getNumPostsList()
     * @method \int[] fillNumPosts()
     * @method \string[] getInterestsList()
     * @method \string[] fillInterests()
     * @method \int[] getLastPostList()
     * @method \int[] fillLastPost()
     * @method \string[] getSignatureList()
     * @method \string[] fillSignature()
     * @method \string[] getIpAddressList()
     * @method \string[] fillIpAddress()
     * @method \string[] getRealIpAddressList()
     * @method \string[] fillRealIpAddress()
     * @method \Bitrix\Main\Type\DateTime[] getDateRegList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateReg()
     * @method \Bitrix\Main\Type\DateTime[] getLastVisitList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastVisit()
     * @method \boolean[] getAllowPostList()
     * @method \boolean[] fillAllowPost()
     * @method \boolean[] getShowNameList()
     * @method \boolean[] fillShowName()
     * @method \boolean[] getHideFromOnlineList()
     * @method \boolean[] fillHideFromOnline()
     * @method \boolean[] getSubscGroupMessageList()
     * @method \boolean[] fillSubscGroupMessage()
     * @method \boolean[] getSubscGetMyMessageList()
     * @method \boolean[] fillSubscGetMyMessage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Forum\EO_User $object)
     * @method bool has(\Bitrix\Forum\EO_User $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Forum\EO_User getByPrimary($primary)
     * @method \Bitrix\Forum\EO_User[] getAll()
     * @method bool remove(\Bitrix\Forum\EO_User $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Forum\EO_User_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Forum\EO_User current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_User_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Forum\UserTable */
        public static $dataClass = '\\Bitrix\\Forum\\UserTable';
    }
    /**
     * @method static EO_User_Query query()
     * @method static EO_User_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_User_Result getById($id)
     * @method static EO_User_Result getList(array $parameters = array())
     * @method static EO_User_Entity getEntity()
     * @method static \Bitrix\Forum\EO_User createObject($setDefaultValues = true)
     * @method static \Bitrix\Forum\EO_User_Collection createCollection()
     * @method static \Bitrix\Forum\EO_User wakeUpObject($row)
     * @method static \Bitrix\Forum\EO_User_Collection wakeUpCollection($rows)
     */
    class UserTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_User_Result exec()
     * @method \Bitrix\Forum\EO_User fetchObject()
     * @method \Bitrix\Forum\EO_User_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_User_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Forum\EO_User fetchObject()
     * @method \Bitrix\Forum\EO_User_Collection fetchCollection()
     */
    class EO_User_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Forum\EO_User createObject($setDefaultValues = true)
     * @method \Bitrix\Forum\EO_User_Collection createCollection()
     * @method \Bitrix\Forum\EO_User wakeUpObject($row)
     * @method \Bitrix\Forum\EO_User_Collection wakeUpCollection($rows)
     */
    class EO_User_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserTopic
     * @see \Bitrix\Forum\UserTopicTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Forum\EO_UserTopic setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int remindActualId()
     * @method \int requireId()
     * @method \Bitrix\Forum\EO_UserTopic resetId()
     * @method \Bitrix\Forum\EO_UserTopic unsetId()
     * @method \int fillId()
     * @method \int getTopicId()
     * @method \Bitrix\Forum\EO_UserTopic setTopicId(\int|\Bitrix\Main\DB\SqlExpression $topicId)
     * @method bool hasTopicId()
     * @method bool isTopicIdFilled()
     * @method bool isTopicIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Forum\EO_UserTopic setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int getForumId()
     * @method \Bitrix\Forum\EO_UserTopic setForumId(\int|\Bitrix\Main\DB\SqlExpression $forumId)
     * @method bool hasForumId()
     * @method bool isForumIdFilled()
     * @method bool isForumIdChanged()
     * @method \int remindActualForumId()
     * @method \int requireForumId()
     * @method \Bitrix\Forum\EO_UserTopic resetForumId()
     * @method \Bitrix\Forum\EO_UserTopic unsetForumId()
     * @method \int fillForumId()
     * @method \Bitrix\Main\Type\DateTime getLastVisit()
     * @method \Bitrix\Forum\EO_UserTopic setLastVisit(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastVisit)
     * @method bool hasLastVisit()
     * @method bool isLastVisitFilled()
     * @method bool isLastVisitChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastVisit()
     * @method \Bitrix\Main\Type\DateTime requireLastVisit()
     * @method \Bitrix\Forum\EO_UserTopic resetLastVisit()
     * @method \Bitrix\Forum\EO_UserTopic unsetLastVisit()
     * @method \Bitrix\Main\Type\DateTime fillLastVisit()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Forum\EO_UserTopic set($fieldName, $value)
     * @method \Bitrix\Forum\EO_UserTopic reset($fieldName)
     * @method \Bitrix\Forum\EO_UserTopic unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Forum\EO_UserTopic wakeUp($data)
     */
    class EO_UserTopic
    {
        /* @var \Bitrix\Forum\UserTopicTable */
        public static $dataClass = '\\Bitrix\\Forum\\UserTopicTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserTopic_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] fillId()
     * @method \int[] getTopicIdList()
     * @method \int[] getUserIdList()
     * @method \int[] getForumIdList()
     * @method \int[] fillForumId()
     * @method \Bitrix\Main\Type\DateTime[] getLastVisitList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastVisit()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Forum\EO_UserTopic $object)
     * @method bool has(\Bitrix\Forum\EO_UserTopic $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Forum\EO_UserTopic getByPrimary($primary)
     * @method \Bitrix\Forum\EO_UserTopic[] getAll()
     * @method bool remove(\Bitrix\Forum\EO_UserTopic $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Forum\EO_UserTopic_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Forum\EO_UserTopic current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserTopic_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Forum\UserTopicTable */
        public static $dataClass = '\\Bitrix\\Forum\\UserTopicTable';
    }
    /**
     * @method static EO_UserTopic_Query query()
     * @method static EO_UserTopic_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserTopic_Result getById($id)
     * @method static EO_UserTopic_Result getList(array $parameters = array())
     * @method static EO_UserTopic_Entity getEntity()
     * @method static \Bitrix\Forum\EO_UserTopic createObject($setDefaultValues = true)
     * @method static \Bitrix\Forum\EO_UserTopic_Collection createCollection()
     * @method static \Bitrix\Forum\EO_UserTopic wakeUpObject($row)
     * @method static \Bitrix\Forum\EO_UserTopic_Collection wakeUpCollection($rows)
     */
    class UserTopicTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserTopic_Result exec()
     * @method \Bitrix\Forum\EO_UserTopic fetchObject()
     * @method \Bitrix\Forum\EO_UserTopic_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserTopic_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Forum\EO_UserTopic fetchObject()
     * @method \Bitrix\Forum\EO_UserTopic_Collection fetchCollection()
     */
    class EO_UserTopic_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Forum\EO_UserTopic createObject($setDefaultValues = true)
     * @method \Bitrix\Forum\EO_UserTopic_Collection createCollection()
     * @method \Bitrix\Forum\EO_UserTopic wakeUpObject($row)
     * @method \Bitrix\Forum\EO_UserTopic_Collection wakeUpCollection($rows)
     */
    class EO_UserTopic_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Forum\Comments {
    abstract class BaseObject
    {
        const ERROR_PARAMS_FORUM_ID = 'params0001';
        const ERROR_PARAMS_TOPIC_ID = 'params0002';
        const ERROR_PARAMS_ENTITY_ID = 'params0003';
        private static $topics = array();
        private static $users = array();
        /* @var \Bitrix\Forum\Comments\User */
        protected $user;
        /* @var \Bitrix\Forum\Comments\Entity */
        protected $entity;
        /** @var array */
        protected $forum;
        /** @var array */
        protected $topic;
        /** @var  ErrorCollection */
        protected $errorCollection;
        public function __construct($forumId, $entity, $userId = null)
        {
        }
        protected function setEntity(array $id)
        {
        }
        /**
         * Returns entity which manage all rights. For example forum topic or task
         * @return Entity
         */
        public function getEntity()
        {
        }
        protected function setTopic()
        {
        }
        protected function createTopic()
        {
        }
        /**
         * Returns forum topic
         * @return array
         */
        public function getTopic()
        {
        }
        /**
         * @return bool
         */
        public function hasErrors()
        {
        }
        /**
         * @return array
         */
        public function getErrors()
        {
        }
        protected static function checkForumId(&$forumId)
        {
        }
        protected function setForum($id)
        {
        }
        /**
         * Returns forum
         * @return array
         */
        public function getForum()
        {
        }
        /**
         * Redefines forum params
         *
         * @param array $params Array(key=>value, key2=>value2) of fields to redefine forum fields.
         * @return $this
         */
        public function setForumFields(array $params)
        {
        }
        /**
         * @param $userId
         * @return User
         */
        protected function setUser($userId)
        {
        }
        /**
         * @return User
         */
        public function getUser()
        {
        }
        /**
         * @return \CMain
         */
        public function getApplication()
        {
        }
        private static function getUserFromForum($userId)
        {
        }
        protected function getUserName($userId)
        {
        }
    }
    class Feed extends \Bitrix\Forum\Comments\BaseObject
    {
        const ERROR_PARAMS_MESSAGE = 'params0004';
        const ERROR_PERMISSION = 'params0005';
        private function checkTopic()
        {
        }
        /**
         * Returns true if entity allows adding
         * @return bool
         */
        public function canAdd()
        {
        }
        /**
         * Returns true if entity allows reading
         * @return bool
         */
        public function canRead()
        {
        }
        /**
         * Returns true if entity allows editing
         * @return bool
         */
        public function canEdit()
        {
        }
        /**
         * @param integer $commentId Message ID in b_forum_message to edit.
         * @return bool
         */
        public function canEditComment($commentId)
        {
        }
        /**
         * Returns true if entity allows deleting.
         * @return bool
         */
        public function canDelete()
        {
        }
        /**
         * @param  integer $commentId Message ID in b_forum_message to delete.
         * @return bool
         */
        public function canDeleteComment($commentId)
        {
        }
        /**
         * @return bool
         */
        public function canModerate()
        {
        }
        /**
         * @return bool
         */
        public function canEditOwn()
        {
        }
        /**
         * Add a comment
         * @param array $params Fields for new message to add in table b_forum_message.
         * @return array|bool
         */
        public function add(array $params)
        {
        }
        /**
         * Edit a comment
         * @param integer $id Message id.
         * @param array $params Fields to edit message.
         * @return array|bool
         */
        public function edit($id, array $params)
        {
        }
        /**
         * Delete a comment
         * @param integer $id Message id.
         * @return array|bool
         */
        public function delete($id)
        {
        }
        /**
         * Moderate comment with id
         * @param integer $id Message id.
         * @param boolean $show State for moderating: true - show, false - hide.
         * @return array|bool
         */
        public function moderate($id, $show)
        {
        }
        /**
         * Mainly this function for forum entity. In this case params have to from the list: A < E < I < M < Q < U < Y
         * A - NO ACCESS		E - READ			I - ANSWER
         * M - NEW TOPIC		Q - MODERATE	U - EDIT			Y - FULL_ACCESS
         * @param string $permission A,E,I,M,Q,U,Y.
         * @return $this
         */
        public function setPermission($permission)
        {
        }
        /**
         * @param boolean $allow True or false.
         * @return $this
         */
        public function setEditOwn($allow)
        {
        }
        /**
         * Returns permission From list: A < E < I < M < Q < U < Y.
         * @return string
         */
        public function getPermission()
        {
        }
    }
    class Entity
    {
        const ENTITY_TYPE = 'default';
        const MODULE_ID = 'forum';
        const XML_ID_PREFIX = 'TOPIC_';
        /** @var array */
        protected $entity;
        /** @var array */
        protected $forum;
        /** @var array  */
        protected static $permissions = array();
        /** @var bool */
        private $editOwn = false;
        protected static $pathToUser = '/company/personal/user/#user_id#/';
        protected static $pathToGroup = '/workgroups/group/#group_id#/';
        /** @var array */
        protected static $entities;
        /**
         * @param array $entity
         * @param array $storage
         */
        public function __construct(array $entity, array $storage)
        {
        }
        public function getId()
        {
        }
        public function getType()
        {
        }
        public function getXmlId()
        {
        }
        /**
         * @return array
         */
        public function getFullId()
        {
        }
        public static function className()
        {
        }
        public static function getModule()
        {
        }
        public static function getEntityType()
        {
        }
        public static function getXmlIdPrefix()
        {
        }
        /**
         * @param integer $userId User id.
         * @return bool
         */
        public function canRead($userId)
        {
        }
        /**
         * @param integer $userId User id.
         * @return bool
         */
        public function canAdd($userId)
        {
        }
        /**
         * @param integer $userId User id.
         * @return bool
         */
        public function canEdit($userId)
        {
        }
        /**
         * @param integer $userId User id.
         * @return bool
         */
        public function canEditOwn($userId)
        {
        }
        /**
         * @param integer $userId User id.
         * @return bool
         */
        public function canModerate($userId)
        {
        }
        /**
        * @param integer $userId User id.
        * @param string $permission A < E < I < M < Q < U < Y
        	// A - NO ACCESS		E - READ			I - ANSWER
        	// M - NEW TOPIC		Q - MODERATE	U - EDIT			Y - FULL_ACCESS.
        * @return $this
        */
        public function setPermission($userId, $permission)
        {
        }
        /**
         * @param bool $permission
         * @return $this
         */
        public function setEditOwn($permission)
        {
        }
        /**
         * @param integer $userId User id.
         * @return $this
         */
        public function getPermission($userId)
        {
        }
        /**
         * @param string $type Type entity.
         * @return array|null
         */
        public static function getEntityByType($type = "")
        {
        }
        /**
         * @param string $xmlId Type entity.
         * @return array|null
         */
        public static function getEntityByXmlId($xmlId = "")
        {
        }
        private static function getEntities()
        {
        }
        /**
         * Event before indexing message.
         * @param integer $id Message ID.
         * @param array $message Message data.
         * @param array &$index Search index array.
         * @return boolean
         */
        public static function onMessageIsIndexed($id, array $message, array &$index)
        {
        }
    }
    final class CalendarEntity extends \Bitrix\Forum\Comments\Entity
    {
        const ENTITY_TYPE = 'ev';
        const MODULE_ID = 'calendar';
        const XML_ID_PREFIX = 'EVENT_';
        protected static $permissions = array();
        private $canRead = null;
        /**
         * @var integer $userId User Id.
         * @return bool
         */
        public function canRead($userId)
        {
        }
        /**
         * @var integer $userId User Id.
         * @return bool
         */
        public function canAdd($userId)
        {
        }
        /**
         * @var integer $userId User Id.
         * @return bool
         */
        public function canEditOwn($userId)
        {
        }
        /**
         * @var integer $userId User Id.
         * @return bool
         */
        public function canEdit($userId)
        {
        }
        /**
         * Event before indexing message.
         * @param integer $id Message ID.
         * @param array $message Message data.
         * @param array &$index Search index array.
         * @return boolean
         */
        public static function onMessageIsIndexed($id, array $message, array &$index)
        {
        }
    }
    class User
    {
        protected $id = 0;
        protected $groups = array(2);
        protected $forumUser = [];
        public function __construct($id)
        {
        }
        public function getId()
        {
        }
        public function getGroups()
        {
        }
        public function getUserGroupArray()
        {
        }
        public function isAuthorized()
        {
        }
        public function getParam(string $key)
        {
        }
        public function isAdmin()
        {
        }
        public function getUserGroup()
        {
        }
        public function getFirstName()
        {
        }
        public function getLastName()
        {
        }
        public function getSecondName()
        {
        }
        public function getLogin()
        {
        }
        public function getFullName()
        {
        }
    }
    final class TaskEntity extends \Bitrix\Forum\Comments\Entity
    {
        const ENTITY_TYPE = 'tk';
        const MODULE_ID = 'tasks';
        const XML_ID_PREFIX = 'TASK_';
        private $taskPostData;
        private $hasAccess;
        protected static $permissions = array();
        /**
         * @var integer $userId User Id.
         * @return bool
         */
        public function canRead($userId)
        {
        }
        /**
         * @var integer $userId User Id.
         * @return bool
         */
        public function canAdd($userId)
        {
        }
        /**
         * @var integer $userId User Id.
         * @return bool
         */
        public function canEditOwn($userId)
        {
        }
        /**
         * @var integer $userId User Id.
         * @return bool
         */
        public function canEdit($userId)
        {
        }
        /**
         * @return $this
         */
        public function dropCache()
        {
        }
        /**
         * @param integer $userId User id.
         * @return bool
         */
        private function checkHasAccess($userId)
        {
        }
        private static function checkEditOptionIsOn()
        {
        }
        /**
         * Event before indexing message.
         * @param integer $id Message ID.
         * @param array $message Message data.
         * @param array &$index Search index array.
         * @return boolean
         */
        public static function onMessageIsIndexed($id, array $message, array &$index)
        {
        }
    }
    class Comment extends \Bitrix\Forum\Comments\BaseObject
    {
        const ERROR_PARAMS_MESSAGE = 'params0006';
        const ERROR_PERMISSION = 'params0007';
        const ERROR_MESSAGE_IS_NULL = 'params0008';
        const ERROR_PARAMS_TYPE = 'params0009';
        /* @var integer */
        private $id = 0;
        /* @var array */
        private $message = null;
        private function prepareFields(array &$params, \Bitrix\Forum\Internals\Error\ErrorCollection $errorCollectionParam)
        {
        }
        private function updateStatisticModule($messageId)
        {
        }
        /**
         * Adds new comment
         * @param array $params
         * @return array|false
         */
        public function add(array $params)
        {
        }
        /**
         * Edit new comment
         * @param array $params
         * @return array|false
         */
        public function edit(array $params)
        {
        }
        public function delete()
        {
        }
        public function moderate($show)
        {
        }
        public function canEdit()
        {
        }
        /**
         * @return bool
         */
        public function canEditOwn()
        {
        }
        /**
         * @return bool
         */
        public function canDelete()
        {
        }
        public function setComment($id)
        {
        }
        public function getComment()
        {
        }
        /**
         * Creates new
         * @param Feed $feed
         * @param $id
         * @return Comment
         */
        public static function createFromId(\Bitrix\Forum\Comments\Feed $feed, $id)
        {
        }
        /**
         * Creates new
         * @param Feed $feed
         * @return Comment
         */
        public static function create(\Bitrix\Forum\Comments\Feed $feed)
        {
        }
    }
    final class WorkflowEntity extends \Bitrix\Forum\Comments\Entity
    {
        const ENTITY_TYPE = 'wf';
        const MODULE_ID = 'lists';
        const XML_ID_PREFIX = 'WF_';
        private $hasAccess;
        protected static $permissions = array();
        /**
         * @var integer $userId User Id.
         * @return bool
         */
        public function canRead($userId)
        {
        }
        /**
         * @var integer $userId User Id.
         * @return bool
         */
        public function canAdd($userId)
        {
        }
        /**
         * @var integer $userId User Id.
         * @return bool
         */
        public function canEdit($userId)
        {
        }
        /**
         * @param integer $userId User id.
         * @return bool
         */
        private function checkHasAccess($userId)
        {
        }
    }
    class EventManager
    {
        public static function init()
        {
        }
        public static function updateIBlockPropertyAfterAddingMessage($ID, $arFields, $arTopic = array())
        {
        }
        public static function updateIBlockPropertyAfterDeletingMessage($ID, $arFields)
        {
        }
        public static function updateIBlockProperty($ID, $TYPE, $arMessage, $arTopic = array())
        {
        }
        /**
         * Event before indexing message.
         * @param integer $id Message ID.
         * @param array $message Message data.
         * @param array &$index Search index array.
         * @return boolean
         */
        public static function onMessageIsIndexed($id, array $message, array &$index)
        {
        }
    }
    final class TimemanEntryEntity extends \Bitrix\Forum\Comments\Entity
    {
        const ENTITY_TYPE = 'tm';
        const MODULE_ID = 'timeman';
        const XML_ID_PREFIX = 'TIMEMAN_ENTRY_';
        /**
         * @var integer $userId User Id.
         * @return bool
         */
        public function canRead($userId)
        {
        }
        /**
         * @var integer $userId User Id.
         * @return bool
         */
        public function canAdd($userId)
        {
        }
        /**
         * @var integer $userId User Id.
         * @return bool
         */
        public function canEditOwn($userId)
        {
        }
        /**
         * @var integer $userId User Id.
         * @return bool
         */
        public function canEdit($userId)
        {
        }
    }
}
namespace Bitrix\Forum\Comments\Service {
    abstract class Base
    {
        const TYPE = 'BASE';
        public function getType()
        {
        }
        public function getText()
        {
        }
        public function canDelete()
        {
        }
    }
    final class TaskInfo extends \Bitrix\Forum\Comments\Service\Base
    {
        const TYPE = 'TASKINFO';
        public function getType()
        {
        }
        public function getText(string $text = '', array $params = [])
        {
        }
        public function canDelete()
        {
        }
    }
    class Manager
    {
        const TYPE_TASK_INFO = 1;
        //	const TYPE_TASK_CREATED = 2;
        public static function getTypesList()
        {
        }
        public static final function find(array $params = [])
        {
        }
    }
    final class TaskCreated extends \Bitrix\Forum\Comments\Service\Base
    {
        public function getText(string $text = '')
        {
        }
    }
}
namespace Bitrix\Forum\Internals {
    trait EntityFabric
    {
        protected static $repo = [];
        /**
         * @param int $id
         * @return static
         */
        public static function getById($id)
        {
        }
        public function destroy()
        {
        }
        /**
         * @param static|int $object
         * @return static
         */
        public static function getInstance($object)
        {
        }
    }
    trait EntityBaseMethods
    {
        /** @var int */
        //	protected $id = 0;
        /** @var array */
        //	protected $data = [];
        public function getId()
        {
        }
        public function getData()
        {
        }
        public function offsetExists($offset)
        {
        }
        public function offsetGet($offset)
        {
        }
        public function offsetSet($offset, $value)
        {
        }
        public function offsetUnset($offset)
        {
        }
    }
}
namespace Bitrix\Forum {
    class Forum implements \ArrayAccess
    {
        use \Bitrix\Forum\Internals\EntityFabric;
        use \Bitrix\Forum\Internals\EntityBaseMethods;
        /** @var int */
        protected $id = 0;
        /** @var array */
        protected $data = [];
        /** @var array */
        protected $strore = [];
        public function __construct($id)
        {
        }
        private function bindEvents()
        {
        }
        public function clearCache()
        {
        }
        public function getPermissions()
        {
        }
        private function getPermissionFromUserGroups(array $groups)
        {
        }
        public function getPermissionForUser(\Bitrix\Forum\User $user)
        {
        }
        public function getPermissionForUserGroups(array $groups)
        {
        }
        public function setPermission(array $groups)
        {
        }
        public function getSites()
        {
        }
        public function calcStat()
        {
        }
        public function incrementStatistic(array $message)
        {
        }
    }
}
namespace Bitrix\Forum\Update {
    final class LivefeedIndexComment extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "forum";
        public function execute(array &$result)
        {
        }
    }
    final class LivefeedIndexMessage extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "forum";
        public function execute(array &$result)
        {
        }
    }
}
namespace Bitrix\Forum\Integration\Search {
    class Topic extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "forum";
        public static function getTitle()
        {
        }
        /**
         * @inheritDoc
         */
        function execute(array &$option)
        {
        }
        public static function reindexFirstMessage(int $topicId)
        {
        }
        public static function reindex(int $topicId)
        {
        }
    }
    class Message
    {
        public static function index(\Bitrix\Forum\Forum $forum, \Bitrix\Forum\Topic $topic, array $message)
        {
        }
    }
}
namespace Bitrix\Forum\Integration\Socialnetwork {
    class LogComment
    {
        const EVENT_ID_FORUM_COMMENT = 'forum';
        const EVENT_ID_TASKS_COMMENT = 'tasks_comment';
        const EVENT_ID_CALENDAR_COMMENT = 'calendar_comment';
        const EVENT_ID_WIKI_COMMENT = 'wiki_comment';
        const EVENT_ID_TIMEMAN_ENTRY_COMMENT = 'timeman_entry_comment';
        const EVENT_ID_TIMEMAN_REPORT_COMMENT = 'report_comment';
        const EVENT_ID_LISTS_NEW_ELEMENT_COMMENT = 'lists_new_element_comment';
        public static function getEventIdList()
        {
        }
        /**
         * Return content for LogIndex.
         *
         * @param Event $event Event from LogIndex::setIndex().
         * @return EventResult
         */
        public static function onIndexGetContent(\Bitrix\Main\Event $event)
        {
        }
    }
    /**
     * Class for content view event handlers
     *
     * Class ContentViewHandler
     * @package Bitrix\Forum\Integration\Socialnetwork
     */
    final class ContentViewHandler
    {
        const CONTENT_TYPE_ID_COMMENT = 'FORUM_POST';
        static final function getContentTypeIdList()
        {
        }
        /**
         * Handles content view event, marking IM notifications as read
         *
         * @param \Bitrix\Main\Event $event Event.
         * @return int|false
         */
        public static function onContentViewed(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Forum\Integration\SocialNetwork {
    class Log
    {
        const EVENT_ID_FORUM = 'forum';
        /**
         * Returns set EVENT_ID processed by handler to generate content for full index.
         *
         * @param void
         * @return array
         */
        public static function getEventIdList()
        {
        }
        /**
         * Returns content for LogIndex.
         *
         * @param Event $event Event from LogIndex::setIndex().
         * @return EventResult
         */
        public static function onIndexGetContent(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Forum {
    class File
    {
        public static function checkFiles(\Bitrix\Forum\Forum $forum, &$files, $params = ["TOPIC_ID" => 0, "MESSAGE_ID" => 0, "USER_ID" => 0])
        {
        }
        public static function saveFiles(&$files, $params, $uploadDir = "forum/upload")
        {
        }
    }
    class User
    {
        use \Bitrix\Forum\Internals\EntityFabric;
        use \Bitrix\Forum\Internals\EntityBaseMethods;
        /** @var int */
        protected $id = 0;
        /** @var array */
        protected $data = [];
        /** @var int */
        protected $forumUserId = null;
        /** @var bool */
        protected $locked = false;
        /** @var array */
        protected $groups;
        /** @var array  */
        protected $permissions = [];
        /** @var bool */
        private $editOwn = false;
        protected function __construct($id)
        {
        }
        /**
         * @return string
         */
        public function getName()
        {
        }
        public function setLastVisit()
        {
        }
        public function isLocked()
        {
        }
        public function isAdmin()
        {
        }
        public function isGuest()
        {
        }
        public function edit(array $fields)
        {
        }
        public function calcStatistic()
        {
        }
        public function incrementStatistic(array $message)
        {
        }
        public function decrementStatistic($message = null)
        {
        }
        private function save(array $fields)
        {
        }
        public function getGroups()
        {
        }
        public function setPermissionOnForum($forum, $permission)
        {
        }
        public function getPermissionOnForum($forum)
        {
        }
        public function canModerate(\Bitrix\Forum\Forum $forum)
        {
        }
        public function canAddTopic(\Bitrix\Forum\Forum $forum)
        {
        }
        public function canAddMessage(\Bitrix\Forum\Topic $topic)
        {
        }
        public function canEditTopic(\Bitrix\Forum\Topic $topic)
        {
        }
        public function canEditMessage(\Bitrix\Forum\Message $message)
        {
        }
        public function canDeleteMessage(\Bitrix\Forum\Message $message)
        {
        }
        public function canEditForum(\Bitrix\Forum\Forum $forum)
        {
        }
        public function canDeleteForum(\Bitrix\Forum\Forum $forum)
        {
        }
        public static function isUserAdmin(array $groups)
        {
        }
        public static function add(array &$data)
        {
        }
        public static function update(int $id, array &$data)
        {
        }
    }
}
namespace Bitrix\Forum\Internals {
    final class ConversionHandlers
    {
        /**
         * Returns conversion counter types
         *
         * @return array
         */
        public static function onGetCounterTypes()
        {
        }
        /**
         * Returns conversion rate types
         *
         * @return array
         */
        public static function onGetRateTypes()
        {
        }
        /**
         * Increments conversion topic day counter
         *
         * @param int $id Topic ID.
         * @param array $fields Topic fields.
         * @return void
         */
        public static function onTopicAdd($id, $fields)
        {
        }
        /**
         * Increments conversion post day counter
         *
         * @param int $id Topic ID.
         * @param array $message Message fields.
         * @param array $topicInfo Message TOPIC_INFO field.
         * @param array $forumInfo Message FORUM_INFO field.
         * @param array $fields Message fields used to insert.
         * @return void
         */
        public static function onMessageAdd($id, $message, $topicInfo, $forumInfo, $fields)
        {
        }
    }
}
namespace Bitrix\Forum\Internals\Error {
    class Error
    {
        /** @var int */
        protected $code;
        /** @var string */
        protected $message;
        /**
         * Creates new Error.
         * @param string $message Message of error.
         * @param int|string $code Code of error.
         */
        public function __construct($message, $code = 0)
        {
        }
        /**
         * Returns code of error.
         * @return int|string
         */
        public function getCode()
        {
        }
        /**
         * Returns message of error.
         * @return string
         */
        public function getMessage()
        {
        }
        public function __toString()
        {
        }
    }
    final class ErrorCollection extends \Bitrix\Main\Type\Dictionary
    {
        /**
         * Constructor ErrorCollection.
         * @param array $values Errors which need to add in collection.
         * @throws ArgumentTypeException
         */
        public function __construct(array $values = null)
        {
        }
        /**
         * Adds array of errors to collection.
         * @param Error[] $errors Array of errors.
         * @return void
         */
        public function add(array $errors)
        {
        }
        /**
         * Adds one error to collection.
         * @param Error $error Error object.
         * @return void
         */
        public function addOne(\Bitrix\Forum\Internals\Error\Error $error)
        {
        }
        /**
         * Adds errors from Main\Entity\Result.
         * @param Result $result Result after action in Entity.
         * @return void
         */
        public function addFromResult(\Bitrix\Main\Entity\Result $result)
        {
        }
        /**
         * Returns true if collection has errors.
         * @return bool
         */
        public function hasErrors()
        {
        }
        /**
         * Getting array of errors with the necessary code.
         * @param string $code Code of error.
         * @return Error[]
         */
        public function getErrorsByCode($code)
        {
        }
        /**
         * Getting once error with the necessary code.
         * @param string $code Code of error.
         * @return Error[]
         */
        public function getErrorByCode($code)
        {
        }
        /**
         * Offset to set error.
         * @param Error $offset Offset.
         * @param string|int $value Error.
         * @throws ArgumentTypeException
         * @return void
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * @param $value
         * @throws ArgumentTypeException
         */
        private function checkType($value)
        {
        }
    }
}
namespace Bitrix\Forum\Internals {
    abstract class Entity implements \ArrayAccess
    {
        use \Bitrix\Forum\Internals\EntityBaseMethods;
        /** @var int */
        protected $authorId;
        /** @var Forum */
        protected $forum;
        /** @var array */
        protected $data;
        public function __construct($id)
        {
        }
        /**
         * Init Entity data, Forum
         * @return $this
         */
        protected abstract function init();
        public function getId()
        {
        }
        public function getForumId()
        {
        }
        public function getAuthorId()
        {
        }
        public abstract function edit(array $fields);
        public static abstract function create($parentObject, array $fields);
    }
}
namespace Bitrix\Forum\BadWords {
    class Dictionary
    {
        use \Bitrix\Forum\Internals\EntityFabric;
        use \Bitrix\Forum\Internals\EntityBaseMethods;
        /** @var int */
        protected $id;
        // means nothing now
        /** @var array */
        protected $data;
        /** @var int */
        protected $translitId;
        /** @var string */
        private const NOT_WORD = "\\s.,;:!?\\#\\-\\*\\|\\[\\]\\(\\)";
        public function __construct($id, $languageId = null)
        {
        }
        public function delete()
        {
        }
        private function getTranslitDictionary($multiLetter = true) : array
        {
        }
        public function translitAndCreatePattern(string $word) : string
        {
        }
        public function createPattern(string $word) : string
        {
        }
    }
    class Filter implements \ArrayAccess
    {
        use \Bitrix\Forum\Internals\EntityFabric;
        use \Bitrix\Forum\Internals\EntityBaseMethods;
        /** @var int */
        protected $id;
        /** @var array */
        protected $data;
        public function __construct($id)
        {
        }
        public function update(array $fields)
        {
        }
        public function delete()
        {
        }
        public function generatePattern()
        {
        }
        public static function add(array $fields)
        {
        }
    }
}
namespace Bitrix\Forum {
    class Topic extends \Bitrix\Forum\Internals\Entity
    {
        use \Bitrix\Forum\Internals\EntityFabric;
        public const STATE_LINK = "L";
        public const STATE_CLOSED = "N";
        public const STATE_OPENED = "Y";
        public const APPROVED_APPROVED = "Y";
        public const APPROVED_DISAPPROVED = "N";
        public function __construct($id)
        {
        }
        protected function init()
        {
        }
        public function moveToForum(int $forumId)
        {
        }
        public function open()
        {
        }
        public function close()
        {
        }
        public function disapprove()
        {
        }
        public function approve()
        {
        }
        /**
         * @param Forum $parentObject
         * @param array $fields
         */
        public static function create($parentObject, array $fields)
        {
        }
        public static function add(array &$data)
        {
        }
        /**
         * @param array $fields
         */
        public function edit(array $fields)
        {
        }
        public static function update(int $id, array &$data)
        {
        }
        public function incrementStatistic(array $message)
        {
        }
    }
}
namespace Bitrix\Forum\Copy {
    class TopicManager
    {
        private $executiveUserId;
        private $topicIdsToCopy = [];
        public function __construct($executiveUserId, array $topicIdsToCopy)
        {
        }
        public function startCopy()
        {
        }
        private function getContainerCollection()
        {
        }
        private function getTopicCopier()
        {
        }
        private function getTopicImplementer()
        {
        }
    }
}
namespace Bitrix\Forum\Copy\Implement {
    class Comment extends \Bitrix\Main\Copy\CopyImplementer
    {
        const COMMENT_COPY_ERROR = "COMMENT_COPY_ERROR";
        protected $ufEntityObject = "FORUM_MESSAGE";
        protected $ufDiskFileField = "UF_FORUM_MESSAGE_DOC";
        /**
         * @param Container $container
         * @param array $fields
         * @return int message id.
         */
        public function add(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        public function update($commentId, array $fields)
        {
        }
        /**
         * Returns entity fields.
         *
         * @param Container $container
         * @param int $entityId
         * @return array $fields
         */
        public function getFields(\Bitrix\Main\Copy\Container $container, $entityId)
        {
        }
        /**
         * Preparing data before creating a new entity.
         *
         * @param Container $container
         * @param array $fields List entity fields.
         * @return array $fields
         */
        public function prepareFieldsToCopy(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Starts copying children entities.
         *
         * @param Container $container
         * @param int $entityId Entity id.
         * @param int $copiedEntityId Copied entity id.
         * @return Result
         */
        public function copyChildren(\Bitrix\Main\Copy\Container $container, $entityId, $copiedEntityId)
        {
        }
        /**
         * Updates identifiers who's added to text.
         *
         * @param int $id Id of the entity whose text will be updated.
         * @param array $attachedIds
         * @param callable $auxiliaryCallback
         */
        public function updateAttachedIdsInText(int $id, array $attachedIds, callable $auxiliaryCallback) : void
        {
        }
        protected function getText($commentId)
        {
        }
    }
    class Topic extends \Bitrix\Main\Copy\CopyImplementer
    {
        const TOPIC_COPY_ERROR = "TOPIC_COPY_ERROR";
        /**
         * @var EntityCopier|null
         */
        private $commentCopier;
        /**
         * @param EntityCopier $commentCopier
         */
        public function setCommentCopier(\Bitrix\Main\Copy\EntityCopier $commentCopier) : void
        {
        }
        /**
         * @param Container $container
         * @param array $fields
         * @return int|bool Added topic id or false.
         */
        public function add(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Returns topic fields.
         *
         * @param Container $container
         * @param int $entityId
         * @return array $fields
         */
        public function getFields(\Bitrix\Main\Copy\Container $container, $entityId)
        {
        }
        /**
         * Preparing data before creating a new entity.
         *
         * @param Container $container
         * @param array $fields List entity fields.
         * @return array $fields
         */
        public function prepareFieldsToCopy(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Starts copying messages.
         *
         * @param Container $container
         * @param int $entityId Topic id.
         * @param int $copiedEntityId Copied topic id.
         * @return Result
         */
        public function copyChildren(\Bitrix\Main\Copy\Container $container, $entityId, $copiedEntityId)
        {
        }
        private function cleanDataToCopy(array $fields)
        {
        }
    }
}
namespace Bitrix\Forum\Statistic {
    class Forum extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "forum";
        public static function getTitle()
        {
        }
        /**
         * @inheritDoc
         */
        public function execute(array &$option)
        {
        }
        public static function calc(int $forumId)
        {
        }
    }
    class ForumsStepper extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "forum";
        private static $offset = 1;
        public static function getTitle()
        {
        }
        /**
         * @inheritDoc
         */
        public function execute(array &$option)
        {
        }
    }
    class TopicMembersStepper extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "forum";
        public static function getTitle()
        {
        }
        /**
         * @inheritDoc
         */
        public function execute(array &$option)
        {
        }
        public static function calc(int $topicId)
        {
        }
    }
    class MembersStepper extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "forum";
        private static $offset = 50;
        public static function getTitle()
        {
        }
        /**
         * @inheritDoc
         */
        public function execute(array &$option)
        {
        }
    }
}
namespace Bitrix\Forum\Replica {
    class MessageHandler extends \Bitrix\Replica\Client\BaseHandler
    {
        protected $tasksForumId = 0;
        protected $messageData = [];
        protected $tableName = "b_forum_message";
        protected $moduleId = "forum";
        protected $primary = array("ID" => "auto_increment");
        protected $predicates = array("TOPIC_ID" => "b_forum_topic.ID");
        protected $translation = array(
            "ID" => "b_forum_message.ID",
            "TOPIC_ID" => "b_forum_topic.ID",
            "AUTHOR_ID" => "b_user.ID",
            //TODO GUEST_ID
            "EDITOR_ID" => "b_user.ID",
        );
        protected $children = array();
        protected $fileHandler = null;
        /**
         * MessageHandler constructor.
         *
         */
        public function __construct()
        {
        }
        /**
         * Registers event handlers for database operations like add new, update or delete.
         *
         * @return void
         */
        public function initDataManagerEvents()
        {
        }
        /**
         * Forum event onBeforeMessageAdd handler.
         *
         * @param $data
         * @param $uploadDir
         *
         * @see \CForumMessage::Add()
         * @see \Bitrix\Forum\Message::add()
         */
        public function onBeforeMessageAdd($data, $uploadDir) : void
        {
        }
        /**
         * Forum event onAfterMessageAdd handler.
         *
         * @param integer &$id Forum message identifier.
         * @param array $message Message record.
         * @param array $topicInfo Forum topic fields.
         * @param array $forumInfo Forum fields.
         * @param array $fields Message record before add.
         *
         * @return void
         * @see \CForumMessage::Add()
         * @see \Bitrix\Forum\Message::add()
         */
        public function onAfterMessageAdd(&$id, $message, $topicInfo, $forumInfo, $fields)
        {
        }
        /**
         * Forum event onBeforeMessageUpdate handler.
         *
         * @param integer &$id Forum message identifier.
         * @param array &$fields Message record.
         * @param string &$uploadDir Forum topic fields.
         *
         * @return void
         * @see \CForumMessage::Update()
         */
        public function onBeforeMessageUpdate(&$id, &$fields, &$uploadDir)
        {
        }
        /**
         * Forum event onAfterMessageUpdate handler.
         *
         * @param integer &$id Forum message identifier.
         * @param array &$newMessage Message record.
         * @param array $oldMessage Message record before update.
         *
         * @return void
         * @see \CForumMessage::Update()
         */
        public function onAfterMessageUpdate(&$id, &$newMessage, $oldMessage)
        {
        }
        /**
         * Forum event onBeforeMessageDelete handler.
         *
         * @param integer $id Forum message identifier.
         *
         * @return void
         * @see \CForumMessage::Delete()
         */
        public function onBeforeMessageDelete($id)
        {
        }
        /**
         * Forum event onAfterMessageDelete handler.
         *
         * @param integer $id Forum message identifier.
         * @param array $message Message record before delete.
         *
         * @return void
         * @see \CForumMessage::Delete()
         */
        public function onAfterMessageDelete($id, $message)
        {
        }
        /**
         * Method will be invoked after writing an missed record.
         *
         * @param array $record All fields of the record.
         *
         * @return void
         */
        public function afterWriteMissing(array $record)
        {
        }
        /**
         * Method will be invoked before new database record inserted.
         * When an array returned the insert will be cancelled and map for
         * returned record will be added.
         *
         * @param array &$newRecord All fields of inserted record.
         *
         * @return null|array
         */
        public function beforeInsertTrigger(array &$newRecord)
        {
        }
        /**
         * Method will be invoked after new database record inserted.
         *
         * @param array $newRecord All fields of inserted record.
         *
         * @return void
         */
        public function afterInsertTrigger(array $newRecord)
        {
        }
        /**
         * Method will be invoked after an database record updated.
         *
         * @param array $oldRecord All fields before update.
         * @param array $newRecord All fields after update.
         *
         * @return void
         */
        public function afterUpdateTrigger(array $oldRecord, array $newRecord)
        {
        }
        /**
         * Method will be invoked after an database record deleted.
         *
         * @param array $oldRecord All fields before delete.
         *
         * @return void
         */
        public function afterDeleteTrigger(array $oldRecord)
        {
        }
        /**
         * Method will be invoked before an database record updated.
         *
         * @param array $oldRecord All fields before update.
         * @param array &$newRecord All fields after update.
         *
         * @return void
         */
        public function beforeUpdateTrigger(array $oldRecord, array &$newRecord)
        {
        }
        /**
         * Called before insert operation log write. You may return false and not log write will take place.
         *
         * @param array $record Database record.
         *
         * @return boolean
         */
        public function beforeLogInsert(array $record)
        {
        }
        /**
         * Called before record transformed for log writing.
         *
         * @param array &$record Database record.
         *
         * @return void
         */
        public function beforeLogFormat(array &$record)
        {
        }
        /**
         * @param string $string
         * @return string
         */
        private function clearUserBbCodes(string $string) : string
        {
        }
    }
    class TopicHandler extends \Bitrix\Replica\Client\BaseHandler
    {
        protected $tasksForumId = 0;
        protected $tableName = "b_forum_topic";
        protected $moduleId = "forum";
        protected $primary = array("ID" => "auto_increment");
        protected $predicates = array();
        protected $translation = array(
            "ID" => "b_forum_topic.ID",
            "USER_START_ID" => "b_user.ID",
            "LAST_POSTER_ID" => "b_user.ID",
            //"LAST_MESSAGE_ID" => "b_forum_message.ID", //TODO
            "ABS_LAST_POSTER_ID" => "b_user.ID",
            //"ABS_LAST_MESSAGE_ID" => "b_forum_message.ID", //TODO
            "RESPONSIBLE_ID" => "b_user.ID",
            "OWNER_ID" => "b_user.ID",
        );
        protected $children = array("ID" => "b_forum_message.TOPIC_ID");
        /**
         * TopicHandler constructor.
         *
         */
        public function __construct()
        {
        }
        /**
         * Forum event onAfterTopicAdd handler.
         *
         * @param integer $id Forum topic identifier.
         * @param array &$data Topic record.
         *
         * @return void
         * @see \CForumTopic::Add()
         */
        public function onAfterTopicAdd($id, &$data)
        {
        }
        /**
         * Forum event onAfterTopicUpdate handler.
         *
         * @param integer $id Forum topic identifier.
         * @param array $newTopic Topic record after update.
         * @param array $oldTopic Topic record before update.
         *
         * @return void
         * @see \CForumTopic::Update()
         */
        public function onAfterTopicUpdate($id, $newTopic, $oldTopic)
        {
        }
        /**
         * Forum event onAfterTopicDelete handler.
         *
         * @param integer &$id Forum topic identifier.
         * @param array $topic Topic record before delete.
         *
         * @return void
         * @see \CForumTopic::Delete()
         */
        public function onAfterTopicDelete(&$id, $topic)
        {
        }
        /**
         * Method will be invoked before new database record inserted.
         * When an array returned the insert will be cancelled and map for
         * returned record will be added.
         *
         * @param array &$newRecord All fields of inserted record.
         *
         * @return null|array
         */
        public function beforeInsertTrigger(array &$newRecord)
        {
        }
        /**
         * Method will be invoked before an database record updated.
         *
         * @param array $oldRecord All fields before update.
         * @param array &$newRecord All fields after update.
         *
         * @return void
         */
        public function beforeUpdateTrigger(array $oldRecord, array &$newRecord)
        {
        }
        /**
         * Called before insert operation log write. You may return false and not log write will take place.
         *
         * @param array $record Database record.
         *
         * @return boolean
         */
        public function beforeLogInsert(array $record)
        {
        }
        /**
         * Called before record transformed for log writing.
         *
         * @param array &$record Database record.
         *
         * @return void
         */
        public function beforeLogFormat(array &$record)
        {
        }
    }
    class ForumMessageAttachmentHandler extends \Bitrix\Replica\Client\AttachmentHandler
    {
        protected $moduleId = "forum";
        protected $relation = "b_forum_message.ATTACH_ID";
        protected $executeEventEntity = "ForumMessage";
        protected $parentRelation = "b_forum_message.ID";
        protected $diskConnectorString = "forum_message";
        protected $dataFields = array("POST_MESSAGE", "POST_MESSAGE_HTML");
        /**
         * Adds attachment to user field value for given entity.
         *
         * @param integer $messageId Message identifier.
         * @param integer $diskAttachId Disk attachment identifier.
         *
         * @return void
         */
        public static function updateUserField($messageId, $diskAttachId)
        {
        }
        /**
         * Returns array of attachments for given entity.
         *
         * @param integer $messageId Message identifier.
         *
         * @return array[]\Bitrix\Disk\AttachedObject
         */
        public static function getUserField($messageId)
        {
        }
        /**
         * Remote event handler.
         *
         * @param \Bitrix\Main\Event $event Contains two parameters: 0 - id, 1 - data.
         *
         * @return void
         * @see \Bitrix\Replica\Client\AttachmentHandler::onAfterAdd
         * @see \Bitrix\Replica\Client\AttachmentHandler::onAfterUpdate
         */
        public function onExecuteDescriptionFix(\Bitrix\Main\Event $event)
        {
        }
    }
    class MessageRatingVoteHandler extends \Bitrix\Replica\Client\RatingVoteHandler
    {
        protected $entityTypeId = "FORUM_POST";
        protected $entityIdTranslation = "b_forum_message.ID";
    }
    class Bind
    {
        /** @var \Bitrix\Forum\Replica\TopicHandler */
        protected static $topicHandler = null;
        /** @var \Bitrix\Forum\Replica\MessageHandler */
        protected static $messageHandler = null;
        /**
         * Initializes replication process on forum side.
         *
         * @return void
         */
        public function start()
        {
        }
    }
}
namespace Bitrix\Forum {
    // A < E < I < M < Q < U < Y
    class Permission
    {
        public const ACCESS_DENIED = "A";
        public const CAN_READ = "E";
        public const CAN_ADD_MESSAGE = "I";
        public const CAN_ADD_TOPIC = "M";
        public const CAN_MODERATE = "Q";
        public const CAN_EDIT = "U";
        public const FULL_ACCESS = "Y";
        /**
         * Gets types list
         * @return array
         */
        public static function getList()
        {
        }
        /**
         * Gets types list
         * @return array
         */
        public static function getTitledList()
        {
        }
    }
    class Message extends \Bitrix\Forum\Internals\Entity
    {
        use \Bitrix\Forum\Internals\EntityFabric;
        public const APPROVED_APPROVED = "Y";
        public const APPROVED_DISAPPROVED = "N";
        protected function init()
        {
        }
        public function edit(array $fields)
        {
        }
        /**
         * @param Topic $parentObject
         * @param array $fields
         */
        public static function create($parentObject, array $fields)
        {
        }
        public static function update($id, array $fields)
        {
        }
        /**
         * @param Topic $topic
         * @param array $fields
         */
        public static function add(\Bitrix\Forum\Topic $topic, array $fields)
        {
        }
    }
    final class ForumSort
    {
        private const LAST_POST_DATE = "P";
        private const TITLE = "T";
        private const POSTS = "N";
        private const VIEWS = "V";
        private const START_DATE = "D";
        private const USER_START_NAME = "A";
        /**
         * Gets types list
         * @return array
         */
        public static function getList()
        {
        }
    }
}
namespace {
    class subscribe extends \CModule
    {
        var $MODULE_ID = "subscribe";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        var $errors;
        function subscribe()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        public function migrateToBox()
        {
        }
        function OnGetTableSchema()
        {
        }
    }
    class CSubscriptionGeneral
    {
        var $LAST_ERROR = "";
        var $LAST_MESSAGE = "";
        public static function GetList($aSort = array(), $arFilter = array(), $arNavStartParams = \false)
        {
        }
        //list of subscribed categories
        public static function GetRubricList($ID)
        {
        }
        //array of subscribed categories
        public static function GetRubricArray($ID)
        {
        }
        //subscription of current user from cookies
        public static function GetUserSubscription()
        {
        }
        //get by ID
        public static function GetByID($ID)
        {
        }
        // deletion
        public static function Delete($ID)
        {
        }
        //check fields before writing
        public function CheckFields(&$arFields, $ID, $SITE_ID = \SITE_ID)
        {
        }
        //link with categories
        function UpdateRubrics($ID, $aRubric, $SITE_ID = \false)
        {
        }
        //adding
        public function Add($arFields, $SITE_ID = \SITE_ID)
        {
        }
        //Updating record
        public function Update($ID, $arFields, $SITE_ID = \SITE_ID)
        {
        }
        //message with subscription confirmation
        public static function ConfirmEvent($ID, $SITE_ID = \SITE_ID)
        {
        }
        //checks and set user authorization
        public static function Authorize($ID, $CONFIRM_CODE = \false)
        {
        }
        //retuns user's subscription authorization
        public static function IsAuthorized($ID)
        {
        }
        //*****************************
        // Events
        //*****************************
        //user deletion event
        public static function OnUserDelete($user_id)
        {
        }
        //user logout event
        public static function OnUserLogout($user_id)
        {
        }
        //*****************************
        // Agents
        //*****************************
        //delete unconfirmed subscriptions
        public static function CleanUp()
        {
        }
    }
    class CPostingGeneral
    {
        var $LAST_ERROR = "";
        //email count for one hit
        static $current_emails_per_hit = 0;
        //get by ID
        public static function GetByID($ID)
        {
        }
        //list of categories linked with message
        public static function GetRubricList($ID)
        {
        }
        //list of user group linked with message
        public static function GetGroupList($ID)
        {
        }
        // delete by ID
        public static function Delete($ID)
        {
        }
        public static function OnGroupDelete($group_id)
        {
        }
        public static function DeleteFile($ID, $file_id = \false)
        {
        }
        public static function SplitFileName($file_name)
        {
        }
        function SaveFile($ID, $file)
        {
        }
        public static function GetFileList($ID, $file_id = \false)
        {
        }
        //check fields before writing
        function CheckFields($arFields, $ID)
        {
        }
        //relation with categories
        function UpdateRubrics($ID, $aRubric)
        {
        }
        //relation with user groups
        function UpdateGroups($ID, $aGroup)
        {
        }
        //Addition
        function Add($arFields)
        {
        }
        //Update
        function Update($ID, $arFields)
        {
        }
        function GetEmails($post_arr)
        {
        }
        public static function AutoSend($ID = \false, $limit = \false, $site_id = \false)
        {
        }
        //Send message
        function SendMessage($ID, $timeout = 0, $maxcount = 0, $check_charset = \false)
        {
        }
        public static function GetEmailStatuses($ID)
        {
        }
        public static function GetEmailsByStatus($ID, $STATUS)
        {
        }
        function ChangeStatus($ID, $status)
        {
        }
    }
    class CMailTools
    {
        var $aMatches = array();
        var $pcre_backtrack_limit = \false;
        var $server_name = \null;
        var $maxFileSize = 0;
        public static function IsEightBit($str)
        {
        }
        public static function EncodeMimeString($text, $charset)
        {
        }
        public static function EncodeSubject($text, $charset)
        {
        }
        public static function EncodeHeaderFrom($text, $charset)
        {
        }
        function __replace_img($matches)
        {
        }
        function ReplaceHrefs($text)
        {
        }
        function ReplaceImages($text)
        {
        }
        public static function ImageTypeToMimeType($type)
        {
        }
    }
    class CRubric
    {
        var $LAST_ERROR = "";
        //Get list
        public static function GetList($aSort = array(), $aFilter = array())
        {
        }
        //Get by ID
        public static function GetByID($ID)
        {
        }
        //Count of subscribers
        public static function GetSubscriptionCount($ID)
        {
        }
        // delete
        public static function Delete($ID)
        {
        }
        public static function OnBeforeLangDelete($lang)
        {
        }
        //check fields before writing
        function CheckFields($arFields)
        {
        }
        //add
        function Add($arFields)
        {
        }
        //update
        function Update($ID, $arFields)
        {
        }
    }
    class CPostingTemplate
    {
        var $LAST_ERROR = "";
        //Get list
        public static function GetList()
        {
        }
        public static function GetByID($path = "")
        {
        }
        public static function IsExists($path = "")
        {
        }
        public static function Execute()
        {
        }
        public static function AddPosting($arRubric)
        {
        }
        public static function ParseDaysOfMonth($strDaysOfMonth)
        {
        }
        public static function ParseDaysOfWeek($strDaysOfWeek)
        {
        }
        public static function ParseTimesOfDay($strTimesOfDay)
        {
        }
    }
    class CSubscription extends \CSubscriptionGeneral
    {
        //get by e-mail
        public static function GetByEmail($email, $user_id = \false)
        {
        }
        //agent to delete unconfirmed subscription
        public static function CleanUp()
        {
        }
    }
    class CPosting extends \CPostingGeneral
    {
        function GetList($aSort = array(), $arFilter = array(), $arSelect = array(), $arNavStartParams = \false)
        {
        }
        public static function Lock($ID = 0)
        {
        }
        public static function UnLock($ID = 0)
        {
        }
    }
}
namespace Bitrix\Subscribe {
    class SenderEventHandler
    {
        /**
         * Handler of sender:OnConnectorList event.
         *
         * @param array $data Empty array.
         * @return array
         */
        public static function onConnectorListSubscriber($data)
        {
        }
    }
    class SenderConnectorSubscriber extends \Bitrix\Sender\Connector
    {
        /**
         * Returns localized name of subscribers source.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Returns internal code of subscribers source.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Returns subscribers depended on side filter fields.
         *
         * @return \CDBResult
         */
        public function getData()
        {
        }
        /**
         * Returns Html form to display filter criteria.
         *
         * @return string
         */
        public function getForm()
        {
        }
    }
    class CDBResultSenderConnectorIBlock extends \CDBResult
    {
        /**
         * Fetch fields from database resource
         * @return array|null
         */
        public function Fetch()
        {
        }
    }
}
namespace {
    class idea extends \CModule
    {
        var $MODULE_ID = "idea";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $errors;
        function idea()
        {
        }
        function GetIdeaUserFields()
        {
        }
        function InstallDB()
        {
        }
        function InstallUserFields()
        {
        }
        function UnInstallUserFields()
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
    class CIdeaManagmentInstall
    {
        private $PublicDir = '#SITE_DIR#services/idea/';
        private $ModuleIblockType = 'services';
        private $ModuleIblockCode = 'idea';
        private $ModuleBlogGroup = \false;
        private $ModuleBlogUrl = "idea";
        private $SITE_ID = \false;
        private $REWRITE = \true;
        private $IO = \false;
        private $DOCUMENT_ROOT = \false;
        private $arResult = array("SETTINGS" => array(), "INSTALLATION" => array("SITE" => array()), "ERRORS" => array());
        public function __construct($arParams)
        {
        }
        public function CheckPrevInstallation()
        {
        }
        public function HaveError()
        {
        }
        public function GetError()
        {
        }
        private function CheckParams()
        {
        }
        private function CheckIblockType()
        {
        }
        private function CheckIblock()
        {
        }
        private function CheckBlogGroup()
        {
        }
        private function CheckBlog()
        {
        }
        public function Install()
        {
        }
        private function InstallIblockType()
        {
        }
        private function InstallIblock()
        {
        }
        private function InstallIblockSectionSettings()
        {
        }
        private function InstallIblockSection()
        {
        }
        private function InstallBlogGroup()
        {
        }
        private function InstallBlog()
        {
        }
        private function InstallBlogPost()
        {
        }
        private function InstallBlogComment()
        {
        }
        private function CopyPublucFiles()
        {
        }
        private function AddMenuItem()
        {
        }
    }
    class CIdeaManagmentEmailNotify
    {
        const SUBSCRIBE_ALL = 'A';
        const SUBSCRIBE_ALL_IDEA = 'AI';
        //const SUBSCRIBE_ALL_IDEA_COMMENT = 'AIC';
        const SUBSCRIBE_IDEA_COMMENT = 'I';
        private $Notify = \NULL;
        private static $Enable = \true;
        public function __construct($parent)
        {
        }
        public function IsAvailable()
        {
        }
        public static function Add($Entity)
        {
        }
        public static function Delete($Entity)
        {
        }
        public static function GetList($order = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public function Send()
        {
        }
        public function Disable()
        {
        }
        public function Enable()
        {
        }
    }
    //System, not for use
    class CIdeaManagmentSonetNotify
    {
        private $Notify = \NULL;
        private static $Enable = \true;
        public function __construct($parent)
        {
        }
        public function IsAvailable()
        {
        }
        /*
         * Not for USE Can be changed
         */
        public static function AddLogEvent(&$arFields)
        {
        }
        /*
         * Not for USE Can be changed
         */
        public static function CallBack_AddComment($arFields)
        {
        }
        public static function CallBack_UpdateComment($arFields)
        {
        }
        public static function CallBack_DeleteComment($arFields)
        {
        }
        /*
         * Not for USE Can be changed
         * Alias
         */
        public static function FormatComment($arFields, $arParams, $bMail = \false, $arLog = array())
        {
        }
        /*
         * Not for USE Can be changed
         * Alias
         */
        public static function FormatMessage($arFields, $arParams, $bMail = \false)
        {
        }
        /*
         * Not for USE Can be changed
         */
        private function AddMessage()
        {
        }
        /*
         * Not for USE Can be changed
         */
        private function AddComment()
        {
        }
        public function Send()
        {
        }
        public function HideMessage()
        {
        }
        public function ShowMessage()
        {
        }
        /*
         * Not for USE Can be changed
         */
        private function RemoveComment($CommentId = \false)
        {
        }
        /*
         * Not for USE Can be changed
         */
        private function RemoveMessage($MessageId = \false)
        {
        }
        public function Remove()
        {
        }
        public function Disable()
        {
        }
        public function Enable()
        {
        }
    }
    class CIdeaManagmentIdeaComment
    {
        private $CommentId = \false;
        function __construct($CommentId = \false)
        {
        }
        public function IsAvailable()
        {
        }
        public function SetID($StatusId)
        {
        }
        public function Get()
        {
        }
        public function Bind()
        {
        }
        public function UnBind()
        {
        }
    }
    class CIdeaManagment
    {
        //User Fields Id
        const UFBlockPostDocField = 'UF_BLOG_POST_DOC';
        const UFStatusField = 'UF_STATUS';
        const UFAnswerIdField = 'UF_ANSWER_ID';
        const UFCategroryCodeField = 'UF_CATEGORY_CODE';
        const UFOriginalIdField = 'UF_ORIGINAL_ID';
        //End -> User Fields Id
        //Instance
        protected static $Instance = \NULL;
        public static function getInstance()
        {
        }
        private function __clone()
        {
        }
        private function __construct()
        {
        }
        public function IsAvailable()
        {
        }
        public function GetUserFieldsArray()
        {
        }
        //xAlias
        public function Idea($IdeaId = \false)
        {
        }
        //xAlias
        public function IdeaComment($CommentId = \false)
        {
        }
        //xAlias
        public function Notification($arNotification = array())
        {
        }
        /*************TOOLS**********/
        public function GetRSS($BlogCode, $type = "rss2.0", $numPosts = 10, $siteID = \SITE_ID, $arPathTemplates = array(), $arFilterExt = array())
        {
        }
        //DEPRECATED!!! DON'T USE!!! Will Be Removed
        //Alias
        public function GetCategoryList($CategoryIB = \false)
        {
        }
        //Alias
        public function SetCategoryListId($ID)
        {
        }
        //Alias
        public function GetStatusList()
        {
        }
        //Alias
        function GetCategorySequenceByCode($CODE, $arCategoryList = \false)
        {
        }
    }
    class CIdeaManagmentNotify
    {
        private $arNotification = array();
        const EMAIL = 'CIdeaManagmentEmailNotify';
        const SONET = 'CIdeaManagmentSonetNotify';
        public function __construct($arNotification = array())
        {
        }
        public function SetNotification($arNotification = array())
        {
        }
        public function GetNotification()
        {
        }
        public function GetEmailNotify()
        {
        }
        public function GetSonetNotify()
        {
        }
        public function GetNotify($CustomNotifyClassName)
        {
        }
    }
    class CIdeaManagmentIdea
    {
        private $IdeaId = \false;
        private $CacheStorage = array();
        private static $CategoryIB = \false;
        private static $instance = \null;
        function __construct($IdeaId = \false)
        {
        }
        public static function GetInstance($IdeaId)
        {
        }
        public function IsAvailable()
        {
        }
        public function SetID($IdeaId)
        {
        }
        public function SetCategoryListID($ID)
        {
        }
        public function GetCategoryListID()
        {
        }
        /*
         * Not for USE Can be changed
         */
        public function GetSubCategoryList($CategoryCode)
        {
        }
        /*
         * Not for USE Can be changed
         */
        public function GetCategorySequence($CODE)
        {
        }
        public function GetCategoryList($CategoryIB = \false)
        {
        }
        /*
         * Not for USE Can be changed
         */
        public function GetDefaultStatus($arStatusPriority = array())
        {
        }
        public function GetStatusList($XML_ID = \false)
        {
        }
        public function SetStatus($StatusId)
        {
        }
        //%TODO%
        public function BindDuplicate()
        {
        }
        //%TODO%
        public function UnBindDuplicate()
        {
        }
    }
}
namespace Bitrix\Idea {
    /**
     * EO_NotifyEmail
     * @see \Bitrix\Idea\NotifyEmailTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Idea\EO_NotifyEmail setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \string getSubscribeType()
     * @method \Bitrix\Idea\EO_NotifyEmail setSubscribeType(\string|\Bitrix\Main\DB\SqlExpression $subscribeType)
     * @method bool hasSubscribeType()
     * @method bool isSubscribeTypeFilled()
     * @method bool isSubscribeTypeChanged()
     * @method \string remindActualSubscribeType()
     * @method \string requireSubscribeType()
     * @method \Bitrix\Idea\EO_NotifyEmail resetSubscribeType()
     * @method \Bitrix\Idea\EO_NotifyEmail unsetSubscribeType()
     * @method \string fillSubscribeType()
     * @method \string getEntityType()
     * @method \Bitrix\Idea\EO_NotifyEmail setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \string getEntityCode()
     * @method \Bitrix\Idea\EO_NotifyEmail setEntityCode(\string|\Bitrix\Main\DB\SqlExpression $entityCode)
     * @method bool hasEntityCode()
     * @method bool isEntityCodeFilled()
     * @method bool isEntityCodeChanged()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Idea\EO_NotifyEmail setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Idea\EO_NotifyEmail resetUser()
     * @method \Bitrix\Idea\EO_NotifyEmail unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \Bitrix\Iblock\EO_Section getAscendedCategories()
     * @method \Bitrix\Iblock\EO_Section remindActualAscendedCategories()
     * @method \Bitrix\Iblock\EO_Section requireAscendedCategories()
     * @method \Bitrix\Idea\EO_NotifyEmail setAscendedCategories(\Bitrix\Iblock\EO_Section $object)
     * @method \Bitrix\Idea\EO_NotifyEmail resetAscendedCategories()
     * @method \Bitrix\Idea\EO_NotifyEmail unsetAscendedCategories()
     * @method bool hasAscendedCategories()
     * @method bool isAscendedCategoriesFilled()
     * @method bool isAscendedCategoriesChanged()
     * @method \Bitrix\Iblock\EO_Section fillAscendedCategories()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Idea\EO_NotifyEmail set($fieldName, $value)
     * @method \Bitrix\Idea\EO_NotifyEmail reset($fieldName)
     * @method \Bitrix\Idea\EO_NotifyEmail unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Idea\EO_NotifyEmail wakeUp($data)
     */
    class EO_NotifyEmail
    {
        /* @var \Bitrix\Idea\NotifyEmailTable */
        public static $dataClass = '\\Bitrix\\Idea\\NotifyEmailTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_NotifyEmail_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \string[] getSubscribeTypeList()
     * @method \string[] fillSubscribeType()
     * @method \string[] getEntityTypeList()
     * @method \string[] getEntityCodeList()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Idea\EO_NotifyEmail_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \Bitrix\Iblock\EO_Section[] getAscendedCategoriesList()
     * @method \Bitrix\Idea\EO_NotifyEmail_Collection getAscendedCategoriesCollection()
     * @method \Bitrix\Iblock\EO_Section_Collection fillAscendedCategories()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Idea\EO_NotifyEmail $object)
     * @method bool has(\Bitrix\Idea\EO_NotifyEmail $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Idea\EO_NotifyEmail getByPrimary($primary)
     * @method \Bitrix\Idea\EO_NotifyEmail[] getAll()
     * @method bool remove(\Bitrix\Idea\EO_NotifyEmail $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Idea\EO_NotifyEmail_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Idea\EO_NotifyEmail current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_NotifyEmail_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Idea\NotifyEmailTable */
        public static $dataClass = '\\Bitrix\\Idea\\NotifyEmailTable';
    }
    /**
     * @method static EO_NotifyEmail_Query query()
     * @method static EO_NotifyEmail_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_NotifyEmail_Result getById($id)
     * @method static EO_NotifyEmail_Result getList(array $parameters = array())
     * @method static EO_NotifyEmail_Entity getEntity()
     * @method static \Bitrix\Idea\EO_NotifyEmail createObject($setDefaultValues = true)
     * @method static \Bitrix\Idea\EO_NotifyEmail_Collection createCollection()
     * @method static \Bitrix\Idea\EO_NotifyEmail wakeUpObject($row)
     * @method static \Bitrix\Idea\EO_NotifyEmail_Collection wakeUpCollection($rows)
     */
    class NotifyEmailTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_NotifyEmail_Result exec()
     * @method \Bitrix\Idea\EO_NotifyEmail fetchObject()
     * @method \Bitrix\Idea\EO_NotifyEmail_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_NotifyEmail_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Idea\EO_NotifyEmail fetchObject()
     * @method \Bitrix\Idea\EO_NotifyEmail_Collection fetchCollection()
     */
    class EO_NotifyEmail_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Idea\EO_NotifyEmail createObject($setDefaultValues = true)
     * @method \Bitrix\Idea\EO_NotifyEmail_Collection createCollection()
     * @method \Bitrix\Idea\EO_NotifyEmail wakeUpObject($row)
     * @method \Bitrix\Idea\EO_NotifyEmail_Collection wakeUpCollection($rows)
     */
    class EO_NotifyEmail_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    class NotifyEmail
    {
        protected static $cache = array();
        protected $IblockID = null;
        protected $userID = null;
        function __construct($IblockID = null)
        {
        }
        protected function getCacheId($params = array())
        {
        }
        public function addCategory($category, $subscribeType = \Bitrix\Idea\NotifyEmailTable::SUBSCRIBE_TYPE_NEW_IDEAS)
        {
        }
        public function deleteCategory($category)
        {
        }
        public function addIdea($id)
        {
        }
        public function deleteIdea($id)
        {
        }
        protected function checkCache($userId, $params = array())
        {
        }
        protected function setCache($userId, $params = array(), $data = array())
        {
        }
        public function getAscendedCategories($category = null, $userId = null)
        {
        }
    }
}
namespace {
    class support extends \CModule
    {
        var $MODULE_ID = "support";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        var $SHOW_SUPER_ADMIN_GROUP_RIGHTS = "Y";
        function support()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles($arParams = array())
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function GetModuleRightList()
        {
        }
    }
    class CSupportEMail
    {
        function OnGetFilterList()
        {
        }
        function PrepareVars()
        {
        }
        function EMailMessageCheck($arFields, $ACTION_VARS)
        {
        }
        function EMailMessageAdd($arMessageFields, $ACTION_VARS)
        {
        }
    }
    class CAllSupportUpdate
    {
        function err_mess()
        {
        }
        function GetUpdateVersion()
        {
        }
        function CurrentVersionLowerThanUpdateVersion()
        {
        }
        function ChangeCurrentVersion()
        {
        }
        function Update()
        {
        }
        function AlterTables($dbType)
        {
        }
        function SeparateSLAandTimeTable($dbType)
        {
        }
        function SetHotKeys()
        {
        }
    }
    class CAllTicket
    {
        const ADD = "ADD";
        const UPDATE = "UPDATE";
        const DELETE = "DELETE";
        const IGNORE = "IGNORE";
        const REOPEN = "REOPEN";
        const NEW_SLA = "NEW_SLA";
        public static function err_mess()
        {
        }
        /***************************************************************
        
        	Ãðóïïà ôóíêöèé ïî ðàáîòå ñ ðîëÿìè íà ìîäóëü
        
        	Èäåíòèôèêàòîðû ðîëåé:
        
        	D - äîñòóï çàêðûò
        	R - êëèåíò òåõïîääåðæêè
        	T - ñîòðóäíèê òåõïîääåðæêè
        	V - äåìî-äîñòóï
        	W - àäìèíèñòðàòîð òåõïîääåðæêè
        
        	*****************************************************************/
        public static function GetDeniedRoleID()
        {
        }
        public static function GetSupportClientRoleID()
        {
        }
        public static function GetSupportTeamRoleID()
        {
        }
        public static function GetDemoRoleID()
        {
        }
        public static function GetAdminRoleID()
        {
        }
        // âîçâðàùàåò true åñëè çàäàííûé ïîëüçîâàòåëü èìååò çàäàííóþ ðîëü íà ìîäóëü
        public static function HaveRole($role, $userID = \false)
        {
        }
        // true - åñëè ïîëüçîâàòåëü èìååò ðîëü "àäìèíèñòðàòîð òåõïîääåðæêè"
        // false - â ïðîòèâíîì ñëó÷àå
        public static function IsAdmin($userID = \false)
        {
        }
        // true - åñëè ïîëüçîâàòåëü èìååò ðîëü "äåìî-äîñòóï"
        // false - â ïðîòèâíîì ñëó÷àå
        public static function IsDemo($userID = \false)
        {
        }
        // true - åñëè ïîëüçîâàòåëü èìååò ðîëü "ñîòðóäíèê òåõïîääåðæêè"
        // false - â ïðîòèâíîì ñëó÷àå
        public static function IsSupportTeam($userID = \false)
        {
        }
        // true - åñëè ïîëüçîâàòåëü èìååò ðîëü "ñîòðóäíèê òåõïîääåðæêè"
        // false - â ïðîòèâíîì ñëó÷àå
        public static function IsSupportClient($userID = \false)
        {
        }
        public static function IsOwner($ticketID, $userID = \false)
        {
        }
        // âîçâðàùàåò ðîëè çàäàííîãî ïîëüçîâàòåëÿ
        public static function GetRoles(&$isDemo, &$isSupportClient, &$isSupportTeam, &$isAdmin, &$isAccess, &$userID, $checkRights = \true)
        {
        }
        // âîçâðàùàåò ìàññèâ ID ãðóïï äëÿ êîòîðûõ çàäàíà ðîëü
        // $role - èäåíòèôèêàòîð ðîëè
        public static function GetGroupsByRole($role)
        {
        }
        // âîçâðàùàåò ìàññèâ ãðóïï ñ ðîëüþ "àäìèíèñòðàòîð òåõïîääåðæêè"
        public static function GetAdminGroups()
        {
        }
        // âîçâðàùàåò ìàññèâ ãðóïï ñ ðîëüþ "ñîòðóäíèê òåõïîääåðæêè"
        public static function GetSupportTeamGroups()
        {
        }
        // âîçâðàùàåò ìàññèâ EMail àäðåñîâ âñåõ ïîëüçîâàòåëåé èìåþùèõ çàäàííóþ ðîëü
        public static function GetEmailsByRole($role)
        {
        }
        // âîçâðàùàåò ìàññèâ EMail'îâ âñåõ ïîëüçîâàòåëåé èìåþùèõ ðîëü "àäìèíèñòðàòîð"
        public static function GetAdminEmails()
        {
        }
        // âîçâðàùàåò ìàññèâ EMail'îâ âñåõ ïîëüçîâàòåëåé èìåþùèõ ðîëü "ñîòðóäíèê òåõïîääåðæêè"
        public static function GetSupportTeamEmails()
        {
        }
        public static function GetSupportTeamAndAdminUsers()
        {
        }
        /*****************************************************************
        				Ãðóïïà ôóíêöèé îáùèå äëÿ âñåõ êëàññîâ
        	*****************************************************************/
        // ïðîâåðêà ïîëåé ôèëüòðà
        public static function CheckFilter($arFilter)
        {
        }
        // ïðîâåðêà ïîëåé ïåðåä âñòàâêîé â áàçó äàííûõ
        public static function CheckFields($arFields, $id, $arRequired)
        {
        }
        // ïðåäâàðèòåëüíî îáðàáàòûâàåò ìàññèâ çíà÷åíèé äëÿ âñòàâêè â áàçó äàííûõ
        public static function PrepareFields($arFields, $table, $id)
        {
        }
        public static function SplitTicket($arParam)
        {
        }
        /*****************************************************************
        					Ãðóïïà ôóíêöèé ïî ðàáîòå ñî ñïàìîì
        	*****************************************************************/
        public static function MarkMessageAsSpam($messageID, $exactly = "Y", $checkRights = "Y")
        {
        }
        public static function UnMarkMessageAsSpam($messageID, $checkRights = "Y")
        {
        }
        public static function MarkAsSpam($ticketID, $exactly = "Y", $checkRights = "Y")
        {
        }
        public static function UnMarkAsSpam($ticketID, $checkRights = "Y")
        {
        }
        /*****************************************************************
        					Ãðóïïà ôóíêöèé ïî óïðàâëåíèþ îáðàùåíèÿìè
        	*****************************************************************/
        /*function UpdateLastParams($ticketID, $resetAutoClose=false, $changeLastMessageDate = true, $setReopenDefault = true)
        	{	
        		$err_mess = (CAllTicket::err_mess())."<br>Function: UpdateLastParams<br>Line: ";
        		global $DB, $USER;
        		$ticketID = intval($ticketID);
        		if ($ticketID<=0) return;
        
        		$arFields = array();
        		//if ($resetAutoClose=="Y") $arFields["AUTO_CLOSE_DAYS"] = "null";
        
        		
        		// îïðåäåëèì ïîñëåäíåãî àâòîðà
        		$strSql = "
        			SELECT
        				ID,
        				".$DB->DateToCharFunction("DATE_CREATE","FULL")." DATE_CREATE,
        				OWNER_USER_ID,
        				OWNER_GUEST_ID,
        				OWNER_SID
        			FROM
        				b_ticket_message
        			WHERE
        				TICKET_ID=$ticketID
        			AND(NOT(NOT_CHANGE_STATUS='Y'))
        			AND(NOT(IS_HIDDEN='Y'))
        			AND(NOT(IS_LOG='Y'))
        			AND(NOT(IS_OVERDUE='Y'))
        			ORDER BY
        				C_NUMBER desc
        			";
        		$rs = $DB->Query($strSql,false,$err_mess.__LINE__);
        		if ($arLastMess = $rs->Fetch())
        		{
        			$arFields["LAST_MESSAGE_USER_ID"] = $arLastMess["OWNER_USER_ID"];
        			if ($changeLastMessageDate)
        			{
        				$arFields["LAST_MESSAGE_DATE"] = $DB->CharToDateFunction($arLastMess["DATE_CREATE"]);//NN
        			}
        			$arFields["LAST_MESSAGE_GUEST_ID"] = intval($arLastMess["OWNER_GUEST_ID"]);
        			$arFields["LAST_MESSAGE_SID"] = "'".$DB->ForSql($arLastMess["OWNER_SID"],255)."'";
        		}
        
        		// îïðåäåëèì êîëè÷åñòâî ñîîáùåíèé
        		$strSql = "
        			SELECT
        				SUM(CASE WHEN IS_HIDDEN='Y' THEN 0 ELSE 1 END) MESSAGES,
        				SUM(TASK_TIME) ALL_TIME
        			FROM
        				b_ticket_message
        			WHERE
        				TICKET_ID = $ticketID
        			and (IS_LOG='N' or IS_LOG is null or ".$DB->Length("IS_LOG")."<=0)
        			and (IS_OVERDUE='N' or IS_OVERDUE is null or ".$DB->Length("IS_OVERDUE")."<=0)
        			";
        		$z = $DB->Query($strSql, false, $err_mess.__LINE__);
        		$zr = $z->Fetch();
        		$arFields["MESSAGES"] = intval($zr["MESSAGES"]);
        		$arFields["PROBLEM_TIME"] = intval($zr["ALL_TIME"]);
        		
        		
        		if ($setReopenDefault)
        			$arFields["REOPEN"] = "'N'";
        			
        		/*
        		AUTO_CLOSE_DAYS
        		LAST_MESSAGE_DATE
        		LAST_MESSAGE_USER_ID
        		LAST_MESSAGE_GUEST_ID
        		LAST_MESSAGE_SID
        		MESSAGES
        		REOPEN
        		PROBLEM_TIME
        		*/
        /*
        				
        		$DB->Update("b_ticket",$arFields,"WHERE ID='".$ticketID."'",$err_mess.__LINE__);		
        	}
        	
        	//$dateType = CTicket::ADD, CTicket::DELETE, CTicket::CURRENT_DATE
        	function UpdateLastParams2($ticketID, $dateType)
        	{
        		global $DB;
        		$strUsers = implode(",", CTicket::GetSupportTeamAndAdminUsers());
        		$err_mess = (CAllTicket::err_mess())."<br>Function: UpdateLastParams2<br>Line: ";
        		$arFields=array();
        		$arFields["D_1_USER_M_AFTER_SUP_M"] = "null";
        		$arFields["ID_1_USER_M_AFTER_SUP_M"] = "null";
        		$arFields["LAST_MESSAGE_BY_SUPPORT_TEAM"] = "'Y'";
        		$arFields["SUPPORT_DEADLINE_NOTIFY"] = "null";
        		$arFields["SUPPORT_DEADLINE"] = "null";
        		$arFields["IS_OVERDUE"] = "'N'";
        		$arFields["IS_NOTIFIED"] = "'N'";
        				
        		// Get last support response
        		$M_ID = 0;
        		$strSql = "
        			SELECT
        				T.ID ID,
        				MAX(TM.ID) M_ID
        			FROM
        				b_ticket T
        				INNER JOIN b_ticket_message TM
        					ON T.ID = TM.TICKET_ID
        						AND T.ID = $ticketID
        						AND TM.OWNER_USER_ID IN($strUsers)
        						AND (NOT(TM.IS_LOG='Y'))
        						AND (NOT(TM.IS_HIDDEN='Y'))
        						AND (NOT(TM.NOT_CHANGE_STATUS='Y'))
        				
        			GROUP BY
        				T.ID";
        				
        		$rs = $DB->Query($strSql, false, $err_mess . __LINE__);
        		if($arrRs = $rs->Fetch())
        		{
        			if(intval($arrRs["M_ID"]) > 0)
        			{
        				$M_ID = intval($arrRs["M_ID"]);
        			}
        		}
        		
        		// Get first user request after last support response
        		$strSql = "
        			SELECT
        				T.SLA_ID,
        				T.DATE_CLOSE,
        				" . $DB->DateToCharFunction("T.DEADLINE_SOURCE_DATE", "FULL") . " DEADLINE_SOURCE_DATE,
        				" . $DB->DateToCharFunction("T.D_1_USER_M_AFTER_SUP_M", "FULL") . " DATE_OLD,
        				T.IS_OVERDUE,
        				SLA.RESPONSE_TIME_UNIT,
        				SLA.RESPONSE_TIME,
        				SLA.NOTICE_TIME_UNIT,
        				SLA.NOTICE_TIME,
        				PZ2.M_ID,
        				PZ2.D_1_USER_M_AFTER_SUP_M
        			FROM
        				b_ticket T
        				INNER JOIN b_ticket_sla SLA
        					ON T.SLA_ID = SLA.ID
        						AND T.ID = $ticketID
        				LEFT JOIN (SELECT
        					TM.ID M_ID,
        					TM.TICKET_ID,
        					" . $DB->DateToCharFunction("TM.DATE_CREATE", "FULL") . " D_1_USER_M_AFTER_SUP_M
        				FROM
        					b_ticket_message TM
        					INNER JOIN (SELECT
        							T.ID ID,
        							MIN(TM.ID) M_ID
        						FROM
        							b_ticket T
        							INNER JOIN b_ticket_message TM
        								ON T.ID = TM.TICKET_ID
        								AND T.ID = $ticketID
        								AND TM.ID > $M_ID
        								AND (NOT(TM.IS_LOG='Y'))
        								AND (NOT(TM.NOT_CHANGE_STATUS='Y'))
        								AND (NOT(TM.IS_HIDDEN='Y'))
        							
        						GROUP BY
        							T.ID) PZ
        						ON TM.ID = PZ.M_ID) PZ2
        						ON T.ID = PZ2.TICKET_ID
        						
        		";
        		//AND (NOT(TM.IS_HIDDEN='Y'))
        		$rs = $DB->Query($strSql, false, $err_mess . __LINE__);
        		if(!($arrRs = $rs->Fetch()))
        		{
        			return;
        		}
        
        		$isOverdue = false;
        		if(intval($arrRs["M_ID"]) > 0)
        		{
        			$arFields["D_1_USER_M_AFTER_SUP_M"] = $DB->CharToDateFunction($arrRs["D_1_USER_M_AFTER_SUP_M"]);
        			$arFields["ID_1_USER_M_AFTER_SUP_M"] = intval($arrRs["M_ID"]);
        			$arFields["LAST_MESSAGE_BY_SUPPORT_TEAM"] = "'N'";
        
        			if($arrRs["IS_OVERDUE"] == "Y" && !(isset($dateType["EVENT"]) && in_array(CTicket::REOPEN, $dateType["EVENT"])))
        			{
        				unset($arFields["SUPPORT_DEADLINE_NOTIFY"]);
        				unset($arFields["SUPPORT_DEADLINE"]);
        				unset($arFields["IS_OVERDUE"]);
        				unset($arFields["IS_NOTIFIED"]);
        				$isOverdue = true;
        			}
        		}
        				
        		if( !$isOverdue && intval($arrRs["DATE_CLOSE"]) <= 0 && $arFields["LAST_MESSAGE_BY_SUPPORT_TEAM"] == "'N'")
        		{
        			$arrRs["ID"] =  $ticketID;
        			CTicketReminder::RecalculateSupportDeadlineForOneTicket($arrRs, $arFields, $dateType);
        		}
        		else
        		{
        			if(isset($dateType["EVENT"]) && is_array($dateType["EVENT"]) && in_array(CTicket::REOPEN, $dateType["EVENT"]))
        			{
        				$arFields["DEADLINE_SOURCE_DATE"] = $DB->CharToDateFunction(GetTime(time() + CTimeZone::GetOffset(),"FULL"));
        			}
        			$DB->Update("b_ticket", $arFields, "WHERE ID='" . $ticketID . "'", $err_mess . __LINE__);
        		}
        				
        	}*/
        public static function UpdateLastParamsN($ticketID, $dateType, $recalculateSupportDeadline = \true, $setReopenDefault = \true)
        {
        }
        public static function UpdateMessages($ticketID)
        {
        }
        public static function GetFileList(&$by, &$order, $arFilter = array(), $checkRights = 'N')
        {
        }
        public static function GetMessageByID($id, $checkRights = "Y", $get_user_name = "Y")
        {
        }
        public static function GetByID($id, $lang = \LANG, $checkRights = "Y", $get_user_name = "Y", $get_extra_names = "Y", $arParams = array())
        {
        }
        public static function getMaxId()
        {
        }
        public static function Delete($ticketID, $checkRights = "Y")
        {
        }
        public static function UpdateOnline($ticketID, $userID = \false, $currentMode = "")
        {
        }
        public static function SetTicket($arFields, $ticketID = "", $checkRights = "Y", $sendEmailToAuthor = "Y", $sendEmailToTechsupport = "Y")
        {
        }
        /*****************************************************************
        									SET
        	*****************************************************************/
        public static function addSupportText($cn)
        {
        }
        public static function EmailsFromStringToArray($emails, $res = \null)
        {
        }
        public static function GetCSupportTableFields($name, $arrOrTable = \CSupportTableFields::C_Array)
        {
        }
        public static function Set_getFilesLinks($arFiles, $lID)
        {
        }
        public static function Set_WriteLog($nf, $v, $mf)
        {
        }
        public static function Set_sendMails($nf, $v, $arFields)
        {
        }
        public static function Set_getResponsibleUser($v, $f, &$arFields)
        {
        }
        public static function Set_getCOUPONandSLA($v, $f, $arFields)
        {
        }
        public static function Set_InitVar(&$arFields, $id, $checkRights, $sendEmailToAuthor, $sendEmailToTechsupport)
        {
        }
        public static function Set($arFields, &$MID, $id = "", $checkRights = "Y", $sendEmailToAuthor = "Y", $sendEmailToTechsupport = "Y")
        {
        }
        /***********************************************
        			Ñòàðûå ôóíêöèè äëÿ ñîâìåñòèìîñòè
        	***********************************************/
        public static function GetFUA($site_id)
        {
        }
        public static function GetRefBookValues($type, $site_id = \false)
        {
        }
        public static function GetMessages($ticketID, $arFilter = array(), $checkRights = "Y")
        {
        }
        public static function GetResponsible()
        {
        }
        public static function IsResponsible($userID = \false)
        {
        }
        public static function ExecuteEvents($message, $arFields, $isNew, &$eventType = \false)
        {
        }
        public static function GetResponsibleList($userID, $CMGM = \null, $CMUGM = \null, $SG = \null)
        {
        }
        public static function GetUsersPropertiesArray($arUserIDs = array(), $arGuestIDs = array())
        {
        }
    }
    class CAllTicketSLA
    {
        const SLA_SITE = 1;
        const SITE_SLA = 2;
        function err_mess()
        {
        }
        // add new or modify exist SLA
        function Set($arFields, $id, $checkRights = \true)
        {
        }
        // delete SLA
        function Delete($id, $checkRights = \true)
        {
        }
        // get SLA by ID
        function GetByID($id)
        {
        }
        // get shedule array by SLA ID
        function GetSheduleArray($slaID)
        {
        }
        function GetGroupArray($slaID)
        {
        }
        public static function GetGroupArrayForAllSLA()
        {
        }
        function GetSiteArray($slaID)
        {
        }
        function GetSiteArrayForAllSLA($p = self::SLA_SITE)
        {
        }
        function GetCategoryArray($slaID)
        {
        }
        function GetCriticalityArray($slaID)
        {
        }
        function GetMarkArray($slaID)
        {
        }
        function GetDropDown($siteID = "")
        {
        }
        function GetForUser($siteID = \false, $userID = \false)
        {
        }
        function GetSLA($siteID, $userID, $categoryID = \null, $coupon = "")
        {
        }
    }
    class CAllTicketDictionary
    {
        function err_mess()
        {
        }
        function GetDefault($type, $siteID = \SITE_ID)
        {
        }
        function GetNextSort($typeID)
        {
        }
        function GetDropDown($type = "C", $siteID = \false, $sla_id = \false)
        {
        }
        function GetDropDownArray($siteID = \false, $SLA_ID = \false, $arUnsetType = array("F"))
        {
        }
        // get array of languages related to contract
        function GetSiteArray($DICTIONARY_ID)
        {
        }
        function GetSiteArrayForAllDictionaries()
        {
        }
        function GetTypeList()
        {
        }
        function GetTypeNameByID($id)
        {
        }
        function GetByID($id)
        {
        }
        function GetBySID($sid, $type, $siteID = \SITE_ID)
        {
        }
        function Delete($id, $CHECK_RIGHTS = "Y")
        {
        }
        function CheckFields($arFields, $id = \false)
        {
        }
        function Add($arFields)
        {
        }
        function Update($id, $arFields)
        {
        }
        function __CleanDefault(&$arFields)
        {
        }
        function __SetSites($id, $arFields)
        {
        }
    }
    class CAllTicketReminder
    {
        function err_mess()
        {
        }
        function ConvertResponseTimeUnit($rt, $rtu)
        {
        }
        function RecalculateLastMessageDeadline($RSD = \true)
        {
        }
        function RecalculateSupportDeadline($arFilter = array())
        {
        }
        /*$arTicket = ID,SLA_ID,RESPONSE_TIME, D_1_USER_M_AFTER_SUP_M, RESPONSE_TIME_UNIT, NOTICE_TIME, NOTICE_TIME_UNIT,DEADLINE_SOURCE_DATE
        	$dateType = CTicket::ADD, CTicket::UPDATE CTicket::DELETE, CTicket::IGNORE, CTicket::REOPEN, CTicket::NEW_SLA*/
        function RecalculateSupportDeadlineForOneTicket($arTicket, $arFields = array(), $dateType = array("EVENT" => array(\CTicket::IGNORE)))
        {
        }
        function SupportDeadline($arrTicket)
        {
        }
        function SupportDeadlineNotify($arrTicket0)
        {
        }
        function AgentFunction()
        {
        }
        function StartAgent()
        {
        }
    }
    class CSupportTimetableCache
    {
        static $cache = array("ID" => array("TYPE" => \CSupportTableFields::VT_NUMBER, "DEF_VAL" => 0, "AUTO_CALCULATED" => \true), "SLA_ID" => array("TYPE" => \CSupportTableFields::VT_NUMBER, "DEF_VAL" => 0), "DATE_FROM" => array("TYPE" => \CSupportTableFields::VT_DATE_TIME, "DEF_VAL" => \null), "DATE_TILL" => array("TYPE" => \CSupportTableFields::VT_DATE_TIME, "DEF_VAL" => \null), "W_TIME" => array("TYPE" => \CSupportTableFields::VT_NUMBER, "DEF_VAL" => 0), "W_TIME_INC" => array("TYPE" => \CSupportTableFields::VT_NUMBER, "DEF_VAL" => 0));
        const TIMETABLE_CACHE = "b_ticket_timetable_cache";
        const SLA = " b_ticket_sla";
        const SLA_SHEDULE = "b_ticket_sla_shedule";
        const TICKET_HOLIDAYS = "b_ticket_holidays";
        const SLA_2_HOLIDAYS = "b_ticket_sla_2_holidays";
        static $arrH = \null;
        static $arrS = \null;
        static $timeZone = \null;
        static $timeZoneOffset = \null;
        static $MaxSlaResponseTime = \null;
        public static function Possible($d = "")
        {
        }
        static function GetTimeZone()
        {
        }
        static function GetTimeZoneOffset()
        {
        }
        static function TimeStampInCurrTimeZone($d, $fromUserTZ = \false)
        {
        }
        static function err_mess()
        {
        }
        static function GetMaxSlaResponseTime()
        {
        }
        static function GetNumberOfDaysForward()
        {
        }
        static function GetNumberOfDaysBackward()
        {
        }
        static function GetDayBegin($d)
        {
        }
        static function GetDayEnd($d)
        {
        }
        static function GetDayNom($d)
        {
        }
        static function GetHolidays($dateB, $dateE, $arrS, $arFilter)
        {
        }
        function SortMethodH($a, $b)
        {
        }
        static function MergeIntervalsH($arr, $arrS)
        {
        }
        static function InsertDefaultValues()
        {
        }
        static function GetShedule($arFilter)
        {
        }
        static function MergeIntervals($arr)
        {
        }
        static function TimeToStr($t)
        {
        }
        static function ToCache($arFilter = array(), $RSD = \true, $arFromGetEndDate = \null)
        {
        }
        function UpdateDiscardedTickets()
        {
        }
        //$dateFrom - âðåìÿ ñåðâåðà ñ ÷àñîâûì ïîÿñîì èç íàñòðîåê òåêóùåãî ïîëüçîâàòåëÿ
        static function getEndDate($sla, $periodMin0, $dateFrom, $secondTry = \false)
        {
        }
        function StartAgent()
        {
        }
    }
    class CSupportHolidays
    {
        static $holidays = array("ID" => array("TYPE" => \CSupportTableFields::VT_NUMBER, "DEF_VAL" => 0, "AUTO_CALCULATED" => \true), "NAME" => array("TYPE" => \CSupportTableFields::VT_STRING, "DEF_VAL" => "", "MAX_STR_LEN" => 255), "DESCRIPTION" => array("TYPE" => \CSupportTableFields::VT_STRING, "DEF_VAL" => "", "MAX_STR_LEN" => 2000), "OPEN_TIME" => array("TYPE" => \CSupportTableFields::VT_STRING, "DEF_VAL" => "HOLIDAY", "LIST" => array("HOLIDAY_H", "HOLIDAY", "WORKDAY_H", "WORKDAY_0", "WORKDAY_1", "WORKDAY_2", "WORKDAY_3", "WORKDAY_4", "WORKDAY_5", "WORKDAY_6")), "DATE_FROM" => array("TYPE" => \CSupportTableFields::VT_DATE_TIME, "DEF_VAL" => \null), "DATE_TILL" => array("TYPE" => \CSupportTableFields::VT_DATE_TIME, "DEF_VAL" => \null));
        static $sla2holidays = array("SLA_ID" => array("TYPE" => \CSupportTableFields::VT_NUMBER, "DEF_VAL" => 0), "HOLIDAYS_ID" => array("TYPE" => \CSupportTableFields::VT_NUMBER, "DEF_VAL" => 0));
        const table = "b_ticket_holidays";
        const table_s2h = "b_ticket_sla_2_holidays";
        const table_sla = "b_ticket_sla";
        static function err_mess()
        {
        }
        function Set($arFields, $arFieldsSLA)
        {
        }
        // get Holidays list
        function GetList($arSort, $arFilter)
        {
        }
        // get Holidays list
        function GetSLAByID($id, $needObj = \false)
        {
        }
        function GetOpenTimeArray()
        {
        }
        function GetOpenTimeT($v)
        {
        }
        // delete Holiday
        function Delete($id, $checkRights = \true)
        {
        }
    }
    class CSupportTools
    {
        static $speedArray = array();
        static function PrepareParamArray($param, $res = array())
        {
        }
        // $more0 = "strlen || count || intval"
        static function array_keys_exists($key, $arr, $more0 = "", $andOr = "&&")
        {
        }
    }
    class CSupportSearch
    {
        static $searchModule;
        const TABLE_NAME = "b_ticket_search";
        static function err_mess()
        {
        }
        public static function getSql($query)
        {
        }
        /**
         * @deprecated
         */
        function GetFilterQuery($q, $idName, $titleName, $messageName, &$error)
        {
        }
        /**
         * @deprecated
         */
        function PrepareQuery($q, $idName, $titleName, $messageName, &$error)
        {
        }
        /**
         * @deprecated
         */
        function ParseQ($q)
        {
        }
        /**
         * @deprecated
         */
        function ParseStr($qwe, $default_op = "&")
        {
        }
        static function CheckModule()
        {
        }
        static function isIndexExists()
        {
        }
        /**
         * @deprecated
         */
        static function GetSQLfilter($s, $idName, $titleName, $messageName)
        {
        }
        /**
         * @deprecated
         */
        static function StrInEXISTS($and, $idName, $sign, $key)
        {
        }
        /**
         * @param integer|array $ticket ticket ID or ticket fetched row with ID, SITE_ID, TITLE
         * @param null|array $messages Message rows with MESSAGE; if null - will be fetched automatically
         *
         * @return boolean
         */
        public static function indexTicket($ticket, $messages = \null)
        {
        }
        public static function reindexTicket($ticket, $messages = \null)
        {
        }
        public static function indexAllTickets($startFromId = 0, $timeLimit = 10)
        {
        }
        public static function reindexAllTickets($startFromId = 0, $timeLimit = 10)
        {
        }
        protected static function performAllTicketsIndexing($startFromId = 0, $timeLimit = 10, $removeOldIndex = \false)
        {
        }
        /**
         * @deprecated
         */
        static function WriteWordsInTable($M_ID, $SITE_ID, $s)
        {
        }
        /**
         * @deprecated
         */
        static function ReindexMessages($firstID, $periodS = 8)
        {
        }
    }
    class CSupportSuperCoupon
    {
        function Generate($arParams = array())
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function UseCoupon($coupon)
        {
        }
        function GetList($arOrder = array(), $arFilter = array())
        {
        }
        function Delete($ID)
        {
        }
        function GetLogList($arOrder = array(), $arFilter = array())
        {
        }
        function _getrandsymbol($x)
        {
        }
        function __CheckFields($arFields)
        {
        }
    }
    class CSupportTimetable
    {
        static $fieldsTypes = array("ID" => array("TYPE" => \CSupportTableFields::VT_NUMBER, "DEF_VAL" => 0, "AUTO_CALCULATED" => \true), "NAME" => array("TYPE" => \CSupportTableFields::VT_STRING, "DEF_VAL" => "", "MAX_STR_LEN" => 255), "DESCRIPTION" => array("TYPE" => \CSupportTableFields::VT_STRING, "DEF_VAL" => "", "MAX_STR_LEN" => 2000));
        static $fieldsTypesShedule = array("ID" => array("TYPE" => \CSupportTableFields::VT_NUMBER, "DEF_VAL" => 0, "AUTO_CALCULATED" => \true), "SLA_ID" => array("TYPE" => \CSupportTableFields::VT_NUMBER, "DEF_VAL" => 0), "TIMETABLE_ID" => array("TYPE" => \CSupportTableFields::VT_NUMBER, "DEF_VAL" => \null), "WEEKDAY_NUMBER" => array("TYPE" => \CSupportTableFields::VT_NUMBER, "DEF_VAL" => 0), "OPEN_TIME" => array("TYPE" => \CSupportTableFields::VT_STRING, "DEF_VAL" => "24H", "LIST" => array("24H", "CLOSED", "CUSTOM")), "MINUTE_FROM" => array("TYPE" => \CSupportTableFields::VT_NUMBER, "DEF_VAL" => \null), "MINUTE_TILL" => array("TYPE" => \CSupportTableFields::VT_NUMBER, "DEF_VAL" => \null));
        const TABLE = "b_ticket_timetable";
        const TABLE_SHEDULE = "b_ticket_sla_shedule";
        static function err_mess()
        {
        }
        function Set($arFields, $arFieldsShedule)
        {
        }
        // get Timetable list
        function GetList($arSort = \null, $arFilter = \null)
        {
        }
        function GetSheduleByID($id, $needObj = \false)
        {
        }
        // delete Timetable
        function Delete($id, $checkRights = \true)
        {
        }
    }
    class CSupportUser2UserGroup
    {
        function GetList($arOrder = array(), $arFilter = array())
        {
        }
        function Add($arFields)
        {
        }
        function Update($groupID, $userID, $arFields)
        {
        }
        function CheckFields(&$arFields, $groupID = 0, $userID = 0)
        {
        }
        function Delete($groupID, $userID)
        {
        }
        function SetGroupUsers($groupID, $arUsers)
        {
        }
    }
    class CSupportTableFields
    {
        const VT_NUMBER = "number";
        const VT_STRING = "string";
        const VT_Y_N = "Y_N";
        const VT_Y_N_NULL = "Y_N_NULL";
        const VT_DATE = "date";
        const VT_DATE_TIME = "datetime";
        const JS_HREF = 1;
        const JS_HREF_ALERT = 2;
        const JS_IN_QUOTES = 3;
        const JS_EVENT = 4;
        const ATTRIBUTE = 5;
        const ATTRIBUTE_EX = 6;
        const HREF_LOCATION = 7;
        const ID = 8;
        const NOT_NULL = 1;
        const NOT_DEFAULT = 2;
        const ONLY_CHANGED = 3;
        const MORE0 = 4;
        const NOT_EMTY_STR = 5;
        const ALL = \null;
        const C_Array = 1;
        const C_Table = 2;
        protected $_arFieldsTypes = array();
        /*
        		array(
        			"aaa" => array(
        				"TYPE" => self::VT_STRING, 
        				"DEF_VAL" => null, 
        				"MAX_STR_LEN" => 255, 
        				"AUTO_CALCULATED" => true, 
        				"LIST" => array("q1","q2") 
        			) 
        		)*/
        protected $_arFields = array();
        //array(0 => array("aaa" => null))
        protected $_arModifiedFields = array();
        //array(0 => array("aaa", "bbb"))
        protected $_classType = self::C_Array;
        protected $_currentRow = 0;
        protected $_resetNextF = \false;
        protected $_sortFields = array();
        static function Convert($type, $value, $op)
        {
        }
        static function ConvertForSQL($type, $value)
        {
        }
        static function ConvertForHTML($type, $place, $value, $op)
        {
        }
        function SortMethod($a, $b)
        {
        }
        public function __construct($f, $arOrTable = self::C_Array)
        {
        }
        public function checkRow($row)
        {
        }
        public function First()
        {
        }
        public function Last()
        {
        }
        public function ResetNext()
        {
        }
        public function Next()
        {
        }
        public function Previous()
        {
        }
        public function Row($row)
        {
        }
        public function CleanVar($row = \null, $removeExistingRows = \false)
        {
        }
        public function RemoveExistingRows()
        {
        }
        public function __set($name, $value)
        {
        }
        public function AddRow()
        {
        }
        /* çàïîëíèòü ïîëÿ èç ìàññèâà
        		$sf = "Èìÿ ïîëÿ,Èìÿ ïîëÿ2,..."
        		$sf = array("Èìÿ ïîëÿ", "Èìÿ ïîëÿ2",...) */
        public function SortRow($sf)
        {
        }
        //$notNull = array(self::NOT_NULL, self::MORE0, self::NOT_EMTY_STR)
        public function Set($name, $value, $notNull = array(), $row = \null, $isModified = \true)
        {
        }
        public function SetCurrentTime($name, $row = \null)
        {
        }
        /* çàïîëíèòü ïîëÿ èç ìàññèâà
        		$fields = CSupportTableFields::ALL
        		$fields = "Èìÿ ïîëÿ,Èìÿ ïîëÿ2,..."
        		$fields = array("Èìÿ ïîëÿ", "Èìÿ ïîëÿ2",...)
        		$fields = array("Èìÿ ïîëÿ" => "Èìÿ ïîëÿ â ìàññèâå", "Èìÿ ïîëÿ2" => "Èìÿ ïîëÿ â ìàññèâå2",...)
        		$notNull = array(self::NOT_EMTY_STR, self::MORE0, self::NOT_EMTY_STR) */
        public function FromArray($arr, $fields = self::ALL, $notNull = array(), $row = \null)
        {
        }
        /* çàïîëíèòü ïîëÿ èç ìàññèâà
        		$fields = CSupportTableFields::ALL
        		$fields = "Èìÿ ïîëÿ,Èìÿ ïîëÿ2,..."
        		$fields = array("Èìÿ ïîëÿ", "Èìÿ ïîëÿ2",...)
        		$fields = array("Èìÿ ïîëÿ" => "Èìÿ ïîëÿ â ìàññèâå", "Èìÿ ïîëÿ2" => "Èìÿ ïîëÿ â ìàññèâå2",...)
        		$notNull = array(self::NOT_EMTY_STR, self::MORE0, self::NOT_EMTY_STR) */
        public function FromTable($table, $fields = self::ALL, $notNull = array(), $removeExistingRows = \false)
        {
        }
        public function __get($name)
        {
        }
        public function Get($name, $row = \null)
        {
        }
        /*Âûãðóçèòü ïåðå÷èñëåííûå ïîëÿ â ìàññèâ
        		$notNull = array(self::NOT_NULL, self::NOT_DEFAULT, self::ONLY_CHANGED)
        		$fields = CSupportTableFields::ALL
        		$fields = "Èìÿ ïîëÿ,Èìÿ ïîëÿ2,..."
        		$fields = array("Èìÿ ïîëÿ", "Èìÿ ïîëÿ2",...)
        		$fields = array("Èìÿ ïîëÿ" => "Èìÿ ïîëÿ â ìàññèâå", "Èìÿ ïîëÿ2" => "Èìÿ ïîëÿ â ìàññèâå2",...)*/
        public function ToArray($fields = self::ALL, $notNull = array(), $forSQL = \false, $row = \null)
        {
        }
        public function GetFieldForOutput($name, $place, $whiteList = array("http", "ftp", "/"), $row = \null)
        {
        }
        public function GetColumn($name)
        {
        }
    }
    class CSupportUserGroup
    {
        function GetList($arOrder = array(), $arFilter = array())
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function CheckFields(&$arFields, $ID = 0)
        {
        }
        function Delete($ID)
        {
        }
        function GetUserGroupList($arOrder = array(), $arFilter = array())
        {
        }
        function AddUserGroup($arFields)
        {
        }
        function UpdateUserGroup($groupID, $userID, $arFields)
        {
        }
        function DeleteUserGroup($groupID, $userID)
        {
        }
    }
    class CSupportUpdate extends \CAllSupportUpdate
    {
        function err_mess()
        {
        }
        function GetBD()
        {
        }
    }
    class CTicket extends \CAllTicket
    {
        public static function isnull($field, $alternative)
        {
        }
        public static function err_mess()
        {
        }
        public static function AutoClose()
        {
        }
        public static function CleanUpOnline()
        {
        }
        public static function GetOnline($ticketID)
        {
        }
        public static function DeleteMessage($ID, $checkRights = "Y")
        {
        }
        public static function UpdateMessage($MESSAGE_ID, $arFields, $checkRights = "Y")
        {
        }
        public static function AddMessage($ticketID, $arFields, &$arrFILES, $checkRights = "Y")
        {
        }
        public static function GetStatus($ticketID)
        {
        }
        public static function GetList(&$by, &$order, $arFilter = array(), &$isFiltered, $checkRights = "Y", $getUserName = "Y", $getExtraNames = "Y", $siteID = \false, $arParams = array())
        {
        }
        public static function GetSupportTeamList()
        {
        }
        /*function GetResponsibleList($user_id)
        	{
        		$err_mess = (CTicket::err_mess())."<br>Function: GetSupportTeamMailList<br>Line: ";
        		global $DB;
        
        		$strSql = "
        			SELECT DISTINCT
        				U.ID as ID,
        				U.LOGIN as LOGIN,
        				concat('[',U.ID,'] ',' (',U.LOGIN,') ',ifnull(U.NAME,''),' ',ifnull(U.LAST_NAME,'')) as NAME,
        				U.EMAIL as EMAIL
        			FROM
        				b_user U,
        				b_ticket_user_ugroup TUG,
        				b_ticket_user_ugroup TUG2
        			WHERE
        				TUG.USER_ID = '".intval($user_id)."'
        			and TUG2.GROUP_ID = TUG.GROUP_ID
        			and U.ID = TUG2.USER_ID
        			and TUG2.CAN_MAIL_GROUP_MESSAGES = 'Y'
        			ORDER BY
        				U.ID
        			";
        		$res = $DB->Query($strSql, false, $err_mess.__LINE__);
        		return $res;
        	}*/
        public static function GetMessageList(&$by, &$order, $arFilter = array(), &$isFiltered, $checkRights = "Y", $getUserName = "Y")
        {
        }
        public static function GetDynamicList(&$by, &$order, $arFilter = array())
        {
        }
        public static function GetMessageDynamicList(&$by, &$order, $arFilter = array())
        {
        }
    }
    class CTicketSLA extends \CAllTicketSLA
    {
        function err_mess()
        {
        }
        // get SLA list
        function GetList(&$arSort, $arFilter = array(), &$isFiltered)
        {
        }
    }
    class CTicketDictionary extends \CAllTicketDictionary
    {
        function err_mess()
        {
        }
        function GetList(&$by, &$order, $arFilter = array(), &$isFiltered)
        {
        }
    }
    class CTicketReminder extends \CAllTicketReminder
    {
        function err_mess()
        {
        }
    }
    class CSupportPage
    {
        const AJAX_VAR_NAME = "MY_AJAX";
        const LIST_URL = "ticket_timetable_list.php";
        const SHOW_FORM_SETTINGS = \true;
        const SHOW_USER_FIELDS = \false;
        const DEFAULT_TIME = "00:00";
        const DEFAULT_TIME_INPUT_ROW = 1;
        static $needShowInterface = \true;
        static $needSave = \false;
        static $canNotRead = \false;
        static $objCAdminForm = \null;
        //$tabControl
        static $notSaved = \true;
        static $isErrors = \false;
        static $id = 0;
        static $timeTableFields = \null;
        static $timeTableSheduleFields = \null;
        static $postTimeTableFields = \null;
        static $postTimeTableSheduleFields = \null;
        static function ProcessAJAX()
        {
        }
        static function GetPost()
        {
        }
        static function Save()
        {
        }
        static function Read()
        {
        }
        static function GetArrayOfTabs()
        {
        }
        static function DoActions()
        {
        }
        static function ShowErrors()
        {
        }
        static function ShowMenu()
        {
        }
        static function Show()
        {
        }
        static function TimeToStr($t)
        {
        }
        static function StrToTime($t)
        {
        }
        static function ArrSheduleInObj($arr)
        {
        }
        static function ObjInArrShedule()
        {
        }
    }
    class messageservice extends \CModule
    {
        var $MODULE_ID = "messageservice";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function messageservice()
        {
        }
        function InstallDB($install_wizard = \true)
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
    class MessageServiceConfigSenderSmsComponent extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
        protected function getSenderId()
        {
        }
    }
    class MessageServiceConfigSenderLimitsComponent extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
        private function getTimezones()
        {
        }
    }
}
namespace Bitrix\MessageService\Internal\Entity {
    /**
     * EO_Message
     * @see \Bitrix\MessageService\Internal\Entity\MessageTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getType()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message resetType()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message unsetType()
     * @method \string fillType()
     * @method \string getSenderId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message setSenderId(\string|\Bitrix\Main\DB\SqlExpression $senderId)
     * @method bool hasSenderId()
     * @method bool isSenderIdFilled()
     * @method bool isSenderIdChanged()
     * @method \string remindActualSenderId()
     * @method \string requireSenderId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message resetSenderId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message unsetSenderId()
     * @method \string fillSenderId()
     * @method \int getAuthorId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message setAuthorId(\int|\Bitrix\Main\DB\SqlExpression $authorId)
     * @method bool hasAuthorId()
     * @method bool isAuthorIdFilled()
     * @method bool isAuthorIdChanged()
     * @method \int remindActualAuthorId()
     * @method \int requireAuthorId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message resetAuthorId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message unsetAuthorId()
     * @method \int fillAuthorId()
     * @method \Bitrix\Main\EO_User getAuthor()
     * @method \Bitrix\Main\EO_User remindActualAuthor()
     * @method \Bitrix\Main\EO_User requireAuthor()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message setAuthor(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message resetAuthor()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message unsetAuthor()
     * @method bool hasAuthor()
     * @method bool isAuthorFilled()
     * @method bool isAuthorChanged()
     * @method \Bitrix\Main\EO_User fillAuthor()
     * @method \string getMessageFrom()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message setMessageFrom(\string|\Bitrix\Main\DB\SqlExpression $messageFrom)
     * @method bool hasMessageFrom()
     * @method bool isMessageFromFilled()
     * @method bool isMessageFromChanged()
     * @method \string remindActualMessageFrom()
     * @method \string requireMessageFrom()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message resetMessageFrom()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message unsetMessageFrom()
     * @method \string fillMessageFrom()
     * @method \string getMessageTo()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message setMessageTo(\string|\Bitrix\Main\DB\SqlExpression $messageTo)
     * @method bool hasMessageTo()
     * @method bool isMessageToFilled()
     * @method bool isMessageToChanged()
     * @method \string remindActualMessageTo()
     * @method \string requireMessageTo()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message resetMessageTo()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message unsetMessageTo()
     * @method \string fillMessageTo()
     * @method \string getMessageHeaders()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message setMessageHeaders(\string|\Bitrix\Main\DB\SqlExpression $messageHeaders)
     * @method bool hasMessageHeaders()
     * @method bool isMessageHeadersFilled()
     * @method bool isMessageHeadersChanged()
     * @method \string remindActualMessageHeaders()
     * @method \string requireMessageHeaders()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message resetMessageHeaders()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message unsetMessageHeaders()
     * @method \string fillMessageHeaders()
     * @method \string getMessageBody()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message setMessageBody(\string|\Bitrix\Main\DB\SqlExpression $messageBody)
     * @method bool hasMessageBody()
     * @method bool isMessageBodyFilled()
     * @method bool isMessageBodyChanged()
     * @method \string remindActualMessageBody()
     * @method \string requireMessageBody()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message resetMessageBody()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message unsetMessageBody()
     * @method \string fillMessageBody()
     * @method \Bitrix\Main\Type\DateTime getDateInsert()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message setDateInsert(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateInsert)
     * @method bool hasDateInsert()
     * @method bool isDateInsertFilled()
     * @method bool isDateInsertChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateInsert()
     * @method \Bitrix\Main\Type\DateTime requireDateInsert()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message resetDateInsert()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message unsetDateInsert()
     * @method \Bitrix\Main\Type\DateTime fillDateInsert()
     * @method \Bitrix\Main\Type\DateTime getDateExec()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message setDateExec(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateExec)
     * @method bool hasDateExec()
     * @method bool isDateExecFilled()
     * @method bool isDateExecChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateExec()
     * @method \Bitrix\Main\Type\DateTime requireDateExec()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message resetDateExec()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message unsetDateExec()
     * @method \Bitrix\Main\Type\DateTime fillDateExec()
     * @method \Bitrix\Main\Type\DateTime getNextExec()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message setNextExec(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $nextExec)
     * @method bool hasNextExec()
     * @method bool isNextExecFilled()
     * @method bool isNextExecChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualNextExec()
     * @method \Bitrix\Main\Type\DateTime requireNextExec()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message resetNextExec()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message unsetNextExec()
     * @method \Bitrix\Main\Type\DateTime fillNextExec()
     * @method \string getSuccessExec()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message setSuccessExec(\string|\Bitrix\Main\DB\SqlExpression $successExec)
     * @method bool hasSuccessExec()
     * @method bool isSuccessExecFilled()
     * @method bool isSuccessExecChanged()
     * @method \string remindActualSuccessExec()
     * @method \string requireSuccessExec()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message resetSuccessExec()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message unsetSuccessExec()
     * @method \string fillSuccessExec()
     * @method \string getExecError()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message setExecError(\string|\Bitrix\Main\DB\SqlExpression $execError)
     * @method bool hasExecError()
     * @method bool isExecErrorFilled()
     * @method bool isExecErrorChanged()
     * @method \string remindActualExecError()
     * @method \string requireExecError()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message resetExecError()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message unsetExecError()
     * @method \string fillExecError()
     * @method \int getStatusId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message setStatusId(\int|\Bitrix\Main\DB\SqlExpression $statusId)
     * @method bool hasStatusId()
     * @method bool isStatusIdFilled()
     * @method bool isStatusIdChanged()
     * @method \int remindActualStatusId()
     * @method \int requireStatusId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message resetStatusId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message unsetStatusId()
     * @method \int fillStatusId()
     * @method \string getExternalId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message setExternalId(\string|\Bitrix\Main\DB\SqlExpression $externalId)
     * @method bool hasExternalId()
     * @method bool isExternalIdFilled()
     * @method bool isExternalIdChanged()
     * @method \string remindActualExternalId()
     * @method \string requireExternalId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message resetExternalId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message unsetExternalId()
     * @method \string fillExternalId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message set($fieldName, $value)
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message reset($fieldName)
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\MessageService\Internal\Entity\EO_Message wakeUp($data)
     */
    class EO_Message
    {
        /* @var \Bitrix\MessageService\Internal\Entity\MessageTable */
        public static $dataClass = '\\Bitrix\\MessageService\\Internal\\Entity\\MessageTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Message_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \string[] getSenderIdList()
     * @method \string[] fillSenderId()
     * @method \int[] getAuthorIdList()
     * @method \int[] fillAuthorId()
     * @method \Bitrix\Main\EO_User[] getAuthorList()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message_Collection getAuthorCollection()
     * @method \Bitrix\Main\EO_User_Collection fillAuthor()
     * @method \string[] getMessageFromList()
     * @method \string[] fillMessageFrom()
     * @method \string[] getMessageToList()
     * @method \string[] fillMessageTo()
     * @method \string[] getMessageHeadersList()
     * @method \string[] fillMessageHeaders()
     * @method \string[] getMessageBodyList()
     * @method \string[] fillMessageBody()
     * @method \Bitrix\Main\Type\DateTime[] getDateInsertList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateInsert()
     * @method \Bitrix\Main\Type\DateTime[] getDateExecList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateExec()
     * @method \Bitrix\Main\Type\DateTime[] getNextExecList()
     * @method \Bitrix\Main\Type\DateTime[] fillNextExec()
     * @method \string[] getSuccessExecList()
     * @method \string[] fillSuccessExec()
     * @method \string[] getExecErrorList()
     * @method \string[] fillExecError()
     * @method \int[] getStatusIdList()
     * @method \int[] fillStatusId()
     * @method \string[] getExternalIdList()
     * @method \string[] fillExternalId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\MessageService\Internal\Entity\EO_Message $object)
     * @method bool has(\Bitrix\MessageService\Internal\Entity\EO_Message $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message getByPrimary($primary)
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message[] getAll()
     * @method bool remove(\Bitrix\MessageService\Internal\Entity\EO_Message $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\MessageService\Internal\Entity\EO_Message_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Message_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\MessageService\Internal\Entity\MessageTable */
        public static $dataClass = '\\Bitrix\\MessageService\\Internal\\Entity\\MessageTable';
    }
    /**
     * @method static EO_Message_Query query()
     * @method static EO_Message_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Message_Result getById($id)
     * @method static EO_Message_Result getList(array $parameters = array())
     * @method static EO_Message_Entity getEntity()
     * @method static \Bitrix\MessageService\Internal\Entity\EO_Message createObject($setDefaultValues = true)
     * @method static \Bitrix\MessageService\Internal\Entity\EO_Message_Collection createCollection()
     * @method static \Bitrix\MessageService\Internal\Entity\EO_Message wakeUpObject($row)
     * @method static \Bitrix\MessageService\Internal\Entity\EO_Message_Collection wakeUpCollection($rows)
     */
    class MessageTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Message_Result exec()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message fetchObject()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Message_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message fetchObject()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message_Collection fetchCollection()
     */
    class EO_Message_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message createObject($setDefaultValues = true)
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message_Collection createCollection()
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message wakeUpObject($row)
     * @method \Bitrix\MessageService\Internal\Entity\EO_Message_Collection wakeUpCollection($rows)
     */
    class EO_Message_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_RestApp
     * @see \Bitrix\MessageService\Internal\Entity\RestAppTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getAppId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp setAppId(\string|\Bitrix\Main\DB\SqlExpression $appId)
     * @method bool hasAppId()
     * @method bool isAppIdFilled()
     * @method bool isAppIdChanged()
     * @method \string remindActualAppId()
     * @method \string requireAppId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp resetAppId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp unsetAppId()
     * @method \string fillAppId()
     * @method \string getCode()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp resetCode()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp unsetCode()
     * @method \string fillCode()
     * @method \string getType()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp resetType()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp unsetType()
     * @method \string fillType()
     * @method \string getHandler()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp setHandler(\string|\Bitrix\Main\DB\SqlExpression $handler)
     * @method bool hasHandler()
     * @method bool isHandlerFilled()
     * @method bool isHandlerChanged()
     * @method \string remindActualHandler()
     * @method \string requireHandler()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp resetHandler()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp unsetHandler()
     * @method \string fillHandler()
     * @method \Bitrix\Main\Type\DateTime getDateAdd()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp setDateAdd(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateAdd)
     * @method bool hasDateAdd()
     * @method bool isDateAddFilled()
     * @method bool isDateAddChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateAdd()
     * @method \Bitrix\Main\Type\DateTime requireDateAdd()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp resetDateAdd()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp unsetDateAdd()
     * @method \Bitrix\Main\Type\DateTime fillDateAdd()
     * @method \int getAuthorId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp setAuthorId(\int|\Bitrix\Main\DB\SqlExpression $authorId)
     * @method bool hasAuthorId()
     * @method bool isAuthorIdFilled()
     * @method bool isAuthorIdChanged()
     * @method \int remindActualAuthorId()
     * @method \int requireAuthorId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp resetAuthorId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp unsetAuthorId()
     * @method \int fillAuthorId()
     * @method \Bitrix\Main\EO_User getAuthor()
     * @method \Bitrix\Main\EO_User remindActualAuthor()
     * @method \Bitrix\Main\EO_User requireAuthor()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp setAuthor(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp resetAuthor()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp unsetAuthor()
     * @method bool hasAuthor()
     * @method bool isAuthorFilled()
     * @method bool isAuthorChanged()
     * @method \Bitrix\Main\EO_User fillAuthor()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp set($fieldName, $value)
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp reset($fieldName)
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\MessageService\Internal\Entity\EO_RestApp wakeUp($data)
     */
    class EO_RestApp
    {
        /* @var \Bitrix\MessageService\Internal\Entity\RestAppTable */
        public static $dataClass = '\\Bitrix\\MessageService\\Internal\\Entity\\RestAppTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_RestApp_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getAppIdList()
     * @method \string[] fillAppId()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \string[] getHandlerList()
     * @method \string[] fillHandler()
     * @method \Bitrix\Main\Type\DateTime[] getDateAddList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateAdd()
     * @method \int[] getAuthorIdList()
     * @method \int[] fillAuthorId()
     * @method \Bitrix\Main\EO_User[] getAuthorList()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp_Collection getAuthorCollection()
     * @method \Bitrix\Main\EO_User_Collection fillAuthor()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\MessageService\Internal\Entity\EO_RestApp $object)
     * @method bool has(\Bitrix\MessageService\Internal\Entity\EO_RestApp $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp getByPrimary($primary)
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp[] getAll()
     * @method bool remove(\Bitrix\MessageService\Internal\Entity\EO_RestApp $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\MessageService\Internal\Entity\EO_RestApp_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_RestApp_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\MessageService\Internal\Entity\RestAppTable */
        public static $dataClass = '\\Bitrix\\MessageService\\Internal\\Entity\\RestAppTable';
    }
    /**
     * @method static EO_RestApp_Query query()
     * @method static EO_RestApp_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_RestApp_Result getById($id)
     * @method static EO_RestApp_Result getList(array $parameters = array())
     * @method static EO_RestApp_Entity getEntity()
     * @method static \Bitrix\MessageService\Internal\Entity\EO_RestApp createObject($setDefaultValues = true)
     * @method static \Bitrix\MessageService\Internal\Entity\EO_RestApp_Collection createCollection()
     * @method static \Bitrix\MessageService\Internal\Entity\EO_RestApp wakeUpObject($row)
     * @method static \Bitrix\MessageService\Internal\Entity\EO_RestApp_Collection wakeUpCollection($rows)
     */
    class RestAppTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_RestApp_Result exec()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp fetchObject()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_RestApp_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp fetchObject()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp_Collection fetchCollection()
     */
    class EO_RestApp_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp createObject($setDefaultValues = true)
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp_Collection createCollection()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp wakeUpObject($row)
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestApp_Collection wakeUpCollection($rows)
     */
    class EO_RestApp_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_RestAppLang
     * @see \Bitrix\MessageService\Internal\Entity\RestAppLangTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getAppId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang setAppId(\int|\Bitrix\Main\DB\SqlExpression $appId)
     * @method bool hasAppId()
     * @method bool isAppIdFilled()
     * @method bool isAppIdChanged()
     * @method \int remindActualAppId()
     * @method \int requireAppId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang resetAppId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang unsetAppId()
     * @method \int fillAppId()
     * @method \string getLanguageId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang setLanguageId(\string|\Bitrix\Main\DB\SqlExpression $languageId)
     * @method bool hasLanguageId()
     * @method bool isLanguageIdFilled()
     * @method bool isLanguageIdChanged()
     * @method \string remindActualLanguageId()
     * @method \string requireLanguageId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang resetLanguageId()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang unsetLanguageId()
     * @method \string fillLanguageId()
     * @method \string getName()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang resetName()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang unsetName()
     * @method \string fillName()
     * @method \string getAppName()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang setAppName(\string|\Bitrix\Main\DB\SqlExpression $appName)
     * @method bool hasAppName()
     * @method bool isAppNameFilled()
     * @method bool isAppNameChanged()
     * @method \string remindActualAppName()
     * @method \string requireAppName()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang resetAppName()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang unsetAppName()
     * @method \string fillAppName()
     * @method \string getDescription()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang resetDescription()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang unsetDescription()
     * @method \string fillDescription()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang set($fieldName, $value)
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang reset($fieldName)
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\MessageService\Internal\Entity\EO_RestAppLang wakeUp($data)
     */
    class EO_RestAppLang
    {
        /* @var \Bitrix\MessageService\Internal\Entity\RestAppLangTable */
        public static $dataClass = '\\Bitrix\\MessageService\\Internal\\Entity\\RestAppLangTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_RestAppLang_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getAppIdList()
     * @method \int[] fillAppId()
     * @method \string[] getLanguageIdList()
     * @method \string[] fillLanguageId()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getAppNameList()
     * @method \string[] fillAppName()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\MessageService\Internal\Entity\EO_RestAppLang $object)
     * @method bool has(\Bitrix\MessageService\Internal\Entity\EO_RestAppLang $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang getByPrimary($primary)
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang[] getAll()
     * @method bool remove(\Bitrix\MessageService\Internal\Entity\EO_RestAppLang $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\MessageService\Internal\Entity\EO_RestAppLang_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_RestAppLang_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\MessageService\Internal\Entity\RestAppLangTable */
        public static $dataClass = '\\Bitrix\\MessageService\\Internal\\Entity\\RestAppLangTable';
    }
    /**
     * @method static EO_RestAppLang_Query query()
     * @method static EO_RestAppLang_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_RestAppLang_Result getById($id)
     * @method static EO_RestAppLang_Result getList(array $parameters = array())
     * @method static EO_RestAppLang_Entity getEntity()
     * @method static \Bitrix\MessageService\Internal\Entity\EO_RestAppLang createObject($setDefaultValues = true)
     * @method static \Bitrix\MessageService\Internal\Entity\EO_RestAppLang_Collection createCollection()
     * @method static \Bitrix\MessageService\Internal\Entity\EO_RestAppLang wakeUpObject($row)
     * @method static \Bitrix\MessageService\Internal\Entity\EO_RestAppLang_Collection wakeUpCollection($rows)
     */
    class RestAppLangTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_RestAppLang_Result exec()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang fetchObject()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_RestAppLang_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang fetchObject()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang_Collection fetchCollection()
     */
    class EO_RestAppLang_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang createObject($setDefaultValues = true)
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang_Collection createCollection()
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang wakeUpObject($row)
     * @method \Bitrix\MessageService\Internal\Entity\EO_RestAppLang_Collection wakeUpCollection($rows)
     */
    class EO_RestAppLang_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\MessageService\Context {
    class User
    {
        public static function getId()
        {
        }
        /** @return \CUser|null */
        public static function getUser()
        {
        }
        public static function isAdmin()
        {
        }
    }
}
namespace Bitrix\MessageService\Integration {
    class Pull
    {
        private static $canUse;
        public static function canUse()
        {
        }
        public static function onMessagesUpdate(array $messages)
        {
        }
        /**
         * @param string $command Pull command name.
         * @param array $params Command parameters.
         * @return bool
         */
        private static function addToStack($command, array $params)
        {
        }
    }
}
namespace Bitrix\MessageService\Sender\Result {
    class MessageStatus extends \Bitrix\Main\Result
    {
        protected $id;
        protected $externalId;
        protected $statusCode;
        protected $statusText;
        /**
         * @param string $id
         * @return $this
         */
        public function setId($id)
        {
        }
        /**
         * @return string|null
         */
        public function getId()
        {
        }
        /**
         * @param mixed $externalId
         * @return $this
         */
        public function setExternalId($externalId)
        {
        }
        /**
         * @return mixed
         */
        public function getExternalId()
        {
        }
        /**
         * @param int|string $statusCode
         * @return $this
         */
        public function setStatusCode($statusCode)
        {
        }
        /**
         * @return int|string
         */
        public function getStatusCode()
        {
        }
        /**
         * @param string $statusText
         * @return $this
         */
        public function setStatusText($statusText)
        {
        }
        /**
         * @return string
         */
        public function getStatusText()
        {
        }
    }
    class SendMessage extends \Bitrix\Main\Result
    {
        protected $id;
        protected $externalId;
        protected $status;
        /**
         * @param string $id
         * @return $this
         */
        public function setId($id)
        {
        }
        /**
         * @return string|null
         */
        public function getId()
        {
        }
        /**
         * @return mixed
         */
        public function getExternalId()
        {
        }
        /**
         * @param mixed $externalId
         * @return SendMessage
         */
        public function setExternalId($externalId)
        {
        }
        /**
         * @return int Status id relative to MessageStatus constants.
         * @see \Bitrix\MessageService\MessageStatus
         */
        public function getStatus()
        {
        }
        /**
         * @param int $status Status id relative to MessageStatus constants.
         * @see \Bitrix\MessageService\MessageStatus
         * @return SendMessage
         */
        public function setStatus($status)
        {
        }
        /**
         * Helps us to set most used message status
         * @see MessageStatus::ACCEPTED
         * @return $this
         */
        public function setAccepted()
        {
        }
    }
}
namespace Bitrix\MessageService\Sender {
    abstract class Base
    {
        /**
         * @return bool
         */
        public static function isSupported()
        {
        }
        public static function className()
        {
        }
        public function isConfigurable()
        {
        }
        public function getType()
        {
        }
        public abstract function getId();
        public function getExternalId()
        {
        }
        /**
         * @return string
         */
        public abstract function getName();
        /**
         * @return string
         */
        public abstract function getShortName();
        /**
         * Check can use state of provider.
         * @return bool
         */
        public abstract function canUse();
        public abstract function getFromList();
        /**
         * @param string $from
         * @return bool
         */
        public function isCorrectFrom($from)
        {
        }
        /**
         * @param array $messageFieldsFields
         * @return Result\SendMessage Send operation result.
         */
        public abstract function sendMessage(array $messageFieldsFields);
        /**
         * Converts service status to internal status
         * @see \Bitrix\MessageService\MessageStatus
         * @param mixed $serviceStatus
         * @return null|int
         */
        public static function resolveStatus($serviceStatus)
        {
        }
    }
    abstract class BaseConfigurable extends \Bitrix\MessageService\Sender\Base
    {
        protected $options;
        public function isConfigurable()
        {
        }
        /**
         * Check demo status.
         * @return bool
         */
        public function isDemo()
        {
        }
        /**
         * Check registration state.
         * @return bool
         */
        public abstract function isRegistered();
        /**
         * Check is registration confirmed.
         * @return bool
         */
        public function isConfirmed()
        {
        }
        /**
         * Get default From.
         * @return null|string
         */
        public function getDefaultFrom()
        {
        }
        /**
         * Set default From.
         * @param string $from From.
         * @return $this
         */
        public function setDefaultFrom($from)
        {
        }
        /**
         * Check can use state of sender.
         * @return bool
         */
        public function canUse()
        {
        }
        /**
         * @param array $fields
         * @return Result
         */
        public abstract function register(array $fields);
        /**
         * @return array
         */
        public abstract function getOwnerInfo();
        /**
         * @param array $fields
         * @return Result
         */
        public function confirmRegistration(array $fields)
        {
        }
        /**
         * @return Result
         */
        public function sendConfirmationCode()
        {
        }
        /**
         * @return string
         */
        public function getManageUrl()
        {
        }
        /**
         * @return string
         */
        public abstract function getExternalManageUrl();
        /**
         * @param array $messageFields
         * @return MessageStatus Message status result.
         * @internal param string $messageId Message Id.
         */
        public abstract function getMessageStatus(array $messageFields);
        /**
         * Enable demo mode.
         * @return $this
         */
        public function enableDemo()
        {
        }
        /**
         * Disable demo mode.
         * @return $this
         */
        public function disableDemo()
        {
        }
        /**
         * Sync remote state (load From list etc.)
         * @return $this
         */
        public function sync()
        {
        }
        protected function getCallbackUrl()
        {
        }
        /**
         * Gets host url with port and scheme.
         * @return string
         * @throws \Bitrix\Main\ArgumentNullException
         * @see \Bitrix\Disk\UrlManager::getHostUrl
         */
        private function getHostUrl()
        {
        }
        /**
         * @param array $options
         * @return $this
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        protected function setOptions(array $options)
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        protected function getOptions()
        {
        }
        /**
         * @param $optionName
         * @param $optionValue
         * @return $this
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @internal param array $options
         */
        protected function setOption($optionName, $optionValue)
        {
        }
        /**
         * @param $optionName
         * @param mixed $defaultValue
         * @return mixed|null
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        protected function getOption($optionName, $defaultValue = null)
        {
        }
        /**
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function clearOptions()
        {
        }
    }
}
namespace Bitrix\MessageService\Sender\Sms {
    class MfmsRu extends \Bitrix\MessageService\Sender\BaseConfigurable
    {
        public static function isSupported()
        {
        }
        public function getId()
        {
        }
        public function getName()
        {
        }
        public function getShortName()
        {
        }
        public function getFromList()
        {
        }
        public function isRegistered()
        {
        }
        public function register(array $fields)
        {
        }
        /**
         * @return array [
         * 	'login' => ''
         * ]
         */
        public function getOwnerInfo()
        {
        }
        public function getExternalManageUrl()
        {
        }
        public function sendMessage(array $messageFields)
        {
        }
        public function getMessageStatus(array $messageFields)
        {
        }
        public static function resolveStatus($serviceStatus)
        {
        }
        private function sendViaHpg(array $messageFields)
        {
        }
        private function getStatusViaHpg(array $messageFields)
        {
        }
        private function touchHpg($url, array $params)
        {
        }
    }
    /**
     * Class Dummy. For testing purposes only. It saves SMS to the log by AddMessage2Log().
     * @example $eventManager = \Bitrix\Main\EventManager::getInstance(); $eventManager->registerEventHandler('messageservice', 'onGetSmsSenders', 'messageservice', 'Bitrix\MessageService\Sender\Sms\Dummy', 'onGetSmsSenders');
     */
    class Dummy extends \Bitrix\MessageService\Sender\Base
    {
        public function getId()
        {
        }
        public function getName()
        {
        }
        public function getShortName()
        {
        }
        public function getFromList()
        {
        }
        public function sendMessage(array $messageFieldsFields)
        {
        }
        public function canUse()
        {
        }
        public static function onGetSmsSenders()
        {
        }
    }
    class SmsAssistentBy extends \Bitrix\MessageService\Sender\BaseConfigurable
    {
        const JSON_API_URL = 'https://userarea.sms-assistent.by/api/v1/json';
        const PLAIN_API_URL = 'https://userarea.sms-assistent.by/api/v1/%s/plain';
        public static function isSupported()
        {
        }
        public function getId()
        {
        }
        public function getName()
        {
        }
        public function getShortName()
        {
        }
        public function getFromList()
        {
        }
        public function isRegistered()
        {
        }
        public function register(array $fields)
        {
        }
        public function registerDemo(array $fields)
        {
        }
        /**
         * @return array [
         * 	'user' => ''
         * ]
         */
        public function getOwnerInfo()
        {
        }
        /**
         * @return array
         */
        public function getDemoInfo()
        {
        }
        public function getExternalManageUrl()
        {
        }
        public function sendMessage(array $messageFields)
        {
        }
        /* reserved method */
        private function sendMessageBulk(array $messageFields)
        {
        }
        public function getMessageStatus(array $messageFields)
        {
        }
        public static function resolveStatus($serviceStatus)
        {
        }
        public function sync()
        {
        }
        private function callPlainApi($command, array $params = [])
        {
        }
        private function callJsonApi($command, array $params = [])
        {
        }
        private function getErrorMessage($errorCode)
        {
        }
        private function loadFromList()
        {
        }
    }
    class SmsLineBy extends \Bitrix\MessageService\Sender\BaseConfigurable
    {
        const JSON_API_URL = 'https://api.smsline.by/v3/';
        public static function isSupported()
        {
        }
        public function getId()
        {
        }
        public function getName()
        {
        }
        public function getShortName()
        {
        }
        public function getFromList()
        {
        }
        public function isRegistered()
        {
        }
        public function register(array $fields)
        {
        }
        /**
         * @return array [
         * 	'login' => ''
         * ]
         */
        public function getOwnerInfo()
        {
        }
        public function getExternalManageUrl()
        {
        }
        public function sendMessage(array $messageFields)
        {
        }
        public function getMessageStatus(array $messageFields)
        {
        }
        public static function resolveStatus($serviceStatus)
        {
        }
        public function sync()
        {
        }
        private function loadFromList()
        {
        }
        private function makeSignature($text, $key = null)
        {
        }
        private function sendGetRequest($path, $signature = null, $login = null)
        {
        }
        private function sendPostRequest($path, array $params)
        {
        }
        private function sendHttpRequest($method, $login, $signature, $path, $body = null)
        {
        }
        private function getErrorMessage($errorCode, $text = null)
        {
        }
    }
    class Rest extends \Bitrix\MessageService\Sender\Base
    {
        static $langFields;
        public static function isSupported()
        {
        }
        public function getId()
        {
        }
        public function getName()
        {
        }
        public function getShortName()
        {
        }
        public function canUse()
        {
        }
        public function getFromList()
        {
        }
        public function isCorrectFrom($from)
        {
        }
        public function sendMessage(array $messageFields)
        {
        }
        public static function resolveStatus($serviceStatus)
        {
        }
        private function getLangField($appId, $fieldName)
        {
        }
        private function getAppLangFields($appId)
        {
        }
    }
    class Twilio extends \Bitrix\MessageService\Sender\BaseConfigurable
    {
        public function getId()
        {
        }
        public function getName()
        {
        }
        public function getShortName()
        {
        }
        public function isRegistered()
        {
        }
        public function isDemo()
        {
        }
        public function canUse()
        {
        }
        public function getFromList()
        {
        }
        public function register(array $fields)
        {
        }
        public function getOwnerInfo()
        {
        }
        public function getExternalManageUrl()
        {
        }
        public function sendMessage(array $messageFields)
        {
        }
        public function getMessageStatus(array $messageFields)
        {
        }
        public static function resolveStatus($serviceStatus)
        {
        }
        public function sync()
        {
        }
        private function callExternalMethod($httpMethod, $apiMethod, array $params = array(), $sid = null, $token = null)
        {
        }
        private function loadFromList()
        {
        }
    }
    class SmsRu extends \Bitrix\MessageService\Sender\BaseConfigurable
    {
        public static function isSupported()
        {
        }
        public function getId()
        {
        }
        public function getName()
        {
        }
        public function getShortName()
        {
        }
        public function isDemo()
        {
        }
        public function getDemoBalance()
        {
        }
        public function getFromList()
        {
        }
        public function isConfirmed()
        {
        }
        public function isRegistered()
        {
        }
        public function register(array $fields)
        {
        }
        /**
         * @return array [
         * 	'phone' => '',
         *  'firstName' => '',
         *  'lastName' => '',
         *  'email' => ''
         * ]
         */
        public function getOwnerInfo()
        {
        }
        /**
         * @param array $fields
         * @return Result
         */
        public function confirmRegistration(array $fields)
        {
        }
        public function sendConfirmationCode()
        {
        }
        public function getExternalManageUrl()
        {
        }
        public function sendMessage(array $messageFields)
        {
        }
        public function getMessageStatus(array $messageFields)
        {
        }
        public static function resolveStatus($serviceStatus)
        {
        }
        public function sync()
        {
        }
        private function callExternalMethod($method, $params)
        {
        }
        private function parseExternalAnswer($httpResult)
        {
        }
        private function getEmbedPartner()
        {
        }
        private function getSecretKey()
        {
        }
        private function getEmbedHash($phoneNumber)
        {
        }
        private function getErrorMessage($errorCode, $answer = null)
        {
        }
        private function loadFromList()
        {
        }
    }
}
namespace Bitrix\MessageService\Sender {
    class SmsManager
    {
        private static $senders;
        /**
         * @return Base[] List of senders.
         */
        public static function getSenders()
        {
        }
        private static function fireSendersEvent()
        {
        }
        /**
         * @return array Simple list of senders, array(id => name)
         */
        public static function getSenderSelectList()
        {
        }
        /**
         * @return array Sender list information.
         */
        public static function getSenderInfoList()
        {
        }
        /**
         * @param $id
         * @return Base|null Sender instance.
         */
        public static function getSenderById($id)
        {
        }
        /**
         * Get default SMS sender.
         * @return Base
         */
        public static function getDefaultSender()
        {
        }
        /**
         * @return bool Can use SMS transport.
         */
        public static function canUse()
        {
        }
        /**
         * @return string Manage url
         */
        public static function getManageUrl()
        {
        }
        /**
         * Get first Sender which is ready to use it.
         * @return Base|null Sender instance.
         */
        public static function getUsableSender()
        {
        }
        /**
         * @param array $messageFields
         * @param Base|null $sender
         * @return Message
         * @throws Main\ArgumentTypeException
         */
        public static function createMessage(array $messageFields, \Bitrix\MessageService\Sender\Base $sender = null)
        {
        }
        /**
         * @param array $messageFields
         * @param Base|null $sender
         * @return Main\Entity\AddResult
         * @throws Main\ArgumentTypeException
         */
        public static function sendMessage(array $messageFields, \Bitrix\MessageService\Sender\Base $sender = null)
        {
        }
        /**
         * @param array $messageFields
         * @param Base|null $sender
         * @return Main\Entity\AddResult
         * @throws Main\ArgumentTypeException
         */
        public static function sendMessageDirectly(array $messageFields, \Bitrix\MessageService\Sender\Base $sender = null)
        {
        }
        public static function getMessageStatus($messageId)
        {
        }
    }
    class Limitation
    {
        private static $options;
        private static $optionName = 'sender.limitation.daily';
        private static $defaultLimit = 0;
        public static function getDailyLimits()
        {
        }
        public static function getDailyLimit($senderId, $fromId)
        {
        }
        public static function setDailyLimit($senderId, $fromId, $limit)
        {
        }
        public static function checkDailyLimit($senderId, $fromId)
        {
        }
        public static function getRetryTime()
        {
        }
        public static function setRetryTime(array $params)
        {
        }
        /**
         * @param array $options
         * @return bool
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        private static function setOptions(array $options)
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        private static function getOptions()
        {
        }
        /**
         * @param $optionName
         * @param $optionValue
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @internal param array $options
         */
        private static function setOption($optionName, $optionValue)
        {
        }
        /**
         * @param $optionName
         * @param mixed $defaultValue
         * @return mixed|null
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        private static function getOption($optionName, $defaultValue = null)
        {
        }
        /**
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function clearOptions()
        {
        }
    }
}
namespace Bitrix\MessageService {
    class MessageStatus
    {
        //local queue statuses
        const PENDING = 0;
        const ERROR = 1;
        const EXCEPTION = 2;
        const DEFERRED = 3;
        //external service statuses
        const ACCEPTED = 10;
        const QUEUED = 11;
        const SENDING = 12;
        const SENT = 13;
        const DELIVERED = 14;
        const UNDELIVERED = 15;
        const FAILED = 16;
        const READ = 17;
        const SEMANTIC_PROCESS = 'process';
        const SEMANTIC_SUCCESS = 'success';
        const SEMANTIC_FAILURE = 'failure';
        public static function getDescriptions()
        {
        }
        public static function getSemantics()
        {
        }
    }
    class Queue
    {
        private static function hasMessages()
        {
        }
        /**
         * @return string
         */
        public static function run()
        {
        }
        /**
         * @return string
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public static function sendMessages()
        {
        }
        /**
         * @param array $messageFields
         * @return SendMessage
         */
        private static function sendMessage(array $messageFields)
        {
        }
        /**
         * @return string
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function cleanUpAgent()
        {
        }
    }
    class Converter
    {
        public static function onInstallModule()
        {
        }
        public static function convertBizprocProviders()
        {
        }
        public static function convertOptions()
        {
        }
        private static function addRestSender($params)
        {
        }
        private static function addRestSenderLang($langFields)
        {
        }
    }
    class RestService extends \IRestService
    {
        const SCOPE = 'messageservice';
        protected static $app;
        const ERROR_UNSUPPORTED_PROTOCOL = 'ERROR_UNSUPPORTED_PROTOCOL';
        const ERROR_WRONG_HANDLER_URL = 'ERROR_WRONG_HANDLER_URL';
        const ERROR_HANDLER_URL_MATCH = 'ERROR_HANDLER_URL_MATCH';
        const ERROR_SENDER_ALREADY_INSTALLED = 'ERROR_SENDER_ALREADY_INSTALLED';
        const ERROR_SENDER_ADD_FAILURE = 'ERROR_SENDER_ADD_FAILURE';
        const ERROR_SENDER_VALIDATION_FAILURE = 'ERROR_SENDER_VALIDATION_FAILURE';
        const ERROR_SENDER_NOT_FOUND = 'ERROR_SENDER_NOT_FOUND';
        const ERROR_MESSAGE_NOT_FOUND = 'ERROR_MESSAGE_NOT_FOUND';
        const ERROR_MESSAGE_STATUS_INCORRECT = 'ERROR_MESSAGE_STATUS_INCORRECT';
        public static function onRestServiceBuildDescription()
        {
        }
        /**
         * @param array $fields Fields describes application.
         * @return void
         */
        public static function onRestAppDelete(array $fields)
        {
        }
        /**
         * @param array $fields Fields describes application.
         * @return void
         */
        public static function onRestAppUpdate(array $fields)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool
         * @throws \Exception
         */
        public static function addSender($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool
         * @throws \Exception
         */
        public static function deleteSender($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return array
         * @throws AccessException
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getSenderList($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool
         * @throws AccessException
         * @throws RestException
         */
        public static function updateMessageStatus($params, $n, $server)
        {
        }
        private static function getUserId()
        {
        }
        private static function checkAdminPermissions()
        {
        }
        private static function validateSender($data, $server)
        {
        }
        private static function validateSenderCode($code)
        {
        }
        private static function validateSenderHandler($handler, $server)
        {
        }
        /**
         * @param \CRestServer $server
         * @return array|bool|false|mixed|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         */
        private static function getApp($server)
        {
        }
        private static function addSenderLang($langFields, $clientId)
        {
        }
        private static function getAppNames($clientId)
        {
        }
    }
    class Message
    {
        /** @var Sender\Base $sender */
        protected $sender;
        /** @var  string $type */
        protected $type;
        /** @var  int $authorId */
        protected $authorId = 0;
        /** @var  string $from */
        protected $from;
        /** @var  string $to */
        protected $to;
        /** @var  array $headers */
        protected $headers = array();
        /** @var  string $body */
        protected $body;
        /**
         * Message constructor.
         * @param Sender\Base|null $sender
         */
        public function __construct(\Bitrix\MessageService\Sender\Base $sender = null)
        {
        }
        /**
         * @param array $fields
         * @param Sender\Base|null $sender
         * @return Message
         */
        public static function createFromFields(array $fields, \Bitrix\MessageService\Sender\Base $sender = null)
        {
        }
        public static function getFieldsById($messageId)
        {
        }
        /**
         * @param string $type
         * @return Message
         * @throws ArgumentTypeException
         */
        public function setType($type)
        {
        }
        /**
         * @return string
         */
        public function getType()
        {
        }
        public function checkFields()
        {
        }
        /**
         * @return \Bitrix\Main\Entity\AddResult Created Message result.
         */
        public function send()
        {
        }
        public function sendDirectly()
        {
        }
        /**
         * @return mixed
         */
        public function getFrom()
        {
        }
        /**
         * @param mixed $from
         * @return $this
         */
        public function setFrom($from)
        {
        }
        /**
         * @return mixed
         */
        public function getBody()
        {
        }
        /**
         * @param mixed $body
         * @return $this
         */
        public function setBody($body)
        {
        }
        /**
         * @return mixed
         */
        public function getTo()
        {
        }
        /**
         * @param mixed $to
         * @return $this
         */
        public function setTo($to)
        {
        }
        /**
         * @return Sender\Base|null
         */
        public function getSender()
        {
        }
        /**
         * @param Sender\Base $sender
         * @return $this
         */
        public function setSender(\Bitrix\MessageService\Sender\Base $sender)
        {
        }
        /**
         * @param array $headers
         * @return Message
         */
        public function setHeaders(array $headers)
        {
        }
        /**
         * @return array
         */
        public function getHeaders()
        {
        }
        /**
         * @param int $authorId
         * @return Message
         */
        public function setAuthorId($authorId)
        {
        }
        /**
         * @return int
         */
        public function getAuthorId()
        {
        }
    }
    class MessageType
    {
        const SMS = 'SMS';
        public static function isSupported($type)
        {
        }
    }
}
namespace {
    class workflow extends \CModule
    {
        var $MODULE_ID = "workflow";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function workflow()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function GetModuleRightList()
        {
        }
    }
    class CWorkflowStatus
    {
        public static function err_mess()
        {
        }
        //Despite this function is not documented it should be version compatible
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered, $arSelect = array())
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function GetDropDownList($SHOW_ALL = "N", $strOrder = "desc", $arFilter = array())
        {
        }
        public static function GetNextSort()
        {
        }
        //check fields before writing
        function CheckFields($ID, $arFields)
        {
        }
        //add
        function Add($arFields)
        {
        }
        //update
        function Update($ID, $arFields)
        {
        }
        function SetPermissions($STATUS_ID, $arGroups, $PERMISSION_TYPE = 1)
        {
        }
    }
    class CAllWorkflow
    {
        public static function err_mess()
        {
        }
        public static function OnPanelCreate()
        {
        }
        public static function OnChangeFile($path, $site)
        {
        }
        public static function SetHistory($DOCUMENT_ID)
        {
        }
        // Deletes old copies from document's history
        public static function CleanUpHistoryCopies($DOCUMENT_ID = \false, $HISTORY_COPIES = \false)
        {
        }
        // Deletes old copies from document's history (simple edit - SE)
        public static function CleanUpHistoryCopies_SE($FILENAME, $HISTORY_COPIES = \false)
        {
        }
        // saves changes history and send e-mails on status change
        public static function SetMove($DOCUMENT_ID, $STATUS_ID, $OLD_STATUS_ID, $LOG_ID)
        {
        }
        public static function Delete($DOCUMENT_ID)
        {
        }
        public static function IsAdmin()
        {
        }
        // check edit rights for the document
        // depending on it's status and lock
        public static function IsAllowEdit($DOCUMENT_ID, &$locked_by, &$date_lock, $CHECK_RIGHTS = "Y")
        {
        }
        public static function GetStatus($DOCUMENT_ID)
        {
        }
        // check edit rights for the document
        // check is based only on status no lock
        public static function IsHaveEditRights($DOCUMENT_ID)
        {
        }
        public static function UnLock($DOCUMENT_ID)
        {
        }
        public static function Lock($DOCUMENT_ID)
        {
        }
        // return edit link depending on rights and status
        public static function GetEditLink($FILENAME, &$status_id, &$status_title, $template = "", $lang = \LANGUAGE_ID, $return_url = "")
        {
        }
        public static function DeleteHistory($ID)
        {
        }
        public static function CleanUp()
        {
        }
        public static function CleanUpFiles($DOCUMENT_ID = \false, $FILE_ID = \false)
        {
        }
        public static function CleanUpPreview($DOCUMENT_ID = \false)
        {
        }
        public static function DeletePreview($FILENAME, $site = \false)
        {
        }
        public static function DeleteFile($FILENAME)
        {
        }
        public static function IsFilenameExists($FILENAME)
        {
        }
        public static function GetUniqueFilename($filename)
        {
        }
        public static function IsPreviewExists($FILENAME)
        {
        }
        public static function GetUniquePreview($DOCUMENT_ID)
        {
        }
        public static function SetStatus($DOCUMENT_ID, $STATUS_ID, $OLD_STATUS_ID, $history = \true)
        {
        }
        public static function LinkFiles2Document($arUploadedFiles, $DOCUMENT_ID)
        {
        }
        public static function GetFileByID($DOCUMENT_ID, $FILENAME)
        {
        }
        public static function GetTempDir()
        {
        }
        public static function GetFileContent($did, $fname, $wf_path = "", $site = \false)
        {
        }
        public static function __CheckSite($site)
        {
        }
    }
    class CWorkflow extends \CAllWorkflow
    {
        public static function err_mess()
        {
        }
        public static function Insert($arFields)
        {
        }
        public static function Update($arFields, $DOCUMENT_ID)
        {
        }
        public static function GetLockStatus($DOCUMENT_ID, &$locked_by, &$date_lock)
        {
        }
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function GetByFilename($FILENAME, $SITE_ID, $arFilter = \false)
        {
        }
        public static function GetHistoryList(&$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        public static function GetHistoryByID($ID)
        {
        }
        public static function CleanUpHistory()
        {
        }
        public static function CleanUpPublished()
        {
        }
        public static function GetFileList($DOCUMENT_ID)
        {
        }
    }
    class conversion extends \CModule
    {
        var $MODULE_ID = 'conversion';
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = 'Y';
        function conversion()
        {
        }
        function InstallDB($params = array())
        {
        }
        function UnInstallDB($params = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
}
namespace Bitrix\Conversion\Internals {
    /**
     * EO_Context
     * @see \Bitrix\Conversion\Internals\ContextTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Conversion\Internals\EO_Context setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getSnapshot()
     * @method \Bitrix\Conversion\Internals\EO_Context setSnapshot(\string|\Bitrix\Main\DB\SqlExpression $snapshot)
     * @method bool hasSnapshot()
     * @method bool isSnapshotFilled()
     * @method bool isSnapshotChanged()
     * @method \string remindActualSnapshot()
     * @method \string requireSnapshot()
     * @method \Bitrix\Conversion\Internals\EO_Context resetSnapshot()
     * @method \Bitrix\Conversion\Internals\EO_Context unsetSnapshot()
     * @method \string fillSnapshot()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Conversion\Internals\EO_Context set($fieldName, $value)
     * @method \Bitrix\Conversion\Internals\EO_Context reset($fieldName)
     * @method \Bitrix\Conversion\Internals\EO_Context unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Conversion\Internals\EO_Context wakeUp($data)
     */
    class EO_Context
    {
        /* @var \Bitrix\Conversion\Internals\ContextTable */
        public static $dataClass = '\\Bitrix\\Conversion\\Internals\\ContextTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Context_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getSnapshotList()
     * @method \string[] fillSnapshot()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Conversion\Internals\EO_Context $object)
     * @method bool has(\Bitrix\Conversion\Internals\EO_Context $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Conversion\Internals\EO_Context getByPrimary($primary)
     * @method \Bitrix\Conversion\Internals\EO_Context[] getAll()
     * @method bool remove(\Bitrix\Conversion\Internals\EO_Context $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Conversion\Internals\EO_Context_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Conversion\Internals\EO_Context current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Context_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Conversion\Internals\ContextTable */
        public static $dataClass = '\\Bitrix\\Conversion\\Internals\\ContextTable';
    }
    /**
     * @method static EO_Context_Query query()
     * @method static EO_Context_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Context_Result getById($id)
     * @method static EO_Context_Result getList(array $parameters = array())
     * @method static EO_Context_Entity getEntity()
     * @method static \Bitrix\Conversion\Internals\EO_Context createObject($setDefaultValues = true)
     * @method static \Bitrix\Conversion\Internals\EO_Context_Collection createCollection()
     * @method static \Bitrix\Conversion\Internals\EO_Context wakeUpObject($row)
     * @method static \Bitrix\Conversion\Internals\EO_Context_Collection wakeUpCollection($rows)
     */
    class ContextTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Context_Result exec()
     * @method \Bitrix\Conversion\Internals\EO_Context fetchObject()
     * @method \Bitrix\Conversion\Internals\EO_Context_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Context_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Conversion\Internals\EO_Context fetchObject()
     * @method \Bitrix\Conversion\Internals\EO_Context_Collection fetchCollection()
     */
    class EO_Context_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Conversion\Internals\EO_Context createObject($setDefaultValues = true)
     * @method \Bitrix\Conversion\Internals\EO_Context_Collection createCollection()
     * @method \Bitrix\Conversion\Internals\EO_Context wakeUpObject($row)
     * @method \Bitrix\Conversion\Internals\EO_Context_Collection wakeUpCollection($rows)
     */
    class EO_Context_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_ContextAttribute
     * @see \Bitrix\Conversion\Internals\ContextAttributeTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getContextId()
     * @method \Bitrix\Conversion\Internals\EO_ContextAttribute setContextId(\int|\Bitrix\Main\DB\SqlExpression $contextId)
     * @method bool hasContextId()
     * @method bool isContextIdFilled()
     * @method bool isContextIdChanged()
     * @method \string getName()
     * @method \Bitrix\Conversion\Internals\EO_ContextAttribute setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string getValue()
     * @method \Bitrix\Conversion\Internals\EO_ContextAttribute setValue(\string|\Bitrix\Main\DB\SqlExpression $value)
     * @method bool hasValue()
     * @method bool isValueFilled()
     * @method bool isValueChanged()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Conversion\Internals\EO_ContextAttribute set($fieldName, $value)
     * @method \Bitrix\Conversion\Internals\EO_ContextAttribute reset($fieldName)
     * @method \Bitrix\Conversion\Internals\EO_ContextAttribute unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Conversion\Internals\EO_ContextAttribute wakeUp($data)
     */
    class EO_ContextAttribute
    {
        /* @var \Bitrix\Conversion\Internals\ContextAttributeTable */
        public static $dataClass = '\\Bitrix\\Conversion\\Internals\\ContextAttributeTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_ContextAttribute_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getContextIdList()
     * @method \string[] getNameList()
     * @method \string[] getValueList()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Conversion\Internals\EO_ContextAttribute $object)
     * @method bool has(\Bitrix\Conversion\Internals\EO_ContextAttribute $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Conversion\Internals\EO_ContextAttribute getByPrimary($primary)
     * @method \Bitrix\Conversion\Internals\EO_ContextAttribute[] getAll()
     * @method bool remove(\Bitrix\Conversion\Internals\EO_ContextAttribute $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Conversion\Internals\EO_ContextAttribute_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Conversion\Internals\EO_ContextAttribute current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_ContextAttribute_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Conversion\Internals\ContextAttributeTable */
        public static $dataClass = '\\Bitrix\\Conversion\\Internals\\ContextAttributeTable';
    }
    /**
     * @method static EO_ContextAttribute_Query query()
     * @method static EO_ContextAttribute_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_ContextAttribute_Result getById($id)
     * @method static EO_ContextAttribute_Result getList(array $parameters = array())
     * @method static EO_ContextAttribute_Entity getEntity()
     * @method static \Bitrix\Conversion\Internals\EO_ContextAttribute createObject($setDefaultValues = true)
     * @method static \Bitrix\Conversion\Internals\EO_ContextAttribute_Collection createCollection()
     * @method static \Bitrix\Conversion\Internals\EO_ContextAttribute wakeUpObject($row)
     * @method static \Bitrix\Conversion\Internals\EO_ContextAttribute_Collection wakeUpCollection($rows)
     */
    class ContextAttributeTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_ContextAttribute_Result exec()
     * @method \Bitrix\Conversion\Internals\EO_ContextAttribute fetchObject()
     * @method \Bitrix\Conversion\Internals\EO_ContextAttribute_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_ContextAttribute_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Conversion\Internals\EO_ContextAttribute fetchObject()
     * @method \Bitrix\Conversion\Internals\EO_ContextAttribute_Collection fetchCollection()
     */
    class EO_ContextAttribute_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Conversion\Internals\EO_ContextAttribute createObject($setDefaultValues = true)
     * @method \Bitrix\Conversion\Internals\EO_ContextAttribute_Collection createCollection()
     * @method \Bitrix\Conversion\Internals\EO_ContextAttribute wakeUpObject($row)
     * @method \Bitrix\Conversion\Internals\EO_ContextAttribute_Collection wakeUpCollection($rows)
     */
    class EO_ContextAttribute_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_ContextCounterDay
     * @see \Bitrix\Conversion\Internals\ContextCounterDayTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \Bitrix\Main\Type\Date getDay()
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay setDay(\Bitrix\Main\Type\Date|\Bitrix\Main\DB\SqlExpression $day)
     * @method bool hasDay()
     * @method bool isDayFilled()
     * @method bool isDayChanged()
     * @method \int getContextId()
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay setContextId(\int|\Bitrix\Main\DB\SqlExpression $contextId)
     * @method bool hasContextId()
     * @method bool isContextIdFilled()
     * @method bool isContextIdChanged()
     * @method \string getName()
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \float getValue()
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay setValue(\float|\Bitrix\Main\DB\SqlExpression $value)
     * @method bool hasValue()
     * @method bool isValueFilled()
     * @method bool isValueChanged()
     * @method \float remindActualValue()
     * @method \float requireValue()
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay resetValue()
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay unsetValue()
     * @method \float fillValue()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay set($fieldName, $value)
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay reset($fieldName)
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Conversion\Internals\EO_ContextCounterDay wakeUp($data)
     */
    class EO_ContextCounterDay
    {
        /* @var \Bitrix\Conversion\Internals\ContextCounterDayTable */
        public static $dataClass = '\\Bitrix\\Conversion\\Internals\\ContextCounterDayTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_ContextCounterDay_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \Bitrix\Main\Type\Date[] getDayList()
     * @method \int[] getContextIdList()
     * @method \string[] getNameList()
     * @method \float[] getValueList()
     * @method \float[] fillValue()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Conversion\Internals\EO_ContextCounterDay $object)
     * @method bool has(\Bitrix\Conversion\Internals\EO_ContextCounterDay $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay getByPrimary($primary)
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay[] getAll()
     * @method bool remove(\Bitrix\Conversion\Internals\EO_ContextCounterDay $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Conversion\Internals\EO_ContextCounterDay_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_ContextCounterDay_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Conversion\Internals\ContextCounterDayTable */
        public static $dataClass = '\\Bitrix\\Conversion\\Internals\\ContextCounterDayTable';
    }
    /**
     * @method static EO_ContextCounterDay_Query query()
     * @method static EO_ContextCounterDay_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_ContextCounterDay_Result getById($id)
     * @method static EO_ContextCounterDay_Result getList(array $parameters = array())
     * @method static EO_ContextCounterDay_Entity getEntity()
     * @method static \Bitrix\Conversion\Internals\EO_ContextCounterDay createObject($setDefaultValues = true)
     * @method static \Bitrix\Conversion\Internals\EO_ContextCounterDay_Collection createCollection()
     * @method static \Bitrix\Conversion\Internals\EO_ContextCounterDay wakeUpObject($row)
     * @method static \Bitrix\Conversion\Internals\EO_ContextCounterDay_Collection wakeUpCollection($rows)
     */
    class ContextCounterDayTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_ContextCounterDay_Result exec()
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay fetchObject()
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_ContextCounterDay_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay fetchObject()
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay_Collection fetchCollection()
     */
    class EO_ContextCounterDay_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay createObject($setDefaultValues = true)
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay_Collection createCollection()
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay wakeUpObject($row)
     * @method \Bitrix\Conversion\Internals\EO_ContextCounterDay_Collection wakeUpCollection($rows)
     */
    class EO_ContextCounterDay_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_ContextEntityItem
     * @see \Bitrix\Conversion\Internals\ContextEntityItemTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getContextId()
     * @method \Bitrix\Conversion\Internals\EO_ContextEntityItem setContextId(\int|\Bitrix\Main\DB\SqlExpression $contextId)
     * @method bool hasContextId()
     * @method bool isContextIdFilled()
     * @method bool isContextIdChanged()
     * @method \string getEntity()
     * @method \Bitrix\Conversion\Internals\EO_ContextEntityItem setEntity(\string|\Bitrix\Main\DB\SqlExpression $entity)
     * @method bool hasEntity()
     * @method bool isEntityFilled()
     * @method bool isEntityChanged()
     * @method \string getItem()
     * @method \Bitrix\Conversion\Internals\EO_ContextEntityItem setItem(\string|\Bitrix\Main\DB\SqlExpression $item)
     * @method bool hasItem()
     * @method bool isItemFilled()
     * @method bool isItemChanged()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Conversion\Internals\EO_ContextEntityItem set($fieldName, $value)
     * @method \Bitrix\Conversion\Internals\EO_ContextEntityItem reset($fieldName)
     * @method \Bitrix\Conversion\Internals\EO_ContextEntityItem unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Conversion\Internals\EO_ContextEntityItem wakeUp($data)
     */
    class EO_ContextEntityItem
    {
        /* @var \Bitrix\Conversion\Internals\ContextEntityItemTable */
        public static $dataClass = '\\Bitrix\\Conversion\\Internals\\ContextEntityItemTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_ContextEntityItem_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getContextIdList()
     * @method \string[] getEntityList()
     * @method \string[] getItemList()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Conversion\Internals\EO_ContextEntityItem $object)
     * @method bool has(\Bitrix\Conversion\Internals\EO_ContextEntityItem $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Conversion\Internals\EO_ContextEntityItem getByPrimary($primary)
     * @method \Bitrix\Conversion\Internals\EO_ContextEntityItem[] getAll()
     * @method bool remove(\Bitrix\Conversion\Internals\EO_ContextEntityItem $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Conversion\Internals\EO_ContextEntityItem_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Conversion\Internals\EO_ContextEntityItem current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_ContextEntityItem_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Conversion\Internals\ContextEntityItemTable */
        public static $dataClass = '\\Bitrix\\Conversion\\Internals\\ContextEntityItemTable';
    }
    /**
     * @method static EO_ContextEntityItem_Query query()
     * @method static EO_ContextEntityItem_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_ContextEntityItem_Result getById($id)
     * @method static EO_ContextEntityItem_Result getList(array $parameters = array())
     * @method static EO_ContextEntityItem_Entity getEntity()
     * @method static \Bitrix\Conversion\Internals\EO_ContextEntityItem createObject($setDefaultValues = true)
     * @method static \Bitrix\Conversion\Internals\EO_ContextEntityItem_Collection createCollection()
     * @method static \Bitrix\Conversion\Internals\EO_ContextEntityItem wakeUpObject($row)
     * @method static \Bitrix\Conversion\Internals\EO_ContextEntityItem_Collection wakeUpCollection($rows)
     */
    class ContextEntityItemTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_ContextEntityItem_Result exec()
     * @method \Bitrix\Conversion\Internals\EO_ContextEntityItem fetchObject()
     * @method \Bitrix\Conversion\Internals\EO_ContextEntityItem_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_ContextEntityItem_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Conversion\Internals\EO_ContextEntityItem fetchObject()
     * @method \Bitrix\Conversion\Internals\EO_ContextEntityItem_Collection fetchCollection()
     */
    class EO_ContextEntityItem_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Conversion\Internals\EO_ContextEntityItem createObject($setDefaultValues = true)
     * @method \Bitrix\Conversion\Internals\EO_ContextEntityItem_Collection createCollection()
     * @method \Bitrix\Conversion\Internals\EO_ContextEntityItem wakeUpObject($row)
     * @method \Bitrix\Conversion\Internals\EO_ContextEntityItem_Collection wakeUpCollection($rows)
     */
    class EO_ContextEntityItem_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /** @internal */
    class BaseContext
    {
        const EMPTY_CONTEXT_ID = 0;
        // Context with no attributes.
        protected $id = null;
        protected $attributes = array();
        /** Add value to counter. If counter not exists set counter to value. Save to database.
         * @param Date      $day   - counter date
         * @param string    $name  - counter name
         * @param int|float $value - number to add
         * @throws ArgumentTypeException
         * @throws SystemException
         */
        public function addCounter($day, $name, $value = null)
        {
        }
        /** Set attribute with value.
         * @param string                $name  - attribute name
         * @param string|int|float|null $value - attribute value
         * @throws ArgumentTypeException
         * @throws SystemException
         */
        public function setAttribute($name, $value = null)
        {
        }
        /** Save context & attributes to database */
        protected function save()
        {
        }
        private static function getSnapshot(array $attributes)
        {
        }
    }
}
namespace Bitrix\Conversion {
    final class ReportContext extends \Bitrix\Conversion\Internals\BaseContext
    {
        public function unsetAttribute($name, $value = null)
        {
        }
        /** @deprecated */
        private function getCountersDeprecated(array $filter = null, array $steps = null)
        {
        }
        /** @deprecated */
        public function getRatesDeprecated(array $rateTypes, array $filter = null, array $steps = null)
        {
        }
        private static function getRatesCommonDeprecated(array $rateTypes, array $counters, array $steps = null)
        {
        }
        // splits
        private function getSplitCountersDeprecated(array $splits, array $filter = null, array $steps = null)
        {
        }
        private static function subtructCounters(array &$one, array $two, array $steps = null)
        {
        }
        private static function subtructCountersOnce(array &$one, array $two)
        {
        }
        /** @deprecated */
        public function getSplitRatesDeprecated(array $splits, array $rateTypes, array $filter = null, array $steps = null)
        {
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private static function setAttributeFilter(\Bitrix\Main\Entity\Query $query, $field, $name, $value = null)
        {
        }
        public function getCounters(array $parameters = array())
        {
        }
        public function getRates(array $rateTypes, array $parameters = array())
        {
        }
        private static function getRatesRecursive(array $rateTypes, array $counters, $level)
        {
        }
    }
}
namespace Bitrix\Conversion\Internals {
    /** @internal */
    abstract class TypeManager
    {
        /** @internal */
        public static function getTypesInternal()
        {
        }
        public static function getTypes(array $filter = null)
        {
        }
        /** @deprecated */
        public static function isTypeActive($name)
        {
        }
    }
}
namespace Bitrix\Conversion {
    final class RateManager extends \Bitrix\Conversion\Internals\TypeManager
    {
        protected static $event = 'OnGetRateTypes';
        protected static $types = array();
        protected static $ready = false;
        protected static $checkModule = true;
        /** @internal */
        public static function getRatesCounters(array $types)
        {
        }
        public static function getRatesCalculated(array $types, array $counters)
        {
        }
    }
    final class AttributeGroupManager extends \Bitrix\Conversion\Internals\TypeManager
    {
        protected static $event = 'OnGetAttributeGroupTypes';
        protected static $types = array();
        protected static $ready = false;
        protected static $checkModule = false;
    }
    final class DayContext extends \Bitrix\Conversion\Internals\BaseContext
    {
        /**
         * Add value to counter. If counter not exists set counter to value.
         *
         * @param Date $day Counter date.
         * @param string $name Counter name.
         * @param int|float $value Number to add.
         * @return void
         */
        public function addCounter($day, $name, $value = null)
        {
        }
        /**
         * Add value to counter (once a day per person). If counter not exists set counter to value.
         *
         * @param string $name Counter name.
         * @param int|float $value Number to add.
         * @return void
         */
        public function addDayCounter($name, $value)
        {
        }
        /**
         * Add currency value to counter. If counter not exists set counter to value.
         *
         * @param string $name Counter name.
         * @param int|float|string $value Numeric value.
         * @param string $currency Currency code (eg: RUB).
         * @return void
         */
        public function addCurrencyCounter($name, $value, $currency)
        {
        }
        /**
         * Attach entity item to context.
         *
         * @param string $entity Entity type.
         * @param string|int $item Entity item ID.
         * @throws ArgumentTypeException
         * @return void
         */
        public function attachEntityItem($entity, $item)
        {
        }
        /**
         * Get context of attached entity item.
         *
         * @param string $entity Entity type.
         * @param string|int $item Entity item ID.
         * @return self
         */
        public static function getEntityItemInstance($entity, $item)
        {
        }
        /**
         * Returns context for given Site
         *
         * @param string $siteId Site ID.
         * @return self
         */
        public static function getSiteInstance($siteId)
        {
        }
        /** @var self $instance */
        private static $instance;
        private static $session;
        /**
         * Get day context singleton instance.
         *
         * @return self
         */
        public static function getInstance()
        {
        }
        /** @internal */
        private function setCookie()
        {
        }
        /** @internal */
        public static function saveInstance()
        {
        }
        /** @internal */
        public static function getVarName()
        {
        }
        /** @internal */
        public static function getSiteId()
        {
        }
    }
    final class AttributeManager extends \Bitrix\Conversion\Internals\TypeManager
    {
        protected static $event = 'OnGetAttributeTypes';
        protected static $types = array();
        protected static $ready = false;
        protected static $checkModule = true;
        public static function getGroupedTypes()
        {
        }
    }
    final class Config
    {
        private static $baseCurrency;
        public static function getBaseCurrency()
        {
        }
        /** @internal
         * @param string $currency - currency code
         */
        public static function setBaseCurrency($currency)
        {
        }
        /** @deprecated */
        public static function convertToBaseCurrency($value, $currency)
        {
        }
        /** @deprecated */
        public static function formatToBaseCurrency($value, $format = null)
        {
        }
        /** @deprecated */
        public static function getBaseCurrencyUnit()
        {
        }
        private static $modules = array();
        public static function getModules()
        {
        }
        /** @internal */
        public static function setModules(array $modules)
        {
        }
        public static function isModuleActive($name)
        {
        }
    }
}
namespace Bitrix\Conversion\Internals {
    /** @internal */
    final class MobileDetect
    {
        /**
         * Mobile detection type.
         *
         * @deprecated since version 2.6.9
         */
        const DETECTION_TYPE_MOBILE = 'mobile';
        /**
         * Extended detection type.
         *
         * @deprecated since version 2.6.9
         */
        const DETECTION_TYPE_EXTENDED = 'extended';
        /**
         * A frequently used regular expression to extract version #s.
         *
         * @deprecated since version 2.6.9
         */
        const VER = '([\\w._\\+]+)';
        /**
         * Top-level device.
         */
        const MOBILE_GRADE_A = 'A';
        /**
         * Mid-level device.
         */
        const MOBILE_GRADE_B = 'B';
        /**
         * Low-level device.
         */
        const MOBILE_GRADE_C = 'C';
        /**
         * Stores the version number of the current release.
         */
        const VERSION = '2.8.13';
        /**
         * A type for the version() method indicating a string return value.
         */
        const VERSION_TYPE_STRING = 'text';
        /**
         * A type for the version() method indicating a float return value.
         */
        const VERSION_TYPE_FLOAT = 'float';
        /**
         * A cache for resolved matches
         * @var array
         */
        protected $cache = array();
        /**
         * The User-Agent HTTP header is stored in here.
         * @var string
         */
        protected $userAgent = null;
        /**
         * HTTP headers in the PHP-flavor. So HTTP_USER_AGENT and SERVER_SOFTWARE.
         * @var array
         */
        protected $httpHeaders = array();
        /**
         * The matching Regex.
         * This is good for debug.
         * @var string
         */
        protected $matchingRegex = null;
        /**
         * The matches extracted from the regex expression.
         * This is good for debug.
         * @var string
         */
        protected $matchesArray = null;
        /**
         * The detection type, using self::DETECTION_TYPE_MOBILE or self::DETECTION_TYPE_EXTENDED.
         *
         * @deprecated since version 2.6.9
         *
         * @var string
         */
        protected $detectionType = self::DETECTION_TYPE_MOBILE;
        /**
         * HTTP headers that trigger the 'isMobile' detection
         * to be true.
         *
         * @var array
         */
        protected static $mobileHeaders = array(
            'HTTP_ACCEPT' => array('matches' => array(
                // Opera Mini; @reference: http://dev.opera.com/articles/view/opera-binary-markup-language/
                'application/x-obml2d',
                // BlackBerry devices.
                'application/vnd.rim.html',
                'text/vnd.wap.wml',
                'application/vnd.wap.xhtml+xml',
            )),
            'HTTP_X_WAP_PROFILE' => null,
            'HTTP_X_WAP_CLIENTID' => null,
            'HTTP_WAP_CONNECTION' => null,
            'HTTP_PROFILE' => null,
            // Reported by Opera on Nokia devices (eg. C3).
            'HTTP_X_OPERAMINI_PHONE_UA' => null,
            'HTTP_X_NOKIA_GATEWAY_ID' => null,
            'HTTP_X_ORANGE_ID' => null,
            'HTTP_X_VODAFONE_3GPDPCONTEXT' => null,
            'HTTP_X_HUAWEI_USERID' => null,
            // Reported by Windows Smartphones.
            'HTTP_UA_OS' => null,
            // Reported by Verizon, Vodafone proxy system.
            'HTTP_X_MOBILE_GATEWAY' => null,
            // Seen this on HTC Sensation. SensationXE_Beats_Z715e.
            'HTTP_X_ATT_DEVICEID' => null,
            // Seen this on a HTC.
            'HTTP_UA_CPU' => array('matches' => array('ARM')),
        );
        /**
         * List of mobile devices (phones).
         *
         * @var array
         */
        protected static $phoneDevices = array(
            'iPhone' => '\\biPhone\\b|\\biPod\\b',
            // |\biTunes
            'BlackBerry' => 'BlackBerry|\\bBB10\\b|rim[0-9]+',
            'HTC' => 'HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\\bEVO\\b|T-Mobile G1|Z520m',
            'Nexus' => 'Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 6',
            // @todo: Is 'Dell Streak' a tablet or a phone? ;)
            'Dell' => 'Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35|\\b001DL\\b|\\b101DL\\b|\\bGS01\\b',
            'Motorola' => 'Motorola|DROIDX|DROID BIONIC|\\bDroid\\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925',
            'Samsung' => 'Samsung|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K',
            'LG' => '\\bLG\\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802)',
            'Sony' => 'SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533',
            'Asus' => 'Asus.*Galaxy|PadFone.*Mobile',
            // http://www.micromaxinfo.com/mobiles/smartphones
            // Added because the codes might conflict with Acer Tablets.
            'Micromax' => 'Micromax.*\\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\\b',
            // @todo Complete the regex.
            'Palm' => 'PalmSource|Palm',
            // avantgo|blazer|elaine|hiptop|plucker|xiino ;
            'Vertu' => 'Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature',
            // Just for fun ;)
            // http://www.pantech.co.kr/en/prod/prodList.do?gbrand=VEGA (PANTECH)
            // Most of the VEGA devices are legacy. PANTECH seem to be newer devices based on Android.
            'Pantech' => 'PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790',
            // http://www.fly-phone.com/devices/smartphones/ ; Included only smartphones.
            'Fly' => 'IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250',
            // http://fr.wikomobile.com
            'Wiko' => 'KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM',
            'iMobile' => 'i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)',
            // Added simvalley mobile just for fun. They have some interesting devices.
            // http://www.simvalley.fr/telephonie---gps-_22_telephonie-mobile_telephones_.html
            'SimValley' => '\\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\\b',
            // Wolfgang - a brand that is sold by Aldi supermarkets.
            // http://www.wolfgangmobile.com/
            'Wolfgang' => 'AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q',
            'Alcatel' => 'Alcatel',
            'Nintendo' => 'Nintendo 3DS',
            // http://en.wikipedia.org/wiki/Amoi
            'Amoi' => 'Amoi',
            // http://en.wikipedia.org/wiki/INQ
            'INQ' => 'INQ',
            // @Tapatalk is a mobile app; http://support.tapatalk.com/threads/smf-2-0-2-os-and-browser-detection-plugin-and-tapatalk.15565/#post-79039
            'GenericPhone' => 'Tapatalk|PDA;|SAGEM|\\bmmp\\b|pocket|\\bpsp\\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\\bwap\\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser',
        );
        /**
         * List of tablet devices.
         *
         * @var array
         */
        protected static $tabletDevices = array(
            'iPad' => 'iPad|iPad.*Mobile',
            // @todo: check for mobile friendly emails topic.
            'NexusTablet' => 'Android.*Nexus[\\s]+(7|9|10)|^.*Android.*Nexus(?:(?!Mobile).)*$',
            'SamsungTablet' => 'SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-I9205|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237P|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T',
            // SCH-P709|SCH-P729|SM-T2558 - Samsung Mega - treat them like a regular phone.
            // http://docs.aws.amazon.com/silk/latest/developerguide/user-agent.html
            'Kindle' => 'Kindle|Silk.*Accelerated|Android.*\\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI)\\b',
            // Only the Surface tablets with Windows RT are considered mobile.
            // http://msdn.microsoft.com/en-us/library/ie/hh920767(v=vs.85).aspx
            'SurfaceTablet' => 'Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)',
            // http://shopping1.hp.com/is-bin/INTERSHOP.enfinity/WFS/WW-USSMBPublicStore-Site/en_US/-/USD/ViewStandardCatalog-Browse?CatalogCategoryID=JfIQ7EN5lqMAAAEyDcJUDwMT
            'HPTablet' => 'HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10',
            // Watch out for PadFone, see #132.
            // http://www.asus.com/de/Tablets_Mobile/Memo_Pad_Products/
            'AsusTablet' => '^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\\bK00F\\b|\\bK00C\\b|\\bK00E\\b|\\bK00L\\b|TX201LA|ME176C|ME102A|\\bM80TA\\b|ME372CL|ME560CG|ME372CG|ME302KL',
            'BlackBerryTablet' => 'PlayBook|RIM Tablet',
            'HTCtablet' => 'HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410',
            'MotorolaTablet' => 'xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617',
            'NookTablet' => 'Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2',
            // http://www.acer.ro/ac/ro/RO/content/drivers
            // http://www.packardbell.co.uk/pb/en/GB/content/download (Packard Bell is part of Acer)
            // http://us.acer.com/ac/en/US/content/group/tablets
            // http://www.acer.de/ac/de/DE/content/models/tablets/
            // Can conflict with Micromax and Motorola phones codes.
            'AcerTablet' => 'Android.*; \\b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\\b|W3-810|\\bA3-A10\\b|\\bA3-A11\\b',
            // http://eu.computers.toshiba-europe.com/innovation/family/Tablets/1098744/banner_id/tablet_footerlink/
            // http://us.toshiba.com/tablets/tablet-finder
            // http://www.toshiba.co.jp/regza/tablet/
            'ToshibaTablet' => 'Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO',
            // http://www.nttdocomo.co.jp/english/service/developer/smart_phone/technical_info/spec/index.html
            // http://www.lg.com/us/tablets
            'LGTablet' => '\\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\\b',
            'FujitsuTablet' => 'Android.*\\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\\b',
            // Prestigio Tablets http://www.prestigio.com/support
            'PrestigioTablet' => 'PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD',
            // http://support.lenovo.com/en_GB/downloads/default.page?#
            'LenovoTablet' => 'Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)',
            // http://www.dell.com/support/home/us/en/04/Products/tab_mob/tablets
            'DellTablet' => 'Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7',
            // http://www.yarvik.com/en/matrix/tablets/
            'YarvikTablet' => 'Android.*\\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\\b',
            'MedionTablet' => 'Android.*\\bOYO\\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB',
            'ArnovaTablet' => 'AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2',
            // http://www.intenso.de/kategorie_en.php?kategorie=33
            // @todo: http://www.nbhkdz.com/read/b8e64202f92a2df129126bff.html - investigate
            'IntensoTablet' => 'INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004',
            // IRU.ru Tablets http://www.iru.ru/catalog/soho/planetable/
            'IRUTablet' => 'M702pro',
            'MegafonTablet' => 'MegaFon V9|\\bZTE V9\\b|Android.*\\bMT7A\\b',
            // http://www.e-boda.ro/tablete-pc.html
            'EbodaTablet' => 'E-Boda (Supreme|Impresspeed|Izzycomm|Essential)',
            // http://www.allview.ro/produse/droseries/lista-tablete-pc/
            'AllViewTablet' => 'Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)',
            // http://wiki.archosfans.com/index.php?title=Main_Page
            'ArchosTablet' => '\\b(101G9|80G9|A101IT)\\b|Qilive 97R|Archos5|\\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\\b',
            // http://www.ainol.com/plugin.php?identifier=ainol&module=product
            'AinolTablet' => 'NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark',
            // @todo: inspect http://esupport.sony.com/US/p/select-system.pl?DIRECTOR=DRIVER
            // Readers http://www.atsuhiro-me.net/ebook/sony-reader/sony-reader-web-browser
            // http://www.sony.jp/support/tablet/
            'SonyTablet' => 'Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP612',
            // http://www.support.philips.com/support/catalog/worldproducts.jsp?userLanguage=en&userCountry=cn&categoryid=3G_LTE_TABLET_SU_CN_CARE&title=3G%20tablets%20/%20LTE%20range&_dyncharset=UTF-8
            'PhilipsTablet' => '\\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\\b',
            // db + http://www.cube-tablet.com/buy-products.html
            'CubeTablet' => 'Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT',
            // http://www.cobyusa.com/?p=pcat&pcat_id=3001
            'CobyTablet' => 'MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010',
            // http://www.match.net.cn/products.asp
            'MIDTablet' => 'M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733',
            // http://www.msi.com/support
            // @todo Research the Windows Tablets.
            'MSITablet' => 'MSI \\b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\\b',
            // @todo http://www.kyoceramobile.com/support/drivers/
            //    'KyoceraTablet' => null,
            // @todo http://intexuae.com/index.php/category/mobile-devices/tablets-products/
            //    'IntextTablet' => null,
            // http://pdadb.net/index.php?m=pdalist&list=SMiT (NoName Chinese Tablets)
            // http://www.imp3.net/14/show.php?itemid=20454
            'SMiTTablet' => 'Android.*(\\bMID\\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)',
            // http://www.rock-chips.com/index.php?do=prod&pid=2
            'RockChipTablet' => 'Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A',
            // http://www.fly-phone.com/devices/tablets/ ; http://www.fly-phone.com/service/
            'FlyTablet' => 'IQ310|Fly Vision',
            // http://www.bqreaders.com/gb/tablets-prices-sale.html
            'bqTablet' => '(bq)?.*(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris E10)|Maxwell.*Lite|Maxwell.*Plus',
            // http://www.huaweidevice.com/worldwide/productFamily.do?method=index&directoryId=5011&treeId=3290
            // http://www.huaweidevice.com/worldwide/downloadCenter.do?method=index&directoryId=3372&treeId=0&tb=1&type=software (including legacy tablets)
            'HuaweiTablet' => 'MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim',
            // Nec or Medias Tab
            'NecTablet' => '\\bN-06D|\\bN-08D',
            // Pantech Tablets: http://www.pantechusa.com/phones/
            'PantechTablet' => 'Pantech.*P4100',
            // Broncho Tablets: http://www.broncho.cn/ (hard to find)
            'BronchoTablet' => 'Broncho.*(N701|N708|N802|a710)',
            // http://versusuk.com/support.html
            'VersusTablet' => 'TOUCHPAD.*[78910]|\\bTOUCHTAB\\b',
            // http://www.zync.in/index.php/our-products/tablet-phablets
            'ZyncTablet' => 'z1000|Z99 2G|z99|z930|z999|z990|z909|Z919|z900',
            // http://www.positivoinformatica.com.br/www/pessoal/tablet-ypy/
            'PositivoTablet' => 'TB07STA|TB10STA|TB07FTA|TB10FTA',
            // https://www.nabitablet.com/
            'NabiTablet' => 'Android.*\\bNabi',
            'KoboTablet' => 'Kobo Touch|\\bK080\\b|\\bVox\\b Build|\\bArc\\b Build',
            // French Danew Tablets http://www.danew.com/produits-tablette.php
            'DanewTablet' => 'DSlide.*\\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\\b',
            // Texet Tablets and Readers http://www.texet.ru/tablet/
            'TexetTablet' => 'NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE',
            // Avoid detecting 'PLAYSTATION 3' as mobile.
            'PlaystationTablet' => 'Playstation.*(Portable|Vita)',
            // http://www.trekstor.de/surftabs.html
            'TrekstorTablet' => 'ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab',
            // http://www.pyleaudio.com/Products.aspx?%2fproducts%2fPersonal-Electronics%2fTablets
            'PyleAudioTablet' => '\\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\\b',
            // http://www.advandigital.com/index.php?link=content-product&jns=JP001
            // because of the short codenames we have to include whitespaces to reduce the possible conflicts.
            'AdvanTablet' => 'Android.* \\b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\\b ',
            // http://www.danytech.com/category/tablet-pc
            'DanyTechTablet' => 'Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1',
            // http://www.galapad.net/product.html
            'GalapadTablet' => 'Android.*\\bG1\\b',
            // http://www.micromaxinfo.com/tablet/funbook
            'MicromaxTablet' => 'Funbook|Micromax.*\\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\\b',
            // http://www.karbonnmobiles.com/products_tablet.php
            'KarbonnTablet' => 'Android.*\\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\\b',
            // http://www.myallfine.com/Products.asp
            'AllFineTablet' => 'Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide',
            // http://www.proscanvideo.com/products-search.asp?itemClass=TABLET&itemnmbr=
            'PROSCANTablet' => '\\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\\b',
            // http://www.yonesnav.com/products/products.php
            'YONESTablet' => 'BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026',
            // http://www.cjshowroom.com/eproducts.aspx?classcode=004001001
            // China manufacturer makes tablets for different small brands (eg. http://www.zeepad.net/index.html)
            'ChangJiaTablet' => 'TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503',
            // http://www.gloryunion.cn/products.asp
            // http://www.allwinnertech.com/en/apply/mobile.html
            // http://www.ptcl.com.pk/pd_content.php?pd_id=284 (EVOTAB)
            // @todo: Softwiner tablets?
            // aka. Cute or Cool tablets. Not sure yet, must research to avoid collisions.
            'GUTablet' => 'TX-A1301|TX-M9002|Q702|kf026',
            // A12R|D75A|D77|D79|R83|A95|A106C|R15|A75|A76|D71|D72|R71|R73|R77|D82|R85|D92|A97|D92|R91|A10F|A77F|W71F|A78F|W78F|W81F|A97F|W91F|W97F|R16G|C72|C73E|K72|K73|R96G
            // http://www.pointofview-online.com/showroom.php?shop_mode=product_listing&category_id=118
            'PointOfViewTablet' => 'TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10',
            // http://www.overmax.pl/pl/katalog-produktow,p8/tablety,c14/
            // @todo: add more tests.
            'OvermaxTablet' => 'OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)',
            // http://hclmetablet.com/India/index.php
            'HCLTablet' => 'HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync',
            // http://www.edigital.hu/Tablet_es_e-book_olvaso/Tablet-c18385.html
            'DPSTablet' => 'DPS Dream 9|DPS Dual 7',
            // http://www.visture.com/index.asp
            'VistureTablet' => 'V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10',
            // http://www.mijncresta.nl/tablet
            'CrestaTablet' => 'CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989',
            // MediaTek - http://www.mediatek.com/_en/01_products/02_proSys.php?cata_sn=1&cata1_sn=1&cata2_sn=309
            'MediatekTablet' => '\\bMT8125|MT8389|MT8135|MT8377\\b',
            // Concorde tab
            'ConcordeTablet' => 'Concorde([ ]+)?Tab|ConCorde ReadMan',
            // GoClever Tablets - http://www.goclever.com/uk/products,c1/tablet,c5/
            'GoCleverTablet' => 'GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042',
            // Modecom Tablets - http://www.modecom.eu/tablets/portal/
            'ModecomTablet' => 'FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003',
            // Vonino Tablets - http://www.vonino.eu/tablets
            'VoninoTablet' => '\\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\\bQ8\\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\\b',
            // ECS Tablets - http://www.ecs.com.tw/ECSWebSite/Product/Product_Tablet_List.aspx?CategoryID=14&MenuID=107&childid=M_107&LanID=0
            'ECSTablet' => 'V07OT2|TM105A|S10OT1|TR10CS1',
            // Storex Tablets - http://storex.fr/espace_client/support.html
            // @note: no need to add all the tablet codes since they are guided by the first regex.
            'StorexTablet' => 'eZee[_\']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab',
            // Generic Vodafone tablets.
            'VodafoneTablet' => 'SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7',
            // French tablets - Essentiel B http://www.boulanger.fr/tablette_tactile_e-book/tablette_tactile_essentiel_b/cl_68908.htm?multiChoiceToDelete=brand&mc_brand=essentielb
            // Aka: http://www.essentielb.fr/
            'EssentielBTablet' => 'Smart[ \']?TAB[ ]+?[0-9]+|Family[ \']?TAB2',
            // Ross & Moor - http://ross-moor.ru/
            'RossMoorTablet' => 'RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711',
            // i-mobile http://product.i-mobilephone.com/Mobile_Device
            'iMobileTablet' => 'i-mobile i-note',
            // http://www.tolino.de/de/vergleichen/
            'TolinoTablet' => 'tolino tab [0-9.]+|tolino shine',
            // AudioSonic - a Kmart brand
            // http://www.kmart.com.au/webapp/wcs/stores/servlet/Search?langId=-1&storeId=10701&catalogId=10001&categoryId=193001&pageSize=72&currentPage=1&searchCategory=193001%2b4294965664&sortBy=p_MaxPrice%7c1
            'AudioSonicTablet' => '\\bC-22Q|T7-QC|T-17B|T-17P\\b',
            // AMPE Tablets - http://www.ampe.com.my/product-category/tablets/
            // @todo: add them gradually to avoid conflicts.
            'AMPETablet' => 'Android.* A78 ',
            // Skk Mobile - http://skkmobile.com.ph/product_tablets.php
            'SkkTablet' => 'Android.* (SKYPAD|PHOENIX|CYCLOPS)',
            // Tecno Mobile (only tablet) - http://www.tecno-mobile.com/index.php/product?filterby=smart&list_order=all&page=1
            'TecnoTablet' => 'TECNO P9',
            // JXD (consoles & tablets) - http://jxd.hk/products.asp?selectclassid=009008&clsid=3
            'JXDTablet' => 'Android.*\\b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\\b',
            // i-Joy tablets - http://www.i-joy.es/en/cat/products/tablets/
            'iJoyTablet' => 'Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)',
            // http://www.intracon.eu/tablet
            'FX2Tablet' => 'FX2 PAD7|FX2 PAD10',
            // http://www.xoro.de/produkte/
            // @note: Might be the same brand with 'Simply tablets'
            'XoroTablet' => 'KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151',
            // http://www1.viewsonic.com/products/computing/tablets/
            'ViewsonicTablet' => 'ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a',
            // http://www.odys.de/web/internet-tablet_en.html
            'OdysTablet' => 'LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\\bXELIO\\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10',
            // http://www.captiva-power.de/products.html#tablets-en
            'CaptivaTablet' => 'CAPTIVA PAD',
            // IconBIT - http://www.iconbit.com/products/tablets/
            'IconbitTablet' => 'NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S',
            // http://www.teclast.com/topic.php?channelID=70&topicID=140&pid=63
            'TeclastTablet' => 'T98 4G|\\bP80\\b|\\bX90HD\\b|X98 Air|X98 Air 3G|\\bX89\\b|P80 3G|\\bX80h\\b|P98 Air|\\bX89HD\\b|P98 3G|\\bP90HD\\b|P89 3G|X98 3G|\\bP70h\\b|P79HD 3G|G18d 3G|\\bP79HD\\b|\\bP89s\\b|\\bA88\\b|\\bP10HD\\b|\\bP19HD\\b|G18 3G|\\bP78HD\\b|\\bA78\\b|\\bP75\\b|G17s 3G|G17h 3G|\\bP85t\\b|\\bP90\\b|\\bP11\\b|\\bP98t\\b|\\bP98HD\\b|\\bG18d\\b|\\bP85s\\b|\\bP11HD\\b|\\bP88s\\b|\\bA80HD\\b|\\bA80se\\b|\\bA10h\\b|\\bP89\\b|\\bP78s\\b|\\bG18\\b|\\bP85\\b|\\bA70h\\b|\\bA70\\b|\\bG17\\b|\\bP18\\b|\\bA80s\\b|\\bA11s\\b|\\bP88HD\\b|\\bA80h\\b|\\bP76s\\b|\\bP76h\\b|\\bP98\\b|\\bA10HD\\b|\\bP78\\b|\\bP88\\b|\\bA11\\b|\\bA10t\\b|\\bP76a\\b|\\bP76t\\b|\\bP76e\\b|\\bP85HD\\b|\\bP85a\\b|\\bP86\\b|\\bP75HD\\b|\\bP76v\\b|\\bA12\\b|\\bP75a\\b|\\bA15\\b|\\bP76Ti\\b|\\bP81HD\\b|\\bA10\\b|\\bT760VE\\b|\\bT720HD\\b|\\bP76\\b|\\bP73\\b|\\bP71\\b|\\bP72\\b|\\bT720SE\\b|\\bC520Ti\\b|\\bT760\\b|\\bT720VE\\b|T720-3GE|T720-WiFi',
            // Onda - http://www.onda-tablet.com/buy-android-onda.html?dir=desc&limit=all&order=price
            'OndaTablet' => '\\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\\b[\\s]+',
            'JaytechTablet' => 'TPC-PA762',
            'BlaupunktTablet' => 'Endeavour 800NG|Endeavour 1010',
            // http://www.digma.ru/support/download/
            // @todo: Ebooks also (if requested)
            'DigmaTablet' => '\\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\\b',
            // http://www.evolioshop.com/ro/tablete-pc.html
            // http://www.evolio.ro/support/downloads_static.html?cat=2
            // @todo: Research some more
            'EvolioTablet' => 'ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\\bEvotab\\b|\\bNeura\\b',
            // @todo http://www.lavamobiles.com/tablets-data-cards
            'LavaTablet' => 'QPAD E704|\\bIvoryS\\b|E-TAB IVORY',
            // https://www.celkonmobiles.com/?_a=categoryphones&sid=2
            'CelkonTablet' => 'CT695|CT888|CT[\\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\\bCT-1\\b',
            // http://www.wolderelectronics.com/productos/manuales-y-guias-rapidas/categoria-2-miTab
            'WolderTablet' => 'miTab \\b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\\b',
            // http://www.mi.com/en
            'MiTablet' => '\\bMI PAD\\b|\\bHM NOTE 1W\\b',
            // http://www.nbru.cn/index.html
            'NibiruTablet' => 'Nibiru M1|Nibiru Jupiter One',
            // http://navroad.com/products/produkty/tablety/
            'NexoTablet' => 'NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI',
            // http://www.datawind.com/ubislate/
            'UbislateTablet' => 'UbiSlate[\\s]?7C',
            // http://www.pocketbook-int.com/ru/support
            'PocketBookTablet' => 'Pocketbook',
            // http://www.tesco.com/direct/hudl/
            'Hudl' => 'Hudl HT7S3',
            // http://www.telstra.com.au/home-phone/thub-2/
            'TelstraTablet' => 'T-Hub2',
            'GenericTablet' => 'Android.*\\b97D\\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\\bA7EB\\b|CatNova8|A1_07|CT704|CT1002|\\bM721\\b|rk30sdk|\\bEVOTAB\\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\\bM6pro\\b|CT1020W|arc 10HD|\\bJolla\\b',
        );
        /**
         * List of mobile Operating Systems.
         *
         * @var array
         */
        protected static $operatingSystems = array(
            'AndroidOS' => 'Android',
            'BlackBerryOS' => 'blackberry|\\bBB10\\b|rim tablet os',
            'PalmOS' => 'PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino',
            'SymbianOS' => 'Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\\bS60\\b',
            // @reference: http://en.wikipedia.org/wiki/Windows_Mobile
            'WindowsMobileOS' => 'Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Window Mobile|Windows Phone [0-9.]+|WCE;',
            // @reference: http://en.wikipedia.org/wiki/Windows_Phone
            // http://wifeng.cn/?r=blog&a=view&id=106
            // http://nicksnettravels.builttoroam.com/post/2011/01/10/Bogus-Windows-Phone-7-User-Agent-String.aspx
            // http://msdn.microsoft.com/library/ms537503.aspx
            'WindowsPhoneOS' => 'Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;',
            'iOS' => '\\biPhone.*Mobile|\\biPod|\\biPad',
            // http://en.wikipedia.org/wiki/MeeGo
            // @todo: research MeeGo in UAs
            'MeeGoOS' => 'MeeGo',
            // http://en.wikipedia.org/wiki/Maemo
            // @todo: research Maemo in UAs
            'MaemoOS' => 'Maemo',
            'JavaOS' => 'J2ME/|\\bMIDP\\b|\\bCLDC\\b',
            // '|Java/' produces bug #135
            'webOS' => 'webOS|hpwOS',
            'badaOS' => '\\bBada\\b',
            'BREWOS' => 'BREW',
        );
        /**
         * List of mobile User Agents.
         *
         * @var array
         */
        protected static $browsers = array(
            // @reference: https://developers.google.com/chrome/mobile/docs/user-agent
            'Chrome' => '\\bCrMo\\b|CriOS|Android.*Chrome/[.0-9]* (Mobile)?',
            'Dolfin' => '\\bDolfin\\b',
            'Opera' => 'Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR/[0-9.]+|Coast/[0-9.]+',
            'Skyfire' => 'Skyfire',
            'IE' => 'IEMobile|MSIEMobile',
            // |Trident/[.0-9]+
            'Firefox' => 'fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile',
            'Bolt' => 'bolt',
            'TeaShark' => 'teashark',
            'Blazer' => 'Blazer',
            // @reference: http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html#//apple_ref/doc/uid/TP40006517-SW3
            'Safari' => 'Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari',
            // http://en.wikipedia.org/wiki/Midori_(web_browser)
            //'Midori'          => 'midori',
            'Tizen' => 'Tizen',
            'UCBrowser' => 'UC.*Browser|UCWEB',
            'baiduboxapp' => 'baiduboxapp',
            'baidubrowser' => 'baidubrowser',
            // https://github.com/serbanghita/Mobile-Detect/issues/7
            'DiigoBrowser' => 'DiigoBrowser',
            // http://www.puffinbrowser.com/index.php
            'Puffin' => 'Puffin',
            // http://mercury-browser.com/index.html
            'Mercury' => '\\bMercury\\b',
            // http://en.wikipedia.org/wiki/Obigo_Browser
            'ObigoBrowser' => 'Obigo',
            // http://en.wikipedia.org/wiki/NetFront
            'NetFront' => 'NF-Browser',
            // @reference: http://en.wikipedia.org/wiki/Minimo
            // http://en.wikipedia.org/wiki/Vision_Mobile_Browser
            'GenericBrowser' => 'NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger',
        );
        /**
         * Utilities.
         *
         * @var array
         */
        protected static $utilities = array(
            // Experimental. When a mobile device wants to switch to 'Desktop Mode'.
            // http://scottcate.com/technology/windows-phone-8-ie10-desktop-or-mobile/
            // https://github.com/serbanghita/Mobile-Detect/issues/57#issuecomment-15024011
            // https://developers.facebook.com/docs/sharing/best-practices
            'Bot' => 'Googlebot|facebookexternalhit|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor',
            'MobileBot' => 'Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker/M1A1-R2D2',
            'DesktopMode' => 'WPDesktop',
            'TV' => 'SonyDTV|HbbTV',
            // experimental
            'WebKit' => '(webkit)[ /]([\\w.]+)',
            // @todo: Include JXD consoles.
            'Console' => '\\b(Nintendo|Nintendo WiiU|Nintendo 3DS|PLAYSTATION|Xbox)\\b',
            'Watch' => 'SM-V700',
        );
        /**
         * All possible HTTP headers that represent the
         * User-Agent string.
         *
         * @var array
         */
        protected static $uaHttpHeaders = array(
            // The default User-Agent string.
            'HTTP_USER_AGENT',
            // Header can occur on devices using Opera Mini.
            'HTTP_X_OPERAMINI_PHONE_UA',
            // Vodafone specific header: http://www.seoprinciple.com/mobile-web-community-still-angry-at-vodafone/24/
            'HTTP_X_DEVICE_USER_AGENT',
            'HTTP_X_ORIGINAL_USER_AGENT',
            'HTTP_X_SKYFIRE_PHONE',
            'HTTP_X_BOLT_PHONE_UA',
            'HTTP_DEVICE_STOCK_UA',
            'HTTP_X_UCBROWSER_DEVICE_UA',
        );
        /**
         * The individual segments that could exist in a User-Agent string. VER refers to the regular
         * expression defined in the constant self::VER.
         *
         * @var array
         */
        protected static $properties = array(
            // Build
            'Mobile' => 'Mobile/[VER]',
            'Build' => 'Build/[VER]',
            'Version' => 'Version/[VER]',
            'VendorID' => 'VendorID/[VER]',
            // Devices
            'iPad' => 'iPad.*CPU[a-z ]+[VER]',
            'iPhone' => 'iPhone.*CPU[a-z ]+[VER]',
            'iPod' => 'iPod.*CPU[a-z ]+[VER]',
            //'BlackBerry'    => array('BlackBerry[VER]', 'BlackBerry [VER];'),
            'Kindle' => 'Kindle/[VER]',
            // Browser
            'Chrome' => array('Chrome/[VER]', 'CriOS/[VER]', 'CrMo/[VER]'),
            'Coast' => array('Coast/[VER]'),
            'Dolfin' => 'Dolfin/[VER]',
            // @reference: https://developer.mozilla.org/en-US/docs/User_Agent_Strings_Reference
            'Firefox' => 'Firefox/[VER]',
            'Fennec' => 'Fennec/[VER]',
            // http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx
            // https://msdn.microsoft.com/en-us/library/ie/hh869301(v=vs.85).aspx
            'IE' => array('IEMobile/[VER];', 'IEMobile [VER]', 'MSIE [VER];', 'Trident/[0-9.]+;.*rv:[VER]'),
            // http://en.wikipedia.org/wiki/NetFront
            'NetFront' => 'NetFront/[VER]',
            'NokiaBrowser' => 'NokiaBrowser/[VER]',
            'Opera' => array(' OPR/[VER]', 'Opera Mini/[VER]', 'Version/[VER]'),
            'Opera Mini' => 'Opera Mini/[VER]',
            'Opera Mobi' => 'Version/[VER]',
            'UC Browser' => 'UC Browser[VER]',
            'MQQBrowser' => 'MQQBrowser/[VER]',
            'MicroMessenger' => 'MicroMessenger/[VER]',
            'baiduboxapp' => 'baiduboxapp/[VER]',
            'baidubrowser' => 'baidubrowser/[VER]',
            'Iron' => 'Iron/[VER]',
            // @note: Safari 7534.48.3 is actually Version 5.1.
            // @note: On BlackBerry the Version is overwriten by the OS.
            'Safari' => array('Version/[VER]', 'Safari/[VER]'),
            'Skyfire' => 'Skyfire/[VER]',
            'Tizen' => 'Tizen/[VER]',
            'Webkit' => 'webkit[ /][VER]',
            // Engine
            'Gecko' => 'Gecko/[VER]',
            'Trident' => 'Trident/[VER]',
            'Presto' => 'Presto/[VER]',
            // OS
            'iOS' => ' \\bi?OS\\b [VER][ ;]{1}',
            'Android' => 'Android [VER]',
            'BlackBerry' => array('BlackBerry[\\w]+/[VER]', 'BlackBerry.*Version/[VER]', 'Version/[VER]'),
            'BREW' => 'BREW [VER]',
            'Java' => 'Java/[VER]',
            // @reference: http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/08/29/introducing-the-ie9-on-windows-phone-mango-user-agent-string.aspx
            // @reference: http://en.wikipedia.org/wiki/Windows_NT#Releases
            'Windows Phone OS' => array('Windows Phone OS [VER]', 'Windows Phone [VER]'),
            'Windows Phone' => 'Windows Phone [VER]',
            'Windows CE' => 'Windows CE/[VER]',
            // http://social.msdn.microsoft.com/Forums/en-US/windowsdeveloperpreviewgeneral/thread/6be392da-4d2f-41b4-8354-8dcee20c85cd
            'Windows NT' => 'Windows NT [VER]',
            'Symbian' => array('SymbianOS/[VER]', 'Symbian/[VER]'),
            'webOS' => array('webOS/[VER]', 'hpwOS/[VER];'),
        );
        /**
         * Construct an instance of this class.
         *
         * @param array  $headers   Specify the headers as injection. Should be PHP _SERVER flavored.
         *                          If left empty, will use the global _SERVER['HTTP_*'] vars instead.
         * @param string $userAgent Inject the User-Agent header. If null, will use HTTP_USER_AGENT
         *                          from the $headers array instead.
         */
        public function __construct(array $headers = null, $userAgent = null)
        {
        }
        /**
         * Get the current script version.
         * This is useful for the demo.php file,
         * so people can check on what version they are testing
         * for mobile devices.
         *
         * @return string The version number in semantic version format.
         */
        public static function getScriptVersion()
        {
        }
        /**
         * Set the HTTP Headers. Must be PHP-flavored. This method will reset existing headers.
         *
         * @param array $httpHeaders The headers to set. If null, then using PHP's _SERVER to extract
         *                           the headers. The default null is left for backwards compatibilty.
         */
        public function setHttpHeaders($httpHeaders = null)
        {
        }
        /**
         * Retrieves the HTTP headers.
         *
         * @return array
         */
        public function getHttpHeaders()
        {
        }
        /**
         * Retrieves a particular header. If it doesn't exist, no exception/error is caused.
         * Simply null is returned.
         *
         * @param string $header The name of the header to retrieve. Can be HTTP compliant such as
         *                       "User-Agent" or "X-Device-User-Agent" or can be php-esque with the
         *                       all-caps, HTTP_ prefixed, underscore seperated awesomeness.
         *
         * @return string|null The value of the header.
         */
        public function getHttpHeader($header)
        {
        }
        public function getMobileHeaders()
        {
        }
        /**
         * Get all possible HTTP headers that
         * can contain the User-Agent string.
         *
         * @return array List of HTTP headers.
         */
        public function getUaHttpHeaders()
        {
        }
        /**
         * Set the User-Agent to be used.
         *
         * @param string $userAgent The user agent string to set.
         *
         * @return string|null
         */
        public function setUserAgent($userAgent = null)
        {
        }
        /**
         * Retrieve the User-Agent.
         *
         * @return string|null The user agent if it's set.
         */
        public function getUserAgent()
        {
        }
        /**
         * Set the detection type. Must be one of self::DETECTION_TYPE_MOBILE or
         * self::DETECTION_TYPE_EXTENDED. Otherwise, nothing is set.
         *
         * @deprecated since version 2.6.9
         *
         * @param string $type The type. Must be a self::DETECTION_TYPE_* constant. The default
         *                     parameter is null which will default to self::DETECTION_TYPE_MOBILE.
         */
        public function setDetectionType($type = null)
        {
        }
        public function getMatchingRegex()
        {
        }
        public function getMatchesArray()
        {
        }
        /**
         * Retrieve the list of known phone devices.
         *
         * @return array List of phone devices.
         */
        public static function getPhoneDevices()
        {
        }
        /**
         * Retrieve the list of known tablet devices.
         *
         * @return array List of tablet devices.
         */
        public static function getTabletDevices()
        {
        }
        /**
         * Alias for getBrowsers() method.
         *
         * @return array List of user agents.
         */
        public static function getUserAgents()
        {
        }
        /**
         * Retrieve the list of known browsers. Specifically, the user agents.
         *
         * @return array List of browsers / user agents.
         */
        public static function getBrowsers()
        {
        }
        /**
         * Retrieve the list of known utilities.
         *
         * @return array List of utilities.
         */
        public static function getUtilities()
        {
        }
        /**
         * Method gets the mobile detection rules. This method is used for the magic methods $detect->is*().
         *
         * @deprecated since version 2.6.9
         *
         * @return array All the rules (but not extended).
         */
        public static function getMobileDetectionRules()
        {
        }
        /**
         * Method gets the mobile detection rules + utilities.
         * The reason this is separate is because utilities rules
         * don't necessary imply mobile. This method is used inside
         * the new $detect->is('stuff') method.
         *
         * @deprecated since version 2.6.9
         *
         * @return array All the rules + extended.
         */
        public function getMobileDetectionRulesExtended()
        {
        }
        /**
         * Retrieve the current set of rules.
         *
         * @deprecated since version 2.6.9
         *
         * @return array
         */
        public function getRules()
        {
        }
        /**
         * Retrieve the list of mobile operating systems.
         *
         * @return array The list of mobile operating systems.
         */
        public static function getOperatingSystems()
        {
        }
        /**
         * Check the HTTP headers for signs of mobile.
         * This is the fastest mobile check possible; it's used
         * inside isMobile() method.
         *
         * @return bool
         */
        public function checkHttpHeadersForMobile()
        {
        }
        /**
         * Magic overloading method.
         *
         * @method boolean is[...]()
         * @param  string                 $name
         * @param  array                  $arguments
         * @return mixed
         * @throws BadMethodCallException when the method doesn't exist and doesn't start with 'is'
         */
        public function __call($name, $arguments)
        {
        }
        /**
         * Find a detection rule that matches the current User-agent.
         *
         * @param  null    $userAgent deprecated
         * @return boolean
         */
        protected function matchDetectionRulesAgainstUA($userAgent = null)
        {
        }
        /**
         * Search for a certain key in the rules array.
         * If the key is found the try to match the corresponding
         * regex against the User-Agent.
         *
         * @param string $key
         *
         * @return boolean
         */
        protected function matchUAAgainstKey($key)
        {
        }
        /**
         * Check if the device is mobile.
         * Returns true if any type of mobile device detected, including special ones
         * @param  null $userAgent   deprecated
         * @param  null $httpHeaders deprecated
         * @return bool
         */
        public function isMobile($userAgent = null, $httpHeaders = null)
        {
        }
        /**
         * Check if the device is a tablet.
         * Return true if any type of tablet device is detected.
         *
         * @param  string $userAgent   deprecated
         * @param  array  $httpHeaders deprecated
         * @return bool
         */
        public function isTablet($userAgent = null, $httpHeaders = null)
        {
        }
        /**
         * This method checks for a certain property in the
         * userAgent.
         * @todo: The httpHeaders part is not yet used.
         *
         * @param  string        $key
         * @param  string        $userAgent   deprecated
         * @param  string        $httpHeaders deprecated
         * @return bool|int|null
         */
        public function is($key, $userAgent = null, $httpHeaders = null)
        {
        }
        /**
         * Some detection rules are relative (not standard),
         * because of the diversity of devices, vendors and
         * their conventions in representing the User-Agent or
         * the HTTP headers.
         *
         * This method will be used to check custom regexes against
         * the User-Agent string.
         *
         * @param $regex
         * @param  string $userAgent
         * @return bool
         *
         * @todo: search in the HTTP headers too.
         */
        public function match($regex, $userAgent = null)
        {
        }
        /**
         * Get the properties array.
         *
         * @return array
         */
        public static function getProperties()
        {
        }
        /**
         * Prepare the version number.
         *
         * @todo Remove the error supression from str_replace() call.
         *
         * @param string $ver The string version, like "2.6.21.2152";
         *
         * @return float
         */
        public function prepareVersionNo($ver)
        {
        }
        /**
         * Check the version of the given property in the User-Agent.
         * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)
         *
         * @param string $propertyName The name of the property. See self::getProperties() array
         *                             keys for all possible properties.
         * @param string $type         Either self::VERSION_TYPE_STRING to get a string value or
         *                             self::VERSION_TYPE_FLOAT indicating a float value. This parameter
         *                             is optional and defaults to self::VERSION_TYPE_STRING. Passing an
         *                             invalid parameter will default to the this type as well.
         *
         * @return string|float The version of the property we are trying to extract.
         */
        public function version($propertyName, $type = self::VERSION_TYPE_STRING)
        {
        }
        /**
         * Retrieve the mobile grading, using self::MOBILE_GRADE_* constants.
         *
         * @return string One of the self::MOBILE_GRADE_* constants.
         */
        public function mobileGrade()
        {
        }
    }
    /** @internal */
    final class Handlers
    {
        public static function onGetCounterTypes()
        {
        }
        public static function onGetAttributeTypes()
        {
        }
        public static function onSetDayContextAttributes(\Bitrix\Conversion\DayContext $dayContext)
        {
        }
        public static function onGetAttributeGroupTypes()
        {
        }
        public static function onProlog()
        {
        }
    }
}
namespace Bitrix\Conversion {
    final class CounterManager extends \Bitrix\Conversion\Internals\TypeManager
    {
        protected static $event = 'OnGetCounterTypes';
        protected static $types = array();
        protected static $ready = false;
        protected static $checkModule = true;
    }
    final class Utils
    {
        public static function convertToBaseCurrency($value, $currency)
        {
        }
        public static function formatToBaseCurrency($value, $format = null)
        {
        }
        /** @deprecated */
        public static function getBaseCurrencyUnit()
        {
        }
    }
    /** @internal */
    final class GeneratorContext extends \Bitrix\Conversion\Internals\BaseContext
    {
        private function setAttributes(array $attributes)
        {
        }
        private static function appendCounters(array &$one, array $two)
        {
        }
        private static function appendDayCounters(array &$one, array $two)
        {
        }
        public static function generateInitialData(\Bitrix\Main\Type\Date $from)
        {
        }
    }
}
namespace {
    class advertising extends \CModule
    {
        var $MODULE_ID = "advertising";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        var $SHOW_SUPER_ADMIN_GROUP_RIGHTS = "Y";
        function advertising()
        {
        }
        function DoInstall()
        {
        }
        function InstallFiles()
        {
        }
        function InstallDB()
        {
        }
        function InstallEvents()
        {
        }
        function DoUninstall()
        {
        }
        function UnInstallFiles()
        {
        }
        function UnInstallDB()
        {
        }
        function UnInstallEvents()
        {
        }
        function GetModuleRightList()
        {
        }
    }
    class AdvertisingBannerView extends \CBitrixComponent
    {
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
    }
    class AdvertisingBanner extends \CBitrixComponent
    {
        /** @var CPHPCache $obCache */
        protected $obCache;
        protected $cache_id;
        protected $cache_path;
        protected $templateCachedData;
        protected $arBanners;
        protected $arVars;
        protected $templateProps;
        protected $templateFiles;
        protected $bannerIndex = 0;
        public function onPrepareComponentParams($params)
        {
        }
        protected function loadBanners()
        {
        }
        protected function registerBannerTags()
        {
        }
        protected function loadPreview()
        {
        }
        protected function getBannerSize()
        {
        }
        protected function setCache()
        {
        }
        protected function checkModules()
        {
        }
        public function executeComponent()
        {
        }
        public function doFinalActions()
        {
        }
    }
    /*****************************************************************
    				Êëàññ "Ðåêëàìíûé êîíòðàêò"
    *****************************************************************/
    class CAdvContract_all
    {
        public static function err_mess()
        {
        }
        public static function GetNextSort()
        {
        }
        /*****************************************************************
        				Ãðóïïà ôóíêöèé ïî ðàáîòå ñ ðîëÿìè íà ìîäóëü
        
        	Èäåíòèôèêàòîðû ðîëåé:
        
        	D - äîñòóï çàêðûò
        	R - ðåêëàìîäàòåëü
        	T - ìåíåäæåð áàííåðîâ
        	V - äåìî-äîñòóï
        	W - àäìèíèñòðàòîð ðåêëàìû
        
        	*****************************************************************/
        public static function GetDeniedRoleID()
        {
        }
        public static function GetAdvertiserRoleID()
        {
        }
        public static function GetManagerRoleID()
        {
        }
        public static function GetDemoRoleID()
        {
        }
        public static function GetAdminRoleID()
        {
        }
        // âîçâðàùàåò true åñëè çàäàííûé ïîëüçîâàòåëü èìååò çàäàííóþ ðîëü íà ìîäóëü
        public static function HaveRole($role, $USER_ID = \false)
        {
        }
        // true - åñëè ïîëüçîâàòåëü èìååò ðîëü "ðåêëàìîäàòåëü"
        // false - â ïðîòèâíîì ñëó÷àå
        public static function IsAdvertiser($USER_ID = \false)
        {
        }
        // true - åñëè ïîëüçîâàòåëü èìååò ðîëü "àäìèíèñòðàòîð ðåêëàìû"
        // false - â ïðîòèâíîì ñëó÷àå
        public static function IsAdmin($USER_ID = \false)
        {
        }
        // true - åñëè ïîëüçîâàòåëü èìååò ðîëü "äåìî-äîñòóï"
        // false - â ïðîòèâíîì ñëó÷àå
        public static function IsDemo($USER_ID = \false)
        {
        }
        // true - åñëè ïîëüçîâàòåëü èìååò ïðàâî íà ìîäóëü "ìåíåäæåð áàííåðîâ" è âûøå
        // false - â ïðîòèâíîì ñëó÷àå
        public static function IsManager($USER_ID = \false)
        {
        }
        // âîçâðàùàåò ìàññèâ ID ãðóïï äëÿ êîòîðûõ çàäàíà ðîëü
        // $role - èäåíòèôèêàòîð ðîëè
        public static function GetGroupsByRole($role)
        {
        }
        // âîçâðàùàåò ìàññèâ ïîëüçîâàòåëåé èìåþùèõ ïðàâî íà ìîäóëü "ðåêëàìîäàòåëü"
        public static function GetAdvertisersArray()
        {
        }
        // âîçâðàùàåò ìàññèâ EMail àäðåñîâ âñåõ ïîëüçîâàòåëåé èìåþùèõ çàäàííóþ ðîëü
        public static function GetEmailArrayByRole($role)
        {
        }
        // âîçâðàùàåò ìàññèâ EMail'îâ âñåõ ïîëüçîâàòåëåé èìåþùèõ ðîëü "àäìèíèñòðàòîð"
        public static function GetAdminEmails()
        {
        }
        // âîçâðàùàåò ìàññèâ EMail'îâ âñåõ ïîëüçîâàòåëåé èìåþùèõ ðîëü "ìåíåäæåð áàííåðîâ"
        public static function GetManagerEmails()
        {
        }
        /*****************************************************************
        			Ãðóïïà ôóíêöèé ïî ðàáîòå ñ ïðàâàìè íà êîíòðàêò
        
        	Èäåíòèôèêàòîðû ïðàâ:
        
        	VIEW - ïðîñìîòð íàñòðîåê êîíòðàêòà, ïðîñìîòð âñåõ áàííåðîâ êîíòðàêòà è èõ ãðàôèêîâ
        	ADD - ïðîñìîòð íàñòðîåê êîíòðàêòà, óïðàâëåíèå áàííåðàìè êîíòðàêòà, ïðîñìîòð ãðàôèêîâ áàííåðîâ
        	EDIT - óïðàâëåíèå ÷àñòüþ ïîëåé êîíòðàêòà, ïðîñìîòð âñåõ áàííåðîâ êîíòðàêòà è èõ ãðàôèêîâ
        
        	*****************************************************************/
        // ïîëó÷åíèå ìàññèâà ìàêñèìàëüíûõ ïðàâ äîñòóïà íà êîíòðàêò
        public static function GetMaxPermissionsArray()
        {
        }
        // âîçâðàùàåò ìàññèâû EMail'îâ âñåõ ïîëüçîâàòåëåé èìåþùèõ äîñòóï ê çàäàííîìó êîíòðàêòó (âëàäåëüöû êîíòðàêòà)
        public static function GetOwnerEmails($CONTRACT_ID, &$OWNER_EMAIL, &$ADD_EMAIL, &$VIEW_EMAIL, &$EDIT_EMAIL)
        {
        }
        // ïîëó÷åíèå ìàññèâà ïðàâ òåêóùåãî ïîëüçîâàòåëÿ ïî âñåì êîíòðàêòàì
        public static function GetUserPermissions($CONTRACT_ID = 0, $USER_ID = \false)
        {
        }
        // true - åñëè ïîëüçîâàòåëü èìååò äîñòóï ê êîíòðàêòó
        // false - â ïðîòèâíîì ñëó÷àå
        public static function IsOwner($CONTRACT_ID, $USER_ID = \false)
        {
        }
        // ïîëó÷åíèå ìàññèâà âñåõ ïðàâ äîñòóïà ïî çàäàííîìó êîíòðàêòó
        public static function GetContractPermissions($CONTRACT_ID)
        {
        }
        /*****************************************************************
        					Ãðóïïà ôóíêöèé ïî îòïðàâêå ïî÷òû
        	*****************************************************************/
        public static function SendEMail($arContract, $mess = "")
        {
        }
        public static function SendInfo()
        {
        }
        /*****************************************************************
        				Ãðóïïà ôóíêöèé ïî óïðàâëåíèþ êîíòðàêòîì
        	*****************************************************************/
        public static function CheckFilter($arFilter)
        {
        }
        // ïîëó÷àåì ìàññèâ âðåìåíè è äíåé íåäåëè ñâÿçàííûõ ñ êîíòðàêòîì
        public static function GetWeekdayArray($CONTRACT_ID)
        {
        }
        // ïîëó÷àåì ìàññèâ òèïîâ ñâÿçàííûõ ñ êîíòðàêòîì
        public static function GetTypeArray($CONTRACT_ID)
        {
        }
        // ïîëó÷àåì ìàññèâ ÿçûêîâ ñâÿçàííûõ ñ êîíòðàêòîì
        public static function GetSiteArray($CONTRACT_ID)
        {
        }
        // ïîëó÷àåì ìàññèâ ñòðàíèö ñâÿçàííûõ ñ êîíòðàêòîì
        public static function GetPageArray($CONTRACT_ID, $SHOW = "SHOW")
        {
        }
        // ïîëó÷àåì êîíòðàêò ïî ID
        public static function GetByID($CONTRACT_ID, $CHECK_RIGHTS = "Y")
        {
        }
        // ïðîâåðêà ïîëåé ïðè ìîäèôèêàöèè êîíòðàêòà
        public static function CheckFields($arFields, $CONTRACT_ID, $CHECK_RIGHTS = "Y")
        {
        }
        // äîáàâëÿåì íîâûé êîíòðàêò èëè ìîäèôèöèðóåì ñóùåñòâóþùèé
        public static function Set($arFields, $CONTRACT_ID, $CHECK_RIGHTS = "Y")
        {
        }
        // óäàëåíèå êîíòðàêòà
        public static function Delete($CONTRACT_ID, $CHECK_RIGHTS = "Y")
        {
        }
        // óäàëåíèå ñâÿçè êîíòðàêòà ñî ñòðàíèöàìè
        public static function DeletePageLink($CONTRACT_ID, $where = "")
        {
        }
        // óäàëåíèå ñâÿçè êîíòðàêòà ñ ñàéòàìè
        public static function DeleteSiteLink($CONTRACT_ID)
        {
        }
        // óäàëåíèå ñâÿçè êîíòðàêòà ñ òèïàìè áàííåðîâ
        public static function DeleteTypeLink($CONTRACT_ID)
        {
        }
        // óäàëåíèå ñâÿçè êîíòðàêòà ñ ïîëüçîâàòåëÿìè
        public static function DeleteUserLink($CONTRACT_ID, $where = "")
        {
        }
        // óäàëåíèå ñâÿçè êîíòðàêòà ñî âðåìåíåì è äíÿìè íåäåëè
        public static function DeleteWeekdayLink($CONTRACT_ID)
        {
        }
        //Ïîëó÷åíèå ñòàòèñòèêè ïî êîíòðàêòàì
        public static function GetStatList($by, $order, $arFilter)
        {
        }
    }
    /*****************************************************************
    					Êëàññ "Ðåêëàìíûé áàííåð"
    *****************************************************************/
    class CAdvBanner_all
    {
        public static function err_mess()
        {
        }
        public static function GetCurUri()
        {
        }
        public static function SetCurUri($uri = \false)
        {
        }
        // ïîëó÷èì áàííåð ïî ID
        public static function GetByID($BANNER_ID, $CHECK_RIGHTS = "Y")
        {
        }
        // êîïèðîâàíèå áàííåðà
        public static function Copy($BANNER_ID, $CHECK_RIGHTS = "Y")
        {
        }
        // óäàëåíèå áàííåðà
        public static function Delete($BANNER_ID, $CHECK_RIGHTS = "Y")
        {
        }
        // óäàëåíèå ñâÿçè áàííåðà ñî âðåìåíåì è äíÿìè íåäåëè
        public static function DeleteWeekdayLink($BANNER_ID)
        {
        }
        // óäàëåíèå ñâÿçè áàííåðà ñ ÿçûêàìè
        public static function DeleteSiteLink($BANNER_ID)
        {
        }
        // óäàëåíèå ñâÿçè áàííåðà ñî ñòðàíîé
        public static function DeleteCountryLink($BANNER_ID)
        {
        }
        // óäàëåíèå ñâÿçè áàííåðà ñî ðåêëàìíûìè êàìïàíèÿìè ñòàòèñòèêè
        public static function DeleteStatAdvLink($BANNER_ID)
        {
        }
        // óäàëåíèå ñâÿçè áàííåðà ñî ñòðàíèöàìè
        public static function DeletePageLink($BANNER_ID, $where = "")
        {
        }
        public static function DeleteGroupLink($BANNER_ID)
        {
        }
        public static function GetStatusList()
        {
        }
        // ïîëó÷àåì ìàññèâ ñòðàíèö ñâÿçàííûõ ñ áàííåðîì
        public static function GetPageArray($BANNER_ID, $SHOW = "SHOW")
        {
        }
        // ïîëó÷àåì ìàññèâ ãðóïï ïîëüçîâàòåëåé ñâÿçàííûõ ñ áàííåðîì
        public static function GetGroupArray($BANNER_ID)
        {
        }
        // ïîëó÷àåì ìàññèâ ÿçûêîâ ñâÿçàííûõ ñ áàííåðîì
        public static function GetSiteArray($BANNER_ID)
        {
        }
        // ïîëó÷àåì ìàññèâ ñòðàí ñâÿçàííûõ ñ áàííåðîì
        public static function GetCountryArray($BANNER_ID, $WHAT = "COUNTRY")
        {
        }
        // ïîëó÷àåì ìàññèâ âðåìåíè è äíåé íåäåëè ñâÿçàííûõ ñ áàííåðîì
        public static function GetWeekdayArray($BANNER_ID)
        {
        }
        // ïîëó÷àåì ìàññèâ ðåêëàìíûõ êàìïàíèé ñâÿçàííûõ ñ áàííåðîì
        public static function GetStatAdvArray($BANNER_ID)
        {
        }
        // ïðîâåðÿåì ïîëÿ ïðè ìîäèôèêàöèè áàííåðà
        public static function CheckFields($arFields, $BANNER_ID, $CHECK_RIGHTS = "Y")
        {
        }
        public static function CheckFile($arFile, $iMaxSize = 0, $iMaxWidth = 0, $iMaxHeight = 0, $access_typies = array(), $bForceMD5 = \false, $bSkipExt = \false)
        {
        }
        public static function makeFileArray($data, $del = \false, $description = \null, $options = array())
        {
        }
        private static function makeFileArrayFromId($file_id, $description = \null, $options = array())
        {
        }
        private static function makeFileArrayFromPath($file_path, $description = \null, $options = array())
        {
        }
        private static function makeFileArrayFromArray($file_array, $description = \null, $options = array())
        {
        }
        // äîáàâëÿåì íîâûé áàííåð èëè ìîäèôèöèðóåì ñóùåñòâóþùèé
        public static function Set($arFields, $BANNER_ID, $CHECK_RIGHTS = "Y")
        {
        }
        public static function SetKeywords($keywords, $TYPE_SID = "", $LOGIC = "DESIRED")
        {
        }
        public static function GetKeywords($TYPE_SID = "", $LOGIC = "", $EXACT_MATCH = "")
        {
        }
        public static function ResetKeywords($TYPE_SID = "", $LOGIC = "", $EXACT_MATCH = "")
        {
        }
        public static function SetRequiredKeywords($keywords, $TYPE_SID = "")
        {
        }
        public static function SetDesiredKeywords($keywords, $TYPE_SID = "")
        {
        }
        public static function GetRequiredKeywords($TYPE_SID = "", $EXACT_MATCH = "")
        {
        }
        public static function GetDesiredKeywords($TYPE_SID = "", $EXACT_MATCH = "")
        {
        }
        public static function arr_comp_uniform($a, $b)
        {
        }
        // âîçâðàùàåò ìàññèâ îïèñûâàþùèé ïðîèçâîëüíûé áàííåð
        public static function GetRandom($TYPE_SID)
        {
        }
        // âîçâðàùàåò ìàññèâ, îïèñûâàþùèé $quantity ïðîèçâîëüíûõ áàííåðîâ
        public static function GetRandomArray($TYPE_SID, $quantity = 1)
        {
        }
        // Uniformity coefficient
        public static function GetUniformityCoef($arBanner)
        {
        }
        public static function __innerExtractBitrixDates($arBanner)
        {
        }
        // Returns TimeDifference in seconds beetween FROM,TO Dates of a banner
        public static function CalculateTimeDiff($arBanner)
        {
        }
        // Calculate progress in 0.0<x<1.0 format of banner rotation
        public static function CalculateTimeProgress($arBanner)
        {
        }
        public static function CalculateRotationProgress($arBanner)
        {
        }
        // Calculates speed
        //function CalculateActualRotationSpeed()
        //function GetAverageRotationSpeed()
        public static function PrepareHTML($text, $arBanner)
        {
        }
        public static function GetRedirectURL($url, $arBanner)
        {
        }
        public static function ReplaceURL($text, $arBanner)
        {
        }
        // âîçâðàùàåò HTML áàííåðà ïî ìàññèâó
        public static function GetHTML($arBanner, $bNoIndex = \false)
        {
        }
        public static function FixShowAll()
        {
        }
        // ôèêñèðóåì ïîêàç áàííåðà
        public static function FixShow($arBanner)
        {
        }
        public static function BeforeRestartBuffer()
        {
        }
        // óñòàíàâëèâàåì cookie ïîñåòèòåëþ î ïðîñìîòðå áàííåðà
        public static function SetCookie($arBanner, &$inc_banner_counter, &$inc_contract_counter)
        {
        }
        // âîçâðàùàåò HTML ïðîèçâîëüíîãî áàííåðà ïî òèïó
        public static function Show($TYPE_SID, $HTML_BEFORE = "", $HTML_AFTER = "")
        {
        }
        public static function GetEditIcons($arBanner, $TYPE_SID = "", $arIcons = array())
        {
        }
        public static function CheckDynamicFilter($arFilter)
        {
        }
        // âîçâðàùàåò ìàññèâ îïèñûâàþùèé äèíàìèêó áàííåðîâ
        public static function GetDynamicList($arFilter, &$arrLegend, &$is_filtered)
        {
        }
        public static function GetStatList($by, $order, $arFilter)
        {
        }
    }
    /*****************************************************************
    					Êëàññ "Òèï áàííåðà"
    *****************************************************************/
    class CAdvType_all
    {
        public static function err_mess()
        {
        }
        public static function CheckFilter($arFilter)
        {
        }
        // ïîëó÷àåì ñëåäóþùèé ïîðÿäîê ñîðòèðîâêè
        public static function GetNextSort()
        {
        }
        public static function CheckFields($arFields, $OLD_SID, $CHECK_RIGHTS)
        {
        }
        // äîáàâëÿåì íîâûé òèï èëè ìîäèôèöèðóåì ñóùåñòâóþùèé
        public static function Set($arFields, $OLD_SID, $CHECK_RIGHTS = "Y")
        {
        }
        // ïîëó÷àåì òèï áàííåðà ïî ID
        public static function GetByID($TYPE_SID)
        {
        }
        // óäàëÿåì òèï áàííåðà
        public static function Delete($TYPE_SID, $CHECK_RIGHTS = "Y")
        {
        }
        // óäàëÿåì ñâÿçü òèïà ñ êîíòðàêòîì
        public static function DeleteContractLink($TYPE_SID)
        {
        }
        // ïîëó÷àåì ñïèñîê òèïîâ áàííåðîâ
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered, $CHECK_RIGHTS = "Y")
        {
        }
    }
    /********************************************
    	ñîâìåñòèìîñòü ñî ñòàðîé âåðñèåé ìîäóëÿ
    *********************************************/
    class CAdvertising
    {
        public static function GetAdv($TYPE_SID)
        {
        }
        public static function ClickAdv($BANNER_ID)
        {
        }
    }
    /*****************************************************************
    				Êëàññ "Ðåêëàìíûé êîíòðàêò"
    *****************************************************************/
    class CAdvContract extends \CAdvContract_all
    {
        public static function err_mess()
        {
        }
        // ïîëó÷àåì ñïèñîê êîíòðàêòîâ
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered, $CHECK_RIGHTS = "Y")
        {
        }
    }
    /*****************************************************************
    				Êëàññ "Ðåêëàìíûé áàííåð"
    *****************************************************************/
    class CAdvBanner extends \CAdvBanner_all
    {
        public static function err_mess()
        {
        }
        public static function Update($arFields, $BANNER_ID)
        {
        }
        public static function getCTRSQL()
        {
        }
        public static function addBindField($field, $bannerField, &$modifyStatus)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered, $CHECK_RIGHTS = "Y")
        {
        }
        // ôèêñèðóåì êëèê ïî èçîáðàæåíèþ áàííåðà
        public static function Click($BANNER_ID)
        {
        }
        // ôîðìèðóåò ìàññèâ âåñîâ âñåõ âîçìîæíûõ áàííåðîâ äëÿ òåêóùåé ñòðàíèöû
        public static function GetPageWeights_RS()
        {
        }
        // ïåðèîäè÷åñêè âûçûâàåìàÿ ôóíêöèÿ î÷èùàþùàÿ óñòàðåâøèå äàííûå ïî äèíàìèêå áàííåðà ïî äíÿì
        public static function CleanUpDynamics()
        {
        }
        public static function CleanUpAllDynamics()
        {
        }
        public static function GetDynamicList_SQL($strSqlSearch)
        {
        }
    }
    /*****************************************************************
    					Êëàññ "Òèï áàííåðà"
    *****************************************************************/
    class CAdvType extends \CAdvType_all
    {
        public static function err_mess()
        {
        }
    }
}
namespace Bitrix\Advertising\Internals {
    final class ConversionHandlers
    {
        /**
         * Returns conversion counter types
         *
         * @return array
         */
        public static function onGetCounterTypes()
        {
        }
        /**
         * Returns conversion rate types
         *
         * @return array
         */
        public static function onGetRateTypes()
        {
        }
        /**
         * Increments conversion banner click day counter
         *
         * @param int $id Banner ID.
         * @param array $fields Banner fields.
         * @return void
         */
        public static function onBannerClick($id, $fields)
        {
        }
    }
}
namespace {
    class report extends \CModule
    {
        var $MODULE_ID = "report";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $errors;
        function report()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Views\Component {
    /**
     * Class BaseComponent created for prevent duplicating code for all component widget views
     * @package Bitrix\Report\VisualConstructor\Views\Component
     */
    abstract class BaseViewComponent extends \CBitrixComponent
    {
        /**
         * Common execute method for all views of type component.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
}
namespace {
    class ReportVisualConstructorWidgetContentNumber extends \Bitrix\Report\VisualConstructor\Views\Component\BaseViewComponent
    {
    }
    class ReportVisualConstructorBoardHeader extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
        private function isFrameMode()
        {
        }
    }
}
namespace Bitrix\Report\Internals {
    abstract class Controller
    {
        const EVENT_ON_BEFORE_ACTION = 'onBeforeAction';
        const ERROR_REQUIRED_PARAMETER = 'REPORT_CONTROLLER_22001';
        const ERROR_UNKNOWN_ACTION = 'REPORT_CONTROLLER_22002';
        const STATUS_SUCCESS = 'success';
        const STATUS_DENIED = 'denied';
        const STATUS_ERROR = 'error';
        const STATUS_NEED_AUTH = 'need_auth';
        const STATUS_INVALID_SIGN = 'invalid_sign';
        const STATUS_RESTRICTION = 'restriction';
        /** @var string */
        protected $action;
        /** @var  array */
        protected $actionDescription;
        /** @var  string */
        protected $realActionName;
        /** @var  ErrorCollection */
        protected $errorCollection;
        /** @var  \Bitrix\Main\HttpRequest */
        protected $request;
        /**
         * Constructor Controller.
         */
        public function __construct()
        {
        }
        /**
         * Initializes controller.
         * This method is invoked at the end of constructor.
         * @return void
         */
        protected function init()
        {
        }
        /**
         * Terminates controller and application.
         * This method replaces "die()" or "exit()" and ensures life cycle of application.
         * @return void
         */
        protected function end()
        {
        }
        /**
         * Executes controller by specific action.
         * This method contains all steps of life cycle controller.
         * @return void
         */
        public function exec()
        {
        }
        /**
         * Triggers the event {{static::EVENT_ON_BEFORE_ACTION . $action}}.
         * This method is invoked right before an action is executed.
         * In case the action should not run, event handler have to return EvenResult with type EventResult::ERROR.
         *
         * @param string $action Action name.
         * @return bool
         */
        protected function triggerOnBeforeAction($action)
        {
        }
        /**
         * Gets current user.
         * @return array|bool|\CAllUser|\CUser
         */
        protected function getUser()
        {
        }
        /**
         * Sends JSON response and terminates controller.
         * @param mixed $response
         * @param null|array $params
         * @return void
         */
        protected function sendJsonResponse($response, $params = null)
        {
        }
        /**
         * Sends JSON response with status "error" and with errors and terminates controller.
         * @return void
         */
        protected function sendJsonErrorResponse()
        {
        }
        /**
         * Sends JSON response with status "denied" and terminates controller.
         * @param string $message Message.
         * @return void
         */
        protected function sendJsonAccessDeniedResponse($message = '')
        {
        }
        /**
         * Sends JSON response with status "invalid_sign" and terminates controller.
         * @param string $message Message.
         * @return void
         */
        protected function sendJsonInvalidSignResponse($message = '')
        {
        }
        /**
         * Sends JSON response with status "success" and mixed data, and terminates controller.
         * @param array $response Data to response.
         * @return void
         */
        protected function sendJsonSuccessResponse(array $response = array())
        {
        }
        /**
         * Sends response and terminates controller.
         * Automatically restart buffer.
         * @param mixed $response Mixed data to response.
         * @return void
         */
        protected function sendResponse($response)
        {
        }
        /**
         * Getting array of errors.
         * @return Error[]
         */
        public function getErrors()
        {
        }
        /**
         * Getting once error with the necessary code.
         * @param string $code Code of error.
         * @return Error[]
         */
        public function getErrorByCode($code)
        {
        }
        /**
         * Resolves action and description of action, which need to run.
         * @see listActions().
         * @return $this
         */
        protected function resolveAction()
        {
        }
        //todo refactor BaseComponent + Controller normalizeListOfAction, resolveAction.
        //you can use composition in BaseComponent
        /**
         * Normalizes list of action to general view.
         * @param array $listOfActions List of action (@see listActions()).
         * @return array
         */
        protected function normalizeListOfAction(array $listOfActions)
        {
        }
        /**
         * Normalizes action description.
         *
         * Default description:
         * array(
         *			'method' => array('GET'), //allowed methods to run action.
         *			'name' => $action, //action which will run
         *			'check_csrf_token' => false, // check csrf token
         *			'redirect_on_auth' => true, // if user doesn't authorize then will redirect on login page.
         *			'close_session' => false, //execute session_close() before action.
         *	)
         *
         * @param string $action Action name.
         * @param array|string $description Action description.
         * @return array
         */
        protected function normalizeActionDescription($action, $description)
        {
        }
        /**
         * Checks action by settings in description.
         * This method may terminate controller and application.
         * @return void
         */
        protected function checkAction()
        {
        }
        /**
         * Lists all actions by controller. This listing may contains description in short-style.
         *
         * If you set
         * array(
         *  'showTest'
         * )
         *
         * Then action 'showTest' has default description @see normalizeActionDescription()
         * and execute method processActionShowTest.
         *
         * If you set
         * array(
         *  'showFoo' => 'showBar'
         * )
         *
         * Then action 'showFoo' has default description @see normalizeActionDescription()
         * and execute method processActionShowBar.
         *
         * If you set
         * array(
         *  'showFoo' => array(
         *		'method' => array('GET', 'POST'), //allowed GET and POST methods to run action.
         *		'name' => 'showFoo', //execute method processActionShowFoo
         *		'check_csrf_token' => true, // check csrf token and run @see runProcessingIfInvalidCsrfToken()
         *		'redirect_on_auth' => true, // if user doesn't authorize then will redirect on login page.
         *		'close_session' => false, //execute session_close() before action.
         *  )
         * )
         *
         * @return array
         */
        protected function listActions()
        {
        }
        /**
         * Gets current action.
         * @return string
         */
        public function getAction()
        {
        }
        /**
         * Gets description of action.
         * @return array
         */
        public function getActionDescription()
        {
        }
        /**
         * Sets action and description.
         * @param string $action Action name.
         * @param array  $description Action description.
         * @return $this
         */
        public function setAction($action, array $description)
        {
        }
        /**
         * Sets action name.
         * @param string $action Action name.
         * @return $this
         */
        public function setActionName($action)
        {
        }
        /**
         * Checks required modules before process action.
         * @return void
         */
        protected function checkRequiredModules()
        {
        }
        /**
         * Prepare params before process action.
         * @return bool
         */
        protected function prepareParams()
        {
        }
        /**
         * Common operations before process action.
         * @param string $actionName Action name which will be run.
         * @return bool If method will return false, then action will not execute.
         */
        protected function processBeforeAction($actionName)
        {
        }
        protected function runAction()
        {
        }
        /**
         * Runs processing exception.
         * @param \Exception $e Exception.
         * @return void
         */
        protected function runProcessingException(\Exception $e)
        {
        }
        /**
         * Runs processing if user is not authorized.
         * @return void
         */
        protected function runProcessingIfUserNotAuthorized()
        {
        }
        /**
         * Runs processing if csrf token is invalid.
         * @return void
         */
        protected function runProcessingIfInvalidCsrfToken()
        {
        }
        /**
         * Get application instance.
         * @return Application|\Bitrix\Main\HttpApplication|\CAllMain|\CMain
         */
        protected function getApplication()
        {
        }
        /**
         * Checks required parameters.
         * Fills error collection if required parameter is missed.
         * @param array $inputParams Input data.
         * @param array $required Required parameters.
         * @return bool
         */
        protected function checkRequiredInputParams(array $inputParams, array $required)
        {
        }
        /**
         * Checks required parameters in $_POST.
         * Fills error collection if required parameter is missed.
         * @param array $required Required parameters.
         * @return bool
         */
        protected function checkRequiredPostParams(array $required)
        {
        }
        /**
         * Checks required parameters in $_GET.
         * Fills error collection if required parameter is missed.
         * @param array $required Required parameters.
         * @return bool
         */
        protected function checkRequiredGetParams(array $required)
        {
        }
        /**
         * Checks required parameters in $_FILES.
         * Fills error collection if required parameter is missed.
         * @param array $required Required parameters.
         * @return bool
         */
        protected function checkRequiredFilesParams(array $required)
        {
        }
        /**
         * Returns whether this is an AJAX (XMLHttpRequest) request.
         * @return boolean
         */
        protected function isAjaxRequest()
        {
        }
    }
}
namespace {
    class ReportListAjaxController extends \Bitrix\Report\Internals\Controller
    {
        /** @var  int */
        /** @var  string */
        const ERROR_ACCESS_DENIED = 'REPORT_RLAC_22001';
        const ERROR_CHANGE_SHARING = 'REPORT_RLAC_22002';
        protected function listActions()
        {
        }
        protected function processActionShowSharing()
        {
        }
        protected function processActionChangeSharing()
        {
        }
    }
    class ReportAnalyticsConfigControl extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    /**
     * Class ReportVisualConstructorConfigFields
     */
    class ReportVisualConstructorConfigFields extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    class CReportComponent extends \CBitrixComponent
    {
        protected $selectorItems;
        protected $moduleIncluded;
        public function __construct($component = \null)
        {
        }
        public function executeComponent()
        {
        }
        public function ensureModuleIncluded($moduleName)
        {
        }
        protected function prepareResult()
        {
        }
        private function prepareBaseListSelectorItem($ufInfo)
        {
        }
        protected function prepareCrmSelectorItem($ufInfo)
        {
        }
        protected function prepareEnumerationSelectorItem($ufInfo)
        {
        }
        protected function prepareCrmStatusSelectorItem($ufInfo)
        {
        }
        protected function prepareIblockElementSelectorItem($ufInfo)
        {
        }
        protected function prepareIblockSectionSelectorItem($ufInfo)
        {
        }
        protected function prepareMoneySelectorItem($ufInfo)
        {
        }
    }
    class ReportFilterFieldSelectorController extends \Bitrix\Report\Internals\Controller
    {
        const ERROR_USER_FIELD_NOT_FOUND = 'REPORT_FFSAC_22001';
        protected function listActions()
        {
        }
        protected function processActionLoadEnumerationValues()
        {
        }
    }
    /**
     * Class ReportVisualConstructorWidgetConfig
     */
    class ReportVisualConstructorWidgetPseudoConfig extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    class ReportVisualconstructorWidgetContentGrid extends \Bitrix\Report\VisualConstructor\Views\Component\BaseViewComponent
    {
        public function executeComponent()
        {
        }
        private function getGridId()
        {
        }
        private function getHeaders()
        {
        }
        private function getRows()
        {
        }
        private function getIncludedComponentTemplate($templateFileName, $params = [])
        {
        }
        private function getResult()
        {
        }
        /**
         * @return \Bitrix\Report\VisualConstructor\Entity\Widget
         */
        private function getWidget()
        {
        }
    }
    class ReportAnalyticsEmpty extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    class ReportAnalyticsFeedback extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    class ReportAnalyticsBase extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
        private function showError($message)
        {
        }
        /**
         * @param string $firstBoardBatch
         * @return null
         * @throws \Bitrix\Main\SystemException
         */
        private function getCurrentAnalyticBoardKey($firstBoardBatch = "")
        {
        }
        private function getLeftMenuItems()
        {
        }
        private function getLeftMenuItemsCollection()
        {
        }
        /**
         * @return \Bitrix\Report\VisualConstructor\AnalyticBoard[]
         */
        private function getAnalyticsBoardsList($boardBatchKey = "")
        {
        }
        /**
         * @param $key
         * @return \Bitrix\Report\VisualConstructor\AnalyticBoard | null
         */
        private function getAnalyticBoardByKey($key)
        {
        }
        /**
         * @return \Bitrix\Report\VisualConstructor\AnalyticBoardBatch[]
         */
        private function getAnalyticsBoardsBatchList()
        {
        }
    }
    /**
     * Class ReportVisualConstructorBoardBase
     */
    class ReportVisualConstructorBoardBase extends \CBitrixComponent
    {
        private $isDefaultModeIsDemo;
        private $buttons = [];
        /**
         * Function calls __includeComponent in order to execute the component.
         *
         * @return void
         *
         */
        public function executeComponent()
        {
        }
        private function getBoardButtons()
        {
        }
        private function getBoardDefaultButtons()
        {
        }
        /**
         * @deprecated
         * @return Filter
         */
        private function getFilter()
        {
        }
    }
    class ReportVisualConstructorWidgetContentGroupedDataGrid extends \Bitrix\Report\VisualConstructor\Views\Component\BaseViewComponent
    {
    }
    /**
     * Class ReportVisualConstructorBoardControls
     */
    class ReportVisualConstructorBoardControls extends \CBitrixComponent
    {
        const DEFAULT_SHOW_MINIATURE_COUNT_IN_CATEGORY = 2;
        /**
         * @return void
         *
         */
        public function executeComponent()
        {
        }
        private function isFrameMode()
        {
        }
        private function prepareParametersForAddForm()
        {
        }
        /**
         * @return \Bitrix\Report\VisualConstructor\View[]
         */
        private function getAvailableViews()
        {
        }
        /**
         * @return array
         */
        private function getPatternWidgets()
        {
        }
        /**
         * @return \Bitrix\Report\VisualConstructor\Form
         */
        private function buildAddForm()
        {
        }
        /**
         * @param \Bitrix\Report\VisualConstructor\Form $form
         * @param $categoryKey
         */
        private function addToFormCreateWidgetMiniature(\Bitrix\Report\VisualConstructor\Form $form, $categoryKey)
        {
        }
        /**
         * @return \Bitrix\Report\VisualConstructor\Category[]
         */
        private function getCategories()
        {
        }
        private function getPatternWidgetListByCategories()
        {
        }
    }
    /**
     * Class ReportVisualConstructorWidgetForm
     */
    class ReportVisualConstructorWidgetForm extends \CBitrixComponent
    {
        const CREATE_MODE_NAME = 'create';
        const UPDATE_MODE_NAME = 'update';
        /**
         * @var \Bitrix\Report\VisualConstructor\Entity\Widget
         */
        private $widget;
        /**
         * @var \Bitrix\Report\VisualConstructor\View
         */
        private $view;
        private $boardId;
        private $saveButtonTitle;
        private $mode;
        /**
         * @return void
         */
        public function executeComponent()
        {
        }
        /**
         * Return form action name, different for create form and update form
         * @return string|null
         */
        private function getFormAction()
        {
        }
    }
    class ReportVisualConstructorWidgetContentNumberBlock extends \Bitrix\Report\VisualConstructor\Views\Component\BaseViewComponent
    {
    }
    class CReport
    {
        protected static $totalCountableAggrFuncs = ['SUM', 'COUNT_DISTINCT', 'AVG', 'MAX', 'MIN'];
        protected static $alternateColumnPhrases = \null;
        public static $iBlockCompareVariations = array('EQUAL' => '=', 'GREATER_OR_EQUAL' => '>=', 'GREATER' => '>', 'LESS' => '<', 'LESS_OR_EQUAL' => '<=', 'NOT_EQUAL' => '!', 'START_WITH' => '>%', 'CONTAINS' => '%', 'NOT_CONTAINS' => '!%', 'BETWEEN' => '><', 'NOT_BETWEEN' => '!><');
        public static function Add($settings)
        {
        }
        public static function Update($ID, $settings)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function GetList($owner = '')
        {
        }
        public static function setViewParams($id, $templateName, $strParams)
        {
        }
        public static function getViewParams($id, $templateName)
        {
        }
        public static function clearViewParams($id)
        {
        }
        public static function GetCountInt($owner = '')
        {
        }
        public static function generateChains($strChains, $initEntity, $initKey)
        {
        }
        protected static function initializeAlternateColumnPhrases($helperClass)
        {
        }
        public static function isAlternateColumnPhraseExists($helperClass, $messageCode)
        {
        }
        public static function getAlternateColumnPhrase($helperClass, $messageCode)
        {
        }
        public static function generateColumnTree($chains, $initEntity, $helper_class, $level = 0)
        {
        }
        protected static function attachLangToColumnTree(&$tree, $initEntity, $helperClass, $preTitle = array())
        {
        }
        /** @deprecated 14.5.5 Method moved into a helper class */
        public static function fillFilterReferenceColumns(&$filters, &$fieldList, $helperClass)
        {
        }
        /**
         * Detecting a cyclic dependency in the report column.
         *
         * @param $select
         * @param $elemIndex
         *
         * @return bool
         */
        public static function checkSelectViewElementCyclicDependency($select, $elemIndex)
        {
        }
        /**
         * @param                     $elem
         * @param                     $select
         * @param                     $isInitEntityAggregated
         * @param                     $fList
         * @param Entity\QueryChain[] $fChainList
         * @param                     $helperClassName
         * @param Entity\Base         $entity
         *
         * @return array
         */
        public static function prepareSelectViewElement($elem, $select, $isInitEntityAggregated, $fList, $fChainList, $helperClassName, \Bitrix\Main\Entity\Base $entity)
        {
        }
        public static function getFullColumnTitle($view, $viewColumns, $fullHumanTitles)
        {
        }
        public static function isColumnPercentable($view, $helperClassName)
        {
        }
        public static function getTotalCountableAggregationFunctions()
        {
        }
        public static function isTotalCountableAggregationFunction($aggr)
        {
        }
        public static function isColumnTotalCountable($view, $helperClassName)
        {
        }
        public static function appendHrefSelectElements(&$elem, $fList, $entity, $helper_class, &$select, &$runtime)
        {
        }
        public static function generateValueUrl($elem, $dataRow, $entity)
        {
        }
        public static function rewriteUserShortName(&$select, &$runtime, $format, $entity, $grc = \false)
        {
        }
        public static function getUniqueFieldsByTree($tree)
        {
        }
        public static function isValidFilterCompareVariation($fDefinition, $fType, $variation, $variations)
        {
        }
        public static function addFreshDefaultReports($vReports, $ownerId)
        {
        }
        public static function sqlizeFilter($filter)
        {
        }
        public static function makeSingleFilter($filter)
        {
        }
        public static function collectFullHumanTitles($tree)
        {
        }
        public static function getFormattedNameExpr($format, $defPrefix)
        {
        }
    }
    class BXUserException extends \Bitrix\Main\SystemException
    {
    }
    class BXFormException extends \Bitrix\Main\SystemException
    {
    }
}
namespace Bitrix\Report\Internals {
    /**
     * EO_Sharing
     * @see \Bitrix\Report\Internals\SharingTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Report\Internals\EO_Sharing setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getReportId()
     * @method \Bitrix\Report\Internals\EO_Sharing setReportId(\int|\Bitrix\Main\DB\SqlExpression $reportId)
     * @method bool hasReportId()
     * @method bool isReportIdFilled()
     * @method bool isReportIdChanged()
     * @method \int remindActualReportId()
     * @method \int requireReportId()
     * @method \Bitrix\Report\Internals\EO_Sharing resetReportId()
     * @method \Bitrix\Report\Internals\EO_Sharing unsetReportId()
     * @method \int fillReportId()
     * @method \Bitrix\Report\EO_Report getLinkReport()
     * @method \Bitrix\Report\EO_Report remindActualLinkReport()
     * @method \Bitrix\Report\EO_Report requireLinkReport()
     * @method \Bitrix\Report\Internals\EO_Sharing setLinkReport(\Bitrix\Report\EO_Report $object)
     * @method \Bitrix\Report\Internals\EO_Sharing resetLinkReport()
     * @method \Bitrix\Report\Internals\EO_Sharing unsetLinkReport()
     * @method bool hasLinkReport()
     * @method bool isLinkReportFilled()
     * @method bool isLinkReportChanged()
     * @method \Bitrix\Report\EO_Report fillLinkReport()
     * @method \string getEntity()
     * @method \Bitrix\Report\Internals\EO_Sharing setEntity(\string|\Bitrix\Main\DB\SqlExpression $entity)
     * @method bool hasEntity()
     * @method bool isEntityFilled()
     * @method bool isEntityChanged()
     * @method \string remindActualEntity()
     * @method \string requireEntity()
     * @method \Bitrix\Report\Internals\EO_Sharing resetEntity()
     * @method \Bitrix\Report\Internals\EO_Sharing unsetEntity()
     * @method \string fillEntity()
     * @method \string getRights()
     * @method \Bitrix\Report\Internals\EO_Sharing setRights(\string|\Bitrix\Main\DB\SqlExpression $rights)
     * @method bool hasRights()
     * @method bool isRightsFilled()
     * @method bool isRightsChanged()
     * @method \string remindActualRights()
     * @method \string requireRights()
     * @method \Bitrix\Report\Internals\EO_Sharing resetRights()
     * @method \Bitrix\Report\Internals\EO_Sharing unsetRights()
     * @method \string fillRights()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Report\Internals\EO_Sharing set($fieldName, $value)
     * @method \Bitrix\Report\Internals\EO_Sharing reset($fieldName)
     * @method \Bitrix\Report\Internals\EO_Sharing unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Report\Internals\EO_Sharing wakeUp($data)
     */
    class EO_Sharing
    {
        /* @var \Bitrix\Report\Internals\SharingTable */
        public static $dataClass = '\\Bitrix\\Report\\Internals\\SharingTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Sharing_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getReportIdList()
     * @method \int[] fillReportId()
     * @method \Bitrix\Report\EO_Report[] getLinkReportList()
     * @method \Bitrix\Report\Internals\EO_Sharing_Collection getLinkReportCollection()
     * @method \Bitrix\Report\EO_Report_Collection fillLinkReport()
     * @method \string[] getEntityList()
     * @method \string[] fillEntity()
     * @method \string[] getRightsList()
     * @method \string[] fillRights()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Report\Internals\EO_Sharing $object)
     * @method bool has(\Bitrix\Report\Internals\EO_Sharing $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Report\Internals\EO_Sharing getByPrimary($primary)
     * @method \Bitrix\Report\Internals\EO_Sharing[] getAll()
     * @method bool remove(\Bitrix\Report\Internals\EO_Sharing $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Report\Internals\EO_Sharing_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Report\Internals\EO_Sharing current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Sharing_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Report\Internals\SharingTable */
        public static $dataClass = '\\Bitrix\\Report\\Internals\\SharingTable';
    }
    /**
     * @method static EO_Sharing_Query query()
     * @method static EO_Sharing_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Sharing_Result getById($id)
     * @method static EO_Sharing_Result getList(array $parameters = array())
     * @method static EO_Sharing_Entity getEntity()
     * @method static \Bitrix\Report\Internals\EO_Sharing createObject($setDefaultValues = true)
     * @method static \Bitrix\Report\Internals\EO_Sharing_Collection createCollection()
     * @method static \Bitrix\Report\Internals\EO_Sharing wakeUpObject($row)
     * @method static \Bitrix\Report\Internals\EO_Sharing_Collection wakeUpCollection($rows)
     */
    class SharingTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Sharing_Result exec()
     * @method \Bitrix\Report\Internals\EO_Sharing fetchObject()
     * @method \Bitrix\Report\Internals\EO_Sharing_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Sharing_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Report\Internals\EO_Sharing fetchObject()
     * @method \Bitrix\Report\Internals\EO_Sharing_Collection fetchCollection()
     */
    class EO_Sharing_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Report\Internals\EO_Sharing createObject($setDefaultValues = true)
     * @method \Bitrix\Report\Internals\EO_Sharing_Collection createCollection()
     * @method \Bitrix\Report\Internals\EO_Sharing wakeUpObject($row)
     * @method \Bitrix\Report\Internals\EO_Sharing_Collection wakeUpCollection($rows)
     */
    class EO_Sharing_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Report {
    /**
     * EO_Report
     * @see \Bitrix\Report\ReportTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Report\EO_Report setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getOwnerId()
     * @method \Bitrix\Report\EO_Report setOwnerId(\string|\Bitrix\Main\DB\SqlExpression $ownerId)
     * @method bool hasOwnerId()
     * @method bool isOwnerIdFilled()
     * @method bool isOwnerIdChanged()
     * @method \string remindActualOwnerId()
     * @method \string requireOwnerId()
     * @method \Bitrix\Report\EO_Report resetOwnerId()
     * @method \Bitrix\Report\EO_Report unsetOwnerId()
     * @method \string fillOwnerId()
     * @method \string getTitle()
     * @method \Bitrix\Report\EO_Report setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Report\EO_Report resetTitle()
     * @method \Bitrix\Report\EO_Report unsetTitle()
     * @method \string fillTitle()
     * @method \string getDescription()
     * @method \Bitrix\Report\EO_Report setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Report\EO_Report resetDescription()
     * @method \Bitrix\Report\EO_Report unsetDescription()
     * @method \string fillDescription()
     * @method \Bitrix\Main\Type\DateTime getCreatedDate()
     * @method \Bitrix\Report\EO_Report setCreatedDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $createdDate)
     * @method bool hasCreatedDate()
     * @method bool isCreatedDateFilled()
     * @method bool isCreatedDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualCreatedDate()
     * @method \Bitrix\Main\Type\DateTime requireCreatedDate()
     * @method \Bitrix\Report\EO_Report resetCreatedDate()
     * @method \Bitrix\Report\EO_Report unsetCreatedDate()
     * @method \Bitrix\Main\Type\DateTime fillCreatedDate()
     * @method \int getCreatedBy()
     * @method \Bitrix\Report\EO_Report setCreatedBy(\int|\Bitrix\Main\DB\SqlExpression $createdBy)
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \int remindActualCreatedBy()
     * @method \int requireCreatedBy()
     * @method \Bitrix\Report\EO_Report resetCreatedBy()
     * @method \Bitrix\Report\EO_Report unsetCreatedBy()
     * @method \int fillCreatedBy()
     * @method \Bitrix\Main\EO_User getCreatedByUser()
     * @method \Bitrix\Main\EO_User remindActualCreatedByUser()
     * @method \Bitrix\Main\EO_User requireCreatedByUser()
     * @method \Bitrix\Report\EO_Report setCreatedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Report\EO_Report resetCreatedByUser()
     * @method \Bitrix\Report\EO_Report unsetCreatedByUser()
     * @method bool hasCreatedByUser()
     * @method bool isCreatedByUserFilled()
     * @method bool isCreatedByUserChanged()
     * @method \Bitrix\Main\EO_User fillCreatedByUser()
     * @method \string getSettings()
     * @method \Bitrix\Report\EO_Report setSettings(\string|\Bitrix\Main\DB\SqlExpression $settings)
     * @method bool hasSettings()
     * @method bool isSettingsFilled()
     * @method bool isSettingsChanged()
     * @method \string remindActualSettings()
     * @method \string requireSettings()
     * @method \Bitrix\Report\EO_Report resetSettings()
     * @method \Bitrix\Report\EO_Report unsetSettings()
     * @method \string fillSettings()
     * @method \int getMarkDefault()
     * @method \Bitrix\Report\EO_Report setMarkDefault(\int|\Bitrix\Main\DB\SqlExpression $markDefault)
     * @method bool hasMarkDefault()
     * @method bool isMarkDefaultFilled()
     * @method bool isMarkDefaultChanged()
     * @method \int remindActualMarkDefault()
     * @method \int requireMarkDefault()
     * @method \Bitrix\Report\EO_Report resetMarkDefault()
     * @method \Bitrix\Report\EO_Report unsetMarkDefault()
     * @method \int fillMarkDefault()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Report\EO_Report set($fieldName, $value)
     * @method \Bitrix\Report\EO_Report reset($fieldName)
     * @method \Bitrix\Report\EO_Report unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Report\EO_Report wakeUp($data)
     */
    class EO_Report
    {
        /* @var \Bitrix\Report\ReportTable */
        public static $dataClass = '\\Bitrix\\Report\\ReportTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Report_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getOwnerIdList()
     * @method \string[] fillOwnerId()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \Bitrix\Main\Type\DateTime[] getCreatedDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillCreatedDate()
     * @method \int[] getCreatedByList()
     * @method \int[] fillCreatedBy()
     * @method \Bitrix\Main\EO_User[] getCreatedByUserList()
     * @method \Bitrix\Report\EO_Report_Collection getCreatedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCreatedByUser()
     * @method \string[] getSettingsList()
     * @method \string[] fillSettings()
     * @method \int[] getMarkDefaultList()
     * @method \int[] fillMarkDefault()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Report\EO_Report $object)
     * @method bool has(\Bitrix\Report\EO_Report $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Report\EO_Report getByPrimary($primary)
     * @method \Bitrix\Report\EO_Report[] getAll()
     * @method bool remove(\Bitrix\Report\EO_Report $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Report\EO_Report_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Report\EO_Report current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Report_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Report\ReportTable */
        public static $dataClass = '\\Bitrix\\Report\\ReportTable';
    }
    /**
     * @method static EO_Report_Query query()
     * @method static EO_Report_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Report_Result getById($id)
     * @method static EO_Report_Result getList(array $parameters = array())
     * @method static EO_Report_Entity getEntity()
     * @method static \Bitrix\Report\EO_Report createObject($setDefaultValues = true)
     * @method static \Bitrix\Report\EO_Report_Collection createCollection()
     * @method static \Bitrix\Report\EO_Report wakeUpObject($row)
     * @method static \Bitrix\Report\EO_Report_Collection wakeUpCollection($rows)
     */
    class ReportTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Report_Result exec()
     * @method \Bitrix\Report\EO_Report fetchObject()
     * @method \Bitrix\Report\EO_Report_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Report_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Report\EO_Report fetchObject()
     * @method \Bitrix\Report\EO_Report_Collection fetchCollection()
     */
    class EO_Report_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Report\EO_Report createObject($setDefaultValues = true)
     * @method \Bitrix\Report\EO_Report_Collection createCollection()
     * @method \Bitrix\Report\EO_Report wakeUpObject($row)
     * @method \Bitrix\Report\EO_Report_Collection wakeUpCollection($rows)
     */
    class EO_Report_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Report\VisualConstructor\Internal {
    /**
     * EO_ConfigurationSetting
     * @see \Bitrix\Report\VisualConstructor\Internal\ConfigurationSettingTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getWeight()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting setWeight(\int|\Bitrix\Main\DB\SqlExpression $weight)
     * @method bool hasWeight()
     * @method bool isWeightFilled()
     * @method bool isWeightChanged()
     * @method \int remindActualWeight()
     * @method \int requireWeight()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting resetWeight()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting unsetWeight()
     * @method \int fillWeight()
     * @method \string getGid()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting setGid(\string|\Bitrix\Main\DB\SqlExpression $gid)
     * @method bool hasGid()
     * @method bool isGidFilled()
     * @method bool isGidChanged()
     * @method \string remindActualGid()
     * @method \string requireGid()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting resetGid()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting unsetGid()
     * @method \string fillGid()
     * @method \string getUkey()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting setUkey(\string|\Bitrix\Main\DB\SqlExpression $ukey)
     * @method bool hasUkey()
     * @method bool isUkeyFilled()
     * @method bool isUkeyChanged()
     * @method \string remindActualUkey()
     * @method \string requireUkey()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting resetUkey()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting unsetUkey()
     * @method \string fillUkey()
     * @method \string getConfigurationFieldClass()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting setConfigurationFieldClass(\string|\Bitrix\Main\DB\SqlExpression $configurationFieldClass)
     * @method bool hasConfigurationFieldClass()
     * @method bool isConfigurationFieldClassFilled()
     * @method bool isConfigurationFieldClassChanged()
     * @method \string remindActualConfigurationFieldClass()
     * @method \string requireConfigurationFieldClass()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting resetConfigurationFieldClass()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting unsetConfigurationFieldClass()
     * @method \string fillConfigurationFieldClass()
     * @method \string getSettings()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting setSettings(\string|\Bitrix\Main\DB\SqlExpression $settings)
     * @method bool hasSettings()
     * @method bool isSettingsFilled()
     * @method bool isSettingsChanged()
     * @method \string remindActualSettings()
     * @method \string requireSettings()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting resetSettings()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting unsetSettings()
     * @method \string fillSettings()
     * @method \Bitrix\Main\Type\Date getCreatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting setCreatedDate(\Bitrix\Main\Type\Date|\Bitrix\Main\DB\SqlExpression $createdDate)
     * @method bool hasCreatedDate()
     * @method bool isCreatedDateFilled()
     * @method bool isCreatedDateChanged()
     * @method \Bitrix\Main\Type\Date remindActualCreatedDate()
     * @method \Bitrix\Main\Type\Date requireCreatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting resetCreatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting unsetCreatedDate()
     * @method \Bitrix\Main\Type\Date fillCreatedDate()
     * @method \Bitrix\Main\Type\Date getUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting setUpdatedDate(\Bitrix\Main\Type\Date|\Bitrix\Main\DB\SqlExpression $updatedDate)
     * @method bool hasUpdatedDate()
     * @method bool isUpdatedDateFilled()
     * @method bool isUpdatedDateChanged()
     * @method \Bitrix\Main\Type\Date remindActualUpdatedDate()
     * @method \Bitrix\Main\Type\Date requireUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting resetUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting unsetUpdatedDate()
     * @method \Bitrix\Main\Type\Date fillUpdatedDate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting set($fieldName, $value)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting reset($fieldName)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting wakeUp($data)
     */
    class EO_ConfigurationSetting
    {
        /* @var \Bitrix\Report\VisualConstructor\Internal\ConfigurationSettingTable */
        public static $dataClass = '\\Bitrix\\Report\\VisualConstructor\\Internal\\ConfigurationSettingTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_ConfigurationSetting_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getWeightList()
     * @method \int[] fillWeight()
     * @method \string[] getGidList()
     * @method \string[] fillGid()
     * @method \string[] getUkeyList()
     * @method \string[] fillUkey()
     * @method \string[] getConfigurationFieldClassList()
     * @method \string[] fillConfigurationFieldClass()
     * @method \string[] getSettingsList()
     * @method \string[] fillSettings()
     * @method \Bitrix\Main\Type\Date[] getCreatedDateList()
     * @method \Bitrix\Main\Type\Date[] fillCreatedDate()
     * @method \Bitrix\Main\Type\Date[] getUpdatedDateList()
     * @method \Bitrix\Main\Type\Date[] fillUpdatedDate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting $object)
     * @method bool has(\Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting getByPrimary($primary)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting[] getAll()
     * @method bool remove(\Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_ConfigurationSetting_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Report\VisualConstructor\Internal\ConfigurationSettingTable */
        public static $dataClass = '\\Bitrix\\Report\\VisualConstructor\\Internal\\ConfigurationSettingTable';
    }
    /**
     * @method static EO_ConfigurationSetting_Query query()
     * @method static EO_ConfigurationSetting_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_ConfigurationSetting_Result getById($id)
     * @method static EO_ConfigurationSetting_Result getList(array $parameters = array())
     * @method static EO_ConfigurationSetting_Entity getEntity()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting createObject($setDefaultValues = true)
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting_Collection createCollection()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting wakeUpObject($row)
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting_Collection wakeUpCollection($rows)
     */
    class ConfigurationSettingTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_ConfigurationSetting_Result exec()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting fetchObject()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_ConfigurationSetting_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting fetchObject()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting_Collection fetchCollection()
     */
    class EO_ConfigurationSetting_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting createObject($setDefaultValues = true)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting_Collection createCollection()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting wakeUpObject($row)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting_Collection wakeUpCollection($rows)
     */
    class EO_ConfigurationSetting_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Dashboard
     * @see \Bitrix\Report\VisualConstructor\Internal\DashboardTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getGid()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard setGid(\string|\Bitrix\Main\DB\SqlExpression $gid)
     * @method bool hasGid()
     * @method bool isGidFilled()
     * @method bool isGidChanged()
     * @method \string remindActualGid()
     * @method \string requireGid()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard resetGid()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard unsetGid()
     * @method \string fillGid()
     * @method \string getBoardKey()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard setBoardKey(\string|\Bitrix\Main\DB\SqlExpression $boardKey)
     * @method bool hasBoardKey()
     * @method bool isBoardKeyFilled()
     * @method bool isBoardKeyChanged()
     * @method \string remindActualBoardKey()
     * @method \string requireBoardKey()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard resetBoardKey()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard unsetBoardKey()
     * @method \string fillBoardKey()
     * @method \int getUserId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard resetUserId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard unsetUserId()
     * @method \int fillUserId()
     * @method \string getVersion()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard setVersion(\string|\Bitrix\Main\DB\SqlExpression $version)
     * @method bool hasVersion()
     * @method bool isVersionFilled()
     * @method bool isVersionChanged()
     * @method \string remindActualVersion()
     * @method \string requireVersion()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard resetVersion()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard unsetVersion()
     * @method \string fillVersion()
     * @method \Bitrix\Main\Type\Date getCreatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard setCreatedDate(\Bitrix\Main\Type\Date|\Bitrix\Main\DB\SqlExpression $createdDate)
     * @method bool hasCreatedDate()
     * @method bool isCreatedDateFilled()
     * @method bool isCreatedDateChanged()
     * @method \Bitrix\Main\Type\Date remindActualCreatedDate()
     * @method \Bitrix\Main\Type\Date requireCreatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard resetCreatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard unsetCreatedDate()
     * @method \Bitrix\Main\Type\Date fillCreatedDate()
     * @method \Bitrix\Main\Type\Date getUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard setUpdatedDate(\Bitrix\Main\Type\Date|\Bitrix\Main\DB\SqlExpression $updatedDate)
     * @method bool hasUpdatedDate()
     * @method bool isUpdatedDateFilled()
     * @method bool isUpdatedDateChanged()
     * @method \Bitrix\Main\Type\Date remindActualUpdatedDate()
     * @method \Bitrix\Main\Type\Date requireUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard resetUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard unsetUpdatedDate()
     * @method \Bitrix\Main\Type\Date fillUpdatedDate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard set($fieldName, $value)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard reset($fieldName)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard wakeUp($data)
     */
    class EO_Dashboard
    {
        /* @var \Bitrix\Report\VisualConstructor\Internal\DashboardTable */
        public static $dataClass = '\\Bitrix\\Report\\VisualConstructor\\Internal\\DashboardTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Dashboard_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getGidList()
     * @method \string[] fillGid()
     * @method \string[] getBoardKeyList()
     * @method \string[] fillBoardKey()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \string[] getVersionList()
     * @method \string[] fillVersion()
     * @method \Bitrix\Main\Type\Date[] getCreatedDateList()
     * @method \Bitrix\Main\Type\Date[] fillCreatedDate()
     * @method \Bitrix\Main\Type\Date[] getUpdatedDateList()
     * @method \Bitrix\Main\Type\Date[] fillUpdatedDate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Report\VisualConstructor\Internal\EO_Dashboard $object)
     * @method bool has(\Bitrix\Report\VisualConstructor\Internal\EO_Dashboard $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard getByPrimary($primary)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard[] getAll()
     * @method bool remove(\Bitrix\Report\VisualConstructor\Internal\EO_Dashboard $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Dashboard_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Report\VisualConstructor\Internal\DashboardTable */
        public static $dataClass = '\\Bitrix\\Report\\VisualConstructor\\Internal\\DashboardTable';
    }
    /**
     * @method static EO_Dashboard_Query query()
     * @method static EO_Dashboard_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Dashboard_Result getById($id)
     * @method static EO_Dashboard_Result getList(array $parameters = array())
     * @method static EO_Dashboard_Entity getEntity()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard createObject($setDefaultValues = true)
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard_Collection createCollection()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard wakeUpObject($row)
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard_Collection wakeUpCollection($rows)
     */
    class DashboardTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Dashboard_Result exec()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard fetchObject()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Dashboard_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard fetchObject()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard_Collection fetchCollection()
     */
    class EO_Dashboard_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard createObject($setDefaultValues = true)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard_Collection createCollection()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard wakeUpObject($row)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard_Collection wakeUpCollection($rows)
     */
    class EO_Dashboard_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_DashboardRow
     * @see \Bitrix\Report\VisualConstructor\Internal\DashboardRowTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getGid()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow setGid(\string|\Bitrix\Main\DB\SqlExpression $gid)
     * @method bool hasGid()
     * @method bool isGidFilled()
     * @method bool isGidChanged()
     * @method \string remindActualGid()
     * @method \string requireGid()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow resetGid()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow unsetGid()
     * @method \string fillGid()
     * @method \int getWeight()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow setWeight(\int|\Bitrix\Main\DB\SqlExpression $weight)
     * @method bool hasWeight()
     * @method bool isWeightFilled()
     * @method bool isWeightChanged()
     * @method \int remindActualWeight()
     * @method \int requireWeight()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow resetWeight()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow unsetWeight()
     * @method \int fillWeight()
     * @method \int getBoardId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow setBoardId(\int|\Bitrix\Main\DB\SqlExpression $boardId)
     * @method bool hasBoardId()
     * @method bool isBoardIdFilled()
     * @method bool isBoardIdChanged()
     * @method \int remindActualBoardId()
     * @method \int requireBoardId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow resetBoardId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow unsetBoardId()
     * @method \int fillBoardId()
     * @method \string getLayoutMap()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow setLayoutMap(\string|\Bitrix\Main\DB\SqlExpression $layoutMap)
     * @method bool hasLayoutMap()
     * @method bool isLayoutMapFilled()
     * @method bool isLayoutMapChanged()
     * @method \string remindActualLayoutMap()
     * @method \string requireLayoutMap()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow resetLayoutMap()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow unsetLayoutMap()
     * @method \string fillLayoutMap()
     * @method \Bitrix\Main\Type\Date getCreatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow setCreatedDate(\Bitrix\Main\Type\Date|\Bitrix\Main\DB\SqlExpression $createdDate)
     * @method bool hasCreatedDate()
     * @method bool isCreatedDateFilled()
     * @method bool isCreatedDateChanged()
     * @method \Bitrix\Main\Type\Date remindActualCreatedDate()
     * @method \Bitrix\Main\Type\Date requireCreatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow resetCreatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow unsetCreatedDate()
     * @method \Bitrix\Main\Type\Date fillCreatedDate()
     * @method \Bitrix\Main\Type\Date getUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow setUpdatedDate(\Bitrix\Main\Type\Date|\Bitrix\Main\DB\SqlExpression $updatedDate)
     * @method bool hasUpdatedDate()
     * @method bool isUpdatedDateFilled()
     * @method bool isUpdatedDateChanged()
     * @method \Bitrix\Main\Type\Date remindActualUpdatedDate()
     * @method \Bitrix\Main\Type\Date requireUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow resetUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow unsetUpdatedDate()
     * @method \Bitrix\Main\Type\Date fillUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard getDashboard()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard remindActualDashboard()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard requireDashboard()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow setDashboard(\Bitrix\Report\VisualConstructor\Internal\EO_Dashboard $object)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow resetDashboard()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow unsetDashboard()
     * @method bool hasDashboard()
     * @method bool isDashboardFilled()
     * @method bool isDashboardChanged()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard fillDashboard()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow set($fieldName, $value)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow reset($fieldName)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow wakeUp($data)
     */
    class EO_DashboardRow
    {
        /* @var \Bitrix\Report\VisualConstructor\Internal\DashboardRowTable */
        public static $dataClass = '\\Bitrix\\Report\\VisualConstructor\\Internal\\DashboardRowTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_DashboardRow_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getGidList()
     * @method \string[] fillGid()
     * @method \int[] getWeightList()
     * @method \int[] fillWeight()
     * @method \int[] getBoardIdList()
     * @method \int[] fillBoardId()
     * @method \string[] getLayoutMapList()
     * @method \string[] fillLayoutMap()
     * @method \Bitrix\Main\Type\Date[] getCreatedDateList()
     * @method \Bitrix\Main\Type\Date[] fillCreatedDate()
     * @method \Bitrix\Main\Type\Date[] getUpdatedDateList()
     * @method \Bitrix\Main\Type\Date[] fillUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard[] getDashboardList()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow_Collection getDashboardCollection()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Dashboard_Collection fillDashboard()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow $object)
     * @method bool has(\Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow getByPrimary($primary)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow[] getAll()
     * @method bool remove(\Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_DashboardRow_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Report\VisualConstructor\Internal\DashboardRowTable */
        public static $dataClass = '\\Bitrix\\Report\\VisualConstructor\\Internal\\DashboardRowTable';
    }
    /**
     * @method static EO_DashboardRow_Query query()
     * @method static EO_DashboardRow_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_DashboardRow_Result getById($id)
     * @method static EO_DashboardRow_Result getList(array $parameters = array())
     * @method static EO_DashboardRow_Entity getEntity()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow createObject($setDefaultValues = true)
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow_Collection createCollection()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow wakeUpObject($row)
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow_Collection wakeUpCollection($rows)
     */
    class DashboardRowTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_DashboardRow_Result exec()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow fetchObject()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_DashboardRow_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow fetchObject()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow_Collection fetchCollection()
     */
    class EO_DashboardRow_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow createObject($setDefaultValues = true)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow_Collection createCollection()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow wakeUpObject($row)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow_Collection wakeUpCollection($rows)
     */
    class EO_DashboardRow_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Report
     * @see \Bitrix\Report\VisualConstructor\Internal\ReportTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getWidgetId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report setWidgetId(\int|\Bitrix\Main\DB\SqlExpression $widgetId)
     * @method bool hasWidgetId()
     * @method bool isWidgetIdFilled()
     * @method bool isWidgetIdChanged()
     * @method \int remindActualWidgetId()
     * @method \int requireWidgetId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report resetWidgetId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report unsetWidgetId()
     * @method \int fillWidgetId()
     * @method \string getGid()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report setGid(\string|\Bitrix\Main\DB\SqlExpression $gid)
     * @method bool hasGid()
     * @method bool isGidFilled()
     * @method bool isGidChanged()
     * @method \string remindActualGid()
     * @method \string requireGid()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report resetGid()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report unsetGid()
     * @method \string fillGid()
     * @method \int getWeight()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report setWeight(\int|\Bitrix\Main\DB\SqlExpression $weight)
     * @method bool hasWeight()
     * @method bool isWeightFilled()
     * @method bool isWeightChanged()
     * @method \int remindActualWeight()
     * @method \int requireWeight()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report resetWeight()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report unsetWeight()
     * @method \int fillWeight()
     * @method \string getReportClass()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report setReportClass(\string|\Bitrix\Main\DB\SqlExpression $reportClass)
     * @method bool hasReportClass()
     * @method bool isReportClassFilled()
     * @method bool isReportClassChanged()
     * @method \string remindActualReportClass()
     * @method \string requireReportClass()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report resetReportClass()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report unsetReportClass()
     * @method \string fillReportClass()
     * @method \Bitrix\Main\Type\Date getCreatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report setCreatedDate(\Bitrix\Main\Type\Date|\Bitrix\Main\DB\SqlExpression $createdDate)
     * @method bool hasCreatedDate()
     * @method bool isCreatedDateFilled()
     * @method bool isCreatedDateChanged()
     * @method \Bitrix\Main\Type\Date remindActualCreatedDate()
     * @method \Bitrix\Main\Type\Date requireCreatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report resetCreatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report unsetCreatedDate()
     * @method \Bitrix\Main\Type\Date fillCreatedDate()
     * @method \Bitrix\Main\Type\Date getUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report setUpdatedDate(\Bitrix\Main\Type\Date|\Bitrix\Main\DB\SqlExpression $updatedDate)
     * @method bool hasUpdatedDate()
     * @method bool isUpdatedDateFilled()
     * @method bool isUpdatedDateChanged()
     * @method \Bitrix\Main\Type\Date remindActualUpdatedDate()
     * @method \Bitrix\Main\Type\Date requireUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report resetUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report unsetUpdatedDate()
     * @method \Bitrix\Main\Type\Date fillUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget getWidget()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget remindActualWidget()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget requireWidget()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report setWidget(\Bitrix\Report\VisualConstructor\Internal\EO_Widget $object)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report resetWidget()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report unsetWidget()
     * @method bool hasWidget()
     * @method bool isWidgetFilled()
     * @method bool isWidgetChanged()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget fillWidget()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report set($fieldName, $value)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report reset($fieldName)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Report wakeUp($data)
     */
    class EO_Report
    {
        /* @var \Bitrix\Report\VisualConstructor\Internal\ReportTable */
        public static $dataClass = '\\Bitrix\\Report\\VisualConstructor\\Internal\\ReportTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Report_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getWidgetIdList()
     * @method \int[] fillWidgetId()
     * @method \string[] getGidList()
     * @method \string[] fillGid()
     * @method \int[] getWeightList()
     * @method \int[] fillWeight()
     * @method \string[] getReportClassList()
     * @method \string[] fillReportClass()
     * @method \Bitrix\Main\Type\Date[] getCreatedDateList()
     * @method \Bitrix\Main\Type\Date[] fillCreatedDate()
     * @method \Bitrix\Main\Type\Date[] getUpdatedDateList()
     * @method \Bitrix\Main\Type\Date[] fillUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget[] getWidgetList()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report_Collection getWidgetCollection()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget_Collection fillWidget()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Report\VisualConstructor\Internal\EO_Report $object)
     * @method bool has(\Bitrix\Report\VisualConstructor\Internal\EO_Report $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report getByPrimary($primary)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report[] getAll()
     * @method bool remove(\Bitrix\Report\VisualConstructor\Internal\EO_Report $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Report_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Report_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Report\VisualConstructor\Internal\ReportTable */
        public static $dataClass = '\\Bitrix\\Report\\VisualConstructor\\Internal\\ReportTable';
    }
    /**
     * @method static EO_Report_Query query()
     * @method static EO_Report_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Report_Result getById($id)
     * @method static EO_Report_Result getList(array $parameters = array())
     * @method static EO_Report_Entity getEntity()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Report createObject($setDefaultValues = true)
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Report_Collection createCollection()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Report wakeUpObject($row)
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Report_Collection wakeUpCollection($rows)
     */
    class ReportTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Report_Result exec()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report fetchObject()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Report_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report fetchObject()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report_Collection fetchCollection()
     */
    class EO_Report_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report createObject($setDefaultValues = true)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report_Collection createCollection()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report wakeUpObject($row)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report_Collection wakeUpCollection($rows)
     */
    class EO_Report_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_ReportConfiguration
     * @see \Bitrix\Report\VisualConstructor\Internal\ReportConfigurationTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getReportId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration setReportId(\int|\Bitrix\Main\DB\SqlExpression $reportId)
     * @method bool hasReportId()
     * @method bool isReportIdFilled()
     * @method bool isReportIdChanged()
     * @method \int getConfigurationId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration setConfigurationId(\int|\Bitrix\Main\DB\SqlExpression $configurationId)
     * @method bool hasConfigurationId()
     * @method bool isConfigurationIdFilled()
     * @method bool isConfigurationIdChanged()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report getReport()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report remindActualReport()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report requireReport()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration setReport(\Bitrix\Report\VisualConstructor\Internal\EO_Report $object)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration resetReport()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration unsetReport()
     * @method bool hasReport()
     * @method bool isReportFilled()
     * @method bool isReportChanged()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report fillReport()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting getConfigurationSetting()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting remindActualConfigurationSetting()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting requireConfigurationSetting()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration setConfigurationSetting(\Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting $object)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration resetConfigurationSetting()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration unsetConfigurationSetting()
     * @method bool hasConfigurationSetting()
     * @method bool isConfigurationSettingFilled()
     * @method bool isConfigurationSettingChanged()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting fillConfigurationSetting()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration set($fieldName, $value)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration reset($fieldName)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration wakeUp($data)
     */
    class EO_ReportConfiguration
    {
        /* @var \Bitrix\Report\VisualConstructor\Internal\ReportConfigurationTable */
        public static $dataClass = '\\Bitrix\\Report\\VisualConstructor\\Internal\\ReportConfigurationTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_ReportConfiguration_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getReportIdList()
     * @method \int[] getConfigurationIdList()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report[] getReportList()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration_Collection getReportCollection()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Report_Collection fillReport()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting[] getConfigurationSettingList()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration_Collection getConfigurationSettingCollection()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting_Collection fillConfigurationSetting()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration $object)
     * @method bool has(\Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration getByPrimary($primary)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration[] getAll()
     * @method bool remove(\Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_ReportConfiguration_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Report\VisualConstructor\Internal\ReportConfigurationTable */
        public static $dataClass = '\\Bitrix\\Report\\VisualConstructor\\Internal\\ReportConfigurationTable';
    }
    /**
     * @method static EO_ReportConfiguration_Query query()
     * @method static EO_ReportConfiguration_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_ReportConfiguration_Result getById($id)
     * @method static EO_ReportConfiguration_Result getList(array $parameters = array())
     * @method static EO_ReportConfiguration_Entity getEntity()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration createObject($setDefaultValues = true)
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration_Collection createCollection()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration wakeUpObject($row)
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration_Collection wakeUpCollection($rows)
     */
    class ReportConfigurationTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_ReportConfiguration_Result exec()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration fetchObject()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_ReportConfiguration_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration fetchObject()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration_Collection fetchCollection()
     */
    class EO_ReportConfiguration_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration createObject($setDefaultValues = true)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration_Collection createCollection()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration wakeUpObject($row)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ReportConfiguration_Collection wakeUpCollection($rows)
     */
    class EO_ReportConfiguration_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Widget
     * @see \Bitrix\Report\VisualConstructor\Internal\WidgetTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getGid()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget setGid(\string|\Bitrix\Main\DB\SqlExpression $gid)
     * @method bool hasGid()
     * @method bool isGidFilled()
     * @method bool isGidChanged()
     * @method \string remindActualGid()
     * @method \string requireGid()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget resetGid()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget unsetGid()
     * @method \string fillGid()
     * @method \string getBoardId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget setBoardId(\string|\Bitrix\Main\DB\SqlExpression $boardId)
     * @method bool hasBoardId()
     * @method bool isBoardIdFilled()
     * @method bool isBoardIdChanged()
     * @method \string remindActualBoardId()
     * @method \string requireBoardId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget resetBoardId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget unsetBoardId()
     * @method \string fillBoardId()
     * @method \int getDashboardRowId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget setDashboardRowId(\int|\Bitrix\Main\DB\SqlExpression $dashboardRowId)
     * @method bool hasDashboardRowId()
     * @method bool isDashboardRowIdFilled()
     * @method bool isDashboardRowIdChanged()
     * @method \int remindActualDashboardRowId()
     * @method \int requireDashboardRowId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget resetDashboardRowId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget unsetDashboardRowId()
     * @method \int fillDashboardRowId()
     * @method \int getParentWidgetId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget setParentWidgetId(\int|\Bitrix\Main\DB\SqlExpression $parentWidgetId)
     * @method bool hasParentWidgetId()
     * @method bool isParentWidgetIdFilled()
     * @method bool isParentWidgetIdChanged()
     * @method \int remindActualParentWidgetId()
     * @method \int requireParentWidgetId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget resetParentWidgetId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget unsetParentWidgetId()
     * @method \int fillParentWidgetId()
     * @method \string getWeight()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget setWeight(\string|\Bitrix\Main\DB\SqlExpression $weight)
     * @method bool hasWeight()
     * @method bool isWeightFilled()
     * @method bool isWeightChanged()
     * @method \string remindActualWeight()
     * @method \string requireWeight()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget resetWeight()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget unsetWeight()
     * @method \string fillWeight()
     * @method \string getCategoryKey()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget setCategoryKey(\string|\Bitrix\Main\DB\SqlExpression $categoryKey)
     * @method bool hasCategoryKey()
     * @method bool isCategoryKeyFilled()
     * @method bool isCategoryKeyChanged()
     * @method \string remindActualCategoryKey()
     * @method \string requireCategoryKey()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget resetCategoryKey()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget unsetCategoryKey()
     * @method \string fillCategoryKey()
     * @method \string getViewKey()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget setViewKey(\string|\Bitrix\Main\DB\SqlExpression $viewKey)
     * @method bool hasViewKey()
     * @method bool isViewKeyFilled()
     * @method bool isViewKeyChanged()
     * @method \string remindActualViewKey()
     * @method \string requireViewKey()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget resetViewKey()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget unsetViewKey()
     * @method \string fillViewKey()
     * @method \int getOwnerId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget setOwnerId(\int|\Bitrix\Main\DB\SqlExpression $ownerId)
     * @method bool hasOwnerId()
     * @method bool isOwnerIdFilled()
     * @method bool isOwnerIdChanged()
     * @method \int remindActualOwnerId()
     * @method \int requireOwnerId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget resetOwnerId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget unsetOwnerId()
     * @method \int fillOwnerId()
     * @method \string getWidgetClass()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget setWidgetClass(\string|\Bitrix\Main\DB\SqlExpression $widgetClass)
     * @method bool hasWidgetClass()
     * @method bool isWidgetClassFilled()
     * @method bool isWidgetClassChanged()
     * @method \string remindActualWidgetClass()
     * @method \string requireWidgetClass()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget resetWidgetClass()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget unsetWidgetClass()
     * @method \string fillWidgetClass()
     * @method \Bitrix\Main\Type\Date getCreatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget setCreatedDate(\Bitrix\Main\Type\Date|\Bitrix\Main\DB\SqlExpression $createdDate)
     * @method bool hasCreatedDate()
     * @method bool isCreatedDateFilled()
     * @method bool isCreatedDateChanged()
     * @method \Bitrix\Main\Type\Date remindActualCreatedDate()
     * @method \Bitrix\Main\Type\Date requireCreatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget resetCreatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget unsetCreatedDate()
     * @method \Bitrix\Main\Type\Date fillCreatedDate()
     * @method \Bitrix\Main\Type\Date getUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget setUpdatedDate(\Bitrix\Main\Type\Date|\Bitrix\Main\DB\SqlExpression $updatedDate)
     * @method bool hasUpdatedDate()
     * @method bool isUpdatedDateFilled()
     * @method bool isUpdatedDateChanged()
     * @method \Bitrix\Main\Type\Date remindActualUpdatedDate()
     * @method \Bitrix\Main\Type\Date requireUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget resetUpdatedDate()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget unsetUpdatedDate()
     * @method \Bitrix\Main\Type\Date fillUpdatedDate()
     * @method \boolean getIsPattern()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget setIsPattern(\boolean|\Bitrix\Main\DB\SqlExpression $isPattern)
     * @method bool hasIsPattern()
     * @method bool isIsPatternFilled()
     * @method bool isIsPatternChanged()
     * @method \boolean remindActualIsPattern()
     * @method \boolean requireIsPattern()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget resetIsPattern()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget unsetIsPattern()
     * @method \boolean fillIsPattern()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow getRow()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow remindActualRow()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow requireRow()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget setRow(\Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow $object)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget resetRow()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget unsetRow()
     * @method bool hasRow()
     * @method bool isRowFilled()
     * @method bool isRowChanged()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow fillRow()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget getParentwidget()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget remindActualParentwidget()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget requireParentwidget()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget setParentwidget(\Bitrix\Report\VisualConstructor\Internal\EO_Widget $object)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget resetParentwidget()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget unsetParentwidget()
     * @method bool hasParentwidget()
     * @method bool isParentwidgetFilled()
     * @method bool isParentwidgetChanged()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget fillParentwidget()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget set($fieldName, $value)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget reset($fieldName)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Widget wakeUp($data)
     */
    class EO_Widget
    {
        /* @var \Bitrix\Report\VisualConstructor\Internal\WidgetTable */
        public static $dataClass = '\\Bitrix\\Report\\VisualConstructor\\Internal\\WidgetTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Widget_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getGidList()
     * @method \string[] fillGid()
     * @method \string[] getBoardIdList()
     * @method \string[] fillBoardId()
     * @method \int[] getDashboardRowIdList()
     * @method \int[] fillDashboardRowId()
     * @method \int[] getParentWidgetIdList()
     * @method \int[] fillParentWidgetId()
     * @method \string[] getWeightList()
     * @method \string[] fillWeight()
     * @method \string[] getCategoryKeyList()
     * @method \string[] fillCategoryKey()
     * @method \string[] getViewKeyList()
     * @method \string[] fillViewKey()
     * @method \int[] getOwnerIdList()
     * @method \int[] fillOwnerId()
     * @method \string[] getWidgetClassList()
     * @method \string[] fillWidgetClass()
     * @method \Bitrix\Main\Type\Date[] getCreatedDateList()
     * @method \Bitrix\Main\Type\Date[] fillCreatedDate()
     * @method \Bitrix\Main\Type\Date[] getUpdatedDateList()
     * @method \Bitrix\Main\Type\Date[] fillUpdatedDate()
     * @method \boolean[] getIsPatternList()
     * @method \boolean[] fillIsPattern()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow[] getRowList()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget_Collection getRowCollection()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_DashboardRow_Collection fillRow()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget[] getParentwidgetList()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget_Collection getParentwidgetCollection()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget_Collection fillParentwidget()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Report\VisualConstructor\Internal\EO_Widget $object)
     * @method bool has(\Bitrix\Report\VisualConstructor\Internal\EO_Widget $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget getByPrimary($primary)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget[] getAll()
     * @method bool remove(\Bitrix\Report\VisualConstructor\Internal\EO_Widget $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Widget_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Widget_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Report\VisualConstructor\Internal\WidgetTable */
        public static $dataClass = '\\Bitrix\\Report\\VisualConstructor\\Internal\\WidgetTable';
    }
    /**
     * @method static EO_Widget_Query query()
     * @method static EO_Widget_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Widget_Result getById($id)
     * @method static EO_Widget_Result getList(array $parameters = array())
     * @method static EO_Widget_Entity getEntity()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Widget createObject($setDefaultValues = true)
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Widget_Collection createCollection()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Widget wakeUpObject($row)
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_Widget_Collection wakeUpCollection($rows)
     */
    class WidgetTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Widget_Result exec()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget fetchObject()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Widget_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget fetchObject()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget_Collection fetchCollection()
     */
    class EO_Widget_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget createObject($setDefaultValues = true)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget_Collection createCollection()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget wakeUpObject($row)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget_Collection wakeUpCollection($rows)
     */
    class EO_Widget_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_WidgetConfiguration
     * @see \Bitrix\Report\VisualConstructor\Internal\WidgetConfigurationTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getWidgetId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration setWidgetId(\int|\Bitrix\Main\DB\SqlExpression $widgetId)
     * @method bool hasWidgetId()
     * @method bool isWidgetIdFilled()
     * @method bool isWidgetIdChanged()
     * @method \int getConfigurationId()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration setConfigurationId(\int|\Bitrix\Main\DB\SqlExpression $configurationId)
     * @method bool hasConfigurationId()
     * @method bool isConfigurationIdFilled()
     * @method bool isConfigurationIdChanged()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget getWidget()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget remindActualWidget()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget requireWidget()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration setWidget(\Bitrix\Report\VisualConstructor\Internal\EO_Widget $object)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration resetWidget()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration unsetWidget()
     * @method bool hasWidget()
     * @method bool isWidgetFilled()
     * @method bool isWidgetChanged()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget fillWidget()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting getConfigurationSetting()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting remindActualConfigurationSetting()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting requireConfigurationSetting()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration setConfigurationSetting(\Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting $object)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration resetConfigurationSetting()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration unsetConfigurationSetting()
     * @method bool hasConfigurationSetting()
     * @method bool isConfigurationSettingFilled()
     * @method bool isConfigurationSettingChanged()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting fillConfigurationSetting()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration set($fieldName, $value)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration reset($fieldName)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration wakeUp($data)
     */
    class EO_WidgetConfiguration
    {
        /* @var \Bitrix\Report\VisualConstructor\Internal\WidgetConfigurationTable */
        public static $dataClass = '\\Bitrix\\Report\\VisualConstructor\\Internal\\WidgetConfigurationTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_WidgetConfiguration_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getWidgetIdList()
     * @method \int[] getConfigurationIdList()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget[] getWidgetList()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration_Collection getWidgetCollection()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_Widget_Collection fillWidget()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting[] getConfigurationSettingList()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration_Collection getConfigurationSettingCollection()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_ConfigurationSetting_Collection fillConfigurationSetting()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration $object)
     * @method bool has(\Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration getByPrimary($primary)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration[] getAll()
     * @method bool remove(\Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_WidgetConfiguration_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Report\VisualConstructor\Internal\WidgetConfigurationTable */
        public static $dataClass = '\\Bitrix\\Report\\VisualConstructor\\Internal\\WidgetConfigurationTable';
    }
    /**
     * @method static EO_WidgetConfiguration_Query query()
     * @method static EO_WidgetConfiguration_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_WidgetConfiguration_Result getById($id)
     * @method static EO_WidgetConfiguration_Result getList(array $parameters = array())
     * @method static EO_WidgetConfiguration_Entity getEntity()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration createObject($setDefaultValues = true)
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration_Collection createCollection()
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration wakeUpObject($row)
     * @method static \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration_Collection wakeUpCollection($rows)
     */
    class WidgetConfigurationTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_WidgetConfiguration_Result exec()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration fetchObject()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_WidgetConfiguration_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration fetchObject()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration_Collection fetchCollection()
     */
    class EO_WidgetConfiguration_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration createObject($setDefaultValues = true)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration_Collection createCollection()
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration wakeUpObject($row)
     * @method \Bitrix\Report\VisualConstructor\Internal\EO_WidgetConfiguration_Collection wakeUpCollection($rows)
     */
    class EO_WidgetConfiguration_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Report {
    class RightsManager
    {
        const ACCESS_READ = 'access_read';
        const ACCESS_EDIT = 'access_edit';
        const ACCESS_FULL = 'access_full';
        protected $userId;
        public function __construct($userId)
        {
        }
        /**
         * Checks the right to read.
         * @param int $reportId Id report.
         * @return bool
         */
        public function canRead($reportId)
        {
        }
        /**
         * Checks the right to edit.
         * @param int $reportId Id report.
         * @return bool
         */
        public function canEdit($reportId)
        {
        }
        /**
         * Checks the right to delete.
         * @param int $reportId Id report.
         * @return bool
         */
        public function canDelete($reportId)
        {
        }
        /**
         * Checks the right to share.
         * @param int $reportId Id report.
         * @return bool
         */
        public function canShare($reportId)
        {
        }
        /**
         * Returns an array of user groups and departments.
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         */
        public function getGroupsAndDepartments()
        {
        }
        private function isOwner($reportId)
        {
        }
        /**
         * @param $access1
         * @param $access2
         * @return int Returns < 0 if $access1 is less than $access2; > 0
         *    if $access1 is greater than $access2, and 0 if they are equal.
         * @internal
         */
        private function compareAccess($access1, $access2)
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor {
    /**
     * Interface IReportData
     * @package Bitrix\Report\VisualConstructor
     */
    interface IReportData
    {
        /**
         * Called every time when calculate some report result before passing some concrete handler, such us getMultipleData or getSingleData.
         * Here you can get result of configuration fields of report, if report in widget you can get configurations of widget.
         *
         * @return mixed
         */
        public function prepare();
    }
    /**
     * Interface IReportSingleData
     * @package Bitrix\Report\VisualConstructor
     */
    interface IReportSingleData extends \Bitrix\Report\VisualConstructor\IReportData
    {
        /**
         * array with format
         * array(
         *     'title' => 'Some Title',
         *     'value' => 0,
         *     'targetUrl' => 'http://url.domain?params=param'
         * )
         * @return array
         */
        public function getSingleData();
        /**
         * @return array
         */
        public function getSingleDemoData();
    }
}
namespace Bitrix\Report\VisualConstructor\Internal\Error {
    /**
     * Interface IErrorable
     * @package Bitrix\Report\VisualConstructor\Internal\Error
     */
    interface IErrorable
    {
        /**
         * Get Errors collections.
         * @return array
         */
        public function getErrors();
    }
}
namespace Bitrix\Report\VisualConstructor {
    /**
     * Class ReportDispatcher
     * @package Bitrix\Report\VisualConstructor
     */
    class ReportDispatcher implements \Bitrix\Report\VisualConstructor\Internal\Error\IErrorable
    {
        private $view;
        private $report;
        private $errors = array();
        /**
         * @return mixed|null|string
         */
        public function getReportCompatibleData()
        {
        }
        /**
         * @return Error[]
         */
        public function getErrors()
        {
        }
        /**
         * @return View
         */
        public function getView()
        {
        }
        /**
         * @param View $view View controller entity.
         * @return void
         */
        public function setView(\Bitrix\Report\VisualConstructor\View $view)
        {
        }
        /**
         * @return Report
         */
        public function getReport()
        {
        }
        /**
         * @param Report $report Report entity.
         * @return void
         */
        public function setReport($report)
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Handler {
    /**
     * Class Base
     * @package Bitrix\Report\VisualConstructor\Handler
     */
    abstract class Base
    {
        protected $configurations = array();
        protected $view;
        /**
         * @var BaseFormElement[]
         */
        protected $formElementsList = array();
        /**
         * @return string
         */
        public static function getClassName()
        {
        }
        /**
         * @return BaseFormElement[]
         */
        public function getCollectedFormElements()
        {
        }
        /**
         * @param string $key Unique key to fine element in form elements list.
         * @return BaseFormElement|BaseValuable|null
         */
        public function getFormElementFromCollected($key)
        {
        }
        /**
         * Collecting form elements for configuration form.
         *
         * @return void
         */
        protected abstract function collectFormElements();
        /**
         * @param BaseValuable $element
         */
        private function addToConfiguration(\Bitrix\Report\VisualConstructor\Fields\Valuable\BaseValuable $element)
        {
        }
        /**
         * Add form element to end of elements list.
         *
         * @param BaseFormElement $element Element to add to form.
         * @return void
         */
        public function addFormElement(\Bitrix\Report\VisualConstructor\Fields\Base $element)
        {
        }
        /**
         * Add form element before target element.
         *
         * @param BaseFormElement $newElement Element to add to form.
         * @param BaseFormElement $targetElement Element before which need to add.
         * @return void
         */
        public function addFormElementBefore(\Bitrix\Report\VisualConstructor\Fields\Base $newElement, \Bitrix\Report\VisualConstructor\Fields\Base $targetElement)
        {
        }
        /**
         * Add form element after target element.
         *
         * @param BaseFormElement $newElement Element to add to form.
         * @param BaseFormElement $targetElement Element after which need to add.
         * @return void
         */
        public function addFormElementAfter(\Bitrix\Report\VisualConstructor\Fields\Base $newElement, \Bitrix\Report\VisualConstructor\Fields\Base $targetElement)
        {
        }
        /**
         * Insert element to start of form elements list.
         *
         * @param BaseFormElement $newElement Element which need to insert to start of form.
         * @return void
         */
        public function addFormElementToStart(\Bitrix\Report\VisualConstructor\Fields\Base $newElement)
        {
        }
        /**
         * Analog of add form element.
         *
         * @param BaseFormElement $newElement Element which need to insert to end of form.
         * @return void
         */
        public function addFormElementToEnd(\Bitrix\Report\VisualConstructor\Fields\Base $newElement)
        {
        }
        /**
         * Setter to set form elements multiply.
         *
         * @param BaseFormElement[] $formElementList Form elements to set in form.
         * @return void
         */
        public function setFormElements($formElementList)
        {
        }
        /**
         * @param BaseValuable|string $formElement Form element which need to update.
         * @param mixed $value New value for form element.
         * @return bool
         */
        public function updateFormElementValue($formElement, $value)
        {
        }
        /**
         * @return BaseFormElement[]
         */
        public function getFormElements()
        {
        }
        /**
         * In form elements list find form element with key $fieldKey.
         *
         * @param string $fieldKey Unique key to find form element.
         * @return BaseFormElement|\Bitrix\Report\VisualConstructor\Fields\Valuable\BaseValuable|null
         */
        public function getFormElement($fieldKey)
        {
        }
        /**
         * Returns value of the form element with given key.
         *
         * @param string $fieldKey The key of the field.
         * @return mixed|null
         */
        public function getFormElementValue($fieldKey)
        {
        }
        /**
         * Find form element by attribute key value pair.
         *
         * @param string $attributeKey Attribute key to find in form elements list.
         * @param string $value Value of attribute name for needle form element.
         * @return BaseFormElement|null
         */
        public function getFormElementByDataAttribute($attributeKey, $value)
        {
        }
        /**
         * Remove from form elements list form element.
         *
         * @param BaseFormElement $element Element to remove.
         * @return bool
         */
        public function removeFormElement(\Bitrix\Report\VisualConstructor\Fields\Base $element)
        {
        }
        /**
         * @param Configuration[] $configurations Configuration list to set.
         * @return void
         */
        public function setConfigurations($configurations)
        {
        }
        /**
         * @return Configuration[]
         */
        public function getConfigurations()
        {
        }
        /**
         * @return Configuration[]
         */
        public function getConfigurationsGidKeyed()
        {
        }
        /**
         * TODO@ optimise this
         * @param string $key Unique key to find configuration.
         * @return Configuration|null
         */
        public function getConfiguration($key)
        {
        }
        /**
         * Construct form element, to render in form.
         *
         * @param BaseValuable $element Form element.
         * @return string
         */
        protected function getNameForFormElement(\Bitrix\Report\VisualConstructor\Fields\Valuable\BaseValuable $element)
        {
        }
        /**
         * @return View|null
         */
        public function getView()
        {
        }
        /**
         * @param View $view View entity to set of handler.
         * @return void
         */
        public function setView(\Bitrix\Report\VisualConstructor\View $view)
        {
        }
    }
    /**
     * Class BaseReport
     * @property mixed category
     * @property void unit
     * @package Bitrix\Report\VisualConstructor
     */
    abstract class BaseReport extends \Bitrix\Report\VisualConstructor\Handler\Base implements \Bitrix\Report\VisualConstructor\IReportData
    {
        private $title;
        private $categoryKey;
        private $unitKey;
        private $weight = 0;
        private $report;
        private $calculatedData;
        private $widgetHandler;
        /**
         * BaseReport constructor.
         */
        public function __construct()
        {
        }
        /**
         * @return \Bitrix\Report\VisualConstructor\Fields\Base[]
         */
        public function getCollectedFormElements()
        {
        }
        /**
         * Collecting form elements for configuration form.
         *
         * @return void
         */
        protected function collectFormElements()
        {
        }
        /**
         * @return DropDown
         */
        public function getCalculateField()
        {
        }
        /**
         * @param DropDown $whatWillCalculateField What will calculate field.
         * @return DropDown
         */
        public function getGroupingField(\Bitrix\Report\VisualConstructor\Fields\Valuable\DropDown $whatWillCalculateField)
        {
        }
        /**
         * @return array
         */
        protected function getGroupByOptions()
        {
        }
        /**
         * @return BaseFormField[]
         */
        public function getFormElements()
        {
        }
        /**
         * @param BaseValuable $element Element for which construct name.
         * @param string $pseudoReportId pseudo report id is report not exist.
         * @return string
         */
        protected function getNameForFormElement(\Bitrix\Report\VisualConstructor\Fields\Valuable\BaseValuable $element, $pseudoReportId = '')
        {
        }
        /**
         * @return string
         */
        public function getTitle()
        {
        }
        /**
         * @param string $title Title of report handler.
         * @return void
         */
        public function setTitle($title)
        {
        }
        /**
         * @return mixed
         */
        public function getWeight()
        {
        }
        /**
         * @param mixed $weight Weight value for sorting.
         * @return void
         */
        public function setWeight($weight)
        {
        }
        /**
         * @return Report
         */
        public function getReport()
        {
        }
        /**
         * @param Report $report Report entity.
         * @return void
         */
        public function setReport($report)
        {
        }
        /**
         * @return mixed
         */
        public function getCalculatedData()
        {
        }
        /**
         * @param mixed $calculatedData Report handler calculated data.
         * @return void
         */
        public function setCalculatedData($calculatedData)
        {
        }
        /**
         * Fill report handler properties from Report entity.
         *
         * @param Report $report Report entity.
         * @return void
         */
        public function fillReport(\Bitrix\Report\VisualConstructor\Entity\Report $report)
        {
        }
        private function fillFormElementsValues()
        {
        }
        /**
         * @return string
         */
        public function getCategoryKey()
        {
        }
        /**
         * Attach report handler to category.
         *
         * @param string $categoryKey Category key.
         * @return void
         */
        protected function setCategoryKey($categoryKey)
        {
        }
        /**
         * @return string
         */
        public function getUnitKey()
        {
        }
        /**
         * @param string $unitKey Unit measurement key.
         * @return void
         */
        protected function setUnitKey($unitKey)
        {
        }
        /**
         * Field for selecting category.
         *
         * @return DropDown
         */
        private function getReportHandlerCategoryField()
        {
        }
        /**
         * Build report handler select drop down.
         * Collect all report handler sin selected category.
         *
         * @param string $categoryKey Category key.
         * @return CustomDropDown
         */
        private function getReportHandlerSelectField($categoryKey = '__')
        {
        }
        /**
         * @return array
         */
        public function getReportImplementedDataTypes()
        {
        }
        /**
         * @return BaseWidget|null
         */
        public function getWidgetHandler()
        {
        }
        /**
         * Attach report handler to widget handler.
         *
         * @param BaseWidget $widgetHandler Widget handler.
         * @return void
         */
        public function setWidgetHandler(\Bitrix\Report\VisualConstructor\Handler\BaseWidget $widgetHandler)
        {
        }
        /**
         * In cloning of entity clone nested entities too.(configurations, form elements list).
         * @return void
         */
        public function __clone()
        {
        }
        /**
         *
         * @param null $groupingValue Grouping field value.
         * @return array
         */
        public function getWhatWillCalculateOptions($groupingValue = null)
        {
        }
        /**
         * In some case, need to dynamically disable some report handler
         * @return bool
         */
        public function isEnabled()
        {
        }
    }
    /**
     * Class BaseWidget class for extending to create preset widget classes
     * @package Bitrix\Report\VisualConstructor\Handler
     */
    class BaseWidget extends \Bitrix\Report\VisualConstructor\Handler\Base
    {
        private $widget;
        private $reportHandlerList = array();
        /**
         * @return string
         */
        public static function getClassName()
        {
        }
        /**
         * BaseWidgetHandler constructor.
         */
        public function __construct()
        {
        }
        /**
         * @return Fields\Base[]
         */
        public function getCollectedFormElements()
        {
        }
        /**
         * Collecting form elements for configuration form.
         *
         * @return void
         */
        protected function collectFormElements()
        {
        }
        /**
         * @return Widget
         */
        public function getWidget()
        {
        }
        /**
         * @param Widget $widget Widget entity.
         * @return void
         */
        public function setWidget($widget)
        {
        }
        /**
         * @return Fields\Base[]
         */
        public function getFormElements()
        {
        }
        /**
         * Construct and return form element name.
         *
         * @param BaseValuable $element Form element.
         * @return string
         */
        protected function getNameForFormElement(\Bitrix\Report\VisualConstructor\Fields\Valuable\BaseValuable $element)
        {
        }
        /**
         * @return BaseReport[]
         */
        public function getReportHandlers()
        {
        }
        /**
         * Attach report handler to widget handler.
         *
         * @param BaseReport $reportHandler Report handler.
         * @return $this
         */
        public function addReportHandler(\Bitrix\Report\VisualConstructor\Handler\BaseReport $reportHandler)
        {
        }
        /**
         * Fill Widget handler entity with parameters from Widget entity.
         *
         * @param Widget $widget Widget handler.
         * @return void
         */
        public function fillWidget(\Bitrix\Report\VisualConstructor\Entity\Widget $widget)
        {
        }
        private function fillFormElementValues()
        {
        }
    }
    /**
     * Report handler class where instance of class oparate with values of other reports in context of one widget.
     *
     * @package Bitrix\Report\VisualConstructor\Handler
     */
    class Formula extends \Bitrix\Report\VisualConstructor\Handler\BaseReport implements \Bitrix\Report\VisualConstructor\IReportSingleData
    {
        /**
         * BaseReport constructor.
         */
        public function __construct()
        {
        }
        /**
         * Prepare/calculate data for report.
         * @return mixed
         */
        public function prepare()
        {
        }
        /**
         * array with format
         * array(
         *     'title' => 'Some Title',
         *     'value' => 0,
         *     'targetUrl' => 'http://url.domain?params=param'
         * )
         * @return array
         */
        public function getSingleData()
        {
        }
        /**
         * @return array
         */
        public function getSingleDemoData()
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor {
    /**
     * Interface IReportMultipleBiGroupedData
     * @package Bitrix\Report\VisualConstructor
     */
    interface IReportMultipleBiGroupedData extends \Bitrix\Report\VisualConstructor\IReportData
    {
        /**
         * Array format for return this method:<br>
         * array(
         *      'items' => array(
         *           array(
         *              'firstGroupId' => 1,
         *              'secondGroupId' => 2,
         *              'title' => 'Some Title',
         *              'value' => 1,
         *              'targetUrl' => 'http://url.domain?params=param'
         *          ),
         *          array(
         *              'firstGroupId' => 1,
         *              'secondGroupId' => 2,
         *              'title' => 'Some Title',
         *              'value' => 2,
         *              'targetUrl' => 'http://url.domain?params=param'
         *          )
         *      ),
         *      'config' => array(
         *          'firstGroupLabelsMap' => array(
         *              '1' => array(
         *                  'name' => 'Monday',
         *                  'params' => array()
         *              ),
         *              '2' => array(
         *                  'name' => 'Second Day of week',
         *                  'params' => array()
         *              ),
         *          ),
         *          'secondGroupLabelsMap' => array(
         *              '01.01.1970' => array(
         *                  'name' => 'Start of our internet evolution',
         *                  'params' => array()
         *              ),
         *              '15' => array(
         *                  'name' => 'Just a simple integer',
         *                  'params' => array()
         *              ),
         *          ),
         *          'reportTitle' => 'Some title for this report'
         *      )
         * )
         * @return array
         */
        public function getMultipleBiGroupedData();
        /**
         * @return mixed
         */
        public function getMultipleBiGroupedDemoData();
    }
    /**
     * Interface IReportMultipleGroupedData
     * @package Bitrix\Report\VisualConstructor
     */
    interface IReportMultipleGroupedData extends \Bitrix\Report\VisualConstructor\IReportData
    {
        /**
         * Array format for return this method:<br>
         * array(
         *      'items' => array(
         *           array(
         *              'groupBy' => 01.01.1970 or 15 etc.
         *              'title' => 'Some Title',
         *              'value' => 1,
         *              'targetUrl' => 'http://url.domain?params=param'
         *          ),
         *          array(
         *              'groupBy' => 01.01.1970 or 15 etc.
         *              'title' => 'Some Title',
         *              'value' => 2,
         *              'targetUrl' => 'http://url.domain?params=param'
         *          )
         *      ),
         *      'config' => array(
         *          'groupsLabelMap' => array(
         *              '01.01.1970' => 'Start of our internet evolution'
         *              '15' =>  'Just a simple integer'
         *          ),
         *          'reportTitle' => 'Some title for this report'
         *      )
         * )
         * @return array
         */
        public function getMultipleGroupedData();
        /**
         * @return array
         */
        public function getMultipleGroupedDemoData();
    }
    /**
     * Interface IReportSingleData
     * @package Bitrix\Report\VisualConstructor
     */
    interface IReportMultipleData extends \Bitrix\Report\VisualConstructor\IReportData
    {
        /**
         * array with format
         * array(
         *     'items' => array(
         *     	    array(
         *     		    'label' => 'Some Title',
         *     		    'value' => 5,
         *     		    'targetUrl' => 'http://url.domain?params=param'
         *          )
         *     )
         * )
         * @return array
         */
        public function getMultipleData();
        /**
         * @return array
         */
        public function getMultipleDemoData();
    }
}
namespace Bitrix\Report\VisualConstructor\Handler {
    /**
     * Class EmptyReport
     * @package Bitrix\Report\VisualConstructor\Handler
     */
    class EmptyReport extends \Bitrix\Report\VisualConstructor\Handler\BaseReport implements \Bitrix\Report\VisualConstructor\IReportMultipleBiGroupedData, \Bitrix\Report\VisualConstructor\IReportMultipleGroupedData, \Bitrix\Report\VisualConstructor\IReportMultipleData, \Bitrix\Report\VisualConstructor\IReportSingleData
    {
        /**
         * BaseReport constructor.
         */
        public function __construct()
        {
        }
        /**
         * Collecting form elements for configuration form.
         *
         * @return void
         */
        public function collectFormElements()
        {
        }
        /**
         * Array format for return this method:<br>
         * array(
         *      'items' => array(
         *           array(
         *              'firstGroupId' => 1,
         *              'secondGroupId' => 2,
         *              'title' => 'Some Title',
         *              'value' => 1,
         *              'targetUrl' => 'http://url.domain?params=param'
         *          ),
         *          array(
         *              'firstGroupId' => 1,
         *              'secondGroupId' => 2,
         *              'title' => 'Some Title',
         *              'value' => 2,
         *              'targetUrl' => 'http://url.domain?params=param'
         *          )
         *      ),
         *      'config' => array(
         *          'firstGroupLabelsMap' => array(
         *              '1' => array(
         *                  'name' => 'Monday',
         *                  'params' => array()
         *              ),
         *              '2' => array(
         *                  'name' => 'Second Day of week',
         *                  'params' => array()
         *              ),
         *          ),
         *          'secondGroupLabelsMap' => array(
         *              '01.01.1970' => array(
         *                  'name' => 'Start of our internet evolution',
         *                  'params' => array()
         *              ),
         *              '15' => array(
         *                  'name' => 'Just a simple integer',
         *                  'params' => array()
         *              ),
         *          ),
         *          'reportTitle' => 'Some title for this report'
         *      )
         * )
         * @return array
         */
        public function getMultipleBiGroupedData()
        {
        }
        /**
         * @return mixed
         */
        public function getMultipleBiGroupedDemoData()
        {
        }
        /**
         * array with format
         * array(
         *     'items' => array(
         *            array(
         *                'label' => 'Some Title',
         *                'value' => 5,
         *                'targetUrl' => 'http://url.domain?params=param'
         *          )
         *     )
         * )
         * @return array
         */
        public function getMultipleData()
        {
        }
        /**
         * @return array
         */
        public function getMultipleDemoData()
        {
        }
        /**
         * Array format for return this method:<br>
         * array(
         *      'items' => array(
         *           array(
         *              'groupBy' => 01.01.1970 or 15 etc.
         *              'title' => 'Some Title',
         *              'value' => 1,
         *              'targetUrl' => 'http://url.domain?params=param'
         *          ),
         *          array(
         *              'groupBy' => 01.01.1970 or 15 etc.
         *              'title' => 'Some Title',
         *              'value' => 2,
         *              'targetUrl' => 'http://url.domain?params=param'
         *          )
         *      ),
         *      'config' => array(
         *          'groupsLabelMap' => array(
         *              '01.01.1970' => 'Start of our internet evolution'
         *              '15' =>  'Just a simple integer'
         *          ),
         *          'reportTitle' => 'Some title for this report'
         *      )
         * )
         * @return array
         */
        public function getMultipleGroupedData()
        {
        }
        /**
         * @return array
         */
        public function getMultipleGroupedDemoData()
        {
        }
        /**
         * @return array
         */
        public function getSingleDemoData()
        {
        }
        /**
         * @return array
         */
        public function getSingleData()
        {
        }
        /**
         * Called every time when calculate some report result before passing some concrete handler, such us getMultipleData or getSingleData.
         * Here you can get result of configuration fields of report, if report in widget you can get configurations of widget.
         *
         * @return mixed
         */
        public function prepare()
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor {
    /**
     * Class AnalyticBoard
     * @package Bitrix\Report\VisualConstructor
     */
    class AnalyticBoard
    {
        private $title;
        private $boardKey;
        private $machineKey;
        private $filter;
        private $batchKey = null;
        private $buttons = [];
        private $disabled = false;
        private $stepperEnabled = false;
        private $stepperIds = [];
        private $limited = false;
        private $limitComponentParams = [];
        private $isExternal = false;
        private $externalUrl = "";
        public function __construct($boardId = '')
        {
        }
        /**
         * @return mixed
         */
        public function getTitle()
        {
        }
        /**
         * @param mixed $title
         */
        public function setTitle($title)
        {
        }
        /**
         * @return mixed
         */
        public function getBoardKey()
        {
        }
        /**
         * @param mixed $boardKey
         */
        public function setBoardKey($boardKey)
        {
        }
        /**
         * @return mixed
         */
        public function getMachineKey()
        {
        }
        /**
         * @param mixed $machineKey
         */
        public function setMachineKey($machineKey)
        {
        }
        /**
         * @return Filter
         */
        public function getFilter()
        {
        }
        /**
         * @param Filter $filter
         */
        public function setFilter(\Bitrix\Report\VisualConstructor\Helper\Filter $filter)
        {
        }
        /**
         * @return string
         */
        public function getBatchKey()
        {
        }
        /**
         * @param string $batchKey
         */
        public function setBatchKey($batchKey)
        {
        }
        /**
         * @return bool
         */
        public function isNestedInBatch()
        {
        }
        /**
         * @param BoardButton $button
         */
        public function addButton(\Bitrix\Report\VisualConstructor\BoardButton $button)
        {
        }
        public function getButtonsContent()
        {
        }
        /**
         * @return BoardButton[]
         */
        public function getButtons()
        {
        }
        /**
         * @return bool
         */
        public function isDisabled()
        {
        }
        /**
         * @param bool $disabled
         */
        public function setDisabled($disabled)
        {
        }
        public function addFeedbackButton()
        {
        }
        /**
         * @return bool
         */
        public function isStepperEnabled()
        {
        }
        public function getStepperIds()
        {
        }
        public function setStepperIds($stepperIds = [])
        {
        }
        /**
         * @param bool $stepperEnabled
         */
        public function setStepperEnabled($stepperEnabled)
        {
        }
        public function isLimited()
        {
        }
        private function getLimitComponentOptions()
        {
        }
        public function getLimitComponentName()
        {
        }
        public function getLimitComponentTemplateName()
        {
        }
        public function getLimitComponentParams()
        {
        }
        public function setLimit($limitComponentParams, $limit = false)
        {
        }
        /**
         * @return bool
         */
        public function isExternal() : bool
        {
        }
        /**
         * @param bool $isExternal
         */
        public function setExternal(bool $isExternal) : void
        {
        }
        /**
         * @return string
         */
        public function getExternalUrl() : string
        {
        }
        /**
         * @param string $externalUrl
         */
        public function setExternalUrl(string $externalUrl) : void
        {
        }
        public function getDisplayComponentName()
        {
        }
        public function getDisplayComponentTemplate()
        {
        }
        public function getDisplayComponentParams()
        {
        }
        /**
         * Special actions to perform with board reset, required by some boards
         */
        public function resetToDefault()
        {
        }
    }
    /**
     * Class Category, create instance of this class and than you can attach it to your report
     * @property array children
     * @property array parent
     * @package Bitrix\Report\VisualConstructor
     */
    class Category
    {
        private $key;
        private $label;
        private $parentKey = NULL;
        private $relations = array();
        /**
         * @return mixed
         */
        public function getParentKey()
        {
        }
        /**
         * Setter for parent category.
         *
         * @param string $parentKey Parent category key.
         * @return void
         */
        public function setParentKey($parentKey)
        {
        }
        /**
         * @return string Category identify key.
         */
        public function getKey()
        {
        }
        /**
         * Setter for key of category.
         *
         * @param string $key Category identify key.
         * @return void
         */
        public function setKey($key)
        {
        }
        /**
         * @return string
         */
        public function getLabel()
        {
        }
        /**
         * Setter for category label, this label will appear in categories lists.
         *
         * @param string $label Label value.
         * @return void
         */
        public function setLabel($label)
        {
        }
        /**
         * Setter for not exist properties.
         * All not exist properties will try to write to relations.
         *
         * @param string $key Key of set function.
         * @param mixed $value Value which try to set.
         * @return $this
         */
        public function __set($key, $value)
        {
        }
        /**
         * Getter for not exist properties
         * Return realtion value.
         *
         * @param string $value Relation name.
         * @return mixed
         */
        public function __get($value)
        {
        }
    }
    class AnalyticBoardBatch
    {
        private $title;
        private $key;
        private $order = 100;
        /**
         * @return mixed
         */
        public function getTitle()
        {
        }
        /**
         * @param mixed $title
         */
        public function setTitle($title)
        {
        }
        /**
         * @return mixed
         */
        public function getKey()
        {
        }
        /**
         * @param mixed $key
         */
        public function setKey($key)
        {
        }
        /**
         * @return mixed
         */
        public function getOrder()
        {
        }
        /**
         * @param mixed $order
         */
        public function setOrder($order) : void
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\RuntimeProvider {
    /**
     * Class Base
     * @package Bitrix\Report\VisualConstructor\RuntimeProvider
     */
    abstract class Base implements \Bitrix\Report\VisualConstructor\Internal\Error\IErrorable
    {
        private $results = array();
        private $filters = array();
        private $errors = array();
        private $relations = array();
        /**
         * @return array
         */
        protected abstract function availableFilterKeys();
        /**
         * @return \Bitrix\Report\VisualConstructor\Internal\Manager\Base
         */
        protected abstract function getManagerInstance();
        /**
         * @return IProvidable[]
         */
        protected abstract function getEntitiesList();
        /**
         * @return mixed
         */
        protected abstract function getIndices();
        /**
         * Check is available filter in filters list of provider.
         *
         * @param string $filterKey Needle filter key.
         * @return bool
         */
        private function isAvailableFilter($filterKey)
        {
        }
        /**
         * @param string $key Filter key.
         * @param mixed $value Filter value.
         * @return bool
         */
        public function addFilter($key, $value)
        {
        }
        /**
         * @param string $key Key of relation.
         * @return void
         */
        public function addRelation($key)
        {
        }
        /**
         * @return array
         */
        public function getFilters()
        {
        }
        /**
         * @return array
         */
        public function getRelations()
        {
        }
        /**
         * @return $this
         */
        public function execute()
        {
        }
        protected function sortResults(&$result)
        {
        }
        /**
         * @param array $indices Indices for search by filters.
         * @return array
         */
        private function getFilteredValues($indices)
        {
        }
        /**
         * @return array
         */
        public function getErrors()
        {
        }
        /**
         * @param array|mixed $value Value to normalise.
         * @return array
         */
        private function normaliseFilterValue($value)
        {
        }
        /**
         * @param object $entity Entity passed to processor.
         * @return void
         */
        protected function processAvailableRelations($entity)
        {
        }
        protected function callManager()
        {
        }
        /**
         * @return mixed
         */
        public function getFirstResult()
        {
        }
        /**
         * @return array
         */
        public function getResults()
        {
        }
        /**
         * @param array $results Result for setting as result of provider.
         * @return void
         */
        public function setResults($results)
        {
        }
    }
    /**
     * Class AnalyticBoardProvider
     * @package Bitrix\Report\VisualConstructor\RuntimeProvider
     * @method AnalyticBoard|null getFirstResult()
     */
    class AnalyticBoardProvider extends \Bitrix\Report\VisualConstructor\RuntimeProvider\Base
    {
        /**
         * @return array
         */
        protected function availableFilterKeys()
        {
        }
        /**
         * @return AnalyticBoardManager
         */
        protected function getManagerInstance()
        {
        }
        /**
         * @return AnalyticBoard[]
         */
        protected function getEntitiesList()
        {
        }
        /**
         * @return mixed
         *
         */
        protected function getIndices()
        {
        }
    }
    /**
     * Class DefaultBoardProvider
     * @package Bitrix\Report\VisualConstructor\RuntimeProvider
     * @method Dashboard|null getFirstResult()
     */
    class DefaultBoardProvider extends \Bitrix\Report\VisualConstructor\RuntimeProvider\Base
    {
        /**
         * @return array
         */
        protected function availableFilterKeys()
        {
        }
        /**
         * @return DefaultBoardManager
         */
        protected function getManagerInstance()
        {
        }
        /**
         * @return Dashboard[]
         */
        protected function getEntitiesList()
        {
        }
        /**
         * @return mixed
         */
        protected function getIndices()
        {
        }
    }
    class AnalyticBoardBatchProvider extends \Bitrix\Report\VisualConstructor\RuntimeProvider\Base
    {
        /**
         * @return array
         */
        protected function availableFilterKeys()
        {
        }
        /**
         * @return AnalyticBoardBatchManager
         */
        protected function getManagerInstance()
        {
        }
        /**
         * @return AnalyticBoardBatch[]
         */
        protected function getEntitiesList()
        {
        }
        /**
         * @return mixed
         *
         */
        protected function getIndices()
        {
        }
        /**
         * @param AnalyticBoardBatch[] $result
         */
        protected function sortResults(&$result)
        {
        }
    }
    /**
     * @method BaseWidget|null getFirstResult()
     * Class WidgetProvider
     * @package Bitrix\Report\VisualConstructor\RuntimeProvider
     */
    class WidgetProvider extends \Bitrix\Report\VisualConstructor\RuntimeProvider\Base
    {
        /**
         * @return array
         */
        protected function availableFilterKeys()
        {
        }
        /**
         * @return \Bitrix\Report\VisualConstructor\Internal\Manager\WidgetManager
         */
        protected function getManagerInstance()
        {
        }
        /**
         * @return IProvidable[]
         */
        protected function getEntitiesList()
        {
        }
        /**
         * @return mixed
         */
        protected function getIndices()
        {
        }
    }
    /**
     * @method BaseReport|null getFirstResult()
     * Class ReportProvider
     * @package Bitrix\Report\VisualConstructor\RuntimeProvider
     */
    class ReportProvider extends \Bitrix\Report\VisualConstructor\RuntimeProvider\Base
    {
        /**
         * @return array
         */
        protected function availableFilterKeys()
        {
        }
        /**
         * @return array
         */
        protected function availableRelations()
        {
        }
        /**
         * @return \Bitrix\Report\VisualConstructor\Internal\Manager\ReportManager
         */
        protected function getManagerInstance()
        {
        }
        /**
         * @return BaseReportHandler[]
         */
        protected function getEntitiesList()
        {
        }
        /**
         * @return array
         */
        protected function getIndices()
        {
        }
        /**
         * @param BaseReport $report
         */
        protected function processWithCategory(\Bitrix\Report\VisualConstructor\Handler\BaseReport $report)
        {
        }
        /**
         * @param string $className Report handler class name.
         * @return BaseReport|null
         */
        public static function getReportHandlerByClassName($className)
        {
        }
    }
    /**
     * @method Category|null getFirstResult()
     * Class CategoryProvider
     * @package Bitrix\Report\VisualConstructor\RuntimeProvider
     */
    class CategoryProvider extends \Bitrix\Report\VisualConstructor\RuntimeProvider\Base
    {
        /**
         * @return array
         */
        protected function availableFilterKeys()
        {
        }
        /**
         * @return array
         */
        protected function availableRelations()
        {
        }
        /**
         * @return CategoryManager
         */
        protected function getManagerInstance()
        {
        }
        /**
         * @return array
         */
        protected function getEntitiesList()
        {
        }
        /**
         * @return array
         */
        protected function getIndices()
        {
        }
        /**
         * @param Category $entity
         */
        protected function processWithParent(\Bitrix\Report\VisualConstructor\Category $entity)
        {
        }
        /**
         * @param Category $entity
         */
        protected function processWithChildren(\Bitrix\Report\VisualConstructor\Category $entity)
        {
        }
    }
    /**
     * @method View|null getFirstResult()
     * @method View[] getResults()
     * Class ViewProvider
     * @package Bitrix\Report\VisualConstructor\RuntimeProvider
     */
    class ViewProvider extends \Bitrix\Report\VisualConstructor\RuntimeProvider\Base
    {
        /**
         * @return array
         */
        protected function availableFilterKeys()
        {
        }
        /**
         * @return ViewManager
         */
        protected function getManagerInstance()
        {
        }
        /**
         * @return View[]
         */
        protected function getEntitiesList()
        {
        }
        /**
         * @return array
         */
        protected function getIndices()
        {
        }
        /**
         * @param string $viewKey View controller key.
         * @return View|null
         */
        public static function getViewByViewKey($viewKey)
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor {
    /**
     * Class EventHandler
     * @package Bitrix\Report\VisualConstructor
     */
    class EventHandler
    {
        /**
         * @return BaseWidgetHandler[]
         */
        public static function onWidgetCollect()
        {
        }
        /**
         * @return BaseReportHandler[]
         */
        public static function onReportsCollect()
        {
        }
        /**
         * @return Category[]
         */
        public static function onCategoriesCollect()
        {
        }
        /**
         * @return View[]
         */
        public static function onViewsCollect()
        {
        }
    }
    class BoardButton
    {
        private $html = '';
        private $jsList = [];
        private $cssList = [];
        private $stringList = [];
        public function __construct($html)
        {
        }
        public function getHtml()
        {
        }
        public function setHtml($html)
        {
        }
        public function getJsList()
        {
        }
        public function setJsList(array $jsList)
        {
        }
        public function addJs($jsPath)
        {
        }
        public function getStringList()
        {
        }
        public function setStringList(array $stringList)
        {
        }
        public function addString($string)
        {
        }
        public function getCssList()
        {
        }
        public function setCssList(array $cssList)
        {
        }
        public function addCss($jsPath)
        {
        }
        public function process()
        {
        }
        public function flush()
        {
        }
    }
    class BoardComponentButton extends \Bitrix\Report\VisualConstructor\BoardButton
    {
        private $componentName;
        private $componentTemplateName = '';
        private $componentParams = [];
        private $jsPathList = array();
        private $cssPathList = array();
        private $processed = false;
        public function __construct($componentName, $componentTemplateName = '', $componentParams = [])
        {
        }
        /**
         * @return mixed
         */
        public function getComponentName()
        {
        }
        /**
         * @param mixed $componentName
         */
        public function setComponentName($componentName)
        {
        }
        /**
         * @return string
         */
        public function getComponentTemplateName()
        {
        }
        /**
         * @param string $componentTemplateName
         */
        public function setComponentTemplateName($componentTemplateName)
        {
        }
        /**
         * @return array
         */
        public function getComponentParams()
        {
        }
        /**
         * @param array $componentParams
         */
        public function setComponentParams($componentParams)
        {
        }
        /**
         * @return $this|BoardButton
         */
        public function process()
        {
        }
        public function flush()
        {
        }
        private function collectAssetsPathList()
        {
        }
        /**
         * @return array
         */
        private function getComponentJsList()
        {
        }
        /**
         * @return array
         */
        private function getComponentCssList()
        {
        }
        /**
         * @return array
         */
        private function getComponentStringList()
        {
        }
        /**
         * @return bool
         */
        public function isProcessed()
        {
        }
        /**
         * @param bool $processed
         */
        public function setProcessed($processed)
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Config {
    /**
     * Class Common
     * @package Bitrix\Report\VisualConstructor\Config
     */
    final class Common
    {
        const INTERNAL_MODULE_ID = 'report';
        const EVENT_REPORT_COLLECT = 'onReportsCollect';
        const EVENT_WIDGET_COLLECT = 'onWidgetCollect';
        const EVENT_DEFAULT_BOARDS_COLLECT = 'onDefaultBoardsCollect';
        const MODULE_NAME = 'report';
        const EVENT_CATEGORY_COLLECT = 'onReportCategoryCollect';
        const EVENT_VIEW_TYPE_COLLECT = 'onReportViewCollect';
        const EVENT_ANALYTIC_PAGE_COLLECT = 'onAnalyticPageCollect';
        const EVENT_ANALYTIC_PAGE_BATCh_COLLECT = 'onAnalyticPageBatchCollect';
        const UNIT_MEASUREMENT_COUNT = 'count';
        const UNIT_MEASUREMENT_PERCENTAGE = 'percentage';
        const MULTIPLE_REPORT_TYPE = 'multiple';
        const MULTIPLE_GROUPED_REPORT_TYPE = 'multipleGrouped';
        const MULTIPLE_BI_GROUPED_REPORT_TYPE = 'multipleBiGrouped';
        const SINGLE_REPORT_TYPE = 'single';
        const ONE_TO_ONE = 'oneToOne';
        const MANY_TO_ONE = 'manyToOne';
        const ONE_TO_MANY = 'oneToMany';
        const MANY_TO_MANY = 'manyToMany';
        public static $reportImplementationTypesMap = array(self::SINGLE_REPORT_TYPE => array('interface' => 'Bitrix\\Report\\VisualConstructor\\IReportSingleData', 'method' => 'getSingleData', 'demoMethod' => 'getSingleDemoData'), self::MULTIPLE_REPORT_TYPE => array('interface' => 'Bitrix\\Report\\VisualConstructor\\IReportMultipleData', 'method' => 'getMultipleData', 'demoMethod' => 'getMultipleDemoData'), self::MULTIPLE_GROUPED_REPORT_TYPE => array('interface' => 'Bitrix\\Report\\VisualConstructor\\IReportMultipleGroupedData', 'method' => 'getMultipleGroupedData', 'demoMethod' => 'getMultipleGroupedDemoData'), self::MULTIPLE_BI_GROUPED_REPORT_TYPE => array('interface' => 'Bitrix\\Report\\VisualConstructor\\IReportMultipleBiGroupedData', 'method' => 'getMultipleBiGroupedData', 'demoMethod' => 'getMultipleBiGroupedDemoData'));
    }
}
namespace Bitrix\Report\VisualConstructor\Internal {
    /**
     * This class developed now only for models influencing with report visual constructor.
     * @package Bitrix\Report\VisualConstructor\Internal
     */
    abstract class Model implements \Bitrix\Report\VisualConstructor\Internal\Error\IErrorable
    {
        const ATTRIBUTE_SLICE_DELIMITER = '__';
        protected $id;
        protected $createdAt;
        protected $updatedAt;
        protected $errors;
        private $deletedEntities = array();
        private $currentDbState = array();
        //private $lazyAttributes;
        /**
         * Model constructor.
         */
        public function __construct()
        {
        }
        /**
         * Gets the fully qualified name of table class which belongs to current model.
         * @throws \Bitrix\Main\NotImplementedException
         * @return string
         */
        public static function getTableClassName()
        {
        }
        /**
         * Returns the list of pair for mapping data and object properties.
         * Key is field in DataManager, value is object property.
         * @return array
         */
        public static function getMapAttributes()
        {
        }
        /**
         * Returns map of lazy loaded attributes of current model.
         * supported relation types ONE_TO_MANY, MANY_TO_ONE, MANY_TO_MANY
         * example:
         *      array(
         *          'lazyLoadAttributeName_1' => array(
         *              'type' => Common::ONE_TO_MANY,
         *              'targetEntity' => TargetEntityClass::getClassName(), //inheritor of this class
         *              'mappedBy' => 'targetEntityField',
         *          ),
         *          'lazyLoadAttributeName_2' => array(
         *              'type' => Common::MANY_TO_ONE,
         *              'targetEntity' => TargetEntityClass::getClassName(), //inheritor of this class
         *              'inveredBy' => '',
         *              'join' => array(
         *                  'field' => array('thisFieldName', 'relationEntityFieldMame')
         *              )
         *          ),
         *          'lazyLoadAttributeName_1' => array(
         *              'type' => Common::MANY_TO_MANY,
         *              'targetEntity' => TargetEntityClass::getClassName(), //inheritor of this class
         *              'join' => array(
         *                  'tableClassName' => TableClassName::getClassName //Supporting table ORM class name for connecting 2 entities
         *                  'column' => array(SUPPORTING_CONNECT_COLUMN => array('thisPrimaryFieldName', 'SUPPORTING_TABLE_APPROPRIATE_FIELD_NAME')),
         *                  'inverseColumn' => array(SUPPORTING_CONNECT_COLUMN => array('relationEntityPrimaryFieldName', 'SUPPORTING_TABLE_APPROPRIATE_FIELD_NAME')),
         *              ),
         *           )
         *      )
         * @return array
         */
        public static function getMapReferenceAttributes()
        {
        }
        /**
         * @return Model
         */
        public function save()
        {
        }
        /**
         * @param static[] $references
         * @param $assoc
         * @param $ownerEntityId
         */
        private function saveOneToManyReferences($references, $assoc, $ownerEntityId)
        {
        }
        /**
         * @param static[] $references
         * @param $assoc
         * @param $ownerEntityId
         */
        private function saveManyToManyReferences($references, $assoc, $ownerEntityId)
        {
        }
        /**
         * @param static $reference
         * @param $assoc
         */
        private function saveManyToOneReference($reference, $assoc)
        {
        }
        /**
         * @return array
         */
        private function getConvertedMapAttributesToOrmFields()
        {
        }
        /**
         * @param array $data
         * @return \Bitrix\Main\Entity\AddResult
         */
        private function add(array $data)
        {
        }
        /**
         * @param $newEntityAttributes
         * @return array
         */
        private function getChangedOrmAttributes($newEntityAttributes)
        {
        }
        /**
         * @param $primary
         * @param array $data
         * @return \Bitrix\Main\Entity\UpdateResult
         */
        private function update($primary, array $data)
        {
        }
        /**
         * @return string
         */
        public static function getClassName()
        {
        }
        /**
         * @param array|ConditionTree $filter Filter parameters.
         * @param array $with Relation keys to load.
         * @param array $order Order parameters.
         * @return static
         */
        public static function load($filter, array $with = array(), $order = array())
        {
        }
        /**
         * Get model list like getList
         * @param array $parameters
         * @return static[]
         */
        protected static function getModelList(array $parameters)
        {
        }
        /**
         * @param array $parameters
         * @return \Bitrix\Main\DB\Result
         * @throws \Bitrix\Main\NotImplementedException
         */
        protected static function getList(array $parameters)
        {
        }
        /**
         * Builds model from array.
         * @param array $attributes Model attributes.
         * @param $parentEntity
         * @return static
         * @internal
         */
        protected static function buildFromArray(array $attributes, $parentEntity = null)
        {
        }
        /**
         * Method which transfer from Array to object of special type.
         *
         * @param array $attributes
         * @param $parentEntity
         * @return Model
         */
        private function setAttributes(array $attributes, $parentEntity)
        {
        }
        /**
         * @param array $parameters
         * @throws \Bitrix\Main\SystemException
         * @return array
         */
        protected static function prepareGetListParameters(array $parameters)
        {
        }
        /**
         * @param array $with
         * @return array
         * @throws ArgumentException
         */
        protected static function buildOrmSelectForReference(array $with)
        {
        }
        /**
         * @return bool|null
         */
        public function delete()
        {
        }
        /**
         * @param static[] $referenceEntities
         */
        private function deleteOneToManyReferences($referenceEntities)
        {
        }
        /**
         * @param static[] $referenceEntities
         * @param $assoc
         * @param $ownerId
         */
        private function deleteManyToManyReferences($referenceEntities, $assoc, $ownerId)
        {
        }
        /**
         * Clean from parent reference list deleted entity
         * @param $referenceEntity
         * @param $assoc
         * @param $ownerId
         */
        private function deleteManyToOneReference(&$referenceEntity, $assoc, $ownerId)
        {
        }
        /**
         * @return mixed
         */
        public function getId()
        {
        }
        /**
         * @param mixed $id Id property value.
         * @return void
         */
        public function setId($id)
        {
        }
        /**
         * @return DateTime
         */
        public function getCreatedAt()
        {
        }
        /**
         * @param DateTime $createdAt Record create time.
         * @return void
         */
        public function setCreatedAt(\Bitrix\Main\Type\DateTime $createdAt)
        {
        }
        /**
         * @return DateTime
         */
        public function getUpdatedAt()
        {
        }
        /**
         * @param DateTime $updatedAt Record update time.
         * @return void
         */
        public function setUpdatedAt(\Bitrix\Main\Type\DateTime $updatedAt)
        {
        }
        /**
         * @param mixed $id Load entity by id.
         * @return static
         */
        public static function loadById($id)
        {
        }
        /**
         * @param string $attributeName Attribute name to load to property from db.
         * @return void
         */
        public function loadAttribute($attributeName)
        {
        }
        /**
         * Implement delete and add actions for nested relations.
         *
         * @param string $name Getter name.
         * @param array $arguments Arguments passed to getter.
         * @return void
         */
        public function __call($name, array $arguments)
        {
        }
        /**
         * @param static[][] $deletedReferenceEntities
         */
        private function deleteReference($deletedReferenceEntities)
        {
        }
        /**
         * @return array
         */
        public function getErrors()
        {
        }
        /**
         * @return array
         */
        public function getCurrentDbState()
        {
        }
        public static function factoryWithHorizontalCells($cellCount = 1)
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Entity {
    /**
     * Dashboard entity for operate with dashboard table and with it's references.
     *
     * @method addRows(DashboardRow | DashboardRow[] $row) add row/rows to this board.
     * @method deleteRows(DashboardRow | DashboardRow[] $row) delete row connection and if it is ONE-TO-MANY delete Row entity.
     * @package Bitrix\Report\VisualConstructor\Entity
     */
    class Dashboard extends \Bitrix\Report\VisualConstructor\Internal\Model
    {
        protected $gId;
        protected $boardKey;
        protected $userId;
        /**
         * @var string for checking this board is apply in db or not.
         */
        protected $version = '';
        /**
         * @var $rows DashboardRow[]
         */
        protected $rows;
        /**
         * @return string
         */
        public static function getTableClassName()
        {
        }
        /**
         * Returns the list of pair for mapping data and object properties.
         * Key is field in DataManager, value is object property.
         *
         * @return array
         */
        public static function getMapAttributes()
        {
        }
        /**
         * Map to set relations of this entity with other entities.
         *
         * @return array
         */
        public static function getMapReferenceAttributes()
        {
        }
        /**
         * Return board with fully loaded rows and widgets by board key and user id.
         *
         * @param string $boardKey Board key.
         * @param int $userId User id.
         * @return static
         */
        public static function getBoardWithRowsAndWidgetsByBoardKeyUserId($boardKey, $userId)
        {
        }
        /**
         * Return default dashboard with relation entities.
         * if not exist dashboard with this key, by default create new dashboard with this key, and return it.
         *
         * @param string $boardKey Board key.
         * @param bool $createIfNotExist Marker define create or not default board, when call this method.
         * @return static
         */
        public static function getDefaultBoardWithEverythingByBoardKey($boardKey, $createIfNotExist = true)
        {
        }
        /**
         * Return dashboard by board key.
         *
         * @param string $boardKey Board key.
         * @return static
         */
        public static function getDefaultBoardByBoardKey($boardKey)
        {
        }
        /**
         * Return dasboard with all nested relations for current user by board key.
         *
         * @param string $boardKey Board key.
         * @return static
         */
        public static function getCurrentUserBoardWithEverythingByBoardKey($boardKey)
        {
        }
        /**
         * Get rows collection of current board.
         *
         * @return DashboardRow[]
         */
        public function getRows()
        {
        }
        /**
         * Get Copy of Board and nested entities for createing board.
         * All priamry keys are nulled.
         *
         * @return Dashboard
         */
        public function getCopyForCurrentUser()
        {
        }
        /**
         * @return string
         */
        public function getBoardKey()
        {
        }
        /**
         * Setter vor board key.
         * @param string $boardKey Board key.
         * @return void
         */
        public function setBoardKey($boardKey)
        {
        }
        /**
         * @return int
         */
        public function getUserId()
        {
        }
        /**
         * User id setter.
         *
         * @param int $userId User id.
         * @return void
         */
        public function setUserId($userId)
        {
        }
        /**
         * Load Dashboard by board key and user id.
         *
         * @param string $boardKey Board key.
         * @param int $userId User id.
         * @return Dashboard
         */
        public static function loadByBoardKeyAndUserId($boardKey, $userId)
        {
        }
        /**
         * Load multiple boards by board key.
         *
         * @param string $boardKey Board key.
         * @return Dashboard[]
         */
        public static function loadByBoardKeyMultiple($boardKey)
        {
        }
        /**
         * @return string
         */
        public function getGId()
        {
        }
        /**
         * Gid setter.
         *
         * @param string $gId Gid for current board.
         * @return void
         */
        public function setGId($gId)
        {
        }
        /**
         * Get version.
         *
         * @return string
         */
        public function getVersion()
        {
        }
        /**
         * Setterr for version.
         *
         * @param string $version Version value.
         * @return void
         */
        public function setVersion($version)
        {
        }
    }
    /**
     * Class Configuration
     * @package Bitrix\Report\VisualConstructor\Entity
     */
    class Configuration extends \Bitrix\Report\VisualConstructor\Internal\Model
    {
        protected $gId;
        protected $weight = 0;
        protected $value;
        protected $fieldClassName = '';
        protected $key;
        /**
         * Returns the list of pair for mapping data and object properties.
         * Key is field in DataManager, value is object property.
         *
         * @return array
         */
        public static function getMapAttributes()
        {
        }
        /**
         * Gets the fully qualified name of table class which belongs to current model.
         *
         * @return string
         */
        public static function getTableClassName()
        {
        }
        /**
         * @return int
         */
        public function getWeight()
        {
        }
        /**
         * Weight value for sorting.
         *
         * @param int $weight Weight value.
         * @return void
         */
        public function setWeight($weight)
        {
        }
        /**
         * @return mixed
         */
        public function getKey()
        {
        }
        /**
         * @param mixed $key Unique key for configuration in context.
         * @return void
         */
        public function setKey($key)
        {
        }
        /**
         * @return mixed
         */
        public function getValue()
        {
        }
        /**
         * Serialize and set value.
         *
         * @param mixed $value Value to set.
         * @return void
         */
        public function setValue($value)
        {
        }
        /**
         * @return string
         */
        public function getFieldClassName()
        {
        }
        /**
         * Set field class name.
         *
         * @see Base::getClassName()
         * @param string $fieldClassName Field class name.
         * @return void
         */
        public function setFieldClassName($fieldClassName)
        {
        }
        /**
         * Load configuration list by ids,
         * query to db and after build configuration entities list
         *
         * @param array $ids Array of id.
         * @return static[]
         */
        public static function loadByIds(array $ids)
        {
        }
        /**
         * @return string
         */
        public function getGId()
        {
        }
        /**
         * Setter for gId value.
         *
         * @param string $gId Value of gId.
         * @return void
         */
        public function setGId($gId)
        {
        }
    }
    /**
     * Row entity for operate with dashboard row table and with it's references
     *
     * @method addWidgets(Widget | Widgets[] $widget) add widget/widgets to this row
     * @method deleteReports(Widget | Widgets[] $widget) delete widget connection and if it is ONE-TO-MANY delete Widget entity
     */
    class DashboardRow extends \Bitrix\Report\VisualConstructor\Internal\Model
    {
        protected $gId;
        protected $boardId;
        protected $weight;
        protected $layoutMap = '';
        /**@var Widget[] $widgets * */
        protected $widgets = array();
        /**@var Dashboard $dashboard * */
        protected $dashboard;
        /**
         * @return string
         */
        public static function getTableClassName()
        {
        }
        /**
         * Returns the list of pair for mapping data and object properties.
         * Key is field in DataManager, value is object property.
         *
         * @return array
         */
        public static function getMapAttributes()
        {
        }
        /**
         * @return array
         */
        public static function getMapReferenceAttributes()
        {
        }
        /**
         * @return DashboardRow
         */
        public function getCopyForCurrentUser()
        {
        }
        /**
         * @return Widget[]
         */
        public function getWidgets()
        {
        }
        /**
         * @return string
         */
        public function getBoardId()
        {
        }
        /**
         * Setter for board id.
         *
         * @param string $boardId Board id.
         * @return void
         */
        public function setBoardId($boardId)
        {
        }
        /**
         * @return int
         */
        public function getWeight()
        {
        }
        /**
         * Setter of Weight in rows list of dashboard. (for sorting).
         *
         * @param mixed $weight Weight of report.
         * @return void
         */
        public function setWeight($weight)
        {
        }
        /**
         * Load Rows list by board id and rows gIds.
         *
         * @param array $gIds Collection of gIds.
         * @param string $boardId Board id.
         * @return static[]
         */
        public static function getRowsByGIdsAndBoardId(array $gIds, $boardId)
        {
        }
        /**
         * Load and return rows list by board id.
         *
         * @param string $boardId Board id.
         * @return static[]
         */
        public static function getRowsWithWidgetsByBoard($boardId)
        {
        }
        /**
         * Load and return row by gId.
         *
         * @param string $gId Row gId.
         * @return static
         */
        public static function loadByGId($gId)
        {
        }
        /**
         * Laod current users row by row gId.
         *
         * @param string $rowGId Value of row gId.
         * @return DashboardRow
         */
        public static function getCurrentUserRowByGId($rowGId)
        {
        }
        /**
         * Get rows with nested widgets and reprts.
         *
         * @param string $boardId Board id.
         * @return static[]
         */
        public static function getRowsWithReportsByBoard($boardId)
        {
        }
        /**
         * @return array
         */
        public function getLayoutMap()
        {
        }
        /**
         * Serialize and set layout map array.
         *
         * @param array $layoutMap Layout map.
         * @return void
         */
        public function setLayoutMap($layoutMap)
        {
        }
        /**
         * @return Dashboard
         */
        public function getDashboard()
        {
        }
        /**
         * @return string
         */
        public function getGId()
        {
        }
        /**
         * Setter for gId value.
         *
         * @param string $gId Value of gId.
         * @return void
         */
        public function setGId($gId)
        {
        }
    }
    /**
     * Common class for models which have configurations sub entities
     * @method addConfigurations(Configuration | Configuration[] $configuration) add configuration/configurations to this
     * @method deleteConfigurations(Configuration | Configuration[] $configuration) delete connection with Configuration, but not delete Configuration object
     * @package Bitrix\Report\VisualConstructor\Entity
     */
    abstract class ConfigurableModel extends \Bitrix\Report\VisualConstructor\Internal\Model
    {
        /** @var Configuration[] $configurations */
        protected $configurations = array();
        /**
         * @return Configuration[]
         */
        public function getConfigurations()
        {
        }
        /**
         * Setter for Configuration colection.
         *
         * @param Configuration[] $configurations Configuration list.
         * @return void
         */
        public function setConfigurations($configurations)
        {
        }
        /**
         * Build configuration entity from valuable $field and add to configurations list
         *
         * @param BaseValuable $field Field from create configuration.
         * @return void
         */
        public function addConfigurationField(\Bitrix\Report\VisualConstructor\Fields\Valuable\BaseValuable $field)
        {
        }
    }
    /**
     * Class Widget
     * @method addReports(Report | Report[] $report) add report/reports to this widget.
     * @method deleteReports(Report | Report[] $report) delete report connection adn if it is ONE-TO-MANY delete Report entity.
     * @method deleteRow(DashboardRow $row) delete report connection with row.
     * @package Bitrix\Report\VisualConstructor\Entity
     */
    class Widget extends \Bitrix\Report\VisualConstructor\Entity\ConfigurableModel
    {
        protected $gId;
        protected $weight;
        protected $boardId;
        protected $rowId;
        protected $widgetClass;
        /**
         * @var BaseWidget $widgetHandler.
         */
        protected $widgetHandler;
        protected $viewKey;
        protected $ownerId = 0;
        protected $categoryKey = '';
        protected $isPattern = false;
        protected $parentWidgetId = 0;
        /** @var Report[] $reports */
        protected $reports = array();
        /** @var DashboardRow $row */
        protected $row;
        /** @var Widget $parentWidget */
        protected $parentWidget;
        /** @var Widget[] $childWidgets */
        protected $childWidgets = array();
        /**
         * Widget constructor.
         */
        public function __construct()
        {
        }
        /**
         * @return string
         */
        public static function getTableClassName()
        {
        }
        /**
         * Returns the list of pair for mapping data and object properties.
         * Key is field in DataManager, value is object property.
         *
         * @return array
         */
        public static function getMapAttributes()
        {
        }
        /**
         * @return array
         */
        public static function getMapReferenceAttributes()
        {
        }
        /**
         * Delete widget if it is not pattern.
         *
         * @return bool|null
         */
        public function delete()
        {
        }
        /**
         * Delete pattern widget.
         *
         * @return bool|null
         */
        public function deletePatternWidget()
        {
        }
        /**
         * Attach report handler to widget handler.
         *
         * @param BaseReport $reportHandler Report handler.
         * @return void
         */
        public function addReportHandler(\Bitrix\Report\VisualConstructor\Handler\BaseReport $reportHandler)
        {
        }
        /**
         * @param bool $isRuntime
         *
         * @return BaseWidget
         */
        public function getWidgetHandler($isRuntime = false)
        {
        }
        /**
         * Setter for widget handler.
         * Set class name and set widget handler.
         *
         * @param BaseWidget $widgetHandler Widget handler.
         * @return void
         */
        public function setWidgetHandler(\Bitrix\Report\VisualConstructor\Handler\BaseWidget $widgetHandler)
        {
        }
        /**
         * @return Report[]
         */
        public function getReports()
        {
        }
        /**
         * Return report list, key in list get from gId.
         *
         * @return Report[]
         */
        public function getReportsGidKeyed()
        {
        }
        /**
         * @param string $reportGId
         * @return Report|null
         */
        public function getReportByGId($reportGId)
        {
        }
        /**
         * @return string
         */
        public function getBoardId()
        {
        }
        /**
         * Setter for board id.
         *
         * @param string $boardId Board id.
         * @return void
         */
        public function setBoardId($boardId)
        {
        }
        /**
         * @return string
         */
        public function getViewKey()
        {
        }
        /**
         * Setter for view key.
         *
         * @param string $viewKey View key.
         * @return void
         */
        public function setViewKey($viewKey)
        {
        }
        /**
         * construct and return filter name base on widget id.
         *
         * @return string
         */
        public function getFilterId()
        {
        }
        /**
         * Perform copy of widget with copies of nested relations.
         *
         * @return Widget
         */
        public function getCopyForCurrentUser()
        {
        }
        /**
         * Get Widget by board id.
         * Load all nested relation.
         *
         * @param string $boardId Board id.
         * @return static[]
         */
        public static function getWidgetsByBoard($boardId)
        {
        }
        /**
         * @return Widget[]
         */
        public static function getCurrentUserPatternedWidgets()
        {
        }
        /**
         * Load widget and get configurations of loaded widget.
         *
         * @param string $widgetId Widget.
         * @return Configuration[]
         */
        public static function getWidgetConfigurations($widgetId)
        {
        }
        /**
         * Load and return widget by widget id.
         *
         * @param string $widgetId Widget id.
         * @return static
         */
        public static function getWidgetById($widgetId)
        {
        }
        /**
         * Get current user widget by widget id with nested relations,
         *
         * @param string $widgetGId Widget gId.
         * @return Widget
         */
        public static function getCurrentUserWidgetByGId($widgetGId)
        {
        }
        /**
         * If parameter start with pseudo_ then create new widget.
         * Else try to load widget by gid, and change view key.
         *
         * @param array $params Parameters to build pseudo widget. [viewKey => 'number', widgetGId => 'pseudo_widget_gid'].
         * @return Widget
         */
        public static function buildPseudoWidget($params)
        {
        }
        /**
         * Load widget with nested relations by widget gId.
         *
         * @param string $widgetGId Widget gId.
         * @return Widget
         */
        public static function getWidgetByGId($widgetGId)
        {
        }
        /**
         * Load widget with nested relations by widget Id.
         *
         * @param string $widgetId Widget id.
         * @return Widget
         */
        public static function getWidgetByIdWithReports($widgetId)
        {
        }
        /**
         * Remove current user widget by gId.
         *
         * @param string $widgetGId Widget gId.
         * @return boolean
         */
        public static function removeCurrentUserWidgetByGId($widgetGId)
        {
        }
        /**
         * @return int
         */
        public function getWeight()
        {
        }
        /**
         * Setter for widget position.
         *
         * @param string $weight Position of widget in row.
         * @return void
         */
        public function setWeight($weight)
        {
        }
        /**
         * @return string
         */
        public function getWidgetClass()
        {
        }
        /**
         * Widget handler class name.
         *
         * @see BaseWidget::getClassName().
         * @param string $widgetClass Widget handler class name.
         * @return void
         */
        public function setWidgetClass($widgetClass)
        {
        }
        /**
         * @return DashboardRow
         */
        public function getRow()
        {
        }
        /**
         * Setter for row.
         *
         * @param DashboardRow $row Row Entity where place widget.
         * @return void
         */
        public function setRow(\Bitrix\Report\VisualConstructor\Entity\DashboardRow $row)
        {
        }
        /**
         * @return bool
         */
        public function isPattern()
        {
        }
        /**
         * Setter for pattern marker.
         *
         * @param bool $isPattern Marker to set is pattern or not.
         * @return void
         */
        public function setIsPattern($isPattern)
        {
        }
        /**
         * @return Widget
         */
        public function getParentWidget()
        {
        }
        /**
         * parent Widget entity.
         *
         * @param Widget $parentWidget Widget entity.
         * @return void
         */
        public function setParentWidget($parentWidget)
        {
        }
        /**
         * @return Widget[]
         */
        public function getChildWidgets()
        {
        }
        /**
         * @return mixed
         */
        public function getParentWidgetId()
        {
        }
        /**
         * Setter for parent widget id.
         *
         * @param mixed $parentWidgetId Parent widget id.
         * @return void
         */
        public function setParentWidgetId($parentWidgetId)
        {
        }
        /**
         * @return mixed
         */
        public function getGId()
        {
        }
        /**
         * Setter for gId.
         *
         * @param mixed $gId Value of gId.
         * @return void
         */
        public function setGId($gId)
        {
        }
        /**
         * @return string
         */
        public function getCategoryKey()
        {
        }
        /**
         * Attach widget to category.
         *
         * @see Category.
         * @param string $categoryKey Category key.
         * @return void
         */
        public function setCategoryKey($categoryKey)
        {
        }
        /**
         * @return mixed
         */
        public function getRowId()
        {
        }
        /**
         * Setter for row id.
         *
         * @param mixed $rowId Value of row id.
         * @return void
         */
        public function setRowId($rowId)
        {
        }
        /**
         * @return int
         */
        public function getOwnerId()
        {
        }
        /**
         * Attach widget to some user.
         *
         * @param int $ownerId User id.
         * @return void
         */
        public function setOwnerId($ownerId)
        {
        }
    }
    /**
     * Class Report
     * @package Bitrix\Report\VisualConstructor\Entity
     */
    class Report extends \Bitrix\Report\VisualConstructor\Entity\ConfigurableModel
    {
        protected $gId;
        protected $widgetId;
        protected $reportClassName;
        /** @var BaseReport $reportHandler */
        protected $reportHandler;
        protected $weight = 0;
        /**
         * @var Widget $widget
         */
        protected $widget;
        /**
         * @return string
         */
        public static function getTableClassName()
        {
        }
        /**
         * Returns the list of pair for mapping data and object properties.
         * Key is field in DataManager, value is object property.
         *
         * @return array
         */
        public static function getMapAttributes()
        {
        }
        /**
         * @return array
         */
        public static function getMapReferenceAttributes()
        {
        }
        /**
         * Load widget with nested relations by widget gId.
         *
         * @param string $reportGId Widget gId.
         * @return Report
         */
        public static function getReportByGId($reportGId)
        {
        }
        /**
         * Get copy of report entity with nested relations,
         *
         * @return Report
         */
        public function getCopy()
        {
        }
        /**
         * @return mixed
         */
        public function getWidgetId()
        {
        }
        /**
         * Connection report to widget.
         *
         * @param mixed $widgetId Widget id.
         * @return void
         */
        public function setWidgetId($widgetId)
        {
        }
        /**
         * @return string
         */
        public function getReportClassName()
        {
        }
        /**
         * Setter for report class name.
         *
         * @see BaseReport::getClassName()
         * @param string $reportClassName Report class name.
         * @return void
         */
        public function setReportClassName($reportClassName)
        {
        }
        /**
         * Find report handler by report class name,in report provider.
         * Return it if exist or return null.
         *
         * @param bool $isRuntime
         *
         * @return BaseReport|null
         */
        public function getReportHandler($isRuntime = false)
        {
        }
        /**
         * Setter for report handler.
         *
         * @param BaseReport $handler Report handler.
         * @return void
         */
        public function setReportHandler(\Bitrix\Report\VisualConstructor\Handler\BaseReport $handler)
        {
        }
        /**
         * @return mixed
         */
        public function getWeight()
        {
        }
        /**
         * Setter of Weight in report list of widget. (for sorting).
         *
         * @param mixed $weight Weight of report.
         * @return void
         */
        public function setWeight($weight)
        {
        }
        /**
         * Get Widget, if not exist try to load it from db.
         *
         * @return Widget
         */
        public function getWidget()
        {
        }
        /**
         * Attach report to widget.
         * @param Widget $widget Widget entity.
         * @return void
         */
        public function setWidget($widget)
        {
        }
        /**
         * @return mixed
         */
        public function getGId()
        {
        }
        /**
         * Setter for gId.
         *
         * @param mixed $gId Value og gId.
         * @return void
         */
        public function setGId($gId)
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor {
    /**
     * Class Form
     * @package Bitrix\Report\VisualConstructor
     */
    class Form implements \Bitrix\Report\VisualConstructor\Internal\Error\IErrorable
    {
        private $id;
        private $name;
        private $action;
        private $method;
        private $class = array();
        private $prefix = '';
        private $postfix = '';
        private $dataAttributes = array();
        private $fields = array();
        private $errors = array();
        /**
         * Add field to form.
         *
         * @param Base|mixed $field Field to add.
         * @return $this
         */
        public function add($field)
        {
        }
        /**
         * Add field before target field.
         *
         * @param Base $newField Field to add.
         * @param Base $targetField Target field before which to add.
         * @return void
         */
        public function addFieldBefore($newField, $targetField)
        {
        }
        /**
         * Add field after target field.
         *
         * @param Base $newField Field to add.
         * @param Base $targetField Target field after which to add.
         * @return void
         */
        public function addFieldAfter($newField, $targetField)
        {
        }
        /**
         * Try to convert to Html field.
         * @param mixed $options String or int for convert.
         * @return Html
         * @throws ArgumentException
         */
        private function convertToField($options)
        {
        }
        /**
         * @return Base[]
         */
        public function getFields()
        {
        }
        /**
         * @param string $key Unique key.
         * @return Base|null
         */
        public function getField($key)
        {
        }
        /**
         * Collect all elements.
         * Print form html.
         *
         * @return void
         */
        public function render()
        {
        }
        /**
         * @return Error[]
         */
        public function getErrors()
        {
        }
        /**
         * @return string
         */
        public function getPrefix()
        {
        }
        /**
         * @param string $prefix String to set as prefix of form.
         * @return $this
         */
        public function setPrefix($prefix)
        {
        }
        /**
         * @return string
         */
        public function getPostfix()
        {
        }
        /**
         * @param string $postfix String to set as postfix fo form.
         * @return Form
         */
        public function setPostfix($postfix)
        {
        }
        /**
         * @param string $className String to add as class name of form.
         * @return void
         */
        public function addClass($className)
        {
        }
        /**
         * @return array
         */
        public function getClass()
        {
        }
        /**
         * @param array $class Array of strings to set as class names.
         * @return void
         */
        public function setClass($class)
        {
        }
        /**
         * @return string
         */
        public function getName()
        {
        }
        /**
         * @param string $name Name value.
         * @return void
         */
        public function setName($name)
        {
        }
        /**
         * @return string
         */
        public function getId()
        {
        }
        /**
         * @param string $id Id value.
         * @return void
         */
        public function setId($id)
        {
        }
        /**
         * Action url where to ubmit form.
         *
         * @return string
         */
        public function getAction()
        {
        }
        /**
         * @param string $action Url where to send form on submit.
         * @return $this
         */
        public function setAction($action)
        {
        }
        /**
         * @return string
         */
        public function getMethod()
        {
        }
        /**
         * @param string $method Get or post.
         * @return $this
         */
        public function setMethod($method)
        {
        }
        /**
         * @return array
         */
        public function getDataAttributes()
        {
        }
        /**
         * @param array $dataAttributes Data attributes key value pair array.
         * @return $this
         */
        public function setDataAttributes($dataAttributes)
        {
        }
        /**
         * @param string $key Key for add data attribute. ('role').
         * @param string $value Value for add data attribute. ('remove button').
         * @return void
         */
        public function addDataAttribute($key, $value = '')
        {
        }
    }
    /**
     * Special form class wor widget configurations.
     * @package Bitrix\Report\VisualConstructor
     */
    class WidgetForm extends \Bitrix\Report\VisualConstructor\Form
    {
        private $view;
        private $widget;
        private $reportsInWidgetCount;
        private $boarId;
        /**
         * Construct widget form by view and widget
         * @param View $view
         * @param Widget $widget
         */
        public function __construct(\Bitrix\Report\VisualConstructor\View $view, \Bitrix\Report\VisualConstructor\Entity\Widget $widget)
        {
        }
        /**
         * @return void
         */
        public function render()
        {
        }
        /**
         * Building configuration form.
         *
         * @param View $view View controller.
         * @param Widget $widget Widget entity.
         * @param array $params Parameters need for build form.
         * @return static
         */
        public static function build(\Bitrix\Report\VisualConstructor\View $view, \Bitrix\Report\VisualConstructor\Entity\Widget $widget, $params)
        {
        }
        private function addWidgetConfigurationFormFullContent()
        {
        }
        private function addWidgetConfigurationsBlock()
        {
        }
        private function addReportsConfigurationsBlock()
        {
        }
        private function addReportAddButtonBlock()
        {
        }
        /**
         * @return Fields\Base[]
         */
        private function getWidgetConfigurationFields()
        {
        }
        /**
         * @return Fields\Base[]
         */
        private function getReportConfigurationFields()
        {
        }
        /**
         * @return View
         */
        public function getView()
        {
        }
        /**
         * @param View $view View controller.
         * @return void
         */
        public function setView(\Bitrix\Report\VisualConstructor\View $view)
        {
        }
        /**
         * @return Widget
         */
        public function getWidget()
        {
        }
        /**
         * @param Widget $widget Widget entity.
         * @return void
         */
        public function setWidget(\Bitrix\Report\VisualConstructor\Entity\Widget $widget)
        {
        }
        /**
         * @return string
         */
        public function getBoarId()
        {
        }
        /**
         * @param string $boarId Board id.
         * @return void
         */
        public function setBoarId($boarId)
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Internal\Manager {
    /**
     * Base Class Singleton for report managers
     * @package Bitrix\Report\VisualConstructor\Internal\Manager
     */
    abstract class Base implements \Bitrix\Report\VisualConstructor\Internal\Error\IErrorable
    {
        private $event;
        private static $instances = array();
        protected $errors;
        protected static $result;
        /**
         * @return string
         */
        protected abstract function getEventTypeKey();
        /**
         * @return mixed
         */
        public abstract function call();
        public function getErrors()
        {
        }
        /**
         * Returns the *Singleton* instance of this class.
         *
         * @return static Singleton The *Singleton* instance.
         */
        public static function getInstance()
        {
        }
        /**
         * Protected constructor to prevent creating a new instance of the
         * *Singleton* via the `new` operator from outside of this class.
         */
        protected function __construct()
        {
        }
        /**
         * @return Event
         */
        protected function getEvent()
        {
        }
        /**
         * Private clone method to prevent cloning of the instance of the
         * *Singleton* instance.
         *
         * @return void
         */
        private function __clone()
        {
        }
        /**
         * @return $this
         */
        private function collect()
        {
        }
        /**
         * @return string
         */
        protected function getModuleId()
        {
        }
        /**
         * @return array
         */
        protected function getResult()
        {
        }
        /**
         * @return string
         */
        private function getManagerClassName()
        {
        }
    }
    class AnalyticBoardBatchManager extends \Bitrix\Report\VisualConstructor\Internal\Manager\Base
    {
        private static $analyticBoardBatchList = [];
        private static $indices = array('batchKey' => array());
        /**
         * @return AnalyticBoardBatch[]
         */
        public function getAnalyticBoardsBatchList()
        {
        }
        /**
         * @return array
         */
        public function getIndices()
        {
        }
        /**
         * @return string
         */
        protected function getEventTypeKey()
        {
        }
        /**
         * @return mixed
         */
        public function call()
        {
        }
    }
    /**
     * Class ReportManager
     * @package Bitrix\Report\VisualConstructor\Internal\Manager
     */
    class ReportManager extends \Bitrix\Report\VisualConstructor\Internal\Manager\Base
    {
        private static $reportsList = array();
        private static $indices = array('categories' => array(), 'unit' => array(), 'dataType' => array(), 'reportClassName' => array());
        private static $called = false;
        /**
         * @return string
         */
        protected function getEventTypeKey()
        {
        }
        /**
         * @return array|bool
         */
        public function getReportList()
        {
        }
        /**
         * @return array|bool
         */
        public function getIndices()
        {
        }
        /**
         * @return bool|array
         */
        public function getIndexByCategory()
        {
        }
        /**
         * @return bool|array
         */
        public function getIndexByUnit()
        {
        }
        /**
         * @return bool|array
         */
        public function getIndexByDataType()
        {
        }
        /**
         * Call special Event end build list of result and create index list for searchable keys
         * @return void
         */
        public function call()
        {
        }
        /**
         * @return bool
         */
        private function isCalled()
        {
        }
    }
    /**
     * Class WidgetManager
     * @package Bitrix\Report\VisualConstructor\Internal\Manager
     */
    class WidgetManager extends \Bitrix\Report\VisualConstructor\Internal\Manager\Base
    {
        private static $widgetsList = array();
        private static $indices = array('widgetClassName' => array());
        private static $called = false;
        /**
         * @return string
         */
        protected function getEventTypeKey()
        {
        }
        /**
         * @return array|bool
         */
        public function getWidgetList()
        {
        }
        /**
         * @return array|bool
         */
        public function getIndices()
        {
        }
        /**
         * Call special Event end build list of result and create index list for searchable keys
         * @return void
         */
        public function call()
        {
        }
        /**
         * @return bool
         */
        private function isCalled()
        {
        }
    }
    class AnalyticBoardManager extends \Bitrix\Report\VisualConstructor\Internal\Manager\Base
    {
        private static $analyticBoardList = [];
        private static $indices = array('boardKey' => array(), 'boardBatchKey' => array());
        /**
         * @return AnalyticBoard[]
         */
        public function getAnalyticBoardsList()
        {
        }
        /**
         * @return array
         */
        public function getIndices()
        {
        }
        /**
         * @return string
         */
        protected function getEventTypeKey()
        {
        }
        /**
         * @return mixed
         */
        public function call()
        {
        }
    }
    /**
     * Class CategoryManager
     * @package Bitrix\Report\VisualConstructor\Internal\Manager
     */
    class CategoryManager extends \Bitrix\Report\VisualConstructor\Internal\Manager\Base
    {
        private static $categoriesList = array();
        private static $indices = array('parent_keys' => array());
        /**
         * @return string
         */
        protected function getEventTypeKey()
        {
        }
        /**
         * @return array
         */
        public function call()
        {
        }
        /**
         * @return array
         */
        public function getCategoriesList()
        {
        }
        /**
         * @return array
         */
        public function getIndices()
        {
        }
    }
    /**
     * Class ViewManager
     * @package Bitrix\Report\VisualConstructor\Internal\Manager
     */
    class ViewManager extends \Bitrix\Report\VisualConstructor\Internal\Manager\Base
    {
        private static $viewsList;
        private static $indices = array('dataType' => array());
        /**
         * @return string
         */
        protected function getEventTypeKey()
        {
        }
        /**
         * @return View[]
         */
        public function getViewControllers()
        {
        }
        /**
         * @return array
         */
        public function getIndices()
        {
        }
        /**
         * @return View[]
         */
        public function call()
        {
        }
    }
    /**
     * Manager for default boards, collect all default boards, an provide instruments to work with them
     * @package Bitrix\Report\VisualConstructor\Internal\Manager
     */
    class DefaultBoardManager extends \Bitrix\Report\VisualConstructor\Internal\Manager\Base
    {
        private static $defaultBoardsList;
        private static $indices = array('boardKey' => array());
        /**
         * @return Dashboard[]
         */
        public function getDefaultBoardsList()
        {
        }
        /**
         * @return array
         */
        public function getIndices()
        {
        }
        /**
         * @return string
         */
        protected function getEventTypeKey()
        {
        }
        /**
         * @return mixed
         */
        public function call()
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Internal {
    /**
     * Class DataManager
     * @package Bitrix\Report\VisualConstructor\Internal
     */
    class DataManager extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * @return string
         */
        public static function getClassName()
        {
        }
    }
}
namespace Bitrix\Main\Engine\Response {
    class Json extends \Bitrix\Main\HttpResponse
    {
        protected $data;
        protected $jsonEncodingOptions = 0;
        public function __construct($data = null, $options = 0)
        {
        }
        public function setData($data)
        {
        }
        private function processData($data)
        {
        }
        public function send()
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Internal\Engine\Response {
    /**
     * Response type for rendering ajax components from action
     * @package Bitrix\Report\VisualConstructor\Internal\Engine\Response
     */
    final class Component extends \Bitrix\Main\Engine\Response\Json implements \Bitrix\Main\Errorable
    {
        const STATUS_SUCCESS = 'success';
        const STATUS_DENIED = 'denied';
        const STATUS_ERROR = 'error';
        private $jsPathList = [];
        private $cssPathList = [];
        private $asset;
        /**
         * @var string
         */
        private $status;
        /**
         * @var ErrorCollection
         */
        private $errorCollection;
        /**
         * Component constructor.
         * @param string $componentName
         * @param string $templateName
         * @param array $params
         * @param array $parentComponent
         * @param array $functionParams
         * @param array $additionalResponseParams
         * @param string $status
         * @param ErrorCollection|null $errorCollection
         */
        public function __construct($componentName, $templateName = '', $params = [], $additionalResponseParams = [], $parentComponent = [], $functionParams = [], $status = self::STATUS_SUCCESS, \Bitrix\Main\ErrorCollection $errorCollection = null)
        {
        }
        private function collectAssetsPathList()
        {
        }
        /**
         * @return array
         */
        private function getJsList()
        {
        }
        /**
         * @return array
         */
        private function getCssList()
        {
        }
        /**
         * @return array
         */
        private function getStringList()
        {
        }
        /**
         * @return array
         */
        protected function getErrorsToResponse()
        {
        }
        /**
         * Getting array of errors.
         * @return Error[]
         */
        public function getErrors()
        {
        }
        /**
         * Getting once error with the necessary code.
         * @param string $code Code of error.
         * @return Error
         */
        public function getErrorByCode($code)
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Internal\Error {
    /**
     * Class Error
     * @package Bitrix\Report\VisualConstructor\Internal\Error
     */
    class Error extends \Bitrix\Main\Error
    {
        /** @var mixed */
        protected $data;
        /**
         * Creates a new Error.
         * @param string     $message Message of the error.
         * @param int|string $code Code of the error.
         * @param mixed|null $data Data.
         */
        public function __construct($message, $code = 0, $data = null)
        {
        }
        /**
         * @return mixed
         */
        public function getData()
        {
        }
    }
    /**
     * Class ErrorCollection
     * @package Bitrix\Report\VisualConstructor\Internal\Error
     */
    final class ErrorCollection extends \Bitrix\Main\ErrorCollection
    {
        /**
         * Adds one error to collection.
         * @param Error $error Error object.
         * @return void
         */
        public function addOne(\Bitrix\Report\VisualConstructor\Internal\Error\Error $error)
        {
        }
        /**
         * Adds errors from Main\Entity\Result.
         * @param Result $result Result after action in Entity.
         * @return void
         */
        public function addFromResult(\Bitrix\Main\Entity\Result $result)
        {
        }
        /**
         * Adds errors from entity which implements IErrorable.
         * @param IErrorable $entity Entity which implements IErrorable.
         * @return void
         */
        public function addFromEntity(\Bitrix\Report\VisualConstructor\Internal\Error\IErrorable $entity)
        {
        }
        /**
         * Returns true if collection has errors.
         * @return bool
         */
        public function hasErrors()
        {
        }
        /**
         * Returns array of errors with the necessary code.
         * @param string $code Code of error.
         * @return Error[]
         */
        public function getErrorsByCode($code)
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Controller {
    /**
     * Abstract common controller class
     * @package Bitrix\Report\VisualConstructor\Controller
     */
    abstract class Base extends \Bitrix\Main\Engine\Controller
    {
        /**
         * If debug mode on return last 3 lines of trace in error collection.
         *
         * @param \Exception $e Exception.
         * @return void
         */
        protected function runProcessingException(\Exception $e)
        {
        }
    }
    /**
     * Class Category
     * @package Bitrix\Report\VisualConstructor\Controller
     */
    class Category extends \Bitrix\Report\VisualConstructor\Controller\Base
    {
    }
    /**
     * Class Configuration
     * @package Bitrix\Report\VisualConstructor\Controller
     */
    class Configuration extends \Bitrix\Report\VisualConstructor\Controller\Base
    {
        /**
         * Build pseudo report configuration block, and render it in component.
         *
         * @see report/install/components/bitrix/report.visualconstructor.widget.pseudoconfig/templates/.default/template.php.
         * @param array $params Parameters from form.
         * @return Component|bool
         */
        public function buildPseudoReportConfigurationAction($params)
        {
        }
        /**
         * Return array of available what will calculate options.
         *
         * @param array $params Parameters from form.
         * @return array|bool
         */
        public function loadWhatWillCalculateByGroupAction($params)
        {
        }
    }
    /**
     * Class Row
     * @package Bitrix\Report\VisualConstructor\Controller
     */
    class Row extends \Bitrix\Report\VisualConstructor\Controller\Base
    {
        /**
         * Add row to board.
         *
         * @param array $params Parameters for adding row to board.
         * @return array|bool
         */
        public function addAction($params)
        {
        }
        /**
         * Adjust rows weights. for saving rows sorting.
         *
         * @param string $boardKey Board key.
         * @param array $rows Row parameters like [gid => [weight => 1]].
         * @return array|bool
         */
        public function adjustWeightsAction($boardKey, $rows)
        {
        }
        /**
         * Delete row action.
         *
         * @param array $params Parameters like [boardId => 'some_board_id', rowId => 'some_sow_gid'].
         * @return int|bool
         */
        public function deleteAction($params)
        {
        }
    }
    /**
     * Class Board
     * @package Bitrix\Report\VisualConstructor\Controller
     */
    class Board extends \Bitrix\Report\VisualConstructor\Controller\Base
    {
        /**
         * Set user default board to his own or to default of system.
         *
         * @param string $boardKey Key for finding dashboard.
         * @return bool
         */
        public function toggleToDefaultAction($boardKey)
        {
        }
        /**
         * @param string $boardKey Board Key.
         * @return array
         */
        public function toggleModeAction($boardKey)
        {
        }
        /**
         * Return rendered add form component.
         *
         * @param array $categories Categories ids.
         * @param string $boardId Board Id for pass to add form component.
         * @return Component
         */
        public function showAddFormAction($categories, $boardId)
        {
        }
        /**
         * Handler for submit dashboard add form.
         *
         * @param array $formParams Parameters send from form.
         * @return array|bool
         */
        public function submitAddFormAction($formParams = array())
        {
        }
        /**
         * @param array $formParams Parameters send from form.
         * @return mixed
         */
        private function createWidgetFromExisting($formParams)
        {
        }
    }
    /**
     * Controller class for Analytics actions
     * @package Bitrix\Report\VisualConstructor\Controller
     */
    class Analytics extends \Bitrix\Report\VisualConstructor\Controller\Base
    {
        public function openDefaultAnalyticsPageAction()
        {
        }
        public function getBoardComponentByKeyAction($boardKey = '')
        {
        }
        /**
         * @param $boardKey
         * @return AnalyticBoard
         */
        private function getAnalyticBoardByKey($boardKey)
        {
        }
        /**
         * @param $boardKey
         *
         * @return Component|bool
         */
        public function toggleToDefaultByBoardKeyAction($boardKey, \Bitrix\Main\Engine\CurrentUser $currentUser)
        {
        }
    }
    /**
     * Class Widget
     * @package Bitrix\Report\VisualConstructor\Controller
     */
    class Widget extends \Bitrix\Report\VisualConstructor\Controller\Base
    {
        public function configureActions()
        {
        }
        /**
         * Action return configuration form by widget gid, and board gid.
         *
         * @param string $widgetId Widget gId.
         * @param string $boardId Board key.
         * @return Component|bool
         */
        public function showConfigurationFormAction($widgetId, $boardId)
        {
        }
        /**
         * Configuration form save handler.
         *
         * @param array $formParams Parameters form form to save widget configurations.
         * @return array|bool
         */
        public function saveConfigurationFormAction($formParams)
        {
        }
        /**
         * Create widget from form params action and save it;
         *
         * @param array $formParams Parameters from form.
         * @return array [widgetId => 'Gid of new created widget'].
         */
        public function addWidgetFromConfigurationFormAction($formParams)
        {
        }
        /**
         * @param $params
         * @return \Bitrix\Report\VisualConstructor\Entity\Widget|bool
         */
        private function createWidgetByParams($params)
        {
        }
        /**
         * Build create or configuration form.
         *
         * @param array $params Parameters to create form.
         * @return Component|bool
         */
        public function buildFormAction($params)
        {
        }
        /**
         * This action call when try to change to other view type of existing widget.
         * If new view key do not compatible with core view type return false, else true.
         *
         * @param array $params Parameters like [newViewKey => 'linearGraph', oldViewKey => 'column'].
         * @return array|bool
         */
        public function checkIsCompatibleWithSelectedViewAction($params)
        {
        }
        /**
         * Construct widget for show preview.
         *
         * @param array $params Form params will be apply in preview widget.
         * @return array|bool
         */
        public function constructPseudoWidgetAction($params)
        {
        }
        /**
         * @param ConfigurableModel $model
         * @param Base $handler
         * @param $formConfigurations
         */
        private function setConfigurableEntityConfiguration(\Bitrix\Report\VisualConstructor\Entity\ConfigurableModel $model, \Bitrix\Report\VisualConstructor\Handler\Base $handler, $formConfigurations)
        {
        }
        /**
         * Check is report id is pseudo.
         *
         * @param string $reportId Report id.
         * @return bool
         */
        private function isReportPseudo($reportId)
        {
        }
        /**
         * @param $widget
         * @param array $configuration
         */
        private function addReportToWidget(\Bitrix\Report\VisualConstructor\Entity\Widget $widget, $configuration)
        {
        }
        /**
         * Load widget params for rendering.
         *
         * @param string $widgetId Widget gId.
         * @return array|false
         */
        public function loadAction($widgetId)
        {
        }
        /**
         * Load widget by board Id.
         *
         * @param string $boardId Board id.
         * @return array
         */
        public function loadByBoardIdAction($boardId)
        {
        }
        /**
         * Widget update action.
         * Call whan save configuration form.
         *
         * @param string $boardKey Board key.
         * @param string $widgetId Widget gId.
         * @param array $params Form parameters to apply in update of widget.
         * @return string Saved widget gId.
         */
        public function updateAction($boardKey, $widgetId, $params)
        {
        }
        /**
         * Remove widget from board action.
         *
         * @param array $params Parameters like [boardId => 'some_board_id', widgetId => 'some_widget_gId'].
         * @return bool
         */
        public function removeAction($params)
        {
        }
        /**
         * Remove pattern widget.
         * Delete only current user pattern widget.
         *
         * @param string $widgetId Widget id.
         * @return void
         */
        public function removePatternAction($widgetId)
        {
        }
    }
    /**
     * Class Report
     * @package Bitrix\Report\VisualConstructor\Controller
     */
    class Report extends \Bitrix\Report\VisualConstructor\Controller\Base
    {
        /**
         * @param string $categoryKey Category key.
         * @return array
         */
        public function getReportHandlersByCategoryAction($categoryKey = '__')
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor {
    class RestAppBoard extends \Bitrix\Report\VisualConstructor\AnalyticBoard
    {
        protected $placement;
        protected $restAppId;
        protected $placementHandlerId;
        /**
         * @return string
         */
        public function getPlacement()
        {
        }
        /**
         * @param string $placement
         */
        public function setPlacement($placement) : void
        {
        }
        /**
         * @return int
         */
        public function getRestAppId()
        {
        }
        /**
         * @param int $restAppId
         */
        public function setRestAppId($restAppId) : void
        {
        }
        /**
         * @return int
         */
        public function getPlacementHandlerId()
        {
        }
        /**
         * @param int $placementHandlerId
         */
        public function setPlacementHandlerId($placementHandlerId) : void
        {
        }
        public function getDisplayComponentName()
        {
        }
        public function getDisplayComponentParams()
        {
        }
    }
    /**
     * Class View
     * @package Bitrix\Report\VisualConstructor
     */
    abstract class View
    {
        const VIEW_KEY = '';
        const MAX_RENDER_REPORT_COUNT = 0;
        const DEFAULT_EMPTY_REPORT_COUNT = 1;
        const USE_IN_VISUAL_CONSTRUCTOR = true;
        private $label;
        private $logoUri;
        private $previewImageUri;
        private $compatibleDataType;
        private $height;
        private $jsClassName;
        private $draggable = true;
        private $horizontalResizable = true;
        /**
         * @return mixed
         */
        public function getHeight()
        {
        }
        /**
         * Setter for height.
         * Can be 'auto'
         *
         * @param mixed $height Height of widget with header 55px.
         * @return void
         */
        public function setHeight($height)
        {
        }
        /**
         * @return string
         */
        public function getKey()
        {
        }
        /**
         * @return string
         */
        public function getLabel()
        {
        }
        /**
         * Setter for label.
         *
         * @param string $label Label text.
         * @return void
         */
        public function setLabel($label)
        {
        }
        /**
         * @return string
         */
        public function getLogoUri()
        {
        }
        /**
         * Setter for miniature src.
         *
         * @param string $logoUri Path to miniature image.
         * @return void
         */
        public function setLogoUri($logoUri)
        {
        }
        /**
         * @return string
         */
        public function getCompatibleDataType()
        {
        }
        /**
         * Set compatible data type.
         *
         * @param string $compatibleDataType Data type which compatible with view type.
         * @return void
         */
        public function setCompatibleDataType($compatibleDataType)
        {
        }
        /**
         * Return list of compatible view type keys, to this view types can switch without reform configurations.
         *
         * @return array
         */
        public function getCompatibleViewTypes()
        {
        }
        /**
         * Handle all data prepared for this view.
         *
         * @param array $dataFromReport Calculated data from report handler.
         * @return array
         */
        public abstract function handlerFinallyBeforePassToView($dataFromReport);
        /**
         * Use if need to construct widget entity by view type.
         *
         * @param string $boardId Board id.
         * @return BaseWidget
         */
        public final function buildWidgetHandlerForBoard($boardId)
        {
        }
        /**
         * When building new widget, add default Report handlers to widget.
         *
         * @param BaseWidget $widgetHandler Widget handler.
         * @return BaseWidget
         */
        public function addDefaultReportHandlersToWidgetHandler(\Bitrix\Report\VisualConstructor\Handler\BaseWidget $widgetHandler)
        {
        }
        /**
         * Find report handler by class name and build Report handler in context of widget handler and view type.
         *
         * @param string $reportHandlerClassName Report handler class name.
         * @param BaseWidget $widgetHandler Widget handler.
         * @return null
         */
        public function getReportHandler($reportHandlerClassName, \Bitrix\Report\VisualConstructor\Handler\BaseWidget $widgetHandler)
        {
        }
        /**
         * Method to modify widget configuration form in context of view.
         *
         * @param WidgetForm $form Form Entity.
         * @return WidgetForm $form
         */
        public function prepareWidgetFormBeforeRender(\Bitrix\Report\VisualConstructor\WidgetForm $form)
        {
        }
        /**
         * Method to modify widget form elements.
         *
         * @param BaseWidget $widgetHandler Widget handler.
         * @return void
         */
        public function collectWidgetHandlerFormElements(\Bitrix\Report\VisualConstructor\Handler\BaseWidget $widgetHandler)
        {
        }
        /**
         * Method to modify widget form elements.
         *
         * @param BaseReport $reportHandler Widget handler.
         * @return void
         */
        public function collectReportHandlerFormElements($reportHandler)
        {
        }
        /**
         * @return string
         */
        public function getJsClassName()
        {
        }
        /**
         * Setter for js class name.
         *
         * @param string $jsClassName Js class name.
         * @return void
         */
        public function setJsClassName($jsClassName)
        {
        }
        /**
         * Method to modify Content which pass to widget view, in absolute end.
         *
         * @param Widget $widget Widget entity.
         * @param bool $withCalculatedData Marker for calculate or no data in widget.
         * @return array
         */
        public function prepareWidgetContent(\Bitrix\Report\VisualConstructor\Entity\Widget $widget, $withCalculatedData = false)
        {
        }
        /**
         * @return bool
         */
        public function isDraggable()
        {
        }
        /**
         * Setter for draggable.
         *
         * @param bool $draggable Marker for dragging functionality.
         * @return void
         */
        public function setDraggable($draggable)
        {
        }
        /**
         * Check is $view compatible with current view type.
         *
         * @param View $view View entity.
         * @return bool
         */
        public function isCompatibleWithView(\Bitrix\Report\VisualConstructor\View $view)
        {
        }
        /**
         * Default colors set for reports.
         *
         * @param int $num Number of color which need.
         * @return string
         */
        public function getReportDefaultColor($num)
        {
        }
        /**
         * @return bool
         */
        public function isHorizontalResizable()
        {
        }
        /**
         * If true then big widget can set to small place.
         *
         * @param bool $horizontalResizable Marker to set resizable mode.
         * #return void
         */
        public function setHorizontalResizable($horizontalResizable)
        {
        }
        /**
         * @return mixed
         */
        public function getPreviewImageUri()
        {
        }
        /**
         * @param mixed $previewImageUri
         */
        public function setPreviewImageUri($previewImageUri)
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Fields {
    /**
     * Class Base
     * @package Bitrix\Report\VisualConstructor\Fields
     */
    abstract class Base
    {
        const FIELDS_COMPONENT_NAME = 'bitrix:report.visualconstructor.config.fields';
        private $key;
        private $classList = array();
        private $dataAttributes = array();
        private $id;
        private $label = '';
        private $isDisplayLabel = true;
        private $prefix;
        private $postfix;
        private $weight = 0;
        private $assets = array();
        private $js = array();
        private $css = array();
        private $inline = array();
        private $jsEvents = array();
        private $jsEventListeners = array();
        private $form;
        private $compatibleViewTypes;
        private $inlineStyle;
        private $display = true;
        /**
         * @return string
         */
        public static function getClassName()
        {
        }
        /**
         * @return Base
         */
        public function getPrefix()
        {
        }
        /**
         * Setter for string which render before field content.
         *
         * @param string|Base $prefix String for render before content.
         * @return void
         */
        public function setPrefix($prefix)
        {
        }
        /**
         * @return Base
         */
        public function getPostfix()
        {
        }
        /**
         * Setter for string which render after field content.
         *
         * @param string|Base $postfix String for render after content.
         * @return void
         */
        public function setPostfix($postfix)
        {
        }
        /**
         * @return array
         */
        public function getAssets()
        {
        }
        /**
         * Attach js, css, or inline assets to field.
         *
         * @param array $assets Array of assets which attach to field.
         * @return void
         */
        public function addAssets($assets)
        {
        }
        /**
         * @return Form
         */
        public function getForm()
        {
        }
        /**
         * Setter for form context.
         *
         * @param Form $form Form where render field.
         * @return void
         */
        public function setForm($form)
        {
        }
        /**
         * Check is displayable this field, if yes collect all assets,
         * And print content.
         *
         * @return void
         */
        public function render()
        {
        }
        /**
         * Print field html/string ore somthing else printable.
         *
         * @return void
         */
        public abstract function printContent();
        /**
         * @return array
         */
        public function getJsEventListeners()
        {
        }
        /**
         * @return array
         */
        public function getJsEvents()
        {
        }
        /**
         * Add js event handler to field on some event which fire on $field in first parameter of this function.
         *
         * @param self|null $field Field which fire event.
         * @param string $eventKey Event key which listen this field.
         * @param array $jsParams JS parameters which pass to handler.
         * @return $this
         */
        public function addJsEventListener(\Bitrix\Report\VisualConstructor\Fields\Base $field = null, $eventKey, $jsParams)
        {
        }
        /**
         * @return string
         */
        public function getLabel()
        {
        }
        /**
         * Setter for field label.
         *
         * @param string $label String to set as label for field.
         * @return void
         */
        public function setLabel($label)
        {
        }
        /**
         * @return array
         */
        public function getCompatibleViewTypes()
        {
        }
        /**
         * Setter of compatible widget view types.
         *
         * @param array $compatibleViewTypes Compatible widget view type list.
         * @return void
         */
        public function setCompatibleViewTypes($compatibleViewTypes)
        {
        }
        /**
         * @return string
         */
        public function getId()
        {
        }
        /**
         * Setter for id.
         *
         * @param string $id Unique id.
         * @return void
         */
        public function setId($id)
        {
        }
        /**
         * @return int
         */
        public function getWeight()
        {
        }
        /**
         * Setter for Weight.
         *
         * @param int $weight Integer of weightof Field.
         * @return void
         */
        public function setWeight($weight)
        {
        }
        /**
         * Add to class list class string.
         *
         * @param string $class Class string.
         * @return void
         */
        public function addClass($class)
        {
        }
        /**
         * @return array
         */
        public function getClasses()
        {
        }
        /**
         * Get data attribute by key.
         *
         * @param string $key Key for data attribute which will return.
         * @return mixed|null
         */
        public function getDataAttribute($key)
        {
        }
        /**
         * @return array
         */
        public function getDataAttributes()
        {
        }
        /**
         * Set Data attributes by array of pair key => values.
         *
         * @param array $dataAttributes Array of pair key=>value.
         * @return void
         */
        public function setDataAttributes($dataAttributes)
        {
        }
        /**
         * @param string $key Key for data attribute. ('role').
         * @param string $value Value for data attribute. ('widget').
         * @return void
         */
        public function addDataAttribute($key, $value)
        {
        }
        /**
         * Conver id property to string for render as html in element.
         *
         * @return string
         */
        public function getRenderedIdAttribute()
        {
        }
        /**
         * @return string
         */
        public function getKey()
        {
        }
        /**
         * Seter for key.
         *
         * @param string $key Unique key for field.
         * @return void
         */
        public function setKey($key)
        {
        }
        /**
         * Convert class list property collection to string for render as html in field element.
         *
         * @return string
         */
        public function getRenderedClassAttributes()
        {
        }
        /**
         * Conver data atttribute property collection to string for render as html in field element.
         *
         * @return string
         */
        public function getRenderedDataAttributes()
        {
        }
        /**
         * Convert inline style propery collection to string for render as html.
         *
         * @return string
         */
        public function getRenderedInlineStyle()
        {
        }
        /**
         * @return bool
         */
        public function isDisplayLabel()
        {
        }
        /**
         * Setter for display mode of label of field.
         *
         * @param bool $isDisplayLabel True if label must render else false.
         * @return void
         */
        public function setIsDisplayLabel($isDisplayLabel)
        {
        }
        /**
         * Add inline style by key and value.
         *
         * @param string $key Key of inline style. ('background-color').
         * @param string $value Value Of inline style. ('red').
         * @return void
         */
        public function addInlineStyle($key, $value)
        {
        }
        /**
         * @return array
         */
        public function getInlineStyle()
        {
        }
        /**
         * Setter dor inline style.
         *
         * @param array $inlineStyle Inline style string.
         * @return void
         */
        public function setInlineStyle($inlineStyle)
        {
        }
        /**
         * @return bool
         */
        public function isDisplay()
        {
        }
        /**
         * Setter for display mode.
         *
         * @param bool $display Render or not this field marker.
         * @return void
         */
        public function setDisplay($display)
        {
        }
        /**
         * Include component for field.
         *
         * @param string $templateName Template name string.
         * @param array $params Parameters pass to component.
         * @return void
         */
        protected function includeFieldComponent($templateName, $params = array())
        {
        }
    }
    /**
     * Class Container
     * @package Bitrix\Report\VisualConstructor\Fields
     */
    class Container extends \Bitrix\Report\VisualConstructor\Fields\Base
    {
        /**
         * @var Base[] $elements
         */
        private $elements = array();
        /**
         * @return void
         */
        public function printContent()
        {
        }
        /**
         * Setter for name.
         *
         * @param string $name Name value.
         * @return void
         */
        public function setName($name)
        {
        }
        /**
         * Add element before target element.
         *
         * @param Base $newField Element to insert to container.
         * @param Base $targetField Element before which will insert.
         * @return void
         */
        public function addElementBefore(\Bitrix\Report\VisualConstructor\Fields\Base $newField, \Bitrix\Report\VisualConstructor\Fields\Base $targetField)
        {
        }
        /**
         * Add element ager target element.
         *
         * @param Base $newField Element to insert to container.
         * @param Base $targetField Element after which will insert.
         * @return void
         */
        public function addElementAfter(\Bitrix\Report\VisualConstructor\Fields\Base $newField, \Bitrix\Report\VisualConstructor\Fields\Base $targetField)
        {
        }
        /**
         * @param Base $element Element insert to container.
         * @return void
         */
        public function addElement(\Bitrix\Report\VisualConstructor\Fields\Base $element)
        {
        }
        /**
         * @return Base[]
         */
        public function getElements()
        {
        }
        /**
         * Find element in container elemen list.
         *
         * @param string $key Unique key for find element in container.
         * @return Base|null
         */
        public function getElement($key)
        {
        }
        /**
         * Set multiple elements to container.
         *
         * @param Base[] $elements Element list.
         * @return void
         */
        public function setElements($elements)
        {
        }
    }
    /**
     * Class Html simple field to display some text or simple html
     * @package Bitrix\Report\VisualConstructor\Fields
     */
    class Html extends \Bitrix\Report\VisualConstructor\Fields\Base
    {
        private $content;
        /**
         * Html constructor.
         * @param string $contentHtml String to set as content of html element.
         */
        public function __construct($contentHtml = '')
        {
        }
        /**
         * @return void
         */
        public function printContent()
        {
        }
        /**
         * @return string
         */
        public function getContent()
        {
        }
        /**
         * Setter for content.
         *
         * @param string $content String to set as Html element content.
         * @return void
         */
        public function setContent($content)
        {
        }
    }
    /**
     * Class DivPartHtml, this class create for save html part context, after add element (start end of div) we can modify them
     * @package Bitrix\Report\VisualConstructor\Fields
     */
    class DivPartHtml extends \Bitrix\Report\VisualConstructor\Fields\Html
    {
        private $div;
        /**
         * @param string $class String of class to div.
         * @return void
         */
        public function addClass($class)
        {
        }
        /**
         * @param string $key Key of add data attribute ('role').
         * @param string $value Value of data attribute ('widget').
         * @return void
         */
        public function addInlineStyle($key, $value)
        {
        }
        /**
         * @return Div
         */
        public function getDiv()
        {
        }
        /**
         * @param Div $div Div in which context this element.
         * @return void
         */
        public function setDiv(\Bitrix\Report\VisualConstructor\Fields\Div $div)
        {
        }
    }
    /**
     * Div Field for wrappers of type, provide methods start end end which generate DivPartHtml fields for save div context
     */
    class Div extends \Bitrix\Report\VisualConstructor\Fields\Base
    {
        private $content;
        /**
         * Build div star string
         * @return string
         */
        public function buildDivStart()
        {
        }
        /**
         * @return Html
         */
        public function start()
        {
        }
        /**
         * @return Html
         */
        public function end()
        {
        }
        /**
         * @return void
         */
        public function printContent()
        {
        }
        /**
         * @return mixed
         */
        public function getContent()
        {
        }
        /**
         * @param mixed $content Value to set in div as content.
         * @return void
         */
        public function setContent($content)
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Fields\Valuable {
    /**
     * Class BaseValuable
     * @package Bitrix\Report\VisualConstructor\Fields\Valuable
     */
    abstract class BaseValuable extends \Bitrix\Report\VisualConstructor\Fields\Base
    {
        private $value;
        private $defaultValue;
        private $name;
        /**
         * Constructor for valuable fields.
         *
         * @param string $key Unique key.
         */
        public function __construct($key)
        {
        }
        /**
         * @return mixed
         */
        public function getDefaultValue()
        {
        }
        /**
         * Defaul value setter.
         *
         * @param mixed $defaultValue Value which use as default.
         * @return void
         */
        public function setDefaultValue($defaultValue)
        {
        }
        /**
         * Return value if exist, or return default value.
         *
         * @return mixed
         */
        public function getValue()
        {
        }
        /**
         * Value setter.
         *
         * @param mixed $value Value set as value of field.
         * @return void
         */
        public function setValue($value)
        {
        }
        /**
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Field name setter.
         *
         * @param string $name Name which use in rendered field.
         * @return void
         */
        public function setName($name)
        {
        }
        /**
         * Normalise value field before save.
         *
         * @param mixed $config Config which will pass to db.
         * @return mixed
         */
        protected function normalise($config)
        {
        }
        /**
         * @return string
         */
        public function getId()
        {
        }
    }
    /**
     * Preview block field, contains all exist miniature and functionality to see preview, can toggle to other view type
     * @package Bitrix\Report\VisualConstructor\Fields\Valuable
     */
    class PreviewBlock extends \Bitrix\Report\VisualConstructor\Fields\Valuable\BaseValuable
    {
        const JS_EVENT_ON_VIEW_SELECT = 'onSelect';
        protected $widget;
        /**
         * Preview block field constructor.
         * Default view type is linear graph.
         *
         * @param $key
         */
        public function __construct($key)
        {
        }
        /**
         * Load field component with label or previewblock template.
         * Pass available view types list.
         * And prepared widget params to render in preview block.
         *
         * @return void
         */
        public function printContent()
        {
        }
        /**
         * @return \Bitrix\Report\VisualConstructor\Entity\Widget
         */
        public function getWidget()
        {
        }
        /**
         * Preview widget setter.
         *
         * @param \Bitrix\Report\VisualConstructor\Entity\Widget $widget Widget will render in preview block.
         * @return void
         */
        public function setWidget(\Bitrix\Report\VisualConstructor\Entity\Widget $widget)
        {
        }
        /**
         * @return \Bitrix\Report\VisualConstructor\View[]
         */
        private function getAvailableViews()
        {
        }
        /**
         * @return array
         */
        private function getAvailableViewList()
        {
        }
    }
    /**
     * Drop down field rendered standard drop down
     * @package Bitrix\Report\VisualConstructor\Fields
     */
    class DropDown extends \Bitrix\Report\VisualConstructor\Fields\Valuable\BaseValuable
    {
        const JS_EVENT_ON_CHANGE = 'onChange';
        private $options = array();
        /**
         * Drop down field constructor.
         *
         * @param string $key Unique key.
         */
        public function __construct($key)
        {
        }
        /**
         * Load field component with baseselect template.
         *
         * @return void
         */
        public function printContent()
        {
        }
        /**
         * @return array
         */
        public function getDefaultOptions()
        {
        }
        /**
         * Add option to end of option list.
         *
         * @param string $key Key for option.
         * @param string $value Value For option.
         * @return $this
         */
        public function addOption($key, $value)
        {
        }
        /**
         * Add options to end of options list.
         *
         * @param array $options Key value pair array.
         * @return void
         */
        public function addOptions($options)
        {
        }
        /**
         * @return array
         */
        public function getOptions()
        {
        }
        /**
         * Options list setter.
         *
         * @param array $options Key value pair array.
         * @return void
         */
        public function setOptions($options)
        {
        }
    }
    /**
     * Imitation DropDown field with popup
     *
     * @package Bitrix\Report\VisualConstructor\Fields\Valuable
     */
    class CustomDropDown extends \Bitrix\Report\VisualConstructor\Fields\Valuable\DropDown
    {
        /**
         * Custom dopr down constructor.
         *
         * @param string $key Unique key.
         */
        public function __construct($key)
        {
        }
        /**
         * Load field component with selectwithpopup template.
         *
         * @return void
         */
        public function printContent()
        {
        }
    }
    /**
     * Class TimePeriod
     * @package Bitrix\Report\VisualConstructor\Fields\Valuable
     */
    class TimePeriod extends \Bitrix\Report\VisualConstructor\Fields\Valuable\BaseValuable
    {
        const JS_EVENT_ON_SELECT = 'onSelect';
        const FILTER_PERIOD_TIME = 'FILTER';
        const QUARTER_PERIOD_TIME = 'QUARTER';
        const YEAR_PERIOD_TIME = 'YEAR';
        const MONTH_PERIOD_TIME = 'MONTH';
        const THIS_YEAR_PERIOD_TIME = 'THIS_YEAR';
        const THIS_QUARTER_PERIOD_TIME = 'THIS_QUARTER';
        const THIS_MONTH_PERIOD_TIME = 'THIS_MONTH';
        const THIS_DAY_PERIOD_TIME = 'THIS_DAY';
        const LAST_90_DAYS_PERIOD_TIME = 'LAST_90_DAYS';
        const LAST_60_DAYS_PERIOD_TIME = 'LAST_60_DAYS';
        const LAST_30_DAYS_PERIOD_TIME = 'LAST_30_DAYS';
        const LAST_7_DAYS_PERIOD_TIME = 'LAST_7_DAYS';
        const DEFAULT_TIME_PERIOD_TYPE = self::FILTER_PERIOD_TIME;
        const DEFAULT_YEAR_LIST_START = 2017;
        private $filterId;
        /**
         * Time period field constructor.
         *
         * @param string $key Unique Id.
         * @param null $filterId Filter id which value will apply as time period FILTER value.
         */
        public function __construct($key, $filterId = null)
        {
        }
        /**
         * Load field component with label or timeperiod template.
         *
         * @return void
         */
        public function printContent()
        {
        }
        /**
         * @return DateTime[]
         */
        public function getDefaultConfigValue()
        {
        }
        /**
         * @return string
         */
        public function getFilterId()
        {
        }
        /**
         * Fiter id setter.
         *
         * @param string $id Filter id.
         * @return void
         */
        public function setFilterId($id)
        {
        }
        /**
         * Conver value to array which will save in db.
         *
         * @param array $config Configuration which must normalise.
         * @return array
         */
        protected function normalise($config)
        {
        }
        /**
         * Convert field value to array with keys start, end.
         *
         * @return array
         */
        public function getValueAsPeriod()
        {
        }
        /**
         * Conver Filter value to time period  field value.
         *
         * @return array
         */
        private function prepareTimePeriodForFilter()
        {
        }
        /**
         * Prepare time period value for selected quaerter.
         *
         * @param array $value Value of this field.
         * @return array
         */
        private function prepareTimePeriodForQuarter($value)
        {
        }
        /**
         * Prepare time period value for selected year.
         *
         * @param array $value Value of this field.
         * @return array
         */
        private function prepareTimePeriodForYear($value)
        {
        }
        /**
         * Prepare time period value for selected month.
         *
         * @param array $value Value of this field.
         * @return array
         */
        private function prepareTimePeriodForMonth($value)
        {
        }
        /**
         * Return this year diapason.
         *
         * @return array
         */
        private function prepareTimePeriodForThisYear()
        {
        }
        /**
         * Return this month diapason.
         *
         * @return array
         */
        private function prepareTimePeriodForThisMonth()
        {
        }
        /**
         * Return this quarter diapason.
         *
         * @return array
         */
        private function prepareTimePeriodForThisQuarter()
        {
        }
        /**
         * Return date time diapason where exis last $dayCount days.
         *
         * @param int $dayCount Days count existed in returned time diapason.
         * @return array
         */
        private function prepareTimePeriodForLastDays($dayCount = 0)
        {
        }
        /**
         * @return Options
         */
        private function getFilterOptions()
        {
        }
        /**
         * @return string[]
         */
        public function getTypeList()
        {
        }
        /**
         * @return string[] of month with translates.
         */
        public function getMonthList()
        {
        }
        /**
         * @return string[] of quarter.
         */
        public function getQuarterList()
        {
        }
        /**
         * @return string[] of years in time period.
         */
        public function getYearList()
        {
        }
        /**
         * @return string
         */
        public function getValueForHuman()
        {
        }
        /**
         * @return \DateTime
         */
        public function getDateTime()
        {
        }
        /**
         * @return int
         */
        public function getCurrentYear()
        {
        }
        /**
         * @return int
         */
        public function getCurrentMonth()
        {
        }
        /**
         * @return int
         */
        public function getCurrentQuarter()
        {
        }
    }
    /**
     * Class Hidden, generate html element input with type hidden
     * @package Bitrix\Report\VisualConstructor\Fields\Valuable
     */
    class Hidden extends \Bitrix\Report\VisualConstructor\Fields\Valuable\BaseValuable
    {
        const JS_EVENT_ON_CHANGE = 'onChange';
        /**
         * Hidden field constructor.
         *
         * @param string $key Unique key.
         */
        public function __construct($key)
        {
        }
        /**
         * Load field component with hidden template.
         *
         * @return void
         */
        public function printContent()
        {
        }
    }
    /**
     * Label Field included text field for title
     * @package Bitrix\Report\VisualConstructor\Fields\Valuable
     */
    class LabelField extends \Bitrix\Report\VisualConstructor\Fields\Valuable\BaseValuable
    {
        private $mode;
        const JS_EVENT_ON_CHANGE = 'onChange';
        /**
         * Label field constructor.
         *
         * @param string $key Unique key.
         * @param string $mode Mode for render (small or big).
         */
        public function __construct($key, $mode = 'small')
        {
        }
        /**
         * Load field component with label or biglabel template.
         *
         * @return void
         */
        public function printContent()
        {
        }
        /**
         * @return string
         */
        public function getMode()
        {
        }
        /**
         * Mode setter.
         *
         * @param string $mode Mode value(small or big).
         * @return void
         */
        public function setMode($mode)
        {
        }
    }
    /**
     * ColorPicker field whit preview
     *
     * @package Bitrix\Report\VisualConstructor\Fields\Valuable
     */
    class ColorPicker extends \Bitrix\Report\VisualConstructor\Fields\Valuable\BaseValuable
    {
        const JS_EVENT_ON_SELECT = 'onSelect';
        private $mode;
        private $pickerFieldHidden = false;
        /**
         * Color picker constructor.
         *
         * @param string $key Unique key.
         * @param string $mode Mode which define in which template will render this field.
         */
        public function __construct($key, $mode = 'simple')
        {
        }
        /**
         * Load field component with simplecolorpicker or colorpicker template.
         * And print it.
         *
         * @return void
         */
        public function printContent()
        {
        }
        /**
         * @return string
         */
        public function getMode()
        {
        }
        /**
         * Mode setter.
         *
         * @param string $mode Mode value.
         * @return void
         */
        public function setMode($mode)
        {
        }
        /**
         * Check is color picker is hidden.
         * In this mode color picker will not dislay in form, but input field will exist.
         *
         * @return bool
         */
        public function isPickerFieldHidden()
        {
        }
        /**
         * Setter for hide marker.
         *
         * @param bool $pickerFieldHidden Marker hidden or not picker field.
         * @return void
         */
        public function setPickerFieldHidden($pickerFieldHidden)
        {
        }
    }
    /**
     * Simple checkbox field
     * @package Bitrix\Report\VisualConstructor\Fields\Valuable
     */
    class CheckBox extends \Bitrix\Report\VisualConstructor\Fields\Valuable\BaseValuable
    {
        /**
         * Constructor for checkbox field.
         *
         * @param string $key Unique key.
         */
        public function __construct($key)
        {
        }
        /**
         * Load field component with checkbox template.
         * And print it.
         *
         * @return void
         */
        public function printContent()
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Fields {
    /**
     * Html element which can fire some js event
     *
     * @package Bitrix\Report\VisualConstructor\Fields
     */
    class ComplexHtml extends \Bitrix\Report\VisualConstructor\Fields\Html
    {
        const JS_EVENT_ON_CLICK = 'onClick';
        /**
         * Construct html element and set id for it.
         * After js listeners will listen events element by id.
         *
         * @param string $id Unique id for complex html field.
         * @param string $contentHtml String which place into complex html node.
         */
        public function __construct($id, $contentHtml = '')
        {
        }
        /**
         * Print complex html component content.
         *
         * @return void
         */
        public function printContent()
        {
        }
    }
    /**
     * Class Image, render image
     * @package Bitrix\Report\VisualConstructor\Fields
     */
    class Image extends \Bitrix\Report\VisualConstructor\Fields\Base
    {
        const JS_EVENT_ON_CLICK = 'onClick';
        private $uri;
        /**
         * Image constructor.
         * @param string $sourceUri
         */
        public function __construct($sourceUri = '')
        {
        }
        /**
         * @return void
         */
        public function printContent()
        {
        }
        /**
         * @return mixed
         */
        public function getUri()
        {
        }
        /**
         * @param mixed $uri Src of image.
         * @return void
         */
        public function setUri($uri)
        {
        }
    }
    /**
     * Button field render input with type button.
     * @package Bitrix\Report\VisualConstructor\Fields
     */
    class Button extends \Bitrix\Report\VisualConstructor\Fields\Base
    {
        const JS_EVENT_ON_CLICK = 'onClick';
        /**
         * Button constructor.
         *
         * @param string $id Unique id.
         */
        public function __construct($id)
        {
        }
        /**
         * Load field component with button template.
         *
         * @return void
         */
        public function printContent()
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Views\Component {
    /**
     * Base class for component content type for widgets in report dashboard.
     *
     * @package Bitrix\Report\VisualConstructor\Views\Component
     */
    abstract class Base extends \Bitrix\Report\VisualConstructor\View
    {
        private $componentName;
        private $componentTemplateName = '';
        private $componentParameters;
        /**
         * Base component type view constructor.
         */
        public function __construct()
        {
        }
        /**
         * @return mixed
         */
        public function getComponentName()
        {
        }
        /**
         * Setter for component name.
         *
         * @param string $componentName Component name.
         * @return void
         */
        public function setComponentName($componentName)
        {
        }
        /**
         * @return string
         */
        public function getComponentParameters()
        {
        }
        /**
         * Component parameters setter.
         *
         * @param array $componentParameters Parameters which pass to component.
         * @return void
         */
        public function setComponentParameters($componentParameters)
        {
        }
        /**
         * @param $key
         * @param $value
         */
        public function addComponentParameters($key, $value)
        {
        }
        /**
         * Handle all data prepared for this view.
         *
         * @param array $calculatedPerformedData Performed data from report handler.
         * @return array
         */
        public function handlerFinallyBeforePassToView($calculatedPerformedData)
        {
        }
        /**
         * Method to modify Content which pass to widget view, in absolute end.
         *
         * @param Widget $widget Widget entity.
         * @param bool $withCalculatedData Marker for calculate or no data in widget.
         * @return array
         */
        public function prepareWidgetContent(\Bitrix\Report\VisualConstructor\Entity\Widget $widget, $withCalculatedData = false)
        {
        }
        /**
         * Get calculated and format data.
         *
         * @param Widget $widget Widget Entity.
         * @param bool $withCalculatedData Marker for calculate or no data in widget.
         * @return array|null
         */
        protected function getCalculatedPerformedData(\Bitrix\Report\VisualConstructor\Entity\Widget $widget, $withCalculatedData)
        {
        }
        /**
         * @param $componentName
         * @param array $params
         * @return mixed
         */
        private function includeComponent()
        {
        }
        /**
         * @return string
         */
        public function getComponentTemplateName()
        {
        }
        /**
         * @param string $componentTemplateName
         */
        public function setComponentTemplateName($componentTemplateName)
        {
        }
    }
    /**
     * Class Number
     * @package Bitrix\Report\VisualConstructor\Views
     */
    class Number extends \Bitrix\Report\VisualConstructor\Views\Component\Base
    {
        const VIEW_KEY = 'number';
        const MAX_RENDER_REPORT_COUNT = 1;
        /**
         * Number constructor.
         */
        public function __construct()
        {
        }
        /**
         * Method to modify report form elements.
         *
         * @param BaseReport $reportHandler Report handler.
         * @return void
         */
        public function collectReportHandlerFormElements($reportHandler)
        {
        }
        /**
         * Method to modify Content which pass to widget view, in absolute end.
         * Set widget color from report color.
         * In interface we choose color for report, but actually change widget background color.
         *
         * @param Widget $widget Widget entity.
         * @param bool $withCalculatedData Marker for calculate or not reports.
         * @return array
         */
        public function prepareWidgetContent(\Bitrix\Report\VisualConstructor\Entity\Widget $widget, $withCalculatedData = false)
        {
        }
    }
    /**
     * Number block for widgets with 3 numeric block.
     *
     * @package Bitrix\Report\VisualConstructor\Views
     */
    class NumberBlock extends \Bitrix\Report\VisualConstructor\Views\Component\Base
    {
        const VIEW_KEY = 'numberBlock';
        const MAX_RENDER_REPORT_COUNT = 3;
        const DEFAULT_EMPTY_REPORT_COUNT = 3;
        /**
         * Number block view constructor.
         */
        public function __construct()
        {
        }
        /**
         * Collect second and third report configuration block in one horizontal group.
         *
         * @param WidgetForm $form Widget form.
         * @return WidgetForm
         */
        public function prepareWidgetFormBeforeRender(\Bitrix\Report\VisualConstructor\WidgetForm $form)
        {
        }
        /**
         * Set non-displayable color field in this view type.
         *
         * @param BaseWidget $widgetHandler Widget handler.
         * @return void
         */
        public function collectWidgetHandlerFormElements(\Bitrix\Report\VisualConstructor\Handler\BaseWidget $widgetHandler)
        {
        }
        /**
         * Set default colors for report configuration block if not exist.
         * Set non-displayable remove button field in this view type.
         * Attach what will calculate change event to label field.
         *
         * @param BaseReport $reportHandler Base report handler.
         * @return void
         */
        public function collectReportHandlerFormElements($reportHandler)
        {
        }
        /**
         * Pass first report color to widget background color,.
         * In interface we modify first report color but actually we change background of all widget.
         *
         * @param Widget $widget Widget entity.
         * @param bool $withCalculatedData Marker to set calculate or no reports.
         * @return array
         */
        public function prepareWidgetContent(\Bitrix\Report\VisualConstructor\Entity\Widget $widget, $withCalculatedData = false)
        {
        }
        /**
         * Default colors set for reports.
         *
         * @param int $num Number of color which need.
         * @return string
         */
        public function getReportDefaultColor($num)
        {
        }
    }
    /**
     * NumberBlock with formula, this view type create widget type like number block except last report, last report will change with formula
     * @package Bitrix\Report\VisualConstructor\Views\Component
     */
    class NumberBlockWithFormula extends \Bitrix\Report\VisualConstructor\Views\Component\NumberBlock
    {
        const VIEW_KEY = 'numberBlockAAA';
        const MAX_RENDER_REPORT_COUNT = 3;
        const DEFAULT_EMPTY_REPORT_COUNT = 3;
        /**
         * Number block with formula constructor constructor.
         */
        public function __construct()
        {
        }
        /**
         * When building new widget, add default Report handlers to widget.
         *
         * @param BaseWidget $widgetHandler Widget handler.
         * @return BaseWidget
         */
        public function addDefaultReportHandlersToWidgetHandler(\Bitrix\Report\VisualConstructor\Handler\BaseWidget $widgetHandler)
        {
        }
        /**
         * Set non-displayable calculate and report category fields.
         *
         * @param BaseReport $reportHandler Report handler.
         * @return void
         */
        public function collectReportHandlerFormElements($reportHandler)
        {
        }
    }
    /**
     * Class Number
     * @package Bitrix\Report\VisualConstructor\Views
     */
    class GroupedDataGrid extends \Bitrix\Report\VisualConstructor\Views\Component\Base
    {
        const VIEW_KEY = 'tripleDataWithProgress';
        const MAX_RENDER_REPORT_COUNT = 8;
        /**
         * Number constructor.
         */
        public function __construct()
        {
        }
        /**
         * Handle all data prepared for this view.
         *
         * @param array $calculatedPerformedData Calculated data from report handler.
         * @return array
         */
        public function handlerFinallyBeforePassToView($calculatedPerformedData)
        {
        }
        /**
         * Method to modify widget form elements.
         *
         * @param BaseWidget $widgetHandler Widget handler.
         * @return void
         */
        public function collectWidgetHandlerFormElements(\Bitrix\Report\VisualConstructor\Handler\BaseWidget $widgetHandler)
        {
        }
        /**
         * Method to modify report form elements.
         *
         * @param BaseReport $reportHandler Report handler.
         * @return void
         */
        public function collectReportHandlerFormElements($reportHandler)
        {
        }
        /**
         * Always in this report color should be gray.
         *
         * @param int $num Number of color which need.
         * @return string
         */
        public function getReportDefaultColor($num)
        {
        }
    }
    class Grid extends \Bitrix\Report\VisualConstructor\Views\Component\GroupedDataGrid
    {
        const VIEW_KEY = 'grid';
        const MAX_RENDER_REPORT_COUNT = 15;
        const USE_IN_VISUAL_CONSTRUCTOR = false;
        public function __construct()
        {
        }
        public function handlerFinallyBeforePassToView($calculatedPerformedData)
        {
        }
        /**
         * Method to modify widget form elements.
         *
         * @param BaseWidget $widgetHandler Widget handler.
         * @return void
         */
        public function collectWidgetHandlerFormElements(\Bitrix\Report\VisualConstructor\Handler\BaseWidget $widgetHandler)
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Views\JsComponent {
    /**
     * Base class for js "components: to render in content in widgets of dashboard
     * @package Bitrix\Report\VisualConstructor\Views\JsComponent
     */
    abstract class Base extends \Bitrix\Report\VisualConstructor\View
    {
        /**
         * Method to modify Content which pass to widget view, in absoulte end.
         *
         * @param Widget $widget Widget entity.
         * @param bool $withCalculatedData Marker for calculate or no data in widget.
         * @return array
         */
        public function prepareWidgetContent(\Bitrix\Report\VisualConstructor\Entity\Widget $widget, $withCalculatedData = false)
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Views\JsComponent\AmChart {
    /**
     * Base class for AmChart widget
     * @package Bitrix\Report\VisualConstructor\Views\AmChart
     */
    abstract class Base extends \Bitrix\Report\VisualConstructor\Views\JsComponent\Base
    {
        const AM_CHART_LIB_PATH = '/bitrix/js/main/amcharts/3.21';
        /**
         * Base constructor. for all AmChart diagrams.
         */
        public function __construct()
        {
        }
        /**
         * Handle all data prepared for this view.
         *
         * @param array $data Parameters prepared in report handlers.
         * @return array
         */
        public function handlerFinallyBeforePassToView($data)
        {
        }
        /**
         * Set non-displayable color field.
         *
         * @param BaseWidget $widgetHandler Widget handler.
         * @return void
         */
        public function collectWidgetHandlerFormElements(\Bitrix\Report\VisualConstructor\Handler\BaseWidget $widgetHandler)
        {
        }
        /**
         * Return amchar classification type.
         *
         * @return string
         */
        protected abstract function getAmChartType();
    }
    /**
     * Class Serial
     * @package Bitrix\Report\VisualConstructor\Views\AmChart
     */
    abstract class Serial extends \Bitrix\Report\VisualConstructor\Views\JsComponent\AmChart\Base
    {
        const MAX_RENDER_REPORT_COUNT = 15;
        const ENABLE_SORTING = true;
        /**
         * Serial widget base constructor.
         */
        public function __construct()
        {
        }
        /**
         * Handle all data prepared for this view.
         * Collect paremeters for pass serial amchart.
         * @see Amchart documantation.
         *
         * @param array $dataFromReport Parameters prepared in report handlers.
         * @return array
         */
        public function handlerFinallyBeforePassToView($dataFromReport)
        {
        }
        /**
         * Method to modify widget form elements.
         *
         * @param BaseReport $reportHandler Widget handler.
         * @return void
         */
        public function collectReportHandlerFormElements($reportHandler)
        {
        }
        /**
         * Return amchar classification type.
         *
         * @return string
         */
        protected function getAmChartType()
        {
        }
    }
    /**
     * Classic  Linear Graph with two orientation
     * @package Bitrix\Report\VisualConstructor\Views\AmChart
     */
    class LinearGraph extends \Bitrix\Report\VisualConstructor\Views\JsComponent\AmChart\Serial
    {
        const VIEW_KEY = 'linearGraph';
        /**
         * Linear graph constructor.
         */
        public function __construct()
        {
        }
        /**
         * Return list of compatible view type keys, to this view types can switch without reform configurations.
         *
         * @return array
         */
        public function getCompatibleViewTypes()
        {
        }
        /**
         * Handle all data prepared for this view.
         *
         * @param array $dataFromReport Parameters prepared in report handlers.
         * @return array
         */
        public function handlerFinallyBeforePassToView($dataFromReport)
        {
        }
    }
    /**
     * Class SmoothedGraph
     * @package Bitrix\Report\VisualConstructor\Views\AmChart
     */
    class SmoothedGraph extends \Bitrix\Report\VisualConstructor\Views\JsComponent\AmChart\LinearGraph
    {
        const VIEW_KEY = 'smoothedLineGraph';
        /**
         * Smoothed graph  constructor.
         */
        public function __construct()
        {
        }
        /**
         * Return list of compatible view type keys, to this view types can switch without reform configurations.
         *
         * @return array
         */
        public function getCompatibleViewTypes()
        {
        }
        /**
         * Handle all data prepared for this view.
         *
         * @param array $dataFromReport Parameters prepared in report handlers.
         * @return array
         */
        public function handlerFinallyBeforePassToView($dataFromReport)
        {
        }
    }
    /**
     * Class Pie
     * @package Bitrix\Report\VisualConstructor\Views\AmChart
     */
    class PieDiagram extends \Bitrix\Report\VisualConstructor\Views\JsComponent\AmChart\Base
    {
        const VIEW_KEY = 'pieDiagram';
        const MAX_RENDER_REPORT_COUNT = 1;
        const DEFAULT_EMPTY_REPORT_COUNT = 1;
        /**
         * PieDiagram constructor.
         */
        public function __construct()
        {
        }
        /**
         * Return list of compatible view type keys, to this view types can switch without reform configurations.
         *
         * @return array
         */
        public function getCompatibleViewTypes()
        {
        }
        /**
         * Get custom colors list.
         *
         * @return array
         */
        public function getCustomColorList()
        {
        }
        /**
         * Handle all data prepared for this view.
         *
         * @param array $dataFromReport Parameters prepared in report handlers.
         * @return array
         */
        public function handlerFinallyBeforePassToView($dataFromReport)
        {
        }
        /**
         * Return amchar classification type.
         *
         * @return string
         */
        protected function getAmChartType()
        {
        }
        /**
         * Method to modify widget form elements.
         *
         * @param BaseReport $reportHandler Widget handler.
         * @return void
         */
        public function collectReportHandlerFormElements($reportHandler)
        {
        }
        /**
         * Always in pie diagram report color should be white.
         *
         * @param int $num Number of color which need.
         * @return string
         */
        public function getReportDefaultColor($num)
        {
        }
    }
    /**
     * Class Funnel
     * @package Bitrix\Report\VisualConstructor\Views\AmChart
     */
    class Funnel extends \Bitrix\Report\VisualConstructor\Views\JsComponent\AmChart\PieDiagram
    {
        const VIEW_KEY = 'funnel';
        /**
         * Funnel view type constructor. set label and miniature src.
         *
         */
        public function __construct()
        {
        }
        /**
         * Return list of compatible view type keys, to this view types can switch without reform configurations.
         *
         * @return array
         */
        public function getCompatibleViewTypes()
        {
        }
        /**
         * Return amchar classification type.
         *
         * @return string
         */
        protected function getAmChartType()
        {
        }
        /**
         * Handle all data prepared for this view.
         *
         * @param array $dataFromReport Parameters prepared in report handlers.
         * @return array
         */
        public function handlerFinallyBeforePassToView($dataFromReport)
        {
        }
    }
    /**
     * Class Column
     * @package Bitrix\Report\VisualConstructor\Views\AmChart
     */
    class Column extends \Bitrix\Report\VisualConstructor\Views\JsComponent\AmChart\Serial
    {
        const VIEW_KEY = 'column';
        /**
         * Column view type constructor constructor.
         */
        public function __construct()
        {
        }
        /**
         * Return list of compatible view type keys, to this view types can switch without reform configurations.
         * @return array
         */
        public function getCompatibleViewTypes()
        {
        }
        /**
         * Handle all data prepared for this view.
         *
         * @param array $dataFromReport Parameters prepared in report handlers.
         * @return array
         */
        public function handlerFinallyBeforePassToView($dataFromReport)
        {
        }
    }
    class ColumnLogarithmic extends \Bitrix\Report\VisualConstructor\Views\JsComponent\AmChart\Column
    {
        const VIEW_KEY = "columnLogarithmic";
        const ENABLE_SORTING = false;
        /**
         * Column view type constructor constructor.
         */
        public function __construct()
        {
        }
        public function getCompatibleViewTypes()
        {
        }
        /**
         * Handle all data prepared for this view.
         *
         * @param array $dataFromReport Parameters prepared in report handlers.
         * @return array
         */
        public function handlerFinallyBeforePassToView($dataFromReport)
        {
        }
    }
    /**
     * Class DonutDiagram
     * @package Bitrix\Report\VisualConstructor\Views\AmChart
     */
    class DonutDiagram extends \Bitrix\Report\VisualConstructor\Views\JsComponent\AmChart\PieDiagram
    {
        const VIEW_KEY = 'donutDiagram';
        const MAX_RENDER_REPORT_COUNT = 1;
        /**
         * Pie diagram constructor.
         */
        public function __construct()
        {
        }
        /**
         * Return list of compatible view type keys, to this view types can switch without reform configurations.
         *
         * @return array
         */
        public function getCompatibleViewTypes()
        {
        }
        /**
         * Handle all data prepared for this view.
         *
         * @param array $dataFromReport Parameters prepared in report handlers.
         * @return array
         */
        public function handlerFinallyBeforePassToView($dataFromReport)
        {
        }
        /**
         * Return amchar classification type.
         *
         * @return string
         */
        protected function getAmChartType()
        {
        }
    }
    /**
     * Class Stack
     * @package Bitrix\Report\VisualConstructor\Views\AmChart
     */
    class Stack extends \Bitrix\Report\VisualConstructor\Views\JsComponent\AmChart\Column
    {
        const VIEW_KEY = 'stack';
        /**
         * Stack view type constructor. set label and miniature src
         */
        public function __construct()
        {
        }
        /**
         * Return list of compatible view type keys, to this view types can switch without reform configurations.
         *
         * @return array
         */
        public function getCompatibleViewTypes()
        {
        }
        /**
         * Handle all data prepared for this view.
         *
         * @param array $dataFromReport Parameters prepared in report handlers.
         * @return array
         */
        public function handlerFinallyBeforePassToView($dataFromReport)
        {
        }
    }
    /**
     * Class MultiDirectional.
     * Construct 2 directional linear graph,
     * First report in first direction, second in second sdirection.
     *
     * @package Bitrix\Report\VisualConstructor\Views\JsComponent\AmChart
     */
    class MultiDirectional extends \Bitrix\Report\VisualConstructor\Views\JsComponent\AmChart\Serial
    {
        const VIEW_KEY = 'multiDirectional';
        const MAX_RENDER_REPORT_COUNT = 2;
        const DEFAULT_EMPTY_REPORT_COUNT = 2;
        /**
         * Multidirecional graoph constructor.
         */
        public function __construct()
        {
        }
        /**
         * Handle all data prepared for this view.
         *
         * @param array $dataFromReport Parameters prepared in report handlers.
         * @return array
         */
        public function handlerFinallyBeforePassToView($dataFromReport)
        {
        }
        /**
         * Method to modify widget form elements.
         *
         * @param BaseReport $reportHandler Widget handler.
         * @return void
         */
        public function collectReportHandlerFormElements($reportHandler)
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Views\JsComponent\AmCharts4 {
    /**
     * Base class for AmChart widget
     * @package Bitrix\Report\VisualConstructor\Views\AmChart
     */
    abstract class Base extends \Bitrix\Report\VisualConstructor\Views\JsComponent\Base
    {
        /**
         * Base constructor. for all AmChart diagrams.
         */
        public function __construct()
        {
        }
        /**
         * Handle all data prepared for this view.
         *
         * @param array $data Parameters prepared in report handlers.
         * @return array
         */
        public function handlerFinallyBeforePassToView($data)
        {
        }
        /**
         * Set non-displayable color field.
         *
         * @param BaseWidget $widgetHandler Widget handler.
         * @return void
         */
        public function collectWidgetHandlerFormElements(\Bitrix\Report\VisualConstructor\Handler\BaseWidget $widgetHandler)
        {
        }
        /**
         * Return amchar classification type.
         *
         * @return string
         */
        protected abstract function getAmChartType();
    }
    /**
     * Class Serial
     * @package Bitrix\Report\VisualConstructor\Views\AmCharts4
     */
    abstract class Serial extends \Bitrix\Report\VisualConstructor\Views\JsComponent\AmCharts4\Base
    {
        const MAX_RENDER_REPORT_COUNT = 15;
        const ENABLE_SORTING = true;
        const USE_IN_VISUAL_CONSTRUCTOR = false;
        /**
         * Serial widget base constructor.
         */
        public function __construct()
        {
        }
        /**
         * Handle all data prepared for this view.
         * Collect parameters for pass serial amchart.
         * @param array $dataFromReport Parameters prepared in report handlers.
         * @return array
         * @see Amchart documantation.
         *
         */
        public function handlerFinallyBeforePassToView($dataFromReport)
        {
        }
        /**
         * Method to modify widget form elements.
         *
         * @param BaseReport $reportHandler Widget handler.
         * @return void
         */
        public function collectReportHandlerFormElements($reportHandler)
        {
        }
        /**
         * Return amchar classification type.
         *
         * @return string
         */
        protected function getAmChartType()
        {
        }
    }
    /**
     * Class Column
     * @package Bitrix\Report\VisualConstructor\Views\AmCharts4
     */
    class Column extends \Bitrix\Report\VisualConstructor\Views\JsComponent\AmCharts4\Serial
    {
        const VIEW_KEY = 'amcharts4_column';
        const USE_IN_VISUAL_CONSTRUCTOR = false;
        /**
         * Column view type constructor constructor.
         */
        public function __construct()
        {
        }
        /**
         * Return list of compatible view type keys, to this view types can switch without reform configurations.
         * @return array
         */
        public function getCompatibleViewTypes()
        {
        }
        /**
         * Handle all data prepared for this view.
         *
         * @param array $dataFromReport Parameters prepared in report handlers.
         * @return array
         */
        public function handlerFinallyBeforePassToView($dataFromReport)
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Views\JsComponent {
    /**
     * Class Circle
     * @package Bitrix\Report\VisualConstructor\Views\JsComponent
     */
    class Circle extends \Bitrix\Report\VisualConstructor\Views\JsComponent\Base
    {
        const VIEW_KEY = 'circle';
        /**
         * Circle constructor.
         */
        public function __construct()
        {
        }
        /**
         * Handle all data prepared for this view.
         *
         * @param array $dataFromReport Calculated data from report handler.
         * @return array
         */
        public function handlerFinallyBeforePassToView($dataFromReport)
        {
        }
    }
    /**
     * Class Activity
     * @package Bitrix\Report\VisualConstructor\Views\JsComponent
     */
    class Activity extends \Bitrix\Report\VisualConstructor\Views\JsComponent\Base
    {
        const VIEW_KEY = 'activity';
        const MAX_RENDER_REPORT_COUNT = 1;
        /**
         * Activity constructor.
         */
        public function __construct()
        {
        }
        /**
         * Method to modify widget form elements.
         *
         * @param BaseReport $reportHandler Widget handler.
         * @return void
         */
        public function collectReportHandlerFormElements($reportHandler)
        {
        }
        /**
         * Handle all data prepared for this view.
         *
         * @see IReportMultipleGroupedData::getMultipleGroupedData().
         * @param array $dataFromReport Calculated data from report handler.
         * @return array
         */
        public function handlerFinallyBeforePassToView($dataFromReport)
        {
        }
        /**
         * Week days labels map.
         *
         * @return array
         */
        private function getWeekDaysMap()
        {
        }
        /**
         * Get Hour list for grouping data by hour.
         *
         * @return array
         */
        private function getHourList()
        {
        }
        /**
         * Always in activity widget report color should be white.
         *
         * @param int $num Number of color which need.
         * @return string
         */
        public function getReportDefaultColor($num)
        {
        }
    }
}
namespace Bitrix\Report\VisualConstructor\Helper {
    /**
     * Helper Class for working with categories of report, widget
     * @package Bitrix\Report\VisualConstructor\Helper
     */
    class Category
    {
        /**
         * Build readable categories tree.
         *
         * @param  \Bitrix\Report\VisualConstructor\Category[] $categories Categories collection.
         * @param array $options Array of options.
         * @param int $depth Service parameter, to calculate '-' count.
         * @return array
         */
        public static function getOptionsTree($categories, $options = array(), $depth = 0)
        {
        }
    }
    /**
     * Class Dashboard
     * @package Bitrix\Report\VisualConstructor\Helper
     */
    class Dashboard
    {
        /**
         * Try find dashboard with key for this user, if not exist create it from copy of default board and return.
         *
         * @param string $boardKey Board key.
         * @return DashboardEntity
         */
        public static function getDashboardByKeyForCurrentUser($boardKey)
        {
        }
        /**
         * Add this widget to end of all boards with key $boardKey.
         * will create new row and place there $widget.
         * @param string $boardKey Board key.
         * @param WidgetEntity $widget Widget entity.
         * @return array
         */
        public static function addWidgetToDashboardsWithKey($boardKey, \Bitrix\Report\VisualConstructor\Entity\Widget $widget)
        {
        }
        /**
         * This method is for service.
         * Find all default dashboards in product.
         * Check if version change, then remove dashboard with all nested entities, and isnert new.
         *
         * @param string $boardKey Board key.
         * @throws SystemException
         * @return void
         */
        public static function renewDefaultDashboard($boardKey)
        {
        }
        /**
         * @param string $board Key Board key.
         * @return bool
         */
        public static function getBoardModeIsDemo($boardKey)
        {
        }
        public static function setBoardModeIsDemo($boardKey, $mode)
        {
        }
        public static function updateBoardCustomDefaultMode($boardKey, $demo = false)
        {
        }
        private static function setBoardCustomDefaultModeIsDemo($boardKey, $demo = false)
        {
        }
        private static function checkBoardCustomDefaultModeIsExist($boardKey)
        {
        }
        private static function getBoardCustomDefaultModeIsDemo($boardKey)
        {
        }
    }
    /**
     * Class DemoBase
     * @package Bitrix\Report\VisualConstructor\Helper
     */
    class DemoBase
    {
        /**
         * @param array $params Parameters for build demo data for single type.
         * @return array
         */
        public static function getDemoDataForSingle($params = array())
        {
        }
        /**
         * @return array
         */
        public static function getDemoDataForMultiple()
        {
        }
        /**
         * @return array
         */
        public static function getDemoDataForMultipleGrouped()
        {
        }
        /**
         * @return array
         */
        public static function getDemoDataForMultipleBiGrouped()
        {
        }
    }
    /**
     * Helper functions for Row entity
     * @package Bitrix\Report\VisualConstructor\Helper
     */
    class Row
    {
        /**
         * Build row layout map with passed positions.
         *
         * @param array $positions Array of available positions in built Row layout map.
         * @return array
         */
        public static function getDefaultRowLayoutMap($positions)
        {
        }
        /**
         * Row fabric generate row with layout where exist cells with ids from $positions array.
         *
         * @param array $params Parameters like [cellIds => ['cell_1', 'cell_2'], weight => 5].
         * @return DashboardRow
         * @throws ArgumentException
         */
        public static function getRowDefaultEntity($params)
        {
        }
    }
    /**
     * Class Analytic
     */
    class Analytic
    {
        /**
         * @TODO maybe need to add some logic of access for different analytic pages
         *
         * @return bool
         */
        public static function isEnable()
        {
        }
    }
    /**
     * Class Filter
     * @package Bitrix\Report\VisualConstructor\Helper
     */
    class Filter
    {
        protected $filterId;
        /**
         * Base filter constructor.
         * @param string $boardId Board id for which construct filter.
         * @return void.
         */
        public function __construct($boardId)
        {
        }
        /**
         * @return string
         */
        public function getFilterId() : string
        {
        }
        /**
         * @return array
         */
        public function getFilterParameters()
        {
        }
        public static function createFilterId($boardId)
        {
        }
        /**
         * @return array
         */
        public static function getFieldsList()
        {
        }
        /**
         * @return array
         */
        public static function getPresetsList()
        {
        }
        public function getStringList()
        {
        }
    }
    /**
     * Common helper class, for some system methods
     * @package Bitrix\Report\VisualConstructor\Helper
     */
    class Util
    {
        /**
         * Generate and return User unique id.
         *
         * @param string $prefix String to set of prefix of user unique Id.
         * @return string
         */
        public static function generateUserUniqueId($prefix = '')
        {
        }
        /**
         * Get User Profile picture src by file index.
         *
         * @param int $avatarId Avatar file id.
         * @param int $width Width size.
         * @param int $height Height size.
         * @return mixed|null
         */
        public static function getAvatarSrc($avatarId, $width = 21, $height = 21)
        {
        }
    }
    /**
     * Class Widget
     * @package Bitrix\Report\VisualConstructor\Helper
     */
    class Widget
    {
        const LAZY_LOAD_MODE = true;
        /**
         * Build Widget content pas to preparing in view controller.
         *
         * @param WidgetEntity $widget Widget Entity.
         * @param bool $withCalculatedData Marker define calculate or not data in reports.
         * @return array
         */
        public static function prepareWidgetContent(\Bitrix\Report\VisualConstructor\Entity\Widget $widget, $withCalculatedData = false)
        {
        }
        /**
         * @param View $view View Controller.
         * @param WidgetEntity $widget Widget Entity.
         * @return null
         */
        public static function getCalculatedPerformedData($view, $widget)
        {
        }
        /**
         * Load all dashboard by board key.
         * Prepare it for render.
         *
         * @param string $boardKey Board key.
         * @return array
         */
        public static function prepareBoardWithEntitiesByBoardId($boardKey)
        {
        }
        /**
         * Load dashboard for user.
         * Try load dashboard for user. if not exist return default dashboard.
         * @param string $boardKey Board key.
         * @return DashboardEntity|null
         */
        private static function getDashboard($boardKey)
        {
        }
        /**
         * Construct widget by params.
         *
         * @param array $params Parameters to construct widget.
         * @return WidgetEntity
         * @throws ArgumentException
         */
        public static function constructPseudoWidgetByParams($params)
        {
        }
        /**
         * Construct Pseudo widget by form params, to render preview in previewBlock.
         *
         * @param array $params Parameters to construct new widget.
         * @return WidgetEntity
         * @throws ArgumentException
         */
        public static function constructNewPseudoWidgetByParams($params)
        {
        }
        /**
         * Get copy from core widget. set net gId. and save.
         *
         * @param WidgetEntity $widget Entity of core widget.
         * @param string $categoryKey kay of Category to attach pattern widget.
         *
         * @return WidgetEntity
         */
        public static function saveWidgetAsCurrentUserPattern(\Bitrix\Report\VisualConstructor\Entity\Widget $widget, $categoryKey = '')
        {
        }
    }
    /**
     * Class Report
     * @package Bitrix\Report\VisualConstructor\Helper
     */
    class Report
    {
        /**
         * Build Pseudo report in context of widget.
         *
         * @param string $reportHandlerClassName Report handler class name.
         * @param \Bitrix\Report\VisualConstructor\Entity\Widget $widget Widget entity.
         * @param bool $isPseudo Marker to set built widget will be pseudo or no.
         * @return BaseReport|null
         */
        public static function buildReportHandlerForWidget($reportHandlerClassName, \Bitrix\Report\VisualConstructor\Entity\Widget $widget, $isPseudo = false)
        {
        }
    }
}
namespace Bitrix\Report {
    class Sharing
    {
        const ERROR_SHARING_ADD = 'REPORT_SHARING_ADD_12000';
        const ERROR_SHARING_UPDATE = 'REPORT_SHARING_UPDATE_12001';
        const ERROR_SHARING_DELETE = 'REPORT_SHARING_DELETE_12002';
        const CODE_USER = 'U';
        const CODE_GROUP = 'G';
        const CODE_SOCNET_GROUP = 'SG';
        const CODE_DEPARTMENT = 'DR';
        const TYPE_USER = 'users';
        const TYPE_GROUP = 'groups';
        const TYPE_SOCNET_GROUP = 'sonetgroups';
        const TYPE_DEPARTMENT = 'department';
        /** @var  ErrorCollection */
        protected $errorCollection;
        protected $reportId;
        public function __construct($reportId)
        {
        }
        /**
         * The method changes the share.
         * @param $listNewEntity - List new reports.
         */
        public function changeSharing($listNewEntity)
        {
        }
        /**
         * @return Error[]
         */
        public function getErrors()
        {
        }
        /**
         * Get an array shared entity.
         * @param $reportId.
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getEntityOfSharing($reportId)
        {
        }
        /**
         * Get an array user data for sharing.
         * @param $userId
         * @return array
         */
        public static function getUserData($userId)
        {
        }
        /**
         * Parses entity code to get entity type and entity id.
         * Ex. SG444 = array('SG', 444)
         * @param $entity
         * @return array|null
         */
        public static function parseEntityValue($entity)
        {
        }
        /**
         * Get an array of desired size depending on the type of entity.
         * @param $type
         * @param $id
         * @return array
         * @throws \Bitrix\Main\LoaderException
         */
        public static function getTypeData($type, $id)
        {
        }
        /**
         * Get socnet destination.
         * @param $userId
         * @param array $selected
         * @return array
         * @throws \Bitrix\Main\LoaderException
         */
        public static function getSocNetDestination($userId, $selected = array())
        {
        }
        /**
         * Removes all related entities by removing report.
         * @param $reportId
         * @throws \Exception
         */
        public static function onReportDelete($reportId)
        {
        }
        protected function getByReportId()
        {
        }
        protected function addToManyEntity(array $listData)
        {
        }
        protected function updateManyEntity(array $listData)
        {
        }
        protected function deleteManyEntity(array $listData)
        {
        }
        protected static function getUserUrl($userId)
        {
        }
        protected static function getImage($imageId)
        {
        }
    }
}
namespace {
    class im extends \CModule
    {
        var $MODULE_ID = "im";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_GROUP_RIGHTS = "Y";
        function im()
        {
        }
        function DoInstall()
        {
        }
        function InstallDB()
        {
        }
        function InstallFiles()
        {
        }
        function InstallEvents()
        {
        }
        function InstallTemplateRules()
        {
        }
        function InstallUserFields()
        {
        }
        function DoUninstall()
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function UnInstallFiles($arParams = array())
        {
        }
        function UnInstallEvents()
        {
        }
        function UnInstallUserFields($arParams = array())
        {
        }
    }
    class ImagePreviewSizeFilter implements \Bitrix\Main\Type\IRequestFilter
    {
        /**
         * @param array $values
         * @return array
         */
        public function filter(array $values)
        {
        }
    }
    class CImCallComponent extends \CBitrixComponent
    {
        const MODULE = 'im';
        protected $call;
        /** @var \Bitrix\Main\Error[] */
        protected $errors = [];
        protected $userId;
        protected $action;
        public function init()
        {
        }
        protected function getPublicIds(array $userIds)
        {
        }
        public function prepareData()
        {
        }
        public function executeComponent()
        {
        }
    }
    class ImRouterComponent extends \CBitrixComponent
    {
        /** @var HttpRequest $request */
        protected $request = array();
        protected $errors = array();
        protected $aliasData = array();
        private function showFullscreenChat()
        {
        }
        private function showBlankPage()
        {
        }
        private function showLiveChat()
        {
        }
        private function showCall()
        {
        }
        public function executeComponent()
        {
        }
        protected function checkModules()
        {
        }
        protected function hasErrors()
        {
        }
        protected function showErrors()
        {
        }
    }
    class ImComponentConference extends \CBitrixComponent
    {
        private $chatId = 0;
        private $userId = 0;
        private $userCount = 0;
        private $userLimit = 0;
        private $startupErrorCode = '';
        private $isIntranetOrExtranet = \false;
        private $language = 'en';
        protected function checkModules()
        {
        }
        protected function addUserToChat()
        {
        }
        public function executeComponent()
        {
        }
    }
    class CBPIMNotifyActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CIMHint
    {
    }
    class CIMEvent
    {
        public static function OnFileDelete($params)
        {
        }
        public static function OnBeforeUserSendPassword($params)
        {
        }
        public static function OnAddRatingVote($id, $arParams)
        {
        }
        public static function OnCancelRatingVote($id, $arParams)
        {
        }
        public static function GetMessageRatingVote($arParams, $bForMail = \false)
        {
        }
        public static function GetMessageRatingEntityURL($url, $user_id = \false, $arSites = \false, $intranet_site_id = \false, $extranet_site_id = \false)
        {
        }
        private static function GetMessageRatingLogCommentURL($arComment, $user_id = \false, $arSites = \false, $intranet_site_id = \false, $extranet_site_id = \false)
        {
        }
        public static function OnAfterUserAdd($arParams)
        {
        }
        public static function OnAfterUserUpdate($arParams)
        {
        }
        public static function OnUserDelete($ID)
        {
        }
        public static function OnGetDependentModule()
        {
        }
    }
}
namespace Bitrix\Main\Authentication {
    class Application
    {
        protected $validUrls = array();
        public function __construct()
        {
        }
        /**
         * Checks the valid scope for the applicaton.
         *
         * @return bool
         */
        public function checkScope()
        {
        }
    }
}
namespace {
    class DesktopApplication extends \Bitrix\Main\Authentication\Application
    {
        protected $validUrls = array("/");
        public static function OnApplicationsBuildList()
        {
        }
    }
    class CIMSettings
    {
        const SETTINGS = 'settings';
        const NOTIFY = 'notify';
        const CLIENT_SITE = 'site';
        const CLIENT_XMPP = 'xmpp';
        const CLIENT_MAIL = 'email';
        const CLIENT_PUSH = 'push';
        const START_MESSAGE_FIRST = 'first';
        const START_MESSAGE_LAST = 'last';
        const PRIVACY_MESSAGE = 'privacyMessage';
        const PRIVACY_CHAT = 'privacyChat';
        const PRIVACY_CALL = 'privacyCall';
        const PRIVACY_SEARCH = 'privacySearch';
        const PRIVACY_PROFILE = 'privacyProfile';
        const PRIVACY_RESULT_ALL = 'all';
        const PRIVACY_RESULT_CONTACT = 'contact';
        const PRIVACY_RESULT_NOBODY = 'nobody';
        const STATUS = 'status';
        public static function Get($userId = \false)
        {
        }
        public static function Set($type, $value, $userId = \false)
        {
        }
        public static function SetSetting($type, $value, $userId = \false)
        {
        }
        public static function GetSetting($type, $value, $userId = \false)
        {
        }
        public static function GetNotifyAccess($userId, $moduleId, $eventId, $clientId)
        {
        }
        public static function GetDefaultSettings($type)
        {
        }
        public static function CheckValues($type, $value)
        {
        }
        public static function GetNotifyNames()
        {
        }
        public static function GetSimpleNotifyBlocked($byModule = \false)
        {
        }
        public static function GetPrivacy($type, $userId = \false)
        {
        }
        public static function GetStartChatMessage()
        {
        }
        public static function ClearCache($userId = \false)
        {
        }
    }
    class CIMCall
    {
        public static function InviteExperimental($arParams)
        {
        }
        public static function Invite($arParams)
        {
        }
        public static function AddUser($arParams)
        {
        }
        public static function Answer($arParams)
        {
        }
        public static function Wait($arParams)
        {
        }
        public static function Start($arParams)
        {
        }
        public static function End($arParams)
        {
        }
        public static function Signaling($arParams)
        {
        }
        public static function Command($chatId, $recipientId, $command, $params = array())
        {
        }
        public static function MessageToChat($chatId, $messageId, $userId = 0, $getUserData = \false, $addGenderToMessageId = \true)
        {
        }
        public static function MessageToPrivate($fromUserId, $toUserId, $messageId, $getUserData = \false, $addGenderToMessageId = \true)
        {
        }
    }
    class CIMDisk
    {
        const MODULE_ID = 'im';
        const PATH_TYPE_SHOW = 'show';
        const PATH_TYPE_PREVIEW = 'preview';
        const PATH_TYPE_DOWNLOAD = 'download';
        public static function GetStorage()
        {
        }
        public static function UploadFileRegister($chatId, $files, $text = '', $linesSilentMode = \false)
        {
        }
        public static function UploadFile($hash, &$file, &$package, &$upload, &$error)
        {
        }
        public static function UploadFileUnRegister($chatId, $files, $messages)
        {
        }
        public static function DeleteFile($chatId, $fileId)
        {
        }
        /**
         * @param $chatId
         * @param $files
         * @param string $text
         * @param array $options
         * @param bool $robot
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function UploadFileFromDisk($chatId, $files, $text = '', $options = [], $robot = \false)
        {
        }
        public static function UploadFileFromMain($chatId, $files)
        {
        }
        public static function SaveToLocalDisk($fileId)
        {
        }
        public static function IncreaseFileVersionDisk($chatId, $fileId, int $userId = \null)
        {
        }
        public static function SaveFromLocalDisk($chatId, $fileId, int $userId = \null)
        {
        }
        public static function UploadAvatar($hash, &$file, &$package, &$upload, &$error)
        {
        }
        public static function UpdateAvatarId($chatId, $fileId, $userId = \null)
        {
        }
        public static function GetHistoryFiles($chatId, $historyPage = 1)
        {
        }
        public static function GetHistoryFilesByName($chatId, $name)
        {
        }
        public static function GetMaxFileId($chatId)
        {
        }
        public static function GetFiles($chatId, $fileId = \false, $checkPermission = \true)
        {
        }
        public static function GetFileParams($chatId, $fileModel)
        {
        }
        public static function Enabled()
        {
        }
        public static function GetFolderModel($chatId)
        {
        }
        public static function ChangeFolderMembers($chatId, $userId, $append = \true)
        {
        }
        public static function GetLocalDiskMolel()
        {
        }
        public static function GetStorageId()
        {
        }
        public static function SetStorageId($id)
        {
        }
        public static function GetLocalDiskFolderPath()
        {
        }
        public static function GetLocalDiskFilePath($fileId = 0)
        {
        }
        public static function GetPublicPath($type, \Bitrix\Disk\File $fileModel)
        {
        }
        //
        public static function GetFileLink(\Bitrix\Disk\File $fileModel)
        {
        }
        public static function RemoveTmpFileAgent()
        {
        }
        public static function GetUserId()
        {
        }
        public static function EnabledExternalLink()
        {
        }
        public static function SetEnabledExternalLink($flag = \true)
        {
        }
        public static function GetTopDepartmentCode()
        {
        }
        public static function OnAfterDeleteFile($fileId, $userId, $fileParams = array())
        {
        }
    }
    class CAllIMContactList
    {
        private $user_id = 0;
        const NETWORK_AUTH_ID = 'replica';
        function __construct($user_id = \false)
        {
        }
        function GetList($arParams = array())
        {
        }
        public static function CleanChatCache($userId)
        {
        }
        public static function CleanAllChatCache()
        {
        }
        function SearchUsers($searchText)
        {
        }
        static function AllowToSend($arParams)
        {
        }
        static function GetUserData($arParams = array())
        {
        }
        public static function SetOnline($userId = \null, $cache = \true)
        {
        }
        public static function SetOffline($userId = \null)
        {
        }
        public static function SetCurrentTab($userId)
        {
        }
        public static function InRecent($userId, $type, $itemId)
        {
        }
        public static function SetRecentForNewUser($userId)
        {
        }
        public static function SetRecent($arParams)
        {
        }
        public static function DeleteRecent($entityId, $isChat = \false, $userId = \false, $isNotification = \false)
        {
        }
        public static function DialogHide($dialogId, $userId = \null)
        {
        }
        public static function ClearRecentCache($userId = \null)
        {
        }
        public static function GetRecentList($arParams = array())
        {
        }
        public static function GetRecentListSortCounter($counter)
        {
        }
        public static function GetRecentListSortMessage($recent)
        {
        }
        public static function IsExtranet($arUser)
        {
        }
        public static function GetUserPath($userId = \false)
        {
        }
        public static function GetUserNameTemplate($siteId = \false, $langId = \false, $getDefault = \false)
        {
        }
        public static function GetUserColor($id, $gender)
        {
        }
        public static function PrepareUserId($id, $searchMark = '')
        {
        }
        public static function formatAbsentResult($userId)
        {
        }
        public static function PrepareUserIds($userIds, $searchMark = '')
        {
        }
    }
    class CIMRestService extends \IRestService
    {
        public static function OnRestServiceBuildDescription()
        {
        }
        public static function OnRestAppDelete($arParams)
        {
        }
        /* User api */
        public static function userGet($arParams, $n, \CRestServer $server)
        {
        }
        public static function userList($arParams, $offset, \CRestServer $server)
        {
        }
        public static function userBusinessList($arParams, $offset, \CRestServer $server)
        {
        }
        /* Status api */
        public static function userStatusGet($params, $n, \CRestServer $server)
        {
        }
        public static function userStatusSet($params, $n, \CRestServer $server)
        {
        }
        public static function userStatusIdleStart($params, $n, \CRestServer $server)
        {
        }
        public static function userStatusIdleEnd($params, $n, \CRestServer $server)
        {
        }
        /* Dialog api */
        public static function dialogGet($arParams, $offset, \CRestServer $server)
        {
        }
        public static function dialogMessagesGet($arParams, $offset, \CRestServer $server)
        {
        }
        public static function dialogUsersGet($arParams, $n, \CRestServer $server)
        {
        }
        public static function dialogWriting($arParams, $n, \CRestServer $server)
        {
        }
        public static function dialogRead($arParams, $n, \CRestServer $server)
        {
        }
        public static function dialogReadAll($arParams, $n, \CRestServer $server)
        {
        }
        public static function dialogUnread($arParams, $n, \CRestServer $server)
        {
        }
        /* Search api */
        public static function searchUser($arParams, $offset, \CRestServer $server)
        {
        }
        public static function searchDepartment($arParams, $offset, \CRestServer $server)
        {
        }
        public static function searchChat($arParams, $offset, \CRestServer $server)
        {
        }
        public static function searchLastGet($arParams, $n, \CRestServer $server)
        {
        }
        public static function searchLastAdd($arParams, $n, \CRestServer $server)
        {
        }
        public static function searchLastDelete($arParams, $n, \CRestServer $server)
        {
        }
        /* Recent api */
        public static function recentGet($arParams, $n, \CRestServer $server)
        {
        }
        public static function recentList($arParams, $n, \CRestServer $server)
        {
        }
        public static function recentPin($arParams, $n, \CRestServer $server)
        {
        }
        public static function recentHide($arParams, $n, \CRestServer $server)
        {
        }
        public static function recentUnread($arParams, $n, \CRestServer $server)
        {
        }
        /* Promotion api */
        public static function promotionGet($arParams, $n, \CRestServer $server)
        {
        }
        public static function promotionRead($arParams, $n, \CRestServer $server)
        {
        }
        /* Department api */
        public static function departmentGet($arParams, $offset, \CRestServer $server)
        {
        }
        public static function departmentManagersGet($arParams, $n, \CRestServer $server)
        {
        }
        public static function departmentEmployeesGet($arParams, $n, \CRestServer $server)
        {
        }
        public static function departmentColleaguesList($arParams, $offset, \CRestServer $server)
        {
        }
        /* ChatAPI */
        public static function chatCreate($arParams, $n, \CRestServer $server)
        {
        }
        public static function chatGet($arParams, $n, \CRestServer $server)
        {
        }
        public static function chatSetOwner($arParams, $n, \CRestServer $server)
        {
        }
        public static function chatSetManager($arParams, $n, \CRestServer $server)
        {
        }
        public static function chatUpdateColor($arParams, $n, \CRestServer $server)
        {
        }
        public static function chatUpdateTitle($arParams, $n, \CRestServer $server)
        {
        }
        public static function chatUpdateAvatar($arParams, $n, \CRestServer $server)
        {
        }
        public static function chatUserAdd($arParams, $n, \CRestServer $server)
        {
        }
        public static function chatUserDelete($arParams, $n, \CRestServer $server)
        {
        }
        public static function chatUserList($arParams, $n, \CRestServer $server)
        {
        }
        public static function chatMute($arParams, $n, \CRestServer $server)
        {
        }
        public static function chatParentJoin($arParams, $n, \CRestServer $server)
        {
        }
        public static function botList($arParams, $n, \CRestServer $server)
        {
        }
        public static function messageAdd($arParams, $n, \CRestServer $server)
        {
        }
        public static function messageDelete($arParams, $n, \CRestServer $server)
        {
        }
        public static function messageUpdate($arParams, $n, \CRestServer $server)
        {
        }
        public static function messageLike($arParams, $n, \CRestServer $server)
        {
        }
        public static function messageCommand($arParams, $n, \CRestServer $server)
        {
        }
        public static function messageShare($arParams, $n, \CRestServer $server)
        {
        }
        public static function messageUserGet($arParams, $offset, \CRestServer $server)
        {
        }
        public static function notifyAdd($arParams, $n, \CRestServer $server)
        {
        }
        public static function notifyDelete($arParams, $n, \CRestServer $server)
        {
        }
        public static function notifyRead($arParams, $n, \CRestServer $server)
        {
        }
        public static function diskFolderGet($arParams, $n, \CRestServer $server)
        {
        }
        public static function diskFileCommit($arParams, $n, \CRestServer $server)
        {
        }
        public static function diskFileDelete($arParams, $n, \CRestServer $server)
        {
        }
        public static function diskFileSave($arParams, $n, \CRestServer $server)
        {
        }
        public static function counterGet($arParams, $n, \CRestServer $server)
        {
        }
        public static function notImplemented($arParams, $n, \CRestServer $server)
        {
        }
        /* BotAPI */
        public static function botRegister($arParams, $n, \CRestServer $server)
        {
        }
        public static function botUnRegister($arParams, $n, \CRestServer $server)
        {
        }
        public static function botUpdate($arParams, $n, \CRestServer $server)
        {
        }
        public static function botMessageAdd($arParams, $n, \CRestServer $server)
        {
        }
        public static function botMessageUpdate($arParams, $n, \CRestServer $server)
        {
        }
        public static function botMessageDelete($arParams, $n, \CRestServer $server)
        {
        }
        public static function botMessageLike($arParams, $n, \CRestServer $server)
        {
        }
        public static function botSendTyping($arParams, $n, \CRestServer $server)
        {
        }
        public static function onCommandAdd($arParams, $arHandler)
        {
        }
        public static function onBotMessageAdd($arParams, $arHandler)
        {
        }
        public static function onBotMessageUpdate($arParams, $arHandler)
        {
        }
        public static function onBotMessageDelete($arParams, $arHandler)
        {
        }
        public static function onBotJoinChat($arParams, $arHandler)
        {
        }
        public static function onBotDelete($arParams, $arHandler)
        {
        }
        public static function commandRegister($arParams, $n, \CRestServer $server)
        {
        }
        public static function commandUnRegister($arParams, $n, \CRestServer $server)
        {
        }
        public static function commandUpdate($arParams, $n, \CRestServer $server)
        {
        }
        public static function commandAnswer($arParams, $n, \CRestServer $server)
        {
        }
        public static function appRegister($arParams, $n, \CRestServer $server)
        {
        }
        public static function appUnRegister($arParams, $n, \CRestServer $server)
        {
        }
        public static function appUpdate($arParams, $n, \CRestServer $server)
        {
        }
        private static function getAccessToken($appId, $userId)
        {
        }
        private static function bindEvent($appId, $appCode, $bitrixEventModule, $bitrixEventName, $restEventName, $restEventHandler)
        {
        }
        private static function unbindEvent($appId, $appCode, $bitrixEventModule, $bitrixEventName, $restEventName, $skipCheck = \false)
        {
        }
        public static function mobileConfigGet($params, $n, \CRestServer $server)
        {
        }
        public static function callUserRegister($params, $n, \CRestServer $server)
        {
        }
        public static function callUserUpdate($params, $n, \CRestServer $server)
        {
        }
        public static function callChannelPublicList($params, $n, \CRestServer $server)
        {
        }
        public static function videoconfShareChange($params, $n, \CRestServer $server)
        {
        }
        private static function getBotId($arParams, \CRestServer $server)
        {
        }
        /* Utils */
        public static function objectEncode($data, $options = [])
        {
        }
        public static function getServerAddress()
        {
        }
    }
    class CIMMessageParam
    {
        public static function Set($messageId, $params = array())
        {
        }
        public static function UpdateTimestamp($messageId, $chatId = 0)
        {
        }
        public static function SendPull($messageId, $sendExtraParams = \true)
        {
        }
        public static function DeleteAll($messageId, $deleteWithTs = \false)
        {
        }
        public static function DeleteByParam($paramName, $paramValue)
        {
        }
        public static function Get($messageId, $paramName = \false, $withDefault = \false)
        {
        }
        public static function GetMessageIdByParam($paramName, $paramValue, $chatId = \null)
        {
        }
        public static function PrepareValues($values, $withDefault = \false)
        {
        }
        public static function GetDefault()
        {
        }
    }
    class CIMMessageParamAttach
    {
        const NORMAL = "#aac337";
        const ATTENTION = "#e8a441";
        const PROBLEM = "#df532d";
        const TRANSPARENT = "TRANSPARENT";
        const CHAT = "CHAT";
        const TEXT_NODES_NAMES = ['NAME', 'LINK', 'MESSAGE', 'VALUE'];
        private $result = array();
        function __construct($id = \null, $color = \null)
        {
        }
        public function AddUser($params)
        {
        }
        public function AddChat($params)
        {
        }
        public function AddBot($params)
        {
        }
        public function AddLink($params)
        {
        }
        public function AddRichLink($params)
        {
        }
        public function AddHtml($html)
        {
        }
        public function AddMessage($message)
        {
        }
        public function AddGrid($params)
        {
        }
        public function AddImages($params)
        {
        }
        public function AddFiles($params)
        {
        }
        public function AddDelimiter($params = array())
        {
        }
        private static function decodeBbCode($message)
        {
        }
        private static function removeNewLine($text)
        {
        }
        public static function GetAttachByJson($array)
        {
        }
        public static function PrepareAttach($attach)
        {
        }
        public function IsEmpty()
        {
        }
        public function IsAllowSize()
        {
        }
        public function SetId($id)
        {
        }
        public function GetId()
        {
        }
        public function GetArray()
        {
        }
        public function GetJSON()
        {
        }
        /**
         * Recursively goes through attach nodes and gets all the text nodes for search indexing
         * @param $attach
         *
         * @return array
         */
        public static function GetTextForIndex($attach) : array
        {
        }
    }
    class CIMMessageLink
    {
        private $result = \false;
        private $message = "";
        private $attach = array();
        private $urlId = array();
        private $staticUrl = array();
        public function prepareInsert($text)
        {
        }
        private function prepareUrlObjects($params)
        {
        }
        public static function prepareShow($arMessages, $params)
        {
        }
        public static function getAttachments($id, $typeArray = \false)
        {
        }
        public static function formatAttach($linkParam)
        {
        }
        private function isLinkOnly()
        {
        }
        public function result()
        {
        }
    }
    class CIMMessenger
    {
        private $user_id = 0;
        private static $enableMessageCheck = 1;
        const MESSAGE_LIMIT = 20000;
        function __construct($user_id = \false)
        {
        }
        /*
        	$arParams keys:
        	---------------
        	MESSAGE_TYPE: P - private chat, G - group chat, S - notification
        	TO_USER_ID
        	FROM_USER_ID
        	MESSAGE
        	AUTHOR_ID
        	EMAIL_TEMPLATE
        	NOTIFY_TYPE: 1 - confirm, 2 - notify single from, 4 - notify single
        	NOTIFY_MODULE: module id sender (ex: xmpp, main, etc)
        	NOTIFY_EVENT: module event id for search (ex, IM_GROUP_INVITE)
        	NOTIFY_TITLE: notify title to send email
        	NOTIFY_BUTTONS: array of buttons - available with NOTIFY_TYPE = 1
        		Array(
        			Array('TITLE' => 'OK', 'VALUE' => 'Y', 'TYPE' => 'accept', 'URL' => '/test.php?CONFIRM=Y'),
        			Array('TITLE' => 'Cancel', 'VALUE' => 'N', 'TYPE' => 'cancel', 'URL' => '/test.php?CONFIRM=N'),
        		)
        	NOTIFY_TAG: field for group in JS notification and search in table
        	NOTIFY_SUB_TAG: second TAG for search in table
        */
        public static function Add($arFields)
        {
        }
        public static function IsMobileRequest()
        {
        }
        public static function CheckPossibilityUpdateMessage($type, $id, $userId = \null)
        {
        }
        public static function Update($id, $text, $urlPreview = \true, $editFlag = \true, $userId = \null, $byEvent = \false)
        {
        }
        public static function Share($id, $type, $date = '')
        {
        }
        public static function Delete($id, $userId = \null, $completeDelete = \false, $byEvent = \false)
        {
        }
        public static function LinesSessionVote($dialogId, $messageId, $action, $userId = \null)
        {
        }
        public static function Like($id, $action = 'auto', $userId = \null, $byEvent = \false)
        {
        }
        public static function ExecCommand($id, $botId, $command, $commandParams = '', $userId = \null, $byEvent = \false)
        {
        }
        public static function UrlAttachDelete($id, $attachId = \false, $userId = \null)
        {
        }
        private static function CheckFields($arFields)
        {
        }
        public static function GetById($ID, $params = array())
        {
        }
        public static function GetRelationById($ID)
        {
        }
        public static function CheckXmppStatusOnline()
        {
        }
        public static function CheckEnableOpenChat()
        {
        }
        public static function CheckNetwork()
        {
        }
        public static function CheckNetwork2()
        {
        }
        public static function CheckInstallDesktop()
        {
        }
        public static function EnableInVersion($version)
        {
        }
        public static function SetDesktopVersion($version)
        {
        }
        public static function GetDesktopVersion()
        {
        }
        public static function SetDesktopLastActivityDate($timestamp, $deviceType = \IM_DESKTOP_WINDOWS, $userId = \false)
        {
        }
        public static function CheckPhoneStatus()
        {
        }
        public static function CanUserCallCrmNumber()
        {
        }
        public static function CanUserCallUserNumber()
        {
        }
        public static function CanUserCallAnyNumber()
        {
        }
        public static function CanUserPerformCalls()
        {
        }
        public static function CanInterceptCall()
        {
        }
        public static function GetCallCardRestApps()
        {
        }
        public static function GetTelephonyLines()
        {
        }
        public static function GetTelephonyAvailableLines($userId = \null)
        {
        }
        public static function GetDefaultTelephonyLine($userId = \null)
        {
        }
        public static function CheckDesktopStatusOnline($userId = \null)
        {
        }
        public static function GetDesktopStatusOnline($userId = \null)
        {
        }
        public static function SetDesktopStatusOnline($userId = \null, $cache = \true)
        {
        }
        public static function SetDesktopStatusOffline($userId = \null)
        {
        }
        public static function GetSettings($userId = \false)
        {
        }
        public static function GetFormatFilesMessageOut($files)
        {
        }
        public static function GetSessionLifeTime()
        {
        }
        public static function GetUnreadCounter($userId)
        {
        }
        public static function GetMessageCounter($userId, $arMessages = array())
        {
        }
        private static function GetReasonForMessageSendError($type = \IM_MESSAGE_PRIVATE, $reason = '')
        {
        }
        public static function SpeedFileCreate($userID, $value, $type = \IM_SPEED_MESSAGE)
        {
        }
        public static function SpeedFileDelete($userID, $type = \IM_SPEED_MESSAGE)
        {
        }
        public static function SpeedFileExists($userID, $type = \IM_SPEED_MESSAGE)
        {
        }
        public static function SpeedFileGet($userID, $type = \IM_SPEED_MESSAGE)
        {
        }
        public static function GetTemplateJS($arParams, $arTemplate)
        {
        }
        public static function GetMobileTemplateJS($arParams, $arTemplate)
        {
        }
        public static function GetMobileDialogTemplateJS($arParams, $arTemplate)
        {
        }
        public static function StartWriting($dialogId, $userId = \false, $userName = "", $byEvent = \false, $linesSilentMode = \false)
        {
        }
        public static function PrepareSmiles()
        {
        }
        private static function UploadFileFromText($params)
        {
        }
        public static function SendMention($params)
        {
        }
        public static function PrepareParamsForPull($params)
        {
        }
        public static function PreparePushForMentionInChat($params)
        {
        }
        public static function PreparePushForChat($params)
        {
        }
        public static function PreparePushForPrivate($params)
        {
        }
        public static function PrepareParamsForPush($params)
        {
        }
        public static function PrepareMessageForPush($message)
        {
        }
        public static function PrepareEventForPush($command, $event)
        {
        }
        private static function PrepareEventForPushChangeKeys($object, $map)
        {
        }
        public static function PrepareMessageForPushIconCallBack($params)
        {
        }
        /* TMP FUNCTION */
        public static function GetCachePath($id)
        {
        }
        function GetSonetCode($user_id, $site_id = \SITE_ID)
        {
        }
        public static function EnableMessageCheck()
        {
        }
        public static function DisableMessageCheck()
        {
        }
        public static function IsEnabledMessageCheck()
        {
        }
        public static function IsBitrix24UserRestricted()
        {
        }
        public static function IsMysqlDb()
        {
        }
        public static function IsAdmin()
        {
        }
        public static function GetCurrentUserId()
        {
        }
        private static function GetEventByCounterGroup($events, $maxUserInGroup = 100)
        {
        }
    }
    class CIMChat
    {
        const CHAT_ALL = 'all';
        const GENERAL_MESSAGE_TYPE_JOIN = 'join';
        const GENERAL_MESSAGE_TYPE_LEAVE = 'leave';
        private $user_id = 0;
        private $bHideLink = \false;
        public $lastAvatarId = 0;
        private static $entityOption = \null;
        function __construct($user_id = \null, $arParams = array())
        {
        }
        public function GetMessage($ID)
        {
        }
        /**
         * @param $toChatId
         * @param bool $fromUserId
         * @param bool $loadExtraData
         * @param bool $bTimeZone
         * @param bool $limit
         * @return array|bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        function GetLastMessage($toChatId, $fromUserId = \false, $loadExtraData = \false, $bTimeZone = \true, $limit = \true)
        {
        }
        function GetLastMessageLimit($chatId, $messageStartId, $messageEndId = 0, $loadExtraData = \false, $bTimeZone = \true, $order = 'DESC')
        {
        }
        public static function getChatType($chatData)
        {
        }
        public function GetLastSendMessage($arParams)
        {
        }
        public static function GetRelationById($ID, $userId = \false)
        {
        }
        public function GetPersonalChat()
        {
        }
        public static function GetPrivateRelation($fromUserId, $toUserId)
        {
        }
        public static function GetGeneralChatId()
        {
        }
        public static function InstallGeneralChat($agentMode = \false)
        {
        }
        public static function GetGeneralChatAutoMessageStatus($type)
        {
        }
        public static function CanSendMessageToGeneralChat($userId)
        {
        }
        public static function SetAccessToGeneralChat($allowAll = \true, $allowCodes = array())
        {
        }
        public static function CanJoinGeneralChatId($userId)
        {
        }
        public static function linkGeneralChatId($chatId)
        {
        }
        public static function UnlinkGeneralChatId()
        {
        }
        public static function GetChatData($arParams = array())
        {
        }
        public static function GetOpenChatData($arParams = array())
        {
        }
        public function SetReadMessage($chatId, $lastId = \null, $byEvent = \false)
        {
        }
        public function SetUnReadMessage($chatId, $lastId)
        {
        }
        public function GetUnreadMessage($arParams = array())
        {
        }
        public function SetOwner($chatId, $userId, $checkPermission = \true)
        {
        }
        public function SetDescription($chatId, $description)
        {
        }
        public static function SetChatParams($chatId, $params)
        {
        }
        public function SetManager($chatId, $userId, $isManager = \true, $checkPermission = \true)
        {
        }
        public function SetManagers($chatId, $users, $checkPermission = \true)
        {
        }
        public function SetColor($chatId, $color)
        {
        }
        public function SetAvatarId($chatId, $fileId)
        {
        }
        public function Rename($chatId, $title, $checkPermission = \true, $sendMessage = \true)
        {
        }
        public function Add($arParams)
        {
        }
        public static function AddMessage($arFields)
        {
        }
        public static function AddGeneralMessage($arFields)
        {
        }
        public function Join($chatId)
        {
        }
        public function JoinParent($chatId, $messageId)
        {
        }
        public function AddUser($chatId, $userId, $hideHistory = \null, $skipMessage = \false, $skipRecent = \false)
        {
        }
        public function MuteNotify($chatId, $mute = \true)
        {
        }
        public function DeleteUser($chatId, $userId, $checkPermission = \true, $skipMessage = \false, $skipRecent = \false)
        {
        }
        public static function GetAvatarImage($id, $size = 200, $addBlankPicture = \true)
        {
        }
        public static function AddSystemMessage($params)
        {
        }
        public static function CheckRestriction($chatId, $action)
        {
        }
        public static function GetChatOptions()
        {
        }
        public static function GetSonetGroupChatId($groupId)
        {
        }
        public static function GetCrmChatId($code)
        {
        }
        public static function GetUserCount($chatId)
        {
        }
        public static function DeleteEntityChat($entityType, $entityId)
        {
        }
        public static function hide($chatId)
        {
        }
        public static function index($chatId)
        {
        }
    }
    class CIMNotify
    {
        private $user_id = 0;
        private $bHideLink = \false;
        function __construct($user_id = \false, $arParams = array())
        {
        }
        public static function Add($arFields)
        {
        }
        public function GetNotifyList($arParams = array())
        {
        }
        public function GetUnreadNotify($arParams = array())
        {
        }
        public static function GetUnsendNotify()
        {
        }
        public static function GetFlashNotify($unreadNotify)
        {
        }
        public function GetNotify($ID)
        {
        }
        public static function GetFormatNotify($arFields)
        {
        }
        public function MarkNotifyRead($id = 0, $setThisAndHigher = \false, $appId = 'Bitrix24')
        {
        }
        public function MarkNotifyReadBySubTag($subTagList = array())
        {
        }
        public function MarkNotifyUnRead($id = 0, $setThisAndHigher = \false, $appId = 'Bitrix24')
        {
        }
        public static function SetLastId($chatId, $userId, $lastId = \null)
        {
        }
        public static function SetLastSendId($chatId, $lastSendId)
        {
        }
        public function Confirm($id, $value)
        {
        }
        public function Answer($id, $text)
        {
        }
        public static function Delete($ID)
        {
        }
        public function DeleteWithCheck($ID)
        {
        }
        public static function DeleteByTag($notifyTag, $authorId = \false)
        {
        }
        public static function ConfirmBySubTag($notifySubTag, $resultMessages)
        {
        }
        public static function DeleteBySubTag($notifySubTag, $authorId = \false)
        {
        }
        public static function DeleteByModule($moduleId, $moduleEvent = '')
        {
        }
        public function GetNotifyCounter($arNotify = array())
        {
        }
        public static function GetRealCounter($chatId)
        {
        }
        public static function GetRealCounters($chatId)
        {
        }
        public static function GetCounter($chatId)
        {
        }
        public static function GetCounters($chatIds)
        {
        }
    }
    class CIMNotifySchema
    {
        protected static $arNotifySchema = \null;
        public function __construct()
        {
        }
        public static function GetNotifySchema()
        {
        }
        public static function CheckDisableFeature($moduleId, $notifyEvent, $feature)
        {
        }
        public static function GetDefaultFeature($moduleId, $notifyEvent, $feature)
        {
        }
        public static function GetLifetime($moduleId, $notifyEvent)
        {
        }
        public static function OnGetNotifySchema()
        {
        }
    }
    class CIMTableSchema
    {
        public function __construct()
        {
        }
        public static function OnGetTableSchema()
        {
        }
    }
    class CIMShare
    {
        const TYPE_POST = 'POST';
        const TYPE_TASK = 'TASK';
        function __construct($user_id = \null)
        {
        }
        public function Chat($messageId)
        {
        }
        public function Task($messageId, $date = '')
        {
        }
        public function Calendar($messageId, $date = '')
        {
        }
        public function Post($messageId)
        {
        }
        private function SonetPostCreateBlog($userId, $blogGroupId, $siteId)
        {
        }
        /**
         * @param Task $task
         * @return Task
         */
        private function prepareTaskFlags(\Bitrix\Tasks\Item\Task $task) : \Bitrix\Tasks\Item\Task
        {
        }
        private function PrepareText($quoteMessage)
        {
        }
        private function SendMessage($startText, $endText, $quoteMessage, $messageParams = array())
        {
        }
    }
    class CIMHistory
    {
        private $user_id = 0;
        private $bHideLink = \false;
        function __construct($user_id = \false, $arParams = array())
        {
        }
        function SearchMessage($searchText, $toUserId, $fromUserId = \false, $bTimeZone = \true)
        {
        }
        function SearchDateMessage($searchDate, $toUserId, $fromUserId = \false, $bTimeZone = \true)
        {
        }
        function GetMoreMessage($pageId, $toUserId, $fromUserId = \false, $bTimeZone = \true)
        {
        }
        function RemoveMessage($messageId)
        {
        }
        function RemoveAllMessage($userId)
        {
        }
        /* CHAT */
        function HideAllChatMessage($chatId)
        {
        }
        function SearchChatMessage($searchText, $chatId, $bTimeZone = \true)
        {
        }
        function SearchDateChatMessage($searchDate, $chatId, $bTimeZone = \true)
        {
        }
        /**
         * @param $pageId
         * @param $chatId
         * @param bool $bTimeZone
         * @return array
         */
        function GetMoreChatMessage($pageId, $chatId, $bTimeZone = \true)
        {
        }
        /* COMMON */
        public function GetMessagesByDate($chatId, $date, $messageStart = 0, $timezone = \true)
        {
        }
        public function GetRelatedMessages($messageId, $previous = 10, $next = 10, $timezone = \true, $textParser = \true)
        {
        }
        private function GetPreviousMessages($messageId, $chatId = \null, $dateCreate = \null, $limit = 10, $timezone = \true)
        {
        }
        private function GetNextMessages($messageId, $chatId = \null, $dateCreate = \null, $limit = 10, $timezone = \true)
        {
        }
        private function checkFullText($searchText)
        {
        }
    }
    class CIMMail
    {
        public static function MailNotifyAgent()
        {
        }
        public static function MailMessageAgent()
        {
        }
        /**
         * duplicate CIntranetUtils::IsExternalMailAvailable()
         * for performance reasons
         */
        public static function IsExternalMailAvailable()
        {
        }
        public static function GetUserOffset($params)
        {
        }
    }
    class CIMStatus
    {
        public static $AVAILABLE_STATUSES = array('online', 'dnd', 'away');
        public static $CACHE_USERS = \null;
        public static $CACHE_RECENT = \null;
        const CACHE_TTL = 31536000;
        const CACHE_PATH = '/bx/im/status/';
        const CACHE_ONLINE_TTL = 60;
        const CACHE_ONLINE_PATH = '/bx/im/online/';
        public static function Set($userId, $params)
        {
        }
        public static function SetIdle($userId, $result = \true, $ago = 10)
        {
        }
        public static function SetMobile($userId, $result = \true)
        {
        }
        public static function SetColor($userId, $color)
        {
        }
        private static function PrepareToPush($params)
        {
        }
        private static function PrepareFields($params)
        {
        }
        public static function GetList($params = array())
        {
        }
        public static function GetOnline()
        {
        }
        public static function GetStatus($userId)
        {
        }
        public static function OnUserOnlineStatusGetCustomStatus($userId, $lastseen, $now, $mode)
        {
        }
        public static function getDesktopStatus($dates)
        {
        }
        public static function prepareLastDate($dates)
        {
        }
        public static function Enable()
        {
        }
    }
    class CIMMessage
    {
        private $user_id = 0;
        private $bHideLink = \false;
        function __construct($user_id = \false, $arParams = array())
        {
        }
        public static function Add($arFields)
        {
        }
        public function GetMessage($id, $files = \false)
        {
        }
        public static function UpdateMessageOut($id, $messageOut)
        {
        }
        public function GetUnreadMessage($arParams = array())
        {
        }
        function GetLastMessage($toUserId, $fromUserId = \false, $loadUserData = \false, $bTimeZone = \true, $limit = \true)
        {
        }
        function GetLastSendMessage($arParams)
        {
        }
        public static function GetUnsendMessage($order = "ASC")
        {
        }
        public function SetReadMessage($fromUserId, $lastId = \null, $byEvent = \false)
        {
        }
        public function SetUnReadMessage($fromUserId, $lastId)
        {
        }
        public static function SetReadMessageAll($fromUserId)
        {
        }
        public static function SetLastId($chatId, $userId, $lastId = \null)
        {
        }
        public static function SetLastIdForUnread($chatId, $userId, $lastId)
        {
        }
        public static function SetLastSendId($chatId, $userId, $lastSendId)
        {
        }
        public static function GetFlashMessage($unreadMessage)
        {
        }
        public static function Delete($id, $userId = \null, $completeDelete = \false, $byEvent = \false)
        {
        }
        /**
         * @param $arParams
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function GetFormatMessage($arParams)
        {
        }
        public static function GetChatId($fromUserId, $toUserId)
        {
        }
    }
    class CIMConvert
    {
        public static $convertPerStep = 0;
        public static $nextConvertPerStep = 0;
        public static $converted = 0;
        public function __construct()
        {
        }
        public static function RecentList()
        {
        }
        public static function DeliveredMessage($step = 100, $maxExecutionTime = 10)
        {
        }
        public static function UndeliveredMessageAgent()
        {
        }
        public static function ConvertCount()
        {
        }
    }
    class CIMContactList extends \CAllIMContactList
    {
    }
}
namespace Bitrix\Im\Model {
    /**
     * EO_Alias
     * @see \Bitrix\Im\Model\AliasTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Im\Model\EO_Alias setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getAlias()
     * @method \Bitrix\Im\Model\EO_Alias setAlias(\string|\Bitrix\Main\DB\SqlExpression $alias)
     * @method bool hasAlias()
     * @method bool isAliasFilled()
     * @method bool isAliasChanged()
     * @method \string remindActualAlias()
     * @method \string requireAlias()
     * @method \Bitrix\Im\Model\EO_Alias resetAlias()
     * @method \Bitrix\Im\Model\EO_Alias unsetAlias()
     * @method \string fillAlias()
     * @method \string getEntityType()
     * @method \Bitrix\Im\Model\EO_Alias setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \string remindActualEntityType()
     * @method \string requireEntityType()
     * @method \Bitrix\Im\Model\EO_Alias resetEntityType()
     * @method \Bitrix\Im\Model\EO_Alias unsetEntityType()
     * @method \string fillEntityType()
     * @method \string getEntityId()
     * @method \Bitrix\Im\Model\EO_Alias setEntityId(\string|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \string remindActualEntityId()
     * @method \string requireEntityId()
     * @method \Bitrix\Im\Model\EO_Alias resetEntityId()
     * @method \Bitrix\Im\Model\EO_Alias unsetEntityId()
     * @method \string fillEntityId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_Alias set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_Alias reset($fieldName)
     * @method \Bitrix\Im\Model\EO_Alias unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_Alias wakeUp($data)
     */
    class EO_Alias
    {
        /* @var \Bitrix\Im\Model\AliasTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\AliasTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Alias_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getAliasList()
     * @method \string[] fillAlias()
     * @method \string[] getEntityTypeList()
     * @method \string[] fillEntityType()
     * @method \string[] getEntityIdList()
     * @method \string[] fillEntityId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_Alias $object)
     * @method bool has(\Bitrix\Im\Model\EO_Alias $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Alias getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Alias[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_Alias $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_Alias_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_Alias current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Alias_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\AliasTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\AliasTable';
    }
    /**
     * @method static EO_Alias_Query query()
     * @method static EO_Alias_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Alias_Result getById($id)
     * @method static EO_Alias_Result getList(array $parameters = array())
     * @method static EO_Alias_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_Alias createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_Alias_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_Alias wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_Alias_Collection wakeUpCollection($rows)
     */
    class AliasTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Alias_Result exec()
     * @method \Bitrix\Im\Model\EO_Alias fetchObject()
     * @method \Bitrix\Im\Model\EO_Alias_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Alias_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Alias fetchObject()
     * @method \Bitrix\Im\Model\EO_Alias_Collection fetchCollection()
     */
    class EO_Alias_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Alias createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_Alias_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_Alias wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_Alias_Collection wakeUpCollection($rows)
     */
    class EO_Alias_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_App
     * @see \Bitrix\Im\Model\AppTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Im\Model\EO_App setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getModuleId()
     * @method \Bitrix\Im\Model\EO_App setModuleId(\string|\Bitrix\Main\DB\SqlExpression $moduleId)
     * @method bool hasModuleId()
     * @method bool isModuleIdFilled()
     * @method bool isModuleIdChanged()
     * @method \string remindActualModuleId()
     * @method \string requireModuleId()
     * @method \Bitrix\Im\Model\EO_App resetModuleId()
     * @method \Bitrix\Im\Model\EO_App unsetModuleId()
     * @method \string fillModuleId()
     * @method \int getBotId()
     * @method \Bitrix\Im\Model\EO_App setBotId(\int|\Bitrix\Main\DB\SqlExpression $botId)
     * @method bool hasBotId()
     * @method bool isBotIdFilled()
     * @method bool isBotIdChanged()
     * @method \int remindActualBotId()
     * @method \int requireBotId()
     * @method \Bitrix\Im\Model\EO_App resetBotId()
     * @method \Bitrix\Im\Model\EO_App unsetBotId()
     * @method \int fillBotId()
     * @method \string getAppId()
     * @method \Bitrix\Im\Model\EO_App setAppId(\string|\Bitrix\Main\DB\SqlExpression $appId)
     * @method bool hasAppId()
     * @method bool isAppIdFilled()
     * @method bool isAppIdChanged()
     * @method \string remindActualAppId()
     * @method \string requireAppId()
     * @method \Bitrix\Im\Model\EO_App resetAppId()
     * @method \Bitrix\Im\Model\EO_App unsetAppId()
     * @method \string fillAppId()
     * @method \string getHash()
     * @method \Bitrix\Im\Model\EO_App setHash(\string|\Bitrix\Main\DB\SqlExpression $hash)
     * @method bool hasHash()
     * @method bool isHashFilled()
     * @method bool isHashChanged()
     * @method \string remindActualHash()
     * @method \string requireHash()
     * @method \Bitrix\Im\Model\EO_App resetHash()
     * @method \Bitrix\Im\Model\EO_App unsetHash()
     * @method \string fillHash()
     * @method \string getRegistered()
     * @method \Bitrix\Im\Model\EO_App setRegistered(\string|\Bitrix\Main\DB\SqlExpression $registered)
     * @method bool hasRegistered()
     * @method bool isRegisteredFilled()
     * @method bool isRegisteredChanged()
     * @method \string remindActualRegistered()
     * @method \string requireRegistered()
     * @method \Bitrix\Im\Model\EO_App resetRegistered()
     * @method \Bitrix\Im\Model\EO_App unsetRegistered()
     * @method \string fillRegistered()
     * @method \string getCode()
     * @method \Bitrix\Im\Model\EO_App setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Im\Model\EO_App resetCode()
     * @method \Bitrix\Im\Model\EO_App unsetCode()
     * @method \string fillCode()
     * @method \string getIconFileId()
     * @method \Bitrix\Im\Model\EO_App setIconFileId(\string|\Bitrix\Main\DB\SqlExpression $iconFileId)
     * @method bool hasIconFileId()
     * @method bool isIconFileIdFilled()
     * @method bool isIconFileIdChanged()
     * @method \string remindActualIconFileId()
     * @method \string requireIconFileId()
     * @method \Bitrix\Im\Model\EO_App resetIconFileId()
     * @method \Bitrix\Im\Model\EO_App unsetIconFileId()
     * @method \string fillIconFileId()
     * @method \string getContext()
     * @method \Bitrix\Im\Model\EO_App setContext(\string|\Bitrix\Main\DB\SqlExpression $context)
     * @method bool hasContext()
     * @method bool isContextFilled()
     * @method bool isContextChanged()
     * @method \string remindActualContext()
     * @method \string requireContext()
     * @method \Bitrix\Im\Model\EO_App resetContext()
     * @method \Bitrix\Im\Model\EO_App unsetContext()
     * @method \string fillContext()
     * @method \string getIframe()
     * @method \Bitrix\Im\Model\EO_App setIframe(\string|\Bitrix\Main\DB\SqlExpression $iframe)
     * @method bool hasIframe()
     * @method bool isIframeFilled()
     * @method bool isIframeChanged()
     * @method \string remindActualIframe()
     * @method \string requireIframe()
     * @method \Bitrix\Im\Model\EO_App resetIframe()
     * @method \Bitrix\Im\Model\EO_App unsetIframe()
     * @method \string fillIframe()
     * @method \int getIframeWidth()
     * @method \Bitrix\Im\Model\EO_App setIframeWidth(\int|\Bitrix\Main\DB\SqlExpression $iframeWidth)
     * @method bool hasIframeWidth()
     * @method bool isIframeWidthFilled()
     * @method bool isIframeWidthChanged()
     * @method \int remindActualIframeWidth()
     * @method \int requireIframeWidth()
     * @method \Bitrix\Im\Model\EO_App resetIframeWidth()
     * @method \Bitrix\Im\Model\EO_App unsetIframeWidth()
     * @method \int fillIframeWidth()
     * @method \int getIframeHeight()
     * @method \Bitrix\Im\Model\EO_App setIframeHeight(\int|\Bitrix\Main\DB\SqlExpression $iframeHeight)
     * @method bool hasIframeHeight()
     * @method bool isIframeHeightFilled()
     * @method bool isIframeHeightChanged()
     * @method \int remindActualIframeHeight()
     * @method \int requireIframeHeight()
     * @method \Bitrix\Im\Model\EO_App resetIframeHeight()
     * @method \Bitrix\Im\Model\EO_App unsetIframeHeight()
     * @method \int fillIframeHeight()
     * @method \boolean getIframePopup()
     * @method \Bitrix\Im\Model\EO_App setIframePopup(\boolean|\Bitrix\Main\DB\SqlExpression $iframePopup)
     * @method bool hasIframePopup()
     * @method bool isIframePopupFilled()
     * @method bool isIframePopupChanged()
     * @method \boolean remindActualIframePopup()
     * @method \boolean requireIframePopup()
     * @method \Bitrix\Im\Model\EO_App resetIframePopup()
     * @method \Bitrix\Im\Model\EO_App unsetIframePopup()
     * @method \boolean fillIframePopup()
     * @method \string getJs()
     * @method \Bitrix\Im\Model\EO_App setJs(\string|\Bitrix\Main\DB\SqlExpression $js)
     * @method bool hasJs()
     * @method bool isJsFilled()
     * @method bool isJsChanged()
     * @method \string remindActualJs()
     * @method \string requireJs()
     * @method \Bitrix\Im\Model\EO_App resetJs()
     * @method \Bitrix\Im\Model\EO_App unsetJs()
     * @method \string fillJs()
     * @method \boolean getExtranetSupport()
     * @method \Bitrix\Im\Model\EO_App setExtranetSupport(\boolean|\Bitrix\Main\DB\SqlExpression $extranetSupport)
     * @method bool hasExtranetSupport()
     * @method bool isExtranetSupportFilled()
     * @method bool isExtranetSupportChanged()
     * @method \boolean remindActualExtranetSupport()
     * @method \boolean requireExtranetSupport()
     * @method \Bitrix\Im\Model\EO_App resetExtranetSupport()
     * @method \Bitrix\Im\Model\EO_App unsetExtranetSupport()
     * @method \boolean fillExtranetSupport()
     * @method \boolean getLivechatSupport()
     * @method \Bitrix\Im\Model\EO_App setLivechatSupport(\boolean|\Bitrix\Main\DB\SqlExpression $livechatSupport)
     * @method bool hasLivechatSupport()
     * @method bool isLivechatSupportFilled()
     * @method bool isLivechatSupportChanged()
     * @method \boolean remindActualLivechatSupport()
     * @method \boolean requireLivechatSupport()
     * @method \Bitrix\Im\Model\EO_App resetLivechatSupport()
     * @method \Bitrix\Im\Model\EO_App unsetLivechatSupport()
     * @method \boolean fillLivechatSupport()
     * @method \boolean getHidden()
     * @method \Bitrix\Im\Model\EO_App setHidden(\boolean|\Bitrix\Main\DB\SqlExpression $hidden)
     * @method bool hasHidden()
     * @method bool isHiddenFilled()
     * @method bool isHiddenChanged()
     * @method \boolean remindActualHidden()
     * @method \boolean requireHidden()
     * @method \Bitrix\Im\Model\EO_App resetHidden()
     * @method \Bitrix\Im\Model\EO_App unsetHidden()
     * @method \boolean fillHidden()
     * @method \string getClass()
     * @method \Bitrix\Im\Model\EO_App setClass(\string|\Bitrix\Main\DB\SqlExpression $class)
     * @method bool hasClass()
     * @method bool isClassFilled()
     * @method bool isClassChanged()
     * @method \string remindActualClass()
     * @method \string requireClass()
     * @method \Bitrix\Im\Model\EO_App resetClass()
     * @method \Bitrix\Im\Model\EO_App unsetClass()
     * @method \string fillClass()
     * @method \string getMethodLangGet()
     * @method \Bitrix\Im\Model\EO_App setMethodLangGet(\string|\Bitrix\Main\DB\SqlExpression $methodLangGet)
     * @method bool hasMethodLangGet()
     * @method bool isMethodLangGetFilled()
     * @method bool isMethodLangGetChanged()
     * @method \string remindActualMethodLangGet()
     * @method \string requireMethodLangGet()
     * @method \Bitrix\Im\Model\EO_App resetMethodLangGet()
     * @method \Bitrix\Im\Model\EO_App unsetMethodLangGet()
     * @method \string fillMethodLangGet()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_App set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_App reset($fieldName)
     * @method \Bitrix\Im\Model\EO_App unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_App wakeUp($data)
     */
    class EO_App
    {
        /* @var \Bitrix\Im\Model\AppTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\AppTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_App_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getModuleIdList()
     * @method \string[] fillModuleId()
     * @method \int[] getBotIdList()
     * @method \int[] fillBotId()
     * @method \string[] getAppIdList()
     * @method \string[] fillAppId()
     * @method \string[] getHashList()
     * @method \string[] fillHash()
     * @method \string[] getRegisteredList()
     * @method \string[] fillRegistered()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \string[] getIconFileIdList()
     * @method \string[] fillIconFileId()
     * @method \string[] getContextList()
     * @method \string[] fillContext()
     * @method \string[] getIframeList()
     * @method \string[] fillIframe()
     * @method \int[] getIframeWidthList()
     * @method \int[] fillIframeWidth()
     * @method \int[] getIframeHeightList()
     * @method \int[] fillIframeHeight()
     * @method \boolean[] getIframePopupList()
     * @method \boolean[] fillIframePopup()
     * @method \string[] getJsList()
     * @method \string[] fillJs()
     * @method \boolean[] getExtranetSupportList()
     * @method \boolean[] fillExtranetSupport()
     * @method \boolean[] getLivechatSupportList()
     * @method \boolean[] fillLivechatSupport()
     * @method \boolean[] getHiddenList()
     * @method \boolean[] fillHidden()
     * @method \string[] getClassList()
     * @method \string[] fillClass()
     * @method \string[] getMethodLangGetList()
     * @method \string[] fillMethodLangGet()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_App $object)
     * @method bool has(\Bitrix\Im\Model\EO_App $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_App getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_App[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_App $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_App_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_App current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_App_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\AppTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\AppTable';
    }
    /**
     * @method static EO_App_Query query()
     * @method static EO_App_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_App_Result getById($id)
     * @method static EO_App_Result getList(array $parameters = array())
     * @method static EO_App_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_App createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_App_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_App wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_App_Collection wakeUpCollection($rows)
     */
    class AppTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_App_Result exec()
     * @method \Bitrix\Im\Model\EO_App fetchObject()
     * @method \Bitrix\Im\Model\EO_App_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_App_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_App fetchObject()
     * @method \Bitrix\Im\Model\EO_App_Collection fetchCollection()
     */
    class EO_App_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_App createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_App_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_App wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_App_Collection wakeUpCollection($rows)
     */
    class EO_App_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_AppLang
     * @see \Bitrix\Im\Model\AppLangTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Im\Model\EO_AppLang setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getAppId()
     * @method \Bitrix\Im\Model\EO_AppLang setAppId(\int|\Bitrix\Main\DB\SqlExpression $appId)
     * @method bool hasAppId()
     * @method bool isAppIdFilled()
     * @method bool isAppIdChanged()
     * @method \int remindActualAppId()
     * @method \int requireAppId()
     * @method \Bitrix\Im\Model\EO_AppLang resetAppId()
     * @method \Bitrix\Im\Model\EO_AppLang unsetAppId()
     * @method \int fillAppId()
     * @method \string getLanguageId()
     * @method \Bitrix\Im\Model\EO_AppLang setLanguageId(\string|\Bitrix\Main\DB\SqlExpression $languageId)
     * @method bool hasLanguageId()
     * @method bool isLanguageIdFilled()
     * @method bool isLanguageIdChanged()
     * @method \string remindActualLanguageId()
     * @method \string requireLanguageId()
     * @method \Bitrix\Im\Model\EO_AppLang resetLanguageId()
     * @method \Bitrix\Im\Model\EO_AppLang unsetLanguageId()
     * @method \string fillLanguageId()
     * @method \string getTitle()
     * @method \Bitrix\Im\Model\EO_AppLang setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Im\Model\EO_AppLang resetTitle()
     * @method \Bitrix\Im\Model\EO_AppLang unsetTitle()
     * @method \string fillTitle()
     * @method \string getDescription()
     * @method \Bitrix\Im\Model\EO_AppLang setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Im\Model\EO_AppLang resetDescription()
     * @method \Bitrix\Im\Model\EO_AppLang unsetDescription()
     * @method \string fillDescription()
     * @method \string getCopyright()
     * @method \Bitrix\Im\Model\EO_AppLang setCopyright(\string|\Bitrix\Main\DB\SqlExpression $copyright)
     * @method bool hasCopyright()
     * @method bool isCopyrightFilled()
     * @method bool isCopyrightChanged()
     * @method \string remindActualCopyright()
     * @method \string requireCopyright()
     * @method \Bitrix\Im\Model\EO_AppLang resetCopyright()
     * @method \Bitrix\Im\Model\EO_AppLang unsetCopyright()
     * @method \string fillCopyright()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_AppLang set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_AppLang reset($fieldName)
     * @method \Bitrix\Im\Model\EO_AppLang unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_AppLang wakeUp($data)
     */
    class EO_AppLang
    {
        /* @var \Bitrix\Im\Model\AppLangTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\AppLangTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_AppLang_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getAppIdList()
     * @method \int[] fillAppId()
     * @method \string[] getLanguageIdList()
     * @method \string[] fillLanguageId()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getCopyrightList()
     * @method \string[] fillCopyright()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_AppLang $object)
     * @method bool has(\Bitrix\Im\Model\EO_AppLang $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_AppLang getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_AppLang[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_AppLang $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_AppLang_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_AppLang current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_AppLang_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\AppLangTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\AppLangTable';
    }
    /**
     * @method static EO_AppLang_Query query()
     * @method static EO_AppLang_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_AppLang_Result getById($id)
     * @method static EO_AppLang_Result getList(array $parameters = array())
     * @method static EO_AppLang_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_AppLang createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_AppLang_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_AppLang wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_AppLang_Collection wakeUpCollection($rows)
     */
    class AppLangTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_AppLang_Result exec()
     * @method \Bitrix\Im\Model\EO_AppLang fetchObject()
     * @method \Bitrix\Im\Model\EO_AppLang_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_AppLang_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_AppLang fetchObject()
     * @method \Bitrix\Im\Model\EO_AppLang_Collection fetchCollection()
     */
    class EO_AppLang_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_AppLang createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_AppLang_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_AppLang wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_AppLang_Collection wakeUpCollection($rows)
     */
    class EO_AppLang_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_BlockUser
     * @see \Bitrix\Im\Model\BlockUserTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Im\Model\EO_BlockUser setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getChatId()
     * @method \Bitrix\Im\Model\EO_BlockUser setChatId(\int|\Bitrix\Main\DB\SqlExpression $chatId)
     * @method bool hasChatId()
     * @method bool isChatIdFilled()
     * @method bool isChatIdChanged()
     * @method \int remindActualChatId()
     * @method \int requireChatId()
     * @method \Bitrix\Im\Model\EO_BlockUser resetChatId()
     * @method \Bitrix\Im\Model\EO_BlockUser unsetChatId()
     * @method \int fillChatId()
     * @method \int getUserId()
     * @method \Bitrix\Im\Model\EO_BlockUser setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Im\Model\EO_BlockUser resetUserId()
     * @method \Bitrix\Im\Model\EO_BlockUser unsetUserId()
     * @method \int fillUserId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_BlockUser set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_BlockUser reset($fieldName)
     * @method \Bitrix\Im\Model\EO_BlockUser unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_BlockUser wakeUp($data)
     */
    class EO_BlockUser
    {
        /* @var \Bitrix\Im\Model\BlockUserTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\BlockUserTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_BlockUser_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getChatIdList()
     * @method \int[] fillChatId()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_BlockUser $object)
     * @method bool has(\Bitrix\Im\Model\EO_BlockUser $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_BlockUser getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_BlockUser[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_BlockUser $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_BlockUser_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_BlockUser current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_BlockUser_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\BlockUserTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\BlockUserTable';
    }
    /**
     * @method static EO_BlockUser_Query query()
     * @method static EO_BlockUser_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_BlockUser_Result getById($id)
     * @method static EO_BlockUser_Result getList(array $parameters = array())
     * @method static EO_BlockUser_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_BlockUser createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_BlockUser_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_BlockUser wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_BlockUser_Collection wakeUpCollection($rows)
     */
    class BlockUserTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_BlockUser_Result exec()
     * @method \Bitrix\Im\Model\EO_BlockUser fetchObject()
     * @method \Bitrix\Im\Model\EO_BlockUser_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_BlockUser_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_BlockUser fetchObject()
     * @method \Bitrix\Im\Model\EO_BlockUser_Collection fetchCollection()
     */
    class EO_BlockUser_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_BlockUser createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_BlockUser_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_BlockUser wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_BlockUser_Collection wakeUpCollection($rows)
     */
    class EO_BlockUser_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Bot
     * @see \Bitrix\Im\Model\BotTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getBotId()
     * @method \Bitrix\Im\Model\EO_Bot setBotId(\int|\Bitrix\Main\DB\SqlExpression $botId)
     * @method bool hasBotId()
     * @method bool isBotIdFilled()
     * @method bool isBotIdChanged()
     * @method \string getModuleId()
     * @method \Bitrix\Im\Model\EO_Bot setModuleId(\string|\Bitrix\Main\DB\SqlExpression $moduleId)
     * @method bool hasModuleId()
     * @method bool isModuleIdFilled()
     * @method bool isModuleIdChanged()
     * @method \string remindActualModuleId()
     * @method \string requireModuleId()
     * @method \Bitrix\Im\Model\EO_Bot resetModuleId()
     * @method \Bitrix\Im\Model\EO_Bot unsetModuleId()
     * @method \string fillModuleId()
     * @method \string getCode()
     * @method \Bitrix\Im\Model\EO_Bot setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Im\Model\EO_Bot resetCode()
     * @method \Bitrix\Im\Model\EO_Bot unsetCode()
     * @method \string fillCode()
     * @method \string getType()
     * @method \Bitrix\Im\Model\EO_Bot setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\Im\Model\EO_Bot resetType()
     * @method \Bitrix\Im\Model\EO_Bot unsetType()
     * @method \string fillType()
     * @method \string getClass()
     * @method \Bitrix\Im\Model\EO_Bot setClass(\string|\Bitrix\Main\DB\SqlExpression $class)
     * @method bool hasClass()
     * @method bool isClassFilled()
     * @method bool isClassChanged()
     * @method \string remindActualClass()
     * @method \string requireClass()
     * @method \Bitrix\Im\Model\EO_Bot resetClass()
     * @method \Bitrix\Im\Model\EO_Bot unsetClass()
     * @method \string fillClass()
     * @method \string getLang()
     * @method \Bitrix\Im\Model\EO_Bot setLang(\string|\Bitrix\Main\DB\SqlExpression $lang)
     * @method bool hasLang()
     * @method bool isLangFilled()
     * @method bool isLangChanged()
     * @method \string remindActualLang()
     * @method \string requireLang()
     * @method \Bitrix\Im\Model\EO_Bot resetLang()
     * @method \Bitrix\Im\Model\EO_Bot unsetLang()
     * @method \string fillLang()
     * @method \string getMethodBotDelete()
     * @method \Bitrix\Im\Model\EO_Bot setMethodBotDelete(\string|\Bitrix\Main\DB\SqlExpression $methodBotDelete)
     * @method bool hasMethodBotDelete()
     * @method bool isMethodBotDeleteFilled()
     * @method bool isMethodBotDeleteChanged()
     * @method \string remindActualMethodBotDelete()
     * @method \string requireMethodBotDelete()
     * @method \Bitrix\Im\Model\EO_Bot resetMethodBotDelete()
     * @method \Bitrix\Im\Model\EO_Bot unsetMethodBotDelete()
     * @method \string fillMethodBotDelete()
     * @method \string getMethodMessageAdd()
     * @method \Bitrix\Im\Model\EO_Bot setMethodMessageAdd(\string|\Bitrix\Main\DB\SqlExpression $methodMessageAdd)
     * @method bool hasMethodMessageAdd()
     * @method bool isMethodMessageAddFilled()
     * @method bool isMethodMessageAddChanged()
     * @method \string remindActualMethodMessageAdd()
     * @method \string requireMethodMessageAdd()
     * @method \Bitrix\Im\Model\EO_Bot resetMethodMessageAdd()
     * @method \Bitrix\Im\Model\EO_Bot unsetMethodMessageAdd()
     * @method \string fillMethodMessageAdd()
     * @method \string getMethodMessageUpdate()
     * @method \Bitrix\Im\Model\EO_Bot setMethodMessageUpdate(\string|\Bitrix\Main\DB\SqlExpression $methodMessageUpdate)
     * @method bool hasMethodMessageUpdate()
     * @method bool isMethodMessageUpdateFilled()
     * @method bool isMethodMessageUpdateChanged()
     * @method \string remindActualMethodMessageUpdate()
     * @method \string requireMethodMessageUpdate()
     * @method \Bitrix\Im\Model\EO_Bot resetMethodMessageUpdate()
     * @method \Bitrix\Im\Model\EO_Bot unsetMethodMessageUpdate()
     * @method \string fillMethodMessageUpdate()
     * @method \string getMethodMessageDelete()
     * @method \Bitrix\Im\Model\EO_Bot setMethodMessageDelete(\string|\Bitrix\Main\DB\SqlExpression $methodMessageDelete)
     * @method bool hasMethodMessageDelete()
     * @method bool isMethodMessageDeleteFilled()
     * @method bool isMethodMessageDeleteChanged()
     * @method \string remindActualMethodMessageDelete()
     * @method \string requireMethodMessageDelete()
     * @method \Bitrix\Im\Model\EO_Bot resetMethodMessageDelete()
     * @method \Bitrix\Im\Model\EO_Bot unsetMethodMessageDelete()
     * @method \string fillMethodMessageDelete()
     * @method \string getMethodWelcomeMessage()
     * @method \Bitrix\Im\Model\EO_Bot setMethodWelcomeMessage(\string|\Bitrix\Main\DB\SqlExpression $methodWelcomeMessage)
     * @method bool hasMethodWelcomeMessage()
     * @method bool isMethodWelcomeMessageFilled()
     * @method bool isMethodWelcomeMessageChanged()
     * @method \string remindActualMethodWelcomeMessage()
     * @method \string requireMethodWelcomeMessage()
     * @method \Bitrix\Im\Model\EO_Bot resetMethodWelcomeMessage()
     * @method \Bitrix\Im\Model\EO_Bot unsetMethodWelcomeMessage()
     * @method \string fillMethodWelcomeMessage()
     * @method \string getTextPrivateWelcomeMessage()
     * @method \Bitrix\Im\Model\EO_Bot setTextPrivateWelcomeMessage(\string|\Bitrix\Main\DB\SqlExpression $textPrivateWelcomeMessage)
     * @method bool hasTextPrivateWelcomeMessage()
     * @method bool isTextPrivateWelcomeMessageFilled()
     * @method bool isTextPrivateWelcomeMessageChanged()
     * @method \string remindActualTextPrivateWelcomeMessage()
     * @method \string requireTextPrivateWelcomeMessage()
     * @method \Bitrix\Im\Model\EO_Bot resetTextPrivateWelcomeMessage()
     * @method \Bitrix\Im\Model\EO_Bot unsetTextPrivateWelcomeMessage()
     * @method \string fillTextPrivateWelcomeMessage()
     * @method \string getTextChatWelcomeMessage()
     * @method \Bitrix\Im\Model\EO_Bot setTextChatWelcomeMessage(\string|\Bitrix\Main\DB\SqlExpression $textChatWelcomeMessage)
     * @method bool hasTextChatWelcomeMessage()
     * @method bool isTextChatWelcomeMessageFilled()
     * @method bool isTextChatWelcomeMessageChanged()
     * @method \string remindActualTextChatWelcomeMessage()
     * @method \string requireTextChatWelcomeMessage()
     * @method \Bitrix\Im\Model\EO_Bot resetTextChatWelcomeMessage()
     * @method \Bitrix\Im\Model\EO_Bot unsetTextChatWelcomeMessage()
     * @method \string fillTextChatWelcomeMessage()
     * @method \int getCountMessage()
     * @method \Bitrix\Im\Model\EO_Bot setCountMessage(\int|\Bitrix\Main\DB\SqlExpression $countMessage)
     * @method bool hasCountMessage()
     * @method bool isCountMessageFilled()
     * @method bool isCountMessageChanged()
     * @method \int remindActualCountMessage()
     * @method \int requireCountMessage()
     * @method \Bitrix\Im\Model\EO_Bot resetCountMessage()
     * @method \Bitrix\Im\Model\EO_Bot unsetCountMessage()
     * @method \int fillCountMessage()
     * @method \int getCountCommand()
     * @method \Bitrix\Im\Model\EO_Bot setCountCommand(\int|\Bitrix\Main\DB\SqlExpression $countCommand)
     * @method bool hasCountCommand()
     * @method bool isCountCommandFilled()
     * @method bool isCountCommandChanged()
     * @method \int remindActualCountCommand()
     * @method \int requireCountCommand()
     * @method \Bitrix\Im\Model\EO_Bot resetCountCommand()
     * @method \Bitrix\Im\Model\EO_Bot unsetCountCommand()
     * @method \int fillCountCommand()
     * @method \int getCountChat()
     * @method \Bitrix\Im\Model\EO_Bot setCountChat(\int|\Bitrix\Main\DB\SqlExpression $countChat)
     * @method bool hasCountChat()
     * @method bool isCountChatFilled()
     * @method bool isCountChatChanged()
     * @method \int remindActualCountChat()
     * @method \int requireCountChat()
     * @method \Bitrix\Im\Model\EO_Bot resetCountChat()
     * @method \Bitrix\Im\Model\EO_Bot unsetCountChat()
     * @method \int fillCountChat()
     * @method \int getCountUser()
     * @method \Bitrix\Im\Model\EO_Bot setCountUser(\int|\Bitrix\Main\DB\SqlExpression $countUser)
     * @method bool hasCountUser()
     * @method bool isCountUserFilled()
     * @method bool isCountUserChanged()
     * @method \int remindActualCountUser()
     * @method \int requireCountUser()
     * @method \Bitrix\Im\Model\EO_Bot resetCountUser()
     * @method \Bitrix\Im\Model\EO_Bot unsetCountUser()
     * @method \int fillCountUser()
     * @method \string getAppId()
     * @method \Bitrix\Im\Model\EO_Bot setAppId(\string|\Bitrix\Main\DB\SqlExpression $appId)
     * @method bool hasAppId()
     * @method bool isAppIdFilled()
     * @method bool isAppIdChanged()
     * @method \string remindActualAppId()
     * @method \string requireAppId()
     * @method \Bitrix\Im\Model\EO_Bot resetAppId()
     * @method \Bitrix\Im\Model\EO_Bot unsetAppId()
     * @method \string fillAppId()
     * @method \boolean getVerified()
     * @method \Bitrix\Im\Model\EO_Bot setVerified(\boolean|\Bitrix\Main\DB\SqlExpression $verified)
     * @method bool hasVerified()
     * @method bool isVerifiedFilled()
     * @method bool isVerifiedChanged()
     * @method \boolean remindActualVerified()
     * @method \boolean requireVerified()
     * @method \Bitrix\Im\Model\EO_Bot resetVerified()
     * @method \Bitrix\Im\Model\EO_Bot unsetVerified()
     * @method \boolean fillVerified()
     * @method \boolean getOpenline()
     * @method \Bitrix\Im\Model\EO_Bot setOpenline(\boolean|\Bitrix\Main\DB\SqlExpression $openline)
     * @method bool hasOpenline()
     * @method bool isOpenlineFilled()
     * @method bool isOpenlineChanged()
     * @method \boolean remindActualOpenline()
     * @method \boolean requireOpenline()
     * @method \Bitrix\Im\Model\EO_Bot resetOpenline()
     * @method \Bitrix\Im\Model\EO_Bot unsetOpenline()
     * @method \boolean fillOpenline()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_Bot set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_Bot reset($fieldName)
     * @method \Bitrix\Im\Model\EO_Bot unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_Bot wakeUp($data)
     */
    class EO_Bot
    {
        /* @var \Bitrix\Im\Model\BotTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\BotTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Bot_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getBotIdList()
     * @method \string[] getModuleIdList()
     * @method \string[] fillModuleId()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \string[] getClassList()
     * @method \string[] fillClass()
     * @method \string[] getLangList()
     * @method \string[] fillLang()
     * @method \string[] getMethodBotDeleteList()
     * @method \string[] fillMethodBotDelete()
     * @method \string[] getMethodMessageAddList()
     * @method \string[] fillMethodMessageAdd()
     * @method \string[] getMethodMessageUpdateList()
     * @method \string[] fillMethodMessageUpdate()
     * @method \string[] getMethodMessageDeleteList()
     * @method \string[] fillMethodMessageDelete()
     * @method \string[] getMethodWelcomeMessageList()
     * @method \string[] fillMethodWelcomeMessage()
     * @method \string[] getTextPrivateWelcomeMessageList()
     * @method \string[] fillTextPrivateWelcomeMessage()
     * @method \string[] getTextChatWelcomeMessageList()
     * @method \string[] fillTextChatWelcomeMessage()
     * @method \int[] getCountMessageList()
     * @method \int[] fillCountMessage()
     * @method \int[] getCountCommandList()
     * @method \int[] fillCountCommand()
     * @method \int[] getCountChatList()
     * @method \int[] fillCountChat()
     * @method \int[] getCountUserList()
     * @method \int[] fillCountUser()
     * @method \string[] getAppIdList()
     * @method \string[] fillAppId()
     * @method \boolean[] getVerifiedList()
     * @method \boolean[] fillVerified()
     * @method \boolean[] getOpenlineList()
     * @method \boolean[] fillOpenline()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_Bot $object)
     * @method bool has(\Bitrix\Im\Model\EO_Bot $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Bot getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Bot[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_Bot $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_Bot_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_Bot current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Bot_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\BotTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\BotTable';
    }
    /**
     * @method static EO_Bot_Query query()
     * @method static EO_Bot_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Bot_Result getById($id)
     * @method static EO_Bot_Result getList(array $parameters = array())
     * @method static EO_Bot_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_Bot createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_Bot_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_Bot wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_Bot_Collection wakeUpCollection($rows)
     */
    class BotTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Bot_Result exec()
     * @method \Bitrix\Im\Model\EO_Bot fetchObject()
     * @method \Bitrix\Im\Model\EO_Bot_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Bot_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Bot fetchObject()
     * @method \Bitrix\Im\Model\EO_Bot_Collection fetchCollection()
     */
    class EO_Bot_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Bot createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_Bot_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_Bot wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_Bot_Collection wakeUpCollection($rows)
     */
    class EO_Bot_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_BotChat
     * @see \Bitrix\Im\Model\BotChatTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Im\Model\EO_BotChat setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getBotId()
     * @method \Bitrix\Im\Model\EO_BotChat setBotId(\int|\Bitrix\Main\DB\SqlExpression $botId)
     * @method bool hasBotId()
     * @method bool isBotIdFilled()
     * @method bool isBotIdChanged()
     * @method \int remindActualBotId()
     * @method \int requireBotId()
     * @method \Bitrix\Im\Model\EO_BotChat resetBotId()
     * @method \Bitrix\Im\Model\EO_BotChat unsetBotId()
     * @method \int fillBotId()
     * @method \int getChatId()
     * @method \Bitrix\Im\Model\EO_BotChat setChatId(\int|\Bitrix\Main\DB\SqlExpression $chatId)
     * @method bool hasChatId()
     * @method bool isChatIdFilled()
     * @method bool isChatIdChanged()
     * @method \int remindActualChatId()
     * @method \int requireChatId()
     * @method \Bitrix\Im\Model\EO_BotChat resetChatId()
     * @method \Bitrix\Im\Model\EO_BotChat unsetChatId()
     * @method \int fillChatId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_BotChat set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_BotChat reset($fieldName)
     * @method \Bitrix\Im\Model\EO_BotChat unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_BotChat wakeUp($data)
     */
    class EO_BotChat
    {
        /* @var \Bitrix\Im\Model\BotChatTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\BotChatTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_BotChat_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getBotIdList()
     * @method \int[] fillBotId()
     * @method \int[] getChatIdList()
     * @method \int[] fillChatId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_BotChat $object)
     * @method bool has(\Bitrix\Im\Model\EO_BotChat $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_BotChat getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_BotChat[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_BotChat $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_BotChat_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_BotChat current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_BotChat_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\BotChatTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\BotChatTable';
    }
    /**
     * @method static EO_BotChat_Query query()
     * @method static EO_BotChat_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_BotChat_Result getById($id)
     * @method static EO_BotChat_Result getList(array $parameters = array())
     * @method static EO_BotChat_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_BotChat createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_BotChat_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_BotChat wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_BotChat_Collection wakeUpCollection($rows)
     */
    class BotChatTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_BotChat_Result exec()
     * @method \Bitrix\Im\Model\EO_BotChat fetchObject()
     * @method \Bitrix\Im\Model\EO_BotChat_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_BotChat_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_BotChat fetchObject()
     * @method \Bitrix\Im\Model\EO_BotChat_Collection fetchCollection()
     */
    class EO_BotChat_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_BotChat createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_BotChat_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_BotChat wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_BotChat_Collection wakeUpCollection($rows)
     */
    class EO_BotChat_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_BotToken
     * @see \Bitrix\Im\Model\BotTokenTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Im\Model\EO_BotToken setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getToken()
     * @method \Bitrix\Im\Model\EO_BotToken setToken(\string|\Bitrix\Main\DB\SqlExpression $token)
     * @method bool hasToken()
     * @method bool isTokenFilled()
     * @method bool isTokenChanged()
     * @method \string remindActualToken()
     * @method \string requireToken()
     * @method \Bitrix\Im\Model\EO_BotToken resetToken()
     * @method \Bitrix\Im\Model\EO_BotToken unsetToken()
     * @method \string fillToken()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Im\Model\EO_BotToken setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Im\Model\EO_BotToken resetDateCreate()
     * @method \Bitrix\Im\Model\EO_BotToken unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateExpire()
     * @method \Bitrix\Im\Model\EO_BotToken setDateExpire(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateExpire)
     * @method bool hasDateExpire()
     * @method bool isDateExpireFilled()
     * @method bool isDateExpireChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateExpire()
     * @method \Bitrix\Main\Type\DateTime requireDateExpire()
     * @method \Bitrix\Im\Model\EO_BotToken resetDateExpire()
     * @method \Bitrix\Im\Model\EO_BotToken unsetDateExpire()
     * @method \Bitrix\Main\Type\DateTime fillDateExpire()
     * @method \int getBotId()
     * @method \Bitrix\Im\Model\EO_BotToken setBotId(\int|\Bitrix\Main\DB\SqlExpression $botId)
     * @method bool hasBotId()
     * @method bool isBotIdFilled()
     * @method bool isBotIdChanged()
     * @method \int remindActualBotId()
     * @method \int requireBotId()
     * @method \Bitrix\Im\Model\EO_BotToken resetBotId()
     * @method \Bitrix\Im\Model\EO_BotToken unsetBotId()
     * @method \int fillBotId()
     * @method \string getDialogId()
     * @method \Bitrix\Im\Model\EO_BotToken setDialogId(\string|\Bitrix\Main\DB\SqlExpression $dialogId)
     * @method bool hasDialogId()
     * @method bool isDialogIdFilled()
     * @method bool isDialogIdChanged()
     * @method \string remindActualDialogId()
     * @method \string requireDialogId()
     * @method \Bitrix\Im\Model\EO_BotToken resetDialogId()
     * @method \Bitrix\Im\Model\EO_BotToken unsetDialogId()
     * @method \string fillDialogId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_BotToken set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_BotToken reset($fieldName)
     * @method \Bitrix\Im\Model\EO_BotToken unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_BotToken wakeUp($data)
     */
    class EO_BotToken
    {
        /* @var \Bitrix\Im\Model\BotTokenTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\BotTokenTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_BotToken_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getTokenList()
     * @method \string[] fillToken()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateExpireList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateExpire()
     * @method \int[] getBotIdList()
     * @method \int[] fillBotId()
     * @method \string[] getDialogIdList()
     * @method \string[] fillDialogId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_BotToken $object)
     * @method bool has(\Bitrix\Im\Model\EO_BotToken $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_BotToken getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_BotToken[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_BotToken $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_BotToken_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_BotToken current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_BotToken_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\BotTokenTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\BotTokenTable';
    }
    /**
     * @method static EO_BotToken_Query query()
     * @method static EO_BotToken_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_BotToken_Result getById($id)
     * @method static EO_BotToken_Result getList(array $parameters = array())
     * @method static EO_BotToken_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_BotToken createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_BotToken_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_BotToken wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_BotToken_Collection wakeUpCollection($rows)
     */
    class BotTokenTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_BotToken_Result exec()
     * @method \Bitrix\Im\Model\EO_BotToken fetchObject()
     * @method \Bitrix\Im\Model\EO_BotToken_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_BotToken_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_BotToken fetchObject()
     * @method \Bitrix\Im\Model\EO_BotToken_Collection fetchCollection()
     */
    class EO_BotToken_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_BotToken createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_BotToken_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_BotToken wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_BotToken_Collection wakeUpCollection($rows)
     */
    class EO_BotToken_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Call
     * @see \Bitrix\Im\Model\CallTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Im\Model\EO_Call setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getType()
     * @method \Bitrix\Im\Model\EO_Call setType(\int|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \int remindActualType()
     * @method \int requireType()
     * @method \Bitrix\Im\Model\EO_Call resetType()
     * @method \Bitrix\Im\Model\EO_Call unsetType()
     * @method \int fillType()
     * @method \int getInitiatorId()
     * @method \Bitrix\Im\Model\EO_Call setInitiatorId(\int|\Bitrix\Main\DB\SqlExpression $initiatorId)
     * @method bool hasInitiatorId()
     * @method bool isInitiatorIdFilled()
     * @method bool isInitiatorIdChanged()
     * @method \int remindActualInitiatorId()
     * @method \int requireInitiatorId()
     * @method \Bitrix\Im\Model\EO_Call resetInitiatorId()
     * @method \Bitrix\Im\Model\EO_Call unsetInitiatorId()
     * @method \int fillInitiatorId()
     * @method \string getIsPublic()
     * @method \Bitrix\Im\Model\EO_Call setIsPublic(\string|\Bitrix\Main\DB\SqlExpression $isPublic)
     * @method bool hasIsPublic()
     * @method bool isIsPublicFilled()
     * @method bool isIsPublicChanged()
     * @method \string remindActualIsPublic()
     * @method \string requireIsPublic()
     * @method \Bitrix\Im\Model\EO_Call resetIsPublic()
     * @method \Bitrix\Im\Model\EO_Call unsetIsPublic()
     * @method \string fillIsPublic()
     * @method \string getPublicId()
     * @method \Bitrix\Im\Model\EO_Call setPublicId(\string|\Bitrix\Main\DB\SqlExpression $publicId)
     * @method bool hasPublicId()
     * @method bool isPublicIdFilled()
     * @method bool isPublicIdChanged()
     * @method \string remindActualPublicId()
     * @method \string requirePublicId()
     * @method \Bitrix\Im\Model\EO_Call resetPublicId()
     * @method \Bitrix\Im\Model\EO_Call unsetPublicId()
     * @method \string fillPublicId()
     * @method \string getProvider()
     * @method \Bitrix\Im\Model\EO_Call setProvider(\string|\Bitrix\Main\DB\SqlExpression $provider)
     * @method bool hasProvider()
     * @method bool isProviderFilled()
     * @method bool isProviderChanged()
     * @method \string remindActualProvider()
     * @method \string requireProvider()
     * @method \Bitrix\Im\Model\EO_Call resetProvider()
     * @method \Bitrix\Im\Model\EO_Call unsetProvider()
     * @method \string fillProvider()
     * @method \string getEntityType()
     * @method \Bitrix\Im\Model\EO_Call setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \string remindActualEntityType()
     * @method \string requireEntityType()
     * @method \Bitrix\Im\Model\EO_Call resetEntityType()
     * @method \Bitrix\Im\Model\EO_Call unsetEntityType()
     * @method \string fillEntityType()
     * @method \string getEntityId()
     * @method \Bitrix\Im\Model\EO_Call setEntityId(\string|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \string remindActualEntityId()
     * @method \string requireEntityId()
     * @method \Bitrix\Im\Model\EO_Call resetEntityId()
     * @method \Bitrix\Im\Model\EO_Call unsetEntityId()
     * @method \string fillEntityId()
     * @method \int getParentId()
     * @method \Bitrix\Im\Model\EO_Call setParentId(\int|\Bitrix\Main\DB\SqlExpression $parentId)
     * @method bool hasParentId()
     * @method bool isParentIdFilled()
     * @method bool isParentIdChanged()
     * @method \int remindActualParentId()
     * @method \int requireParentId()
     * @method \Bitrix\Im\Model\EO_Call resetParentId()
     * @method \Bitrix\Im\Model\EO_Call unsetParentId()
     * @method \int fillParentId()
     * @method \string getState()
     * @method \Bitrix\Im\Model\EO_Call setState(\string|\Bitrix\Main\DB\SqlExpression $state)
     * @method bool hasState()
     * @method bool isStateFilled()
     * @method bool isStateChanged()
     * @method \string remindActualState()
     * @method \string requireState()
     * @method \Bitrix\Im\Model\EO_Call resetState()
     * @method \Bitrix\Im\Model\EO_Call unsetState()
     * @method \string fillState()
     * @method \Bitrix\Main\Type\DateTime getStartDate()
     * @method \Bitrix\Im\Model\EO_Call setStartDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $startDate)
     * @method bool hasStartDate()
     * @method bool isStartDateFilled()
     * @method bool isStartDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualStartDate()
     * @method \Bitrix\Main\Type\DateTime requireStartDate()
     * @method \Bitrix\Im\Model\EO_Call resetStartDate()
     * @method \Bitrix\Im\Model\EO_Call unsetStartDate()
     * @method \Bitrix\Main\Type\DateTime fillStartDate()
     * @method \Bitrix\Main\Type\DateTime getEndDate()
     * @method \Bitrix\Im\Model\EO_Call setEndDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $endDate)
     * @method bool hasEndDate()
     * @method bool isEndDateFilled()
     * @method bool isEndDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualEndDate()
     * @method \Bitrix\Main\Type\DateTime requireEndDate()
     * @method \Bitrix\Im\Model\EO_Call resetEndDate()
     * @method \Bitrix\Im\Model\EO_Call unsetEndDate()
     * @method \Bitrix\Main\Type\DateTime fillEndDate()
     * @method \int getChatId()
     * @method \Bitrix\Im\Model\EO_Call setChatId(\int|\Bitrix\Main\DB\SqlExpression $chatId)
     * @method bool hasChatId()
     * @method bool isChatIdFilled()
     * @method bool isChatIdChanged()
     * @method \int remindActualChatId()
     * @method \int requireChatId()
     * @method \Bitrix\Im\Model\EO_Call resetChatId()
     * @method \Bitrix\Im\Model\EO_Call unsetChatId()
     * @method \int fillChatId()
     * @method \string getLogUrl()
     * @method \Bitrix\Im\Model\EO_Call setLogUrl(\string|\Bitrix\Main\DB\SqlExpression $logUrl)
     * @method bool hasLogUrl()
     * @method bool isLogUrlFilled()
     * @method bool isLogUrlChanged()
     * @method \string remindActualLogUrl()
     * @method \string requireLogUrl()
     * @method \Bitrix\Im\Model\EO_Call resetLogUrl()
     * @method \Bitrix\Im\Model\EO_Call unsetLogUrl()
     * @method \string fillLogUrl()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_Call set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_Call reset($fieldName)
     * @method \Bitrix\Im\Model\EO_Call unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_Call wakeUp($data)
     */
    class EO_Call
    {
        /* @var \Bitrix\Im\Model\CallTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\CallTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Call_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getTypeList()
     * @method \int[] fillType()
     * @method \int[] getInitiatorIdList()
     * @method \int[] fillInitiatorId()
     * @method \string[] getIsPublicList()
     * @method \string[] fillIsPublic()
     * @method \string[] getPublicIdList()
     * @method \string[] fillPublicId()
     * @method \string[] getProviderList()
     * @method \string[] fillProvider()
     * @method \string[] getEntityTypeList()
     * @method \string[] fillEntityType()
     * @method \string[] getEntityIdList()
     * @method \string[] fillEntityId()
     * @method \int[] getParentIdList()
     * @method \int[] fillParentId()
     * @method \string[] getStateList()
     * @method \string[] fillState()
     * @method \Bitrix\Main\Type\DateTime[] getStartDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillStartDate()
     * @method \Bitrix\Main\Type\DateTime[] getEndDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillEndDate()
     * @method \int[] getChatIdList()
     * @method \int[] fillChatId()
     * @method \string[] getLogUrlList()
     * @method \string[] fillLogUrl()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_Call $object)
     * @method bool has(\Bitrix\Im\Model\EO_Call $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Call getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Call[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_Call $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_Call_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_Call current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Call_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\CallTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\CallTable';
    }
    /**
     * @method static EO_Call_Query query()
     * @method static EO_Call_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Call_Result getById($id)
     * @method static EO_Call_Result getList(array $parameters = array())
     * @method static EO_Call_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_Call createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_Call_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_Call wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_Call_Collection wakeUpCollection($rows)
     */
    class CallTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Call_Result exec()
     * @method \Bitrix\Im\Model\EO_Call fetchObject()
     * @method \Bitrix\Im\Model\EO_Call_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Call_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Call fetchObject()
     * @method \Bitrix\Im\Model\EO_Call_Collection fetchCollection()
     */
    class EO_Call_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Call createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_Call_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_Call wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_Call_Collection wakeUpCollection($rows)
     */
    class EO_Call_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_CallUser
     * @see \Bitrix\Im\Model\CallUserTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getCallId()
     * @method \Bitrix\Im\Model\EO_CallUser setCallId(\int|\Bitrix\Main\DB\SqlExpression $callId)
     * @method bool hasCallId()
     * @method bool isCallIdFilled()
     * @method bool isCallIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Im\Model\EO_CallUser setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \string getState()
     * @method \Bitrix\Im\Model\EO_CallUser setState(\string|\Bitrix\Main\DB\SqlExpression $state)
     * @method bool hasState()
     * @method bool isStateFilled()
     * @method bool isStateChanged()
     * @method \string remindActualState()
     * @method \string requireState()
     * @method \Bitrix\Im\Model\EO_CallUser resetState()
     * @method \Bitrix\Im\Model\EO_CallUser unsetState()
     * @method \string fillState()
     * @method \Bitrix\Main\Type\DateTime getLastSeen()
     * @method \Bitrix\Im\Model\EO_CallUser setLastSeen(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastSeen)
     * @method bool hasLastSeen()
     * @method bool isLastSeenFilled()
     * @method bool isLastSeenChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastSeen()
     * @method \Bitrix\Main\Type\DateTime requireLastSeen()
     * @method \Bitrix\Im\Model\EO_CallUser resetLastSeen()
     * @method \Bitrix\Im\Model\EO_CallUser unsetLastSeen()
     * @method \Bitrix\Main\Type\DateTime fillLastSeen()
     * @method \boolean getIsMobile()
     * @method \Bitrix\Im\Model\EO_CallUser setIsMobile(\boolean|\Bitrix\Main\DB\SqlExpression $isMobile)
     * @method bool hasIsMobile()
     * @method bool isIsMobileFilled()
     * @method bool isIsMobileChanged()
     * @method \boolean remindActualIsMobile()
     * @method \boolean requireIsMobile()
     * @method \Bitrix\Im\Model\EO_CallUser resetIsMobile()
     * @method \Bitrix\Im\Model\EO_CallUser unsetIsMobile()
     * @method \boolean fillIsMobile()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_CallUser set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_CallUser reset($fieldName)
     * @method \Bitrix\Im\Model\EO_CallUser unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_CallUser wakeUp($data)
     */
    class EO_CallUser
    {
        /* @var \Bitrix\Im\Model\CallUserTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\CallUserTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_CallUser_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getCallIdList()
     * @method \int[] getUserIdList()
     * @method \string[] getStateList()
     * @method \string[] fillState()
     * @method \Bitrix\Main\Type\DateTime[] getLastSeenList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastSeen()
     * @method \boolean[] getIsMobileList()
     * @method \boolean[] fillIsMobile()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_CallUser $object)
     * @method bool has(\Bitrix\Im\Model\EO_CallUser $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_CallUser getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_CallUser[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_CallUser $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_CallUser_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_CallUser current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_CallUser_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\CallUserTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\CallUserTable';
    }
    /**
     * @method static EO_CallUser_Query query()
     * @method static EO_CallUser_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_CallUser_Result getById($id)
     * @method static EO_CallUser_Result getList(array $parameters = array())
     * @method static EO_CallUser_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_CallUser createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_CallUser_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_CallUser wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_CallUser_Collection wakeUpCollection($rows)
     */
    class CallUserTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_CallUser_Result exec()
     * @method \Bitrix\Im\Model\EO_CallUser fetchObject()
     * @method \Bitrix\Im\Model\EO_CallUser_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_CallUser_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_CallUser fetchObject()
     * @method \Bitrix\Im\Model\EO_CallUser_Collection fetchCollection()
     */
    class EO_CallUser_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_CallUser createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_CallUser_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_CallUser wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_CallUser_Collection wakeUpCollection($rows)
     */
    class EO_CallUser_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Chat
     * @see \Bitrix\Im\Model\ChatTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Im\Model\EO_Chat setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getParentId()
     * @method \Bitrix\Im\Model\EO_Chat setParentId(\int|\Bitrix\Main\DB\SqlExpression $parentId)
     * @method bool hasParentId()
     * @method bool isParentIdFilled()
     * @method bool isParentIdChanged()
     * @method \int remindActualParentId()
     * @method \int requireParentId()
     * @method \Bitrix\Im\Model\EO_Chat resetParentId()
     * @method \Bitrix\Im\Model\EO_Chat unsetParentId()
     * @method \int fillParentId()
     * @method \int getParentMid()
     * @method \Bitrix\Im\Model\EO_Chat setParentMid(\int|\Bitrix\Main\DB\SqlExpression $parentMid)
     * @method bool hasParentMid()
     * @method bool isParentMidFilled()
     * @method bool isParentMidChanged()
     * @method \int remindActualParentMid()
     * @method \int requireParentMid()
     * @method \Bitrix\Im\Model\EO_Chat resetParentMid()
     * @method \Bitrix\Im\Model\EO_Chat unsetParentMid()
     * @method \int fillParentMid()
     * @method \string getTitle()
     * @method \Bitrix\Im\Model\EO_Chat setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Im\Model\EO_Chat resetTitle()
     * @method \Bitrix\Im\Model\EO_Chat unsetTitle()
     * @method \string fillTitle()
     * @method \string getDescription()
     * @method \Bitrix\Im\Model\EO_Chat setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Im\Model\EO_Chat resetDescription()
     * @method \Bitrix\Im\Model\EO_Chat unsetDescription()
     * @method \string fillDescription()
     * @method \string getColor()
     * @method \Bitrix\Im\Model\EO_Chat setColor(\string|\Bitrix\Main\DB\SqlExpression $color)
     * @method bool hasColor()
     * @method bool isColorFilled()
     * @method bool isColorChanged()
     * @method \string remindActualColor()
     * @method \string requireColor()
     * @method \Bitrix\Im\Model\EO_Chat resetColor()
     * @method \Bitrix\Im\Model\EO_Chat unsetColor()
     * @method \string fillColor()
     * @method \string getType()
     * @method \Bitrix\Im\Model\EO_Chat setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\Im\Model\EO_Chat resetType()
     * @method \Bitrix\Im\Model\EO_Chat unsetType()
     * @method \string fillType()
     * @method \boolean getExtranet()
     * @method \Bitrix\Im\Model\EO_Chat setExtranet(\boolean|\Bitrix\Main\DB\SqlExpression $extranet)
     * @method bool hasExtranet()
     * @method bool isExtranetFilled()
     * @method bool isExtranetChanged()
     * @method \boolean remindActualExtranet()
     * @method \boolean requireExtranet()
     * @method \Bitrix\Im\Model\EO_Chat resetExtranet()
     * @method \Bitrix\Im\Model\EO_Chat unsetExtranet()
     * @method \boolean fillExtranet()
     * @method \int getAuthorId()
     * @method \Bitrix\Im\Model\EO_Chat setAuthorId(\int|\Bitrix\Main\DB\SqlExpression $authorId)
     * @method bool hasAuthorId()
     * @method bool isAuthorIdFilled()
     * @method bool isAuthorIdChanged()
     * @method \int remindActualAuthorId()
     * @method \int requireAuthorId()
     * @method \Bitrix\Im\Model\EO_Chat resetAuthorId()
     * @method \Bitrix\Im\Model\EO_Chat unsetAuthorId()
     * @method \int fillAuthorId()
     * @method \int getAvatar()
     * @method \Bitrix\Im\Model\EO_Chat setAvatar(\int|\Bitrix\Main\DB\SqlExpression $avatar)
     * @method bool hasAvatar()
     * @method bool isAvatarFilled()
     * @method bool isAvatarChanged()
     * @method \int remindActualAvatar()
     * @method \int requireAvatar()
     * @method \Bitrix\Im\Model\EO_Chat resetAvatar()
     * @method \Bitrix\Im\Model\EO_Chat unsetAvatar()
     * @method \int fillAvatar()
     * @method \int getCallType()
     * @method \Bitrix\Im\Model\EO_Chat setCallType(\int|\Bitrix\Main\DB\SqlExpression $callType)
     * @method bool hasCallType()
     * @method bool isCallTypeFilled()
     * @method bool isCallTypeChanged()
     * @method \int remindActualCallType()
     * @method \int requireCallType()
     * @method \Bitrix\Im\Model\EO_Chat resetCallType()
     * @method \Bitrix\Im\Model\EO_Chat unsetCallType()
     * @method \int fillCallType()
     * @method \string getCallNumber()
     * @method \Bitrix\Im\Model\EO_Chat setCallNumber(\string|\Bitrix\Main\DB\SqlExpression $callNumber)
     * @method bool hasCallNumber()
     * @method bool isCallNumberFilled()
     * @method bool isCallNumberChanged()
     * @method \string remindActualCallNumber()
     * @method \string requireCallNumber()
     * @method \Bitrix\Im\Model\EO_Chat resetCallNumber()
     * @method \Bitrix\Im\Model\EO_Chat unsetCallNumber()
     * @method \string fillCallNumber()
     * @method \string getEntityType()
     * @method \Bitrix\Im\Model\EO_Chat setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \string remindActualEntityType()
     * @method \string requireEntityType()
     * @method \Bitrix\Im\Model\EO_Chat resetEntityType()
     * @method \Bitrix\Im\Model\EO_Chat unsetEntityType()
     * @method \string fillEntityType()
     * @method \string getEntityId()
     * @method \Bitrix\Im\Model\EO_Chat setEntityId(\string|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \string remindActualEntityId()
     * @method \string requireEntityId()
     * @method \Bitrix\Im\Model\EO_Chat resetEntityId()
     * @method \Bitrix\Im\Model\EO_Chat unsetEntityId()
     * @method \string fillEntityId()
     * @method \string getEntityData1()
     * @method \Bitrix\Im\Model\EO_Chat setEntityData1(\string|\Bitrix\Main\DB\SqlExpression $entityData1)
     * @method bool hasEntityData1()
     * @method bool isEntityData1Filled()
     * @method bool isEntityData1Changed()
     * @method \string remindActualEntityData1()
     * @method \string requireEntityData1()
     * @method \Bitrix\Im\Model\EO_Chat resetEntityData1()
     * @method \Bitrix\Im\Model\EO_Chat unsetEntityData1()
     * @method \string fillEntityData1()
     * @method \string getEntityData2()
     * @method \Bitrix\Im\Model\EO_Chat setEntityData2(\string|\Bitrix\Main\DB\SqlExpression $entityData2)
     * @method bool hasEntityData2()
     * @method bool isEntityData2Filled()
     * @method bool isEntityData2Changed()
     * @method \string remindActualEntityData2()
     * @method \string requireEntityData2()
     * @method \Bitrix\Im\Model\EO_Chat resetEntityData2()
     * @method \Bitrix\Im\Model\EO_Chat unsetEntityData2()
     * @method \string fillEntityData2()
     * @method \string getEntityData3()
     * @method \Bitrix\Im\Model\EO_Chat setEntityData3(\string|\Bitrix\Main\DB\SqlExpression $entityData3)
     * @method bool hasEntityData3()
     * @method bool isEntityData3Filled()
     * @method bool isEntityData3Changed()
     * @method \string remindActualEntityData3()
     * @method \string requireEntityData3()
     * @method \Bitrix\Im\Model\EO_Chat resetEntityData3()
     * @method \Bitrix\Im\Model\EO_Chat unsetEntityData3()
     * @method \string fillEntityData3()
     * @method \Bitrix\Main\EO_User getAuthor()
     * @method \Bitrix\Main\EO_User remindActualAuthor()
     * @method \Bitrix\Main\EO_User requireAuthor()
     * @method \Bitrix\Im\Model\EO_Chat setAuthor(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Im\Model\EO_Chat resetAuthor()
     * @method \Bitrix\Im\Model\EO_Chat unsetAuthor()
     * @method bool hasAuthor()
     * @method bool isAuthorFilled()
     * @method bool isAuthorChanged()
     * @method \Bitrix\Main\EO_User fillAuthor()
     * @method \int getDiskFolderId()
     * @method \Bitrix\Im\Model\EO_Chat setDiskFolderId(\int|\Bitrix\Main\DB\SqlExpression $diskFolderId)
     * @method bool hasDiskFolderId()
     * @method bool isDiskFolderIdFilled()
     * @method bool isDiskFolderIdChanged()
     * @method \int remindActualDiskFolderId()
     * @method \int requireDiskFolderId()
     * @method \Bitrix\Im\Model\EO_Chat resetDiskFolderId()
     * @method \Bitrix\Im\Model\EO_Chat unsetDiskFolderId()
     * @method \int fillDiskFolderId()
     * @method \int getPinMessageId()
     * @method \Bitrix\Im\Model\EO_Chat setPinMessageId(\int|\Bitrix\Main\DB\SqlExpression $pinMessageId)
     * @method bool hasPinMessageId()
     * @method bool isPinMessageIdFilled()
     * @method bool isPinMessageIdChanged()
     * @method \int remindActualPinMessageId()
     * @method \int requirePinMessageId()
     * @method \Bitrix\Im\Model\EO_Chat resetPinMessageId()
     * @method \Bitrix\Im\Model\EO_Chat unsetPinMessageId()
     * @method \int fillPinMessageId()
     * @method \int getMessageCount()
     * @method \Bitrix\Im\Model\EO_Chat setMessageCount(\int|\Bitrix\Main\DB\SqlExpression $messageCount)
     * @method bool hasMessageCount()
     * @method bool isMessageCountFilled()
     * @method bool isMessageCountChanged()
     * @method \int remindActualMessageCount()
     * @method \int requireMessageCount()
     * @method \Bitrix\Im\Model\EO_Chat resetMessageCount()
     * @method \Bitrix\Im\Model\EO_Chat unsetMessageCount()
     * @method \int fillMessageCount()
     * @method \int getUserCount()
     * @method \Bitrix\Im\Model\EO_Chat setUserCount(\int|\Bitrix\Main\DB\SqlExpression $userCount)
     * @method bool hasUserCount()
     * @method bool isUserCountFilled()
     * @method bool isUserCountChanged()
     * @method \int remindActualUserCount()
     * @method \int requireUserCount()
     * @method \Bitrix\Im\Model\EO_Chat resetUserCount()
     * @method \Bitrix\Im\Model\EO_Chat unsetUserCount()
     * @method \int fillUserCount()
     * @method \int getPrevMessageId()
     * @method \Bitrix\Im\Model\EO_Chat setPrevMessageId(\int|\Bitrix\Main\DB\SqlExpression $prevMessageId)
     * @method bool hasPrevMessageId()
     * @method bool isPrevMessageIdFilled()
     * @method bool isPrevMessageIdChanged()
     * @method \int remindActualPrevMessageId()
     * @method \int requirePrevMessageId()
     * @method \Bitrix\Im\Model\EO_Chat resetPrevMessageId()
     * @method \Bitrix\Im\Model\EO_Chat unsetPrevMessageId()
     * @method \int fillPrevMessageId()
     * @method \int getLastMessageId()
     * @method \Bitrix\Im\Model\EO_Chat setLastMessageId(\int|\Bitrix\Main\DB\SqlExpression $lastMessageId)
     * @method bool hasLastMessageId()
     * @method bool isLastMessageIdFilled()
     * @method bool isLastMessageIdChanged()
     * @method \int remindActualLastMessageId()
     * @method \int requireLastMessageId()
     * @method \Bitrix\Im\Model\EO_Chat resetLastMessageId()
     * @method \Bitrix\Im\Model\EO_Chat unsetLastMessageId()
     * @method \int fillLastMessageId()
     * @method \string getLastMessageStatus()
     * @method \Bitrix\Im\Model\EO_Chat setLastMessageStatus(\string|\Bitrix\Main\DB\SqlExpression $lastMessageStatus)
     * @method bool hasLastMessageStatus()
     * @method bool isLastMessageStatusFilled()
     * @method bool isLastMessageStatusChanged()
     * @method \string remindActualLastMessageStatus()
     * @method \string requireLastMessageStatus()
     * @method \Bitrix\Im\Model\EO_Chat resetLastMessageStatus()
     * @method \Bitrix\Im\Model\EO_Chat unsetLastMessageStatus()
     * @method \string fillLastMessageStatus()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Im\Model\EO_Chat setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Im\Model\EO_Chat resetDateCreate()
     * @method \Bitrix\Im\Model\EO_Chat unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Im\Model\EO_ChatIndex getIndex()
     * @method \Bitrix\Im\Model\EO_ChatIndex remindActualIndex()
     * @method \Bitrix\Im\Model\EO_ChatIndex requireIndex()
     * @method \Bitrix\Im\Model\EO_Chat setIndex(\Bitrix\Im\Model\EO_ChatIndex $object)
     * @method \Bitrix\Im\Model\EO_Chat resetIndex()
     * @method \Bitrix\Im\Model\EO_Chat unsetIndex()
     * @method bool hasIndex()
     * @method bool isIndexFilled()
     * @method bool isIndexChanged()
     * @method \Bitrix\Im\Model\EO_ChatIndex fillIndex()
     * @method \Bitrix\Im\Model\EO_Alias getAlias()
     * @method \Bitrix\Im\Model\EO_Alias remindActualAlias()
     * @method \Bitrix\Im\Model\EO_Alias requireAlias()
     * @method \Bitrix\Im\Model\EO_Chat setAlias(\Bitrix\Im\Model\EO_Alias $object)
     * @method \Bitrix\Im\Model\EO_Chat resetAlias()
     * @method \Bitrix\Im\Model\EO_Chat unsetAlias()
     * @method bool hasAlias()
     * @method bool isAliasFilled()
     * @method bool isAliasChanged()
     * @method \Bitrix\Im\Model\EO_Alias fillAlias()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_Chat set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_Chat reset($fieldName)
     * @method \Bitrix\Im\Model\EO_Chat unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_Chat wakeUp($data)
     */
    class EO_Chat
    {
        /* @var \Bitrix\Im\Model\ChatTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\ChatTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Chat_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getParentIdList()
     * @method \int[] fillParentId()
     * @method \int[] getParentMidList()
     * @method \int[] fillParentMid()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getColorList()
     * @method \string[] fillColor()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \boolean[] getExtranetList()
     * @method \boolean[] fillExtranet()
     * @method \int[] getAuthorIdList()
     * @method \int[] fillAuthorId()
     * @method \int[] getAvatarList()
     * @method \int[] fillAvatar()
     * @method \int[] getCallTypeList()
     * @method \int[] fillCallType()
     * @method \string[] getCallNumberList()
     * @method \string[] fillCallNumber()
     * @method \string[] getEntityTypeList()
     * @method \string[] fillEntityType()
     * @method \string[] getEntityIdList()
     * @method \string[] fillEntityId()
     * @method \string[] getEntityData1List()
     * @method \string[] fillEntityData1()
     * @method \string[] getEntityData2List()
     * @method \string[] fillEntityData2()
     * @method \string[] getEntityData3List()
     * @method \string[] fillEntityData3()
     * @method \Bitrix\Main\EO_User[] getAuthorList()
     * @method \Bitrix\Im\Model\EO_Chat_Collection getAuthorCollection()
     * @method \Bitrix\Main\EO_User_Collection fillAuthor()
     * @method \int[] getDiskFolderIdList()
     * @method \int[] fillDiskFolderId()
     * @method \int[] getPinMessageIdList()
     * @method \int[] fillPinMessageId()
     * @method \int[] getMessageCountList()
     * @method \int[] fillMessageCount()
     * @method \int[] getUserCountList()
     * @method \int[] fillUserCount()
     * @method \int[] getPrevMessageIdList()
     * @method \int[] fillPrevMessageId()
     * @method \int[] getLastMessageIdList()
     * @method \int[] fillLastMessageId()
     * @method \string[] getLastMessageStatusList()
     * @method \string[] fillLastMessageStatus()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Im\Model\EO_ChatIndex[] getIndexList()
     * @method \Bitrix\Im\Model\EO_Chat_Collection getIndexCollection()
     * @method \Bitrix\Im\Model\EO_ChatIndex_Collection fillIndex()
     * @method \Bitrix\Im\Model\EO_Alias[] getAliasList()
     * @method \Bitrix\Im\Model\EO_Chat_Collection getAliasCollection()
     * @method \Bitrix\Im\Model\EO_Alias_Collection fillAlias()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_Chat $object)
     * @method bool has(\Bitrix\Im\Model\EO_Chat $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Chat getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Chat[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_Chat $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_Chat_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_Chat current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Chat_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\ChatTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\ChatTable';
    }
    /**
     * @method static EO_Chat_Query query()
     * @method static EO_Chat_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Chat_Result getById($id)
     * @method static EO_Chat_Result getList(array $parameters = array())
     * @method static EO_Chat_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_Chat createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_Chat_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_Chat wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_Chat_Collection wakeUpCollection($rows)
     */
    class ChatTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Chat_Result exec()
     * @method \Bitrix\Im\Model\EO_Chat fetchObject()
     * @method \Bitrix\Im\Model\EO_Chat_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Chat_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Chat fetchObject()
     * @method \Bitrix\Im\Model\EO_Chat_Collection fetchCollection()
     */
    class EO_Chat_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Chat createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_Chat_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_Chat wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_Chat_Collection wakeUpCollection($rows)
     */
    class EO_Chat_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_ChatIndex
     * @see \Bitrix\Im\Model\ChatIndexTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getChatId()
     * @method \Bitrix\Im\Model\EO_ChatIndex setChatId(\int|\Bitrix\Main\DB\SqlExpression $chatId)
     * @method bool hasChatId()
     * @method bool isChatIdFilled()
     * @method bool isChatIdChanged()
     * @method \string getSearchTitle()
     * @method \Bitrix\Im\Model\EO_ChatIndex setSearchTitle(\string|\Bitrix\Main\DB\SqlExpression $searchTitle)
     * @method bool hasSearchTitle()
     * @method bool isSearchTitleFilled()
     * @method bool isSearchTitleChanged()
     * @method \string remindActualSearchTitle()
     * @method \string requireSearchTitle()
     * @method \Bitrix\Im\Model\EO_ChatIndex resetSearchTitle()
     * @method \Bitrix\Im\Model\EO_ChatIndex unsetSearchTitle()
     * @method \string fillSearchTitle()
     * @method \string getSearchContent()
     * @method \Bitrix\Im\Model\EO_ChatIndex setSearchContent(\string|\Bitrix\Main\DB\SqlExpression $searchContent)
     * @method bool hasSearchContent()
     * @method bool isSearchContentFilled()
     * @method bool isSearchContentChanged()
     * @method \string remindActualSearchContent()
     * @method \string requireSearchContent()
     * @method \Bitrix\Im\Model\EO_ChatIndex resetSearchContent()
     * @method \Bitrix\Im\Model\EO_ChatIndex unsetSearchContent()
     * @method \string fillSearchContent()
     * @method \string getSearchUsers()
     * @method \Bitrix\Im\Model\EO_ChatIndex setSearchUsers(\string|\Bitrix\Main\DB\SqlExpression $searchUsers)
     * @method bool hasSearchUsers()
     * @method bool isSearchUsersFilled()
     * @method bool isSearchUsersChanged()
     * @method \string remindActualSearchUsers()
     * @method \string requireSearchUsers()
     * @method \Bitrix\Im\Model\EO_ChatIndex resetSearchUsers()
     * @method \Bitrix\Im\Model\EO_ChatIndex unsetSearchUsers()
     * @method \string fillSearchUsers()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_ChatIndex set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_ChatIndex reset($fieldName)
     * @method \Bitrix\Im\Model\EO_ChatIndex unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_ChatIndex wakeUp($data)
     */
    class EO_ChatIndex
    {
        /* @var \Bitrix\Im\Model\ChatIndexTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\ChatIndexTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_ChatIndex_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getChatIdList()
     * @method \string[] getSearchTitleList()
     * @method \string[] fillSearchTitle()
     * @method \string[] getSearchContentList()
     * @method \string[] fillSearchContent()
     * @method \string[] getSearchUsersList()
     * @method \string[] fillSearchUsers()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_ChatIndex $object)
     * @method bool has(\Bitrix\Im\Model\EO_ChatIndex $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_ChatIndex getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_ChatIndex[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_ChatIndex $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_ChatIndex_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_ChatIndex current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_ChatIndex_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\ChatIndexTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\ChatIndexTable';
    }
    /**
     * @method static EO_ChatIndex_Query query()
     * @method static EO_ChatIndex_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_ChatIndex_Result getById($id)
     * @method static EO_ChatIndex_Result getList(array $parameters = array())
     * @method static EO_ChatIndex_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_ChatIndex createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_ChatIndex_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_ChatIndex wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_ChatIndex_Collection wakeUpCollection($rows)
     */
    class ChatIndexTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_ChatIndex_Result exec()
     * @method \Bitrix\Im\Model\EO_ChatIndex fetchObject()
     * @method \Bitrix\Im\Model\EO_ChatIndex_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_ChatIndex_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_ChatIndex fetchObject()
     * @method \Bitrix\Im\Model\EO_ChatIndex_Collection fetchCollection()
     */
    class EO_ChatIndex_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_ChatIndex createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_ChatIndex_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_ChatIndex wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_ChatIndex_Collection wakeUpCollection($rows)
     */
    class EO_ChatIndex_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Command
     * @see \Bitrix\Im\Model\CommandTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Im\Model\EO_Command setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getBotId()
     * @method \Bitrix\Im\Model\EO_Command setBotId(\int|\Bitrix\Main\DB\SqlExpression $botId)
     * @method bool hasBotId()
     * @method bool isBotIdFilled()
     * @method bool isBotIdChanged()
     * @method \int remindActualBotId()
     * @method \int requireBotId()
     * @method \Bitrix\Im\Model\EO_Command resetBotId()
     * @method \Bitrix\Im\Model\EO_Command unsetBotId()
     * @method \int fillBotId()
     * @method \string getAppId()
     * @method \Bitrix\Im\Model\EO_Command setAppId(\string|\Bitrix\Main\DB\SqlExpression $appId)
     * @method bool hasAppId()
     * @method bool isAppIdFilled()
     * @method bool isAppIdChanged()
     * @method \string remindActualAppId()
     * @method \string requireAppId()
     * @method \Bitrix\Im\Model\EO_Command resetAppId()
     * @method \Bitrix\Im\Model\EO_Command unsetAppId()
     * @method \string fillAppId()
     * @method \string getCommand()
     * @method \Bitrix\Im\Model\EO_Command setCommand(\string|\Bitrix\Main\DB\SqlExpression $command)
     * @method bool hasCommand()
     * @method bool isCommandFilled()
     * @method bool isCommandChanged()
     * @method \string remindActualCommand()
     * @method \string requireCommand()
     * @method \Bitrix\Im\Model\EO_Command resetCommand()
     * @method \Bitrix\Im\Model\EO_Command unsetCommand()
     * @method \string fillCommand()
     * @method \boolean getCommon()
     * @method \Bitrix\Im\Model\EO_Command setCommon(\boolean|\Bitrix\Main\DB\SqlExpression $common)
     * @method bool hasCommon()
     * @method bool isCommonFilled()
     * @method bool isCommonChanged()
     * @method \boolean remindActualCommon()
     * @method \boolean requireCommon()
     * @method \Bitrix\Im\Model\EO_Command resetCommon()
     * @method \Bitrix\Im\Model\EO_Command unsetCommon()
     * @method \boolean fillCommon()
     * @method \boolean getHidden()
     * @method \Bitrix\Im\Model\EO_Command setHidden(\boolean|\Bitrix\Main\DB\SqlExpression $hidden)
     * @method bool hasHidden()
     * @method bool isHiddenFilled()
     * @method bool isHiddenChanged()
     * @method \boolean remindActualHidden()
     * @method \boolean requireHidden()
     * @method \Bitrix\Im\Model\EO_Command resetHidden()
     * @method \Bitrix\Im\Model\EO_Command unsetHidden()
     * @method \boolean fillHidden()
     * @method \boolean getExtranetSupport()
     * @method \Bitrix\Im\Model\EO_Command setExtranetSupport(\boolean|\Bitrix\Main\DB\SqlExpression $extranetSupport)
     * @method bool hasExtranetSupport()
     * @method bool isExtranetSupportFilled()
     * @method bool isExtranetSupportChanged()
     * @method \boolean remindActualExtranetSupport()
     * @method \boolean requireExtranetSupport()
     * @method \Bitrix\Im\Model\EO_Command resetExtranetSupport()
     * @method \Bitrix\Im\Model\EO_Command unsetExtranetSupport()
     * @method \boolean fillExtranetSupport()
     * @method \boolean getSonetSupport()
     * @method \Bitrix\Im\Model\EO_Command setSonetSupport(\boolean|\Bitrix\Main\DB\SqlExpression $sonetSupport)
     * @method bool hasSonetSupport()
     * @method bool isSonetSupportFilled()
     * @method bool isSonetSupportChanged()
     * @method \boolean remindActualSonetSupport()
     * @method \boolean requireSonetSupport()
     * @method \Bitrix\Im\Model\EO_Command resetSonetSupport()
     * @method \Bitrix\Im\Model\EO_Command unsetSonetSupport()
     * @method \boolean fillSonetSupport()
     * @method \string getClass()
     * @method \Bitrix\Im\Model\EO_Command setClass(\string|\Bitrix\Main\DB\SqlExpression $class)
     * @method bool hasClass()
     * @method bool isClassFilled()
     * @method bool isClassChanged()
     * @method \string remindActualClass()
     * @method \string requireClass()
     * @method \Bitrix\Im\Model\EO_Command resetClass()
     * @method \Bitrix\Im\Model\EO_Command unsetClass()
     * @method \string fillClass()
     * @method \string getMethodCommandAdd()
     * @method \Bitrix\Im\Model\EO_Command setMethodCommandAdd(\string|\Bitrix\Main\DB\SqlExpression $methodCommandAdd)
     * @method bool hasMethodCommandAdd()
     * @method bool isMethodCommandAddFilled()
     * @method bool isMethodCommandAddChanged()
     * @method \string remindActualMethodCommandAdd()
     * @method \string requireMethodCommandAdd()
     * @method \Bitrix\Im\Model\EO_Command resetMethodCommandAdd()
     * @method \Bitrix\Im\Model\EO_Command unsetMethodCommandAdd()
     * @method \string fillMethodCommandAdd()
     * @method \string getMethodLangGet()
     * @method \Bitrix\Im\Model\EO_Command setMethodLangGet(\string|\Bitrix\Main\DB\SqlExpression $methodLangGet)
     * @method bool hasMethodLangGet()
     * @method bool isMethodLangGetFilled()
     * @method bool isMethodLangGetChanged()
     * @method \string remindActualMethodLangGet()
     * @method \string requireMethodLangGet()
     * @method \Bitrix\Im\Model\EO_Command resetMethodLangGet()
     * @method \Bitrix\Im\Model\EO_Command unsetMethodLangGet()
     * @method \string fillMethodLangGet()
     * @method \string getModuleId()
     * @method \Bitrix\Im\Model\EO_Command setModuleId(\string|\Bitrix\Main\DB\SqlExpression $moduleId)
     * @method bool hasModuleId()
     * @method bool isModuleIdFilled()
     * @method bool isModuleIdChanged()
     * @method \string remindActualModuleId()
     * @method \string requireModuleId()
     * @method \Bitrix\Im\Model\EO_Command resetModuleId()
     * @method \Bitrix\Im\Model\EO_Command unsetModuleId()
     * @method \string fillModuleId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_Command set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_Command reset($fieldName)
     * @method \Bitrix\Im\Model\EO_Command unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_Command wakeUp($data)
     */
    class EO_Command
    {
        /* @var \Bitrix\Im\Model\CommandTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\CommandTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Command_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getBotIdList()
     * @method \int[] fillBotId()
     * @method \string[] getAppIdList()
     * @method \string[] fillAppId()
     * @method \string[] getCommandList()
     * @method \string[] fillCommand()
     * @method \boolean[] getCommonList()
     * @method \boolean[] fillCommon()
     * @method \boolean[] getHiddenList()
     * @method \boolean[] fillHidden()
     * @method \boolean[] getExtranetSupportList()
     * @method \boolean[] fillExtranetSupport()
     * @method \boolean[] getSonetSupportList()
     * @method \boolean[] fillSonetSupport()
     * @method \string[] getClassList()
     * @method \string[] fillClass()
     * @method \string[] getMethodCommandAddList()
     * @method \string[] fillMethodCommandAdd()
     * @method \string[] getMethodLangGetList()
     * @method \string[] fillMethodLangGet()
     * @method \string[] getModuleIdList()
     * @method \string[] fillModuleId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_Command $object)
     * @method bool has(\Bitrix\Im\Model\EO_Command $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Command getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Command[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_Command $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_Command_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_Command current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Command_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\CommandTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\CommandTable';
    }
    /**
     * @method static EO_Command_Query query()
     * @method static EO_Command_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Command_Result getById($id)
     * @method static EO_Command_Result getList(array $parameters = array())
     * @method static EO_Command_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_Command createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_Command_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_Command wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_Command_Collection wakeUpCollection($rows)
     */
    class CommandTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Command_Result exec()
     * @method \Bitrix\Im\Model\EO_Command fetchObject()
     * @method \Bitrix\Im\Model\EO_Command_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Command_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Command fetchObject()
     * @method \Bitrix\Im\Model\EO_Command_Collection fetchCollection()
     */
    class EO_Command_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Command createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_Command_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_Command wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_Command_Collection wakeUpCollection($rows)
     */
    class EO_Command_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_CommandLang
     * @see \Bitrix\Im\Model\CommandLangTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Im\Model\EO_CommandLang setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getCommandId()
     * @method \Bitrix\Im\Model\EO_CommandLang setCommandId(\int|\Bitrix\Main\DB\SqlExpression $commandId)
     * @method bool hasCommandId()
     * @method bool isCommandIdFilled()
     * @method bool isCommandIdChanged()
     * @method \int remindActualCommandId()
     * @method \int requireCommandId()
     * @method \Bitrix\Im\Model\EO_CommandLang resetCommandId()
     * @method \Bitrix\Im\Model\EO_CommandLang unsetCommandId()
     * @method \int fillCommandId()
     * @method \string getLanguageId()
     * @method \Bitrix\Im\Model\EO_CommandLang setLanguageId(\string|\Bitrix\Main\DB\SqlExpression $languageId)
     * @method bool hasLanguageId()
     * @method bool isLanguageIdFilled()
     * @method bool isLanguageIdChanged()
     * @method \string remindActualLanguageId()
     * @method \string requireLanguageId()
     * @method \Bitrix\Im\Model\EO_CommandLang resetLanguageId()
     * @method \Bitrix\Im\Model\EO_CommandLang unsetLanguageId()
     * @method \string fillLanguageId()
     * @method \string getTitle()
     * @method \Bitrix\Im\Model\EO_CommandLang setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Im\Model\EO_CommandLang resetTitle()
     * @method \Bitrix\Im\Model\EO_CommandLang unsetTitle()
     * @method \string fillTitle()
     * @method \string getParams()
     * @method \Bitrix\Im\Model\EO_CommandLang setParams(\string|\Bitrix\Main\DB\SqlExpression $params)
     * @method bool hasParams()
     * @method bool isParamsFilled()
     * @method bool isParamsChanged()
     * @method \string remindActualParams()
     * @method \string requireParams()
     * @method \Bitrix\Im\Model\EO_CommandLang resetParams()
     * @method \Bitrix\Im\Model\EO_CommandLang unsetParams()
     * @method \string fillParams()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_CommandLang set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_CommandLang reset($fieldName)
     * @method \Bitrix\Im\Model\EO_CommandLang unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_CommandLang wakeUp($data)
     */
    class EO_CommandLang
    {
        /* @var \Bitrix\Im\Model\CommandLangTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\CommandLangTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_CommandLang_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getCommandIdList()
     * @method \int[] fillCommandId()
     * @method \string[] getLanguageIdList()
     * @method \string[] fillLanguageId()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getParamsList()
     * @method \string[] fillParams()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_CommandLang $object)
     * @method bool has(\Bitrix\Im\Model\EO_CommandLang $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_CommandLang getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_CommandLang[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_CommandLang $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_CommandLang_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_CommandLang current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_CommandLang_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\CommandLangTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\CommandLangTable';
    }
    /**
     * @method static EO_CommandLang_Query query()
     * @method static EO_CommandLang_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_CommandLang_Result getById($id)
     * @method static EO_CommandLang_Result getList(array $parameters = array())
     * @method static EO_CommandLang_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_CommandLang createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_CommandLang_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_CommandLang wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_CommandLang_Collection wakeUpCollection($rows)
     */
    class CommandLangTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_CommandLang_Result exec()
     * @method \Bitrix\Im\Model\EO_CommandLang fetchObject()
     * @method \Bitrix\Im\Model\EO_CommandLang_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_CommandLang_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_CommandLang fetchObject()
     * @method \Bitrix\Im\Model\EO_CommandLang_Collection fetchCollection()
     */
    class EO_CommandLang_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_CommandLang createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_CommandLang_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_CommandLang wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_CommandLang_Collection wakeUpCollection($rows)
     */
    class EO_CommandLang_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_ExternalAvatar
     * @see \Bitrix\Im\Model\ExternalAvatarTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Im\Model\EO_ExternalAvatar setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getLinkMd5()
     * @method \Bitrix\Im\Model\EO_ExternalAvatar setLinkMd5(\string|\Bitrix\Main\DB\SqlExpression $linkMd5)
     * @method bool hasLinkMd5()
     * @method bool isLinkMd5Filled()
     * @method bool isLinkMd5Changed()
     * @method \string remindActualLinkMd5()
     * @method \string requireLinkMd5()
     * @method \Bitrix\Im\Model\EO_ExternalAvatar resetLinkMd5()
     * @method \Bitrix\Im\Model\EO_ExternalAvatar unsetLinkMd5()
     * @method \string fillLinkMd5()
     * @method \int getAvatarId()
     * @method \Bitrix\Im\Model\EO_ExternalAvatar setAvatarId(\int|\Bitrix\Main\DB\SqlExpression $avatarId)
     * @method bool hasAvatarId()
     * @method bool isAvatarIdFilled()
     * @method bool isAvatarIdChanged()
     * @method \int remindActualAvatarId()
     * @method \int requireAvatarId()
     * @method \Bitrix\Im\Model\EO_ExternalAvatar resetAvatarId()
     * @method \Bitrix\Im\Model\EO_ExternalAvatar unsetAvatarId()
     * @method \int fillAvatarId()
     * @method \Bitrix\Main\EO_File getFile()
     * @method \Bitrix\Main\EO_File remindActualFile()
     * @method \Bitrix\Main\EO_File requireFile()
     * @method \Bitrix\Im\Model\EO_ExternalAvatar setFile(\Bitrix\Main\EO_File $object)
     * @method \Bitrix\Im\Model\EO_ExternalAvatar resetFile()
     * @method \Bitrix\Im\Model\EO_ExternalAvatar unsetFile()
     * @method bool hasFile()
     * @method bool isFileFilled()
     * @method bool isFileChanged()
     * @method \Bitrix\Main\EO_File fillFile()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_ExternalAvatar set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_ExternalAvatar reset($fieldName)
     * @method \Bitrix\Im\Model\EO_ExternalAvatar unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_ExternalAvatar wakeUp($data)
     */
    class EO_ExternalAvatar
    {
        /* @var \Bitrix\Im\Model\ExternalAvatarTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\ExternalAvatarTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_ExternalAvatar_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getLinkMd5List()
     * @method \string[] fillLinkMd5()
     * @method \int[] getAvatarIdList()
     * @method \int[] fillAvatarId()
     * @method \Bitrix\Main\EO_File[] getFileList()
     * @method \Bitrix\Im\Model\EO_ExternalAvatar_Collection getFileCollection()
     * @method \Bitrix\Main\EO_File_Collection fillFile()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_ExternalAvatar $object)
     * @method bool has(\Bitrix\Im\Model\EO_ExternalAvatar $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_ExternalAvatar getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_ExternalAvatar[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_ExternalAvatar $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_ExternalAvatar_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_ExternalAvatar current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_ExternalAvatar_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\ExternalAvatarTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\ExternalAvatarTable';
    }
    /**
     * @method static EO_ExternalAvatar_Query query()
     * @method static EO_ExternalAvatar_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_ExternalAvatar_Result getById($id)
     * @method static EO_ExternalAvatar_Result getList(array $parameters = array())
     * @method static EO_ExternalAvatar_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_ExternalAvatar createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_ExternalAvatar_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_ExternalAvatar wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_ExternalAvatar_Collection wakeUpCollection($rows)
     */
    class ExternalAvatarTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_ExternalAvatar_Result exec()
     * @method \Bitrix\Im\Model\EO_ExternalAvatar fetchObject()
     * @method \Bitrix\Im\Model\EO_ExternalAvatar_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_ExternalAvatar_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_ExternalAvatar fetchObject()
     * @method \Bitrix\Im\Model\EO_ExternalAvatar_Collection fetchCollection()
     */
    class EO_ExternalAvatar_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_ExternalAvatar createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_ExternalAvatar_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_ExternalAvatar wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_ExternalAvatar_Collection wakeUpCollection($rows)
     */
    class EO_ExternalAvatar_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_LastSearch
     * @see \Bitrix\Im\Model\LastSearchTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Im\Model\EO_LastSearch setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Im\Model\EO_LastSearch setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Im\Model\EO_LastSearch resetUserId()
     * @method \Bitrix\Im\Model\EO_LastSearch unsetUserId()
     * @method \int fillUserId()
     * @method \string getDialogId()
     * @method \Bitrix\Im\Model\EO_LastSearch setDialogId(\string|\Bitrix\Main\DB\SqlExpression $dialogId)
     * @method bool hasDialogId()
     * @method bool isDialogIdFilled()
     * @method bool isDialogIdChanged()
     * @method \string remindActualDialogId()
     * @method \string requireDialogId()
     * @method \Bitrix\Im\Model\EO_LastSearch resetDialogId()
     * @method \Bitrix\Im\Model\EO_LastSearch unsetDialogId()
     * @method \string fillDialogId()
     * @method \int getItemRid()
     * @method \Bitrix\Im\Model\EO_LastSearch setItemRid(\int|\Bitrix\Main\DB\SqlExpression $itemRid)
     * @method bool hasItemRid()
     * @method bool isItemRidFilled()
     * @method bool isItemRidChanged()
     * @method \int remindActualItemRid()
     * @method \int requireItemRid()
     * @method \Bitrix\Im\Model\EO_LastSearch resetItemRid()
     * @method \Bitrix\Im\Model\EO_LastSearch unsetItemRid()
     * @method \int fillItemRid()
     * @method \int getItemCid()
     * @method \Bitrix\Im\Model\EO_LastSearch setItemCid(\int|\Bitrix\Main\DB\SqlExpression $itemCid)
     * @method bool hasItemCid()
     * @method bool isItemCidFilled()
     * @method bool isItemCidChanged()
     * @method \int remindActualItemCid()
     * @method \int requireItemCid()
     * @method \Bitrix\Im\Model\EO_LastSearch resetItemCid()
     * @method \Bitrix\Im\Model\EO_LastSearch unsetItemCid()
     * @method \int fillItemCid()
     * @method \Bitrix\Im\Model\EO_Relation getRelation()
     * @method \Bitrix\Im\Model\EO_Relation remindActualRelation()
     * @method \Bitrix\Im\Model\EO_Relation requireRelation()
     * @method \Bitrix\Im\Model\EO_LastSearch setRelation(\Bitrix\Im\Model\EO_Relation $object)
     * @method \Bitrix\Im\Model\EO_LastSearch resetRelation()
     * @method \Bitrix\Im\Model\EO_LastSearch unsetRelation()
     * @method bool hasRelation()
     * @method bool isRelationFilled()
     * @method bool isRelationChanged()
     * @method \Bitrix\Im\Model\EO_Relation fillRelation()
     * @method \Bitrix\Im\Model\EO_Chat getChat()
     * @method \Bitrix\Im\Model\EO_Chat remindActualChat()
     * @method \Bitrix\Im\Model\EO_Chat requireChat()
     * @method \Bitrix\Im\Model\EO_LastSearch setChat(\Bitrix\Im\Model\EO_Chat $object)
     * @method \Bitrix\Im\Model\EO_LastSearch resetChat()
     * @method \Bitrix\Im\Model\EO_LastSearch unsetChat()
     * @method bool hasChat()
     * @method bool isChatFilled()
     * @method bool isChatChanged()
     * @method \Bitrix\Im\Model\EO_Chat fillChat()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_LastSearch set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_LastSearch reset($fieldName)
     * @method \Bitrix\Im\Model\EO_LastSearch unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_LastSearch wakeUp($data)
     */
    class EO_LastSearch
    {
        /* @var \Bitrix\Im\Model\LastSearchTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\LastSearchTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_LastSearch_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \string[] getDialogIdList()
     * @method \string[] fillDialogId()
     * @method \int[] getItemRidList()
     * @method \int[] fillItemRid()
     * @method \int[] getItemCidList()
     * @method \int[] fillItemCid()
     * @method \Bitrix\Im\Model\EO_Relation[] getRelationList()
     * @method \Bitrix\Im\Model\EO_LastSearch_Collection getRelationCollection()
     * @method \Bitrix\Im\Model\EO_Relation_Collection fillRelation()
     * @method \Bitrix\Im\Model\EO_Chat[] getChatList()
     * @method \Bitrix\Im\Model\EO_LastSearch_Collection getChatCollection()
     * @method \Bitrix\Im\Model\EO_Chat_Collection fillChat()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_LastSearch $object)
     * @method bool has(\Bitrix\Im\Model\EO_LastSearch $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_LastSearch getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_LastSearch[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_LastSearch $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_LastSearch_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_LastSearch current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_LastSearch_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\LastSearchTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\LastSearchTable';
    }
    /**
     * @method static EO_LastSearch_Query query()
     * @method static EO_LastSearch_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_LastSearch_Result getById($id)
     * @method static EO_LastSearch_Result getList(array $parameters = array())
     * @method static EO_LastSearch_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_LastSearch createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_LastSearch_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_LastSearch wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_LastSearch_Collection wakeUpCollection($rows)
     */
    class LastSearchTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_LastSearch_Result exec()
     * @method \Bitrix\Im\Model\EO_LastSearch fetchObject()
     * @method \Bitrix\Im\Model\EO_LastSearch_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_LastSearch_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_LastSearch fetchObject()
     * @method \Bitrix\Im\Model\EO_LastSearch_Collection fetchCollection()
     */
    class EO_LastSearch_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_LastSearch createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_LastSearch_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_LastSearch wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_LastSearch_Collection wakeUpCollection($rows)
     */
    class EO_LastSearch_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Message
     * @see \Bitrix\Im\Model\MessageTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Im\Model\EO_Message setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getChatId()
     * @method \Bitrix\Im\Model\EO_Message setChatId(\int|\Bitrix\Main\DB\SqlExpression $chatId)
     * @method bool hasChatId()
     * @method bool isChatIdFilled()
     * @method bool isChatIdChanged()
     * @method \int remindActualChatId()
     * @method \int requireChatId()
     * @method \Bitrix\Im\Model\EO_Message resetChatId()
     * @method \Bitrix\Im\Model\EO_Message unsetChatId()
     * @method \int fillChatId()
     * @method \int getAuthorId()
     * @method \Bitrix\Im\Model\EO_Message setAuthorId(\int|\Bitrix\Main\DB\SqlExpression $authorId)
     * @method bool hasAuthorId()
     * @method bool isAuthorIdFilled()
     * @method bool isAuthorIdChanged()
     * @method \int remindActualAuthorId()
     * @method \int requireAuthorId()
     * @method \Bitrix\Im\Model\EO_Message resetAuthorId()
     * @method \Bitrix\Im\Model\EO_Message unsetAuthorId()
     * @method \int fillAuthorId()
     * @method \string getMessage()
     * @method \Bitrix\Im\Model\EO_Message setMessage(\string|\Bitrix\Main\DB\SqlExpression $message)
     * @method bool hasMessage()
     * @method bool isMessageFilled()
     * @method bool isMessageChanged()
     * @method \string remindActualMessage()
     * @method \string requireMessage()
     * @method \Bitrix\Im\Model\EO_Message resetMessage()
     * @method \Bitrix\Im\Model\EO_Message unsetMessage()
     * @method \string fillMessage()
     * @method \string getMessageOut()
     * @method \Bitrix\Im\Model\EO_Message setMessageOut(\string|\Bitrix\Main\DB\SqlExpression $messageOut)
     * @method bool hasMessageOut()
     * @method bool isMessageOutFilled()
     * @method bool isMessageOutChanged()
     * @method \string remindActualMessageOut()
     * @method \string requireMessageOut()
     * @method \Bitrix\Im\Model\EO_Message resetMessageOut()
     * @method \Bitrix\Im\Model\EO_Message unsetMessageOut()
     * @method \string fillMessageOut()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Im\Model\EO_Message setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Im\Model\EO_Message resetDateCreate()
     * @method \Bitrix\Im\Model\EO_Message unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \string getEmailTemplate()
     * @method \Bitrix\Im\Model\EO_Message setEmailTemplate(\string|\Bitrix\Main\DB\SqlExpression $emailTemplate)
     * @method bool hasEmailTemplate()
     * @method bool isEmailTemplateFilled()
     * @method bool isEmailTemplateChanged()
     * @method \string remindActualEmailTemplate()
     * @method \string requireEmailTemplate()
     * @method \Bitrix\Im\Model\EO_Message resetEmailTemplate()
     * @method \Bitrix\Im\Model\EO_Message unsetEmailTemplate()
     * @method \string fillEmailTemplate()
     * @method \int getNotifyType()
     * @method \Bitrix\Im\Model\EO_Message setNotifyType(\int|\Bitrix\Main\DB\SqlExpression $notifyType)
     * @method bool hasNotifyType()
     * @method bool isNotifyTypeFilled()
     * @method bool isNotifyTypeChanged()
     * @method \int remindActualNotifyType()
     * @method \int requireNotifyType()
     * @method \Bitrix\Im\Model\EO_Message resetNotifyType()
     * @method \Bitrix\Im\Model\EO_Message unsetNotifyType()
     * @method \int fillNotifyType()
     * @method \string getNotifyModule()
     * @method \Bitrix\Im\Model\EO_Message setNotifyModule(\string|\Bitrix\Main\DB\SqlExpression $notifyModule)
     * @method bool hasNotifyModule()
     * @method bool isNotifyModuleFilled()
     * @method bool isNotifyModuleChanged()
     * @method \string remindActualNotifyModule()
     * @method \string requireNotifyModule()
     * @method \Bitrix\Im\Model\EO_Message resetNotifyModule()
     * @method \Bitrix\Im\Model\EO_Message unsetNotifyModule()
     * @method \string fillNotifyModule()
     * @method \string getNotifyEvent()
     * @method \Bitrix\Im\Model\EO_Message setNotifyEvent(\string|\Bitrix\Main\DB\SqlExpression $notifyEvent)
     * @method bool hasNotifyEvent()
     * @method bool isNotifyEventFilled()
     * @method bool isNotifyEventChanged()
     * @method \string remindActualNotifyEvent()
     * @method \string requireNotifyEvent()
     * @method \Bitrix\Im\Model\EO_Message resetNotifyEvent()
     * @method \Bitrix\Im\Model\EO_Message unsetNotifyEvent()
     * @method \string fillNotifyEvent()
     * @method \string getNotifyTag()
     * @method \Bitrix\Im\Model\EO_Message setNotifyTag(\string|\Bitrix\Main\DB\SqlExpression $notifyTag)
     * @method bool hasNotifyTag()
     * @method bool isNotifyTagFilled()
     * @method bool isNotifyTagChanged()
     * @method \string remindActualNotifyTag()
     * @method \string requireNotifyTag()
     * @method \Bitrix\Im\Model\EO_Message resetNotifyTag()
     * @method \Bitrix\Im\Model\EO_Message unsetNotifyTag()
     * @method \string fillNotifyTag()
     * @method \string getNotifySubTag()
     * @method \Bitrix\Im\Model\EO_Message setNotifySubTag(\string|\Bitrix\Main\DB\SqlExpression $notifySubTag)
     * @method bool hasNotifySubTag()
     * @method bool isNotifySubTagFilled()
     * @method bool isNotifySubTagChanged()
     * @method \string remindActualNotifySubTag()
     * @method \string requireNotifySubTag()
     * @method \Bitrix\Im\Model\EO_Message resetNotifySubTag()
     * @method \Bitrix\Im\Model\EO_Message unsetNotifySubTag()
     * @method \string fillNotifySubTag()
     * @method \string getNotifyTitle()
     * @method \Bitrix\Im\Model\EO_Message setNotifyTitle(\string|\Bitrix\Main\DB\SqlExpression $notifyTitle)
     * @method bool hasNotifyTitle()
     * @method bool isNotifyTitleFilled()
     * @method bool isNotifyTitleChanged()
     * @method \string remindActualNotifyTitle()
     * @method \string requireNotifyTitle()
     * @method \Bitrix\Im\Model\EO_Message resetNotifyTitle()
     * @method \Bitrix\Im\Model\EO_Message unsetNotifyTitle()
     * @method \string fillNotifyTitle()
     * @method \string getNotifyButtons()
     * @method \Bitrix\Im\Model\EO_Message setNotifyButtons(\string|\Bitrix\Main\DB\SqlExpression $notifyButtons)
     * @method bool hasNotifyButtons()
     * @method bool isNotifyButtonsFilled()
     * @method bool isNotifyButtonsChanged()
     * @method \string remindActualNotifyButtons()
     * @method \string requireNotifyButtons()
     * @method \Bitrix\Im\Model\EO_Message resetNotifyButtons()
     * @method \Bitrix\Im\Model\EO_Message unsetNotifyButtons()
     * @method \string fillNotifyButtons()
     * @method \boolean getNotifyRead()
     * @method \Bitrix\Im\Model\EO_Message setNotifyRead(\boolean|\Bitrix\Main\DB\SqlExpression $notifyRead)
     * @method bool hasNotifyRead()
     * @method bool isNotifyReadFilled()
     * @method bool isNotifyReadChanged()
     * @method \boolean remindActualNotifyRead()
     * @method \boolean requireNotifyRead()
     * @method \Bitrix\Im\Model\EO_Message resetNotifyRead()
     * @method \Bitrix\Im\Model\EO_Message unsetNotifyRead()
     * @method \boolean fillNotifyRead()
     * @method \int getImportId()
     * @method \Bitrix\Im\Model\EO_Message setImportId(\int|\Bitrix\Main\DB\SqlExpression $importId)
     * @method bool hasImportId()
     * @method bool isImportIdFilled()
     * @method bool isImportIdChanged()
     * @method \int remindActualImportId()
     * @method \int requireImportId()
     * @method \Bitrix\Im\Model\EO_Message resetImportId()
     * @method \Bitrix\Im\Model\EO_Message unsetImportId()
     * @method \int fillImportId()
     * @method \Bitrix\Im\Model\EO_Chat getChat()
     * @method \Bitrix\Im\Model\EO_Chat remindActualChat()
     * @method \Bitrix\Im\Model\EO_Chat requireChat()
     * @method \Bitrix\Im\Model\EO_Message setChat(\Bitrix\Im\Model\EO_Chat $object)
     * @method \Bitrix\Im\Model\EO_Message resetChat()
     * @method \Bitrix\Im\Model\EO_Message unsetChat()
     * @method bool hasChat()
     * @method bool isChatFilled()
     * @method bool isChatChanged()
     * @method \Bitrix\Im\Model\EO_Chat fillChat()
     * @method \Bitrix\Main\EO_User getAuthor()
     * @method \Bitrix\Main\EO_User remindActualAuthor()
     * @method \Bitrix\Main\EO_User requireAuthor()
     * @method \Bitrix\Im\Model\EO_Message setAuthor(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Im\Model\EO_Message resetAuthor()
     * @method \Bitrix\Im\Model\EO_Message unsetAuthor()
     * @method bool hasAuthor()
     * @method bool isAuthorFilled()
     * @method bool isAuthorChanged()
     * @method \Bitrix\Main\EO_User fillAuthor()
     * @method \Bitrix\Im\Model\EO_Relation getRelation()
     * @method \Bitrix\Im\Model\EO_Relation remindActualRelation()
     * @method \Bitrix\Im\Model\EO_Relation requireRelation()
     * @method \Bitrix\Im\Model\EO_Message setRelation(\Bitrix\Im\Model\EO_Relation $object)
     * @method \Bitrix\Im\Model\EO_Message resetRelation()
     * @method \Bitrix\Im\Model\EO_Message unsetRelation()
     * @method bool hasRelation()
     * @method bool isRelationFilled()
     * @method bool isRelationChanged()
     * @method \Bitrix\Im\Model\EO_Relation fillRelation()
     * @method \Bitrix\Im\Model\EO_MessageIndex getIndex()
     * @method \Bitrix\Im\Model\EO_MessageIndex remindActualIndex()
     * @method \Bitrix\Im\Model\EO_MessageIndex requireIndex()
     * @method \Bitrix\Im\Model\EO_Message setIndex(\Bitrix\Im\Model\EO_MessageIndex $object)
     * @method \Bitrix\Im\Model\EO_Message resetIndex()
     * @method \Bitrix\Im\Model\EO_Message unsetIndex()
     * @method bool hasIndex()
     * @method bool isIndexFilled()
     * @method bool isIndexChanged()
     * @method \Bitrix\Im\Model\EO_MessageIndex fillIndex()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_Message set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_Message reset($fieldName)
     * @method \Bitrix\Im\Model\EO_Message unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_Message wakeUp($data)
     */
    class EO_Message
    {
        /* @var \Bitrix\Im\Model\MessageTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\MessageTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Message_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getChatIdList()
     * @method \int[] fillChatId()
     * @method \int[] getAuthorIdList()
     * @method \int[] fillAuthorId()
     * @method \string[] getMessageList()
     * @method \string[] fillMessage()
     * @method \string[] getMessageOutList()
     * @method \string[] fillMessageOut()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \string[] getEmailTemplateList()
     * @method \string[] fillEmailTemplate()
     * @method \int[] getNotifyTypeList()
     * @method \int[] fillNotifyType()
     * @method \string[] getNotifyModuleList()
     * @method \string[] fillNotifyModule()
     * @method \string[] getNotifyEventList()
     * @method \string[] fillNotifyEvent()
     * @method \string[] getNotifyTagList()
     * @method \string[] fillNotifyTag()
     * @method \string[] getNotifySubTagList()
     * @method \string[] fillNotifySubTag()
     * @method \string[] getNotifyTitleList()
     * @method \string[] fillNotifyTitle()
     * @method \string[] getNotifyButtonsList()
     * @method \string[] fillNotifyButtons()
     * @method \boolean[] getNotifyReadList()
     * @method \boolean[] fillNotifyRead()
     * @method \int[] getImportIdList()
     * @method \int[] fillImportId()
     * @method \Bitrix\Im\Model\EO_Chat[] getChatList()
     * @method \Bitrix\Im\Model\EO_Message_Collection getChatCollection()
     * @method \Bitrix\Im\Model\EO_Chat_Collection fillChat()
     * @method \Bitrix\Main\EO_User[] getAuthorList()
     * @method \Bitrix\Im\Model\EO_Message_Collection getAuthorCollection()
     * @method \Bitrix\Main\EO_User_Collection fillAuthor()
     * @method \Bitrix\Im\Model\EO_Relation[] getRelationList()
     * @method \Bitrix\Im\Model\EO_Message_Collection getRelationCollection()
     * @method \Bitrix\Im\Model\EO_Relation_Collection fillRelation()
     * @method \Bitrix\Im\Model\EO_MessageIndex[] getIndexList()
     * @method \Bitrix\Im\Model\EO_Message_Collection getIndexCollection()
     * @method \Bitrix\Im\Model\EO_MessageIndex_Collection fillIndex()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_Message $object)
     * @method bool has(\Bitrix\Im\Model\EO_Message $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Message getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Message[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_Message $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_Message_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_Message current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Message_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\MessageTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\MessageTable';
    }
    /**
     * @method static EO_Message_Query query()
     * @method static EO_Message_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Message_Result getById($id)
     * @method static EO_Message_Result getList(array $parameters = array())
     * @method static EO_Message_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_Message createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_Message_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_Message wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_Message_Collection wakeUpCollection($rows)
     */
    class MessageTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Message_Result exec()
     * @method \Bitrix\Im\Model\EO_Message fetchObject()
     * @method \Bitrix\Im\Model\EO_Message_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Message_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Message fetchObject()
     * @method \Bitrix\Im\Model\EO_Message_Collection fetchCollection()
     */
    class EO_Message_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Message createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_Message_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_Message wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_Message_Collection wakeUpCollection($rows)
     */
    class EO_Message_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_MessageIndex
     * @see \Bitrix\Im\Model\MessageIndexTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getMessageId()
     * @method \Bitrix\Im\Model\EO_MessageIndex setMessageId(\int|\Bitrix\Main\DB\SqlExpression $messageId)
     * @method bool hasMessageId()
     * @method bool isMessageIdFilled()
     * @method bool isMessageIdChanged()
     * @method \string getSearchContent()
     * @method \Bitrix\Im\Model\EO_MessageIndex setSearchContent(\string|\Bitrix\Main\DB\SqlExpression $searchContent)
     * @method bool hasSearchContent()
     * @method bool isSearchContentFilled()
     * @method bool isSearchContentChanged()
     * @method \string remindActualSearchContent()
     * @method \string requireSearchContent()
     * @method \Bitrix\Im\Model\EO_MessageIndex resetSearchContent()
     * @method \Bitrix\Im\Model\EO_MessageIndex unsetSearchContent()
     * @method \string fillSearchContent()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_MessageIndex set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_MessageIndex reset($fieldName)
     * @method \Bitrix\Im\Model\EO_MessageIndex unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_MessageIndex wakeUp($data)
     */
    class EO_MessageIndex
    {
        /* @var \Bitrix\Im\Model\MessageIndexTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\MessageIndexTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_MessageIndex_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getMessageIdList()
     * @method \string[] getSearchContentList()
     * @method \string[] fillSearchContent()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_MessageIndex $object)
     * @method bool has(\Bitrix\Im\Model\EO_MessageIndex $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_MessageIndex getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_MessageIndex[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_MessageIndex $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_MessageIndex_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_MessageIndex current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_MessageIndex_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\MessageIndexTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\MessageIndexTable';
    }
    /**
     * @method static EO_MessageIndex_Query query()
     * @method static EO_MessageIndex_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_MessageIndex_Result getById($id)
     * @method static EO_MessageIndex_Result getList(array $parameters = array())
     * @method static EO_MessageIndex_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_MessageIndex createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_MessageIndex_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_MessageIndex wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_MessageIndex_Collection wakeUpCollection($rows)
     */
    class MessageIndexTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_MessageIndex_Result exec()
     * @method \Bitrix\Im\Model\EO_MessageIndex fetchObject()
     * @method \Bitrix\Im\Model\EO_MessageIndex_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_MessageIndex_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_MessageIndex fetchObject()
     * @method \Bitrix\Im\Model\EO_MessageIndex_Collection fetchCollection()
     */
    class EO_MessageIndex_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_MessageIndex createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_MessageIndex_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_MessageIndex wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_MessageIndex_Collection wakeUpCollection($rows)
     */
    class EO_MessageIndex_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_MessageParam
     * @see \Bitrix\Im\Model\MessageParamTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Im\Model\EO_MessageParam setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getMessageId()
     * @method \Bitrix\Im\Model\EO_MessageParam setMessageId(\int|\Bitrix\Main\DB\SqlExpression $messageId)
     * @method bool hasMessageId()
     * @method bool isMessageIdFilled()
     * @method bool isMessageIdChanged()
     * @method \int remindActualMessageId()
     * @method \int requireMessageId()
     * @method \Bitrix\Im\Model\EO_MessageParam resetMessageId()
     * @method \Bitrix\Im\Model\EO_MessageParam unsetMessageId()
     * @method \int fillMessageId()
     * @method \string getParamName()
     * @method \Bitrix\Im\Model\EO_MessageParam setParamName(\string|\Bitrix\Main\DB\SqlExpression $paramName)
     * @method bool hasParamName()
     * @method bool isParamNameFilled()
     * @method bool isParamNameChanged()
     * @method \string remindActualParamName()
     * @method \string requireParamName()
     * @method \Bitrix\Im\Model\EO_MessageParam resetParamName()
     * @method \Bitrix\Im\Model\EO_MessageParam unsetParamName()
     * @method \string fillParamName()
     * @method \string getParamValue()
     * @method \Bitrix\Im\Model\EO_MessageParam setParamValue(\string|\Bitrix\Main\DB\SqlExpression $paramValue)
     * @method bool hasParamValue()
     * @method bool isParamValueFilled()
     * @method bool isParamValueChanged()
     * @method \string remindActualParamValue()
     * @method \string requireParamValue()
     * @method \Bitrix\Im\Model\EO_MessageParam resetParamValue()
     * @method \Bitrix\Im\Model\EO_MessageParam unsetParamValue()
     * @method \string fillParamValue()
     * @method \string getParamJson()
     * @method \Bitrix\Im\Model\EO_MessageParam setParamJson(\string|\Bitrix\Main\DB\SqlExpression $paramJson)
     * @method bool hasParamJson()
     * @method bool isParamJsonFilled()
     * @method bool isParamJsonChanged()
     * @method \string remindActualParamJson()
     * @method \string requireParamJson()
     * @method \Bitrix\Im\Model\EO_MessageParam resetParamJson()
     * @method \Bitrix\Im\Model\EO_MessageParam unsetParamJson()
     * @method \string fillParamJson()
     * @method \Bitrix\Im\Model\EO_Message getMessage()
     * @method \Bitrix\Im\Model\EO_Message remindActualMessage()
     * @method \Bitrix\Im\Model\EO_Message requireMessage()
     * @method \Bitrix\Im\Model\EO_MessageParam setMessage(\Bitrix\Im\Model\EO_Message $object)
     * @method \Bitrix\Im\Model\EO_MessageParam resetMessage()
     * @method \Bitrix\Im\Model\EO_MessageParam unsetMessage()
     * @method bool hasMessage()
     * @method bool isMessageFilled()
     * @method bool isMessageChanged()
     * @method \Bitrix\Im\Model\EO_Message fillMessage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_MessageParam set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_MessageParam reset($fieldName)
     * @method \Bitrix\Im\Model\EO_MessageParam unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_MessageParam wakeUp($data)
     */
    class EO_MessageParam
    {
        /* @var \Bitrix\Im\Model\MessageParamTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\MessageParamTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_MessageParam_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getMessageIdList()
     * @method \int[] fillMessageId()
     * @method \string[] getParamNameList()
     * @method \string[] fillParamName()
     * @method \string[] getParamValueList()
     * @method \string[] fillParamValue()
     * @method \string[] getParamJsonList()
     * @method \string[] fillParamJson()
     * @method \Bitrix\Im\Model\EO_Message[] getMessageList()
     * @method \Bitrix\Im\Model\EO_MessageParam_Collection getMessageCollection()
     * @method \Bitrix\Im\Model\EO_Message_Collection fillMessage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_MessageParam $object)
     * @method bool has(\Bitrix\Im\Model\EO_MessageParam $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_MessageParam getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_MessageParam[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_MessageParam $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_MessageParam_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_MessageParam current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_MessageParam_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\MessageParamTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\MessageParamTable';
    }
    /**
     * @method static EO_MessageParam_Query query()
     * @method static EO_MessageParam_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_MessageParam_Result getById($id)
     * @method static EO_MessageParam_Result getList(array $parameters = array())
     * @method static EO_MessageParam_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_MessageParam createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_MessageParam_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_MessageParam wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_MessageParam_Collection wakeUpCollection($rows)
     */
    class MessageParamTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_MessageParam_Result exec()
     * @method \Bitrix\Im\Model\EO_MessageParam fetchObject()
     * @method \Bitrix\Im\Model\EO_MessageParam_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_MessageParam_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_MessageParam fetchObject()
     * @method \Bitrix\Im\Model\EO_MessageParam_Collection fetchCollection()
     */
    class EO_MessageParam_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_MessageParam createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_MessageParam_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_MessageParam wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_MessageParam_Collection wakeUpCollection($rows)
     */
    class EO_MessageParam_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_NoRelationPermissionDisk
     * @see \Bitrix\Im\Model\NoRelationPermissionDiskTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getChatId()
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk setChatId(\int|\Bitrix\Main\DB\SqlExpression $chatId)
     * @method bool hasChatId()
     * @method bool isChatIdFilled()
     * @method bool isChatIdChanged()
     * @method \int remindActualChatId()
     * @method \int requireChatId()
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk resetChatId()
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk unsetChatId()
     * @method \int fillChatId()
     * @method \int getUserId()
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk resetUserId()
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk unsetUserId()
     * @method \int fillUserId()
     * @method \Bitrix\Main\Type\DateTime getActiveTo()
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk setActiveTo(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $activeTo)
     * @method bool hasActiveTo()
     * @method bool isActiveToFilled()
     * @method bool isActiveToChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualActiveTo()
     * @method \Bitrix\Main\Type\DateTime requireActiveTo()
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk resetActiveTo()
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk unsetActiveTo()
     * @method \Bitrix\Main\Type\DateTime fillActiveTo()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk reset($fieldName)
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_NoRelationPermissionDisk wakeUp($data)
     */
    class EO_NoRelationPermissionDisk
    {
        /* @var \Bitrix\Im\Model\NoRelationPermissionDiskTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\NoRelationPermissionDiskTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_NoRelationPermissionDisk_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getChatIdList()
     * @method \int[] fillChatId()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \Bitrix\Main\Type\DateTime[] getActiveToList()
     * @method \Bitrix\Main\Type\DateTime[] fillActiveTo()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_NoRelationPermissionDisk $object)
     * @method bool has(\Bitrix\Im\Model\EO_NoRelationPermissionDisk $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_NoRelationPermissionDisk $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_NoRelationPermissionDisk_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_NoRelationPermissionDisk_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\NoRelationPermissionDiskTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\NoRelationPermissionDiskTable';
    }
    /**
     * @method static EO_NoRelationPermissionDisk_Query query()
     * @method static EO_NoRelationPermissionDisk_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_NoRelationPermissionDisk_Result getById($id)
     * @method static EO_NoRelationPermissionDisk_Result getList(array $parameters = array())
     * @method static EO_NoRelationPermissionDisk_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_NoRelationPermissionDisk createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_NoRelationPermissionDisk_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_NoRelationPermissionDisk wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_NoRelationPermissionDisk_Collection wakeUpCollection($rows)
     */
    class NoRelationPermissionDiskTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_NoRelationPermissionDisk_Result exec()
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk fetchObject()
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_NoRelationPermissionDisk_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk fetchObject()
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk_Collection fetchCollection()
     */
    class EO_NoRelationPermissionDisk_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_NoRelationPermissionDisk_Collection wakeUpCollection($rows)
     */
    class EO_NoRelationPermissionDisk_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Recent
     * @see \Bitrix\Im\Model\RecentTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Im\Model\EO_Recent setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \string getItemType()
     * @method \Bitrix\Im\Model\EO_Recent setItemType(\string|\Bitrix\Main\DB\SqlExpression $itemType)
     * @method bool hasItemType()
     * @method bool isItemTypeFilled()
     * @method bool isItemTypeChanged()
     * @method \int getItemId()
     * @method \Bitrix\Im\Model\EO_Recent setItemId(\int|\Bitrix\Main\DB\SqlExpression $itemId)
     * @method bool hasItemId()
     * @method bool isItemIdFilled()
     * @method bool isItemIdChanged()
     * @method \int getItemMid()
     * @method \Bitrix\Im\Model\EO_Recent setItemMid(\int|\Bitrix\Main\DB\SqlExpression $itemMid)
     * @method bool hasItemMid()
     * @method bool isItemMidFilled()
     * @method bool isItemMidChanged()
     * @method \int remindActualItemMid()
     * @method \int requireItemMid()
     * @method \Bitrix\Im\Model\EO_Recent resetItemMid()
     * @method \Bitrix\Im\Model\EO_Recent unsetItemMid()
     * @method \int fillItemMid()
     * @method \int getItemCid()
     * @method \Bitrix\Im\Model\EO_Recent setItemCid(\int|\Bitrix\Main\DB\SqlExpression $itemCid)
     * @method bool hasItemCid()
     * @method bool isItemCidFilled()
     * @method bool isItemCidChanged()
     * @method \int remindActualItemCid()
     * @method \int requireItemCid()
     * @method \Bitrix\Im\Model\EO_Recent resetItemCid()
     * @method \Bitrix\Im\Model\EO_Recent unsetItemCid()
     * @method \int fillItemCid()
     * @method \int getItemRid()
     * @method \Bitrix\Im\Model\EO_Recent setItemRid(\int|\Bitrix\Main\DB\SqlExpression $itemRid)
     * @method bool hasItemRid()
     * @method bool isItemRidFilled()
     * @method bool isItemRidChanged()
     * @method \int remindActualItemRid()
     * @method \int requireItemRid()
     * @method \Bitrix\Im\Model\EO_Recent resetItemRid()
     * @method \Bitrix\Im\Model\EO_Recent unsetItemRid()
     * @method \int fillItemRid()
     * @method \int getItemOlid()
     * @method \Bitrix\Im\Model\EO_Recent setItemOlid(\int|\Bitrix\Main\DB\SqlExpression $itemOlid)
     * @method bool hasItemOlid()
     * @method bool isItemOlidFilled()
     * @method bool isItemOlidChanged()
     * @method \int remindActualItemOlid()
     * @method \int requireItemOlid()
     * @method \Bitrix\Im\Model\EO_Recent resetItemOlid()
     * @method \Bitrix\Im\Model\EO_Recent unsetItemOlid()
     * @method \int fillItemOlid()
     * @method \boolean getPinned()
     * @method \Bitrix\Im\Model\EO_Recent setPinned(\boolean|\Bitrix\Main\DB\SqlExpression $pinned)
     * @method bool hasPinned()
     * @method bool isPinnedFilled()
     * @method bool isPinnedChanged()
     * @method \boolean remindActualPinned()
     * @method \boolean requirePinned()
     * @method \Bitrix\Im\Model\EO_Recent resetPinned()
     * @method \Bitrix\Im\Model\EO_Recent unsetPinned()
     * @method \boolean fillPinned()
     * @method \boolean getUnread()
     * @method \Bitrix\Im\Model\EO_Recent setUnread(\boolean|\Bitrix\Main\DB\SqlExpression $unread)
     * @method bool hasUnread()
     * @method bool isUnreadFilled()
     * @method bool isUnreadChanged()
     * @method \boolean remindActualUnread()
     * @method \boolean requireUnread()
     * @method \Bitrix\Im\Model\EO_Recent resetUnread()
     * @method \Bitrix\Im\Model\EO_Recent unsetUnread()
     * @method \boolean fillUnread()
     * @method \Bitrix\Main\Type\DateTime getDateUpdate()
     * @method \Bitrix\Im\Model\EO_Recent setDateUpdate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateUpdate)
     * @method bool hasDateUpdate()
     * @method bool isDateUpdateFilled()
     * @method bool isDateUpdateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateUpdate()
     * @method \Bitrix\Main\Type\DateTime requireDateUpdate()
     * @method \Bitrix\Im\Model\EO_Recent resetDateUpdate()
     * @method \Bitrix\Im\Model\EO_Recent unsetDateUpdate()
     * @method \Bitrix\Main\Type\DateTime fillDateUpdate()
     * @method \Bitrix\Im\Model\EO_Relation getRelation()
     * @method \Bitrix\Im\Model\EO_Relation remindActualRelation()
     * @method \Bitrix\Im\Model\EO_Relation requireRelation()
     * @method \Bitrix\Im\Model\EO_Recent setRelation(\Bitrix\Im\Model\EO_Relation $object)
     * @method \Bitrix\Im\Model\EO_Recent resetRelation()
     * @method \Bitrix\Im\Model\EO_Recent unsetRelation()
     * @method bool hasRelation()
     * @method bool isRelationFilled()
     * @method bool isRelationChanged()
     * @method \Bitrix\Im\Model\EO_Relation fillRelation()
     * @method \Bitrix\Im\Model\EO_Chat getChat()
     * @method \Bitrix\Im\Model\EO_Chat remindActualChat()
     * @method \Bitrix\Im\Model\EO_Chat requireChat()
     * @method \Bitrix\Im\Model\EO_Recent setChat(\Bitrix\Im\Model\EO_Chat $object)
     * @method \Bitrix\Im\Model\EO_Recent resetChat()
     * @method \Bitrix\Im\Model\EO_Recent unsetChat()
     * @method bool hasChat()
     * @method bool isChatFilled()
     * @method bool isChatChanged()
     * @method \Bitrix\Im\Model\EO_Chat fillChat()
     * @method \Bitrix\Im\Model\EO_Message getMessage()
     * @method \Bitrix\Im\Model\EO_Message remindActualMessage()
     * @method \Bitrix\Im\Model\EO_Message requireMessage()
     * @method \Bitrix\Im\Model\EO_Recent setMessage(\Bitrix\Im\Model\EO_Message $object)
     * @method \Bitrix\Im\Model\EO_Recent resetMessage()
     * @method \Bitrix\Im\Model\EO_Recent unsetMessage()
     * @method bool hasMessage()
     * @method bool isMessageFilled()
     * @method bool isMessageChanged()
     * @method \Bitrix\Im\Model\EO_Message fillMessage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_Recent set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_Recent reset($fieldName)
     * @method \Bitrix\Im\Model\EO_Recent unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_Recent wakeUp($data)
     */
    class EO_Recent
    {
        /* @var \Bitrix\Im\Model\RecentTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\RecentTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Recent_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \string[] getItemTypeList()
     * @method \int[] getItemIdList()
     * @method \int[] getItemMidList()
     * @method \int[] fillItemMid()
     * @method \int[] getItemCidList()
     * @method \int[] fillItemCid()
     * @method \int[] getItemRidList()
     * @method \int[] fillItemRid()
     * @method \int[] getItemOlidList()
     * @method \int[] fillItemOlid()
     * @method \boolean[] getPinnedList()
     * @method \boolean[] fillPinned()
     * @method \boolean[] getUnreadList()
     * @method \boolean[] fillUnread()
     * @method \Bitrix\Main\Type\DateTime[] getDateUpdateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateUpdate()
     * @method \Bitrix\Im\Model\EO_Relation[] getRelationList()
     * @method \Bitrix\Im\Model\EO_Recent_Collection getRelationCollection()
     * @method \Bitrix\Im\Model\EO_Relation_Collection fillRelation()
     * @method \Bitrix\Im\Model\EO_Chat[] getChatList()
     * @method \Bitrix\Im\Model\EO_Recent_Collection getChatCollection()
     * @method \Bitrix\Im\Model\EO_Chat_Collection fillChat()
     * @method \Bitrix\Im\Model\EO_Message[] getMessageList()
     * @method \Bitrix\Im\Model\EO_Recent_Collection getMessageCollection()
     * @method \Bitrix\Im\Model\EO_Message_Collection fillMessage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_Recent $object)
     * @method bool has(\Bitrix\Im\Model\EO_Recent $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Recent getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Recent[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_Recent $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_Recent_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_Recent current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Recent_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\RecentTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\RecentTable';
    }
    /**
     * @method static EO_Recent_Query query()
     * @method static EO_Recent_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Recent_Result getById($id)
     * @method static EO_Recent_Result getList(array $parameters = array())
     * @method static EO_Recent_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_Recent createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_Recent_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_Recent wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_Recent_Collection wakeUpCollection($rows)
     */
    class RecentTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Recent_Result exec()
     * @method \Bitrix\Im\Model\EO_Recent fetchObject()
     * @method \Bitrix\Im\Model\EO_Recent_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Recent_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Recent fetchObject()
     * @method \Bitrix\Im\Model\EO_Recent_Collection fetchCollection()
     */
    class EO_Recent_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Recent createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_Recent_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_Recent wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_Recent_Collection wakeUpCollection($rows)
     */
    class EO_Recent_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Relation
     * @see \Bitrix\Im\Model\RelationTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Im\Model\EO_Relation setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getChatId()
     * @method \Bitrix\Im\Model\EO_Relation setChatId(\int|\Bitrix\Main\DB\SqlExpression $chatId)
     * @method bool hasChatId()
     * @method bool isChatIdFilled()
     * @method bool isChatIdChanged()
     * @method \int remindActualChatId()
     * @method \int requireChatId()
     * @method \Bitrix\Im\Model\EO_Relation resetChatId()
     * @method \Bitrix\Im\Model\EO_Relation unsetChatId()
     * @method \int fillChatId()
     * @method \string getMessageType()
     * @method \Bitrix\Im\Model\EO_Relation setMessageType(\string|\Bitrix\Main\DB\SqlExpression $messageType)
     * @method bool hasMessageType()
     * @method bool isMessageTypeFilled()
     * @method bool isMessageTypeChanged()
     * @method \string remindActualMessageType()
     * @method \string requireMessageType()
     * @method \Bitrix\Im\Model\EO_Relation resetMessageType()
     * @method \Bitrix\Im\Model\EO_Relation unsetMessageType()
     * @method \string fillMessageType()
     * @method \int getUserId()
     * @method \Bitrix\Im\Model\EO_Relation setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Im\Model\EO_Relation resetUserId()
     * @method \Bitrix\Im\Model\EO_Relation unsetUserId()
     * @method \int fillUserId()
     * @method \int getStartId()
     * @method \Bitrix\Im\Model\EO_Relation setStartId(\int|\Bitrix\Main\DB\SqlExpression $startId)
     * @method bool hasStartId()
     * @method bool isStartIdFilled()
     * @method bool isStartIdChanged()
     * @method \int remindActualStartId()
     * @method \int requireStartId()
     * @method \Bitrix\Im\Model\EO_Relation resetStartId()
     * @method \Bitrix\Im\Model\EO_Relation unsetStartId()
     * @method \int fillStartId()
     * @method \int getLastId()
     * @method \Bitrix\Im\Model\EO_Relation setLastId(\int|\Bitrix\Main\DB\SqlExpression $lastId)
     * @method bool hasLastId()
     * @method bool isLastIdFilled()
     * @method bool isLastIdChanged()
     * @method \int remindActualLastId()
     * @method \int requireLastId()
     * @method \Bitrix\Im\Model\EO_Relation resetLastId()
     * @method \Bitrix\Im\Model\EO_Relation unsetLastId()
     * @method \int fillLastId()
     * @method \int getUnreadId()
     * @method \Bitrix\Im\Model\EO_Relation setUnreadId(\int|\Bitrix\Main\DB\SqlExpression $unreadId)
     * @method bool hasUnreadId()
     * @method bool isUnreadIdFilled()
     * @method bool isUnreadIdChanged()
     * @method \int remindActualUnreadId()
     * @method \int requireUnreadId()
     * @method \Bitrix\Im\Model\EO_Relation resetUnreadId()
     * @method \Bitrix\Im\Model\EO_Relation unsetUnreadId()
     * @method \int fillUnreadId()
     * @method \int getLastSendId()
     * @method \Bitrix\Im\Model\EO_Relation setLastSendId(\int|\Bitrix\Main\DB\SqlExpression $lastSendId)
     * @method bool hasLastSendId()
     * @method bool isLastSendIdFilled()
     * @method bool isLastSendIdChanged()
     * @method \int remindActualLastSendId()
     * @method \int requireLastSendId()
     * @method \Bitrix\Im\Model\EO_Relation resetLastSendId()
     * @method \Bitrix\Im\Model\EO_Relation unsetLastSendId()
     * @method \int fillLastSendId()
     * @method \int getLastFileId()
     * @method \Bitrix\Im\Model\EO_Relation setLastFileId(\int|\Bitrix\Main\DB\SqlExpression $lastFileId)
     * @method bool hasLastFileId()
     * @method bool isLastFileIdFilled()
     * @method bool isLastFileIdChanged()
     * @method \int remindActualLastFileId()
     * @method \int requireLastFileId()
     * @method \Bitrix\Im\Model\EO_Relation resetLastFileId()
     * @method \Bitrix\Im\Model\EO_Relation unsetLastFileId()
     * @method \int fillLastFileId()
     * @method \Bitrix\Main\Type\DateTime getLastRead()
     * @method \Bitrix\Im\Model\EO_Relation setLastRead(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastRead)
     * @method bool hasLastRead()
     * @method bool isLastReadFilled()
     * @method bool isLastReadChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastRead()
     * @method \Bitrix\Main\Type\DateTime requireLastRead()
     * @method \Bitrix\Im\Model\EO_Relation resetLastRead()
     * @method \Bitrix\Im\Model\EO_Relation unsetLastRead()
     * @method \Bitrix\Main\Type\DateTime fillLastRead()
     * @method \int getStatus()
     * @method \Bitrix\Im\Model\EO_Relation setStatus(\int|\Bitrix\Main\DB\SqlExpression $status)
     * @method bool hasStatus()
     * @method bool isStatusFilled()
     * @method bool isStatusChanged()
     * @method \int remindActualStatus()
     * @method \int requireStatus()
     * @method \Bitrix\Im\Model\EO_Relation resetStatus()
     * @method \Bitrix\Im\Model\EO_Relation unsetStatus()
     * @method \int fillStatus()
     * @method \int getCallStatus()
     * @method \Bitrix\Im\Model\EO_Relation setCallStatus(\int|\Bitrix\Main\DB\SqlExpression $callStatus)
     * @method bool hasCallStatus()
     * @method bool isCallStatusFilled()
     * @method bool isCallStatusChanged()
     * @method \int remindActualCallStatus()
     * @method \int requireCallStatus()
     * @method \Bitrix\Im\Model\EO_Relation resetCallStatus()
     * @method \Bitrix\Im\Model\EO_Relation unsetCallStatus()
     * @method \int fillCallStatus()
     * @method \string getMessageStatus()
     * @method \Bitrix\Im\Model\EO_Relation setMessageStatus(\string|\Bitrix\Main\DB\SqlExpression $messageStatus)
     * @method bool hasMessageStatus()
     * @method bool isMessageStatusFilled()
     * @method bool isMessageStatusChanged()
     * @method \string remindActualMessageStatus()
     * @method \string requireMessageStatus()
     * @method \Bitrix\Im\Model\EO_Relation resetMessageStatus()
     * @method \Bitrix\Im\Model\EO_Relation unsetMessageStatus()
     * @method \string fillMessageStatus()
     * @method \boolean getNotifyBlock()
     * @method \Bitrix\Im\Model\EO_Relation setNotifyBlock(\boolean|\Bitrix\Main\DB\SqlExpression $notifyBlock)
     * @method bool hasNotifyBlock()
     * @method bool isNotifyBlockFilled()
     * @method bool isNotifyBlockChanged()
     * @method \boolean remindActualNotifyBlock()
     * @method \boolean requireNotifyBlock()
     * @method \Bitrix\Im\Model\EO_Relation resetNotifyBlock()
     * @method \Bitrix\Im\Model\EO_Relation unsetNotifyBlock()
     * @method \boolean fillNotifyBlock()
     * @method \boolean getManager()
     * @method \Bitrix\Im\Model\EO_Relation setManager(\boolean|\Bitrix\Main\DB\SqlExpression $manager)
     * @method bool hasManager()
     * @method bool isManagerFilled()
     * @method bool isManagerChanged()
     * @method \boolean remindActualManager()
     * @method \boolean requireManager()
     * @method \Bitrix\Im\Model\EO_Relation resetManager()
     * @method \Bitrix\Im\Model\EO_Relation unsetManager()
     * @method \boolean fillManager()
     * @method \int getCounter()
     * @method \Bitrix\Im\Model\EO_Relation setCounter(\int|\Bitrix\Main\DB\SqlExpression $counter)
     * @method bool hasCounter()
     * @method bool isCounterFilled()
     * @method bool isCounterChanged()
     * @method \int remindActualCounter()
     * @method \int requireCounter()
     * @method \Bitrix\Im\Model\EO_Relation resetCounter()
     * @method \Bitrix\Im\Model\EO_Relation unsetCounter()
     * @method \int fillCounter()
     * @method \Bitrix\Im\Model\EO_Chat getChat()
     * @method \Bitrix\Im\Model\EO_Chat remindActualChat()
     * @method \Bitrix\Im\Model\EO_Chat requireChat()
     * @method \Bitrix\Im\Model\EO_Relation setChat(\Bitrix\Im\Model\EO_Chat $object)
     * @method \Bitrix\Im\Model\EO_Relation resetChat()
     * @method \Bitrix\Im\Model\EO_Relation unsetChat()
     * @method bool hasChat()
     * @method bool isChatFilled()
     * @method bool isChatChanged()
     * @method \Bitrix\Im\Model\EO_Chat fillChat()
     * @method \Bitrix\Im\Model\EO_Message getStart()
     * @method \Bitrix\Im\Model\EO_Message remindActualStart()
     * @method \Bitrix\Im\Model\EO_Message requireStart()
     * @method \Bitrix\Im\Model\EO_Relation setStart(\Bitrix\Im\Model\EO_Message $object)
     * @method \Bitrix\Im\Model\EO_Relation resetStart()
     * @method \Bitrix\Im\Model\EO_Relation unsetStart()
     * @method bool hasStart()
     * @method bool isStartFilled()
     * @method bool isStartChanged()
     * @method \Bitrix\Im\Model\EO_Message fillStart()
     * @method \Bitrix\Im\Model\EO_Message getLastSend()
     * @method \Bitrix\Im\Model\EO_Message remindActualLastSend()
     * @method \Bitrix\Im\Model\EO_Message requireLastSend()
     * @method \Bitrix\Im\Model\EO_Relation setLastSend(\Bitrix\Im\Model\EO_Message $object)
     * @method \Bitrix\Im\Model\EO_Relation resetLastSend()
     * @method \Bitrix\Im\Model\EO_Relation unsetLastSend()
     * @method bool hasLastSend()
     * @method bool isLastSendFilled()
     * @method bool isLastSendChanged()
     * @method \Bitrix\Im\Model\EO_Message fillLastSend()
     * @method \Bitrix\Im\Model\EO_Message getLast()
     * @method \Bitrix\Im\Model\EO_Message remindActualLast()
     * @method \Bitrix\Im\Model\EO_Message requireLast()
     * @method \Bitrix\Im\Model\EO_Relation setLast(\Bitrix\Im\Model\EO_Message $object)
     * @method \Bitrix\Im\Model\EO_Relation resetLast()
     * @method \Bitrix\Im\Model\EO_Relation unsetLast()
     * @method bool hasLast()
     * @method bool isLastFilled()
     * @method bool isLastChanged()
     * @method \Bitrix\Im\Model\EO_Message fillLast()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Im\Model\EO_Relation setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Im\Model\EO_Relation resetUser()
     * @method \Bitrix\Im\Model\EO_Relation unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_Relation set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_Relation reset($fieldName)
     * @method \Bitrix\Im\Model\EO_Relation unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_Relation wakeUp($data)
     */
    class EO_Relation
    {
        /* @var \Bitrix\Im\Model\RelationTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\RelationTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Relation_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getChatIdList()
     * @method \int[] fillChatId()
     * @method \string[] getMessageTypeList()
     * @method \string[] fillMessageType()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \int[] getStartIdList()
     * @method \int[] fillStartId()
     * @method \int[] getLastIdList()
     * @method \int[] fillLastId()
     * @method \int[] getUnreadIdList()
     * @method \int[] fillUnreadId()
     * @method \int[] getLastSendIdList()
     * @method \int[] fillLastSendId()
     * @method \int[] getLastFileIdList()
     * @method \int[] fillLastFileId()
     * @method \Bitrix\Main\Type\DateTime[] getLastReadList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastRead()
     * @method \int[] getStatusList()
     * @method \int[] fillStatus()
     * @method \int[] getCallStatusList()
     * @method \int[] fillCallStatus()
     * @method \string[] getMessageStatusList()
     * @method \string[] fillMessageStatus()
     * @method \boolean[] getNotifyBlockList()
     * @method \boolean[] fillNotifyBlock()
     * @method \boolean[] getManagerList()
     * @method \boolean[] fillManager()
     * @method \int[] getCounterList()
     * @method \int[] fillCounter()
     * @method \Bitrix\Im\Model\EO_Chat[] getChatList()
     * @method \Bitrix\Im\Model\EO_Relation_Collection getChatCollection()
     * @method \Bitrix\Im\Model\EO_Chat_Collection fillChat()
     * @method \Bitrix\Im\Model\EO_Message[] getStartList()
     * @method \Bitrix\Im\Model\EO_Relation_Collection getStartCollection()
     * @method \Bitrix\Im\Model\EO_Message_Collection fillStart()
     * @method \Bitrix\Im\Model\EO_Message[] getLastSendList()
     * @method \Bitrix\Im\Model\EO_Relation_Collection getLastSendCollection()
     * @method \Bitrix\Im\Model\EO_Message_Collection fillLastSend()
     * @method \Bitrix\Im\Model\EO_Message[] getLastList()
     * @method \Bitrix\Im\Model\EO_Relation_Collection getLastCollection()
     * @method \Bitrix\Im\Model\EO_Message_Collection fillLast()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Im\Model\EO_Relation_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_Relation $object)
     * @method bool has(\Bitrix\Im\Model\EO_Relation $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Relation getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Relation[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_Relation $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_Relation_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_Relation current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Relation_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\RelationTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\RelationTable';
    }
    /**
     * @method static EO_Relation_Query query()
     * @method static EO_Relation_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Relation_Result getById($id)
     * @method static EO_Relation_Result getList(array $parameters = array())
     * @method static EO_Relation_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_Relation createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_Relation_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_Relation wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_Relation_Collection wakeUpCollection($rows)
     */
    class RelationTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Relation_Result exec()
     * @method \Bitrix\Im\Model\EO_Relation fetchObject()
     * @method \Bitrix\Im\Model\EO_Relation_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Relation_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Relation fetchObject()
     * @method \Bitrix\Im\Model\EO_Relation_Collection fetchCollection()
     */
    class EO_Relation_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Relation createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_Relation_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_Relation wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_Relation_Collection wakeUpCollection($rows)
     */
    class EO_Relation_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Status
     * @see \Bitrix\Im\Model\StatusTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Im\Model\EO_Status setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \string getColor()
     * @method \Bitrix\Im\Model\EO_Status setColor(\string|\Bitrix\Main\DB\SqlExpression $color)
     * @method bool hasColor()
     * @method bool isColorFilled()
     * @method bool isColorChanged()
     * @method \string remindActualColor()
     * @method \string requireColor()
     * @method \Bitrix\Im\Model\EO_Status resetColor()
     * @method \Bitrix\Im\Model\EO_Status unsetColor()
     * @method \string fillColor()
     * @method \string getStatus()
     * @method \Bitrix\Im\Model\EO_Status setStatus(\string|\Bitrix\Main\DB\SqlExpression $status)
     * @method bool hasStatus()
     * @method bool isStatusFilled()
     * @method bool isStatusChanged()
     * @method \string remindActualStatus()
     * @method \string requireStatus()
     * @method \Bitrix\Im\Model\EO_Status resetStatus()
     * @method \Bitrix\Im\Model\EO_Status unsetStatus()
     * @method \string fillStatus()
     * @method \string getStatusText()
     * @method \Bitrix\Im\Model\EO_Status setStatusText(\string|\Bitrix\Main\DB\SqlExpression $statusText)
     * @method bool hasStatusText()
     * @method bool isStatusTextFilled()
     * @method bool isStatusTextChanged()
     * @method \string remindActualStatusText()
     * @method \string requireStatusText()
     * @method \Bitrix\Im\Model\EO_Status resetStatusText()
     * @method \Bitrix\Im\Model\EO_Status unsetStatusText()
     * @method \string fillStatusText()
     * @method \Bitrix\Main\Type\DateTime getIdle()
     * @method \Bitrix\Im\Model\EO_Status setIdle(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $idle)
     * @method bool hasIdle()
     * @method bool isIdleFilled()
     * @method bool isIdleChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualIdle()
     * @method \Bitrix\Main\Type\DateTime requireIdle()
     * @method \Bitrix\Im\Model\EO_Status resetIdle()
     * @method \Bitrix\Im\Model\EO_Status unsetIdle()
     * @method \Bitrix\Main\Type\DateTime fillIdle()
     * @method \Bitrix\Main\Type\DateTime getDesktopLastDate()
     * @method \Bitrix\Im\Model\EO_Status setDesktopLastDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $desktopLastDate)
     * @method bool hasDesktopLastDate()
     * @method bool isDesktopLastDateFilled()
     * @method bool isDesktopLastDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDesktopLastDate()
     * @method \Bitrix\Main\Type\DateTime requireDesktopLastDate()
     * @method \Bitrix\Im\Model\EO_Status resetDesktopLastDate()
     * @method \Bitrix\Im\Model\EO_Status unsetDesktopLastDate()
     * @method \Bitrix\Main\Type\DateTime fillDesktopLastDate()
     * @method \Bitrix\Main\Type\DateTime getMobileLastDate()
     * @method \Bitrix\Im\Model\EO_Status setMobileLastDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $mobileLastDate)
     * @method bool hasMobileLastDate()
     * @method bool isMobileLastDateFilled()
     * @method bool isMobileLastDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualMobileLastDate()
     * @method \Bitrix\Main\Type\DateTime requireMobileLastDate()
     * @method \Bitrix\Im\Model\EO_Status resetMobileLastDate()
     * @method \Bitrix\Im\Model\EO_Status unsetMobileLastDate()
     * @method \Bitrix\Main\Type\DateTime fillMobileLastDate()
     * @method \int getEventId()
     * @method \Bitrix\Im\Model\EO_Status setEventId(\int|\Bitrix\Main\DB\SqlExpression $eventId)
     * @method bool hasEventId()
     * @method bool isEventIdFilled()
     * @method bool isEventIdChanged()
     * @method \int remindActualEventId()
     * @method \int requireEventId()
     * @method \Bitrix\Im\Model\EO_Status resetEventId()
     * @method \Bitrix\Im\Model\EO_Status unsetEventId()
     * @method \int fillEventId()
     * @method \Bitrix\Main\Type\DateTime getEventUntilDate()
     * @method \Bitrix\Im\Model\EO_Status setEventUntilDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $eventUntilDate)
     * @method bool hasEventUntilDate()
     * @method bool isEventUntilDateFilled()
     * @method bool isEventUntilDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualEventUntilDate()
     * @method \Bitrix\Main\Type\DateTime requireEventUntilDate()
     * @method \Bitrix\Im\Model\EO_Status resetEventUntilDate()
     * @method \Bitrix\Im\Model\EO_Status unsetEventUntilDate()
     * @method \Bitrix\Main\Type\DateTime fillEventUntilDate()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Im\Model\EO_Status setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Im\Model\EO_Status resetUser()
     * @method \Bitrix\Im\Model\EO_Status unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Im\Model\EO_Status set($fieldName, $value)
     * @method \Bitrix\Im\Model\EO_Status reset($fieldName)
     * @method \Bitrix\Im\Model\EO_Status unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Im\Model\EO_Status wakeUp($data)
     */
    class EO_Status
    {
        /* @var \Bitrix\Im\Model\StatusTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\StatusTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Status_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \string[] getColorList()
     * @method \string[] fillColor()
     * @method \string[] getStatusList()
     * @method \string[] fillStatus()
     * @method \string[] getStatusTextList()
     * @method \string[] fillStatusText()
     * @method \Bitrix\Main\Type\DateTime[] getIdleList()
     * @method \Bitrix\Main\Type\DateTime[] fillIdle()
     * @method \Bitrix\Main\Type\DateTime[] getDesktopLastDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDesktopLastDate()
     * @method \Bitrix\Main\Type\DateTime[] getMobileLastDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillMobileLastDate()
     * @method \int[] getEventIdList()
     * @method \int[] fillEventId()
     * @method \Bitrix\Main\Type\DateTime[] getEventUntilDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillEventUntilDate()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Im\Model\EO_Status_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Im\Model\EO_Status $object)
     * @method bool has(\Bitrix\Im\Model\EO_Status $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Status getByPrimary($primary)
     * @method \Bitrix\Im\Model\EO_Status[] getAll()
     * @method bool remove(\Bitrix\Im\Model\EO_Status $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Im\Model\EO_Status_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Im\Model\EO_Status current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Status_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Im\Model\StatusTable */
        public static $dataClass = '\\Bitrix\\Im\\Model\\StatusTable';
    }
    /**
     * @method static EO_Status_Query query()
     * @method static EO_Status_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Status_Result getById($id)
     * @method static EO_Status_Result getList(array $parameters = array())
     * @method static EO_Status_Entity getEntity()
     * @method static \Bitrix\Im\Model\EO_Status createObject($setDefaultValues = true)
     * @method static \Bitrix\Im\Model\EO_Status_Collection createCollection()
     * @method static \Bitrix\Im\Model\EO_Status wakeUpObject($row)
     * @method static \Bitrix\Im\Model\EO_Status_Collection wakeUpCollection($rows)
     */
    class StatusTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Status_Result exec()
     * @method \Bitrix\Im\Model\EO_Status fetchObject()
     * @method \Bitrix\Im\Model\EO_Status_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Status_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Status fetchObject()
     * @method \Bitrix\Im\Model\EO_Status_Collection fetchCollection()
     */
    class EO_Status_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Im\Model\EO_Status createObject($setDefaultValues = true)
     * @method \Bitrix\Im\Model\EO_Status_Collection createCollection()
     * @method \Bitrix\Im\Model\EO_Status wakeUpObject($row)
     * @method \Bitrix\Im\Model\EO_Status_Collection wakeUpCollection($rows)
     */
    class EO_Status_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Im {
    class Revision
    {
        /**
         * Web Api revision
         *
         * @filesource synchronize im/install/js/im/im.js:17
         */
        const WEB = 130;
        /**
         * Mobile Api revision
         *
         * @filesource synchronize mobile/install/components/bitrix/mobile.jscomponent/jscomponents/im.recent/component.js:6
         * @filesource synchronize mobile/install/components/bitrix/mobile.webcomponent/webcomponents/im.dialog/bundle/component/js/component.js:3
         * @filesource synchronize mobile/install/components/bitrix/mobile.webcomponent/webcomponents/im.dialog/bundle/component/js/mobile_dialog.js:22
         */
        const MOBILE = 19;
        /**
         * Desktop Api revision
         */
        const DESKTOP = 3;
        /**
         * Rest Api revision
         */
        const REST = 28;
        public static function getWeb()
        {
        }
        public static function getMobile()
        {
        }
        public static function getDesktop()
        {
        }
        public static function getRest()
        {
        }
        public static function get()
        {
        }
    }
    class Bot
    {
        const INSTALL_TYPE_SYSTEM = 'system';
        const INSTALL_TYPE_USER = 'user';
        const INSTALL_TYPE_SILENT = 'silent';
        const LOGIN_START = 'bot_';
        const EXTERNAL_AUTH_ID = 'bot';
        const LIST_ALL = 'all';
        const LIST_OPENLINE = 'openline';
        const TYPE_HUMAN = 'H';
        const TYPE_BOT = 'B';
        const TYPE_SUPERVISOR = 'S';
        const TYPE_NETWORK = 'N';
        const TYPE_OPENLINE = 'O';
        const CACHE_TTL = 31536000;
        const CACHE_PATH = '/bx/im/bot/';
        public static function register(array $fields)
        {
        }
        public static function unRegister(array $bot)
        {
        }
        public static function update(array $bot, array $updateFields)
        {
        }
        /**
         * @param int $botId Bot Id.
         * @param string $messageType Notify type - addBot|updateBot|deleteBot
         *
         * @return void
         */
        public static function sendPullNotify($botId, $messageType)
        {
        }
        public static function onMessageAdd($messageId, $messageFields)
        {
        }
        public static function onMessageUpdate($messageId, $messageFields)
        {
        }
        public static function onMessageDelete($messageId, $messageFields)
        {
        }
        public static function onJoinChat($dialogId, $joinFields)
        {
        }
        public static function onLeaveChat($dialogId, $leaveFields)
        {
        }
        public static function startWriting(array $bot, $dialogId, $userName = '')
        {
        }
        public static function addMessage(array $bot, array $messageFields)
        {
        }
        public static function updateMessage(array $bot, array $messageFields)
        {
        }
        public static function deleteMessage(array $bot, $messageId)
        {
        }
        public static function likeMessage(array $bot, $messageId, $action = 'AUTO')
        {
        }
        public static function getDialogId($messageFields)
        {
        }
        private static function findBots($fields)
        {
        }
        public static function getCache($botId)
        {
        }
        public static function clearCache()
        {
        }
        public static function getListCache($type = self::LIST_ALL)
        {
        }
        public static function getListForJs()
        {
        }
        private static function removeFieldsToEvent($messageFields)
        {
        }
        private static function getChatListCache($botId)
        {
        }
        public static function changeChatMembers($chatId, $botId, $append = true)
        {
        }
        public static function getDefaultLanguage()
        {
        }
        public static function deleteExpiredTokenAgent()
        {
        }
        /**
         * @param $messageFields
         * @return array
         */
        private static function getBotsForMessage($messageFields)
        {
        }
    }
    class App
    {
        const CACHE_TTL = 31536000;
        const CACHE_PATH = '/bx/im/app/';
        public static function register(array $fields)
        {
        }
        public static function unRegister(array $app)
        {
        }
        public static function update(array $app, array $updateFields)
        {
        }
        public static function addToken(array $params)
        {
        }
        public static function addMessage(array $app, array $messageFields)
        {
        }
        public static function getListCache($lang = LANGUAGE_ID)
        {
        }
        public static function getListForJs($lang = LANGUAGE_ID)
        {
        }
        public static function getUserHash($userId, $hash = 'register')
        {
        }
        public static function getDomainHash($hash)
        {
        }
        public static function clearCache()
        {
        }
    }
}
namespace Bitrix\Im\Update {
    final class ChatUserCount extends \Bitrix\Main\Update\Stepper
    {
        private const OPTION_NAME = "im_chat_user_count";
        protected static $moduleId = "im";
        /**
         * @inheritdoc
         */
        public function execute(array &$result)
        {
        }
    }
    final class ChatIndex extends \Bitrix\Main\Update\Stepper
    {
        const OPTION_NAME = "im_index_chat";
        protected static $moduleId = "im";
        /**
         * @inheritdoc
         */
        public function execute(array &$result)
        {
        }
    }
    class Notify
    {
        public static function removeDuplicateChatAgent()
        {
        }
    }
    final class MessageIndex extends \Bitrix\Main\Update\Stepper
    {
        const OPTION_NAME = "im_index_message";
        const STATUS_ENABLED = 'enabled';
        const STATUS_DISABLED = 'disabled';
        const STATUS_DEFAULT = 'default';
        protected static $moduleId = "im";
        /**
         * @inheritdoc
         */
        public function execute(array &$result)
        {
        }
    }
}
namespace Bitrix\Im {
    class TextareaIcon
    {
        const CACHE_TTL = 31536000;
        const CACHE_PATH = '/bx/im/textareaicon/';
        public static function register(array $fields)
        {
        }
        public static function unRegister(array $icon)
        {
        }
        public static function update(array $icon, array $updateFields)
        {
        }
        public static function addToken(array $params)
        {
        }
        public static function addMessage(array $access, array $messageFields)
        {
        }
        public static function isChat($dialogId)
        {
        }
        public static function getListCache($lang = LANGUAGE_ID)
        {
        }
        public static function getListForJs($lang = LANGUAGE_ID)
        {
        }
        public static function getUserHash($userId)
        {
        }
        public static function clearCache()
        {
        }
    }
    class Recent
    {
        private const PINNED_CHATS_LIMIT = 25;
        public static function get($userId = null, $options = [])
        {
        }
        public static function getUser($userId)
        {
        }
        public static function pin($dialogId, $pin, $userId = null)
        {
        }
        public static function unread($dialogId, $unread, $userId = null)
        {
        }
        public static function hide($dialogId, $userId = null)
        {
        }
        public static function show($dialogId, $userId = null)
        {
        }
        public static function clearCache($userId = null)
        {
        }
    }
}
namespace Bitrix\Im\Integration\Crm {
    class Common
    {
        /**
         * @param $type
         * @param null $id
         * @return bool|mixed|string
         * @throws \Bitrix\Main\LoaderException
         */
        public static function getLink($type, $id = null)
        {
        }
    }
}
namespace Bitrix\Im\Integration\Imopenlines {
    class User
    {
        public static function isOperator($userId = null)
        {
        }
    }
    class Limit
    {
        private static function isModuleIncluded()
        {
        }
        public static function getLicenseUsersLimit()
        {
        }
        public static function canUseVoteHead()
        {
        }
        public static function canJoinChatUser()
        {
        }
        public static function canTransferToLine()
        {
        }
    }
    class Localize
    {
        static $MESS = array();
        const FILE_LIB_CHAT = 'FILE_LIB_CHAT';
        private static function resolveType($type)
        {
        }
        public static function get($type, $phraseCode = null, $lang = null)
        {
        }
    }
}
namespace Bitrix\Im\Integration\Intranet {
    class User
    {
        static $isEmployee = [];
        const INVITE_MAX_USER_NOTIFY = 50;
        public static function onInviteLinkCopied(\Bitrix\Main\Event $event) : bool
        {
        }
        public static function onUserInvited(\Bitrix\Main\Event $event) : bool
        {
        }
        public static function onUserAdded(\Bitrix\Main\Event $event) : bool
        {
        }
        public static function onUserAdminRights(\Bitrix\Main\Event $event) : bool
        {
        }
        public static function onInviteSend(array $params) : bool
        {
        }
        public static function onInviteAccepted(array $params) : bool
        {
        }
        private static function sendInviteEvent(array $users, $invited) : bool
        {
        }
        private static function sendMessageToGeneralChat(int $fromUserId, array $params) : bool
        {
        }
        private static function getUserBlock(int $userId) : string
        {
        }
        private static function isEmployee(int $userId) : bool
        {
        }
        public static function registerEventHandler()
        {
        }
        public static function unRegisterEventHandler()
        {
        }
    }
    class Department
    {
        const CACHE_TOKEN_TTL = 2592000;
        // 1 month
        public static function checkModules()
        {
        }
        public static function getList()
        {
        }
        public static function getGroup($params)
        {
        }
    }
}
namespace Bitrix\Im\Integration\Socialnetwork {
    class Extranet
    {
        const CACHE_TOKEN_TTL = 2592000;
        // 1 month
        public static function checkModules()
        {
        }
        public static function getGroup($params, $userId = null)
        {
        }
        public static function isUserInGroup($userId, $currentUserId = null)
        {
        }
    }
}
namespace Bitrix\Im {
    class Promotion
    {
        const DEVICE_TYPE_WEB = "web";
        const DEVICE_TYPE_BROWSER = "browser";
        const DEVICE_TYPE_DESKTOP = "desktop";
        const DEVICE_TYPE_MOBILE = "mobile";
        const DEVICE_TYPE_ALL = "all";
        private static function getConfig()
        {
        }
        public static function getActive($type = self::DEVICE_TYPE_ALL)
        {
        }
        public static function read($id)
        {
        }
        public static function getDeviceTypes()
        {
        }
        private static function getTour($config, $type = self::DEVICE_TYPE_ALL)
        {
        }
        private static function getTourById($id)
        {
        }
    }
    class Counter
    {
        const CACHE_TTL = 2678400;
        // 1 month
        const CACHE_NAME = 'counter_v2';
        // 1 month
        const CACHE_PATH = '/bx/im/counter/';
        const TYPE_MESSENGER = 'messenger';
        const MODULE_ID = 'im';
        public static function get($userId)
        {
        }
        public static function clearCache($userId = null)
        {
        }
        public static function getChatCounter($chatId, $userId)
        {
        }
        public static function getDialogCounter($userId, $opponentUserId)
        {
        }
        public static function getNotifyCounter($userId)
        {
        }
        public static function countingLostCountersAgent($notifyRelationId = 0, $chatRelationId = 0)
        {
        }
        public static function onGetMobileCounterTypes(\Bitrix\Main\Event $event)
        {
        }
        public static function onGetMobileCounter(\Bitrix\Main\Event $event)
        {
        }
    }
    class User
    {
        private static $instance = array();
        private $userId = 0;
        private $userData = null;
        static $formatNameTemplate = null;
        const FILTER_LIMIT = 50;
        const PHONE_ANY = 'phone_any';
        const PHONE_WORK = 'work_phone';
        const PHONE_PERSONAL = 'personal_phone';
        const PHONE_MOBILE = 'personal_mobile';
        const PHONE_INNER = 'uf_phone_inner';
        const SERVICE_ANY = 'service_any';
        const SERVICE_ZOOM = 'zoom';
        const SERVICE_SKYPE = 'skype';
        function __construct($userId = null)
        {
        }
        /**
         * @param null $userId
         * @return User
         */
        public static function getInstance($userId = null)
        {
        }
        /**
         * @return int
         */
        public function getId()
        {
        }
        /**
         * @return string
         */
        public function getFullName($safe = true)
        {
        }
        /**
         * @return string
         */
        public function getName($safe = true)
        {
        }
        /**
         * @return string
         */
        public function getLastName($safe = true)
        {
        }
        /**
         * @return string
         */
        public function getAvatar()
        {
        }
        /**
         * @return string
         */
        public function getAvatarHr()
        {
        }
        /**
         * @return string
         */
        public function getStatus()
        {
        }
        /**
         * @return string
         */
        public function getIdle()
        {
        }
        /**
         * @return string
         */
        public function getLastActivityDate()
        {
        }
        /**
         * @return string
         */
        public function getMobileLastDate()
        {
        }
        /**
         * @return string
         */
        public function getBirthday()
        {
        }
        /**
         * @return string
         */
        public function getAvatarId()
        {
        }
        /**
         * @return string
         */
        public function getWorkPosition($safe = false)
        {
        }
        /**
         * @return string
         */
        public function getGender()
        {
        }
        /**
         * @return string
         */
        public function getExternalAuthId()
        {
        }
        /**
         * @return string
         */
        public function getWebsite()
        {
        }
        /**
         * @return string
         */
        public function getEmail()
        {
        }
        /**
         * @param string $type
         * @return string
         */
        public function getPhone($type = self::PHONE_ANY)
        {
        }
        /**
         * @param string $type
         * @return string
         */
        public function getService($type = self::PHONE_ANY)
        {
        }
        /**
         * @return string
         */
        public function getColor()
        {
        }
        /**
         * @return string
         */
        public function getTzOffset()
        {
        }
        /**
         * @return bool
         */
        public function isOnline()
        {
        }
        /**
         * @return bool
         */
        public function isExtranet()
        {
        }
        /**
         * @return bool
         */
        public function isActive()
        {
        }
        /**
         * @return bool
         */
        public function isAbsent()
        {
        }
        /**
         * @return bool
         */
        public function isNetwork()
        {
        }
        /**
         * @return bool
         */
        public function isBot()
        {
        }
        /**
         * @return bool
         */
        public function isConnector()
        {
        }
        /**
         * @return bool
         */
        public function isExists()
        {
        }
        /**
         * @return array|null
         */
        public function getFields()
        {
        }
        /**
         * @return array|null
         */
        public function getPhones()
        {
        }
        /**
         * @return array|null
         */
        public function getServices()
        {
        }
        /**
         * @return array|null
         */
        public function getDepartments()
        {
        }
        /**
         * Returns an array describing the user.
         *
         * @param array $options
         * @return array|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function getArray($options = [])
        {
        }
        /**
         * @return array|null
         */
        private function getParams()
        {
        }
        public static function uploadAvatar($avatarUrl = '', $hash = '')
        {
        }
        /**
         * @return bool
         */
        public static function clearStaticCache()
        {
        }
        public static function isOpenlinesOperator($userId = null)
        {
        }
        public static function getList($params)
        {
        }
        public static function getListParams($params)
        {
        }
        public static function getBusiness($userId = null, $options = array())
        {
        }
        public static function getMessages($userId = null, $options = array())
        {
        }
        public static function formatNameFromDatabase($fields)
        {
        }
        public static function formatFullNameFromDatabase($fields)
        {
        }
    }
    class Janus
    {
        const PLUGIN_VIDEOROOM = 'janus.plugin.videoroom';
        const USER_AGENT = 'Bitrix IM';
        protected static $serverAddress = 'https://testphone.bitrix.info:8089/janus';
        protected static $apiSecret = 'eaff35df4cf027ffb36300d9b9604d8f';
        //protected static $serverAddress = 'https://cp.perevozov.bx:8089/janus';
        //protected static $apiSecret = 'bitrix';
        protected $transaction = null;
        protected $sessionId = '';
        protected $pluginEndpoints = array();
        public function __construct()
        {
        }
        /**
         * @param array $config
         * @return string|false Returns room id or false in case of failure
         */
        public function createRoom(array $config = array())
        {
        }
        /**
         * @return Result
         */
        public function login()
        {
        }
        /**
         * @return bool
         */
        protected function isLogged()
        {
        }
        /**
         * @param string $pluginName
         * @return Result
         */
        public function attachToPlugin($pluginName)
        {
        }
        /**
         * @param $pluginName
         * @return bool
         */
        protected function isAttachedToPlugin($pluginName)
        {
        }
        /**
         * @param array $request
         * @param string $pluginName
         * @return Result
         */
        protected function query(array $request, $pluginName = '')
        {
        }
        /**
         * @return string
         */
        public static function getServerAddress()
        {
        }
        /**
         * @return string
         */
        public static function getApiSecret()
        {
        }
    }
    class NotifyFlash
    {
        static $instance = null;
        private $notify = [];
        private $commitList = [];
        const TYPE_NOTIFY = 'notify';
        const TYPE_MESSAGE = 'message';
        const ENGINE_SESSION = 'session';
        const ENGINE_CACHE = 'cache';
        private $cacheTtl = null;
        private $cacheDir = null;
        public static function getInstance() : self
        {
        }
        public function getEngineType() : string
        {
        }
        public function setEngineType(string $type) : bool
        {
        }
        private function __construct()
        {
        }
        public function set(string $type, $id) : bool
        {
        }
        public function exists(string $type, $id) : bool
        {
        }
        public function commit() : bool
        {
        }
        /* session block */
        private function initSession() : bool
        {
        }
        private function commitSession() : bool
        {
        }
        /* cache block */
        private function getCacheId() : string
        {
        }
        private function initCache() : bool
        {
        }
        private function commitCache() : bool
        {
        }
    }
}
namespace Bitrix\Im\Call {
    class Auth
    {
        const AUTH_TYPE = 'call';
        const AUTH_CODE_GUEST = 'guest';
        const METHODS_WITHOUT_AUTH = ['im.call.user.register', 'server.time', 'pull.config.get', 'pull.watch.extend'];
        const METHODS_WITH_AUTH = [
            'mobile.browser.const.get',
            'im.user.get',
            // pull
            'server.time',
            'pull.config.get',
            'pull.watch.extend',
            // im
            'im.chat.get',
            'im.message.add',
            'im.message.update',
            'im.message.delete',
            'im.message.like',
            'im.dialog.writing',
            'im.dialog.messages.get',
            'im.dialog.read',
            'im.disk.folder.get',
            'im.disk.file.commit',
            'im.user.list.get',
            'im.call.create',
            'im.call.invite',
            'im.call.answer',
            'im.call.ping',
            'im.call.channel.public.list',
            'im.call.hangup',
            'im.call.decline',
            'im.call.getusers',
            'im.call.get',
            'im.call.tryjoincall',
            'local.call.log',
            'smile.get',
            // disk
            'disk.folder.uploadfile',
            // user
            'im.call.user.update',
            //voximplant
            'voximplant.authorization.get',
            'voximplant.authorization.onerror',
            'voximplant.authorization.signonetimekey',
        ];
        // TODO sync AUTH_ID_PARAM with file /rest/services/rest/index.php
        const AUTH_ID_PARAM = 'call_auth_id';
        protected static $authQueryParams = [self::AUTH_ID_PARAM];
        public static function onRestCheckAuth(array $query, $scope, &$res)
        {
        }
        public static function authorizeById($userId, $setCookie = null, $skipAuthorizeCheck = false)
        {
        }
        private static function getSuccessfulResult()
        {
        }
        private static function checkQueryMethod($whiteListMethods)
        {
        }
    }
    class Signaling
    {
        protected $call;
        public function __construct(\Bitrix\Im\Call\Call $call)
        {
        }
        public function sendInvite(int $senderId, array $toUserIds, $isMobile, $video = false)
        {
        }
        protected function getInvitePush(int $senderId, int $toUserId, $isMobile, $video)
        {
        }
        public function sendUsersJoined(int $senderId, array $joinedUsers)
        {
        }
        public function sendUsersInvited(int $senderId, array $toUserIds, array $users)
        {
        }
        public function sendAssociatedEntityReplaced(int $senderId)
        {
        }
        public function sendAnswer(int $senderId, $callInstanceId, $isMobile)
        {
        }
        public function sendPing(int $senderId, $requestId)
        {
        }
        public function sendNegotiationNeeded(int $senderId, int $toUserId, $restart)
        {
        }
        public function sendConnectionOffer(int $senderId, int $toUserId, string $connectionId, string $offerSdp, string $userAgent)
        {
        }
        public function sendConnectionAnswer(int $senderId, int $toUserId, string $connectionId, string $answerSdp, string $userAgent)
        {
        }
        public function sendIceCandidates(int $senderId, int $toUserId, string $connectionId, array $iceCandidates)
        {
        }
        public function sendHangup(int $senderId, array $toUserIds, string $callInstanceId, $code = 200)
        {
        }
        public function sendFinish()
        {
        }
        protected function getPublicIds(array $userIds)
        {
        }
        protected function send(string $command, $users, array $params = [], $push = null, $ttl = 5)
        {
        }
    }
}
namespace Bitrix\Im\Call\Integration {
    abstract class AbstractEntity
    {
        protected $entityId;
        protected $userId;
        /** @var Call */
        protected $call;
        public function __construct(\Bitrix\Im\Call\Call $call, $entityId, $userId = 0)
        {
        }
        public function getEntityId($currentUserId = 0)
        {
        }
        /**
         * @return Call
         */
        public function getCall()
        {
        }
        /**
         * @param Call $call
         */
        public function setCall(\Bitrix\Im\Call\Call $call)
        {
        }
        public abstract function getEntityType();
        public abstract function checkAccess($userId);
        public abstract function getChatId();
        public abstract function getUsers();
        public abstract function getName($currentUserId);
        public abstract function onUserAdd($userId);
        public abstract function onStateChange($state, $prevState);
        public function toArray($currentUserId = 0)
        {
        }
        protected function getCurrentUserId()
        {
        }
    }
    class Zoom
    {
        private const CONFERENCE_INSTANT_TYPE = 1;
        private const CONFERENCE_SCHEDULED_TYPE = 2;
        private const DEFAULT_DURATION_MINUTES = "30";
        private const PERSONAL_CHAT = 'dialog';
        private const GROUP_CHAT = 'chat';
        private $accessToken;
        private $userId;
        private $chatId;
        private $chatType;
        private $zoomChatName;
        private $zoomSocServ;
        /**
         * Zoom constructor.
         *
         * @param int $userId
         * @param string $chatId
         * @throws LoaderException
         */
        public function __construct(int $userId, string $chatId)
        {
        }
        /**
         * Checks if zoom is active social service.
         *
         * @return bool
         * @throws LoaderException
         */
        public static function isActive() : bool
        {
        }
        /**
         * Checks if zoom is connected to user profile.
         *
         * @param $userId
         * @return bool
         * @throws ArgumentException
         * @throws LoaderException
         * @throws ObjectPropertyException
         * @throws SystemException
         */
        public static function isConnected($userId) : bool
        {
        }
        /**
         * Checks if Zoom integration is available for this portal.
         *
         * @return bool
         * @throws LoaderException
         */
        public static function isAvailable() : bool
        {
        }
        /**
         * Gets zoom access token.
         *
         * @return bool|mixed
         * @throws LoaderException
         */
        public function getAccessToken()
        {
        }
        /**
         * Gets URL to join Zoom conference by making request to Zoom, or getting it from DB (if it is not expired).
         *
         * @return string|null
         */
        public function getImChatConferenceUrl() : ?string
        {
        }
        private function getExistedChatConference() : ?array
        {
        }
        private function requestNewChatConference() : \Bitrix\Main\Result
        {
        }
        /**
         * Gets Zoom conference information.
         *
         * @param int $confId External conference id.
         * @return array|null
         */
        public function requestConferenceById(int $confId) : ?array
        {
        }
        private function isConferenceExpired(array $confData) : bool
        {
        }
        /**
         * Gets array of a message fields for IM to post a rich message with conference URL.
         *
         * @param string $chat Chat id.
         * @param string $link URL to Zoom conference.
         * @param integer $userId User Id who sends the message (private chat).
         * @return array
         * @throws ArgumentException
         * @throws LoaderException
         * @throws ObjectPropertyException
         * @throws SystemException
         */
        public function getRichMessageFields($chat, string $link, int $userId) : array
        {
        }
        private function prepareZoomChatName($chatId) : string
        {
        }
    }
    /**
     * Class EntityType
     *
     * Possible entities to associate with calls.
     */
    class EntityType
    {
        const CHAT = 'chat';
    }
    class EntityFabric
    {
        /**
         * Return proxy object, to access entity, associated with the call.
         *
         * @param string $entityType Type of the associated entity.
         * @param integer $entityId Id of the associated entity.
         * @return AbstractEntity
         * @throws ArgumentException
         */
        public static function createEntity(\Bitrix\Im\Call\Call $call, $entityType, $entityId)
        {
        }
    }
    class Chat extends \Bitrix\Im\Call\Integration\AbstractEntity
    {
        protected $chatId;
        protected $chatFields;
        protected $chatUsers = [];
        const MUTE_MESSAGE = true;
        public function __construct(\Bitrix\Im\Call\Call $call, $entityId)
        {
        }
        /**
         * Returns associated entity type.
         *
         * @return string
         */
        public function getEntityType()
        {
        }
        public function getEntityId($currentUserId = 0)
        {
        }
        public function getChatId()
        {
        }
        /**
         * Returns list of users in the chat
         *
         * @return array
         */
        public function getUsers()
        {
        }
        /**
         * Returns true is user can call users in the associated chat and false otherwise.
         *
         * @param int $userId
         * @return bool
         */
        public function checkAccess($userId)
        {
        }
        /**
         * Returns associated entity name.
         *
         * @param int $currentUserId Id of the user.
         * @return string|false
         */
        public function getName($currentUserId)
        {
        }
        public function getAvatar($currentUserId)
        {
        }
        public function getAvatarColor($currentUserId)
        {
        }
        public function onUserAdd($userId)
        {
        }
        public function onStateChange($state, $prevState)
        {
        }
        public function sendMessage($message, $muted = false)
        {
        }
        public function toArray($currentUserId = 0)
        {
        }
    }
}
namespace Bitrix\Im\Call {
    class CallLog
    {
        const TYPE_NOW = 'now';
        const TYPE_ALL = 'all';
        const TYPE_SEARCH = 'search';
        public static function getTypes()
        {
        }
        public static function get($params = [])
        {
        }
    }
    class Registry
    {
        /** @var Call[] */
        protected static $calls = array();
        /**
         *
         * @param int $id Id of the call
         * @return Call|false
         */
        public static function getCallWithId($id)
        {
        }
        public static function getCallWithPublicId($publicId)
        {
        }
        public static function getCallWithEntity($entityType, $entityId)
        {
        }
    }
    class User
    {
        const MODULE_ID = 'im';
        const EXTERNAL_AUTH_ID = 'call';
        private static $error = null;
        public static function register($userFields = [])
        {
        }
        public static function get($userId)
        {
        }
        public static function getDefaultName()
        {
        }
        public static function getPersonalPhoto($avatarUrl = '')
        {
        }
        public static function getUserCode()
        {
        }
        /**
         * @return BasicError
         */
        public static function getError()
        {
        }
        /**
         * @param $method
         * @param $code
         * @param $msg
         * @param array $params
         *
         * @return bool
         */
        private static function setError($method, $code, $msg, $params = [])
        {
        }
        private static function clearError()
        {
        }
    }
    class Conference
    {
        /* codes sync with im/install/js/im/const/src/call.js:25 */
        const ERROR_USER_LIMIT_REACHED = "userLimitReached";
        const ERROR_BITRIX24_ONLY = "bitrix24only";
        const ERROR_DETECT_INTRANET_USER = "detectIntranetUser";
        const ERROR_KICKED_FROM_CALL = "kickedFromCall";
    }
    class CallUser
    {
        const LAST_SEEN_THRESHOLD = 75;
        const STATE_UNAVAILABLE = 'unavailable';
        const STATE_IDLE = 'idle';
        const STATE_CALLING = 'calling';
        const STATE_DECLINED = 'declined';
        const STATE_BUSY = 'busy';
        const STATE_READY = 'ready';
        protected $userId;
        protected $callId;
        protected $state;
        protected $lastSeen;
        protected $isMobile;
        public static function create(array $fields)
        {
        }
        /**
         * @return string
         */
        public function getState()
        {
        }
        public function isSeenRecently()
        {
        }
        public function updateState($state)
        {
        }
        /**
         * @return DateTime
         */
        public function getLastSeen()
        {
        }
        /**
         * Update user's last seen date.
         *
         * @param DateTime $lastSeen
         */
        public function updateLastSeen(\Bitrix\Main\Type\DateTime $lastSeen)
        {
        }
        /**
         * Returns true if the user is an active participant of the call and false otherwise.
         *
         * @return bool
         */
        public function isActive()
        {
        }
        public function isUaMobile()
        {
        }
        public function setFields(array $fields)
        {
        }
        public function save()
        {
        }
        public function update(array $fields)
        {
        }
        public static function delete($callId, $userId)
        {
        }
    }
    class Command
    {
        const INCOMING_CALL = "Call::incomingCall";
    }
    class Call
    {
        const STATE_NEW = 'new';
        const STATE_INVITING = 'inviting';
        const STATE_ANSWERED = 'answered';
        const STATE_FINISHED = 'finished';
        const TYPE_INSTANT = 1;
        const TYPE_PERMANENT = 2;
        const PROVIDER_PLAIN = 'Plain';
        const PROVIDER_VOXIMPLANT = 'Voximplant';
        protected $id;
        protected $type;
        protected $initiatorId;
        protected $isPublic = false;
        protected $publicId;
        protected $provider;
        protected $entityType;
        protected $entityId;
        protected $parentId;
        protected $state;
        protected $startDate;
        protected $endDate;
        protected $logUrl;
        protected $chatId;
        /** @var Integration\AbstractEntity */
        protected $associatedEntity = null;
        /** @var CallUser[] */
        protected $users;
        /** @var Signaling */
        protected $signaling;
        /**
         * Use one of the named constructors
         */
        protected function __construct()
        {
        }
        /**
         * @return int
         */
        public function getId()
        {
        }
        /**
         * @return string
         */
        public function getProvider()
        {
        }
        /**
         * @return int
         */
        public function getInitiatorId()
        {
        }
        /**
         * @param $userId
         * @return CallUser|null
         */
        public function getUser($userId)
        {
        }
        /**
         * Returns arrays of ids of the users, currently participating in the call.
         * @return int[]
         */
        public function getUsers()
        {
        }
        /**
         * Return true if a user is the part of the call.
         *
         * @param int $userId Id of the user.
         * @return bool
         */
        public function hasUser($userId)
        {
        }
        /**
         * Adds new user to the call.
         *
         * @param int $newUserId
         * @return CallUser|false
         */
        public function addUser($newUserId)
        {
        }
        public function removeUser($userId)
        {
        }
        /**
         * Call is considered active if it has at least:
         *  - one user in ready state
         *  - another user in ready or calling state
         * @return bool
         */
        public function hasActiveUsers()
        {
        }
        public function getSignaling()
        {
        }
        /**
         * @return Integration\AbstractEntity|null
         */
        public function getAssociatedEntity()
        {
        }
        public function setAssociatedEntity($entityType, $entityId)
        {
        }
        /**
         * Returns true if specified user has access to the call.
         *
         * @param int $userId Id of the user.
         * @return bool
         */
        public function checkAccess($userId)
        {
        }
        /**
         * @return string
         */
        public function getState()
        {
        }
        /**
         * @param string $state
         */
        public function updateState($state)
        {
        }
        public function setLogUrl(string $logUrl)
        {
        }
        public function finish()
        {
        }
        public function toArray($currentUserId = 0)
        {
        }
        public function save()
        {
        }
        public function makeClone($newProvider = null)
        {
        }
        protected function loadUsers()
        {
        }
        protected function saveStat()
        {
        }
        public function getMaxUsers()
        {
        }
        public function getLogToken(int $userId = 0, int $ttl = 3600) : string
        {
        }
        public static function getLogService() : string
        {
        }
        public static function getMaxCallServerParticipants()
        {
        }
        /**
         * Use this constructor only for creating new calls
         */
        public static function createWithEntity($type, $provider, $entityType, $entityId, $initiatorId)
        {
        }
        /**
         * @param string $type
         * @param string $provider
         * @param string $entityType
         * @param string $entityId
         * @return Call|null
         *
         * @throws ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function searchActive($type, $provider, $entityType, $entityId)
        {
        }
        /**
         * Creates new instance of the Call with values from the database.
         *
         * @param array $fields Call fields
         * @return Call
         */
        public static function createWithArray(array $fields)
        {
        }
        /**
         * Loads instance of the Call from the database using call's public id.
         *
         * @param string $publicId
         * @return Call|false
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function createWithPublicId($publicId)
        {
        }
        public static function loadWithId($id)
        {
        }
        public static function isCallServerEnabled()
        {
        }
        protected function getCurrentUserId() : int
        {
        }
        public static function onVoximplantConferenceFinished(\Bitrix\Main\Event $event)
        {
        }
    }
    class Util
    {
        /**
         * @param array $idList
         */
        public static function getUsers(array $idList)
        {
        }
    }
    /**
     * Class VideoStrategyType
     * @package BX\Im\Call
     * @see BX.Call.VideoStrategy.Type
     */
    class VideoStrategyType
    {
        public const ALLOW_ALL = 'AllowAll';
        public const ALLOW_NONE = 'AllowNone';
        public const ONLY_SPEAKER = 'OnlySpeaker';
        public const CURRENTLY_TALKING = 'CurrentlyTalking';
        public static function getList()
        {
        }
    }
}
namespace Bitrix\Im {
    class Dialog
    {
        public static function getRelation($userId1, $userId2, $params = array())
        {
        }
        public static function getChatId($dialogId, $userId = null)
        {
        }
        public static function hasAccess($dialogId, $userId = null)
        {
        }
        public static function read($dialogId, $messageId = null, $userId = null)
        {
        }
        public static function readAll($userId = null)
        {
        }
        public static function unread($dialogId, $messageId = null, $userId = null)
        {
        }
    }
    class LastSearch
    {
        const LIMIT = 30;
        const CACHE_TTL = 31536000;
        const CACHE_PATH = '/bx/im/search/last/';
        public static function add($dialogId, $userId = null)
        {
        }
        public static function delete($dialogId, $userId = null)
        {
        }
        public static function get($userId = null, $options = array())
        {
        }
        public static function clearCache($userId = null)
        {
        }
    }
    class Notify
    {
        public static function getRealCounter($chatId) : int
        {
        }
        public static function getRealCounters($chatId)
        {
        }
        public static function getCounter($chatId) : int
        {
        }
        public static function getCounters($chatId, $isReal = false)
        {
        }
    }
    /**
     * Color schema for contacts and chats without avatars
     * @package bitrix
     * @subpackage im
     */
    class Color
    {
        private static $colors = array('RED' => '#df532d', 'GREEN' => '#64a513', 'MINT' => '#4ba984', 'LIGHT_BLUE' => '#4ba5c3', 'DARK_BLUE' => '#3e99ce', 'PURPLE' => '#8474c8', 'AQUA' => '#1eb4aa', 'PINK' => '#f76187', 'LIME' => '#58cc47', 'BROWN' => '#ab7761', 'AZURE' => '#29619b', 'KHAKI' => '#728f7a', 'SAND' => '#ba9c7b', 'ORANGE' => '#e8a441', 'MARENGO' => '#556574', 'GRAY' => '#909090', 'GRAPHITE' => '#5e5f5e');
        private static $replaceColors = array('LIGHT_BLUE' => 'AZURE', 'AQUA' => 'SAND', 'PINK' => 'KHAKI');
        private static $unsafeColors = array('ORANGE' => '#e8a441');
        /**
         * @return bool
         */
        public static function isEnabled()
        {
        }
        /**
         * @return array
         */
        public static function getColors()
        {
        }
        /**
         * @return array
         */
        public static function getNames()
        {
        }
        /**
         * @return array
         */
        public static function getSafeColors()
        {
        }
        /**
         * @return array
         */
        public static function getSafeColorNames()
        {
        }
        /**
         * @param string $color
         * @return string|null
         */
        public static function getCode($color)
        {
        }
        /**
         * @return array
         */
        public static function getReplaceColors()
        {
        }
        /**
         * @param string $code
         * @return string|null
         */
        public static function getColor($code)
        {
        }
        /**
         * @param string $code
         * @return string|null
         */
        public static function getName($code)
        {
        }
        /**
         * @param int $number
         * @return string
         */
        public static function getColorByNumber($number)
        {
        }
        /**
         * @param int $number
         * @return string
         */
        public static function getNameByNumber($number)
        {
        }
        /**
         * @param int $number
         * @return string
         */
        public static function getCodeByNumber($number)
        {
        }
        public static function isSafeColor($code)
        {
        }
        public static function getRandomColor()
        {
        }
        public static function getRandomCode()
        {
        }
    }
    class Department
    {
        public static function getColleagues($userId = null, $options = array())
        {
        }
        public static function getDepartmentYouManage($userId = null, $options = array())
        {
        }
        public static function getStructure($options = array())
        {
        }
        public static function getManagers($ids = null, $options = array())
        {
        }
        public static function getEmployeesList($ids = null, $options = array())
        {
        }
        public static function getEmployees($ids = null, $options = array())
        {
        }
    }
    class Command
    {
        const CACHE_TTL = 31536000;
        const CACHE_PATH = '/bx/im/command/';
        public static function register(array $fields)
        {
        }
        public static function unRegister(array $command)
        {
        }
        public static function update(array $command, array $updateFields)
        {
        }
        public static function onCommandAdd($messageId, $messageFields)
        {
        }
        public static function addMessage(array $access, array $messageFields)
        {
        }
        public static function getDialogId($messageFields)
        {
        }
        private static function findCommands($fields)
        {
        }
        private static function mergeWithDefaultCommands($commands)
        {
        }
        public static function getListCache($lang = LANGUAGE_ID)
        {
        }
        public static function getListForJs($lang = LANGUAGE_ID)
        {
        }
        public static function getListSonetForJs($lang = LANGUAGE_ID)
        {
        }
        public static function clearCache()
        {
        }
    }
}
namespace Bitrix\Im\Bot {
    class Token
    {
        const CACHE_TOKEN_TTL = 86400;
        const CACHE_TOKEN_PATH = '/bx/im/token/';
        public static function isActive($botId, $dialogId)
        {
        }
        public static function add($botId, $dialogId)
        {
        }
        public static function get($botId, $dialogId, $prolong = false)
        {
        }
        private static function getFromCache($botId)
        {
        }
    }
    class Keyboard
    {
        private $botId = 0;
        private $colors = array();
        private $buttons = array();
        private $voteMode = false;
        function __construct($botId = 0, array $colors = array(), $voteMode = false)
        {
        }
        private function setDefaultColor(array $colors)
        {
        }
        public function addButton($params)
        {
        }
        public function addNewLine()
        {
        }
        public static function getKeyboardByJson($params, $textReplace = array(), $options = array())
        {
        }
        public function isEmpty()
        {
        }
        public function isAllowSize()
        {
        }
        public function getArray()
        {
        }
        public function getJson()
        {
        }
    }
    class Department
    {
        const XML_ID = "im_bot";
        public static function getId()
        {
        }
    }
    class ContextMenu
    {
        private $botId = 0;
        private $items = array();
        function __construct($botId = 0)
        {
        }
        public function addItem($params)
        {
        }
        public static function getByJson($params, $textReplace = array(), $options = array())
        {
        }
        public function isEmpty()
        {
        }
        public function isAllowSize()
        {
        }
        public function getArray()
        {
        }
        public function getJson()
        {
        }
    }
}
namespace Bitrix\Im\Disk {
    class NoRelationPermission
    {
        const ACCESS_TIME = 86400;
        const CACHE_TIME = 864000;
        public static function add($chatId, $userId)
        {
        }
        public static function delete($chatId, $userId, $permissionDisk = true)
        {
        }
        public static function cleaningAgent()
        {
        }
    }
}
namespace Bitrix\Im\Disk\ProxyType {
    class Im extends \Bitrix\Disk\ProxyType\Base
    {
        /**
         * @param $user
         * @return SecurityContext
         */
        public function getSecurityContextByUser($user)
        {
        }
        /**
         * @inheritdoc
         */
        public function getStorageBaseUrl()
        {
        }
        /**
         * @inheritdoc
         */
        public function getEntityUrl()
        {
        }
        /**
         * @inheritdoc
         */
        public function getEntityTitle()
        {
        }
        /**
         * @inheritdoc
         */
        public function getEntityImageSrc($width, $height)
        {
        }
        /**
         * @inheritdoc
         */
        public function getTitle()
        {
        }
    }
}
namespace Bitrix\Im {
    class Helper
    {
        public static function getOnlineIntranetUsers()
        {
        }
    }
    class Log
    {
        public static function write($data)
        {
        }
    }
    class Common
    {
        public static function getPublicDomain()
        {
        }
        public static function objectEncode($params)
        {
        }
        public static function getCacheUserPostfix($id)
        {
        }
        public static function isChatId($id)
        {
        }
        public static function isDialogId($id)
        {
        }
        public static function getUserId($userId = null)
        {
        }
        public static function toJson($array, $camelCase = true)
        {
        }
        public static function getPullExtra()
        {
        }
    }
}
namespace Bitrix\Im\Replica {
    class MessageHandler extends \Bitrix\Replica\Client\BaseHandler
    {
        protected $tableName = "b_im_message";
        protected $moduleId = "im";
        protected $className = "\\Bitrix\\Im\\Model\\MessageTable";
        protected $primary = array("ID" => "auto_increment");
        protected $predicates = array("AUTHOR_ID" => "b_user.ID", "CHAT_ID" => "b_im_chat.ID");
        protected $translation = array("ID" => "b_im_message.ID", "CHAT_ID" => "b_im_chat.ID", "AUTHOR_ID" => "b_user.ID");
        protected $fields = array("DATE_CREATE" => "datetime", "MESSAGE" => "text", "MESSAGE_OUT" => "text");
        const LOADER_PLACEHOLDER = '[B][/B]';
        /**
         * Called before log write. You may return false and not log write will take place.
         *
         * @param array $record Database record.
         * @return boolean
         */
        public function beforeLogInsert(array $record)
        {
        }
        /**
         * Method will be invoked before new database record inserted.
         * When an array returned the insert will be cancelled and map for
         * returned record will be added.
         *
         * @param array &$newRecord All fields of inserted record.
         *
         * @return null|array
         */
        public function beforeInsertTrigger(array &$newRecord)
        {
        }
        /**
         * Method will be invoked before an database record updated.
         *
         * @param array $oldRecord All fields before update.
         * @param array &$newRecord All fields after update.
         *
         * @return void
         */
        public function beforeUpdateTrigger(array $oldRecord, array &$newRecord)
        {
        }
        /**
         * Replaces some BB codes on receiver to display them properly.
         *
         * @param string $message A message.
         *
         * @return string
         */
        protected function fixMessage($message)
        {
        }
        /**
         * Method will be invoked after new database record inserted.
         *
         * @param array $newRecord All fields of inserted record.
         *
         * @return void
         */
        public function afterInsertTrigger(array $newRecord)
        {
        }
        /**
         * Method will be invoked after an database record updated.
         *
         * @param array $oldRecord All fields before update.
         * @param array $newRecord All fields after update.
         *
         * @return void
         */
        public function afterUpdateTrigger(array $oldRecord, array $newRecord)
        {
        }
        /**
         * Called before record transformed for log writing.
         *
         * @param array &$record Database record.
         *
         * @return void
         */
        public function beforeLogFormat(array &$record)
        {
        }
    }
    class StatusHandler extends \Bitrix\Replica\Client\BaseHandler
    {
        public $insertIgnore = true;
        protected $tableName = "b_im_status";
        protected $moduleId = "im";
        protected $className = "\\Bitrix\\Im\\Model\\StatusTable";
        protected $primary = array("USER_ID" => "integer");
        protected $predicates = array("USER_ID" => "b_im_status.USER_ID");
        protected $translation = array("USER_ID" => "b_im_status.USER_ID");
        protected $fields = array("IDLE" => "datetime", "DESKTOP_LAST_DATE" => "datetime", "MOBILE_LAST_DATE" => "datetime", "EVENT_UNTIL_DATE" => "datetime");
        /**
         * Method will be invoked after new database record inserted.
         *
         * @param array $newRecord All fields of inserted record.
         *
         * @return void
         */
        public function afterInsertTrigger(array $newRecord)
        {
        }
        /**
         * Method will be invoked after an database record updated.
         *
         * @param array $oldRecord All fields before update.
         * @param array $newRecord All fields after update.
         *
         * @return void
         */
        public function afterUpdateTrigger(array $oldRecord, array $newRecord)
        {
        }
        /**
         * OnUserSetLastActivityDate event handler.
         * Checks all users if they are marked for replication hence he is "remote".
         * Then sends im_status_update operation to the database where this user is "local".
         *
         * @param \Bitrix\Main\Event $event Event object.
         *
         * @return void
         * @see \Bitrix\Im\Replica\StatusHandler::handleStatusUpdateOperation
         */
        public function onUserSetLastActivityDate(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Updates user last activity date.
         *
         * @param array $event Event made by onUserSetLastActivityDate method.
         * @param string $nodeFrom Source database.
         * @param string $nodeTo Target database.
         *
         * @return void
         * @see \Bitrix\Im\Replica\StatusHandler::onUserSetLastActivityDate
         */
        public function handleStatusUpdateOperation($event, $nodeFrom, $nodeTo)
        {
        }
        /**
         * OnAfterRegisterUserByNetwork event handler.
         * Checks if user is marked for replication hence he is "remote".
         * Then sends im_status_bind operation to the database where this user is "local".
         *
         * @param \Bitrix\Main\Event $event Event object.
         *
         * @return void
         * @see \Bitrix\Im\Replica\StatusHandler::handleStatusBindOperation
         */
        public function onStartUserReplication(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Registers b_im_status record in the replication map
         * and sends the record back as an insert operation.
         *
         * @param array $event Event made by onStartUserReplication method.
         * @param string $nodeFrom Source database.
         * @param string $nodeTo Target database.
         *
         * @return void
         * @see \Bitrix\Im\Replica\StatusHandler::onStartUserReplication
         */
        public function handleStatusBindOperation($event, $nodeFrom, $nodeTo)
        {
        }
        /**
         * OnAfterRecentDelete event handler.
         * Sends "unsubscribe" message from b_im_message changes to peer database.
         *
         * @param \Bitrix\Main\Event $event Event object.
         *
         * @return void
         * @see \Bitrix\Im\Replica\StatusHandler::handleStatusUnbindOperation
         */
        public function OnAfterRecentDelete(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Deletes b_im_status record from the replication map
         *
         * @param array $event Event made by OnAfterRecentDelete method.
         * @param string $nodeFrom Source database.
         * @param string $nodeTo Target database.
         *
         * @return void
         * @see \Bitrix\Im\Replica\StatusHandler::OnAfterRecentDelete
         */
        public function handleStatusUnbindOperation($event, $nodeFrom, $nodeTo)
        {
        }
        /**
         * OnAfterRecentAdd event handler.
         * Sends "subscribe" message for b_im_message changes to peer database.
         *
         * @param \Bitrix\Main\Event $event Event object.
         *
         * @return void
         * @see \Bitrix\Im\Replica\StatusHandler::handleStatusRebindOperation
         */
        public function OnAfterRecentAdd(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Registers b_im_status record in the replication map
         * and sends the record back as an update operation.
         *
         * @param array $event Event made by OnAfterRecentAdd method.
         * @param string $nodeFrom Source database.
         * @param string $nodeTo Target database.
         *
         * @return void
         * @see \Bitrix\Im\Replica\StatusHandler::OnAfterRecentAdd
         */
        public function handleStatusRebindOperation($event, $nodeFrom, $nodeTo)
        {
        }
    }
    class ChatHandler extends \Bitrix\Replica\Client\BaseHandler
    {
        protected $tableName = "b_im_chat";
        protected $moduleId = "im";
        protected $className = "\\Bitrix\\Im\\Model\\ChatTable";
        protected $primary = array("ID" => "auto_increment");
        protected $predicates = array("AUTHOR_ID" => "b_user.ID");
        protected $translation = array("ID" => "b_im_chat.ID", "AUTHOR_ID" => "b_user.ID", "AVATAR" => "b_file.ID", "LAST_MESSAGE_ID" => "b_im_message.ID");
        protected $children = array("ID" => "b_im_relation.CHAT_ID");
        protected $fields = array("TITLE" => "text", "DESCRIPTION" => "text", "DATE_CREATE" => "datetime");
        /**
         * Method will be invoked before new database record inserted.
         * When an array returned the insert will be cancelled and map for
         * returned record will be added.
         *
         * @param array &$newRecord All fields of inserted record.
         *
         * @return null|array
         */
        public function beforeInsertTrigger(array &$newRecord)
        {
        }
        /**
         * Method will be invoked before an database record updated.
         *
         * @param array $oldRecord All fields before update.
         * @param array &$newRecord All fields after update.
         *
         * @return void
         */
        public function beforeUpdateTrigger(array $oldRecord, array &$newRecord)
        {
        }
        /**
         * Method will be invoked after an database record updated.
         *
         * @param array $oldRecord All fields before update.
         * @param array $newRecord All fields after update.
         *
         * @return void
         */
        public function afterUpdateTrigger(array $oldRecord, array $newRecord)
        {
        }
    }
    class RelationHandler extends \Bitrix\Replica\Client\BaseHandler
    {
        protected $tableName = "b_im_relation";
        protected $moduleId = "im";
        protected $className = "\\Bitrix\\Im\\Model\\RelationTable";
        protected $primary = array("ID" => "auto_increment");
        protected $predicates = array("CHAT_ID" => "b_im_chat.ID", "USER_ID" => "b_user.ID");
        protected $translation = array("ID" => "b_im_relation.ID", "CHAT_ID" => "b_im_chat.ID", "USER_ID" => "b_user.ID", "START_ID" => "b_im_message.ID", "LAST_ID" => "b_im_message.ID", "LAST_SEND_ID" => "b_im_message.ID");
        protected $fields = array("LAST_READ" => "datetime");
        /**
         * Method will be invoked before new database record inserted.
         * When an array returned the insert will be cancelled and map for
         * returned record will be added.
         *
         * @param array &$newRecord All fields of inserted record.
         *
         * @return null|array
         */
        public function beforeInsertTrigger(array &$newRecord)
        {
        }
        /**
         * Called before update operation log write. You may return false and not log write will take place.
         *
         * @param array $record Database record.
         *
         * @return boolean
         */
        public function beforeLogUpdate(array $record)
        {
        }
        /**
         * Called before log write. You may return false and not log write will take place.
         *
         * @param array $record Database record.
         * @return boolean
         */
        public function beforeLogInsert(array $record)
        {
        }
        /**
         * Method will be invoked after an database record updated.
         *
         * @param array $oldRecord All fields before update.
         * @param array $newRecord All fields after update.
         *
         * @return void
         */
        public function afterUpdateTrigger(array $oldRecord, array $newRecord)
        {
        }
    }
    class MessageParamHandler extends \Bitrix\Replica\Client\BaseHandler
    {
        protected $tableName = "b_im_message_param";
        protected $moduleId = "im";
        protected $className = "\\Bitrix\\Im\\Model\\MessageParamTable";
        protected $primary = array("ID" => "auto_increment");
        protected $predicates = array("MESSAGE_ID" => "b_im_message.ID");
        public function __construct()
        {
        }
        /**
         * Called before log write. You may return false and not log write will take place.
         *
         * @param array $record Database record.
         *
         * @return boolean
         */
        public function beforeLogInsert(array $record)
        {
        }
        /**
         * Method will be invoked before new database record inserted.
         * When an array returned the insert will be cancelled and map for
         * returned record will be added.
         *
         * @param array &$newRecord All fields of inserted record.
         *
         * @return null|array
         */
        public function beforeInsertTrigger(array &$newRecord)
        {
        }
        /**
         * Returns relation depending on record values.
         *
         * @param array $record Database record.
         * @return string|false
         */
        public static function paramValueTranslation($record)
        {
        }
        /**
         * Called before record transformed for log writing.
         *
         * @param array &$record Database record.
         *
         * @return void
         */
        public function beforeLogFormat(array &$record)
        {
        }
        /**
         * Method will be invoked after new database record inserted.
         *
         * @param array $newRecord All fields of inserted record.
         *
         * @return void
         */
        public function afterInsertTrigger(array $newRecord)
        {
        }
        public function afterDeleteTrigger(array $oldRecord)
        {
        }
    }
    class StartWritingHandler extends \Bitrix\Replica\Client\BaseHandler
    {
        protected $moduleId = "im";
        public function initDataManagerEvents()
        {
        }
        function onStartWriting($params)
        {
        }
        function onExecuteStartWriting(\Bitrix\Main\Event $event)
        {
        }
    }
    class Bind
    {
        /** @var \Bitrix\Im\Replica\StatusHandler */
        protected static $statusHandler = null;
        /**
         * Initializes replication process on im side.
         *
         * @return void
         */
        public function start()
        {
        }
    }
}
namespace Bitrix\Im {
    class Alias
    {
        const ENTITY_TYPE_USER = 'USER';
        const ENTITY_TYPE_CHAT = 'CHAT';
        const ENTITY_TYPE_OPEN_LINE = 'LINES';
        const ENTITY_TYPE_LIVECHAT = 'LIVECHAT';
        const ENTITY_TYPE_VIDEOCONF = 'VIDEOCONF';
        const ENTITY_TYPE_OTHER = 'OTHER';
        const CACHE_TTL = 31536000;
        const CACHE_PATH = '/bx/im/alias/';
        const FILTER_BY_ALIAS = 'alias';
        const FILTER_BY_ID = 'id';
        public static function add(array $fields)
        {
        }
        public static function addUnique(array $fields)
        {
        }
        public static function update($id, $fields)
        {
        }
        public static function delete($id, $filter = self::FILTER_BY_ID)
        {
        }
        public static function get($alias)
        {
        }
        public static function getByEntity($entityType, $entityId)
        {
        }
        public static function prepareAlias($alias)
        {
        }
        public static function getPublicLink($type, $alias)
        {
        }
        public static function generateUnique()
        {
        }
    }
    class Chat
    {
        const TYPE_SYSTEM = 'S';
        const TYPE_PRIVATE = 'P';
        const TYPE_OPEN = 'O';
        const TYPE_THREAD = 'T';
        const TYPE_GROUP = 'C';
        const TYPE_OPEN_LINE = 'L';
        const STATUS_UNREAD = 0;
        const STATUS_NOTIFY = 1;
        const STATUS_READ = 2;
        const LIMIT_SEND_EVENT = 30;
        const FILTER_LIMIT = 50;
        public static function getTypes()
        {
        }
        public static function getType($chatData)
        {
        }
        public static function getRelation($chatId, $params = [])
        {
        }
        public static function mute($chatId, $action, $userId = null)
        {
        }
        public static function getMessageCount($chatId, $userId = null)
        {
        }
        public static function hasAccess($chatId)
        {
        }
        /**
         * @param $chatId
         * @param null $userId
         * @param array $options
         * @return array|bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getMessages($chatId, $userId = null, $options = array())
        {
        }
        public static function getUsers($chatId, $options = [])
        {
        }
        /**
         * @param $id
         * @param array $params
         * @return array|bool|mixed
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getById($id, $params = array())
        {
        }
        public static function getList($params = array())
        {
        }
        public static function getListParams($params)
        {
        }
        /**
         * Makes user dialog relation visible in left bar and return this new relation
         *
         * @param $dialogId
         * @param $userId
         *
         * @return array|mixed
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function makeRelationShow($dialogId, $userId)
        {
        }
        public static function toJson($array)
        {
        }
        public static function isUserInChat($chatId, $userId = 0) : bool
        {
        }
        public static function isUserKickedFromChat($chatId, $userId = 0) : bool
        {
        }
    }
}
namespace Bitrix\Im\Rest\v1 {
    class Revision extends \Bitrix\Main\Engine\Controller
    {
        /**
         * @restMethod im.revision.get
         *
         * @return array
         */
        public function getAction()
        {
        }
    }
    class Call extends \Bitrix\Main\Engine\Controller
    {
        public function createAction($type, $provider, $entityType, $entityId, $joinExisting = false)
        {
        }
        public function createChildCallAction($parentId, $newProvider, $newUsers)
        {
        }
        public function tryJoinCallAction($type, $provider, $entityType, $entityId)
        {
        }
        public function getAction($callId)
        {
        }
        public function inviteAction($callId, array $userIds, $video = "N")
        {
        }
        public function cancelAction($callId)
        {
        }
        public function answerAction($callId, $callInstanceId)
        {
        }
        public function declineAction($callId, $callInstanceId, $code = 603)
        {
        }
        /**
         * @param $callId
         * @return bool
         */
        public function pingAction($callId, $requestId, $retransmit = true)
        {
        }
        public function negotiationNeededAction($callId, $userId, $restart = false)
        {
        }
        public function connectionOfferAction($callId, $userId, $connectionId, $sdp, $userAgent)
        {
        }
        public function connectionAnswerAction($callId, $userId, $connectionId, $sdp, $userAgent)
        {
        }
        public function iceCandidateAction($callId, $userId, $connectionId, array $candidates)
        {
        }
        public function hangupAction($callId, $callInstanceId, $retransmit = true)
        {
        }
        public function getUsersAction($callId, array $userIds)
        {
        }
        protected function checkCallAccess(\Bitrix\Im\Call\Call $call, $userId)
        {
        }
    }
}
namespace Bitrix\Im {
    class Text
    {
        private static $replacements = array();
        private static $parsers = array();
        public static function parse($text, $params = array())
        {
        }
        /**
         * @param $text
         * @return \Bitrix\Main\Text\DateConverterResult[]
         */
        public static function getDateConverterParams($text)
        {
        }
        public static function isOnlyEmoji($text)
        {
        }
        public static function setReplacement($match)
        {
        }
        public static function recoverReplacements($text)
        {
        }
        public static function modifyShortUserTag($matches)
        {
        }
        public static function removeBbCodes($text, $withFile = false, $withAttach = false)
        {
        }
        public static function encodeEmoji($text)
        {
        }
        public static function decodeEmoji($text)
        {
        }
    }
}
namespace {
    class storeassist extends \CModule
    {
        var $MODULE_ID = "storeassist";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function storeassist()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function InstallDB()
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function UnInstallFiles()
        {
        }
    }
    class CStoreAssist
    {
        static $arAllPageId = array("currencies", "cat_group_admin", "cat_measure_list", "sale_report_edit", "sale_person_type", "locations", "sale_buyers", "sale_status", "cat_store_list", "storeassist_social", "cat_product_list", "quantity", "cat_store_document_list", "order_setting", "reserve_setting", "storeassist_1c_catalog_fill", "1c_integration", "storeassist_1c_unloading", "1c_exchange", "storeassist_1c_exchange_realtime", "storeassist_1c_small_firm", "sale_pay_system", "sale_delivery", "sale_delivery_service_list", "storeassist_seo_settings", "seo_robots", "seo_sitemap", "seo_search_yandex", "seo_search_google", "search_reindex", "storeassist_adaptive", "opening", "checklist", "storeassist_context_adv", "cat_discount_admin", "storeassist_marketing", "posting_admin", "cat_export_setup", "sale_ymarket", "ebay", "sale_order", "sale_report", "storeassist_print", "client", "sale_account_admin", "sale_basket", "sale_personalization", "sale_crm", "storeassist_crm_client", "storeassist_crm_calls", "site_speed", "composite", "bitrixcloud_cdn", "perfmon_panel", "security_filter", "dump_auto", "bitrixcloud_monitoring_admin", "security_scanner", "security_otp", "scale_graph", "cluster_index", "storeassist_virtual", "blog_comment", "ticket_desktop", "site_checker", "info_vk", "info_blog", "info_forum_guest", "info_forum_client", "info_idea", "info_user_doc", "info_api_doc", "info_courses", "support_developer", "support_bitrix");
        public static function setSettingOption($pageId, $isDone)
        {
        }
        public static function getSettingOption()
        {
        }
        public static function getDocumentationLink($pageId)
        {
        }
        public static function onPrologAdminTitle($pageUrl, $pageId = "")
        {
        }
        public static function onBuildGlobalMenu(&$arGlobalMenu, &$arModuleMenu)
        {
        }
        public static function getProgressPercent()
        {
        }
        public static function AgentCountDayOrders()
        {
        }
    }
    class bitrixcloud extends \CModule
    {
        var $MODULE_ID = "bitrixcloud";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "N";
        var $errors = \false;
        function bitrixcloud()
        {
        }
        function GetModuleTasks()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        public function migrateToBox()
        {
        }
    }
    class CBitrixCloudException extends \Exception
    {
        protected $error_code = "";
        protected $debug_info = "";
        public function __construct($message = "", $error_code = "", $debug_info = "")
        {
        }
        public final function getErrorCode()
        {
        }
        public final function getDebugInfo()
        {
        }
    }
    abstract class CBitrixCloudWebService
    {
        private $debug = \false;
        private $timeout = 0;
        private $server = \null;
        /**
         * Returns URL to update policy
         *
         * @param array[string]string $arParams
         * @return string
         *
         */
        protected abstract function getActionURL($arParams = array());
        /**
         * Returns action response XML
         *
         * @param string $action
         * @return CDataXML
         * @throws CBitrixCloudException
         */
        protected function action($action)
        {
        }
        /**
         * Sets debug mode for remote service.
         * Returns previous mode value.
         *
         * @param bool $bActive
         * @return bool
         *
         */
        public function setDebug($bActive)
        {
        }
        /**
         *
         * @param int $timeout
         * @return int
         *
         */
        public function setTimeout($timeout)
        {
        }
        /**
         * Returns remote server status.
         * Return null if no action was performed.
         *
         * @return mixed
         *
         */
        public function getServerStatus()
        {
        }
        /**
         * Returns remote server response body.
         * Return null if no action was performed.
         *
         * @return mixed
         *
         */
        public function getServerResult()
        {
        }
    }
    class CBitrixCloudBackupWebService extends \CBitrixCloudWebService
    {
        private $addParams = array();
        private $addStr = "";
        /**
         * Returns URL to backup webservice
         *
         * @param array[string]string $arParams
         * @return string
         *
         */
        protected function getActionURL($arParams = array())
        {
        }
        /**
         * Returns action response XML and check CRC
         *
         * @param string $action
         * @return CDataXML
         * @throws CBitrixCloudException
         */
        protected function backup_action($action)
        {
        }
        /**
         *
         * @return CDataXML
         *
         */
        public function actionGetInformation()
        {
        }
        /**
         *
         * @param string $check_word
         * @param string $file_name
         * @return CDataXML
         *
         */
        public function actionReadFile($check_word, $file_name)
        {
        }
        /**
         *
         * @param string $check_word
         * @param string $file_name
         * @return CDataXML
         *
         */
        public function actionWriteFile($check_word, $file_name)
        {
        }
        /**
         *
         * @param string $secret_key
         * @param string $url
         * @param int $time
         * @param array $weekdays
         * @return CDataXML
         *
         */
        public function actionAddBackupJob($secret_key, $url, $time = 0, $weekdays = array())
        {
        }
        /**
         *
         * @return CDataXML
         * @throws CBitrixCloudException
         */
        public function actionDeleteBackupJob()
        {
        }
        /**
         *
         * @return CDataXML
         * @throws CBitrixCloudException
         */
        public function actionGetBackupJob()
        {
        }
    }
    class CBitrixCloudCDNLocation
    {
        private $name = "";
        private $proto = "";
        private $prefixes = array();
        /** @var array[int]CBitrixCloudCDNClass $classes */
        private $classes = array();
        /** @var array[int]CBitrixCloudCDNServerGroup $server_groups */
        private $server_groups = array();
        /**
         *
         * @return string
         *
         */
        public function getName()
        {
        }
        /**
         *
         * @return string
         *
         */
        public function getProto()
        {
        }
        /**
         *
         * @return array[int]string
         *
         */
        public function getPrefixes()
        {
        }
        /**
         *
         * @param array[int]string $prefixes
         * @return CBitrixCloudCDNLocation
         *
         */
        public function setPrefixes($prefixes)
        {
        }
        /**
         *
         * @param string $name
         * @param string $proto
         * @param array[int]string $prefixes
         * @return void
         *
         */
        public function __construct($name, $proto, $prefixes)
        {
        }
        /**
         *
         * @return array[int]CBitrixCloudCDNClass
         *
         */
        public function getClasses()
        {
        }
        /**
         *
         * @return array[int]CBitrixCloudCDNServerGroup
         *
         */
        public function getServerGroups()
        {
        }
        /**
         *
         * @param CBitrixCloudCDNClass $file_class
         * @param CBitrixCloudCDNServerGroup $server_group
         * @return CBitrixCloudCDNLocation
         *
         */
        public function addService($file_class, $server_group)
        {
        }
        /**
         *
         * @param CDataXMLNode $node
         * @param CBitrixCloudCDNConfig $config
         * @return CBitrixCloudCDNLocation
         *
         */
        public static function fromXMLNode(\CDataXMLNode $node, \CBitrixCloudCDNConfig $config)
        {
        }
        /**
         *
         * @param string $name
         * @param string $value
         * @param CBitrixCloudCDNConfig $config
         * @return CBitrixCloudCDNLocation
         *
         */
        public static function fromOptionValue($name, $value, \CBitrixCloudCDNConfig $config)
        {
        }
        /**
         *
         * @return string
         *
         */
        public function getOptionValue()
        {
        }
        /**
         *
         * @param string $p_prefix
         * @param string $p_extension
         * @param string $p_link
         * @return string
         *
         */
        public function getServerNameByPrefixAndExtension($p_prefix, $p_extension, $p_link)
        {
        }
    }
    class CBitrixCloudCDNLocations implements \Iterator
    {
        private $locations = array();
        /**
         *
         * @param CBitrixCloudCDNLocation $location
         * @return CBitrixCloudCDNLocations
         *
         */
        public function addLocation(\CBitrixCloudCDNLocation $location)
        {
        }
        /**
         *
         * @param string $location_name
         * @return CBitrixCloudCDNLocation
         *
         */
        public function getLocationByName($location_name)
        {
        }
        /**
         *
         * @param CDataXMLNode $node
         * @param CBitrixCloudCDNConfig $config
         * @return CBitrixCloudCDNLocations
         *
         */
        public static function fromXMLNode(\CDataXMLNode $node, \CBitrixCloudCDNConfig $config)
        {
        }
        /**
         *
         * @param CBitrixCloudOption $option
         * @param CBitrixCloudCDNConfig $config
         * @return CBitrixCloudCDNLocations
         *
         */
        public static function fromOption(\CBitrixCloudOption $option, \CBitrixCloudCDNConfig $config)
        {
        }
        /**
         *
         * @param CBitrixCloudOption $option
         * @return CBitrixCloudCDNLocations
         *
         */
        public function saveOption(\CBitrixCloudOption $option)
        {
        }
        function rewind()
        {
        }
        function current()
        {
        }
        function key()
        {
        }
        function next()
        {
        }
        function valid()
        {
        }
    }
    class CBitrixCloudCDNConfig
    {
        private static $instance = \null;
        private $active = 0;
        private $expires = 0;
        //timestamp
        private $domain = "";
        private $https = \null;
        private $optimize = \null;
        private $kernel_rewrite = \null;
        private $content_rewrite = \null;
        private $sites = array();
        /** @var CBitrixCloudCDNQuota $quota */
        private $quota = \null;
        /** @var CBitrixCloudCDNClasses $classes */
        private $classes = \null;
        /** @var CBitrixCloudCDNServerGroups $server_groups */
        private $server_groups = \null;
        /** @var CBitrixCloudCDNLocations $locations */
        private $locations = \null;
        private $debug = \false;
        /**
         *
         *
         */
        private function __construct()
        {
        }
        /**
         * Returns proxy class instance (singleton pattern)
         *
         * @return CBitrixCloudCDNConfig
         *
         */
        public static function getInstance()
        {
        }
        /**
         *
         * @return CBitrixCloudCDNConfig
         * @throws CBitrixCloudException
         */
        public function updateQuota()
        {
        }
        /**
         * Loads and parses xml
         *
         * @param boolean $sendAdditionalInfo Flag to send https and optimize parameters.
         *
         * @return CBitrixCloudCDNConfig
         * @throws CBitrixCloudException
         */
        public function loadRemoteXML($sendAdditionalInfo = \false)
        {
        }
        /**
         * Checks if it is active in webservice
         *
         * @return bool
         *
         */
        public function isActive()
        {
        }
        /**
         * Checks if it is time to update policy
         *
         * @return bool
         *
         */
        public function isExpired()
        {
        }
        /**
         * Sets the time to update policy
         *
         * @param int $time
         * @return void
         *
         */
        public function setExpired($time)
        {
        }
        /**
         * Returns resources domain name
         *
         * @return string
         *
         */
        public function getDomain()
        {
        }
        /**
         * Sets resources domain name
         *
         * @param string $domain
         * @return CBitrixCloudCDNConfig
         *
         */
        public function setDomain($domain)
        {
        }
        /**
         * Returns flag of the kernel links (/bitrix/ or other) rewrite
         *
         * @param string $prefix
         * @return bool
         *
         */
        public function isKernelPrefix($prefix)
        {
        }
        /**
         * Returns true if site operates by https.
         *
         * @return bool
         *
         */
        public function isHttpsEnabled()
        {
        }
        /**
         * Sets flag of the https.
         *
         * @param bool $https
         * @return CBitrixCloudCDNConfig
         *
         */
        public function setHttps($https = \true)
        {
        }
        /**
         * Returns true if resources optimization is enabled.
         *
         * @return bool
         *
         */
        public function isOptimizationEnabled()
        {
        }
        /**
         * Sets flag of the optimization.
         *
         * @param bool $optimize
         * @return CBitrixCloudCDNConfig
         *
         */
        public function setOptimization($optimize = \true)
        {
        }
        /**
         * Returns flag of the kernel links (/bitrix/ or other) rewrite
         *
         * @return bool
         *
         */
        public function isKernelRewriteEnabled()
        {
        }
        /**
         * Sets flag of the kernel links (/bitrix/ or other) rewrite
         *
         * @param bool $rewrite
         * @return CBitrixCloudCDNConfig
         *
         */
        public function setKernelRewrite($rewrite = \true)
        {
        }
        /**
         * Returns flag of the content links (not kernel) rewrite
         *
         * @return bool
         *
         */
        public function isContentRewriteEnabled()
        {
        }
        /**
         * Sets flag of the content links (not kernel) rewrite
         *
         * @param bool $rewrite
         * @return CBitrixCloudCDNConfig
         *
         */
        public function setContentRewrite($rewrite = \true)
        {
        }
        /**
         * Returns array of sites
         *
         * @return array[string]string
         *
         */
        public function getSites()
        {
        }
        /**
         * Sets array of sites to enable CDN
         *
         * @param array[string]string $sites
         * @return CBitrixCloudCDNConfig
         *
         */
        public function setSites($sites)
        {
        }
        /**
         * Returns quota object
         *
         * @return CBitrixCloudCDNQuota
         *
         */
        public function getQuota()
        {
        }
        /**
         * Returns file class object by it's name
         *
         * @param string $class_name
         * @return CBitrixCloudCDNClass
         *
         */
        public function getClassByName($class_name)
        {
        }
        /**
         * Returns server group object by it's name
         *
         * @param string $server_group_name
         * @return CBitrixCloudCDNServerGroup
         *
         *
         */
        public function getServerGroupByName($server_group_name)
        {
        }
        /**
         * Returns configured locations
         *
         * @return CBitrixCloudCDNLocations
         *
         */
        public function getLocations()
        {
        }
        /**
         * Returns unique array of all prefixes across all locations
         *
         * @param bool $bKernel
         * @param bool $bContent
         * @return array[int]string
         *
         */
        public function getLocationsPrefixes($bKernel = \true, $bContent = \false)
        {
        }
        /**
         * Returns unique array of all extensions across all locations
         *
         * @return array[int]string
         *
         */
        public function getLocationsExtensions()
        {
        }
        /**
         * Saves configuration into CBitrixCloudOption
         *
         * @return CBitrixCloudCDNConfig
         *
         */
        public function saveToOptions()
        {
        }
        /**
         * Loads configuration from CBitrixCloudOption
         *
         * @return CBitrixCloudCDNConfig
         *
         */
        public function loadFromOptions()
        {
        }
        /**
         * @return bool
         *
         */
        public function lock()
        {
        }
        /**
         * @return void
         *
         */
        public function unlock()
        {
        }
        /**
         *
         * @param bool $bActive
         * @return void
         *
         */
        public function setDebug($bActive)
        {
        }
    }
    class CBitrixCloudCDNClass
    {
        private $name = "";
        private $extensions = array();
        /**
         *
         * @return string
         *
         */
        public function getName()
        {
        }
        /**
         *
         * @return array[int]string
         *
         */
        public function getExtensions()
        {
        }
        /**
         *
         * @param array[int]string $extensions
         * @return CBitrixCloudCDNClass
         *
         */
        public function setExtensions($extensions)
        {
        }
        /**
         *
         * @param string $name
         * @param array[int]string $extensions
         * @return void
         */
        public function __construct($name, $extensions)
        {
        }
        /**
         *
         * @param CDataXMLNode $node
         * @return CBitrixCloudCDNClass
         *
         */
        public static function fromXMLNode(\CDataXMLNode $node)
        {
        }
    }
    class CBitrixCloudCDNClasses
    {
        private $classes = array();
        /**
         *
         * @param CBitrixCloudCDNClass $file_class
         * @return CBitrixCloudCDNClasses
         *
         */
        public function addClass(\CBitrixCloudCDNClass $file_class)
        {
        }
        /**
         *
         * @param string $class_name
         * @return CBitrixCloudCDNClass
         *
         */
        public function getClass($class_name)
        {
        }
        /**
         *
         * @param CDataXMLNode $node
         * @return CBitrixCloudCDNClasses
         *
         */
        public static function fromXMLNode(\CDataXMLNode $node)
        {
        }
        /**
         *
         * @param CBitrixCloudOption $option
         * @return CBitrixCloudCDNClasses
         *
         */
        public static function fromOption(\CBitrixCloudOption $option)
        {
        }
        /**
         *
         * @param CBitrixCloudOption $option
         * @return CBitrixCloudCDNClasses
         *
         */
        public function saveOption(\CBitrixCloudOption $option)
        {
        }
    }
    abstract class CAllBitrixCloudOption
    {
        private $name = "";
        private $value = \null;
        /**
         *
         * @param string $name
         * @return void
         *
         */
        public function __construct($name)
        {
        }
        /**
         *
         * @return array[string]string
         *
         */
        private function _read_db()
        {
        }
        /**
         *
         * @return array[string][string]string
         *
         */
        private function _read_all_db()
        {
        }
        /**
         *
         * @return void
         *
         */
        private function _delete_db()
        {
        }
        /**
         *
         * @param array[string]string $value
         * @return void
         *
         */
        private function _write_db($value)
        {
        }
        /**
         *
         * @param array[string]string $value
         * @return void
         *
         */
        private function _update_db($value)
        {
        }
        /**
         *
         * @return boolean
         *
         */
        public function isExists()
        {
        }
        /**
         *
         * @return array[string]string
         *
         */
        public function getArrayValue()
        {
        }
        /**
         *
         * @return string
         *
         */
        public function getStringValue()
        {
        }
        /**
         *
         * @return int
         *
         */
        public function getIntegerValue()
        {
        }
        /**
         * @param array[string]string $value
         * @return void
         *
         */
        public function setArrayValue($value)
        {
        }
        /**
         * @param string $value
         * @return void
         *
         */
        public function setStringValue($value)
        {
        }
        /**
         * @return void
         *
         */
        public function delete()
        {
        }
    }
    class CBitrixCloudCDNServerGroup
    {
        private $name = "";
        private $servers = array();
        /**
         *
         * @return string
         *
         */
        public function getName()
        {
        }
        /**
         *
         * @return array[int]string
         *
         */
        public function getServers()
        {
        }
        /**
         *
         * @param array[int]string $servers
         * @return CBitrixCloudCDNServerGroup
         *
         */
        public function setServers($servers)
        {
        }
        /**
         *
         * @param string $name
         * @param array[int]string $servers
         * @return void
         *
         */
        public function __construct($name, $servers)
        {
        }
        /**
         *
         * @param CDataXMLNode $node
         * @return CBitrixCloudCDNServerGroup
         *
         */
        public static function fromXMLNode(\CDataXMLNode $node)
        {
        }
    }
    class CBitrixCloudCDNServerGroups
    {
        /** @var array[string]CBitrixCloudCDNServerGroup $groups */
        private $groups = array();
        /**
         *
         * @param CBitrixCloudCDNServerGroup $group
         * @return CBitrixCloudCDNServerGroups
         *
         */
        public function addGroup(\CBitrixCloudCDNServerGroup $group)
        {
        }
        /**
         *
         * @param string $group_name
         * @return CBitrixCloudCDNServerGroup
         *
         */
        public function getGroup($group_name)
        {
        }
        /**
         *
         * @param CDataXMLNode $node
         * @return CBitrixCloudCDNServerGroups
         *
         */
        public static function fromXMLNode(\CDataXMLNode $node)
        {
        }
        /**
         *
         * @param CBitrixCloudOption $option
         * @return CBitrixCloudCDNServerGroups
         *
         */
        public static function fromOption(\CBitrixCloudOption $option)
        {
        }
        /**
         *
         * @param CBitrixCloudOption $option
         * @return CBitrixCloudCDNServerGroups
         *
         */
        public function saveOption(\CBitrixCloudOption $option)
        {
        }
    }
    class CBitrixCloudMonitoring
    {
        private static $instance = \null;
        private $result = \null;
        private $interval = 0;
        /**
         * Returns proxy class instance (singleton pattern)
         *
         * @return CBitrixCloudMonitoring
         *
         */
        public static function getInstance()
        {
        }
        public function getConfiguredDomains()
        {
        }
        public function getList()
        {
        }
        public function addDevice($domain, $deviceId)
        {
        }
        public function deleteDevice($domain, $deviceId)
        {
        }
        public function getDevices($domain)
        {
        }
        /*
         * Registers new monitoring job with the remote service.
         * Returns empty string on success.
         *
         * @return string
         *
         */
        public function startMonitoring($domain, $is_https, $language_id, $emails, $tests)
        {
        }
        /*
         * Unregisters monitoring job with the remote service.
         * Returns empty string on success.
         *
         * @return string
         *
         */
        public function stopMonitoring($domain)
        {
        }
        public function setInterval($interval)
        {
        }
        public function getInterval()
        {
        }
        public function getMonitoringResults($interval = \false)
        {
        }
        public function getAlertsCurrentResult()
        {
        }
        public function getAlertsStored()
        {
        }
        public function storeAlertsCurrentResult()
        {
        }
        public function getWorstUptime($testId = "", $domainName = "")
        {
        }
        public static function startMonitoringAgent()
        {
        }
    }
    class CBitrixCloudBackup
    {
        private static $instance = \null;
        private $init = \false;
        private $infoXML = \null;
        private $quota = 0.0;
        private $files = array();
        private $total_size = 0.0;
        private $last_backup_time = 0;
        /**
         * Returns proxy class instance (singleton pattern)
         *
         * @return CBitrixCloudBackup
         *
         */
        public static function getInstance()
        {
        }
        /**
         * Loads and parses xml
         *
         * @param bool $force
         * @return bool
         *
         */
        private function _getInformation($force = \false)
        {
        }
        /**
         * Returns list of backup files
         *
         * @return array[int][string]string
         *
         */
        public function listFiles()
        {
        }
        /**
         * Returns amount of space available for backup
         *
         * @return float
         *
         */
        public function getQuota()
        {
        }
        /**
         * Returns amount of space used by backup files
         *
         * @return float
         *
         */
        public function getUsage()
        {
        }
        /**
         * Returns timestamp of the last saved backup
         *
         * @return int
         *
         */
        public function getLastTimeBackup()
        {
        }
        /**
         * Returns bucket object for backup operation.
         *
         * @param string $operation
         * @param string $check_word
         * @param string $file_name
         * @return CBitrixCloudBackupBucket
         * @throws CBitrixCloudException
         */
        private function _getBucket($operation, $check_word, $file_name)
        {
        }
        /**
         * Returns bucket object for downloading backup file.
         *
         * @param string $check_word
         * @param string $file_name
         * @return CBitrixCloudBackupBucket
         * @throws CBitrixCloudException
         */
        public function getBucketToReadFile($check_word, $file_name)
        {
        }
        /**
         * Returns bucket object for uploading backup file.
         *
         * @param string $check_word
         * @param string $file_name
         * @return CBitrixCloudBackupBucket
         * @throws CBitrixCloudException
         */
        public function getBucketToWriteFile($check_word, $file_name)
        {
        }
        /**
         * Deletes state stored in the database.
         *
         * @return CBitrixCloudBackup
         */
        public function clearOptions()
        {
        }
        /**
         * Saves state into the database.
         *
         * @return CBitrixCloudBackup
         */
        public function saveToOptions()
        {
        }
        /**
         * Restores state from the database.
         *
         * @return CBitrixCloudBackup
         */
        public function loadFromOptions()
        {
        }
        /**
         * Shows information about CDN free space in Admin's informer popup
         *
         * @return void
         */
        public static function OnAdminInformerInsertItems()
        {
        }
        /*
         * Registers new backup job with the remote service.
         * Returns empty string on success.
         *
         * @param string $secret_key
         * @param string $url
         * @param int $time
         * @param array $weekdays
         * @return string
         *
         */
        public function addBackupJob($secret_key, $url, $time = 0, $weekdays = array())
        {
        }
        /*
         * Cancels backup job with the remote service.
         * Returns empty string on success.
         *
         * @return string
         *
         */
        public function deleteBackupJob()
        {
        }
        public function getBackupJob()
        {
        }
    }
    interface CBitrixCloudMonitoring_Access extends \Iterator, \ArrayAccess
    {
    }
    class CBitrixCloudMonitoringTest
    {
        private $name = "";
        private $status = "";
        private $time = 0;
        private $uptime = "";
        private $result = "";
        /**
         *
         * @param string $name
         * @param string $status
         * @param int $time UTC timestamp
         * @param string $result
         * @return void
         *
         */
        public function __construct($name, $status, $time, $uptime, $result)
        {
        }
        /**
         *
         * @return string
         *
         */
        public function getName()
        {
        }
        /**
         *
         * @return string
         *
         */
        public function getStatus()
        {
        }
        /**
         *
         * @return string
         *
         */
        public function getResult()
        {
        }
        /**
         *
         * @return string
         *
         */
        public function getUptime()
        {
        }
        /**
         *
         * @return string
         *
         */
        public function getTime()
        {
        }
        /**
         *
         * @param CDataXMLNode $node
         * @return CBitrixCloudMonitoringTest
         *
         */
        public static function fromXMLNode(\CDataXMLNode $node)
        {
        }
    }
    class CBitrixCloudMonitoringDomainResult implements \CBitrixCloudMonitoring_Access
    {
        /** @var string $name */
        private $name = "";
        /** @var array[int]CBitrixCloudMonitoringTest $tests */
        private $tests = array();
        /**
         *
         * @return string
         *
         */
        public function getName()
        {
        }
        /**
         *
         * @return string
         *
         */
        public function getStatus()
        {
        }
        /**
         *
         * @param string $name
         * @param array [int]CBitrixCloudMonitoringTest $tests
         * @return void
         *
         */
        public function __construct($name, array $tests)
        {
        }
        /**
         *
         * @param string $testName
         * @return CBitrixCloudMonitoringTest
         *
         */
        public function getTestByName($testName)
        {
        }
        /**
         *
         * @return array[int]CBitrixCloudMonitoringTest
         *
         */
        public function getTests()
        {
        }
        /**
         *
         * @param array [int]CBitrixCloudMonitoringTest $tests
         * @return CBitrixCloudMonitoringDomainResult
         *
         */
        public function setTests(array $tests)
        {
        }
        public function saveToOptions(\CBitrixCloudOption $option)
        {
        }
        public static function loadFromOptions($name, \CBitrixCloudOption $option)
        {
        }
        /**
         *
         * @param CDataXMLNode $node
         * @return CBitrixCloudMonitoringDomainResult
         *
         */
        public static function fromXMLNode(\CDataXMLNode $node)
        {
        }
        public function rewind()
        {
        }
        public function current()
        {
        }
        public function key()
        {
        }
        public function next()
        {
        }
        public function valid()
        {
        }
        public function offsetSet($offset, $value)
        {
        }
        public function offsetExists($offset)
        {
        }
        public function offsetUnset($offset)
        {
        }
        public function offsetGet($offset)
        {
        }
    }
    class CBitrixCloudMonitoringResult implements \CBitrixCloudMonitoring_Access
    {
        const GREEN_LAMP = 'green';
        const RED_LAMP = 'red';
        private $domains = array();
        /**
         *
         * @param CBitrixCloudMonitoringDomainResult $domainResult
         * @return CBitrixCloudMonitoringResult
         *
         */
        public function addDomainResult(\CBitrixCloudMonitoringDomainResult $domainResult)
        {
        }
        /**
         *
         * @param string $domainName
         * @return CBitrixCloudMonitoringDomainResult
         *
         */
        public function getResultByDomainName($domainName)
        {
        }
        /**
         *
         * @return string
         *
         */
        public function getStatus()
        {
        }
        public static function isExpired()
        {
        }
        public static function getExpirationTime()
        {
        }
        public static function setExpirationTime($time)
        {
        }
        public static function loadFromOptions()
        {
        }
        public function saveToOptions()
        {
        }
        /**
         *
         * @param CDataXMLNode $node
         * @return CBitrixCloudMonitoringResult
         *
         */
        public static function fromXMLNode(\CDataXMLNode $node)
        {
        }
        public function rewind()
        {
        }
        public function current()
        {
        }
        public function key()
        {
        }
        public function next()
        {
        }
        public function valid()
        {
        }
        public function offsetSet($offset, $value)
        {
        }
        public function offsetExists($offset)
        {
        }
        public function offsetUnset($offset)
        {
        }
        public function offsetGet($offset)
        {
        }
    }
    class CBitrixCloudBackupBucket extends \CCloudStorageBucket
    {
        private $file_name = "";
        private $check_word = "";
        /**
         *
         * @param string $bucket_name
         * @param string $prefix
         * @param string $access_key
         * @param string $secret_key
         * @param string $session_token
         * @param string $check_word
         * @param string $file_name
         * @param string $location
         */
        function __construct($bucket_name, $prefix, $access_key, $secret_key, $session_token, $check_word, $file_name, $location = "")
        {
        }
        /**
         *
         * @return string
         *
         */
        function getFileName()
        {
        }
        /**
         *
         * @return array[string]string
         *
         */
        function getHeaders()
        {
        }
        function setPublic($isPublic)
        {
        }
        function unsetCheckWordHeader()
        {
        }
        function setCheckWordHeader()
        {
        }
    }
    class CBitrixCloudMobile
    {
        /**
         * Builds menu
         *
         * @return void
         *
         * RegisterModuleDependences(
         * 	"mobileapp",
         * 	"OnBeforeAdminMobileMenuBuild",
         * 	"bitrixcloud",
         * 	"CBitrixCloudMobile",
         * 	"OnBeforeAdminMobileMenuBuild"
         * );
         */
        public static function OnBeforeAdminMobileMenuBuild()
        {
        }
        public static function getUserDevices($userId)
        {
        }
    }
    class CBitrixCloudMonitoringWebService extends \CBitrixCloudWebService
    {
        private $addParams = array();
        private $addStr = "";
        /**
         * Returns URL to backup webservice
         *
         * @param array[string]string $arParams
         * @return string
         *
         */
        protected function getActionURL($arParams = array())
        {
        }
        /**
         * Returns action response XML and check CRC
         *
         * @param string $action
         * @return CDataXML
         * @throws CBitrixCloudException
         */
        protected function monitoring_action($action)
        {
        }
        /**
         *
         * @return CDataXML
         * @throws CBitrixCloudException
         */
        public function actionGetList()
        {
        }
        /**
         *
         * @return CDataXML
         * @throws CBitrixCloudException
         */
        public function actionStart($domain, $is_https, $language_id, $emails, $tests)
        {
        }
        /**
         *
         * @return CDataXML
         * @throws CBitrixCloudException
         */
        public function actionStop($domain)
        {
        }
        /**
         *
         * @return CDataXML
         * @throws CBitrixCloudException
         */
        public function actionGetInfo()
        {
        }
    }
    class CBitrixCloudCDN
    {
        /**
         *
         * @var CBitrixCloudCDNConfig $config
         *
         */
        private static $config = \null;
        private static $proto = "";
        private static $ajax = \false;
        private static $domain_changed = \false;
        /**
         *
         * @return bool
         *
         */
        public static function IsActive()
        {
        }
        /**
         *
         * @return void
         * @throws CBitrixCloudException
         */
        private static function stop()
        {
        }
        /**
         *
         * @param bool $bActive
         * @param bool $force
         * @return bool
         *
         */
        public static function SetActive($bActive, $force = \false)
        {
        }
        /**
         *
         * @return bool
         *
         */
        private static function updateConfig()
        {
        }
        /**
         *
         * @param string &$content
         * @return void
         *
         */
        public static function OnEndBufferContent(&$content)
        {
        }
        /**
         *
         * @return void
         *
         */
        public static function domainChanged()
        {
        }
        /**
         *
         * @param string $str
         * @return string
         *
         */
        private static function _preg_quote($str)
        {
        }
        /**
         *
         * @param array[int]string $match
         * @return string
         *
         */
        private static function _filter($match)
        {
        }
        /**
         * Shows information about CDN free space in Admin's informer popup
         *
         * @return void
         */
        public static function OnAdminInformerInsertItems()
        {
        }
    }
    class CBitrixCloudCDNQuota
    {
        private $expires = 0;
        private $allowed = 0.0;
        private $traffic = 0.0;
        /**
         *
         * @return float
         *
         */
        public function getAllowedSize()
        {
        }
        /**
         *
         * @return float
         *
         */
        public function getTrafficSize()
        {
        }
        /**
         * Checks if it is time to update quota info
         *
         * @return bool
         *
         */
        public function isExpired()
        {
        }
        /**
         *
         * @param int $expires
         * @return CBitrixCloudCDNQuota
         *
         */
        public function setExpires($expires)
        {
        }
        /**
         *
         * @param float $allowed
         * @return CBitrixCloudCDNQuota
         *
         */
        public function setAllowedSize($allowed)
        {
        }
        /**
         *
         * @param float $traffic
         * @return CBitrixCloudCDNQuota
         *
         */
        public function setTrafficSize($traffic)
        {
        }
        /**
         *
         * @param string $str
         * @return float
         *
         */
        public static function parseSize($str)
        {
        }
        /**
         *
         * @param CDataXMLNode $node
         * @return CBitrixCloudCDNQuota
         *
         */
        public static function fromXMLNode(\CDataXMLNode $node)
        {
        }
        /**
         *
         * @param CBitrixCloudOption $option
         * @return CBitrixCloudCDNQuota
         *
         */
        public static function fromOption(\CBitrixCloudOption $option)
        {
        }
        /**
         *
         * @param CBitrixCloudOption $option
         * @return CBitrixCloudCDNQuota
         *
         */
        public function saveOption(\CBitrixCloudOption $option)
        {
        }
    }
    class CBitrixCloudCDNWebService extends \CBitrixCloudWebService
    {
        private $domain = "";
        private $https = \null;
        private $optimize = \null;
        /**
         *
         * @param string $domain
         * @return void
         *
         */
        public function __construct($domain, $optimize = \null, $https = \null)
        {
        }
        /**
         * Returns URL to update policy
         *
         * @param array[string]string $arParams
         * @return string
         *
         */
        protected function getActionURL($arParams = array())
        {
        }
        /**
         *
         * @return CDataXML
         *
         */
        public function actionQuota()
        {
        }
        /**
         *
         * @return CDataXML
         *
         */
        public function actionStop()
        {
        }
        /**
         *
         * @return CDataXML
         *
         */
        public function actionGetConfig()
        {
        }
    }
    class CBitrixCloudOption extends \CAllBitrixCloudOption
    {
        /**
         *
         * @param string $name
         * @return void
         *
         */
        public function __construct($name)
        {
        }
        /**
         * Fabric method
         *
         * @param string $name
         * @return CBitrixCloudOption
         *
         */
        public static function getOption($name)
        {
        }
        /**
         * @return bool
         *
         */
        public static function lock()
        {
        }
        /**
         * @return void
         *
         */
        public static function unlock()
        {
        }
    }
    class CCityLookup
    {
        public $is_installed = \false;
        public $ip_addr = "";
        public $ip_number = "";
        public $country_code = "";
        public $country_short_name = "";
        public $country_full_name = "";
        public $region_name = "";
        public $city_name = "";
        public $city_id = "";
        public $charset = "";
        /**
         * @param array[string]string $arDBRecord
         */
        function __construct($arDBRecord = array())
        {
        }
        /**
         * @param array[string]string $arDBRecord
         * @return CCityLookup
         */
        public static function OnCityLookup($arDBRecord = array())
        {
        }
        /**
         * @return array[string]string
         */
        function ArrayForDB()
        {
        }
        /**
         * @return array[string][string]string
         */
        function GetFullInfo()
        {
        }
        /**
         * @return array[string]mixed
         */
        function GetDescription()
        {
        }
        /**
         * @return bool
         */
        function IsInstalled()
        {
        }
        /**
         * @return void
         */
        function Lookup()
        {
        }
    }
    class CCityLookup_stat_table extends \CCityLookup
    {
        var $country_avail = \false;
        var $city_avail = \false;
        public static function OnCityLookup($arDBRecord = \false)
        {
        }
        function __construct($arDBRecord = \false)
        {
        }
        function GetFullInfo()
        {
        }
        function GetDescription()
        {
        }
        function IsInstalled()
        {
        }
        function Lookup()
        {
        }
    }
    /*
    GEOIP_ADDR 		83.219.130.40
    GEOIP_CONTINENT_CODE 	AS
    GEOIP_COUNTRY_CODE 	RU
    GEOIP_COUNTRY_NAME 	Russian Federation
    GEOIP_REGION 		23
    GEOIP_REGION_NAME 	Kaliningrad
    GEOIP_CITY 		Kaliningrad
    GEOIP_DMA_CODE 		0
    GEOIP_AREA_CODE 	0
    GEOIP_LATITUDE 		54.709999
    GEOIP_LONGITUDE 	20.500000
    */
    class CCityLookup_geoip_mod extends \CCityLookup
    {
        var $continent_code = \false;
        var $latitude = \false;
        var $longitude = \false;
        public static function OnCityLookup($arDBRecord = \false)
        {
        }
        function __construct($arDBRecord = \false)
        {
        }
        function ArrayForDB()
        {
        }
        function GetFullInfo()
        {
        }
        function GetDescription()
        {
        }
        function IsInstalled()
        {
        }
        function Lookup()
        {
        }
    }
    /*
    Array
    (
    	[country_code] => RU
    	[country_code3] => RUS
    	[country_name] => Russian Federation
    	[region] => 23
    	[city] => Kaliningrad
    	[postal_code] =>
    	[latitude] => 54.7099990845
    	[longitude] => 20.5
    	[dma_code] => 0
    	[area_code] => 0
    )
    */
    class CCityLookup_geoip_extension extends \CCityLookup
    {
        var $country_avail = \false;
        var $city_avail = \false;
        var $postal_code = \false;
        var $latitude = \false;
        var $longitude = \false;
        public static function OnCityLookup($arDBRecord = \false)
        {
        }
        function __construct($arDBRecord = \false)
        {
        }
        function ArrayForDB()
        {
        }
        function GetFullInfo()
        {
        }
        function GetDescription()
        {
        }
        function IsInstalled()
        {
        }
        function Lookup()
        {
        }
    }
    /*
    geoiprecord Object
    (
    	[country_code] => RU
    	[country_code3] => RUS
    	[country_name] => Russian Federation
    	[region] => 23
    	[city] => Kaliningrad
    	[postal_code] =>
    	[latitude] => -122.2372
    	[longitude] => 69.82
    	[area_code] =>
    	[dma_code] =>
    )
    */
    class CCityLookup_geoip_pure extends \CCityLookup
    {
        var $country_avail = \false;
        var $city_avail = \false;
        var $postal_code = \false;
        var $latitude = \false;
        var $longitude = \false;
        public static function OnCityLookup($arDBRecord = \false)
        {
        }
        function __construct($arDBRecord = \false)
        {
        }
        function ArrayForDB()
        {
        }
        function GetFullInfo()
        {
        }
        function GetDescription()
        {
        }
        function IsInstalled()
        {
        }
        function Lookup()
        {
        }
    }
    class statistic extends \CModule
    {
        var $MODULE_ID = "statistic";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        var $errors;
        function statistic()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function GetModuleRightList()
        {
        }
        public static function OnGetTableList()
        {
        }
    }
    class CAllSearcher
    {
        public static function DynamicDays($SEARCHER_ID, $date1 = "", $date2 = "")
        {
        }
        // returns arrays needed to plot site indexing graph
        public static function GetGraphArray($arFilter, &$arrLegend)
        {
        }
        public static function GetDomainList(&$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        public static function GetByID($ID)
        {
        }
    }
    class CAllStatEvent
    {
        ///////////////////////////////////////////////////////////////////
        // Returns string formatted as follows:
        // [sites group ID].<session ID>.<guest ID>.<country ID>.<adv compaign ID>.<adv compaign return Y|N>.<site ID>
        ///////////////////////////////////////////////////////////////////
        public static function GetGID($site_id = \false)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Event creation
        ///////////////////////////////////////////////////////////////////
        public static function AddCurrent($event1, $event2 = "", $event3 = "", $money = "", $currency = "", $goto = "", $chargeback = "N", $site_id = \false)
        {
        }
        // creates new event by ID
        public static function AddByID($EVENT_ID, $EVENT3, $DATE_ENTER, $PARAM, $MONEY = "", $CURRENCY = "", $CHARGEBACK = "N")
        {
        }
        // creates new event by event1 and event2
        public static function AddByEvents($EVENT1, $EVENT2, $EVENT3, $DATE_ENTER, $PARAM, $MONEY = "", $CURRENCY = "", $CHARGEBACK = "N")
        {
        }
        public static function GetHandlerList(&$arUSER_HANDLERS)
        {
        }
        // decodes EVENT_GID into array
        public static function DecodeGID($EVENT_GID)
        {
        }
        // compatibility
        public static function SetEventType($event1, $event2, &$arEventType)
        {
        }
        public static function GetByEvents($event1, $event2)
        {
        }
        public static function GetEventsByGuest($GUEST_ID, $EVENT_ID = \false, $EVENT3 = \false, $SEC = \false)
        {
        }
        public static function GetListUniqueCheck($arFilter = array(), $LIMIT = 1)
        {
        }
    }
    class CAllAdv
    {
        public static function SetByReferer($referer1, $referer2, &$arrADV, &$ref1, &$ref2)
        {
        }
        public static function SetByPage($page, &$arrADV, &$ref1, &$ref2, $type = "TO")
        {
        }
        // returns arrays for graphics plot
        public static function GetAnalysisGraphArray($arFilter, &$is_filtered, $DATA_TYPE = "SESSION_SUMMA", &$arrLegend, &$summa, &$max)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function Reset($ID)
        {
        }
        public static function DynamicDays($ADV_ID, $date1 = "", $date2 = "")
        {
        }
    }
    class CAllStopList
    {
        public static function GetByID($STOPLIST_ID)
        {
        }
        function CheckFields($ID, &$arFields)
        {
        }
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function SetActive($ID, $active = "N")
        {
        }
        function Delete($ID)
        {
        }
        public static function CleanCache()
        {
        }
    }
    class CCountry
    {
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        // returns arrays needed to plot graph and diagram
        public static function GetGraphArray($arFilter, &$arLegend)
        {
        }
    }
    class CStatRegion
    {
        /**
         * @param array[string]string $arOrder
         * @param array[string]string $arFilter
         * @return CDBResult
         */
        function GetList($arOrder = array(), $arFilter = array())
        {
        }
    }
    class CCity
    {
        private $lookup_class = "";
        private $lookup = \null;
        private $country_code = "";
        private $city_id = "";
        /**
         * @param string $dbRecord
         */
        function __construct($dbRecord = "")
        {
        }
        /**
         * @param array[string]string $arOrder
         * @param array[string]string $arFilter
         * @return CDBResult
         */
        public static function GetList($arOrder = array(), $arFilter = array())
        {
        }
        /**
         * @return string
         */
        function ForSQL()
        {
        }
        function GetFullInfo()
        {
        }
        public static function GetHandler()
        {
        }
        function GetCountryCode()
        {
        }
        function Recode($str)
        {
        }
        function GetCityID()
        {
        }
        public static function GetGraphArray($arFilter, &$arLegend, $sort = \false, $top = 0)
        {
        }
        public static function FindFiles($type = 'country', $path = '/bitrix/modules/statistic/ip2country')
        {
        }
        public static function GetCSVFormatType($fp)
        {
        }
        public static function ResolveIPRange($newStartIP, $newEndIP)
        {
        }
        public static function LoadCSV($file_name, $step, &$file_position)
        {
        }
    }
    class CPhrase
    {
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered, &$total, &$grby, &$max)
        {
        }
    }
    class CStatResult extends \CDBResult
    {
        function Fetch()
        {
        }
    }
    class CAllGuest
    {
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        public static function GetByID($ID)
        {
        }
    }
    class CPath
    {
        public static function GetList($PARENT_ID = "", $COUNTER_TYPE = "COUNTER_FULL_PATH", &$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        public static function GetByID($ID)
        {
        }
    }
    class CKeepStatistics
    {
        static $HIT_ID = 0;
        public static function GetCuurentHitID()
        {
        }
        public static function CheckSkip()
        {
        }
        /////////////////////////////
        // Main statistics function
        /////////////////////////////
        public static function Keep($HANDLE_CALL = \false)
        {
        }
        public static function ReallyKeep()
        {
        }
        public static function RestoreSession()
        {
        }
        // îáíîâëÿåì ñ÷åò÷èêè ñåññèé è íîâûõ ïîñåòèòåëåé ó ñòðàíû
        public static function UpdateCountry($COUNTRY_ID, $arFields, $DATE = \false, $DATE_FORMAT = "SHORT", $SIGN = "+")
        {
        }
        public static function UpdateCity($CITY_ID, $arFields, $DATE = \false, $DATE_FORMAT = "SHORT", $SIGN = "+")
        {
        }
        public static function SavePathData($SITE_ID, $CURRENT_PAGE, $ERROR_404)
        {
        }
        public static function SaveVisits($sql_site, $SESSION_NEW, $CURRENT_DIR, $CURRENT_PAGE, $ERROR_404)
        {
        }
        public static function GetRefererListID($PROT, $SN, $PAGE_FROM, $CURRENT_URI, $ERROR_404, $sql_site)
        {
        }
    }
    class CAllTraffic
    {
        public static function DynamicDays($date1 = "", $date2 = "", $site_id = "")
        {
        }
        // updates traffic counters
        public static function DecParam($arParam, $arParamSite = \false, $SITE_ID = \false, $DATE = \false, $DATE_FORMAT = "FULL")
        {
        }
        // updates traffic counters
        public static function IncParam($arParam, $arParamSite = \false, $SITE_ID = \false, $DATE = \false, $DATE_FORMAT = "FULL", $SIGN = "+")
        {
        }
    }
    class CTraffic extends \CAllTraffic
    {
        public static function GetSumList($DATA_TYPE, $arFilter = array())
        {
        }
        public static function GetDailyList(&$by, &$order, &$arMaxMin, $arFilter = array(), &$is_filtered, $get_maxmin = "Y")
        {
        }
        public static function GetCommonValues($arFilter = array(), $bIgnoreErrors = \false)
        {
        }
        public static function GetRefererList(&$by, &$order, $arFilter = array(), &$is_filtered, $limit = 10)
        {
        }
        public static function GetPhraseList(&$s_by, &$s_order, $arFilter = array(), &$is_filtered, $limit = 10)
        {
        }
    }
    class CStat extends \CTraffic
    {
    }
    class CPage
    {
        public static function GetDynamicList($URL, &$by, &$order, $arFilter = array())
        {
        }
        public static function GetList($COUNTER_TYPE, &$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
    }
    class CVisit extends \CPage
    {
    }
    class CStatCountry extends \CCountry
    {
    }
    class CAllStatistics extends \CKeepStatistics
    {
        public static function GetAdvGuestHost($ADV_ID, $GUEST_ID, $IP_NUMBER, $BACK = "")
        {
        }
        public static function StartBuffer()
        {
        }
        public static function EndBuffer(&$content)
        {
        }
        public static function DBDateCompare($FIELD_NAME, $DATE = \false, $DATE_FORMAT = "SHORT")
        {
        }
        function CleanUpStatistics_1()
        {
        }
        function CleanUpStatistics_2()
        {
        }
        ///////////////////////////////////////////////////////////////////
        // This is deprecated and unused method to handle internal search
        ///////////////////////////////////////////////////////////////////
        function OnSearch($search_phrase)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Îáíîâëÿåì ñ÷åò÷èê ïî ðåêëàìíîé êàìïàíèè
        ///////////////////////////////////////////////////////////////////
        public static function Update_Adv()
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Óñòàíàâëèâàåì ðåêëàìíóþ êàìïàíèþ
        ///////////////////////////////////////////////////////////////////
        public static function Set_Adv()
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Óñòàíàâëèâàåì ID ãîñòÿ
        ///////////////////////////////////////////////////////////////////
        public static function Set_Guest()
        {
        }
        ///////////////////////////////////////////////////////////////////
        //	ôóíêöèÿ áëîêèðîâêè ïîñåòèòåëÿ ïî ïðåâûøåíèþ ëèìèòà àêòèâíîñòè,
        //	âîçâðàùàåò true åñëè ïîñåòèòåëÿ ïîðà áëîêèðîâàòü
        ///////////////////////////////////////////////////////////////////
        public static function BlockVisitorActivity()
        {
        }
        public static function GetAuditTypes()
        {
        }
        public static function Set404($table = \false, $where = \false, $arrUpdate = \false)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // î÷èñòêà ñòàòèñòèêè äî îïðåäåëåííîé äàòû
        ///////////////////////////////////////////////////////////////////
        public static function CleanUp($cleanup_date = "", &$arErrors)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // ïåðåñ÷åò ôèíàíñîâûõ ïîêàçàòåëåé ïðè ñìåíå áàçîâîé âàëþòû
        ///////////////////////////////////////////////////////////////////
        public static function RecountBaseCurrency($new_base_currency)
        {
        }
        // ôóíêöèè äëÿ ñîâìåñòèìîñòè
        public static function GetEventParam($site_id = \false)
        {
        }
        public static function Set_Event($event1, $event2 = "", $event3 = "", $goto = "", $money = "", $currency = "", $chargeback = "N", $site_id = \false)
        {
        }
        public static function CheckForDDL()
        {
        }
        public static function GetDDL()
        {
        }
        public static function ExecuteDDL($ID)
        {
        }
    }
    class CStatistics extends \CAllStatistics
    {
        public static function CleanUpTableByDate($cleanup_date, $table_name, $date_name)
        {
        }
        public static function GetSessionDataByMD5($GUEST_MD5)
        {
        }
        public static function CleanUpPathDynamic()
        {
        }
        public static function CleanUpPathCache()
        {
        }
        public static function CleanUpSessionData()
        {
        }
        public static function CleanUpSearcherDynamic()
        {
        }
        public static function CleanUpEventDynamic()
        {
        }
        public static function CleanUpAdvDynamic()
        {
        }
        public static function CleanUpPhrases()
        {
        }
        public static function CleanUpRefererList()
        {
        }
        public static function CleanUpReferer()
        {
        }
        public static function CleanUpVisits()
        {
        }
        public static function CleanUpCities()
        {
        }
        public static function CleanUpCountries()
        {
        }
        public static function CleanUpGuests()
        {
        }
        public static function CleanUpSessions()
        {
        }
        public static function CleanUpHits()
        {
        }
        public static function CleanUpSearcherHits()
        {
        }
        public static function CleanUpAdvGuests()
        {
        }
        public static function CleanUpEvents()
        {
        }
        public static function SetNewDayForSite($SITE_ID = \false, $HOSTS = 0, $TOTAL_HOSTS = 0, $SESSIONS = 0, $HITS = 0)
        {
        }
        public static function SetNewDay($HOSTS = 0, $TOTAL_HOSTS = 0, $SESSIONS = 0, $HITS = 0, $NEW_GUESTS = 0, $GUESTS = 0, $FAVORITES = 0)
        {
        }
        public static function DBDateAdd($date, $days = 1)
        {
        }
        public static function DBTopSql($strSql, $nTopCount = \false)
        {
        }
        public static function DBFirstDate($strSql)
        {
        }
        public static function DBDateDiff($date1, $date2)
        {
        }
    }
    class CAllStatistic extends \CStatistics
    {
    }
    class CStatistic extends \CStatistics
    {
        function Stoplist($test = "N")
        {
        }
        function KeepStatistic($HANDLE_CALL = \false)
        {
        }
    }
    class CHit
    {
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        public static function GetByID($ID)
        {
        }
    }
    class CAllStatEventType
    {
        public static function Delete($ID, $DELETE_EVENT = "Y")
        {
        }
        // returns arrays which is nedded for plot drawing
        public static function GetGraphArray($arFilter, &$arrLegend)
        {
        }
        public static function ConditionSet($event1, $event2, &$arEventType)
        {
        }
        public static function GetByEvents($event1, $event2)
        {
        }
        public static function DynamicDays($EVENT_ID, $date1 = "", $date2 = "")
        {
        }
        //check fields before writing
        function CheckFields($arFields, $ID)
        {
        }
    }
    class CSearcherHit
    {
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
    }
    class CReferer
    {
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered, &$total, &$grby, &$max)
        {
        }
    }
    class CSearcher extends \CAllSearcher
    {
        public static function GetGraphArray_SQL($strSqlSearch)
        {
        }
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered, $LIMIT = \false)
        {
        }
        public static function GetDropDownList($strSqlOrder = "ORDER BY NAME, ID")
        {
        }
        public static function GetDynamicList($SEARCHER_ID, &$by, &$order, &$arMaxMin, $arFilter = array())
        {
        }
    }
    class CStatEvent extends \CAllStatEvent
    {
        public static function GetListByGuest($GUEST_ID, $EVENT_ID = \false, $EVENT3 = \false, $SEC = \false)
        {
        }
        public static function Add($EVENT_ID, $EVENT3, $DATE_ENTER, $PARAM, $MONEY = "", $CURRENCY = "", $CHARGEBACK = "N")
        {
        }
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        public static function Delete($ID)
        {
        }
    }
    class CAdv extends \CAllAdv
    {
        public static function GetAnalysisGraphArray_SQL($strSqlSearch, $DATA_TYPE)
        {
        }
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered, $limit = "", &$arrGROUP_DAYS, &$strSql_res)
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function GetEventList($ID, &$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        public static function GetEventListByReferer($value, $arFilter)
        {
        }
        public static function GetDynamicList($ADV_ID, &$by, &$order, &$arMaxMin, $arFilter = array())
        {
        }
        public static function GetDropDownList($strSqlOrder = "ORDER BY REFERER1, REFERER2")
        {
        }
        public static function GetSimpleList(&$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
    }
    class CStoplist extends \CAllStopList
    {
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        public static function Check($test = "N", $arParams = \false)
        {
        }
    }
    class CSession
    {
        public static function GetAttentiveness($DATE_STAT, $SITE_ID = \false)
        {
        }
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        public static function GetByID($ID)
        {
        }
    }
    class CGuest extends \CAllGuest
    {
        public static function GetLastByID($ID)
        {
        }
    }
    class CUserOnline
    {
        public static function GetGuestCount()
        {
        }
        public static function GetList(&$guest_count, &$session_count, $arOrder = array(), $arFilter = array())
        {
        }
    }
    class CStatEventType extends \CAllStatEventType
    {
        public static function GetByID($ID)
        {
        }
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered, $LIMIT = \false)
        {
        }
        public static function GetSimpleList(&$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
        public static function GetDropDownList($strSqlOrder = "ORDER BY EVENT1, EVENT2")
        {
        }
        public static function GetDynamicList($EVENT_ID, &$by, &$order, &$arMaxMin, $arFilter = array())
        {
        }
        public static function GetGraphArray_SQL($strSqlSearch)
        {
        }
    }
    class CAutoDetect
    {
        public static function GetList(&$by, &$order, $arFilter = array(), &$is_filtered)
        {
        }
    }
    /*
    $arTest = array(
    	"http://bsm6.business.ru.mysql.max/bitrix/admin/php_command_line.php?lang=ru", //ASCII
    	"http://www.yandex.ru/yandsearch?text=%D0%B1%D1%8B%D0%BB%D0%BE+", //Yndex utf
    	"http://www.yandex.ru/yandsearch?text=%E1%E8%F2&rpt=rad", //Yandex koi
    	"http://www.google.cn/search?hl=zh-CN&ie=GB2312&q=%CB%F9%D3%D0%CD%F8%D2%B3&btnG=Google+%CB%D1%CB%F7&meta=", //China multibyte
    	"http://www.google.ru/search?hl=ru&q=%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=&aq=f", //russian utf
    );
    foreach($arTest as $test)
    {
    	echo $test,":",(is_utf8_url($test)? "Y": "N"),"<hr>\n";
    }
    */
    class CStatisticSort
    {
        var $field = \false;
        function __construct($field = "")
        {
        }
        public static function Sort(&$ar, $field)
        {
        }
        function Compare($ar1, $ar2)
        {
        }
    }
    class bitrix_sitecorporate extends \CModule
    {
        var $MODULE_ID = "bitrix.sitecorporate";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function bitrix_sitecorporate()
        {
        }
        function InstallDB($install_wizard = \true)
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function InstallPublic()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
    class WizardServices
    {
        function GetTemplates($relativePath)
        {
        }
        function GetTemplatesPath($path)
        {
        }
        function GetServices($wizardPath, $serviceFolder = "", $arFilter = array())
        {
        }
        function IncludeServiceLang($relativePath, $lang = \false, $bReturnArray = \false)
        {
        }
        function GetCurrentSiteID($selectedSiteID = \null)
        {
        }
        function GetThemes($relativePath)
        {
        }
        function SetFilePermission($path, $permissions)
        {
        }
        function AddMenuItem($menuFile, $menuItem, $siteID, $pos = -1)
        {
        }
        function CopyFile($fileFrom, $fileTo)
        {
        }
        function ImportIBlockFromXML($xmlFile, $iblockCode, $iblockType, $siteID, $permissions = array())
        {
        }
        function SetIBlockFormSettings($iblockID, $settings)
        {
        }
        function SetUserOption($category, $option, $settings, $common = \false, $userID = \false)
        {
        }
        function CreateSectionProperty($iblockID, $fieldCode, $arFieldName = array())
        {
        }
        function ReplaceMacrosRecursive($filePath, $arReplace)
        {
        }
    }
    class WizardTemplate extends \CWizardTemplate
    {
        function GetLayout()
        {
        }
    }
    class CSiteCorporate
    {
        public static function ShowPanel()
        {
        }
    }
    class bitrix_sitepersonal extends \CModule
    {
        var $MODULE_ID = "bitrix.sitepersonal";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function bitrix_sitepersonal()
        {
        }
        function InstallDB($install_wizard = \true)
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function InstallPublic()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
    class CSitePersonal
    {
        public static function ShowPanel()
        {
        }
    }
    class CAdminUiList extends \CAdminList
    {
        public $enableNextPage = \false;
        public $totalRowCount = 0;
        protected $filterPresets = array();
        protected $currentPreset = array();
        private $isShownContext = \false;
        private $contextSettings = array();
        /** @var CAdminUiContextMenu */
        public $context = \false;
        public function AddHeaders($aParams)
        {
        }
        public function SetVisibleHeaderColumn()
        {
        }
        /**
         * @param $navigationId
         *
         * @return PageNavigation
         */
        public function getPageNavigation($navigationId)
        {
        }
        public function isTotalCountRequest()
        {
        }
        public function sendTotalCountResponse($totalCount)
        {
        }
        public function SetNavigationParams(\CAdminUiResult $queryObject, $params = array())
        {
        }
        public function setNavigation(\Bitrix\Main\UI\PageNavigation $nav, $title, $showAllways = \true, $post = \false)
        {
        }
        public function getCurPageParam($strParam = "", $arParamKill = array(), $get_index_page = \null)
        {
        }
        public function getNavSize()
        {
        }
        public function EditAction()
        {
        }
        private function prepareCustomKey($key, array $keys)
        {
        }
        /**
         * @return array|false
         */
        public function GroupAction()
        {
        }
        /**
         * Returns true if the user has set the flag "To all" in the list.
         *
         * @return bool
         */
        public function IsGroupActionToAll()
        {
        }
        /**
         * @return void
         */
        protected function PrepareAction()
        {
        }
        public function ActionDoGroup($id, $action_id, $add_params = "")
        {
        }
        public function ActionAjaxPostGrid($postParams)
        {
        }
        public function AddFilter(array $filterFields, array &$arFilter)
        {
        }
        public function hasGroupErrors()
        {
        }
        public function getGroupErrors()
        {
        }
        public function setContextSettings(array $settings)
        {
        }
        protected function GetSystemContextMenu(array $config = []) : array
        {
        }
        protected function InitContextMenu(array $menu = [], array $additional = []) : void
        {
        }
        private function GetGroupAction()
        {
        }
        public function &AddRow($id = \false, $arRes = array(), $link = \false, $title = \false)
        {
        }
        /**
         * The method set the default fields for the filter.
         *
         * @param array $fields array("fieldId1", "fieldId2", "fieldId3")
         */
        public function setDefaultFilterFields(array $fields)
        {
        }
        /**
         * The method set filter presets.
         *
         * @param array $filterPresets array("presetId" => array("name" => "presetName", "fields" => array(...)))
         */
        public function setFilterPresets(array $filterPresets)
        {
        }
        public function deletePreset($presetId)
        {
        }
        public function DisplayFilter(array $filterFields = array())
        {
        }
        private function createFilterSelectorHandlers(array $filterFields = array())
        {
        }
        public function ShowActionTable()
        {
        }
        public function DisplayList($arParams = array())
        {
        }
        private function getTotalRowsCountHtml()
        {
        }
        private function ShowContext()
        {
        }
        private function SetHeaderEditType($headerId, $field)
        {
        }
    }
    /**
    * Class CAdminUiListActionPanel
    * A class for working with group actions. Allows you to create your own group actions.
    	Example of use:
    
    	// The array for $lAdmin->AddGroupActionTable($arGroupActions, $arParamsGroupActions);
    	$arGroupActions['test_my_type'] = array('type' => 'my_type', 'name' => 'Check custom actions');
    
    	$actionPanelConstructor = new CAdminUiListActionPanel(
    	$this->table_id, $this->arActions, $this->arActionsParams);
    
    	//Set your own section
    	$actionPanelConstructor->setActionSections(["my_section" => []], ["default"]);
    	//Set your own action type
    	$actionPanelConstructor->setTypeToSectionMap(["my_type" => "my_section"]);
    	//Set handler for your type
    	$actionPanelConstructor->setHandlerToType(["my_type" => function ($actionKey, $action) {
    		$onChange = [
    			[
    				"ACTION" => Panel\Actions::CREATE,
    				"DATA" => [
    					[
    						'TYPE' => Panel\Types::CUSTOM,
    						'ID' => 'my_custom_html',
    						'VALUE' => '<b>Hello!</b>',
    					]
    				]
    			]
    		];
    		return [
    			"ID" => $actionKey,
    			"TYPE" => Bitrix\Main\Grid\Panel\Types::BUTTON,
    			"TEXT" => $action["name"],
    			"ONCHANGE" => $onChange
    		];
    	}]);
    
    	return $actionPanelConstructor->getActionPanel();
    */
    class CAdminUiListActionPanel
    {
        private $tableId;
        private $inputActions;
        private $inputActionsParams;
        /**
         * @var Panel\Snippet
         */
        private $gridSnippets;
        private $actionSections = [];
        private $mapTypesAndSections = ["edit" => "default", "delete" => "default", "button" => "button", "select" => "list", "customjs" => "list", "html" => "html", "for_all" => "forAll"];
        private $mapTypesAndHandlers = [];
        public function __construct($tableId, array $actions, array $actionsParams)
        {
        }
        /**
         * The method returns an array of data of the desired format for the grid.
         * @return array
         */
        public function getActionPanel()
        {
        }
        /**
        * The method writes a value into an array of sections.
        * This array is the structure of the blocks into which you place your actions.
        * @param array $actionSections Map sections.
        * @param array $listKeyForDelete List keys for delete default sections.
        		Example:
        		[
        			"default" => [
        				"TYPE" => Types::BUTTON,
        				"ID" => "button_id",
        				"CLASS" => "apply",
        				"TEXT" => "My button",
        				"ONCHANGE" => [
        					[
        						"ACTION" => Panel\Actions::CALLBACK,
        						"DATA" => [
        							[
        								"JS" => "alert('Click!');"
        							]
        						]
        					]
        				]
        			]
        		];
        */
        public function setActionSections(array $actionSections, $listKeyForDelete = [])
        {
        }
        /**
         * The method writes values to a map of types and partitions.
         * This makes it possible to place any type of action in a specific action section.
         * @param array $mapTypesAndSections Map of types and sections. Example ["html" => "default"].
         */
        public function setTypeToSectionMap(array $mapTypesAndSections)
        {
        }
        /**
        * The method writes a handler for a particular type of action. This allows you to create your own action.
        *
        * @param array $mapTypesAndHandlers Map of types and handlers.
        * Example:
        * [
        		"button" => function ($actionKey, $action) {
        			$onChange = [
        				[
        					"ACTION" => Panel\Actions::CALLBACK,
        					"DATA" => [
        						[
        							"JS" => $action["action"] ? $action["action"] :
        							"BX.adminUiList.SendSelected('{$this->tableId}')"
        						]
        					]
        				]
        			]
        			return [
        				"ID" => $actionKey,
        				"TYPE" => Bitrix\Main\Grid\Panel\Types::BUTTON,
        				"TEXT" => $action["name"],
        				"ONCHANGE" => $onChange
        			];
        		}]
        */
        public function setHandlerToType(array $mapTypesAndHandlers)
        {
        }
        /**
         * @return array
         */
        private function getDefaultApplyAction()
        {
        }
        /**
         * @return array
         */
        private function getItems()
        {
        }
        /**
         * @return array
         */
        private function getActionSections()
        {
        }
        /**
         * @param array &$actionSections
         * @param string $actionKey
         * @param string|array $action
         * @return void
         */
        private function setActionSection(array &$actionSections, $actionKey, $action)
        {
        }
        /**
         * @param string $actionKey
         * @param array $action
         * @return array
         */
        private function getButtonActionData($actionKey, $action)
        {
        }
        /**
         * @param string $actionKey
         * @param array $action
         * @return array
         */
        private function getSelectActionData($actionKey, $action)
        {
        }
        /**
         * @param string $actionKey
         * @param array $action
         * @return array
         */
        private function getCustomJsActionData($actionKey, $action)
        {
        }
        /**
         * @param string $actionKey
         * @param array $action
         * @return array
         */
        private function getBaseActionData($actionKey, $action)
        {
        }
        /**
         * @param string $actionKey
         * @param array $action
         * @return array
         */
        private function getHtmlActionData($actionKey, $action)
        {
        }
        /**
         * @param string $actionKey
         * @param array $action
         * @return array
         */
        private function getMultiControlActionData($actionKey, array $action)
        {
        }
        /**
         * @param string $jsCallback
         * @return array
         */
        private function getApplyButtonCreationAction($jsCallback = "")
        {
        }
        /**
         * @param $array
         * @return bool
         */
        private function isAssociativeArray($array)
        {
        }
        /**
         * Prepare action data before add in action list.
         *
         * @param array &$action	Action description.
         * return void
         */
        private static function prepareAction(array &$action)
        {
        }
    }
    class CAdminUiListRow extends \CAdminListRow
    {
        /**
         * @return array
         */
        public function getPreparedActions()
        {
        }
    }
    class CAdminUiContextMenu extends \CAdminContextMenu
    {
        private $isShownFilterContext = \false;
        public function setFilterContextParam($bool)
        {
        }
        public function Show()
        {
        }
        private function showActionButton()
        {
        }
        private function showBaseButton()
        {
        }
    }
    class CAdminUiSorting extends \CAdminSorting
    {
        /**
         * @return array
         */
        protected function getUserSorting()
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2016 Bitrix
     */
    /*View Tab Control*/
    class CAdminViewTabControl
    {
        var $name;
        var $tabs;
        var $selectedTab;
        var $tabIndex = 0;
        public function __construct($name, $tabs)
        {
        }
        function Begin()
        {
        }
        function BeginNextTab()
        {
        }
        function EndTab()
        {
        }
        function End()
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2016 Bitrix
     */
    class CAdminTabEngine
    {
        var $name;
        var $bInited = \False;
        var $arEngines = array();
        var $arArgs = array();
        var $bVarsFromForm = \False;
        public function __construct($name, $arArgs = array())
        {
        }
        function SetErrorState($bVarsFromForm = \False)
        {
        }
        function SetArgs($arArgs = array())
        {
        }
        function Check()
        {
        }
        function Action()
        {
        }
        function GetTabs()
        {
        }
        function ShowTab($divName)
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2016 Bitrix
     */
    class CAdminFilter
    {
        public $id;
        private $popup;
        private $arItems = array();
        private $arOptFlt = array();
        private static $defaultSort = 100;
        private static $defaultPresetSort = 50;
        private $url = \false;
        private $tableId = \false;
        const SESS_PARAMS_NAME = "main.adminFilter";
        public function __construct($id, $popup = \false, $arExtraParams = array())
        {
        }
        private function err_mess()
        {
        }
        private function AddItem($arItem, $bInsertFirst = \false)
        {
        }
        private function CheckFields($arFields)
        {
        }
        private function FieldsExcess($arFields)
        {
        }
        private function FieldsDelHiddenEmpty($arFields)
        {
        }
        /**
         * Sets default rows, witch will be shown to user when he comes to page for the first time/
         * This function must be called on admin page with the filter initialization.
         * For example: $oFilter->SetDefaultRows("find_created, find_menu_id");
         *
         * @param str rows - rows identificators separated by commas ("rowid_1, rowid_2, ...")
         * @return bool
         */
        public function SetDefaultRows($rows)
        {
        }
        public static function SetDefaultRowsOption($filterId, $rows)
        {
        }
        /**
         * Sets new filter tab with collection of fields and values
         * This function must be called on admin page with the filter initialization.
         * For example: $oFilter->AddPreset(array(
         *									"ID" => "preset1",
         *									"NAME" => "Test filter",
         *									"SORT" => 100,
         *									"SORT_FIELD" => array ("name" => "asc"),
         *									"FIELDS" => array(
         *										"find_name"=>"Smith",
         *										"find_id"=>"15"
         *										)
         *									));
         *
         * @param array $arFields = array(
         *								"ID" =>  filter id,
         *								"NAME" => filter name,
         *								"SORT" = > filter sorting order. Default value - 100, for presets - 50;
         *								"SORT_FIELD" => array("Table column name" => "sort order"),
         *								"FIELDS" => array(
         *											"field1_name" => "field1_value",
         *											"field2_name" => "field2_value",
         *											...
         * 												)
         *							)
         * @return bool
         */
        public function AddPreset($arFields)
        {
        }
        private function FindItemByPresetId($strID)
        {
        }
        private function FindItemByID($strID)
        {
        }
        public function AddPresetToBase($arFields)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function GetList($aSort = array(), $arFilter = array(), $getCommon = \true)
        {
        }
        private static function Cmp($a, $b)
        {
        }
        public function Begin()
        {
        }
        /**
         * @param bool|array $aParams
         */
        public function Buttons($aParams = \false)
        {
        }
        public function End()
        {
        }
        //experemental
        //extracting filter params from cookie and transfer them to session
        private function GetParamsFromCookie()
        {
        }
        //experemental
        private function IsFiltered()
        {
        }
        private function PrintSaveOptionsDIV()
        {
        }
        public static function UnEscape($aFilter)
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2016 Bitrix
     */
    class CAdminCalendar
    {
        const PERIOD_EMPTY = "NOT_REF";
        const PERIOD_DAY = "day";
        const PERIOD_WEEK = "week";
        const PERIOD_MONTH = "month";
        const PERIOD_QUARTER = "quarter";
        const PERIOD_YEAR = "year";
        const PERIOD_EXACT = "exact";
        const PERIOD_BEFORE = "before";
        const PERIOD_AFTER = "after";
        const PERIOD_INTERVAL = "interval";
        private static function InitPeriodList($arPeriodParams = array())
        {
        }
        public static function ShowScript()
        {
        }
        public static function Calendar($sFieldName, $sFromName = "", $sToName = "", $bTime = \false)
        {
        }
        public static function CalendarDate($sFieldName, $sValue = "", $size = "10", $bTime = \false)
        {
        }
        /**
         * @param string $sFromName
         * @param string $sToName
         * @param string $sFromVal
         * @param string $sToVal
         * @param bool $bSelectShow
         * @param int $size
         * @param bool $bTime
         * @param bool|array $arPeriod
         * @param string $periodValue
         * @return string
         */
        public static function CalendarPeriodCustom($sFromName, $sToName, $sFromVal = "", $sToVal = "", $bSelectShow = \false, $size = 10, $bTime = \false, $arPeriod = \false, $periodValue = '')
        {
        }
        /**
         * @param string $sFromName
         * @param string $sToName
         * @param string $sFromVal
         * @param string $sToVal
         * @param bool $bSelectShow
         * @param int $size
         * @param bool $bTime
         * @return string
         */
        public static function CalendarPeriod($sFromName, $sToName, $sFromVal = "", $sToVal = "", $bSelectShow = \false, $size = 10, $bTime = \false)
        {
        }
        /**
         * @param $sFromName
         * @param $sToName
         * @param string $sFromVal
         * @param string $sToVal
         * @param bool $bSelectShow
         * @param int $size
         * @param bool $bTime
         * @param $arPeriod
         * @param string $periodValue
         * @return string
         */
        private static function GetPeriodHtml($sFromName, $sToName, $sFromVal = "", $sToVal = "", $bSelectShow = \false, $size = 10, $bTime = \false, $arPeriod, $periodValue = '')
        {
        }
    }
    class CAdminPage
    {
        var $aModules = array();
        var $bInit = \false;
        var $publicMode = \false;
        private $isHideTitle = \false;
        public function __construct()
        {
        }
        public function Init()
        {
        }
        public function ShowTitle()
        {
        }
        public function ShowJsTitle()
        {
        }
        function GetTitle()
        {
        }
        public function isHideTitle()
        {
        }
        public function hideTitle()
        {
        }
        function GetJsTitle()
        {
        }
        public function ShowPopupCSS()
        {
        }
        public function ShowCSS()
        {
        }
        public function GetModulesCSS($module_id = '')
        {
        }
        public function ShowScript()
        {
        }
        public function ShowSectionIndex($menu_id, $module_id = \false)
        {
        }
        function ShowSound()
        {
        }
        public function getSSOSwitcherButton()
        {
        }
        public function getSelfFolderUrl()
        {
        }
    }
    class CAdminAjaxHelper
    {
        /** @var  \Bitrix\Main\Context */
        protected $context;
        /** @var  \Bitrix\Main\HttpResponse */
        protected $httpResponse;
        /** @var  \Bitrix\Main\HttpRequest */
        protected $request;
        protected $skipResponse = \false;
        public function __construct()
        {
        }
        /**
         * Sends JSON response with status "success".
         */
        public function sendJsonSuccessResponse()
        {
        }
        /**
         * Sends JSON response with status "error" and with errors.
         * @param string $message Error message.
         */
        public function sendJsonErrorResponse($message)
        {
        }
        /**
         * Sends JSON response.
         * @param array $params Data structure.
         */
        public function sendJsonResponse($params = array())
        {
        }
        public function decodeUriComponent(\Bitrix\Main\HttpRequest $request = \null)
        {
        }
        /**
         * Returns whether this is an AJAX (XMLHttpRequest) request.
         * @return boolean
         */
        public function isAjaxRequest()
        {
        }
        protected function end()
        {
        }
    }
    class CAdminSidePanelHelper extends \CAdminAjaxHelper
    {
        public function setSkipResponse($skip)
        {
        }
        public function sendSuccessResponse($responseType = "", $dataToForm = array())
        {
        }
        public function reloadPage($redirectUrl, $type)
        {
        }
        /**
         * Returns whether this is an AJAX (XMLHttpRequest) request and SipePanel request.
         * @return boolean
         */
        public function isSidePanelRequest()
        {
        }
        public function isSidePanel()
        {
        }
        public function isPublicSidePanel()
        {
        }
        public function isSidePanelFrame()
        {
        }
        public function isPublicFrame()
        {
        }
        public function setDefaultQueryParams($url)
        {
        }
        public function editUrlToPublicPage($url)
        {
        }
        public function localRedirect($url)
        {
        }
    }
    /* Popup menu */
    class CAdminPopup
    {
        var $name;
        var $id;
        var $items;
        var $params;
        public function __construct($name, $id, $items = \false, $params = \false)
        {
        }
        function Show($bReturnValue = \false)
        {
        }
        public static function GetGlobalIconClass($old_icon)
        {
        }
        public static function PhpToJavaScript($items)
        {
        }
    }
    class CAdminPopupEx extends \CAdminPopup
    {
        protected $element_id;
        /**
         * @param string $element_id
         * @param bool|array $items
         * @param bool|array $params
         */
        public function __construct($element_id, $items = \false, $params = \false)
        {
        }
        public function Show($bReturnValue = \false)
        {
        }
    }
    /* Context links menu for lists */
    class CAdminContextMenuList extends \CAdminContextMenu
    {
        function BeginBar()
        {
        }
        function GetClassByID($icon_id)
        {
        }
        function GetActiveClassByID($icon_id)
        {
        }
        function Button($item, $hkInst)
        {
        }
        function BeginRightBar()
        {
        }
        function EndRightBar()
        {
        }
    }
    class CAdminChain
    {
        var $items = array();
        var $id, $bVisible;
        public function __construct($id = \false, $bVisible = \true)
        {
        }
        function AddItem($item)
        {
        }
        function Show()
        {
        }
    }
    class CAdminMainChain extends \CAdminChain
    {
        var $bInit = \false;
        public function __construct($id = \false, $bVisible = \true)
        {
        }
        function Init()
        {
        }
        function AddItem($item)
        {
        }
    }
    class CAdminTheme
    {
        public static function GetList()
        {
        }
        public static function GetCurrentTheme()
        {
        }
    }
    class CAdminUtil
    {
        public static function dumpVars($vars, $arExclusions = array())
        {
        }
        private static function dumpVar($varName, $varValue, $varStack = array())
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2016 Bitrix
     */
    class CJSPopup
    {
        var $__form_name = 'bx_popup_form';
        var $post_args;
        var $title = '';
        var $bDescriptionStarted = \false;
        var $bContentStarted = \false;
        var $bButtonsStarted = \false;
        var $suffix = '';
        var $jsPopup = 'BX.WindowManager.Get()';
        var $bContentBuffered;
        var $cont_id;
        var $bInited = \false;
        /*
        $arConfig = array(
        	'TITLE' => 'Popup window title',
        	'ARGS' => 'param1=values1&param2=value2', // additional GET arguments for POST query
        )
        */
        public function __construct($title = '', $arConfig = array())
        {
        }
        function InitSystem()
        {
        }
        function _InitSystem()
        {
        }
        function InitScripts()
        {
        }
        function SetAdditionalArgs($additional_args = '')
        {
        }
        function SetTitle($title = '')
        {
        }
        function GetFormName()
        {
        }
        function SetSuffix($suffix)
        {
        }
        function ShowTitlebar($title = '')
        {
        }
        function StartDescription($icon = \false)
        {
        }
        function EndDescription()
        {
        }
        function StartContent($arAdditional = array())
        {
        }
        function EndContent()
        {
        }
        function StartButtons()
        {
        }
        function EndButtons()
        {
        }
        function ShowStandardButtons($arButtons = array('save', 'cancel'))
        {
        }
        function ShowValidationError($errortext)
        {
        }
        function ShowError($errortext, $title = '')
        {
        }
        function Close($bReload = \true, $back_url = \false)
        {
        }
    }
    class CJSPopupOnPage extends \CJSPopup
    {
        function InitSystem()
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2016 Bitrix
     */
    class CAdminTabControlDrag extends \CAdminTabControl
    {
        protected $moduleId;
        public function __construct($name, $tabs, $moduleId = "", $bCanExpand = \true, $bDenyAutosave = \false)
        {
        }
        function BeginNextTab($options = array())
        {
        }
        function ShowTabButtons()
        {
        }
        function getCurrentTabOptionName($tabIdx)
        {
        }
        function getTabSettings($tabIdx)
        {
        }
        function getCurrentTabBlocksOrder($defaultBlocksOrder = array())
        {
        }
        function getTabHiddenBlocks($tabIdx)
        {
        }
        function DraggableBlocksStart()
        {
        }
        function DraggableBlockBegin($title, $dataId = "")
        {
        }
        function DraggableBlockEnd()
        {
        }
    }
    /**
     * Class CAdminDraggableBlockEngine
     * Create custom Draggable blocks for CAdminTabControlDrag
     */
    class CAdminDraggableBlockEngine
    {
        protected $id;
        protected $engines = array();
        protected $args = array();
        /**
         * CAdminDraggableBlockEngine constructor.
         * @param string $id identifier
         * @param array $args
         */
        public function __construct($id, $args = array())
        {
        }
        /**
         * @param array $args
         */
        public function setArgs($args = array())
        {
        }
        /**
         * @return bool
         */
        public function check()
        {
        }
        /**
         * @return bool
         */
        public function action()
        {
        }
        /**
         * @return array
         */
        public function getBlocksBrief()
        {
        }
        /**
         * @param string $blockCode
         * @param string $selectedTab
         * @return string
         */
        public function getBlockContent($blockCode, $selectedTab)
        {
        }
        /**
         * @return string
         */
        public function getScripts()
        {
        }
    }
    class CAdminFormSettings
    {
        public static function getTabsArray($formId)
        {
        }
        public static function setTabsArray($formId, $arCustomTabs, $common = \false, $userID = \false)
        {
        }
    }
    class CClock
    {
        public static function Init(&$arParams)
        {
        }
        public static function Show($arParams)
        {
        }
    }
    class CIBlockPropertyUserID
    {
        const USER_TYPE = 'UserID';
        public static function GetUserTypeDescription()
        {
        }
        public static function GetAdminListViewHTML($arProperty, $value, $strHTMLControlName)
        {
        }
        //PARAMETERS:
        //$arProperty - b_iblock_property.*
        //$value - array("VALUE","DESCRIPTION") -- here comes HTML form value
        //strHTMLControlName - array("VALUE","DESCRIPTION")
        //return:
        //safe html
        public static function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
        {
        }
        //PARAMETERS:
        //$arProperty - b_iblock_property.*
        //$value - array("VALUE",["DESCRIPTION"]) -- here comes HTML form value
        //return:
        //array of error messages
        //PARAMETERS:
        //$arProperty - b_iblock_property.*
        //$value - array("VALUE",["DESCRIPTION"]) -- here comes HTML form value
        //return:
        //DB form of the value
        public static function ConvertToDB($arProperty, $value)
        {
        }
        public static function ConvertFromDB($arProperty, $value)
        {
        }
        public static function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
        {
        }
        public static function AddFilterFields($arProperty, $control, &$arFilter, &$filtered)
        {
        }
        public static function GetAdminFilterHTML($property, $control)
        {
        }
        /**
         * @param array $property
         * @param array $strHTMLControlName
         * @param array &$fields
         * @return void
         */
        public static function GetUIFilterProperty($property, $strHTMLControlName, &$fields)
        {
        }
        private static function getFilterValue($control)
        {
        }
    }
    class main extends \CModule
    {
        var $MODULE_ID = "main";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        function main()
        {
        }
        function InstallDB()
        {
        }
        protected function InstallGroups()
        {
        }
        protected function InstallLanguages()
        {
        }
        protected function InstallSites()
        {
        }
        function GetModuleTasks()
        {
        }
        private static function InstallRatings()
        {
        }
        private static function InstallDesktop()
        {
        }
        private static function InstallSmiles()
        {
        }
        function UnInstallDB()
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        public function migrateToBox()
        {
        }
    }
    class WelcomeStep extends \CWizardStep
    {
        function InitStep()
        {
        }
        function ShowStep()
        {
        }
        public static function unformat($_1938121630)
        {
        }
    }
    class AgreementStep extends \CWizardStep
    {
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class AgreementStep4VM extends \CWizardStep
    {
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        public function CheckShortInstall()
        {
        }
        function SetError($_1746456102, $_2011457012 = \false)
        {
        }
        function ShowStep()
        {
        }
    }
    class DBTypeStep extends \CWizardStep
    {
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class RequirementStep extends \CWizardStep
    {
        var $_218486067 = 64;
        var $_828889460 = 256;
        var $_868545734 = 500;
        var $_1885430628 = "7.1.0";
        var $_67309573 = "1.3";
        var $_780416850 = array();
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function CheckRequirements($dbType)
        {
        }
        function GetPHPSetting($_489746519)
        {
        }
        function ShowResult($_34785730, $type = "OK")
        {
        }
        function CheckServerVersion(&$_865571492, &$_1506306195, &$_1124140726)
        {
        }
        function CheckPHPVersion()
        {
        }
        function CheckFileAccess()
        {
        }
        function CreateTemporaryFiles()
        {
        }
        function ShowStep()
        {
        }
    }
    class CreateDBStep extends \CWizardStep
    {
        var $dbType;
        var $_664902286;
        var $_1551647363;
        var $_1170615647;
        var $dbName;
        var $_1299633152;
        var $_1345651238;
        var $createCharset = \false;
        var $createDBType;
        var $_479234887;
        var $_1112353976;
        var $filePermission;
        var $folderPermission;
        var $utf8;
        var $needCodePage = \false;
        var $DB = \null;
        var $_198538914 = \false;
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function IsBitrixInstalled()
        {
        }
        function CreateMySQL()
        {
        }
        function createSettings()
        {
        }
        function CreateDBConn()
        {
        }
        function CreateAfterConnect()
        {
        }
        function CreateLicenseFile()
        {
        }
        function CheckDBOperation()
        {
        }
        function ShowStep()
        {
        }
    }
    class CreateModulesStep extends \CWizardStep
    {
        var $_824100326 = array();
        var $_1555285727 = array();
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function SendResponse($_1408324516)
        {
        }
        function GetModuleList()
        {
        }
        function GetNextStep($_127158487, $_1498485255, $_1786247161)
        {
        }
        function InstallSingleStep($_1845900004)
        {
        }
        function GetModuleObject($_1818666717)
        {
        }
        function InstallModule($_1818666717, $_1498485255)
        {
        }
        function IsModuleEncode($_1818666717)
        {
        }
        function SetEncodeModule($_1818666717)
        {
        }
        function EncodeDemoWizard()
        {
        }
        function ShowStep()
        {
        }
    }
    class CreateAdminStep extends \CWizardStep
    {
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class SelectWizardStep extends \CWizardStep
    {
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class LoadModuleStep extends \CWizardStep
    {
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function GetModuleObject($_1818666717)
        {
        }
        function ShowStep()
        {
        }
    }
    class LoadModuleActionStep extends \CWizardStep
    {
        var $_824100326 = array();
        var $_1555285727 = array();
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function SendResponse($_1408324516)
        {
        }
        function GetModuleObject($_1818666717)
        {
        }
        function ShowStep()
        {
        }
    }
    class SelectWizard1Step extends \SelectWizardStep
    {
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class CheckLicenseKey extends \CWizardStep
    {
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function CreateLicenseFile()
        {
        }
        function ShowStep()
        {
        }
    }
    class BXInstallServices
    {
        public static function CreateWizardIndex($wizardName, &$errorMessage)
        {
        }
        public static function LoadWizardData($wizard)
        {
        }
        public static function GetWizardsList($moduleName = "")
        {
        }
        public static function CopyDirFiles($path_from, $path_to, $rewrite = \true)
        {
        }
        public static function GetDBTypes()
        {
        }
        public static function CheckDirPath($path, $dirPermissions = 0755)
        {
        }
        public static function DeleteDirRec($path)
        {
        }
        public static function DeleteDbFiles($dbType)
        {
        }
        public static function VersionCompare($strCurver, $strMinver, $strMaxver = "0.0.0")
        {
        }
        public static function Add2Log($sText, $sErrorCode = "")
        {
        }
        public static function ParseForSql($sqlString)
        {
        }
        public static function GetConfigWizard()
        {
        }
        public static function GetDemoWizard()
        {
        }
        public static function GetWizardCharset($wizardName)
        {
        }
        public static function IsShortInstall()
        {
        }
        //UTF Functions
        public static function IsUTF8Support()
        {
        }
        public static function IsUTFString($string)
        {
        }
        public static function EncodeFile($filePath, $charsetFrom)
        {
        }
        public static function EncodeDir($dirPath, $charsetFrom, $encodeALL = \false)
        {
        }
        public static function SetStatus($status)
        {
        }
        public static function LocalRedirect($url)
        {
        }
        public static function SetSession()
        {
        }
        public static function CheckSession()
        {
        }
        public static function GetWizardsSettings()
        {
        }
        public static function GetRegistrationKey($lic_key_user_name, $lic_key_user_surname, $lic_key_email, $DBType)
        {
        }
        public static function CreateLicenseFile($licenseKey)
        {
        }
    }
    class ConvertedFile
    {
        private $_uploadedFile;
        private $_convertedFileIndex;
        private $_uploadedFileIndex;
        private $_file;
        private $_size;
        /**
         * ConvertedFile constructor
         * @param UploadedFile $uploadedFile
         * @param int $index
         * @param array $file
         */
        function __construct($uploadedFile, $index, $file)
        {
        }
        /**
         * Get height of converted file
         */
        public function getHeight()
        {
        }
        /**
         * Get converter mode applied to the uploaded file
         */
        public function getMode()
        {
        }
        /**
         * Get converted file name
         */
        public function getName()
        {
        }
        /**
         * Get converted file size
         * @return int
         */
        public function getSize()
        {
        }
        /**
         * Get converted file width
         */
        public function getWidth()
        {
        }
        /**
         * Get content of converted file into string
         * @return string
         */
        public function getFileContent()
        {
        }
        /**
         * Move converted file to a new location
         * @param $destination The destination of the moved file
         */
        public function moveTo($destination)
        {
        }
    }
    class Package
    {
        private $_uploadedFiles = \NULL;
        private $_packageIndex = \NULL;
        private $_uploadSession = \NULL;
        private $_completed = \false;
        private $_cached = \false;
        private $_packageFields = \NULL;
        private $_packageFiles = \NULL;
        /**
         * Package constructor
         * @param UploadSession $uploadSession
         * @param int $index
         * @param array $post
         * @param array $files
         */
        function __construct($uploadSession, $index, $saveIntoCache = \false)
        {
        }
        private function loadSavedFields()
        {
        }
        private function loadSavedFiles()
        {
        }
        /**
         * Get package field value by field name
         * @param string $fieldName
         */
        public function getPackageField($fieldName)
        {
        }
        /**
         * @return boolean Returns true if package received completely, otherwise returns false.
         */
        public function getCompleted()
        {
        }
        public function getCached()
        {
        }
        /**
         * Get all package fields
         * @return array
         */
        public function getPackageFields()
        {
        }
        /**
         * Get total package count for upload session
         */
        public function getPackageCount()
        {
        }
        /**
         * Get count of files selected to upload in this package
         */
        public function getPackageFileCount()
        {
        }
        /**
         * Get unique identificator for upload session
         */
        public function getPackageGuid()
        {
        }
        /**
         * Get packahe index
         */
        public function getPackageIndex()
        {
        }
        /**
         * Get uploaded files
         * @return array Array of UploadedFile objects
         */
        public function getUploadedFiles()
        {
        }
        private function getUploadedFilesInternal()
        {
        }
    }
    class UploadCache
    {
        private $_cacheRoot;
        /**
         * UploadCache constructor
         * @param UploadSession $uploadSession
         */
        function __construct($cacheRoot)
        {
        }
        /**
         * Get default root upload cache directory.
         */
        public function getCacheRoot()
        {
        }
        public static function moveFile($source, $destination)
        {
        }
        public function getLastFullScanTimestamp()
        {
        }
        public function setLastFullScanTimestamp($value = \NULL)
        {
        }
        /**
         * Check if package exists in the cache
         * @param $package
         */
        public function isPackageCached($uploadSessionId, $packageIndex)
        {
        }
        public function loadSavedFields($uploadSessionId, $packageIndex)
        {
        }
        public function loadSavedFiles($uploadSessionId, $packageIndex)
        {
        }
        /**
         * Save package fields and files into upload temp cache
         * @param Package $package
         */
        public function saveRequestData($uploadSessionId, $packageIndex, $fields, $files)
        {
        }
        private function saveFields($path, $fields)
        {
        }
        private function saveFiles($path, $files, $fields)
        {
        }
        private function appendToFile($source, $destination)
        {
        }
        public function getSessionCacheDirectory($uploadSessionId)
        {
        }
        public function getPackageCacheDirectory($uploadSessionId, $packageIndex)
        {
        }
        private function setWriteTimestamp($uploadSessionId, $time = \NULL)
        {
        }
        public function getWriteTimestamp($uploadSessionId)
        {
        }
        public function cleanUploadSessionCache($uploadSessionId)
        {
        }
        private static function rmdir_recursive($dir)
        {
        }
    }
    class UploadSession
    {
        private $_post = \NULL;
        private $_files = \NULL;
        private $_server = \NULL;
        private $_uploadCache = \NULL;
        private $_fileUploadedCallback = \NULL;
        private $_allFilesUploadedCallback = \NULL;
        function __construct($uploadCache, $post = \NULL, $files = \NULL, $server = \NULL)
        {
        }
        public function processRequest()
        {
        }
        private function addFileNames(&$fields, &$files)
        {
        }
        public function setFileUploadedCallback($callback)
        {
        }
        public function setAllFilesUploadedCallback($callback)
        {
        }
        public function getFileUploadedCallback()
        {
        }
        public function getAllFilesUploadedCallback()
        {
        }
        public function getRequestFields()
        {
        }
        public function getRequestFiles()
        {
        }
        public function getUploadSessionId()
        {
        }
        /**
         * Get upload cache object for upload session.
         * @return UploadCache
         */
        public function getUploadCache()
        {
        }
        private function validateRequest()
        {
        }
    }
    class UploadedFile
    {
        private $_package;
        private $_index;
        private $_packageFiles;
        private $_convertedFiles = \NULL;
        /**
         * UploadedFile constructor
         * @param Package $package
         * @param int $index
         */
        function __construct($package, $index, $packageFiles)
        {
        }
        private function initFileArray()
        {
        }
        public function getAngle()
        {
        }
        public function getConvertedFiles()
        {
        }
        public function getCropBounds()
        {
        }
        public function getDescription()
        {
        }
        public function getIndex()
        {
        }
        /**
         * Get package
         * @return Package
         */
        public function getPackage()
        {
        }
        public function getRelativePath()
        {
        }
        public function getSourceCreatedDateTime()
        {
        }
        public function getSourceCreatedDateTimeLocal()
        {
        }
        public function getSourceHeight()
        {
        }
        public function getSourceLastModifiedDateTime()
        {
        }
        public function getSourceLastModifiedDateTimeLocal()
        {
        }
        public function getSourceName()
        {
        }
        public function getSourceSize()
        {
        }
        public function getSourceWidth()
        {
        }
        public function getHorizontalResolution()
        {
        }
        public function getVerticalResolution()
        {
        }
        public function getTag()
        {
        }
    }
    final class Utils
    {
        public static function getPhpLibraryDirectory()
        {
        }
        public static function getDefaultScriptDirectory()
        {
        }
        public static function getRelativePath($path)
        {
        }
        public static function throwException($message)
        {
        }
        /**
         * Recursive directory removal
         * @param $dir directoru path
         * @return bool True if directory was removed, otherwise false
         */
        public static function deleteDirectory($dir)
        {
        }
        /**
         * Fix for the Flash Player Cookie bug in Non-IE browsers. Call this before session_start() function.
         * @return bool TRUE if session was restored.
         */
        public static function restoreSession()
        {
        }
        public static function fixCookie(&$cookie_array, $new_cookie, $replace = \FALSE)
        {
        }
    }
    /**
     * Handle upload requests from uploader.
     */
    class UploadHandler
    {
        private static $_processed = \false;
        private $_fileUploadedCallback = \NULL;
        private $_allFilesUploadedCallback = \NULL;
        private $_destination;
        private $_cacheAliveTimeout = 1800;
        // 30 minutes
        private $_cacheRoot;
        function __construct()
        {
        }
        /**
         * Add file uploaded callback function. Function will be called for every uploaded file.
         * @param callback $callback
         */
        public function setFileUploadedCallback($callback)
        {
        }
        public function getFileUploadedCallback()
        {
        }
        public function setAllFilesUploadedCallback($callback)
        {
        }
        public function getAllFilesUploadedCallback()
        {
        }
        /**
         * Get upload cache expire timeout.
         */
        public function getCacheAliveTimeout()
        {
        }
        /**
         * Set upload cache expire timeout.
         * After timeout expires all files for this upload session will be removed.
         * @param int $value Timeout in seconds
         */
        public function setCacheAliveTimeout($value)
        {
        }
        /**
         * Get temp directory for uploaded files
         */
        public function getUploadCacheDirectory()
        {
        }
        /**
         * Set temp directory for uploaded files
         * @param string $value
         */
        public function setUploadCacheDirectory($value)
        {
        }
        public function processRequest()
        {
        }
        /**
         * Image Uploader Flash upload files as ordinary field with binary data.
         * So it is placed in the $_POST and not in $_FILES
         */
        private function getRequestFiles($post)
        {
        }
        /**
         * Remove expired upload sessions
         */
        private function removeExpiredSessions($uploadCache)
        {
        }
        public function saveFiles($destination)
        {
        }
        /**
         * Save uploaded file callback
         * @param UploadedFile $uploadedFile
         */
        public function saveUploadedFileCallback($uploadedFile)
        {
        }
    }
    class PostFields
    {
        // package fields
        const packageIndex = 'PackageIndex';
        const packageCount = 'PackageCount';
        const packageGuid = 'PackageGuid';
        const packageFileCount = 'PackageFileCount';
        // source file fields
        const sourceName = 'SourceName_%d';
        const sourceSize = 'SourceSize_%d';
        const sourceCreatedDateTime = 'SourceCreatedDateTime_%d';
        const sourceLastModifiedDateTime = 'SourceLastModifiedDateTime_%d';
        const sourceCreatedDateTimeLocal = 'SourceCreatedDateTimeLocal_%d';
        const sourceLastModifiedDateTimeLocal = 'SourceLastModifiedDateTimeLocal_%d';
        const sourceWidth = 'SourceWidth_%d';
        const sourceHeight = 'SourceHeight_%d';
        const horizontalResolution = 'HorizontalResolution_%d';
        const verticalResolution = 'VerticalResolution_%d';
        // crop bounds
        const cropBounds = 'CropBounds_%d';
        // converted file fields
        const file = 'File%d_%d';
        const fileMode = 'File%dMode_%d';
        const fileName = 'File%dName_%d';
        const fileSize = 'File%dSize_%d';
        const fileWidth = 'File%dWidth_%d';
        const fileHeight = 'File%dHeight_%d';
        // other fields
        const angle = 'Angle_%d';
        const description = 'Description_%d';
        const tag = 'Tag_%d';
        // chunk fields
        const fileChunkCount = 'File%dChunkCount_%d';
        const fileChunkIndex = 'File%dChunkIndex_%d';
        // complete markers
        const requestComplete = 'RequestComplete';
        const packageComplete = 'PackageComplete';
    }
    class SpotlightComponent extends \CBitrixComponent
    {
        protected $spotlight = \null;
        protected function prepareParams()
        {
        }
        protected function prepareData()
        {
        }
        public function getSpotlight()
        {
        }
        public function executeComponent()
        {
        }
    }
    /**
     * Class StringUfComponent
     */
    class StringUfComponent extends \Bitrix\Main\Component\BaseUfComponent
    {
        protected static function getUserTypeId() : string
        {
        }
    }
    /**
     * Class MainUserSelectorComponent
     */
    class MainUserSelectorComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function onPrepareComponentParams($arParams)
        {
        }
        public function executeComponent()
        {
        }
        private function buildItem($id, $name, $data = [], $bgcolor = \null, $color = \null)
        {
        }
        private function buildItemsWithSymbolicId(array $list)
        {
        }
        private function buildUserItems($ids, $userIdPrefix = '')
        {
        }
        private function buildDepartmentsItems($departmentsIds, $departmentsIdPrefix)
        {
        }
    }
    class CMainUiSelector extends \CBitrixComponent
    {
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function getEntities()
        {
        }
        protected function prepareResult()
        {
        }
        public function executeComponent()
        {
        }
        public static function executeComponentAjax(array $arParams = array(), array $behavior = array('DISPLAY' => \true))
        {
        }
        protected static function getRequest()
        {
        }
        protected static function displayAjax($data, $errors, $html, $options = array())
        {
        }
        public static function doFinalActions()
        {
        }
    }
    class CMainUISelectorComponentAjaxController extends \Bitrix\Main\Engine\Controller
    {
        public function getTreeItemRelationAction($entityType = \false, $categoryId = \false)
        {
        }
        public function getDataAction(array $options = array(), array $entityTypes = array(), array $selectedItems = array())
        {
        }
        public function doSearchAction($searchString = '', $searchStringConverted = '', $currentTimestamp = 0, array $options = array(), array $entityTypes = array(), array $additionalData = array())
        {
        }
        public function loadAllAction($entityType)
        {
        }
        public function saveDestinationAction($context, $itemId)
        {
        }
    }
    class CMainUiFilter extends \CBitrixComponent
    {
        protected $defaultViewSort = 500;
        protected $options;
        protected $themesFolder = "/themes/";
        protected $configName = "config.json";
        protected $commonOptions;
        protected $theme;
        protected $themeInstance;
        protected function prepareResult()
        {
        }
        protected static function prepareIsAuthorized()
        {
        }
        protected function prepareResetToDefaultMode()
        {
        }
        protected function prepareValueRequiredMode()
        {
        }
        protected function prepareClearGet()
        {
        }
        protected function prepareDisableSearch()
        {
        }
        protected function prepareEnableLiveSearch()
        {
        }
        protected function prepareCompactState()
        {
        }
        protected function prepareEnableLabel()
        {
        }
        protected function prepareLimits()
        {
        }
        protected function getUserOptions()
        {
        }
        public function getFilter()
        {
        }
        protected function prepareParams()
        {
        }
        protected function prepareFilterRowsParam()
        {
        }
        protected static function prepareSelectValue(array $items = array(), $value = "", $strictMode = \false)
        {
        }
        protected static function prepareMultiselectValue(array $items = array(), array $value = array(), $isStrict = \false)
        {
        }
        protected static function prepareValue(array $field, array $presetFields = array(), $prefix)
        {
        }
        protected static function prepareSubtype(array $field, array $presetFields = array(), $prefix)
        {
        }
        protected static function prepareCustomEntityValue(array $field, array $presetFields = array())
        {
        }
        protected static function prepareCustomValue(array $field, array $presetFields = array())
        {
        }
        protected static function prepareDestSelectorValue(array $field, array $presetFields = array(), array $params = array())
        {
        }
        protected static function compatibleDateselValue($value = "")
        {
        }
        protected function preparePresetFields($presetRows = array(), $presetFields = array())
        {
        }
        protected function applyOptions()
        {
        }
        protected function prepareDefaultPreset()
        {
        }
        protected function prepareFieldsCount()
        {
        }
        protected function prepareFilterRows()
        {
        }
        protected function getViewId()
        {
        }
        protected function getViewSort()
        {
        }
        protected function prepareSourcePresets()
        {
        }
        protected function preparePresets()
        {
        }
        protected function getField($fieldId)
        {
        }
        static function prepareField($field, $filterId = '')
        {
        }
        static function getFieldsStubs()
        {
        }
        protected function prepareFields()
        {
        }
        protected function prepareSettingsUrl()
        {
        }
        protected function checkRequiredParams()
        {
        }
        protected function includeScripts($folder)
        {
        }
        protected function includeStyles($folder)
        {
        }
        protected function saveOptions()
        {
        }
        protected function prepareDefaultPresets()
        {
        }
        protected function getCommonOptions()
        {
        }
        protected function initParams()
        {
        }
        protected function getTheme()
        {
        }
        protected function includeTheme()
        {
        }
        protected function getConfig($path)
        {
        }
        protected function getAbsoluteThemesPath()
        {
        }
        public function prepareConfig()
        {
        }
        public function executeComponent()
        {
        }
    }
    class CMainUIFilterAjaxController extends \Bitrix\Main\Engine\Controller
    {
        protected function getDefaultPreFilters()
        {
        }
        /**
         * @return \Bitrix\Main\UI\Filter\Options
         * @throws \Bitrix\Main\SystemException
         */
        protected static function getOptions()
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\SystemException
         */
        protected static function makeResponse()
        {
        }
        /**
         * Sets filter
         * @param array $data
         * @return array
         * @throws \Bitrix\Main\SystemException
         */
        public function setFilterAction($data = [])
        {
        }
        /**
         * Sets array of filters
         * @param array $data
         * @return array
         * @throws \Bitrix\Main\SystemException
         */
        public function setFilterArrayAction($data = [])
        {
        }
        /**
         * Restores filter
         * @param array $data
         * @return array
         * @throws \Bitrix\Main\SystemException
         */
        public function restoreFilterAction($data = [])
        {
        }
        /**
         * Removes filter
         * @param array $data
         * @return array
         * @throws \Bitrix\Main\SystemException
         */
        public function removeFilterAction($data = [])
        {
        }
        /**
         * Pins preset
         * @param array $data
         * @return array
         * @throws \Bitrix\Main\SystemException
         */
        public function pinPresetAction($data = [])
        {
        }
        /**
         * Sets tmp preset options
         * @param array $data
         * @return array
         * @throws \Bitrix\Main\SystemException
         */
        public function setTmpPresetAction($data = [])
        {
        }
        /**
         * Checks date format
         * @param $value
         * @param $format
         * @return array
         */
        public function checkDateFormatAction($value, $format)
        {
        }
        /**
         * Only for analytics
         * @return boolean
         */
        public function limitAnalyticsAction()
        {
        }
    }
    class MainUserConsentViewComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class UrlPreviewComponent extends \CBitrixComponent
    {
        protected $editMode = \false;
        protected $checkAccess = \false;
        protected $multiple = \false;
        protected $metadataId;
        protected $mobileApp = \false;
        protected function prepareParams()
        {
        }
        /**
         * Sets component arResult array
         */
        protected function prepareData()
        {
        }
        protected function prepareFrame($embed)
        {
        }
        /**
         * Sets main element style
         */
        protected function prepareStyle()
        {
        }
        protected function setDynamicPreview()
        {
        }
        /**
         * Include component bitrix:player to view html5 player. Returns html.
         *
         * @return string
         */
        protected function invokePlayer()
        {
        }
        /**
         * Executes component
         */
        public function executeComponent()
        {
        }
    }
    class MFIComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection */
        protected $errorCollection;
        /** @var string  */
        protected $componentId = '';
        /** @var MFIController */
        protected $controller;
        public function __construct($component = \null)
        {
        }
        /**
         * @return bool|string
         */
        public function executeComponent()
        {
        }
        /**
         * Returns whether this is an AJAX (XMLHttpRequest) request.
         * @return boolean
         */
        protected function isAjaxRequest()
        {
        }
        protected function prepareParams()
        {
        }
    }
    class MFIController
    {
        const STATUS_SUCCESS = "success";
        const STATUS_ERRORED = "error";
        /** @var string  */
        protected $cid = "";
        /** @var string  */
        protected $moduleId = "main";
        /** @var boolean  */
        protected $forceMd5 = \false;
        /** @var  \Bitrix\Main\HttpRequest */
        protected $request;
        /** @var Uploader  */
        protected $uploader = \null;
        /**
         * MFIController constructor.
         * @param Uploader $uploader
         */
        public function __construct()
        {
        }
        /**
         * @param string $moduleId
         * @return $this
         */
        public function setModuleId($moduleId)
        {
        }
        /**
         * @return string
         */
        public function getModuleId()
        {
        }
        /**
         * @param boolean|string $md5
         * @return $this
         */
        public function setForceMd5($md5)
        {
        }
        /**
         * @return boolean
         */
        public function getForceMd5()
        {
        }
        /**
         * @param string $cid Id of Controls.
         * @return null|string
         */
        public function getControlByCid($cid)
        {
        }
        /**
         * @param string $cid Id of Controls.
         * @return $this
         */
        public function setCid($cid)
        {
        }
        /**
         * @param string $controlId Control ID.
         * @return $this
         */
        public function generateCid($controlId)
        {
        }
        /**
         * @return string
         */
        public function getCid()
        {
        }
        /**
         * @param string $cid Id of control instance.
         * @return string
         */
        public function isCidRegistered($cid)
        {
        }
        /**
         * @param array $params
         * @return MFIController
         */
        public function initUploader($params)
        {
        }
        /**
         * @param array $params
         * @return MFIController
         */
        public function setUploader($uploader)
        {
        }
        public function getUploader()
        {
        }
        /**
         * @return Application|CAllMain|CMain
         */
        protected function getApplication()
        {
        }
        protected function sendJSResponse($response)
        {
        }
        protected function sendJsonResponse($response)
        {
        }
        public function sendErrorResponse($errorCollection)
        {
        }
        public function sendSuccessResponse(array $response = array())
        {
        }
        protected function end($terminate = \true)
        {
        }
        /**
         * @throws \Bitrix\Main\AccessDeniedException
         * @return void
         */
        public function checkRequest($controlId = \null)
        {
        }
        protected function executeActionUpload()
        {
        }
        public function handleFile($hash, &$file, $packData, $logData, &$error)
        {
        }
        protected function saveFile($file)
        {
        }
        protected function executeActionDelete($fid)
        {
        }
        protected function executeActionDownload($fid)
        {
        }
        public function registerFile($id)
        {
        }
        /**
         * @param integer $id
         * @return string
         */
        public function getUrlDownload($id)
        {
        }
        /**
         * @param integer $id
         * @return string
         */
        public function getUrlDelete($id)
        {
        }
        /**
         * @return string
         */
        public function getUrlUpload()
        {
        }
        /**
         * Returns message signature.
         * @param string $value Message.
         * @return string
         */
        public function getSignature($value)
        {
        }
        /**
         * Simply validation of message signature.
         * @param string $value Message.
         * @param string $signature Signature.
         * @return bool True if OK, otherwise - false.
         */
        public function validate($value, $signature)
        {
        }
        private static function prepareValueForSigner($value)
        {
        }
    }
    /**
     * Class DoubleUfComponent
     */
    class DoubleUfComponent extends \Bitrix\Main\Component\BaseUfComponent
    {
        protected static function getUserTypeId() : string
        {
        }
    }
    class MainUserConsentListComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        /** @var  Agreement $agreement */
        protected $agreement;
        public function executeComponent()
        {
        }
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function processPostAction()
        {
        }
        protected function processPost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function getBooleanNameList()
        {
        }
        protected function getDataFilter()
        {
        }
        protected function setUiGridColumns() : void
        {
        }
        private function getUiGridColumns() : array
        {
        }
        protected function setUiFilter()
        {
        }
        private function getGridOrder()
        {
        }
        private function getLanguages() : array
        {
        }
        protected function printErrors()
        {
        }
        private function prepareRowsActions()
        {
        }
    }
    class CMainAppPasswords extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
        protected function prepareData()
        {
        }
    }
    /**
     * Class MainNumeratorEdit
     */
    class MainNumeratorEdit extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable
    {
        /** @inheritdoc */
        public function executeComponent()
        {
        }
        private function setHideSettings()
        {
        }
        /**
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function fillNumeratorConfigValues()
        {
        }
        /**
         * @param $array
         */
        private function sortArray(&$array)
        {
        }
        /**
         * @param $array
         * @param $keyBy
         */
        private function indexArray(&$array, $keyBy)
        {
        }
        /**
         * @param Numerator $numerator
         * @param $numeratorId
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function addSequenceSettings($numerator, $numeratorId)
        {
        }
        /**
         * @return array
         */
        public function configureActions()
        {
        }
    }
    class BXGadget
    {
        public static function GetGadgetContent(&$arGadget, $arParams)
        {
        }
        public static function GetList($bWithParameters = \false, $arAllCurrentValues = \false)
        {
        }
        public static function _sort($ar1, $ar2)
        {
        }
        public static function GetById($id, $bWithParameters = \false, $arAllCurrentValues = \false)
        {
        }
    }
    class MainAuthFormComponent extends \CBitrixComponent
    {
        /**
         * Current errors.
         * @var array
         */
        protected $errors = array();
        /**
         * Fields code for form html.
         * @var array
         */
        protected $formFields = ['email' => 'USER_EMAIL', 'login' => 'USER_LOGIN', 'password' => 'USER_PASSWORD', 'confirm_password' => 'USER_CONFIRM_PASSWORD', 'remember' => 'USER_REMEMBER', 'checkword' => 'USER_CHECKWORD', 'otp' => 'USER_OTP', 'otp_remember' => 'OTP_REMEMBER', 'action' => 'AUTH_ACTION'];
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * Get global Application.
         * @return \CMain
         */
        protected function getApplication()
        {
        }
        /**
         * Get global User.
         * @return \CUser
         */
        protected function getUser()
        {
        }
        /**
         * Return true if current user is authorized.
         * @return boolean
         */
        protected function isAuthorized()
        {
        }
        /**
         * Gets some option of main module by code.
         * @param string $code Option code.
         * @param mixed $default Default value.
         * @return mixed
         */
        protected function getOption($code, $default = \null)
        {
        }
        /**
         * Check var in arParams. If no exists, create with default val.
         * @param string|int $var Variable.
         * @param mixed $default Default value.
         * @return mixed
         */
        protected function checkParam($var, $default)
        {
        }
        /**
         * Get URI without.
         * @return string
         */
        protected function getUri()
        {
        }
        /**
         * Get some var from request.
         * @param string $fieldCode Code of $this->formFields.
         * @return mixed
         */
        protected function requestField($fieldCode)
        {
        }
        /**
         * Get some var from request.
         * @param string $var Code of var.
         * @return mixed
         */
        protected function request($var)
        {
        }
        /**
         * Add one more error.
         * @param string $code Code of error.
         * @param string $message Error message.
         * @return void
         */
        protected function addError($code, $message)
        {
        }
        /**
         * Get current errors.
         * @param bool $string Convert Errors to string.
         * @return array
         */
        protected function getErrors($string = \true)
        {
        }
        /**
         * Get error from action.
         * @param mixed $res Some resource.
         * @return boolean
         */
        protected function processingErrors($res)
        {
        }
        /**
         * Gets captcha code if need.
         * @param string $login Login.
         * @return string
         */
        protected function getCaptchaCodeForUser($login)
        {
        }
        /**
         * Processing social services authorization, and return array of its.
         * @return array
         */
        protected function processingAuthServices()
        {
        }
        /**
         * Is secure auth connection?
         * @return boolean
         */
        protected function isSecureAuth()
        {
        }
        /**
         * Processing login.
         * @return void
         */
        protected function actionLogin()
        {
        }
        /**
         * Processing OTP login.
         * @return void
         */
        protected function actionOtp()
        {
        }
        /**
         * Redirect to the success page.
         * @return void
         */
        protected function successRedirect()
        {
        }
        /**
         * Refresh current page.
         * @param array $params Delete or add params.
         * @return void
         */
        protected function refresh(array $params = array())
        {
        }
        /**
         * OTP required?
         * @param boolean $ignoreReset Ignore reset otp by param.
         * @return bool
         */
        protected function isOtpRequired($ignoreReset = \false)
        {
        }
        /**
         * Base executable method.
         * @return void
         */
        public function executeComponent()
        {
        }
    }
    class MainForgotPasswdComponent extends \MainAuthFormComponent
    {
        /**
         * Processing request new pass.
         * @return void
         */
        protected function actionRequest()
        {
        }
        /**
         * Base executable method.
         * @param boolean $applyTemplate Apply template or not.
         * @return void
         */
        public function executeComponent($applyTemplate = \true)
        {
        }
    }
    class MainChangePasswdComponent extends \MainForgotPasswdComponent
    {
        /**
         * Gets group policy of current user.
         * @return array
         */
        protected function getGroupPolicy()
        {
        }
        /**
         * Replace some params from GET.
         * @return void
         */
        protected function requestForTpl()
        {
        }
        /**
         * Processing request set new pass.
         * @return void
         */
        protected function actionRequest()
        {
        }
        /**
         * Base executable method.
         * @param boolean $applyTemplate Apply template or not.
         * @return void
         */
        public function executeComponent($applyTemplate = \true)
        {
        }
    }
    final class MainPostList extends \CBitrixComponent
    {
        const STATUS_SCOPE_MOBILE = 'mobile';
        const STATUS_SCOPE_WEB = 'web';
        private $scope = \null;
        private $sign;
        static $users = array();
        public $exemplarId;
        public function __construct($component = \null)
        {
        }
        protected function isWeb()
        {
        }
        protected function isAjax()
        {
        }
        protected function getMode()
        {
        }
        protected function joinToPull()
        {
        }
        protected function sendIntoPull(array &$arParams, array &$arResult)
        {
        }
        protected function buildUser($id)
        {
        }
        protected function buildComment(&$res)
        {
        }
        public function parseTemplate(array $res, array $arParams, $template)
        {
        }
        protected function prepareParams(array &$arParams, array &$arResult)
        {
        }
        public function executeComponent()
        {
        }
        protected function sendJsonResponse($response)
        {
        }
        private function parseHTML($response, $mode = "RECORD")
        {
        }
        protected function getApplication()
        {
        }
        protected function getUser()
        {
        }
        protected function getUserId()
        {
        }
        public function getDateTimeFormatted($timestamp, $arFormatParams)
        {
        }
    }
    class MPLSimpleHTMLParser
    {
        var $data;
        var $parse_search_needle = '/([^\\[]*)(?:\\[(.*)\\])*/i';
        var $parse_tag = '/((\\<\\s*(\\/)?\\s*([a-z]+).*?(?:(\\/)\\>|\\>))[^<]*)/ism';
        var $parse_beginning_spaces = '/^([\\s]*)/m';
        var $replace_tag_begin = '/^\\s*\\w+\\s*/';
        var $parse_params = '/([a-z]+)\\s*=\\s*(?:([^\\s]*)|(?:[\'"]([^\'"])[\'"]))/im';
        var $lastError = '';
        function __construct($data)
        {
        }
        function findTagStart($needle)
        {
        }
        function skipTags($tmp)
        {
        }
        function setError($msg)
        {
        }
        function findTagEnd($startIndex)
        {
        }
        function getTagHTML($search)
        {
        }
        function getInnerHTML($startLabel, $endLabel, $multiple = \false)
        {
        }
    }
    class MainUserConsentEditComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        /** @var  Agreement $agreement */
        protected $agreement;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function processPost()
        {
        }
        protected function prepareResult()
        {
        }
        protected function prepareResultTypes()
        {
        }
        protected function prepareResultDataProviders()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        private function prepareMenu()
        {
        }
    }
    /**
     * Class IntegerUfComponent
     */
    class IntegerUfComponent extends \Bitrix\Main\Component\BaseUfComponent
    {
        protected static function getUserTypeId() : string
        {
        }
    }
    /**
     * Class CMainUIGrid
     */
    class CMainUIGrid extends \CBitrixComponent
    {
        /** @var \CGridOptions $gridOptions */
        protected $gridOptions;
        /** @var Bitrix\Main\Web\Uri $uri */
        protected $uri;
        /** @var array $options */
        protected $options;
        /** @var array $showedColumnsList */
        protected $showedColumnsList;
        /** @var boolean $editDate default value $this->arResult["EDIT_DATE"] */
        protected $editDate = \false;
        /** @var boolean $allowEdit default value $this->arResult["ALLOW_EDIT"] */
        protected $allowEdit = \false;
        /** @var boolean $allowEditAll default value $this->arResult["ALLOW_EDIT_ALL"] */
        protected $allowEditAll = \false;
        /** @var boolean $allowInlineEdit default value $this->arResult["ALLOW_INLINE_EDIT"] */
        protected $allowInlineEdit = \false;
        /** @var boolean $allowInlineEditAll default value $this->arResult["ALLOW_INLINE_EDIT_ALL"] */
        protected $allowInlineEditAll = \false;
        /** @var array $dataForEdit default value $this->arResult["DATA_FOR_EDIT"] */
        protected $dataForEdit = array();
        /** @var array $columnsEditMeta default value $this->arResult["COLS_EDIT_META"] */
        protected $columnsEditMeta = array();
        /** @var array $columnsEditMetaAll default value $this->arResult["COLS_EDIT_META_ALL"] */
        protected $columnsEditMetaAll = array();
        /** @var string $navString default value $this->arResult["NAV_STRING"] */
        protected $navString = "";
        /** @var integer $totalRowsCount default value $this->arResult["TOTAL_ROWS_COUNT"] */
        protected $totalRowsCount = 0;
        /** @var boolean $showBottomPanel default value $this->arResult["SHOW_BOTTOM_PANEL"] */
        protected $showBottomPanel = \true;
        /** @var boolean $showMoreButton default value $this->arResult["SHOW_MORE_BUTTON"] */
        protected $showMoreButton = \false;
        protected $defaultPageSize = 20;
        protected $minColumnWidth = 70;
        protected $jsFolder = "/js/";
        protected $blocksFolder = "/blocks/";
        protected $cssFolder = "/css/";
        protected function validateColumn($column = array())
        {
        }
        protected function validateColumns($columns = array())
        {
        }
        protected function checkRequiredParams()
        {
        }
        /**
         * Prepares arParams
         * @method prepareParams
         * @return array
         */
        protected function prepareParams()
        {
        }
        /**
         * Prepares arResult
         * @method prepareResult
         * @return $this
         */
        protected function prepareResult()
        {
        }
        protected function prepareMessages($messages = array())
        {
        }
        protected static function prepareMessage($message = array())
        {
        }
        protected function prepareDepth()
        {
        }
        protected function prepareDefaultColumns()
        {
        }
        protected function prepareBackendUrl()
        {
        }
        protected function prepareEditorTypes()
        {
        }
        protected function preparePanelTypes()
        {
        }
        protected function preparePanelActions()
        {
        }
        protected function preparePageSizesJson()
        {
        }
        protected function prepareActionsListJson()
        {
        }
        protected function prepareActionsListCurrentJson()
        {
        }
        protected function prepareOptionsActions()
        {
        }
        /**
         * @return string
         */
        protected function prepareOptionsHandlerUrl()
        {
        }
        /**
         * Checks request is ajax
         * @return bool
         */
        protected function prepareIsAjax()
        {
        }
        /**
         * Checks request is internal
         * @return bool
         */
        protected function prepareIsInternalRequest()
        {
        }
        /**
         * Prepares aggregate data
         * @method prepareAggregate
         * @return array
         */
        protected function prepareAggregate()
        {
        }
        /**
         * Applies user settings
         * @method applyUserSettings
         * @return null
         */
        protected function applyUserSettings()
        {
        }
        protected function applyColumnsSticked()
        {
        }
        /**
         * Applies columns sort setting
         */
        protected function applyColumnsSort()
        {
        }
        /**
         * Applies rows sort setting
         */
        protected function applyRowsSort()
        {
        }
        /**
         * Applies custom column names
         * @method applyColumnsCustomNames
         * @return null
         */
        protected function applyColumnsCustomNames()
        {
        }
        /**
         * Applies custom column display
         * @method applyColumnsDisplay
         * @return null
         */
        protected function applyColumnsDisplay()
        {
        }
        /**
         * Applies custom column sizes
         * @return $this
         */
        protected function applyColumnsSizes()
        {
        }
        /**
         * Prepares next page url
         * @method prepareNextPageUrl
         * @return string URI
         */
        protected function prepareNextPageUrl()
        {
        }
        /**
         * Prepares next page number
         * @method prepareNextPage
         * @return int Page number
         */
        protected function prepareNextPage()
        {
        }
        /**
         * Prepares show more button
         * @method prepareShowMoreButton
         * @return boolean
         */
        protected function prepareShowMoreButton()
        {
        }
        /**
         * Prepares show bottom panels
         * @method prepareShowBottomPanel
         * @return boolean
         */
        protected function prepareShowBottomPanel()
        {
        }
        /**
         * Prepares total rows count
         * @method prepareTotalRowsCount
         * @return integer
         */
        protected function prepareTotalRowsCount()
        {
        }
        /**
         * Prepares pagination string
         * @method prepareNavString
         * @return string
         */
        protected function prepareNavString()
        {
        }
        /**
         * Prepares data for edit form
         * @method prepareDataForEdit
         * @return array
         */
        protected function prepareDataForEdit()
        {
        }
        /**
         * Prepares $this->arResult["ALLOW_INLINE_EDIT_ALL"] value
         * @method prepareAllowInlineEditAll
         * @return boolean
         */
        protected function prepareAllowInlineEditAll()
        {
        }
        /**
         * Prepares $this->arResult["ALLOW_INLINE_EDIT"] value
         * @method prepareAllowInlineEdit
         * @return boolean
         */
        protected function prepareAllowInlineEdit()
        {
        }
        /**
         * Prepares $this->arResult["ALLOW_EDIT"] value
         * @method prepareAllowEdit
         * @return boolean
         */
        protected function prepareAllowEdit()
        {
        }
        /**
         * Prepares $arResult["ALLOW_EDIT"] value
         * @method prepareAllowEdit
         * @return boolean
         */
        protected function prepareAllowEditAll()
        {
        }
        /**
         * Prepares $this->arResult["EDIT_DATE"]) value
         * @method prepareEditDate
         * @return boolean
         */
        protected function prepareEditDate()
        {
        }
        /**
         * Prepares $this->arResult["HAS_ACTION"]) value
         * @method prepareHasActions
         * @return boolean
         */
        protected function prepareHasActions()
        {
        }
        protected function compatibleActions($actions, &$row)
        {
        }
        protected function compatibleRow($row)
        {
        }
        /**
         * Prepares rows
         * @method prepareRows
         * @return array
         */
        protected function prepareRows()
        {
        }
        protected function prepareTileGridItems()
        {
        }
        protected function reformatRowsToTileGridItems($rows)
        {
        }
        protected function prepareColumnsEditMeta()
        {
        }
        /**
         * Prepares $this->arResult["COLS_EDIT_META_ALL"] value
         * @method prepareColumnsEditMetaAll
         * @return array
         */
        protected function prepareColumnsEditMetaAll()
        {
        }
        /**
         * Prepares $this->arResult["COLS_RESIZE_META"] value
         * @method prepareColumnsResizeMeta
         * @return array
         */
        protected function prepareColumnsResizeMeta()
        {
        }
        /**
         * Prepares $this->arResult["COLS_NAMES"] value
         * @method prepareColumnNames
         * @return array
         */
        protected function prepareColumnNames()
        {
        }
        /**
         * Gets deleted query string params
         * @method getDeleteParams
         * @return array params list
         */
        protected function getDeleteParams()
        {
        }
        /**
         * Gets options
         * @method getOptions
         * @return array
         */
        protected function getOptions()
        {
        }
        /**
         * @return Grid\Options|CGridOptions
         */
        protected function getGridOptions()
        {
        }
        /**
         * Gets current view options
         * @method getCurrentOptions
         * @return array
         */
        protected function getCurrentOptions()
        {
        }
        /**
         * Gets uri object
         * @method getUri
         * @return Bitrix\Main\Web\Uri instance with current request uri
         */
        protected function getUri()
        {
        }
        /**
         * Gets sort url
         * @method getSortUrl
         * @param  array $headerItem
         * @return string sort url
         */
        protected function getSortUrl(array $headerItem)
        {
        }
        protected function columnExists($id)
        {
        }
        /**
         * Gets showed columns list
         * @method getShowedColumnsList
         * @return array
         */
        protected function getShowedColumnsList()
        {
        }
        /**
         * Checks is user enabled column
         * @method isUserShowedColumn
         * @param  string $id column id
         * @return boolean
         */
        protected function isUserShowedColumn($id)
        {
        }
        /**
         * Prepares align value
         * @method prepareAlign
         * @param  array $headerItem header item
         * @return string css align property value
         */
        protected function prepareAlign($headerItem)
        {
        }
        /**
         * Prepares string
         * @method prepareString
         * @param  string $text source string
         * @return string prepared string
         */
        protected function prepareString($text)
        {
        }
        /**
         * Gets custom column names
         * @method getCustomNames
         * @return array [column_id] => column_name
         */
        protected function getCustomNames()
        {
        }
        /**
         * Prepares header name
         * @method prepareHeaderName
         * @param  array $headerItem header item
         * @return string prepared header name
         */
        protected function prepareHeaderName(array $headerItem)
        {
        }
        /**
         * Checks is shown header name for current header item
         * @method isShowHeaderName
         * @param  array $headerItem
         * @return boolean
         */
        protected function isShowHeaderName(array $headerItem)
        {
        }
        /**
         * Prepares sort order value
         * @method prepareSortOrder
         * @param  array $headerItem header item
         * @return string sort order value ["desc", "asc"]
         */
        protected function prepareSortOrder(array $headerItem)
        {
        }
        /**
         * Checks is shown current column
         * @method isShownColumn
         * @param  array $headerItem header item
         * @return boolean
         */
        protected function isShownColumn(array $headerItem)
        {
        }
        /**
         * Prepares sort state value
         * @method prepareSortState
         * @param  array $headerItem header item
         * @return string ["desc", "asc"]
         */
        protected function prepareSortState(array $headerItem)
        {
        }
        protected function prepareNextSortOrder(array $headerItem)
        {
        }
        protected function prepareSort($sort)
        {
        }
        protected function prepareEditable($column)
        {
        }
        /**
         * Prepares each column
         * @method prepareColumn
         * @param  array $column header item
         * @return array prepared header item
         */
        protected function prepareColumn(array $column)
        {
        }
        /**
         * Prepares sticked value
         * @param array $column
         * @return bool
         */
        protected function prepareSticked($column)
        {
        }
        protected function preparePreventDefault(array $column)
        {
        }
        protected function prepareColumnWidth(array $column)
        {
        }
        /**
         * Prepares additional class for column header
         * @param array $headerItem
         *
         * @return string
         */
        protected function prepareHeaderClass(array $headerItem)
        {
        }
        /**
         * Prepares each header items
         * @return array prepares header
         */
        protected function prepareColumnsAll()
        {
        }
        /**
         * Prepares visible headers
         * @method prepareHeaders
         * @return array
         */
        protected function prepareColumns()
        {
        }
        protected function prepareDefaultOptions()
        {
        }
        protected function getJsFolder()
        {
        }
        protected function getBlocksFolder()
        {
        }
        protected function getCssFolder()
        {
        }
        protected function includeScripts($folder)
        {
        }
        protected function includeComponentBlocks()
        {
        }
        protected function includeComponentScripts()
        {
        }
        protected static function sortMultilevelRows($rows, &$resultRows, $parent = 0, $depth = 0)
        {
        }
        protected static function normalizeParentIds(&$rows)
        {
        }
        protected static function restoreExpandedRowsState(&$rows, $expandedIds)
        {
        }
        protected static function restoreCollapsedGroupsState(&$rows, $collapsedIds)
        {
        }
        protected function prepareMultilevelRows()
        {
        }
        public function executeComponent()
        {
        }
    }
    /**
     * Class BooleanUfComponent
     */
    class BooleanUfComponent extends \Bitrix\Main\Component\BaseUfComponent
    {
        protected static function getUserTypeId() : string
        {
        }
    }
    /**
     * Class FileUfComponent
     */
    class FileUfComponent extends \Bitrix\Main\Component\BaseUfComponent
    {
        protected static function getUserTypeId() : string
        {
        }
    }
    class CBitrixMenuComponent extends \CBitrixComponent
    {
        public function onPrepareComponentParams($arParams)
        {
        }
        public function getCacheID($additionalCacheID = \false)
        {
        }
        public function getGenerationCachePath($id)
        {
        }
        public function getChildMenuRecursive(&$arMenu, &$arResult, $menuType, $use_ext, $menuTemplate, $currentLevel, $maxLevel, $bMultiSelect, $bCheckSelected, $parentItem)
        {
        }
        public function getMenuString($type = "left")
        {
        }
        public function setSelectedItems($bMultiSelect = \false)
        {
        }
    }
    class MainMailFormComponent extends \CBitrixComponent
    {
        /**
         * @param array $params
         * @return array
         */
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
        protected function prepareFields()
        {
        }
        protected function prepareField($formId, &$field)
        {
        }
        protected function prepareEditor()
        {
        }
        protected function prepareButtons()
        {
        }
        private static function deepMerge(array &$base, array &$ext)
        {
        }
        /**
         * @param array $mailboxes
         * @return array
         */
        protected function loadSignatures(array $mailboxes)
        {
        }
    }
    /**
     * Class UrlUfComponent
     */
    class UrlUfComponent extends \Bitrix\Main\Component\BaseUfComponent
    {
        protected static function getUserTypeId() : string
        {
        }
    }
    /**
     * Class EnumUfComponent
     */
    class EnumUfComponent extends \Bitrix\Main\Component\BaseUfComponent
    {
        public const MAX_OPTION_LENGTH = 40;
        protected static function getUserTypeId() : string
        {
        }
        /**
         * @return array
         */
        protected function getFieldValue() : array
        {
        }
    }
    /**
     * Class DateUfComponent
     */
    class DateUfComponent extends \Bitrix\Main\Component\BaseUfComponent
    {
        protected static function getUserTypeId() : string
        {
        }
        /**
         * @return array
         */
        protected function getFieldValue() : array
        {
        }
    }
    class MainUserConsentRequestComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function prepareResultReplaceFields($inputFieldNames)
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class MainUserConsentRequestAjaxController extends \Bitrix\Main\UserConsent\Internals\ComponentController
    {
        protected function getActions()
        {
        }
        protected function checkPermissions()
        {
        }
        protected function getAgreement()
        {
        }
        protected function getText()
        {
        }
        protected function saveConsent()
        {
        }
    }
    final class MainPostForm extends \CBitrixComponent
    {
        const STATUS_SCOPE_MOBILE = 'mobile';
        const STATUS_SCOPE_WEB = 'web';
        private $scope;
        public function __construct($component = \null)
        {
        }
        protected function isWeb()
        {
        }
        private function prepareParams(&$arParams)
        {
        }
        public function executeComponent()
        {
        }
    }
}
namespace Bitrix\Main\UserField {
    abstract class ConfigComponent extends \CBitrixComponent
    {
        public const ERROR_CODE_NO_MODULE_ERROR = 'UF_CONFIG_NO_MODULE';
        /** @var \Bitrix\Main\UserField\UserFieldAccess */
        protected $access;
        protected $entityId = '';
        protected $moduleId;
        /** @var ErrorCollection */
        protected $errorCollection;
        protected $userTypes;
        protected function init() : void
        {
        }
        protected function getNoModuleError() : \Bitrix\Main\Error
        {
        }
        protected function getAccessDeniedError() : \Bitrix\Main\Error
        {
        }
        protected function getUserTypes() : array
        {
        }
        protected function setTitle(string $title) : void
        {
        }
    }
}
namespace {
    class MainUfDetailComponent extends \Bitrix\Main\UserField\ConfigComponent implements \Bitrix\Main\Engine\Contract\Controllerable
    {
        protected const DEFAULT_USER_TYPE_ID = 'string';
        protected const DEFAULT_SORT = 100;
        protected $fieldId;
        protected $data;
        protected function init() : void
        {
        }
        public function executeComponent()
        {
        }
        protected function prepareField() : array
        {
        }
        protected function prepareForm(array $field) : array
        {
        }
        protected function getLanguages() : array
        {
        }
        public function configureActions() : array
        {
        }
        public function getSettingsAction(string $userTypeId) : \Bitrix\Main\Engine\Response\HtmlContent
        {
        }
        protected function generateFieldName() : string
        {
        }
        protected function getFieldPrefix() : string
        {
        }
    }
    class PageNavigationComponent extends \CBitrixComponent
    {
        public function __construct($component = \null)
        {
        }
        public function onPrepareComponentParams($arParams)
        {
        }
        public function executeComponent()
        {
        }
        protected function makeUrl()
        {
        }
        public function replaceUrlTemplate($page, $size = "")
        {
        }
        protected function calculatePages()
        {
        }
        protected function calculateRecords()
        {
        }
    }
    class MainMailConfirmComponent extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
        public function prepareActionUrl()
        {
        }
        public static function prepareMailboxes()
        {
        }
        public static function prepareMailboxesFormated()
        {
        }
        protected static function getUserNameFormated()
        {
        }
        protected static function extractEmail($email)
        {
        }
        protected function getGridColumns()
        {
        }
        protected function prepareGridParams()
        {
        }
        protected function addMessage($type, $title, $message)
        {
        }
        protected function preparePost()
        {
        }
        protected function prepareAdditionalSenders()
        {
        }
    }
    class MainMailConfirmAjax
    {
        public static function execute()
        {
        }
        private static function executeAdd(&$error)
        {
        }
        private static function executeDelete(&$error)
        {
        }
        private static function executeSenderListCanDel(&$error)
        {
        }
        private static function returnJson($data)
        {
        }
    }
    class MainUserConsentConsentListComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function getDataFilter()
        {
        }
        protected function setUiGridColumns()
        {
        }
        protected function setUiFilter()
        {
        }
        protected function setRowColumnOrigin(array &$data)
        {
        }
        private function setRowColumnItems(array &$data, array $items)
        {
        }
        protected function setRowColumnUser(array &$data)
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        private function prepareRowsActions()
        {
        }
        private function getGridOrder()
        {
        }
        private function getUiGridColumns() : array
        {
        }
    }
    /**
     * Class StringFormatUfComponent
     */
    class StringFormattedUfComponent extends \Bitrix\Main\Component\BaseUfComponent
    {
        protected static function getUserTypeId() : string
        {
        }
    }
    class MainMailBlacklistComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable
    {
        const DEFAULT_NAV_KEY = "main-blacklist-page";
        const DEFAULT_PAGE_SIZE = 10;
        const DEFAULT_FILTER_ID = "MAIN_MAIL_BLACKLIST_FILTER";
        const DEFAULT_GRID_ID = "MAIN_MAIL_BLACKLIST_GRID";
        const ERROR_ACCESS_DENIED = "Access Denied";
        /** @var ErrorCollection $errors */
        protected $errors;
        /* signed params*/
        protected function listKeysSignedParameters()
        {
        }
        public function executeComponent()
        {
        }
        /*prepare component params*/
        public function prepareParams()
        {
        }
        protected function prepareNavigationParams()
        {
        }
        protected function prepareFilterParams()
        {
        }
        protected function prepareGridParams()
        {
        }
        protected function prepareNavigation()
        {
        }
        protected function prepareAccessParams()
        {
        }
        /* end prepare_component_params*/
        protected function checkAccess()
        {
        }
        /* data options */
        protected function getDataFields()
        {
        }
        protected function getDataFilters()
        {
        }
        protected function getOrder()
        {
        }
        protected function getFilters()
        {
        }
        protected function getOffset()
        {
        }
        protected function getLimit()
        {
        }
        /* end data options */
        /*prepare_data*/
        protected function prepareResult()
        {
        }
        /*grid options */
        protected function getGridColumns()
        {
        }
        protected function getGridDefaultSort()
        {
        }
        protected function getGridSortList()
        {
        }
        /* end_grid_options */
        protected function executeDelete(array $ids)
        {
        }
        protected function preparePost()
        {
        }
        /* Controllerable */
        public function configureActions()
        {
        }
        public function removeAction($id)
        {
        }
        protected function printErrors()
        {
        }
    }
    /**
     */
    class MainNumeratorEditSequence extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable
    {
        protected $gridId = 'NUMERATOR_EDIT_SEQUENCE_GRID';
        /**
         * @var Numerator
         */
        private $numerator;
        const DELIMITER = '__NUMK__';
        /** @inheritdoc */
        public function executeComponent()
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function getNumbers()
        {
        }
        /**
         * @param $errorMessage
         */
        private function addError($errorMessage)
        {
        }
        private function processEdit()
        {
        }
        /**
         */
        private function processGridActions()
        {
        }
        /**
         * @return array
         */
        public function configureActions()
        {
        }
    }
    class MainAccessConfig extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    class MainUserConsentSelectorComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    /**
     * Class DateTimeUfComponent
     */
    class DateTimeUfComponent extends \Bitrix\Main\Component\BaseUfComponent
    {
        protected static function getUserTypeId() : string
        {
        }
        /**
         * @return array
         */
        protected function getFieldValue() : array
        {
        }
    }
    class MainUfListComponent extends \Bitrix\Main\UserField\ConfigComponent
    {
        protected const NAV_PARAM_NAME = 'page';
        protected $gridOptions;
        protected $pageNavigation;
        protected $gridId;
        protected function init() : void
        {
        }
        public function executeComponent()
        {
        }
        protected function getGridId() : string
        {
        }
        protected function getGridOptions() : \Bitrix\Main\Grid\Options
        {
        }
        protected function getPageNavigation() : \Bitrix\Main\UI\PageNavigation
        {
        }
        protected function prepareGrid(array $fields) : array
        {
        }
        protected function getFieldColumns(array $field) : array
        {
        }
        protected function getDefaultSort() : array
        {
        }
        protected function getListFilter() : array
        {
        }
        protected function getGridColumns() : array
        {
        }
        protected function getBooleanInputNames() : array
        {
        }
        protected function getUserFieldConfigDetailUrl(int $fieldId = 0) : ?\Bitrix\Main\Web\Uri
        {
        }
    }
    class CMainInterfaceButtons extends \CBitrixComponent
    {
        /**
         * First argument for CUserOptions::GetOption
         * this is Options Category
         * @var string
         */
        protected $userOptionsCategory = "ui";
        /**
         * @var int
         */
        protected $maxCounterSize = 99;
        /**
         * User options settings key
         * @var string
         */
        protected $userOptionsKey = "settings";
        /**
         * Component items settings
         * @var array
         */
        protected $settings = [];
        /**
         * User options expanded items
         * @var array
         */
        private $expandedLists = [];
        /**
         * More item class
         * @var string
         */
        protected $defaultMoreItemClass = "main-buttons-item-more-default";
        /**
         * Checks required component params
         * @return boolean
         */
        protected function checkRequiredParams()
        {
        }
        protected function setStyles()
        {
        }
        /**
         * Prepares params
         * @return object $this
         */
        protected function prepareParams()
        {
        }
        protected function prepareDisableSettings($settings = \false)
        {
        }
        /**
         * Gets user options as is
         * @return array|bool
         */
        protected function getUserOptions()
        {
        }
        /**
         * Prepares container id
         * @param string $id
         * @return string Container id
         */
        protected function prepareContainerId($id)
        {
        }
        /**
         * Prepares user options
         * @param array $userOptions
         * @param $userOptionsKey
         * @return array User options
         */
        protected function prepareUserOptions($userOptions, $userOptionsKey)
        {
        }
        /**
         * Prepares settings
         */
        protected function prepareSettings()
        {
        }
        /**
         * Gets item settings by item id
         * @param  string $id
         * @return array
         */
        protected function getItemSettingsByItemId($id)
        {
        }
        /**
         * Prepares item text value
         * @param  string $text Text string
         * @return string
         */
        protected function prepareItemText($text)
        {
        }
        /**
         * Prepares item html
         * @param  string $html
         * @return string
         */
        protected function prepareItemHtml($html)
        {
        }
        /**
         * Prepares item url
         * @param  string $url
         * @return string
         */
        protected function prepareItemUrl($url)
        {
        }
        /**
         * Prepares item class
         * @param  string $class
         * @return string
         */
        protected function prepareItemClass($class)
        {
        }
        /**
         * Prepares item id
         * @param  string $id
         * @return string
         */
        protected function prepareItemId($id)
        {
        }
        /**
         * Prepares item onclick action string
         * @param  string $onClickString
         * @return string
         */
        protected function prepareItemOnClickString($onClickString)
        {
        }
        /**
         * Prepares item counter value
         * @param  integer $counter
         * @return integer|boolean
         */
        protected function prepareItemCounter($counter)
        {
        }
        /**
         * Prepares item is locked value
         * @param  boolean $isLocked
         * @return boolean json_encode'd
         */
        protected function prepareItemIsLocked($isLocked)
        {
        }
        /**
         * Prepares item is disabled value
         * @param  boolean $isDisabled
         * @param  string $id
         * @return boolean json_encode'd
         */
        protected function prepareItemIsDisabled($isDisabled, $id)
        {
        }
        /**
         * Prepares item sublink array
         * @param  array $sublink
         * @return array|boolean return false if sublink not set
         */
        protected function prepareItemSublink($sublink)
        {
        }
        /**
         * Prepares item sort index value
         * @param  string $id
         * @param  integer $key
         * @return integer Sort index
         */
        protected function prepareItemSort($id, $key)
        {
        }
        /**
         * Prepares item is active value
         * @param array $item
         * @return boolean
         */
        protected function prepareItemIsActive($item)
        {
        }
        /**
         * Prepares item
         * @param  array $item
         * @param  integer $key
         * @return array Prepared $item
         */
        protected function prepareItem($item, $key = 0)
        {
        }
        protected function prepareItemCounterId($item)
        {
        }
        protected function prepareMoreItem($item)
        {
        }
        protected function filterItems()
        {
        }
        protected function prepareItems($items = array())
        {
        }
        /**
         * Sorts array bi sort index
         * @param  array $array
         * @return array Sorted array
         */
        protected function sortBySortIndex($array = array())
        {
        }
        protected function safeString($string)
        {
        }
        /**
         * Prepares arResult
         */
        protected function prepareResult()
        {
        }
        public function executeComponent()
        {
        }
    }
    class CWizardSolPanel
    {
        public static function ShowPanel()
        {
        }
    }
    class gdRssFeeds
    {
        var $title;
        var $link;
        var $description;
        var $pubDate;
        var $items = array();
    }
    class CBXFeatures
    {
        public static function IsFeatureEnabled($_796387580)
        {
        }
        public static function IsFeatureEditable($_796387580)
        {
        }
        public static function SetFeatureEnabled($_796387580, $_1252284979 = \true)
        {
        }
        public static function SaveFeaturesSettings($_321982825, $_1257112674)
        {
        }
        public static function GetFeaturesList()
        {
        }
        public static function InitiateEditionsSettings($_1420637318)
        {
        }
        public static function ModifyFeaturesSettings($_1420637318, $_635750544)
        {
        }
        public static function IsFeatureInstalled($_796387580)
        {
        }
    }
    class CAjax
    {
        public static function Init()
        {
        }
        public static function GetComponentID($componentName, $componentTemplate, $additionalID)
        {
        }
        public static function GetSession()
        {
        }
        public static function GetSessionParam($ajax_id = \false)
        {
        }
        public static function AddSessionParam($url, $ajax_id = \false)
        {
        }
        // $text = htmlspecialcharred
        public static function GetLinkEx($real_url, $public_url, $text, $container_id, $additional = '')
        {
        }
        // $text - no htmlspecialchar
        public static function GetLink($url, $text, $container_id, $additional = '')
        {
        }
        public static function GetForm($form_params, $container_id, $ajax_id, $bReplace = \true, $bShadow = \true)
        {
        }
        public static function ClearForm($form_params, $ajax_id = \false)
        {
        }
        public static function GetFormEvent($container_id)
        {
        }
        public static function GetFormEventValue($container_id, $bReplace = \true, $bShadow = \true, $event_delimiter = '\'')
        {
        }
        public static function encodeURI($str)
        {
        }
        public static function decodeURI($str)
        {
        }
    }
    /**
     * @deprecated Use \Bitrix\Main\IO
     */
    interface IBXVirtualIO
    {
        function CombinePath();
        function RelativeToAbsolutePath($relativePath);
        function SiteRelativeToAbsolutePath($relativePath, $site = \null);
        function GetPhysicalName($path);
        function GetLogicalName($path);
        function ExtractNameFromPath($path);
        function ExtractPathFromPath($path);
        function ValidatePathString($path);
        function ValidateFilenameString($filename);
        function DirectoryExists($path);
        function FileExists($path);
        function GetDirectory($path);
        function GetFile($path);
        function OpenFile($path, $mode);
        function CreateDirectory($path);
        function Delete($path);
        function Copy($source, $target, $bRewrite = \true);
        function Move($source, $target, $bRewrite = \true);
        function Rename($source, $target);
        function ClearCache();
    }
    /**
     * @deprecated Use \Bitrix\Main\IO
     */
    interface IBXGetErrors
    {
        function GetErrors();
    }
    /**
     * @deprecated Use \Bitrix\Main\IO
     */
    class CBXVirtualIoFileSystem implements \IBXVirtualIO, \IBXGetErrors
    {
        private static $systemEncoding;
        private static $serverEncoding;
        const directionEncode = 1;
        const directionDecode = 2;
        const invalidChars = "\\/:*?\"'<>|~#&;";
        //the pattern should be quoted, "|" is allowed below as a delimiter
        const invalidBytes = "â€®";
        //Right-to-Left Override Unicode Character
        private $arErrors = array();
        public static function ConvertCharset($string, $direction = 1, $skipEvents = \false)
        {
        }
        public function CombinePath()
        {
        }
        public function RelativeToAbsolutePath($relativePath)
        {
        }
        public function SiteRelativeToAbsolutePath($relativePath, $site = \null)
        {
        }
        public function GetPhysicalName($path)
        {
        }
        function GetLogicalName($path)
        {
        }
        public function ExtractNameFromPath($path)
        {
        }
        public function ExtractPathFromPath($path)
        {
        }
        private function FormatPath($path)
        {
        }
        protected static function ValidateCommon($path)
        {
        }
        function ValidatePathString($path)
        {
        }
        function ValidateFilenameString($filename)
        {
        }
        function RandomizeInvalidFilename($filename)
        {
        }
        public static function getRandomChar()
        {
        }
        public function DirectoryExists($path)
        {
        }
        public function FileExists($path)
        {
        }
        public function GetDirectory($path)
        {
        }
        public function GetFile($path)
        {
        }
        public function OpenFile($path, $mode)
        {
        }
        public function Delete($path)
        {
        }
        private function CopyDirFiles($pathFrom, $pathTo, $bRewrite = \true, $bDeleteAfterCopy = \false)
        {
        }
        public function Copy($source, $target, $bRewrite = \true)
        {
        }
        public function Move($source, $target, $bRewrite = \true)
        {
        }
        public function Rename($source, $target)
        {
        }
        public function CreateDirectory($path)
        {
        }
        function ClearCache()
        {
        }
        public function GetErrors()
        {
        }
        protected function AddError($error, $errorCode = "")
        {
        }
        protected function ClearErrors()
        {
        }
    }
    /**
     * @deprecated Use \Bitrix\Main\IO
     */
    abstract class CBXVirtualFileBase implements \IBXGetErrors
    {
        protected $path = \null;
        public function __construct($path)
        {
        }
        public function GetName()
        {
        }
        public function GetPath()
        {
        }
        public function GetPathWithName()
        {
        }
        public abstract function IsDirectory();
        public abstract function IsExists();
        public abstract function MarkWritable();
        public abstract function GetPermissions();
        public abstract function GetModificationTime();
        public abstract function GetLastAccessTime();
    }
    /**
     * @deprecated Use \Bitrix\Main\IO
     */
    abstract class CBXVirtualFile extends \CBXVirtualFileBase
    {
        public function IsDirectory()
        {
        }
        public function GetType()
        {
        }
        public function GetExtension()
        {
        }
        public abstract function Open($mode);
        public abstract function GetContents();
        public abstract function PutContents($data);
        public abstract function GetFileSize();
        public abstract function IsWritable();
        public abstract function IsReadable();
        public abstract function ReadFile();
    }
    /**
     * @deprecated Use \Bitrix\Main\IO
     */
    class CBXVirtualFileFileSystem extends \CBXVirtualFile
    {
        protected $pathEncoded = \null;
        private $arErrors = array();
        protected function GetPathWithNameEncoded()
        {
        }
        public function Open($mode)
        {
        }
        public function GetContents()
        {
        }
        public function PutContents($data)
        {
        }
        public function GetFileSize()
        {
        }
        public function GetCreationTime()
        {
        }
        public function GetModificationTime()
        {
        }
        public function GetLastAccessTime()
        {
        }
        public function IsWritable()
        {
        }
        public function IsReadable()
        {
        }
        public function MarkWritable()
        {
        }
        public function IsExists()
        {
        }
        public function GetPermissions()
        {
        }
        public function ReadFile()
        {
        }
        public function unlink()
        {
        }
        public function GetErrors()
        {
        }
        protected function AddError($error, $errorCode = "")
        {
        }
        protected function ClearErrors()
        {
        }
    }
    /**
     * @deprecated Use \Bitrix\Main\IO
     */
    abstract class CBXVirtualDirectory extends \CBXVirtualFileBase
    {
        public function IsDirectory()
        {
        }
        /**
         * @return CBXVirtualDirectoryFileSystem[] | CBXVirtualFileFileSystem[]
         */
        public abstract function GetChildren();
        public abstract function Create();
    }
    /**
     * @deprecated Use \Bitrix\Main\IO
     */
    class CBXVirtualDirectoryFileSystem extends \CBXVirtualDirectory
    {
        protected $pathEncoded = \null;
        private $arErrors = array();
        protected function GetPathWithNameEncoded()
        {
        }
        /**
         * @return CBXVirtualDirectoryFileSystem[]|CBXVirtualFileFileSystem[]
         */
        public function GetChildren()
        {
        }
        public function Create()
        {
        }
        public function IsExists()
        {
        }
        public function MarkWritable()
        {
        }
        public function GetPermissions()
        {
        }
        public function GetCreationTime()
        {
        }
        public function GetModificationTime()
        {
        }
        public function GetLastAccessTime()
        {
        }
        public function IsEmpty()
        {
        }
        public function rmdir()
        {
        }
        public function GetErrors()
        {
        }
        protected function AddError($error, $errorCode = "")
        {
        }
        protected function ClearErrors()
        {
        }
    }
    interface IBXArchive
    {
        const StatusError = 0;
        const StatusSuccess = 1;
        const StatusContinue = 2;
        public function Pack($arFileList, $curFile = "");
        public function Unpack($strArchivePath);
        public function GetErrors();
        public function GetOptions();
        public function SetOptions($arOptions);
        public function GetStartFile();
    }
    class CArchiver implements \IBXArchive
    {
        public $_strArchiveName = "";
        public $_bCompress = \false;
        public $_strSeparator = " ";
        public $_dFile = 0;
        public $_arErrors = array();
        public $start_time = 0;
        public $max_exec_time = 0;
        public $file_pos = 0;
        public $stepped = \false;
        private $add_path = "";
        private $remove_path = "";
        private $startFile = "";
        private $lastFile = array();
        private $step_time = 30;
        private $tempres = \false;
        private $ReplaceExistentFiles = \false;
        private $CheckBXPermissions = \false;
        public function __construct($strArchiveName, $bCompress = \false, $start_time = -1, $max_exec_time = -1, $pos = 0, $stepped = \false)
        {
        }
        /**
         * Packs files and folders into archive
         * @param array $arFileList containing files and folders to be packed into archive
         * @param string $startFile - if specified then all files before it won't be packed during the traversing of $arFileList. Can be used for multi-step archivation
         * @return mixed false or 0 if error, 1 if success, 2 if the next step should be performed. Errors can be seen using GetErrors() method
         */
        public function Pack($arFileList, $startFile = "")
        {
        }
        /**
         * Unpacks archive into specified folder
         * @param string $strPath - path to the directory to unpack archive to
         * @return mixed false if error, array if success. Errors can be seen using GetErrors() method
         */
        public function Unpack($strPath)
        {
        }
        /**
         * Called from the archive object it returns the name of the file for the next step during multi-step archivation. Call if Pack method returned 2
         * @return string path to file
         */
        public function GetStartFile()
        {
        }
        private function _haveTime()
        {
        }
        private function _processFiles($arFileList, $strAddPath, $strRemovePath, $startFile = "")
        {
        }
        /**
         * Lets the user define packing/unpacking options
         * @param array $arOptions an array with the options' names and their values
         * @return nothing
         */
        public function SetOptions($arOptions)
        {
        }
        /**
         * Returns an array of packing/unpacking options and their current values
         * @return array
         */
        public function GetOptions()
        {
        }
        /**
         * Archives files and folders
         * @param array $vFileList containing files and folders to be packed into archive
         * @param string|bool $strAddPath - if specified contains path to add to each packed file/folder
         * @param string|bool $strRemovePath - if specified contains path to remove from each packed file/folder
         * @return mixed 0 or false if error, array with the list of packed files and folders if success. Errors can be seen using GetErrors() method
         */
        public function Add($vFileList, $strAddPath = \false, $strRemovePath = \false)
        {
        }
        /**
         * Adds file into archive
         * @param string $strFilename full path to file
         * @param string $strAddPath - if specified contains path to add to each packed file/folder
         * @param string $strRemovePath - if specified contains path to remove from each packed file/folder
         * @return mixed 0 or false if error, array with the list of packed files and folders if success. Errors can be seen using GetErrors() method
         */
        public function addFile($strFilename, $strAddPath, $strRemovePath)
        {
        }
        /**
         * Adds string as a file into archive
         * @param string $strFilename full path to file
         * @param string $strFileContent - file content
         * @return mixed 0 or false if error, array with the list of packed files and folders if success. Errors can be seen using GetErrors() method
         */
        public function addString($strFilename, $strFileContent)
        {
        }
        /**
         * Extract files from the archive
         * @param string $strPath path where to extract
         * @param array|bool $vFileList if specified - array of files to be extracted, else - all files will be extracted
         * @return mixed 0 or false if error, array with the list of unpacked files and folders if success. Errors can be seen using GetErrors() method
         */
        public function extractFiles($strPath, $vFileList = \false)
        {
        }
        /**
         * Extract content of the archive
         * @return mixed 0 or false if error, array with the list of unpacked files and folders if success. Errors can be seen using GetErrors() method
         */
        public function extractContent()
        {
        }
        /**
         * Returns an array containing error codes and messages. Call this method after Pack or Unpack
         * @return array
         */
        public function GetErrors()
        {
        }
        private function _addFileList($arFileList, $strAddPath, $strRemovePath)
        {
        }
        private function _addFile($strFilename, &$arHeaders, $strAddPath, $strRemovePath)
        {
        }
        /**
         * Returns the position of the file for the next step
         */
        public function getFilePos()
        {
        }
        private function _addString($strFilename, $strFileContent)
        {
        }
        private function _extractList($p_path, &$p_list_detail, $p_mode, $p_file_list, $p_remove_path)
        {
        }
        private function _writeHeader($strFilename, $strFilename_stored)
        {
        }
        private function _writeLongHeader($strFilename)
        {
        }
        private function _writeHeaderBlock($strFilename, $iSize, $p_mtime = 0, $p_perms = 0, $p_type = '', $p_uid = 0, $p_gid = 0)
        {
        }
        private function _readBlock()
        {
        }
        private function _readHeader($v_binary_data, &$v_header)
        {
        }
        private function _readLongHeader(&$v_header)
        {
        }
        private function _jumpBlock($p_len = \false)
        {
        }
        private function &_parseFileParams(&$vFileList)
        {
        }
        private function _openWrite()
        {
        }
        private function _openAppendFast()
        {
        }
        private function _openAppend()
        {
        }
        private function _openReadWrite()
        {
        }
        private function _openRead()
        {
        }
        private function _writeBlock($v_binary_data, $iLen = \false)
        {
        }
        private function _writeFooter()
        {
        }
        private function _cleanFile()
        {
        }
        private function _close()
        {
        }
        private function _normalizePath($strPath)
        {
        }
        private function _checkDirPath($path, $bPermission = \true)
        {
        }
        private function _dirCheck($p_dir)
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2014 Bitrix
     * @deprecated deprecated since main 20.0.700
     */
    class CUserTypeDate extends \Bitrix\Main\UserField\TypeBase
    {
        const USER_TYPE_ID = \Bitrix\Main\UserField\Types\DateType::USER_TYPE_ID;
        function getUserTypeDescription()
        {
        }
        public static function getPublicView($userField, $additionalParameters = array())
        {
        }
        public static function getPublicEdit($userField, $additionalParameters = array())
        {
        }
        function getSettingsHtml($userField, $additionalParameters, $varsFromForm)
        {
        }
        function getEditFormHtml($userField, $additionalParameters)
        {
        }
        function getAdminListViewHtml($userField, $additionalParameters)
        {
        }
        function getAdminListEditHtml($userField, $additionalParameters)
        {
        }
        function getFilterHtml($userField, $additionalParameters)
        {
        }
        function getDbColumnType()
        {
        }
        function getFilterData($userField, $additionalParameters)
        {
        }
        function prepareSettings($userField)
        {
        }
        public function onAfterFetch($userfield, $fetched)
        {
        }
        public function onBeforeSave($userfield, $value)
        {
        }
        public static function formatField(array $userField, $fieldName)
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2013 Bitrix
     */
    class CComponentEngine
    {
        public $cacheSalt = '';
        private $component = \null;
        private $greedyParts = array();
        private $resolveCallback = \false;
        /**
         * Constructor.
         *
         * <p>Takes component as parameter and initializing the object.</p>
         * @param CBitrixComponent $component
         */
        function __construct($component = \null)
        {
        }
        /**
         * Returns associated component.
         *
         * @return CBitrixComponent
         *
         */
        public function getComponent()
        {
        }
        /**
         * Marks one of the page templates parts as greedy (may contain "/" separator).
         *
         * @param string $part
         * @return void
         *
         */
        public function addGreedyPart($part)
        {
        }
        /**
         * Registers callback with will be called on page indetermination.
         *
         * @param callback $resolveCallback
         * @return void
         *
         */
        public function setResolveCallback($resolveCallback)
        {
        }
        /**
         * Checks if component name is valid.
         *
         * <p>Component name consists of namespace part, separator and name. Example: bitrix:news.list</p>
         * @param string $componentName
         * @return bool
         *
         */
        public static function checkComponentName($componentName)
        {
        }
        /**
         * Makes filesystem relative path out of com name.
         *
         * @param string $componentName
         * @return string
         *
         */
        public static function makeComponentPath($componentName)
        {
        }
        /**
         * Checks if page template has templates in it.
         *
         * @param string $pageTemplate
         * @return bool
         *
         */
        public function hasNoVariables($pageTemplate)
        {
        }
        /**
         * Checks if page template.has greedy templates it it.
         *
         * @param string $pageTemplate
         * @return bool
         *
         */
        public function hasGreedyParts($pageTemplate)
        {
        }
        /**
         * Sorts templates for inspection.
         *
         * <p>First will be templates without any variables. Then templates without greedy parts. Then greedy ones.</p>
         * @param array[string]string $arUrlTemplates
         * @param bool &$bHasGreedyPartsInTemplates
         * @return array[string]string
         *
         */
        protected function sortUrlTemplates($arUrlTemplates, &$bHasGreedyPartsInTemplates)
        {
        }
        /**
         * Checks if page template matches current URL.
         *
         * <p>In case of succsessful match fills in parsed variables.</p>
         * @param string $pageTemplate
         * @param string $currentPageUrl
         * @param array[string]string &$arVariables
         * @return bool
         *
         */
        protected function __checkPath4Template($pageTemplate, $currentPageUrl, &$arVariables)
        {
        }
        /**
         * Finds match between requestURL and on of the url templates.
         *
         * @param string $folder404
         * @param array[string]string $arUrlTemplates
         * @param array[string]string &$arVariables
         * @param string|bool $requestURL
         * @return string
         *
         */
        public static function parseComponentPath($folder404, $arUrlTemplates, &$arVariables, $requestURL = \false)
        {
        }
        /**
         * Finds match between requestURL and on of the url templates.
         *
         * <p>Lets using the engine object and greedy templates.</p>
         * @param string $folder404
         * @param array[string]string $arUrlTemplates
         * @param array[string]string &$arVariables
         * @param string|bool $requestURL
         * @return string
         *
         */
        public function guessComponentPath($folder404, $arUrlTemplates, &$arVariables, $requestURL = \false)
        {
        }
        /**
         * Initializes component variables from $_REQUEST based on component page selected.
         *
         * @param string $componentPage
         * @param array[string]string $arComponentVariables
         * @param array[string]string $arVariableAliases
         * @param array[string]string &$arVariables
         * @return void
         *
         */
        public static function initComponentVariables($componentPage, $arComponentVariables, $arVariableAliases, &$arVariables)
        {
        }
        /**
         * Prepares templates based on default and provided.
         *
         * @param array[string]string $arDefaultUrlTemplates
         * @param array[string]string $arCustomUrlTemplates
         * @return array[string]string
         *
         */
        public static function makeComponentUrlTemplates($arDefaultUrlTemplates, $arCustomUrlTemplates)
        {
        }
        /**
         * Prepares variables based on default and provided.
         *
         * @param array[string]string $arDefaultVariableAliases
         * @param array[string]string $arCustomVariableAliases
         * @return array[string]string
         *
         */
        public static function makeComponentVariableAliases($arDefaultVariableAliases, $arCustomVariableAliases)
        {
        }
        /**
         * Replaces templates in provided string based on parameters
         *
         * @param string $template
         * @param array[string]string $arParams
         * @return string
         *
         */
        public static function makePathFromTemplate($template, $arParams = array())
        {
        }
    }
    /**
     * @deprecated Use \Bitrix\Main\Text\Encoding
     */
    class CharsetConverter
    {
        private static $instance;
        /**
         * @deprecated
         */
        public static function GetInstance()
        {
        }
        /**
         * @deprecated
         */
        public static function ConvertCharset($string, $charset_in, $charset_out, &$errorMessage = "", $ignoreErrors = \false)
        {
        }
        /**
         * @deprecated
         */
        public function Convert($sourceString, $charsetFrom, $charsetTo)
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2013 Bitrix
     */
    class CUserOptions
    {
        protected static $cache = array();
        public static function GetList($arOrder = array("ID" => "ASC"), $arFilter = array())
        {
        }
        public static function GetOption($category, $name, $default_value = \false, $user_id = \false)
        {
        }
        public static function SetOption($category, $name, $value, $bCommon = \false, $user_id = \false)
        {
        }
        public static function SetOptionsFromArray($aOptions)
        {
        }
        public static function DeleteOption($category, $name, $bCommon = \false, $user_id = \false)
        {
        }
        public static function DeleteCommonOptions()
        {
        }
        public static function DeleteUsersOptions($user_id = \false)
        {
        }
        public static function DeleteOptionsByName($category, $name)
        {
        }
        public static function SetCookieOptions($cookieName)
        {
        }
        //*****************************
        // Events
        //*****************************
        //user deletion event
        public static function OnUserDelete($user_id)
        {
        }
    }
    class CTableSchema
    {
        public function __construct()
        {
        }
        public static function OnGetTableSchema()
        {
        }
    }
    class CAccess
    {
        const CACHE_DIR = "access_check";
        protected static $arAuthProviders = [];
        protected static $arChecked = [];
        protected $arParams = \false;
        public function __construct($arParams = \false)
        {
        }
        protected static function NeedToRecalculate($provider, $USER_ID)
        {
        }
        public function UpdateCodes($arParams = \false)
        {
        }
        public static function RecalculateForUser($userId, $provider)
        {
        }
        public static function RecalculateForProvider($provider)
        {
        }
        protected static function GetCheckCacheId($provider, $userId)
        {
        }
        protected static function GetCodesCacheId($userId)
        {
        }
        protected static function DeleteCodes($providerId, $userId)
        {
        }
        protected static function UpdateStat($provider, $userId)
        {
        }
        public static function GetUserCodes($USER_ID, $arFilter = array())
        {
        }
        public static function GetUserCodesArray($USER_ID, $arFilter = array())
        {
        }
        public function GetFormHtml($arParams = \false)
        {
        }
        public function AjaxRequest($arParams)
        {
        }
        public function GetNames($arCodes, $bSort = \false)
        {
        }
        public static function CmpNames($a, $b)
        {
        }
        public function GetProviderNames()
        {
        }
        public static function GetProviders()
        {
        }
        public static function OnUserDelete($USER_ID)
        {
        }
        public static function SaveLastRecentlyUsed($arLRU)
        {
        }
        public static function GetLastRecentlyUsed($provider)
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2013 Bitrix
     */
    interface ICacheBackend
    {
        function IsAvailable();
        function clean($basedir, $initdir = \false, $filename = \false);
        function read(&$arAllVars, $basedir, $initdir, $filename, $TTL);
        function write($arAllVars, $basedir, $initdir, $filename, $TTL);
        function IsCacheExpired($path);
    }
    class CPHPCacheEAccelerator implements \ICacheBackend
    {
        var $sid = "";
        //cache stats
        var $written = \false;
        var $read = \false;
        function __construct()
        {
        }
        function CPHPCacheEAccelerator()
        {
        }
        function IsAvailable()
        {
        }
        function clean($basedir, $initdir = \false, $filename = \false)
        {
        }
        function read(&$arAllVars, $basedir, $initdir, $filename, $TTL)
        {
        }
        function write($arAllVars, $basedir, $initdir, $filename, $TTL)
        {
        }
        function IsCacheExpired($path)
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2013 Bitrix
     */
    class PHPParser
    {
        protected static $arAllStr;
        public static function ReplString($str, $arAllStr)
        {
        }
        public static function getString($matches)
        {
        }
        public static function getQuotedString($matches)
        {
        }
        public static function GetParams($params)
        {
        }
        public static function GetParamsRec($params, &$arAllStr, &$arResult)
        {
        }
        // Parse string and check if it is a component call. Return call params array
        public static function CheckForComponent($str)
        {
        }
        public static function GetComponentParams($instruction, $arAllStr)
        {
        }
        public static function ParseScript($scriptContent)
        {
        }
        // Components 2. Parse string and check if it is a component call. Return call params array
        public static function CheckForComponent2($str)
        {
        }
        // Parse file and return all PHP blocks in array
        public static function ParseFile($filesrc, $limit = \false)
        {
        }
        public static function PreparePHP($str)
        {
        }
        // Return PHP string of component call params
        public static function ReturnPHPStr($arVals, $arParams)
        {
        }
        public static function ReturnPHPStrRec($arVal, $level, $comm = "")
        {
        }
        // Components 2. Return PHP string of component call params
        public static function ReturnPHPStr2($arVals, $arParams = array())
        {
        }
        public static function FindComponent($component_name, $filesrc, $src_line)
        {
        }
        public static function getPhpChunks($filesrc, $limit = \false)
        {
        }
        public static function getPageTitle($filesrc, $prolog = \false)
        {
        }
        public static function getComponentFunctionStrings()
        {
        }
    }
    class CUpdateClientPartner
    {
        public static function RegisterModules(&$strError, $lang = \false, $stableVersionsOnly = \false)
        {
        }
        public static function loadModule4Wizard($moduleId, $lang = \false)
        {
        }
        public static function LoadModuleNoDemand($moduleId, &$strError, $stableVersionsOnly = "Y", $lang = \false)
        {
        }
        public static function SearchModulesEx($arOrder, $arFilter, $searchPage, $lang, &$strError)
        {
        }
        public static function SearchModules($searchModule, $lang)
        {
        }
        /** Ïèøåò ñîîáùåíèÿ â ëîã ôàéë ñèñòåìû îáíîâëåíèé. ×èñòèò ëîã, åñëè íóæíî. **/
        public static function AddMessage2Log($sText, $sErrorCode = "")
        {
        }
        public static function GetRequestedModules($strAddModule)
        {
        }
        /** Ïîëó÷åíèå ëèöåíçèîííîãî êëþ÷à òåêóùåãî êëèåíòà **/
        public static function GetLicenseKey()
        {
        }
        /* Ïîëó÷èòü îáíîâëåíèÿ ñëåäóþùåãî øàãà */
        public static function GetNextStepUpdates(&$strError, $lang = \false, $stableVersionsOnly = "Y", $arRequestedModules = array(), $bStrongList = \false)
        {
        }
        // Ðàñïàêîâûâàåò àðõèâ ôàéëîâ update_archive.gz â ïàïêy $updatesDir
        public static function UnGzipArchive(&$updatesDir, &$strError, $bDelArch = \true)
        {
        }
        // Âîçâðàùàåò èíôîðìàöèþ ïî çàãðóæåííûì â ïàïêó $updatesDir îáíîâëåíèÿì ìîäóëåé
        public static function CheckUpdatability($updatesDir, &$strError)
        {
        }
        // Âîçâðàùàåò èíôîðìàöèþ ïî çàãðóæåííûì â ïàïêó $updatesDir îáíîâëåíèÿì ìîäóëåé
        public static function GetStepUpdateInfo($updatesDir, &$strError)
        {
        }
        public static function __CollectRequestData(&$strError, $lang = \false, $stableVersionsOnly = "Y", $arRequestedModules = array(), $arAdditionalData = array(), $bStrongList = \false)
        {
        }
        /** Ñîáèðàåò êëèåíòñêèå ìîäóëè ñ âåðñèÿìè **/
        public static function GetCurrentModules(&$strError)
        {
        }
        /* Ïîëó÷èòü ñïèñîê äîñòóïíûõ îáíîâëåíèé */
        public static function GetUpdatesList(&$strError, $lang = \false, $stableVersionsOnly = "Y", $arRequestedModules = array(), $aditData = array())
        {
        }
        public static function ClearUpdateFolder($updatesDirFull)
        {
        }
        public static function LoadModulesUpdates(&$errorMessage, &$arUpdateDescription, $lang = \false, $stableVersionsOnly = "Y", $arRequestedModules = array(), $bStrongList = \false)
        {
        }
        private static function getAddr($serverIp = \null, $serverPort = \null)
        {
        }
        private static function getSocketError($errstr, $errno, $addrParams)
        {
        }
        private static function loadFileBx($requestedUrl, $realSize, $outputFilename, $timeout, $requestQueryString, &$errorMessage)
        {
        }
        private function loadFile($requestedUrl, $realSize, $outputFilename, $timeout, &$errorMessage)
        {
        }
        public static function UpdateStepModules($updatesDir, &$strError, $bSaveUpdaters = \False)
        {
        }
        public static function ActivateCoupon($coupon, &$strError, $lang = \false, $stableVersionsOnly = "Y")
        {
        }
        /** Çàïóñêàåò updater ìîäóëÿ **/
        public static function __RunUpdaterScript($path, &$strError, $updateDirFrom, $moduleID)
        {
        }
        /** Ñðàâíåíèå äâóõ âåðñèé â ôîðìàòå XX.XX.XX  **/
        /** Âîçâðàùàåò 1, åñëè $strVers1 > $strVers2  **/
        /** Âîçâðàùàåò -1, åñëè $strVers1 < $strVers2 **/
        /** Âîçâðàùàåò 0, åñëè $strVers1 == $strVers2 **/
        public static function __CompareVersions($strVers1, $strVers2)
        {
        }
        /** Çàïðàøèâàåò ìåòîäîì POST ñòðàíèöó $page ñî ñïèñêîì ïàðàìåòðîâ **/
        /** $strVars è âîçâðàùàåò òåëî îòâåòà. Â ïàðàìåòðå $strError      **/
        /** âîçâðàùàåòñÿ òåêñò îøèáêè, åñëè òàêîâàÿ áûëà.                 **/
        public static function __GetHTTPPage($page, $strVars, &$strError)
        {
        }
        /** Ïðîâåðÿåò íà îøèáêè îòâåò ñåðâåðà $strServerOutput **/
        /** è ïàðñèò â ìàññèâ $arRes                           **/
        public static function __ParseServerData(&$strServerOutput, &$arRes, &$strError)
        {
        }
        /** Ïðîâåðêà íà óñòàíîâêó GZip êîìïðåññèè **/
        public static function __IsGzipInstalled()
        {
        }
        public static function __GetFooPath()
        {
        }
        public static function __GetFooPath1($v = 0)
        {
        }
        /** Ñîçäàíèå ïóòÿ, åñëè åãî íåò, è óñòàíîâêà ïðàâ ïèñàòü **/
        public static function __CheckDirPath($path, $bPermission = \true)
        {
        }
        /** Ðåêóðñèâíîå êîïèðîâàíèå èç $path_from â $path_to **/
        public static function __CopyDirFiles($path_from, $path_to, &$strError, $bSkipUpdater = \True)
        {
        }
        /** Ðåêóðñèâíîå óäàëåíèå $path **/
        public static function __DeleteDirFilesEx($path)
        {
        }
        public static function __bxstrrpos($haystack, $needle)
        {
        }
        /** Âîçâðàùàåò ýêçåìïëÿð êëàññà-èíñòàëÿòîðà ìîäóëÿ ïî àáñîëþòíîìó ïóòè $path **/
        public static function __GetModuleInfo($path)
        {
        }
        public static function __GetMicroTime()
        {
        }
    }
    class CFinder
    {
        public function __construct()
        {
        }
        public static function GetFinderAppearance($arParams, $arPanels)
        {
        }
        public static function GetFinderItem($arParams, $arItem)
        {
        }
        private static function GetFinderItemType1($arParams, $arItem)
        {
        }
        private static function GetFinderItemType2($arParams, $arItem)
        {
        }
        private static function GetFinderItemType3($arParams, $arItem)
        {
        }
        private static function GetFinderItemType4($arParams, $arItem)
        {
        }
        private static function GetFinderItemType5($arParams, $arItem)
        {
        }
        private static function GetFinderItemText($arParams, $arItem)
        {
        }
        private static function GetFinderItemStructure($arParams, $arItem)
        {
        }
        private static function GetFinderItemStructureCategory($arParams, $arItem)
        {
        }
        private static function GetFinderItemCheckbox($arParams, $arItem)
        {
        }
        private static function GetFinderItemStructureItem($arParams, $arItem)
        {
        }
    }
    class CAllEvent
    {
        public static function CheckEvents()
        {
        }
        public static function ExecuteEvents()
        {
        }
        public static function CleanUpAgent()
        {
        }
        public static function SendImmediate($event, $lid, $arFields, $Duplicate = "Y", $message_id = "", $files = array(), $languageId = '', array $filesContent = [])
        {
        }
        public static function Send($event, $lid, $arFields, $Duplicate = "Y", $message_id = "", $files = array(), $languageId = '')
        {
        }
        public static function fieldencode($s)
        {
        }
        public static function ExtractMailFields($str)
        {
        }
        public static function GetSiteFieldsArray($site_id)
        {
        }
        public static function ReplaceTemplate($str, $ar, $bNewLineToBreak = \false)
        {
        }
        /**
         * @deprecated See \Bitrix\Main\Mail\Mail::is8Bit()
         */
        public static function Is8Bit($str)
        {
        }
        /**
         * @deprecated See \Bitrix\Main\Mail\Mail::encodeMimeString()
         */
        public static function EncodeMimeString($text, $charset)
        {
        }
        /**
         * @deprecated See \Bitrix\Mail\Mail::encodeSubject()
         */
        public static function EncodeSubject($text, $charset)
        {
        }
        /**
         * @deprecated See \Bitrix\Main\Mail\Mail::encodeHeaderFrom()
         */
        public static function EncodeHeaderFrom($text, $charset)
        {
        }
        /**
         * @deprecated See \Bitrix\Main\Mail\Mail::getMailEol()
         */
        public static function GetMailEOL()
        {
        }
        /**
         * @deprecated See \Bitrix\Main\Mail\Event::handleEvent()
         */
        public static function HandleEvent($arEvent)
        {
        }
    }
    class CAllEventMessage
    {
        var $LAST_ERROR;
        public function CheckFields($arFields, $ID = \false)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // New event message template
        ///////////////////////////////////////////////////////////////////
        public function Add($arFields)
        {
        }
        public function Update($ID, $arFields)
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Query
        ///////////////////////////////////////////////////////////////////
        public static function GetByID($ID)
        {
        }
        public static function GetSite($event_message_id)
        {
        }
        public static function GetLang($event_message_id)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function GetListDataModifier($data)
        {
        }
        public static function GetList(&$by, &$order, $arFilter = array())
        {
        }
    }
    class CEventType
    {
        public static function CheckFields($arFields = array(), $action = "ADD", $ID = array())
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($arID = array(), $arFields = array())
        {
        }
        public static function Delete($arID)
        {
        }
        public static function GetList($arFilter = array(), $arOrder = array())
        {
        }
        public static function GetListExFetchDataModifier($data)
        {
        }
        public static function GetListEx($arOrder = array(), $arFilter = array(), $arParams = array())
        {
        }
        ///////////////////////////////////////////////////////////////////
        // selecting type
        ///////////////////////////////////////////////////////////////////
        public static function GetByID($ID, $LID)
        {
        }
        public static function GetFilterOperation($key)
        {
        }
    }
    class _CEventTypeResult extends \CDBResult
    {
        var $type = "type";
        var $LID = \LANGUAGE_ID;
        var $SITE_ID = \SITE_ID;
        public function __construct($res, $arParams = array())
        {
        }
        function Fetch()
        {
        }
    }
    class CDBResultEventMultiResult extends \CDBResult
    {
        public $affectedRowsCount;
        public function AffectedRowsCount()
        {
        }
    }
    class CASNReader
    {
        protected $value;
        public function __construct($value = '')
        {
        }
        public function Read(&$buf)
        {
        }
        protected static function ReadBytes(&$buf, $len)
        {
        }
        protected static function ReadByte(&$buf)
        {
        }
        protected static function ToInt($bin)
        {
        }
        public function GetValue()
        {
        }
        public function GetSequence()
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2013 Bitrix
     */
    class CTimeZone
    {
        protected static $enabled = 1;
        protected static $useTimeZones = \false;
        public static function Possible()
        {
        }
        public static function Enabled()
        {
        }
        public static function OptionEnabled()
        {
        }
        public static function Disable()
        {
        }
        public static function Enable()
        {
        }
        private static function __tzsort($a, $b)
        {
        }
        public static function GetZones()
        {
        }
        public static function SetAutoCookie()
        {
        }
        public static function IsAutoTimeZone($autoTimeZone)
        {
        }
        public static function GetCookieValue()
        {
        }
        /**
         * Emulates timezone got from JS cookie setter like in SetAutoCookie.
         *
         * @param int $timezoneOffset Time zone offset
         */
        public static function SetCookieValue($timezoneOffset)
        {
        }
        /**
         * @param int|null $USER_ID If USER_ID is set offset is taken from DB
         * @param bool $forced If set, offset is calculated regardless enabling/disabling by functions Enable()/Disable().
         * @return int
         */
        public static function GetOffset($USER_ID = \null, $forced = \false)
        {
        }
    }
    class CAllAgent
    {
        public static function AddAgent($name, $module = "", $period = "N", $interval = 86400, $datecheck = "", $active = "Y", $next_exec = "", $sort = 100, $user_id = \false, $existError = \true)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function RemoveAgent($name, $module = "", $user_id = \false)
        {
        }
        public static function Delete($id)
        {
        }
        public static function RemoveModuleAgents($module)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function GetById($ID)
        {
        }
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array())
        {
        }
        public static function CheckFields(&$arFields, $ign_name = \false)
        {
        }
    }
    class CAdminNotify
    {
        const TYPE_NORMAL = 'M';
        const TYPE_ERROR = 'E';
        protected static function CleanCache()
        {
        }
        public static function Add($arFields)
        {
        }
        private static function CheckFields($arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function DeleteByModule($moduleId)
        {
        }
        public static function DeleteByTag($tagId)
        {
        }
        public static function GetHtml()
        {
        }
        public static function GetList($arSort = array(), $arFilter = array())
        {
        }
        private static function err_mess()
        {
        }
    }
    class CAllRatingsComponentsMain
    {
        // return configs of component-rating
        public static function OnGetRatingConfigs()
        {
        }
        // return support object
        public static function OnGetRatingObject()
        {
        }
        // check the value of the component-rating which relate to the module
        public static function OnAfterAddRating($ID, $arFields)
        {
        }
        // check the value of the component-rating which relate to the module
        public static function OnAfterUpdateRating($ID, $arFields)
        {
        }
        // Utilities
        // check input values, if value does not validate, set the default value
        public static function __CheckFields($entityId, $arConfigs)
        {
        }
        // collect the default and regular expressions for the fields component-rating
        public static function __AssembleConfigDefault($objectType = \null)
        {
        }
        public static function OnGetRatingContentOwner($arParams)
        {
        }
        // auto enabler rating vote
        public static function GetShowRating(&$arParams)
        {
        }
        public static function getRatingLikeMessage($emotion)
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2020 Bitrix
     */
    class CGroup
    {
        var $LAST_ERROR;
        public static function err_mess()
        {
        }
        public function Add($arFields)
        {
        }
        public static function GetDropDownList($strSqlSearch = "and ACTIVE='Y'", $strSqlOrder = "ORDER BY C_SORT, NAME, ID")
        {
        }
        public static function GetList(&$by, &$order, $arFilter = array(), $SHOW_USERS_AMOUNT = "N")
        {
        }
        //*************** COMMON UTILS *********************/
        public static function GetFilterOperation($key)
        {
        }
        public static function PrepareSql(&$arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields)
        {
        }
        public static function GetListEx($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function GetByID($ID, $SHOW_USERS_AMOUNT = "N")
        {
        }
        public function CheckFields($arFields, $ID = \false)
        {
        }
        public function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function GetGroupUser($ID)
        {
        }
        public static function GetGroupUserEx($ID)
        {
        }
        public static function GetMaxSort()
        {
        }
        public static function GetSubordinateGroups($grId)
        {
        }
        public static function SetSubordinateGroups($grId, $arSubGroups = \false)
        {
        }
        public static function GetTasks($ID, $onlyMainTasks = \true, $module_id = \false)
        {
        }
        public static function SetTasks($ID, $arr)
        {
        }
        public static function GetTasksForModule($module_id, $onlyMainTasks = \true)
        {
        }
        public static function SetTasksForModule($module_id, $arGroupTask)
        {
        }
        public static function GetModulePermission($group_id, $module_id)
        {
        }
        public static function SetModulePermission($group_id, $module_id, $permission)
        {
        }
        public static function GetIDByCode($code)
        {
        }
    }
    class CHotKeysCode
    {
        protected $arList;
        protected $hkCacheTtl = 3600;
        public function GetByID($ID)
        {
        }
        public function GetCodeByClassName($className)
        {
        }
        protected function CleanUrl($url)
        {
        }
        public function GetByUrl($url)
        {
        }
        public function GetIDByTitleObj($strTitleObj)
        {
        }
        protected function CheckFields($arFields, $ID = \false)
        {
        }
        protected function LoadToCache()
        {
        }
        protected function CleanCache()
        {
        }
        protected function ErrOrig()
        {
        }
        public function Delete($ID)
        {
        }
        public function Update($ID, $arFields)
        {
        }
        public function Add($arFields)
        {
        }
        public function GetList($aSort = array(), $arFilter = array(), $showEmptyName = \true)
        {
        }
    }
    class CHotKeys
    {
        /** @var CHotKeysCode */
        protected static $codes;
        /** @var CHotKeys */
        protected static $instance;
        protected static $optUse;
        //Global settings option
        protected static $cacheId;
        protected $hkCacheTtl = 3600;
        protected $arList;
        //For Cache //private
        protected $arServSymb = array(8 => "Back Space", 9 => "Tab", 13 => "Enter", 16 => "Shift", 17 => "Ctrl", 18 => "Alt", 19 => "Pause", 20 => "Caps Lock", 27 => "ESC", 32 => "Space bar", 33 => "Page Up", 34 => "Page Down", 35 => "End", 36 => "Home", 37 => "Left", 38 => "Up", 39 => "Right", 40 => "Down", 45 => "Insert", 46 => "Delete", 96 => "0 (ext)", 97 => "1 (ext)", 98 => "2 (ext)", 99 => "3 (ext)", 100 => "4 (ext)", 101 => "5 (ext)", 102 => "6 (ext)", 105 => "9 (ext)", 106 => "* (ext)", 107 => "+ (ext)", 104 => "8 (ext)", 103 => "7 (ext)", 110 => ". (ext)", 111 => "/ (ext)", 112 => "F1", 113 => "F2", 114 => "F3", 115 => "F4", 116 => "F5", 117 => "F6", 118 => "F7", 119 => "F8", 120 => "F9", 121 => "F10", 122 => "F11", 123 => "F12", 144 => "Num Lock", 186 => ";", 188 => ",", 190 => ".", 191 => "/", 192 => "`", 219 => "[", 220 => "|", 221 => "]", 222 => "'", 189 => "-", 187 => "+", 145 => "Scrol Lock");
        public static $ExpImpFileName;
        private function __construct()
        {
        }
        private function __clone()
        {
        }
        public static function GetInstance()
        {
        }
        protected function ErrOrig()
        {
        }
        protected function LoadToCache()
        {
        }
        protected function CleanCache()
        {
        }
        protected function GetByCodeID($codeID)
        {
        }
        public function GetUIDbyHID($hkID)
        {
        }
        protected function GlueSelfToCode(&$arCode)
        {
        }
        public function GetCodeByClassName($className, $name = "", $code = "")
        {
        }
        public function GetCodeByUrl($url)
        {
        }
        public function GetTitle($strTitleObj, $forHint = \false)
        {
        }
        //if obj has unique id = b_hot-keys_code.TITLE_OBJ
        public function SetTitle($className, $forHint = \false)
        {
        }
        public function PrintJSExecs($execs, $controlName = "", $scriptTags = \true, $checkHK = \false)
        {
        }
        //On Error Throws exception+message and return false
        protected function CheckFields($arFields, $ID = \false)
        {
        }
        public function GetList($aSort = array(), $arFilter = array())
        {
        }
        public function Add($arFields)
        {
        }
        public function Update($ID, $arFields)
        {
        }
        public function Delete($ID)
        {
        }
        //sets (copy) keys_strings from user with id=0 to userID
        public function SetDefault($userID)
        {
        }
        public function ShowHKAsChar($hotKeysString)
        {
        }
        protected function CheckKeysString($keysString)
        {
        }
        public function PrintPhpToJSVars()
        {
        }
        public function IsActive()
        {
        }
        // Top panel buttons
        public function PrintTPButton(&$arPanelButton, $parent = "")
        {
        }
        protected function IsDefaultOpt()
        {
        }
        protected function SetNotDefaultOpt()
        {
        }
        //for old stickers hotkeys compability
        protected function CheckStickers()
        {
        }
        public function PrintGlobalUrlVar()
        {
        }
        /**
         * Inserts default hot-keys combination to execute some code to all users
         * wich uses hot keys
         *
         * @param int $codeID - code ID to execute (CHotKeysCode->Add())
         * @param string $keysString - default combination of keys ("Ctrl+Shift+76")
         * @return int Count of users to wich adds hot-keys
         * */
        public function AddDefaultKeyToAll($codeID, $keysString)
        {
        }
        /**
         * Exports current user's binded hot keys and using custom codes
         * @return string exported file name
         * */
        public function Export()
        {
        }
        /**
         * Imports hot keys from file and binds them to user
         * @param string $fileName - absolute path to file with serialized data
         * @param int $userID - user's id wich recieves our hot-keys from file
         * @return int count added hot keys
         * */
        public function Import($fileName, $userID)
        {
        }
    }
    class CBXArchive
    {
        protected function __construct()
        {
        }
        /**
         * Creates an object of the archive 
         * @static
         * @param string $strArcName full path to the archive file to be created
         * @param string $strType one of the supported archive types (TAR.GZ, ZIP etc)
         * @return archive object of a specific class, false if type is not supported or path is incorrect
         */
        public static function GetArchive($strArcName, $strType = "")
        {
        }
        /**
         * Finds the type of the archive by its filename
         * @static
         * @param string $filename full path to the file
         * @return mixed $type code of the type if it's supported (TAR.GZ, ZIP), false if archive type is not found for the file
         */
        public static function DetectTypeByFilename($filename)
        {
        }
        /**
         * Contains information about archives supported by the system
         * @static
         * @return array containing archive type code, classname, extensions, classpath for each type
         */
        public static function GetAvailableFormats()
        {
        }
        /**
         * Returns the array of file extensions which are considered as archives
         * @static
         * @return array containing extensions in lower case
         */
        public static function GetArchiveExtensions()
        {
        }
        /**
         * Checks if the file is archive of the suppoted type
         * @static
         * @param string $strFilename full path to the archive to be checked
         * @return boolean
         */
        public static function IsArchive($strFilename)
        {
        }
        /**
         * Checks if current user has access to the file or folder according to Bitrix permissions
         * @static
         * @param string $strFilename full path to the file
         * @param boolean $isFile true if we check file permissions, false if folder permissions should be checked
         * @return boolean
         */
        public static function HasAccess($strFilename, $isFile)
        {
        }
    }
    abstract class CAllMain
    {
        var $ma, $mapos;
        var $sDocPath2, $sDirPath, $sUriParam;
        var $sDocTitle;
        var $sDocTitleChanger = \null;
        var $arPageProperties = array();
        var $arPagePropertiesChanger = array();
        var $arDirProperties = array();
        var $sLastError;
        /** @var Asset */
        public $oAsset;
        /**
         * Array of css, js, and inline strings
         */
        var $sPath2css = array();
        var $arHeadStrings = array();
        var $arHeadScripts = array();
        /**
         * Additional css, js and inline strings. Need to include in specifik place.
         */
        var $arHeadAdditionalCSS = array();
        var $arHeadAdditionalScripts = array();
        var $arHeadAdditionalStrings = array();
        var $arHeadBeforeCSSStrings = array();
        var $bInAjax = \false;
        var $version;
        var $arAdditionalChain = array();
        var $FILE_PERMISSION_CACHE = array();
        var $arPanelButtons = array();
        var $arPanelFutureButtons = array();
        var $ShowLogout = \false;
        var $ShowPanel = \NULL;
        var $PanelShowed = \false;
        var $showPanelWasInvoked = \false;
        var $buffer_content = array();
        var $buffer_content_type = array();
        var $buffer_man = \false;
        var $buffer_manual = \false;
        var $auto_buffer_cleaned, $buffered = \false;
        /**
         * @var CApplicationException
         */
        var $LAST_ERROR = \false;
        var $ERROR_STACK = array();
        var $arIncludeDebug = array();
        var $aCachedComponents = array();
        var $ShowIncludeStat = \false;
        var $_menu_recalc_counter = 0;
        var $__view = array();
        /** @var CEditArea */
        var $editArea = \false;
        /** @var array */
        var $arComponentMatch = \false;
        var $arAuthResult;
        private $__componentStack = array();
        public function __construct()
        {
        }
        public function reinitPath()
        {
        }
        public function GetCurPage($get_index_page = \null)
        {
        }
        public function SetCurPage($page, $param = \false)
        {
        }
        public function GetCurUri($addParam = "", $get_index_page = \null)
        {
        }
        public function GetCurPageParam($strParam = "", $arParamKill = array(), $get_index_page = \null)
        {
        }
        public function GetCurParam()
        {
        }
        public function GetCurDir()
        {
        }
        public function GetFileRecursive($strFileName, $strDir = \false)
        {
        }
        public function IncludeAdminFile($strTitle, $filepath)
        {
        }
        public function SetAuthResult($arAuthResult)
        {
        }
        public function AuthForm($mess, $show_prolog = \true, $show_epilog = \true, $not_show_links = "N", $do_die = \true)
        {
        }
        public function ShowAuthForm($message)
        {
        }
        /**
         * @param bool $mode
         */
        public function SetNeedCAPTHA($mode)
        {
        }
        /**
         * @return bool
         */
        public function NeedCAPTHA()
        {
        }
        public function NeedCAPTHAForLogin($login)
        {
        }
        public function GetMenuHtml($type = "left", $bMenuExt = \false, $template = \false, $sInitDir = \false)
        {
        }
        public function GetMenuHtmlEx($type = "left", $bMenuExt = \false, $template = \false, $sInitDir = \false)
        {
        }
        public function GetMenu($type = "left", $bMenuExt = \false, $template = \false, $sInitDir = \false)
        {
        }
        /**
         * @deprecated Use HttpRequest::isHttps()
         * @return bool
         */
        public static function IsHTTPS()
        {
        }
        public function GetTitle($property_name = \false, $strip_tags = \false)
        {
        }
        public function SetTitle($title, $arOptions = \null)
        {
        }
        public function ShowTitle($property_name = "title", $strip_tags = \true)
        {
        }
        public function SetPageProperty($PROPERTY_ID, $PROPERTY_VALUE, $arOptions = \null)
        {
        }
        public function GetPageProperty($PROPERTY_ID, $default_value = \false)
        {
        }
        public function ShowProperty($PROPERTY_ID, $default_value = \false)
        {
        }
        public function GetProperty($PROPERTY_ID, $default_value = \false)
        {
        }
        public function GetPagePropertyList()
        {
        }
        public static function InitPathVars(&$site, &$path)
        {
        }
        public function SetDirProperty($PROPERTY_ID, $PROPERTY_VALUE, $path = \false)
        {
        }
        public function InitDirProperties($path)
        {
        }
        public function GetDirProperty($PROPERTY_ID, $path = \false, $default_value = \false)
        {
        }
        public function GetDirPropertyList($path = \false)
        {
        }
        public function GetMeta($id, $meta_name = \false, $bXhtmlStyle = \true)
        {
        }
        public function GetLink($id, $rel = \null, $bXhtmlStyle = \true)
        {
        }
        public static function ShowBanner($type, $html_before = "", $html_after = "")
        {
        }
        public function ShowMeta($id, $meta_name = \false, $bXhtmlStyle = \true)
        {
        }
        public function ShowLink($id, $rel = \null, $bXhtmlStyle = \true)
        {
        }
        public function SetAdditionalCSS($Path2css, $additional = \false)
        {
        }
        /** @deprecated */
        public function GetAdditionalCSS()
        {
        }
        public function GetCSSArray()
        {
        }
        /** @deprecated use Asset::getInstance()->getCss() */
        public function GetCSS($cMaxStylesCnt = \true, $bXhtmlStyle = \true, $assetTargetType = \Bitrix\Main\Page\AssetShowTargetType::ALL)
        {
        }
        public function ShowCSS($cMaxStylesCnt = \true, $bXhtmlStyle = \true)
        {
        }
        /** @deprecated $Asset::getInstance->addString($str, $bUnique, $location); */
        public function AddHeadString($str, $bUnique = \false, $location = \Bitrix\Main\Page\AssetLocation::AFTER_JS_KERNEL)
        {
        }
        public function GetHeadStrings($location = \Bitrix\Main\Page\AssetLocation::AFTER_JS_KERNEL)
        {
        }
        public function ShowHeadStrings()
        {
        }
        /** @deprecated use Asset::getInstance()->addJs($src, $additional) */
        public function AddHeadScript($src, $additional = \false)
        {
        }
        /** @deprecated use Asset::getInstance()->addBeforeJs($content) */
        public function AddLangJS($content)
        {
        }
        /** @deprecated use Asset::getInstance()->addString($content, false, \Bitrix\Main\Page\AssetLocation::AFTER_JS, $mode) */
        public function AddAdditionalJS($content)
        {
        }
        public static function IsExternalLink($src)
        {
        }
        /** @deprecated deprecated use Asset::addCssKernelInfo() */
        public function AddCSSKernelInfo($module = '', $arCSS = array())
        {
        }
        /** @deprecated deprecated use Asset::addJsKernelInfo() */
        public function AddJSKernelInfo($module = '', $arJS = array())
        {
        }
        /** @deprecated use Asset::getInstance()->groupJs($from, $to) */
        public function GroupModuleJS($from = '', $to = '')
        {
        }
        /** @deprecated use Asset::getInstance()->moveJs($module) */
        public function MoveJSToBody($module = '')
        {
        }
        /** @deprecated use Asset::getInstance()->groupCss($from, $to) */
        public function GroupModuleCSS($from = '', $to = '')
        {
        }
        /** @deprecated use Asset::getInstance()->setUnique($type, $id) */
        public function SetUniqueCSS($id = '', $cssType = 'page')
        {
        }
        /** @deprecated */
        public function SetUniqueJS($id = '', $jsType = 'page')
        {
        }
        /** @deprecated use Asset::getInstance()->getJs($type) */
        public function GetHeadScripts($type = 0)
        {
        }
        public function ShowHeadScripts()
        {
        }
        public function ShowBodyScripts()
        {
        }
        public function ShowHead($bXhtmlStyle = \true)
        {
        }
        public function ShowAjaxHead($bXhtmlStyle = \true, $showCSS = \true, $showStrings = \true, $showScripts = \true)
        {
        }
        public function SetShowIncludeAreas($bShow = \true)
        {
        }
        public function GetShowIncludeAreas()
        {
        }
        public function SetPublicShowMode($mode)
        {
        }
        public function GetPublicShowMode()
        {
        }
        public function SetEditArea($areaId, $arIcons)
        {
        }
        public function IncludeStringBefore()
        {
        }
        public function IncludeStringAfter($arIcons = \false, $arParams = array())
        {
        }
        public function IncludeString($string, $arIcons = \false)
        {
        }
        public function GetTemplatePath($rel_path)
        {
        }
        public function SetTemplateCSS($rel_path)
        {
        }
        // >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        // COMPONENTS 2.0 >>>>>
        public function IncludeComponent($componentName, $componentTemplate, $arParams = array(), $parentComponent = \null, $arFunctionParams = array(), $returnResult = \false)
        {
        }
        /**
         * Returns false or instance of current component being executed.
         *
         * @return boolean|CBitrixComponent
         *
         */
        public function getCurrentIncludedComponent()
        {
        }
        /**
         * Returns a current component stack.
         * @return array
         */
        public function getComponentStack()
        {
        }
        public function AddViewContent($view, $content, $pos = 500)
        {
        }
        public function ShowViewContent($view)
        {
        }
        public function GetViewContent($view)
        {
        }
        public static function OnChangeFileComponent($path, $site)
        {
        }
        // <<<<< COMPONENTS 2.0
        // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
        // $arParams - do not change!
        public function IncludeFile($rel_path, $arParams = array(), $arFunctionParams = array())
        {
        }
        public function AddChainItem($title, $link = "", $bUnQuote = \true)
        {
        }
        public function GetNavChain($path = \false, $iNumFrom = 0, $sNavChainPath = \false, $bIncludeOnce = \false, $bShowIcons = \true)
        {
        }
        public function _mkchain($arChain, $strChainTemplate, $bIncludeOnce = \false, $bShowIcons = \true)
        {
        }
        public function ShowNavChain($path = \false, $iNumFrom = 0, $sNavChainPath = \false)
        {
        }
        public function ShowNavChainEx($path = \false, $iNumFrom = 0, $sNavChainPath = \false)
        {
        }
        /*****************************************************/
        public function SetFileAccessPermission($path, $arPermissions, $bOverWrite = \true)
        {
        }
        public function RemoveFileAccessPermission($path, $arGroups = \false)
        {
        }
        public function CopyFileAccessPermission($path_from, $path_to, $bOverWrite = \false)
        {
        }
        public function GetFileAccessPermission($path, $groups = \false, $task_mode = \false)
        {
        }
        public function GetFileAccessPermissionByUser($intUserID, $path, $groups = \false, $task_mode = \false)
        {
        }
        /***********************************************/
        public function SaveFileContent($abs_path, $strContent)
        {
        }
        public function GetFileContent($path)
        {
        }
        /**
         * @deprecated Use LPA::Process()
         */
        public static function ProcessLPA($filesrc = \false, $old_filesrc = \false)
        {
        }
        /**
         * @deprecated Use LPA::ComponentChecker()
         */
        public static function LPAComponentChecker(&$arParams, &$arPHPparams, $parentParamName = \false)
        {
        }
        public static function _ReplaceNonLatin($str)
        {
        }
        public function GetLangSwitcherArray()
        {
        }
        public function GetSiteSwitcherArray()
        {
        }
        /*
        Returns an array of roles for a module
        W - max rights (admin)
        D - min rights (access denied)
        
        $module_id - a module id
        $arGroups - array of groups ID, if not set then for current useer
        $use_default_role - "Y" - use default role
        $max_role_for_super_admin - "Y" - for group ID=1 return max rights
        */
        public static function GetUserRoles($module_id, $arGroups = \false, $use_default_role = "Y", $max_role_for_super_admin = "Y", $site_id = \false)
        {
        }
        /*
        Returns an array of rights for a module
        W - max rights (admin)
        D - min rights (access denied)
        
        $module_id - a module id
        $arGroups - array of groups ID, if not set then for current useer
        $use_default_level - "Y" - use default role
        $max_right_for_super_admin - "Y" - for group ID=1 return max rights
        */
        public static function GetUserRight($module_id, $arGroups = \false, $use_default_level = "Y", $max_right_for_super_admin = "Y", $site_id = \false)
        {
        }
        public static function GetUserRightArray($module_id, $arGroups = \false)
        {
        }
        public static function GetGroupRightList($arFilter, $site_id = \false)
        {
        }
        public static function GetGroupRight($module_id, $arGroups = \false, $use_default_level = "Y", $max_right_for_super_admin = "Y", $site_id = \false)
        {
        }
        public static function SetGroupRight($module_id, $group_id, $right, $site_id = \false)
        {
        }
        public static function DelGroupRight($module_id = '', $arGroups = array(), $site_id = \false)
        {
        }
        public static function GetMainRightList()
        {
        }
        public static function GetDefaultRightList()
        {
        }
        public static function err_mess()
        {
        }
        /*
        Returns a cookie value by the name
        
        $name			: cookie name (without prefix)
        $name_prefix	: name prefix (if not set get from options)
        */
        public function get_cookie($name, $name_prefix = \false)
        {
        }
        /**
         * Sets a cookie and spreads it through domains.
         *
         * @deprecated Use \Bitrix\Main\HttpResponse::addCookie().
         *
         * @param string $name Cookie name (without prefix)
         * @param string $value value
         * @param bool|int $time expire date
         * @param string $folder cookie dir
         * @param bool|string $domain cookie domain
         * @param bool $secure secure flag
         * @param bool|int $spread to spread or not to spread
         * @param bool $name_prefix name prefix (if not set get from options)
         * @param bool $httpOnly
         */
        public function set_cookie($name, $value, $time = \false, $folder = "/", $domain = \false, $secure = \false, $spread = \true, $name_prefix = \false, $httpOnly = \false)
        {
        }
        /**
         * @deprecated Use \Bitrix\Main\Web\Cookie::getCookieDomain().
         * @return string
         */
        public function GetCookieDomain()
        {
        }
        public function StoreCookies()
        {
        }
        public function HoldSpreadCookieHTML($bSet = \false)
        {
        }
        // Returns string with images to spread cookies
        public function GetSpreadCookieHTML()
        {
        }
        /**
         * Returns array of urls which contain signed cross domain cookies.
         *
         * @return array
         */
        public function GetSpreadCookieUrls()
        {
        }
        public function ShowSpreadCookieHTML()
        {
        }
        public function AddPanelButton($arButton, $bReplace = \false)
        {
        }
        public function AddPanelButtonMenu($button_id, $arMenuItem)
        {
        }
        public function GetPanel()
        {
        }
        public function ShowPanel()
        {
        }
        public static function PrintHKGlobalUrlVar()
        {
        }
        public abstract function GetLang($cur_dir = \false, $cur_host = \false);
        public function GetSiteByDir($cur_dir = \false, $cur_host = \false)
        {
        }
        public function RestartWorkarea($start = \false)
        {
        }
        public function AddBufferContent($callback)
        {
        }
        public function RestartBuffer()
        {
        }
        public function &EndBufferContentMan()
        {
        }
        public function EndBufferContent($content = "")
        {
        }
        public function ResetException()
        {
        }
        public function ThrowException($msg, $id = \false)
        {
        }
        public function GetException()
        {
        }
        /**
         * @deprecated Use Main\Text\Encoding::convertEncoding()
         * @param $string
         * @param $charset_in
         * @param $charset_out
         * @return mixed
         */
        public function ConvertCharset($string, $charset_in, $charset_out)
        {
        }
        /**
         * @deprecated Use Main\Text\Encoding::convertEncoding()
         * @param $arData
         * @param $charset_from
         * @param $charset_to
         * @return mixed
         */
        public function ConvertCharsetArray($arData, $charset_from, $charset_to)
        {
        }
        public function CaptchaGetCode()
        {
        }
        public function CaptchaCheckCode($captcha_word, $captcha_sid)
        {
        }
        public function UnJSEscape($str)
        {
        }
        /**
         * @deprecated Use CAdminFileDialog::ShowScript instead
         */
        public static function ShowFileSelectDialog($event, $arResultDest, $arPath = array(), $fileFilter = "", $bAllowFolderSelect = \False)
        {
        }
        /*
        array(
        	"URL"=> 'url to open'
        	"PARAMS"=> array('param' => 'value') - additional params, 2nd argument of jsPopup.ShowDialog()
        ),
        */
        public function GetPopupLink($arUrl)
        {
        }
        public static function GetServerUniqID()
        {
        }
        public static function PrologActions()
        {
        }
        /**
         * Sends the response and terminates the application.
         * @param string $output String to output before termination
         */
        public static function FinalActions($output = "")
        {
        }
        /**
         * @internal
         */
        public static function RunFinalActionsInternal()
        {
        }
        /**
         * @deprecated Will be removed soon
         */
        public static function EpilogActions()
        {
        }
        /**
         * @deprecated Use \Bitrix\Main\Application::addBackgroundJob()
         * @param string|bool $func
         * @param array $args
         * @return bool|null
         */
        public static function ForkActions($func = \false, $args = array())
        {
        }
    }
    class CAllSite
    {
        var $LAST_ERROR;
        public static function InDir($strDir)
        {
        }
        public static function InPeriod($iUnixTimestampFrom, $iUnixTimestampTo)
        {
        }
        public static function InGroup($arGroups)
        {
        }
        public static function GetWeekStart()
        {
        }
        public static function GetDateFormat($type = "FULL", $lang = \false, $bSearchInSitesOnly = \false)
        {
        }
        public static function GetTimeFormat($lang = \false, $bSearchInSitesOnly = \false)
        {
        }
        public function CheckFields($arFields, $ID = \false)
        {
        }
        public static function SaveDomains($LID, $domains)
        {
        }
        public function Add($arFields)
        {
        }
        public function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function GetTemplateList($site_id)
        {
        }
        public static function GetDefList()
        {
        }
        public static function GetSiteDocRoot($site)
        {
        }
        public static function GetSiteByFullPath($path, $bOneResult = \true)
        {
        }
        public static function GetList(&$by, &$order, $arFilter = array())
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function GetArrayByID($ID)
        {
        }
        public static function GetDefSite($LID = \false)
        {
        }
        public static function IsDistinctDocRoots($arFilter = array())
        {
        }
        ///////////////////////////////////////////////////////////////////
        // Returns drop down list with langs
        ///////////////////////////////////////////////////////////////////
        public static function SelectBox($sFieldName, $sValue, $sDefaultValue = "", $sFuncName = "", $field = "class=\"typeselect\"")
        {
        }
        public static function SelectBoxMulti($sFieldName, $Value)
        {
        }
        public static function GetNameTemplates()
        {
        }
        /**
         * Returns current name template
         *
         * If site is not defined - will look for name template for current language.
         * If there is no value for language - returns pre-defined value @see CSite::GetDefaultNameFormat
         * FORMAT_NAME constant can be set in dbconn.php
         *
         * @param $dummy Unused
         * @param string $site_id - use to get value for the specific site
         * @return string ex: #LAST_NAME# #NAME#
         */
        public static function GetNameFormat($dummy = \null, $site_id = "")
        {
        }
        /**
         * Returns default name template
         * By default: Russian #LAST_NAME# #NAME#, English #NAME# #LAST_NAME#
         *
         * @return string - one of two possible default values
         */
        public static function GetDefaultNameFormat()
        {
        }
        public static function GetCurTemplate()
        {
        }
    }
    class _CLangDBResult extends \CDBResult
    {
        public function __construct($res)
        {
        }
        function Fetch()
        {
        }
    }
    class CAllLanguage
    {
        var $LAST_ERROR;
        public static function GetList(&$by, &$order, $arFilter = array())
        {
        }
        public static function GetByID($ID)
        {
        }
        public function CheckFields($arFields, $ID = \false)
        {
        }
        public function Add($arFields)
        {
        }
        public function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function SelectBox($sFieldName, $sValue, $sDefaultValue = "", $sFuncName = "", $field = "class=\"typeselect\"")
        {
        }
        public static function GetLangSwitcherArray()
        {
        }
    }
    class CLanguage extends \CAllLanguage
    {
    }
    class CLangAdmin extends \CLanguage
    {
    }
    abstract class CAllFilterQuery
    {
        var $cnt = 0;
        var $m_query;
        var $m_words;
        var $m_fields;
        var $m_kav;
        var $default_query_type;
        var $rus_bool_lang;
        var $error;
        var $procent;
        var $ex_sep;
        var $clob;
        var $div_fields;
        var $clob_upper;
        var $errorno;
        /*
        $default_query_type - logic for spaces
        $rus_bool_lang - use russian logic words
        $ex_sep - array with exceptions for delimiters
        */
        public function __construct($default_query_type = "and", $rus_bool_lang = "yes", $procent = "Y", $ex_sep = array(), $clob = "N", $div_fields = "Y", $clob_upper = "N")
        {
        }
        public abstract function BuildWhereClause($word);
        public function GetQueryString($fields, $query)
        {
        }
        public function CutKav($query)
        {
        }
        public function ParseQ($q)
        {
        }
        public function ParseStr($qwe)
        {
        }
        public function PrepareQuery($q)
        {
        }
    }
    class CAllLang extends \CAllSite
    {
    }
    class CApplicationException
    {
        var $msg, $id;
        public function __construct($msg, $id = \false)
        {
        }
        /** @deprecated */
        public function CApplicationException($msg, $id = \false)
        {
        }
        public function GetString()
        {
        }
        public function GetID()
        {
        }
        public function __toString()
        {
        }
    }
    class CAdminException extends \CApplicationException
    {
        var $messages;
        public function __construct($messages, $id = \false)
        {
        }
        public function GetMessages()
        {
        }
        public function AddMessage($message)
        {
        }
    }
    class CCaptchaAgent
    {
        public static function DeleteOldCaptcha($sec = 3600)
        {
        }
    }
    class CDebugInfo
    {
        var $start_time;
        /** @var \Bitrix\Main\Diag\SqlTracker */
        var $savedTracker = \null;
        var $cache_size = 0;
        var $arCacheDebugSave;
        var $arResult;
        static $level = 0;
        var $is_comp = \true;
        var $index = 0;
        public function __construct($is_comp = \true)
        {
        }
        public function Start()
        {
        }
        public function Stop($rel_path = "", $path = "", $cache_type = "")
        {
        }
        public function Output($rel_path = "", $path = "", $cache_type = "")
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2013 Bitrix
     */
    class CComponentAjax
    {
        var $componentID = '';
        var $bAjaxSession = \false;
        var $bIFrameMode = \false;
        var $componentName;
        var $componentTemplate;
        var $arParams;
        var $arCSSList;
        var $arHeadScripts;
        var $bShadow = \true;
        var $bJump = \true;
        var $bStyle = \true;
        var $bHistory = \true;
        var $bWrongRedirect = \false;
        var $buffer_start_counter;
        var $buffer_finish_counter;
        var $bRestartBufferCalled;
        var $RestartBufferHandlerId;
        var $LocalRedirectHandlerId;
        var $currentUrl = \false;
        var $dirname_currentUrl = \false;
        var $basename_currentUrl = \false;
        var $__nav_params = \null;
        public function __construct($componentName, $componentTemplate, &$arParams, $parentComponent)
        {
        }
        /**
         * @param CBitrixComponent $parent
         * @return bool
         */
        function _checkParent($parent)
        {
        }
        function __BufferDelimiter()
        {
        }
        function __removeHandlers()
        {
        }
        function RestartBufferHandler()
        {
        }
        function LocalRedirectHandler(&$url)
        {
        }
        function CheckSession()
        {
        }
        function __GetSEFRealUrl($url)
        {
        }
        function __isAjaxURL($url)
        {
        }
        function _checkPcreLimit($data)
        {
        }
        function __PrepareLinks(&$data)
        {
        }
        function __PrepareForms(&$data)
        {
        }
        function __prepareScripts(&$data)
        {
        }
        function _PrepareAdditionalData()
        {
        }
        function _PrepareData()
        {
        }
        function Process()
        {
        }
        // will be called as delay function and not in class entity context
        public static function executeEvents(&$content = '')
        {
        }
    }
    class CZip implements \IBXArchive
    {
        public $zipname = '';
        public $zipfile = 0;
        private $arErrors = array();
        private $fileSystemEncoding = "";
        private $startFile;
        private $arHeaders;
        //should be changed via SetOptions
        private $compress = \true;
        private $remove_path = "";
        private $add_path = "";
        private $replaceExistentFiles = \false;
        private $checkBXPermissions = \false;
        const ReadBlockSize = 2048;
        public function __construct($pzipname)
        {
        }
        /**
         * Packs files and folders into archive
         * @param array $arFileList containing files and folders to be packed into archive
         * @param string $startFile - if specified then all files before it won't be packed during the traversing of $arFileList. Can be used for multi-step archivation
         * @return mixed 0 or false if error, 1 if success, 2 if the next step should be performed. Errors can be seen using GetErrors() method
         */
        public function Pack($arFileList, $startFile = "")
        {
        }
        private function _haveTime()
        {
        }
        private function _processFiles($arFileList, $addPath, $removePath)
        {
        }
        /**
         * Called from the archive object it returns the name of the file for the next step during multi-step archivation. Call if Pack method returned 2
         * @return string path to file
         */
        public function GetStartFile()
        {
        }
        /**
         * Unpacks archive into specified folder
         * @param string $strPath - path to the directory to unpack archive to
         * @return mixed 0 or false if error, 1 if success. Errors can be seen using GetErrors() method
         */
        public function Unpack($strPath)
        {
        }
        /**
         * Lets the user define packing/unpacking options
         * @param array $arOptions an array with the options' names and their values
         * @return nothing
         */
        public function SetOptions($arOptions)
        {
        }
        /**
         * Returns an array of packing/unpacking options and their current values
         * @return array
         */
        public function GetOptions()
        {
        }
        /**
         * Returns an array containing error codes and messages. Call this method after Pack or Unpack
         * @return array
         */
        public function GetErrors()
        {
        }
        /**
         * Creates an archive
         * @param array $arFileList containing files and folders to be added to the archive
         * @param array|int $arParams an array of parameters
         * @return mixed 0 if error, array $arResultList with packed files if success
         */
        public function Create($arFileList, $arParams = 0)
        {
        }
        /**
         * Archives files and folders
         * @param array $arFileList containing files and folders to be packed into archive
         * @param array|int $arParams - if specified contains options to use for archivation
         * @return mixed 0 or false if error, array with the list of packed files and folders if success. Errors can be seen using GetErrors() method
         */
        public function Add($arFileList, $arParams = 0)
        {
        }
        /**
         * Returns the list of files and folders in the archive
         * @return mixed 0 if error, array of results if success
         */
        public function GetContent()
        {
        }
        /**
         * Extracts archive content
         * @param array|int $arParams an array of parameters
         * @return mixed 0 or false if error, array of extracted files and folders if success. Errors can be seen using GetErrors() method
         */
        public function Extract($arParams = 0)
        {
        }
        /**
         * Deletes a file from the archive
         * @param array $arParams an rules defining which files should be deleted
         * @return mixed 0 if error, array $arResultList with deleted files if success
         */
        public function Delete($arParams)
        {
        }
        /**
         * Returns archive properties
         * @return mixed 0 if error, array $arProperties if success
         */
        public function GetProperties()
        {
        }
        private function _checkFormat()
        {
        }
        private function _createArchive($arFilesList, &$arResultList, &$arParams)
        {
        }
        private function _addData($arFilesList, &$arResultList, &$arParams)
        {
        }
        private function _openFile($mode)
        {
        }
        private function _closeFile()
        {
        }
        private function _addList($arFilesList, &$arResultList, $addDir, $removeDir, $removeAllDir, &$arParams)
        {
        }
        private function _addFileList($arFilesList, &$arResultList, $addDir, $removeDir, $removeAllDir, &$arParams)
        {
        }
        private function _addFile($filename, &$arHeader, $addDir, $removeDir, $removeAllDir, &$arParams)
        {
        }
        private function _writeFileHeader(&$arHeader)
        {
        }
        private function _writeCentralFileHeader(&$arHeader)
        {
        }
        private function _writeCentralHeader($entriesNumber, $blockSize, $offset, $comment)
        {
        }
        private function _getFileList(&$arFilesList)
        {
        }
        private function _convertHeader2FileInfo($arHeader, &$arInfo)
        {
        }
        private function _extractByRule(&$arFileList, &$arParams)
        {
        }
        private function _extractFile(&$arEntry, $path, $removePath, $removeAllPath, &$arParams)
        {
        }
        private function _extractFileAsString(&$arEntry, &$string)
        {
        }
        private function _readFileHeader(&$arHeader)
        {
        }
        private function _readCentralFileHeader(&$arHeader)
        {
        }
        private function _readEndCentralDir(&$arCentralDir)
        {
        }
        private function _deleteByRule(&$arResultList, &$arParams)
        {
        }
        private function _checkDir($dir, $isDir = \false)
        {
        }
        private function _checkParams(&$arParams, $arDefaultValues)
        {
        }
        private function _errorLog($errorName, $errorString = '')
        {
        }
        private function _errorReset()
        {
        }
        private function _reducePath($dir)
        {
        }
        private function _containsPath($dir, $path)
        {
        }
        private function _copyBlocks($source, $dest, $blockSize, $mode = 0)
        {
        }
        private function _renameTmpFile($source, $dest)
        {
        }
        private function _convertWinPath($path, $removeDiskLetter = \true)
        {
        }
        private function &_parseFileParams(&$arFileList)
        {
        }
        private function _cleanFile()
        {
        }
        private function _checkDirPath($path)
        {
        }
        private function _getfileSystemEncoding()
        {
        }
    }
    class CWizardBase
    {
        var $wizardName;
        var $wizardSteps;
        var $currentStepID;
        var $firstStepID;
        //attribute 'name' for buttons
        var $nextButtonID;
        var $prevButtonID;
        var $finishButtonID;
        var $cancelButtonID;
        //attribute 'name' for hidden button vars
        var $nextStepHiddenID;
        var $prevStepHiddenID;
        var $finishStepHiddenID;
        var $cancelStepHiddenID;
        var $currentStepHiddenID;
        var $variablePrefix;
        var $formName;
        var $formActionScript;
        var $returnOutput;
        var $defaultVars;
        var $defaultTemplate;
        var $arTemplates;
        var $useAdminTemplate;
        var $package;
        public function __construct($wizardName, $package)
        {
        }
        function AddStep($obStep, $stepID = \null)
        {
        }
        function AddSteps($arClasses)
        {
        }
        function SetTemplate($obStepTemplate, $stepID = \null)
        {
        }
        function DisableAdminTemplate()
        {
        }
        function SetFirstStep($stepID)
        {
        }
        function SetCurrentStep($stepID)
        {
        }
        function GetCurrentStepID()
        {
        }
        /**
         * @return CWizardStep
         */
        function GetCurrentStep()
        {
        }
        function GetWizardSteps()
        {
        }
        function GetVars($useDefault = \false)
        {
        }
        function GetVar($varName, $useDefault = \false)
        {
        }
        function SetVar($varName, $varValue)
        {
        }
        function UnSetVar($varName)
        {
        }
        function __GetComplexVar($varName, &$arVars)
        {
        }
        function __SetComplexVar($varName, $value, &$arVars)
        {
        }
        function __UnSetComplexVar($varName, &$arVars)
        {
        }
        function GetRealName($varName)
        {
        }
        function GetVarPrefix()
        {
        }
        function SetVarPrefix($varPrefix)
        {
        }
        function SetDefaultVar($varName, $varValue)
        {
        }
        function SetDefaultVars($arVars)
        {
        }
        function GetDefaultVar($varName)
        {
        }
        function GetDefaultVars()
        {
        }
        function GetWizardName()
        {
        }
        function SetFormName($formName)
        {
        }
        function GetFormName()
        {
        }
        function SetFormActionScript($actionScript)
        {
        }
        function GetFormActionScript()
        {
        }
        function IsNextButtonClick()
        {
        }
        function IsPrevButtonClick()
        {
        }
        function IsFinishButtonClick()
        {
        }
        function IsCancelButtonClick()
        {
        }
        function SetNextButtonID($buttonID)
        {
        }
        function GetNextButtonID()
        {
        }
        function GetNextStepID()
        {
        }
        function SetPrevButtonID($buttonID)
        {
        }
        function GetPrevButtonID()
        {
        }
        function GetPrevStepID()
        {
        }
        function SetFinishButtonID($buttonID)
        {
        }
        function GetFinishButtonID()
        {
        }
        function GetFinishStepID()
        {
        }
        function SetCancelButtonID($buttonID)
        {
        }
        function GetCancelButtonID()
        {
        }
        function GetCancelStepID()
        {
        }
        function SetReturnOutput($mode = \true)
        {
        }
        function GetPackage()
        {
        }
        function Display()
        {
        }
        function _DisplayStep()
        {
        }
        function __GetStepLayout()
        {
        }
        function __DisplayHiddenVars($arVars, $oStep, $concatString = \null)
        {
        }
        function __ShowError($errorMessage)
        {
        }
        /* Old  compatible Methods*/
        function GetID()
        {
        }
        function GetPath()
        {
        }
        function GetSiteTemplateID()
        {
        }
        function GetSiteGroupID()
        {
        }
        function GetSiteID()
        {
        }
        function GetSiteServiceID()
        {
        }
    }
    class CWizardAdminTemplate extends \CWizardTemplate
    {
        function GetLayout()
        {
        }
    }
    /* TODO: Comments are out of date and incomplete. */
    /**
     * FILE:        windowslivelogin.php
     *
     * DESCRIPTION: Sample implementation of Web Authentication and Delegated
     *              Authentication protocol in PHP. Also includes trusted
     *              sign-in and application verification sample
     *              implementations.
     *
     * VERSION:     1.1
     *
     * Copyright (c) 2008 Microsoft Corporation.  All Rights Reserved.
     */
    /**
     * Holds the user information after a successful sign-in.
     */
    class WLL_User
    {
        /**
         * Initialize the User with time stamp, userid, flags, context and token.
         */
        public function __construct($timestamp, $id, $flags, $context, $token)
        {
        }
        /*private*/
        var $_timestamp;
        /**
         * Returns the Unix timestamp as obtained from the SSO token.
         */
        /*public*/
        function getTimestamp()
        {
        }
        /**
         * Sets the Unix timestamp.
         */
        /*private*/
        function setTimestamp($timestamp)
        {
        }
        /*private*/
        var $_id;
        /**
         * Returns the pairwise unique ID for the user.
         */
        /*public*/
        function getId()
        {
        }
        /**
         * Sets the pairwise unique ID for the user.
         */
        /*private*/
        function setId($id)
        {
        }
        /*private*/
        var $_usePersistentCookie;
        /**
         * Indicates whether the application is expected to store the
         * user token in a session or persistent cookie.
         */
        /*public*/
        function usePersistentCookie()
        {
        }
        /**
         * Sets the usePersistentCookie flag for the user.
         */
        /*private*/
        function setFlags($flags)
        {
        }
        /*private*/
        var $_context;
        /**
         * Returns the application context that was originally passed
         * to the sign-in request, if any.
         */
        /*public*/
        function getContext()
        {
        }
        /**
         * Sets the the Application context.
         */
        /*private*/
        function setContext($context)
        {
        }
        /*private*/
        var $_token;
        /**
         * Returns the encrypted Web Authentication token containing
         * the UID. This can be cached in a cookie and the UID can be
         * retrieved by calling the ProcessToken method.
         */
        /*public*/
        function getToken()
        {
        }
        /**
         * Sets the the User token.
         */
        /*private*/
        function setToken($token)
        {
        }
        var $_error = \false;
        function setError($str)
        {
        }
        function getError()
        {
        }
    }
    /**
     * Holds the Consent Token object corresponding to consent granted.
     */
    class WLL_ConsentToken
    {
        /**
         * Indicates whether the delegation token is set and has not expired.
         */
        /*public*/
        function isValid()
        {
        }
        /**
         * Refreshes the current token and replace it. If operation succeeds
         * true is returned to signify success.
         */
        /*public*/
        function refresh()
        {
        }
        /*private*/
        var $_wll;
        /**
         * Initialize the ConsentToken module with the WindowsLiveLogin,
         * delegation token, refresh token, session key, expiry, offers,
         * location ID, context, decoded token, and raw token.
         */
        public function __construct($wll, $delegationtoken, $refreshtoken, $sessionkey, $expiry, $offers, $locationID, $context, $decodedtoken, $token)
        {
        }
        /*private*/
        var $_delegationtoken;
        /**
         * Gets the Delegation token.
         */
        /*public*/
        function getDelegationToken()
        {
        }
        /**
         * Sets the Delegation token.
         */
        /*private*/
        function setDelegationToken($delegationtoken)
        {
        }
        /*private*/
        var $_refreshtoken;
        /**
         * Gets the refresh token.
         */
        /*public*/
        function getRefreshToken()
        {
        }
        /**
         * Sets the refresh token.
         */
        /*private*/
        function setRefreshToken($refreshtoken)
        {
        }
        /*private*/
        var $_sessionkey;
        /**
         * Gets the session key.
         */
        /*public*/
        function getSessionKey()
        {
        }
        /**
         * Sets the session key.
         */
        /*private*/
        function setSessionKey($sessionkey)
        {
        }
        /*private*/
        var $_expiry;
        /**
         * Gets the expiry time of delegation token.
         */
        /*public*/
        function getExpiry()
        {
        }
        /**
         * Sets the expiry time of delegation token.
         */
        /*private*/
        function setExpiry($expiry)
        {
        }
        /*private*/
        var $_offers;
        /**
         * Gets the list of offers/actions for which the user granted consent.
         */
        /*public*/
        function getOffers()
        {
        }
        /*private*/
        var $_offers_string;
        /**
         * Gets the string representation of all the offers/actions for which
         * the user granted consent.
         */
        /*public*/
        function getOffersString()
        {
        }
        /**
         * Sets the offers/actions for which user granted consent.
         */
        /*private*/
        function setOffers($offers)
        {
        }
        /*private*/
        var $_locationID;
        /**
         * Gets the location ID.
         */
        /*public*/
        function getLocationID()
        {
        }
        /**
         * Sets the location ID.
         */
        /*private*/
        function setLocationID($locationID)
        {
        }
        /*private*/
        var $_context;
        /**
         * Returns the application context that was originally passed
         * to the sign-in request, if any.
         */
        /*public*/
        function getContext()
        {
        }
        /**
         * Sets the application context.
         */
        /*private*/
        function setContext($context)
        {
        }
        /*private*/
        var $_decodedtoken;
        /**
         * Gets the decoded token.
         */
        /*public*/
        function getDecodedToken()
        {
        }
        /**
         * Sets the decoded token.
         */
        /*private*/
        function setDecodedToken($decodedtoken)
        {
        }
        /*private*/
        var $_token;
        /**
         * Gets the raw token.
         */
        /*public*/
        function getToken()
        {
        }
        /**
         * Sets the raw token.
         */
        /*private*/
        function setToken($token)
        {
        }
        /**
         * Makes a copy of the ConsentToken object.
         */
        /*private*/
        function copy($ct)
        {
        }
        var $_error = \false;
        function setError($str)
        {
        }
        function getError()
        {
        }
    }
    class WindowsLiveLogin
    {
        /* Implementation of basic methods for Web Authentication support. */
        /*private*/
        var $_debug = \false;
        /**
         * Stub implementation for logging errors. If you want to enable
         * debugging output, set this to true. In this implementation
         * errors will be logged using the PHP error_log function.
         */
        /*public*/
        function setDebug($debug)
        {
        }
        /**
         * Stub implementation for logging errors. By default, this
         * function does nothing if the debug flag has not been set with
         * setDebug. Otherwise, errors are logged using the PHP error_log
         * function.
         */
        /*private*/
        function debug($string)
        {
        }
        /**
         * Stub implementation for handling a fatal error.
         */
        /*private*/
        function fatal($string)
        {
        }
        /**
         * Initialize the WindowsLiveLogin module with the application ID,
         *   secret key, and security algorithm.
         *
         *  We recommend that you employ strong measures to protect the
         *  secret key. The secret key should never be exposed to the Web
         *  or other users.
         *
         *  Be aware that if you do not supply these settings at
         *  initialization time, you may need to set the corresponding
         *  properties manually.
         *
         *  For Delegated Authentication, you may optionally specify the
         *  privacy policy URL and return URL. If you do not specify these
         *  values here, the default values that you specified when you
         *  registered your application will be used.
         *
         *  The 'force_delauth_nonprovisioned' flag also indicates whether
         *  your application is registered for Delegated Authentication
         *  (that is, whether it uses an application ID and secret key). We
         *  recommend that your Delegated Authentication application always
         *  be registered for enhanced security and functionality.
         */
        public function __construct($appid = \null, $secret = \null, $securityalgorithm = \null, $force_delauth_nonprovisioned = \null, $policyurl = \null, $returnurl = \null)
        {
        }
        /**
         * Initialize the WindowsLiveLogin module from a settings file.
         *
         *  'settingsFile' specifies the location of the XML settings file
         *  that contains the application ID, secret key, and security
         *  algorithm. The file is of the following format:
         *
         *  <windowslivelogin>
         *    <appid>APPID</appid>
         *    <secret>SECRET</secret>
         *    <securityalgorithm>wsignin1.0</securityalgorithm>
         *  </windowslivelogin>
         *
         *  In a Delegated Authentication scenario, you may also specify
         *  'returnurl' and 'policyurl' in the settings file, as shown in the
         *  Delegated Authentication samples.
         *
         *  We recommend that you store the WindowsLiveLogin settings file
         *  in an area on your server that cannot be accessed through the
         *  Internet. This file contains important confidential information.
         */
        /*public static*/
        function initFromXml($settingsFile)
        {
        }
        /*private*/
        var $_appid;
        /**
         * Sets the application ID. Use this method if you did not specify
         * an application ID at initialization.
         **/
        /*public*/
        function setAppId($appid)
        {
        }
        /**
         * Returns the application ID.
         */
        /*public*/
        function getAppId()
        {
        }
        /*private*/
        var $_signkey;
        /*private*/
        var $_cryptkey;
        /**
         * Sets your secret key. Use this method if you did not specify
         * a secret key at initialization.
         */
        /*public*/
        function setSecret($secret)
        {
        }
        /*private*/
        var $_oldsignkey;
        /*private*/
        var $_oldcryptkey;
        /**
         * Sets your old secret key.
         *
         * Use this property to set your old secret key if you are in the
         * process of transitioning to a new secret key. You may need this
         * property because the Windows Live ID servers can take up to
         * 24 hours to propagate a new secret key after you have updated
         * your application settings.
         *
         * If an old secret key is specified here and has not expired
         * (as determined by the oldsecretexpiry setting), it will be used
         * as a fallback if token decryption fails with the new secret
         * key.
         */
        /*public*/
        function setOldSecret($secret)
        {
        }
        /*private*/
        var $_oldsecretexpiry;
        /**
         * Sets the expiry time for your old secret key.
         *
         * After this time has passed, the old secret key will no longer be
         * used even if token decryption fails with the new secret key.
         *
         * The old secret expiry time is represented as the number of seconds
         * elapsed since January 1, 1970.
         */
        /*public*/
        function setOldSecretExpiry($timestamp)
        {
        }
        /**
         * Gets the old secret key expiry time.
         */
        /*public*/
        function getOldSecretExpiry()
        {
        }
        /*private*/
        var $_securityalgorithm;
        /**
         * Sets the version of the security algorithm being used.
         */
        /*public*/
        function setSecurityAlgorithm($securityalgorithm)
        {
        }
        /**
         * Gets the version of the security algorithm being used.
         */
        /*public*/
        function getSecurityAlgorithm()
        {
        }
        /*private*/
        var $_force_delauth_nonprovisioned;
        /**
         * Sets a flag that indicates whether Delegated Authentication
         * is non-provisioned (i.e. does not use an application ID or secret
         * key).
         */
        /*public*/
        function setForceDelAuthNonProvisioned($force_delauth_nonprovisioned)
        {
        }
        /*private*/
        var $_policyurl;
        /**
         * Sets the privacy policy URL if you did not provide one at initialization time.
         */
        /*public*/
        function setPolicyUrl($policyurl)
        {
        }
        /**
         * Gets the privacy policy URL for your site.
         */
        /*public*/
        function getPolicyUrl()
        {
        }
        /*private*/
        var $_returnurl;
        /**
         * Sets the return URL--the URL on your site to which the consent
         *  service redirects users (along with the action, consent token,
         *  and application context) after they have successfully provided
         *  consent information for Delegated Authentication. This value will
         *  override the return URL specified during registration.
         */
        /*public*/
        function setReturnUrl($returnurl)
        {
        }
        /**
         * Returns the return URL of your site.
         */
        /*public*/
        function getReturnUrl()
        {
        }
        /*private*/
        var $_baseurl;
        /**
         * Sets the base URL to use for the Windows Live Login server.
         *  You should not have to change this property. Furthermore, we recommend
         *  that you use the Sign In control instead of the URL methods
         *  provided here.
         */
        /*public*/
        function setBaseUrl($baseurl)
        {
        }
        /**
         * Gets the base URL to use for the Windows Live Login server.
         * You should not have to use this property. Furthermore, we recommend
         * that you use the Sign In control instead of the URL methods
         * provided here.
         */
        /*public*/
        function getBaseUrl()
        {
        }
        /*private*/
        var $_secureurl;
        /**
         * Sets the secure (HTTPS) URL to use for the Windows Live Login
         * server. You should not have to change this property.
         */
        /*public*/
        function setSecureUrl($secureurl)
        {
        }
        /**
         * Gets the secure (HTTPS) URL to use for the Windows Live Login
         * server. You should not have to use this functon directly.
         */
        /*public*/
        function getSecureUrl()
        {
        }
        /*private*/
        var $_consenturl;
        /**
         * Sets the Consent Base URL to use for the Windows Live Consent
         * server. You should not have to use or change this property directly.
         */
        /*public*/
        function setConsentBaseUrl($consenturl)
        {
        }
        /**
         * Gets the URL to use for the Windows Live Consent server. You
         * should not have to use or change this directly.
         */
        /*public*/
        function getConsentBaseUrl()
        {
        }
        /* Methods for Web Authentication support. */
        /**
         * Returns the sign-in URL to use for the Windows Live Login server.
         * We recommend that you use the Sign In control instead.
         *
         * If you specify it, 'context' will be returned as-is in the sign-in
         * response for site-specific use.
         */
        /*public*/
        function getLoginUrl($context = \null, $market = \null)
        {
        }
        /**
         * Returns the sign-out URL to use for the Windows Live Login server.
         * We recommend that you use the Sign In control instead.
         */
        /*public*/
        function getLogoutUrl($market = \null)
        {
        }
        /**
         * Processes the sign-in response from Windows Live Login server.
         *
         * @param query contains the preprocessed POST query, a map of
         *              Strings to an an array of Strings, such as that
         *              returned by ServletRequest.getParameterMap().
         * @return      a User object on successful sign-in; otherwise null.
         */
        /*public*/
        function processLogin($query)
        {
        }
        /**
         * Decodes and validates a Web Authentication token. Returns a User
         * object on success. If a context is passed in, it will be returned
         * as the context field in the User object.
         */
        /*public*/
        function processToken($token, $context = \null)
        {
        }
        /**
         * Returns an appropriate content type and body response that the
         * application handler can return to signify a successful sign-out
         * from the application.
         *
         * When a user signs out of Windows Live or a Windows Live
         * application, a best-effort attempt is made at signing the user out
         * from all other Windows Live applications the user might be signed
         * in to. This is done by calling the handler page for each
         * application with 'action' set to 'clearcookie' in the query
         * string. The application handler is then responsible for clearing
         * any cookies or data associated with the sign-in. After successfully
         * signing the user out, the handler should return a GIF (any GIF)
         * image as response to the 'action=clearcookie' query.
         */
        /*public*/
        function getClearCookieResponse()
        {
        }
        /* Methods for Delegated Authentication. */
        /*
         * Returns the consent URL to use for Delegated Authentication for
         * the given comma-delimited list of offers.
         *
         * If you specify it, 'context' will be returned as-is in the consent
         * response for site-specific use.
         *
         * The registered/configured return URL can also be overridden by
         * specifying 'ru' here.
         *
         * You can change the language in which the consent page is displayed
         * by specifying a culture ID (For example, 'fr-fr' or 'en-us') in the
         * 'market' parameter.
         */
        /*public*/
        function getConsentUrl($offers, $context = \null, $ru = \null, $market = \null)
        {
        }
        /*
         * Returns the URL to use to download a new consent token, given the
         * offers and refresh token.
         *
         * The registered/configured return URL can also be overridden by
         * specifying 'ru' here.
         */
        /*public*/
        function getRefreshConsentTokenUrl($offers, $refreshtoken, $ru = \null)
        {
        }
        /*
         * Returns the URL for the consent-management user interface.
         *
         * You can change the language in which the consent page is displayed
         * by specifying a culture ID (For example, 'fr-fr' or 'en-us') in the
         * 'market' parameter.
         */
        /*public*/
        function getManageConsentUrl($market = \null)
        {
        }
        /*
         * Processes the POST response from the Delegated Authentication
         * service after a user has granted consent. The processConsent
         * function extracts the consent token string and returns the result
         * of invoking the processConsentToken method.
         */
        /*public*/
        function processConsent($query)
        {
        }
        /*
         * Processes the consent token string that is returned in the POST
         * response by the Delegated Authentication service after a
         * user has granted consent.
         */
        /*public*/
        function processConsentToken($token, $context = \null)
        {
        }
        /*
         * Attempts to obtain a new, refreshed token and return it. The
         * original token is not modified.
         */
        /*public*/
        function refreshConsentToken($token, $ru = \null)
        {
        }
        /*
         * Helper function to obtain a new, refreshed token and return it.
         * The original token is not modified.
         */
        /*public*/
        function refreshConsentToken2($offers_string, $refreshtoken, $ru = \null)
        {
        }
        /* Common methods. */
        /*
         * Decodes and validates the token.
         */
        /*public*/
        function decodeAndValidateToken($token, $cryptkey = \null, $signkey = \null, $internal_allow_recursion = \true)
        {
        }
        /**
         * Decodes the given token string; returns undef on failure.
         *
         * First, the string is URL-unescaped and base64 decoded.
         * Second, the IV is extracted from the first 16 bytes of the string.
         * Finally, the string is decrypted using the encryption key.
         */
        /*public*/
        function decodeToken($token, $cryptkey = \null)
        {
        }
        /**
         * Creates a signature for the given string by using the signature
         * key.
         */
        /*public*/
        function signToken($token, $signkey = \null)
        {
        }
        /**
         * Extracts the signature from the token and validates it.
         */
        /*public*/
        function validateToken($token, $signkey = \null)
        {
        }
        /* Implementation of the methods needed to perform Windows Live
        	application verification as well as trusted sign-in. */
        /**
         * Generates an application verifier token. An IP address can
         * optionally be included in the token.
         */
        /*public*/
        function getAppVerifier($ip = \null)
        {
        }
        /**
         * Returns the URL that is required to retrieve the application
         * security token.
         *
         * By default, the application security token is generated for
         * the Windows Live site; a specific Site ID can optionally be
         * specified in 'siteid'. The IP address can also optionally be
         * included in 'ip'.
         *
         * If 'js' is nil, a JavaScript Output Notation (JSON) response is
         * returned in the following format:
         *
         *  {"token":"<value>"}
         *
         * Otherwise, a JavaScript response is returned. It is assumed that
         * WLIDResultCallback is a custom function implemented to handle the
         * token value:
         *
         * WLIDResultCallback("<tokenvalue>");
         */
        /*public*/
        function getAppLoginUrl($siteid = \null, $ip = \null, $js = \null)
        {
        }
        /**
         * Retrieves the application security token for application
         * verification from the application sign-in URL.
         *
         * By default, the application security token will be generated for
         * the Windows Live site; a specific Site ID can optionally be
         * specified in 'siteid'. The IP address can also optionally be
         * included in 'ip'.
         *
         * Implementation note: The application security token is downloaded
         * from the application sign-in URL in JSON format:
         *
         * {"token":"<value>"}
         *
         * Therefore we must extract <value> from the string and return it as
         *  seen here.
         */
        /*public*/
        function getAppSecurityToken($siteid = \null, $ip = \null)
        {
        }
        /**
         * Returns a string that can be passed to the getTrustedParams
         * function as the 'retcode' parameter. If this is specified as the
         * 'retcode', the application will be used as return URL after it
         * finishes trusted sign-in.
         */
        /*public*/
        function getAppRetCode()
        {
        }
        /**
         * Returns a table of key-value pairs that must be posted to the
         * sign-in URL for trusted sign-in. Use HTTP POST to do this. Be aware
         * that the values in the table are neither URL nor HTML escaped and
         * may have to be escaped if you are inserting them in code such as
         * an HTML form.
         *
         * The user to be trusted on the local site is passed in as string
         * 'user'.
         *
         *  Optionally, 'retcode' specifies the resource to which successful
         *  sign-in is redirected, such as Windows Live Mail, and is typically
         *  a string in the format 'id=2000'. If you pass in the value from
         *  getAppRetCode instead, sign-in will be redirected to the
         *  application. Otherwise, an HTTP 200 response is returned.
         */
        /*public*/
        function getTrustedParams($user, $retcode = \null)
        {
        }
        /**
         * Returns the trusted sign-in token in the format that is needed by a
         * control doing trusted sign-in.
         *
         * The user to be trusted on the local site is passed in as string
         * 'user'.
         */
        /*public*/
        function getTrustedToken($user)
        {
        }
        /**
         * Returns the trusted sign-in URL to use for Windows Live Login server.
         */
        /*public*/
        function getTrustedLoginUrl()
        {
        }
        /**
         * Returns the trusted sign-in URL to use for Windows Live
         *  Login server.
         */
        /*public*/
        function getTrustedLogoutUrl()
        {
        }
        /* Helper methods */
        /**
         * Function to parse the settings file.
         */
        /*private*/
        function parseSettings($settingsFile)
        {
        }
        /**
         * Derives the key, given the secret key and prefix as described in the
         * Web Authentication SDK documentation.
         */
        /*private*/
        function derive($secret, $prefix)
        {
        }
        /**
         * Parses query string and returns a hash.
         *
         * If a hash ref is passed in from CGI->Var, it is dereferenced and
         * returned.
         */
        /*private*/
        function parse($input)
        {
        }
        /**
         * Generates a time stamp suitable for the application verifier
         * token.
         */
        /*private*/
        function getTimestamp()
        {
        }
        /**
         * Base64-encodes and URL-escapes a string.
         */
        /*private*/
        function e64($input)
        {
        }
        /**
         * URL-unescapes and Base64-decodes a string.
         */
        /*private*/
        function u64($input)
        {
        }
        /**
         * Fetches the contents given a URL.
         */
        /*private*/
        function fetch($url)
        {
        }
        var $_error = \false;
        function setError($str)
        {
        }
        function getError()
        {
        }
        function OnExternalAuthList()
        {
        }
        function IsAvailable()
        {
        }
    }
    class CVariableDeclare
    {
        public $line = 0;
        public $start = 0;
        public $end = 0;
        public $comment = '';
        public $tokens = array();
        public $dependencies = array();
        public $tainted_vars = array();
        public $id = 0;
        function __construct($id, $line, $start, $end, $tokens, $comment, $dependencies, $tainted_vars)
        {
        }
    }
    class CVariable
    {
        public $declares = array();
        public $have_user_input = \false;
        public $secure = \false;
        public $name = '';
        public $requestInitialization = \true;
        function __construct($name)
        {
        }
        public function newDeclare($id, $line, $start, $end, $tokens, $comment, $dependencies, $tainted_vars)
        {
        }
    }
    class CVuln
    {
        public $comment = '';
        public $tokens = array();
        public $dependencies = array();
        public $tainted_vars = array();
        public $name = '';
        public $line = 0;
        public $filename = '';
        public $traverse = '';
        public $additional_text = '';
        function __construct($filename, $line, $name, $tokens, $dependencies, $tainted_vars, $comment)
        {
        }
    }
    class CVulnScanner
    {
        public $vuln_count = 0;
        public $arResult = array();
        private $tokens = array();
        private $variables = array();
        private $template = '';
        private $file_history = array();
        private $current_file = '';
        private $scan_functions = array();
        private $tokens_type = array();
        private $vuln_func = array();
        private $sec_func = array();
        private $v_userinput = array();
        private $mp_mode = \false;
        private $color = array();
        private $securing_list = array();
        private $tainted_vars = array();
        private $comment = '';
        private $braces = 0;
        private $dependency = array();
        private $last_dependency = array();
        private $dependencies = array();
        private $dependency_line = 0;
        private $scanning_file = '';
        private $init_functions = array();
        private $search_xss = \true;
        private $global_xss_ignore = \false;
        function __construct($file_name, $arParams, $template = '.default', $component_template = '')
        {
        }
        private function getTokensInfo($tokens, $var_declare = \true, $function = '')
        {
        }
        private function dependencyHave($tokens, $type)
        {
        }
        public function process()
        {
        }
        private static function tokenToString($token)
        {
        }
        private function getClassName($token)
        {
        }
        private function getVarName($token, $level = -1)
        {
        }
        private function clearVariables($var)
        {
        }
        private function addVariable($var, $id, $line, $start, $end, $comment = '', $customTokens = array())
        {
        }
        public function tokenize($code, $component_template = '')
        {
        }
        private function prepareTokens($tokens)
        {
        }
        private function wrapBraces($tokens, $start, $between, $end)
        {
        }
        private function fixTokens($tokens, $component_template = '')
        {
        }
        private function reconstructArray($tokens)
        {
        }
        private function removeTernary($tokens)
        {
        }
        private function getTokensValue($file_name, $tokens, $start = 0, $stop = 0)
        {
        }
        private function getBraceEnd($tokens, $i)
        {
        }
        private function getColor($token)
        {
        }
        private function highlightArray($token)
        {
        }
        private function highlightLine($line, $tokens = array(), $tainted_vars = array(), $comment = '')
        {
        }
        private function getVulnNodeTitle($func_name)
        {
        }
        private function getVulnNodeDescription($func_name)
        {
        }
        private function getVulnName($func_name)
        {
        }
        private function traverseVar($var, $id = -1)
        {
        }
        private function dependenciesTraverse($dependencies = array())
        {
        }
        private static function searchSimilarVuln($output, $max)
        {
        }
        private function prepareOutput($output)
        {
        }
        private function getHelp($category)
        {
        }
        public function getOutput()
        {
        }
    }
    class CQAACheckListTests
    {
        private static function getFiles($path, $skip_preg, $file_types, $doc_root, &$files, &$dirs)
        {
        }
        private static function defineScanParams()
        {
        }
        private static function getCurTemplate($path, $mp_mode = \false)
        {
        }
        public static function checkVulnerabilities($arParams)
        {
        }
    }
    abstract class CAllDatabase
    {
        var $DBName;
        var $DBHost;
        var $DBLogin;
        var $DBPassword;
        var $bConnected;
        var $db_Conn;
        var $debug;
        var $DebugToFile;
        var $ShowSqlStat;
        var $db_Error;
        var $db_ErrorSQL;
        var $result;
        var $type;
        static $arNodes = array();
        var $column_cache = array();
        var $bModuleConnection;
        var $bNodeConnection;
        var $node_id;
        /** @var CDatabase */
        var $obSlave = \null;
        /**
         * @var integer
         * @deprecated Use \Bitrix\Main\Application::getConnection()->getTracker()->getCounter();
         **/
        var $cntQuery = 0;
        /**
         * @var float
         * @deprecated Use \Bitrix\Main\Application::getConnection()->getTracker()->getTime();
         **/
        var $timeQuery = 0.0;
        /**
         * @var \Bitrix\Main\Diag\SqlTrackerQuery[]
         * @deprecated Use \Bitrix\Main\Application::getConnection()->getTracker()->getQueries();
         **/
        var $arQueryDebug = array();
        /**
         * @var \Bitrix\Main\Diag\SqlTracker
         */
        public $sqlTracker = \null;
        function StartUsingMasterOnly()
        {
        }
        function StopUsingMasterOnly()
        {
        }
        /**
         * @param string $node_id
         * @param boolean $bIgnoreErrors
         * @param boolean $bCheckStatus
         *
         * @return boolean|CDatabase
         */
        function GetDBNodeConnection($node_id, $bIgnoreErrors = \false, $bCheckStatus = \true)
        {
        }
        /**
         * Returns module database connection.
         * Can be used only if module supports sharding.
         *
         * @param string $module_id
         * @param bool $bModuleInclude
         * @return bool|CDatabase
         */
        public static function GetModuleConnection($module_id, $bModuleInclude = \false)
        {
        }
        abstract function Connect($DBHost, $DBName, $DBLogin, $DBPassword);
        abstract function ConnectInternal();
        function DoConnect($connectionName = "")
        {
        }
        function startSqlTracker()
        {
        }
        function GetNowFunction()
        {
        }
        function GetNowDate()
        {
        }
        abstract function DateToCharFunction($strFieldName, $strType = "FULL");
        abstract function CharToDateFunction($strValue, $strType = "FULL");
        abstract function Concat();
        function Substr($str, $from, $length = \null)
        {
        }
        abstract function IsNull($expression, $result);
        abstract function Length($field);
        function ToChar($expr, $len = 0)
        {
        }
        public static function DateFormatToPHP($format)
        {
        }
        public static function FormatDate($strDate, $format = "DD.MM.YYYY HH:MI:SS", $new_format = "DD.MM.YYYY HH:MI:SS")
        {
        }
        /**
         * @param string $strSql
         * @param bool $bIgnoreErrors
         * @param string $error_position
         * @param array $arOptions
         * @return CDBResult
         */
        abstract function Query($strSql, $bIgnoreErrors = \false, $error_position = "", $arOptions = array());
        //query with CLOB
        function QueryBind($strSql, $arBinds, $bIgnoreErrors = \false)
        {
        }
        function QueryLong($strSql, $bIgnoreErrors = \false)
        {
        }
        abstract function ForSql($strValue, $iMaxLength = 0);
        abstract function PrepareInsert($strTableName, $arFields);
        abstract function PrepareUpdate($strTableName, $arFields);
        function ParseSqlBatch($strSql, $bIncremental = \False)
        {
        }
        function RunSQLBatch($filepath, $bIncremental = \False)
        {
        }
        function IsDate($value, $format = \false, $lang = \false, $format_type = "SHORT")
        {
        }
        function GetErrorMessage()
        {
        }
        function GetErrorSQL()
        {
        }
        function DDL($strSql, $bIgnoreErrors = \false, $error_position = "", $arOptions = array())
        {
        }
        function addDebugQuery($strSql, $exec_time, $node_id = 0)
        {
        }
        function addDebugTime($index, $exec_time)
        {
        }
        public abstract function GetIndexName($tableName, $arColumns, $bStrict = \false);
        public function IndexExists($tableName, $arColumns, $bStrict = \false)
        {
        }
    }
    class CPHPCache
    {
        /**
         * @var Bitrix\Main\Data\Cache
         */
        private $cache;
        public function __construct()
        {
        }
        public function Clean($uniq_str, $initdir = \false, $basedir = "cache")
        {
        }
        public function CleanDir($initdir = \false, $basedir = "cache")
        {
        }
        public function InitCache($TTL, $uniq_str, $initdir = \false, $basedir = "cache")
        {
        }
        public function Output()
        {
        }
        public function GetVars()
        {
        }
        public function StartDataCache($TTL = \false, $uniq_str = \false, $initdir = \false, $vars = array(), $basedir = "cache")
        {
        }
        function AbortDataCache()
        {
        }
        /**
         * Saves the result of calculation to the cache.
         *
         * @param mixed $vars
         * @return void
         */
        function EndDataCache($vars = \false)
        {
        }
        function IsCacheExpired($path)
        {
        }
    }
    class CPageCache
    {
        var $_cache;
        var $filename;
        var $content;
        var $TTL;
        var $bStarted = \false;
        var $uniq_str = \false;
        var $basedir;
        var $initdir = \false;
        function __construct()
        {
        }
        function GetPath($uniq_str)
        {
        }
        function Clean($uniq_str, $initdir = \false, $basedir = "cache")
        {
        }
        function CleanDir($initdir = \false, $basedir = "cache")
        {
        }
        function InitCache($TTL, $uniq_str, $initdir = \false, $basedir = "cache")
        {
        }
        function Output()
        {
        }
        function StartDataCache($TTL, $uniq_str = \false, $initdir = \false, $basedir = "cache")
        {
        }
        function AbortDataCache()
        {
        }
        function EndDataCache()
        {
        }
        function IsCacheExpired($path)
        {
        }
    }
    // The main purpose of the class is:
    // one read - many uses - optional one write
    // of the set of variables
    class CCacheManager
    {
        /** @var Bitrix\Main\Data\ManagedCache */
        private $managedCache;
        /** @var Bitrix\Main\Data\TaggedCache */
        private $taggedCache;
        public function __construct()
        {
        }
        // Tries to read cached variable value from the file
        // Returns true on success
        // otherwise returns false
        public function Read($ttl, $uniqid, $table_id = \false)
        {
        }
        public function GetImmediate($ttl, $uniqid, $table_id = \false)
        {
        }
        // This method is used to read the variable value
        // from the cache after successful Read
        public function Get($uniqid)
        {
        }
        // Sets new value to the variable
        public function Set($uniqid, $val)
        {
        }
        public function SetImmediate($uniqid, $val)
        {
        }
        // Marks cache entry as invalid
        public function Clean($uniqid, $table_id = \false)
        {
        }
        // Marks cache entries associated with the table as invalid
        public function CleanDir($table_id)
        {
        }
        // Clears all managed_cache
        public function CleanAll()
        {
        }
        // Use it to flush cache to the files.
        // Caution: only at the end of all operations!
        public function _Finalize()
        {
        }
        function GetCompCachePath($relativePath)
        {
        }
        /*Components managed(tagged) cache*/
        function StartTagCache($relativePath)
        {
        }
        function EndTagCache()
        {
        }
        function AbortTagCache()
        {
        }
        function RegisterTag($tag)
        {
        }
        function ClearByTag($tag)
        {
        }
    }
    /*****************************************************************************************************/
    /************************  CStackCacheManager  *******************************************************/
    /*****************************************************************************************************/
    class CStackCacheEntry
    {
        var $entity = "";
        var $id = "";
        var $values = array();
        var $len = 10;
        var $ttl = 3600;
        var $cleanGet = \true;
        var $cleanSet = \true;
        function __construct($entity, $length = 0, $ttl = 0)
        {
        }
        function SetLength($length)
        {
        }
        function SetTTL($ttl)
        {
        }
        function Load()
        {
        }
        function DeleteEntry($id)
        {
        }
        function Clean()
        {
        }
        function Get($id)
        {
        }
        function Set($id, $value)
        {
        }
        function Save()
        {
        }
    }
    class CStackCacheManager
    {
        /** @var CStackCacheEntry[] */
        var $cache = array();
        var $cacheLen = array();
        var $cacheTTL = array();
        var $eventHandlerAdded = \false;
        function SetLength($entity, $length)
        {
        }
        function SetTTL($entity, $ttl)
        {
        }
        function Init($entity, $length = 0, $ttl = 0)
        {
        }
        function Load($entity)
        {
        }
        //NO ONE SHOULD NEVER EVER USE INTEGER $id HERE
        function Clear($entity, $id = \False)
        {
        }
        // Clears all managed_cache
        function CleanAll()
        {
        }
        //NO ONE SHOULD NEVER EVER USE INTEGER $id HERE
        function Exist($entity, $id)
        {
        }
        //NO ONE SHOULD NEVER EVER USE INTEGER $id HERE
        function Get($entity, $id)
        {
        }
        //NO ONE SHOULD NEVER EVER USE INTEGER $id HERE
        function Set($entity, $id, $value)
        {
        }
        function Save($entity)
        {
        }
        public static function SaveAll()
        {
        }
        function MakeIDFromArray($values)
        {
        }
    }
    //
    class CControllerClient
    {
        public static function IsInCommonKernel()
        {
        }
        // Controller's authentication
        public static function OnExternalLogin(&$arParams)
        {
        }
        public static function OnAfterUserLogin(&$arParams)
        {
        }
        public static function UpdateUser($arFields = array(), $FORMAT_DATE = \false, $FORMAT_DATETIME = \false)
        {
        }
        public static function AuthorizeAdmin($arParams = array())
        {
        }
        public static function AuthorizeUser($arParams = array())
        {
        }
        public static function OnExternalAuthList()
        {
        }
        public static function PrepareUserInfo($arUser)
        {
        }
        public static function SendMessage($name, $status = 'Y', $description = '')
        {
        }
        public static function InitTicket($controller_url)
        {
        }
        public static function JoinToControllerEx($controller_url, $controller_login, $controller_password, $arMemberParams = array())
        {
        }
        public static function JoinToController($controller_url, $controller_login, $controller_password, $site_url = \false, $controller_group = \false, $site_name = \false, $bSharedKernel = \false)
        {
        }
        public static function RemoveFromController($controller_login, $controller_password)
        {
        }
        public static function UpdateCounters()
        {
        }
        public static function ExecuteEvent($eventName, $arParams = array())
        {
        }
        public static function Unlink()
        {
        }
        public static function GetBackup($bRefresh = \false)
        {
        }
        public static function SetBackup($arBackup)
        {
        }
        public static function SetOptionString($module_id, $option_id, $value)
        {
        }
        public static function RestoreOption($module_id, $option_id)
        {
        }
        public static function SetModules($arModules)
        {
        }
        public static function RestoreModules()
        {
        }
        public static function RestoreGroupSecurity($group_code, $arModules)
        {
        }
        public static function SetTaskSecurity($task_id, $module_id, $arOperations, $letter = '')
        {
        }
        public static function SetGroupSecurity($group_code, $arPermissions, $arSubGroups = \false)
        {
        }
        public static function RestoreSecurity($arExcludeGroups = array())
        {
        }
        public static function RestoreAll()
        {
        }
        public static function GetInstalledOptions($module_id)
        {
        }
        public static function RunCommand($command, $oRequest, $oResponse)
        {
        }
    }
    /**
     * Class __CControllerPacket
     *
     * Base class for various types of packets.
     */
    class __CControllerPacket
    {
        public $debug_const = '';
        public $debug_file_const = '';
        var $member_id;
        var $session_id;
        var $version;
        var $strParameters = "";
        var $arParameters = array();
        var $hash;
        var $secret_id;
        var $encoding;
        /**
         * Returns true if debug is enabled.
         *
         * @return boolean
         */
        public function isDebugEnabled()
        {
        }
        /**
         * Returns debug logs directory.
         * You may define constant CONTROLLER_CLIENT_LOG_DIR.
         * It's value must end with directory delimiter.
         * By default logging will be into /bitrix/controller_logs/ directory
         * under the DOCUMENT_ROOT.
         *
         * @return string
         */
        public function getDebugLogDirectory()
        {
        }
        /**
         * Returns log file name.
         * It's equal to session identifier or if there is no session it's randomized.
         *
         * @return string
         */
        public function getDebugLogFileName()
        {
        }
        /**
         * Writes given information into log file.
         *
         * @param string|array $sText Text to write to log.
         *
         * @return void
         * @see __CControllerPacket::isDebugEnabled
         * @see __CControllerPacket::getDebugLogDirectory
         * @see __CControllerPacket::getDebugLogFileName
         */
        public function Debug($sText)
        {
        }
        /**
         * Unpacks $parameters and converts it using given $encoding into site charset.
         * Preserves "file" member of the array.
         *
         * @param string $parameters Serialized data.
         * @param string $encoding Encoding character set identifier.
         *
         * @return mixed|null
         */
        protected function unpackParameters($parameters, $encoding = '')
        {
        }
        /**
         * Recursively converts arParameter character set.
         *
         * @param array &$arParameters Input/Output parameter.
         * @param string $encodingFrom Encoding character set identifier.
         * @param string $encodingTo Encoding character set identifier.
         *
         * @return void
         * @see CMain::ConvertCharset
         */
        protected function _decode(&$arParameters, $encodingFrom, $encodingTo)
        {
        }
        /**
         * Checks given parameters signature against $hash member.
         *
         * @param string $parameter,... Parameter to be checked
         *
         * @return boolean
         */
        public function Check()
        {
        }
        /**
         * Returns signature for given parameters.
         * Sets $hash member with calculated value.
         *
         * @param string $parameter,... Parameter to be checked
         *
         * @return boolean
         */
        function Sign()
        {
        }
    }
    ///////////////////////////////////////////////////////////////////////////////////////////
    // Áàçîâûé êëàññ äëÿ êëàññîâ òèïà Request:
    //
    // Äëÿ èñïîëüçîâàíèÿ íà êîíòðîëëåðå:
    // CControllerServerRequestTo - Êëàññ äëÿ îòïðàâêè çàïðîñà êëèåíòó
    // CControllerServerRequestFrom - Êëàññ äëÿ ïîëó÷åíèÿ çàïðîñà îò êëèåíòà
    //
    // Äëÿ èñïîëüçîâàíèÿ íà êëèåíòå:
    // CControllerClientRequestTo - Êëàññ äëÿ îòïðàâêè çàïðîñà íà ñåðâåð
    // CControllerClientRequestFrom - Êëàññ äëÿ ïîëó÷åíèÿ çàïðîñà îò ñåðâåðà
    ///////////////////////////////////////////////////////////////////////////////////////////
    class __CControllerPacketRequest extends \__CControllerPacket
    {
        public $operation;
        protected $hostname = '';
        ///////////////////////////////////
        //Äëÿ ðàáîòå â êëàññàõ ïîëó÷àþùèõ ðåçóëüòàòû (CControllerClientRequestFrom, CControllerServerRequestFrom):
        ///////////////////////////////////
        // çàïîëíÿåò îáúåêò ïåðåìåííûìè, ïðèøåäøèìè â $_REQUEST
        public function InitFromRequest()
        {
        }
        /**
         * Checks packet consistency.
         *
         * @return boolean
         * @see __CControllerPacket::Check
         */
        public function Check()
        {
        }
        /**
         * Sets $hash member with calculated value.
         *
         * @return void
         */
        public function Sign()
        {
        }
        /**
         * Check if it was internal call or browser redirect.
         *
         * @return boolean
         **/
        public function Internal()
        {
        }
        ///////////////////////////////////////
        // Äëÿ ðàáîòû â êëàññàõ îòïðàâëÿþùèõ çàïðîñû (CControllerClientRequestTo, CControllerServerRequestTo):
        ///////////////////////////////////////
        /**
         * Returns url encoded and signed string of parameters.
         *
         * @return string
         **/
        public function MakeRequestString()
        {
        }
        /**
         * Asks user browser to do redirect.
         * And thus make a hit with all needed payload.
         *
         * @return void
         **/
        public function RedirectRequest($url)
        {
        }
        /**
         * Sends packet.
         *
         * @param string $url
         * @param string $page
         * @return __CControllerPacketResponse
         */
        public function Send($url = "", $page = "")
        {
        }
    }
    /////////////////////////////////////////////////////////
    // Áàçîâûé êëàññ äëÿ êëàññîâ òèïà Response:
    //
    // Äëÿ èñïîëüçîâàíèÿ íà êîíòðîëëåðå:
    // CControllerServerResponseFrom - Êëàññ äëÿ ïîëó÷åíèÿ îòâåòà êëèåíòà íà ñåðâåðå
    // CControllerServerResponseTo - Êëàññ äëÿ îòïðàâêè ðåçóëüòàòîâ âûïîëíåíèÿ çàïðîñà íàçàä íà êëèåíòà
    //
    // Äëÿ èñïîëüçîâàíèÿ íà êëèåíòå:
    // CControllerClientResponseFrom - Êëàññ äëÿ ïîëó÷åíèÿ îòâåòà êîíòðîëëåðà íà êëèåíòå
    // CControllerClientResponseTo - Êëàññ äëÿ îòïðàâêè ðåçóëüòàòîâ âûïîëíåíèÿ çàïðîñà íàçàä íà êîíòðîëëåð
    //////////////////////////////////////////////////////////
    class __CControllerPacketResponse extends \__CControllerPacket
    {
        public $httpHeaders;
        public $status;
        public $text;
        function _InitFromRequest($oPacket, $arExclude = array('operation', 'arParameters'))
        {
        }
        //////////////////////////////////////////////
        // Ìåòîäû äëÿ ðàáîòû â êëàññàõ ïðèíèìàþùèõ ðåçóëüòàò (CControllerServerResponseFrom, CControllerClientResponseFrom):
        //////////////////////////////////////////////
        /**
         * Checks packet consistency.
         *
         * @return boolean
         * @see __CControllerPacket::Check
         */
        function Check()
        {
        }
        /**
         * Sets $hash member with calculated value.
         *
         * @return void
         */
        function Sign()
        {
        }
        // Âîçâðàùàåò óñïåøíî ëè âûïîëíèëñÿ çàïðîñ ïî ñòàòóñ åãî îòâåòà
        function OK()
        {
        }
        // Ðàçáèðàåò ñòðîêó îòâåòà ïî ïîëÿì îáúåêòà
        function ParseResult($result)
        {
        }
        ///////////////////////////////////////
        // Áàçîâûå ìåòîäû äëÿ èñïîëüçîâàíèÿ â êëàññàõ îòïðàâëÿþùèõ ðåçóëüòàò (CControllerServerResponseTo, CControllerClientResponseTo):
        ///////////////////////////////////////
        // âîçâðàùàåò îòôîðìàòèðîâàííóþ ñòðîêó îòâåòà â ôîðìàòå ïîíÿòíîì äëÿ ïðèåìà íà ñåðâåðå, ñ ïîäïèñüþ
        function GetResponseBody($log = \false)
        {
        }
        // îòïðàâëÿåò îòâåò îáðàòíî
        function Send()
        {
        }
    }
    // Êëàññ äëÿ îòïðàâêè çàïðîñà íà ñåðâåð
    class CControllerClientRequestTo extends \__CControllerPacketRequest
    {
        var $debug_const = "CONTROLLER_CLIENT_DEBUG";
        var $debug_file_const = "CONTROLLER_CLIENT_LOG_DIR";
        public function __construct($operation, $arParameters = array())
        {
        }
        function SendWithCheck($page = "/bitrix/admin/controller_ws.php")
        {
        }
        public function Send($url = "", $page = "/bitrix/admin/controller_ws.php")
        {
        }
    }
    // Êëàññ ïîëó÷åíèÿ ðåçóëüòàòà íà êëèåíòå (îò êîíòðîëëåðà)
    class CControllerClientResponseFrom extends \__CControllerPacketResponse
    {
        var $debug_const = "CONTROLLER_CLIENT_DEBUG";
        var $debug_file_const = "CONTROLLER_CLIENT_LOG_DIR";
        public function __construct($oPacket)
        {
        }
    }
    class CControllerClientRequestFrom extends \__CControllerPacketRequest
    {
        var $debug_const = "CONTROLLER_CLIENT_DEBUG";
        var $debug_file_const = "CONTROLLER_CLIENT_LOG_DIR";
        public function __construct()
        {
        }
        function Check()
        {
        }
    }
    // Êëàññ äëÿ îòñûëêè îòâåòà íà ñåðâåð
    class CControllerClientResponseTo extends \__CControllerPacketResponse
    {
        var $debug_const = "CONTROLLER_CLIENT_DEBUG";
        var $debug_file_const = "CONTROLLER_CLIENT_LOG_DIR";
        public function __construct($oPacket = \false)
        {
        }
    }
    class CControllerTools
    {
        public static function PackFileArchive($path)
        {
        }
        public static function UnpackFileArchive($strfile, $path_to)
        {
        }
    }
    class CFile
    {
        const DELETE_NONE = 0x0;
        const DELETE_FILE = 0x1;
        const DELETE_DB = 0x2;
        const DELETE_ALL = 0x3;
        public static function SaveForDB(&$arFields, $field, $strSavePath)
        {
        }
        public static function checkForDb($arFields, $field)
        {
        }
        protected static function transformName($name, $bForceMD5 = \false, $bSkipExt = \false)
        {
        }
        protected static function validateFile($strFileName, $arFile)
        {
        }
        public static function SaveFile($arFile, $strSavePath, $bForceMD5 = \false, $bSkipExt = \false, $dirAdd = '', $checkDuplicates = \true)
        {
        }
        /**
         * Calculates a hash of the file.
         * @param string $file Full path to the file.
         * @param int $size Size of the file.
         * @return string
         */
        protected static function CalculateHash($file, $size)
        {
        }
        /**
         * @param int $size
         * @param string $hash
         * @param int|null $handlerId
         * @return Internal\EO_FileHash|null
         */
        public static function FindDuplicate($size, $hash, $handlerId = \null)
        {
        }
        /**
         * Adds information about a duplicate file.
         * @param int $originalId Original file ID.
         * @param int|null $duplicateId Duplicate file ID (optional if the original and duplicate files are the same).
         */
        public static function AddDuplicate($originalId, $duplicateId = \null)
        {
        }
        public static function DoInsert($arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        protected static function processDuplicates($ID)
        {
        }
        /**
         * @deprecated Use CFile::Delete()
         * @param $ID
         */
        public static function DoDelete($ID)
        {
        }
        public static function CleanCache($ID)
        {
        }
        public static function GetFromCache($fileID)
        {
        }
        public static function GetByID($FILE_ID)
        {
        }
        public static function GetList($arOrder = array(), $arFilter = array())
        {
        }
        public static function GetFileSRC($arFile, $upload_dir = \false, $external = \true)
        {
        }
        public static function GetFileArray($FILE_ID, $upload_dir = \false)
        {
        }
        public static function ConvertFilesToPost($source, &$target, $field = \false)
        {
        }
        public static function CopyFile($FILE_ID, $bRegister = \true, $newPath = "")
        {
        }
        public static function UpdateDesc($ID, $desc)
        {
        }
        public static function UpdateExternalId($ID, $external_id)
        {
        }
        public static function InputFile($strFieldName, $int_field_size, $strImageID, $strImageStorePath = \false, $int_max_file_size = 0, $strFileType = "IMAGE", $field_file = "class=typefile", $description_size = 0, $field_text = "class=typeinput", $field_checkbox = "", $bShowNotes = \true, $bShowFilePath = \true)
        {
        }
        /**
         * @param float $size
         * @param int $precision
         * @return string
         */
        public static function FormatSize($size, $precision = 2)
        {
        }
        public static function GetImageExtensions()
        {
        }
        public static function GetFlashExtensions()
        {
        }
        public static function IsImage($filename, $mime_type = \false)
        {
        }
        public static function CheckImageFile($arFile, $iMaxSize = 0, $iMaxWidth = 0, $iMaxHeight = 0, $access_typies = array(), $bForceMD5 = \false, $bSkipExt = \false)
        {
        }
        public static function CheckFile($arFile, $intMaxSize = 0, $mimeType = \false, $strExt = \false, $bForceMD5 = \false, $bSkipExt = \false)
        {
        }
        public static function ShowFile($iFileID, $max_file_size = 0, $iMaxW = 0, $iMaxH = 0, $bPopup = \false, $sParams = \false, $sPopupTitle = \false, $iSizeWHTTP = 0, $iSizeHHTTP = 0)
        {
        }
        public static function DisableJSFunction($b = \true)
        {
        }
        public static function OutputJSImgShw()
        {
        }
        public static function _GetImgParams($strImage, $iSizeWHTTP = 0, $iSizeHHTTP = 0)
        {
        }
        /**
         * Retuns the path from the root by a file ID.
         *
         * @param int $img_id File ID
         * @return string|null
         */
        public static function GetPath($img_id)
        {
        }
        public static function ShowImage($strImage, $iMaxW = 0, $iMaxH = 0, $sParams = \null, $strImageUrl = "", $bPopup = \false, $sPopupTitle = \false, $iSizeWHTTP = 0, $iSizeHHTTP = 0, $strImageUrlTemplate = "")
        {
        }
        public static function Show2Images($strImage1, $strImage2, $iMaxW = 0, $iMaxH = 0, $sParams = \false, $sPopupTitle = \false, $iSizeWHTTP = 0, $iSizeHHTTP = 0)
        {
        }
        /**
         * Returns an array describing file as if it was $_FILES element.
         *
         * @param string|int $path May contain ID of the file, absolute path, relative path or an url.
         * @param string|bool $mimetype Forces type field of the array
         * @param bool $skipInternal Excludes using ID as $path
         * @param string $external_id
         * @return array|bool|null
         */
        public static function MakeFileArray($path, $mimetype = \false, $skipInternal = \false, $external_id = "")
        {
        }
        public static function GetTempName($dir_name = \false, $file_name = '')
        {
        }
        public static function ChangeSubDir($module_id, $old_subdir, $new_subdir)
        {
        }
        public static function ResizeImage(&$arFile, $arSize, $resizeType = \BX_RESIZE_IMAGE_PROPORTIONAL)
        {
        }
        public static function ResizeImageDeleteCache($arFile)
        {
        }
        public static function ResizeImageGet($file, $arSize, $resizeType = \BX_RESIZE_IMAGE_PROPORTIONAL, $bInitSizes = \false, $arFilters = \false, $bImmediate = \false, $jpgQuality = \false)
        {
        }
        public static function ResizeImageDelete($arImage)
        {
        }
        public static function ImageCreateFromBMP($filename)
        {
        }
        public static function ScaleImage($sourceImageWidth, $sourceImageHeight, $arSize, $resizeType, &$bNeedCreatePicture, &$arSourceSize, &$arDestinationSize)
        {
        }
        public static function IsGD2()
        {
        }
        public static function ResizeImageFile($sourceFile, &$destinationFile, $arSize, $resizeType = \BX_RESIZE_IMAGE_PROPORTIONAL, $arWaterMark = array(), $quality = \false, $arFilters = \false)
        {
        }
        public static function ApplyImageFilter($picture, $arFilter, $bHasAlpha = \true)
        {
        }
        public static function imageconvolution($picture, $matrix, $div = 1, $offset = 0)
        {
        }
        public static function imageconvolution_fix($picture, $matrix, $div = 1, $offset = 0)
        {
        }
        public static function ImageFlipHorizontal($picture)
        {
        }
        public static function ImageHandleOrientation($orientation, $sourceImage)
        {
        }
        /**
         * @param int|array $arFile
         * @param array $arOptions
         * @return bool
         */
        public static function ViewByUser($arFile, $arOptions = array())
        {
        }
        // Params:
        // 	type - text|image
        //	size - big|medium|small|real, for custom resizing can be used 'coefficient', real - only for images
        // 	position - of the watermark on picture can be in one of two available notifications:
        //		 tl|tc|tr|ml|mc|mr|bl|bc|br or topleft|topcenter|topright|centerleft|center|centerright|bottomleft|bottomcenter|bottomright
        public static function Watermark(&$obj, $Params)
        {
        }
        public static function WatermarkText(&$obj, $Params = array())
        {
        }
        // Create watermark from image
        // $Params:
        // 	file - abs path to file
        //	alpha_level - opacity
        // 	position - of the watermark
        public static function WatermarkImage(&$obj, $Params = array())
        {
        }
        public static function ImageRotate($sourceFile, $angle)
        {
        }
        public static function CreateImage($path, $type = \false)
        {
        }
        public static function ExtractImageExif($src)
        {
        }
        public static function ExtractImageIPTC($src)
        {
        }
        public static function NormalizeContentType($contentType)
        {
        }
        public static function GetContentType($path, $bPhysicalName = \false)
        {
        }
        /*
        	This function will protect us from
        	scan the whole file in order to
        	findout size of the xbm image
        	ext/standard/image.c php_getimagetype
        */
        public static function GetImageSize($path, $bPhysicalName = \false, $flashEnabled = \false)
        {
        }
        protected static function ImageTypeSupported($type)
        {
        }
        /**
         * @deprecated
         */
        public static function isEnabledTrackingResizeImage()
        {
        }
        /**
         * @deprecated
         */
        public static function enableTrackingResizeImage()
        {
        }
        /**
         * @deprecated
         */
        public static function disableTrackingResizeImage()
        {
        }
    }
    /**
     * @deprecated Use CFile
     * Class CAllFile
     */
    class CAllFile extends \CFile
    {
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2013 Bitrix
     */
    class CPHPCacheXCache implements \ICacheBackend
    {
        var $sid = "";
        //cache stats
        var $written = \false;
        var $read = \false;
        function __construct()
        {
        }
        function CPHPCacheXCache()
        {
        }
        function IsAvailable()
        {
        }
        function clean($basedir, $initdir = \false, $filename = \false)
        {
        }
        function read(&$arAllVars, $basedir, $initdir, $filename, $TTL)
        {
        }
        function write($arAllVars, $basedir, $initdir, $filename, $TTL)
        {
        }
        function IsCacheExpired($path)
        {
        }
    }
    class CFileCacheCleaner
    {
        private $_CacheType;
        private $_arPath;
        private $_CurrentBase;
        private $_CurrentPath;
        private $_obFileTree;
        function __construct($CacheType)
        {
        }
        function InitPath($PathToCheck)
        {
        }
        function Start()
        {
        }
        function GetNextFile()
        {
        }
        function GetFileExpiration($FileName)
        {
        }
    }
    class _CFileTree
    {
        var $_in_path = '/';
        var $_path = '';
        var $_dir = \false;
        function __construct($in_path = "/")
        {
        }
        function Start($path = "/")
        {
        }
        function FileExists($file)
        {
        }
        function GetNextFile()
        {
        }
        public static function ExtractFileFromPath(&$path)
        {
        }
        function GoUp()
        {
        }
        function ReadDir($dir)
        {
        }
    }
    class CPHPCacheMemcache implements \ICacheBackend
    {
        private static $obMemcache;
        private static $basedir_version = array();
        var $sid = "";
        //cache stats
        var $written = \false;
        var $read = \false;
        // unfortunately is not available for memcache...
        function __construct()
        {
        }
        function CPHPCacheMemcache()
        {
        }
        function close()
        {
        }
        function IsAvailable()
        {
        }
        function clean($basedir, $initdir = \false, $filename = \false)
        {
        }
        function read(&$arAllVars, $basedir, $initdir, $filename, $TTL)
        {
        }
        function write($arAllVars, $basedir, $initdir, $filename, $TTL)
        {
        }
        function IsCacheExpired($path)
        {
        }
    }
    class CAllRatings
    {
        const REACTION_DEFAULT = 'like';
        const REACTION_KISS = 'kiss';
        const REACTION_LAUGH = 'laugh';
        const REACTION_ANGRY = 'angry';
        const REACTION_WONDER = 'wonder';
        const REACTION_CRY = 'cry';
        // get specified rating record
        public static function GetByID($ID)
        {
        }
        public static function GetArrayByID($ID)
        {
        }
        // get rating record list
        public static function GetList($arSort = array(), $arFilter = array())
        {
        }
        public static function GetRatingValueInfo($ratingId)
        {
        }
        //Addition rating
        public static function Add($arFields)
        {
        }
        //Update rating
        public static function Update($ID, $arFields)
        {
        }
        // delete rating
        public static function Delete($ID)
        {
        }
        // start calculation rating-component
        public static function Calculate($ID, $bForceRecalc = \false)
        {
        }
        // queries modules and get all the available objects
        public static function GetRatingObjects()
        {
        }
        // queries modules and get all the available entity types
        public static function GetRatingEntityTypes($objectType = \null)
        {
        }
        // queries modules and assemble an array of settings
        public static function GetRatingConfigs($objectType = \null, $withRatingType = \true)
        {
        }
        public static function GetRatingVoteResult($entityTypeId, $entityId, $user_id = \false)
        {
        }
        public static function GetRatingVoteResultCache($entityTypeId, $entityId, $user_id = \false)
        {
        }
        public static function GetRatingResult($ID, $entityId)
        {
        }
        public static function AddRatingVote($arParam)
        {
        }
        public static function ChangeRatingVote($arParam)
        {
        }
        public static function CancelRatingVote($arParam)
        {
        }
        public static function UpdateRatingUserBonus($arParam)
        {
        }
        public static function GetRatingUserProp($ratingId, $entityId)
        {
        }
        public static function GetRatingUserPropEx($ratingId, $entityId)
        {
        }
        public static function GetAuthorityRating()
        {
        }
        public static function GetWeightList($arSort = array(), $arFilter = array())
        {
        }
        public static function SetWeight($arConfigs)
        {
        }
        public static function SetVoteGroup($arGroupId, $type)
        {
        }
        public static function GetVoteGroup($type = '')
        {
        }
        public static function GetVoteGroupEx($type = '')
        {
        }
        public static function ClearData()
        {
        }
        public static function OnUserDelete($ID)
        {
        }
        public static function OnAfterUserRegister($arFields)
        {
        }
        public static function __SortWeight($a, $b)
        {
        }
        // check only general field
        public static function __CheckFields($arFields)
        {
        }
        // creates a configuration record for each item rating
        public static function __AddComponents($ID, $arFields)
        {
        }
        public static function __UpdateComponents($ID, $arFields)
        {
        }
        public static function err_mess()
        {
        }
        public static function getRatingVoteReaction($arParam)
        {
        }
        public static function getRatingVoteList($arParam)
        {
        }
        public static function getUserWeight($userId = 0)
        {
        }
        public static function getUserData($userId = 0, $value = 0)
        {
        }
        public static function getEntityRatingData($params = array())
        {
        }
        public static function deleteRatingVoting(array $params = [])
        {
        }
    }
    class CSVUserImport
    {
        var $csv;
        var $arHeader = \false;
        var $isErrorOccured = \false;
        var $errorMessage = "";
        var $ignoreDuplicate = \false;
        var $userGroups = \false;
        var $callback = \null;
        var $defaultEmail = \false;
        var $imageFilePath = \null;
        var $externalAuthID = \null;
        var $attachIBlockID = 0;
        var $userPropertyName = "UF_DEPARTMENT";
        var $arSectionCache = array();
        var $isUserPropertyCreate = \false;
        public function __construct($csvFilePath, $delimiter)
        {
        }
        function CheckRequiredFields()
        {
        }
        function AttachUsersToIBlock($iblockID)
        {
        }
        function SetUserPropertyName($userPropertyName)
        {
        }
        function GenerateUserPassword($pass_len = 10)
        {
        }
        function IsErrorOccured()
        {
        }
        function SetExternalAuthID($externalAuthID)
        {
        }
        function GetErrorMessage()
        {
        }
        function IgnoreDuplicate($ignore = \true)
        {
        }
        function SetCallback($functionName)
        {
        }
        function &GetCsvObject()
        {
        }
        function SetDefaultEmail($email)
        {
        }
        function GetDefaultEmail()
        {
        }
        function SetUserGroups($arGroups)
        {
        }
        function SetImageFilePath($relativePath)
        {
        }
        function __CreateUserProperty()
        {
        }
        function __GetIBlockSectionID(&$arFields)
        {
        }
        function ImportUser()
        {
        }
    }
    class CAllOption
    {
        public static function err_mess()
        {
        }
        public static function GetOptionString($module_id, $name, $def = "", $site = \false, $bExactSite = \false)
        {
        }
        public static function SetOptionString($module_id, $name, $value = "", $desc = \false, $site = "")
        {
        }
        public static function RemoveOption($module_id, $name = "", $site = \false)
        {
        }
        public static function GetOptionInt($module_id, $name, $def = "", $site = \false)
        {
        }
        public static function SetOptionInt($module_id, $name, $value = "", $desc = "", $site = "")
        {
        }
    }
    class CAllPageOption
    {
        public static function GetOptionString($module_id, $name, $def = "", $site = \false)
        {
        }
        public static function SetOptionString($module_id, $name, $value = "", $desc = \false, $site = "")
        {
        }
        public static function RemoveOption($module_id, $name = "", $site = \false)
        {
        }
        public static function GetOptionInt($module_id, $name, $def = "", $site = \false)
        {
        }
        public static function SetOptionInt($module_id, $name, $value = "", $desc = "", $site = "")
        {
        }
    }
    class CImageUploader
    {
        public static function ShowScript($Params = array())
        {
        }
        public static function UploadCallback($uploadedFiles)
        {
        }
        public static function InitUploaderHandler()
        {
        }
        private static $id;
        public static function GetId()
        {
        }
        public static function SetId($id = "")
        {
        }
        public static $uploadCallbackFunc, $uploadCallbackParams, $convCount, $sTmpPath, $PackageGuid, $savedData = \false;
        public static function SetTmpPath($PackageGuid, $pathToTmp)
        {
        }
        public static function CheckDirPath($path = "")
        {
        }
        public static function UploadFileHandler($callback, $Params)
        {
        }
        public static function SaveAllUploadedFiles($uploadedFiles)
        {
        }
        public static function SetSavedData($savedData = array())
        {
        }
        public static function GetSavedData()
        {
        }
        public static function CleanSavedData()
        {
        }
        public static function CheckErrors()
        {
        }
        public static function SaveError($arError)
        {
        }
        public static function GetMimeType($fileName)
        {
        }
        public static function GetLocalization()
        {
        }
        public static function GetChunkSize()
        {
        }
        private function GetSize($v)
        {
        }
        public static function StrangeUrlEncode($url)
        {
        }
    }
    class CFlashUploader extends \CImageUploader
    {
        public static function ShowScript($Params = array())
        {
        }
        public static function InitUploaderHandler()
        {
        }
        public static function UploadFileHandler($callback, $Params)
        {
        }
        public static function HealFilesVars($bKill = \false)
        {
        }
        public static function SaveAllUploadedFiles($uploadedFiles)
        {
        }
        public static function GetLocalization()
        {
        }
    }
}
namespace Bitrix\Main\UI\Uploader {
    class Uploader
    {
        public $files = array();
        public $controlId = "fileUploader";
        public $params = array("allowUpload" => "A", "allowUploadExt" => "", "copies" => array("default" => array("width" => null, "height" => null)), "storage" => array("moduleId" => "main", "cloud" => false));
        /*
         * @var string $script Url to uploading page for forming url to view
         * @var string $path Path to temp directory
         * @var string $CID Controller ID
         * @var string $mode
         * @var array $processTime Time limits
         * @var HttpClient $http
        */
        public $script;
        protected $path = "";
        protected $CID = null;
        protected $version = null;
        protected $mode = "view";
        protected $param = array();
        protected $requestMethods = array("get" => true, "post" => true);
        /* @var HttpRequest $request */
        protected $request;
        protected $http;
        const FILE_NAME = "bxu_files";
        const INFO_NAME = "bxu_info";
        const EVENT_NAME = "main_bxu";
        const SESSION_LIST = "MFI_SESSIONS";
        const SESSION_TTL = 86400;
        function __construct($params = array())
        {
        }
        public function setControlId($controlId)
        {
        }
        public function setHandler($name, $callback)
        {
        }
        /**
         * excludes real paths from array
         * @param $item - array
         * @return array
         */
        protected static function removeTmpPath($item)
        {
        }
        public static function prepareData($data)
        {
        }
        /**
         * @return bool
         * @throws AccessDeniedException
         * @throws ArgumentOutOfRangeException
         * @throws NotImplementedException
         */
        protected function fillRequireData()
        {
        }
        protected function showJsonAnswer($result)
        {
        }
        /**
         * Sets request methods to check.
         * @param array $methods Request methods array("get", "post").
         * @return $this
         */
        protected function setRequestMethodToCheck(array $methods)
        {
        }
        /**
         * @param string $key Array key in request.
         * @return null|mixed
         */
        protected function getRequest($key)
        {
        }
        /**
         * @param string $key
         * @return mixed
         */
        public function getParam($key)
        {
        }
        /**
         *
         * @param bool $checkPost Flag for check post.
         * @return boolean
         */
        public function checkPost($checkPost = true)
        {
        }
        /**
         * @param $hash
         * @param $file
         * @param array $canvases
         * @param array $watermark
         * @return mixed
         */
        public function checkCanvases($hash, &$file, $canvases = array(), $watermark = array())
        {
        }
        public function deleteFile($hash)
        {
        }
        /**
         * @param string $tmpName
         * @return false|array
         */
        public static function getPaths($tmpName)
        {
        }
    }
}
namespace {
    class CFileUploader extends \Bitrix\Main\UI\Uploader\Uploader
    {
        function __construct($params, $doCheckPost = \true)
        {
        }
    }
    class CAllUser extends \CDBResult
    {
        var $LAST_ERROR = "";
        var $bLoginByHash = \false;
        protected $admin = \null;
        /** @var Main\Session\SessionInterface  */
        protected static $kernelSession;
        protected static $CURRENT_USER = \false;
        protected $justAuthorized = \false;
        protected static $userGroupCache = array();
        const STATUS_ONLINE = 'online';
        const STATUS_OFFLINE = 'offline';
        //in seconds
        const PHONE_CODE_OTP_INTERVAL = 30;
        const PHONE_CODE_RESEND_INTERVAL = 60;
        /**
         * CUser constructor.
         */
        public function __construct()
        {
        }
        public function GetParam($name)
        {
        }
        public function SetParam($name, $value)
        {
        }
        public function GetSecurityPolicy()
        {
        }
        public function GetID()
        {
        }
        public function GetLogin()
        {
        }
        public function GetEmail()
        {
        }
        public function GetFullName()
        {
        }
        public function GetFirstName()
        {
        }
        public function GetLastName()
        {
        }
        public function GetSecondName()
        {
        }
        public function GetFormattedName($bUseBreaks = \true, $bHTMLSpec = \true)
        {
        }
        public static function err_mess()
        {
        }
        public function Add($arFields)
        {
        }
        public static function GetDropDownList($strSqlSearch = "and ACTIVE='Y'", $strSqlOrder = "ORDER BY ID, NAME, LAST_NAME")
        {
        }
        public static function GetList(&$by, &$order, $arFilter = array(), $arParams = array())
        {
        }
        public static function IsOnLine($id, $interval = \null)
        {
        }
        public function GetUserGroupArray()
        {
        }
        public function SetUserGroupArray($arr)
        {
        }
        public function GetUserGroupString()
        {
        }
        public function GetGroups()
        {
        }
        public function RequiredHTTPAuthBasic($Realm = "Bitrix")
        {
        }
        public function LoginByCookies()
        {
        }
        public function LoginByHash($login, $hash)
        {
        }
        public function LoginByHttpAuth()
        {
        }
        public function LoginByDigest($arDigest)
        {
        }
        public static function UpdateDigest($ID, $pass)
        {
        }
        public function LoginHitByHash()
        {
        }
        public static function AddHitAuthHash($url, $user_id = \false, $site_id = \false)
        {
        }
        public static function GetHitAuthHash($url_mask, $userID = \false)
        {
        }
        public static function CleanUpHitAuthAgent()
        {
        }
        protected function UpdateSessionData($id, $applicationId = \null)
        {
        }
        /**
         * Performs the user authorization:
         *    fills session parameters;
         *    remembers auth;
         *    spreads auth through sites.
         * @param int $id An user ID.
         * @param bool $bSave Save authorization in cookies.
         * @param bool $bUpdate Update last login information in DB.
         * @param string|null $applicationId An application password ID.
         * @return bool
         */
        public function Authorize($id, $bSave = \false, $bUpdate = \true, $applicationId = \null)
        {
        }
        public function GetSessionHash()
        {
        }
        /** @deprecated */
        public function GetPasswordHash($PASSWORD_HASH)
        {
        }
        /** @deprecated */
        public function SavePasswordHash()
        {
        }
        /**
         * Authenticates the user and then authorizes him
         * @param string $login
         * @param string $password
         * @param string $remember
         * @param string $password_original
         * @return array|bool
         */
        public function Login($login, $password, $remember = "N", $password_original = "Y")
        {
        }
        /**
         * Internal authentication by login and password.
         * @param array $arParams
         * @param array|bool $result_message
         * @param string|null $applicationId
         * @param string|null $applicationPassId
         * @return int User ID on success or 0 on failure. Additionally, $result_message will hold an error.
         */
        public static function LoginInternal(&$arParams, &$result_message = \true, &$applicationId = \null, &$applicationPassId = \null)
        {
        }
        protected static function blockUser($userId, $blockTime, $loginAttempts)
        {
        }
        protected static function CheckUsersCount($user_id)
        {
        }
        public function LoginByOtp($otp, $remember_otp = "N", $captcha_word = "", $captcha_sid = "")
        {
        }
        public function AuthorizeWithOtp($user_id)
        {
        }
        public function ChangePassword($LOGIN, $CHECKWORD, $PASSWORD, $CONFIRM_PASSWORD, $SITE_ID = \false, $captcha_word = "", $captcha_sid = 0, $authActions = \true, $phoneNumber = "", $currentPassword = "")
        {
        }
        public static function GeneratePasswordByPolicy(array $groups)
        {
        }
        public static function CheckPasswordAgainstPolicy($password, $arPolicy, $userId = \null)
        {
        }
        /**
         * Sends a profile information to email
         */
        public static function SendUserInfo($ID, $SITE_ID, $MSG, $bImmediate = \false, $eventName = "USER_INFO", $checkword = \null)
        {
        }
        public static function SendPassword($LOGIN, $EMAIL, $SITE_ID = \false, $captcha_word = "", $captcha_sid = 0, $phoneNumber = "", $shortCode = \false)
        {
        }
        public function Register($USER_LOGIN, $USER_NAME, $USER_LAST_NAME, $USER_PASSWORD, $USER_CONFIRM_PASSWORD, $USER_EMAIL, $SITE_ID = \false, $captcha_word = "", $captcha_sid = 0, $bSkipConfirm = \false, $USER_PHONE_NUMBER = "")
        {
        }
        public function SimpleRegister($USER_EMAIL, $SITE_ID = \false)
        {
        }
        public function IsAuthorized()
        {
        }
        public function HasNoAccess()
        {
        }
        public function IsJustAuthorized()
        {
        }
        public function IsJustBecameOnline()
        {
        }
        public function IsAdmin()
        {
        }
        public function SetControllerAdmin($isAdmin = \true)
        {
        }
        /**
         * @param array|true $deleteParms Parameters to delete; if true, delete all
         * @return string
         */
        public static function getLogoutParams($deleteParms = [])
        {
        }
        public function Logout()
        {
        }
        public static function GetUserGroup($ID)
        {
        }
        public static function GetUserGroupEx($ID)
        {
        }
        public static function GetUserGroupList($ID)
        {
        }
        public function CheckFields(&$arFields, $ID = \false)
        {
        }
        /**
         * @param array $arFields
         * @param int|bool $ID
         * @return string
         */
        public static function CheckInternalFields($arFields, $ID = \false)
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function GetByLogin($LOGIN)
        {
        }
        public function Update($ID, $arFields, $authActions = \true)
        {
        }
        public static function SetUserGroup($USER_ID, $arGroups, $newUser = \false)
        {
        }
        /**
         * Appends groups to the list of existing user's groups.
         *
         * @param int $user_id
         * @param array|int $groups A single number, or an array of numbers, or an array of arrays("GROUP_ID"=>$val, "DATE_ACTIVE_FROM"=>$val, "DATE_ACTIVE_TO"=>$val)
         */
        public static function AppendUserGroup($user_id, $groups)
        {
        }
        public static function GetCount()
        {
        }
        public static function Delete($ID)
        {
        }
        public static function GetExternalAuthList()
        {
        }
        public static function GetGroupPolicy($iUserId)
        {
        }
        public static function CheckStoredHash($iUserId, $sHash, $bTempHashOnly = \false)
        {
        }
        public function GetAllOperations($arGroups = \false)
        {
        }
        public function CanDoOperation($op_name, $user_id = 0)
        {
        }
        public static function GetFileOperations($arPath, $arGroups = \false)
        {
        }
        public function CanDoFileOperation($op_name, $arPath)
        {
        }
        public static function UserTypeRightsCheck($entity_id)
        {
        }
        public function CanAccess($arCodes)
        {
        }
        public function GetAccessCodes()
        {
        }
        public static function CleanUpAgent()
        {
        }
        public static function DeactivateAgent()
        {
        }
        public static function UnblockAgent($userId)
        {
        }
        public static function GetActiveUsersCount()
        {
        }
        public static function SetLastActivityDate($userId = \null, $cache = \false)
        {
        }
        public static function SetLastActivityDateByArray($arUsers, $ip = \null)
        {
        }
        public static function GetSecondsForLimitOnline()
        {
        }
        public static function GetExternalUserTypes()
        {
        }
        public static function GetOnlineStatus($userId, $lastseen, $now = \false)
        {
        }
        /**
         * @param int|bool|\Bitrix\Main\Type\DateTime $timestamp
         * @param int|bool|\Bitrix\Main\Type\DateTime $now
         *
         * @return string
         */
        public static function FormatLastActivityDate($timestamp, $now = \false)
        {
        }
        public static function SearchUserByName($arName, $email = "", $bLoginMode = \false)
        {
        }
        public static function FormatName($NAME_TEMPLATE, $arUser, $bUseLogin = \false, $bHTMLSpec = \true)
        {
        }
        public static function clearUserGroupCache($ID = \false)
        {
        }
        public function CheckAuthActions()
        {
        }
        public static function AuthActionsCleanUpAgent()
        {
        }
        /**
         * @param int $userId
         * @return array|bool [code, phone_number]
         */
        public static function GeneratePhoneCode($userId)
        {
        }
        /**
         * @param string $phoneNumber
         * @param string $code
         * @return bool|int User ID on success, false on error
         */
        public static function VerifyPhoneCode($phoneNumber, $code)
        {
        }
        /**
         * @param string $phoneNumber
         * @param string $smsTemplate
         * @param string|null $siteId
         * @return Main\Result
         */
        public static function SendPhoneCode($phoneNumber, $smsTemplate, $siteId = \null)
        {
        }
        protected static function SendEmailCode($userId, $siteId)
        {
        }
    }
    //compatibility
    class CUser extends \CAllUser
    {
    }
    /**
     * @deprecated Use CGroup
     */
    class CAllGroup extends \CGroup
    {
    }
    class CTask
    {
        protected static $TASK_OPERATIONS_CACHE = array();
        public static function err_mess()
        {
        }
        public static function CheckFields(&$arFields, $ID = \false)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($arFields, $ID)
        {
        }
        public static function UpdateModuleRights($id, $moduleId, $letter, $site_id = \false)
        {
        }
        public static function Delete($ID, $protect = \true)
        {
        }
        public static function GetList($arOrder = array('MODULE_ID' => 'asc', 'LETTER' => 'asc'), $arFilter = array())
        {
        }
        public static function GetOperations($ID, $return_names = \false)
        {
        }
        public static function SetOperations($ID, $arr, $bOpNames = \false)
        {
        }
        public static function GetTasksInModules($mode = \false, $module_id = \false, $binding = \false)
        {
        }
        public static function GetByID($ID)
        {
        }
        protected static function GetDescriptions($module)
        {
        }
        public static function GetLangTitle($name, $module = "main")
        {
        }
        public static function GetLangDescription($name, $desc, $module = "main")
        {
        }
        public static function GetLetter($ID)
        {
        }
        public static function GetIdByLetter($letter, $module, $binding = 'module')
        {
        }
    }
    /**
     * @deprecated Use CTask
     */
    class CAllTask extends \CTask
    {
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2020 Bitrix
     */
    class COperation
    {
        public static function err_mess()
        {
        }
        public static function GetList($arOrder = array('MODULE_ID' => 'asc'), $arFilter = array())
        {
        }
        public static function GetAllowedModules()
        {
        }
        public static function GetBindingList()
        {
        }
        public static function GetIDByName($name)
        {
        }
        protected static function GetDescriptions($module)
        {
        }
        public static function GetLangTitle($name, $module = "main")
        {
        }
        public static function GetLangDescription($name, $desc, $module = "main")
        {
        }
    }
    /**
     * @deprecated Use COperation
     */
    class CAllOperation extends \COperation
    {
    }
    class CPHPCacheAPC implements \ICacheBackend
    {
        var $sid = "";
        //cache stats
        var $written = \false;
        var $read = \false;
        function __construct()
        {
        }
        function CPHPCacheAPC()
        {
        }
        function IsAvailable()
        {
        }
        function clean($basedir, $initdir = \false, $filename = \false)
        {
        }
        function read(&$arAllVars, $basedir, $initdir, $filename, $TTL)
        {
        }
        function write($arAllVars, $basedir, $initdir, $filename, $TTL)
        {
        }
        function IsCacheExpired($path)
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2013 Bitrix
     */
    class CDataXMLNode
    {
        var $name;
        var $content;
        /** @var CDataXMLNode[] */
        var $children;
        /** @var CDataXMLNode[] */
        var $attributes;
        var $_parent;
        public function __construct()
        {
        }
        function name()
        {
        }
        function children()
        {
        }
        function textContent()
        {
        }
        function getAttribute($attribute)
        {
        }
        function getAttributes()
        {
        }
        function namespaceURI()
        {
        }
        /**
         * @param $tagname
         * @return CDataXMLNode[]
         */
        function elementsByName($tagname)
        {
        }
        function _SaveDataType_OnDecode(&$result, $name, $value)
        {
        }
        function decodeDataTypes($attrAsNodeDecode = \false)
        {
        }
        function &__toString()
        {
        }
        function __toArray()
        {
        }
    }
    class CDataXMLDocument
    {
        var $version = '';
        var $encoding = '';
        /** @var CDataXMLNode[] */
        var $children;
        var $root;
        public function __construct()
        {
        }
        function elementsByName($tagname)
        {
        }
        function encodeDataTypes($name, $value)
        {
        }
        /* Returns a XML string of the DOM document */
        function &__toString()
        {
        }
        /* Returns an array of the DOM document */
        function &__toArray()
        {
        }
    }
    class CDataXML
    {
        /** @var CDataXMLDocument */
        var $tree;
        var $TrimWhiteSpace;
        var $delete_ns = \true;
        public function __construct($TrimWhiteSpace = \True)
        {
        }
        function Load($file)
        {
        }
        function LoadString($text)
        {
        }
        function &GetTree()
        {
        }
        function &GetArray()
        {
        }
        function &GetString()
        {
        }
        function &SelectNodes($strNode)
        {
        }
        public static function xmlspecialchars($str)
        {
        }
        public static function xmlspecialcharsback($str)
        {
        }
        /**
         * Will return an DOM object tree from the well formed XML.
         *
         * @param string $strXMLText
         * @return CDataXMLDocument
         */
        function __parse(&$strXMLText)
        {
        }
        function __stripComments(&$str)
        {
        }
        /* Parses the attributes. Returns false if no attributes in the supplied string is found */
        function &__parseAttributes($attributeString)
        {
        }
    }
    /*
    Usage:
    
    class OrderLoader
    {
    	var $errors = array();
    
    	function elementHandler($path, $attr)
    	{
    		AddMessage2Log(print_r(array($path, $attr), true));
    	}
    
    	function nodeHandler(CDataXML $xmlObject)
    	{
    		AddMessage2Log(print_r($xmlObject, true));
    	}
    }
    
    $position = false;
    $loader = new OrderLoader;
    
    while(true) //this while is cross hit emulation
    {
    	$o = new CXMLFileStream;
    	$o->registerElementHandler("/Êîììåð÷åñêàÿÈíôîðìàöèÿ", array($loader, "elementHandler"));
    	$o->registerNodeHandler("/Êîììåð÷åñêàÿÈíôîðìàöèÿ/Êàòàëîã/Òîâàðû/Òîâàð", array($loader, "nodeHandler"));
    	$o->setPosition($position);
    
    	if ($o->openFile($_SERVER["DOCUMENT_ROOT"]."/upload/081_books_books-books_ru.xml"))
    	{
    		while($o->findNext())
    		{
    			//if (time() > $endTime)
    			break;
    		}
    
    		if ($o->endOfFile())
    		{
    			break;
    		}
    		else
    		{
    			$position = $o->getPosition();
    		}
    	}
    }
    */
    class CXMLFileStream
    {
        private $fileCharset = \false;
        private $filePosition = 0;
        private $xmlPosition = "";
        private $nodeHandlers = array();
        private $elementHandlers = array();
        private $endNodes = array();
        private $fileHandler = \null;
        private $eof = \false;
        private $readSize = 1024;
        private $buf = "";
        private $bufPosition = 0;
        private $bufLen = 0;
        private $positionStack = array();
        private $elementStack = array();
        /**
         * Registers an handler function which will be called on xml parsed path with CDataXML object as a parameter
         *
         * @param string $nodePath
         * @param mixed $callableHandler
         * @return void
         *
         */
        public function registerNodeHandler($nodePath, $callableHandler)
        {
        }
        /**
         * Registers an handler function which will be called on xml parsed path with path and attributes
         *
         * @param string $nodePath
         * @param mixed $callableHandler
         * @return void
         *
         */
        public function registerElementHandler($nodePath, $callableHandler)
        {
        }
        /**
         * Opens file by it's absolute path. Returns true on success.
         *
         * @param string $filePath
         * @return bool
         *
         */
        public function openFile($filePath)
        {
        }
        /**
         * Returns true when end of the file is reached.
         *
         * @return bool
         *
         */
        public function endOfFile()
        {
        }
        /**
         * Returns current position state needed to continue file parsing process on the next hit.
         *
         * @return array[int]string
         *
         */
        public function getPosition()
        {
        }
        /**
         * Sets the position state returned by getPosition method.
         *
         * @param array[int]string $position
         * @return void
         *
         */
        public function setPosition($position)
        {
        }
        /**
         * Processes file futher. Returns true when there is more work to do. False on the end of file.
         *
         * @return bool
         *
         */
        public function findNext()
        {
        }
        /**
         * Used to read an xml by chunks started with "<" and endex with "<"
         *
         * @param bool $bMB
         * @return bool
         *
         */
        private function getXmlChunk($bMB = \false)
        {
        }
        /**
         * Stores an element into xml path stack.
         *
         * @param bool $bMB
         * @param string $xmlChunk
         * @param string $origChunk
         * @return void
         *
         */
        private function startElement($bMB, $xmlChunk, $origChunk)
        {
        }
        /**
         * Winds tree stack back. Calls (if neccessary) node handlers.
         *
         * @param string $xmlChunk
         * @return void
         *
         */
        private function endElement($xmlChunk)
        {
        }
        /**
         * Reads xml chunk from the file preserving it's position
         *
         * @param int $startPosition
         * @param int $endPosition
         * @return CDataXML|false
         */
        private function readXml($startPosition, $endPosition)
        {
        }
        /**
         * Reads part of the file preserving it's position
         *
         * @param int $startPosition
         * @param int $endPosition
         * @return CDataXML|false
         */
        public function readFilePart($startPosition, $endPosition)
        {
        }
    }
    abstract class CBXAllShortUri
    {
        private static $httpStatusCodes = array(301 => "301 Moved Permanently", 302 => "302 Found");
        protected static $arErrors = array();
        public static function GetErrors()
        {
        }
        protected static function AddError($error)
        {
        }
        protected static function ClearErrors()
        {
        }
        public static function Update($id, $arFields)
        {
        }
        public static function GetShortUri($uri)
        {
        }
        public static function GetUri($shortUri)
        {
        }
        public static function SetLastUsed($id)
        {
        }
        public static function Delete($id)
        {
        }
        public static function Crc32($str)
        {
        }
        protected static function ParseFields(&$arFields, $id = 0)
        {
        }
        public static function GetHttpStatusCodeText($code)
        {
        }
        public static function SelectBox($fieldName, $value, $defaultValue = "", $field = "class=\"typeselect\"")
        {
        }
        public static function GenerateShortUri()
        {
        }
        public static function CheckUri()
        {
        }
    }
    abstract class CRsaProvider
    {
        //$_M, $_E - public components
        //$_D - secret component
        //$_chunk - key length in bytes
        protected $_M = '';
        protected $_E = '';
        protected $_D = '';
        protected $_chunk = 0;
        public function SetKeys($arKeys)
        {
        }
        public function GetPublicKey()
        {
        }
        public abstract function LoadKeys();
        public abstract function SaveKeys($arKeys);
        public abstract function Decrypt($data);
        public abstract function Keygen($keylen = \false);
    }
    class CRsaBcmathProvider extends \CRsaProvider
    {
        public function LoadKeys()
        {
        }
        public function SaveKeys($arKeys)
        {
        }
        public function Decrypt($data)
        {
        }
        public function Keygen($keylen = \false)
        {
        }
        private static function getRndPrime($cnt)
        {
        }
        private static function bitlenght($in)
        {
        }
        private static function is_prime($in)
        {
        }
        private static function getkeysfrompq($p, $q)
        {
        }
        private static function ext($e1, $em)
        {
        }
        private static function get_e($m)
        {
        }
        private static function GCD($e, $m)
        {
        }
        private static function int2raw($in)
        {
        }
        private static function raw2int($in)
        {
        }
        private static function powmod($n, $p, $m)
        {
        }
        private static function miller($in, $b)
        {
        }
    }
    class CAuthProvider
    {
        protected $id;
        public function DeleteByUser($USER_ID)
        {
        }
        public function DeleteAll()
        {
        }
    }
    interface IProviderInterface
    {
        public function GetFormHtml($arParams = \false);
        public function GetNames($arCodes);
    }
    class CGroupAuthProvider extends \CAuthProvider implements \IProviderInterface
    {
        const ID = 'group';
        public function __construct()
        {
        }
        public function UpdateCodes($USER_ID)
        {
        }
        public static function OnBeforeGroupUpdate($ID, &$arFields)
        {
        }
        public static function OnAfterGroupAdd(&$arFields)
        {
        }
        public static function OnBeforeGroupDelete($ID)
        {
        }
        public static function OnAfterSetUserGroup($USER_ID)
        {
        }
        public static function OnUserLogin($USER_ID)
        {
        }
        protected static function RecalculateForGroup($ID)
        {
        }
        public function AjaxRequest()
        {
        }
        public function GetFormHtml($arParams = \false)
        {
        }
        public function GetNames($arCodes)
        {
        }
    }
    class CUserAuthProvider extends \CAuthProvider implements \IProviderInterface
    {
        const ID = 'user';
        public function __construct()
        {
        }
        public function UpdateCodes($USER_ID)
        {
        }
        public function AjaxRequest()
        {
        }
        public function GetFormHtml($arParams = \false)
        {
        }
        public function GetNames($arCodes)
        {
        }
        public static function OnUserLogin($USER_ID)
        {
        }
    }
    class COtherAuthProvider implements \IProviderInterface
    {
        public function GetFormHtml($arParams = \false)
        {
        }
        public function GetNames($arCodes)
        {
        }
    }
    class CMpNotifications
    {
        function OnAdminInformerInsertItemsHandlerMP()
        {
        }
        //checks for modules the end of the update period
        public static function checkModulesEndDate($arRequestedModules, $daysCheck)
        {
        }
        //check updates and new modules
        public static function checkUpdates($arModules, $searchType, $daysCheck)
        {
        }
        //add notifications to admin informer
        public static function addNotificationsToInformer($arModules, $arNotifierText, $arrayId, $serverName)
        {
        }
        //get installed mp modules
        public static function getClientInstalledModules()
        {
        }
        //check notification's type to add
        public static function addMpNotifications($arModulesResult)
        {
        }
        //add notifications about new partner modules
        public static function addNotificationsPartnersNewModulesToInformer($arModules, $serverName)
        {
        }
        public static function addJsToInformer()
        {
        }
    }
    class CBackup
    {
        static $DOCUMENT_ROOT_SITE;
        static $REAL_DOCUMENT_ROOT_SITE;
        protected $strLastFile;
        protected $LastFileSize;
        public static function CheckDumpClouds()
        {
        }
        public static function CheckDumpFiles()
        {
        }
        public static function GetBucketList($arFilter = array())
        {
        }
        public static function ignorePath($path)
        {
        }
        public static function GetBucketFileList($BUCKET_ID, $path)
        {
        }
        public static function _preg_escape($str)
        {
        }
        public static function skipMask($abs_path)
        {
        }
        public static function GetArcName($prefix = '')
        {
        }
        public static function MakeDump($strDumpFile, &$arState)
        {
        }
        public function QueryUnbuffered($q)
        {
        }
        public function FreeResult()
        {
        }
        public function file_put_contents_ex($strDumpFile, $str)
        {
        }
        public static function GetTableColumns($TableName)
        {
        }
        public static function SkipTableData($table)
        {
        }
        public static function getNextName($file)
        {
        }
    }
    class CDirScan
    {
        var $DirCount = 0;
        var $FileCount = 0;
        var $err = array();
        var $bFound = \false;
        var $nextPath = '';
        var $startPath = '';
        var $arIncludeDir = \false;
        function __construct()
        {
        }
        function ProcessDirBefore($f)
        {
        }
        function ProcessDirAfter($f)
        {
        }
        function ProcessFile($f)
        {
        }
        function Skip($f)
        {
        }
        function Scan($dir)
        {
        }
    }
    class CDirRealScan extends \CDirScan
    {
        var $arSkip = array();
        function ProcessFile($f)
        {
        }
        function ProcessDirBefore($f)
        {
        }
        function Skip($f)
        {
        }
    }
    class CPasswordStorage
    {
        const SIGN = 'CACHE_';
        public static function Init()
        {
        }
        public static function getEncryptKey()
        {
        }
        public static function Set($strName, $strVal)
        {
        }
        public static function Get($strName)
        {
        }
    }
    class CTar
    {
        var $gzip;
        var $file;
        var $err = array();
        var $LastErrCode;
        var $res;
        var $Block = 0;
        var $BlockHeader;
        var $path;
        var $FileCount = 0;
        var $DirCount = 0;
        var $ReadBlockMax = 2000;
        var $ReadBlockCurrent = 0;
        var $ReadFileSize = 0;
        var $header = \null;
        var $ArchiveSizeLimit;
        const BX_EXTRA = 'BX0000';
        const BX_SIGNATURE = 'Bitrix Encrypted File';
        var $BufferSize;
        var $Buffer;
        var $dataSizeCache = array();
        var $EncryptKey;
        var $prefix = '';
        ##############
        # READ
        # {
        function openRead($file)
        {
        }
        function readBlock($bIgnoreOpenNextError = \false)
        {
        }
        function SkipFile()
        {
        }
        function Skip($Block)
        {
        }
        function SkipTo($Block)
        {
        }
        function readHeader($Long = \false)
        {
        }
        function checkCRC($str, $data)
        {
        }
        function extractFile()
        {
        }
        function openNext($bIgnoreOpenNextError)
        {
        }
        public static function getLastNum($file)
        {
        }
        # }
        ##############
        ##############
        # WRITE
        # {
        function openWrite($file)
        {
        }
        // Ñ�Ð¾Ð·Ð´Ð°Ð´Ð¸Ð¼ Ð¿ÑƒÑ�Ñ‚Ð¾Ð¹ gzip Ñ� Ñ�ÐºÑ�Ñ‚Ñ€Ð° Ð¿Ð¾Ð»ÐµÐ¼
        function createEmptyGzipExtra($file)
        {
        }
        function writeBlock($str)
        {
        }
        function flushBuffer()
        {
        }
        function writeHeader($ar)
        {
        }
        function addFile($f)
        {
        }
        # }
        ##############
        ##############
        # BASE
        # {
        function open($file, $mode = 'r')
        {
        }
        function close()
        {
        }
        public function getNextName($file = '')
        {
        }
        function checksum($s)
        {
        }
        /**
         * @deprecated Will be removed
         */
        public static function substr($s, $a, $b = \null)
        {
        }
        /**
         * @deprecated Will be removed
         */
        public static function strlen($s)
        {
        }
        /**
         * @deprecated Will be removed
         */
        public static function strpos($s, $a)
        {
        }
        function getDataSize($file)
        {
        }
        function Error($str = '', $code = '')
        {
        }
        function ErrorAndSkip($str = '', $code = '')
        {
        }
        public static function xmkdir($dir)
        {
        }
        function getEncryptKey()
        {
        }
        function getFileInfo($f)
        {
        }
        public static function getCheckword($key)
        {
        }
        public static function getFirstName($file)
        {
        }
        public static function encrypt($data, $md5_key)
        {
        }
        public static function decrypt($data, $md5_key)
        {
        }
    }
    class CTarCheck extends \CTar
    {
        function extractFile()
        {
        }
    }
    class CloudDownload
    {
        function __construct($id)
        {
        }
        function Scan($path)
        {
        }
    }
    class CAllSQLWhere
    {
        const FT_MIN_TOKEN_SIZE = 3;
        var $fields = array();
        var $c_joins = array();
        var $l_joins = array();
        var $bDistinctReqired = \false;
        static $operations = array(
            "!><" => "NB",
            //not between
            "!=%" => "NM",
            //not Identical by like
            "!%=" => "NM",
            //not Identical by like
            "!==" => "SN",
            // strong negation for boolean and null
            "!=" => "NI",
            //not Identical
            "!%" => "NS",
            //not substring
            "><" => "B",
            //between
            ">=" => "GE",
            //greater or equal
            "<=" => "LE",
            //less or equal
            "=%" => "M",
            //Identical by like
            "%=" => "M",
            //Identical by like
            "!@" => "NIN",
            //not in
            "==" => "SE",
            // strong equality for boolean and null
            "=" => "I",
            //Identical
            "%" => "S",
            //substring
            "?" => "?",
            //logical
            ">" => "G",
            //greater
            "<" => "L",
            //less
            "!" => "N",
            // not field LIKE val
            "@" => "IN",
            // IN (new SqlExpression)
            "*" => "FT",
            // partial full text match
            "*=" => "FTI",
            // identical full text match
            "*%" => "FTL",
        );
        function _Upper($field)
        {
        }
        function _Empty($field)
        {
        }
        function _NotEmpty($field)
        {
        }
        function _StringEQ($field, $sql_value)
        {
        }
        function _StringNotEQ($field, $sql_value)
        {
        }
        function _StringIN($field, $sql_values)
        {
        }
        function _StringNotIN($field, $sql_values)
        {
        }
        function _ExprEQ($field, $val)
        {
        }
        function _ExprNotEQ($field, $val)
        {
        }
        function _NumberIN($field, $sql_values)
        {
        }
        function _NumberNotIN($field, $sql_values)
        {
        }
        /**
         * @deprecated Use \Bitrix\Main\ORM\Query\Filter\Helper::splitWords()
         * @param string $string
         * @return array
         */
        public static function splitWords($string)
        {
        }
        /**
         * @deprecated Use \Bitrix\Main\ORM\Query\Filter\Helper::getMinTokenSize()
         * @return int
         */
        public static function GetMinTokenSize()
        {
        }
        public function match($field, $fieldValue, $wildcard)
        {
        }
        public function matchLike($field, $fieldValue)
        {
        }
        function AddFields($arFields)
        {
        }
        function SetFields($arFields)
        {
        }
        public function MakeOperation($key)
        {
        }
        public static function getOperationByCode($code)
        {
        }
        function GetQuery($arFilter)
        {
        }
        function GetQueryEx($arFilter, &$arJoins, $level = 0)
        {
        }
        function GetJoins()
        {
        }
        public static function ForLIKE($str)
        {
        }
        function addIntFilter(&$result, $isMultiple, $FIELD_NAME, $operation, $value)
        {
        }
        function addFloatFilter(&$result, $isMultiple, $FIELD_NAME, $operation, $value)
        {
        }
        function addStringFilter(&$result, $isMultiple, $FIELD_NAME, $operation, $value)
        {
        }
        function addDateFilter(&$result, $isMultiple, $FIELD_NAME, $operation, $value, $format)
        {
        }
    }
    /**
     * Class CSQLWhereExpression
     * @deprecated  use \Bitrix\Main\DB\SqlExpression instead
     * @see \Bitrix\Main\DB\SqlExpression
     */
    class CSQLWhereExpression
    {
        protected $expression, $args;
        protected $i;
        protected $DB;
        public function __construct($expression, $args = \null)
        {
        }
        public function compile()
        {
        }
        protected function execPlaceholders($matches)
        {
        }
    }
    class CSiteCheckerTest
    {
        var $arTestVars;
        var $percent;
        var $last_function;
        var $strCurrentTestName;
        var $result;
        var $LogResourse;
        var $LogResult;
        var $group_name;
        var $group_desc;
        public function __construct($step = 0, $fast = 0, $fix_mode = 0)
        {
        }
        public static function GetTestList()
        {
        }
        function Start()
        {
        }
        function Result($result, $text = '')
        {
        }
        function OpenLog()
        {
        }
        function ConnectToHost($host = \false, $port = \false, $ssl = \false)
        {
        }
        function Unformat($str)
        {
        }
        function TableFieldCanBeAltered($f, $f_tmp)
        {
        }
        ###### TESTS #######
        # {
        #
        function check_php_modules()
        {
        }
        function check_php_settings()
        {
        }
        function check_server_vars()
        {
        }
        function check_mail($big = \false)
        {
        }
        function check_mail_big()
        {
        }
        function check_mail_b_event()
        {
        }
        function check_connect_mail()
        {
        }
        function check_socnet()
        {
        }
        function check_rest()
        {
        }
        function check_mail_push()
        {
        }
        function check_socket()
        {
        }
        function check_compression()
        {
        }
        function check_socket_ssl()
        {
        }
        function check_ad()
        {
        }
        function check_ntlm()
        {
        }
        function check_ca_file()
        {
        }
        function check_dbconn()
        {
        }
        function check_dbconn_settings()
        {
        }
        function check_upload($big = \false, $raw = \false)
        {
        }
        function check_upload_big()
        {
        }
        function check_upload_raw()
        {
        }
        function check_post()
        {
        }
        function check_memory_limit()
        {
        }
        function check_session()
        {
        }
        function check_session_ua()
        {
        }
        function check_mbstring()
        {
        }
        function check_http_auth()
        {
        }
        function check_update()
        {
        }
        function check_pull_stream()
        {
        }
        function check_pull_comments()
        {
        }
        function check_turn()
        {
        }
        function check_push_bitrix()
        {
        }
        function check_access_docs()
        {
        }
        function check_extranet()
        {
        }
        function check_webdav()
        {
        }
        function check_search()
        {
        }
        function check_fast_download()
        {
        }
        function check_access_mobile()
        {
        }
        function check_perf()
        {
        }
        function check_cache()
        {
        }
        function check_exec()
        {
        }
        function check_security()
        {
        }
        function check_install_scripts()
        {
        }
        function check_clone()
        {
        }
        function check_getimagesize()
        {
        }
        function check_localredirect()
        {
        }
        function check_sites()
        {
        }
        function check_pcre_recursion()
        {
        }
        function check_method_exists()
        {
        }
        function check_bx_crontab()
        {
        }
        ##############################
        # MYSQL Tests follow
        ##############################
        function check_mysql_bug_version()
        {
        }
        function check_mysql_mode()
        {
        }
        function check_mysql_time()
        {
        }
        function check_mysql_table_status()
        {
        }
        function check_mysql_connection_charset()
        {
        }
        function check_mysql_db_charset()
        {
        }
        function check_mysql_table_charset()
        {
        }
        function check_mysql_table_structure()
        {
        }
        ###############
        # }
        #
        function CommonTest()
        {
        }
    }
    class CSearchFiles
    {
        public function __construct()
        {
        }
        function Search($path)
        {
        }
    }
    class CRsaOpensslProvider extends \CRsaProvider
    {
        //$_PRIV - secret key in PEM format
        protected $_PRIV = '';
        public function SetKeys($arKeys)
        {
        }
        public function LoadKeys()
        {
        }
        public function SaveKeys($arKeys)
        {
        }
        public function Decrypt($data)
        {
        }
        public function Keygen($keylen = \false)
        {
        }
        private static function get_openssl_key_details($key)
        {
        }
    }
    class CGlobalCounter
    {
        const ALL_SITES = '**';
        public static function GetValue($code, $site_id = \SITE_ID)
        {
        }
        public static function GetValues($site_id = \SITE_ID, &$arLastDate = array())
        {
        }
        public static function GetAllValues()
        {
        }
        public static function GetLastDate($code, $site_id = \SITE_ID)
        {
        }
        public static function Set($code, $value, $site_id = \SITE_ID, $tag = '', $sendPull = \true)
        {
        }
        public static function Increment($code, $site_id = \SITE_ID, $sendPull = \true, $increment = 1)
        {
        }
        public static function Decrement($code, $site_id = \SITE_ID, $sendPull = \true, $decrement = 1)
        {
        }
        public static function IncrementWithSelect($sub_select, $sendPull = \true, $arParams = array())
        {
        }
        public static function Clear($code, $site_id = \SITE_ID, $sendPull = \true)
        {
        }
        public static function ClearAll($site_id = \SITE_ID, $sendPull = \true)
        {
        }
        public static function ClearByTag($tag, $code, $site_id = \SITE_ID, $sendPull = \true)
        {
        }
    }
    class CUserTypeStringFormatted extends \CUserTypeString
    {
        const USER_TYPE_ID = \Bitrix\Main\UserField\Types\StringFormattedType::USER_TYPE_ID;
        function getUserTypeDescription()
        {
        }
        function prepareSettings($userField)
        {
        }
        function getSettingsHtml($userField, $additionalParameters, $varsFromForm)
        {
        }
        public static function getPublicViewHtml($userField, $additionalParameters)
        {
        }
        public static function getPublicView($userField, $additionalParameters = array())
        {
        }
    }
    /**
     * CBXSanitizer
     * Class to cut all tags and attributies from html not contained in white list
     *
     * Example to use:
     * <code>
     * $Sanitizer = new CBXSanitizer;
     *
     * $Sanitizer->SetLevel(CBXSanitizer::SECURE_LEVEL_MIDDLE);
     * or
     * $Sanitizer->AddTags( array (
     * 								'a' = > array('href','id','style','alt'...),
     * 								'br' => array(),
     * 								.... ));
     *
     * $Sanitizer->SanitizeHtml($html);
     * </code>
     *
     */
    class CBXSanitizer
    {
        /**
         * Security levels
         */
        const SECURE_LEVEL_CUSTOM = 0;
        const SECURE_LEVEL_HIGH = 1;
        const SECURE_LEVEL_MIDDLE = 2;
        const SECURE_LEVEL_LOW = 3;
        const TABLE_TOP = 0;
        const TABLE_CAPT = 1;
        const TABLE_GROUP = 2;
        const TABLE_ROWS = 3;
        const TABLE_COLS = 4;
        const ACTION_DEL = 'del';
        const ACTION_ADD = 'add';
        const ACTION_DEL_WITH_CONTENT = 'del_with_content';
        /**
         * @deprecated For compability only will be erased next versions
         * @var mixed
         */
        protected static $arOldTags = array();
        protected $arHtmlTags = array();
        protected $bHtmlSpecChars = \true;
        protected $bDelSanitizedTags = \true;
        protected $bDoubleEncode = \true;
        protected $secLevel = self::SECURE_LEVEL_HIGH;
        protected $additionalAttrs = array();
        protected $arNoClose = array('br', 'hr', 'img', 'area', 'base', 'basefont', 'col', 'frame', 'input', 'isindex', 'link', 'meta', 'param');
        protected $localAlph;
        protected $arTableTags = array('table' => self::TABLE_TOP, 'caption' => self::TABLE_CAPT, 'thead' => self::TABLE_GROUP, 'tfoot' => self::TABLE_GROUP, 'tbody' => self::TABLE_GROUP, 'tr' => self::TABLE_ROWS, 'th' => self::TABLE_COLS, 'td' => self::TABLE_COLS);
        /**
         * Tags witch will be cut with their content
         * @var array
         */
        protected $delTagsWithContent = ['script', 'style'];
        /**
         * CBXSanitizer constructor.
         */
        public function __construct()
        {
        }
        /**
        * Allow additional attributes in html.
        * @param array $attrs Additional attrs
        * Example:
        			$sanitizer->allowAttributes(array(
        				'aria-label' => array(
        						'tag' => function($tag)
        						{
        							return ($tag == 'div');
        						},
        						'content' => function($value)
        						{
        							return !preg_match("#[^\\s\\w\\-\\#\\.;]#i" . BX_UTF_PCRE_MODIFIER, $value);
        						}
        					)
        			));
        * @return void
        */
        public function allowAttributes(array $attrs)
        {
        }
        /**
         * Adds HTML tags and attributes to white list
         * @param mixed $arTags array('tagName1' = > array('attribute1','attribute2',...), 'tagName2' => ........)
         * @return int count of added tags
         */
        public function AddTags($arTags)
        {
        }
        /**
         * @see AddTags()
         */
        public function UpdateTags($arTags)
        {
        }
        /**
         * Deletes tags from white list
         * @param mixed $arTagNames array('tagName1','tagname2',...)
         * @return int count of deleted tags
         */
        public function DelTags($arTagNames)
        {
        }
        /**
         * @param array $arDeleteAttrs
         */
        public function DeleteAttributes(array $arDeleteAttrs)
        {
        }
        /**
         * Deletes all tags from white list
         */
        public function DelAllTags()
        {
        }
        /**
         *  If is turned off Sanitizer will not encode existing html entities,
         *  in text blocks.
         *  The default is to convert everything.
         *	http://php.net/manual/ru/function.htmlspecialchars.php (double_encode)
         * @param bool $bApply true|false
         */
        public function ApplyDoubleEncode($bApply = \true)
        {
        }
        /**
         * Apply or not function htmlspecialchars to filtered tags and text
         * !WARNING! if DeleteSanitizedTags = false and ApplyHtmlSpecChars = false
         * html will not be sanitized!
         * @param bool $bApply true|false
         * @deprecated
         */
        public function ApplyHtmlSpecChars($bApply = \true)
        {
        }
        /**
         * Delete or not filtered tags
         * !WARNING! if DeleteSanitizedTags = false and ApplyHtmlSpecChars = false
         * html will not be sanitized!
         * @param bool $bApply true|false
         */
        public function DeleteSanitizedTags($bApply = \true)
        {
        }
        /**
         * Sets security level from predefined
         * @param int $secLevel { 	CBXSanitizer::SECURE_LEVEL_HIGH
         *							| CBXSanitizer::SECURE_LEVEL_MIDDLE
         *							| CBXSanitizer::SECURE_LEVEL_LOW }
         */
        public function SetLevel($secLevel)
        {
        }
        // Checks if tag's attributes are in white list ($this->arHtmlTags)
        protected function IsValidAttr(&$arAttr)
        {
        }
        protected function encodeAttributeValue(array $attr)
        {
        }
        /**
         * Returns allowed tags and attributies
         * @return string
         */
        public function GetTags()
        {
        }
        /**
         * @deprecated For compability only will be erased next versions
         */
        public static function SetTags($arTags)
        {
        }
        /**
         * @deprecated For compability only will be erased next versions
         */
        public static function Sanitize($html, $secLevel = 'HIGH', $htmlspecialchars = \true, $delTags = \true)
        {
        }
        /**
         * Split html to tags and simple text chunks
         * @param string $html
         * @return array
         */
        protected function splitHtml($html)
        {
        }
        /**
         * Erases, or HtmlSpecChares Tags and attributies wich not contained in white list
         * from inputted HTML
         * @param string $html Dirty HTML
         * @return string filtered HTML
         */
        public function SanitizeHtml($html)
        {
        }
        protected function extractAttributes(string $attrData) : array
        {
        }
        protected function processAttributes(string $attrData, string $currTag) : array
        {
        }
        /**
         * function CleanTable
         * Check if table code is valid, and corrects. If need
         * deletes all text and tags between diferent table tags if $delTextBetweenTags=true.
         * Checks if where are open tags from upper level if not - self-distructs.
         */
        protected function CleanTable(&$seg, &$openTagsStack, $segIndex, $delTextBetweenTags = \true)
        {
        }
        /**
         * Decodes text from codes like &#***, html-entities wich may be coded several times;
         * @param string $str
         * @return string decoded
         * */
        public function Decode($str)
        {
        }
        /*
        Function is used in regular expressions in order to decode characters presented as &#123;
        */
        protected function _decode_cb($in)
        {
        }
        /*
        Function is used in regular expressions in order to decode characters presented as  &#xAB;
        */
        protected function _decode_cb_hex($in)
        {
        }
        /*
        Decodes string from html codes &#***;
        One pass!
        -- Decode only a-zA-Z:().=, because only theese are used in filters
        */
        protected function _decode($str)
        {
        }
        /**
         * @param array $tags
         */
        public function setDelTagsWithContent(array $tags)
        {
        }
        /**
         * @return array
         */
        public function getDelTagsWithContent()
        {
        }
    }
    /**
     * Proxy class for file IO. Provides a set of methods to retrieve resources from a file system.
     * @deprecated Use \Bitrix\Main\IO
     */
    class CBXVirtualIo implements \IBXVirtualIO, \IBXGetErrors
    {
        private static $instance;
        private $io;
        public function __construct()
        {
        }
        /**
         * Returns proxy class instance (singleton pattern)
         *
         * @static
         * @return CBXVirtualIo - Proxy class instance
         */
        public static function GetInstance()
        {
        }
        /**
         * Combines a path parts
         *
         * Variable-length argument list
         *
         * @return string - Combined path
         */
        public function CombinePath()
        {
        }
        /**
         * Converts a relative path to absolute one
         *
         * @param string $relativePath - Relative path
         * @return string - Complete path
         */
        public function RelativeToAbsolutePath($relativePath)
        {
        }
        public function SiteRelativeToAbsolutePath($relativePath, $site = \null)
        {
        }
        /**
         * Returns Physical path to file or directory
         *
         * @param string $path - Path
         * @return string - Physical path
         */
        public function GetPhysicalName($path)
        {
        }
        function GetLogicalName($path)
        {
        }
        /**
         * Returns name of the file or directory
         *
         * @param string $path - Path
         * @return string - File/directory name
         */
        public function ExtractNameFromPath($path)
        {
        }
        /**
         * Returns path to the file or directory (without file/directory name)
         *
         * @param string $path - Path
         * @return string - Result
         */
        public function ExtractPathFromPath($path)
        {
        }
        /**
         * @param string $path
         * @return bool
         */
        public function ValidatePathString($path)
        {
        }
        /**
         * @param string $filename
         * @return bool
         */
        public function ValidateFilenameString($filename)
        {
        }
        /**
         * @param string $filename
         * @return string
         */
        public function RandomizeInvalidFilename($filename)
        {
        }
        /**
         * Gets a value that indicates whether a directory exists in the file system
         *
         * @param string $path - Complete path to the directory
         * @return bool - True if the directory exists, false - otherwise
         */
        public function DirectoryExists($path)
        {
        }
        /**
         * Gets a value that indicates whether a file exists in the file system
         *
         * @param string $path - Complete path to the file
         * @return bool - True if the file exists, false - otherwise
         */
        public function FileExists($path)
        {
        }
        /**
         * Gets a directory from the file system
         *
         * @param string $path - Complete path to the directory
         * @return CBXVirtualDirectoryFileSystem
         */
        public function GetDirectory($path)
        {
        }
        /**
         * Gets a virtual file from the file system
         *
         * @param string $path - Complete path to the file
         * @return CBXVirtualFileFileSystem
         */
        public function GetFile($path)
        {
        }
        /**
         * Returns a stream from a file
         *
         * @param string $path - Complete path to the file
         * @param string $mode - The type of access to the file ('rb' - reading, 'wb' - writing, 'ab' - appending)
         * @return resource
         */
        public function OpenFile($path, $mode)
        {
        }
        /**
         * Deletes a file or directory from the file system
         *
         * @param string $path - Complete path to the file or directory
         * @return bool - Result
         */
        public function Delete($path)
        {
        }
        /**
         * Copies a file or directory from source location to target
         *
         * @param string $source - Complete path of the source file or directory
         * @param string $target - Complete path of the target file or directory
         * @param bool $bRewrite - True to rewrite existing files, false - otherwise
         * @return bool - Result
         */
        public function Copy($source, $target, $bRewrite = \true)
        {
        }
        /**
         * Moves a file or directory from source location to target
         *
         * @param string $source - Complete path of the source file or directory
         * @param string $target - Complete path of the target file or directory
         * @param bool $bRewrite - True to rewrite existing files, false - otherwise
         * @return bool - Result
         */
        public function Move($source, $target, $bRewrite = \true)
        {
        }
        public function Rename($source, $target)
        {
        }
        /**
         * Clear file system cache (if any)
         *
         * @return void
         */
        function ClearCache()
        {
        }
        /**
         * Creates a directory if is is not exist
         *
         * @param string $path - Complete path of the directory
         * @return CBXVirtualDirectory|null
         */
        public function CreateDirectory($path)
        {
        }
        /**
         * Returns runtime errors
         *
         * @return array - Array of errors
         */
        public function GetErrors()
        {
        }
    }
    class CGridOptions
    {
        protected $grid_id;
        protected $all_options;
        protected $options;
        protected $filter;
        protected $filterPresets;
        protected $currentView;
        public function __construct($grid_id, array $filterPresets = array())
        {
        }
        public function InitFilter()
        {
        }
        public function GetOptions()
        {
        }
        public function GetSorting($arParams = array())
        {
        }
        public function GetNavParams($arParams = array())
        {
        }
        public function GetVisibleColumns()
        {
        }
        public function SetVisibleColumns($arColumns)
        {
        }
        public function GetFilter($arFilter)
        {
        }
        public function Save()
        {
        }
        public function SetColumns($columns)
        {
        }
        public function SetSorting($by, $order)
        {
        }
        public function SetTheme($theme)
        {
        }
        public function SetViewSettings($view_id, $settings)
        {
        }
        public function SetDefaultView($settings)
        {
        }
        public function ResetDefaultView()
        {
        }
        public function DeleteView($view_id)
        {
        }
        public function SetView($view_id)
        {
        }
        public function SetFilterRows($rows, $filter_id = '')
        {
        }
        public function SetFilterSettings($filter_id, $settings)
        {
        }
        public function DeleteFilter($filter_id)
        {
        }
        public function SetFilterSwitch($show)
        {
        }
        public static function CalcDates($field_id, $aInput, &$aRes)
        {
        }
        public static function GetThemes($path)
        {
        }
        public static function GetTheme($grid_id)
        {
        }
    }
    class CWizard
    {
        var $name;
        var $path;
        var $wizard = \null;
        var $arSites = array();
        var $arTemplates = array();
        var $arTemplateGroups = array();
        var $arServices = array();
        var $arDescription = array();
        var $arStructure = array();
        var $arErrors = array();
        var $pathToScript = \null;
        var $siteID = \null;
        var $templateID = \null;
        var $groupID = \null;
        var $serviceID = array();
        var $structureID = \null;
        var $licenseExists = \false;
        var $siteExists = \false;
        var $groupExists = \false;
        var $templateExists = \false;
        var $serviceExists = \false;
        var $structureExists = \false;
        var $siteSelected = \false;
        var $templateSelected = \false;
        var $serviceSelected = \false;
        var $structureSelected = \false;
        var $__bInited = \false;
        var $__obLastStep = \null;
        var $__obFirstStep = \null;
        public function __construct($wizardName)
        {
        }
        /** @deprecated */
        public function CWizard($wizardName)
        {
        }
        function Install()
        {
        }
        function __Install()
        {
        }
        function __SetTemplate()
        {
        }
        function __InitVariables()
        {
        }
        function _SetNextStep($obStep, $currentStep, $stepType = "select")
        {
        }
        function _InitSubStep($stepType, &$arInstallation, $bInitStep = \true)
        {
        }
        function __GetUserStep($stepName, &$step)
        {
        }
        function __SetStepDescription($obStep, $stepName)
        {
        }
        function __GetLicensePath()
        {
        }
        function __PackageError()
        {
        }
        function __GetDescription()
        {
        }
        function __CheckDepends()
        {
        }
        function __GetSites()
        {
        }
        function __GetTemplatesPath()
        {
        }
        function __GetTemplates()
        {
        }
        function __GetInstallationScript()
        {
        }
        function __GetServices()
        {
        }
        function __GetStructure()
        {
        }
        function __InstallSite($siteID)
        {
        }
        function __InstallTemplate($templateID)
        {
        }
        function __InstallService($serviceID)
        {
        }
        function __InstallStructure()
        {
        }
        function __GetPageProperties($pageID, &$arStructure)
        {
        }
        function __GetNewStructure($structureID, &$arStructure)
        {
        }
        function __MoveDirFiles(&$arFiles)
        {
        }
        /* Public methods */
        function GetID()
        {
        }
        function GetPath()
        {
        }
        function SetError($strError, $id = \false)
        {
        }
        function GetErrors()
        {
        }
        /* Public site builder methods*/
        function GetSiteTemplateID()
        {
        }
        function GetSiteGroupID()
        {
        }
        function GetSiteID()
        {
        }
        function GetSiteServiceID()
        {
        }
        function GetDescription()
        {
        }
        function GetTemplateGroups($arFilter = array())
        {
        }
        function GetTemplates($arFilter = array())
        {
        }
        function GetServices($arFilter = array())
        {
        }
        function GetStructure($arFilter = array())
        {
        }
        function IncludeWizardLang($relativePath = "", $lang = \false)
        {
        }
    }
    /**
     * Class CUserTypeUrl
     * @deprecated deprecated since main 20.0.700
     */
    class CUserTypeUrl extends \CUserTypeString
    {
        const USER_TYPE_ID = \Bitrix\Main\UserField\Types\UrlType::USER_TYPE_ID;
        function getUserTypeDescription()
        {
        }
        public static function getPublicView($userField, $additionalParameters = array())
        {
        }
        public static function getPublicEdit($userField, $additionalParameters = array())
        {
        }
        function getSettingsHtml($userField, $arHtmlControl, $bVarsFromForm)
        {
        }
        function getEditFormHtml($userField, $arHtmlControl)
        {
        }
        function getAdminListViewHtml($userField, $arHtmlControl)
        {
        }
        function getAdminListEditHtml($userField, $arHtmlControl)
        {
        }
        function getFilterHtml($userField, $arHtmlControl)
        {
        }
        public static function getPublicText($userField)
        {
        }
        function prepareSettings($userField)
        {
        }
        protected static function encodeUrl($url)
        {
        }
    }
    /*
     * SQL Helper
     */
    class CSqlUtil
    {
        public static function GetCount($tableName, $tableAlias, &$arFields, &$arFilter)
        {
        }
        public static function GetFilterOperation($key)
        {
        }
        private static function AddToSelect(&$fieldKey, &$arField, &$arOrder, &$strSqlSelect)
        {
        }
        private static function AddToFrom(&$arField, &$arJoined, &$strSqlFrom)
        {
        }
        private static function PrepareDefaultFields(&$arFields, &$arOrder, &$arJoined, &$strSqlSelect, &$strSqlFrom)
        {
        }
        public static function PrepareSql(&$arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields, $arOptions = array())
        {
        }
        public static function PrepareWhere(&$arFields, &$arFilter, &$arJoins)
        {
        }
        private static function AddBrackets($str)
        {
        }
        public static function GetRowCount(&$arSql, $tableName, $tableAlias = '', $dbType = '')
        {
        }
        public static function PrepareSelectTop(&$sql, $top, $dbType)
        {
        }
        private static function ForLike($str)
        {
        }
    }
    class CMenu
    {
        var $type = "left";
        var $arMenu = array();
        var $bMenuCalc = \false;
        var $MenuDir = "";
        var $MenuExtDir = "";
        var $MenuTemplate = "";
        var $template = "";
        var $LAST_ERROR = "";
        /** @var CDebugInfo */
        var $debug = \null;
        public function __construct($type = "left")
        {
        }
        function disableDebug()
        {
        }
        function Init($InitDir, $bMenuExt = \false, $template = \false, $onlyCurrentDir = \false)
        {
        }
        function RecalcMenu($bMultiSelect = \false, $bCheckSelected = \true)
        {
        }
        public static function IsItemSelected($tested_link, $cur_page, $cur_page_no_index)
        {
        }
        function GetMenuHtmlEx()
        {
        }
        function GetMenuHtml()
        {
        }
    }
    class CMenuCustom
    {
        var $arItems = array();
        function AddItem($type = "left", $arItem = array())
        {
        }
        function GetItems($type = "left")
        {
        }
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2013 Bitrix
     */
    class CSiteTemplate
    {
        var $LAST_ERROR;
        public static function GetList($arOrder = array(), $arFilter = array(), $arSelect = \false)
        {
        }
        public static function __GetByStylesTitle($file)
        {
        }
        public static function GetByID($ID)
        {
        }
        public function CheckFields($arFields, $ID = \false)
        {
        }
        public function Add($arFields)
        {
        }
        public function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function GetContent($ID)
        {
        }
        public static function DirsRecursive($ID, $path = "", $depth = 0, $maxDepth = 1)
        {
        }
        public static function SaveStyleDescription($stylesDesc = array(), $stylesPath)
        {
        }
        public static function SaveDescription($arFields = array(), $descPath)
        {
        }
    }
    class CAdminFileDialog
    {
        public static function ShowScript($arConfig)
        {
        }
        public static function AttachJSScripts()
        {
        }
        public static function Start($Params)
        {
        }
        public static function LoadItems($Params)
        {
        }
        public static function BuildDialog($Params)
        {
        }
        public static function ShowJS($Params)
        {
        }
        public static function AppendLangMess()
        {
        }
        public static function GetMenuTypes($site, $path, $bEchoResult = \false)
        {
        }
        public static function GetItems($Params)
        {
        }
        public static function GetItemsRecursively($Params)
        {
        }
        public static function MakeNewDir($Params)
        {
        }
        public static function Remove($Params)
        {
        }
        public static function Rename($Params)
        {
        }
        public static function CheckFileName($str)
        {
        }
        public static function EchoActionStatus($strWarning = '')
        {
        }
        public static function SetUserConfig($Params)
        {
        }
        public static function PreviewFlash($Params)
        {
        }
        public static function ShowUploadForm($Params)
        {
        }
        public static function UploadFile($Params)
        {
        }
    }
    class PHPUnit_Util_Log_BX_Plain extends \PHPUnit_Util_Printer implements \PHPUnit_Framework_TestListener
    {
        /**
         * @var	string
         */
        protected $currentTestSuiteName = '';
        /**
         * @var	string
         */
        protected $currentTestName = '';
        /**
         * @var	 boolean
         * @access  private
         */
        protected $currentTestPass = \TRUE;
        protected $messages;
        /**
         * An error occurred.
         *
         * @param  PHPUnit_Framework_Test $test
         * @param  Exception			  $e
         * @param  float				  $time
         */
        public function addError(\PHPUnit_Framework_Test $test, \Exception $e, $time)
        {
        }
        /**
         * A failure occurred.
         *
         * @param  PHPUnit_Framework_Test				 $test
         * @param  PHPUnit_Framework_AssertionFailedError $e
         * @param  float								  $time
         */
        public function addFailure(\PHPUnit_Framework_Test $test, \PHPUnit_Framework_AssertionFailedError $e, $time)
        {
        }
        /**
         * Incomplete test.
         *
         * @param  PHPUnit_Framework_Test $test
         * @param  Exception			  $e
         * @param  float				  $time
         */
        public function addIncompleteTest(\PHPUnit_Framework_Test $test, \Exception $e, $time)
        {
        }
        /**
         * Skipped test.
         *
         * @param  PHPUnit_Framework_Test $test
         * @param  Exception			  $e
         * @param  float				  $time
         */
        public function addSkippedTest(\PHPUnit_Framework_Test $test, \Exception $e, $time)
        {
        }
        /**
         * A testsuite started.
         *
         * @param  PHPUnit_Framework_TestSuite $suite
         */
        public function startTestSuite(\PHPUnit_Framework_TestSuite $suite)
        {
        }
        /**
         * A testsuite ended.
         *
         * @param  PHPUnit_Framework_TestSuite $suite
         */
        public function endTestSuite(\PHPUnit_Framework_TestSuite $suite)
        {
        }
        /**
         * A test started.
         *
         * @param  PHPUnit_Framework_Test $test
         */
        public function startTest(\PHPUnit_Framework_Test $test)
        {
        }
        /**
         * A test ended.
         *
         * @param  PHPUnit_Framework_Test $test
         * @param  float				  $time
         */
        public function endTest(\PHPUnit_Framework_Test $test, $time)
        {
        }
        /**
         * @param string $status
         * @param float  $time
         * @param array  $trace
         * @param string $message
         */
        protected function writeCase($status, $time, array $trace = array(), $message = '', $test = \NULL)
        {
        }
        /**
         * @param string $buffer
         */
        public function write($buffer)
        {
        }
        public function getMessages()
        {
        }
    }
    class CAllRatingRulesMain
    {
        // return configs
        function OnGetRatingRuleConfigs()
        {
        }
        function ratingCheck($arConfigs)
        {
        }
        function ratingCheckInterval($arConfigs)
        {
        }
        function addToGroup($arConfigs)
        {
        }
        function removeFromGroup($arConfigs)
        {
        }
        function GetUfList()
        {
        }
        function changeUF($arConfigs)
        {
        }
        // return support object
        function OnGetRatingRuleObjects()
        {
        }
        // check the value which relate to the module
        function OnAfterAddRatingRule($ID, $arFields)
        {
        }
        // check the value which relate to the module
        function OnAfterUpdateRatingRule($ID, $arFields)
        {
        }
        // check input values, if value does not validate, set the default value
        function __CheckFields($entityId, $arConfigs)
        {
        }
        // assemble config default value
        function __AssembleConfigDefault($objectType = \null)
        {
        }
    }
    class CB24Updater
    {
        private $arFileVersions = \null;
        private $fileGenerateDate = 0;
        private $serverUniqID = "";
        private $isProcessingMain = \false;
        const versionsFileNameConst = "/bitrix/modules/versions.php";
        private $versionsFileName = "";
        const versionsDatabaseFolderConst = "/bitrix/updates/bitrix24_clients/";
        private $versionsDatabaseFolder = "";
        private $updatersDir = "";
        public function __construct($isProcessingMain = \false)
        {
        }
        private static function GetOption($name, $def = "")
        {
        }
        private static function SetOption($name, $value = "")
        {
        }
        private static function GetServerUniqID()
        {
        }
        public function Lock()
        {
        }
        public function UnLock()
        {
        }
        private static function GetDatabaseVersions()
        {
        }
        private static function SetDatabaseVersions($arDBVersions)
        {
        }
        private function InitializeFileData()
        {
        }
        private function GetFileVersions()
        {
        }
        private function GetFileGenerateDate()
        {
        }
        private function GetDatabaseGenerationDate()
        {
        }
        public function PreCheckUpdates()
        {
        }
        private function Collect4PreCheckUpdates($generationDate)
        {
        }
        public function CheckUpdates()
        {
        }
        public function UpdateFromVersion($moduleId, $dbVersion)
        {
        }
        public function CollectDatabaseVersions($type, $moduleId = \null, $version = \null)
        {
        }
    }
    class CRsaSecurity
    {
        //max size of encrypted packet against DOS attacks.
        const MAX_ENCRIPTED_DATA = 40120;
        //error codes
        const ERROR_NO_LIBRARY = 1;
        //no crypto library found
        const ERROR_EMPTY_DATA = 2;
        //no encrypted data
        const ERROR_BIG_DATA = -3;
        //too big encrypted data
        const ERROR_DECODE = -4;
        //decoding error
        const ERROR_INTEGRITY = -5;
        //integrity check error
        const ERROR_SESS_VALUE = -6;
        //no session control value
        const ERROR_SESS_CHECK = -7;
        //session control value does not match
        protected $provider = \false;
        protected $lib = '';
        public function __construct($lib = \false)
        {
        }
        public static function Possible()
        {
        }
        public function SetKeys($arKeys)
        {
        }
        public function LoadKeys()
        {
        }
        public function SaveKeys($arKeys)
        {
        }
        public function Keygen($keylen = \false)
        {
        }
        public function AddToForm($formid, $arParams)
        {
        }
        public function AcceptFromForm($arParams)
        {
        }
        public function GetLib()
        {
        }
        protected function GetNewRsaRand()
        {
        }
    }
    class CUpdateSystem
    {
        public static function IsInCommonKernel()
        {
        }
        /** Ïîäïèñêà íà èíôîðìàöèþ îá îáíîâëåíèÿõ **/
        public static function SubscribeUpdates($strEmails, &$strError, $lang = \false)
        {
        }
        /** Àêòèâèðóåò ëèöåíçèîííûé êëþ÷ **/
        public static function AddSites($strCheck, &$strError, $lang = \false, $stableVersionsOnly = "Y")
        {
        }
        /** Àêòèâèðóåò ëèöåíçèîííûé êëþ÷ **/
        public static function ActivateLicenseKey($arFields, &$strError, $lang = \false, $stableVersionsOnly = "Y")
        {
        }
        // Ðåãèñòðèðóåò êîïèþ ïðîäóêòà, åñëè ìîæíî
        public static function RegisterVersion(&$strError, $lang = \false, $stableVersionsOnly = "Y")
        {
        }
        // Îáíîâëÿåò ñèñòåìó îáíîâëåíèé
        public static function UpdateUpdate(&$strError, $lang = \false, $stableVersionsOnly = "Y")
        {
        }
        // Çàêà÷èâàåò èñõîäíèêè ïðîäóêòà, åñëè ìîæíî
        public static function LoadSources(&$strError, $lang = \false, $stableVersionsOnly = "Y")
        {
        }
        // Âîçâðàùàåò, ÷òî îáíîâèëîñü
        public static function GetAvailableUpdateTypes(&$strError, $lang = \false, $stableVersionsOnly = "Y")
        {
        }
        // Âîçâðàùàåò èíôîðìàöèþ ïî äîñòóïíûì îáíîâëåíèÿì ìîäóëåé íà ñåðâåðå
        public static function GetServerModuleUpdates(&$strError, $lang = \false, $stableVersionsOnly = "Y")
        {
        }
        // Âîçâðàùàåò èíôîðìàöèþ ïî äîñòóïíûì ÿçûêàì íà ñåðâåðå
        public static function GetServerLangsUpdates(&$strError, $lang = \false, $stableVersionsOnly = "Y")
        {
        }
        // Âîçâðàùàåò èíôîðìàöèþ ïî äîñòóïíûì ÿçûêàì íà ñåðâåðå
        public static function GetServerHelpUpdates(&$strError, $lang = \false, $stableVersionsOnly = "Y")
        {
        }
        // Çàãðóæàåò îáíîâëåíèå ìîäóëåé $arModules â ôàéë update_archive.gz
        public static function LoadModuleUpdates($arModules, &$strError, $lang = \false, $stableVersionsOnly = "Y")
        {
        }
        // Çàãðóæàåò îáíîâëåíèÿ ÿçûêîâ $arLangs â ôàéë update_archive.gz
        public static function LoadLangsUpdates($arLangs, &$strError, $lang = \false, $stableVersionsOnly = "Y")
        {
        }
        // Çàãðóæàåò îáíîâëåíèå ïîìîùè $load_help â ôàéë update_archive.gz
        public static function LoadHelpUpdates($arHelp, &$strError, $lang = \false, $stableVersionsOnly = "Y")
        {
        }
        // Ðàñïàêîâûâàåò àðõèâ ôàéëîâ update_archive.gz â ïàïêy $updates_dir
        public static function UnGzipArchive(&$updates_dir, &$strError, $DelArch = "Y")
        {
        }
        // Ïðîâåðÿåò âîçìîæíîñòü îáíîâëåíèÿ ìîäóëåé $arModules
        // íà îñíîâàíèè êîíòðîëÿ âåðñèé VERSION_CONTROL
        public static function CheckVersions(&$arRes, &$strError, $arSelectedModules = \false)
        {
        }
        // Âîçâðàùàåò èíôîðìàöèþ ïî çàãðóæåííûì â ïàïêó $updates_dir îáíîâëåíèÿì ìîäóëåé
        public static function CheckUpdatability($updates_dir, &$strError)
        {
        }
        public static function CheckFolderUpdatability($destFolder, $srcFolder, &$strError)
        {
        }
        // Âîçâðàùàåò èíôîðìàöèþ ïî çàãðóæåííûì â ïàïêó $updates_dir îáíîâëåíèÿì ìîäóëåé
        public static function GetLoadedModuleUpdates($updates_dir, &$strError)
        {
        }
        // Âîçâðàùàåò èíôîðìàöèþ ïî çàãðóæåííûì â ïàïêó $updates_dir îáíîâëåíèÿì ÿçûêîâ
        public static function GetLoadedLangsUpdates($updates_dir, &$strError)
        {
        }
        // Âîçâðàùàåò èíôîðìàöèþ ïî çàãðóæåííûì â ïàïêó $updates_dir îáíîâëåíèÿì ïîìîùè
        public static function GetLoadedHelpUpdates($updates_dir, &$strError)
        {
        }
        // Îáíîâëÿåò ìîäóëè $arModules ïðîäóêòà èç ïàïêè $updates_dir
        public static function UpdateKernel($updates_dir, $arModules, &$strError, &$arErrorModules, &$arSuccessModules)
        {
        }
        // Îáíîâëÿåò ìîäóëè $arLangs ïðîäóêòà èç ïàïêè $updates_dir
        public static function UpdateLangs($updates_dir, $arLangs, &$strError, &$arErrorLangs, &$arSuccessLangs)
        {
        }
        // Îáíîâëÿåò ñèñòåìó ïîìîùè ïðîäóêòà èç ïàïêè $updates_dir
        public static function UpdateHelp($updates_dir, $arHelp, &$strError, &$arErrorHelp, &$arSuccessHelp)
        {
        }
        public static function Report2Server($arServerReport)
        {
        }
        /*******************************************************************/
        /********   ÂÑÏÎÌÎÃÀÒÅËÜÍÛÅ ÔÓÍÊÖÈÈ   ******************************/
        /*******************************************************************/
        /** Ïðîâåðÿåò íà îøèáêè îòâåò ñåðâåðà $strServerOutput **/
        /** è ïàðñèò â ìàññèâ $arRes                           **/
        public static function ParseServerData(&$strServerOutput, &$arRes, &$strError)
        {
        }
        /** Ñðàâíåíèå äâóõ âåðñèé â ôîðìàòå XX.XX.XX  **/
        /** Âîçâðàùàåò 1, åñëè $strVers1 > $strVers2  **/
        /** Âîçâðàùàåò -1, åñëè $strVers1 < $strVers2 **/
        /** Âîçâðàùàåò 0, åñëè $strVers1 == $strVers2 **/
        public static function CompareVersions($strVers1, $strVers2)
        {
        }
        /** Ïèøåò ñîîáùåíèÿ â ëîã ôàéë ñèñòåìû îáíîâëåíèé. ×èñòèò ëîã, åñëè íóæíî. **/
        public static function AddMessage2Log($sText, $sErrorCode = "")
        {
        }
        /** Ñîáèðàåò èç ìàññèâà ìîäóëåé ñòðîêó çàïðîñà **/
        public static function ModulesArray2Query($arClientModules, $pref = "bitm_")
        {
        }
        /** Ñîáèðàåò êëèåíòñêèå ìîäóëè ñ âåðñèÿìè **/
        public static function GetModules(&$strError, $arSelected = \false)
        {
        }
        /** Ñîáèðàåò êëèåíòñêèå ÿçûêè ñ äàòàìè **/
        public static function GetLanguages(&$strError, $arSelected = \false)
        {
        }
        /** Ñîáèðàåò êëèåíòñêèå help'û ñ äàòàìè **/
        public static function GetHelps(&$strError, $arSelected = \false)
        {
        }
        public static function GetFooPath($path)
        {
        }
        public static function GetModuleVersion($module)
        {
        }
        /** Âîçâðàùàåò ýêçåìïëÿð êëàññà-èíñòàëÿòîðà ìîäóëÿ ïî àáñîëþòíîìó ïóòè $path **/
        public static function GetModuleInfo($path)
        {
        }
        /** Çàïðàøèâàåò ìåòîäîì POST ñòðàíèöó $page ñî ñïèñêîì ïàðàìåòðîâ **/
        /** $strVars è âîçâðàùàåò òåëî îòâåòà. Â ïàðàìåòðå $strError      **/
        /** âîçâðàùàåòñÿ òåêñò îøèáêè, åñëè òàêîâàÿ áûëà.                 **/
        public static function getHTTPPage($page, $strVars, &$strError)
        {
        }
        /** Ïðîâåðêà íà óñòàíîâêó GZip êîìïðåññèè **/
        public static function IsGzipInstalled()
        {
        }
        /** Ñîçäàíèå ïóòÿ, åñëè åãî íåò, è óñòàíîâêà ïðàâ ïèñàòü **/
        public static function CheckDirPath($path, $bPermission = \true)
        {
        }
        /** Ðåêóðñèâíîå êîïèðîâàíèå èç $path_from â $path_to **/
        public static function CopyDirFiles($path_from, $path_to, &$strError)
        {
        }
        /** Ðåêóðñèâíîå óäàëåíèå $path **/
        public static function DeleteDirFilesEx($path)
        {
        }
        /** Óäàëÿåò ñòàðûå âðåìåííûå ïàïêè, îñòàâëÿÿ ïîñëåäíèå $iCnt **/
        public static function EraseOldFolders($iCnt = 1)
        {
        }
        /** Çàïóñêàåò updater ìîäóëÿ **/
        public static function RunUpdaterScript($path, &$strError, $from_dir, $moduleID)
        {
        }
        /** Ïîëó÷åíèå ëèöåíçèîííîãî êëþ÷à òåêóùåãî êëèåíòà **/
        public static function GetLicenseKey()
        {
        }
        public static function getmicrotime()
        {
        }
        public static function InsertSpaces($sText, $iMaxChar = 80)
        {
        }
        public static function CheckEMail($email)
        {
        }
        public static function GetDateFormat($strDBFormat = \false)
        {
        }
        /** Ïîëó÷åíèå ïðàâèëüíîãî îêîí÷àíèÿ ïðè âûâîäå ñëîâà "îáíîâëåíèå" **/
        public static function NumberEndings($num, $lang = \false, $arEnds = \false)
        {
        }
        public static function FooMakePath()
        {
        }
        public static function bxstrrpos($haystack, $needle)
        {
        }
    }
    /**********************************************************************/
    /*********   CUpdatesXMLNode   ****************************************/
    /**********************************************************************/
    class CUpdatesXMLNode
    {
        var $name;
        // Name of the node
        var $content;
        // Content of the node
        var $children;
        // Subnodes
        var $attributes;
        // Attributes
        public function __construct()
        {
        }
        function &__toString()
        {
        }
        function &__toArray()
        {
        }
    }
    /**********************************************************************/
    /*********   CUpdatesXMLDocument   ******************************************/
    /**********************************************************************/
    class CUpdatesXMLDocument
    {
        var $version;
        // XML version
        var $encoding;
        // XML encoding
        var $children;
        var $root;
        public function __construct()
        {
        }
        /* Returns a XML string of the DOM document */
        function &__toString()
        {
        }
        /* Returns an array of the DOM document */
        function &__toArray()
        {
        }
    }
    /**********************************************************************/
    /*********   CUpdatesXML   **************************************************/
    /**********************************************************************/
    class CUpdatesXML
    {
        var $tree;
        var $TrimWhiteSpace;
        public function __construct($TrimWhiteSpace = \True)
        {
        }
        function Load($file)
        {
        }
        function LoadString($text)
        {
        }
        function &GetTree()
        {
        }
        function &GetArray()
        {
        }
        function &GetString()
        {
        }
        function &SelectNodes($strNode)
        {
        }
        /* Will return an DOM object tree from the well formed XML. */
        function &__parse(&$strXMLText)
        {
        }
        function __stripComments(&$str)
        {
        }
        /* Parses the attributes. Returns false if no attributes in the supplied string is found */
        function &__parseAttributes($attributeString)
        {
        }
    }
    class CPackageWelcome extends \CWizardStep
    {
        var $package;
        public function __construct($package)
        {
        }
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class CPackageLicense extends \CWizardStep
    {
        var $package;
        public function __construct($package)
        {
        }
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class CPackageSelectSite extends \CWizardStep
    {
        var $package;
        public function __construct($package)
        {
        }
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    //Select template group
    class CPackageSelectGroup extends \CWizardStep
    {
        var $package;
        public function __construct($package)
        {
        }
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class CPackageSelectTemplate extends \CWizardStep
    {
        var $package;
        public function __construct($package)
        {
        }
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class CPackageSelectService extends \CWizardStep
    {
        var $package;
        public function __construct($package)
        {
        }
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class CPackageSelectStructure extends \CWizardStep
    {
        var $package;
        public function __construct($package)
        {
        }
        function InitStep()
        {
        }
        function DisplayTree(&$arStructure, $systemTree = \false)
        {
        }
        function ShowStep()
        {
        }
    }
    class CPackageStartInstall extends \CWizardStep
    {
        var $package;
        var $arSelected;
        public function __construct($package, $arSelected)
        {
        }
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class CPackageInstallSite extends \CWizardStep
    {
        var $package;
        var $siteID;
        public function __construct($package, $siteID)
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class CPackageInstallTemplate extends \CWizardStep
    {
        var $package;
        var $templateID;
        public function __construct($package, $templateID)
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class CPackageInstallService extends \CWizardStep
    {
        var $package;
        var $serviceID;
        public function __construct($package, $serviceID)
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class CPackageInstallStructure extends \CWizardStep
    {
        public function __construct()
        {
        }
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class CPackageFinish extends \CWizardStep
    {
        var $package;
        public function __construct($package)
        {
        }
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class CPackageCancel extends \CWizardStep
    {
        var $package;
        public function __construct($package)
        {
        }
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class CPackageError extends \CWizardStep
    {
        var $package;
        public function __construct($package)
        {
        }
        function InitStep()
        {
        }
        function OnPostForm()
        {
        }
        function ShowStep()
        {
        }
    }
    class CAllDiskQuota
    {
        var $max_execution_time = 20;
        // 20 sec
        var $LAST_ERROR = \false;
        private static $instance;
        public static function getInstance()
        {
        }
        public function __construct($params = array())
        {
        }
        function SetDBSize()
        {
        }
        function SetDirSize($path = "", $name = "", $recount = \false, $skip_dir = \false)
        {
        }
        function GetDirListSimple($path, $check_time = \true, $skip_dir = \false)
        {
        }
        function GetDirListFromLastFile($path, $path_to_last_file = "", $check_time = \true, $skip_dir = \false)
        {
        }
        function Recount($id, $recount = \false)
        {
        }
        function GetDiskQuota()
        {
        }
        public static function UpdateDiskQuota($type, $size, $action)
        {
        }
        public function CheckDiskQuota($params = array())
        {
        }
    }
    /**
     * Class CUserTypeBoolean
     * @deprecated deprecated since main 20.0.700
     */
    class CUserTypeBoolean extends \Bitrix\Main\UserField\TypeBase
    {
        const USER_TYPE_ID = \Bitrix\Main\UserField\Types\BooleanType::USER_TYPE_ID;
        const DISPLAY_DROPDOWN = \Bitrix\Main\UserField\Types\BooleanType::DISPLAY_DROPDOWN;
        const DISPLAY_RADIO = \Bitrix\Main\UserField\Types\BooleanType::DISPLAY_RADIO;
        const DISPLAY_CHECKBOX = \Bitrix\Main\UserField\Types\BooleanType::DISPLAY_CHECKBOX;
        function GetUserTypeDescription()
        {
        }
        function GetSettingsHTML($arUserField = \false, $arHtmlControl, $bVarsFromForm)
        {
        }
        function GetEditFormHTML($arUserField, $arHtmlControl)
        {
        }
        function GetFilterHTML($arUserField, $arHtmlControl)
        {
        }
        function GetAdminListViewHTML($arUserField, $arHtmlControl)
        {
        }
        function getAdminListViewHtmlMulty($userField, $additionalParameters)
        {
        }
        // @todo must not supporting the ability to add values in multiple fields
        function GetAdminListEditHTML($arUserField, $arHtmlControl)
        {
        }
        public static function GetPublicView($arUserField, $arAdditionalParameters = array())
        {
        }
        public static function getPublicText($userField)
        {
        }
        public function getPublicEdit($arUserField, $arAdditionalParameters = array())
        {
        }
        public static function getLabels($userField)
        {
        }
        function getDbColumnType($userField)
        {
        }
        function prepareSettings($userField)
        {
        }
        function onBeforeSave($userField, $value)
        {
        }
        function getFilterData($userField, $additionalParameters)
        {
        }
    }
    class CUndo
    {
        public static function Add($params = array())
        {
        }
        public static function Escape($ID)
        {
        }
        public static function GetList($Params = array())
        {
        }
        public static function Delete($ID)
        {
        }
        public static function CleanUpOld()
        {
        }
        public static function ShowUndoMessage($ID)
        {
        }
        public static function CheckNotifyMessage()
        {
        }
    }
    class CAutoSave
    {
        /*'ID', 'COPY_ID', 'ENTITY_ID', 'mid', 'WEB_FORM_ID', 'CONTRACT_ID', 'COURSE_ID', 'IBLOCK_SECTION_ID', 'IBLOCK_ID', 'CHANNEL_ID', 'VOTE_ID', 'DICTIONARY_ID', 'CHAPTER_ID', 'LESSON_ID', */
        private $formId = '';
        private $autosaveId = '';
        private $bInited = \false;
        private $bSkipRestore = \false;
        private static $bAllowed = \null;
        private static $arImportantParams = array('LANG' => 1, 'SITE' => 1, 'PATH' => 1, 'TYPE' => 1, 'EVENT_NAME' => 1, 'SHOW_ERROR' => 1, 'NAME' => 1, 'FULL_SRC' => 1, 'ACTION' => 1, 'LOGICAL' => 1, 'ADMIN' => 1, 'ADDITIONAL' => 1, 'NEW' => 1, 'MODE' => 1, 'CONDITION' => 1, 'QUESTION_TYPE' => 1);
        public function __construct()
        {
        }
        public function Init($admin = \true)
        {
        }
        public function checkRestore()
        {
        }
        public function Reset()
        {
        }
        public function Set($data)
        {
        }
        public function Restore($arFields)
        {
        }
        public function GetID()
        {
        }
        private static function _GetFormID()
        {
        }
        public static function _Restore($arFields)
        {
        }
        public static function Allowed()
        {
        }
    }
    class CWizardUtil
    {
        public static function GetRepositoryPath()
        {
        }
        public static function MakeWizardPath($wizardName)
        {
        }
        public static function CheckName($wizardName)
        {
        }
        public static function GetWizardList($filterNamespace = \false, $bLoadFromModules = \false)
        {
        }
        public static function GetNamespaceList()
        {
        }
        public static function DeleteWizard($wizardName)
        {
        }
        public static function CopyWizard($wizardName, $newName)
        {
        }
        public static function ReplaceMacros($filePath, $arReplace, $skipSharp = \false)
        {
        }
        public static function ReplaceMacrosRecursive($filePath, $arReplace)
        {
        }
        public static function CopyFile($fileID, $destPath, $deleteAfterCopy = \true)
        {
        }
        public static function GetModules()
        {
        }
        public static function CreateThumbnail($sourcePath, $previewPath, $maxWidth, $maxHeight)
        {
        }
    }
    /**
     * Ð”Ð°Ð½Ð½Ñ‹Ð¹ ÐºÐ»Ð°Ñ�Ñ� Ð¸Ñ�Ð¿Ð¾Ð»ÑŒÐ·ÑƒÐµÑ‚Ñ�Ñ� Ð´Ð»Ñ� ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ� Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑ�ÐºÐ¸Ñ… Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð².
     *
     * <p>Ð’Ñ‹Ð±Ð¾Ñ€ÐºÐ¸, Ð£Ð´Ð°Ð»ÐµÐ½Ð¸Ðµ Ð”Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ðµ Ð¸ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ðµ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ñ… Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ b_user_field.</p>
     * create table b_user_field (
     * ID    int(11) not null auto_increment,
     * ENTITY_ID  varchar(50),
     * FIELD_NAME  varchar(50),
     * USER_TYPE_ID  varchar(50),
     * XML_ID    varchar(255),
     * SORT    int,
     * MULTIPLE  char(1) not null default 'N',
     * MANDATORY  char(1) not null default 'N',
     * SHOW_FILTER  char(1) not null default 'N',
     * SHOW_IN_LIST  char(1) not null default 'Y',
     * EDIT_IN_LIST  char(1) not null default 'Y',
     * IS_SEARCHABLE  char(1) not null default 'N',
     * SETTINGS  text,
     * PRIMARY KEY (ID),
     * UNIQUE ux_user_type_entity(ENTITY_ID, FIELD_NAME)
     * )
     * ------------------
     * ID
     * ENTITY_ID (example: IBLOCK_SECTION, USER ....)
     * FIELD_NAME (example: UF_EMAIL, UF_SOME_COUNTER ....)
     * SORT -- used to do check in the specified order
     * BASE_TYPE - String, Number, Integer, Enumeration, File, DateTime
     * USER_TYPE_ID
     * SETTINGS (blob) -- to store some settings which may be useful for an field instance
     * [some base settings comon to all types: mandatory or no, etc.]
     * <p>b_user_field</p>
     * <ul>
     * <li><b>ID</b> int(11) not null auto_increment
     * <li>ENTITY_ID varchar(50)
     * <li>FIELD_NAME varchar(20)
     * <li>USER_TYPE_ID varchar(50)
     * <li>XML_ID varchar(255)
     * <li>SORT int
     * <li>MULTIPLE char(1) not null default 'N'
     * <li>MANDATORY char(1) not null default 'N'
     * <li>SHOW_FILTER char(1) not null default 'N'
     * <li>SHOW_IN_LIST char(1) not null default 'Y'
     * <li>EDIT_IN_LIST char(1) not null default 'Y'
     * <li>IS_SEARCHABLE char(1) not null default 'N'
     * <li>SETTINGS text
     * <li>PRIMARY KEY (ID),
     * <li>UNIQUE ux_user_type_entity(ENTITY_ID, FIELD_NAME)
     * </ul>
     * create table b_user_field_lang (
     * USER_FIELD_ID int(11) REFERENCES b_user_field(ID),
     * LANGUAGE_ID char(2),
     * EDIT_FORM_LABEL varchar(255),
     * LIST_COLUMN_LABEL varchar(255),
     * LIST_FILTER_LABEL varchar(255),
     * ERROR_MESSAGE varchar(255),
     * HELP_MESSAGE varchar(255),
     * PRIMARY KEY (USER_FIELD_ID, LANGUAGE_ID)
     * )
     * <p>b_user_field_lang</p>
     * <ul>
     * <li><b>USER_FIELD_ID</b> int(11) REFERENCES b_user_field(ID)
     * <li><b>LANGUAGE_ID</b> char(2)
     * <li>EDIT_FORM_LABEL varchar(255)
     * <li>LIST_COLUMN_LABEL varchar(255)
     * <li>LIST_FILTER_LABEL varchar(255)
     * <li>ERROR_MESSAGE varchar(255)
     * <li>HELP_MESSAGE varchar(255)
     * <li>PRIMARY KEY (USER_FIELD_ID, LANGUAGE_ID)
     * </ul>
     * @package usertype
     * @subpackage classes
     */
    class CAllUserTypeEntity extends \CDBResult
    {
        //must be extended
        function CreatePropertyTables($entity_id)
        {
        }
        //must be extended
        function DropColumnSQL($strTable, $arColumns)
        {
        }
        /**
         * Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ� Ð´Ð»Ñ� Ð²Ñ‹Ð±Ð¾Ñ€ÐºÐ¸ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ñ… Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑ�ÐºÐ¾Ð³Ð¾ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð°.
         *
         * <p>Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ Ð°Ñ�Ñ�Ð¾Ñ†Ð¸Ð°Ñ‚Ð¸Ð²Ð½Ñ‹Ð¹ Ð¼Ð°Ñ�Ñ�Ð¸Ð² Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ñ… ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¹ Ð¼Ð¾Ð¶Ð½Ð¾ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‚ÑŒ Ð² Update.</p>
         * @param integer $ID Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð°
         * @return array Ð•Ñ�Ð»Ð¸ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð¾ Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾, Ñ‚Ð¾ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚Ñ�Ñ� false
         * @static
         */
        public static function GetByID($ID)
        {
        }
        /**
         * Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ� Ð´Ð»Ñ� Ð²Ñ‹Ð±Ð¾Ñ€ÐºÐ¸ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ñ… Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑ�ÐºÐ¸Ñ… Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð².
         *
         * <p>Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ CDBResult - Ð²Ñ‹Ð±Ð¾Ñ€ÐºÑƒ Ð² Ð·Ð°Ð²Ð¸Ñ�Ð¸Ð¼Ð¾Ñ�Ñ‚Ð¸ Ð¾Ñ‚ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð° Ð¸ Ñ�Ð¾Ñ€Ñ‚Ð¸Ñ€Ð¾Ð²ÐºÐ¸.</p>
         * <p>ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ aSort Ð¿Ð¾ ÑƒÐ¼Ð¾Ð»Ñ‡Ð°Ð½Ð¸ÑŽ Ð¸Ð¼ÐµÐµÑ‚ Ð²Ð¸Ð´ array("SORT"=>"ASC", "ID"=>"ASC").</p>
         * <p>Ð•Ñ�Ð»Ð¸ Ð² aFilter Ð¿ÐµÑ€ÐµÐ´Ð°ÐµÑ‚Ñ�Ñ� LANG, Ñ‚Ð¾ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾ Ð²Ñ‹Ð±Ð¸Ñ€Ð°ÑŽÑ‚Ñ�Ñ� Ñ�Ð·Ñ‹ÐºÐ¾Ð²Ñ‹Ðµ Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ�.</p>
         * @param array $aSort Ð°Ñ�Ñ�Ð¾Ñ†Ð¸Ð°Ñ‚Ð¸Ð²Ð½Ñ‹Ð¹ Ð¼Ð°Ñ�Ñ�Ð¸Ð² Ñ�Ð¾Ñ€Ñ‚Ð¸Ñ€Ð¾Ð²ÐºÐ¸ (ID, ENTITY_ID, FIELD_NAME, SORT, USER_TYPE_ID)
         * @param array $aFilter Ð°Ñ�Ñ�Ð¾Ñ†Ð¸Ð°Ñ‚Ð¸Ð²Ð½Ñ‹Ð¹ Ð¼Ð°Ñ�Ñ�Ð¸Ð² Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð° Ñ�Ð¾ Ñ�Ñ‚Ñ€Ð¾Ð³Ð¸Ð¼ Ñ�Ð¾Ð¾Ð±Ð²ÐµÑ‚Ñ�Ñ‚Ð²Ð¸ÐµÐ¼ (<b>Ñ€Ð°Ð²Ð½Ð¾</b>) (ID, ENTITY_ID, FIELD_NAME, USER_TYPE_ID, SORT, MULTIPLE, MANDATORY, SHOW_FILTER)
         * @return CDBResult
         * @static
         */
        public static function GetList($aSort = array(), $aFilter = array())
        {
        }
        /**
         * Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ� Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ñ�Ñ‚Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ñ… Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑ�ÐºÐ¸Ñ… Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð².
         *
         * <p>Ð’Ñ‹Ð·Ñ‹Ð²Ð°ÐµÑ‚Ñ�Ñ� Ð² Ð¼ÐµÑ‚Ð¾Ð´Ð°Ñ… Add Ð¸ Update Ð´Ð»Ñ� Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾Ñ�Ñ‚Ð¸ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ‹Ñ… Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹.</p>
         * <p>ÐŸÑ€Ð¾Ð²ÐµÑ€ÐºÐ¸:</p>
         * <ul>
         * <li>ENTITY_ID - Ð¾Ð±Ñ�Ð·Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ðµ
         * <li>ENTITY_ID - Ð½Ðµ Ð±Ð¾Ð»ÐµÐµ 50-Ñ‚Ð¸ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð²
         * <li>ENTITY_ID - Ð½Ðµ Ð´Ð¾Ð»Ð¶Ð½Ð¾ Ñ�Ð¾Ð´ÐµÑ€Ð¶Ð°Ñ‚ÑŒ Ð½Ð¸ÐºÐ°ÐºÐ¸Ñ… Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð² ÐºÑ€Ð¾Ð¼Ðµ 0-9 A-Z Ð¸ _
         * <li>FIELD_NAME - Ð¾Ð±Ñ�Ð·Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ðµ
         * <li>FIELD_NAME - Ð½Ðµ Ð¼ÐµÐ½ÐµÐµ 4-Ñ… Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð²
         * <li>FIELD_NAME - Ð½Ðµ Ð±Ð¾Ð»ÐµÐµ 50-Ñ‚Ð¸ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð²
         * <li>FIELD_NAME - Ð½Ðµ Ð´Ð¾Ð»Ð¶Ð½Ð¾ Ñ�Ð¾Ð´ÐµÑ€Ð¶Ð°Ñ‚ÑŒ Ð½Ð¸ÐºÐ°ÐºÐ¸Ñ… Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð² ÐºÑ€Ð¾Ð¼Ðµ 0-9 A-Z Ð¸ _
         * <li>FIELD_NAME - Ð´Ð¾Ð»Ð¶Ð½Ð¾ Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ‚ÑŒÑ�Ñ� Ð½Ð° UF_
         * <li>USER_TYPE_ID - Ð¾Ð±Ñ�Ð·Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ðµ
         * <li>USER_TYPE_ID - Ð´Ð¾Ð»Ð¶ÐµÐ½ Ð±Ñ‹Ñ‚ÑŒ Ð·Ð°Ñ€ÐµÐ³Ð¸Ñ�Ñ‚Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½
         * </ul>
         * <p>Ð’ Ñ�Ð»ÑƒÑ‡Ð°Ðµ Ð¾ÑˆÐ¸Ð±ÐºÐ¸ Ð»Ð¾Ð²Ð¸Ñ‚Ðµ Ð¸Ñ�ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ðµ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ�!</p>
         * @param integer $ID - Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð°. 0 - Ð´Ð»Ñ� Ð½Ð¾Ð²Ð¾Ð³Ð¾.
         * @param array $arFields Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ðµ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð°
         * @param bool $bCheckUserType
         * @return boolean false - ÐµÑ�Ð»Ð¸ Ñ…Ð¾Ñ‚ÑŒ Ð¾Ð´Ð½Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° Ð½Ðµ Ð¿Ñ€Ð¾ÑˆÐ»Ð°.
         */
        function CheckFields($ID, $arFields, $bCheckUserType = \true)
        {
        }
        /**
         * Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ� Ð´Ð¾Ð±Ð°Ð²Ð»Ñ�ÐµÑ‚ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑ�ÐºÐ¾Ðµ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð¾.
         *
         * <p>Ð¡Ð½Ð°Ñ‡Ð°Ð»Ð° Ð²Ñ‹Ð·Ñ‹Ð²Ð°ÐµÑ‚Ñ�Ñ� Ð¼ÐµÑ‚Ð¾Ð´ Ñ�ÐºÐ·ÐµÐ¼Ð¿Ð»Ñ�Ñ€Ð° Ð¾Ð±ÑŠÐµÐºÑ‚Ð° CheckFields (Ñ‚.Ðµ. $this->CheckFields($arFields) ).</p>
         * <p>Ð•Ñ�Ð»Ð¸ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° Ð¿Ñ€Ð¾ÑˆÐ»Ð° ÑƒÑ�Ð¿ÐµÑˆÐ½Ð¾, Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ñ�ÐµÑ‚Ñ�Ñ� Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° Ð½Ð° Ñ�ÑƒÑ‰ÐµÑ�Ñ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ðµ Ñ‚Ð°ÐºÐ¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ� Ð´Ð»Ñ� Ð´Ð°Ð½Ð½Ð¾Ð¹ Ñ�ÑƒÑ‰Ð½Ð¾Ñ�Ñ‚Ð¸.</p>
         * <p>Ð”Ð°Ð»ÐµÐµ Ð¿Ñ€Ð¸ Ð½ÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ð¾Ñ�Ñ‚Ð¸ Ñ�Ð¾Ð·Ð´Ð°ÑŽÑ‚Ñ�Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ‡ÐºÐ¸ Ð²Ð¸Ð´Ð° <b>b_uts_[ENTITY_ID]</b> Ð¸ <b>b_utm_[ENTITY_ID]</b>.</p>
         * <p>ÐŸÐ¾Ñ�Ð»Ðµ Ñ‡ÐµÐ³Ð¾ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ðµ Ñ�Ð¾Ñ…Ñ€Ð°Ð½Ñ�ÑŽÑ‚Ñ�Ñ� Ð² Ð‘Ð”.</p>
         * <p>Ð˜ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð¿Ð¾Ñ�Ð»Ðµ Ñ�Ñ‚Ð¾Ð³Ð¾ <b>Ð¸Ð·Ð¼ÐµÐ½Ñ�ÐµÑ‚Ñ�Ñ� Ñ�Ñ‚ÑƒÐºÑ‚ÑƒÑ€Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ b_uts_[ENTITY_ID]</b>.</p>
         * <p>ÐœÐ°Ñ�Ñ�Ð¸Ð² arFields:</p>
         * <ul>
         * <li>ENTITY_ID - Ñ�ÑƒÑ‰Ð½Ð¾Ñ�Ñ‚ÑŒ
         * <li>FIELD_NAME - Ñ„Ð°ÐºÑ‚Ð¸Ñ‡ÐµÑ�ÐºÐ¸ Ð¸Ð¼Ñ� Ñ�Ñ‚Ð¾Ð»Ð±Ñ†Ð° Ð² Ð‘Ð” Ð² ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¼ Ð±ÑƒÐ´ÑƒÑ‚ Ñ…Ñ€Ð°Ð½Ð¸Ñ‚ÑŒÑ�Ñ� Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ� Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð°.
         * <li>USER_TYPE_ID - Ñ‚Ð¸Ð¿ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð°
         * <li>XML_ID - Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ Ð´Ð»Ñ� Ð¸Ñ�Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ� Ð¿Ñ€Ð¸ Ð¸Ð¼Ð¿Ð¾Ñ€Ñ‚Ðµ/Ñ�ÐºÑ�Ð¿Ð¾Ñ€Ñ‚Ðµ
         * <li>SORT - Ð¿Ð¾Ñ€Ñ�Ð´Ð¾Ðº Ñ�Ð¾Ñ€Ñ‚Ð¸Ñ€Ð¾Ð²ÐºÐ¸ (Ð¿Ð¾ ÑƒÐ¼Ð¾Ð»Ñ‡Ð°Ð½Ð¸ÑŽ 100)
         * <li>MULTIPLE - Ð¿Ñ€Ð¸Ð·Ð½Ð°Ðº Ð¼Ð½Ð¾Ð¶ÐµÑ�Ñ‚Ð²ÐµÐ½Ð½Ð¾Ñ�Ñ‚Ð¸ Y/N (Ð¿Ð¾ ÑƒÐ¼Ð¾Ð»Ñ‡Ð°Ð½Ð¸ÑŽ N)
         * <li>MANDATORY - Ð¿Ñ€Ð¸Ð·Ð½Ð°Ðº Ð¾Ð±Ñ�Ð·Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ñ�Ñ‚Ð¸ Ð²Ð²Ð¾Ð´Ð° Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ� Y/N (Ð¿Ð¾ ÑƒÐ¼Ð¾Ð»Ñ‡Ð°Ð½Ð¸ÑŽ N)
         * <li>SHOW_FILTER - Ð¿Ð¾ÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ Ð¸Ð»Ð¸ Ð½ÐµÑ‚ Ð² Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ðµ Ð°Ð´Ð¼Ð¸Ð½ Ð»Ð¸Ñ�Ñ‚Ð° Ð¸ ÐºÐ°ÐºÐ¾Ð¹ Ñ‚Ð¸Ð¿ Ð¸Ñ�Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÑŒ. Ñ�Ð¼. Ð½Ð¸Ð¶Ðµ.
         * <li>SHOW_IN_LIST - Ð¿Ð¾ÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ Ð¸Ð»Ð¸ Ð½ÐµÑ‚ Ð² Ð°Ð´Ð¼Ð¸Ð½ Ð»Ð¸Ñ�Ñ‚Ðµ (Ð¿Ð¾ ÑƒÐ¼Ð¾Ð»Ñ‡Ð°Ð½Ð¸ÑŽ Y)
         * <li>EDIT_IN_LIST - Ñ€Ð°Ð·Ñ€ÐµÑˆÐ°Ñ‚ÑŒ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµ Ð² Ñ„Ð¾Ñ€Ð¼Ð°Ñ…, Ð½Ð¾ Ð½Ðµ Ð² API! (Ð¿Ð¾ ÑƒÐ¼Ð¾Ð»Ñ‡Ð°Ð½Ð¸ÑŽ Y)
         * <li>IS_SEARCHABLE - Ð¿Ð¾Ð»Ðµ ÑƒÑ‡Ð°Ñ�Ñ‚Ð²ÑƒÐµÑ‚ Ð² Ð¿Ð¾Ð¸Ñ�ÐºÐµ (Ð¿Ð¾ ÑƒÐ¼Ð¾Ð»Ñ‡Ð°Ð½Ð¸ÑŽ N)
         * <li>SETTINGS - Ð¼Ð°Ñ�Ñ�Ð¸Ð² Ñ� Ð½Ð°Ñ�Ñ‚Ñ€Ð¾Ð¹ÐºÐ°Ð¼Ð¸ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð° Ð·Ð°Ð²Ð¸Ñ�Ð¸Ð¼Ñ‹Ð¼Ð¸ Ð¾Ñ‚ Ñ‚Ð¸Ð¿Ð° Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð°. ÐŸÑ€Ð¾Ñ…Ð¾Ð´Ñ�Ñ‚ "Ð¾Ñ‡Ð¸Ñ�Ñ‚ÐºÑƒ" Ñ‡ÐµÑ€ÐµÐ· Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸Ðº Ñ‚Ð¸Ð¿Ð° PrepareSettings.
         * <li>EDIT_FORM_LABEL - Ð¼Ð°Ñ�Ñ�Ð¸Ð² Ñ�Ð·Ñ‹ÐºÐ¾Ð²Ñ‹Ñ… Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ð¹ Ð²Ð¸Ð´Ð° array("ru"=>"Ð¿Ñ€Ð¸Ð²ÐµÑ‚", "en"=>"hello")
         * <li>LIST_COLUMN_LABEL
         * <li>LIST_FILTER_LABEL
         * <li>ERROR_MESSAGE
         * <li>HELP_MESSAGE
         * </ul>
         * <p>Ð’ Ñ�Ð»ÑƒÑ‡Ð°Ðµ Ð¾ÑˆÐ¸Ð±ÐºÐ¸ Ð»Ð¾Ð²Ð¸Ñ‚Ðµ Ð¸Ñ�ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ðµ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ�!</p>
         * <p>Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ� Ð´Ð»Ñ� SHOW_FILTER:</p>
         * <ul>
         * <li>N - Ð½Ðµ Ð¿Ð¾ÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ
         * <li>I - Ñ‚Ð¾Ñ‡Ð½Ð¾Ðµ Ñ�Ð¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ðµ
         * <li>E - Ð¼Ð°Ñ�ÐºÐ°
         * <li>S - Ð¿Ð¾Ð´Ñ�Ñ‚Ñ€Ð¾ÐºÐ°
         * </ul>
         * @param array $arFields Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ðµ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð°
         * @param bool $bCheckUserType
         * @return integer - Ð¸Ð´Ð½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð½Ð¾Ð³Ð¾ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð°, false - ÐµÑ�Ð»Ð¸ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð¾ Ð½Ðµ Ð±Ñ‹Ð»Ð¾ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¾.
         */
        function Add($arFields, $bCheckUserType = \true)
        {
        }
        /**
         * Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ� Ð¸Ð·Ð¼ÐµÐ½Ñ�ÐµÑ‚ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ðµ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑ�ÐºÐ¾Ð³Ð¾ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð°.
         *
         * <p>Ð�Ð°Ð´Ð¾ Ñ�ÐºÐ°Ð·Ð°Ñ‚ÑŒ, Ñ‡Ñ‚Ð¾ Ð´Ð»Ñ� Ñ�ÐºÐ¾Ñ€ÐµÐ¹ÑˆÐµÐ³Ð¾ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ� Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ Ð±Ñ‹Ð»Ð¾ Ñ€ÐµÑˆÐµÐ½Ð¾ Ð¿Ð¾ÐºÐ° Ð½Ðµ Ñ€ÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ñ‹Ð²Ð°Ñ‚ÑŒ
         * Ñ‚Ð°ÐºÑƒÑŽ Ð¶Ðµ Ð³Ð¸Ð±ÐºÐ¾Ñ�Ñ‚ÑŒ ÐºÐ°Ðº Ð² Ð¸Ð½Ñ„Ð¾Ð±Ð»Ð¾ÐºÐ°Ñ… (Ð¾Ð±Ð¾Ð¹Ð´ÐµÐ¼Ñ�Ñ� Ð¿Ð¾ÐºÐ° Ð±ÐµÐ· alter'Ð¾Ð² Ð¸ Ð¿Ñ€Ð¾Ñ‡ÐµÐ³Ð¾).</p>
         * <p>Ð¡Ð½Ð°Ñ‡Ð°Ð»Ð° Ð²Ñ‹Ð·Ñ‹Ð²Ð°ÐµÑ‚Ñ�Ñ� Ð¼ÐµÑ‚Ð¾Ð´ Ñ�ÐºÐ·ÐµÐ¼Ð¿Ð»Ñ�Ñ€Ð° Ð¾Ð±ÑŠÐµÐºÑ‚Ð° CheckFields (Ñ‚.Ðµ. $this->CheckFields($arFields) ).</p>
         * <p>ÐŸÐ¾Ñ�Ð»Ðµ Ñ‡ÐµÐ³Ð¾ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ðµ Ñ�Ð¾Ñ…Ñ€Ð°Ð½Ñ�ÑŽÑ‚Ñ�Ñ� Ð² Ð‘Ð”.</p>
         * <p>ÐœÐ°Ñ�Ñ�Ð¸Ð² arFields (Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ñ‚Ð¾ Ñ‡Ñ‚Ð¾ Ð¼Ð¾Ð¶Ð½Ð¾ Ð¸Ð·Ð¼ÐµÐ½Ñ�Ñ‚ÑŒ):</p>
         * <ul>
         * <li>SORT - Ð¿Ð¾Ñ€Ñ�Ð´Ð¾Ðº Ñ�Ð¾Ñ€Ñ‚Ð¸Ñ€Ð¾Ð²ÐºÐ¸
         * <li>MANDATORY - Ð¿Ñ€Ð¸Ð·Ð½Ð°Ðº Ð¾Ð±Ñ�Ð·Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ñ�Ñ‚Ð¸ Ð²Ð²Ð¾Ð´Ð° Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ� Y/N
         * <li>SHOW_FILTER - Ð¿Ñ€Ð¸Ð·Ð½Ð°Ðº Ð¿Ð¾ÐºÐ°Ð·Ð° Ð² Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ðµ Ñ�Ð¿Ð¸Ñ�ÐºÐ° Y/N
         * <li>SHOW_IN_LIST - Ð¿Ñ€Ð¸Ð·Ð½Ð°Ðº Ð¿Ð¾ÐºÐ°Ð·Ð° Ð² Ñ�Ð¿Ð¸Ñ�ÐºÐµ Y/N
         * <li>EDIT_IN_LIST - Ñ€Ð°Ð·Ñ€ÐµÑˆÐ°Ñ‚ÑŒ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµ Ð¿Ð¾Ð»Ñ� Ð² Ñ„Ð¾Ñ€Ð¼Ð°Ñ… Ð°Ð´Ð¼Ð¸Ð½ÐºÐ¸ Ð¸Ð»Ð¸ Ð½ÐµÑ‚ Y/N
         * <li>IS_SEARCHABLE - Ð¿Ñ€Ð¸Ð·Ð½Ð°Ðº Ð¿Ð¾Ð¸Ñ�ÐºÐ° Y/N
         * <li>SETTINGS - Ð¼Ð°Ñ�Ñ�Ð¸Ð² Ñ� Ð½Ð°Ñ�Ñ‚Ñ€Ð¾Ð¹ÐºÐ°Ð¼Ð¸ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð° Ð·Ð°Ð²Ð¸Ñ�Ð¸Ð¼Ñ‹Ð¼Ð¸ Ð¾Ñ‚ Ñ‚Ð¸Ð¿Ð° Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð°. ÐŸÑ€Ð¾Ñ…Ð¾Ð´Ñ�Ñ‚ "Ð¾Ñ‡Ð¸Ñ�Ñ‚ÐºÑƒ" Ñ‡ÐµÑ€ÐµÐ· Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸Ðº Ñ‚Ð¸Ð¿Ð° PrepareSettings.
         * <li>EDIT_FORM_LABEL - Ð¼Ð°Ñ�Ñ�Ð¸Ð² Ñ�Ð·Ñ‹ÐºÐ¾Ð²Ñ‹Ñ… Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ð¹ Ð²Ð¸Ð´Ð° array("ru"=>"Ð¿Ñ€Ð¸Ð²ÐµÑ‚", "en"=>"hello")
         * <li>LIST_COLUMN_LABEL
         * <li>LIST_FILTER_LABEL
         * <li>ERROR_MESSAGE
         * <li>HELP_MESSAGE
         * </ul>
         * <p>Ð’ Ñ�Ð»ÑƒÑ‡Ð°Ðµ Ð¾ÑˆÐ¸Ð±ÐºÐ¸ Ð»Ð¾Ð²Ð¸Ñ‚Ðµ Ð¸Ñ�ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ðµ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ�!</p>
         * @param integer $ID Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð°
         * @param array $arFields Ð½Ð¾Ð²Ñ‹Ðµ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ðµ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð°
         * @return boolean - true Ð² Ñ�Ð»ÑƒÑ‡Ð°Ðµ ÑƒÑ�Ð¿ÐµÑˆÐ½Ð¾Ð³Ð¾ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ�, false - Ð² Ð¿Ñ€Ð¾Ñ‚Ð¸Ð²Ð½Ð¾Ð¼ Ñ�Ð»ÑƒÑ‡Ð°Ðµ.
         */
        function Update($ID, $arFields)
        {
        }
        /**
         * Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ� ÑƒÐ´Ð°Ð»Ñ�ÐµÑ‚ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑ�ÐºÐ¾Ðµ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð¾ Ð¸ Ð²Ñ�Ðµ ÐµÐ³Ð¾ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ�.
         *
         * <p>Ð¡Ð½Ð°Ñ‡Ð°Ð»Ð° ÑƒÐ´Ð°Ð»Ñ�ÑŽÑ‚Ñ�Ñ� Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ðµ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð°.</p>
         * <p>Ð—Ð°Ñ‚ÐµÐ¼ Ð¸Ð· Ñ‚Ð°Ð±Ð»Ð¸Ñ‡ÐºÐ¸ Ð²Ð¸Ð´Ð° <b>b_utm_[ENTITY_ID]</b> ÑƒÐ´Ð°Ð»Ñ�ÑŽÑ‚Ñ�Ñ� Ð²Ñ�Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ� Ð¼Ð½Ð¾Ð¶ÐµÑ�Ñ‚Ð²ÐµÐ½Ð½Ñ‹Ñ… Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð².</p>
         * <p>ÐŸÐ¾Ñ�Ð»Ðµ Ñ‡ÐµÐ³Ð¾ Ñƒ Ñ‚Ð°Ð±Ð»Ð¸Ñ‡ÐºÐ¸ Ð²Ð¸Ð´Ð° <b>b_uts_[ENTITY_ID]</b> Ð´Ñ€Ð¾Ð¿Ð°ÐµÑ‚Ñ�Ñ� ÐºÐ¾Ð»Ð¾Ð½ÐºÐ°.</p>
         * <p>Ð˜ ÐµÑ�Ð»Ð¸ Ñ�Ñ‚Ð¾ Ð±Ñ‹Ð»Ð¾ "Ð¿Ð¾Ñ�Ð»ÐµÐ´Ð½ÐµÐµ" Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð¾ Ð´Ð»Ñ� Ñ�ÑƒÑ‰Ð½Ð¾Ñ�Ñ‚Ð¸, Ñ‚Ð¾ Ð´Ñ€Ð¾Ð¿Ð°ÑŽÑ‚Ñ�Ñ� Ñ�Ð°Ð¼Ð¸ Ñ‚Ð°Ð±Ð»Ð¸Ñ‡ÐºÐ¸ Ñ…Ñ€Ð°Ð½Ð¸Ð²ÑˆÐ¸Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ�.</p>
         * @param integer $ID Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð°
         * @return CDBResult - Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ� Ð¿Ð¾Ñ�Ð»ÐµÐ´Ð½ÐµÐ³Ð¾ Ð·Ð°Ð¿Ñ€Ð¾Ñ�Ð° Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸.
         */
        function Delete($ID)
        {
        }
        /**
         * Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ� ÑƒÐ´Ð°Ð»Ñ�ÐµÑ‚ Ð’Ð¡Ð• Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑ�ÐºÐ¸Ðµ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð° Ñ�ÑƒÑ‰Ð½Ð¾Ñ�Ñ‚Ð¸.
         *
         * <p>Ð¡Ð½Ð°Ñ‡Ð°Ð»Ð° ÑƒÐ´Ð°Ð»Ñ�ÑŽÑ‚Ñ�Ñ� Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ðµ Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð².</p>
         * <p>ÐœÐ¾Ð¶Ð½Ð¾ Ð²Ñ‹Ð·Ð²Ð°Ñ‚ÑŒ Ð¿Ñ€Ð¸ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ð¸ Ð¸Ð½Ñ„Ð¾Ð±Ð»Ð¾ÐºÐ° Ð½Ð°Ð¿Ñ€Ð¸Ð¼ÐµÑ€.</p>
         * <p>Ð—Ð°Ñ‚ÐµÐ¼ Ñ‚Ð°Ð±Ð»Ð¸Ñ‡ÐºÐ¸ Ð²Ð¸Ð´Ð° <b>b_utm_[ENTITY_ID]</b> Ð¸ <b>b_uts_[ENTITY_ID]</b> Ð´Ñ€Ð¾Ð¿Ð°ÑŽÑ‚Ñ�Ñ�.</p>
         * @param string $entity_id Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ Ñ�ÑƒÑ‰Ð½Ð¾Ñ�Ñ‚Ð¸
         * @return CDBResult - Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ� Ð¿Ð¾Ñ�Ð»ÐµÐ´Ð½ÐµÐ³Ð¾ Ð·Ð°Ð¿Ñ€Ð¾Ñ�Ð° Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸.
         */
        function DropEntity($entity_id)
        {
        }
        /**
         * Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ� Fetch.
         *
         * <p>Ð”ÐµÑ�ÐµÑ€Ð¸Ð°Ð»Ð¸Ð·ÑƒÐµÑ‚ Ð¿Ð¾Ð»Ðµ SETTINGS.</p>
         * @return array Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ false Ð² Ñ�Ð»ÑƒÑ‡Ð°Ðµ Ð¿Ð¾Ñ�Ð»ÐµÐ´Ð½ÐµÐ¹ Ð·Ð°Ð¿Ð¸Ñ�Ð¸ Ð²Ñ‹Ð±Ð¾Ñ€ÐºÐ¸.
         */
        function Fetch()
        {
        }
    }
    /**
     * Ð”Ð°Ð½Ð½Ñ‹Ð¹ ÐºÐ»Ð°Ñ�Ñ� Ñ„Ð°ÐºÑ‚Ð¸Ñ‡ÐµÑ�ÐºÐ¸ Ñ�Ð²Ð»Ñ�ÐµÑ‚Ñ�Ñ� Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ�Ð½Ð¾Ð¹ Ð¿Ñ€Ð¾Ñ�Ð»Ð¾Ð¹ÐºÐ¾Ð¹ Ð¼ÐµÐ¶Ð´Ñƒ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ�Ð¼Ð¸
     * Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑ�ÐºÐ¸Ñ… Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð² Ð¸ Ñ�ÑƒÑ‰Ð½Ð¾Ñ�Ñ‚ÑŒÑŽ Ðº ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¹ Ð¾Ð½Ð¸ Ð¿Ñ€Ð¸Ð²Ñ�Ð·Ð°Ð½Ñ‹.
     * @package usertype
     * @subpackage classes
     */
    class CUserTypeManager
    {
        const BASE_TYPE_INT = "int";
        const BASE_TYPE_FILE = "file";
        const BASE_TYPE_ENUM = "enum";
        const BASE_TYPE_DOUBLE = "double";
        const BASE_TYPE_DATETIME = "datetime";
        const BASE_TYPE_STRING = "string";
        /**
         * Ð¥Ñ€Ð°Ð½Ð¸Ñ‚ Ð²Ñ�Ðµ Ñ‚Ð¸Ð¿Ñ‹ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑ�ÐºÐ¸Ñ… Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð².
         *
         * <p>Ð˜Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð¸Ñ€ÑƒÐµÑ‚Ñ�Ñ� Ð¿Ñ€Ð¸ Ð¿ÐµÑ€Ð²Ð¾Ð¼ Ð²Ñ‹Ð·Ð¾Ð²Ðµ Ð¼ÐµÑ‚Ð¾Ð´Ð° GetUserType.</p>
         * @var array
         */
        var $arUserTypes = \false;
        var $arFieldsCache = array();
        var $arRightsCache = array();
        /**
         * @var null|array Stores relations of usertype ENTITY_ID to ORM entities. Aggregated by event main:onUserTypeEntityOrmMap.
         * @see CUserTypeManager::getEntityList()
         */
        protected $entityList = \null;
        function CleanCache()
        {
        }
        /**
         * Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ� Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ðµ Ñ‚Ð¸Ð¿Ð°.
         *
         * <p>Ð•Ñ�Ð»Ð¸ Ñ�Ñ‚Ð¾ Ð¿ÐµÑ€Ð²Ñ‹Ð¹ Ð²Ñ‹Ð·Ð¾Ð² Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸, Ñ‚Ð¾ Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ñ�ÐµÑ‚Ñ�Ñ� Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð½Ð¾Ðµ Ñ�Ð¾Ð±Ñ‹Ñ‚Ð¸Ðµ OnUserTypeBuildList (main).
         * Ð—Ð°Ñ€ÐµÐ³Ð¸Ñ�Ñ‚Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ðµ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¸ Ð´Ð¾Ð»Ð¶Ð½Ñ‹ Ð²ÐµÑ€Ð½ÑƒÑ‚ÑŒ Ð´Ð°Ð½Ñ‹Ðµ Ð¾Ð¿Ð¸Ñ�Ð°Ð½Ð¸Ñ� Ñ‚Ð¸Ð¿Ð°. Ð’ Ð´Ð°Ð½Ð½Ð¾Ð¼ Ñ�Ð»ÑƒÑ‡Ð°Ðµ Ð´ÐµÐ¹Ñ�Ñ‚Ð²ÑƒÐµÑ‚ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾ -
         * ÐºÑ‚Ð¾ Ð¿Ð¾Ñ�Ð»ÐµÐ´Ð½Ð¸Ð¹ Ñ‚Ð¾Ñ‚ Ð¸ Ð¿Ð°Ð¿Ð°. (Ð½Ð° Ñ�Ð»ÑƒÑ‡Ð°Ð¹ ÐµÑ�Ð»Ð¸ Ð¾Ð´Ð¸Ð½ Ñ‚Ð¸Ð¿ Ð·Ð°Ñ€ÐµÐ³Ð¸Ð»Ð¸Ñ�ÑŒ Ð¾Ð±Ñ€Ð°Ð±Ð°Ñ‚Ñ‹Ð²Ð°Ñ‚ÑŒ "Ð½ÐµÑ�ÐºÐ¾Ð»ÑŒÐºÐ¾" ÐºÐ»Ð°Ñ�Ñ�Ð¾Ð²)</p>
         * <p>Ð‘ÐµÐ· Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð² Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ� Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ Ð¿Ð¾Ð»Ð½Ñ‹Ð¹ Ñ�Ð¿Ð¸Ñ�Ð¾Ðº Ñ‚Ð¸Ð¿Ð¾Ð².<p>
         * <p>ÐŸÑ€Ð¸ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¼ user_type_id - Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ Ð¼Ð°Ñ�Ñ�Ð¸Ð² ÐµÑ�Ð»Ð¸ Ñ‚Ð°ÐºÐ¾Ð¹ Ñ‚Ð¸Ð¿ Ð·Ð°Ñ€ÐµÐ³Ð¸Ñ�Ñ‚Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½ Ð¸ false ÐµÑ�Ð»Ð¸ Ð½ÐµÑ‚.<p>
         * @param string|bool $user_type_id Ð½ÐµÐ¾Ð±Ñ�Ð·Ð°Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¹. Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ Ñ‚Ð¸Ð¿Ð° Ñ�Ð²Ð¾Ð¹Ñ�Ñ‚Ð²Ð°.
         * @return array|boolean
         */
        function GetUserType($user_type_id = \false)
        {
        }
        function GetDBColumnType($arUserField)
        {
        }
        function getUtsDBColumnType($arUserField)
        {
        }
        function getUtmDBColumnType($arUserField)
        {
        }
        function PrepareSettings($ID, $arUserField, $bCheckUserType = \true)
        {
        }
        function OnEntityDelete($entity_id)
        {
        }
        /**
         * Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ� Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ðµ Ð¿Ð¾Ð»ÐµÐ¹ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ñ‹Ñ… Ð´Ð»Ñ� Ñ�ÑƒÑ‰Ð½Ð¾Ñ�Ñ‚Ð¸.
         *
         * <p>Ð’Ð°Ð¶Ð½Ð¾! Ð’ $arUserField Ð´Ð¾Ð±Ð°Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ð»Ðµ ENTITY_VALUE_ID - Ñ�Ñ‚Ð¾ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ Ñ�ÐºÐ·ÐµÐ¼Ð¿Ð»Ñ�Ñ€Ð° Ñ�ÑƒÑ‰Ð½Ð¾Ñ�Ñ‚Ð¸
         * Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñ�ÑŽÑ‰Ð¸Ð¹ Ð¾Ñ‚Ð´ÐµÐ»Ð¸Ñ‚ÑŒ Ð½Ð¾Ð²Ñ‹Ðµ Ð·Ð°Ð¿Ð¸Ñ�Ð¸ Ð¾Ñ‚ Ñ�Ñ‚Ð°Ñ€Ñ‹Ñ… Ð¸ Ñ�Ð¾Ð¾Ñ‚Ð²ÐµÑ‚Ñ�Ð²ÐµÐ½Ð½Ð¾ Ð¸Ñ�Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÑŒ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ� Ð¿Ð¾ ÑƒÐ¼Ð¾Ð»Ñ‡Ð°Ð½Ð¸ÑŽ.</p>
         */
        function GetUserFields($entity_id, $value_id = 0, $LANG = \false, $user_id = \false)
        {
        }
        /**
         * Replacement for getUserFields, if you are already have fetched old data
         *
         * @param      $entity_id
         * @param      $readyData
         * @param bool $LANG
         * @param bool $user_id
         * @param string $primaryIdName
         *
         * @return array
         */
        function getUserFieldsWithReadyData($entity_id, $readyData, $LANG = \false, $user_id = \false, $primaryIdName = 'VALUE_ID')
        {
        }
        function GetUserFieldValue($entity_id, $field_id, $value_id, $LANG = \false)
        {
        }
        /**
         * Aggregates entity map by event.
         * @return array [ENTITY_ID => 'SomeTable']
         */
        function getEntityList()
        {
        }
        function OnAfterFetch($arUserField, $result)
        {
        }
        function LoadMultipleValues($arUserField, $valueId)
        {
        }
        function EditFormTab($entity_id)
        {
        }
        function EditFormShowTab($entity_id, $bVarsFromForm, $ID)
        {
        }
        function EditFormAddFields($entity_id, &$arFields, array $options = \null)
        {
        }
        /**
         * Add field for filter.
         * @param int $entityId Entity id.
         * @param array $arFilterFields Array for fill.
         */
        function AdminListAddFilterFields($entityId, &$arFilterFields)
        {
        }
        function AdminListAddFilterFieldsV2($entityId, &$arFilterFields)
        {
        }
        function IsNotEmpty($value)
        {
        }
        /**
         * Add value for filter.
         * @param int $entityId Entity id.
         * @param array $arFilter Array for fill.
         */
        function AdminListAddFilter($entityId, &$arFilter)
        {
        }
        function AdminListAddFilterV2($entityId, &$arFilter, $filterId, $filterFields)
        {
        }
        function AdminListPrepareFields($entity_id, &$arFields)
        {
        }
        function AdminListAddHeaders($entity_id, &$arHeaders)
        {
        }
        function AddUserFields($entity_id, $arRes, &$row)
        {
        }
        function AddFindFields($entity_id, &$arFindFields)
        {
        }
        function AdminListShowFilter($entity_id)
        {
        }
        function ShowScript()
        {
        }
        function GetEditFormHTML($bVarsFromForm, $form_value, $arUserField)
        {
        }
        function GetFilterHTML($arUserField, $filter_name, $filter_value)
        {
        }
        /**
         * @param $arUserField
         * @param $value
         * @param CAdminListRow $row
         */
        function AddUserField($arUserField, $value, &$row)
        {
        }
        function getListView($userfield, $value)
        {
        }
        function CallUserTypeComponent($componentName, $componentTemplate, $arUserField, $arAdditionalParameters = array())
        {
        }
        /**
         * @param array $userField
         * @param array|null $additionalParameters
         * @return string|null
         */
        public function renderField(array $userField, ?array $additionalParameters = array()) : ?string
        {
        }
        function GetPublicView($arUserField, $arAdditionalParameters = array())
        {
        }
        public function getPublicText($userField)
        {
        }
        function GetPublicEdit($arUserField, $arAdditionalParameters = array())
        {
        }
        function GetSettingsHTML($arUserField, $bVarsFromForm = \false)
        {
        }
        /**
         * @param       $entity_id
         * @param       $ID
         * @param       $arFields
         * @param bool $user_id False means current user id.
         * @param bool $checkRequired Whether to check required fields.
         * @param array $requiredFields Conditionally required fields.
         * @return bool
         */
        function CheckFields($entity_id, $ID, $arFields, $user_id = \false, $checkRequired = \true, array $requiredFields = \null)
        {
        }
        /**
         * Replacement for CheckFields, if you are already have fetched old data
         *
         * @param $entity_id
         * @param $oldData
         * @param $arFields
         *
         * @return bool
         */
        function CheckFieldsWithOldData($entity_id, $oldData, $arFields)
        {
        }
        function Update($entity_id, $ID, $arFields, $user_id = \false)
        {
        }
        public function copy($entity_id, $id, $copiedId, $entityObject, $userId = \false, $ignoreList = [])
        {
        }
        function Delete($entity_id, $ID)
        {
        }
        function OnSearchIndex($entity_id, $ID)
        {
        }
        function GetRights($ENTITY_ID = \false, $ID = \false)
        {
        }
        /**
         * @param             $arUserField
         * @param null|string $fieldName
         * @param array $fieldParameters
         *
         * @return Entity\DatetimeField|Entity\FloatField|Entity\IntegerField|Entity\StringField|mixed
         * @throws Bitrix\Main\ArgumentException
         */
        public function getEntityField($arUserField, $fieldName = \null, $fieldParameters = array())
        {
        }
        /**
         * @param                    $arUserField
         * @param Entity\ScalarField $entityField
         *
         * @return Entity\ReferenceField[]
         */
        public function getEntityReferences($arUserField, \Bitrix\Main\Entity\ScalarField $entityField)
        {
        }
        protected function getUserFieldValuesByEvent(array $userFields, string $entityId, int $value) : ?array
        {
        }
        protected function updateUserFieldValuesByEvent(string $entityId, int $id, array $fields) : ?bool
        {
        }
        protected function deleteUserFieldValuesByEvent(string $entityId, int $id) : ?bool
        {
        }
    }
    class CUserTypeSQL
    {
        var $table_alias = "BUF";
        var $entity_id = \false;
        var $user_fields = array();
        var $select = array();
        var $filter = array();
        var $order = array();
        /** @var CSQLWhere */
        var $obWhere = \false;
        function SetEntity($entity_id, $ID)
        {
        }
        function SetSelect($arSelect)
        {
        }
        function GetDistinct()
        {
        }
        function GetSelect()
        {
        }
        function GetJoin($ID)
        {
        }
        function SetOrder($arOrder)
        {
        }
        function GetOrder($field)
        {
        }
        function SetFilter($arFilter)
        {
        }
        function GetFilter()
        {
        }
    }
    class CUserFieldEnum
    {
        function SetEnumValues($FIELD_ID, $values)
        {
        }
        function GetList($aSort = array(), $aFilter = array())
        {
        }
        function DeleteFieldEnum($FIELD_ID)
        {
        }
    }
    /**
     * Class LPA
     *
     * Limited PHP Access.
     */
    class LPA
    {
        public static function PrepareContent($filesrc)
        {
        }
        public static function Process($filesrc = \false, $old_filesrc = \false)
        {
        }
        public static function EncodePHPTags($str)
        {
        }
        public static function ComponentChecker(&$arParams, &$arPHPparams, $parentParamName = \false)
        {
        }
    }
    /**
     * Class CUserTypeIBlockElement
     * @deprecated deprecated since main 20.0.800
     */
    class CUserTypeIBlockElement extends \CUserTypeEnum
    {
        private static $iblockIncluded = \null;
        function getUserTypeDescription()
        {
        }
        function prepareSettings($userField)
        {
        }
        function getSettingsHtml($userField, $additionalParameters, $varsFromForm)
        {
        }
        function checkFields($userField, $value)
        {
        }
        function getList($userField)
        {
        }
        protected static function getEnumList(&$userField, $additionalParameters = array())
        {
        }
        function onSearchIndex($userField)
        {
        }
        public static function isIblockIncluded() : bool
        {
        }
    }
    class CIBlockElementEnum extends \CDBResult
    {
        function getTreeList($iblockId, $activeFilter = 'N')
        {
        }
        function getNext($textHtmlAuto = \true, $useTilda = \true)
        {
        }
    }
    class CCaptcha
    {
        var $imageWidth = 180;
        var $imageHeight = 40;
        var $codeLength = 5;
        var $ttfFilesPath = "/bitrix/modules/main/fonts";
        var $arTTFFiles = array("font.ttf");
        var $textAngleFrom = -20;
        var $textAngleTo = 20;
        var $textStartX = 7;
        var $textDistanceFrom = 27;
        var $textDistanceTo = 32;
        var $textFontSize = 20;
        var $bTransparentText = \True;
        var $transparentTextPercent = 10;
        var $arTextColor = array(array(0, 100), array(0, 100), array(0, 100));
        var $arBGColor = array(array(255, 255), array(255, 255), array(255, 255));
        var $arRealBGColor = \false;
        var $numEllipses = 100;
        var $arEllipseColor = array(array(127, 255), array(127, 255), array(127, 255));
        var $numLines = 20;
        var $arLineColor = array(array(110, 250), array(110, 250), array(110, 250));
        var $bLinesOverText = \False;
        var $arBorderColor = array(0, 0, 0);
        var $bWaveTransformation = \False;
        var $bEmptyText = \False;
        var $arChars = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'W', 'X', 'Y', 'Z', '2', '3', '4', '5', '6', '7', '8', '9');
        //'1','I','O','0'
        var $image;
        var $code;
        var $codeCrypt;
        var $sid;
        public function __construct()
        {
        }
        /* SET */
        function SetImageSize($width, $height)
        {
        }
        function SetCodeLength($length)
        {
        }
        function SetTTFFontsPath($ttfFilesPath)
        {
        }
        function GetTTFFontsPath()
        {
        }
        function SetTTFFonts($arFonts)
        {
        }
        function SetTextWriting($angleFrom, $angleTo, $startX, $distanceFrom, $distanceTo, $fontSize)
        {
        }
        function SetTextTransparent($bTransparentText, $transparentTextPercent = 10)
        {
        }
        function SetColor($arColor)
        {
        }
        function SetBGColor($arColor)
        {
        }
        function SetBGColorRGB($color_1, $color_2)
        {
        }
        function SetTextColor($arColor)
        {
        }
        function SetTextColorRGB($color_1, $color_2)
        {
        }
        function SetEllipseColor($arColor)
        {
        }
        function SetEllipseColorRGB($color_1, $color_2)
        {
        }
        function SetLineColor($arColor)
        {
        }
        function SetLineColorRGB($color_1, $color_2)
        {
        }
        function SetBorderColor($arColor)
        {
        }
        function SetBorderColorRGB($color)
        {
        }
        function SetEllipsesNumber($num)
        {
        }
        function SetLinesNumber($num)
        {
        }
        function SetLinesOverText($bLinesOverText)
        {
        }
        function SetCodeChars($arChars)
        {
        }
        function SetWaveTransformation($bWaveTransformation)
        {
        }
        function SetEmptyText($bEmptyText)
        {
        }
        /* UTIL */
        function GetColor($arColor)
        {
        }
        function InitImage($width = \false, $height = \false)
        {
        }
        function CreateImage()
        {
        }
        function CreateImageError($arMsg)
        {
        }
        function Wave()
        {
        }
        function EmptyText()
        {
        }
        function DestroyImage()
        {
        }
        function ShowImage()
        {
        }
        function DrawText()
        {
        }
        function DrawEllipses()
        {
        }
        function DrawLines()
        {
        }
        /* OUTPUT */
        function Output()
        {
        }
        function OutputError()
        {
        }
        /* CODE */
        function SetCode()
        {
        }
        function SetCodeCrypt($password = "")
        {
        }
        function SetCaptchaCode($sid = \false)
        {
        }
        function Generate32RandomString()
        {
        }
        function InitCaptchaCode($sid)
        {
        }
        function InitCode($sid)
        {
        }
        function InitCodeCrypt($codeCrypt, $password = "")
        {
        }
        function GetSID()
        {
        }
        function GetCodeCrypt()
        {
        }
        function CheckCaptchaCode($userCode, $sid, $bUpperCode = \true)
        {
        }
        function CheckCode($userCode, $sid, $bUpperCode = \True)
        {
        }
        function CheckCodeCrypt($userCode, $codeCrypt, $password = "", $bUpperCode = \True)
        {
        }
        function CryptData($data, $type, $pwdString)
        {
        }
        function Add($arFields)
        {
        }
        function Delete($sid)
        {
        }
    }
    /**
     * Class CUserTypeInteger
     * Type for custom properties - STRING
     *
     * @package usertype
     * @subpackage classes
     * @deprecated deprecated since main 20.0.700
     */
    class CUserTypeInteger extends \Bitrix\Main\UserField\TypeBase
    {
        const USER_TYPE_ID = \Bitrix\Main\UserField\Types\IntegerType::USER_TYPE_ID;
        function getUserTypeDescription()
        {
        }
        function getSettingsHtml($userField, $additionalParameters, $varsFromForm)
        {
        }
        function getEditFormHtml($userField, $additionalParameters)
        {
        }
        function getFilterHtml($userField, $additionalParameters)
        {
        }
        function getAdminListViewHtml($userField, $additionalParameters)
        {
        }
        function getAdminListEditHtml($userField, $additionalParameters)
        {
        }
        public function getPublicView($userField, $additionalParameters = array())
        {
        }
        public function getPublicEdit($userField, $additionalParameters = array())
        {
        }
        function getDbColumnType($userField)
        {
        }
        function getFilterData($userField, $additionalParameters)
        {
        }
        function prepareSettings($userField)
        {
        }
        function checkFields($userField, $value)
        {
        }
    }
    /**
     * Class CUserTypeDateTime
     * @deprecated deprecated since main 20.0.700
     */
    class CUserTypeDateTime extends \Bitrix\Main\UserField\TypeBase
    {
        const USER_TYPE_ID = \Bitrix\Main\UserField\Types\DateTimeType::USER_TYPE_ID;
        function getUserTypeDescription()
        {
        }
        public static function getPublicView($userField, $additionalParameters = array())
        {
        }
        public static function getPublicEdit($userField, $additionalParameters = array())
        {
        }
        function getSettingsHtml($userField, $additionalParameters, $varsFromForm)
        {
        }
        function getEditFormHtml($userField, $additionalParameters)
        {
        }
        function getAdminListViewHtml($userField, $additionalParameters)
        {
        }
        function getAdminListEditHtml($userField, $additionalParameters)
        {
        }
        function getFilterHtml($userField, $additionalParameters)
        {
        }
        function getDBColumnType($userField)
        {
        }
        function getFilterData($userField, $additionalParameters)
        {
        }
        function prepareSettings($userField)
        {
        }
        function CheckFields($userField, $value)
        {
        }
        public function onAfterFetch($userfield, $fetched)
        {
        }
        public function onBeforeSave($userfield, $value)
        {
        }
        protected static function getFormat($value, $userField)
        {
        }
        public static function FormatField(array $userField, $fieldName)
        {
        }
    }
    class CComponentUtil
    {
        public static function __IncludeLang($filePath, $fileName, $lang = \false)
        {
        }
        public static function PrepareVariables(&$arData)
        {
        }
        public static function __ShowError($errorMessage)
        {
        }
        public static function __BuildTree($arPath, &$arTree, &$arComponent, $level = 1)
        {
        }
        public static function isComponent($componentPath)
        {
        }
        public static function __GetComponentsTree($filterNamespace = \false, $arNameFilter = \false, $arFilter = \false)
        {
        }
        public static function __TreeFolderCompare($a, $b)
        {
        }
        public static function __TreeItemCompare($a, $b)
        {
        }
        public static function __SortComponentsTree(&$arTree)
        {
        }
        public static function GetComponentsTree($filterNamespace = \false, $arNameFilter = \false, $arFilter = \false)
        {
        }
        public static function GetNamespaceList()
        {
        }
        public static function GetComponentDescr($componentName)
        {
        }
        public static function __GroupParamsCompare($a, $b)
        {
        }
        /**
         * @param string $componentName
         * @param array $arCurrentValues Don't change the name! It's used in the .parameters.php file.
         * @param array $templateProperties
         * @return array|bool
         */
        public static function GetComponentProps($componentName, $arCurrentValues = array(), $templateProperties = array())
        {
        }
        /**
         * @param string $componentName
         * @param string $templateName
         * @param string $siteTemplate
         * @param array $arCurrentValues Don't change the name! It's used in the .parameters.php file.
         * @return array
         */
        public static function GetTemplateProps($componentName, $templateName, $siteTemplate = "", $arCurrentValues = array())
        {
        }
        public static function GetTemplatesList($componentName, $currentTemplate = \false)
        {
        }
        public static function CopyComponent($componentName, $newNamespace, $newName = \false, $bRewrite = \false)
        {
        }
        public static function CopyTemplate($componentName, $templateName, $siteTemplate, $newSiteTemplate, $newName = \false, $bRewrite = \false)
        {
        }
        public static function CheckComponentName($name, $arFilter)
        {
        }
        public static function GetDefaultNameTemplates()
        {
        }
        public static function GetDateFormatField($name = "", $parent = "", $no_year = \false)
        {
        }
        public static function GetDateFormatDefault($no_year = \false)
        {
        }
        public static function GetDateTimeFormatField($name = "", $parent = "")
        {
        }
        public static function GetDateTimeFormatDefault()
        {
        }
        public static function GetDateTimeFormatted($timestamp, $dateTimeFormat = \false, $offset = 0, $hideToday = \false)
        {
        }
    }
    /*********************************************************************
    						Caching
    *********************************************************************/
    class CPHPCacheFiles
    {
        var $filename;
        var $folder;
        var $content;
        var $vars;
        var $TTL;
        var $uniq_str;
        var $initdir;
        var $bStarted = \false;
        var $bInit = "NO";
        //cache stats
        var $written = \false;
        var $read = \false;
        var $path = "";
        function IsAvailable()
        {
        }
        private static function _unlink($fileName)
        {
        }
        private static function _addAgent()
        {
        }
        private static function _randomizeFile($fileName)
        {
        }
        function clean($basedir, $initdir = \false, $filename = \false)
        {
        }
        function read(&$arAllVars, $basedir, $initdir, $filename, $TTL)
        {
        }
        function write($arAllVars, $basedir, $initdir, $filename, $TTL)
        {
        }
        function IsCacheExpired($path)
        {
        }
        function DeleteOneDir($etime = 0)
        {
        }
        function DelayedDelete($count = 1, $level = 1)
        {
        }
    }
    /**
     * Class CUserTypeFile
     * @deprecated
     */
    class CUserTypeFile extends \Bitrix\Main\UserField\TypeBase
    {
        const USER_TYPE_ID = \Bitrix\Main\UserField\Types\FileType::USER_TYPE_ID;
        function getUserTypeDescription()
        {
        }
        function getDbColumnType($arUserField)
        {
        }
        function prepareSettings($userField)
        {
        }
        function getSettingsHtml($userField, $additionalParameters, $varsFromForm)
        {
        }
        function getEditFormHtml($arUserField, $arHtmlControl)
        {
        }
        function getEditFormHtmlMulty($userField, $additionalParameters)
        {
        }
        function getFilterHtml($userField, $additionalParameters)
        {
        }
        function getAdminListViewHtml($userField, $additionalParameters)
        {
        }
        function getAdminListEditHtml($userField, $additionalParameters)
        {
        }
        function getAdminListEditHtmlMulty($userField, $additionalParameters)
        {
        }
        function checkFields($userField, $value)
        {
        }
        function onBeforeSave($userField, $value)
        {
        }
        function onSearchIndex($userField)
        {
        }
        function __getFileContent($fileId)
        {
        }
        public static function getPublicView($userField, $additionalParameters = [])
        {
        }
        public static function getPublicEdit($userField, $additionalParameters = [])
        {
        }
        public static function getPublicEditMultiple($userField, $additionalParameters = [])
        {
        }
        public static function getPublicText($userField)
        {
        }
    }
    /**
     * Class CUserTypeIBlockSection
     * @deprecated deprecated since main 20.0.800
     */
    class CUserTypeIBlockSection extends \CUserTypeEnum
    {
        function getUserTypeDescription()
        {
        }
        function prepareSettings($userField)
        {
        }
        function getSettingsHtml($userField, $additionalParameters, $varsFromForm)
        {
        }
        function checkFields($userField, $value)
        {
        }
        function getList($userField)
        {
        }
        protected static function getEnumList(&$userField, $additionalParameters = array())
        {
        }
        function onSearchIndex($userField)
        {
        }
        public static function isIblockIncluded() : bool
        {
        }
    }
    class CIBlockSectionEnum extends \CDBResult
    {
        function getTreeList($iblockId, $activeFilter = 'N')
        {
        }
        function getNext($textHtmlAuto = \true, $useTilda = \true)
        {
        }
    }
    class CCheckList
    {
        function __construct($ID = \false)
        {
        }
        function GetSections()
        {
        }
        //getting sections statistic
        function GetSectionStat($ID = \false)
        {
        }
        function GetPoints($arSectionCode = \false)
        {
        }
        function GetStructure()
        {
        }
        function PointUpdate($arTestID, $arPointFields = array())
        {
        }
        function GetDescription($ID)
        {
        }
        function Save()
        {
        }
        function GetCurrentState()
        {
        }
        function AutoCheck($arTestID, $arParams = array())
        {
        }
        function AddReport($arReportFields = array(), $errorCheck = \false)
        {
        }
        function GetReportInfo()
        {
        }
    }
    class CCheckListResult
    {
        public static function Save($arFields = array())
        {
        }
        public static function GetList($arOrder = array(), $arFilter = array())
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
    }
    class CAutoCheck
    {
        public static function CheckCustomComponents($arParams)
        {
        }
        public static function CheckBackup()
        {
        }
        public static function CheckTemplates()
        {
        }
        public static function CheckKernel($arParams)
        {
        }
        public static function CheckSecurity($arParams)
        {
        }
        public static function CheckErrorReport()
        {
        }
        public static function IsCacheOn()
        {
        }
        public static function CheckDBPassword()
        {
        }
        public static function CheckPerfomance($arParams)
        {
        }
        public static function CheckQueryString($arParams = array())
        {
        }
        public static function KeyCheck()
        {
        }
        public static function CheckVMBitrix()
        {
        }
        public static function CheckSiteCheckerStatus()
        {
        }
        public static function CheckSecurityScannerStatus()
        {
        }
    }
    class CCheckListTools
    {
        public static function __scandir($pwd, &$arFiles, $arExept = \false)
        {
        }
        public static function AdminPolicyLevel()
        {
        }
    }
    class CCrypt
    {
        var $blockCipherMode = \CRYPT_MODE_CBC;
        var $key = "";
        var $iv = "";
        /** @var CCryptblowfish|CCryptrc4 */
        var $cipher = \null;
        var $errorMessage = "";
        public function __construct($blockCipherMode = \CRYPT_MODE_CBC, $cipher = "blowfish", $key = "", $iv = "")
        {
        }
        function CreateIV()
        {
        }
        function Encrypt($text)
        {
        }
        function Decrypt($cipher)
        {
        }
        function __EncryptECB($text)
        {
        }
        function __DecryptECB($cipher)
        {
        }
        function __EncryptCBC($text)
        {
        }
        function __DecryptCBC($cipher)
        {
        }
    }
    /************************************************************************************/
    /************   Steganography   *****************************************************/
    /************************************************************************************/
    class CSteganos
    {
        var $errorMessage = "";
        var $data = "";
        var $containerFile = "";
        var $containerData = "";
        var $resultFile = "";
        var $containerType = "";
        var $level;
        var $dataSize;
        var $offset;
        public function __construct()
        {
        }
        function HideData($containerFile, $data, $resultFile, $level = 2)
        {
        }
        function ShowData($containerFile)
        {
        }
        function __CompressData()
        {
        }
        function __UnCompressData()
        {
        }
        function __CheckContainer()
        {
        }
        function __OpenContainer()
        {
        }
        function __SaveResult()
        {
        }
        function __HideData()
        {
        }
        function __ConvertToBitString($bite)
        {
        }
        function __ShowData()
        {
        }
        function __GetHiddenInfo()
        {
        }
        function __ConvertBitStringToBinary($bitStr)
        {
        }
    }
    /************************************************************************************/
    /************   Blowfish   **********************************************************/
    /************************************************************************************/
    /*
    Blowfish is a variable-length key, 64-bit block cipher. The algorithm consists of two parts:
    a key-expansion part and a data-encryption part. Key expansion converts a key of at most 
    448 bits into several subkey arrays totaling 4168 bytes.
    
    Data encryption occurs via a 16-round Feistel network. Each round consists of a key-dependent
    permutation, and a key- and data-dependent substitution. All operations are XORs and 
    additions on 32-bit words. The only additional operations are four indexed array data lookups
    per round.
    */
    class CCryptblowfish
    {
        /*
        Initialize first the P-array and then the four S-boxes, in order, with a fixed string.
        This string consists of the hexadecimal digits of pi (less the initial 3).
        */
        /* The P-array consists of 18 32-bit subkeys */
        var $arrP = array(0x243f6a88, 0x85a308d3, 0x13198a2e, 0x3707344, 0xa4093822, 0x299f31d0, 0x82efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b);
        /* There are four 32-bit S-boxes with 256 entries each */
        var $arrSBox0 = array(0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7, 0x801f2e2, 0x858efc16, 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, 0xd95748f, 0x728eb658, 0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60, 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, 0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce, 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a, 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5, 0xf6d6ff3, 0x83f44239, 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0, 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe, 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d, 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b, 0x75372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, 0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x4c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463, 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3, 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279, 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db, 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, 0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0, 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c, 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1, 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf, 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, 0x250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af, 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa, 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x2e5b9c5, 0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x8ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, 0x53b02d5d, 0xa99f8fa1, 0x8ba4799, 0x6e85076a);
        var $arrSBox1 = array(0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266, 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, 0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x21ecc5e, 0x9686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737, 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, 0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x200b3ff, 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7, 0xa9446146, 0xfd0030e, 0xecc8c73e, 0xa4751e41, 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, 0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf, 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af, 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c, 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd, 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, 0x43556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509, 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a, 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960, 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66, 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x18cff28, 0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84, 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830, 0xeb61bd96, 0x334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14, 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50, 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281, 0xe358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99, 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, 0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128, 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285, 0x95bbf00, 0xad19489d, 0x1462b174, 0x23820e00, 0x58428d2a, 0xc55f5ea, 0x1dadf43e, 0x233f7061, 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc, 0x9e447a2e, 0xc3453484, 0xfdd56705, 0xe1e9ec9, 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340, 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20, 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7);
        var $arrSBox2 = array(0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068, 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x3bd9785, 0x7fac6dd0, 0x31cb8504, 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, 0x28507825, 0x530429f4, 0xa2c86da, 0xe9b66dfb, 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee, 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, 0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b, 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527, 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, 0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33, 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, 0xfdf8e802, 0x4272f70, 0x80bb155c, 0x5282ce3, 0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc, 0x7f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17, 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, 0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b, 0xe12b4c2, 0x2e1329e, 0xaf664fd1, 0xcad18115, 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0xa476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d, 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b, 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c, 0x6a124237, 0xb79251e7, 0x6a1bbe6, 0x4bfb6350, 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9, 0x44421659, 0xa121386, 0xd90cec6e, 0xd5abea2a, 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, 0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc, 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2, 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2, 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633, 0xe85a1f02, 0x9f0be8c, 0x4a99a025, 0x1d6efe10, 0x1ab93d1d, 0xba5a4df, 0xa186f20f, 0x2868f169, 0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52, 0x50115e01, 0xa70683fa, 0xa002b5c4, 0xde6d027, 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0, 0x6058aa, 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc, 0xed545578, 0x8fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c, 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0);
        var $arrSBox3 = array(0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6, 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22, 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59, 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x22b8b51, 0x96d5ac3a, 0x17da67d, 0xd1cf3ed6, 0x7c7d2d28, 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, 0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28, 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4, 0x88f46dba, 0x3a16125, 0x564f0bd, 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a, 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, 0x7533d928, 0xb155fdf5, 0x3563482, 0x8aba3cbb, 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680, 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x9072166, 0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae, 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x115af84, 0xe1b00428, 0x95983a1d, 0x6b89fb4, 0xce6ea048, 0x6f3f3b82, 0x3520ab82, 0x11a1d4b, 0x277227f8, 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd, 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38, 0x339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f, 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, 0xbf97222c, 0x15e6fc2a, 0xf91fc71, 0x9b941525, 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1, 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, 0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e, 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0xfe3f11d, 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f, 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, 0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02, 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6, 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060, 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x2fb8a8c, 0x1c36ae4, 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6);
        var $blockSize = 8;
        public function __construct($key)
        {
        }
        function __F($x)
        {
        }
        function __BlowfishCrypt(&$Xl, &$Xr)
        {
        }
        function __BlowfishDecrypt(&$Xl, &$Xr)
        {
        }
        function __Init($key)
        {
        }
        function __Encrypt($block)
        {
        }
        function __Decrypt($block)
        {
        }
    }
    /************************************************************************************/
    /************   RC4   ***************************************************************/
    /************************************************************************************/
    class CCryptrc4
    {
        var $arKey = array();
        var $arBox = array();
        var $blockSize = 0;
        public function __construct($key)
        {
        }
        function __Init($key)
        {
        }
        function __Process($block)
        {
        }
        function __Encrypt($block)
        {
        }
        function __Decrypt($block)
        {
        }
    }
    class CAllFavorites extends \CDBResult
    {
        public static function err_mess()
        {
        }
        public static function GetIDByUrl($url)
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function CheckFields($arFields)
        {
        }
        public static function IsExistDuplicate($arFields)
        {
        }
        //Addition
        public static function Add($arFields, $checkDuplicate = \false)
        {
        }
        //Update
        public static function Update($ID, $arFields)
        {
        }
        // delete by ID
        public static function Delete($ID)
        {
        }
        //*****************************
        // Events
        //*****************************
        //user deletion event
        public static function OnUserDelete($user_id)
        {
        }
        //interface language delete event
        public static function OnLanguageDelete($language_id)
        {
        }
    }
    class CBXFavAdmMenu
    {
        private $arItems = array();
        public function __construct()
        {
        }
        private function Init()
        {
        }
        public function GetMenuItem($itemsID, $arMenu)
        {
        }
        public function GenerateItems()
        {
        }
        private function CheckSubItemActivity($arMenu)
        {
        }
        private function CheckItemActivity($arMenu)
        {
        }
        private function CheckFilterActivity($currentUrl, $menuUrl, $activeSectUrl)
        {
        }
        public function GenerateMenuHTML($id = 0)
        {
        }
        public static function GetEmptyMenuHTML()
        {
        }
        public static function GetMenuHintHTML($IsMenuEmpty)
        {
        }
    }
    class CBXFavUrls
    {
        const FILTER_ID_VALUE = "adm_filter_applied";
        const PRESET_ID_VALUE = "adm_filter_preset";
        public static function Compare($url1, $url2, $arReqVals = array(), $arSkipVals = array())
        {
        }
        public static function ParseDetail($url)
        {
        }
        public static function GetFilterId($url)
        {
        }
        public static function GetPresetId($url)
        {
        }
    }
    class CUpdateOutput
    {
        public static function ShowBlock($top, $bottom = "", $icon = "")
        {
        }
        public static function ShowScript()
        {
        }
        public static function ShowBlockInfo($top, $bottom, $id)
        {
        }
    }
    class CUpdateClient
    {
        public static function getLicenseTextPath()
        {
        }
        public static function getNewLicenseSignedKey()
        {
        }
        public static function finalizeModuleUpdate($_1153666280)
        {
        }
        public static function finalizeLanguageUpdate($_1557605486)
        {
        }
        private static function __711437264($_2113652295)
        {
        }
        private static function __1629160533($_488434603, $_230706523, $_24537717 = "")
        {
        }
        public static function Lock()
        {
        }
        public static function UnLock()
        {
        }
        public static function Repair($type, $_1258371328, $_1274049880 = \false)
        {
        }
        public static function IsUpdateAvailable(&$_534130794, &$_842374138)
        {
        }
        public static function SubscribeMail($_1526213113, &$_842374138, $_1274049880 = \false, $_1258371328 = "Y")
        {
        }
        public static function ActivateCoupon($_1351838631, &$_842374138, $_1274049880 = \false, $_1258371328 = "Y")
        {
        }
        public static function __ApplyLicenseInfo($_628192028)
        {
        }
        public static function UpdateUpdate(&$_842374138, $_1274049880 = \false, $_1258371328 = "Y")
        {
        }
        public static function GetPHPSources(&$_842374138, $_1274049880, $_1258371328, $_189136080)
        {
        }
        public static function GetSupportFullLoad(&$_842374138, $_1274049880, $_1258371328, $_189136080)
        {
        }
        public static function RegisterVersion(&$_842374138, $_1274049880 = \false, $_1258371328 = "Y")
        {
        }
        public static function ActivateLicenseKey($_253565303, &$_842374138, $_1274049880 = \false, $_1258371328 = "Y")
        {
        }
        public static function GetNextStepLangUpdates(&$_842374138, $_1274049880 = \false, $_1108603446 = array())
        {
        }
        public static function GetNextStepHelpUpdates(&$_842374138, $_1274049880 = \false, $_1089531256 = array())
        {
        }
        public static function getSpd()
        {
        }
        public static function setSpd($_2017570337)
        {
        }
        public static function LoadModulesUpdates(&$errorMessage, &$_391693620, $_1274049880 = \false, $_1258371328 = "Y", $_189136080 = array())
        {
        }
        private static function __1624594217($_647777829, $_1360865120, $_1785141278, $_786548785, $_250825365, &$errorMessage, $_650226130)
        {
        }
        private static function __1800743972($_647777829, $_1360865120, $_1785141278, $_786548785, &$errorMessage)
        {
        }
        public static function LoadLangsUpdates(&$errorMessage, &$_391693620, $_1274049880 = \false, $_1258371328 = "Y", $_1108603446 = array())
        {
        }
        public static function GetNextStepUpdates(&$_842374138, $_1274049880 = \false, $_1258371328 = "Y", $_189136080 = array())
        {
        }
        public static function UnGzipArchive(&$_936879180, &$_842374138, $_343853673 = \true)
        {
        }
        public static function CheckUpdatability($_936879180, &$_842374138)
        {
        }
        public static function GetStepUpdateInfo($_936879180, &$_842374138)
        {
        }
        public static function UpdateStepHelps($_936879180, &$_842374138)
        {
        }
        public static function UpdateStepLangs($_936879180, &$_842374138)
        {
        }
        private static function __1374951754($_1274049880, $_12153412, $_646611906, $_831624657, $_1768540614 = array())
        {
        }
        private static function __1108213390($_1274049880, $_12153412, $_831624657, $_635345550 = "")
        {
        }
        public static function UpdateStepModules($_936879180, &$_842374138, $_1292598585 = \False, $_1752618218 = \false)
        {
        }
        public static function ClearUpdateFolder($_1979771384)
        {
        }
        public static function RunUpdaterScript($_1273493644, &$_842374138, $_371966225, $_162105742)
        {
        }
        public static function CompareVersions($_614529936, $_2020175608)
        {
        }
        private static function __1693693516($_283849152)
        {
        }
        private static function __493082763($_283849152, $_1700100128)
        {
        }
        private static function __655478027($_712048283, $_2031803393, $_716635538 = 0)
        {
        }
        public static function checkValid()
        {
        }
        public static function GetUpdatesList(&$_842374138, $_1274049880 = \false, $_1258371328 = "Y")
        {
        }
        public static function GetHTTPPage($_1489043327, $_1273681860, &$_842374138)
        {
        }
        private static function __460745733(&$_1325936262, $_1967132334)
        {
        }
        private static function __77740411($_2123640939)
        {
        }
        private static function __1084925772(&$_1941644815, &$_1173288154, &$_842374138)
        {
        }
        public static function CollectRequestData(&$_842374138, $_1274049880 = \false, $_1258371328 = "Y", $_189136080 = array(), $_1108603446 = array(), $_1089531256 = array())
        {
        }
        public static function ModulesArray2Query($_1528950008, $_1731684165 = "bitm_")
        {
        }
        public static function IsGzipInstalled()
        {
        }
        public static function GetCurrentModules(&$_842374138, $_2048115310 = \false)
        {
        }
        public static function __GetFooPath()
        {
        }
        public static function GetCurrentNumberOfUsers()
        {
        }
        public static function GetCurrentLanguages(&$_842374138, $_2048115310 = \false)
        {
        }
        public static function __GetFooPath1()
        {
        }
        public static function GetCurrentHelps(&$_842374138, $_2048115310 = \false)
        {
        }
        public static function AddMessage2Log($_1836911116, $_901017520 = "")
        {
        }
        public static function CheckDirPath($_1273493644, $_879100511 = \true)
        {
        }
        public static function CopyDirFiles($_1846253324, $_198931898, &$_842374138, $_859966066 = \True, $_1350848815 = array())
        {
        }
        public static function DeleteDirFilesEx($_1273493644)
        {
        }
        public static function bxstrrpos($_712048283, $_2031803393)
        {
        }
        public static function GetModuleInfo($_1273493644)
        {
        }
        public static function GetLicenseKey()
        {
        }
        public static function getmicrotime()
        {
        }
        private static function __1685555182($_1004301935, $_585177718, $_26535986)
        {
        }
        private static function __257324326($_386495813 = \null, $_2049290289 = \null)
        {
        }
    }
    class CUpdateControllerSupport
    {
        public static function CheckUpdates()
        {
        }
        public static function UpdateModules()
        {
        }
        public static function UpdateLangs()
        {
        }
        public static function __UpdateKernel($_1025099092)
        {
        }
        public static function UpdateUpdate()
        {
        }
        public static function Finish()
        {
        }
        public static function Update($_1006497293 = "")
        {
        }
        public static function CollectVersionsFile()
        {
        }
    }
    class CBitrixComponentTemplate
    {
        public $__name = "";
        public $__page = "";
        public $__engineID = "";
        public $__file = "";
        public $__fileAlt = "";
        public $__folder = "";
        public $__siteTemplate = "";
        public $__templateInTheme = \false;
        public $__hasCSS = \null;
        public $__hasJS = \null;
        /** @var CBitrixComponent */
        public $__component = \null;
        public $__component_epilog = \false;
        public $__bInited = \false;
        private $__view = array();
        /** @var \Bitrix\Main\Composite\BufferArea[] */
        private $frames = array();
        private $frameMode = \null;
        private $languageId = \false;
        private $externalCss = array();
        private $externalJs = array();
        /**
         * Constructor.
         */
        public function __construct()
        {
        }
        /**
         * Returns name of the template.
         *
         * Requires Init call before usage.
         *
         * @return null|string
         *
         * @see CBitrixComponentTemplate::Init
         */
        public function GetName()
        {
        }
        /**
         * Returns template page.
         *
         * Requires Init call before usage.
         *
         * @return null|string
         *
         * @see CBitrixComponentTemplate::Init
         */
        public function GetPageName()
        {
        }
        /**
         * Returns path to the template file within DOCUMENT_ROOT.
         *
         * Requires Init call before usage.
         *
         * @return null|string
         *
         * @see CBitrixComponentTemplate::Init
         */
        public function GetFile()
        {
        }
        /**
         * Returns path to the template folder within DOCUMENT_ROOT.
         *
         * Requires Init call before usage.
         *
         * @return null|string
         *
         * @see CBitrixComponentTemplate::Init
         */
        public function GetFolder()
        {
        }
        /**
         * Returns site template name.
         *
         * Requires Init call before usage.
         *
         * @return null|string
         *
         * @see CBitrixComponentTemplate::Init
         */
        public function GetSiteTemplate()
        {
        }
        /**
         * Returns true if template belongs to another template of an complex component.
         *
         * Requires Init call before usage.
         *
         * @return null|boolean
         *
         * @see CBitrixComponentTemplate::Init
         */
        public function IsInTheme()
        {
        }
        /**
         * Sets template language identifier.
         *
         * @param string $languageId
         *
         * @return void
         */
        public function setLanguageId($languageId)
        {
        }
        /**
         * Returns template language.
         *
         * @return string
         *
         * @see CBitrixcomponentTemplate::setLanguageId
         */
        public function getLanguageId()
        {
        }
        /**
         * Returns data to be stored in the component cache.
         *
         * Requires Init call before usage.
         *
         * @return null|array
         *
         * @see CBitrixComponentTemplate::Init
         * @see CBitrixComponentTemplate::ApplyCachedData
         */
        public function GetCachedData()
        {
        }
        /**
         * Performs actions on cached hit.
         *
         * @param array $arData
         *
         * @return void
         * @see CBitrixComponentTemplate::GetCachedData
         */
        public function ApplyCachedData($arData)
        {
        }
        /**
         * Called automatically on first usage of related functions.
         *
         * @param array $arTemplateEngines Array of engines to add.
         *
         * @return void
         */
        public function InitTemplateEngines($arTemplateEngines = array())
        {
        }
        /**
         * Have to be called before any template usage.
         * Returns true on success.
         *
         * @param CBitrixComponent $component Parent component.
         * @param boolean|string $siteTemplate Site template name.
         * @param string $customTemplatePath Additional path to look for template in.
         *
         * @return boolean
         */
        public function Init(&$component, $siteTemplate = \false, $customTemplatePath = "")
        {
        }
        /**
         * Checks the template name for correctness.
         * Letters, digits, minus, underscore and dots are allowed.
         *
         * @param string $name Name of the template.
         *
         * @return boolean
         */
        public static function CheckName($name)
        {
        }
        /**
         * Search file by its path and name without extention.
         *
         * @param string $path Directory.
         * @param string $fileName File name (without extention).
         *
         * @return false|string
         */
        public function __SearchTemplateFile($path, $fileName)
        {
        }
        /**
         * Checking existence of the template
         * @return bool
         */
        public function hasTemplate() : bool
        {
        }
        /**
         * Checking existence of the template page
         * @param string $templatePage
         * @return bool
         */
        public function hasTemplatePage(string $templatePage) : bool
        {
        }
        /**
         * @return array
         */
        public function generatePossibleTemplatePath() : array
        {
        }
        //AddEventHandler("main", "OnUserTypeBuildList", array("CUserTypeWebdavElement", "GetUserTypeDescription"));
        /**
         * Search template by its name in various locations.
         * <ol>
         * <li>/local/templates/&lt;site template&gt;/components/&lt;parent template&gt;/&lt;component path&gt;/
         * <li>/local/templates/.default/components/&lt;parent template&gt;/&lt;component path&gt;/
         * <li>/local/components/&lt;parent template&gt;/&lt;component path&gt;/
         * <li>/local/templates/&lt;site template&gt;/components/&lt;component path&gt;/
         * <li>/local/templates/.default/components/&lt;component path&gt;/
         * <li>/local/components/&lt;component path&gt;/
         * <li>/&lt;BX_PERSONAL_ROOT&gt;/templates/&lt;site template&gt;/components/&lt;parent template&gt;/&lt;component path&gt;/
         * <li>/&lt;BX_PERSONAL_ROOT&gt;/templates/.default/components/&lt;parent template&gt;/&lt;component path&gt;/
         * <li>/bitrix/components/&lt;parent template&gt;/&lt;component path&gt;/
         * <li>/&lt;BX_PERSONAL_ROOT&gt;/templates/&lt;site template&gt;/components/&lt;component path&gt;/
         * <li>/&lt;BX_PERSONAL_ROOT&gt;/templates/.default/components/&lt;component path&gt;/
         * <li>/bitrix/components/&lt;component path&gt;/
         * </ol>
         *
         * @param string $customTemplatePath
         *
         * @return false|string
         */
        public function __SearchTemplate($customTemplatePath = "")
        {
        }
        /**
         * Executes template.php via include function.
         *
         * Requires Init call before usage.
         *
         * @param array &$arResult Result of the component calculations.
         * @param array &$arParams Parameters of the component call.
         * @param string $parentTemplateFolder Parent template.
         *
         * @return false|void
         * @throws \Bitrix\Main\NotSupportedException
         * @see CBitrixComponentTemplate::Init
         */
        public function __IncludePHPTemplate(&$arResult, &$arParams, $parentTemplateFolder = "")
        {
        }
        /**
         * Executes template using appropriate template engine.
         *
         * Requires Init call before usage.
         * @param array &$arResult
         *
         * @return false|void
         * @see CBitrixComponentTemplate::Init
         */
        public function IncludeTemplate(&$arResult)
        {
        }
        /**
         * Includes template language file.
         *
         * @param string $relativePath
         * @param false|string $lang
         * @param boolean $return
         *
         * @return array
         */
        public function IncludeLangFile($relativePath = "", $lang = \false, $return = \false)
        {
        }
        /**
         * @param array &$arResult
         * @param array &$arParams
         *
         * @return void
         * @internal
         */
        public function __IncludeMutatorFile(&$arResult, &$arParams)
        {
        }
        /**
         * @return void
         * @internal
         */
        public function __IncludeCSSFile()
        {
        }
        /**
         * @return void
         * @internal
         */
        public function __IncludeJSFile()
        {
        }
        /**
         * @param string $templateName File name.
         *
         * @return string
         * @internal
         */
        public function __GetTemplateExtension($templateName)
        {
        }
        /**
         * @return void
         * @internal
         */
        function __GetTemplateEngine()
        {
        }
        /**
         * Begins special output which will be showed by $APPLICATION->ShowViewContent.
         *
         * @param string $target Code name of the area.
         * @param integer $pos Sort index.
         *
         * @return void
         * @see CMain::ShowViewContent
         * @see CBitrixcomponentTemplate::EndViewTarget
         */
        public function SetViewTarget($target, $pos = 500)
        {
        }
        /**
         * Ends special output which will be showed by $APPLICATION->ShowViewContent.
         *
         * @return void
         * @see CMain::ShowViewContent
         * @see CBitrixcomponentTemplate::SetViewTarget
         */
        public function EndViewTarget()
        {
        }
        /**
         * Shows menu with edit action in edit mode.
         * <code>
         * $this->AddEditAction(
         * 	'USER'.$arUser['ID'],
         * 	$arUser['EDIT_LINK'],
         * 	GetMessage('INTR_ISP_EDIT_USER'),
         * 	array(
         * 		'WINDOW' => array("width"=>780, "height"=>500), // popup params
         * 		'ICON' => 'bx-context-toolbar-edit-icon' // icon css
         * 		'SRC' => '/bitrix/images/myicon.gif' // icon image
         * 	)
         * );
         * </code>
         *
         * @param string $entryId Entry identifier. prefix like 'USER' needed only in case when template has two or more lists of different editable entities.
         * @param string $editLink Edit form link, Should be set in a component. Will be opened in js popup.
         * @param false|string $editTitle Button caption.
         * @param array $arParams Additional parameters.
         *
         * @return void
         * @see CBitrixcomponentTemplate::GetEditAreaId
         */
        public function AddEditAction($entryId, $editLink, $editTitle = \false, $arParams = array())
        {
        }
        /**
         * Shows menu with delete action in edit mode.
         * <ul>
         * $arParams['CONFIRM'] = false - disable confirm;
         * $arParams['CONFIRM'] = 'Text' - confirm with custom text;
         * no $arParams['CONFIRM'] at all - confirm with default text
         * </ul>
         *
         * @param string $entryId Entry identifier. prefix like 'USER' needed only in case when template has two or more lists of different editable entities.
         * @param string $deleteLink Delete action link, Should be set in a component.
         * @param false|string $deleteTitle Button caption.
         * @param array $arParams Additional parameters.
         *
         * @return void
         * @see CBitrixcomponentTemplate::GetEditAreaId
         */
        public function AddDeleteAction($entryId, $deleteLink, $deleteTitle = \false, $arParams = array())
        {
        }
        /**
         * Returns identifier to mark an html element as a container for highlight.
         *
         * <code>
         * &lt;tr id="&lt;?=$this-&gt;GetEditAreaId('USER'.$arUser['ID']);?&gt;"&gt;
         * </code>
         *
         * @param $entryId
         *
         * @return string
         * @see CBitrixcomponentTemplate::AddEditAction
         */
        public function GetEditAreaId($entryId)
        {
        }
        /**
         * Function returns next pseudo random value.
         *
         * @param int $length
         *
         * @return string
         * @see \Bitrix\Main\Type\RandomSequence::randString
         */
        public function randString($length = 6)
        {
        }
        /**
         * Marks a template as capable of composite mode.
         *
         * @param bool $mode
         *
         * @return void
         */
        public function setFrameMode($mode)
        {
        }
        /**
         * Returns frame mode
         * @return bool
         */
        public function getFrameMode()
        {
        }
        public function getRealFrameMode()
        {
        }
        /**
         * Returns new frame helper object to work with composite frame.
         *
         * <code>
         * $frame = $this->createFrame()->begin("");
         * echo "10@".(time()+15);
         * $frame->end();
         * </code>
         *
         * @param string $id
         * @param bool $autoContainer
         *
         * @return Bitrix\Main\Composite\BufferArea
         * @see Bitrix\Main\Composite\BufferArea
         */
        public function createFrame($id = \null, $autoContainer = \true)
        {
        }
        /**
         * Shows css file in the head of html.
         * Supports caching.
         *
         * @param string $cssPath Path to css file.
         *
         * @return void
         * @see CMain::SetAdditionalCSS
         */
        public function addExternalCss($cssPath)
        {
        }
        /**
         * Shows js file in the head of html.
         * Supports caching.
         *
         * @param string $jsPath Path to js file.
         *
         * @return void
         * @see CMain::AddHeadScript
         */
        public function addExternalJs($jsPath)
        {
        }
        /**
         * A bit more civilised method of getting the parent component.
         * @return CBitrixComponent
         */
        public function getComponent()
        {
        }
    }
    class CTempFile
    {
        private static $is_exit_function_registered = \false;
        private static $arFiles = array();
        public static function GetAbsoluteRoot()
        {
        }
        public static function GetFileName($file_name = '')
        {
        }
        public static function GetDirectoryName($hours_to_keep_files = 0, $subdir = "")
        {
        }
        //PHP shutdown cleanup
        public static function Cleanup()
        {
        }
        private static function _process_directory($dir_name, $day_files_dir)
        {
        }
        private static function _absolute_path_recursive_delete($path)
        {
        }
    }
    /**
     * Class CUserTypeDouble
     * @deprecated deprecated since main 20.0.700
     */
    class CUserTypeDouble extends \Bitrix\Main\UserField\TypeBase
    {
        const USER_TYPE_ID = \Bitrix\Main\UserField\Types\DoubleType::USER_TYPE_ID;
        function getUserTypeDescription()
        {
        }
        function getSettingsHtml($userField, $additionalSettings, $varsFromForm)
        {
        }
        function getEditFormHtml($userField, $additionalSettings)
        {
        }
        function getFilterHtml($userField, $additionalSettings)
        {
        }
        function getAdminListViewHtml($userField, $additionalSettings)
        {
        }
        function getAdminListEditHtml($userField, $additionalSettings)
        {
        }
        public static function getPublicView($userField, $arAdditionalParameters = array())
        {
        }
        public function getPublicEdit($userField, $arAdditionalParameters = array())
        {
        }
        function getDbColumnType($userField)
        {
        }
        function getFilterData($userField, $additionalSettings)
        {
        }
        function prepareSettings($userField)
        {
        }
        function checkFields($userField, $value)
        {
        }
        function onBeforeSave($userField, $value)
        {
        }
        function onSearchIndex($userField)
        {
        }
    }
    class CBXPunycode
    {
        const PREFIX = 'xn--';
        private static $prefixUcs4 = \null;
        private static $hyphenUcs4 = \null;
        private static $utfMode = \null;
        private static $punycodePrefix = \null;
        private static $punycodePrefixUcs4 = \null;
        private static $punycodePrefixLength = \null;
        private $encoding = \null;
        private $arErrors = array();
        /** @var CBXPunycode */
        private static $instance;
        /**
         * Singleton method to return object instance.
         *
         * @static
         * @return CBXPunycode
         */
        public static function GetConverter()
        {
        }
        /**
         * Encode the given string
         *
         * @static
         * @param   string  $domainName String to be encoded
         * @param   array   $arErrors   Array of encoding errors (if any)
         * @return  string              Encoded form of the given string
         */
        public static function ToASCII($domainName, &$arErrors)
        {
        }
        /**
         * Decode the given string
         *
         * @static
         * @param   string  $domainName String to be decoded
         * @param   array   $arErrors   Array of decoding errors (if any)
         * @return  string              Decoded form of the given string
         */
        public static function ToUnicode($domainName, &$arErrors)
        {
        }
        /**
         * Check if the given string contains encoded parts
         *
         * @static
         * @param   string  $domainName String to be checked
         * @return  bool                True - if the given string contains encoded parts, false - otherwise
         */
        public static function CheckASCII($domainName)
        {
        }
        public function __construct($encoding = \null)
        {
        }
        /**
         * Check if the string contains encoded parts
         *
         * @param   string  $domainName Validated string
         * @return  bool
         */
        public function IsEncoded($domainName)
        {
        }
        /**
         * Decode the given string
         *
         * @param   string  $domainName String to be decoded
         * @return  string              Decoded form the the given string
         */
        public function Decode($domainName)
        {
        }
        /**
         * Encode the given string
         *
         * @param   string  $domainName String to be encoded
         * @return  string              Encoded form of the given string
         */
        public function Encode($domainName)
        {
        }
        private function DoDecodeUcs4($input)
        {
        }
        private function DoEncodeUcs4($input)
        {
        }
        private function Adapt($delta, $numPoints, $isFirst)
        {
        }
        private function NamePrepUcs4($input)
        {
        }
        private function Combine($input)
        {
        }
        private function DecomposeKorean($char)
        {
        }
        private function ComposeKorean($input)
        {
        }
        private function Utf8ToUcs4($input)
        {
        }
        private function Ucs4ToUtf8($input)
        {
        }
        private static function ByteLength($string)
        {
        }
        private function ExplodeDomainName($domainNameUcs4)
        {
        }
        private function ImplodeDomainName($arDomainNameUcs4)
        {
        }
        private function ClearErrors()
        {
        }
        private function AddError($error, $errorCode = \null)
        {
        }
        public function GetErrors()
        {
        }
        private static $rfc3454Table = array('Skip' => array(0xad, 0x34f, 0x1806, 0x180b, 0x180c, 0x180d, 0x200b, 0x200c, 0x200d, 0x2060, 0xfe00, 0xfe01, 0xfe02, 0xfe03, 0xfe04, 0xfe05, 0xfe06, 0xfe07, 0xfe08, 0xfe09, 0xfe0a, 0xfe0b, 0xfe0c, 0xfe0d, 0xfe0e, 0xfe0f, 0xfeff), 'RejectGeneral' => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 47, 59, 60, 61, 62, 63, 64, 91, 92, 93, 94, 95, 96, 123, 124, 125, 126, 127, 0x3002), 'Reject' => array(0xa0, 0x340, 0x341, 0x6dd, 0x70f, 0x1680, 0x180e, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200a, 0x200b, 0x200c, 0x200d, 0x200e, 0x200f, 0x2028, 0x2029, 0x202a, 0x202b, 0x202c, 0x202d, 0x202e, 0x202f, 0x205f, 0x206a, 0x206b, 0x206c, 0x206d, 0x206e, 0x206f, 0x3000, 0xfeff, 0xfff9, 0xfffa, 0xfffb, 0xfffc, 0xfffd, 0xfffe, 0xffff, 0x1fffe, 0x1ffff, 0x2fffe, 0x2ffff, 0x3fffe, 0x3ffff, 0x4fffe, 0x4ffff, 0x5fffe, 0x5ffff, 0x6fffe, 0x6ffff, 0x7fffe, 0x7ffff, 0x8fffe, 0x8ffff, 0x9fffe, 0x9ffff, 0xafffe, 0xaffff, 0xbfffe, 0xbffff, 0xcfffe, 0xcffff, 0xdfffe, 0xdffff, 0xe0001, 0xefffe, 0xeffff, 0xffffe, 0xfffff, 0x10fffe, 0x10ffff), 'RejectRanges' => array(array(0x80, 0x9f), array(0x2060, 0x206f), array(0x1d173, 0x1d17a), array(0xe000, 0xf8ff), array(0xf0000, 0xffffd), array(0x100000, 0x10fffd), array(0xfdd0, 0xfdef), array(0xd800, 0xdfff), array(0x2ff0, 0x2ffb), array(0xe0020, 0xe007f)), 'ReplaceMap' => array(0x41 => array(0x61), 0x42 => array(0x62), 0x43 => array(0x63), 0x44 => array(0x64), 0x45 => array(0x65), 0x46 => array(0x66), 0x47 => array(0x67), 0x48 => array(0x68), 0x49 => array(0x69), 0x4a => array(0x6a), 0x4b => array(0x6b), 0x4c => array(0x6c), 0x4d => array(0x6d), 0x4e => array(0x6e), 0x4f => array(0x6f), 0x50 => array(0x70), 0x51 => array(0x71), 0x52 => array(0x72), 0x53 => array(0x73), 0x54 => array(0x74), 0x55 => array(0x75), 0x56 => array(0x76), 0x57 => array(0x77), 0x58 => array(0x78), 0x59 => array(0x79), 0x5a => array(0x7a), 0xb5 => array(0x3bc), 0xc0 => array(0xe0), 0xc1 => array(0xe1), 0xc2 => array(0xe2), 0xc3 => array(0xe3), 0xc4 => array(0xe4), 0xc5 => array(0xe5), 0xc6 => array(0xe6), 0xc7 => array(0xe7), 0xc8 => array(0xe8), 0xc9 => array(0xe9), 0xca => array(0xea), 0xcb => array(0xeb), 0xcc => array(0xec), 0xcd => array(0xed), 0xce => array(0xee), 0xcf => array(0xef), 0xd0 => array(0xf0), 0xd1 => array(0xf1), 0xd2 => array(0xf2), 0xd3 => array(0xf3), 0xd4 => array(0xf4), 0xd5 => array(0xf5), 0xd6 => array(0xf6), 0xd8 => array(0xf8), 0xd9 => array(0xf9), 0xda => array(0xfa), 0xdb => array(0xfb), 0xdc => array(0xfc), 0xdd => array(0xfd), 0xde => array(0xfe), 0xdf => array(0x73, 0x73), 0x100 => array(0x101), 0x102 => array(0x103), 0x104 => array(0x105), 0x106 => array(0x107), 0x108 => array(0x109), 0x10a => array(0x10b), 0x10c => array(0x10d), 0x10e => array(0x10f), 0x110 => array(0x111), 0x112 => array(0x113), 0x114 => array(0x115), 0x116 => array(0x117), 0x118 => array(0x119), 0x11a => array(0x11b), 0x11c => array(0x11d), 0x11e => array(0x11f), 0x120 => array(0x121), 0x122 => array(0x123), 0x124 => array(0x125), 0x126 => array(0x127), 0x128 => array(0x129), 0x12a => array(0x12b), 0x12c => array(0x12d), 0x12e => array(0x12f), 0x130 => array(0x69, 0x307), 0x132 => array(0x133), 0x134 => array(0x135), 0x136 => array(0x137), 0x139 => array(0x13a), 0x13b => array(0x13c), 0x13d => array(0x13e), 0x13f => array(0x140), 0x141 => array(0x142), 0x143 => array(0x144), 0x145 => array(0x146), 0x147 => array(0x148), 0x149 => array(0x2bc, 0x6e), 0x14a => array(0x14b), 0x14c => array(0x14d), 0x14e => array(0x14f), 0x150 => array(0x151), 0x152 => array(0x153), 0x154 => array(0x155), 0x156 => array(0x157), 0x158 => array(0x159), 0x15a => array(0x15b), 0x15c => array(0x15d), 0x15e => array(0x15f), 0x160 => array(0x161), 0x162 => array(0x163), 0x164 => array(0x165), 0x166 => array(0x167), 0x168 => array(0x169), 0x16a => array(0x16b), 0x16c => array(0x16d), 0x16e => array(0x16f), 0x170 => array(0x171), 0x172 => array(0x173), 0x174 => array(0x175), 0x176 => array(0x177), 0x178 => array(0xff), 0x179 => array(0x17a), 0x17b => array(0x17c), 0x17d => array(0x17e), 0x17f => array(0x73), 0x181 => array(0x253), 0x182 => array(0x183), 0x184 => array(0x185), 0x186 => array(0x254), 0x187 => array(0x188), 0x189 => array(0x256), 0x18a => array(0x257), 0x18b => array(0x18c), 0x18e => array(0x1dd), 0x18f => array(0x259), 0x190 => array(0x25b), 0x191 => array(0x192), 0x193 => array(0x260), 0x194 => array(0x263), 0x196 => array(0x269), 0x197 => array(0x268), 0x198 => array(0x199), 0x19c => array(0x26f), 0x19d => array(0x272), 0x19f => array(0x275), 0x1a0 => array(0x1a1), 0x1a2 => array(0x1a3), 0x1a4 => array(0x1a5), 0x1a6 => array(0x280), 0x1a7 => array(0x1a8), 0x1a9 => array(0x283), 0x1ac => array(0x1ad), 0x1ae => array(0x288), 0x1af => array(0x1b0), 0x1b1 => array(0x28a), 0x1b2 => array(0x28b), 0x1b3 => array(0x1b4), 0x1b5 => array(0x1b6), 0x1b7 => array(0x292), 0x1b8 => array(0x1b9), 0x1bc => array(0x1bd), 0x1c4 => array(0x1c6), 0x1c5 => array(0x1c6), 0x1c7 => array(0x1c9), 0x1c8 => array(0x1c9), 0x1ca => array(0x1cc), 0x1cb => array(0x1cc), 0x1cd => array(0x1ce), 0x1cf => array(0x1d0), 0x1d1 => array(0x1d2), 0x1d3 => array(0x1d4), 0x1d5 => array(0x1d6), 0x1d7 => array(0x1d8), 0x1d9 => array(0x1da), 0x1db => array(0x1dc), 0x1de => array(0x1df), 0x1e0 => array(0x1e1), 0x1e2 => array(0x1e3), 0x1e4 => array(0x1e5), 0x1e6 => array(0x1e7), 0x1e8 => array(0x1e9), 0x1ea => array(0x1eb), 0x1ec => array(0x1ed), 0x1ee => array(0x1ef), 0x1f0 => array(0x6a, 0x30c), 0x1f1 => array(0x1f3), 0x1f2 => array(0x1f3), 0x1f4 => array(0x1f5), 0x1f6 => array(0x195), 0x1f7 => array(0x1bf), 0x1f8 => array(0x1f9), 0x1fa => array(0x1fb), 0x1fc => array(0x1fd), 0x1fe => array(0x1ff), 0x200 => array(0x201), 0x202 => array(0x203), 0x204 => array(0x205), 0x206 => array(0x207), 0x208 => array(0x209), 0x20a => array(0x20b), 0x20c => array(0x20d), 0x20e => array(0x20f), 0x210 => array(0x211), 0x212 => array(0x213), 0x214 => array(0x215), 0x216 => array(0x217), 0x218 => array(0x219), 0x21a => array(0x21b), 0x21c => array(0x21d), 0x21e => array(0x21f), 0x220 => array(0x19e), 0x222 => array(0x223), 0x224 => array(0x225), 0x226 => array(0x227), 0x228 => array(0x229), 0x22a => array(0x22b), 0x22c => array(0x22d), 0x22e => array(0x22f), 0x230 => array(0x231), 0x232 => array(0x233), 0x345 => array(0x3b9), 0x37a => array(0x20, 0x3b9), 0x386 => array(0x3ac), 0x388 => array(0x3ad), 0x389 => array(0x3ae), 0x38a => array(0x3af), 0x38c => array(0x3cc), 0x38e => array(0x3cd), 0x38f => array(0x3ce), 0x390 => array(0x3b9, 0x308, 0x301), 0x391 => array(0x3b1), 0x392 => array(0x3b2), 0x393 => array(0x3b3), 0x394 => array(0x3b4), 0x395 => array(0x3b5), 0x396 => array(0x3b6), 0x397 => array(0x3b7), 0x398 => array(0x3b8), 0x399 => array(0x3b9), 0x39a => array(0x3ba), 0x39b => array(0x3bb), 0x39c => array(0x3bc), 0x39d => array(0x3bd), 0x39e => array(0x3be), 0x39f => array(0x3bf), 0x3a0 => array(0x3c0), 0x3a1 => array(0x3c1), 0x3a3 => array(0x3c3), 0x3a4 => array(0x3c4), 0x3a5 => array(0x3c5), 0x3a6 => array(0x3c6), 0x3a7 => array(0x3c7), 0x3a8 => array(0x3c8), 0x3a9 => array(0x3c9), 0x3aa => array(0x3ca), 0x3ab => array(0x3cb), 0x3b0 => array(0x3c5, 0x308, 0x301), 0x3c2 => array(0x3c3), 0x3d0 => array(0x3b2), 0x3d1 => array(0x3b8), 0x3d2 => array(0x3c5), 0x3d3 => array(0x3cd), 0x3d4 => array(0x3cb), 0x3d5 => array(0x3c6), 0x3d6 => array(0x3c0), 0x3d8 => array(0x3d9), 0x3da => array(0x3db), 0x3dc => array(0x3dd), 0x3de => array(0x3df), 0x3e0 => array(0x3e1), 0x3e2 => array(0x3e3), 0x3e4 => array(0x3e5), 0x3e6 => array(0x3e7), 0x3e8 => array(0x3e9), 0x3ea => array(0x3eb), 0x3ec => array(0x3ed), 0x3ee => array(0x3ef), 0x3f0 => array(0x3ba), 0x3f1 => array(0x3c1), 0x3f2 => array(0x3c3), 0x3f4 => array(0x3b8), 0x3f5 => array(0x3b5), 0x400 => array(0x450), 0x401 => array(0x451), 0x402 => array(0x452), 0x403 => array(0x453), 0x404 => array(0x454), 0x405 => array(0x455), 0x406 => array(0x456), 0x407 => array(0x457), 0x408 => array(0x458), 0x409 => array(0x459), 0x40a => array(0x45a), 0x40b => array(0x45b), 0x40c => array(0x45c), 0x40d => array(0x45d), 0x40e => array(0x45e), 0x40f => array(0x45f), 0x410 => array(0x430), 0x411 => array(0x431), 0x412 => array(0x432), 0x413 => array(0x433), 0x414 => array(0x434), 0x415 => array(0x435), 0x416 => array(0x436), 0x417 => array(0x437), 0x418 => array(0x438), 0x419 => array(0x439), 0x41a => array(0x43a), 0x41b => array(0x43b), 0x41c => array(0x43c), 0x41d => array(0x43d), 0x41e => array(0x43e), 0x41f => array(0x43f), 0x420 => array(0x440), 0x421 => array(0x441), 0x422 => array(0x442), 0x423 => array(0x443), 0x424 => array(0x444), 0x425 => array(0x445), 0x426 => array(0x446), 0x427 => array(0x447), 0x428 => array(0x448), 0x429 => array(0x449), 0x42a => array(0x44a), 0x42b => array(0x44b), 0x42c => array(0x44c), 0x42d => array(0x44d), 0x42e => array(0x44e), 0x42f => array(0x44f), 0x460 => array(0x461), 0x462 => array(0x463), 0x464 => array(0x465), 0x466 => array(0x467), 0x468 => array(0x469), 0x46a => array(0x46b), 0x46c => array(0x46d), 0x46e => array(0x46f), 0x470 => array(0x471), 0x472 => array(0x473), 0x474 => array(0x475), 0x476 => array(0x477), 0x478 => array(0x479), 0x47a => array(0x47b), 0x47c => array(0x47d), 0x47e => array(0x47f), 0x480 => array(0x481), 0x48a => array(0x48b), 0x48c => array(0x48d), 0x48e => array(0x48f), 0x490 => array(0x491), 0x492 => array(0x493), 0x494 => array(0x495), 0x496 => array(0x497), 0x498 => array(0x499), 0x49a => array(0x49b), 0x49c => array(0x49d), 0x49e => array(0x49f), 0x4a0 => array(0x4a1), 0x4a2 => array(0x4a3), 0x4a4 => array(0x4a5), 0x4a6 => array(0x4a7), 0x4a8 => array(0x4a9), 0x4aa => array(0x4ab), 0x4ac => array(0x4ad), 0x4ae => array(0x4af), 0x4b0 => array(0x4b1), 0x4b2 => array(0x4b3), 0x4b4 => array(0x4b5), 0x4b6 => array(0x4b7), 0x4b8 => array(0x4b9), 0x4ba => array(0x4bb), 0x4bc => array(0x4bd), 0x4be => array(0x4bf), 0x4c1 => array(0x4c2), 0x4c3 => array(0x4c4), 0x4c5 => array(0x4c6), 0x4c7 => array(0x4c8), 0x4c9 => array(0x4ca), 0x4cb => array(0x4cc), 0x4cd => array(0x4ce), 0x4d0 => array(0x4d1), 0x4d2 => array(0x4d3), 0x4d4 => array(0x4d5), 0x4d6 => array(0x4d7), 0x4d8 => array(0x4d9), 0x4da => array(0x4db), 0x4dc => array(0x4dd), 0x4de => array(0x4df), 0x4e0 => array(0x4e1), 0x4e2 => array(0x4e3), 0x4e4 => array(0x4e5), 0x4e6 => array(0x4e7), 0x4e8 => array(0x4e9), 0x4ea => array(0x4eb), 0x4ec => array(0x4ed), 0x4ee => array(0x4ef), 0x4f0 => array(0x4f1), 0x4f2 => array(0x4f3), 0x4f4 => array(0x4f5), 0x4f8 => array(0x4f9), 0x500 => array(0x501), 0x502 => array(0x503), 0x504 => array(0x505), 0x506 => array(0x507), 0x508 => array(0x509), 0x50a => array(0x50b), 0x50c => array(0x50d), 0x50e => array(0x50f), 0x531 => array(0x561), 0x532 => array(0x562), 0x533 => array(0x563), 0x534 => array(0x564), 0x535 => array(0x565), 0x536 => array(0x566), 0x537 => array(0x567), 0x538 => array(0x568), 0x539 => array(0x569), 0x53a => array(0x56a), 0x53b => array(0x56b), 0x53c => array(0x56c), 0x53d => array(0x56d), 0x53e => array(0x56e), 0x53f => array(0x56f), 0x540 => array(0x570), 0x541 => array(0x571), 0x542 => array(0x572), 0x543 => array(0x573), 0x544 => array(0x574), 0x545 => array(0x575), 0x546 => array(0x576), 0x547 => array(0x577), 0x548 => array(0x578), 0x549 => array(0x579), 0x54a => array(0x57a), 0x54b => array(0x57b), 0x54c => array(0x57c), 0x54d => array(0x57d), 0x54e => array(0x57e), 0x54f => array(0x57f), 0x550 => array(0x580), 0x551 => array(0x581), 0x552 => array(0x582), 0x553 => array(0x583), 0x554 => array(0x584), 0x555 => array(0x585), 0x556 => array(0x586), 0x587 => array(0x565, 0x582), 0xe33 => array(0xe4d, 0xe32), 0x1e00 => array(0x1e01), 0x1e02 => array(0x1e03), 0x1e04 => array(0x1e05), 0x1e06 => array(0x1e07), 0x1e08 => array(0x1e09), 0x1e0a => array(0x1e0b), 0x1e0c => array(0x1e0d), 0x1e0e => array(0x1e0f), 0x1e10 => array(0x1e11), 0x1e12 => array(0x1e13), 0x1e14 => array(0x1e15), 0x1e16 => array(0x1e17), 0x1e18 => array(0x1e19), 0x1e1a => array(0x1e1b), 0x1e1c => array(0x1e1d), 0x1e1e => array(0x1e1f), 0x1e20 => array(0x1e21), 0x1e22 => array(0x1e23), 0x1e24 => array(0x1e25), 0x1e26 => array(0x1e27), 0x1e28 => array(0x1e29), 0x1e2a => array(0x1e2b), 0x1e2c => array(0x1e2d), 0x1e2e => array(0x1e2f), 0x1e30 => array(0x1e31), 0x1e32 => array(0x1e33), 0x1e34 => array(0x1e35), 0x1e36 => array(0x1e37), 0x1e38 => array(0x1e39), 0x1e3a => array(0x1e3b), 0x1e3c => array(0x1e3d), 0x1e3e => array(0x1e3f), 0x1e40 => array(0x1e41), 0x1e42 => array(0x1e43), 0x1e44 => array(0x1e45), 0x1e46 => array(0x1e47), 0x1e48 => array(0x1e49), 0x1e4a => array(0x1e4b), 0x1e4c => array(0x1e4d), 0x1e4e => array(0x1e4f), 0x1e50 => array(0x1e51), 0x1e52 => array(0x1e53), 0x1e54 => array(0x1e55), 0x1e56 => array(0x1e57), 0x1e58 => array(0x1e59), 0x1e5a => array(0x1e5b), 0x1e5c => array(0x1e5d), 0x1e5e => array(0x1e5f), 0x1e60 => array(0x1e61), 0x1e62 => array(0x1e63), 0x1e64 => array(0x1e65), 0x1e66 => array(0x1e67), 0x1e68 => array(0x1e69), 0x1e6a => array(0x1e6b), 0x1e6c => array(0x1e6d), 0x1e6e => array(0x1e6f), 0x1e70 => array(0x1e71), 0x1e72 => array(0x1e73), 0x1e74 => array(0x1e75), 0x1e76 => array(0x1e77), 0x1e78 => array(0x1e79), 0x1e7a => array(0x1e7b), 0x1e7c => array(0x1e7d), 0x1e7e => array(0x1e7f), 0x1e80 => array(0x1e81), 0x1e82 => array(0x1e83), 0x1e84 => array(0x1e85), 0x1e86 => array(0x1e87), 0x1e88 => array(0x1e89), 0x1e8a => array(0x1e8b), 0x1e8c => array(0x1e8d), 0x1e8e => array(0x1e8f), 0x1e90 => array(0x1e91), 0x1e92 => array(0x1e93), 0x1e94 => array(0x1e95), 0x1e96 => array(0x68, 0x331), 0x1e97 => array(0x74, 0x308), 0x1e98 => array(0x77, 0x30a), 0x1e99 => array(0x79, 0x30a), 0x1e9a => array(0x61, 0x2be), 0x1e9b => array(0x1e61), 0x1ea0 => array(0x1ea1), 0x1ea2 => array(0x1ea3), 0x1ea4 => array(0x1ea5), 0x1ea6 => array(0x1ea7), 0x1ea8 => array(0x1ea9), 0x1eaa => array(0x1eab), 0x1eac => array(0x1ead), 0x1eae => array(0x1eaf), 0x1eb0 => array(0x1eb1), 0x1eb2 => array(0x1eb3), 0x1eb4 => array(0x1eb5), 0x1eb6 => array(0x1eb7), 0x1eb8 => array(0x1eb9), 0x1eba => array(0x1ebb), 0x1ebc => array(0x1ebd), 0x1ebe => array(0x1ebf), 0x1ec0 => array(0x1ec1), 0x1ec2 => array(0x1ec3), 0x1ec4 => array(0x1ec5), 0x1ec6 => array(0x1ec7), 0x1ec8 => array(0x1ec9), 0x1eca => array(0x1ecb), 0x1ecc => array(0x1ecd), 0x1ece => array(0x1ecf), 0x1ed0 => array(0x1ed1), 0x1ed2 => array(0x1ed3), 0x1ed4 => array(0x1ed5), 0x1ed6 => array(0x1ed7), 0x1ed8 => array(0x1ed9), 0x1eda => array(0x1edb), 0x1edc => array(0x1edd), 0x1ede => array(0x1edf), 0x1ee0 => array(0x1ee1), 0x1ee2 => array(0x1ee3), 0x1ee4 => array(0x1ee5), 0x1ee6 => array(0x1ee7), 0x1ee8 => array(0x1ee9), 0x1eea => array(0x1eeb), 0x1eec => array(0x1eed), 0x1eee => array(0x1eef), 0x1ef0 => array(0x1ef1), 0x1ef2 => array(0x1ef3), 0x1ef4 => array(0x1ef5), 0x1ef6 => array(0x1ef7), 0x1ef8 => array(0x1ef9), 0x1f08 => array(0x1f00), 0x1f09 => array(0x1f01), 0x1f0a => array(0x1f02), 0x1f0b => array(0x1f03), 0x1f0c => array(0x1f04), 0x1f0d => array(0x1f05), 0x1f0e => array(0x1f06), 0x1f0f => array(0x1f07), 0x1f18 => array(0x1f10), 0x1f19 => array(0x1f11), 0x1f1a => array(0x1f12), 0x1f1b => array(0x1f13), 0x1f1c => array(0x1f14), 0x1f1d => array(0x1f15), 0x1f28 => array(0x1f20), 0x1f29 => array(0x1f21), 0x1f2a => array(0x1f22), 0x1f2b => array(0x1f23), 0x1f2c => array(0x1f24), 0x1f2d => array(0x1f25), 0x1f2e => array(0x1f26), 0x1f2f => array(0x1f27), 0x1f38 => array(0x1f30), 0x1f39 => array(0x1f31), 0x1f3a => array(0x1f32), 0x1f3b => array(0x1f33), 0x1f3c => array(0x1f34), 0x1f3d => array(0x1f35), 0x1f3e => array(0x1f36), 0x1f3f => array(0x1f37), 0x1f48 => array(0x1f40), 0x1f49 => array(0x1f41), 0x1f4a => array(0x1f42), 0x1f4b => array(0x1f43), 0x1f4c => array(0x1f44), 0x1f4d => array(0x1f45), 0x1f50 => array(0x3c5, 0x313), 0x1f52 => array(0x3c5, 0x313, 0x300), 0x1f54 => array(0x3c5, 0x313, 0x301), 0x1f56 => array(0x3c5, 0x313, 0x342), 0x1f59 => array(0x1f51), 0x1f5b => array(0x1f53), 0x1f5d => array(0x1f55), 0x1f5f => array(0x1f57), 0x1f68 => array(0x1f60), 0x1f69 => array(0x1f61), 0x1f6a => array(0x1f62), 0x1f6b => array(0x1f63), 0x1f6c => array(0x1f64), 0x1f6d => array(0x1f65), 0x1f6e => array(0x1f66), 0x1f6f => array(0x1f67), 0x1f80 => array(0x1f00, 0x3b9), 0x1f81 => array(0x1f01, 0x3b9), 0x1f82 => array(0x1f02, 0x3b9), 0x1f83 => array(0x1f03, 0x3b9), 0x1f84 => array(0x1f04, 0x3b9), 0x1f85 => array(0x1f05, 0x3b9), 0x1f86 => array(0x1f06, 0x3b9), 0x1f87 => array(0x1f07, 0x3b9), 0x1f88 => array(0x1f00, 0x3b9), 0x1f89 => array(0x1f01, 0x3b9), 0x1f8a => array(0x1f02, 0x3b9), 0x1f8b => array(0x1f03, 0x3b9), 0x1f8c => array(0x1f04, 0x3b9), 0x1f8d => array(0x1f05, 0x3b9), 0x1f8e => array(0x1f06, 0x3b9), 0x1f8f => array(0x1f07, 0x3b9), 0x1f90 => array(0x1f20, 0x3b9), 0x1f91 => array(0x1f21, 0x3b9), 0x1f92 => array(0x1f22, 0x3b9), 0x1f93 => array(0x1f23, 0x3b9), 0x1f94 => array(0x1f24, 0x3b9), 0x1f95 => array(0x1f25, 0x3b9), 0x1f96 => array(0x1f26, 0x3b9), 0x1f97 => array(0x1f27, 0x3b9), 0x1f98 => array(0x1f20, 0x3b9), 0x1f99 => array(0x1f21, 0x3b9), 0x1f9a => array(0x1f22, 0x3b9), 0x1f9b => array(0x1f23, 0x3b9), 0x1f9c => array(0x1f24, 0x3b9), 0x1f9d => array(0x1f25, 0x3b9), 0x1f9e => array(0x1f26, 0x3b9), 0x1f9f => array(0x1f27, 0x3b9), 0x1fa0 => array(0x1f60, 0x3b9), 0x1fa1 => array(0x1f61, 0x3b9), 0x1fa2 => array(0x1f62, 0x3b9), 0x1fa3 => array(0x1f63, 0x3b9), 0x1fa4 => array(0x1f64, 0x3b9), 0x1fa5 => array(0x1f65, 0x3b9), 0x1fa6 => array(0x1f66, 0x3b9), 0x1fa7 => array(0x1f67, 0x3b9), 0x1fa8 => array(0x1f60, 0x3b9), 0x1fa9 => array(0x1f61, 0x3b9), 0x1faa => array(0x1f62, 0x3b9), 0x1fab => array(0x1f63, 0x3b9), 0x1fac => array(0x1f64, 0x3b9), 0x1fad => array(0x1f65, 0x3b9), 0x1fae => array(0x1f66, 0x3b9), 0x1faf => array(0x1f67, 0x3b9), 0x1fb2 => array(0x1f70, 0x3b9), 0x1fb3 => array(0x3b1, 0x3b9), 0x1fb4 => array(0x3ac, 0x3b9), 0x1fb6 => array(0x3b1, 0x342), 0x1fb7 => array(0x3b1, 0x342, 0x3b9), 0x1fb8 => array(0x1fb0), 0x1fb9 => array(0x1fb1), 0x1fba => array(0x1f70), 0x1fbb => array(0x1f71), 0x1fbc => array(0x3b1, 0x3b9), 0x1fbe => array(0x3b9), 0x1fc2 => array(0x1f74, 0x3b9), 0x1fc3 => array(0x3b7, 0x3b9), 0x1fc4 => array(0x3ae, 0x3b9), 0x1fc6 => array(0x3b7, 0x342), 0x1fc7 => array(0x3b7, 0x342, 0x3b9), 0x1fc8 => array(0x1f72), 0x1fc9 => array(0x1f73), 0x1fca => array(0x1f74), 0x1fcb => array(0x1f75), 0x1fcc => array(0x3b7, 0x3b9), 0x1fd2 => array(0x3b9, 0x308, 0x300), 0x1fd3 => array(0x3b9, 0x308, 0x301), 0x1fd6 => array(0x3b9, 0x342), 0x1fd7 => array(0x3b9, 0x308, 0x342), 0x1fd8 => array(0x1fd0), 0x1fd9 => array(0x1fd1), 0x1fda => array(0x1f76), 0x1fdb => array(0x1f77), 0x1fe2 => array(0x3c5, 0x308, 0x300), 0x1fe3 => array(0x3c5, 0x308, 0x301), 0x1fe4 => array(0x3c1, 0x313), 0x1fe6 => array(0x3c5, 0x342), 0x1fe7 => array(0x3c5, 0x308, 0x342), 0x1fe8 => array(0x1fe0), 0x1fe9 => array(0x1fe1), 0x1fea => array(0x1f7a), 0x1feb => array(0x1f7b), 0x1fec => array(0x1fe5), 0x1ff2 => array(0x1f7c, 0x3b9), 0x1ff3 => array(0x3c9, 0x3b9), 0x1ff4 => array(0x3ce, 0x3b9), 0x1ff6 => array(0x3c9, 0x342), 0x1ff7 => array(0x3c9, 0x342, 0x3b9), 0x1ff8 => array(0x1f78), 0x1ff9 => array(0x1f79), 0x1ffa => array(0x1f7c), 0x1ffb => array(0x1f7d), 0x1ffc => array(0x3c9, 0x3b9), 0x20a8 => array(0x72, 0x73), 0x2102 => array(0x63), 0x2103 => array(0xb0, 0x63), 0x2107 => array(0x25b), 0x2109 => array(0xb0, 0x66), 0x210b => array(0x68), 0x210c => array(0x68), 0x210d => array(0x68), 0x2110 => array(0x69), 0x2111 => array(0x69), 0x2112 => array(0x6c), 0x2115 => array(0x6e), 0x2116 => array(0x6e, 0x6f), 0x2119 => array(0x70), 0x211a => array(0x71), 0x211b => array(0x72), 0x211c => array(0x72), 0x211d => array(0x72), 0x2120 => array(0x73, 0x6d), 0x2121 => array(0x74, 0x65, 0x6c), 0x2122 => array(0x74, 0x6d), 0x2124 => array(0x7a), 0x2126 => array(0x3c9), 0x2128 => array(0x7a), 0x212a => array(0x6b), 0x212b => array(0xe5), 0x212c => array(0x62), 0x212d => array(0x63), 0x2130 => array(0x65), 0x2131 => array(0x66), 0x2133 => array(0x6d), 0x213e => array(0x3b3), 0x213f => array(0x3c0), 0x2145 => array(0x64), 0x2160 => array(0x2170), 0x2161 => array(0x2171), 0x2162 => array(0x2172), 0x2163 => array(0x2173), 0x2164 => array(0x2174), 0x2165 => array(0x2175), 0x2166 => array(0x2176), 0x2167 => array(0x2177), 0x2168 => array(0x2178), 0x2169 => array(0x2179), 0x216a => array(0x217a), 0x216b => array(0x217b), 0x216c => array(0x217c), 0x216d => array(0x217d), 0x216e => array(0x217e), 0x216f => array(0x217f), 0x24b6 => array(0x24d0), 0x24b7 => array(0x24d1), 0x24b8 => array(0x24d2), 0x24b9 => array(0x24d3), 0x24ba => array(0x24d4), 0x24bb => array(0x24d5), 0x24bc => array(0x24d6), 0x24bd => array(0x24d7), 0x24be => array(0x24d8), 0x24bf => array(0x24d9), 0x24c0 => array(0x24da), 0x24c1 => array(0x24db), 0x24c2 => array(0x24dc), 0x24c3 => array(0x24dd), 0x24c4 => array(0x24de), 0x24c5 => array(0x24df), 0x24c6 => array(0x24e0), 0x24c7 => array(0x24e1), 0x24c8 => array(0x24e2), 0x24c9 => array(0x24e3), 0x24ca => array(0x24e4), 0x24cb => array(0x24e5), 0x24cc => array(0x24e6), 0x24cd => array(0x24e7), 0x24ce => array(0x24e8), 0x24cf => array(0x24e9), 0x3371 => array(0x68, 0x70, 0x61), 0x3373 => array(0x61, 0x75), 0x3375 => array(0x6f, 0x76), 0x3380 => array(0x70, 0x61), 0x3381 => array(0x6e, 0x61), 0x3382 => array(0x3bc, 0x61), 0x3383 => array(0x6d, 0x61), 0x3384 => array(0x6b, 0x61), 0x3385 => array(0x6b, 0x62), 0x3386 => array(0x6d, 0x62), 0x3387 => array(0x67, 0x62), 0x338a => array(0x70, 0x66), 0x338b => array(0x6e, 0x66), 0x338c => array(0x3bc, 0x66), 0x3390 => array(0x68, 0x7a), 0x3391 => array(0x6b, 0x68, 0x7a), 0x3392 => array(0x6d, 0x68, 0x7a), 0x3393 => array(0x67, 0x68, 0x7a), 0x3394 => array(0x74, 0x68, 0x7a), 0x33a9 => array(0x70, 0x61), 0x33aa => array(0x6b, 0x70, 0x61), 0x33ab => array(0x6d, 0x70, 0x61), 0x33ac => array(0x67, 0x70, 0x61), 0x33b4 => array(0x70, 0x76), 0x33b5 => array(0x6e, 0x76), 0x33b6 => array(0x3bc, 0x76), 0x33b7 => array(0x6d, 0x76), 0x33b8 => array(0x6b, 0x76), 0x33b9 => array(0x6d, 0x76), 0x33ba => array(0x70, 0x77), 0x33bb => array(0x6e, 0x77), 0x33bc => array(0x3bc, 0x77), 0x33bd => array(0x6d, 0x77), 0x33be => array(0x6b, 0x77), 0x33bf => array(0x6d, 0x77), 0x33c0 => array(0x6b, 0x3c9), 0x33c1 => array(0x6d, 0x3c9), 0x33c3 => array(0x62, 0x71), 0x33c6 => array(0x63, 0x2215, 0x6b, 0x67), 0x33c7 => array(0x63, 0x6f, 0x2e), 0x33c8 => array(0x64, 0x62), 0x33c9 => array(0x67, 0x79), 0x33cb => array(0x68, 0x70), 0x33cd => array(0x6b, 0x6b), 0x33ce => array(0x6b, 0x6d), 0x33d7 => array(0x70, 0x68), 0x33d9 => array(0x70, 0x70, 0x6d), 0x33da => array(0x70, 0x72), 0x33dc => array(0x73, 0x76), 0x33dd => array(0x77, 0x62), 0xfb00 => array(0x66, 0x66), 0xfb01 => array(0x66, 0x69), 0xfb02 => array(0x66, 0x6c), 0xfb03 => array(0x66, 0x66, 0x69), 0xfb04 => array(0x66, 0x66, 0x6c), 0xfb05 => array(0x73, 0x74), 0xfb06 => array(0x73, 0x74), 0xfb13 => array(0x574, 0x576), 0xfb14 => array(0x574, 0x565), 0xfb15 => array(0x574, 0x56b), 0xfb16 => array(0x57e, 0x576), 0xfb17 => array(0x574, 0x56d), 0xff21 => array(0xff41), 0xff22 => array(0xff42), 0xff23 => array(0xff43), 0xff24 => array(0xff44), 0xff25 => array(0xff45), 0xff26 => array(0xff46), 0xff27 => array(0xff47), 0xff28 => array(0xff48), 0xff29 => array(0xff49), 0xff2a => array(0xff4a), 0xff2b => array(0xff4b), 0xff2c => array(0xff4c), 0xff2d => array(0xff4d), 0xff2e => array(0xff4e), 0xff2f => array(0xff4f), 0xff30 => array(0xff50), 0xff31 => array(0xff51), 0xff32 => array(0xff52), 0xff33 => array(0xff53), 0xff34 => array(0xff54), 0xff35 => array(0xff55), 0xff36 => array(0xff56), 0xff37 => array(0xff57), 0xff38 => array(0xff58), 0xff39 => array(0xff59), 0xff3a => array(0xff5a), 0x10400 => array(0x10428), 0x10401 => array(0x10429), 0x10402 => array(0x1042a), 0x10403 => array(0x1042b), 0x10404 => array(0x1042c), 0x10405 => array(0x1042d), 0x10406 => array(0x1042e), 0x10407 => array(0x1042f), 0x10408 => array(0x10430), 0x10409 => array(0x10431), 0x1040a => array(0x10432), 0x1040b => array(0x10433), 0x1040c => array(0x10434), 0x1040d => array(0x10435), 0x1040e => array(0x10436), 0x1040f => array(0x10437), 0x10410 => array(0x10438), 0x10411 => array(0x10439), 0x10412 => array(0x1043a), 0x10413 => array(0x1043b), 0x10414 => array(0x1043c), 0x10415 => array(0x1043d), 0x10416 => array(0x1043e), 0x10417 => array(0x1043f), 0x10418 => array(0x10440), 0x10419 => array(0x10441), 0x1041a => array(0x10442), 0x1041b => array(0x10443), 0x1041c => array(0x10444), 0x1041d => array(0x10445), 0x1041e => array(0x10446), 0x1041f => array(0x10447), 0x10420 => array(0x10448), 0x10421 => array(0x10449), 0x10422 => array(0x1044a), 0x10423 => array(0x1044b), 0x10424 => array(0x1044c), 0x10425 => array(0x1044d), 0x1d400 => array(0x61), 0x1d401 => array(0x62), 0x1d402 => array(0x63), 0x1d403 => array(0x64), 0x1d404 => array(0x65), 0x1d405 => array(0x66), 0x1d406 => array(0x67), 0x1d407 => array(0x68), 0x1d408 => array(0x69), 0x1d409 => array(0x6a), 0x1d40a => array(0x6b), 0x1d40b => array(0x6c), 0x1d40c => array(0x6d), 0x1d40d => array(0x6e), 0x1d40e => array(0x6f), 0x1d40f => array(0x70), 0x1d410 => array(0x71), 0x1d411 => array(0x72), 0x1d412 => array(0x73), 0x1d413 => array(0x74), 0x1d414 => array(0x75), 0x1d415 => array(0x76), 0x1d416 => array(0x77), 0x1d417 => array(0x78), 0x1d418 => array(0x79), 0x1d419 => array(0x7a), 0x1d434 => array(0x61), 0x1d435 => array(0x62), 0x1d436 => array(0x63), 0x1d437 => array(0x64), 0x1d438 => array(0x65), 0x1d439 => array(0x66), 0x1d43a => array(0x67), 0x1d43b => array(0x68), 0x1d43c => array(0x69), 0x1d43d => array(0x6a), 0x1d43e => array(0x6b), 0x1d43f => array(0x6c), 0x1d440 => array(0x6d), 0x1d441 => array(0x6e), 0x1d442 => array(0x6f), 0x1d443 => array(0x70), 0x1d444 => array(0x71), 0x1d445 => array(0x72), 0x1d446 => array(0x73), 0x1d447 => array(0x74), 0x1d448 => array(0x75), 0x1d449 => array(0x76), 0x1d44a => array(0x77), 0x1d44b => array(0x78), 0x1d44c => array(0x79), 0x1d44d => array(0x7a), 0x1d468 => array(0x61), 0x1d469 => array(0x62), 0x1d46a => array(0x63), 0x1d46b => array(0x64), 0x1d46c => array(0x65), 0x1d46d => array(0x66), 0x1d46e => array(0x67), 0x1d46f => array(0x68), 0x1d470 => array(0x69), 0x1d471 => array(0x6a), 0x1d472 => array(0x6b), 0x1d473 => array(0x6c), 0x1d474 => array(0x6d), 0x1d475 => array(0x6e), 0x1d476 => array(0x6f), 0x1d477 => array(0x70), 0x1d478 => array(0x71), 0x1d479 => array(0x72), 0x1d47a => array(0x73), 0x1d47b => array(0x74), 0x1d47c => array(0x75), 0x1d47d => array(0x76), 0x1d47e => array(0x77), 0x1d47f => array(0x78), 0x1d480 => array(0x79), 0x1d481 => array(0x7a), 0x1d49c => array(0x61), 0x1d49e => array(0x63), 0x1d49f => array(0x64), 0x1d4a2 => array(0x67), 0x1d4a5 => array(0x6a), 0x1d4a6 => array(0x6b), 0x1d4a9 => array(0x6e), 0x1d4aa => array(0x6f), 0x1d4ab => array(0x70), 0x1d4ac => array(0x71), 0x1d4ae => array(0x73), 0x1d4af => array(0x74), 0x1d4b0 => array(0x75), 0x1d4b1 => array(0x76), 0x1d4b2 => array(0x77), 0x1d4b3 => array(0x78), 0x1d4b4 => array(0x79), 0x1d4b5 => array(0x7a), 0x1d4d0 => array(0x61), 0x1d4d1 => array(0x62), 0x1d4d2 => array(0x63), 0x1d4d3 => array(0x64), 0x1d4d4 => array(0x65), 0x1d4d5 => array(0x66), 0x1d4d6 => array(0x67), 0x1d4d7 => array(0x68), 0x1d4d8 => array(0x69), 0x1d4d9 => array(0x6a), 0x1d4da => array(0x6b), 0x1d4db => array(0x6c), 0x1d4dc => array(0x6d), 0x1d4dd => array(0x6e), 0x1d4de => array(0x6f), 0x1d4df => array(0x70), 0x1d4e0 => array(0x71), 0x1d4e1 => array(0x72), 0x1d4e2 => array(0x73), 0x1d4e3 => array(0x74), 0x1d4e4 => array(0x75), 0x1d4e5 => array(0x76), 0x1d4e6 => array(0x77), 0x1d4e7 => array(0x78), 0x1d4e8 => array(0x79), 0x1d4e9 => array(0x7a), 0x1d504 => array(0x61), 0x1d505 => array(0x62), 0x1d507 => array(0x64), 0x1d508 => array(0x65), 0x1d509 => array(0x66), 0x1d50a => array(0x67), 0x1d50d => array(0x6a), 0x1d50e => array(0x6b), 0x1d50f => array(0x6c), 0x1d510 => array(0x6d), 0x1d511 => array(0x6e), 0x1d512 => array(0x6f), 0x1d513 => array(0x70), 0x1d514 => array(0x71), 0x1d516 => array(0x73), 0x1d517 => array(0x74), 0x1d518 => array(0x75), 0x1d519 => array(0x76), 0x1d51a => array(0x77), 0x1d51b => array(0x78), 0x1d51c => array(0x79), 0x1d538 => array(0x61), 0x1d539 => array(0x62), 0x1d53b => array(0x64), 0x1d53c => array(0x65), 0x1d53d => array(0x66), 0x1d53e => array(0x67), 0x1d540 => array(0x69), 0x1d541 => array(0x6a), 0x1d542 => array(0x6b), 0x1d543 => array(0x6c), 0x1d544 => array(0x6d), 0x1d546 => array(0x6f), 0x1d54a => array(0x73), 0x1d54b => array(0x74), 0x1d54c => array(0x75), 0x1d54d => array(0x76), 0x1d54e => array(0x77), 0x1d54f => array(0x78), 0x1d550 => array(0x79), 0x1d56c => array(0x61), 0x1d56d => array(0x62), 0x1d56e => array(0x63), 0x1d56f => array(0x64), 0x1d570 => array(0x65), 0x1d571 => array(0x66), 0x1d572 => array(0x67), 0x1d573 => array(0x68), 0x1d574 => array(0x69), 0x1d575 => array(0x6a), 0x1d576 => array(0x6b), 0x1d577 => array(0x6c), 0x1d578 => array(0x6d), 0x1d579 => array(0x6e), 0x1d57a => array(0x6f), 0x1d57b => array(0x70), 0x1d57c => array(0x71), 0x1d57d => array(0x72), 0x1d57e => array(0x73), 0x1d57f => array(0x74), 0x1d580 => array(0x75), 0x1d581 => array(0x76), 0x1d582 => array(0x77), 0x1d583 => array(0x78), 0x1d584 => array(0x79), 0x1d585 => array(0x7a), 0x1d5a0 => array(0x61), 0x1d5a1 => array(0x62), 0x1d5a2 => array(0x63), 0x1d5a3 => array(0x64), 0x1d5a4 => array(0x65), 0x1d5a5 => array(0x66), 0x1d5a6 => array(0x67), 0x1d5a7 => array(0x68), 0x1d5a8 => array(0x69), 0x1d5a9 => array(0x6a), 0x1d5aa => array(0x6b), 0x1d5ab => array(0x6c), 0x1d5ac => array(0x6d), 0x1d5ad => array(0x6e), 0x1d5ae => array(0x6f), 0x1d5af => array(0x70), 0x1d5b0 => array(0x71), 0x1d5b1 => array(0x72), 0x1d5b2 => array(0x73), 0x1d5b3 => array(0x74), 0x1d5b4 => array(0x75), 0x1d5b5 => array(0x76), 0x1d5b6 => array(0x77), 0x1d5b7 => array(0x78), 0x1d5b8 => array(0x79), 0x1d5b9 => array(0x7a), 0x1d5d4 => array(0x61), 0x1d5d5 => array(0x62), 0x1d5d6 => array(0x63), 0x1d5d7 => array(0x64), 0x1d5d8 => array(0x65), 0x1d5d9 => array(0x66), 0x1d5da => array(0x67), 0x1d5db => array(0x68), 0x1d5dc => array(0x69), 0x1d5dd => array(0x6a), 0x1d5de => array(0x6b), 0x1d5df => array(0x6c), 0x1d5e0 => array(0x6d), 0x1d5e1 => array(0x6e), 0x1d5e2 => array(0x6f), 0x1d5e3 => array(0x70), 0x1d5e4 => array(0x71), 0x1d5e5 => array(0x72), 0x1d5e6 => array(0x73), 0x1d5e7 => array(0x74), 0x1d5e8 => array(0x75), 0x1d5e9 => array(0x76), 0x1d5ea => array(0x77), 0x1d5eb => array(0x78), 0x1d5ec => array(0x79), 0x1d5ed => array(0x7a), 0x1d608 => array(0x61), 0x1d609 => array(0x62), 0x1d60a => array(0x63), 0x1d60b => array(0x64), 0x1d60c => array(0x65), 0x1d60d => array(0x66), 0x1d60e => array(0x67), 0x1d60f => array(0x68), 0x1d610 => array(0x69), 0x1d611 => array(0x6a), 0x1d612 => array(0x6b), 0x1d613 => array(0x6c), 0x1d614 => array(0x6d), 0x1d615 => array(0x6e), 0x1d616 => array(0x6f), 0x1d617 => array(0x70), 0x1d618 => array(0x71), 0x1d619 => array(0x72), 0x1d61a => array(0x73), 0x1d61b => array(0x74), 0x1d61c => array(0x75), 0x1d61d => array(0x76), 0x1d61e => array(0x77), 0x1d61f => array(0x78), 0x1d620 => array(0x79), 0x1d621 => array(0x7a), 0x1d63c => array(0x61), 0x1d63d => array(0x62), 0x1d63e => array(0x63), 0x1d63f => array(0x64), 0x1d640 => array(0x65), 0x1d641 => array(0x66), 0x1d642 => array(0x67), 0x1d643 => array(0x68), 0x1d644 => array(0x69), 0x1d645 => array(0x6a), 0x1d646 => array(0x6b), 0x1d647 => array(0x6c), 0x1d648 => array(0x6d), 0x1d649 => array(0x6e), 0x1d64a => array(0x6f), 0x1d64b => array(0x70), 0x1d64c => array(0x71), 0x1d64d => array(0x72), 0x1d64e => array(0x73), 0x1d64f => array(0x74), 0x1d650 => array(0x75), 0x1d651 => array(0x76), 0x1d652 => array(0x77), 0x1d653 => array(0x78), 0x1d654 => array(0x79), 0x1d655 => array(0x7a), 0x1d670 => array(0x61), 0x1d671 => array(0x62), 0x1d672 => array(0x63), 0x1d673 => array(0x64), 0x1d674 => array(0x65), 0x1d675 => array(0x66), 0x1d676 => array(0x67), 0x1d677 => array(0x68), 0x1d678 => array(0x69), 0x1d679 => array(0x6a), 0x1d67a => array(0x6b), 0x1d67b => array(0x6c), 0x1d67c => array(0x6d), 0x1d67d => array(0x6e), 0x1d67e => array(0x6f), 0x1d67f => array(0x70), 0x1d680 => array(0x71), 0x1d681 => array(0x72), 0x1d682 => array(0x73), 0x1d683 => array(0x74), 0x1d684 => array(0x75), 0x1d685 => array(0x76), 0x1d686 => array(0x77), 0x1d687 => array(0x78), 0x1d688 => array(0x79), 0x1d689 => array(0x7a), 0x1d6a8 => array(0x3b1), 0x1d6a9 => array(0x3b2), 0x1d6aa => array(0x3b3), 0x1d6ab => array(0x3b4), 0x1d6ac => array(0x3b5), 0x1d6ad => array(0x3b6), 0x1d6ae => array(0x3b7), 0x1d6af => array(0x3b8), 0x1d6b0 => array(0x3b9), 0x1d6b1 => array(0x3ba), 0x1d6b2 => array(0x3bb), 0x1d6b3 => array(0x3bc), 0x1d6b4 => array(0x3bd), 0x1d6b5 => array(0x3be), 0x1d6b6 => array(0x3bf), 0x1d6b7 => array(0x3c0), 0x1d6b8 => array(0x3c1), 0x1d6b9 => array(0x3b8), 0x1d6ba => array(0x3c3), 0x1d6bb => array(0x3c4), 0x1d6bc => array(0x3c5), 0x1d6bd => array(0x3c6), 0x1d6be => array(0x3c7), 0x1d6bf => array(0x3c8), 0x1d6c0 => array(0x3c9), 0x1d6d3 => array(0x3c3), 0x1d6e2 => array(0x3b1), 0x1d6e3 => array(0x3b2), 0x1d6e4 => array(0x3b3), 0x1d6e5 => array(0x3b4), 0x1d6e6 => array(0x3b5), 0x1d6e7 => array(0x3b6), 0x1d6e8 => array(0x3b7), 0x1d6e9 => array(0x3b8), 0x1d6ea => array(0x3b9), 0x1d6eb => array(0x3ba), 0x1d6ec => array(0x3bb), 0x1d6ed => array(0x3bc), 0x1d6ee => array(0x3bd), 0x1d6ef => array(0x3be), 0x1d6f0 => array(0x3bf), 0x1d6f1 => array(0x3c0), 0x1d6f2 => array(0x3c1), 0x1d6f3 => array(0x3b8), 0x1d6f4 => array(0x3c3), 0x1d6f5 => array(0x3c4), 0x1d6f6 => array(0x3c5), 0x1d6f7 => array(0x3c6), 0x1d6f8 => array(0x3c7), 0x1d6f9 => array(0x3c8), 0x1d6fa => array(0x3c9), 0x1d70d => array(0x3c3), 0x1d71c => array(0x3b1), 0x1d71d => array(0x3b2), 0x1d71e => array(0x3b3), 0x1d71f => array(0x3b4), 0x1d720 => array(0x3b5), 0x1d721 => array(0x3b6), 0x1d722 => array(0x3b7), 0x1d723 => array(0x3b8), 0x1d724 => array(0x3b9), 0x1d725 => array(0x3ba), 0x1d726 => array(0x3bb), 0x1d727 => array(0x3bc), 0x1d728 => array(0x3bd), 0x1d729 => array(0x3be), 0x1d72a => array(0x3bf), 0x1d72b => array(0x3c0), 0x1d72c => array(0x3c1), 0x1d72d => array(0x3b8), 0x1d72e => array(0x3c3), 0x1d72f => array(0x3c4), 0x1d730 => array(0x3c5), 0x1d731 => array(0x3c6), 0x1d732 => array(0x3c7), 0x1d733 => array(0x3c8), 0x1d734 => array(0x3c9), 0x1d747 => array(0x3c3), 0x1d756 => array(0x3b1), 0x1d757 => array(0x3b2), 0x1d758 => array(0x3b3), 0x1d759 => array(0x3b4), 0x1d75a => array(0x3b5), 0x1d75b => array(0x3b6), 0x1d75c => array(0x3b7), 0x1d75d => array(0x3b8), 0x1d75e => array(0x3b9), 0x1d75f => array(0x3ba), 0x1d760 => array(0x3bb), 0x1d761 => array(0x3bc), 0x1d762 => array(0x3bd), 0x1d763 => array(0x3be), 0x1d764 => array(0x3bf), 0x1d765 => array(0x3c0), 0x1d766 => array(0x3c1), 0x1d767 => array(0x3b8), 0x1d768 => array(0x3c3), 0x1d769 => array(0x3c4), 0x1d76a => array(0x3c5), 0x1d76b => array(0x3c6), 0x1d76c => array(0x3c7), 0x1d76d => array(0x3c8), 0x1d76e => array(0x3c9), 0x1d781 => array(0x3c3), 0x1d790 => array(0x3b1), 0x1d791 => array(0x3b2), 0x1d792 => array(0x3b3), 0x1d793 => array(0x3b4), 0x1d794 => array(0x3b5), 0x1d795 => array(0x3b6), 0x1d796 => array(0x3b7), 0x1d797 => array(0x3b8), 0x1d798 => array(0x3b9), 0x1d799 => array(0x3ba), 0x1d79a => array(0x3bb), 0x1d79b => array(0x3bc), 0x1d79c => array(0x3bd), 0x1d79d => array(0x3be), 0x1d79e => array(0x3bf), 0x1d79f => array(0x3c0), 0x1d7a0 => array(0x3c1), 0x1d7a1 => array(0x3b8), 0x1d7a2 => array(0x3c3), 0x1d7a3 => array(0x3c4), 0x1d7a4 => array(0x3c5), 0x1d7a5 => array(0x3c6), 0x1d7a6 => array(0x3c7), 0x1d7a7 => array(0x3c8), 0x1d7a8 => array(0x3c9), 0x1d7bb => array(0x3c3), 0x3f9 => array(0x3c3), 0x1d2c => array(0x61), 0x1d2d => array(0xe6), 0x1d2e => array(0x62), 0x1d30 => array(0x64), 0x1d31 => array(0x65), 0x1d32 => array(0x1dd), 0x1d33 => array(0x67), 0x1d34 => array(0x68), 0x1d35 => array(0x69), 0x1d36 => array(0x6a), 0x1d37 => array(0x6b), 0x1d38 => array(0x6c), 0x1d39 => array(0x6d), 0x1d3a => array(0x6e), 0x1d3c => array(0x6f), 0x1d3d => array(0x223), 0x1d3e => array(0x70), 0x1d3f => array(0x72), 0x1d40 => array(0x74), 0x1d41 => array(0x75), 0x1d42 => array(0x77), 0x213b => array(0x66, 0x61, 0x78), 0x3250 => array(0x70, 0x74, 0x65), 0x32cc => array(0x68, 0x67), 0x32ce => array(0x65, 0x76), 0x32cf => array(0x6c, 0x74, 0x64), 0x337a => array(0x69, 0x75), 0x33de => array(0x76, 0x2215, 0x6d), 0x33df => array(0x61, 0x2215, 0x6d)), 'CombiningClass' => array(0x334 => 1, 0x335 => 1, 0x336 => 1, 0x337 => 1, 0x338 => 1, 0x93c => 7, 0x9bc => 7, 0xa3c => 7, 0xabc => 7, 0xb3c => 7, 0xcbc => 7, 0x1037 => 7, 0x3099 => 8, 0x309a => 8, 0x94d => 9, 0x9cd => 9, 0xa4d => 9, 0xacd => 9, 0xb4d => 9, 0xbcd => 9, 0xc4d => 9, 0xccd => 9, 0xd4d => 9, 0xdca => 9, 0xe3a => 9, 0xf84 => 9, 0x1039 => 9, 0x1714 => 9, 0x1734 => 9, 0x17d2 => 9, 0x5b0 => 10, 0x5b1 => 11, 0x5b2 => 12, 0x5b3 => 13, 0x5b4 => 14, 0x5b5 => 15, 0x5b6 => 16, 0x5b7 => 17, 0x5b8 => 18, 0x5b9 => 19, 0x5bb => 20, 0x5bc => 21, 0x5bd => 22, 0x5bf => 23, 0x5c1 => 24, 0x5c2 => 25, 0xfb1e => 26, 0x64b => 27, 0x64c => 28, 0x64d => 29, 0x64e => 30, 0x64f => 31, 0x650 => 32, 0x651 => 33, 0x652 => 34, 0x670 => 35, 0x711 => 36, 0xc55 => 84, 0xc56 => 91, 0xe38 => 103, 0xe39 => 103, 0xe48 => 107, 0xe49 => 107, 0xe4a => 107, 0xe4b => 107, 0xeb8 => 118, 0xeb9 => 118, 0xec8 => 122, 0xec9 => 122, 0xeca => 122, 0xecb => 122, 0xf71 => 129, 0xf72 => 130, 0xf7a => 130, 0xf7b => 130, 0xf7c => 130, 0xf7d => 130, 0xf80 => 130, 0xf74 => 132, 0x321 => 202, 0x322 => 202, 0x327 => 202, 0x328 => 202, 0x31b => 216, 0xf39 => 216, 0x1d165 => 216, 0x1d166 => 216, 0x1d16e => 216, 0x1d16f => 216, 0x1d170 => 216, 0x1d171 => 216, 0x1d172 => 216, 0x302a => 218, 0x316 => 220, 0x317 => 220, 0x318 => 220, 0x319 => 220, 0x31c => 220, 0x31d => 220, 0x31e => 220, 0x31f => 220, 0x320 => 220, 0x323 => 220, 0x324 => 220, 0x325 => 220, 0x326 => 220, 0x329 => 220, 0x32a => 220, 0x32b => 220, 0x32c => 220, 0x32d => 220, 0x32e => 220, 0x32f => 220, 0x330 => 220, 0x331 => 220, 0x332 => 220, 0x333 => 220, 0x339 => 220, 0x33a => 220, 0x33b => 220, 0x33c => 220, 0x347 => 220, 0x348 => 220, 0x349 => 220, 0x34d => 220, 0x34e => 220, 0x353 => 220, 0x354 => 220, 0x355 => 220, 0x356 => 220, 0x591 => 220, 0x596 => 220, 0x59b => 220, 0x5a3 => 220, 0x5a4 => 220, 0x5a5 => 220, 0x5a6 => 220, 0x5a7 => 220, 0x5aa => 220, 0x655 => 220, 0x656 => 220, 0x6e3 => 220, 0x6ea => 220, 0x6ed => 220, 0x731 => 220, 0x734 => 220, 0x737 => 220, 0x738 => 220, 0x739 => 220, 0x73b => 220, 0x73c => 220, 0x73e => 220, 0x742 => 220, 0x744 => 220, 0x746 => 220, 0x748 => 220, 0x952 => 220, 0xf18 => 220, 0xf19 => 220, 0xf35 => 220, 0xf37 => 220, 0xfc6 => 220, 0x193b => 220, 0x20e8 => 220, 0x1d17b => 220, 0x1d17c => 220, 0x1d17d => 220, 0x1d17e => 220, 0x1d17f => 220, 0x1d180 => 220, 0x1d181 => 220, 0x1d182 => 220, 0x1d18a => 220, 0x1d18b => 220, 0x59a => 222, 0x5ad => 222, 0x1929 => 222, 0x302d => 222, 0x302e => 224, 0x302f => 224, 0x1d16d => 226, 0x5ae => 228, 0x18a9 => 228, 0x302b => 228, 0x300 => 230, 0x301 => 230, 0x302 => 230, 0x303 => 230, 0x304 => 230, 0x305 => 230, 0x306 => 230, 0x307 => 230, 0x308 => 230, 0x309 => 230, 0x30a => 230, 0x30b => 230, 0x30c => 230, 0x30d => 230, 0x30e => 230, 0x30f => 230, 0x310 => 230, 0x311 => 230, 0x312 => 230, 0x313 => 230, 0x314 => 230, 0x33d => 230, 0x33e => 230, 0x33f => 230, 0x340 => 230, 0x341 => 230, 0x342 => 230, 0x343 => 230, 0x344 => 230, 0x346 => 230, 0x34a => 230, 0x34b => 230, 0x34c => 230, 0x350 => 230, 0x351 => 230, 0x352 => 230, 0x357 => 230, 0x363 => 230, 0x364 => 230, 0x365 => 230, 0x366 => 230, 0x367 => 230, 0x368 => 230, 0x369 => 230, 0x36a => 230, 0x36b => 230, 0x36c => 230, 0x36d => 230, 0x36e => 230, 0x36f => 230, 0x483 => 230, 0x484 => 230, 0x485 => 230, 0x486 => 230, 0x592 => 230, 0x593 => 230, 0x594 => 230, 0x595 => 230, 0x597 => 230, 0x598 => 230, 0x599 => 230, 0x59c => 230, 0x59d => 230, 0x59e => 230, 0x59f => 230, 0x5a0 => 230, 0x5a1 => 230, 0x5a8 => 230, 0x5a9 => 230, 0x5ab => 230, 0x5ac => 230, 0x5af => 230, 0x5c4 => 230, 0x610 => 230, 0x611 => 230, 0x612 => 230, 0x613 => 230, 0x614 => 230, 0x615 => 230, 0x653 => 230, 0x654 => 230, 0x657 => 230, 0x658 => 230, 0x6d6 => 230, 0x6d7 => 230, 0x6d8 => 230, 0x6d9 => 230, 0x6da => 230, 0x6db => 230, 0x6dc => 230, 0x6df => 230, 0x6e0 => 230, 0x6e1 => 230, 0x6e2 => 230, 0x6e4 => 230, 0x6e7 => 230, 0x6e8 => 230, 0x6eb => 230, 0x6ec => 230, 0x730 => 230, 0x732 => 230, 0x733 => 230, 0x735 => 230, 0x736 => 230, 0x73a => 230, 0x73d => 230, 0x73f => 230, 0x740 => 230, 0x741 => 230, 0x743 => 230, 0x745 => 230, 0x747 => 230, 0x749 => 230, 0x74a => 230, 0x951 => 230, 0x953 => 230, 0x954 => 230, 0xf82 => 230, 0xf83 => 230, 0xf86 => 230, 0xf87 => 230, 0x170d => 230, 0x193a => 230, 0x20d0 => 230, 0x20d1 => 230, 0x20d4 => 230, 0x20d5 => 230, 0x20d6 => 230, 0x20d7 => 230, 0x20db => 230, 0x20dc => 230, 0x20e1 => 230, 0x20e7 => 230, 0x20e9 => 230, 0xfe20 => 230, 0xfe21 => 230, 0xfe22 => 230, 0xfe23 => 230, 0x1d185 => 230, 0x1d186 => 230, 0x1d187 => 230, 0x1d189 => 230, 0x1d188 => 230, 0x1d1aa => 230, 0x1d1ab => 230, 0x1d1ac => 230, 0x1d1ad => 230, 0x315 => 232, 0x31a => 232, 0x302c => 232, 0x35f => 233, 0x362 => 233, 0x35d => 234, 0x35e => 234, 0x360 => 234, 0x361 => 234, 0x345 => 240));
    }
    class CAllUserCounter
    {
        const ALL_SITES = '**';
        const LIVEFEED_CODE = '**';
        const SYSTEM_USER_ID = 0;
        protected static $counters = \false;
        public static function GetValue($user_id, $code, $site_id = \SITE_ID)
        {
        }
        public static function GetValues($user_id, $site_id = \SITE_ID, &$arLastDate = array())
        {
        }
        public static function GetAllValues($user_id)
        {
        }
        public static function GetLastDate($user_id, $code, $site_id = \SITE_ID)
        {
        }
        public static function ClearAll($user_id, $site_id = \SITE_ID, $sendPull = \true)
        {
        }
        public static function ClearByTag($tag, $code, $site_id = \SITE_ID, $sendPull = \true)
        {
        }
        public static function CheckLiveMode()
        {
        }
        protected static function SendPullEvent($user_id, $code = "", $bMultiple = \false)
        {
        }
        public static function addValueToPullMessage($row, $arSites = array(), &$pullMessage = array())
        {
        }
        public static function getGroupedCounters($counters)
        {
        }
        public static function getGroupedCounterRecords($records)
        {
        }
        private static function getGroupedCode($code)
        {
        }
        public static function OnSocNetLogCommentDelete($commentId)
        {
        }
        public static function OnSocNetLogDelete($logId)
        {
        }
        // legacy function
        public static function GetValueByUserID($user_id, $site_id = \SITE_ID, $code = self::ALL_SITES)
        {
        }
        public static function GetCodeValuesByUserID($user_id, $site_id = \SITE_ID)
        {
        }
        public static function GetLastDateByUserAndCode($user_id, $site_id = \SITE_ID, $code = self::ALL_SITES)
        {
        }
        public static function DeleteOld()
        {
        }
    }
    class CAllUserCounterPage
    {
        protected static function setUserIdOption($value = \false)
        {
        }
        protected static function getUserIdOption()
        {
        }
        public static function getPageSizeOption($defaultValue = 100)
        {
        }
        public static function setNewEvent()
        {
        }
        protected static function getMinMax($prevMax = 0)
        {
        }
    }
    class CRatingRule
    {
        // get specified rating rule
        public static function GetByID($ID)
        {
        }
        // get rating rule list
        public static function GetList($aSort = array(), $arFilter = array())
        {
        }
        //Addition rating rule
        public static function Add($arFields)
        {
        }
        //Update rating
        public static function Update($ID, $arFields)
        {
        }
        // delete rating rule
        public static function Delete($ID)
        {
        }
        // start rating rule action
        public static function Apply($ID)
        {
        }
        // get vetting list
        public static function GetVetting($arFilter, $arSort)
        {
        }
        // apply vetting list
        public static function ApplyVetting($arConfigs)
        {
        }
        // queries modules and get all the available objects
        public static function GetRatingRuleObjects()
        {
        }
        // queries modules and assemble an array of settings
        public static function GetRatingRuleConfigs($objectType = \null, $withRuleType = \true)
        {
        }
        // check only general field
        public static function __CheckFields($arFields)
        {
        }
        function err_mess()
        {
        }
    }
    /**
     * @deprecated Use \Bitrix\Main\UrlRewriter.
     */
    class CUrlRewriter
    {
        public static function GetList($arFilter = array(), $arOrder = array())
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($arFilter, $arFields)
        {
        }
        public static function Delete($arFilter)
        {
        }
        public static function ReIndexAll($max_execution_time = 0, $NS = array())
        {
        }
        public static function ReindexFile($path, $SEARCH_SESS_ID = "", $max_file_size = 0)
        {
        }
        public static function CheckPath($path)
        {
        }
    }
    class CSmile
    {
        const TYPE_ALL = '';
        const TYPE_SMILE = 'S';
        const TYPE_ICON = 'I';
        const PATH_TO_SMILE = "/bitrix/images/main/smiles/";
        const PATH_TO_ICON = "/bitrix/images/main/icons/";
        const CHECK_TYPE_ADD = 1;
        const CHECK_TYPE_UPDATE = 2;
        const GET_ALL_LANGUAGE = \false;
        const IMAGE_SD = 'SD';
        const IMAGE_HD = 'HD';
        const IMAGE_UHD = 'UHD';
        private static function checkFields(&$arFields, $actionType = self::CHECK_TYPE_ADD)
        {
        }
        public static function add($arFields)
        {
        }
        public static function update($id, $arFields)
        {
        }
        public static function delete($id, $removeFile = \true)
        {
        }
        public static function deleteBySet($id, $removeFile = \true)
        {
        }
        public static function deleteByGallery($id, $removeFile = \true)
        {
        }
        public static function getById($id, $lang = \LANGUAGE_ID)
        {
        }
        public static function getList($arParams = array(), $lang = \LANGUAGE_ID)
        {
        }
        /**
         * @deprecated Use CSmile::getBySetId
         */
        public static function getByType($type = self::TYPE_ALL, $setId = \CSmileSet::SET_ID_BY_CONFIG, $lang = \LANGUAGE_ID)
        {
        }
        public static function getBySetId($type = self::TYPE_ALL, $setId = \CSmileSet::SET_ID_BY_CONFIG, $lang = \LANGUAGE_ID)
        {
        }
        public static function getByGalleryId($type = self::TYPE_ALL, $galleryId = \CSmileGallery::GALLERY_DEFAULT, $lang = \LANGUAGE_ID)
        {
        }
        public static function import($arParams)
        {
        }
    }
    class CSmileGallery
    {
        const GALLERY_DEFAULT = 0;
        const GET_ALL_LANGUAGE = \false;
        public static function add($arFields)
        {
        }
        public static function update($id, $arFields)
        {
        }
        public static function delete($id)
        {
        }
        public static function getById($id, $lang = \LANGUAGE_ID)
        {
        }
        public static function getByStringId($stringId, $lang = \LANGUAGE_ID)
        {
        }
        public static function getList($arParams = array(), $lang = \LANGUAGE_ID)
        {
        }
        public static function getListCache($lang = \LANGUAGE_ID)
        {
        }
        public static function getListForForm($lang = \LANGUAGE_ID)
        {
        }
        public static function getDefaultId()
        {
        }
        public static function setDefaultId($id)
        {
        }
        public static function getSmilesWithSets($galleryId = self::GALLERY_DEFAULT)
        {
        }
        public static function installGallery()
        {
        }
        public static function convertGallery()
        {
        }
    }
    class CSmileSet
    {
        const TYPE_SET = 'G';
        const TYPE_GALLERY = 'P';
        const SET_ID_ALL = 0;
        const SET_ID_BY_CONFIG = -1;
        const GET_ALL_LANGUAGE = \false;
        public static function add($arFields)
        {
        }
        public static function update($id, $arFields)
        {
        }
        public static function delete($id)
        {
        }
        public static function getById($id, $lang = \LANGUAGE_ID)
        {
        }
        public static function getByStringId($stringId, $type = self::TYPE_SET, $lang = \LANGUAGE_ID)
        {
        }
        public static function getBySmiles($arSmiles)
        {
        }
        public static function getList($arParams = array(), $lang = \LANGUAGE_ID)
        {
        }
        public static function getListCache($lang = \LANGUAGE_ID)
        {
        }
        /**
         * @deprecated Use CSmileSet::getListForForm
         */
        public static function getFormList($bWithOptionAll = \false, $lang = \LANGUAGE_ID)
        {
        }
        public static function getListForForm($galleryId = 0, $lang = \LANGUAGE_ID)
        {
        }
        /**
         * @deprecated Use CSmileGallery::getDefaultId()
         */
        public static function getConfigSetId()
        {
        }
    }
    class CAdminInformer
    {
        private static $items = array();
        public static $alertCounter = 0;
        /**
         * Adds items to admin informer
         * @param array (
         *			string TITLE  - item title (mandatory),
         *			string HTML - item's body html (mandatory),
         *			string FOOTER - item footer,
         *			string LINK - were to go after click ,
         *			bool ALERT - true || false - increment or not notification counter in the admin panel,
         *			string COLOR green || blue || gray || custom... For custom you must define right css styles
         *						 for css class adm-informer-item-custom.
         *			int SORT - less value higher message. default value 20. if ALERT then SORT = 10
         *			)
         * @return mix items count after adding item or false
         */
        public static function AddItem($arParams)
        {
        }
        private static function PrintItemHtml($itemIdx, $bVisible)
        {
        }
        public static function PrintHtmlPublic($visCountParam = 3)
        {
        }
        public static function PrintHtml($visCountParam = 3)
        {
        }
        private static function CutErrorId($sError)
        {
        }
        private static function IsUpdateSystemNeedUpdate($sError)
        {
        }
        public static function InsertMainItems()
        {
        }
    }
    class CEventLog
    {
        const SEVERITY_SECURITY = 1;
        const SEVERITY_ERROR = 2;
        const SEVERITY_WARNING = 3;
        const SEVERITY_INFO = 4;
        const SEVERITY_DEBUG = 5;
        public static function Log($SEVERITY, $AUDIT_TYPE_ID, $MODULE_ID, $ITEM_ID, $DESCRIPTION = \false, $SITE_ID = \false)
        {
        }
        public static function Add($arFields)
        {
        }
        //Agent
        public static function CleanUpAgent()
        {
        }
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arNavParams = \false)
        {
        }
        public static function GetEventTypes()
        {
        }
    }
    class CEventMain
    {
        public static function MakeMainObject()
        {
        }
        public static function GetFilter()
        {
        }
        public static function GetAuditTypes()
        {
        }
        public static function GetEventInfo($row, $arParams)
        {
        }
        public static function GetFilterSQL($var)
        {
        }
    }
    /********************************************************************
    *	MySQL database classes
    ********************************************************************/
    abstract class CDatabaseMysql extends \CAllDatabase
    {
        var $version;
        public $escL = '`', $escR = '`';
        public $alias_length = 256;
        function GetVersion()
        {
        }
        function StartTransaction()
        {
        }
        function Commit()
        {
        }
        function Rollback()
        {
        }
        //Connect to database
        function Connect($DBHost, $DBName, $DBLogin, $DBPassword, $connectionName = "")
        {
        }
        protected abstract function QueryInternal($sql);
        protected abstract function GetError();
        function Query($strSql, $bIgnoreErrors = \false, $error_position = "", $arOptions = array())
        {
        }
        protected abstract function DisconnectInternal($resource);
        //Closes database connection
        function Disconnect()
        {
        }
        public static function CurrentTimeFunction()
        {
        }
        public static function CurrentDateFunction()
        {
        }
        function DateFormatToDB($format, $field = \false)
        {
        }
        function DateToCharFunction($strFieldName, $strType = "FULL", $lang = \false, $bSearchInSitesOnly = \false)
        {
        }
        function CharToDateFunction($strValue, $strType = "FULL", $lang = \false)
        {
        }
        function DatetimeToTimestampFunction($fieldName)
        {
        }
        function DatetimeToDateFunction($strValue)
        {
        }
        //  1 if date1 > date2
        //  0 if date1 = date2
        // -1 if date1 < date2
        function CompareDates($date1, $date2)
        {
        }
        abstract function LastID();
        function PrepareFields($strTableName, $strPrefix = "str_", $strSuffix = "")
        {
        }
        function PrepareInsert($strTableName, $arFields, $strFileDir = "", $lang = \false)
        {
        }
        function PrepareUpdate($strTableName, $arFields, $strFileDir = "", $lang = \false, $strTableAlias = "")
        {
        }
        function PrepareUpdateBind($strTableName, $arFields, $strFileDir, $lang, &$arBinds, $strTableAlias = "")
        {
        }
        function Insert($table, $arFields, $error_position = "", $DEBUG = \false, $EXIST_ID = "", $ignore_errors = \false)
        {
        }
        function Update($table, $arFields, $WHERE = "", $error_position = "", $DEBUG = \false, $ignore_errors = \false, $additional_check = \true)
        {
        }
        public function Add($tablename, $arFields, $arCLOBFields = array(), $strFileDir = "", $ignore_errors = \false, $error_position = "", $arOptions = array())
        {
        }
        function TopSql($strSql, $nTopCount)
        {
        }
        abstract function ForSqlLike($strValue, $iMaxLength = 0);
        function InitTableVarsForEdit($tablename, $strIdentFrom = "str_", $strIdentTo = "str_", $strSuffixFrom = "", $bAlways = \false)
        {
        }
        function GetTableFieldsList($table)
        {
        }
        abstract function GetTableFields($table);
        function LockTables($str)
        {
        }
        function UnLockTables()
        {
        }
        function Concat()
        {
        }
        function IsNull($expression, $result)
        {
        }
        function Length($field)
        {
        }
        function ToChar($expr, $len = 0)
        {
        }
        function TableExists($tableName)
        {
        }
        public function GetIndexName($tableName, $arColumns, $bStrict = \false)
        {
        }
        function Instr($str, $toFind)
        {
        }
        protected abstract function getThreadId();
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2014 Bitrix
     */
    /********************************************************************
    *	MySQLi database classes
    ********************************************************************/
    class CDatabase extends \CDatabaseMysql
    {
        /** @var mysqli */
        var $db_Conn;
        function ConnectInternal()
        {
        }
        protected function QueryInternal($strSql)
        {
        }
        protected function GetError()
        {
        }
        protected function DisconnectInternal($resource)
        {
        }
        function LastID()
        {
        }
        function ForSql($strValue, $iMaxLength = 0)
        {
        }
        function ForSqlLike($strValue, $iMaxLength = 0)
        {
        }
        function GetTableFields($table)
        {
        }
        protected function getThreadId()
        {
        }
    }
    class CEvent extends \CAllEvent
    {
    }
    ///////////////////////////////////////////////////////////////////
    // Class of mail templates
    ///////////////////////////////////////////////////////////////////
    class CEventMessage extends \CAllEventMessage
    {
    }
    class CAgent extends \CAllAgent
    {
        public static function CheckAgents()
        {
        }
        public static function ExecuteAgents($str_crontab)
        {
        }
    }
    class CRatingsComponentsMain extends \CAllRatingsComponentsMain
    {
        // Calc function
        public static function CalcVoteUser($arConfigs)
        {
        }
        public static function CalcUserBonus($arConfigs)
        {
        }
    }
    class CMain extends \CAllMain
    {
        /** @deprecated */
        public static function __GetConditionFName()
        {
        }
        /** @deprecated Will be removed soon  */
        public static function FileAction()
        {
        }
        public function GetLang($cur_dir = \false, $cur_host = \false)
        {
        }
    }
    class CSite extends \CAllSite
    {
    }
    class CFilterQuery extends \CAllFilterQuery
    {
        public function BuildWhereClause($word)
        {
        }
    }
    class CLang extends \CSite
    {
    }
    class CRatings extends \CAllRatings
    {
        public static function err_mess()
        {
        }
        // building rating on computed components
        public static function BuildRating($ID)
        {
        }
        public static function DeleteByUser($ID)
        {
        }
        // insert result calculate rating
        public static function AddResults($arResults)
        {
        }
        // insert result calculate rating-components
        public static function AddComponentResults($arComponentConfigs)
        {
        }
        public static function SetAuthorityRating($ratingId)
        {
        }
        public static function GetCommunityInfo($ratingId)
        {
        }
        public static function CheckAllowVote($arVoteParam)
        {
        }
        public static function SetAuthorityDefaultValue($arParams)
        {
        }
        public static function AutoAssignGroup($groupId, $authorityValueAdd, $authorityValueDelete)
        {
        }
        public static function GetRatingVoteListSQL($arParam, $bplus, $bIntranetInstalled)
        {
        }
        public static function GetRatingVoteListSQLExtended($arParam, $bplus, $bIntranetInstalled)
        {
        }
        private static function getReactionFilterSQL($arParam, $bplus)
        {
        }
    }
    class COption extends \CAllOption
    {
    }
    class CPageOption extends \CAllPageOption
    {
    }
    class CBXShortUri extends \CBXAllShortUri
    {
        public static function Add($arFields)
        {
        }
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arNavStartParams = \false)
        {
        }
    }
    class CSQLWhere extends \CAllSQLWhere
    {
        function _Empty($field)
        {
        }
        function _NotEmpty($field)
        {
        }
    }
    class CRatingRulesMain extends \CAllRatingRulesMain
    {
        function err_mess()
        {
        }
        function voteCheck($arConfigs)
        {
        }
    }
    class CDiskQuota extends \CAllDiskQuota
    {
        function SetDBSize()
        {
        }
    }
    class CUserTypeEntity extends \CAllUserTypeEntity
    {
        function CreatePropertyTables($entity_id)
        {
        }
        function DropColumnSQL($strTable, $arColumns)
        {
        }
    }
    class CFavorites extends \CAllFavorites
    {
        public static function GetList($aSort = array(), $arFilter = array())
        {
        }
    }
    class CUserCounter extends \CAllUserCounter
    {
        public static function Set($user_id, $code, $value, $site_id = \SITE_ID, $tag = '', $sendPull = \true)
        {
        }
        public static function Increment($user_id, $code, $site_id = \SITE_ID, $sendPull = \true, $increment = 1)
        {
        }
        /**
         * @deprecated
         * @param $user_id
         * @param $code
         * @param string $site_id
         * @param bool $sendPull
         * @param int $decrement
         * @return bool
         */
        public static function Decrement($user_id, $code, $site_id = \SITE_ID, $sendPull = \true, $decrement = 1)
        {
        }
        public static function IncrementWithSelect($sub_select, $sendPull = \true, $arParams = array())
        {
        }
        public static function Clear($user_id, $code, $site_id = \SITE_ID, $sendPull = \true, $bMultiple = \false)
        {
        }
        public static function DeleteByCode($code)
        {
        }
        protected static function dbIF($condition, $yes, $no)
        {
        }
        // legacy function
        public static function ClearByUser($user_id, $site_id = \SITE_ID, $code = self::ALL_SITES, $bMultiple = \false, $sendPull = \true)
        {
        }
    }
    class CUserCounterPage extends \CAllUserCounterPage
    {
        public static function checkSendCounter()
        {
        }
    }
    class CMainPage
    {
        // îïðåäåëÿåò ñàéò ïî HTTP_HOST â òàáëèöå ñàéòîâ
        function GetSiteByHost()
        {
        }
        // îïðåäåëÿåò ñàéò ïî HTTP_ACCEPT_LANGUAGE
        function GetSiteByAcceptLanguage($compare_site_id = \false)
        {
        }
        // äåëàåò ïåðåíàïðàâëåíèå íà ñàéò
        function RedirectToSite($site)
        {
        }
        // ïîäêëþ÷àåò ñòðàíèöó ñ ïàïêè äðóãîãî ñàéòà
        function GetIncludeSitePage($site)
        {
        }
    }
}
namespace Bitrix\Main\Entity {
    /**
     * Entity field class for user field
     * @deprecated
     * @package bitrix
     * @subpackage main
     */
    class UField extends \Bitrix\Main\Entity\Field
    {
        protected $is_multiple, $type_id, $base_type, $field_id;
        public function __construct(array $info)
        {
        }
        public function getTypeMask()
        {
        }
        public function validateValue($value, $primary, $row, \Bitrix\Main\Entity\Result $result)
        {
        }
        public function getTypeId()
        {
        }
        public function isMultiple()
        {
        }
        public function getBaseType()
        {
        }
        public function getFieldId()
        {
        }
        public function getValueFieldName()
        {
        }
        //public static function getDataTypeByBaseType($baseType)
        public static function convertBaseTypeToDataType($baseType)
        {
        }
        public function getColumnName()
        {
        }
    }
}
namespace Bitrix\Main\Session\Handlers\Table {
    /**
     * EO_UserSession
     * @see \Bitrix\Main\Session\Handlers\Table\UserSessionTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getSessionId()
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession setSessionId(\string|\Bitrix\Main\DB\SqlExpression $sessionId)
     * @method bool hasSessionId()
     * @method bool isSessionIdFilled()
     * @method bool isSessionIdChanged()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession resetTimestampX()
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \string getSessionData()
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession setSessionData(\string|\Bitrix\Main\DB\SqlExpression $sessionData)
     * @method bool hasSessionData()
     * @method bool isSessionDataFilled()
     * @method bool isSessionDataChanged()
     * @method \string remindActualSessionData()
     * @method \string requireSessionData()
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession resetSessionData()
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession unsetSessionData()
     * @method \string fillSessionData()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession set($fieldName, $value)
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession reset($fieldName)
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Session\Handlers\Table\EO_UserSession wakeUp($data)
     */
    class EO_UserSession
    {
        /* @var \Bitrix\Main\Session\Handlers\Table\UserSessionTable */
        public static $dataClass = '\\Bitrix\\Main\\Session\\Handlers\\Table\\UserSessionTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserSession_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getSessionIdList()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \string[] getSessionDataList()
     * @method \string[] fillSessionData()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Session\Handlers\Table\EO_UserSession $object)
     * @method bool has(\Bitrix\Main\Session\Handlers\Table\EO_UserSession $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession getByPrimary($primary)
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession[] getAll()
     * @method bool remove(\Bitrix\Main\Session\Handlers\Table\EO_UserSession $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Session\Handlers\Table\EO_UserSession_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserSession_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Session\Handlers\Table\UserSessionTable */
        public static $dataClass = '\\Bitrix\\Main\\Session\\Handlers\\Table\\UserSessionTable';
    }
    /**
     * @method static EO_UserSession_Query query()
     * @method static EO_UserSession_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserSession_Result getById($id)
     * @method static EO_UserSession_Result getList(array $parameters = array())
     * @method static EO_UserSession_Entity getEntity()
     * @method static \Bitrix\Main\Session\Handlers\Table\EO_UserSession createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Session\Handlers\Table\EO_UserSession_Collection createCollection()
     * @method static \Bitrix\Main\Session\Handlers\Table\EO_UserSession wakeUpObject($row)
     * @method static \Bitrix\Main\Session\Handlers\Table\EO_UserSession_Collection wakeUpCollection($rows)
     */
    class UserSessionTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserSession_Result exec()
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession fetchObject()
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserSession_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession fetchObject()
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession_Collection fetchCollection()
     */
    class EO_UserSession_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession_Collection createCollection()
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession wakeUpObject($row)
     * @method \Bitrix\Main\Session\Handlers\Table\EO_UserSession_Collection wakeUpCollection($rows)
     */
    class EO_UserSession_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main {
    /**
     * EO_User
     * @see \Bitrix\Main\UserTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\EO_User setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getLogin()
     * @method \Bitrix\Main\EO_User setLogin(\string|\Bitrix\Main\DB\SqlExpression $login)
     * @method bool hasLogin()
     * @method bool isLoginFilled()
     * @method bool isLoginChanged()
     * @method \string remindActualLogin()
     * @method \string requireLogin()
     * @method \Bitrix\Main\EO_User resetLogin()
     * @method \Bitrix\Main\EO_User unsetLogin()
     * @method \string fillLogin()
     * @method \string getPassword()
     * @method \Bitrix\Main\EO_User setPassword(\string|\Bitrix\Main\DB\SqlExpression $password)
     * @method bool hasPassword()
     * @method bool isPasswordFilled()
     * @method bool isPasswordChanged()
     * @method \string remindActualPassword()
     * @method \string requirePassword()
     * @method \Bitrix\Main\EO_User resetPassword()
     * @method \Bitrix\Main\EO_User unsetPassword()
     * @method \string fillPassword()
     * @method \string getEmail()
     * @method \Bitrix\Main\EO_User setEmail(\string|\Bitrix\Main\DB\SqlExpression $email)
     * @method bool hasEmail()
     * @method bool isEmailFilled()
     * @method bool isEmailChanged()
     * @method \string remindActualEmail()
     * @method \string requireEmail()
     * @method \Bitrix\Main\EO_User resetEmail()
     * @method \Bitrix\Main\EO_User unsetEmail()
     * @method \string fillEmail()
     * @method \boolean getActive()
     * @method \Bitrix\Main\EO_User setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Main\EO_User resetActive()
     * @method \Bitrix\Main\EO_User unsetActive()
     * @method \boolean fillActive()
     * @method \boolean getBlocked()
     * @method \Bitrix\Main\EO_User setBlocked(\boolean|\Bitrix\Main\DB\SqlExpression $blocked)
     * @method bool hasBlocked()
     * @method bool isBlockedFilled()
     * @method bool isBlockedChanged()
     * @method \boolean remindActualBlocked()
     * @method \boolean requireBlocked()
     * @method \Bitrix\Main\EO_User resetBlocked()
     * @method \Bitrix\Main\EO_User unsetBlocked()
     * @method \boolean fillBlocked()
     * @method \Bitrix\Main\Type\DateTime getDateRegister()
     * @method \Bitrix\Main\EO_User setDateRegister(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateRegister)
     * @method bool hasDateRegister()
     * @method bool isDateRegisterFilled()
     * @method bool isDateRegisterChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateRegister()
     * @method \Bitrix\Main\Type\DateTime requireDateRegister()
     * @method \Bitrix\Main\EO_User resetDateRegister()
     * @method \Bitrix\Main\EO_User unsetDateRegister()
     * @method \Bitrix\Main\Type\DateTime fillDateRegister()
     * @method \Bitrix\Main\Type\DateTime getDateRegShort()
     * @method \Bitrix\Main\Type\DateTime remindActualDateRegShort()
     * @method \Bitrix\Main\Type\DateTime requireDateRegShort()
     * @method bool hasDateRegShort()
     * @method bool isDateRegShortFilled()
     * @method \Bitrix\Main\EO_User unsetDateRegShort()
     * @method \Bitrix\Main\Type\DateTime fillDateRegShort()
     * @method \Bitrix\Main\Type\DateTime getLastLogin()
     * @method \Bitrix\Main\EO_User setLastLogin(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastLogin)
     * @method bool hasLastLogin()
     * @method bool isLastLoginFilled()
     * @method bool isLastLoginChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastLogin()
     * @method \Bitrix\Main\Type\DateTime requireLastLogin()
     * @method \Bitrix\Main\EO_User resetLastLogin()
     * @method \Bitrix\Main\EO_User unsetLastLogin()
     * @method \Bitrix\Main\Type\DateTime fillLastLogin()
     * @method \Bitrix\Main\Type\DateTime getLastLoginShort()
     * @method \Bitrix\Main\Type\DateTime remindActualLastLoginShort()
     * @method \Bitrix\Main\Type\DateTime requireLastLoginShort()
     * @method bool hasLastLoginShort()
     * @method bool isLastLoginShortFilled()
     * @method \Bitrix\Main\EO_User unsetLastLoginShort()
     * @method \Bitrix\Main\Type\DateTime fillLastLoginShort()
     * @method \Bitrix\Main\Type\DateTime getLastActivityDate()
     * @method \Bitrix\Main\EO_User setLastActivityDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastActivityDate)
     * @method bool hasLastActivityDate()
     * @method bool isLastActivityDateFilled()
     * @method bool isLastActivityDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastActivityDate()
     * @method \Bitrix\Main\Type\DateTime requireLastActivityDate()
     * @method \Bitrix\Main\EO_User resetLastActivityDate()
     * @method \Bitrix\Main\EO_User unsetLastActivityDate()
     * @method \Bitrix\Main\Type\DateTime fillLastActivityDate()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Main\EO_User setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Main\EO_User resetTimestampX()
     * @method \Bitrix\Main\EO_User unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \string getName()
     * @method \Bitrix\Main\EO_User setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Main\EO_User resetName()
     * @method \Bitrix\Main\EO_User unsetName()
     * @method \string fillName()
     * @method \string getSecondName()
     * @method \Bitrix\Main\EO_User setSecondName(\string|\Bitrix\Main\DB\SqlExpression $secondName)
     * @method bool hasSecondName()
     * @method bool isSecondNameFilled()
     * @method bool isSecondNameChanged()
     * @method \string remindActualSecondName()
     * @method \string requireSecondName()
     * @method \Bitrix\Main\EO_User resetSecondName()
     * @method \Bitrix\Main\EO_User unsetSecondName()
     * @method \string fillSecondName()
     * @method \string getLastName()
     * @method \Bitrix\Main\EO_User setLastName(\string|\Bitrix\Main\DB\SqlExpression $lastName)
     * @method bool hasLastName()
     * @method bool isLastNameFilled()
     * @method bool isLastNameChanged()
     * @method \string remindActualLastName()
     * @method \string requireLastName()
     * @method \Bitrix\Main\EO_User resetLastName()
     * @method \Bitrix\Main\EO_User unsetLastName()
     * @method \string fillLastName()
     * @method \string getTitle()
     * @method \Bitrix\Main\EO_User setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Main\EO_User resetTitle()
     * @method \Bitrix\Main\EO_User unsetTitle()
     * @method \string fillTitle()
     * @method \string getExternalAuthId()
     * @method \Bitrix\Main\EO_User setExternalAuthId(\string|\Bitrix\Main\DB\SqlExpression $externalAuthId)
     * @method bool hasExternalAuthId()
     * @method bool isExternalAuthIdFilled()
     * @method bool isExternalAuthIdChanged()
     * @method \string remindActualExternalAuthId()
     * @method \string requireExternalAuthId()
     * @method \Bitrix\Main\EO_User resetExternalAuthId()
     * @method \Bitrix\Main\EO_User unsetExternalAuthId()
     * @method \string fillExternalAuthId()
     * @method \string getXmlId()
     * @method \Bitrix\Main\EO_User setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Main\EO_User resetXmlId()
     * @method \Bitrix\Main\EO_User unsetXmlId()
     * @method \string fillXmlId()
     * @method \string getBxUserId()
     * @method \Bitrix\Main\EO_User setBxUserId(\string|\Bitrix\Main\DB\SqlExpression $bxUserId)
     * @method bool hasBxUserId()
     * @method bool isBxUserIdFilled()
     * @method bool isBxUserIdChanged()
     * @method \string remindActualBxUserId()
     * @method \string requireBxUserId()
     * @method \Bitrix\Main\EO_User resetBxUserId()
     * @method \Bitrix\Main\EO_User unsetBxUserId()
     * @method \string fillBxUserId()
     * @method \string getConfirmCode()
     * @method \Bitrix\Main\EO_User setConfirmCode(\string|\Bitrix\Main\DB\SqlExpression $confirmCode)
     * @method bool hasConfirmCode()
     * @method bool isConfirmCodeFilled()
     * @method bool isConfirmCodeChanged()
     * @method \string remindActualConfirmCode()
     * @method \string requireConfirmCode()
     * @method \Bitrix\Main\EO_User resetConfirmCode()
     * @method \Bitrix\Main\EO_User unsetConfirmCode()
     * @method \string fillConfirmCode()
     * @method \string getLid()
     * @method \Bitrix\Main\EO_User setLid(\string|\Bitrix\Main\DB\SqlExpression $lid)
     * @method bool hasLid()
     * @method bool isLidFilled()
     * @method bool isLidChanged()
     * @method \string remindActualLid()
     * @method \string requireLid()
     * @method \Bitrix\Main\EO_User resetLid()
     * @method \Bitrix\Main\EO_User unsetLid()
     * @method \string fillLid()
     * @method \string getLanguageId()
     * @method \Bitrix\Main\EO_User setLanguageId(\string|\Bitrix\Main\DB\SqlExpression $languageId)
     * @method bool hasLanguageId()
     * @method bool isLanguageIdFilled()
     * @method bool isLanguageIdChanged()
     * @method \string remindActualLanguageId()
     * @method \string requireLanguageId()
     * @method \Bitrix\Main\EO_User resetLanguageId()
     * @method \Bitrix\Main\EO_User unsetLanguageId()
     * @method \string fillLanguageId()
     * @method \int getTimeZoneOffset()
     * @method \Bitrix\Main\EO_User setTimeZoneOffset(\int|\Bitrix\Main\DB\SqlExpression $timeZoneOffset)
     * @method bool hasTimeZoneOffset()
     * @method bool isTimeZoneOffsetFilled()
     * @method bool isTimeZoneOffsetChanged()
     * @method \int remindActualTimeZoneOffset()
     * @method \int requireTimeZoneOffset()
     * @method \Bitrix\Main\EO_User resetTimeZoneOffset()
     * @method \Bitrix\Main\EO_User unsetTimeZoneOffset()
     * @method \int fillTimeZoneOffset()
     * @method \string getPersonalProfession()
     * @method \Bitrix\Main\EO_User setPersonalProfession(\string|\Bitrix\Main\DB\SqlExpression $personalProfession)
     * @method bool hasPersonalProfession()
     * @method bool isPersonalProfessionFilled()
     * @method bool isPersonalProfessionChanged()
     * @method \string remindActualPersonalProfession()
     * @method \string requirePersonalProfession()
     * @method \Bitrix\Main\EO_User resetPersonalProfession()
     * @method \Bitrix\Main\EO_User unsetPersonalProfession()
     * @method \string fillPersonalProfession()
     * @method \string getPersonalPhone()
     * @method \Bitrix\Main\EO_User setPersonalPhone(\string|\Bitrix\Main\DB\SqlExpression $personalPhone)
     * @method bool hasPersonalPhone()
     * @method bool isPersonalPhoneFilled()
     * @method bool isPersonalPhoneChanged()
     * @method \string remindActualPersonalPhone()
     * @method \string requirePersonalPhone()
     * @method \Bitrix\Main\EO_User resetPersonalPhone()
     * @method \Bitrix\Main\EO_User unsetPersonalPhone()
     * @method \string fillPersonalPhone()
     * @method \string getPersonalMobile()
     * @method \Bitrix\Main\EO_User setPersonalMobile(\string|\Bitrix\Main\DB\SqlExpression $personalMobile)
     * @method bool hasPersonalMobile()
     * @method bool isPersonalMobileFilled()
     * @method bool isPersonalMobileChanged()
     * @method \string remindActualPersonalMobile()
     * @method \string requirePersonalMobile()
     * @method \Bitrix\Main\EO_User resetPersonalMobile()
     * @method \Bitrix\Main\EO_User unsetPersonalMobile()
     * @method \string fillPersonalMobile()
     * @method \string getPersonalWww()
     * @method \Bitrix\Main\EO_User setPersonalWww(\string|\Bitrix\Main\DB\SqlExpression $personalWww)
     * @method bool hasPersonalWww()
     * @method bool isPersonalWwwFilled()
     * @method bool isPersonalWwwChanged()
     * @method \string remindActualPersonalWww()
     * @method \string requirePersonalWww()
     * @method \Bitrix\Main\EO_User resetPersonalWww()
     * @method \Bitrix\Main\EO_User unsetPersonalWww()
     * @method \string fillPersonalWww()
     * @method \string getPersonalIcq()
     * @method \Bitrix\Main\EO_User setPersonalIcq(\string|\Bitrix\Main\DB\SqlExpression $personalIcq)
     * @method bool hasPersonalIcq()
     * @method bool isPersonalIcqFilled()
     * @method bool isPersonalIcqChanged()
     * @method \string remindActualPersonalIcq()
     * @method \string requirePersonalIcq()
     * @method \Bitrix\Main\EO_User resetPersonalIcq()
     * @method \Bitrix\Main\EO_User unsetPersonalIcq()
     * @method \string fillPersonalIcq()
     * @method \string getPersonalFax()
     * @method \Bitrix\Main\EO_User setPersonalFax(\string|\Bitrix\Main\DB\SqlExpression $personalFax)
     * @method bool hasPersonalFax()
     * @method bool isPersonalFaxFilled()
     * @method bool isPersonalFaxChanged()
     * @method \string remindActualPersonalFax()
     * @method \string requirePersonalFax()
     * @method \Bitrix\Main\EO_User resetPersonalFax()
     * @method \Bitrix\Main\EO_User unsetPersonalFax()
     * @method \string fillPersonalFax()
     * @method \string getPersonalPager()
     * @method \Bitrix\Main\EO_User setPersonalPager(\string|\Bitrix\Main\DB\SqlExpression $personalPager)
     * @method bool hasPersonalPager()
     * @method bool isPersonalPagerFilled()
     * @method bool isPersonalPagerChanged()
     * @method \string remindActualPersonalPager()
     * @method \string requirePersonalPager()
     * @method \Bitrix\Main\EO_User resetPersonalPager()
     * @method \Bitrix\Main\EO_User unsetPersonalPager()
     * @method \string fillPersonalPager()
     * @method \string getPersonalStreet()
     * @method \Bitrix\Main\EO_User setPersonalStreet(\string|\Bitrix\Main\DB\SqlExpression $personalStreet)
     * @method bool hasPersonalStreet()
     * @method bool isPersonalStreetFilled()
     * @method bool isPersonalStreetChanged()
     * @method \string remindActualPersonalStreet()
     * @method \string requirePersonalStreet()
     * @method \Bitrix\Main\EO_User resetPersonalStreet()
     * @method \Bitrix\Main\EO_User unsetPersonalStreet()
     * @method \string fillPersonalStreet()
     * @method \string getPersonalMailbox()
     * @method \Bitrix\Main\EO_User setPersonalMailbox(\string|\Bitrix\Main\DB\SqlExpression $personalMailbox)
     * @method bool hasPersonalMailbox()
     * @method bool isPersonalMailboxFilled()
     * @method bool isPersonalMailboxChanged()
     * @method \string remindActualPersonalMailbox()
     * @method \string requirePersonalMailbox()
     * @method \Bitrix\Main\EO_User resetPersonalMailbox()
     * @method \Bitrix\Main\EO_User unsetPersonalMailbox()
     * @method \string fillPersonalMailbox()
     * @method \string getPersonalCity()
     * @method \Bitrix\Main\EO_User setPersonalCity(\string|\Bitrix\Main\DB\SqlExpression $personalCity)
     * @method bool hasPersonalCity()
     * @method bool isPersonalCityFilled()
     * @method bool isPersonalCityChanged()
     * @method \string remindActualPersonalCity()
     * @method \string requirePersonalCity()
     * @method \Bitrix\Main\EO_User resetPersonalCity()
     * @method \Bitrix\Main\EO_User unsetPersonalCity()
     * @method \string fillPersonalCity()
     * @method \string getPersonalState()
     * @method \Bitrix\Main\EO_User setPersonalState(\string|\Bitrix\Main\DB\SqlExpression $personalState)
     * @method bool hasPersonalState()
     * @method bool isPersonalStateFilled()
     * @method bool isPersonalStateChanged()
     * @method \string remindActualPersonalState()
     * @method \string requirePersonalState()
     * @method \Bitrix\Main\EO_User resetPersonalState()
     * @method \Bitrix\Main\EO_User unsetPersonalState()
     * @method \string fillPersonalState()
     * @method \string getPersonalZip()
     * @method \Bitrix\Main\EO_User setPersonalZip(\string|\Bitrix\Main\DB\SqlExpression $personalZip)
     * @method bool hasPersonalZip()
     * @method bool isPersonalZipFilled()
     * @method bool isPersonalZipChanged()
     * @method \string remindActualPersonalZip()
     * @method \string requirePersonalZip()
     * @method \Bitrix\Main\EO_User resetPersonalZip()
     * @method \Bitrix\Main\EO_User unsetPersonalZip()
     * @method \string fillPersonalZip()
     * @method \string getPersonalCountry()
     * @method \Bitrix\Main\EO_User setPersonalCountry(\string|\Bitrix\Main\DB\SqlExpression $personalCountry)
     * @method bool hasPersonalCountry()
     * @method bool isPersonalCountryFilled()
     * @method bool isPersonalCountryChanged()
     * @method \string remindActualPersonalCountry()
     * @method \string requirePersonalCountry()
     * @method \Bitrix\Main\EO_User resetPersonalCountry()
     * @method \Bitrix\Main\EO_User unsetPersonalCountry()
     * @method \string fillPersonalCountry()
     * @method \Bitrix\Main\Type\Date getPersonalBirthday()
     * @method \Bitrix\Main\EO_User setPersonalBirthday(\Bitrix\Main\Type\Date|\Bitrix\Main\DB\SqlExpression $personalBirthday)
     * @method bool hasPersonalBirthday()
     * @method bool isPersonalBirthdayFilled()
     * @method bool isPersonalBirthdayChanged()
     * @method \Bitrix\Main\Type\Date remindActualPersonalBirthday()
     * @method \Bitrix\Main\Type\Date requirePersonalBirthday()
     * @method \Bitrix\Main\EO_User resetPersonalBirthday()
     * @method \Bitrix\Main\EO_User unsetPersonalBirthday()
     * @method \Bitrix\Main\Type\Date fillPersonalBirthday()
     * @method \string getPersonalGender()
     * @method \Bitrix\Main\EO_User setPersonalGender(\string|\Bitrix\Main\DB\SqlExpression $personalGender)
     * @method bool hasPersonalGender()
     * @method bool isPersonalGenderFilled()
     * @method bool isPersonalGenderChanged()
     * @method \string remindActualPersonalGender()
     * @method \string requirePersonalGender()
     * @method \Bitrix\Main\EO_User resetPersonalGender()
     * @method \Bitrix\Main\EO_User unsetPersonalGender()
     * @method \string fillPersonalGender()
     * @method \int getPersonalPhoto()
     * @method \Bitrix\Main\EO_User setPersonalPhoto(\int|\Bitrix\Main\DB\SqlExpression $personalPhoto)
     * @method bool hasPersonalPhoto()
     * @method bool isPersonalPhotoFilled()
     * @method bool isPersonalPhotoChanged()
     * @method \int remindActualPersonalPhoto()
     * @method \int requirePersonalPhoto()
     * @method \Bitrix\Main\EO_User resetPersonalPhoto()
     * @method \Bitrix\Main\EO_User unsetPersonalPhoto()
     * @method \int fillPersonalPhoto()
     * @method \string getPersonalNotes()
     * @method \Bitrix\Main\EO_User setPersonalNotes(\string|\Bitrix\Main\DB\SqlExpression $personalNotes)
     * @method bool hasPersonalNotes()
     * @method bool isPersonalNotesFilled()
     * @method bool isPersonalNotesChanged()
     * @method \string remindActualPersonalNotes()
     * @method \string requirePersonalNotes()
     * @method \Bitrix\Main\EO_User resetPersonalNotes()
     * @method \Bitrix\Main\EO_User unsetPersonalNotes()
     * @method \string fillPersonalNotes()
     * @method \string getWorkCompany()
     * @method \Bitrix\Main\EO_User setWorkCompany(\string|\Bitrix\Main\DB\SqlExpression $workCompany)
     * @method bool hasWorkCompany()
     * @method bool isWorkCompanyFilled()
     * @method bool isWorkCompanyChanged()
     * @method \string remindActualWorkCompany()
     * @method \string requireWorkCompany()
     * @method \Bitrix\Main\EO_User resetWorkCompany()
     * @method \Bitrix\Main\EO_User unsetWorkCompany()
     * @method \string fillWorkCompany()
     * @method \string getWorkDepartment()
     * @method \Bitrix\Main\EO_User setWorkDepartment(\string|\Bitrix\Main\DB\SqlExpression $workDepartment)
     * @method bool hasWorkDepartment()
     * @method bool isWorkDepartmentFilled()
     * @method bool isWorkDepartmentChanged()
     * @method \string remindActualWorkDepartment()
     * @method \string requireWorkDepartment()
     * @method \Bitrix\Main\EO_User resetWorkDepartment()
     * @method \Bitrix\Main\EO_User unsetWorkDepartment()
     * @method \string fillWorkDepartment()
     * @method \string getWorkPhone()
     * @method \Bitrix\Main\EO_User setWorkPhone(\string|\Bitrix\Main\DB\SqlExpression $workPhone)
     * @method bool hasWorkPhone()
     * @method bool isWorkPhoneFilled()
     * @method bool isWorkPhoneChanged()
     * @method \string remindActualWorkPhone()
     * @method \string requireWorkPhone()
     * @method \Bitrix\Main\EO_User resetWorkPhone()
     * @method \Bitrix\Main\EO_User unsetWorkPhone()
     * @method \string fillWorkPhone()
     * @method \string getWorkPosition()
     * @method \Bitrix\Main\EO_User setWorkPosition(\string|\Bitrix\Main\DB\SqlExpression $workPosition)
     * @method bool hasWorkPosition()
     * @method bool isWorkPositionFilled()
     * @method bool isWorkPositionChanged()
     * @method \string remindActualWorkPosition()
     * @method \string requireWorkPosition()
     * @method \Bitrix\Main\EO_User resetWorkPosition()
     * @method \Bitrix\Main\EO_User unsetWorkPosition()
     * @method \string fillWorkPosition()
     * @method \string getWorkWww()
     * @method \Bitrix\Main\EO_User setWorkWww(\string|\Bitrix\Main\DB\SqlExpression $workWww)
     * @method bool hasWorkWww()
     * @method bool isWorkWwwFilled()
     * @method bool isWorkWwwChanged()
     * @method \string remindActualWorkWww()
     * @method \string requireWorkWww()
     * @method \Bitrix\Main\EO_User resetWorkWww()
     * @method \Bitrix\Main\EO_User unsetWorkWww()
     * @method \string fillWorkWww()
     * @method \string getWorkFax()
     * @method \Bitrix\Main\EO_User setWorkFax(\string|\Bitrix\Main\DB\SqlExpression $workFax)
     * @method bool hasWorkFax()
     * @method bool isWorkFaxFilled()
     * @method bool isWorkFaxChanged()
     * @method \string remindActualWorkFax()
     * @method \string requireWorkFax()
     * @method \Bitrix\Main\EO_User resetWorkFax()
     * @method \Bitrix\Main\EO_User unsetWorkFax()
     * @method \string fillWorkFax()
     * @method \string getWorkPager()
     * @method \Bitrix\Main\EO_User setWorkPager(\string|\Bitrix\Main\DB\SqlExpression $workPager)
     * @method bool hasWorkPager()
     * @method bool isWorkPagerFilled()
     * @method bool isWorkPagerChanged()
     * @method \string remindActualWorkPager()
     * @method \string requireWorkPager()
     * @method \Bitrix\Main\EO_User resetWorkPager()
     * @method \Bitrix\Main\EO_User unsetWorkPager()
     * @method \string fillWorkPager()
     * @method \string getWorkStreet()
     * @method \Bitrix\Main\EO_User setWorkStreet(\string|\Bitrix\Main\DB\SqlExpression $workStreet)
     * @method bool hasWorkStreet()
     * @method bool isWorkStreetFilled()
     * @method bool isWorkStreetChanged()
     * @method \string remindActualWorkStreet()
     * @method \string requireWorkStreet()
     * @method \Bitrix\Main\EO_User resetWorkStreet()
     * @method \Bitrix\Main\EO_User unsetWorkStreet()
     * @method \string fillWorkStreet()
     * @method \string getWorkMailbox()
     * @method \Bitrix\Main\EO_User setWorkMailbox(\string|\Bitrix\Main\DB\SqlExpression $workMailbox)
     * @method bool hasWorkMailbox()
     * @method bool isWorkMailboxFilled()
     * @method bool isWorkMailboxChanged()
     * @method \string remindActualWorkMailbox()
     * @method \string requireWorkMailbox()
     * @method \Bitrix\Main\EO_User resetWorkMailbox()
     * @method \Bitrix\Main\EO_User unsetWorkMailbox()
     * @method \string fillWorkMailbox()
     * @method \string getWorkCity()
     * @method \Bitrix\Main\EO_User setWorkCity(\string|\Bitrix\Main\DB\SqlExpression $workCity)
     * @method bool hasWorkCity()
     * @method bool isWorkCityFilled()
     * @method bool isWorkCityChanged()
     * @method \string remindActualWorkCity()
     * @method \string requireWorkCity()
     * @method \Bitrix\Main\EO_User resetWorkCity()
     * @method \Bitrix\Main\EO_User unsetWorkCity()
     * @method \string fillWorkCity()
     * @method \string getWorkState()
     * @method \Bitrix\Main\EO_User setWorkState(\string|\Bitrix\Main\DB\SqlExpression $workState)
     * @method bool hasWorkState()
     * @method bool isWorkStateFilled()
     * @method bool isWorkStateChanged()
     * @method \string remindActualWorkState()
     * @method \string requireWorkState()
     * @method \Bitrix\Main\EO_User resetWorkState()
     * @method \Bitrix\Main\EO_User unsetWorkState()
     * @method \string fillWorkState()
     * @method \string getWorkZip()
     * @method \Bitrix\Main\EO_User setWorkZip(\string|\Bitrix\Main\DB\SqlExpression $workZip)
     * @method bool hasWorkZip()
     * @method bool isWorkZipFilled()
     * @method bool isWorkZipChanged()
     * @method \string remindActualWorkZip()
     * @method \string requireWorkZip()
     * @method \Bitrix\Main\EO_User resetWorkZip()
     * @method \Bitrix\Main\EO_User unsetWorkZip()
     * @method \string fillWorkZip()
     * @method \string getWorkCountry()
     * @method \Bitrix\Main\EO_User setWorkCountry(\string|\Bitrix\Main\DB\SqlExpression $workCountry)
     * @method bool hasWorkCountry()
     * @method bool isWorkCountryFilled()
     * @method bool isWorkCountryChanged()
     * @method \string remindActualWorkCountry()
     * @method \string requireWorkCountry()
     * @method \Bitrix\Main\EO_User resetWorkCountry()
     * @method \Bitrix\Main\EO_User unsetWorkCountry()
     * @method \string fillWorkCountry()
     * @method \string getWorkProfile()
     * @method \Bitrix\Main\EO_User setWorkProfile(\string|\Bitrix\Main\DB\SqlExpression $workProfile)
     * @method bool hasWorkProfile()
     * @method bool isWorkProfileFilled()
     * @method bool isWorkProfileChanged()
     * @method \string remindActualWorkProfile()
     * @method \string requireWorkProfile()
     * @method \Bitrix\Main\EO_User resetWorkProfile()
     * @method \Bitrix\Main\EO_User unsetWorkProfile()
     * @method \string fillWorkProfile()
     * @method \int getWorkLogo()
     * @method \Bitrix\Main\EO_User setWorkLogo(\int|\Bitrix\Main\DB\SqlExpression $workLogo)
     * @method bool hasWorkLogo()
     * @method bool isWorkLogoFilled()
     * @method bool isWorkLogoChanged()
     * @method \int remindActualWorkLogo()
     * @method \int requireWorkLogo()
     * @method \Bitrix\Main\EO_User resetWorkLogo()
     * @method \Bitrix\Main\EO_User unsetWorkLogo()
     * @method \int fillWorkLogo()
     * @method \string getWorkNotes()
     * @method \Bitrix\Main\EO_User setWorkNotes(\string|\Bitrix\Main\DB\SqlExpression $workNotes)
     * @method bool hasWorkNotes()
     * @method bool isWorkNotesFilled()
     * @method bool isWorkNotesChanged()
     * @method \string remindActualWorkNotes()
     * @method \string requireWorkNotes()
     * @method \Bitrix\Main\EO_User resetWorkNotes()
     * @method \Bitrix\Main\EO_User unsetWorkNotes()
     * @method \string fillWorkNotes()
     * @method \string getAdminNotes()
     * @method \Bitrix\Main\EO_User setAdminNotes(\string|\Bitrix\Main\DB\SqlExpression $adminNotes)
     * @method bool hasAdminNotes()
     * @method bool isAdminNotesFilled()
     * @method bool isAdminNotesChanged()
     * @method \string remindActualAdminNotes()
     * @method \string requireAdminNotes()
     * @method \Bitrix\Main\EO_User resetAdminNotes()
     * @method \Bitrix\Main\EO_User unsetAdminNotes()
     * @method \string fillAdminNotes()
     * @method \string getShortName()
     * @method \string remindActualShortName()
     * @method \string requireShortName()
     * @method bool hasShortName()
     * @method bool isShortNameFilled()
     * @method \Bitrix\Main\EO_User unsetShortName()
     * @method \string fillShortName()
     * @method \boolean getIsOnline()
     * @method \boolean remindActualIsOnline()
     * @method \boolean requireIsOnline()
     * @method bool hasIsOnline()
     * @method bool isIsOnlineFilled()
     * @method \Bitrix\Main\EO_User unsetIsOnline()
     * @method \boolean fillIsOnline()
     * @method \boolean getIsRealUser()
     * @method \boolean remindActualIsRealUser()
     * @method \boolean requireIsRealUser()
     * @method bool hasIsRealUser()
     * @method bool isIsRealUserFilled()
     * @method \Bitrix\Main\EO_User unsetIsRealUser()
     * @method \boolean fillIsRealUser()
     * @method \Bitrix\Main\EO_UserIndex getIndex()
     * @method \Bitrix\Main\EO_UserIndex remindActualIndex()
     * @method \Bitrix\Main\EO_UserIndex requireIndex()
     * @method \Bitrix\Main\EO_User setIndex(\Bitrix\Main\EO_UserIndex $object)
     * @method \Bitrix\Main\EO_User resetIndex()
     * @method \Bitrix\Main\EO_User unsetIndex()
     * @method bool hasIndex()
     * @method bool isIndexFilled()
     * @method bool isIndexChanged()
     * @method \Bitrix\Main\EO_UserIndex fillIndex()
     * @method \Bitrix\Main\EO_UserIndexSelector getIndexSelector()
     * @method \Bitrix\Main\EO_UserIndexSelector remindActualIndexSelector()
     * @method \Bitrix\Main\EO_UserIndexSelector requireIndexSelector()
     * @method \Bitrix\Main\EO_User setIndexSelector(\Bitrix\Main\EO_UserIndexSelector $object)
     * @method \Bitrix\Main\EO_User resetIndexSelector()
     * @method \Bitrix\Main\EO_User unsetIndexSelector()
     * @method bool hasIndexSelector()
     * @method bool isIndexSelectorFilled()
     * @method bool isIndexSelectorChanged()
     * @method \Bitrix\Main\EO_UserIndexSelector fillIndexSelector()
     * @method \Bitrix\Main\EO_UserCounter getCounter()
     * @method \Bitrix\Main\EO_UserCounter remindActualCounter()
     * @method \Bitrix\Main\EO_UserCounter requireCounter()
     * @method \Bitrix\Main\EO_User setCounter(\Bitrix\Main\EO_UserCounter $object)
     * @method \Bitrix\Main\EO_User resetCounter()
     * @method \Bitrix\Main\EO_User unsetCounter()
     * @method bool hasCounter()
     * @method bool isCounterFilled()
     * @method bool isCounterChanged()
     * @method \Bitrix\Main\EO_UserCounter fillCounter()
     * @method \Bitrix\Main\EO_UserPhoneAuth getPhoneAuth()
     * @method \Bitrix\Main\EO_UserPhoneAuth remindActualPhoneAuth()
     * @method \Bitrix\Main\EO_UserPhoneAuth requirePhoneAuth()
     * @method \Bitrix\Main\EO_User setPhoneAuth(\Bitrix\Main\EO_UserPhoneAuth $object)
     * @method \Bitrix\Main\EO_User resetPhoneAuth()
     * @method \Bitrix\Main\EO_User unsetPhoneAuth()
     * @method bool hasPhoneAuth()
     * @method bool isPhoneAuthFilled()
     * @method bool isPhoneAuthChanged()
     * @method \Bitrix\Main\EO_UserPhoneAuth fillPhoneAuth()
     * @method \Bitrix\Main\EO_UserGroup_Collection getGroups()
     * @method \Bitrix\Main\EO_UserGroup_Collection requireGroups()
     * @method \Bitrix\Main\EO_UserGroup_Collection fillGroups()
     * @method bool hasGroups()
     * @method bool isGroupsFilled()
     * @method bool isGroupsChanged()
     * @method void addToGroups(\Bitrix\Main\EO_UserGroup $userGroup)
     * @method void removeFromGroups(\Bitrix\Main\EO_UserGroup $userGroup)
     * @method void removeAllGroups()
     * @method \Bitrix\Main\EO_User resetGroups()
     * @method \Bitrix\Main\EO_User unsetGroups()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_User set($fieldName, $value)
     * @method \Bitrix\Main\EO_User reset($fieldName)
     * @method \Bitrix\Main\EO_User unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_User wakeUp($data)
     */
    class EO_User
    {
        /* @var \Bitrix\Main\UserTable */
        public static $dataClass = '\\Bitrix\\Main\\UserTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_User_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getLoginList()
     * @method \string[] fillLogin()
     * @method \string[] getPasswordList()
     * @method \string[] fillPassword()
     * @method \string[] getEmailList()
     * @method \string[] fillEmail()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \boolean[] getBlockedList()
     * @method \boolean[] fillBlocked()
     * @method \Bitrix\Main\Type\DateTime[] getDateRegisterList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateRegister()
     * @method \Bitrix\Main\Type\DateTime[] getDateRegShortList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateRegShort()
     * @method \Bitrix\Main\Type\DateTime[] getLastLoginList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastLogin()
     * @method \Bitrix\Main\Type\DateTime[] getLastLoginShortList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastLoginShort()
     * @method \Bitrix\Main\Type\DateTime[] getLastActivityDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastActivityDate()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getSecondNameList()
     * @method \string[] fillSecondName()
     * @method \string[] getLastNameList()
     * @method \string[] fillLastName()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getExternalAuthIdList()
     * @method \string[] fillExternalAuthId()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \string[] getBxUserIdList()
     * @method \string[] fillBxUserId()
     * @method \string[] getConfirmCodeList()
     * @method \string[] fillConfirmCode()
     * @method \string[] getLidList()
     * @method \string[] fillLid()
     * @method \string[] getLanguageIdList()
     * @method \string[] fillLanguageId()
     * @method \int[] getTimeZoneOffsetList()
     * @method \int[] fillTimeZoneOffset()
     * @method \string[] getPersonalProfessionList()
     * @method \string[] fillPersonalProfession()
     * @method \string[] getPersonalPhoneList()
     * @method \string[] fillPersonalPhone()
     * @method \string[] getPersonalMobileList()
     * @method \string[] fillPersonalMobile()
     * @method \string[] getPersonalWwwList()
     * @method \string[] fillPersonalWww()
     * @method \string[] getPersonalIcqList()
     * @method \string[] fillPersonalIcq()
     * @method \string[] getPersonalFaxList()
     * @method \string[] fillPersonalFax()
     * @method \string[] getPersonalPagerList()
     * @method \string[] fillPersonalPager()
     * @method \string[] getPersonalStreetList()
     * @method \string[] fillPersonalStreet()
     * @method \string[] getPersonalMailboxList()
     * @method \string[] fillPersonalMailbox()
     * @method \string[] getPersonalCityList()
     * @method \string[] fillPersonalCity()
     * @method \string[] getPersonalStateList()
     * @method \string[] fillPersonalState()
     * @method \string[] getPersonalZipList()
     * @method \string[] fillPersonalZip()
     * @method \string[] getPersonalCountryList()
     * @method \string[] fillPersonalCountry()
     * @method \Bitrix\Main\Type\Date[] getPersonalBirthdayList()
     * @method \Bitrix\Main\Type\Date[] fillPersonalBirthday()
     * @method \string[] getPersonalGenderList()
     * @method \string[] fillPersonalGender()
     * @method \int[] getPersonalPhotoList()
     * @method \int[] fillPersonalPhoto()
     * @method \string[] getPersonalNotesList()
     * @method \string[] fillPersonalNotes()
     * @method \string[] getWorkCompanyList()
     * @method \string[] fillWorkCompany()
     * @method \string[] getWorkDepartmentList()
     * @method \string[] fillWorkDepartment()
     * @method \string[] getWorkPhoneList()
     * @method \string[] fillWorkPhone()
     * @method \string[] getWorkPositionList()
     * @method \string[] fillWorkPosition()
     * @method \string[] getWorkWwwList()
     * @method \string[] fillWorkWww()
     * @method \string[] getWorkFaxList()
     * @method \string[] fillWorkFax()
     * @method \string[] getWorkPagerList()
     * @method \string[] fillWorkPager()
     * @method \string[] getWorkStreetList()
     * @method \string[] fillWorkStreet()
     * @method \string[] getWorkMailboxList()
     * @method \string[] fillWorkMailbox()
     * @method \string[] getWorkCityList()
     * @method \string[] fillWorkCity()
     * @method \string[] getWorkStateList()
     * @method \string[] fillWorkState()
     * @method \string[] getWorkZipList()
     * @method \string[] fillWorkZip()
     * @method \string[] getWorkCountryList()
     * @method \string[] fillWorkCountry()
     * @method \string[] getWorkProfileList()
     * @method \string[] fillWorkProfile()
     * @method \int[] getWorkLogoList()
     * @method \int[] fillWorkLogo()
     * @method \string[] getWorkNotesList()
     * @method \string[] fillWorkNotes()
     * @method \string[] getAdminNotesList()
     * @method \string[] fillAdminNotes()
     * @method \string[] getShortNameList()
     * @method \string[] fillShortName()
     * @method \boolean[] getIsOnlineList()
     * @method \boolean[] fillIsOnline()
     * @method \boolean[] getIsRealUserList()
     * @method \boolean[] fillIsRealUser()
     * @method \Bitrix\Main\EO_UserIndex[] getIndexList()
     * @method \Bitrix\Main\EO_User_Collection getIndexCollection()
     * @method \Bitrix\Main\EO_UserIndex_Collection fillIndex()
     * @method \Bitrix\Main\EO_UserIndexSelector[] getIndexSelectorList()
     * @method \Bitrix\Main\EO_User_Collection getIndexSelectorCollection()
     * @method \Bitrix\Main\EO_UserIndexSelector_Collection fillIndexSelector()
     * @method \Bitrix\Main\EO_UserCounter[] getCounterList()
     * @method \Bitrix\Main\EO_User_Collection getCounterCollection()
     * @method \Bitrix\Main\EO_UserCounter_Collection fillCounter()
     * @method \Bitrix\Main\EO_UserPhoneAuth[] getPhoneAuthList()
     * @method \Bitrix\Main\EO_User_Collection getPhoneAuthCollection()
     * @method \Bitrix\Main\EO_UserPhoneAuth_Collection fillPhoneAuth()
     * @method \Bitrix\Main\EO_UserGroup_Collection[] getGroupsList()
     * @method \Bitrix\Main\EO_UserGroup_Collection getGroupsCollection()
     * @method \Bitrix\Main\EO_UserGroup_Collection fillGroups()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_User $object)
     * @method bool has(\Bitrix\Main\EO_User $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_User getByPrimary($primary)
     * @method \Bitrix\Main\EO_User[] getAll()
     * @method bool remove(\Bitrix\Main\EO_User $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_User_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_User current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_User_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserTable */
        public static $dataClass = '\\Bitrix\\Main\\UserTable';
    }
    /**
     * @method static EO_User_Query query()
     * @method static EO_User_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_User_Result getById($id)
     * @method static EO_User_Result getList(array $parameters = array())
     * @method static EO_User_Entity getEntity()
     * @method static \Bitrix\Main\EO_User createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_User_Collection createCollection()
     * @method static \Bitrix\Main\EO_User wakeUpObject($row)
     * @method static \Bitrix\Main\EO_User_Collection wakeUpCollection($rows)
     */
    class UserTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_User_Result exec()
     * @method \Bitrix\Main\EO_User fetchObject()
     * @method \Bitrix\Main\EO_User_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_User_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_User fetchObject()
     * @method \Bitrix\Main\EO_User_Collection fetchCollection()
     */
    class EO_User_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_User createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_User_Collection createCollection()
     * @method \Bitrix\Main\EO_User wakeUpObject($row)
     * @method \Bitrix\Main\EO_User_Collection wakeUpCollection($rows)
     */
    class EO_User_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\Analytics {
    /**
     * EO_CounterData
     * @see \Bitrix\Main\Analytics\CounterDataTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getId()
     * @method \Bitrix\Main\Analytics\EO_CounterData setId(\string|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getType()
     * @method \Bitrix\Main\Analytics\EO_CounterData setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\Main\Analytics\EO_CounterData resetType()
     * @method \Bitrix\Main\Analytics\EO_CounterData unsetType()
     * @method \string fillType()
     * @method \string getData()
     * @method \Bitrix\Main\Analytics\EO_CounterData setData(\string|\Bitrix\Main\DB\SqlExpression $data)
     * @method bool hasData()
     * @method bool isDataFilled()
     * @method bool isDataChanged()
     * @method \string remindActualData()
     * @method \string requireData()
     * @method \Bitrix\Main\Analytics\EO_CounterData resetData()
     * @method \Bitrix\Main\Analytics\EO_CounterData unsetData()
     * @method \string fillData()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Analytics\EO_CounterData set($fieldName, $value)
     * @method \Bitrix\Main\Analytics\EO_CounterData reset($fieldName)
     * @method \Bitrix\Main\Analytics\EO_CounterData unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Analytics\EO_CounterData wakeUp($data)
     */
    class EO_CounterData
    {
        /* @var \Bitrix\Main\Analytics\CounterDataTable */
        public static $dataClass = '\\Bitrix\\Main\\Analytics\\CounterDataTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_CounterData_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getIdList()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \string[] getDataList()
     * @method \string[] fillData()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Analytics\EO_CounterData $object)
     * @method bool has(\Bitrix\Main\Analytics\EO_CounterData $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Analytics\EO_CounterData getByPrimary($primary)
     * @method \Bitrix\Main\Analytics\EO_CounterData[] getAll()
     * @method bool remove(\Bitrix\Main\Analytics\EO_CounterData $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Analytics\EO_CounterData_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Analytics\EO_CounterData current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_CounterData_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Analytics\CounterDataTable */
        public static $dataClass = '\\Bitrix\\Main\\Analytics\\CounterDataTable';
    }
    /**
     * @method static EO_CounterData_Query query()
     * @method static EO_CounterData_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_CounterData_Result getById($id)
     * @method static EO_CounterData_Result getList(array $parameters = array())
     * @method static EO_CounterData_Entity getEntity()
     * @method static \Bitrix\Main\Analytics\EO_CounterData createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Analytics\EO_CounterData_Collection createCollection()
     * @method static \Bitrix\Main\Analytics\EO_CounterData wakeUpObject($row)
     * @method static \Bitrix\Main\Analytics\EO_CounterData_Collection wakeUpCollection($rows)
     */
    class CounterDataTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_CounterData_Result exec()
     * @method \Bitrix\Main\Analytics\EO_CounterData fetchObject()
     * @method \Bitrix\Main\Analytics\EO_CounterData_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_CounterData_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Analytics\EO_CounterData fetchObject()
     * @method \Bitrix\Main\Analytics\EO_CounterData_Collection fetchCollection()
     */
    class EO_CounterData_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Analytics\EO_CounterData createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Analytics\EO_CounterData_Collection createCollection()
     * @method \Bitrix\Main\Analytics\EO_CounterData wakeUpObject($row)
     * @method \Bitrix\Main\Analytics\EO_CounterData_Collection wakeUpCollection($rows)
     */
    class EO_CounterData_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\Authentication {
    /**
     * EO_ApplicationPassword
     * @see \Bitrix\Main\Authentication\ApplicationPasswordTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword resetUserId()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword unsetUserId()
     * @method \int fillUserId()
     * @method \string getApplicationId()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword setApplicationId(\string|\Bitrix\Main\DB\SqlExpression $applicationId)
     * @method bool hasApplicationId()
     * @method bool isApplicationIdFilled()
     * @method bool isApplicationIdChanged()
     * @method \string remindActualApplicationId()
     * @method \string requireApplicationId()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword resetApplicationId()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword unsetApplicationId()
     * @method \string fillApplicationId()
     * @method \string getPassword()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword setPassword(\string|\Bitrix\Main\DB\SqlExpression $password)
     * @method bool hasPassword()
     * @method bool isPasswordFilled()
     * @method bool isPasswordChanged()
     * @method \string remindActualPassword()
     * @method \string requirePassword()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword resetPassword()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword unsetPassword()
     * @method \string fillPassword()
     * @method \string getDigestPassword()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword setDigestPassword(\string|\Bitrix\Main\DB\SqlExpression $digestPassword)
     * @method bool hasDigestPassword()
     * @method bool isDigestPasswordFilled()
     * @method bool isDigestPasswordChanged()
     * @method \string remindActualDigestPassword()
     * @method \string requireDigestPassword()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword resetDigestPassword()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword unsetDigestPassword()
     * @method \string fillDigestPassword()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword resetDateCreate()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateLogin()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword setDateLogin(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateLogin)
     * @method bool hasDateLogin()
     * @method bool isDateLoginFilled()
     * @method bool isDateLoginChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateLogin()
     * @method \Bitrix\Main\Type\DateTime requireDateLogin()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword resetDateLogin()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword unsetDateLogin()
     * @method \Bitrix\Main\Type\DateTime fillDateLogin()
     * @method \string getLastIp()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword setLastIp(\string|\Bitrix\Main\DB\SqlExpression $lastIp)
     * @method bool hasLastIp()
     * @method bool isLastIpFilled()
     * @method bool isLastIpChanged()
     * @method \string remindActualLastIp()
     * @method \string requireLastIp()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword resetLastIp()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword unsetLastIp()
     * @method \string fillLastIp()
     * @method \string getComment()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword setComment(\string|\Bitrix\Main\DB\SqlExpression $comment)
     * @method bool hasComment()
     * @method bool isCommentFilled()
     * @method bool isCommentChanged()
     * @method \string remindActualComment()
     * @method \string requireComment()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword resetComment()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword unsetComment()
     * @method \string fillComment()
     * @method \string getSyscomment()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword setSyscomment(\string|\Bitrix\Main\DB\SqlExpression $syscomment)
     * @method bool hasSyscomment()
     * @method bool isSyscommentFilled()
     * @method bool isSyscommentChanged()
     * @method \string remindActualSyscomment()
     * @method \string requireSyscomment()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword resetSyscomment()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword unsetSyscomment()
     * @method \string fillSyscomment()
     * @method \string getCode()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword resetCode()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword unsetCode()
     * @method \string fillCode()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword resetUser()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword set($fieldName, $value)
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword reset($fieldName)
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Authentication\EO_ApplicationPassword wakeUp($data)
     */
    class EO_ApplicationPassword
    {
        /* @var \Bitrix\Main\Authentication\ApplicationPasswordTable */
        public static $dataClass = '\\Bitrix\\Main\\Authentication\\ApplicationPasswordTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_ApplicationPassword_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \string[] getApplicationIdList()
     * @method \string[] fillApplicationId()
     * @method \string[] getPasswordList()
     * @method \string[] fillPassword()
     * @method \string[] getDigestPasswordList()
     * @method \string[] fillDigestPassword()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateLoginList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateLogin()
     * @method \string[] getLastIpList()
     * @method \string[] fillLastIp()
     * @method \string[] getCommentList()
     * @method \string[] fillComment()
     * @method \string[] getSyscommentList()
     * @method \string[] fillSyscomment()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Authentication\EO_ApplicationPassword $object)
     * @method bool has(\Bitrix\Main\Authentication\EO_ApplicationPassword $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword getByPrimary($primary)
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword[] getAll()
     * @method bool remove(\Bitrix\Main\Authentication\EO_ApplicationPassword $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Authentication\EO_ApplicationPassword_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_ApplicationPassword_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Authentication\ApplicationPasswordTable */
        public static $dataClass = '\\Bitrix\\Main\\Authentication\\ApplicationPasswordTable';
    }
    /**
     * @method static EO_ApplicationPassword_Query query()
     * @method static EO_ApplicationPassword_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_ApplicationPassword_Result getById($id)
     * @method static EO_ApplicationPassword_Result getList(array $parameters = array())
     * @method static EO_ApplicationPassword_Entity getEntity()
     * @method static \Bitrix\Main\Authentication\EO_ApplicationPassword createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Authentication\EO_ApplicationPassword_Collection createCollection()
     * @method static \Bitrix\Main\Authentication\EO_ApplicationPassword wakeUpObject($row)
     * @method static \Bitrix\Main\Authentication\EO_ApplicationPassword_Collection wakeUpCollection($rows)
     */
    class ApplicationPasswordTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_ApplicationPassword_Result exec()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword fetchObject()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_ApplicationPassword_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword fetchObject()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword_Collection fetchCollection()
     */
    class EO_ApplicationPassword_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword_Collection createCollection()
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword wakeUpObject($row)
     * @method \Bitrix\Main\Authentication\EO_ApplicationPassword_Collection wakeUpCollection($rows)
     */
    class EO_ApplicationPassword_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\Authentication\Internal {
    /**
     * EO_UserAuthCode
     * @see \Bitrix\Main\Authentication\Internal\UserAuthCodeTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \string getCodeType()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode setCodeType(\string|\Bitrix\Main\DB\SqlExpression $codeType)
     * @method bool hasCodeType()
     * @method bool isCodeTypeFilled()
     * @method bool isCodeTypeChanged()
     * @method \string getOtpSecret()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode setOtpSecret(\string|\Bitrix\Main\DB\SqlExpression $otpSecret)
     * @method bool hasOtpSecret()
     * @method bool isOtpSecretFilled()
     * @method bool isOtpSecretChanged()
     * @method \string remindActualOtpSecret()
     * @method \string requireOtpSecret()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode resetOtpSecret()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode unsetOtpSecret()
     * @method \string fillOtpSecret()
     * @method \int getAttempts()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode setAttempts(\int|\Bitrix\Main\DB\SqlExpression $attempts)
     * @method bool hasAttempts()
     * @method bool isAttemptsFilled()
     * @method bool isAttemptsChanged()
     * @method \int remindActualAttempts()
     * @method \int requireAttempts()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode resetAttempts()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode unsetAttempts()
     * @method \int fillAttempts()
     * @method \Bitrix\Main\Type\DateTime getDateSent()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode setDateSent(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateSent)
     * @method bool hasDateSent()
     * @method bool isDateSentFilled()
     * @method bool isDateSentChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateSent()
     * @method \Bitrix\Main\Type\DateTime requireDateSent()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode resetDateSent()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode unsetDateSent()
     * @method \Bitrix\Main\Type\DateTime fillDateSent()
     * @method \Bitrix\Main\Type\DateTime getDateResent()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode setDateResent(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateResent)
     * @method bool hasDateResent()
     * @method bool isDateResentFilled()
     * @method bool isDateResentChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateResent()
     * @method \Bitrix\Main\Type\DateTime requireDateResent()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode resetDateResent()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode unsetDateResent()
     * @method \Bitrix\Main\Type\DateTime fillDateResent()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode resetUser()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode set($fieldName, $value)
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode reset($fieldName)
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Authentication\Internal\EO_UserAuthCode wakeUp($data)
     */
    class EO_UserAuthCode
    {
        /* @var \Bitrix\Main\Authentication\Internal\UserAuthCodeTable */
        public static $dataClass = '\\Bitrix\\Main\\Authentication\\Internal\\UserAuthCodeTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserAuthCode_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \string[] getCodeTypeList()
     * @method \string[] getOtpSecretList()
     * @method \string[] fillOtpSecret()
     * @method \int[] getAttemptsList()
     * @method \int[] fillAttempts()
     * @method \Bitrix\Main\Type\DateTime[] getDateSentList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateSent()
     * @method \Bitrix\Main\Type\DateTime[] getDateResentList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateResent()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Authentication\Internal\EO_UserAuthCode $object)
     * @method bool has(\Bitrix\Main\Authentication\Internal\EO_UserAuthCode $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode getByPrimary($primary)
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode[] getAll()
     * @method bool remove(\Bitrix\Main\Authentication\Internal\EO_UserAuthCode $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Authentication\Internal\EO_UserAuthCode_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserAuthCode_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Authentication\Internal\UserAuthCodeTable */
        public static $dataClass = '\\Bitrix\\Main\\Authentication\\Internal\\UserAuthCodeTable';
    }
    /**
     * @method static EO_UserAuthCode_Query query()
     * @method static EO_UserAuthCode_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserAuthCode_Result getById($id)
     * @method static EO_UserAuthCode_Result getList(array $parameters = array())
     * @method static EO_UserAuthCode_Entity getEntity()
     * @method static \Bitrix\Main\Authentication\Internal\EO_UserAuthCode createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Authentication\Internal\EO_UserAuthCode_Collection createCollection()
     * @method static \Bitrix\Main\Authentication\Internal\EO_UserAuthCode wakeUpObject($row)
     * @method static \Bitrix\Main\Authentication\Internal\EO_UserAuthCode_Collection wakeUpCollection($rows)
     */
    class UserAuthCodeTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserAuthCode_Result exec()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode fetchObject()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserAuthCode_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode fetchObject()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode_Collection fetchCollection()
     */
    class EO_UserAuthCode_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode_Collection createCollection()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode wakeUpObject($row)
     * @method \Bitrix\Main\Authentication\Internal\EO_UserAuthCode_Collection wakeUpCollection($rows)
     */
    class EO_UserAuthCode_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserPassword
     * @see \Bitrix\Main\Authentication\Internal\UserPasswordTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword resetUserId()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword unsetUserId()
     * @method \int fillUserId()
     * @method \string getPassword()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword setPassword(\string|\Bitrix\Main\DB\SqlExpression $password)
     * @method bool hasPassword()
     * @method bool isPasswordFilled()
     * @method bool isPasswordChanged()
     * @method \string remindActualPassword()
     * @method \string requirePassword()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword resetPassword()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword unsetPassword()
     * @method \string fillPassword()
     * @method \Bitrix\Main\Type\DateTime getDateChange()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword setDateChange(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateChange)
     * @method bool hasDateChange()
     * @method bool isDateChangeFilled()
     * @method bool isDateChangeChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateChange()
     * @method \Bitrix\Main\Type\DateTime requireDateChange()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword resetDateChange()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword unsetDateChange()
     * @method \Bitrix\Main\Type\DateTime fillDateChange()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword resetUser()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword set($fieldName, $value)
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword reset($fieldName)
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Authentication\Internal\EO_UserPassword wakeUp($data)
     */
    class EO_UserPassword
    {
        /* @var \Bitrix\Main\Authentication\Internal\UserPasswordTable */
        public static $dataClass = '\\Bitrix\\Main\\Authentication\\Internal\\UserPasswordTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserPassword_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \string[] getPasswordList()
     * @method \string[] fillPassword()
     * @method \Bitrix\Main\Type\DateTime[] getDateChangeList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateChange()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Authentication\Internal\EO_UserPassword $object)
     * @method bool has(\Bitrix\Main\Authentication\Internal\EO_UserPassword $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword getByPrimary($primary)
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword[] getAll()
     * @method bool remove(\Bitrix\Main\Authentication\Internal\EO_UserPassword $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Authentication\Internal\EO_UserPassword_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserPassword_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Authentication\Internal\UserPasswordTable */
        public static $dataClass = '\\Bitrix\\Main\\Authentication\\Internal\\UserPasswordTable';
    }
    /**
     * @method static EO_UserPassword_Query query()
     * @method static EO_UserPassword_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserPassword_Result getById($id)
     * @method static EO_UserPassword_Result getList(array $parameters = array())
     * @method static EO_UserPassword_Entity getEntity()
     * @method static \Bitrix\Main\Authentication\Internal\EO_UserPassword createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Authentication\Internal\EO_UserPassword_Collection createCollection()
     * @method static \Bitrix\Main\Authentication\Internal\EO_UserPassword wakeUpObject($row)
     * @method static \Bitrix\Main\Authentication\Internal\EO_UserPassword_Collection wakeUpCollection($rows)
     */
    class UserPasswordTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserPassword_Result exec()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword fetchObject()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserPassword_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword fetchObject()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword_Collection fetchCollection()
     */
    class EO_UserPassword_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword_Collection createCollection()
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword wakeUpObject($row)
     * @method \Bitrix\Main\Authentication\Internal\EO_UserPassword_Collection wakeUpCollection($rows)
     */
    class EO_UserPassword_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\Component {
    /**
     * EO_Parameters
     * @see \Bitrix\Main\Component\ParametersTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Component\EO_Parameters setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getSiteId()
     * @method \Bitrix\Main\Component\EO_Parameters setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string remindActualSiteId()
     * @method \string requireSiteId()
     * @method \Bitrix\Main\Component\EO_Parameters resetSiteId()
     * @method \Bitrix\Main\Component\EO_Parameters unsetSiteId()
     * @method \string fillSiteId()
     * @method \string getComponentName()
     * @method \Bitrix\Main\Component\EO_Parameters setComponentName(\string|\Bitrix\Main\DB\SqlExpression $componentName)
     * @method bool hasComponentName()
     * @method bool isComponentNameFilled()
     * @method bool isComponentNameChanged()
     * @method \string remindActualComponentName()
     * @method \string requireComponentName()
     * @method \Bitrix\Main\Component\EO_Parameters resetComponentName()
     * @method \Bitrix\Main\Component\EO_Parameters unsetComponentName()
     * @method \string fillComponentName()
     * @method \string getTemplateName()
     * @method \Bitrix\Main\Component\EO_Parameters setTemplateName(\string|\Bitrix\Main\DB\SqlExpression $templateName)
     * @method bool hasTemplateName()
     * @method bool isTemplateNameFilled()
     * @method bool isTemplateNameChanged()
     * @method \string remindActualTemplateName()
     * @method \string requireTemplateName()
     * @method \Bitrix\Main\Component\EO_Parameters resetTemplateName()
     * @method \Bitrix\Main\Component\EO_Parameters unsetTemplateName()
     * @method \string fillTemplateName()
     * @method \string getRealPath()
     * @method \Bitrix\Main\Component\EO_Parameters setRealPath(\string|\Bitrix\Main\DB\SqlExpression $realPath)
     * @method bool hasRealPath()
     * @method bool isRealPathFilled()
     * @method bool isRealPathChanged()
     * @method \string remindActualRealPath()
     * @method \string requireRealPath()
     * @method \Bitrix\Main\Component\EO_Parameters resetRealPath()
     * @method \Bitrix\Main\Component\EO_Parameters unsetRealPath()
     * @method \string fillRealPath()
     * @method \boolean getSefMode()
     * @method \Bitrix\Main\Component\EO_Parameters setSefMode(\boolean|\Bitrix\Main\DB\SqlExpression $sefMode)
     * @method bool hasSefMode()
     * @method bool isSefModeFilled()
     * @method bool isSefModeChanged()
     * @method \boolean remindActualSefMode()
     * @method \boolean requireSefMode()
     * @method \Bitrix\Main\Component\EO_Parameters resetSefMode()
     * @method \Bitrix\Main\Component\EO_Parameters unsetSefMode()
     * @method \boolean fillSefMode()
     * @method \string getSefFolder()
     * @method \Bitrix\Main\Component\EO_Parameters setSefFolder(\string|\Bitrix\Main\DB\SqlExpression $sefFolder)
     * @method bool hasSefFolder()
     * @method bool isSefFolderFilled()
     * @method bool isSefFolderChanged()
     * @method \string remindActualSefFolder()
     * @method \string requireSefFolder()
     * @method \Bitrix\Main\Component\EO_Parameters resetSefFolder()
     * @method \Bitrix\Main\Component\EO_Parameters unsetSefFolder()
     * @method \string fillSefFolder()
     * @method \int getStartChar()
     * @method \Bitrix\Main\Component\EO_Parameters setStartChar(\int|\Bitrix\Main\DB\SqlExpression $startChar)
     * @method bool hasStartChar()
     * @method bool isStartCharFilled()
     * @method bool isStartCharChanged()
     * @method \int remindActualStartChar()
     * @method \int requireStartChar()
     * @method \Bitrix\Main\Component\EO_Parameters resetStartChar()
     * @method \Bitrix\Main\Component\EO_Parameters unsetStartChar()
     * @method \int fillStartChar()
     * @method \int getEndChar()
     * @method \Bitrix\Main\Component\EO_Parameters setEndChar(\int|\Bitrix\Main\DB\SqlExpression $endChar)
     * @method bool hasEndChar()
     * @method bool isEndCharFilled()
     * @method bool isEndCharChanged()
     * @method \int remindActualEndChar()
     * @method \int requireEndChar()
     * @method \Bitrix\Main\Component\EO_Parameters resetEndChar()
     * @method \Bitrix\Main\Component\EO_Parameters unsetEndChar()
     * @method \int fillEndChar()
     * @method \string getParameters()
     * @method \Bitrix\Main\Component\EO_Parameters setParameters(\string|\Bitrix\Main\DB\SqlExpression $parameters)
     * @method bool hasParameters()
     * @method bool isParametersFilled()
     * @method bool isParametersChanged()
     * @method \string remindActualParameters()
     * @method \string requireParameters()
     * @method \Bitrix\Main\Component\EO_Parameters resetParameters()
     * @method \Bitrix\Main\Component\EO_Parameters unsetParameters()
     * @method \string fillParameters()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Component\EO_Parameters set($fieldName, $value)
     * @method \Bitrix\Main\Component\EO_Parameters reset($fieldName)
     * @method \Bitrix\Main\Component\EO_Parameters unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Component\EO_Parameters wakeUp($data)
     */
    class EO_Parameters
    {
        /* @var \Bitrix\Main\Component\ParametersTable */
        public static $dataClass = '\\Bitrix\\Main\\Component\\ParametersTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Parameters_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getSiteIdList()
     * @method \string[] fillSiteId()
     * @method \string[] getComponentNameList()
     * @method \string[] fillComponentName()
     * @method \string[] getTemplateNameList()
     * @method \string[] fillTemplateName()
     * @method \string[] getRealPathList()
     * @method \string[] fillRealPath()
     * @method \boolean[] getSefModeList()
     * @method \boolean[] fillSefMode()
     * @method \string[] getSefFolderList()
     * @method \string[] fillSefFolder()
     * @method \int[] getStartCharList()
     * @method \int[] fillStartChar()
     * @method \int[] getEndCharList()
     * @method \int[] fillEndChar()
     * @method \string[] getParametersList()
     * @method \string[] fillParameters()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Component\EO_Parameters $object)
     * @method bool has(\Bitrix\Main\Component\EO_Parameters $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Component\EO_Parameters getByPrimary($primary)
     * @method \Bitrix\Main\Component\EO_Parameters[] getAll()
     * @method bool remove(\Bitrix\Main\Component\EO_Parameters $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Component\EO_Parameters_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Component\EO_Parameters current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Parameters_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Component\ParametersTable */
        public static $dataClass = '\\Bitrix\\Main\\Component\\ParametersTable';
    }
    /**
     * @method static EO_Parameters_Query query()
     * @method static EO_Parameters_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Parameters_Result getById($id)
     * @method static EO_Parameters_Result getList(array $parameters = array())
     * @method static EO_Parameters_Entity getEntity()
     * @method static \Bitrix\Main\Component\EO_Parameters createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Component\EO_Parameters_Collection createCollection()
     * @method static \Bitrix\Main\Component\EO_Parameters wakeUpObject($row)
     * @method static \Bitrix\Main\Component\EO_Parameters_Collection wakeUpCollection($rows)
     */
    class ParametersTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Parameters_Result exec()
     * @method \Bitrix\Main\Component\EO_Parameters fetchObject()
     * @method \Bitrix\Main\Component\EO_Parameters_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Parameters_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Component\EO_Parameters fetchObject()
     * @method \Bitrix\Main\Component\EO_Parameters_Collection fetchCollection()
     */
    class EO_Parameters_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Component\EO_Parameters createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Component\EO_Parameters_Collection createCollection()
     * @method \Bitrix\Main\Component\EO_Parameters wakeUpObject($row)
     * @method \Bitrix\Main\Component\EO_Parameters_Collection wakeUpCollection($rows)
     */
    class EO_Parameters_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\Composite\Debug\Model {
    /**
     * EO_Log
     * @see \Bitrix\Main\Composite\Debug\Model\LogTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getHost()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log setHost(\string|\Bitrix\Main\DB\SqlExpression $host)
     * @method bool hasHost()
     * @method bool isHostFilled()
     * @method bool isHostChanged()
     * @method \string remindActualHost()
     * @method \string requireHost()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log resetHost()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log unsetHost()
     * @method \string fillHost()
     * @method \string getUri()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log setUri(\string|\Bitrix\Main\DB\SqlExpression $uri)
     * @method bool hasUri()
     * @method bool isUriFilled()
     * @method bool isUriChanged()
     * @method \string remindActualUri()
     * @method \string requireUri()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log resetUri()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log unsetUri()
     * @method \string fillUri()
     * @method \string getTitle()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log resetTitle()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log unsetTitle()
     * @method \string fillTitle()
     * @method \Bitrix\Main\Type\DateTime getCreated()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log setCreated(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $created)
     * @method bool hasCreated()
     * @method bool isCreatedFilled()
     * @method bool isCreatedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualCreated()
     * @method \Bitrix\Main\Type\DateTime requireCreated()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log resetCreated()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log unsetCreated()
     * @method \Bitrix\Main\Type\DateTime fillCreated()
     * @method \string getType()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log resetType()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log unsetType()
     * @method \string fillType()
     * @method \string getMessage()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log setMessage(\string|\Bitrix\Main\DB\SqlExpression $message)
     * @method bool hasMessage()
     * @method bool isMessageFilled()
     * @method bool isMessageChanged()
     * @method \string remindActualMessage()
     * @method \string requireMessage()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log resetMessage()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log unsetMessage()
     * @method \string fillMessage()
     * @method \string getMessageShort()
     * @method \string remindActualMessageShort()
     * @method \string requireMessageShort()
     * @method bool hasMessageShort()
     * @method bool isMessageShortFilled()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log unsetMessageShort()
     * @method \string fillMessageShort()
     * @method \boolean getAjax()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log setAjax(\boolean|\Bitrix\Main\DB\SqlExpression $ajax)
     * @method bool hasAjax()
     * @method bool isAjaxFilled()
     * @method bool isAjaxChanged()
     * @method \boolean remindActualAjax()
     * @method \boolean requireAjax()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log resetAjax()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log unsetAjax()
     * @method \boolean fillAjax()
     * @method \int getUserId()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log resetUserId()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log unsetUserId()
     * @method \int fillUserId()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log resetUser()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \int getPageId()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log setPageId(\int|\Bitrix\Main\DB\SqlExpression $pageId)
     * @method bool hasPageId()
     * @method bool isPageIdFilled()
     * @method bool isPageIdChanged()
     * @method \int remindActualPageId()
     * @method \int requirePageId()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log resetPageId()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log unsetPageId()
     * @method \int fillPageId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log set($fieldName, $value)
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log reset($fieldName)
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Composite\Debug\Model\EO_Log wakeUp($data)
     */
    class EO_Log
    {
        /* @var \Bitrix\Main\Composite\Debug\Model\LogTable */
        public static $dataClass = '\\Bitrix\\Main\\Composite\\Debug\\Model\\LogTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Log_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getHostList()
     * @method \string[] fillHost()
     * @method \string[] getUriList()
     * @method \string[] fillUri()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \Bitrix\Main\Type\DateTime[] getCreatedList()
     * @method \Bitrix\Main\Type\DateTime[] fillCreated()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \string[] getMessageList()
     * @method \string[] fillMessage()
     * @method \string[] getMessageShortList()
     * @method \string[] fillMessageShort()
     * @method \boolean[] getAjaxList()
     * @method \boolean[] fillAjax()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \int[] getPageIdList()
     * @method \int[] fillPageId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Composite\Debug\Model\EO_Log $object)
     * @method bool has(\Bitrix\Main\Composite\Debug\Model\EO_Log $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log getByPrimary($primary)
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log[] getAll()
     * @method bool remove(\Bitrix\Main\Composite\Debug\Model\EO_Log $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Composite\Debug\Model\EO_Log_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Log_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Composite\Debug\Model\LogTable */
        public static $dataClass = '\\Bitrix\\Main\\Composite\\Debug\\Model\\LogTable';
    }
    /**
     * @method static EO_Log_Query query()
     * @method static EO_Log_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Log_Result getById($id)
     * @method static EO_Log_Result getList(array $parameters = array())
     * @method static EO_Log_Entity getEntity()
     * @method static \Bitrix\Main\Composite\Debug\Model\EO_Log createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Composite\Debug\Model\EO_Log_Collection createCollection()
     * @method static \Bitrix\Main\Composite\Debug\Model\EO_Log wakeUpObject($row)
     * @method static \Bitrix\Main\Composite\Debug\Model\EO_Log_Collection wakeUpCollection($rows)
     */
    class LogTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Log_Result exec()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log fetchObject()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Log_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log fetchObject()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log_Collection fetchCollection()
     */
    class EO_Log_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log_Collection createCollection()
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log wakeUpObject($row)
     * @method \Bitrix\Main\Composite\Debug\Model\EO_Log_Collection wakeUpCollection($rows)
     */
    class EO_Log_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\Composite\Internals\Model {
    /**
     * EO_Page
     * @see \Bitrix\Main\Composite\Internals\Model\PageTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getCacheKey()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page setCacheKey(\string|\Bitrix\Main\DB\SqlExpression $cacheKey)
     * @method bool hasCacheKey()
     * @method bool isCacheKeyFilled()
     * @method bool isCacheKeyChanged()
     * @method \string remindActualCacheKey()
     * @method \string requireCacheKey()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page resetCacheKey()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page unsetCacheKey()
     * @method \string fillCacheKey()
     * @method \string getHost()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page setHost(\string|\Bitrix\Main\DB\SqlExpression $host)
     * @method bool hasHost()
     * @method bool isHostFilled()
     * @method bool isHostChanged()
     * @method \string remindActualHost()
     * @method \string requireHost()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page resetHost()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page unsetHost()
     * @method \string fillHost()
     * @method \string getUri()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page setUri(\string|\Bitrix\Main\DB\SqlExpression $uri)
     * @method bool hasUri()
     * @method bool isUriFilled()
     * @method bool isUriChanged()
     * @method \string remindActualUri()
     * @method \string requireUri()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page resetUri()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page unsetUri()
     * @method \string fillUri()
     * @method \string getTitle()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page resetTitle()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page unsetTitle()
     * @method \string fillTitle()
     * @method \Bitrix\Main\Type\DateTime getCreated()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page setCreated(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $created)
     * @method bool hasCreated()
     * @method bool isCreatedFilled()
     * @method bool isCreatedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualCreated()
     * @method \Bitrix\Main\Type\DateTime requireCreated()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page resetCreated()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page unsetCreated()
     * @method \Bitrix\Main\Type\DateTime fillCreated()
     * @method \Bitrix\Main\Type\DateTime getChanged()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page setChanged(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $changed)
     * @method bool hasChanged()
     * @method bool isChangedFilled()
     * @method bool isChangedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualChanged()
     * @method \Bitrix\Main\Type\DateTime requireChanged()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page resetChanged()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page unsetChanged()
     * @method \Bitrix\Main\Type\DateTime fillChanged()
     * @method \Bitrix\Main\Type\DateTime getLastViewed()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page setLastViewed(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastViewed)
     * @method bool hasLastViewed()
     * @method bool isLastViewedFilled()
     * @method bool isLastViewedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastViewed()
     * @method \Bitrix\Main\Type\DateTime requireLastViewed()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page resetLastViewed()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page unsetLastViewed()
     * @method \Bitrix\Main\Type\DateTime fillLastViewed()
     * @method \int getViews()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page setViews(\int|\Bitrix\Main\DB\SqlExpression $views)
     * @method bool hasViews()
     * @method bool isViewsFilled()
     * @method bool isViewsChanged()
     * @method \int remindActualViews()
     * @method \int requireViews()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page resetViews()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page unsetViews()
     * @method \int fillViews()
     * @method \int getRewrites()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page setRewrites(\int|\Bitrix\Main\DB\SqlExpression $rewrites)
     * @method bool hasRewrites()
     * @method bool isRewritesFilled()
     * @method bool isRewritesChanged()
     * @method \int remindActualRewrites()
     * @method \int requireRewrites()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page resetRewrites()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page unsetRewrites()
     * @method \int fillRewrites()
     * @method \int getSize()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page setSize(\int|\Bitrix\Main\DB\SqlExpression $size)
     * @method bool hasSize()
     * @method bool isSizeFilled()
     * @method bool isSizeChanged()
     * @method \int remindActualSize()
     * @method \int requireSize()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page resetSize()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page unsetSize()
     * @method \int fillSize()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page set($fieldName, $value)
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page reset($fieldName)
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Composite\Internals\Model\EO_Page wakeUp($data)
     */
    class EO_Page
    {
        /* @var \Bitrix\Main\Composite\Internals\Model\PageTable */
        public static $dataClass = '\\Bitrix\\Main\\Composite\\Internals\\Model\\PageTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Page_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getCacheKeyList()
     * @method \string[] fillCacheKey()
     * @method \string[] getHostList()
     * @method \string[] fillHost()
     * @method \string[] getUriList()
     * @method \string[] fillUri()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \Bitrix\Main\Type\DateTime[] getCreatedList()
     * @method \Bitrix\Main\Type\DateTime[] fillCreated()
     * @method \Bitrix\Main\Type\DateTime[] getChangedList()
     * @method \Bitrix\Main\Type\DateTime[] fillChanged()
     * @method \Bitrix\Main\Type\DateTime[] getLastViewedList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastViewed()
     * @method \int[] getViewsList()
     * @method \int[] fillViews()
     * @method \int[] getRewritesList()
     * @method \int[] fillRewrites()
     * @method \int[] getSizeList()
     * @method \int[] fillSize()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Composite\Internals\Model\EO_Page $object)
     * @method bool has(\Bitrix\Main\Composite\Internals\Model\EO_Page $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page getByPrimary($primary)
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page[] getAll()
     * @method bool remove(\Bitrix\Main\Composite\Internals\Model\EO_Page $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Composite\Internals\Model\EO_Page_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Page_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Composite\Internals\Model\PageTable */
        public static $dataClass = '\\Bitrix\\Main\\Composite\\Internals\\Model\\PageTable';
    }
    /**
     * @method static EO_Page_Query query()
     * @method static EO_Page_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Page_Result getById($id)
     * @method static EO_Page_Result getList(array $parameters = array())
     * @method static EO_Page_Entity getEntity()
     * @method static \Bitrix\Main\Composite\Internals\Model\EO_Page createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Composite\Internals\Model\EO_Page_Collection createCollection()
     * @method static \Bitrix\Main\Composite\Internals\Model\EO_Page wakeUpObject($row)
     * @method static \Bitrix\Main\Composite\Internals\Model\EO_Page_Collection wakeUpCollection($rows)
     */
    class PageTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Page_Result exec()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page fetchObject()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Page_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page fetchObject()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page_Collection fetchCollection()
     */
    class EO_Page_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page_Collection createCollection()
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page wakeUpObject($row)
     * @method \Bitrix\Main\Composite\Internals\Model\EO_Page_Collection wakeUpCollection($rows)
     */
    class EO_Page_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\Localization {
    /**
     * Culture
     * @see \Bitrix\Main\Localization\CultureTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Context\Culture setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getCode()
     * @method \Bitrix\Main\Context\Culture setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Main\Context\Culture resetCode()
     * @method \Bitrix\Main\Context\Culture unsetCode()
     * @method \string fillCode()
     * @method \string getName()
     * @method \Bitrix\Main\Context\Culture setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Main\Context\Culture resetName()
     * @method \Bitrix\Main\Context\Culture unsetName()
     * @method \string fillName()
     * @method \string getFormatDate()
     * @method \Bitrix\Main\Context\Culture setFormatDate(\string|\Bitrix\Main\DB\SqlExpression $formatDate)
     * @method bool hasFormatDate()
     * @method bool isFormatDateFilled()
     * @method bool isFormatDateChanged()
     * @method \string remindActualFormatDate()
     * @method \string requireFormatDate()
     * @method \Bitrix\Main\Context\Culture resetFormatDate()
     * @method \Bitrix\Main\Context\Culture unsetFormatDate()
     * @method \string fillFormatDate()
     * @method \string getFormatDatetime()
     * @method \Bitrix\Main\Context\Culture setFormatDatetime(\string|\Bitrix\Main\DB\SqlExpression $formatDatetime)
     * @method bool hasFormatDatetime()
     * @method bool isFormatDatetimeFilled()
     * @method bool isFormatDatetimeChanged()
     * @method \string remindActualFormatDatetime()
     * @method \string requireFormatDatetime()
     * @method \Bitrix\Main\Context\Culture resetFormatDatetime()
     * @method \Bitrix\Main\Context\Culture unsetFormatDatetime()
     * @method \string fillFormatDatetime()
     * @method \string getFormatName()
     * @method \Bitrix\Main\Context\Culture setFormatName(\string|\Bitrix\Main\DB\SqlExpression $formatName)
     * @method bool hasFormatName()
     * @method bool isFormatNameFilled()
     * @method bool isFormatNameChanged()
     * @method \string remindActualFormatName()
     * @method \string requireFormatName()
     * @method \Bitrix\Main\Context\Culture resetFormatName()
     * @method \Bitrix\Main\Context\Culture unsetFormatName()
     * @method \string fillFormatName()
     * @method \int getWeekStart()
     * @method \Bitrix\Main\Context\Culture setWeekStart(\int|\Bitrix\Main\DB\SqlExpression $weekStart)
     * @method bool hasWeekStart()
     * @method bool isWeekStartFilled()
     * @method bool isWeekStartChanged()
     * @method \int remindActualWeekStart()
     * @method \int requireWeekStart()
     * @method \Bitrix\Main\Context\Culture resetWeekStart()
     * @method \Bitrix\Main\Context\Culture unsetWeekStart()
     * @method \int fillWeekStart()
     * @method \string getCharset()
     * @method \Bitrix\Main\Context\Culture setCharset(\string|\Bitrix\Main\DB\SqlExpression $charset)
     * @method bool hasCharset()
     * @method bool isCharsetFilled()
     * @method bool isCharsetChanged()
     * @method \string remindActualCharset()
     * @method \string requireCharset()
     * @method \Bitrix\Main\Context\Culture resetCharset()
     * @method \Bitrix\Main\Context\Culture unsetCharset()
     * @method \string fillCharset()
     * @method \boolean getDirection()
     * @method \Bitrix\Main\Context\Culture setDirection(\boolean|\Bitrix\Main\DB\SqlExpression $direction)
     * @method bool hasDirection()
     * @method bool isDirectionFilled()
     * @method bool isDirectionChanged()
     * @method \boolean remindActualDirection()
     * @method \boolean requireDirection()
     * @method \Bitrix\Main\Context\Culture resetDirection()
     * @method \Bitrix\Main\Context\Culture unsetDirection()
     * @method \boolean fillDirection()
     * @method \string getShortDateFormat()
     * @method \Bitrix\Main\Context\Culture setShortDateFormat(\string|\Bitrix\Main\DB\SqlExpression $shortDateFormat)
     * @method bool hasShortDateFormat()
     * @method bool isShortDateFormatFilled()
     * @method bool isShortDateFormatChanged()
     * @method \string remindActualShortDateFormat()
     * @method \string requireShortDateFormat()
     * @method \Bitrix\Main\Context\Culture resetShortDateFormat()
     * @method \Bitrix\Main\Context\Culture unsetShortDateFormat()
     * @method \string fillShortDateFormat()
     * @method \string getMediumDateFormat()
     * @method \Bitrix\Main\Context\Culture setMediumDateFormat(\string|\Bitrix\Main\DB\SqlExpression $mediumDateFormat)
     * @method bool hasMediumDateFormat()
     * @method bool isMediumDateFormatFilled()
     * @method bool isMediumDateFormatChanged()
     * @method \string remindActualMediumDateFormat()
     * @method \string requireMediumDateFormat()
     * @method \Bitrix\Main\Context\Culture resetMediumDateFormat()
     * @method \Bitrix\Main\Context\Culture unsetMediumDateFormat()
     * @method \string fillMediumDateFormat()
     * @method \string getLongDateFormat()
     * @method \Bitrix\Main\Context\Culture setLongDateFormat(\string|\Bitrix\Main\DB\SqlExpression $longDateFormat)
     * @method bool hasLongDateFormat()
     * @method bool isLongDateFormatFilled()
     * @method bool isLongDateFormatChanged()
     * @method \string remindActualLongDateFormat()
     * @method \string requireLongDateFormat()
     * @method \Bitrix\Main\Context\Culture resetLongDateFormat()
     * @method \Bitrix\Main\Context\Culture unsetLongDateFormat()
     * @method \string fillLongDateFormat()
     * @method \string getFullDateFormat()
     * @method \Bitrix\Main\Context\Culture setFullDateFormat(\string|\Bitrix\Main\DB\SqlExpression $fullDateFormat)
     * @method bool hasFullDateFormat()
     * @method bool isFullDateFormatFilled()
     * @method bool isFullDateFormatChanged()
     * @method \string remindActualFullDateFormat()
     * @method \string requireFullDateFormat()
     * @method \Bitrix\Main\Context\Culture resetFullDateFormat()
     * @method \Bitrix\Main\Context\Culture unsetFullDateFormat()
     * @method \string fillFullDateFormat()
     * @method \string getDayMonthFormat()
     * @method \Bitrix\Main\Context\Culture setDayMonthFormat(\string|\Bitrix\Main\DB\SqlExpression $dayMonthFormat)
     * @method bool hasDayMonthFormat()
     * @method bool isDayMonthFormatFilled()
     * @method bool isDayMonthFormatChanged()
     * @method \string remindActualDayMonthFormat()
     * @method \string requireDayMonthFormat()
     * @method \Bitrix\Main\Context\Culture resetDayMonthFormat()
     * @method \Bitrix\Main\Context\Culture unsetDayMonthFormat()
     * @method \string fillDayMonthFormat()
     * @method \string getDayShortMonthFormat()
     * @method \Bitrix\Main\Context\Culture setDayShortMonthFormat(\string|\Bitrix\Main\DB\SqlExpression $dayShortMonthFormat)
     * @method bool hasDayShortMonthFormat()
     * @method bool isDayShortMonthFormatFilled()
     * @method bool isDayShortMonthFormatChanged()
     * @method \string remindActualDayShortMonthFormat()
     * @method \string requireDayShortMonthFormat()
     * @method \Bitrix\Main\Context\Culture resetDayShortMonthFormat()
     * @method \Bitrix\Main\Context\Culture unsetDayShortMonthFormat()
     * @method \string fillDayShortMonthFormat()
     * @method \string getDayOfWeekMonthFormat()
     * @method \Bitrix\Main\Context\Culture setDayOfWeekMonthFormat(\string|\Bitrix\Main\DB\SqlExpression $dayOfWeekMonthFormat)
     * @method bool hasDayOfWeekMonthFormat()
     * @method bool isDayOfWeekMonthFormatFilled()
     * @method bool isDayOfWeekMonthFormatChanged()
     * @method \string remindActualDayOfWeekMonthFormat()
     * @method \string requireDayOfWeekMonthFormat()
     * @method \Bitrix\Main\Context\Culture resetDayOfWeekMonthFormat()
     * @method \Bitrix\Main\Context\Culture unsetDayOfWeekMonthFormat()
     * @method \string fillDayOfWeekMonthFormat()
     * @method \string getShortDayOfWeekMonthFormat()
     * @method \Bitrix\Main\Context\Culture setShortDayOfWeekMonthFormat(\string|\Bitrix\Main\DB\SqlExpression $shortDayOfWeekMonthFormat)
     * @method bool hasShortDayOfWeekMonthFormat()
     * @method bool isShortDayOfWeekMonthFormatFilled()
     * @method bool isShortDayOfWeekMonthFormatChanged()
     * @method \string remindActualShortDayOfWeekMonthFormat()
     * @method \string requireShortDayOfWeekMonthFormat()
     * @method \Bitrix\Main\Context\Culture resetShortDayOfWeekMonthFormat()
     * @method \Bitrix\Main\Context\Culture unsetShortDayOfWeekMonthFormat()
     * @method \string fillShortDayOfWeekMonthFormat()
     * @method \string getShortDayOfWeekShortMonthFormat()
     * @method \Bitrix\Main\Context\Culture setShortDayOfWeekShortMonthFormat(\string|\Bitrix\Main\DB\SqlExpression $shortDayOfWeekShortMonthFormat)
     * @method bool hasShortDayOfWeekShortMonthFormat()
     * @method bool isShortDayOfWeekShortMonthFormatFilled()
     * @method bool isShortDayOfWeekShortMonthFormatChanged()
     * @method \string remindActualShortDayOfWeekShortMonthFormat()
     * @method \string requireShortDayOfWeekShortMonthFormat()
     * @method \Bitrix\Main\Context\Culture resetShortDayOfWeekShortMonthFormat()
     * @method \Bitrix\Main\Context\Culture unsetShortDayOfWeekShortMonthFormat()
     * @method \string fillShortDayOfWeekShortMonthFormat()
     * @method \string getShortTimeFormat()
     * @method \Bitrix\Main\Context\Culture setShortTimeFormat(\string|\Bitrix\Main\DB\SqlExpression $shortTimeFormat)
     * @method bool hasShortTimeFormat()
     * @method bool isShortTimeFormatFilled()
     * @method bool isShortTimeFormatChanged()
     * @method \string remindActualShortTimeFormat()
     * @method \string requireShortTimeFormat()
     * @method \Bitrix\Main\Context\Culture resetShortTimeFormat()
     * @method \Bitrix\Main\Context\Culture unsetShortTimeFormat()
     * @method \string fillShortTimeFormat()
     * @method \string getLongTimeFormat()
     * @method \Bitrix\Main\Context\Culture setLongTimeFormat(\string|\Bitrix\Main\DB\SqlExpression $longTimeFormat)
     * @method bool hasLongTimeFormat()
     * @method bool isLongTimeFormatFilled()
     * @method bool isLongTimeFormatChanged()
     * @method \string remindActualLongTimeFormat()
     * @method \string requireLongTimeFormat()
     * @method \Bitrix\Main\Context\Culture resetLongTimeFormat()
     * @method \Bitrix\Main\Context\Culture unsetLongTimeFormat()
     * @method \string fillLongTimeFormat()
     * @method \string getAmValue()
     * @method \Bitrix\Main\Context\Culture setAmValue(\string|\Bitrix\Main\DB\SqlExpression $amValue)
     * @method bool hasAmValue()
     * @method bool isAmValueFilled()
     * @method bool isAmValueChanged()
     * @method \string remindActualAmValue()
     * @method \string requireAmValue()
     * @method \Bitrix\Main\Context\Culture resetAmValue()
     * @method \Bitrix\Main\Context\Culture unsetAmValue()
     * @method \string fillAmValue()
     * @method \string getPmValue()
     * @method \Bitrix\Main\Context\Culture setPmValue(\string|\Bitrix\Main\DB\SqlExpression $pmValue)
     * @method bool hasPmValue()
     * @method bool isPmValueFilled()
     * @method bool isPmValueChanged()
     * @method \string remindActualPmValue()
     * @method \string requirePmValue()
     * @method \Bitrix\Main\Context\Culture resetPmValue()
     * @method \Bitrix\Main\Context\Culture unsetPmValue()
     * @method \string fillPmValue()
     * @method \string getNumberThousandsSeparator()
     * @method \Bitrix\Main\Context\Culture setNumberThousandsSeparator(\string|\Bitrix\Main\DB\SqlExpression $numberThousandsSeparator)
     * @method bool hasNumberThousandsSeparator()
     * @method bool isNumberThousandsSeparatorFilled()
     * @method bool isNumberThousandsSeparatorChanged()
     * @method \string remindActualNumberThousandsSeparator()
     * @method \string requireNumberThousandsSeparator()
     * @method \Bitrix\Main\Context\Culture resetNumberThousandsSeparator()
     * @method \Bitrix\Main\Context\Culture unsetNumberThousandsSeparator()
     * @method \string fillNumberThousandsSeparator()
     * @method \string getNumberDecimalSeparator()
     * @method \Bitrix\Main\Context\Culture setNumberDecimalSeparator(\string|\Bitrix\Main\DB\SqlExpression $numberDecimalSeparator)
     * @method bool hasNumberDecimalSeparator()
     * @method bool isNumberDecimalSeparatorFilled()
     * @method bool isNumberDecimalSeparatorChanged()
     * @method \string remindActualNumberDecimalSeparator()
     * @method \string requireNumberDecimalSeparator()
     * @method \Bitrix\Main\Context\Culture resetNumberDecimalSeparator()
     * @method \Bitrix\Main\Context\Culture unsetNumberDecimalSeparator()
     * @method \string fillNumberDecimalSeparator()
     * @method \int getNumberDecimals()
     * @method \Bitrix\Main\Context\Culture setNumberDecimals(\int|\Bitrix\Main\DB\SqlExpression $numberDecimals)
     * @method bool hasNumberDecimals()
     * @method bool isNumberDecimalsFilled()
     * @method bool isNumberDecimalsChanged()
     * @method \int remindActualNumberDecimals()
     * @method \int requireNumberDecimals()
     * @method \Bitrix\Main\Context\Culture resetNumberDecimals()
     * @method \Bitrix\Main\Context\Culture unsetNumberDecimals()
     * @method \int fillNumberDecimals()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Context\Culture set($fieldName, $value)
     * @method \Bitrix\Main\Context\Culture reset($fieldName)
     * @method \Bitrix\Main\Context\Culture unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Context\Culture wakeUp($data)
     */
    class EO_Culture
    {
        /* @var \Bitrix\Main\Localization\CultureTable */
        public static $dataClass = '\\Bitrix\\Main\\Localization\\CultureTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Culture_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getFormatDateList()
     * @method \string[] fillFormatDate()
     * @method \string[] getFormatDatetimeList()
     * @method \string[] fillFormatDatetime()
     * @method \string[] getFormatNameList()
     * @method \string[] fillFormatName()
     * @method \int[] getWeekStartList()
     * @method \int[] fillWeekStart()
     * @method \string[] getCharsetList()
     * @method \string[] fillCharset()
     * @method \boolean[] getDirectionList()
     * @method \boolean[] fillDirection()
     * @method \string[] getShortDateFormatList()
     * @method \string[] fillShortDateFormat()
     * @method \string[] getMediumDateFormatList()
     * @method \string[] fillMediumDateFormat()
     * @method \string[] getLongDateFormatList()
     * @method \string[] fillLongDateFormat()
     * @method \string[] getFullDateFormatList()
     * @method \string[] fillFullDateFormat()
     * @method \string[] getDayMonthFormatList()
     * @method \string[] fillDayMonthFormat()
     * @method \string[] getDayShortMonthFormatList()
     * @method \string[] fillDayShortMonthFormat()
     * @method \string[] getDayOfWeekMonthFormatList()
     * @method \string[] fillDayOfWeekMonthFormat()
     * @method \string[] getShortDayOfWeekMonthFormatList()
     * @method \string[] fillShortDayOfWeekMonthFormat()
     * @method \string[] getShortDayOfWeekShortMonthFormatList()
     * @method \string[] fillShortDayOfWeekShortMonthFormat()
     * @method \string[] getShortTimeFormatList()
     * @method \string[] fillShortTimeFormat()
     * @method \string[] getLongTimeFormatList()
     * @method \string[] fillLongTimeFormat()
     * @method \string[] getAmValueList()
     * @method \string[] fillAmValue()
     * @method \string[] getPmValueList()
     * @method \string[] fillPmValue()
     * @method \string[] getNumberThousandsSeparatorList()
     * @method \string[] fillNumberThousandsSeparator()
     * @method \string[] getNumberDecimalSeparatorList()
     * @method \string[] fillNumberDecimalSeparator()
     * @method \int[] getNumberDecimalsList()
     * @method \int[] fillNumberDecimals()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Context\Culture $object)
     * @method bool has(\Bitrix\Main\Context\Culture $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Context\Culture getByPrimary($primary)
     * @method \Bitrix\Main\Context\Culture[] getAll()
     * @method bool remove(\Bitrix\Main\Context\Culture $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Localization\EO_Culture_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Context\Culture current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Culture_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Localization\CultureTable */
        public static $dataClass = '\\Bitrix\\Main\\Localization\\CultureTable';
    }
    /**
     * @method static EO_Culture_Query query()
     * @method static EO_Culture_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Culture_Result getById($id)
     * @method static EO_Culture_Result getList(array $parameters = array())
     * @method static EO_Culture_Entity getEntity()
     * @method static \Bitrix\Main\Context\Culture createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Localization\EO_Culture_Collection createCollection()
     * @method static \Bitrix\Main\Context\Culture wakeUpObject($row)
     * @method static \Bitrix\Main\Localization\EO_Culture_Collection wakeUpCollection($rows)
     */
    class CultureTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Culture_Result exec()
     * @method \Bitrix\Main\Context\Culture fetchObject()
     * @method \Bitrix\Main\Localization\EO_Culture_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Culture_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Context\Culture fetchObject()
     * @method \Bitrix\Main\Localization\EO_Culture_Collection fetchCollection()
     */
    class EO_Culture_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Context\Culture createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Localization\EO_Culture_Collection createCollection()
     * @method \Bitrix\Main\Context\Culture wakeUpObject($row)
     * @method \Bitrix\Main\Localization\EO_Culture_Collection wakeUpCollection($rows)
     */
    class EO_Culture_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\EventLog\Internal {
    /**
     * EO_EventLog
     * @see \Bitrix\Main\EventLog\Internal\EventLogTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog resetTimestampX()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \string getSeverity()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog setSeverity(\string|\Bitrix\Main\DB\SqlExpression $severity)
     * @method bool hasSeverity()
     * @method bool isSeverityFilled()
     * @method bool isSeverityChanged()
     * @method \string remindActualSeverity()
     * @method \string requireSeverity()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog resetSeverity()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog unsetSeverity()
     * @method \string fillSeverity()
     * @method \string getAuditTypeId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog setAuditTypeId(\string|\Bitrix\Main\DB\SqlExpression $auditTypeId)
     * @method bool hasAuditTypeId()
     * @method bool isAuditTypeIdFilled()
     * @method bool isAuditTypeIdChanged()
     * @method \string remindActualAuditTypeId()
     * @method \string requireAuditTypeId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog resetAuditTypeId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog unsetAuditTypeId()
     * @method \string fillAuditTypeId()
     * @method \string getModuleId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog setModuleId(\string|\Bitrix\Main\DB\SqlExpression $moduleId)
     * @method bool hasModuleId()
     * @method bool isModuleIdFilled()
     * @method bool isModuleIdChanged()
     * @method \string remindActualModuleId()
     * @method \string requireModuleId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog resetModuleId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog unsetModuleId()
     * @method \string fillModuleId()
     * @method \string getItemId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog setItemId(\string|\Bitrix\Main\DB\SqlExpression $itemId)
     * @method bool hasItemId()
     * @method bool isItemIdFilled()
     * @method bool isItemIdChanged()
     * @method \string remindActualItemId()
     * @method \string requireItemId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog resetItemId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog unsetItemId()
     * @method \string fillItemId()
     * @method \string getRemoteAddr()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog setRemoteAddr(\string|\Bitrix\Main\DB\SqlExpression $remoteAddr)
     * @method bool hasRemoteAddr()
     * @method bool isRemoteAddrFilled()
     * @method bool isRemoteAddrChanged()
     * @method \string remindActualRemoteAddr()
     * @method \string requireRemoteAddr()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog resetRemoteAddr()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog unsetRemoteAddr()
     * @method \string fillRemoteAddr()
     * @method \string getUserAgent()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog setUserAgent(\string|\Bitrix\Main\DB\SqlExpression $userAgent)
     * @method bool hasUserAgent()
     * @method bool isUserAgentFilled()
     * @method bool isUserAgentChanged()
     * @method \string remindActualUserAgent()
     * @method \string requireUserAgent()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog resetUserAgent()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog unsetUserAgent()
     * @method \string fillUserAgent()
     * @method \string getRequestUri()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog setRequestUri(\string|\Bitrix\Main\DB\SqlExpression $requestUri)
     * @method bool hasRequestUri()
     * @method bool isRequestUriFilled()
     * @method bool isRequestUriChanged()
     * @method \string remindActualRequestUri()
     * @method \string requireRequestUri()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog resetRequestUri()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog unsetRequestUri()
     * @method \string fillRequestUri()
     * @method \string getSiteId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string remindActualSiteId()
     * @method \string requireSiteId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog resetSiteId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog unsetSiteId()
     * @method \string fillSiteId()
     * @method \int getUserId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog resetUserId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog unsetUserId()
     * @method \int fillUserId()
     * @method \int getGuestId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog setGuestId(\int|\Bitrix\Main\DB\SqlExpression $guestId)
     * @method bool hasGuestId()
     * @method bool isGuestIdFilled()
     * @method bool isGuestIdChanged()
     * @method \int remindActualGuestId()
     * @method \int requireGuestId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog resetGuestId()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog unsetGuestId()
     * @method \int fillGuestId()
     * @method \string getDescription()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog resetDescription()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog unsetDescription()
     * @method \string fillDescription()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog set($fieldName, $value)
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog reset($fieldName)
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EventLog\Internal\EO_EventLog wakeUp($data)
     */
    class EO_EventLog
    {
        /* @var \Bitrix\Main\EventLog\Internal\EventLogTable */
        public static $dataClass = '\\Bitrix\\Main\\EventLog\\Internal\\EventLogTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_EventLog_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \string[] getSeverityList()
     * @method \string[] fillSeverity()
     * @method \string[] getAuditTypeIdList()
     * @method \string[] fillAuditTypeId()
     * @method \string[] getModuleIdList()
     * @method \string[] fillModuleId()
     * @method \string[] getItemIdList()
     * @method \string[] fillItemId()
     * @method \string[] getRemoteAddrList()
     * @method \string[] fillRemoteAddr()
     * @method \string[] getUserAgentList()
     * @method \string[] fillUserAgent()
     * @method \string[] getRequestUriList()
     * @method \string[] fillRequestUri()
     * @method \string[] getSiteIdList()
     * @method \string[] fillSiteId()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \int[] getGuestIdList()
     * @method \int[] fillGuestId()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EventLog\Internal\EO_EventLog $object)
     * @method bool has(\Bitrix\Main\EventLog\Internal\EO_EventLog $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog getByPrimary($primary)
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog[] getAll()
     * @method bool remove(\Bitrix\Main\EventLog\Internal\EO_EventLog $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EventLog\Internal\EO_EventLog_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_EventLog_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\EventLog\Internal\EventLogTable */
        public static $dataClass = '\\Bitrix\\Main\\EventLog\\Internal\\EventLogTable';
    }
    /**
     * @method static EO_EventLog_Query query()
     * @method static EO_EventLog_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_EventLog_Result getById($id)
     * @method static EO_EventLog_Result getList(array $parameters = array())
     * @method static EO_EventLog_Entity getEntity()
     * @method static \Bitrix\Main\EventLog\Internal\EO_EventLog createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EventLog\Internal\EO_EventLog_Collection createCollection()
     * @method static \Bitrix\Main\EventLog\Internal\EO_EventLog wakeUpObject($row)
     * @method static \Bitrix\Main\EventLog\Internal\EO_EventLog_Collection wakeUpCollection($rows)
     */
    class EventLogTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_EventLog_Result exec()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog fetchObject()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_EventLog_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog fetchObject()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog_Collection fetchCollection()
     */
    class EO_EventLog_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog_Collection createCollection()
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog wakeUpObject($row)
     * @method \Bitrix\Main\EventLog\Internal\EO_EventLog_Collection wakeUpCollection($rows)
     */
    class EO_EventLog_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_LogNotificationAction
     * @see \Bitrix\Main\EventLog\Internal\LogNotificationActionTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getNotificationId()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction setNotificationId(\int|\Bitrix\Main\DB\SqlExpression $notificationId)
     * @method bool hasNotificationId()
     * @method bool isNotificationIdFilled()
     * @method bool isNotificationIdChanged()
     * @method \int remindActualNotificationId()
     * @method \int requireNotificationId()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction resetNotificationId()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction unsetNotificationId()
     * @method \int fillNotificationId()
     * @method \string getNotificationType()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction setNotificationType(\string|\Bitrix\Main\DB\SqlExpression $notificationType)
     * @method bool hasNotificationType()
     * @method bool isNotificationTypeFilled()
     * @method bool isNotificationTypeChanged()
     * @method \string remindActualNotificationType()
     * @method \string requireNotificationType()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction resetNotificationType()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction unsetNotificationType()
     * @method \string fillNotificationType()
     * @method \string getRecipient()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction setRecipient(\string|\Bitrix\Main\DB\SqlExpression $recipient)
     * @method bool hasRecipient()
     * @method bool isRecipientFilled()
     * @method bool isRecipientChanged()
     * @method \string remindActualRecipient()
     * @method \string requireRecipient()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction resetRecipient()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction unsetRecipient()
     * @method \string fillRecipient()
     * @method \string getAdditionalText()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction setAdditionalText(\string|\Bitrix\Main\DB\SqlExpression $additionalText)
     * @method bool hasAdditionalText()
     * @method bool isAdditionalTextFilled()
     * @method bool isAdditionalTextChanged()
     * @method \string remindActualAdditionalText()
     * @method \string requireAdditionalText()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction resetAdditionalText()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction unsetAdditionalText()
     * @method \string fillAdditionalText()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification getNotification()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification remindActualNotification()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification requireNotification()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction setNotification(\Bitrix\Main\EventLog\Internal\EO_LogNotification $object)
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction resetNotification()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction unsetNotification()
     * @method bool hasNotification()
     * @method bool isNotificationFilled()
     * @method bool isNotificationChanged()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification fillNotification()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction set($fieldName, $value)
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction reset($fieldName)
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction wakeUp($data)
     */
    class EO_LogNotificationAction
    {
        /* @var \Bitrix\Main\EventLog\Internal\LogNotificationActionTable */
        public static $dataClass = '\\Bitrix\\Main\\EventLog\\Internal\\LogNotificationActionTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_LogNotificationAction_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getNotificationIdList()
     * @method \int[] fillNotificationId()
     * @method \string[] getNotificationTypeList()
     * @method \string[] fillNotificationType()
     * @method \string[] getRecipientList()
     * @method \string[] fillRecipient()
     * @method \string[] getAdditionalTextList()
     * @method \string[] fillAdditionalText()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification[] getNotificationList()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction_Collection getNotificationCollection()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification_Collection fillNotification()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EventLog\Internal\EO_LogNotificationAction $object)
     * @method bool has(\Bitrix\Main\EventLog\Internal\EO_LogNotificationAction $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction getByPrimary($primary)
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction[] getAll()
     * @method bool remove(\Bitrix\Main\EventLog\Internal\EO_LogNotificationAction $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_LogNotificationAction_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\EventLog\Internal\LogNotificationActionTable */
        public static $dataClass = '\\Bitrix\\Main\\EventLog\\Internal\\LogNotificationActionTable';
    }
    /**
     * @method static EO_LogNotificationAction_Query query()
     * @method static EO_LogNotificationAction_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_LogNotificationAction_Result getById($id)
     * @method static EO_LogNotificationAction_Result getList(array $parameters = array())
     * @method static EO_LogNotificationAction_Entity getEntity()
     * @method static \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction_Collection createCollection()
     * @method static \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction wakeUpObject($row)
     * @method static \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction_Collection wakeUpCollection($rows)
     */
    class LogNotificationActionTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_LogNotificationAction_Result exec()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction fetchObject()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_LogNotificationAction_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction fetchObject()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction_Collection fetchCollection()
     */
    class EO_LogNotificationAction_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction_Collection createCollection()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction wakeUpObject($row)
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction_Collection wakeUpCollection($rows)
     */
    class EO_LogNotificationAction_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_LogNotification
     * @see \Bitrix\Main\EventLog\Internal\LogNotificationTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \boolean getActive()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification resetActive()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification unsetActive()
     * @method \boolean fillActive()
     * @method \string getName()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification resetName()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification unsetName()
     * @method \string fillName()
     * @method \string getAuditTypeId()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification setAuditTypeId(\string|\Bitrix\Main\DB\SqlExpression $auditTypeId)
     * @method bool hasAuditTypeId()
     * @method bool isAuditTypeIdFilled()
     * @method bool isAuditTypeIdChanged()
     * @method \string remindActualAuditTypeId()
     * @method \string requireAuditTypeId()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification resetAuditTypeId()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification unsetAuditTypeId()
     * @method \string fillAuditTypeId()
     * @method \string getItemId()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification setItemId(\string|\Bitrix\Main\DB\SqlExpression $itemId)
     * @method bool hasItemId()
     * @method bool isItemIdFilled()
     * @method bool isItemIdChanged()
     * @method \string remindActualItemId()
     * @method \string requireItemId()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification resetItemId()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification unsetItemId()
     * @method \string fillItemId()
     * @method \int getUserId()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification resetUserId()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification unsetUserId()
     * @method \int fillUserId()
     * @method \string getRemoteAddr()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification setRemoteAddr(\string|\Bitrix\Main\DB\SqlExpression $remoteAddr)
     * @method bool hasRemoteAddr()
     * @method bool isRemoteAddrFilled()
     * @method bool isRemoteAddrChanged()
     * @method \string remindActualRemoteAddr()
     * @method \string requireRemoteAddr()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification resetRemoteAddr()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification unsetRemoteAddr()
     * @method \string fillRemoteAddr()
     * @method \string getUserAgent()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification setUserAgent(\string|\Bitrix\Main\DB\SqlExpression $userAgent)
     * @method bool hasUserAgent()
     * @method bool isUserAgentFilled()
     * @method bool isUserAgentChanged()
     * @method \string remindActualUserAgent()
     * @method \string requireUserAgent()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification resetUserAgent()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification unsetUserAgent()
     * @method \string fillUserAgent()
     * @method \string getRequestUri()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification setRequestUri(\string|\Bitrix\Main\DB\SqlExpression $requestUri)
     * @method bool hasRequestUri()
     * @method bool isRequestUriFilled()
     * @method bool isRequestUriChanged()
     * @method \string remindActualRequestUri()
     * @method \string requireRequestUri()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification resetRequestUri()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification unsetRequestUri()
     * @method \string fillRequestUri()
     * @method \int getCheckInterval()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification setCheckInterval(\int|\Bitrix\Main\DB\SqlExpression $checkInterval)
     * @method bool hasCheckInterval()
     * @method bool isCheckIntervalFilled()
     * @method bool isCheckIntervalChanged()
     * @method \int remindActualCheckInterval()
     * @method \int requireCheckInterval()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification resetCheckInterval()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification unsetCheckInterval()
     * @method \int fillCheckInterval()
     * @method \int getAlertCount()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification setAlertCount(\int|\Bitrix\Main\DB\SqlExpression $alertCount)
     * @method bool hasAlertCount()
     * @method bool isAlertCountFilled()
     * @method bool isAlertCountChanged()
     * @method \int remindActualAlertCount()
     * @method \int requireAlertCount()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification resetAlertCount()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification unsetAlertCount()
     * @method \int fillAlertCount()
     * @method \Bitrix\Main\Type\DateTime getDateChecked()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification setDateChecked(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateChecked)
     * @method bool hasDateChecked()
     * @method bool isDateCheckedFilled()
     * @method bool isDateCheckedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateChecked()
     * @method \Bitrix\Main\Type\DateTime requireDateChecked()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification resetDateChecked()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification unsetDateChecked()
     * @method \Bitrix\Main\Type\DateTime fillDateChecked()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction_Collection getActions()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction_Collection requireActions()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction_Collection fillActions()
     * @method bool hasActions()
     * @method bool isActionsFilled()
     * @method bool isActionsChanged()
     * @method void addToActions(\Bitrix\Main\EventLog\Internal\EO_LogNotificationAction $logNotificationAction)
     * @method void removeFromActions(\Bitrix\Main\EventLog\Internal\EO_LogNotificationAction $logNotificationAction)
     * @method void removeAllActions()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification resetActions()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification unsetActions()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification set($fieldName, $value)
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification reset($fieldName)
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EventLog\Internal\EO_LogNotification wakeUp($data)
     */
    class EO_LogNotification
    {
        /* @var \Bitrix\Main\EventLog\Internal\LogNotificationTable */
        public static $dataClass = '\\Bitrix\\Main\\EventLog\\Internal\\LogNotificationTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_LogNotification_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getAuditTypeIdList()
     * @method \string[] fillAuditTypeId()
     * @method \string[] getItemIdList()
     * @method \string[] fillItemId()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \string[] getRemoteAddrList()
     * @method \string[] fillRemoteAddr()
     * @method \string[] getUserAgentList()
     * @method \string[] fillUserAgent()
     * @method \string[] getRequestUriList()
     * @method \string[] fillRequestUri()
     * @method \int[] getCheckIntervalList()
     * @method \int[] fillCheckInterval()
     * @method \int[] getAlertCountList()
     * @method \int[] fillAlertCount()
     * @method \Bitrix\Main\Type\DateTime[] getDateCheckedList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateChecked()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction_Collection[] getActionsList()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction_Collection getActionsCollection()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotificationAction_Collection fillActions()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EventLog\Internal\EO_LogNotification $object)
     * @method bool has(\Bitrix\Main\EventLog\Internal\EO_LogNotification $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification getByPrimary($primary)
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification[] getAll()
     * @method bool remove(\Bitrix\Main\EventLog\Internal\EO_LogNotification $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EventLog\Internal\EO_LogNotification_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_LogNotification_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\EventLog\Internal\LogNotificationTable */
        public static $dataClass = '\\Bitrix\\Main\\EventLog\\Internal\\LogNotificationTable';
    }
    /**
     * @method static EO_LogNotification_Query query()
     * @method static EO_LogNotification_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_LogNotification_Result getById($id)
     * @method static EO_LogNotification_Result getList(array $parameters = array())
     * @method static EO_LogNotification_Entity getEntity()
     * @method static \Bitrix\Main\EventLog\Internal\EO_LogNotification createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EventLog\Internal\EO_LogNotification_Collection createCollection()
     * @method static \Bitrix\Main\EventLog\Internal\EO_LogNotification wakeUpObject($row)
     * @method static \Bitrix\Main\EventLog\Internal\EO_LogNotification_Collection wakeUpCollection($rows)
     */
    class LogNotificationTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_LogNotification_Result exec()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification fetchObject()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_LogNotification_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification fetchObject()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification_Collection fetchCollection()
     */
    class EO_LogNotification_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification_Collection createCollection()
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification wakeUpObject($row)
     * @method \Bitrix\Main\EventLog\Internal\EO_LogNotification_Collection wakeUpCollection($rows)
     */
    class EO_LogNotification_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\File\Internal {
    /**
     * EO_FileDuplicate
     * @see \Bitrix\Main\File\Internal\FileDuplicateTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getDuplicateId()
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate setDuplicateId(\int|\Bitrix\Main\DB\SqlExpression $duplicateId)
     * @method bool hasDuplicateId()
     * @method bool isDuplicateIdFilled()
     * @method bool isDuplicateIdChanged()
     * @method \int getOriginalId()
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate setOriginalId(\int|\Bitrix\Main\DB\SqlExpression $originalId)
     * @method bool hasOriginalId()
     * @method bool isOriginalIdFilled()
     * @method bool isOriginalIdChanged()
     * @method \int getCounter()
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate setCounter(\int|\Bitrix\Main\DB\SqlExpression $counter)
     * @method bool hasCounter()
     * @method bool isCounterFilled()
     * @method bool isCounterChanged()
     * @method \int remindActualCounter()
     * @method \int requireCounter()
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate resetCounter()
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate unsetCounter()
     * @method \int fillCounter()
     * @method \boolean getOriginalDeleted()
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate setOriginalDeleted(\boolean|\Bitrix\Main\DB\SqlExpression $originalDeleted)
     * @method bool hasOriginalDeleted()
     * @method bool isOriginalDeletedFilled()
     * @method bool isOriginalDeletedChanged()
     * @method \boolean remindActualOriginalDeleted()
     * @method \boolean requireOriginalDeleted()
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate resetOriginalDeleted()
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate unsetOriginalDeleted()
     * @method \boolean fillOriginalDeleted()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate set($fieldName, $value)
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate reset($fieldName)
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\File\Internal\EO_FileDuplicate wakeUp($data)
     */
    class EO_FileDuplicate
    {
        /* @var \Bitrix\Main\File\Internal\FileDuplicateTable */
        public static $dataClass = '\\Bitrix\\Main\\File\\Internal\\FileDuplicateTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_FileDuplicate_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getDuplicateIdList()
     * @method \int[] getOriginalIdList()
     * @method \int[] getCounterList()
     * @method \int[] fillCounter()
     * @method \boolean[] getOriginalDeletedList()
     * @method \boolean[] fillOriginalDeleted()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\File\Internal\EO_FileDuplicate $object)
     * @method bool has(\Bitrix\Main\File\Internal\EO_FileDuplicate $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate getByPrimary($primary)
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate[] getAll()
     * @method bool remove(\Bitrix\Main\File\Internal\EO_FileDuplicate $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\File\Internal\EO_FileDuplicate_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_FileDuplicate_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\File\Internal\FileDuplicateTable */
        public static $dataClass = '\\Bitrix\\Main\\File\\Internal\\FileDuplicateTable';
    }
    /**
     * @method static EO_FileDuplicate_Query query()
     * @method static EO_FileDuplicate_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_FileDuplicate_Result getById($id)
     * @method static EO_FileDuplicate_Result getList(array $parameters = array())
     * @method static EO_FileDuplicate_Entity getEntity()
     * @method static \Bitrix\Main\File\Internal\EO_FileDuplicate createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\File\Internal\EO_FileDuplicate_Collection createCollection()
     * @method static \Bitrix\Main\File\Internal\EO_FileDuplicate wakeUpObject($row)
     * @method static \Bitrix\Main\File\Internal\EO_FileDuplicate_Collection wakeUpCollection($rows)
     */
    class FileDuplicateTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_FileDuplicate_Result exec()
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate fetchObject()
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_FileDuplicate_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate fetchObject()
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate_Collection fetchCollection()
     */
    class EO_FileDuplicate_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate createObject($setDefaultValues = true)
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate_Collection createCollection()
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate wakeUpObject($row)
     * @method \Bitrix\Main\File\Internal\EO_FileDuplicate_Collection wakeUpCollection($rows)
     */
    class EO_FileDuplicate_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_FileHash
     * @see \Bitrix\Main\File\Internal\FileHashTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getFileId()
     * @method \Bitrix\Main\File\Internal\EO_FileHash setFileId(\int|\Bitrix\Main\DB\SqlExpression $fileId)
     * @method bool hasFileId()
     * @method bool isFileIdFilled()
     * @method bool isFileIdChanged()
     * @method \int getFileSize()
     * @method \Bitrix\Main\File\Internal\EO_FileHash setFileSize(\int|\Bitrix\Main\DB\SqlExpression $fileSize)
     * @method bool hasFileSize()
     * @method bool isFileSizeFilled()
     * @method bool isFileSizeChanged()
     * @method \int remindActualFileSize()
     * @method \int requireFileSize()
     * @method \Bitrix\Main\File\Internal\EO_FileHash resetFileSize()
     * @method \Bitrix\Main\File\Internal\EO_FileHash unsetFileSize()
     * @method \int fillFileSize()
     * @method \string getFileHash()
     * @method \Bitrix\Main\File\Internal\EO_FileHash setFileHash(\string|\Bitrix\Main\DB\SqlExpression $fileHash)
     * @method bool hasFileHash()
     * @method bool isFileHashFilled()
     * @method bool isFileHashChanged()
     * @method \string remindActualFileHash()
     * @method \string requireFileHash()
     * @method \Bitrix\Main\File\Internal\EO_FileHash resetFileHash()
     * @method \Bitrix\Main\File\Internal\EO_FileHash unsetFileHash()
     * @method \string fillFileHash()
     * @method \Bitrix\Main\EO_File getFile()
     * @method \Bitrix\Main\EO_File remindActualFile()
     * @method \Bitrix\Main\EO_File requireFile()
     * @method \Bitrix\Main\File\Internal\EO_FileHash setFile(\Bitrix\Main\EO_File $object)
     * @method \Bitrix\Main\File\Internal\EO_FileHash resetFile()
     * @method \Bitrix\Main\File\Internal\EO_FileHash unsetFile()
     * @method bool hasFile()
     * @method bool isFileFilled()
     * @method bool isFileChanged()
     * @method \Bitrix\Main\EO_File fillFile()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\File\Internal\EO_FileHash set($fieldName, $value)
     * @method \Bitrix\Main\File\Internal\EO_FileHash reset($fieldName)
     * @method \Bitrix\Main\File\Internal\EO_FileHash unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\File\Internal\EO_FileHash wakeUp($data)
     */
    class EO_FileHash
    {
        /* @var \Bitrix\Main\File\Internal\FileHashTable */
        public static $dataClass = '\\Bitrix\\Main\\File\\Internal\\FileHashTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_FileHash_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getFileIdList()
     * @method \int[] getFileSizeList()
     * @method \int[] fillFileSize()
     * @method \string[] getFileHashList()
     * @method \string[] fillFileHash()
     * @method \Bitrix\Main\EO_File[] getFileList()
     * @method \Bitrix\Main\File\Internal\EO_FileHash_Collection getFileCollection()
     * @method \Bitrix\Main\EO_File_Collection fillFile()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\File\Internal\EO_FileHash $object)
     * @method bool has(\Bitrix\Main\File\Internal\EO_FileHash $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\File\Internal\EO_FileHash getByPrimary($primary)
     * @method \Bitrix\Main\File\Internal\EO_FileHash[] getAll()
     * @method bool remove(\Bitrix\Main\File\Internal\EO_FileHash $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\File\Internal\EO_FileHash_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\File\Internal\EO_FileHash current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_FileHash_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\File\Internal\FileHashTable */
        public static $dataClass = '\\Bitrix\\Main\\File\\Internal\\FileHashTable';
    }
    /**
     * @method static EO_FileHash_Query query()
     * @method static EO_FileHash_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_FileHash_Result getById($id)
     * @method static EO_FileHash_Result getList(array $parameters = array())
     * @method static EO_FileHash_Entity getEntity()
     * @method static \Bitrix\Main\File\Internal\EO_FileHash createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\File\Internal\EO_FileHash_Collection createCollection()
     * @method static \Bitrix\Main\File\Internal\EO_FileHash wakeUpObject($row)
     * @method static \Bitrix\Main\File\Internal\EO_FileHash_Collection wakeUpCollection($rows)
     */
    class FileHashTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_FileHash_Result exec()
     * @method \Bitrix\Main\File\Internal\EO_FileHash fetchObject()
     * @method \Bitrix\Main\File\Internal\EO_FileHash_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_FileHash_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\File\Internal\EO_FileHash fetchObject()
     * @method \Bitrix\Main\File\Internal\EO_FileHash_Collection fetchCollection()
     */
    class EO_FileHash_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\File\Internal\EO_FileHash createObject($setDefaultValues = true)
     * @method \Bitrix\Main\File\Internal\EO_FileHash_Collection createCollection()
     * @method \Bitrix\Main\File\Internal\EO_FileHash wakeUpObject($row)
     * @method \Bitrix\Main\File\Internal\EO_FileHash_Collection wakeUpCollection($rows)
     */
    class EO_FileHash_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main {
    /**
     * EO_File
     * @see \Bitrix\Main\FileTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\EO_File setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Main\EO_File setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Main\EO_File resetTimestampX()
     * @method \Bitrix\Main\EO_File unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \string getModuleId()
     * @method \Bitrix\Main\EO_File setModuleId(\string|\Bitrix\Main\DB\SqlExpression $moduleId)
     * @method bool hasModuleId()
     * @method bool isModuleIdFilled()
     * @method bool isModuleIdChanged()
     * @method \string remindActualModuleId()
     * @method \string requireModuleId()
     * @method \Bitrix\Main\EO_File resetModuleId()
     * @method \Bitrix\Main\EO_File unsetModuleId()
     * @method \string fillModuleId()
     * @method \int getHeight()
     * @method \Bitrix\Main\EO_File setHeight(\int|\Bitrix\Main\DB\SqlExpression $height)
     * @method bool hasHeight()
     * @method bool isHeightFilled()
     * @method bool isHeightChanged()
     * @method \int remindActualHeight()
     * @method \int requireHeight()
     * @method \Bitrix\Main\EO_File resetHeight()
     * @method \Bitrix\Main\EO_File unsetHeight()
     * @method \int fillHeight()
     * @method \int getWidth()
     * @method \Bitrix\Main\EO_File setWidth(\int|\Bitrix\Main\DB\SqlExpression $width)
     * @method bool hasWidth()
     * @method bool isWidthFilled()
     * @method bool isWidthChanged()
     * @method \int remindActualWidth()
     * @method \int requireWidth()
     * @method \Bitrix\Main\EO_File resetWidth()
     * @method \Bitrix\Main\EO_File unsetWidth()
     * @method \int fillWidth()
     * @method \int getFileSize()
     * @method \Bitrix\Main\EO_File setFileSize(\int|\Bitrix\Main\DB\SqlExpression $fileSize)
     * @method bool hasFileSize()
     * @method bool isFileSizeFilled()
     * @method bool isFileSizeChanged()
     * @method \int remindActualFileSize()
     * @method \int requireFileSize()
     * @method \Bitrix\Main\EO_File resetFileSize()
     * @method \Bitrix\Main\EO_File unsetFileSize()
     * @method \int fillFileSize()
     * @method \string getContentType()
     * @method \Bitrix\Main\EO_File setContentType(\string|\Bitrix\Main\DB\SqlExpression $contentType)
     * @method bool hasContentType()
     * @method bool isContentTypeFilled()
     * @method bool isContentTypeChanged()
     * @method \string remindActualContentType()
     * @method \string requireContentType()
     * @method \Bitrix\Main\EO_File resetContentType()
     * @method \Bitrix\Main\EO_File unsetContentType()
     * @method \string fillContentType()
     * @method \string getSubdir()
     * @method \Bitrix\Main\EO_File setSubdir(\string|\Bitrix\Main\DB\SqlExpression $subdir)
     * @method bool hasSubdir()
     * @method bool isSubdirFilled()
     * @method bool isSubdirChanged()
     * @method \string remindActualSubdir()
     * @method \string requireSubdir()
     * @method \Bitrix\Main\EO_File resetSubdir()
     * @method \Bitrix\Main\EO_File unsetSubdir()
     * @method \string fillSubdir()
     * @method \string getFileName()
     * @method \Bitrix\Main\EO_File setFileName(\string|\Bitrix\Main\DB\SqlExpression $fileName)
     * @method bool hasFileName()
     * @method bool isFileNameFilled()
     * @method bool isFileNameChanged()
     * @method \string remindActualFileName()
     * @method \string requireFileName()
     * @method \Bitrix\Main\EO_File resetFileName()
     * @method \Bitrix\Main\EO_File unsetFileName()
     * @method \string fillFileName()
     * @method \string getOriginalName()
     * @method \Bitrix\Main\EO_File setOriginalName(\string|\Bitrix\Main\DB\SqlExpression $originalName)
     * @method bool hasOriginalName()
     * @method bool isOriginalNameFilled()
     * @method bool isOriginalNameChanged()
     * @method \string remindActualOriginalName()
     * @method \string requireOriginalName()
     * @method \Bitrix\Main\EO_File resetOriginalName()
     * @method \Bitrix\Main\EO_File unsetOriginalName()
     * @method \string fillOriginalName()
     * @method \string getDescription()
     * @method \Bitrix\Main\EO_File setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Main\EO_File resetDescription()
     * @method \Bitrix\Main\EO_File unsetDescription()
     * @method \string fillDescription()
     * @method \string getHandlerId()
     * @method \Bitrix\Main\EO_File setHandlerId(\string|\Bitrix\Main\DB\SqlExpression $handlerId)
     * @method bool hasHandlerId()
     * @method bool isHandlerIdFilled()
     * @method bool isHandlerIdChanged()
     * @method \string remindActualHandlerId()
     * @method \string requireHandlerId()
     * @method \Bitrix\Main\EO_File resetHandlerId()
     * @method \Bitrix\Main\EO_File unsetHandlerId()
     * @method \string fillHandlerId()
     * @method \string getExternalId()
     * @method \Bitrix\Main\EO_File setExternalId(\string|\Bitrix\Main\DB\SqlExpression $externalId)
     * @method bool hasExternalId()
     * @method bool isExternalIdFilled()
     * @method bool isExternalIdChanged()
     * @method \string remindActualExternalId()
     * @method \string requireExternalId()
     * @method \Bitrix\Main\EO_File resetExternalId()
     * @method \Bitrix\Main\EO_File unsetExternalId()
     * @method \string fillExternalId()
     * @method \Bitrix\Main\File\Internal\EO_FileHash getHash()
     * @method \Bitrix\Main\File\Internal\EO_FileHash remindActualHash()
     * @method \Bitrix\Main\File\Internal\EO_FileHash requireHash()
     * @method \Bitrix\Main\EO_File setHash(\Bitrix\Main\File\Internal\EO_FileHash $object)
     * @method \Bitrix\Main\EO_File resetHash()
     * @method \Bitrix\Main\EO_File unsetHash()
     * @method bool hasHash()
     * @method bool isHashFilled()
     * @method bool isHashChanged()
     * @method \Bitrix\Main\File\Internal\EO_FileHash fillHash()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_File set($fieldName, $value)
     * @method \Bitrix\Main\EO_File reset($fieldName)
     * @method \Bitrix\Main\EO_File unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_File wakeUp($data)
     */
    class EO_File
    {
        /* @var \Bitrix\Main\FileTable */
        public static $dataClass = '\\Bitrix\\Main\\FileTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_File_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \string[] getModuleIdList()
     * @method \string[] fillModuleId()
     * @method \int[] getHeightList()
     * @method \int[] fillHeight()
     * @method \int[] getWidthList()
     * @method \int[] fillWidth()
     * @method \int[] getFileSizeList()
     * @method \int[] fillFileSize()
     * @method \string[] getContentTypeList()
     * @method \string[] fillContentType()
     * @method \string[] getSubdirList()
     * @method \string[] fillSubdir()
     * @method \string[] getFileNameList()
     * @method \string[] fillFileName()
     * @method \string[] getOriginalNameList()
     * @method \string[] fillOriginalName()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getHandlerIdList()
     * @method \string[] fillHandlerId()
     * @method \string[] getExternalIdList()
     * @method \string[] fillExternalId()
     * @method \Bitrix\Main\File\Internal\EO_FileHash[] getHashList()
     * @method \Bitrix\Main\EO_File_Collection getHashCollection()
     * @method \Bitrix\Main\File\Internal\EO_FileHash_Collection fillHash()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_File $object)
     * @method bool has(\Bitrix\Main\EO_File $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_File getByPrimary($primary)
     * @method \Bitrix\Main\EO_File[] getAll()
     * @method bool remove(\Bitrix\Main\EO_File $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_File_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_File current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_File_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\FileTable */
        public static $dataClass = '\\Bitrix\\Main\\FileTable';
    }
    /**
     * @method static EO_File_Query query()
     * @method static EO_File_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_File_Result getById($id)
     * @method static EO_File_Result getList(array $parameters = array())
     * @method static EO_File_Entity getEntity()
     * @method static \Bitrix\Main\EO_File createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_File_Collection createCollection()
     * @method static \Bitrix\Main\EO_File wakeUpObject($row)
     * @method static \Bitrix\Main\EO_File_Collection wakeUpCollection($rows)
     */
    class FileTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_File_Result exec()
     * @method \Bitrix\Main\EO_File fetchObject()
     * @method \Bitrix\Main\EO_File_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_File_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_File fetchObject()
     * @method \Bitrix\Main\EO_File_Collection fetchCollection()
     */
    class EO_File_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_File createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_File_Collection createCollection()
     * @method \Bitrix\Main\EO_File wakeUpObject($row)
     * @method \Bitrix\Main\EO_File_Collection wakeUpCollection($rows)
     */
    class EO_File_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\UI\EntitySelector {
    /**
     * EO_EntityUsage
     * @see \Bitrix\Main\UI\EntitySelector\EntityUsageTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage resetUser()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \string getItemId()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage setItemId(\string|\Bitrix\Main\DB\SqlExpression $itemId)
     * @method bool hasItemId()
     * @method bool isItemIdFilled()
     * @method bool isItemIdChanged()
     * @method \string getEntityId()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage setEntityId(\string|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \string getContext()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage setContext(\string|\Bitrix\Main\DB\SqlExpression $context)
     * @method bool hasContext()
     * @method bool isContextFilled()
     * @method bool isContextChanged()
     * @method \int getItemIdInt()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage setItemIdInt(\int|\Bitrix\Main\DB\SqlExpression $itemIdInt)
     * @method bool hasItemIdInt()
     * @method bool isItemIdIntFilled()
     * @method bool isItemIdIntChanged()
     * @method \int remindActualItemIdInt()
     * @method \int requireItemIdInt()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage resetItemIdInt()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage unsetItemIdInt()
     * @method \int fillItemIdInt()
     * @method \string getPrefix()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage setPrefix(\string|\Bitrix\Main\DB\SqlExpression $prefix)
     * @method bool hasPrefix()
     * @method bool isPrefixFilled()
     * @method bool isPrefixChanged()
     * @method \string remindActualPrefix()
     * @method \string requirePrefix()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage resetPrefix()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage unsetPrefix()
     * @method \string fillPrefix()
     * @method \Bitrix\Main\Type\DateTime getLastUseDate()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage setLastUseDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastUseDate)
     * @method bool hasLastUseDate()
     * @method bool isLastUseDateFilled()
     * @method bool isLastUseDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastUseDate()
     * @method \Bitrix\Main\Type\DateTime requireLastUseDate()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage resetLastUseDate()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage unsetLastUseDate()
     * @method \Bitrix\Main\Type\DateTime fillLastUseDate()
     * @method \string getCode()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage unsetCode()
     * @method \string fillCode()
     * @method \string getCodeType()
     * @method \string remindActualCodeType()
     * @method \string requireCodeType()
     * @method bool hasCodeType()
     * @method bool isCodeTypeFilled()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage unsetCodeType()
     * @method \string fillCodeType()
     * @method \string getCodeUserId()
     * @method \string remindActualCodeUserId()
     * @method \string requireCodeUserId()
     * @method bool hasCodeUserId()
     * @method bool isCodeUserIdFilled()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage unsetCodeUserId()
     * @method \string fillCodeUserId()
     * @method \Bitrix\Main\EO_User getCodeUser()
     * @method \Bitrix\Main\EO_User remindActualCodeUser()
     * @method \Bitrix\Main\EO_User requireCodeUser()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage setCodeUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage resetCodeUser()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage unsetCodeUser()
     * @method bool hasCodeUser()
     * @method bool isCodeUserFilled()
     * @method bool isCodeUserChanged()
     * @method \Bitrix\Main\EO_User fillCodeUser()
     * @method \Bitrix\Main\EO_User getCodeUserCurrent()
     * @method \Bitrix\Main\EO_User remindActualCodeUserCurrent()
     * @method \Bitrix\Main\EO_User requireCodeUserCurrent()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage setCodeUserCurrent(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage resetCodeUserCurrent()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage unsetCodeUserCurrent()
     * @method bool hasCodeUserCurrent()
     * @method bool isCodeUserCurrentFilled()
     * @method bool isCodeUserCurrentChanged()
     * @method \Bitrix\Main\EO_User fillCodeUserCurrent()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage set($fieldName, $value)
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage reset($fieldName)
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\UI\EntitySelector\EO_EntityUsage wakeUp($data)
     */
    class EO_EntityUsage
    {
        /* @var \Bitrix\Main\UI\EntitySelector\EntityUsageTable */
        public static $dataClass = '\\Bitrix\\Main\\UI\\EntitySelector\\EntityUsageTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_EntityUsage_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \string[] getItemIdList()
     * @method \string[] getEntityIdList()
     * @method \string[] getContextList()
     * @method \int[] getItemIdIntList()
     * @method \int[] fillItemIdInt()
     * @method \string[] getPrefixList()
     * @method \string[] fillPrefix()
     * @method \Bitrix\Main\Type\DateTime[] getLastUseDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastUseDate()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \string[] getCodeTypeList()
     * @method \string[] fillCodeType()
     * @method \string[] getCodeUserIdList()
     * @method \string[] fillCodeUserId()
     * @method \Bitrix\Main\EO_User[] getCodeUserList()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage_Collection getCodeUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCodeUser()
     * @method \Bitrix\Main\EO_User[] getCodeUserCurrentList()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage_Collection getCodeUserCurrentCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCodeUserCurrent()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\UI\EntitySelector\EO_EntityUsage $object)
     * @method bool has(\Bitrix\Main\UI\EntitySelector\EO_EntityUsage $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage getByPrimary($primary)
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage[] getAll()
     * @method bool remove(\Bitrix\Main\UI\EntitySelector\EO_EntityUsage $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\UI\EntitySelector\EO_EntityUsage_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_EntityUsage_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UI\EntitySelector\EntityUsageTable */
        public static $dataClass = '\\Bitrix\\Main\\UI\\EntitySelector\\EntityUsageTable';
    }
    /**
     * @method static EO_EntityUsage_Query query()
     * @method static EO_EntityUsage_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_EntityUsage_Result getById($id)
     * @method static EO_EntityUsage_Result getList(array $parameters = array())
     * @method static EO_EntityUsage_Entity getEntity()
     * @method static \Bitrix\Main\UI\EntitySelector\EO_EntityUsage createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\UI\EntitySelector\EO_EntityUsage_Collection createCollection()
     * @method static \Bitrix\Main\UI\EntitySelector\EO_EntityUsage wakeUpObject($row)
     * @method static \Bitrix\Main\UI\EntitySelector\EO_EntityUsage_Collection wakeUpCollection($rows)
     */
    class EntityUsageTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_EntityUsage_Result exec()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage fetchObject()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_EntityUsage_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage fetchObject()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage_Collection fetchCollection()
     */
    class EO_EntityUsage_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage createObject($setDefaultValues = true)
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage_Collection createCollection()
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage wakeUpObject($row)
     * @method \Bitrix\Main\UI\EntitySelector\EO_EntityUsage_Collection wakeUpCollection($rows)
     */
    class EO_EntityUsage_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main {
    /**
     * EO_FinderDest
     * @see \Bitrix\Main\FinderDestTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Main\EO_FinderDest setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Main\EO_FinderDest setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Main\EO_FinderDest resetUser()
     * @method \Bitrix\Main\EO_FinderDest unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \string getItemId()
     * @method \Bitrix\Main\EO_FinderDest setItemId(\string|\Bitrix\Main\DB\SqlExpression $itemId)
     * @method bool hasItemId()
     * @method bool isItemIdFilled()
     * @method bool isItemIdChanged()
     * @method \string getEntityId()
     * @method \Bitrix\Main\EO_FinderDest setEntityId(\string|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \string getContext()
     * @method \Bitrix\Main\EO_FinderDest setContext(\string|\Bitrix\Main\DB\SqlExpression $context)
     * @method bool hasContext()
     * @method bool isContextFilled()
     * @method bool isContextChanged()
     * @method \int getItemIdInt()
     * @method \Bitrix\Main\EO_FinderDest setItemIdInt(\int|\Bitrix\Main\DB\SqlExpression $itemIdInt)
     * @method bool hasItemIdInt()
     * @method bool isItemIdIntFilled()
     * @method bool isItemIdIntChanged()
     * @method \int remindActualItemIdInt()
     * @method \int requireItemIdInt()
     * @method \Bitrix\Main\EO_FinderDest resetItemIdInt()
     * @method \Bitrix\Main\EO_FinderDest unsetItemIdInt()
     * @method \int fillItemIdInt()
     * @method \string getPrefix()
     * @method \Bitrix\Main\EO_FinderDest setPrefix(\string|\Bitrix\Main\DB\SqlExpression $prefix)
     * @method bool hasPrefix()
     * @method bool isPrefixFilled()
     * @method bool isPrefixChanged()
     * @method \string remindActualPrefix()
     * @method \string requirePrefix()
     * @method \Bitrix\Main\EO_FinderDest resetPrefix()
     * @method \Bitrix\Main\EO_FinderDest unsetPrefix()
     * @method \string fillPrefix()
     * @method \Bitrix\Main\Type\DateTime getLastUseDate()
     * @method \Bitrix\Main\EO_FinderDest setLastUseDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastUseDate)
     * @method bool hasLastUseDate()
     * @method bool isLastUseDateFilled()
     * @method bool isLastUseDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastUseDate()
     * @method \Bitrix\Main\Type\DateTime requireLastUseDate()
     * @method \Bitrix\Main\EO_FinderDest resetLastUseDate()
     * @method \Bitrix\Main\EO_FinderDest unsetLastUseDate()
     * @method \Bitrix\Main\Type\DateTime fillLastUseDate()
     * @method \string getCode()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method \Bitrix\Main\EO_FinderDest unsetCode()
     * @method \string fillCode()
     * @method \string getCodeType()
     * @method \string remindActualCodeType()
     * @method \string requireCodeType()
     * @method bool hasCodeType()
     * @method bool isCodeTypeFilled()
     * @method \Bitrix\Main\EO_FinderDest unsetCodeType()
     * @method \string fillCodeType()
     * @method \string getCodeUserId()
     * @method \string remindActualCodeUserId()
     * @method \string requireCodeUserId()
     * @method bool hasCodeUserId()
     * @method bool isCodeUserIdFilled()
     * @method \Bitrix\Main\EO_FinderDest unsetCodeUserId()
     * @method \string fillCodeUserId()
     * @method \Bitrix\Main\EO_User getCodeUser()
     * @method \Bitrix\Main\EO_User remindActualCodeUser()
     * @method \Bitrix\Main\EO_User requireCodeUser()
     * @method \Bitrix\Main\EO_FinderDest setCodeUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Main\EO_FinderDest resetCodeUser()
     * @method \Bitrix\Main\EO_FinderDest unsetCodeUser()
     * @method bool hasCodeUser()
     * @method bool isCodeUserFilled()
     * @method bool isCodeUserChanged()
     * @method \Bitrix\Main\EO_User fillCodeUser()
     * @method \Bitrix\Main\EO_User getCodeUserCurrent()
     * @method \Bitrix\Main\EO_User remindActualCodeUserCurrent()
     * @method \Bitrix\Main\EO_User requireCodeUserCurrent()
     * @method \Bitrix\Main\EO_FinderDest setCodeUserCurrent(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Main\EO_FinderDest resetCodeUserCurrent()
     * @method \Bitrix\Main\EO_FinderDest unsetCodeUserCurrent()
     * @method bool hasCodeUserCurrent()
     * @method bool isCodeUserCurrentFilled()
     * @method bool isCodeUserCurrentChanged()
     * @method \Bitrix\Main\EO_User fillCodeUserCurrent()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_FinderDest set($fieldName, $value)
     * @method \Bitrix\Main\EO_FinderDest reset($fieldName)
     * @method \Bitrix\Main\EO_FinderDest unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_FinderDest wakeUp($data)
     */
    class EO_FinderDest
    {
        /* @var \Bitrix\Main\FinderDestTable */
        public static $dataClass = '\\Bitrix\\Main\\FinderDestTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_FinderDest_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Main\EO_FinderDest_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \string[] getItemIdList()
     * @method \string[] getEntityIdList()
     * @method \string[] getContextList()
     * @method \int[] getItemIdIntList()
     * @method \int[] fillItemIdInt()
     * @method \string[] getPrefixList()
     * @method \string[] fillPrefix()
     * @method \Bitrix\Main\Type\DateTime[] getLastUseDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastUseDate()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \string[] getCodeTypeList()
     * @method \string[] fillCodeType()
     * @method \string[] getCodeUserIdList()
     * @method \string[] fillCodeUserId()
     * @method \Bitrix\Main\EO_User[] getCodeUserList()
     * @method \Bitrix\Main\EO_FinderDest_Collection getCodeUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCodeUser()
     * @method \Bitrix\Main\EO_User[] getCodeUserCurrentList()
     * @method \Bitrix\Main\EO_FinderDest_Collection getCodeUserCurrentCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCodeUserCurrent()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_FinderDest $object)
     * @method bool has(\Bitrix\Main\EO_FinderDest $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_FinderDest getByPrimary($primary)
     * @method \Bitrix\Main\EO_FinderDest[] getAll()
     * @method bool remove(\Bitrix\Main\EO_FinderDest $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_FinderDest_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_FinderDest current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_FinderDest_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\FinderDestTable */
        public static $dataClass = '\\Bitrix\\Main\\FinderDestTable';
    }
    /**
     * @method static EO_FinderDest_Query query()
     * @method static EO_FinderDest_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_FinderDest_Result getById($id)
     * @method static EO_FinderDest_Result getList(array $parameters = array())
     * @method static EO_FinderDest_Entity getEntity()
     * @method static \Bitrix\Main\EO_FinderDest createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_FinderDest_Collection createCollection()
     * @method static \Bitrix\Main\EO_FinderDest wakeUpObject($row)
     * @method static \Bitrix\Main\EO_FinderDest_Collection wakeUpCollection($rows)
     */
    class FinderDestTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_FinderDest_Result exec()
     * @method \Bitrix\Main\EO_FinderDest fetchObject()
     * @method \Bitrix\Main\EO_FinderDest_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_FinderDest_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_FinderDest fetchObject()
     * @method \Bitrix\Main\EO_FinderDest_Collection fetchCollection()
     */
    class EO_FinderDest_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_FinderDest createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_FinderDest_Collection createCollection()
     * @method \Bitrix\Main\EO_FinderDest wakeUpObject($row)
     * @method \Bitrix\Main\EO_FinderDest_Collection wakeUpCollection($rows)
     */
    class EO_FinderDest_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Group
     * @see \Bitrix\Main\GroupTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\EO_Group setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Main\EO_Group setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Main\EO_Group resetTimestampX()
     * @method \Bitrix\Main\EO_Group unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \boolean getActive()
     * @method \Bitrix\Main\EO_Group setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Main\EO_Group resetActive()
     * @method \Bitrix\Main\EO_Group unsetActive()
     * @method \boolean fillActive()
     * @method \int getCSort()
     * @method \Bitrix\Main\EO_Group setCSort(\int|\Bitrix\Main\DB\SqlExpression $cSort)
     * @method bool hasCSort()
     * @method bool isCSortFilled()
     * @method bool isCSortChanged()
     * @method \int remindActualCSort()
     * @method \int requireCSort()
     * @method \Bitrix\Main\EO_Group resetCSort()
     * @method \Bitrix\Main\EO_Group unsetCSort()
     * @method \int fillCSort()
     * @method \boolean getIsSystem()
     * @method \Bitrix\Main\EO_Group setIsSystem(\boolean|\Bitrix\Main\DB\SqlExpression $isSystem)
     * @method bool hasIsSystem()
     * @method bool isIsSystemFilled()
     * @method bool isIsSystemChanged()
     * @method \boolean remindActualIsSystem()
     * @method \boolean requireIsSystem()
     * @method \Bitrix\Main\EO_Group resetIsSystem()
     * @method \Bitrix\Main\EO_Group unsetIsSystem()
     * @method \boolean fillIsSystem()
     * @method \boolean getAnonymous()
     * @method \Bitrix\Main\EO_Group setAnonymous(\boolean|\Bitrix\Main\DB\SqlExpression $anonymous)
     * @method bool hasAnonymous()
     * @method bool isAnonymousFilled()
     * @method bool isAnonymousChanged()
     * @method \boolean remindActualAnonymous()
     * @method \boolean requireAnonymous()
     * @method \Bitrix\Main\EO_Group resetAnonymous()
     * @method \Bitrix\Main\EO_Group unsetAnonymous()
     * @method \boolean fillAnonymous()
     * @method \string getName()
     * @method \Bitrix\Main\EO_Group setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Main\EO_Group resetName()
     * @method \Bitrix\Main\EO_Group unsetName()
     * @method \string fillName()
     * @method \string getDescription()
     * @method \Bitrix\Main\EO_Group setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Main\EO_Group resetDescription()
     * @method \Bitrix\Main\EO_Group unsetDescription()
     * @method \string fillDescription()
     * @method \string getStringId()
     * @method \Bitrix\Main\EO_Group setStringId(\string|\Bitrix\Main\DB\SqlExpression $stringId)
     * @method bool hasStringId()
     * @method bool isStringIdFilled()
     * @method bool isStringIdChanged()
     * @method \string remindActualStringId()
     * @method \string requireStringId()
     * @method \Bitrix\Main\EO_Group resetStringId()
     * @method \Bitrix\Main\EO_Group unsetStringId()
     * @method \string fillStringId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_Group set($fieldName, $value)
     * @method \Bitrix\Main\EO_Group reset($fieldName)
     * @method \Bitrix\Main\EO_Group unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_Group wakeUp($data)
     */
    class EO_Group
    {
        /* @var \Bitrix\Main\GroupTable */
        public static $dataClass = '\\Bitrix\\Main\\GroupTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Group_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \int[] getCSortList()
     * @method \int[] fillCSort()
     * @method \boolean[] getIsSystemList()
     * @method \boolean[] fillIsSystem()
     * @method \boolean[] getAnonymousList()
     * @method \boolean[] fillAnonymous()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getStringIdList()
     * @method \string[] fillStringId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_Group $object)
     * @method bool has(\Bitrix\Main\EO_Group $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_Group getByPrimary($primary)
     * @method \Bitrix\Main\EO_Group[] getAll()
     * @method bool remove(\Bitrix\Main\EO_Group $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_Group_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_Group current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Group_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\GroupTable */
        public static $dataClass = '\\Bitrix\\Main\\GroupTable';
    }
    /**
     * @method static EO_Group_Query query()
     * @method static EO_Group_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Group_Result getById($id)
     * @method static EO_Group_Result getList(array $parameters = array())
     * @method static EO_Group_Entity getEntity()
     * @method static \Bitrix\Main\EO_Group createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_Group_Collection createCollection()
     * @method static \Bitrix\Main\EO_Group wakeUpObject($row)
     * @method static \Bitrix\Main\EO_Group_Collection wakeUpCollection($rows)
     */
    class GroupTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Group_Result exec()
     * @method \Bitrix\Main\EO_Group fetchObject()
     * @method \Bitrix\Main\EO_Group_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Group_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_Group fetchObject()
     * @method \Bitrix\Main\EO_Group_Collection fetchCollection()
     */
    class EO_Group_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_Group createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_Group_Collection createCollection()
     * @method \Bitrix\Main\EO_Group wakeUpObject($row)
     * @method \Bitrix\Main\EO_Group_Collection wakeUpCollection($rows)
     */
    class EO_Group_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_GroupTask
     * @see \Bitrix\Main\GroupTaskTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getGroupId()
     * @method \Bitrix\Main\EO_GroupTask setGroupId(\int|\Bitrix\Main\DB\SqlExpression $groupId)
     * @method bool hasGroupId()
     * @method bool isGroupIdFilled()
     * @method bool isGroupIdChanged()
     * @method \int getTaskId()
     * @method \Bitrix\Main\EO_GroupTask setTaskId(\int|\Bitrix\Main\DB\SqlExpression $taskId)
     * @method bool hasTaskId()
     * @method bool isTaskIdFilled()
     * @method bool isTaskIdChanged()
     * @method \string getExternalId()
     * @method \Bitrix\Main\EO_GroupTask setExternalId(\string|\Bitrix\Main\DB\SqlExpression $externalId)
     * @method bool hasExternalId()
     * @method bool isExternalIdFilled()
     * @method bool isExternalIdChanged()
     * @method \string remindActualExternalId()
     * @method \string requireExternalId()
     * @method \Bitrix\Main\EO_GroupTask resetExternalId()
     * @method \Bitrix\Main\EO_GroupTask unsetExternalId()
     * @method \string fillExternalId()
     * @method \Bitrix\Main\EO_Group getGroup()
     * @method \Bitrix\Main\EO_Group remindActualGroup()
     * @method \Bitrix\Main\EO_Group requireGroup()
     * @method \Bitrix\Main\EO_GroupTask setGroup(\Bitrix\Main\EO_Group $object)
     * @method \Bitrix\Main\EO_GroupTask resetGroup()
     * @method \Bitrix\Main\EO_GroupTask unsetGroup()
     * @method bool hasGroup()
     * @method bool isGroupFilled()
     * @method bool isGroupChanged()
     * @method \Bitrix\Main\EO_Group fillGroup()
     * @method \Bitrix\Main\EO_Task getTask()
     * @method \Bitrix\Main\EO_Task remindActualTask()
     * @method \Bitrix\Main\EO_Task requireTask()
     * @method \Bitrix\Main\EO_GroupTask setTask(\Bitrix\Main\EO_Task $object)
     * @method \Bitrix\Main\EO_GroupTask resetTask()
     * @method \Bitrix\Main\EO_GroupTask unsetTask()
     * @method bool hasTask()
     * @method bool isTaskFilled()
     * @method bool isTaskChanged()
     * @method \Bitrix\Main\EO_Task fillTask()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_GroupTask set($fieldName, $value)
     * @method \Bitrix\Main\EO_GroupTask reset($fieldName)
     * @method \Bitrix\Main\EO_GroupTask unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_GroupTask wakeUp($data)
     */
    class EO_GroupTask
    {
        /* @var \Bitrix\Main\GroupTaskTable */
        public static $dataClass = '\\Bitrix\\Main\\GroupTaskTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_GroupTask_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getGroupIdList()
     * @method \int[] getTaskIdList()
     * @method \string[] getExternalIdList()
     * @method \string[] fillExternalId()
     * @method \Bitrix\Main\EO_Group[] getGroupList()
     * @method \Bitrix\Main\EO_GroupTask_Collection getGroupCollection()
     * @method \Bitrix\Main\EO_Group_Collection fillGroup()
     * @method \Bitrix\Main\EO_Task[] getTaskList()
     * @method \Bitrix\Main\EO_GroupTask_Collection getTaskCollection()
     * @method \Bitrix\Main\EO_Task_Collection fillTask()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_GroupTask $object)
     * @method bool has(\Bitrix\Main\EO_GroupTask $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_GroupTask getByPrimary($primary)
     * @method \Bitrix\Main\EO_GroupTask[] getAll()
     * @method bool remove(\Bitrix\Main\EO_GroupTask $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_GroupTask_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_GroupTask current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_GroupTask_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\GroupTaskTable */
        public static $dataClass = '\\Bitrix\\Main\\GroupTaskTable';
    }
    /**
     * @method static EO_GroupTask_Query query()
     * @method static EO_GroupTask_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_GroupTask_Result getById($id)
     * @method static EO_GroupTask_Result getList(array $parameters = array())
     * @method static EO_GroupTask_Entity getEntity()
     * @method static \Bitrix\Main\EO_GroupTask createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_GroupTask_Collection createCollection()
     * @method static \Bitrix\Main\EO_GroupTask wakeUpObject($row)
     * @method static \Bitrix\Main\EO_GroupTask_Collection wakeUpCollection($rows)
     */
    class GroupTaskTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_GroupTask_Result exec()
     * @method \Bitrix\Main\EO_GroupTask fetchObject()
     * @method \Bitrix\Main\EO_GroupTask_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_GroupTask_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_GroupTask fetchObject()
     * @method \Bitrix\Main\EO_GroupTask_Collection fetchCollection()
     */
    class EO_GroupTask_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_GroupTask createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_GroupTask_Collection createCollection()
     * @method \Bitrix\Main\EO_GroupTask wakeUpObject($row)
     * @method \Bitrix\Main\EO_GroupTask_Collection wakeUpCollection($rows)
     */
    class EO_GroupTask_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\Localization {
    /**
     * EO_Language
     * @see \Bitrix\Main\Localization\LanguageTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getLid()
     * @method \Bitrix\Main\Localization\EO_Language setLid(\string|\Bitrix\Main\DB\SqlExpression $lid)
     * @method bool hasLid()
     * @method bool isLidFilled()
     * @method bool isLidChanged()
     * @method \string getId()
     * @method \string remindActualId()
     * @method \string requireId()
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method \Bitrix\Main\Localization\EO_Language unsetId()
     * @method \string fillId()
     * @method \string getLanguageId()
     * @method \string remindActualLanguageId()
     * @method \string requireLanguageId()
     * @method bool hasLanguageId()
     * @method bool isLanguageIdFilled()
     * @method \Bitrix\Main\Localization\EO_Language unsetLanguageId()
     * @method \string fillLanguageId()
     * @method \int getSort()
     * @method \Bitrix\Main\Localization\EO_Language setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Main\Localization\EO_Language resetSort()
     * @method \Bitrix\Main\Localization\EO_Language unsetSort()
     * @method \int fillSort()
     * @method \boolean getDef()
     * @method \Bitrix\Main\Localization\EO_Language setDef(\boolean|\Bitrix\Main\DB\SqlExpression $def)
     * @method bool hasDef()
     * @method bool isDefFilled()
     * @method bool isDefChanged()
     * @method \boolean remindActualDef()
     * @method \boolean requireDef()
     * @method \Bitrix\Main\Localization\EO_Language resetDef()
     * @method \Bitrix\Main\Localization\EO_Language unsetDef()
     * @method \boolean fillDef()
     * @method \boolean getActive()
     * @method \Bitrix\Main\Localization\EO_Language setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Main\Localization\EO_Language resetActive()
     * @method \Bitrix\Main\Localization\EO_Language unsetActive()
     * @method \boolean fillActive()
     * @method \string getName()
     * @method \Bitrix\Main\Localization\EO_Language setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Main\Localization\EO_Language resetName()
     * @method \Bitrix\Main\Localization\EO_Language unsetName()
     * @method \string fillName()
     * @method \int getCultureId()
     * @method \Bitrix\Main\Localization\EO_Language setCultureId(\int|\Bitrix\Main\DB\SqlExpression $cultureId)
     * @method bool hasCultureId()
     * @method bool isCultureIdFilled()
     * @method bool isCultureIdChanged()
     * @method \int remindActualCultureId()
     * @method \int requireCultureId()
     * @method \Bitrix\Main\Localization\EO_Language resetCultureId()
     * @method \Bitrix\Main\Localization\EO_Language unsetCultureId()
     * @method \int fillCultureId()
     * @method \Bitrix\Main\Context\Culture getCulture()
     * @method \Bitrix\Main\Context\Culture remindActualCulture()
     * @method \Bitrix\Main\Context\Culture requireCulture()
     * @method \Bitrix\Main\Localization\EO_Language setCulture(\Bitrix\Main\Context\Culture $object)
     * @method \Bitrix\Main\Localization\EO_Language resetCulture()
     * @method \Bitrix\Main\Localization\EO_Language unsetCulture()
     * @method bool hasCulture()
     * @method bool isCultureFilled()
     * @method bool isCultureChanged()
     * @method \Bitrix\Main\Context\Culture fillCulture()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Localization\EO_Language set($fieldName, $value)
     * @method \Bitrix\Main\Localization\EO_Language reset($fieldName)
     * @method \Bitrix\Main\Localization\EO_Language unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Localization\EO_Language wakeUp($data)
     */
    class EO_Language
    {
        /* @var \Bitrix\Main\Localization\LanguageTable */
        public static $dataClass = '\\Bitrix\\Main\\Localization\\LanguageTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Language_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getLidList()
     * @method \string[] getIdList()
     * @method \string[] fillId()
     * @method \string[] getLanguageIdList()
     * @method \string[] fillLanguageId()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \boolean[] getDefList()
     * @method \boolean[] fillDef()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \int[] getCultureIdList()
     * @method \int[] fillCultureId()
     * @method \Bitrix\Main\Context\Culture[] getCultureList()
     * @method \Bitrix\Main\Localization\EO_Language_Collection getCultureCollection()
     * @method \Bitrix\Main\Localization\EO_Culture_Collection fillCulture()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Localization\EO_Language $object)
     * @method bool has(\Bitrix\Main\Localization\EO_Language $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Localization\EO_Language getByPrimary($primary)
     * @method \Bitrix\Main\Localization\EO_Language[] getAll()
     * @method bool remove(\Bitrix\Main\Localization\EO_Language $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Localization\EO_Language_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Localization\EO_Language current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Language_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Localization\LanguageTable */
        public static $dataClass = '\\Bitrix\\Main\\Localization\\LanguageTable';
    }
    /**
     * @method static EO_Language_Query query()
     * @method static EO_Language_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Language_Result getById($id)
     * @method static EO_Language_Result getList(array $parameters = array())
     * @method static EO_Language_Entity getEntity()
     * @method static \Bitrix\Main\Localization\EO_Language createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Localization\EO_Language_Collection createCollection()
     * @method static \Bitrix\Main\Localization\EO_Language wakeUpObject($row)
     * @method static \Bitrix\Main\Localization\EO_Language_Collection wakeUpCollection($rows)
     */
    class LanguageTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Language_Result exec()
     * @method \Bitrix\Main\Localization\EO_Language fetchObject()
     * @method \Bitrix\Main\Localization\EO_Language_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Language_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Localization\EO_Language fetchObject()
     * @method \Bitrix\Main\Localization\EO_Language_Collection fetchCollection()
     */
    class EO_Language_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Localization\EO_Language createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Localization\EO_Language_Collection createCollection()
     * @method \Bitrix\Main\Localization\EO_Language wakeUpObject($row)
     * @method \Bitrix\Main\Localization\EO_Language_Collection wakeUpCollection($rows)
     */
    class EO_Language_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\Mail\Internal {
    /**
     * EO_Blacklist
     * @see \Bitrix\Main\Mail\Internal\BlacklistTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getCategoryId()
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist setCategoryId(\int|\Bitrix\Main\DB\SqlExpression $categoryId)
     * @method bool hasCategoryId()
     * @method bool isCategoryIdFilled()
     * @method bool isCategoryIdChanged()
     * @method \int remindActualCategoryId()
     * @method \int requireCategoryId()
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist resetCategoryId()
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist unsetCategoryId()
     * @method \int fillCategoryId()
     * @method \string getCode()
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist resetCode()
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist unsetCode()
     * @method \string fillCode()
     * @method \Bitrix\Main\Type\DateTime getDateInsert()
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist setDateInsert(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateInsert)
     * @method bool hasDateInsert()
     * @method bool isDateInsertFilled()
     * @method bool isDateInsertChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateInsert()
     * @method \Bitrix\Main\Type\DateTime requireDateInsert()
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist resetDateInsert()
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist unsetDateInsert()
     * @method \Bitrix\Main\Type\DateTime fillDateInsert()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist set($fieldName, $value)
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist reset($fieldName)
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Mail\Internal\EO_Blacklist wakeUp($data)
     */
    class EO_Blacklist
    {
        /* @var \Bitrix\Main\Mail\Internal\BlacklistTable */
        public static $dataClass = '\\Bitrix\\Main\\Mail\\Internal\\BlacklistTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Blacklist_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getCategoryIdList()
     * @method \int[] fillCategoryId()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \Bitrix\Main\Type\DateTime[] getDateInsertList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateInsert()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Mail\Internal\EO_Blacklist $object)
     * @method bool has(\Bitrix\Main\Mail\Internal\EO_Blacklist $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist getByPrimary($primary)
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist[] getAll()
     * @method bool remove(\Bitrix\Main\Mail\Internal\EO_Blacklist $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Mail\Internal\EO_Blacklist_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Blacklist_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Mail\Internal\BlacklistTable */
        public static $dataClass = '\\Bitrix\\Main\\Mail\\Internal\\BlacklistTable';
    }
    /**
     * @method static EO_Blacklist_Query query()
     * @method static EO_Blacklist_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Blacklist_Result getById($id)
     * @method static EO_Blacklist_Result getList(array $parameters = array())
     * @method static EO_Blacklist_Entity getEntity()
     * @method static \Bitrix\Main\Mail\Internal\EO_Blacklist createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Mail\Internal\EO_Blacklist_Collection createCollection()
     * @method static \Bitrix\Main\Mail\Internal\EO_Blacklist wakeUpObject($row)
     * @method static \Bitrix\Main\Mail\Internal\EO_Blacklist_Collection wakeUpCollection($rows)
     */
    class BlacklistTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Blacklist_Result exec()
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist fetchObject()
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Blacklist_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist fetchObject()
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist_Collection fetchCollection()
     */
    class EO_Blacklist_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist_Collection createCollection()
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist wakeUpObject($row)
     * @method \Bitrix\Main\Mail\Internal\EO_Blacklist_Collection wakeUpCollection($rows)
     */
    class EO_Blacklist_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Event
     * @see \Bitrix\Main\Mail\Internal\EventTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Mail\Internal\EO_Event setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getEventName()
     * @method \Bitrix\Main\Mail\Internal\EO_Event setEventName(\string|\Bitrix\Main\DB\SqlExpression $eventName)
     * @method bool hasEventName()
     * @method bool isEventNameFilled()
     * @method bool isEventNameChanged()
     * @method \string remindActualEventName()
     * @method \string requireEventName()
     * @method \Bitrix\Main\Mail\Internal\EO_Event resetEventName()
     * @method \Bitrix\Main\Mail\Internal\EO_Event unsetEventName()
     * @method \string fillEventName()
     * @method \int getMessageId()
     * @method \Bitrix\Main\Mail\Internal\EO_Event setMessageId(\int|\Bitrix\Main\DB\SqlExpression $messageId)
     * @method bool hasMessageId()
     * @method bool isMessageIdFilled()
     * @method bool isMessageIdChanged()
     * @method \int remindActualMessageId()
     * @method \int requireMessageId()
     * @method \Bitrix\Main\Mail\Internal\EO_Event resetMessageId()
     * @method \Bitrix\Main\Mail\Internal\EO_Event unsetMessageId()
     * @method \int fillMessageId()
     * @method \string getLid()
     * @method \Bitrix\Main\Mail\Internal\EO_Event setLid(\string|\Bitrix\Main\DB\SqlExpression $lid)
     * @method bool hasLid()
     * @method bool isLidFilled()
     * @method bool isLidChanged()
     * @method \string remindActualLid()
     * @method \string requireLid()
     * @method \Bitrix\Main\Mail\Internal\EO_Event resetLid()
     * @method \Bitrix\Main\Mail\Internal\EO_Event unsetLid()
     * @method \string fillLid()
     * @method array getCFields()
     * @method \Bitrix\Main\Mail\Internal\EO_Event setCFields(array|\Bitrix\Main\DB\SqlExpression $cFields)
     * @method bool hasCFields()
     * @method bool isCFieldsFilled()
     * @method bool isCFieldsChanged()
     * @method array remindActualCFields()
     * @method array requireCFields()
     * @method \Bitrix\Main\Mail\Internal\EO_Event resetCFields()
     * @method \Bitrix\Main\Mail\Internal\EO_Event unsetCFields()
     * @method array fillCFields()
     * @method \Bitrix\Main\Type\DateTime getDateInsert()
     * @method \Bitrix\Main\Mail\Internal\EO_Event setDateInsert(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateInsert)
     * @method bool hasDateInsert()
     * @method bool isDateInsertFilled()
     * @method bool isDateInsertChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateInsert()
     * @method \Bitrix\Main\Type\DateTime requireDateInsert()
     * @method \Bitrix\Main\Mail\Internal\EO_Event resetDateInsert()
     * @method \Bitrix\Main\Mail\Internal\EO_Event unsetDateInsert()
     * @method \Bitrix\Main\Type\DateTime fillDateInsert()
     * @method \Bitrix\Main\Type\DateTime getDateExec()
     * @method \Bitrix\Main\Mail\Internal\EO_Event setDateExec(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateExec)
     * @method bool hasDateExec()
     * @method bool isDateExecFilled()
     * @method bool isDateExecChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateExec()
     * @method \Bitrix\Main\Type\DateTime requireDateExec()
     * @method \Bitrix\Main\Mail\Internal\EO_Event resetDateExec()
     * @method \Bitrix\Main\Mail\Internal\EO_Event unsetDateExec()
     * @method \Bitrix\Main\Type\DateTime fillDateExec()
     * @method \string getSuccessExec()
     * @method \Bitrix\Main\Mail\Internal\EO_Event setSuccessExec(\string|\Bitrix\Main\DB\SqlExpression $successExec)
     * @method bool hasSuccessExec()
     * @method bool isSuccessExecFilled()
     * @method bool isSuccessExecChanged()
     * @method \string remindActualSuccessExec()
     * @method \string requireSuccessExec()
     * @method \Bitrix\Main\Mail\Internal\EO_Event resetSuccessExec()
     * @method \Bitrix\Main\Mail\Internal\EO_Event unsetSuccessExec()
     * @method \string fillSuccessExec()
     * @method \string getDuplicate()
     * @method \Bitrix\Main\Mail\Internal\EO_Event setDuplicate(\string|\Bitrix\Main\DB\SqlExpression $duplicate)
     * @method bool hasDuplicate()
     * @method bool isDuplicateFilled()
     * @method bool isDuplicateChanged()
     * @method \string remindActualDuplicate()
     * @method \string requireDuplicate()
     * @method \Bitrix\Main\Mail\Internal\EO_Event resetDuplicate()
     * @method \Bitrix\Main\Mail\Internal\EO_Event unsetDuplicate()
     * @method \string fillDuplicate()
     * @method \string getLanguageId()
     * @method \Bitrix\Main\Mail\Internal\EO_Event setLanguageId(\string|\Bitrix\Main\DB\SqlExpression $languageId)
     * @method bool hasLanguageId()
     * @method bool isLanguageIdFilled()
     * @method bool isLanguageIdChanged()
     * @method \string remindActualLanguageId()
     * @method \string requireLanguageId()
     * @method \Bitrix\Main\Mail\Internal\EO_Event resetLanguageId()
     * @method \Bitrix\Main\Mail\Internal\EO_Event unsetLanguageId()
     * @method \string fillLanguageId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Mail\Internal\EO_Event set($fieldName, $value)
     * @method \Bitrix\Main\Mail\Internal\EO_Event reset($fieldName)
     * @method \Bitrix\Main\Mail\Internal\EO_Event unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Mail\Internal\EO_Event wakeUp($data)
     */
    class EO_Event
    {
        /* @var \Bitrix\Main\Mail\Internal\EventTable */
        public static $dataClass = '\\Bitrix\\Main\\Mail\\Internal\\EventTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Event_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getEventNameList()
     * @method \string[] fillEventName()
     * @method \int[] getMessageIdList()
     * @method \int[] fillMessageId()
     * @method \string[] getLidList()
     * @method \string[] fillLid()
     * @method array[] getCFieldsList()
     * @method array[] fillCFields()
     * @method \Bitrix\Main\Type\DateTime[] getDateInsertList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateInsert()
     * @method \Bitrix\Main\Type\DateTime[] getDateExecList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateExec()
     * @method \string[] getSuccessExecList()
     * @method \string[] fillSuccessExec()
     * @method \string[] getDuplicateList()
     * @method \string[] fillDuplicate()
     * @method \string[] getLanguageIdList()
     * @method \string[] fillLanguageId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Mail\Internal\EO_Event $object)
     * @method bool has(\Bitrix\Main\Mail\Internal\EO_Event $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Mail\Internal\EO_Event getByPrimary($primary)
     * @method \Bitrix\Main\Mail\Internal\EO_Event[] getAll()
     * @method bool remove(\Bitrix\Main\Mail\Internal\EO_Event $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Mail\Internal\EO_Event_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Mail\Internal\EO_Event current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Event_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Mail\Internal\EventTable */
        public static $dataClass = '\\Bitrix\\Main\\Mail\\Internal\\EventTable';
    }
    /**
     * @method static EO_Event_Query query()
     * @method static EO_Event_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Event_Result getById($id)
     * @method static EO_Event_Result getList(array $parameters = array())
     * @method static EO_Event_Entity getEntity()
     * @method static \Bitrix\Main\Mail\Internal\EO_Event createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Mail\Internal\EO_Event_Collection createCollection()
     * @method static \Bitrix\Main\Mail\Internal\EO_Event wakeUpObject($row)
     * @method static \Bitrix\Main\Mail\Internal\EO_Event_Collection wakeUpCollection($rows)
     */
    class EventTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Event_Result exec()
     * @method \Bitrix\Main\Mail\Internal\EO_Event fetchObject()
     * @method \Bitrix\Main\Mail\Internal\EO_Event_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Event_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Mail\Internal\EO_Event fetchObject()
     * @method \Bitrix\Main\Mail\Internal\EO_Event_Collection fetchCollection()
     */
    class EO_Event_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Mail\Internal\EO_Event createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Mail\Internal\EO_Event_Collection createCollection()
     * @method \Bitrix\Main\Mail\Internal\EO_Event wakeUpObject($row)
     * @method \Bitrix\Main\Mail\Internal\EO_Event_Collection wakeUpCollection($rows)
     */
    class EO_Event_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_EventAttachment
     * @see \Bitrix\Main\Mail\Internal\EventAttachmentTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getEventId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment setEventId(\int|\Bitrix\Main\DB\SqlExpression $eventId)
     * @method bool hasEventId()
     * @method bool isEventIdFilled()
     * @method bool isEventIdChanged()
     * @method \int getFileId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment setFileId(\int|\Bitrix\Main\DB\SqlExpression $fileId)
     * @method bool hasFileId()
     * @method bool isFileIdFilled()
     * @method bool isFileIdChanged()
     * @method \int remindActualFileId()
     * @method \int requireFileId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment resetFileId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment unsetFileId()
     * @method \int fillFileId()
     * @method \boolean getIsFileCopied()
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment setIsFileCopied(\boolean|\Bitrix\Main\DB\SqlExpression $isFileCopied)
     * @method bool hasIsFileCopied()
     * @method bool isIsFileCopiedFilled()
     * @method bool isIsFileCopiedChanged()
     * @method \boolean remindActualIsFileCopied()
     * @method \boolean requireIsFileCopied()
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment resetIsFileCopied()
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment unsetIsFileCopied()
     * @method \boolean fillIsFileCopied()
     * @method \Bitrix\Main\Mail\Internal\EO_Event getEvent()
     * @method \Bitrix\Main\Mail\Internal\EO_Event remindActualEvent()
     * @method \Bitrix\Main\Mail\Internal\EO_Event requireEvent()
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment setEvent(\Bitrix\Main\Mail\Internal\EO_Event $object)
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment resetEvent()
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment unsetEvent()
     * @method bool hasEvent()
     * @method bool isEventFilled()
     * @method bool isEventChanged()
     * @method \Bitrix\Main\Mail\Internal\EO_Event fillEvent()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment set($fieldName, $value)
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment reset($fieldName)
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Mail\Internal\EO_EventAttachment wakeUp($data)
     */
    class EO_EventAttachment
    {
        /* @var \Bitrix\Main\Mail\Internal\EventAttachmentTable */
        public static $dataClass = '\\Bitrix\\Main\\Mail\\Internal\\EventAttachmentTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_EventAttachment_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getEventIdList()
     * @method \int[] getFileIdList()
     * @method \int[] fillFileId()
     * @method \boolean[] getIsFileCopiedList()
     * @method \boolean[] fillIsFileCopied()
     * @method \Bitrix\Main\Mail\Internal\EO_Event[] getEventList()
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment_Collection getEventCollection()
     * @method \Bitrix\Main\Mail\Internal\EO_Event_Collection fillEvent()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Mail\Internal\EO_EventAttachment $object)
     * @method bool has(\Bitrix\Main\Mail\Internal\EO_EventAttachment $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment getByPrimary($primary)
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment[] getAll()
     * @method bool remove(\Bitrix\Main\Mail\Internal\EO_EventAttachment $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Mail\Internal\EO_EventAttachment_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_EventAttachment_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Mail\Internal\EventAttachmentTable */
        public static $dataClass = '\\Bitrix\\Main\\Mail\\Internal\\EventAttachmentTable';
    }
    /**
     * @method static EO_EventAttachment_Query query()
     * @method static EO_EventAttachment_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_EventAttachment_Result getById($id)
     * @method static EO_EventAttachment_Result getList(array $parameters = array())
     * @method static EO_EventAttachment_Entity getEntity()
     * @method static \Bitrix\Main\Mail\Internal\EO_EventAttachment createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Mail\Internal\EO_EventAttachment_Collection createCollection()
     * @method static \Bitrix\Main\Mail\Internal\EO_EventAttachment wakeUpObject($row)
     * @method static \Bitrix\Main\Mail\Internal\EO_EventAttachment_Collection wakeUpCollection($rows)
     */
    class EventAttachmentTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_EventAttachment_Result exec()
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment fetchObject()
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_EventAttachment_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment fetchObject()
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment_Collection fetchCollection()
     */
    class EO_EventAttachment_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment_Collection createCollection()
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment wakeUpObject($row)
     * @method \Bitrix\Main\Mail\Internal\EO_EventAttachment_Collection wakeUpCollection($rows)
     */
    class EO_EventAttachment_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_EventMessage
     * @see \Bitrix\Main\Mail\Internal\EventMessageTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetTimestampX()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \string getEventName()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setEventName(\string|\Bitrix\Main\DB\SqlExpression $eventName)
     * @method bool hasEventName()
     * @method bool isEventNameFilled()
     * @method bool isEventNameChanged()
     * @method \string remindActualEventName()
     * @method \string requireEventName()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetEventName()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetEventName()
     * @method \string fillEventName()
     * @method \string getLid()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setLid(\string|\Bitrix\Main\DB\SqlExpression $lid)
     * @method bool hasLid()
     * @method bool isLidFilled()
     * @method bool isLidChanged()
     * @method \string remindActualLid()
     * @method \string requireLid()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetLid()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetLid()
     * @method \string fillLid()
     * @method \string getActive()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setActive(\string|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \string remindActualActive()
     * @method \string requireActive()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetActive()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetActive()
     * @method \string fillActive()
     * @method \string getEmailFrom()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setEmailFrom(\string|\Bitrix\Main\DB\SqlExpression $emailFrom)
     * @method bool hasEmailFrom()
     * @method bool isEmailFromFilled()
     * @method bool isEmailFromChanged()
     * @method \string remindActualEmailFrom()
     * @method \string requireEmailFrom()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetEmailFrom()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetEmailFrom()
     * @method \string fillEmailFrom()
     * @method \string getEmailTo()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setEmailTo(\string|\Bitrix\Main\DB\SqlExpression $emailTo)
     * @method bool hasEmailTo()
     * @method bool isEmailToFilled()
     * @method bool isEmailToChanged()
     * @method \string remindActualEmailTo()
     * @method \string requireEmailTo()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetEmailTo()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetEmailTo()
     * @method \string fillEmailTo()
     * @method \string getSubject()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setSubject(\string|\Bitrix\Main\DB\SqlExpression $subject)
     * @method bool hasSubject()
     * @method bool isSubjectFilled()
     * @method bool isSubjectChanged()
     * @method \string remindActualSubject()
     * @method \string requireSubject()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetSubject()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetSubject()
     * @method \string fillSubject()
     * @method \string getMessage()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setMessage(\string|\Bitrix\Main\DB\SqlExpression $message)
     * @method bool hasMessage()
     * @method bool isMessageFilled()
     * @method bool isMessageChanged()
     * @method \string remindActualMessage()
     * @method \string requireMessage()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetMessage()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetMessage()
     * @method \string fillMessage()
     * @method \string getMessagePhp()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setMessagePhp(\string|\Bitrix\Main\DB\SqlExpression $messagePhp)
     * @method bool hasMessagePhp()
     * @method bool isMessagePhpFilled()
     * @method bool isMessagePhpChanged()
     * @method \string remindActualMessagePhp()
     * @method \string requireMessagePhp()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetMessagePhp()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetMessagePhp()
     * @method \string fillMessagePhp()
     * @method \string getBodyType()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setBodyType(\string|\Bitrix\Main\DB\SqlExpression $bodyType)
     * @method bool hasBodyType()
     * @method bool isBodyTypeFilled()
     * @method bool isBodyTypeChanged()
     * @method \string remindActualBodyType()
     * @method \string requireBodyType()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetBodyType()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetBodyType()
     * @method \string fillBodyType()
     * @method \string getBcc()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setBcc(\string|\Bitrix\Main\DB\SqlExpression $bcc)
     * @method bool hasBcc()
     * @method bool isBccFilled()
     * @method bool isBccChanged()
     * @method \string remindActualBcc()
     * @method \string requireBcc()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetBcc()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetBcc()
     * @method \string fillBcc()
     * @method \string getReplyTo()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setReplyTo(\string|\Bitrix\Main\DB\SqlExpression $replyTo)
     * @method bool hasReplyTo()
     * @method bool isReplyToFilled()
     * @method bool isReplyToChanged()
     * @method \string remindActualReplyTo()
     * @method \string requireReplyTo()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetReplyTo()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetReplyTo()
     * @method \string fillReplyTo()
     * @method \string getCc()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setCc(\string|\Bitrix\Main\DB\SqlExpression $cc)
     * @method bool hasCc()
     * @method bool isCcFilled()
     * @method bool isCcChanged()
     * @method \string remindActualCc()
     * @method \string requireCc()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetCc()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetCc()
     * @method \string fillCc()
     * @method \string getInReplyTo()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setInReplyTo(\string|\Bitrix\Main\DB\SqlExpression $inReplyTo)
     * @method bool hasInReplyTo()
     * @method bool isInReplyToFilled()
     * @method bool isInReplyToChanged()
     * @method \string remindActualInReplyTo()
     * @method \string requireInReplyTo()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetInReplyTo()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetInReplyTo()
     * @method \string fillInReplyTo()
     * @method \string getPriority()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setPriority(\string|\Bitrix\Main\DB\SqlExpression $priority)
     * @method bool hasPriority()
     * @method bool isPriorityFilled()
     * @method bool isPriorityChanged()
     * @method \string remindActualPriority()
     * @method \string requirePriority()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetPriority()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetPriority()
     * @method \string fillPriority()
     * @method \string getField1Name()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setField1Name(\string|\Bitrix\Main\DB\SqlExpression $field1Name)
     * @method bool hasField1Name()
     * @method bool isField1NameFilled()
     * @method bool isField1NameChanged()
     * @method \string remindActualField1Name()
     * @method \string requireField1Name()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetField1Name()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetField1Name()
     * @method \string fillField1Name()
     * @method \string getField1Value()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setField1Value(\string|\Bitrix\Main\DB\SqlExpression $field1Value)
     * @method bool hasField1Value()
     * @method bool isField1ValueFilled()
     * @method bool isField1ValueChanged()
     * @method \string remindActualField1Value()
     * @method \string requireField1Value()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetField1Value()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetField1Value()
     * @method \string fillField1Value()
     * @method \string getField2Name()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setField2Name(\string|\Bitrix\Main\DB\SqlExpression $field2Name)
     * @method bool hasField2Name()
     * @method bool isField2NameFilled()
     * @method bool isField2NameChanged()
     * @method \string remindActualField2Name()
     * @method \string requireField2Name()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetField2Name()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetField2Name()
     * @method \string fillField2Name()
     * @method \string getField2Value()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setField2Value(\string|\Bitrix\Main\DB\SqlExpression $field2Value)
     * @method bool hasField2Value()
     * @method bool isField2ValueFilled()
     * @method bool isField2ValueChanged()
     * @method \string remindActualField2Value()
     * @method \string requireField2Value()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetField2Value()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetField2Value()
     * @method \string fillField2Value()
     * @method \string getSiteTemplateId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setSiteTemplateId(\string|\Bitrix\Main\DB\SqlExpression $siteTemplateId)
     * @method bool hasSiteTemplateId()
     * @method bool isSiteTemplateIdFilled()
     * @method bool isSiteTemplateIdChanged()
     * @method \string remindActualSiteTemplateId()
     * @method \string requireSiteTemplateId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetSiteTemplateId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetSiteTemplateId()
     * @method \string fillSiteTemplateId()
     * @method array getAdditionalField()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setAdditionalField(array|\Bitrix\Main\DB\SqlExpression $additionalField)
     * @method bool hasAdditionalField()
     * @method bool isAdditionalFieldFilled()
     * @method bool isAdditionalFieldChanged()
     * @method array remindActualAdditionalField()
     * @method array requireAdditionalField()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetAdditionalField()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetAdditionalField()
     * @method array fillAdditionalField()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite getEventMessageSite()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite remindActualEventMessageSite()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite requireEventMessageSite()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setEventMessageSite(\Bitrix\Main\Mail\Internal\EO_EventMessageSite $object)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetEventMessageSite()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetEventMessageSite()
     * @method bool hasEventMessageSite()
     * @method bool isEventMessageSiteFilled()
     * @method bool isEventMessageSiteChanged()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite fillEventMessageSite()
     * @method \string getLanguageId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage setLanguageId(\string|\Bitrix\Main\DB\SqlExpression $languageId)
     * @method bool hasLanguageId()
     * @method bool isLanguageIdFilled()
     * @method bool isLanguageIdChanged()
     * @method \string remindActualLanguageId()
     * @method \string requireLanguageId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage resetLanguageId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unsetLanguageId()
     * @method \string fillLanguageId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage set($fieldName, $value)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage reset($fieldName)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessage wakeUp($data)
     */
    class EO_EventMessage
    {
        /* @var \Bitrix\Main\Mail\Internal\EventMessageTable */
        public static $dataClass = '\\Bitrix\\Main\\Mail\\Internal\\EventMessageTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_EventMessage_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \string[] getEventNameList()
     * @method \string[] fillEventName()
     * @method \string[] getLidList()
     * @method \string[] fillLid()
     * @method \string[] getActiveList()
     * @method \string[] fillActive()
     * @method \string[] getEmailFromList()
     * @method \string[] fillEmailFrom()
     * @method \string[] getEmailToList()
     * @method \string[] fillEmailTo()
     * @method \string[] getSubjectList()
     * @method \string[] fillSubject()
     * @method \string[] getMessageList()
     * @method \string[] fillMessage()
     * @method \string[] getMessagePhpList()
     * @method \string[] fillMessagePhp()
     * @method \string[] getBodyTypeList()
     * @method \string[] fillBodyType()
     * @method \string[] getBccList()
     * @method \string[] fillBcc()
     * @method \string[] getReplyToList()
     * @method \string[] fillReplyTo()
     * @method \string[] getCcList()
     * @method \string[] fillCc()
     * @method \string[] getInReplyToList()
     * @method \string[] fillInReplyTo()
     * @method \string[] getPriorityList()
     * @method \string[] fillPriority()
     * @method \string[] getField1NameList()
     * @method \string[] fillField1Name()
     * @method \string[] getField1ValueList()
     * @method \string[] fillField1Value()
     * @method \string[] getField2NameList()
     * @method \string[] fillField2Name()
     * @method \string[] getField2ValueList()
     * @method \string[] fillField2Value()
     * @method \string[] getSiteTemplateIdList()
     * @method \string[] fillSiteTemplateId()
     * @method array[] getAdditionalFieldList()
     * @method array[] fillAdditionalField()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite[] getEventMessageSiteList()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage_Collection getEventMessageSiteCollection()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite_Collection fillEventMessageSite()
     * @method \string[] getLanguageIdList()
     * @method \string[] fillLanguageId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Mail\Internal\EO_EventMessage $object)
     * @method bool has(\Bitrix\Main\Mail\Internal\EO_EventMessage $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage getByPrimary($primary)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage[] getAll()
     * @method bool remove(\Bitrix\Main\Mail\Internal\EO_EventMessage $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessage_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_EventMessage_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Mail\Internal\EventMessageTable */
        public static $dataClass = '\\Bitrix\\Main\\Mail\\Internal\\EventMessageTable';
    }
    /**
     * @method static EO_EventMessage_Query query()
     * @method static EO_EventMessage_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_EventMessage_Result getById($id)
     * @method static EO_EventMessage_Result getList(array $parameters = array())
     * @method static EO_EventMessage_Entity getEntity()
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessage createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessage_Collection createCollection()
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessage wakeUpObject($row)
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessage_Collection wakeUpCollection($rows)
     */
    class EventMessageTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_EventMessage_Result exec()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage fetchObject()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_EventMessage_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage fetchObject()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage_Collection fetchCollection()
     */
    class EO_EventMessage_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage_Collection createCollection()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage wakeUpObject($row)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessage_Collection wakeUpCollection($rows)
     */
    class EO_EventMessage_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_EventMessageAttachment
     * @see \Bitrix\Main\Mail\Internal\EventMessageAttachmentTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getEventMessageId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment setEventMessageId(\int|\Bitrix\Main\DB\SqlExpression $eventMessageId)
     * @method bool hasEventMessageId()
     * @method bool isEventMessageIdFilled()
     * @method bool isEventMessageIdChanged()
     * @method \int getFileId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment setFileId(\int|\Bitrix\Main\DB\SqlExpression $fileId)
     * @method bool hasFileId()
     * @method bool isFileIdFilled()
     * @method bool isFileIdChanged()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment set($fieldName, $value)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment reset($fieldName)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment wakeUp($data)
     */
    class EO_EventMessageAttachment
    {
        /* @var \Bitrix\Main\Mail\Internal\EventMessageAttachmentTable */
        public static $dataClass = '\\Bitrix\\Main\\Mail\\Internal\\EventMessageAttachmentTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_EventMessageAttachment_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getEventMessageIdList()
     * @method \int[] getFileIdList()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Mail\Internal\EO_EventMessageAttachment $object)
     * @method bool has(\Bitrix\Main\Mail\Internal\EO_EventMessageAttachment $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment getByPrimary($primary)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment[] getAll()
     * @method bool remove(\Bitrix\Main\Mail\Internal\EO_EventMessageAttachment $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_EventMessageAttachment_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Mail\Internal\EventMessageAttachmentTable */
        public static $dataClass = '\\Bitrix\\Main\\Mail\\Internal\\EventMessageAttachmentTable';
    }
    /**
     * @method static EO_EventMessageAttachment_Query query()
     * @method static EO_EventMessageAttachment_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_EventMessageAttachment_Result getById($id)
     * @method static EO_EventMessageAttachment_Result getList(array $parameters = array())
     * @method static EO_EventMessageAttachment_Entity getEntity()
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment_Collection createCollection()
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment wakeUpObject($row)
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment_Collection wakeUpCollection($rows)
     */
    class EventMessageAttachmentTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_EventMessageAttachment_Result exec()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment fetchObject()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_EventMessageAttachment_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment fetchObject()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment_Collection fetchCollection()
     */
    class EO_EventMessageAttachment_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment_Collection createCollection()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment wakeUpObject($row)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageAttachment_Collection wakeUpCollection($rows)
     */
    class EO_EventMessageAttachment_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_EventMessageSite
     * @see \Bitrix\Main\Mail\Internal\EventMessageSiteTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getEventMessageId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite setEventMessageId(\int|\Bitrix\Main\DB\SqlExpression $eventMessageId)
     * @method bool hasEventMessageId()
     * @method bool isEventMessageIdFilled()
     * @method bool isEventMessageIdChanged()
     * @method \string getSiteId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string remindActualSiteId()
     * @method \string requireSiteId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite resetSiteId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite unsetSiteId()
     * @method \string fillSiteId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite set($fieldName, $value)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite reset($fieldName)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessageSite wakeUp($data)
     */
    class EO_EventMessageSite
    {
        /* @var \Bitrix\Main\Mail\Internal\EventMessageSiteTable */
        public static $dataClass = '\\Bitrix\\Main\\Mail\\Internal\\EventMessageSiteTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_EventMessageSite_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getEventMessageIdList()
     * @method \string[] getSiteIdList()
     * @method \string[] fillSiteId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Mail\Internal\EO_EventMessageSite $object)
     * @method bool has(\Bitrix\Main\Mail\Internal\EO_EventMessageSite $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite getByPrimary($primary)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite[] getAll()
     * @method bool remove(\Bitrix\Main\Mail\Internal\EO_EventMessageSite $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessageSite_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_EventMessageSite_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Mail\Internal\EventMessageSiteTable */
        public static $dataClass = '\\Bitrix\\Main\\Mail\\Internal\\EventMessageSiteTable';
    }
    /**
     * @method static EO_EventMessageSite_Query query()
     * @method static EO_EventMessageSite_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_EventMessageSite_Result getById($id)
     * @method static EO_EventMessageSite_Result getList(array $parameters = array())
     * @method static EO_EventMessageSite_Entity getEntity()
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessageSite createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessageSite_Collection createCollection()
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessageSite wakeUpObject($row)
     * @method static \Bitrix\Main\Mail\Internal\EO_EventMessageSite_Collection wakeUpCollection($rows)
     */
    class EventMessageSiteTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_EventMessageSite_Result exec()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite fetchObject()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_EventMessageSite_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite fetchObject()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite_Collection fetchCollection()
     */
    class EO_EventMessageSite_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite_Collection createCollection()
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite wakeUpObject($row)
     * @method \Bitrix\Main\Mail\Internal\EO_EventMessageSite_Collection wakeUpCollection($rows)
     */
    class EO_EventMessageSite_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_EventType
     * @see \Bitrix\Main\Mail\Internal\EventTypeTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getLid()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType setLid(\string|\Bitrix\Main\DB\SqlExpression $lid)
     * @method bool hasLid()
     * @method bool isLidFilled()
     * @method bool isLidChanged()
     * @method \string remindActualLid()
     * @method \string requireLid()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType resetLid()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType unsetLid()
     * @method \string fillLid()
     * @method \string getEventName()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType setEventName(\string|\Bitrix\Main\DB\SqlExpression $eventName)
     * @method bool hasEventName()
     * @method bool isEventNameFilled()
     * @method bool isEventNameChanged()
     * @method \string remindActualEventName()
     * @method \string requireEventName()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType resetEventName()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType unsetEventName()
     * @method \string fillEventName()
     * @method \string getName()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType resetName()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType unsetName()
     * @method \string fillName()
     * @method \string getDescription()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType resetDescription()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType unsetDescription()
     * @method \string fillDescription()
     * @method \int getSort()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType resetSort()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType unsetSort()
     * @method \int fillSort()
     * @method \string getEventType()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType setEventType(\string|\Bitrix\Main\DB\SqlExpression $eventType)
     * @method bool hasEventType()
     * @method bool isEventTypeFilled()
     * @method bool isEventTypeChanged()
     * @method \string remindActualEventType()
     * @method \string requireEventType()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType resetEventType()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType unsetEventType()
     * @method \string fillEventType()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Mail\Internal\EO_EventType set($fieldName, $value)
     * @method \Bitrix\Main\Mail\Internal\EO_EventType reset($fieldName)
     * @method \Bitrix\Main\Mail\Internal\EO_EventType unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Mail\Internal\EO_EventType wakeUp($data)
     */
    class EO_EventType
    {
        /* @var \Bitrix\Main\Mail\Internal\EventTypeTable */
        public static $dataClass = '\\Bitrix\\Main\\Mail\\Internal\\EventTypeTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_EventType_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getLidList()
     * @method \string[] fillLid()
     * @method \string[] getEventNameList()
     * @method \string[] fillEventName()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \string[] getEventTypeList()
     * @method \string[] fillEventType()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Mail\Internal\EO_EventType $object)
     * @method bool has(\Bitrix\Main\Mail\Internal\EO_EventType $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Mail\Internal\EO_EventType getByPrimary($primary)
     * @method \Bitrix\Main\Mail\Internal\EO_EventType[] getAll()
     * @method bool remove(\Bitrix\Main\Mail\Internal\EO_EventType $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Mail\Internal\EO_EventType_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Mail\Internal\EO_EventType current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_EventType_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Mail\Internal\EventTypeTable */
        public static $dataClass = '\\Bitrix\\Main\\Mail\\Internal\\EventTypeTable';
    }
    /**
     * @method static EO_EventType_Query query()
     * @method static EO_EventType_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_EventType_Result getById($id)
     * @method static EO_EventType_Result getList(array $parameters = array())
     * @method static EO_EventType_Entity getEntity()
     * @method static \Bitrix\Main\Mail\Internal\EO_EventType createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Mail\Internal\EO_EventType_Collection createCollection()
     * @method static \Bitrix\Main\Mail\Internal\EO_EventType wakeUpObject($row)
     * @method static \Bitrix\Main\Mail\Internal\EO_EventType_Collection wakeUpCollection($rows)
     */
    class EventTypeTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_EventType_Result exec()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType fetchObject()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_EventType_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Mail\Internal\EO_EventType fetchObject()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType_Collection fetchCollection()
     */
    class EO_EventType_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Mail\Internal\EO_EventType createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Mail\Internal\EO_EventType_Collection createCollection()
     * @method \Bitrix\Main\Mail\Internal\EO_EventType wakeUpObject($row)
     * @method \Bitrix\Main\Mail\Internal\EO_EventType_Collection wakeUpCollection($rows)
     */
    class EO_EventType_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Sender
     * @see \Bitrix\Main\Mail\Internal\SenderTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getName()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender resetName()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender unsetName()
     * @method \string fillName()
     * @method \string getEmail()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender setEmail(\string|\Bitrix\Main\DB\SqlExpression $email)
     * @method bool hasEmail()
     * @method bool isEmailFilled()
     * @method bool isEmailChanged()
     * @method \string remindActualEmail()
     * @method \string requireEmail()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender resetEmail()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender unsetEmail()
     * @method \string fillEmail()
     * @method \int getUserId()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender resetUserId()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender unsetUserId()
     * @method \int fillUserId()
     * @method \boolean getIsConfirmed()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender setIsConfirmed(\boolean|\Bitrix\Main\DB\SqlExpression $isConfirmed)
     * @method bool hasIsConfirmed()
     * @method bool isIsConfirmedFilled()
     * @method bool isIsConfirmedChanged()
     * @method \boolean remindActualIsConfirmed()
     * @method \boolean requireIsConfirmed()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender resetIsConfirmed()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender unsetIsConfirmed()
     * @method \boolean fillIsConfirmed()
     * @method \boolean getIsPublic()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender setIsPublic(\boolean|\Bitrix\Main\DB\SqlExpression $isPublic)
     * @method bool hasIsPublic()
     * @method bool isIsPublicFilled()
     * @method bool isIsPublicChanged()
     * @method \boolean remindActualIsPublic()
     * @method \boolean requireIsPublic()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender resetIsPublic()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender unsetIsPublic()
     * @method \boolean fillIsPublic()
     * @method \string getOptions()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender setOptions(\string|\Bitrix\Main\DB\SqlExpression $options)
     * @method bool hasOptions()
     * @method bool isOptionsFilled()
     * @method bool isOptionsChanged()
     * @method \string remindActualOptions()
     * @method \string requireOptions()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender resetOptions()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender unsetOptions()
     * @method \string fillOptions()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Mail\Internal\EO_Sender set($fieldName, $value)
     * @method \Bitrix\Main\Mail\Internal\EO_Sender reset($fieldName)
     * @method \Bitrix\Main\Mail\Internal\EO_Sender unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Mail\Internal\EO_Sender wakeUp($data)
     */
    class EO_Sender
    {
        /* @var \Bitrix\Main\Mail\Internal\SenderTable */
        public static $dataClass = '\\Bitrix\\Main\\Mail\\Internal\\SenderTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Sender_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getEmailList()
     * @method \string[] fillEmail()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \boolean[] getIsConfirmedList()
     * @method \boolean[] fillIsConfirmed()
     * @method \boolean[] getIsPublicList()
     * @method \boolean[] fillIsPublic()
     * @method \string[] getOptionsList()
     * @method \string[] fillOptions()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Mail\Internal\EO_Sender $object)
     * @method bool has(\Bitrix\Main\Mail\Internal\EO_Sender $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Mail\Internal\EO_Sender getByPrimary($primary)
     * @method \Bitrix\Main\Mail\Internal\EO_Sender[] getAll()
     * @method bool remove(\Bitrix\Main\Mail\Internal\EO_Sender $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Mail\Internal\EO_Sender_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Mail\Internal\EO_Sender current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Sender_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Mail\Internal\SenderTable */
        public static $dataClass = '\\Bitrix\\Main\\Mail\\Internal\\SenderTable';
    }
    /**
     * @method static EO_Sender_Query query()
     * @method static EO_Sender_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Sender_Result getById($id)
     * @method static EO_Sender_Result getList(array $parameters = array())
     * @method static EO_Sender_Entity getEntity()
     * @method static \Bitrix\Main\Mail\Internal\EO_Sender createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Mail\Internal\EO_Sender_Collection createCollection()
     * @method static \Bitrix\Main\Mail\Internal\EO_Sender wakeUpObject($row)
     * @method static \Bitrix\Main\Mail\Internal\EO_Sender_Collection wakeUpCollection($rows)
     */
    class SenderTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Sender_Result exec()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender fetchObject()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Sender_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Mail\Internal\EO_Sender fetchObject()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender_Collection fetchCollection()
     */
    class EO_Sender_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Mail\Internal\EO_Sender createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Mail\Internal\EO_Sender_Collection createCollection()
     * @method \Bitrix\Main\Mail\Internal\EO_Sender wakeUpObject($row)
     * @method \Bitrix\Main\Mail\Internal\EO_Sender_Collection wakeUpCollection($rows)
     */
    class EO_Sender_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\Numerator\Model {
    /**
     * EO_Numerator
     * @see \Bitrix\Main\Numerator\Model\NumeratorTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getName()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator resetName()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator unsetName()
     * @method \string fillName()
     * @method \string getTemplate()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator setTemplate(\string|\Bitrix\Main\DB\SqlExpression $template)
     * @method bool hasTemplate()
     * @method bool isTemplateFilled()
     * @method bool isTemplateChanged()
     * @method \string remindActualTemplate()
     * @method \string requireTemplate()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator resetTemplate()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator unsetTemplate()
     * @method \string fillTemplate()
     * @method \string getSettings()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator setSettings(\string|\Bitrix\Main\DB\SqlExpression $settings)
     * @method bool hasSettings()
     * @method bool isSettingsFilled()
     * @method bool isSettingsChanged()
     * @method \string remindActualSettings()
     * @method \string requireSettings()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator resetSettings()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator unsetSettings()
     * @method \string fillSettings()
     * @method \string getType()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator resetType()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator unsetType()
     * @method \string fillType()
     * @method \Bitrix\Main\Type\DateTime getCreatedAt()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator setCreatedAt(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $createdAt)
     * @method bool hasCreatedAt()
     * @method bool isCreatedAtFilled()
     * @method bool isCreatedAtChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualCreatedAt()
     * @method \Bitrix\Main\Type\DateTime requireCreatedAt()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator resetCreatedAt()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator unsetCreatedAt()
     * @method \Bitrix\Main\Type\DateTime fillCreatedAt()
     * @method \int getCreatedBy()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator setCreatedBy(\int|\Bitrix\Main\DB\SqlExpression $createdBy)
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \int remindActualCreatedBy()
     * @method \int requireCreatedBy()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator resetCreatedBy()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator unsetCreatedBy()
     * @method \int fillCreatedBy()
     * @method \Bitrix\Main\Type\DateTime getUpdatedAt()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator setUpdatedAt(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $updatedAt)
     * @method bool hasUpdatedAt()
     * @method bool isUpdatedAtFilled()
     * @method bool isUpdatedAtChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualUpdatedAt()
     * @method \Bitrix\Main\Type\DateTime requireUpdatedAt()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator resetUpdatedAt()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator unsetUpdatedAt()
     * @method \Bitrix\Main\Type\DateTime fillUpdatedAt()
     * @method \int getUpdatedBy()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator setUpdatedBy(\int|\Bitrix\Main\DB\SqlExpression $updatedBy)
     * @method bool hasUpdatedBy()
     * @method bool isUpdatedByFilled()
     * @method bool isUpdatedByChanged()
     * @method \int remindActualUpdatedBy()
     * @method \int requireUpdatedBy()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator resetUpdatedBy()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator unsetUpdatedBy()
     * @method \int fillUpdatedBy()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator set($fieldName, $value)
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator reset($fieldName)
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Numerator\Model\EO_Numerator wakeUp($data)
     */
    class EO_Numerator
    {
        /* @var \Bitrix\Main\Numerator\Model\NumeratorTable */
        public static $dataClass = '\\Bitrix\\Main\\Numerator\\Model\\NumeratorTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Numerator_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getTemplateList()
     * @method \string[] fillTemplate()
     * @method \string[] getSettingsList()
     * @method \string[] fillSettings()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \Bitrix\Main\Type\DateTime[] getCreatedAtList()
     * @method \Bitrix\Main\Type\DateTime[] fillCreatedAt()
     * @method \int[] getCreatedByList()
     * @method \int[] fillCreatedBy()
     * @method \Bitrix\Main\Type\DateTime[] getUpdatedAtList()
     * @method \Bitrix\Main\Type\DateTime[] fillUpdatedAt()
     * @method \int[] getUpdatedByList()
     * @method \int[] fillUpdatedBy()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Numerator\Model\EO_Numerator $object)
     * @method bool has(\Bitrix\Main\Numerator\Model\EO_Numerator $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator getByPrimary($primary)
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator[] getAll()
     * @method bool remove(\Bitrix\Main\Numerator\Model\EO_Numerator $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Numerator\Model\EO_Numerator_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Numerator_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Numerator\Model\NumeratorTable */
        public static $dataClass = '\\Bitrix\\Main\\Numerator\\Model\\NumeratorTable';
    }
    /**
     * @method static EO_Numerator_Query query()
     * @method static EO_Numerator_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Numerator_Result getById($id)
     * @method static EO_Numerator_Result getList(array $parameters = array())
     * @method static EO_Numerator_Entity getEntity()
     * @method static \Bitrix\Main\Numerator\Model\EO_Numerator createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Numerator\Model\EO_Numerator_Collection createCollection()
     * @method static \Bitrix\Main\Numerator\Model\EO_Numerator wakeUpObject($row)
     * @method static \Bitrix\Main\Numerator\Model\EO_Numerator_Collection wakeUpCollection($rows)
     */
    class NumeratorTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Numerator_Result exec()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator fetchObject()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Numerator_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator fetchObject()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator_Collection fetchCollection()
     */
    class EO_Numerator_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator_Collection createCollection()
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator wakeUpObject($row)
     * @method \Bitrix\Main\Numerator\Model\EO_Numerator_Collection wakeUpCollection($rows)
     */
    class EO_Numerator_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_NumeratorSequence
     * @see \Bitrix\Main\Numerator\Model\NumeratorSequenceTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getNumeratorId()
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence setNumeratorId(\int|\Bitrix\Main\DB\SqlExpression $numeratorId)
     * @method bool hasNumeratorId()
     * @method bool isNumeratorIdFilled()
     * @method bool isNumeratorIdChanged()
     * @method \string getKey()
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence setKey(\string|\Bitrix\Main\DB\SqlExpression $key)
     * @method bool hasKey()
     * @method bool isKeyFilled()
     * @method bool isKeyChanged()
     * @method \string getTextKey()
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence setTextKey(\string|\Bitrix\Main\DB\SqlExpression $textKey)
     * @method bool hasTextKey()
     * @method bool isTextKeyFilled()
     * @method bool isTextKeyChanged()
     * @method \string remindActualTextKey()
     * @method \string requireTextKey()
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence resetTextKey()
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence unsetTextKey()
     * @method \string fillTextKey()
     * @method \int getNextNumber()
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence setNextNumber(\int|\Bitrix\Main\DB\SqlExpression $nextNumber)
     * @method bool hasNextNumber()
     * @method bool isNextNumberFilled()
     * @method bool isNextNumberChanged()
     * @method \int remindActualNextNumber()
     * @method \int requireNextNumber()
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence resetNextNumber()
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence unsetNextNumber()
     * @method \int fillNextNumber()
     * @method \int getLastInvocationTime()
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence setLastInvocationTime(\int|\Bitrix\Main\DB\SqlExpression $lastInvocationTime)
     * @method bool hasLastInvocationTime()
     * @method bool isLastInvocationTimeFilled()
     * @method bool isLastInvocationTimeChanged()
     * @method \int remindActualLastInvocationTime()
     * @method \int requireLastInvocationTime()
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence resetLastInvocationTime()
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence unsetLastInvocationTime()
     * @method \int fillLastInvocationTime()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence set($fieldName, $value)
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence reset($fieldName)
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Numerator\Model\EO_NumeratorSequence wakeUp($data)
     */
    class EO_NumeratorSequence
    {
        /* @var \Bitrix\Main\Numerator\Model\NumeratorSequenceTable */
        public static $dataClass = '\\Bitrix\\Main\\Numerator\\Model\\NumeratorSequenceTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_NumeratorSequence_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getNumeratorIdList()
     * @method \string[] getKeyList()
     * @method \string[] getTextKeyList()
     * @method \string[] fillTextKey()
     * @method \int[] getNextNumberList()
     * @method \int[] fillNextNumber()
     * @method \int[] getLastInvocationTimeList()
     * @method \int[] fillLastInvocationTime()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Numerator\Model\EO_NumeratorSequence $object)
     * @method bool has(\Bitrix\Main\Numerator\Model\EO_NumeratorSequence $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence getByPrimary($primary)
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence[] getAll()
     * @method bool remove(\Bitrix\Main\Numerator\Model\EO_NumeratorSequence $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Numerator\Model\EO_NumeratorSequence_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_NumeratorSequence_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Numerator\Model\NumeratorSequenceTable */
        public static $dataClass = '\\Bitrix\\Main\\Numerator\\Model\\NumeratorSequenceTable';
    }
    /**
     * @method static EO_NumeratorSequence_Query query()
     * @method static EO_NumeratorSequence_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_NumeratorSequence_Result getById($id)
     * @method static EO_NumeratorSequence_Result getList(array $parameters = array())
     * @method static EO_NumeratorSequence_Entity getEntity()
     * @method static \Bitrix\Main\Numerator\Model\EO_NumeratorSequence createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Numerator\Model\EO_NumeratorSequence_Collection createCollection()
     * @method static \Bitrix\Main\Numerator\Model\EO_NumeratorSequence wakeUpObject($row)
     * @method static \Bitrix\Main\Numerator\Model\EO_NumeratorSequence_Collection wakeUpCollection($rows)
     */
    class NumeratorSequenceTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_NumeratorSequence_Result exec()
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence fetchObject()
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_NumeratorSequence_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence fetchObject()
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence_Collection fetchCollection()
     */
    class EO_NumeratorSequence_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence_Collection createCollection()
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence wakeUpObject($row)
     * @method \Bitrix\Main\Numerator\Model\EO_NumeratorSequence_Collection wakeUpCollection($rows)
     */
    class EO_NumeratorSequence_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main {
    /**
     * EO_Operation
     * @see \Bitrix\Main\OperationTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\EO_Operation setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getName()
     * @method \Bitrix\Main\EO_Operation setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Main\EO_Operation resetName()
     * @method \Bitrix\Main\EO_Operation unsetName()
     * @method \string fillName()
     * @method \string getModuleId()
     * @method \Bitrix\Main\EO_Operation setModuleId(\string|\Bitrix\Main\DB\SqlExpression $moduleId)
     * @method bool hasModuleId()
     * @method bool isModuleIdFilled()
     * @method bool isModuleIdChanged()
     * @method \string remindActualModuleId()
     * @method \string requireModuleId()
     * @method \Bitrix\Main\EO_Operation resetModuleId()
     * @method \Bitrix\Main\EO_Operation unsetModuleId()
     * @method \string fillModuleId()
     * @method \string getDescription()
     * @method \Bitrix\Main\EO_Operation setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Main\EO_Operation resetDescription()
     * @method \Bitrix\Main\EO_Operation unsetDescription()
     * @method \string fillDescription()
     * @method \string getBinding()
     * @method \Bitrix\Main\EO_Operation setBinding(\string|\Bitrix\Main\DB\SqlExpression $binding)
     * @method bool hasBinding()
     * @method bool isBindingFilled()
     * @method bool isBindingChanged()
     * @method \string remindActualBinding()
     * @method \string requireBinding()
     * @method \Bitrix\Main\EO_Operation resetBinding()
     * @method \Bitrix\Main\EO_Operation unsetBinding()
     * @method \string fillBinding()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_Operation set($fieldName, $value)
     * @method \Bitrix\Main\EO_Operation reset($fieldName)
     * @method \Bitrix\Main\EO_Operation unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_Operation wakeUp($data)
     */
    class EO_Operation
    {
        /* @var \Bitrix\Main\OperationTable */
        public static $dataClass = '\\Bitrix\\Main\\OperationTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Operation_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getModuleIdList()
     * @method \string[] fillModuleId()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getBindingList()
     * @method \string[] fillBinding()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_Operation $object)
     * @method bool has(\Bitrix\Main\EO_Operation $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_Operation getByPrimary($primary)
     * @method \Bitrix\Main\EO_Operation[] getAll()
     * @method bool remove(\Bitrix\Main\EO_Operation $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_Operation_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_Operation current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Operation_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\OperationTable */
        public static $dataClass = '\\Bitrix\\Main\\OperationTable';
    }
    /**
     * @method static EO_Operation_Query query()
     * @method static EO_Operation_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Operation_Result getById($id)
     * @method static EO_Operation_Result getList(array $parameters = array())
     * @method static EO_Operation_Entity getEntity()
     * @method static \Bitrix\Main\EO_Operation createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_Operation_Collection createCollection()
     * @method static \Bitrix\Main\EO_Operation wakeUpObject($row)
     * @method static \Bitrix\Main\EO_Operation_Collection wakeUpCollection($rows)
     */
    class OperationTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Operation_Result exec()
     * @method \Bitrix\Main\EO_Operation fetchObject()
     * @method \Bitrix\Main\EO_Operation_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Operation_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_Operation fetchObject()
     * @method \Bitrix\Main\EO_Operation_Collection fetchCollection()
     */
    class EO_Operation_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_Operation createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_Operation_Collection createCollection()
     * @method \Bitrix\Main\EO_Operation wakeUpObject($row)
     * @method \Bitrix\Main\EO_Operation_Collection wakeUpCollection($rows)
     */
    class EO_Operation_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\Rating {
    /**
     * EO_Rating
     * @see \Bitrix\Main\Rating\RatingTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Rating\EO_Rating setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getActive()
     * @method \Bitrix\Main\Rating\EO_Rating setActive(\string|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \string remindActualActive()
     * @method \string requireActive()
     * @method \Bitrix\Main\Rating\EO_Rating resetActive()
     * @method \Bitrix\Main\Rating\EO_Rating unsetActive()
     * @method \string fillActive()
     * @method \string getName()
     * @method \Bitrix\Main\Rating\EO_Rating setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Main\Rating\EO_Rating resetName()
     * @method \Bitrix\Main\Rating\EO_Rating unsetName()
     * @method \string fillName()
     * @method \string getEntityId()
     * @method \Bitrix\Main\Rating\EO_Rating setEntityId(\string|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \string remindActualEntityId()
     * @method \string requireEntityId()
     * @method \Bitrix\Main\Rating\EO_Rating resetEntityId()
     * @method \Bitrix\Main\Rating\EO_Rating unsetEntityId()
     * @method \string fillEntityId()
     * @method \string getCalculationMethod()
     * @method \Bitrix\Main\Rating\EO_Rating setCalculationMethod(\string|\Bitrix\Main\DB\SqlExpression $calculationMethod)
     * @method bool hasCalculationMethod()
     * @method bool isCalculationMethodFilled()
     * @method bool isCalculationMethodChanged()
     * @method \string remindActualCalculationMethod()
     * @method \string requireCalculationMethod()
     * @method \Bitrix\Main\Rating\EO_Rating resetCalculationMethod()
     * @method \Bitrix\Main\Rating\EO_Rating unsetCalculationMethod()
     * @method \string fillCalculationMethod()
     * @method \Bitrix\Main\Type\DateTime getCreated()
     * @method \Bitrix\Main\Rating\EO_Rating setCreated(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $created)
     * @method bool hasCreated()
     * @method bool isCreatedFilled()
     * @method bool isCreatedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualCreated()
     * @method \Bitrix\Main\Type\DateTime requireCreated()
     * @method \Bitrix\Main\Rating\EO_Rating resetCreated()
     * @method \Bitrix\Main\Rating\EO_Rating unsetCreated()
     * @method \Bitrix\Main\Type\DateTime fillCreated()
     * @method \Bitrix\Main\Type\DateTime getLastModified()
     * @method \Bitrix\Main\Rating\EO_Rating setLastModified(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastModified)
     * @method bool hasLastModified()
     * @method bool isLastModifiedFilled()
     * @method bool isLastModifiedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastModified()
     * @method \Bitrix\Main\Type\DateTime requireLastModified()
     * @method \Bitrix\Main\Rating\EO_Rating resetLastModified()
     * @method \Bitrix\Main\Rating\EO_Rating unsetLastModified()
     * @method \Bitrix\Main\Type\DateTime fillLastModified()
     * @method \Bitrix\Main\Type\DateTime getLastCalculated()
     * @method \Bitrix\Main\Rating\EO_Rating setLastCalculated(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastCalculated)
     * @method bool hasLastCalculated()
     * @method bool isLastCalculatedFilled()
     * @method bool isLastCalculatedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastCalculated()
     * @method \Bitrix\Main\Type\DateTime requireLastCalculated()
     * @method \Bitrix\Main\Rating\EO_Rating resetLastCalculated()
     * @method \Bitrix\Main\Rating\EO_Rating unsetLastCalculated()
     * @method \Bitrix\Main\Type\DateTime fillLastCalculated()
     * @method \boolean getPosition()
     * @method \Bitrix\Main\Rating\EO_Rating setPosition(\boolean|\Bitrix\Main\DB\SqlExpression $position)
     * @method bool hasPosition()
     * @method bool isPositionFilled()
     * @method bool isPositionChanged()
     * @method \boolean remindActualPosition()
     * @method \boolean requirePosition()
     * @method \Bitrix\Main\Rating\EO_Rating resetPosition()
     * @method \Bitrix\Main\Rating\EO_Rating unsetPosition()
     * @method \boolean fillPosition()
     * @method \boolean getAuthority()
     * @method \Bitrix\Main\Rating\EO_Rating setAuthority(\boolean|\Bitrix\Main\DB\SqlExpression $authority)
     * @method bool hasAuthority()
     * @method bool isAuthorityFilled()
     * @method bool isAuthorityChanged()
     * @method \boolean remindActualAuthority()
     * @method \boolean requireAuthority()
     * @method \Bitrix\Main\Rating\EO_Rating resetAuthority()
     * @method \Bitrix\Main\Rating\EO_Rating unsetAuthority()
     * @method \boolean fillAuthority()
     * @method \boolean getCalculated()
     * @method \Bitrix\Main\Rating\EO_Rating setCalculated(\boolean|\Bitrix\Main\DB\SqlExpression $calculated)
     * @method bool hasCalculated()
     * @method bool isCalculatedFilled()
     * @method bool isCalculatedChanged()
     * @method \boolean remindActualCalculated()
     * @method \boolean requireCalculated()
     * @method \Bitrix\Main\Rating\EO_Rating resetCalculated()
     * @method \Bitrix\Main\Rating\EO_Rating unsetCalculated()
     * @method \boolean fillCalculated()
     * @method \string getConfigs()
     * @method \Bitrix\Main\Rating\EO_Rating setConfigs(\string|\Bitrix\Main\DB\SqlExpression $configs)
     * @method bool hasConfigs()
     * @method bool isConfigsFilled()
     * @method bool isConfigsChanged()
     * @method \string remindActualConfigs()
     * @method \string requireConfigs()
     * @method \Bitrix\Main\Rating\EO_Rating resetConfigs()
     * @method \Bitrix\Main\Rating\EO_Rating unsetConfigs()
     * @method \string fillConfigs()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Rating\EO_Rating set($fieldName, $value)
     * @method \Bitrix\Main\Rating\EO_Rating reset($fieldName)
     * @method \Bitrix\Main\Rating\EO_Rating unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Rating\EO_Rating wakeUp($data)
     */
    class EO_Rating
    {
        /* @var \Bitrix\Main\Rating\RatingTable */
        public static $dataClass = '\\Bitrix\\Main\\Rating\\RatingTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Rating_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getActiveList()
     * @method \string[] fillActive()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getEntityIdList()
     * @method \string[] fillEntityId()
     * @method \string[] getCalculationMethodList()
     * @method \string[] fillCalculationMethod()
     * @method \Bitrix\Main\Type\DateTime[] getCreatedList()
     * @method \Bitrix\Main\Type\DateTime[] fillCreated()
     * @method \Bitrix\Main\Type\DateTime[] getLastModifiedList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastModified()
     * @method \Bitrix\Main\Type\DateTime[] getLastCalculatedList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastCalculated()
     * @method \boolean[] getPositionList()
     * @method \boolean[] fillPosition()
     * @method \boolean[] getAuthorityList()
     * @method \boolean[] fillAuthority()
     * @method \boolean[] getCalculatedList()
     * @method \boolean[] fillCalculated()
     * @method \string[] getConfigsList()
     * @method \string[] fillConfigs()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Rating\EO_Rating $object)
     * @method bool has(\Bitrix\Main\Rating\EO_Rating $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Rating\EO_Rating getByPrimary($primary)
     * @method \Bitrix\Main\Rating\EO_Rating[] getAll()
     * @method bool remove(\Bitrix\Main\Rating\EO_Rating $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Rating\EO_Rating_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Rating\EO_Rating current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Rating_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Rating\RatingTable */
        public static $dataClass = '\\Bitrix\\Main\\Rating\\RatingTable';
    }
    /**
     * @method static EO_Rating_Query query()
     * @method static EO_Rating_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Rating_Result getById($id)
     * @method static EO_Rating_Result getList(array $parameters = array())
     * @method static EO_Rating_Entity getEntity()
     * @method static \Bitrix\Main\Rating\EO_Rating createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Rating\EO_Rating_Collection createCollection()
     * @method static \Bitrix\Main\Rating\EO_Rating wakeUpObject($row)
     * @method static \Bitrix\Main\Rating\EO_Rating_Collection wakeUpCollection($rows)
     */
    class RatingTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Rating_Result exec()
     * @method \Bitrix\Main\Rating\EO_Rating fetchObject()
     * @method \Bitrix\Main\Rating\EO_Rating_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Rating_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Rating\EO_Rating fetchObject()
     * @method \Bitrix\Main\Rating\EO_Rating_Collection fetchCollection()
     */
    class EO_Rating_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Rating\EO_Rating createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Rating\EO_Rating_Collection createCollection()
     * @method \Bitrix\Main\Rating\EO_Rating wakeUpObject($row)
     * @method \Bitrix\Main\Rating\EO_Rating_Collection wakeUpCollection($rows)
     */
    class EO_Rating_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Results
     * @see \Bitrix\Main\Rating\ResultsTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Rating\EO_Results setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getRatingId()
     * @method \Bitrix\Main\Rating\EO_Results setRatingId(\int|\Bitrix\Main\DB\SqlExpression $ratingId)
     * @method bool hasRatingId()
     * @method bool isRatingIdFilled()
     * @method bool isRatingIdChanged()
     * @method \int remindActualRatingId()
     * @method \int requireRatingId()
     * @method \Bitrix\Main\Rating\EO_Results resetRatingId()
     * @method \Bitrix\Main\Rating\EO_Results unsetRatingId()
     * @method \int fillRatingId()
     * @method \string getEntityTypeId()
     * @method \Bitrix\Main\Rating\EO_Results setEntityTypeId(\string|\Bitrix\Main\DB\SqlExpression $entityTypeId)
     * @method bool hasEntityTypeId()
     * @method bool isEntityTypeIdFilled()
     * @method bool isEntityTypeIdChanged()
     * @method \string remindActualEntityTypeId()
     * @method \string requireEntityTypeId()
     * @method \Bitrix\Main\Rating\EO_Results resetEntityTypeId()
     * @method \Bitrix\Main\Rating\EO_Results unsetEntityTypeId()
     * @method \string fillEntityTypeId()
     * @method \int getEntityId()
     * @method \Bitrix\Main\Rating\EO_Results setEntityId(\int|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \int remindActualEntityId()
     * @method \int requireEntityId()
     * @method \Bitrix\Main\Rating\EO_Results resetEntityId()
     * @method \Bitrix\Main\Rating\EO_Results unsetEntityId()
     * @method \int fillEntityId()
     * @method \float getCurrentValue()
     * @method \Bitrix\Main\Rating\EO_Results setCurrentValue(\float|\Bitrix\Main\DB\SqlExpression $currentValue)
     * @method bool hasCurrentValue()
     * @method bool isCurrentValueFilled()
     * @method bool isCurrentValueChanged()
     * @method \float remindActualCurrentValue()
     * @method \float requireCurrentValue()
     * @method \Bitrix\Main\Rating\EO_Results resetCurrentValue()
     * @method \Bitrix\Main\Rating\EO_Results unsetCurrentValue()
     * @method \float fillCurrentValue()
     * @method \float getPreviousValue()
     * @method \Bitrix\Main\Rating\EO_Results setPreviousValue(\float|\Bitrix\Main\DB\SqlExpression $previousValue)
     * @method bool hasPreviousValue()
     * @method bool isPreviousValueFilled()
     * @method bool isPreviousValueChanged()
     * @method \float remindActualPreviousValue()
     * @method \float requirePreviousValue()
     * @method \Bitrix\Main\Rating\EO_Results resetPreviousValue()
     * @method \Bitrix\Main\Rating\EO_Results unsetPreviousValue()
     * @method \float fillPreviousValue()
     * @method \int getCurrentPosition()
     * @method \Bitrix\Main\Rating\EO_Results setCurrentPosition(\int|\Bitrix\Main\DB\SqlExpression $currentPosition)
     * @method bool hasCurrentPosition()
     * @method bool isCurrentPositionFilled()
     * @method bool isCurrentPositionChanged()
     * @method \int remindActualCurrentPosition()
     * @method \int requireCurrentPosition()
     * @method \Bitrix\Main\Rating\EO_Results resetCurrentPosition()
     * @method \Bitrix\Main\Rating\EO_Results unsetCurrentPosition()
     * @method \int fillCurrentPosition()
     * @method \int getPreviousPosition()
     * @method \Bitrix\Main\Rating\EO_Results setPreviousPosition(\int|\Bitrix\Main\DB\SqlExpression $previousPosition)
     * @method bool hasPreviousPosition()
     * @method bool isPreviousPositionFilled()
     * @method bool isPreviousPositionChanged()
     * @method \int remindActualPreviousPosition()
     * @method \int requirePreviousPosition()
     * @method \Bitrix\Main\Rating\EO_Results resetPreviousPosition()
     * @method \Bitrix\Main\Rating\EO_Results unsetPreviousPosition()
     * @method \int fillPreviousPosition()
     * @method \Bitrix\Main\Rating\EO_Rating getRating()
     * @method \Bitrix\Main\Rating\EO_Rating remindActualRating()
     * @method \Bitrix\Main\Rating\EO_Rating requireRating()
     * @method \Bitrix\Main\Rating\EO_Results setRating(\Bitrix\Main\Rating\EO_Rating $object)
     * @method \Bitrix\Main\Rating\EO_Results resetRating()
     * @method \Bitrix\Main\Rating\EO_Results unsetRating()
     * @method bool hasRating()
     * @method bool isRatingFilled()
     * @method bool isRatingChanged()
     * @method \Bitrix\Main\Rating\EO_Rating fillRating()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Rating\EO_Results set($fieldName, $value)
     * @method \Bitrix\Main\Rating\EO_Results reset($fieldName)
     * @method \Bitrix\Main\Rating\EO_Results unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Rating\EO_Results wakeUp($data)
     */
    class EO_Results
    {
        /* @var \Bitrix\Main\Rating\ResultsTable */
        public static $dataClass = '\\Bitrix\\Main\\Rating\\ResultsTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Results_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getRatingIdList()
     * @method \int[] fillRatingId()
     * @method \string[] getEntityTypeIdList()
     * @method \string[] fillEntityTypeId()
     * @method \int[] getEntityIdList()
     * @method \int[] fillEntityId()
     * @method \float[] getCurrentValueList()
     * @method \float[] fillCurrentValue()
     * @method \float[] getPreviousValueList()
     * @method \float[] fillPreviousValue()
     * @method \int[] getCurrentPositionList()
     * @method \int[] fillCurrentPosition()
     * @method \int[] getPreviousPositionList()
     * @method \int[] fillPreviousPosition()
     * @method \Bitrix\Main\Rating\EO_Rating[] getRatingList()
     * @method \Bitrix\Main\Rating\EO_Results_Collection getRatingCollection()
     * @method \Bitrix\Main\Rating\EO_Rating_Collection fillRating()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Rating\EO_Results $object)
     * @method bool has(\Bitrix\Main\Rating\EO_Results $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Rating\EO_Results getByPrimary($primary)
     * @method \Bitrix\Main\Rating\EO_Results[] getAll()
     * @method bool remove(\Bitrix\Main\Rating\EO_Results $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Rating\EO_Results_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Rating\EO_Results current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Results_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Rating\ResultsTable */
        public static $dataClass = '\\Bitrix\\Main\\Rating\\ResultsTable';
    }
    /**
     * @method static EO_Results_Query query()
     * @method static EO_Results_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Results_Result getById($id)
     * @method static EO_Results_Result getList(array $parameters = array())
     * @method static EO_Results_Entity getEntity()
     * @method static \Bitrix\Main\Rating\EO_Results createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Rating\EO_Results_Collection createCollection()
     * @method static \Bitrix\Main\Rating\EO_Results wakeUpObject($row)
     * @method static \Bitrix\Main\Rating\EO_Results_Collection wakeUpCollection($rows)
     */
    class ResultsTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Results_Result exec()
     * @method \Bitrix\Main\Rating\EO_Results fetchObject()
     * @method \Bitrix\Main\Rating\EO_Results_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Results_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Rating\EO_Results fetchObject()
     * @method \Bitrix\Main\Rating\EO_Results_Collection fetchCollection()
     */
    class EO_Results_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Rating\EO_Results createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Rating\EO_Results_Collection createCollection()
     * @method \Bitrix\Main\Rating\EO_Results wakeUpObject($row)
     * @method \Bitrix\Main\Rating\EO_Results_Collection wakeUpCollection($rows)
     */
    class EO_Results_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\Service\GeoIp {
    /**
     * EO_Handler
     * @see \Bitrix\Main\Service\GeoIp\HandlerTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getSort()
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler resetSort()
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler unsetSort()
     * @method \int fillSort()
     * @method \boolean getActive()
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler resetActive()
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler unsetActive()
     * @method \boolean fillActive()
     * @method \string getClassName()
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler setClassName(\string|\Bitrix\Main\DB\SqlExpression $className)
     * @method bool hasClassName()
     * @method bool isClassNameFilled()
     * @method bool isClassNameChanged()
     * @method \string remindActualClassName()
     * @method \string requireClassName()
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler resetClassName()
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler unsetClassName()
     * @method \string fillClassName()
     * @method \string getConfig()
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler setConfig(\string|\Bitrix\Main\DB\SqlExpression $config)
     * @method bool hasConfig()
     * @method bool isConfigFilled()
     * @method bool isConfigChanged()
     * @method \string remindActualConfig()
     * @method \string requireConfig()
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler resetConfig()
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler unsetConfig()
     * @method \string fillConfig()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler set($fieldName, $value)
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler reset($fieldName)
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Service\GeoIp\EO_Handler wakeUp($data)
     */
    class EO_Handler
    {
        /* @var \Bitrix\Main\Service\GeoIp\HandlerTable */
        public static $dataClass = '\\Bitrix\\Main\\Service\\GeoIp\\HandlerTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Handler_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \string[] getClassNameList()
     * @method \string[] fillClassName()
     * @method \string[] getConfigList()
     * @method \string[] fillConfig()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Service\GeoIp\EO_Handler $object)
     * @method bool has(\Bitrix\Main\Service\GeoIp\EO_Handler $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler getByPrimary($primary)
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler[] getAll()
     * @method bool remove(\Bitrix\Main\Service\GeoIp\EO_Handler $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Service\GeoIp\EO_Handler_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Handler_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Service\GeoIp\HandlerTable */
        public static $dataClass = '\\Bitrix\\Main\\Service\\GeoIp\\HandlerTable';
    }
    /**
     * @method static EO_Handler_Query query()
     * @method static EO_Handler_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Handler_Result getById($id)
     * @method static EO_Handler_Result getList(array $parameters = array())
     * @method static EO_Handler_Entity getEntity()
     * @method static \Bitrix\Main\Service\GeoIp\EO_Handler createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Service\GeoIp\EO_Handler_Collection createCollection()
     * @method static \Bitrix\Main\Service\GeoIp\EO_Handler wakeUpObject($row)
     * @method static \Bitrix\Main\Service\GeoIp\EO_Handler_Collection wakeUpCollection($rows)
     */
    class HandlerTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Handler_Result exec()
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler fetchObject()
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Handler_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler fetchObject()
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler_Collection fetchCollection()
     */
    class EO_Handler_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler_Collection createCollection()
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler wakeUpObject($row)
     * @method \Bitrix\Main\Service\GeoIp\EO_Handler_Collection wakeUpCollection($rows)
     */
    class EO_Handler_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main {
    /**
     * EO_Site
     * @see \Bitrix\Main\SiteTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getLid()
     * @method \Bitrix\Main\EO_Site setLid(\string|\Bitrix\Main\DB\SqlExpression $lid)
     * @method bool hasLid()
     * @method bool isLidFilled()
     * @method bool isLidChanged()
     * @method \int getSort()
     * @method \Bitrix\Main\EO_Site setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Main\EO_Site resetSort()
     * @method \Bitrix\Main\EO_Site unsetSort()
     * @method \int fillSort()
     * @method \boolean getDef()
     * @method \Bitrix\Main\EO_Site setDef(\boolean|\Bitrix\Main\DB\SqlExpression $def)
     * @method bool hasDef()
     * @method bool isDefFilled()
     * @method bool isDefChanged()
     * @method \boolean remindActualDef()
     * @method \boolean requireDef()
     * @method \Bitrix\Main\EO_Site resetDef()
     * @method \Bitrix\Main\EO_Site unsetDef()
     * @method \boolean fillDef()
     * @method \boolean getActive()
     * @method \Bitrix\Main\EO_Site setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Main\EO_Site resetActive()
     * @method \Bitrix\Main\EO_Site unsetActive()
     * @method \boolean fillActive()
     * @method \string getName()
     * @method \Bitrix\Main\EO_Site setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Main\EO_Site resetName()
     * @method \Bitrix\Main\EO_Site unsetName()
     * @method \string fillName()
     * @method \string getDir()
     * @method \Bitrix\Main\EO_Site setDir(\string|\Bitrix\Main\DB\SqlExpression $dir)
     * @method bool hasDir()
     * @method bool isDirFilled()
     * @method bool isDirChanged()
     * @method \string remindActualDir()
     * @method \string requireDir()
     * @method \Bitrix\Main\EO_Site resetDir()
     * @method \Bitrix\Main\EO_Site unsetDir()
     * @method \string fillDir()
     * @method \string getLanguageId()
     * @method \Bitrix\Main\EO_Site setLanguageId(\string|\Bitrix\Main\DB\SqlExpression $languageId)
     * @method bool hasLanguageId()
     * @method bool isLanguageIdFilled()
     * @method bool isLanguageIdChanged()
     * @method \string remindActualLanguageId()
     * @method \string requireLanguageId()
     * @method \Bitrix\Main\EO_Site resetLanguageId()
     * @method \Bitrix\Main\EO_Site unsetLanguageId()
     * @method \string fillLanguageId()
     * @method \string getDocRoot()
     * @method \Bitrix\Main\EO_Site setDocRoot(\string|\Bitrix\Main\DB\SqlExpression $docRoot)
     * @method bool hasDocRoot()
     * @method bool isDocRootFilled()
     * @method bool isDocRootChanged()
     * @method \string remindActualDocRoot()
     * @method \string requireDocRoot()
     * @method \Bitrix\Main\EO_Site resetDocRoot()
     * @method \Bitrix\Main\EO_Site unsetDocRoot()
     * @method \string fillDocRoot()
     * @method \boolean getDomainLimited()
     * @method \Bitrix\Main\EO_Site setDomainLimited(\boolean|\Bitrix\Main\DB\SqlExpression $domainLimited)
     * @method bool hasDomainLimited()
     * @method bool isDomainLimitedFilled()
     * @method bool isDomainLimitedChanged()
     * @method \boolean remindActualDomainLimited()
     * @method \boolean requireDomainLimited()
     * @method \Bitrix\Main\EO_Site resetDomainLimited()
     * @method \Bitrix\Main\EO_Site unsetDomainLimited()
     * @method \boolean fillDomainLimited()
     * @method \string getServerName()
     * @method \Bitrix\Main\EO_Site setServerName(\string|\Bitrix\Main\DB\SqlExpression $serverName)
     * @method bool hasServerName()
     * @method bool isServerNameFilled()
     * @method bool isServerNameChanged()
     * @method \string remindActualServerName()
     * @method \string requireServerName()
     * @method \Bitrix\Main\EO_Site resetServerName()
     * @method \Bitrix\Main\EO_Site unsetServerName()
     * @method \string fillServerName()
     * @method \string getSiteName()
     * @method \Bitrix\Main\EO_Site setSiteName(\string|\Bitrix\Main\DB\SqlExpression $siteName)
     * @method bool hasSiteName()
     * @method bool isSiteNameFilled()
     * @method bool isSiteNameChanged()
     * @method \string remindActualSiteName()
     * @method \string requireSiteName()
     * @method \Bitrix\Main\EO_Site resetSiteName()
     * @method \Bitrix\Main\EO_Site unsetSiteName()
     * @method \string fillSiteName()
     * @method \string getEmail()
     * @method \Bitrix\Main\EO_Site setEmail(\string|\Bitrix\Main\DB\SqlExpression $email)
     * @method bool hasEmail()
     * @method bool isEmailFilled()
     * @method bool isEmailChanged()
     * @method \string remindActualEmail()
     * @method \string requireEmail()
     * @method \Bitrix\Main\EO_Site resetEmail()
     * @method \Bitrix\Main\EO_Site unsetEmail()
     * @method \string fillEmail()
     * @method \int getCultureId()
     * @method \Bitrix\Main\EO_Site setCultureId(\int|\Bitrix\Main\DB\SqlExpression $cultureId)
     * @method bool hasCultureId()
     * @method bool isCultureIdFilled()
     * @method bool isCultureIdChanged()
     * @method \int remindActualCultureId()
     * @method \int requireCultureId()
     * @method \Bitrix\Main\EO_Site resetCultureId()
     * @method \Bitrix\Main\EO_Site unsetCultureId()
     * @method \int fillCultureId()
     * @method \Bitrix\Main\Context\Culture getCulture()
     * @method \Bitrix\Main\Context\Culture remindActualCulture()
     * @method \Bitrix\Main\Context\Culture requireCulture()
     * @method \Bitrix\Main\EO_Site setCulture(\Bitrix\Main\Context\Culture $object)
     * @method \Bitrix\Main\EO_Site resetCulture()
     * @method \Bitrix\Main\EO_Site unsetCulture()
     * @method bool hasCulture()
     * @method bool isCultureFilled()
     * @method bool isCultureChanged()
     * @method \Bitrix\Main\Context\Culture fillCulture()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_Site set($fieldName, $value)
     * @method \Bitrix\Main\EO_Site reset($fieldName)
     * @method \Bitrix\Main\EO_Site unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_Site wakeUp($data)
     */
    class EO_Site
    {
        /* @var \Bitrix\Main\SiteTable */
        public static $dataClass = '\\Bitrix\\Main\\SiteTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Site_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getLidList()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \boolean[] getDefList()
     * @method \boolean[] fillDef()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getDirList()
     * @method \string[] fillDir()
     * @method \string[] getLanguageIdList()
     * @method \string[] fillLanguageId()
     * @method \string[] getDocRootList()
     * @method \string[] fillDocRoot()
     * @method \boolean[] getDomainLimitedList()
     * @method \boolean[] fillDomainLimited()
     * @method \string[] getServerNameList()
     * @method \string[] fillServerName()
     * @method \string[] getSiteNameList()
     * @method \string[] fillSiteName()
     * @method \string[] getEmailList()
     * @method \string[] fillEmail()
     * @method \int[] getCultureIdList()
     * @method \int[] fillCultureId()
     * @method \Bitrix\Main\Context\Culture[] getCultureList()
     * @method \Bitrix\Main\EO_Site_Collection getCultureCollection()
     * @method \Bitrix\Main\Localization\EO_Culture_Collection fillCulture()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_Site $object)
     * @method bool has(\Bitrix\Main\EO_Site $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_Site getByPrimary($primary)
     * @method \Bitrix\Main\EO_Site[] getAll()
     * @method bool remove(\Bitrix\Main\EO_Site $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_Site_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_Site current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Site_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\SiteTable */
        public static $dataClass = '\\Bitrix\\Main\\SiteTable';
    }
    /**
     * @method static EO_Site_Query query()
     * @method static EO_Site_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Site_Result getById($id)
     * @method static EO_Site_Result getList(array $parameters = array())
     * @method static EO_Site_Entity getEntity()
     * @method static \Bitrix\Main\EO_Site createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_Site_Collection createCollection()
     * @method static \Bitrix\Main\EO_Site wakeUpObject($row)
     * @method static \Bitrix\Main\EO_Site_Collection wakeUpCollection($rows)
     */
    class SiteTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Site_Result exec()
     * @method \Bitrix\Main\EO_Site fetchObject()
     * @method \Bitrix\Main\EO_Site_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Site_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_Site fetchObject()
     * @method \Bitrix\Main\EO_Site_Collection fetchCollection()
     */
    class EO_Site_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_Site createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_Site_Collection createCollection()
     * @method \Bitrix\Main\EO_Site wakeUpObject($row)
     * @method \Bitrix\Main\EO_Site_Collection wakeUpCollection($rows)
     */
    class EO_Site_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_SiteDomain
     * @see \Bitrix\Main\SiteDomainTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getLid()
     * @method \Bitrix\Main\EO_SiteDomain setLid(\string|\Bitrix\Main\DB\SqlExpression $lid)
     * @method bool hasLid()
     * @method bool isLidFilled()
     * @method bool isLidChanged()
     * @method \string getDomain()
     * @method \Bitrix\Main\EO_SiteDomain setDomain(\string|\Bitrix\Main\DB\SqlExpression $domain)
     * @method bool hasDomain()
     * @method bool isDomainFilled()
     * @method bool isDomainChanged()
     * @method \Bitrix\Main\EO_Site getSite()
     * @method \Bitrix\Main\EO_Site remindActualSite()
     * @method \Bitrix\Main\EO_Site requireSite()
     * @method \Bitrix\Main\EO_SiteDomain setSite(\Bitrix\Main\EO_Site $object)
     * @method \Bitrix\Main\EO_SiteDomain resetSite()
     * @method \Bitrix\Main\EO_SiteDomain unsetSite()
     * @method bool hasSite()
     * @method bool isSiteFilled()
     * @method bool isSiteChanged()
     * @method \Bitrix\Main\EO_Site fillSite()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_SiteDomain set($fieldName, $value)
     * @method \Bitrix\Main\EO_SiteDomain reset($fieldName)
     * @method \Bitrix\Main\EO_SiteDomain unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_SiteDomain wakeUp($data)
     */
    class EO_SiteDomain
    {
        /* @var \Bitrix\Main\SiteDomainTable */
        public static $dataClass = '\\Bitrix\\Main\\SiteDomainTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_SiteDomain_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getLidList()
     * @method \string[] getDomainList()
     * @method \Bitrix\Main\EO_Site[] getSiteList()
     * @method \Bitrix\Main\EO_SiteDomain_Collection getSiteCollection()
     * @method \Bitrix\Main\EO_Site_Collection fillSite()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_SiteDomain $object)
     * @method bool has(\Bitrix\Main\EO_SiteDomain $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_SiteDomain getByPrimary($primary)
     * @method \Bitrix\Main\EO_SiteDomain[] getAll()
     * @method bool remove(\Bitrix\Main\EO_SiteDomain $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_SiteDomain_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_SiteDomain current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_SiteDomain_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\SiteDomainTable */
        public static $dataClass = '\\Bitrix\\Main\\SiteDomainTable';
    }
    /**
     * @method static EO_SiteDomain_Query query()
     * @method static EO_SiteDomain_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_SiteDomain_Result getById($id)
     * @method static EO_SiteDomain_Result getList(array $parameters = array())
     * @method static EO_SiteDomain_Entity getEntity()
     * @method static \Bitrix\Main\EO_SiteDomain createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_SiteDomain_Collection createCollection()
     * @method static \Bitrix\Main\EO_SiteDomain wakeUpObject($row)
     * @method static \Bitrix\Main\EO_SiteDomain_Collection wakeUpCollection($rows)
     */
    class SiteDomainTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_SiteDomain_Result exec()
     * @method \Bitrix\Main\EO_SiteDomain fetchObject()
     * @method \Bitrix\Main\EO_SiteDomain_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_SiteDomain_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_SiteDomain fetchObject()
     * @method \Bitrix\Main\EO_SiteDomain_Collection fetchCollection()
     */
    class EO_SiteDomain_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_SiteDomain createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_SiteDomain_Collection createCollection()
     * @method \Bitrix\Main\EO_SiteDomain wakeUpObject($row)
     * @method \Bitrix\Main\EO_SiteDomain_Collection wakeUpCollection($rows)
     */
    class EO_SiteDomain_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_SiteTemplate
     * @see \Bitrix\Main\SiteTemplateTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\EO_SiteTemplate setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getSiteId()
     * @method \Bitrix\Main\EO_SiteTemplate setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string remindActualSiteId()
     * @method \string requireSiteId()
     * @method \Bitrix\Main\EO_SiteTemplate resetSiteId()
     * @method \Bitrix\Main\EO_SiteTemplate unsetSiteId()
     * @method \string fillSiteId()
     * @method \string getCondition()
     * @method \Bitrix\Main\EO_SiteTemplate setCondition(\string|\Bitrix\Main\DB\SqlExpression $condition)
     * @method bool hasCondition()
     * @method bool isConditionFilled()
     * @method bool isConditionChanged()
     * @method \string remindActualCondition()
     * @method \string requireCondition()
     * @method \Bitrix\Main\EO_SiteTemplate resetCondition()
     * @method \Bitrix\Main\EO_SiteTemplate unsetCondition()
     * @method \string fillCondition()
     * @method \int getSort()
     * @method \Bitrix\Main\EO_SiteTemplate setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Main\EO_SiteTemplate resetSort()
     * @method \Bitrix\Main\EO_SiteTemplate unsetSort()
     * @method \int fillSort()
     * @method \string getTemplate()
     * @method \Bitrix\Main\EO_SiteTemplate setTemplate(\string|\Bitrix\Main\DB\SqlExpression $template)
     * @method bool hasTemplate()
     * @method bool isTemplateFilled()
     * @method bool isTemplateChanged()
     * @method \string remindActualTemplate()
     * @method \string requireTemplate()
     * @method \Bitrix\Main\EO_SiteTemplate resetTemplate()
     * @method \Bitrix\Main\EO_SiteTemplate unsetTemplate()
     * @method \string fillTemplate()
     * @method \Bitrix\Main\EO_Site getSite()
     * @method \Bitrix\Main\EO_Site remindActualSite()
     * @method \Bitrix\Main\EO_Site requireSite()
     * @method \Bitrix\Main\EO_SiteTemplate setSite(\Bitrix\Main\EO_Site $object)
     * @method \Bitrix\Main\EO_SiteTemplate resetSite()
     * @method \Bitrix\Main\EO_SiteTemplate unsetSite()
     * @method bool hasSite()
     * @method bool isSiteFilled()
     * @method bool isSiteChanged()
     * @method \Bitrix\Main\EO_Site fillSite()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_SiteTemplate set($fieldName, $value)
     * @method \Bitrix\Main\EO_SiteTemplate reset($fieldName)
     * @method \Bitrix\Main\EO_SiteTemplate unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_SiteTemplate wakeUp($data)
     */
    class EO_SiteTemplate
    {
        /* @var \Bitrix\Main\SiteTemplateTable */
        public static $dataClass = '\\Bitrix\\Main\\SiteTemplateTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_SiteTemplate_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getSiteIdList()
     * @method \string[] fillSiteId()
     * @method \string[] getConditionList()
     * @method \string[] fillCondition()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \string[] getTemplateList()
     * @method \string[] fillTemplate()
     * @method \Bitrix\Main\EO_Site[] getSiteList()
     * @method \Bitrix\Main\EO_SiteTemplate_Collection getSiteCollection()
     * @method \Bitrix\Main\EO_Site_Collection fillSite()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_SiteTemplate $object)
     * @method bool has(\Bitrix\Main\EO_SiteTemplate $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_SiteTemplate getByPrimary($primary)
     * @method \Bitrix\Main\EO_SiteTemplate[] getAll()
     * @method bool remove(\Bitrix\Main\EO_SiteTemplate $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_SiteTemplate_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_SiteTemplate current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_SiteTemplate_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\SiteTemplateTable */
        public static $dataClass = '\\Bitrix\\Main\\SiteTemplateTable';
    }
    /**
     * @method static EO_SiteTemplate_Query query()
     * @method static EO_SiteTemplate_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_SiteTemplate_Result getById($id)
     * @method static EO_SiteTemplate_Result getList(array $parameters = array())
     * @method static EO_SiteTemplate_Entity getEntity()
     * @method static \Bitrix\Main\EO_SiteTemplate createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_SiteTemplate_Collection createCollection()
     * @method static \Bitrix\Main\EO_SiteTemplate wakeUpObject($row)
     * @method static \Bitrix\Main\EO_SiteTemplate_Collection wakeUpCollection($rows)
     */
    class SiteTemplateTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_SiteTemplate_Result exec()
     * @method \Bitrix\Main\EO_SiteTemplate fetchObject()
     * @method \Bitrix\Main\EO_SiteTemplate_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_SiteTemplate_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_SiteTemplate fetchObject()
     * @method \Bitrix\Main\EO_SiteTemplate_Collection fetchCollection()
     */
    class EO_SiteTemplate_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_SiteTemplate createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_SiteTemplate_Collection createCollection()
     * @method \Bitrix\Main\EO_SiteTemplate wakeUpObject($row)
     * @method \Bitrix\Main\EO_SiteTemplate_Collection wakeUpCollection($rows)
     */
    class EO_SiteTemplate_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\Sms {
    /**
     * Template
     * @see \Bitrix\Main\Sms\TemplateTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Sms\Template setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getEventName()
     * @method \Bitrix\Main\Sms\Template setEventName(\string|\Bitrix\Main\DB\SqlExpression $eventName)
     * @method bool hasEventName()
     * @method bool isEventNameFilled()
     * @method bool isEventNameChanged()
     * @method \string remindActualEventName()
     * @method \string requireEventName()
     * @method \Bitrix\Main\Sms\Template resetEventName()
     * @method \Bitrix\Main\Sms\Template unsetEventName()
     * @method \string fillEventName()
     * @method \boolean getActive()
     * @method \Bitrix\Main\Sms\Template setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Main\Sms\Template resetActive()
     * @method \Bitrix\Main\Sms\Template unsetActive()
     * @method \boolean fillActive()
     * @method \string getSender()
     * @method \Bitrix\Main\Sms\Template setSender(\string|\Bitrix\Main\DB\SqlExpression $sender)
     * @method bool hasSender()
     * @method bool isSenderFilled()
     * @method bool isSenderChanged()
     * @method \string remindActualSender()
     * @method \string requireSender()
     * @method \Bitrix\Main\Sms\Template resetSender()
     * @method \Bitrix\Main\Sms\Template unsetSender()
     * @method \string fillSender()
     * @method \string getReceiver()
     * @method \Bitrix\Main\Sms\Template setReceiver(\string|\Bitrix\Main\DB\SqlExpression $receiver)
     * @method bool hasReceiver()
     * @method bool isReceiverFilled()
     * @method bool isReceiverChanged()
     * @method \string remindActualReceiver()
     * @method \string requireReceiver()
     * @method \Bitrix\Main\Sms\Template resetReceiver()
     * @method \Bitrix\Main\Sms\Template unsetReceiver()
     * @method \string fillReceiver()
     * @method \string getMessage()
     * @method \Bitrix\Main\Sms\Template setMessage(\string|\Bitrix\Main\DB\SqlExpression $message)
     * @method bool hasMessage()
     * @method bool isMessageFilled()
     * @method bool isMessageChanged()
     * @method \string remindActualMessage()
     * @method \string requireMessage()
     * @method \Bitrix\Main\Sms\Template resetMessage()
     * @method \Bitrix\Main\Sms\Template unsetMessage()
     * @method \string fillMessage()
     * @method \string getLanguageId()
     * @method \Bitrix\Main\Sms\Template setLanguageId(\string|\Bitrix\Main\DB\SqlExpression $languageId)
     * @method bool hasLanguageId()
     * @method bool isLanguageIdFilled()
     * @method bool isLanguageIdChanged()
     * @method \string remindActualLanguageId()
     * @method \string requireLanguageId()
     * @method \Bitrix\Main\Sms\Template resetLanguageId()
     * @method \Bitrix\Main\Sms\Template unsetLanguageId()
     * @method \string fillLanguageId()
     * @method \Bitrix\Main\EO_Site_Collection getSites()
     * @method \Bitrix\Main\EO_Site_Collection requireSites()
     * @method \Bitrix\Main\EO_Site_Collection fillSites()
     * @method bool hasSites()
     * @method bool isSitesFilled()
     * @method bool isSitesChanged()
     * @method void addToSites(\Bitrix\Main\EO_Site $site)
     * @method void removeFromSites(\Bitrix\Main\EO_Site $site)
     * @method void removeAllSites()
     * @method \Bitrix\Main\Sms\Template resetSites()
     * @method \Bitrix\Main\Sms\Template unsetSites()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Sms\Template set($fieldName, $value)
     * @method \Bitrix\Main\Sms\Template reset($fieldName)
     * @method \Bitrix\Main\Sms\Template unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Sms\Template wakeUp($data)
     */
    class EO_Template
    {
        /* @var \Bitrix\Main\Sms\TemplateTable */
        public static $dataClass = '\\Bitrix\\Main\\Sms\\TemplateTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Template_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getEventNameList()
     * @method \string[] fillEventName()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \string[] getSenderList()
     * @method \string[] fillSender()
     * @method \string[] getReceiverList()
     * @method \string[] fillReceiver()
     * @method \string[] getMessageList()
     * @method \string[] fillMessage()
     * @method \string[] getLanguageIdList()
     * @method \string[] fillLanguageId()
     * @method \Bitrix\Main\EO_Site_Collection[] getSitesList()
     * @method \Bitrix\Main\EO_Site_Collection getSitesCollection()
     * @method \Bitrix\Main\EO_Site_Collection fillSites()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Sms\Template $object)
     * @method bool has(\Bitrix\Main\Sms\Template $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Sms\Template getByPrimary($primary)
     * @method \Bitrix\Main\Sms\Template[] getAll()
     * @method bool remove(\Bitrix\Main\Sms\Template $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Sms\EO_Template_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Sms\Template current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Template_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Sms\TemplateTable */
        public static $dataClass = '\\Bitrix\\Main\\Sms\\TemplateTable';
    }
    /**
     * @method static EO_Template_Query query()
     * @method static EO_Template_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Template_Result getById($id)
     * @method static EO_Template_Result getList(array $parameters = array())
     * @method static EO_Template_Entity getEntity()
     * @method static \Bitrix\Main\Sms\Template createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Sms\EO_Template_Collection createCollection()
     * @method static \Bitrix\Main\Sms\Template wakeUpObject($row)
     * @method static \Bitrix\Main\Sms\EO_Template_Collection wakeUpCollection($rows)
     */
    class TemplateTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Template_Result exec()
     * @method \Bitrix\Main\Sms\Template fetchObject()
     * @method \Bitrix\Main\Sms\EO_Template_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Template_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Sms\Template fetchObject()
     * @method \Bitrix\Main\Sms\EO_Template_Collection fetchCollection()
     */
    class EO_Template_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Sms\Template createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Sms\EO_Template_Collection createCollection()
     * @method \Bitrix\Main\Sms\Template wakeUpObject($row)
     * @method \Bitrix\Main\Sms\EO_Template_Collection wakeUpCollection($rows)
     */
    class EO_Template_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main {
    /**
     * EO_Task
     * @see \Bitrix\Main\TaskTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\EO_Task setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getName()
     * @method \Bitrix\Main\EO_Task setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Main\EO_Task resetName()
     * @method \Bitrix\Main\EO_Task unsetName()
     * @method \string fillName()
     * @method \string getLetter()
     * @method \Bitrix\Main\EO_Task setLetter(\string|\Bitrix\Main\DB\SqlExpression $letter)
     * @method bool hasLetter()
     * @method bool isLetterFilled()
     * @method bool isLetterChanged()
     * @method \string remindActualLetter()
     * @method \string requireLetter()
     * @method \Bitrix\Main\EO_Task resetLetter()
     * @method \Bitrix\Main\EO_Task unsetLetter()
     * @method \string fillLetter()
     * @method \string getModuleId()
     * @method \Bitrix\Main\EO_Task setModuleId(\string|\Bitrix\Main\DB\SqlExpression $moduleId)
     * @method bool hasModuleId()
     * @method bool isModuleIdFilled()
     * @method bool isModuleIdChanged()
     * @method \string remindActualModuleId()
     * @method \string requireModuleId()
     * @method \Bitrix\Main\EO_Task resetModuleId()
     * @method \Bitrix\Main\EO_Task unsetModuleId()
     * @method \string fillModuleId()
     * @method \string getSys()
     * @method \Bitrix\Main\EO_Task setSys(\string|\Bitrix\Main\DB\SqlExpression $sys)
     * @method bool hasSys()
     * @method bool isSysFilled()
     * @method bool isSysChanged()
     * @method \string remindActualSys()
     * @method \string requireSys()
     * @method \Bitrix\Main\EO_Task resetSys()
     * @method \Bitrix\Main\EO_Task unsetSys()
     * @method \string fillSys()
     * @method \string getDescription()
     * @method \Bitrix\Main\EO_Task setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Main\EO_Task resetDescription()
     * @method \Bitrix\Main\EO_Task unsetDescription()
     * @method \string fillDescription()
     * @method \string getBinding()
     * @method \Bitrix\Main\EO_Task setBinding(\string|\Bitrix\Main\DB\SqlExpression $binding)
     * @method bool hasBinding()
     * @method bool isBindingFilled()
     * @method bool isBindingChanged()
     * @method \string remindActualBinding()
     * @method \string requireBinding()
     * @method \Bitrix\Main\EO_Task resetBinding()
     * @method \Bitrix\Main\EO_Task unsetBinding()
     * @method \string fillBinding()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_Task set($fieldName, $value)
     * @method \Bitrix\Main\EO_Task reset($fieldName)
     * @method \Bitrix\Main\EO_Task unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_Task wakeUp($data)
     */
    class EO_Task
    {
        /* @var \Bitrix\Main\TaskTable */
        public static $dataClass = '\\Bitrix\\Main\\TaskTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Task_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getLetterList()
     * @method \string[] fillLetter()
     * @method \string[] getModuleIdList()
     * @method \string[] fillModuleId()
     * @method \string[] getSysList()
     * @method \string[] fillSys()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getBindingList()
     * @method \string[] fillBinding()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_Task $object)
     * @method bool has(\Bitrix\Main\EO_Task $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_Task getByPrimary($primary)
     * @method \Bitrix\Main\EO_Task[] getAll()
     * @method bool remove(\Bitrix\Main\EO_Task $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_Task_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_Task current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Task_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\TaskTable */
        public static $dataClass = '\\Bitrix\\Main\\TaskTable';
    }
    /**
     * @method static EO_Task_Query query()
     * @method static EO_Task_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Task_Result getById($id)
     * @method static EO_Task_Result getList(array $parameters = array())
     * @method static EO_Task_Entity getEntity()
     * @method static \Bitrix\Main\EO_Task createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_Task_Collection createCollection()
     * @method static \Bitrix\Main\EO_Task wakeUpObject($row)
     * @method static \Bitrix\Main\EO_Task_Collection wakeUpCollection($rows)
     */
    class TaskTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Task_Result exec()
     * @method \Bitrix\Main\EO_Task fetchObject()
     * @method \Bitrix\Main\EO_Task_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Task_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_Task fetchObject()
     * @method \Bitrix\Main\EO_Task_Collection fetchCollection()
     */
    class EO_Task_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_Task createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_Task_Collection createCollection()
     * @method \Bitrix\Main\EO_Task wakeUpObject($row)
     * @method \Bitrix\Main\EO_Task_Collection wakeUpCollection($rows)
     */
    class EO_Task_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_TaskOperation
     * @see \Bitrix\Main\TaskOperationTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getTaskId()
     * @method \Bitrix\Main\EO_TaskOperation setTaskId(\int|\Bitrix\Main\DB\SqlExpression $taskId)
     * @method bool hasTaskId()
     * @method bool isTaskIdFilled()
     * @method bool isTaskIdChanged()
     * @method \int getOperationId()
     * @method \Bitrix\Main\EO_TaskOperation setOperationId(\int|\Bitrix\Main\DB\SqlExpression $operationId)
     * @method bool hasOperationId()
     * @method bool isOperationIdFilled()
     * @method bool isOperationIdChanged()
     * @method \Bitrix\Main\EO_Operation getOperation()
     * @method \Bitrix\Main\EO_Operation remindActualOperation()
     * @method \Bitrix\Main\EO_Operation requireOperation()
     * @method \Bitrix\Main\EO_TaskOperation setOperation(\Bitrix\Main\EO_Operation $object)
     * @method \Bitrix\Main\EO_TaskOperation resetOperation()
     * @method \Bitrix\Main\EO_TaskOperation unsetOperation()
     * @method bool hasOperation()
     * @method bool isOperationFilled()
     * @method bool isOperationChanged()
     * @method \Bitrix\Main\EO_Operation fillOperation()
     * @method \Bitrix\Main\EO_Task getTask()
     * @method \Bitrix\Main\EO_Task remindActualTask()
     * @method \Bitrix\Main\EO_Task requireTask()
     * @method \Bitrix\Main\EO_TaskOperation setTask(\Bitrix\Main\EO_Task $object)
     * @method \Bitrix\Main\EO_TaskOperation resetTask()
     * @method \Bitrix\Main\EO_TaskOperation unsetTask()
     * @method bool hasTask()
     * @method bool isTaskFilled()
     * @method bool isTaskChanged()
     * @method \Bitrix\Main\EO_Task fillTask()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_TaskOperation set($fieldName, $value)
     * @method \Bitrix\Main\EO_TaskOperation reset($fieldName)
     * @method \Bitrix\Main\EO_TaskOperation unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_TaskOperation wakeUp($data)
     */
    class EO_TaskOperation
    {
        /* @var \Bitrix\Main\TaskOperationTable */
        public static $dataClass = '\\Bitrix\\Main\\TaskOperationTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_TaskOperation_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getTaskIdList()
     * @method \int[] getOperationIdList()
     * @method \Bitrix\Main\EO_Operation[] getOperationList()
     * @method \Bitrix\Main\EO_TaskOperation_Collection getOperationCollection()
     * @method \Bitrix\Main\EO_Operation_Collection fillOperation()
     * @method \Bitrix\Main\EO_Task[] getTaskList()
     * @method \Bitrix\Main\EO_TaskOperation_Collection getTaskCollection()
     * @method \Bitrix\Main\EO_Task_Collection fillTask()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_TaskOperation $object)
     * @method bool has(\Bitrix\Main\EO_TaskOperation $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_TaskOperation getByPrimary($primary)
     * @method \Bitrix\Main\EO_TaskOperation[] getAll()
     * @method bool remove(\Bitrix\Main\EO_TaskOperation $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_TaskOperation_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_TaskOperation current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_TaskOperation_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\TaskOperationTable */
        public static $dataClass = '\\Bitrix\\Main\\TaskOperationTable';
    }
    /**
     * @method static EO_TaskOperation_Query query()
     * @method static EO_TaskOperation_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_TaskOperation_Result getById($id)
     * @method static EO_TaskOperation_Result getList(array $parameters = array())
     * @method static EO_TaskOperation_Entity getEntity()
     * @method static \Bitrix\Main\EO_TaskOperation createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_TaskOperation_Collection createCollection()
     * @method static \Bitrix\Main\EO_TaskOperation wakeUpObject($row)
     * @method static \Bitrix\Main\EO_TaskOperation_Collection wakeUpCollection($rows)
     */
    class TaskOperationTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_TaskOperation_Result exec()
     * @method \Bitrix\Main\EO_TaskOperation fetchObject()
     * @method \Bitrix\Main\EO_TaskOperation_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_TaskOperation_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_TaskOperation fetchObject()
     * @method \Bitrix\Main\EO_TaskOperation_Collection fetchCollection()
     */
    class EO_TaskOperation_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_TaskOperation createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_TaskOperation_Collection createCollection()
     * @method \Bitrix\Main\EO_TaskOperation wakeUpObject($row)
     * @method \Bitrix\Main\EO_TaskOperation_Collection wakeUpCollection($rows)
     */
    class EO_TaskOperation_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\Test\Typography {
    /**
     * EO_Author
     * @see \Bitrix\Main\Test\Typography\AuthorTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Test\Typography\EO_Author setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getName()
     * @method \Bitrix\Main\Test\Typography\EO_Author setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Main\Test\Typography\EO_Author resetName()
     * @method \Bitrix\Main\Test\Typography\EO_Author unsetName()
     * @method \string fillName()
     * @method \string getLastName()
     * @method \Bitrix\Main\Test\Typography\EO_Author setLastName(\string|\Bitrix\Main\DB\SqlExpression $lastName)
     * @method bool hasLastName()
     * @method bool isLastNameFilled()
     * @method bool isLastNameChanged()
     * @method \string remindActualLastName()
     * @method \string requireLastName()
     * @method \Bitrix\Main\Test\Typography\EO_Author resetLastName()
     * @method \Bitrix\Main\Test\Typography\EO_Author unsetLastName()
     * @method \string fillLastName()
     * @method \Bitrix\Main\Test\Typography\Books getBooks()
     * @method \Bitrix\Main\Test\Typography\Books requireBooks()
     * @method \Bitrix\Main\Test\Typography\Books fillBooks()
     * @method bool hasBooks()
     * @method bool isBooksFilled()
     * @method bool isBooksChanged()
     * @method void addToBooks(\Bitrix\Main\Test\Typography\Book $book)
     * @method void removeFromBooks(\Bitrix\Main\Test\Typography\Book $book)
     * @method void removeAllBooks()
     * @method \Bitrix\Main\Test\Typography\EO_Author resetBooks()
     * @method \Bitrix\Main\Test\Typography\EO_Author unsetBooks()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Test\Typography\EO_Author set($fieldName, $value)
     * @method \Bitrix\Main\Test\Typography\EO_Author reset($fieldName)
     * @method \Bitrix\Main\Test\Typography\EO_Author unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Test\Typography\EO_Author wakeUp($data)
     */
    class EO_Author
    {
        /* @var \Bitrix\Main\Test\Typography\AuthorTable */
        public static $dataClass = '\\Bitrix\\Main\\Test\\Typography\\AuthorTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Author_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getLastNameList()
     * @method \string[] fillLastName()
     * @method \Bitrix\Main\Test\Typography\Books[] getBooksList()
     * @method \Bitrix\Main\Test\Typography\Books getBooksCollection()
     * @method \Bitrix\Main\Test\Typography\Books fillBooks()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Test\Typography\EO_Author $object)
     * @method bool has(\Bitrix\Main\Test\Typography\EO_Author $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Test\Typography\EO_Author getByPrimary($primary)
     * @method \Bitrix\Main\Test\Typography\EO_Author[] getAll()
     * @method bool remove(\Bitrix\Main\Test\Typography\EO_Author $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Test\Typography\EO_Author_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Test\Typography\EO_Author current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Author_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Test\Typography\AuthorTable */
        public static $dataClass = '\\Bitrix\\Main\\Test\\Typography\\AuthorTable';
    }
    /**
     * @method static EO_Author_Query query()
     * @method static EO_Author_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Author_Result getById($id)
     * @method static EO_Author_Result getList(array $parameters = array())
     * @method static EO_Author_Entity getEntity()
     * @method static \Bitrix\Main\Test\Typography\EO_Author createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Test\Typography\EO_Author_Collection createCollection()
     * @method static \Bitrix\Main\Test\Typography\EO_Author wakeUpObject($row)
     * @method static \Bitrix\Main\Test\Typography\EO_Author_Collection wakeUpCollection($rows)
     */
    class AuthorTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Author_Result exec()
     * @method \Bitrix\Main\Test\Typography\EO_Author fetchObject()
     * @method \Bitrix\Main\Test\Typography\EO_Author_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Author_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Test\Typography\EO_Author fetchObject()
     * @method \Bitrix\Main\Test\Typography\EO_Author_Collection fetchCollection()
     */
    class EO_Author_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Test\Typography\EO_Author createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Test\Typography\EO_Author_Collection createCollection()
     * @method \Bitrix\Main\Test\Typography\EO_Author wakeUpObject($row)
     * @method \Bitrix\Main\Test\Typography\EO_Author_Collection wakeUpCollection($rows)
     */
    class EO_Author_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * Book
     * @see \Bitrix\Main\Test\Typography\BookTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Test\Typography\Book setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getTitle()
     * @method \Bitrix\Main\Test\Typography\Book setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Main\Test\Typography\Book resetTitle()
     * @method \Bitrix\Main\Test\Typography\Book unsetTitle()
     * @method \string fillTitle()
     * @method \int getPublisherId()
     * @method \Bitrix\Main\Test\Typography\Book setPublisherId(\int|\Bitrix\Main\DB\SqlExpression $publisherId)
     * @method bool hasPublisherId()
     * @method bool isPublisherIdFilled()
     * @method bool isPublisherIdChanged()
     * @method \int remindActualPublisherId()
     * @method \int requirePublisherId()
     * @method \Bitrix\Main\Test\Typography\Book resetPublisherId()
     * @method \Bitrix\Main\Test\Typography\Book unsetPublisherId()
     * @method \int fillPublisherId()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher getPublisher()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher remindActualPublisher()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher requirePublisher()
     * @method \Bitrix\Main\Test\Typography\Book setPublisher(\Bitrix\Main\Test\Typography\EO_Publisher $object)
     * @method \Bitrix\Main\Test\Typography\Book resetPublisher()
     * @method \Bitrix\Main\Test\Typography\Book unsetPublisher()
     * @method bool hasPublisher()
     * @method bool isPublisherFilled()
     * @method bool isPublisherChanged()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher fillPublisher()
     * @method \string getIsbn()
     * @method \Bitrix\Main\Test\Typography\Book setIsbn(\string|\Bitrix\Main\DB\SqlExpression $isbn)
     * @method bool hasIsbn()
     * @method bool isIsbnFilled()
     * @method bool isIsbnChanged()
     * @method \string remindActualIsbn()
     * @method \string requireIsbn()
     * @method \Bitrix\Main\Test\Typography\Book resetIsbn()
     * @method \Bitrix\Main\Test\Typography\Book unsetIsbn()
     * @method \string fillIsbn()
     * @method \boolean getIsArchived()
     * @method \Bitrix\Main\Test\Typography\Book setIsArchived(\boolean|\Bitrix\Main\DB\SqlExpression $isArchived)
     * @method bool hasIsArchived()
     * @method bool isIsArchivedFilled()
     * @method bool isIsArchivedChanged()
     * @method \boolean remindActualIsArchived()
     * @method \boolean requireIsArchived()
     * @method \Bitrix\Main\Test\Typography\Book resetIsArchived()
     * @method \Bitrix\Main\Test\Typography\Book unsetIsArchived()
     * @method \boolean fillIsArchived()
     * @method array getQuotes()
     * @method \Bitrix\Main\Test\Typography\Book setQuotes(array|\Bitrix\Main\DB\SqlExpression $quotes)
     * @method bool hasQuotes()
     * @method bool isQuotesFilled()
     * @method bool isQuotesChanged()
     * @method array remindActualQuotes()
     * @method array requireQuotes()
     * @method \Bitrix\Main\Test\Typography\Book resetQuotes()
     * @method \Bitrix\Main\Test\Typography\Book unsetQuotes()
     * @method array fillQuotes()
     * @method \Bitrix\Main\Test\Typography\EO_Author_Collection getAuthors()
     * @method \Bitrix\Main\Test\Typography\EO_Author_Collection requireAuthors()
     * @method \Bitrix\Main\Test\Typography\EO_Author_Collection fillAuthors()
     * @method bool hasAuthors()
     * @method bool isAuthorsFilled()
     * @method bool isAuthorsChanged()
     * @method void addToAuthors(\Bitrix\Main\Test\Typography\EO_Author $author)
     * @method void removeFromAuthors(\Bitrix\Main\Test\Typography\EO_Author $author)
     * @method void removeAllAuthors()
     * @method \Bitrix\Main\Test\Typography\Book resetAuthors()
     * @method \Bitrix\Main\Test\Typography\Book unsetAuthors()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection getStoreItems()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection requireStoreItems()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection fillStoreItems()
     * @method bool hasStoreItems()
     * @method bool isStoreItemsFilled()
     * @method bool isStoreItemsChanged()
     * @method void addToStoreItems(\Bitrix\Main\Test\Typography\EO_StoreBook $storeBook)
     * @method void removeFromStoreItems(\Bitrix\Main\Test\Typography\EO_StoreBook $storeBook)
     * @method void removeAllStoreItems()
     * @method \Bitrix\Main\Test\Typography\Book resetStoreItems()
     * @method \Bitrix\Main\Test\Typography\Book unsetStoreItems()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Test\Typography\Book set($fieldName, $value)
     * @method \Bitrix\Main\Test\Typography\Book reset($fieldName)
     * @method \Bitrix\Main\Test\Typography\Book unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Test\Typography\Book wakeUp($data)
     */
    class EO_Book
    {
        /* @var \Bitrix\Main\Test\Typography\BookTable */
        public static $dataClass = '\\Bitrix\\Main\\Test\\Typography\\BookTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * Books
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \int[] getPublisherIdList()
     * @method \int[] fillPublisherId()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher[] getPublisherList()
     * @method \Bitrix\Main\Test\Typography\Books getPublisherCollection()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher_Collection fillPublisher()
     * @method \string[] getIsbnList()
     * @method \string[] fillIsbn()
     * @method \boolean[] getIsArchivedList()
     * @method \boolean[] fillIsArchived()
     * @method array[] getQuotesList()
     * @method array[] fillQuotes()
     * @method \Bitrix\Main\Test\Typography\EO_Author_Collection[] getAuthorsList()
     * @method \Bitrix\Main\Test\Typography\EO_Author_Collection getAuthorsCollection()
     * @method \Bitrix\Main\Test\Typography\EO_Author_Collection fillAuthors()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection[] getStoreItemsList()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection getStoreItemsCollection()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection fillStoreItems()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Test\Typography\Book $object)
     * @method bool has(\Bitrix\Main\Test\Typography\Book $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Test\Typography\Book getByPrimary($primary)
     * @method \Bitrix\Main\Test\Typography\Book[] getAll()
     * @method bool remove(\Bitrix\Main\Test\Typography\Book $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Test\Typography\Books wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Test\Typography\Book current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Book_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Test\Typography\BookTable */
        public static $dataClass = '\\Bitrix\\Main\\Test\\Typography\\BookTable';
    }
    /**
     * @method static EO_Book_Query query()
     * @method static EO_Book_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Book_Result getById($id)
     * @method static EO_Book_Result getList(array $parameters = array())
     * @method static EO_Book_Entity getEntity()
     * @method static \Bitrix\Main\Test\Typography\Book createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Test\Typography\Books createCollection()
     * @method static \Bitrix\Main\Test\Typography\Book wakeUpObject($row)
     * @method static \Bitrix\Main\Test\Typography\Books wakeUpCollection($rows)
     */
    class BookTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Book_Result exec()
     * @method \Bitrix\Main\Test\Typography\Book fetchObject()
     * @method \Bitrix\Main\Test\Typography\Books fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Book_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Test\Typography\Book fetchObject()
     * @method \Bitrix\Main\Test\Typography\Books fetchCollection()
     */
    class EO_Book_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Test\Typography\Book createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Test\Typography\Books createCollection()
     * @method \Bitrix\Main\Test\Typography\Book wakeUpObject($row)
     * @method \Bitrix\Main\Test\Typography\Books wakeUpCollection($rows)
     */
    class EO_Book_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Publisher
     * @see \Bitrix\Main\Test\Typography\PublisherTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getTitle()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher resetTitle()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher unsetTitle()
     * @method \string fillTitle()
     * @method \int getBooksCount()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher setBooksCount(\int|\Bitrix\Main\DB\SqlExpression $booksCount)
     * @method bool hasBooksCount()
     * @method bool isBooksCountFilled()
     * @method bool isBooksCountChanged()
     * @method \int remindActualBooksCount()
     * @method \int requireBooksCount()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher resetBooksCount()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher unsetBooksCount()
     * @method \int fillBooksCount()
     * @method \Bitrix\Main\Test\Typography\Books getBooks()
     * @method \Bitrix\Main\Test\Typography\Books requireBooks()
     * @method \Bitrix\Main\Test\Typography\Books fillBooks()
     * @method bool hasBooks()
     * @method bool isBooksFilled()
     * @method bool isBooksChanged()
     * @method void addToBooks(\Bitrix\Main\Test\Typography\Book $book)
     * @method void removeFromBooks(\Bitrix\Main\Test\Typography\Book $book)
     * @method void removeAllBooks()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher resetBooks()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher unsetBooks()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Test\Typography\EO_Publisher set($fieldName, $value)
     * @method \Bitrix\Main\Test\Typography\EO_Publisher reset($fieldName)
     * @method \Bitrix\Main\Test\Typography\EO_Publisher unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Test\Typography\EO_Publisher wakeUp($data)
     */
    class EO_Publisher
    {
        /* @var \Bitrix\Main\Test\Typography\PublisherTable */
        public static $dataClass = '\\Bitrix\\Main\\Test\\Typography\\PublisherTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Publisher_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \int[] getBooksCountList()
     * @method \int[] fillBooksCount()
     * @method \Bitrix\Main\Test\Typography\Books[] getBooksList()
     * @method \Bitrix\Main\Test\Typography\Books getBooksCollection()
     * @method \Bitrix\Main\Test\Typography\Books fillBooks()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Test\Typography\EO_Publisher $object)
     * @method bool has(\Bitrix\Main\Test\Typography\EO_Publisher $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Test\Typography\EO_Publisher getByPrimary($primary)
     * @method \Bitrix\Main\Test\Typography\EO_Publisher[] getAll()
     * @method bool remove(\Bitrix\Main\Test\Typography\EO_Publisher $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Test\Typography\EO_Publisher_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Test\Typography\EO_Publisher current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Publisher_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Test\Typography\PublisherTable */
        public static $dataClass = '\\Bitrix\\Main\\Test\\Typography\\PublisherTable';
    }
    /**
     * @method static EO_Publisher_Query query()
     * @method static EO_Publisher_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Publisher_Result getById($id)
     * @method static EO_Publisher_Result getList(array $parameters = array())
     * @method static EO_Publisher_Entity getEntity()
     * @method static \Bitrix\Main\Test\Typography\EO_Publisher createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Test\Typography\EO_Publisher_Collection createCollection()
     * @method static \Bitrix\Main\Test\Typography\EO_Publisher wakeUpObject($row)
     * @method static \Bitrix\Main\Test\Typography\EO_Publisher_Collection wakeUpCollection($rows)
     */
    class PublisherTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Publisher_Result exec()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher fetchObject()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Publisher_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Test\Typography\EO_Publisher fetchObject()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher_Collection fetchCollection()
     */
    class EO_Publisher_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Test\Typography\EO_Publisher createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Test\Typography\EO_Publisher_Collection createCollection()
     * @method \Bitrix\Main\Test\Typography\EO_Publisher wakeUpObject($row)
     * @method \Bitrix\Main\Test\Typography\EO_Publisher_Collection wakeUpCollection($rows)
     */
    class EO_Publisher_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_StoreBook
     * @see \Bitrix\Main\Test\Typography\StoreBookTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getStoreId()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook setStoreId(\int|\Bitrix\Main\DB\SqlExpression $storeId)
     * @method bool hasStoreId()
     * @method bool isStoreIdFilled()
     * @method bool isStoreIdChanged()
     * @method \Bitrix\Main\Test\Typography\EO_Store getStore()
     * @method \Bitrix\Main\Test\Typography\EO_Store remindActualStore()
     * @method \Bitrix\Main\Test\Typography\EO_Store requireStore()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook setStore(\Bitrix\Main\Test\Typography\EO_Store $object)
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook resetStore()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook unsetStore()
     * @method bool hasStore()
     * @method bool isStoreFilled()
     * @method bool isStoreChanged()
     * @method \Bitrix\Main\Test\Typography\EO_Store fillStore()
     * @method \int getBookId()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook setBookId(\int|\Bitrix\Main\DB\SqlExpression $bookId)
     * @method bool hasBookId()
     * @method bool isBookIdFilled()
     * @method bool isBookIdChanged()
     * @method \Bitrix\Main\Test\Typography\Book getBook()
     * @method \Bitrix\Main\Test\Typography\Book remindActualBook()
     * @method \Bitrix\Main\Test\Typography\Book requireBook()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook setBook(\Bitrix\Main\Test\Typography\Book $object)
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook resetBook()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook unsetBook()
     * @method bool hasBook()
     * @method bool isBookFilled()
     * @method bool isBookChanged()
     * @method \Bitrix\Main\Test\Typography\Book fillBook()
     * @method \int getQuantity()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook setQuantity(\int|\Bitrix\Main\DB\SqlExpression $quantity)
     * @method bool hasQuantity()
     * @method bool isQuantityFilled()
     * @method bool isQuantityChanged()
     * @method \int remindActualQuantity()
     * @method \int requireQuantity()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook resetQuantity()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook unsetQuantity()
     * @method \int fillQuantity()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook set($fieldName, $value)
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook reset($fieldName)
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Test\Typography\EO_StoreBook wakeUp($data)
     */
    class EO_StoreBook
    {
        /* @var \Bitrix\Main\Test\Typography\StoreBookTable */
        public static $dataClass = '\\Bitrix\\Main\\Test\\Typography\\StoreBookTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_StoreBook_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getStoreIdList()
     * @method \Bitrix\Main\Test\Typography\EO_Store[] getStoreList()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection getStoreCollection()
     * @method \Bitrix\Main\Test\Typography\EO_Store_Collection fillStore()
     * @method \int[] getBookIdList()
     * @method \Bitrix\Main\Test\Typography\Book[] getBookList()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection getBookCollection()
     * @method \Bitrix\Main\Test\Typography\Books fillBook()
     * @method \int[] getQuantityList()
     * @method \int[] fillQuantity()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Test\Typography\EO_StoreBook $object)
     * @method bool has(\Bitrix\Main\Test\Typography\EO_StoreBook $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook getByPrimary($primary)
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook[] getAll()
     * @method bool remove(\Bitrix\Main\Test\Typography\EO_StoreBook $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Test\Typography\EO_StoreBook_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_StoreBook_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Test\Typography\StoreBookTable */
        public static $dataClass = '\\Bitrix\\Main\\Test\\Typography\\StoreBookTable';
    }
    /**
     * @method static EO_StoreBook_Query query()
     * @method static EO_StoreBook_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_StoreBook_Result getById($id)
     * @method static EO_StoreBook_Result getList(array $parameters = array())
     * @method static EO_StoreBook_Entity getEntity()
     * @method static \Bitrix\Main\Test\Typography\EO_StoreBook createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Test\Typography\EO_StoreBook_Collection createCollection()
     * @method static \Bitrix\Main\Test\Typography\EO_StoreBook wakeUpObject($row)
     * @method static \Bitrix\Main\Test\Typography\EO_StoreBook_Collection wakeUpCollection($rows)
     */
    class StoreBookTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_StoreBook_Result exec()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook fetchObject()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_StoreBook_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook fetchObject()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection fetchCollection()
     */
    class EO_StoreBook_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection createCollection()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook wakeUpObject($row)
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection wakeUpCollection($rows)
     */
    class EO_StoreBook_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Store
     * @see \Bitrix\Main\Test\Typography\StoreTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Test\Typography\EO_Store setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getAddress()
     * @method \Bitrix\Main\Test\Typography\EO_Store setAddress(\string|\Bitrix\Main\DB\SqlExpression $address)
     * @method bool hasAddress()
     * @method bool isAddressFilled()
     * @method bool isAddressChanged()
     * @method \string remindActualAddress()
     * @method \string requireAddress()
     * @method \Bitrix\Main\Test\Typography\EO_Store resetAddress()
     * @method \Bitrix\Main\Test\Typography\EO_Store unsetAddress()
     * @method \string fillAddress()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection getBookItems()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection requireBookItems()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection fillBookItems()
     * @method bool hasBookItems()
     * @method bool isBookItemsFilled()
     * @method bool isBookItemsChanged()
     * @method void addToBookItems(\Bitrix\Main\Test\Typography\EO_StoreBook $storeBook)
     * @method void removeFromBookItems(\Bitrix\Main\Test\Typography\EO_StoreBook $storeBook)
     * @method void removeAllBookItems()
     * @method \Bitrix\Main\Test\Typography\EO_Store resetBookItems()
     * @method \Bitrix\Main\Test\Typography\EO_Store unsetBookItems()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Test\Typography\EO_Store set($fieldName, $value)
     * @method \Bitrix\Main\Test\Typography\EO_Store reset($fieldName)
     * @method \Bitrix\Main\Test\Typography\EO_Store unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Test\Typography\EO_Store wakeUp($data)
     */
    class EO_Store
    {
        /* @var \Bitrix\Main\Test\Typography\StoreTable */
        public static $dataClass = '\\Bitrix\\Main\\Test\\Typography\\StoreTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Store_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getAddressList()
     * @method \string[] fillAddress()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection[] getBookItemsList()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection getBookItemsCollection()
     * @method \Bitrix\Main\Test\Typography\EO_StoreBook_Collection fillBookItems()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Test\Typography\EO_Store $object)
     * @method bool has(\Bitrix\Main\Test\Typography\EO_Store $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Test\Typography\EO_Store getByPrimary($primary)
     * @method \Bitrix\Main\Test\Typography\EO_Store[] getAll()
     * @method bool remove(\Bitrix\Main\Test\Typography\EO_Store $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Test\Typography\EO_Store_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Test\Typography\EO_Store current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Store_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Test\Typography\StoreTable */
        public static $dataClass = '\\Bitrix\\Main\\Test\\Typography\\StoreTable';
    }
    /**
     * @method static EO_Store_Query query()
     * @method static EO_Store_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Store_Result getById($id)
     * @method static EO_Store_Result getList(array $parameters = array())
     * @method static EO_Store_Entity getEntity()
     * @method static \Bitrix\Main\Test\Typography\EO_Store createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Test\Typography\EO_Store_Collection createCollection()
     * @method static \Bitrix\Main\Test\Typography\EO_Store wakeUpObject($row)
     * @method static \Bitrix\Main\Test\Typography\EO_Store_Collection wakeUpCollection($rows)
     */
    class StoreTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Store_Result exec()
     * @method \Bitrix\Main\Test\Typography\EO_Store fetchObject()
     * @method \Bitrix\Main\Test\Typography\EO_Store_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Store_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Test\Typography\EO_Store fetchObject()
     * @method \Bitrix\Main\Test\Typography\EO_Store_Collection fetchCollection()
     */
    class EO_Store_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Test\Typography\EO_Store createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Test\Typography\EO_Store_Collection createCollection()
     * @method \Bitrix\Main\Test\Typography\EO_Store wakeUpObject($row)
     * @method \Bitrix\Main\Test\Typography\EO_Store_Collection wakeUpCollection($rows)
     */
    class EO_Store_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\UI\Viewer {
    /**
     * EO_FilePreview
     * @see \Bitrix\Main\UI\Viewer\FilePreviewTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getFileId()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview setFileId(\int|\Bitrix\Main\DB\SqlExpression $fileId)
     * @method bool hasFileId()
     * @method bool isFileIdFilled()
     * @method bool isFileIdChanged()
     * @method \int remindActualFileId()
     * @method \int requireFileId()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview resetFileId()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview unsetFileId()
     * @method \int fillFileId()
     * @method \int getPreviewId()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview setPreviewId(\int|\Bitrix\Main\DB\SqlExpression $previewId)
     * @method bool hasPreviewId()
     * @method bool isPreviewIdFilled()
     * @method bool isPreviewIdChanged()
     * @method \int remindActualPreviewId()
     * @method \int requirePreviewId()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview resetPreviewId()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview unsetPreviewId()
     * @method \int fillPreviewId()
     * @method \int getPreviewImageId()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview setPreviewImageId(\int|\Bitrix\Main\DB\SqlExpression $previewImageId)
     * @method bool hasPreviewImageId()
     * @method bool isPreviewImageIdFilled()
     * @method bool isPreviewImageIdChanged()
     * @method \int remindActualPreviewImageId()
     * @method \int requirePreviewImageId()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview resetPreviewImageId()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview unsetPreviewImageId()
     * @method \int fillPreviewImageId()
     * @method \Bitrix\Main\Type\DateTime getCreatedAt()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview setCreatedAt(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $createdAt)
     * @method bool hasCreatedAt()
     * @method bool isCreatedAtFilled()
     * @method bool isCreatedAtChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualCreatedAt()
     * @method \Bitrix\Main\Type\DateTime requireCreatedAt()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview resetCreatedAt()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview unsetCreatedAt()
     * @method \Bitrix\Main\Type\DateTime fillCreatedAt()
     * @method \Bitrix\Main\Type\DateTime getTouchedAt()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview setTouchedAt(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $touchedAt)
     * @method bool hasTouchedAt()
     * @method bool isTouchedAtFilled()
     * @method bool isTouchedAtChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTouchedAt()
     * @method \Bitrix\Main\Type\DateTime requireTouchedAt()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview resetTouchedAt()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview unsetTouchedAt()
     * @method \Bitrix\Main\Type\DateTime fillTouchedAt()
     * @method \Bitrix\Main\EO_File getFile()
     * @method \Bitrix\Main\EO_File remindActualFile()
     * @method \Bitrix\Main\EO_File requireFile()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview setFile(\Bitrix\Main\EO_File $object)
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview resetFile()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview unsetFile()
     * @method bool hasFile()
     * @method bool isFileFilled()
     * @method bool isFileChanged()
     * @method \Bitrix\Main\EO_File fillFile()
     * @method \Bitrix\Main\EO_File getPreview()
     * @method \Bitrix\Main\EO_File remindActualPreview()
     * @method \Bitrix\Main\EO_File requirePreview()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview setPreview(\Bitrix\Main\EO_File $object)
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview resetPreview()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview unsetPreview()
     * @method bool hasPreview()
     * @method bool isPreviewFilled()
     * @method bool isPreviewChanged()
     * @method \Bitrix\Main\EO_File fillPreview()
     * @method \Bitrix\Main\EO_File getPreviewImage()
     * @method \Bitrix\Main\EO_File remindActualPreviewImage()
     * @method \Bitrix\Main\EO_File requirePreviewImage()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview setPreviewImage(\Bitrix\Main\EO_File $object)
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview resetPreviewImage()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview unsetPreviewImage()
     * @method bool hasPreviewImage()
     * @method bool isPreviewImageFilled()
     * @method bool isPreviewImageChanged()
     * @method \Bitrix\Main\EO_File fillPreviewImage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview set($fieldName, $value)
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview reset($fieldName)
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\UI\Viewer\EO_FilePreview wakeUp($data)
     */
    class EO_FilePreview
    {
        /* @var \Bitrix\Main\UI\Viewer\FilePreviewTable */
        public static $dataClass = '\\Bitrix\\Main\\UI\\Viewer\\FilePreviewTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_FilePreview_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getFileIdList()
     * @method \int[] fillFileId()
     * @method \int[] getPreviewIdList()
     * @method \int[] fillPreviewId()
     * @method \int[] getPreviewImageIdList()
     * @method \int[] fillPreviewImageId()
     * @method \Bitrix\Main\Type\DateTime[] getCreatedAtList()
     * @method \Bitrix\Main\Type\DateTime[] fillCreatedAt()
     * @method \Bitrix\Main\Type\DateTime[] getTouchedAtList()
     * @method \Bitrix\Main\Type\DateTime[] fillTouchedAt()
     * @method \Bitrix\Main\EO_File[] getFileList()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview_Collection getFileCollection()
     * @method \Bitrix\Main\EO_File_Collection fillFile()
     * @method \Bitrix\Main\EO_File[] getPreviewList()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview_Collection getPreviewCollection()
     * @method \Bitrix\Main\EO_File_Collection fillPreview()
     * @method \Bitrix\Main\EO_File[] getPreviewImageList()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview_Collection getPreviewImageCollection()
     * @method \Bitrix\Main\EO_File_Collection fillPreviewImage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\UI\Viewer\EO_FilePreview $object)
     * @method bool has(\Bitrix\Main\UI\Viewer\EO_FilePreview $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview getByPrimary($primary)
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview[] getAll()
     * @method bool remove(\Bitrix\Main\UI\Viewer\EO_FilePreview $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\UI\Viewer\EO_FilePreview_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_FilePreview_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UI\Viewer\FilePreviewTable */
        public static $dataClass = '\\Bitrix\\Main\\UI\\Viewer\\FilePreviewTable';
    }
    /**
     * @method static EO_FilePreview_Query query()
     * @method static EO_FilePreview_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_FilePreview_Result getById($id)
     * @method static EO_FilePreview_Result getList(array $parameters = array())
     * @method static EO_FilePreview_Entity getEntity()
     * @method static \Bitrix\Main\UI\Viewer\EO_FilePreview createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\UI\Viewer\EO_FilePreview_Collection createCollection()
     * @method static \Bitrix\Main\UI\Viewer\EO_FilePreview wakeUpObject($row)
     * @method static \Bitrix\Main\UI\Viewer\EO_FilePreview_Collection wakeUpCollection($rows)
     */
    class FilePreviewTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_FilePreview_Result exec()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview fetchObject()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_FilePreview_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview fetchObject()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview_Collection fetchCollection()
     */
    class EO_FilePreview_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview createObject($setDefaultValues = true)
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview_Collection createCollection()
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview wakeUpObject($row)
     * @method \Bitrix\Main\UI\Viewer\EO_FilePreview_Collection wakeUpCollection($rows)
     */
    class EO_FilePreview_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\Update {
    /**
     * EO_VersionHistory
     * @see \Bitrix\Main\Update\VersionHistoryTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\Update\EO_VersionHistory setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getDateInsert()
     * @method \Bitrix\Main\Update\EO_VersionHistory setDateInsert(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateInsert)
     * @method bool hasDateInsert()
     * @method bool isDateInsertFilled()
     * @method bool isDateInsertChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateInsert()
     * @method \Bitrix\Main\Type\DateTime requireDateInsert()
     * @method \Bitrix\Main\Update\EO_VersionHistory resetDateInsert()
     * @method \Bitrix\Main\Update\EO_VersionHistory unsetDateInsert()
     * @method \Bitrix\Main\Type\DateTime fillDateInsert()
     * @method \string getVersions()
     * @method \Bitrix\Main\Update\EO_VersionHistory setVersions(\string|\Bitrix\Main\DB\SqlExpression $versions)
     * @method bool hasVersions()
     * @method bool isVersionsFilled()
     * @method bool isVersionsChanged()
     * @method \string remindActualVersions()
     * @method \string requireVersions()
     * @method \Bitrix\Main\Update\EO_VersionHistory resetVersions()
     * @method \Bitrix\Main\Update\EO_VersionHistory unsetVersions()
     * @method \string fillVersions()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\Update\EO_VersionHistory set($fieldName, $value)
     * @method \Bitrix\Main\Update\EO_VersionHistory reset($fieldName)
     * @method \Bitrix\Main\Update\EO_VersionHistory unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\Update\EO_VersionHistory wakeUp($data)
     */
    class EO_VersionHistory
    {
        /* @var \Bitrix\Main\Update\VersionHistoryTable */
        public static $dataClass = '\\Bitrix\\Main\\Update\\VersionHistoryTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_VersionHistory_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getDateInsertList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateInsert()
     * @method \string[] getVersionsList()
     * @method \string[] fillVersions()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\Update\EO_VersionHistory $object)
     * @method bool has(\Bitrix\Main\Update\EO_VersionHistory $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\Update\EO_VersionHistory getByPrimary($primary)
     * @method \Bitrix\Main\Update\EO_VersionHistory[] getAll()
     * @method bool remove(\Bitrix\Main\Update\EO_VersionHistory $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\Update\EO_VersionHistory_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\Update\EO_VersionHistory current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_VersionHistory_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\Update\VersionHistoryTable */
        public static $dataClass = '\\Bitrix\\Main\\Update\\VersionHistoryTable';
    }
    /**
     * @method static EO_VersionHistory_Query query()
     * @method static EO_VersionHistory_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_VersionHistory_Result getById($id)
     * @method static EO_VersionHistory_Result getList(array $parameters = array())
     * @method static EO_VersionHistory_Entity getEntity()
     * @method static \Bitrix\Main\Update\EO_VersionHistory createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\Update\EO_VersionHistory_Collection createCollection()
     * @method static \Bitrix\Main\Update\EO_VersionHistory wakeUpObject($row)
     * @method static \Bitrix\Main\Update\EO_VersionHistory_Collection wakeUpCollection($rows)
     */
    class VersionHistoryTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_VersionHistory_Result exec()
     * @method \Bitrix\Main\Update\EO_VersionHistory fetchObject()
     * @method \Bitrix\Main\Update\EO_VersionHistory_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_VersionHistory_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\Update\EO_VersionHistory fetchObject()
     * @method \Bitrix\Main\Update\EO_VersionHistory_Collection fetchCollection()
     */
    class EO_VersionHistory_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\Update\EO_VersionHistory createObject($setDefaultValues = true)
     * @method \Bitrix\Main\Update\EO_VersionHistory_Collection createCollection()
     * @method \Bitrix\Main\Update\EO_VersionHistory wakeUpObject($row)
     * @method \Bitrix\Main\Update\EO_VersionHistory_Collection wakeUpCollection($rows)
     */
    class EO_VersionHistory_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\UrlPreview {
    /**
     * EO_Route
     * @see \Bitrix\Main\UrlPreview\RouteTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\UrlPreview\EO_Route setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getRoute()
     * @method \Bitrix\Main\UrlPreview\EO_Route setRoute(\string|\Bitrix\Main\DB\SqlExpression $route)
     * @method bool hasRoute()
     * @method bool isRouteFilled()
     * @method bool isRouteChanged()
     * @method \string remindActualRoute()
     * @method \string requireRoute()
     * @method \Bitrix\Main\UrlPreview\EO_Route resetRoute()
     * @method \Bitrix\Main\UrlPreview\EO_Route unsetRoute()
     * @method \string fillRoute()
     * @method \string getModule()
     * @method \Bitrix\Main\UrlPreview\EO_Route setModule(\string|\Bitrix\Main\DB\SqlExpression $module)
     * @method bool hasModule()
     * @method bool isModuleFilled()
     * @method bool isModuleChanged()
     * @method \string remindActualModule()
     * @method \string requireModule()
     * @method \Bitrix\Main\UrlPreview\EO_Route resetModule()
     * @method \Bitrix\Main\UrlPreview\EO_Route unsetModule()
     * @method \string fillModule()
     * @method \string getClass()
     * @method \Bitrix\Main\UrlPreview\EO_Route setClass(\string|\Bitrix\Main\DB\SqlExpression $class)
     * @method bool hasClass()
     * @method bool isClassFilled()
     * @method bool isClassChanged()
     * @method \string remindActualClass()
     * @method \string requireClass()
     * @method \Bitrix\Main\UrlPreview\EO_Route resetClass()
     * @method \Bitrix\Main\UrlPreview\EO_Route unsetClass()
     * @method \string fillClass()
     * @method \string getParameters()
     * @method \Bitrix\Main\UrlPreview\EO_Route setParameters(\string|\Bitrix\Main\DB\SqlExpression $parameters)
     * @method bool hasParameters()
     * @method bool isParametersFilled()
     * @method bool isParametersChanged()
     * @method \string remindActualParameters()
     * @method \string requireParameters()
     * @method \Bitrix\Main\UrlPreview\EO_Route resetParameters()
     * @method \Bitrix\Main\UrlPreview\EO_Route unsetParameters()
     * @method \string fillParameters()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\UrlPreview\EO_Route set($fieldName, $value)
     * @method \Bitrix\Main\UrlPreview\EO_Route reset($fieldName)
     * @method \Bitrix\Main\UrlPreview\EO_Route unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\UrlPreview\EO_Route wakeUp($data)
     */
    class EO_Route
    {
        /* @var \Bitrix\Main\UrlPreview\RouteTable */
        public static $dataClass = '\\Bitrix\\Main\\UrlPreview\\RouteTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Route_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getRouteList()
     * @method \string[] fillRoute()
     * @method \string[] getModuleList()
     * @method \string[] fillModule()
     * @method \string[] getClassList()
     * @method \string[] fillClass()
     * @method \string[] getParametersList()
     * @method \string[] fillParameters()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\UrlPreview\EO_Route $object)
     * @method bool has(\Bitrix\Main\UrlPreview\EO_Route $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\UrlPreview\EO_Route getByPrimary($primary)
     * @method \Bitrix\Main\UrlPreview\EO_Route[] getAll()
     * @method bool remove(\Bitrix\Main\UrlPreview\EO_Route $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\UrlPreview\EO_Route_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\UrlPreview\EO_Route current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Route_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UrlPreview\RouteTable */
        public static $dataClass = '\\Bitrix\\Main\\UrlPreview\\RouteTable';
    }
    /**
     * @method static EO_Route_Query query()
     * @method static EO_Route_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Route_Result getById($id)
     * @method static EO_Route_Result getList(array $parameters = array())
     * @method static EO_Route_Entity getEntity()
     * @method static \Bitrix\Main\UrlPreview\EO_Route createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\UrlPreview\EO_Route_Collection createCollection()
     * @method static \Bitrix\Main\UrlPreview\EO_Route wakeUpObject($row)
     * @method static \Bitrix\Main\UrlPreview\EO_Route_Collection wakeUpCollection($rows)
     */
    class RouteTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Route_Result exec()
     * @method \Bitrix\Main\UrlPreview\EO_Route fetchObject()
     * @method \Bitrix\Main\UrlPreview\EO_Route_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Route_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\UrlPreview\EO_Route fetchObject()
     * @method \Bitrix\Main\UrlPreview\EO_Route_Collection fetchCollection()
     */
    class EO_Route_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\UrlPreview\EO_Route createObject($setDefaultValues = true)
     * @method \Bitrix\Main\UrlPreview\EO_Route_Collection createCollection()
     * @method \Bitrix\Main\UrlPreview\EO_Route wakeUpObject($row)
     * @method \Bitrix\Main\UrlPreview\EO_Route_Collection wakeUpCollection($rows)
     */
    class EO_Route_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UrlMetadata
     * @see \Bitrix\Main\UrlPreview\UrlMetadataTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getUrl()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata setUrl(\string|\Bitrix\Main\DB\SqlExpression $url)
     * @method bool hasUrl()
     * @method bool isUrlFilled()
     * @method bool isUrlChanged()
     * @method \string remindActualUrl()
     * @method \string requireUrl()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata resetUrl()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata unsetUrl()
     * @method \string fillUrl()
     * @method \string getType()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata resetType()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata unsetType()
     * @method \string fillType()
     * @method \string getTitle()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata resetTitle()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata unsetTitle()
     * @method \string fillTitle()
     * @method \string getDescription()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata resetDescription()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata unsetDescription()
     * @method \string fillDescription()
     * @method \int getImageId()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata setImageId(\int|\Bitrix\Main\DB\SqlExpression $imageId)
     * @method bool hasImageId()
     * @method bool isImageIdFilled()
     * @method bool isImageIdChanged()
     * @method \int remindActualImageId()
     * @method \int requireImageId()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata resetImageId()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata unsetImageId()
     * @method \int fillImageId()
     * @method \string getImage()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata setImage(\string|\Bitrix\Main\DB\SqlExpression $image)
     * @method bool hasImage()
     * @method bool isImageFilled()
     * @method bool isImageChanged()
     * @method \string remindActualImage()
     * @method \string requireImage()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata resetImage()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata unsetImage()
     * @method \string fillImage()
     * @method \string getEmbed()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata setEmbed(\string|\Bitrix\Main\DB\SqlExpression $embed)
     * @method bool hasEmbed()
     * @method bool isEmbedFilled()
     * @method bool isEmbedChanged()
     * @method \string remindActualEmbed()
     * @method \string requireEmbed()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata resetEmbed()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata unsetEmbed()
     * @method \string fillEmbed()
     * @method \string getExtra()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata setExtra(\string|\Bitrix\Main\DB\SqlExpression $extra)
     * @method bool hasExtra()
     * @method bool isExtraFilled()
     * @method bool isExtraChanged()
     * @method \string remindActualExtra()
     * @method \string requireExtra()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata resetExtra()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata unsetExtra()
     * @method \string fillExtra()
     * @method \Bitrix\Main\Type\DateTime getDateInsert()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata setDateInsert(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateInsert)
     * @method bool hasDateInsert()
     * @method bool isDateInsertFilled()
     * @method bool isDateInsertChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateInsert()
     * @method \Bitrix\Main\Type\DateTime requireDateInsert()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata resetDateInsert()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata unsetDateInsert()
     * @method \Bitrix\Main\Type\DateTime fillDateInsert()
     * @method \Bitrix\Main\Type\DateTime getDateExpire()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata setDateExpire(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateExpire)
     * @method bool hasDateExpire()
     * @method bool isDateExpireFilled()
     * @method bool isDateExpireChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateExpire()
     * @method \Bitrix\Main\Type\DateTime requireDateExpire()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata resetDateExpire()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata unsetDateExpire()
     * @method \Bitrix\Main\Type\DateTime fillDateExpire()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata set($fieldName, $value)
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata reset($fieldName)
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\UrlPreview\EO_UrlMetadata wakeUp($data)
     */
    class EO_UrlMetadata
    {
        /* @var \Bitrix\Main\UrlPreview\UrlMetadataTable */
        public static $dataClass = '\\Bitrix\\Main\\UrlPreview\\UrlMetadataTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UrlMetadata_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getUrlList()
     * @method \string[] fillUrl()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \int[] getImageIdList()
     * @method \int[] fillImageId()
     * @method \string[] getImageList()
     * @method \string[] fillImage()
     * @method \string[] getEmbedList()
     * @method \string[] fillEmbed()
     * @method \string[] getExtraList()
     * @method \string[] fillExtra()
     * @method \Bitrix\Main\Type\DateTime[] getDateInsertList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateInsert()
     * @method \Bitrix\Main\Type\DateTime[] getDateExpireList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateExpire()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\UrlPreview\EO_UrlMetadata $object)
     * @method bool has(\Bitrix\Main\UrlPreview\EO_UrlMetadata $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata getByPrimary($primary)
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata[] getAll()
     * @method bool remove(\Bitrix\Main\UrlPreview\EO_UrlMetadata $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\UrlPreview\EO_UrlMetadata_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UrlMetadata_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UrlPreview\UrlMetadataTable */
        public static $dataClass = '\\Bitrix\\Main\\UrlPreview\\UrlMetadataTable';
    }
    /**
     * @method static EO_UrlMetadata_Query query()
     * @method static EO_UrlMetadata_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UrlMetadata_Result getById($id)
     * @method static EO_UrlMetadata_Result getList(array $parameters = array())
     * @method static EO_UrlMetadata_Entity getEntity()
     * @method static \Bitrix\Main\UrlPreview\EO_UrlMetadata createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\UrlPreview\EO_UrlMetadata_Collection createCollection()
     * @method static \Bitrix\Main\UrlPreview\EO_UrlMetadata wakeUpObject($row)
     * @method static \Bitrix\Main\UrlPreview\EO_UrlMetadata_Collection wakeUpCollection($rows)
     */
    class UrlMetadataTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UrlMetadata_Result exec()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata fetchObject()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UrlMetadata_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata fetchObject()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata_Collection fetchCollection()
     */
    class EO_UrlMetadata_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata createObject($setDefaultValues = true)
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata_Collection createCollection()
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata wakeUpObject($row)
     * @method \Bitrix\Main\UrlPreview\EO_UrlMetadata_Collection wakeUpCollection($rows)
     */
    class EO_UrlMetadata_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main {
    /**
     * EO_UserAccess
     * @see \Bitrix\Main\UserAccessTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Main\EO_UserAccess setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \string getProviderId()
     * @method \Bitrix\Main\EO_UserAccess setProviderId(\string|\Bitrix\Main\DB\SqlExpression $providerId)
     * @method bool hasProviderId()
     * @method bool isProviderIdFilled()
     * @method bool isProviderIdChanged()
     * @method \string getAccessCode()
     * @method \Bitrix\Main\EO_UserAccess setAccessCode(\string|\Bitrix\Main\DB\SqlExpression $accessCode)
     * @method bool hasAccessCode()
     * @method bool isAccessCodeFilled()
     * @method bool isAccessCodeChanged()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_UserAccess set($fieldName, $value)
     * @method \Bitrix\Main\EO_UserAccess reset($fieldName)
     * @method \Bitrix\Main\EO_UserAccess unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_UserAccess wakeUp($data)
     */
    class EO_UserAccess
    {
        /* @var \Bitrix\Main\UserAccessTable */
        public static $dataClass = '\\Bitrix\\Main\\UserAccessTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserAccess_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \string[] getProviderIdList()
     * @method \string[] getAccessCodeList()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_UserAccess $object)
     * @method bool has(\Bitrix\Main\EO_UserAccess $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_UserAccess getByPrimary($primary)
     * @method \Bitrix\Main\EO_UserAccess[] getAll()
     * @method bool remove(\Bitrix\Main\EO_UserAccess $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_UserAccess_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_UserAccess current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserAccess_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserAccessTable */
        public static $dataClass = '\\Bitrix\\Main\\UserAccessTable';
    }
    /**
     * @method static EO_UserAccess_Query query()
     * @method static EO_UserAccess_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserAccess_Result getById($id)
     * @method static EO_UserAccess_Result getList(array $parameters = array())
     * @method static EO_UserAccess_Entity getEntity()
     * @method static \Bitrix\Main\EO_UserAccess createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_UserAccess_Collection createCollection()
     * @method static \Bitrix\Main\EO_UserAccess wakeUpObject($row)
     * @method static \Bitrix\Main\EO_UserAccess_Collection wakeUpCollection($rows)
     */
    class UserAccessTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserAccess_Result exec()
     * @method \Bitrix\Main\EO_UserAccess fetchObject()
     * @method \Bitrix\Main\EO_UserAccess_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserAccess_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserAccess fetchObject()
     * @method \Bitrix\Main\EO_UserAccess_Collection fetchCollection()
     */
    class EO_UserAccess_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserAccess createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_UserAccess_Collection createCollection()
     * @method \Bitrix\Main\EO_UserAccess wakeUpObject($row)
     * @method \Bitrix\Main\EO_UserAccess_Collection wakeUpCollection($rows)
     */
    class EO_UserAccess_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserAuthAction
     * @see \Bitrix\Main\UserAuthActionTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\EO_UserAuthAction setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Main\EO_UserAuthAction setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Main\EO_UserAuthAction resetUserId()
     * @method \Bitrix\Main\EO_UserAuthAction unsetUserId()
     * @method \int fillUserId()
     * @method \int getPriority()
     * @method \Bitrix\Main\EO_UserAuthAction setPriority(\int|\Bitrix\Main\DB\SqlExpression $priority)
     * @method bool hasPriority()
     * @method bool isPriorityFilled()
     * @method bool isPriorityChanged()
     * @method \int remindActualPriority()
     * @method \int requirePriority()
     * @method \Bitrix\Main\EO_UserAuthAction resetPriority()
     * @method \Bitrix\Main\EO_UserAuthAction unsetPriority()
     * @method \int fillPriority()
     * @method \string getAction()
     * @method \Bitrix\Main\EO_UserAuthAction setAction(\string|\Bitrix\Main\DB\SqlExpression $action)
     * @method bool hasAction()
     * @method bool isActionFilled()
     * @method bool isActionChanged()
     * @method \string remindActualAction()
     * @method \string requireAction()
     * @method \Bitrix\Main\EO_UserAuthAction resetAction()
     * @method \Bitrix\Main\EO_UserAuthAction unsetAction()
     * @method \string fillAction()
     * @method \Bitrix\Main\Type\DateTime getActionDate()
     * @method \Bitrix\Main\EO_UserAuthAction setActionDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $actionDate)
     * @method bool hasActionDate()
     * @method bool isActionDateFilled()
     * @method bool isActionDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualActionDate()
     * @method \Bitrix\Main\Type\DateTime requireActionDate()
     * @method \Bitrix\Main\EO_UserAuthAction resetActionDate()
     * @method \Bitrix\Main\EO_UserAuthAction unsetActionDate()
     * @method \Bitrix\Main\Type\DateTime fillActionDate()
     * @method \string getApplicationId()
     * @method \Bitrix\Main\EO_UserAuthAction setApplicationId(\string|\Bitrix\Main\DB\SqlExpression $applicationId)
     * @method bool hasApplicationId()
     * @method bool isApplicationIdFilled()
     * @method bool isApplicationIdChanged()
     * @method \string remindActualApplicationId()
     * @method \string requireApplicationId()
     * @method \Bitrix\Main\EO_UserAuthAction resetApplicationId()
     * @method \Bitrix\Main\EO_UserAuthAction unsetApplicationId()
     * @method \string fillApplicationId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_UserAuthAction set($fieldName, $value)
     * @method \Bitrix\Main\EO_UserAuthAction reset($fieldName)
     * @method \Bitrix\Main\EO_UserAuthAction unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_UserAuthAction wakeUp($data)
     */
    class EO_UserAuthAction
    {
        /* @var \Bitrix\Main\UserAuthActionTable */
        public static $dataClass = '\\Bitrix\\Main\\UserAuthActionTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserAuthAction_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \int[] getPriorityList()
     * @method \int[] fillPriority()
     * @method \string[] getActionList()
     * @method \string[] fillAction()
     * @method \Bitrix\Main\Type\DateTime[] getActionDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillActionDate()
     * @method \string[] getApplicationIdList()
     * @method \string[] fillApplicationId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_UserAuthAction $object)
     * @method bool has(\Bitrix\Main\EO_UserAuthAction $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_UserAuthAction getByPrimary($primary)
     * @method \Bitrix\Main\EO_UserAuthAction[] getAll()
     * @method bool remove(\Bitrix\Main\EO_UserAuthAction $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_UserAuthAction_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_UserAuthAction current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserAuthAction_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserAuthActionTable */
        public static $dataClass = '\\Bitrix\\Main\\UserAuthActionTable';
    }
    /**
     * @method static EO_UserAuthAction_Query query()
     * @method static EO_UserAuthAction_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserAuthAction_Result getById($id)
     * @method static EO_UserAuthAction_Result getList(array $parameters = array())
     * @method static EO_UserAuthAction_Entity getEntity()
     * @method static \Bitrix\Main\EO_UserAuthAction createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_UserAuthAction_Collection createCollection()
     * @method static \Bitrix\Main\EO_UserAuthAction wakeUpObject($row)
     * @method static \Bitrix\Main\EO_UserAuthAction_Collection wakeUpCollection($rows)
     */
    class UserAuthActionTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserAuthAction_Result exec()
     * @method \Bitrix\Main\EO_UserAuthAction fetchObject()
     * @method \Bitrix\Main\EO_UserAuthAction_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserAuthAction_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserAuthAction fetchObject()
     * @method \Bitrix\Main\EO_UserAuthAction_Collection fetchCollection()
     */
    class EO_UserAuthAction_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserAuthAction createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_UserAuthAction_Collection createCollection()
     * @method \Bitrix\Main\EO_UserAuthAction wakeUpObject($row)
     * @method \Bitrix\Main\EO_UserAuthAction_Collection wakeUpCollection($rows)
     */
    class EO_UserAuthAction_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\UserConsent\Internals {
    /**
     * EO_Agreement
     * @see \Bitrix\Main\UserConsent\Internals\AgreementTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getCode()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement resetCode()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement unsetCode()
     * @method \string fillCode()
     * @method \Bitrix\Main\Type\DateTime getDateInsert()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement setDateInsert(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateInsert)
     * @method bool hasDateInsert()
     * @method bool isDateInsertFilled()
     * @method bool isDateInsertChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateInsert()
     * @method \Bitrix\Main\Type\DateTime requireDateInsert()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement resetDateInsert()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement unsetDateInsert()
     * @method \Bitrix\Main\Type\DateTime fillDateInsert()
     * @method \boolean getActive()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement resetActive()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement unsetActive()
     * @method \boolean fillActive()
     * @method \string getName()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement resetName()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement unsetName()
     * @method \string fillName()
     * @method \string getType()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement resetType()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement unsetType()
     * @method \string fillType()
     * @method \string getLanguageId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement setLanguageId(\string|\Bitrix\Main\DB\SqlExpression $languageId)
     * @method bool hasLanguageId()
     * @method bool isLanguageIdFilled()
     * @method bool isLanguageIdChanged()
     * @method \string remindActualLanguageId()
     * @method \string requireLanguageId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement resetLanguageId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement unsetLanguageId()
     * @method \string fillLanguageId()
     * @method \string getDataProvider()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement setDataProvider(\string|\Bitrix\Main\DB\SqlExpression $dataProvider)
     * @method bool hasDataProvider()
     * @method bool isDataProviderFilled()
     * @method bool isDataProviderChanged()
     * @method \string remindActualDataProvider()
     * @method \string requireDataProvider()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement resetDataProvider()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement unsetDataProvider()
     * @method \string fillDataProvider()
     * @method \string getAgreementText()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement setAgreementText(\string|\Bitrix\Main\DB\SqlExpression $agreementText)
     * @method bool hasAgreementText()
     * @method bool isAgreementTextFilled()
     * @method bool isAgreementTextChanged()
     * @method \string remindActualAgreementText()
     * @method \string requireAgreementText()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement resetAgreementText()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement unsetAgreementText()
     * @method \string fillAgreementText()
     * @method \string getLabelText()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement setLabelText(\string|\Bitrix\Main\DB\SqlExpression $labelText)
     * @method bool hasLabelText()
     * @method bool isLabelTextFilled()
     * @method bool isLabelTextChanged()
     * @method \string remindActualLabelText()
     * @method \string requireLabelText()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement resetLabelText()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement unsetLabelText()
     * @method \string fillLabelText()
     * @method \string getSecurityCode()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement setSecurityCode(\string|\Bitrix\Main\DB\SqlExpression $securityCode)
     * @method bool hasSecurityCode()
     * @method bool isSecurityCodeFilled()
     * @method bool isSecurityCodeChanged()
     * @method \string remindActualSecurityCode()
     * @method \string requireSecurityCode()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement resetSecurityCode()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement unsetSecurityCode()
     * @method \string fillSecurityCode()
     * @method \boolean getUseUrl()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement setUseUrl(\boolean|\Bitrix\Main\DB\SqlExpression $useUrl)
     * @method bool hasUseUrl()
     * @method bool isUseUrlFilled()
     * @method bool isUseUrlChanged()
     * @method \boolean remindActualUseUrl()
     * @method \boolean requireUseUrl()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement resetUseUrl()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement unsetUseUrl()
     * @method \boolean fillUseUrl()
     * @method \string getUrl()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement setUrl(\string|\Bitrix\Main\DB\SqlExpression $url)
     * @method bool hasUrl()
     * @method bool isUrlFilled()
     * @method bool isUrlChanged()
     * @method \string remindActualUrl()
     * @method \string requireUrl()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement resetUrl()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement unsetUrl()
     * @method \string fillUrl()
     * @method \boolean getIsAgreementTextHtml()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement setIsAgreementTextHtml(\boolean|\Bitrix\Main\DB\SqlExpression $isAgreementTextHtml)
     * @method bool hasIsAgreementTextHtml()
     * @method bool isIsAgreementTextHtmlFilled()
     * @method bool isIsAgreementTextHtmlChanged()
     * @method \boolean remindActualIsAgreementTextHtml()
     * @method \boolean requireIsAgreementTextHtml()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement resetIsAgreementTextHtml()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement unsetIsAgreementTextHtml()
     * @method \boolean fillIsAgreementTextHtml()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement set($fieldName, $value)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement reset($fieldName)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Agreement wakeUp($data)
     */
    class EO_Agreement
    {
        /* @var \Bitrix\Main\UserConsent\Internals\AgreementTable */
        public static $dataClass = '\\Bitrix\\Main\\UserConsent\\Internals\\AgreementTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Agreement_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \Bitrix\Main\Type\DateTime[] getDateInsertList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateInsert()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \string[] getLanguageIdList()
     * @method \string[] fillLanguageId()
     * @method \string[] getDataProviderList()
     * @method \string[] fillDataProvider()
     * @method \string[] getAgreementTextList()
     * @method \string[] fillAgreementText()
     * @method \string[] getLabelTextList()
     * @method \string[] fillLabelText()
     * @method \string[] getSecurityCodeList()
     * @method \string[] fillSecurityCode()
     * @method \boolean[] getUseUrlList()
     * @method \boolean[] fillUseUrl()
     * @method \string[] getUrlList()
     * @method \string[] fillUrl()
     * @method \boolean[] getIsAgreementTextHtmlList()
     * @method \boolean[] fillIsAgreementTextHtml()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\UserConsent\Internals\EO_Agreement $object)
     * @method bool has(\Bitrix\Main\UserConsent\Internals\EO_Agreement $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement getByPrimary($primary)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement[] getAll()
     * @method bool remove(\Bitrix\Main\UserConsent\Internals\EO_Agreement $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Agreement_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Agreement_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserConsent\Internals\AgreementTable */
        public static $dataClass = '\\Bitrix\\Main\\UserConsent\\Internals\\AgreementTable';
    }
    /**
     * @method static EO_Agreement_Query query()
     * @method static EO_Agreement_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Agreement_Result getById($id)
     * @method static EO_Agreement_Result getList(array $parameters = array())
     * @method static EO_Agreement_Entity getEntity()
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Agreement createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Agreement_Collection createCollection()
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Agreement wakeUpObject($row)
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Agreement_Collection wakeUpCollection($rows)
     */
    class AgreementTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Agreement_Result exec()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement fetchObject()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Agreement_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement fetchObject()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement_Collection fetchCollection()
     */
    class EO_Agreement_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement createObject($setDefaultValues = true)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement_Collection createCollection()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement wakeUpObject($row)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Agreement_Collection wakeUpCollection($rows)
     */
    class EO_Agreement_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Consent
     * @see \Bitrix\Main\UserConsent\Internals\ConsentTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \Bitrix\Main\Type\DateTime getDateInsert()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent setDateInsert(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateInsert)
     * @method bool hasDateInsert()
     * @method bool isDateInsertFilled()
     * @method bool isDateInsertChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateInsert()
     * @method \Bitrix\Main\Type\DateTime requireDateInsert()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent resetDateInsert()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent unsetDateInsert()
     * @method \Bitrix\Main\Type\DateTime fillDateInsert()
     * @method \int getAgreementId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent setAgreementId(\int|\Bitrix\Main\DB\SqlExpression $agreementId)
     * @method bool hasAgreementId()
     * @method bool isAgreementIdFilled()
     * @method bool isAgreementIdChanged()
     * @method \int remindActualAgreementId()
     * @method \int requireAgreementId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent resetAgreementId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent unsetAgreementId()
     * @method \int fillAgreementId()
     * @method \int getUserId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent resetUserId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent unsetUserId()
     * @method \int fillUserId()
     * @method \string getIp()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent setIp(\string|\Bitrix\Main\DB\SqlExpression $ip)
     * @method bool hasIp()
     * @method bool isIpFilled()
     * @method bool isIpChanged()
     * @method \string remindActualIp()
     * @method \string requireIp()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent resetIp()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent unsetIp()
     * @method \string fillIp()
     * @method \string getUrl()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent setUrl(\string|\Bitrix\Main\DB\SqlExpression $url)
     * @method bool hasUrl()
     * @method bool isUrlFilled()
     * @method bool isUrlChanged()
     * @method \string remindActualUrl()
     * @method \string requireUrl()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent resetUrl()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent unsetUrl()
     * @method \string fillUrl()
     * @method \string getOriginId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent setOriginId(\string|\Bitrix\Main\DB\SqlExpression $originId)
     * @method bool hasOriginId()
     * @method bool isOriginIdFilled()
     * @method bool isOriginIdChanged()
     * @method \string remindActualOriginId()
     * @method \string requireOriginId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent resetOriginId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent unsetOriginId()
     * @method \string fillOriginId()
     * @method \string getOriginatorId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent setOriginatorId(\string|\Bitrix\Main\DB\SqlExpression $originatorId)
     * @method bool hasOriginatorId()
     * @method bool isOriginatorIdFilled()
     * @method bool isOriginatorIdChanged()
     * @method \string remindActualOriginatorId()
     * @method \string requireOriginatorId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent resetOriginatorId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent unsetOriginatorId()
     * @method \string fillOriginatorId()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent resetUser()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem_Collection getItems()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem_Collection requireItems()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem_Collection fillItems()
     * @method bool hasItems()
     * @method bool isItemsFilled()
     * @method bool isItemsChanged()
     * @method void addToItems(\Bitrix\Main\UserConsent\Internals\EO_UserConsentItem $userConsentItem)
     * @method void removeFromItems(\Bitrix\Main\UserConsent\Internals\EO_UserConsentItem $userConsentItem)
     * @method void removeAllItems()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent resetItems()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent unsetItems()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent set($fieldName, $value)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent reset($fieldName)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Consent wakeUp($data)
     */
    class EO_Consent
    {
        /* @var \Bitrix\Main\UserConsent\Internals\ConsentTable */
        public static $dataClass = '\\Bitrix\\Main\\UserConsent\\Internals\\ConsentTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Consent_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \Bitrix\Main\Type\DateTime[] getDateInsertList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateInsert()
     * @method \int[] getAgreementIdList()
     * @method \int[] fillAgreementId()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \string[] getIpList()
     * @method \string[] fillIp()
     * @method \string[] getUrlList()
     * @method \string[] fillUrl()
     * @method \string[] getOriginIdList()
     * @method \string[] fillOriginId()
     * @method \string[] getOriginatorIdList()
     * @method \string[] fillOriginatorId()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem_Collection[] getItemsList()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem_Collection getItemsCollection()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem_Collection fillItems()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\UserConsent\Internals\EO_Consent $object)
     * @method bool has(\Bitrix\Main\UserConsent\Internals\EO_Consent $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent getByPrimary($primary)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent[] getAll()
     * @method bool remove(\Bitrix\Main\UserConsent\Internals\EO_Consent $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Consent_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Consent_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserConsent\Internals\ConsentTable */
        public static $dataClass = '\\Bitrix\\Main\\UserConsent\\Internals\\ConsentTable';
    }
    /**
     * @method static EO_Consent_Query query()
     * @method static EO_Consent_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Consent_Result getById($id)
     * @method static EO_Consent_Result getList(array $parameters = array())
     * @method static EO_Consent_Entity getEntity()
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Consent createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Consent_Collection createCollection()
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Consent wakeUpObject($row)
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Consent_Collection wakeUpCollection($rows)
     */
    class ConsentTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Consent_Result exec()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent fetchObject()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Consent_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent fetchObject()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent_Collection fetchCollection()
     */
    class EO_Consent_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent createObject($setDefaultValues = true)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent_Collection createCollection()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent wakeUpObject($row)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent_Collection wakeUpCollection($rows)
     */
    class EO_Consent_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Field
     * @see \Bitrix\Main\UserConsent\Internals\FieldTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getAgreementId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field setAgreementId(\int|\Bitrix\Main\DB\SqlExpression $agreementId)
     * @method bool hasAgreementId()
     * @method bool isAgreementIdFilled()
     * @method bool isAgreementIdChanged()
     * @method \int remindActualAgreementId()
     * @method \int requireAgreementId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field resetAgreementId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field unsetAgreementId()
     * @method \int fillAgreementId()
     * @method \string getCode()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field resetCode()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field unsetCode()
     * @method \string fillCode()
     * @method \string getValue()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field setValue(\string|\Bitrix\Main\DB\SqlExpression $value)
     * @method bool hasValue()
     * @method bool isValueFilled()
     * @method bool isValueChanged()
     * @method \string remindActualValue()
     * @method \string requireValue()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field resetValue()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field unsetValue()
     * @method \string fillValue()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field set($fieldName, $value)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field reset($fieldName)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Field wakeUp($data)
     */
    class EO_Field
    {
        /* @var \Bitrix\Main\UserConsent\Internals\FieldTable */
        public static $dataClass = '\\Bitrix\\Main\\UserConsent\\Internals\\FieldTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Field_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getAgreementIdList()
     * @method \int[] fillAgreementId()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \string[] getValueList()
     * @method \string[] fillValue()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\UserConsent\Internals\EO_Field $object)
     * @method bool has(\Bitrix\Main\UserConsent\Internals\EO_Field $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field getByPrimary($primary)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field[] getAll()
     * @method bool remove(\Bitrix\Main\UserConsent\Internals\EO_Field $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Field_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Field_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserConsent\Internals\FieldTable */
        public static $dataClass = '\\Bitrix\\Main\\UserConsent\\Internals\\FieldTable';
    }
    /**
     * @method static EO_Field_Query query()
     * @method static EO_Field_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Field_Result getById($id)
     * @method static EO_Field_Result getList(array $parameters = array())
     * @method static EO_Field_Entity getEntity()
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Field createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Field_Collection createCollection()
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Field wakeUpObject($row)
     * @method static \Bitrix\Main\UserConsent\Internals\EO_Field_Collection wakeUpCollection($rows)
     */
    class FieldTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Field_Result exec()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field fetchObject()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Field_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field fetchObject()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field_Collection fetchCollection()
     */
    class EO_Field_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field createObject($setDefaultValues = true)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field_Collection createCollection()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field wakeUpObject($row)
     * @method \Bitrix\Main\UserConsent\Internals\EO_Field_Collection wakeUpCollection($rows)
     */
    class EO_Field_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserConsentItem
     * @see \Bitrix\Main\UserConsent\Internals\UserConsentItemTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getUserConsentId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem setUserConsentId(\int|\Bitrix\Main\DB\SqlExpression $userConsentId)
     * @method bool hasUserConsentId()
     * @method bool isUserConsentIdFilled()
     * @method bool isUserConsentIdChanged()
     * @method \int remindActualUserConsentId()
     * @method \int requireUserConsentId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem resetUserConsentId()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem unsetUserConsentId()
     * @method \int fillUserConsentId()
     * @method \string getValue()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem setValue(\string|\Bitrix\Main\DB\SqlExpression $value)
     * @method bool hasValue()
     * @method bool isValueFilled()
     * @method bool isValueChanged()
     * @method \string remindActualValue()
     * @method \string requireValue()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem resetValue()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem unsetValue()
     * @method \string fillValue()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent getUserConsent()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent remindActualUserConsent()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent requireUserConsent()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem setUserConsent(\Bitrix\Main\UserConsent\Internals\EO_Consent $object)
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem resetUserConsent()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem unsetUserConsent()
     * @method bool hasUserConsent()
     * @method bool isUserConsentFilled()
     * @method bool isUserConsentChanged()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent fillUserConsent()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem set($fieldName, $value)
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem reset($fieldName)
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem wakeUp($data)
     */
    class EO_UserConsentItem
    {
        /* @var \Bitrix\Main\UserConsent\Internals\UserConsentItemTable */
        public static $dataClass = '\\Bitrix\\Main\\UserConsent\\Internals\\UserConsentItemTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserConsentItem_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getUserConsentIdList()
     * @method \int[] fillUserConsentId()
     * @method \string[] getValueList()
     * @method \string[] fillValue()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent[] getUserConsentList()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem_Collection getUserConsentCollection()
     * @method \Bitrix\Main\UserConsent\Internals\EO_Consent_Collection fillUserConsent()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\UserConsent\Internals\EO_UserConsentItem $object)
     * @method bool has(\Bitrix\Main\UserConsent\Internals\EO_UserConsentItem $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem getByPrimary($primary)
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem[] getAll()
     * @method bool remove(\Bitrix\Main\UserConsent\Internals\EO_UserConsentItem $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserConsentItem_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserConsent\Internals\UserConsentItemTable */
        public static $dataClass = '\\Bitrix\\Main\\UserConsent\\Internals\\UserConsentItemTable';
    }
    /**
     * @method static EO_UserConsentItem_Query query()
     * @method static EO_UserConsentItem_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserConsentItem_Result getById($id)
     * @method static EO_UserConsentItem_Result getList(array $parameters = array())
     * @method static EO_UserConsentItem_Entity getEntity()
     * @method static \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem_Collection createCollection()
     * @method static \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem wakeUpObject($row)
     * @method static \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem_Collection wakeUpCollection($rows)
     */
    class UserConsentItemTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserConsentItem_Result exec()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem fetchObject()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserConsentItem_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem fetchObject()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem_Collection fetchCollection()
     */
    class EO_UserConsentItem_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem createObject($setDefaultValues = true)
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem_Collection createCollection()
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem wakeUpObject($row)
     * @method \Bitrix\Main\UserConsent\Internals\EO_UserConsentItem_Collection wakeUpCollection($rows)
     */
    class EO_UserConsentItem_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main {
    /**
     * EO_UserCounter
     * @see \Bitrix\Main\UserCounterTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Main\EO_UserCounter setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \string getSiteId()
     * @method \Bitrix\Main\EO_UserCounter setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string getCode()
     * @method \Bitrix\Main\EO_UserCounter setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string getTag()
     * @method \Bitrix\Main\EO_UserCounter setTag(\string|\Bitrix\Main\DB\SqlExpression $tag)
     * @method bool hasTag()
     * @method bool isTagFilled()
     * @method bool isTagChanged()
     * @method \string remindActualTag()
     * @method \string requireTag()
     * @method \Bitrix\Main\EO_UserCounter resetTag()
     * @method \Bitrix\Main\EO_UserCounter unsetTag()
     * @method \string fillTag()
     * @method \string getParams()
     * @method \Bitrix\Main\EO_UserCounter setParams(\string|\Bitrix\Main\DB\SqlExpression $params)
     * @method bool hasParams()
     * @method bool isParamsFilled()
     * @method bool isParamsChanged()
     * @method \string remindActualParams()
     * @method \string requireParams()
     * @method \Bitrix\Main\EO_UserCounter resetParams()
     * @method \Bitrix\Main\EO_UserCounter unsetParams()
     * @method \string fillParams()
     * @method \string getSent()
     * @method \Bitrix\Main\EO_UserCounter setSent(\string|\Bitrix\Main\DB\SqlExpression $sent)
     * @method bool hasSent()
     * @method bool isSentFilled()
     * @method bool isSentChanged()
     * @method \string remindActualSent()
     * @method \string requireSent()
     * @method \Bitrix\Main\EO_UserCounter resetSent()
     * @method \Bitrix\Main\EO_UserCounter unsetSent()
     * @method \string fillSent()
     * @method \int getCnt()
     * @method \Bitrix\Main\EO_UserCounter setCnt(\int|\Bitrix\Main\DB\SqlExpression $cnt)
     * @method bool hasCnt()
     * @method bool isCntFilled()
     * @method bool isCntChanged()
     * @method \int remindActualCnt()
     * @method \int requireCnt()
     * @method \Bitrix\Main\EO_UserCounter resetCnt()
     * @method \Bitrix\Main\EO_UserCounter unsetCnt()
     * @method \int fillCnt()
     * @method \Bitrix\Main\Type\DateTime getLastDate()
     * @method \Bitrix\Main\EO_UserCounter setLastDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $lastDate)
     * @method bool hasLastDate()
     * @method bool isLastDateFilled()
     * @method bool isLastDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLastDate()
     * @method \Bitrix\Main\Type\DateTime requireLastDate()
     * @method \Bitrix\Main\EO_UserCounter resetLastDate()
     * @method \Bitrix\Main\EO_UserCounter unsetLastDate()
     * @method \Bitrix\Main\Type\DateTime fillLastDate()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Main\EO_UserCounter setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Main\EO_UserCounter resetTimestampX()
     * @method \Bitrix\Main\EO_UserCounter unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Main\EO_UserCounter setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Main\EO_UserCounter resetUser()
     * @method \Bitrix\Main\EO_UserCounter unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_UserCounter set($fieldName, $value)
     * @method \Bitrix\Main\EO_UserCounter reset($fieldName)
     * @method \Bitrix\Main\EO_UserCounter unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_UserCounter wakeUp($data)
     */
    class EO_UserCounter
    {
        /* @var \Bitrix\Main\UserCounterTable */
        public static $dataClass = '\\Bitrix\\Main\\UserCounterTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserCounter_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \string[] getSiteIdList()
     * @method \string[] getCodeList()
     * @method \string[] getTagList()
     * @method \string[] fillTag()
     * @method \string[] getParamsList()
     * @method \string[] fillParams()
     * @method \string[] getSentList()
     * @method \string[] fillSent()
     * @method \int[] getCntList()
     * @method \int[] fillCnt()
     * @method \Bitrix\Main\Type\DateTime[] getLastDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillLastDate()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Main\EO_UserCounter_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_UserCounter $object)
     * @method bool has(\Bitrix\Main\EO_UserCounter $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_UserCounter getByPrimary($primary)
     * @method \Bitrix\Main\EO_UserCounter[] getAll()
     * @method bool remove(\Bitrix\Main\EO_UserCounter $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_UserCounter_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_UserCounter current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserCounter_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserCounterTable */
        public static $dataClass = '\\Bitrix\\Main\\UserCounterTable';
    }
    /**
     * @method static EO_UserCounter_Query query()
     * @method static EO_UserCounter_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserCounter_Result getById($id)
     * @method static EO_UserCounter_Result getList(array $parameters = array())
     * @method static EO_UserCounter_Entity getEntity()
     * @method static \Bitrix\Main\EO_UserCounter createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_UserCounter_Collection createCollection()
     * @method static \Bitrix\Main\EO_UserCounter wakeUpObject($row)
     * @method static \Bitrix\Main\EO_UserCounter_Collection wakeUpCollection($rows)
     */
    class UserCounterTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserCounter_Result exec()
     * @method \Bitrix\Main\EO_UserCounter fetchObject()
     * @method \Bitrix\Main\EO_UserCounter_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserCounter_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserCounter fetchObject()
     * @method \Bitrix\Main\EO_UserCounter_Collection fetchCollection()
     */
    class EO_UserCounter_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserCounter createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_UserCounter_Collection createCollection()
     * @method \Bitrix\Main\EO_UserCounter wakeUpObject($row)
     * @method \Bitrix\Main\EO_UserCounter_Collection wakeUpCollection($rows)
     */
    class EO_UserCounter_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main\UserField\Access\Permission {
    /**
     * UserFieldPermission
     * @see \Bitrix\Main\UserField\Access\Permission\UserFieldPermissionTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getEntityTypeId()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission setEntityTypeId(\int|\Bitrix\Main\DB\SqlExpression $entityTypeId)
     * @method bool hasEntityTypeId()
     * @method bool isEntityTypeIdFilled()
     * @method bool isEntityTypeIdChanged()
     * @method \int remindActualEntityTypeId()
     * @method \int requireEntityTypeId()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission resetEntityTypeId()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission unsetEntityTypeId()
     * @method \int fillEntityTypeId()
     * @method \int getUserFieldId()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission setUserFieldId(\int|\Bitrix\Main\DB\SqlExpression $userFieldId)
     * @method bool hasUserFieldId()
     * @method bool isUserFieldIdFilled()
     * @method bool isUserFieldIdChanged()
     * @method \int remindActualUserFieldId()
     * @method \int requireUserFieldId()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission resetUserFieldId()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission unsetUserFieldId()
     * @method \int fillUserFieldId()
     * @method \string getAccessCode()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission setAccessCode(\string|\Bitrix\Main\DB\SqlExpression $accessCode)
     * @method bool hasAccessCode()
     * @method bool isAccessCodeFilled()
     * @method bool isAccessCodeChanged()
     * @method \string remindActualAccessCode()
     * @method \string requireAccessCode()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission resetAccessCode()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission unsetAccessCode()
     * @method \string fillAccessCode()
     * @method \string getPermissionId()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission setPermissionId(\string|\Bitrix\Main\DB\SqlExpression $permissionId)
     * @method bool hasPermissionId()
     * @method bool isPermissionIdFilled()
     * @method bool isPermissionIdChanged()
     * @method \string remindActualPermissionId()
     * @method \string requirePermissionId()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission resetPermissionId()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission unsetPermissionId()
     * @method \string fillPermissionId()
     * @method \int getValue()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission setValue(\int|\Bitrix\Main\DB\SqlExpression $value)
     * @method bool hasValue()
     * @method bool isValueFilled()
     * @method bool isValueChanged()
     * @method \int remindActualValue()
     * @method \int requireValue()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission resetValue()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission unsetValue()
     * @method \int fillValue()
     * @method \Bitrix\Main\EO_UserField getUserField()
     * @method \Bitrix\Main\EO_UserField remindActualUserField()
     * @method \Bitrix\Main\EO_UserField requireUserField()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission setUserField(\Bitrix\Main\EO_UserField $object)
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission resetUserField()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission unsetUserField()
     * @method bool hasUserField()
     * @method bool isUserFieldFilled()
     * @method bool isUserFieldChanged()
     * @method \Bitrix\Main\EO_UserField fillUserField()
     * @method \Bitrix\Main\EO_UserAccess getUserAccess()
     * @method \Bitrix\Main\EO_UserAccess remindActualUserAccess()
     * @method \Bitrix\Main\EO_UserAccess requireUserAccess()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission setUserAccess(\Bitrix\Main\EO_UserAccess $object)
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission resetUserAccess()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission unsetUserAccess()
     * @method bool hasUserAccess()
     * @method bool isUserAccessFilled()
     * @method bool isUserAccessChanged()
     * @method \Bitrix\Main\EO_UserAccess fillUserAccess()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission set($fieldName, $value)
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission reset($fieldName)
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\UserField\Access\Permission\UserFieldPermission wakeUp($data)
     */
    class EO_UserFieldPermission
    {
        /* @var \Bitrix\Main\UserField\Access\Permission\UserFieldPermissionTable */
        public static $dataClass = '\\Bitrix\\Main\\UserField\\Access\\Permission\\UserFieldPermissionTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserFieldPermission_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getEntityTypeIdList()
     * @method \int[] fillEntityTypeId()
     * @method \int[] getUserFieldIdList()
     * @method \int[] fillUserFieldId()
     * @method \string[] getAccessCodeList()
     * @method \string[] fillAccessCode()
     * @method \string[] getPermissionIdList()
     * @method \string[] fillPermissionId()
     * @method \int[] getValueList()
     * @method \int[] fillValue()
     * @method \Bitrix\Main\EO_UserField[] getUserFieldList()
     * @method \Bitrix\Main\UserField\Access\Permission\EO_UserFieldPermission_Collection getUserFieldCollection()
     * @method \Bitrix\Main\EO_UserField_Collection fillUserField()
     * @method \Bitrix\Main\EO_UserAccess[] getUserAccessList()
     * @method \Bitrix\Main\UserField\Access\Permission\EO_UserFieldPermission_Collection getUserAccessCollection()
     * @method \Bitrix\Main\EO_UserAccess_Collection fillUserAccess()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\UserField\Access\Permission\UserFieldPermission $object)
     * @method bool has(\Bitrix\Main\UserField\Access\Permission\UserFieldPermission $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission getByPrimary($primary)
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission[] getAll()
     * @method bool remove(\Bitrix\Main\UserField\Access\Permission\UserFieldPermission $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\UserField\Access\Permission\EO_UserFieldPermission_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserFieldPermission_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserField\Access\Permission\UserFieldPermissionTable */
        public static $dataClass = '\\Bitrix\\Main\\UserField\\Access\\Permission\\UserFieldPermissionTable';
    }
    /**
     * @method static EO_UserFieldPermission_Query query()
     * @method static EO_UserFieldPermission_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserFieldPermission_Result getById($id)
     * @method static EO_UserFieldPermission_Result getList(array $parameters = array())
     * @method static EO_UserFieldPermission_Entity getEntity()
     * @method static \Bitrix\Main\UserField\Access\Permission\UserFieldPermission createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\UserField\Access\Permission\EO_UserFieldPermission_Collection createCollection()
     * @method static \Bitrix\Main\UserField\Access\Permission\UserFieldPermission wakeUpObject($row)
     * @method static \Bitrix\Main\UserField\Access\Permission\EO_UserFieldPermission_Collection wakeUpCollection($rows)
     */
    class UserFieldPermissionTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserFieldPermission_Result exec()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission fetchObject()
     * @method \Bitrix\Main\UserField\Access\Permission\EO_UserFieldPermission_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserFieldPermission_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission fetchObject()
     * @method \Bitrix\Main\UserField\Access\Permission\EO_UserFieldPermission_Collection fetchCollection()
     */
    class EO_UserFieldPermission_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission createObject($setDefaultValues = true)
     * @method \Bitrix\Main\UserField\Access\Permission\EO_UserFieldPermission_Collection createCollection()
     * @method \Bitrix\Main\UserField\Access\Permission\UserFieldPermission wakeUpObject($row)
     * @method \Bitrix\Main\UserField\Access\Permission\EO_UserFieldPermission_Collection wakeUpCollection($rows)
     */
    class EO_UserFieldPermission_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Main {
    /**
     * EO_UserField
     * @see \Bitrix\Main\UserFieldTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\EO_UserField setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getEntityId()
     * @method \Bitrix\Main\EO_UserField setEntityId(\string|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \string remindActualEntityId()
     * @method \string requireEntityId()
     * @method \Bitrix\Main\EO_UserField resetEntityId()
     * @method \Bitrix\Main\EO_UserField unsetEntityId()
     * @method \string fillEntityId()
     * @method \string getFieldName()
     * @method \Bitrix\Main\EO_UserField setFieldName(\string|\Bitrix\Main\DB\SqlExpression $fieldName)
     * @method bool hasFieldName()
     * @method bool isFieldNameFilled()
     * @method bool isFieldNameChanged()
     * @method \string remindActualFieldName()
     * @method \string requireFieldName()
     * @method \Bitrix\Main\EO_UserField resetFieldName()
     * @method \Bitrix\Main\EO_UserField unsetFieldName()
     * @method \string fillFieldName()
     * @method \string getUserTypeId()
     * @method \Bitrix\Main\EO_UserField setUserTypeId(\string|\Bitrix\Main\DB\SqlExpression $userTypeId)
     * @method bool hasUserTypeId()
     * @method bool isUserTypeIdFilled()
     * @method bool isUserTypeIdChanged()
     * @method \string remindActualUserTypeId()
     * @method \string requireUserTypeId()
     * @method \Bitrix\Main\EO_UserField resetUserTypeId()
     * @method \Bitrix\Main\EO_UserField unsetUserTypeId()
     * @method \string fillUserTypeId()
     * @method \string getXmlId()
     * @method \Bitrix\Main\EO_UserField setXmlId(\string|\Bitrix\Main\DB\SqlExpression $xmlId)
     * @method bool hasXmlId()
     * @method bool isXmlIdFilled()
     * @method bool isXmlIdChanged()
     * @method \string remindActualXmlId()
     * @method \string requireXmlId()
     * @method \Bitrix\Main\EO_UserField resetXmlId()
     * @method \Bitrix\Main\EO_UserField unsetXmlId()
     * @method \string fillXmlId()
     * @method \int getSort()
     * @method \Bitrix\Main\EO_UserField setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Main\EO_UserField resetSort()
     * @method \Bitrix\Main\EO_UserField unsetSort()
     * @method \int fillSort()
     * @method \boolean getMultiple()
     * @method \Bitrix\Main\EO_UserField setMultiple(\boolean|\Bitrix\Main\DB\SqlExpression $multiple)
     * @method bool hasMultiple()
     * @method bool isMultipleFilled()
     * @method bool isMultipleChanged()
     * @method \boolean remindActualMultiple()
     * @method \boolean requireMultiple()
     * @method \Bitrix\Main\EO_UserField resetMultiple()
     * @method \Bitrix\Main\EO_UserField unsetMultiple()
     * @method \boolean fillMultiple()
     * @method \boolean getMandatory()
     * @method \Bitrix\Main\EO_UserField setMandatory(\boolean|\Bitrix\Main\DB\SqlExpression $mandatory)
     * @method bool hasMandatory()
     * @method bool isMandatoryFilled()
     * @method bool isMandatoryChanged()
     * @method \boolean remindActualMandatory()
     * @method \boolean requireMandatory()
     * @method \Bitrix\Main\EO_UserField resetMandatory()
     * @method \Bitrix\Main\EO_UserField unsetMandatory()
     * @method \boolean fillMandatory()
     * @method \boolean getShowFilter()
     * @method \Bitrix\Main\EO_UserField setShowFilter(\boolean|\Bitrix\Main\DB\SqlExpression $showFilter)
     * @method bool hasShowFilter()
     * @method bool isShowFilterFilled()
     * @method bool isShowFilterChanged()
     * @method \boolean remindActualShowFilter()
     * @method \boolean requireShowFilter()
     * @method \Bitrix\Main\EO_UserField resetShowFilter()
     * @method \Bitrix\Main\EO_UserField unsetShowFilter()
     * @method \boolean fillShowFilter()
     * @method \boolean getShowInList()
     * @method \Bitrix\Main\EO_UserField setShowInList(\boolean|\Bitrix\Main\DB\SqlExpression $showInList)
     * @method bool hasShowInList()
     * @method bool isShowInListFilled()
     * @method bool isShowInListChanged()
     * @method \boolean remindActualShowInList()
     * @method \boolean requireShowInList()
     * @method \Bitrix\Main\EO_UserField resetShowInList()
     * @method \Bitrix\Main\EO_UserField unsetShowInList()
     * @method \boolean fillShowInList()
     * @method \boolean getEditInList()
     * @method \Bitrix\Main\EO_UserField setEditInList(\boolean|\Bitrix\Main\DB\SqlExpression $editInList)
     * @method bool hasEditInList()
     * @method bool isEditInListFilled()
     * @method bool isEditInListChanged()
     * @method \boolean remindActualEditInList()
     * @method \boolean requireEditInList()
     * @method \Bitrix\Main\EO_UserField resetEditInList()
     * @method \Bitrix\Main\EO_UserField unsetEditInList()
     * @method \boolean fillEditInList()
     * @method \boolean getIsSearchable()
     * @method \Bitrix\Main\EO_UserField setIsSearchable(\boolean|\Bitrix\Main\DB\SqlExpression $isSearchable)
     * @method bool hasIsSearchable()
     * @method bool isIsSearchableFilled()
     * @method bool isIsSearchableChanged()
     * @method \boolean remindActualIsSearchable()
     * @method \boolean requireIsSearchable()
     * @method \Bitrix\Main\EO_UserField resetIsSearchable()
     * @method \Bitrix\Main\EO_UserField unsetIsSearchable()
     * @method \boolean fillIsSearchable()
     * @method \string getSettings()
     * @method \Bitrix\Main\EO_UserField setSettings(\string|\Bitrix\Main\DB\SqlExpression $settings)
     * @method bool hasSettings()
     * @method bool isSettingsFilled()
     * @method bool isSettingsChanged()
     * @method \string remindActualSettings()
     * @method \string requireSettings()
     * @method \Bitrix\Main\EO_UserField resetSettings()
     * @method \Bitrix\Main\EO_UserField unsetSettings()
     * @method \string fillSettings()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_UserField set($fieldName, $value)
     * @method \Bitrix\Main\EO_UserField reset($fieldName)
     * @method \Bitrix\Main\EO_UserField unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_UserField wakeUp($data)
     */
    class EO_UserField
    {
        /* @var \Bitrix\Main\UserFieldTable */
        public static $dataClass = '\\Bitrix\\Main\\UserFieldTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserField_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getEntityIdList()
     * @method \string[] fillEntityId()
     * @method \string[] getFieldNameList()
     * @method \string[] fillFieldName()
     * @method \string[] getUserTypeIdList()
     * @method \string[] fillUserTypeId()
     * @method \string[] getXmlIdList()
     * @method \string[] fillXmlId()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \boolean[] getMultipleList()
     * @method \boolean[] fillMultiple()
     * @method \boolean[] getMandatoryList()
     * @method \boolean[] fillMandatory()
     * @method \boolean[] getShowFilterList()
     * @method \boolean[] fillShowFilter()
     * @method \boolean[] getShowInListList()
     * @method \boolean[] fillShowInList()
     * @method \boolean[] getEditInListList()
     * @method \boolean[] fillEditInList()
     * @method \boolean[] getIsSearchableList()
     * @method \boolean[] fillIsSearchable()
     * @method \string[] getSettingsList()
     * @method \string[] fillSettings()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_UserField $object)
     * @method bool has(\Bitrix\Main\EO_UserField $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_UserField getByPrimary($primary)
     * @method \Bitrix\Main\EO_UserField[] getAll()
     * @method bool remove(\Bitrix\Main\EO_UserField $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_UserField_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_UserField current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserField_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserFieldTable */
        public static $dataClass = '\\Bitrix\\Main\\UserFieldTable';
    }
    /**
     * @method static EO_UserField_Query query()
     * @method static EO_UserField_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserField_Result getById($id)
     * @method static EO_UserField_Result getList(array $parameters = array())
     * @method static EO_UserField_Entity getEntity()
     * @method static \Bitrix\Main\EO_UserField createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_UserField_Collection createCollection()
     * @method static \Bitrix\Main\EO_UserField wakeUpObject($row)
     * @method static \Bitrix\Main\EO_UserField_Collection wakeUpCollection($rows)
     */
    class UserFieldTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserField_Result exec()
     * @method \Bitrix\Main\EO_UserField fetchObject()
     * @method \Bitrix\Main\EO_UserField_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserField_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserField fetchObject()
     * @method \Bitrix\Main\EO_UserField_Collection fetchCollection()
     */
    class EO_UserField_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserField createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_UserField_Collection createCollection()
     * @method \Bitrix\Main\EO_UserField wakeUpObject($row)
     * @method \Bitrix\Main\EO_UserField_Collection wakeUpCollection($rows)
     */
    class EO_UserField_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserFieldConfirm
     * @see \Bitrix\Main\UserFieldConfirmTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\EO_UserFieldConfirm setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Main\EO_UserFieldConfirm setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Main\EO_UserFieldConfirm resetUserId()
     * @method \Bitrix\Main\EO_UserFieldConfirm unsetUserId()
     * @method \int fillUserId()
     * @method \Bitrix\Main\Type\DateTime getDateChange()
     * @method \Bitrix\Main\EO_UserFieldConfirm setDateChange(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateChange)
     * @method bool hasDateChange()
     * @method bool isDateChangeFilled()
     * @method bool isDateChangeChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateChange()
     * @method \Bitrix\Main\Type\DateTime requireDateChange()
     * @method \Bitrix\Main\EO_UserFieldConfirm resetDateChange()
     * @method \Bitrix\Main\EO_UserFieldConfirm unsetDateChange()
     * @method \Bitrix\Main\Type\DateTime fillDateChange()
     * @method \string getField()
     * @method \Bitrix\Main\EO_UserFieldConfirm setField(\string|\Bitrix\Main\DB\SqlExpression $field)
     * @method bool hasField()
     * @method bool isFieldFilled()
     * @method bool isFieldChanged()
     * @method \string remindActualField()
     * @method \string requireField()
     * @method \Bitrix\Main\EO_UserFieldConfirm resetField()
     * @method \Bitrix\Main\EO_UserFieldConfirm unsetField()
     * @method \string fillField()
     * @method \string getFieldValue()
     * @method \Bitrix\Main\EO_UserFieldConfirm setFieldValue(\string|\Bitrix\Main\DB\SqlExpression $fieldValue)
     * @method bool hasFieldValue()
     * @method bool isFieldValueFilled()
     * @method bool isFieldValueChanged()
     * @method \string remindActualFieldValue()
     * @method \string requireFieldValue()
     * @method \Bitrix\Main\EO_UserFieldConfirm resetFieldValue()
     * @method \Bitrix\Main\EO_UserFieldConfirm unsetFieldValue()
     * @method \string fillFieldValue()
     * @method \string getConfirmCode()
     * @method \Bitrix\Main\EO_UserFieldConfirm setConfirmCode(\string|\Bitrix\Main\DB\SqlExpression $confirmCode)
     * @method bool hasConfirmCode()
     * @method bool isConfirmCodeFilled()
     * @method bool isConfirmCodeChanged()
     * @method \string remindActualConfirmCode()
     * @method \string requireConfirmCode()
     * @method \Bitrix\Main\EO_UserFieldConfirm resetConfirmCode()
     * @method \Bitrix\Main\EO_UserFieldConfirm unsetConfirmCode()
     * @method \string fillConfirmCode()
     * @method \int getAttempts()
     * @method \Bitrix\Main\EO_UserFieldConfirm setAttempts(\int|\Bitrix\Main\DB\SqlExpression $attempts)
     * @method bool hasAttempts()
     * @method bool isAttemptsFilled()
     * @method bool isAttemptsChanged()
     * @method \int remindActualAttempts()
     * @method \int requireAttempts()
     * @method \Bitrix\Main\EO_UserFieldConfirm resetAttempts()
     * @method \Bitrix\Main\EO_UserFieldConfirm unsetAttempts()
     * @method \int fillAttempts()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_UserFieldConfirm set($fieldName, $value)
     * @method \Bitrix\Main\EO_UserFieldConfirm reset($fieldName)
     * @method \Bitrix\Main\EO_UserFieldConfirm unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_UserFieldConfirm wakeUp($data)
     */
    class EO_UserFieldConfirm
    {
        /* @var \Bitrix\Main\UserFieldConfirmTable */
        public static $dataClass = '\\Bitrix\\Main\\UserFieldConfirmTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserFieldConfirm_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \Bitrix\Main\Type\DateTime[] getDateChangeList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateChange()
     * @method \string[] getFieldList()
     * @method \string[] fillField()
     * @method \string[] getFieldValueList()
     * @method \string[] fillFieldValue()
     * @method \string[] getConfirmCodeList()
     * @method \string[] fillConfirmCode()
     * @method \int[] getAttemptsList()
     * @method \int[] fillAttempts()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_UserFieldConfirm $object)
     * @method bool has(\Bitrix\Main\EO_UserFieldConfirm $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_UserFieldConfirm getByPrimary($primary)
     * @method \Bitrix\Main\EO_UserFieldConfirm[] getAll()
     * @method bool remove(\Bitrix\Main\EO_UserFieldConfirm $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_UserFieldConfirm_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_UserFieldConfirm current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserFieldConfirm_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserFieldConfirmTable */
        public static $dataClass = '\\Bitrix\\Main\\UserFieldConfirmTable';
    }
    /**
     * @method static EO_UserFieldConfirm_Query query()
     * @method static EO_UserFieldConfirm_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserFieldConfirm_Result getById($id)
     * @method static EO_UserFieldConfirm_Result getList(array $parameters = array())
     * @method static EO_UserFieldConfirm_Entity getEntity()
     * @method static \Bitrix\Main\EO_UserFieldConfirm createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_UserFieldConfirm_Collection createCollection()
     * @method static \Bitrix\Main\EO_UserFieldConfirm wakeUpObject($row)
     * @method static \Bitrix\Main\EO_UserFieldConfirm_Collection wakeUpCollection($rows)
     */
    class UserFieldConfirmTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserFieldConfirm_Result exec()
     * @method \Bitrix\Main\EO_UserFieldConfirm fetchObject()
     * @method \Bitrix\Main\EO_UserFieldConfirm_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserFieldConfirm_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserFieldConfirm fetchObject()
     * @method \Bitrix\Main\EO_UserFieldConfirm_Collection fetchCollection()
     */
    class EO_UserFieldConfirm_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserFieldConfirm createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_UserFieldConfirm_Collection createCollection()
     * @method \Bitrix\Main\EO_UserFieldConfirm wakeUpObject($row)
     * @method \Bitrix\Main\EO_UserFieldConfirm_Collection wakeUpCollection($rows)
     */
    class EO_UserFieldConfirm_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserFieldLang
     * @see \Bitrix\Main\UserFieldLangTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserFieldId()
     * @method \Bitrix\Main\EO_UserFieldLang setUserFieldId(\int|\Bitrix\Main\DB\SqlExpression $userFieldId)
     * @method bool hasUserFieldId()
     * @method bool isUserFieldIdFilled()
     * @method bool isUserFieldIdChanged()
     * @method \string getLanguageId()
     * @method \Bitrix\Main\EO_UserFieldLang setLanguageId(\string|\Bitrix\Main\DB\SqlExpression $languageId)
     * @method bool hasLanguageId()
     * @method bool isLanguageIdFilled()
     * @method bool isLanguageIdChanged()
     * @method \string getEditFormLabel()
     * @method \Bitrix\Main\EO_UserFieldLang setEditFormLabel(\string|\Bitrix\Main\DB\SqlExpression $editFormLabel)
     * @method bool hasEditFormLabel()
     * @method bool isEditFormLabelFilled()
     * @method bool isEditFormLabelChanged()
     * @method \string remindActualEditFormLabel()
     * @method \string requireEditFormLabel()
     * @method \Bitrix\Main\EO_UserFieldLang resetEditFormLabel()
     * @method \Bitrix\Main\EO_UserFieldLang unsetEditFormLabel()
     * @method \string fillEditFormLabel()
     * @method \string getListColumnLabel()
     * @method \Bitrix\Main\EO_UserFieldLang setListColumnLabel(\string|\Bitrix\Main\DB\SqlExpression $listColumnLabel)
     * @method bool hasListColumnLabel()
     * @method bool isListColumnLabelFilled()
     * @method bool isListColumnLabelChanged()
     * @method \string remindActualListColumnLabel()
     * @method \string requireListColumnLabel()
     * @method \Bitrix\Main\EO_UserFieldLang resetListColumnLabel()
     * @method \Bitrix\Main\EO_UserFieldLang unsetListColumnLabel()
     * @method \string fillListColumnLabel()
     * @method \string getListFilterLabel()
     * @method \Bitrix\Main\EO_UserFieldLang setListFilterLabel(\string|\Bitrix\Main\DB\SqlExpression $listFilterLabel)
     * @method bool hasListFilterLabel()
     * @method bool isListFilterLabelFilled()
     * @method bool isListFilterLabelChanged()
     * @method \string remindActualListFilterLabel()
     * @method \string requireListFilterLabel()
     * @method \Bitrix\Main\EO_UserFieldLang resetListFilterLabel()
     * @method \Bitrix\Main\EO_UserFieldLang unsetListFilterLabel()
     * @method \string fillListFilterLabel()
     * @method \string getErrorMessage()
     * @method \Bitrix\Main\EO_UserFieldLang setErrorMessage(\string|\Bitrix\Main\DB\SqlExpression $errorMessage)
     * @method bool hasErrorMessage()
     * @method bool isErrorMessageFilled()
     * @method bool isErrorMessageChanged()
     * @method \string remindActualErrorMessage()
     * @method \string requireErrorMessage()
     * @method \Bitrix\Main\EO_UserFieldLang resetErrorMessage()
     * @method \Bitrix\Main\EO_UserFieldLang unsetErrorMessage()
     * @method \string fillErrorMessage()
     * @method \string getHelpMessage()
     * @method \Bitrix\Main\EO_UserFieldLang setHelpMessage(\string|\Bitrix\Main\DB\SqlExpression $helpMessage)
     * @method bool hasHelpMessage()
     * @method bool isHelpMessageFilled()
     * @method bool isHelpMessageChanged()
     * @method \string remindActualHelpMessage()
     * @method \string requireHelpMessage()
     * @method \Bitrix\Main\EO_UserFieldLang resetHelpMessage()
     * @method \Bitrix\Main\EO_UserFieldLang unsetHelpMessage()
     * @method \string fillHelpMessage()
     * @method \Bitrix\Main\EO_UserField getUserField()
     * @method \Bitrix\Main\EO_UserField remindActualUserField()
     * @method \Bitrix\Main\EO_UserField requireUserField()
     * @method \Bitrix\Main\EO_UserFieldLang setUserField(\Bitrix\Main\EO_UserField $object)
     * @method \Bitrix\Main\EO_UserFieldLang resetUserField()
     * @method \Bitrix\Main\EO_UserFieldLang unsetUserField()
     * @method bool hasUserField()
     * @method bool isUserFieldFilled()
     * @method bool isUserFieldChanged()
     * @method \Bitrix\Main\EO_UserField fillUserField()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_UserFieldLang set($fieldName, $value)
     * @method \Bitrix\Main\EO_UserFieldLang reset($fieldName)
     * @method \Bitrix\Main\EO_UserFieldLang unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_UserFieldLang wakeUp($data)
     */
    class EO_UserFieldLang
    {
        /* @var \Bitrix\Main\UserFieldLangTable */
        public static $dataClass = '\\Bitrix\\Main\\UserFieldLangTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserFieldLang_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserFieldIdList()
     * @method \string[] getLanguageIdList()
     * @method \string[] getEditFormLabelList()
     * @method \string[] fillEditFormLabel()
     * @method \string[] getListColumnLabelList()
     * @method \string[] fillListColumnLabel()
     * @method \string[] getListFilterLabelList()
     * @method \string[] fillListFilterLabel()
     * @method \string[] getErrorMessageList()
     * @method \string[] fillErrorMessage()
     * @method \string[] getHelpMessageList()
     * @method \string[] fillHelpMessage()
     * @method \Bitrix\Main\EO_UserField[] getUserFieldList()
     * @method \Bitrix\Main\EO_UserFieldLang_Collection getUserFieldCollection()
     * @method \Bitrix\Main\EO_UserField_Collection fillUserField()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_UserFieldLang $object)
     * @method bool has(\Bitrix\Main\EO_UserFieldLang $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_UserFieldLang getByPrimary($primary)
     * @method \Bitrix\Main\EO_UserFieldLang[] getAll()
     * @method bool remove(\Bitrix\Main\EO_UserFieldLang $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_UserFieldLang_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_UserFieldLang current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserFieldLang_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserFieldLangTable */
        public static $dataClass = '\\Bitrix\\Main\\UserFieldLangTable';
    }
    /**
     * @method static EO_UserFieldLang_Query query()
     * @method static EO_UserFieldLang_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserFieldLang_Result getById($id)
     * @method static EO_UserFieldLang_Result getList(array $parameters = array())
     * @method static EO_UserFieldLang_Entity getEntity()
     * @method static \Bitrix\Main\EO_UserFieldLang createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_UserFieldLang_Collection createCollection()
     * @method static \Bitrix\Main\EO_UserFieldLang wakeUpObject($row)
     * @method static \Bitrix\Main\EO_UserFieldLang_Collection wakeUpCollection($rows)
     */
    class UserFieldLangTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserFieldLang_Result exec()
     * @method \Bitrix\Main\EO_UserFieldLang fetchObject()
     * @method \Bitrix\Main\EO_UserFieldLang_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserFieldLang_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserFieldLang fetchObject()
     * @method \Bitrix\Main\EO_UserFieldLang_Collection fetchCollection()
     */
    class EO_UserFieldLang_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserFieldLang createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_UserFieldLang_Collection createCollection()
     * @method \Bitrix\Main\EO_UserFieldLang wakeUpObject($row)
     * @method \Bitrix\Main\EO_UserFieldLang_Collection wakeUpCollection($rows)
     */
    class EO_UserFieldLang_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserGroup
     * @see \Bitrix\Main\UserGroupTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Main\EO_UserGroup setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Main\EO_UserGroup setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Main\EO_UserGroup resetUser()
     * @method \Bitrix\Main\EO_UserGroup unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \int getGroupId()
     * @method \Bitrix\Main\EO_UserGroup setGroupId(\int|\Bitrix\Main\DB\SqlExpression $groupId)
     * @method bool hasGroupId()
     * @method bool isGroupIdFilled()
     * @method bool isGroupIdChanged()
     * @method \Bitrix\Main\EO_Group getGroup()
     * @method \Bitrix\Main\EO_Group remindActualGroup()
     * @method \Bitrix\Main\EO_Group requireGroup()
     * @method \Bitrix\Main\EO_UserGroup setGroup(\Bitrix\Main\EO_Group $object)
     * @method \Bitrix\Main\EO_UserGroup resetGroup()
     * @method \Bitrix\Main\EO_UserGroup unsetGroup()
     * @method bool hasGroup()
     * @method bool isGroupFilled()
     * @method bool isGroupChanged()
     * @method \Bitrix\Main\EO_Group fillGroup()
     * @method \Bitrix\Main\Type\DateTime getDateActiveFrom()
     * @method \Bitrix\Main\EO_UserGroup setDateActiveFrom(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateActiveFrom)
     * @method bool hasDateActiveFrom()
     * @method bool isDateActiveFromFilled()
     * @method bool isDateActiveFromChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateActiveFrom()
     * @method \Bitrix\Main\Type\DateTime requireDateActiveFrom()
     * @method \Bitrix\Main\EO_UserGroup resetDateActiveFrom()
     * @method \Bitrix\Main\EO_UserGroup unsetDateActiveFrom()
     * @method \Bitrix\Main\Type\DateTime fillDateActiveFrom()
     * @method \Bitrix\Main\Type\DateTime getDateActiveTo()
     * @method \Bitrix\Main\EO_UserGroup setDateActiveTo(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateActiveTo)
     * @method bool hasDateActiveTo()
     * @method bool isDateActiveToFilled()
     * @method bool isDateActiveToChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateActiveTo()
     * @method \Bitrix\Main\Type\DateTime requireDateActiveTo()
     * @method \Bitrix\Main\EO_UserGroup resetDateActiveTo()
     * @method \Bitrix\Main\EO_UserGroup unsetDateActiveTo()
     * @method \Bitrix\Main\Type\DateTime fillDateActiveTo()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_UserGroup set($fieldName, $value)
     * @method \Bitrix\Main\EO_UserGroup reset($fieldName)
     * @method \Bitrix\Main\EO_UserGroup unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_UserGroup wakeUp($data)
     */
    class EO_UserGroup
    {
        /* @var \Bitrix\Main\UserGroupTable */
        public static $dataClass = '\\Bitrix\\Main\\UserGroupTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserGroup_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Main\EO_UserGroup_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \int[] getGroupIdList()
     * @method \Bitrix\Main\EO_Group[] getGroupList()
     * @method \Bitrix\Main\EO_UserGroup_Collection getGroupCollection()
     * @method \Bitrix\Main\EO_Group_Collection fillGroup()
     * @method \Bitrix\Main\Type\DateTime[] getDateActiveFromList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateActiveFrom()
     * @method \Bitrix\Main\Type\DateTime[] getDateActiveToList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateActiveTo()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_UserGroup $object)
     * @method bool has(\Bitrix\Main\EO_UserGroup $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_UserGroup getByPrimary($primary)
     * @method \Bitrix\Main\EO_UserGroup[] getAll()
     * @method bool remove(\Bitrix\Main\EO_UserGroup $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_UserGroup_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_UserGroup current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserGroup_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserGroupTable */
        public static $dataClass = '\\Bitrix\\Main\\UserGroupTable';
    }
    /**
     * @method static EO_UserGroup_Query query()
     * @method static EO_UserGroup_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserGroup_Result getById($id)
     * @method static EO_UserGroup_Result getList(array $parameters = array())
     * @method static EO_UserGroup_Entity getEntity()
     * @method static \Bitrix\Main\EO_UserGroup createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_UserGroup_Collection createCollection()
     * @method static \Bitrix\Main\EO_UserGroup wakeUpObject($row)
     * @method static \Bitrix\Main\EO_UserGroup_Collection wakeUpCollection($rows)
     */
    class UserGroupTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserGroup_Result exec()
     * @method \Bitrix\Main\EO_UserGroup fetchObject()
     * @method \Bitrix\Main\EO_UserGroup_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserGroup_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserGroup fetchObject()
     * @method \Bitrix\Main\EO_UserGroup_Collection fetchCollection()
     */
    class EO_UserGroup_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserGroup createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_UserGroup_Collection createCollection()
     * @method \Bitrix\Main\EO_UserGroup wakeUpObject($row)
     * @method \Bitrix\Main\EO_UserGroup_Collection wakeUpCollection($rows)
     */
    class EO_UserGroup_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserIndex
     * @see \Bitrix\Main\UserIndexTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Main\EO_UserIndex setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \string getSearchUserContent()
     * @method \Bitrix\Main\EO_UserIndex setSearchUserContent(\string|\Bitrix\Main\DB\SqlExpression $searchUserContent)
     * @method bool hasSearchUserContent()
     * @method bool isSearchUserContentFilled()
     * @method bool isSearchUserContentChanged()
     * @method \string remindActualSearchUserContent()
     * @method \string requireSearchUserContent()
     * @method \Bitrix\Main\EO_UserIndex resetSearchUserContent()
     * @method \Bitrix\Main\EO_UserIndex unsetSearchUserContent()
     * @method \string fillSearchUserContent()
     * @method \string getSearchAdminContent()
     * @method \Bitrix\Main\EO_UserIndex setSearchAdminContent(\string|\Bitrix\Main\DB\SqlExpression $searchAdminContent)
     * @method bool hasSearchAdminContent()
     * @method bool isSearchAdminContentFilled()
     * @method bool isSearchAdminContentChanged()
     * @method \string remindActualSearchAdminContent()
     * @method \string requireSearchAdminContent()
     * @method \Bitrix\Main\EO_UserIndex resetSearchAdminContent()
     * @method \Bitrix\Main\EO_UserIndex unsetSearchAdminContent()
     * @method \string fillSearchAdminContent()
     * @method \string getSearchDepartmentContent()
     * @method \Bitrix\Main\EO_UserIndex setSearchDepartmentContent(\string|\Bitrix\Main\DB\SqlExpression $searchDepartmentContent)
     * @method bool hasSearchDepartmentContent()
     * @method bool isSearchDepartmentContentFilled()
     * @method bool isSearchDepartmentContentChanged()
     * @method \string remindActualSearchDepartmentContent()
     * @method \string requireSearchDepartmentContent()
     * @method \Bitrix\Main\EO_UserIndex resetSearchDepartmentContent()
     * @method \Bitrix\Main\EO_UserIndex unsetSearchDepartmentContent()
     * @method \string fillSearchDepartmentContent()
     * @method \string getName()
     * @method \Bitrix\Main\EO_UserIndex setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Main\EO_UserIndex resetName()
     * @method \Bitrix\Main\EO_UserIndex unsetName()
     * @method \string fillName()
     * @method \string getSecondName()
     * @method \Bitrix\Main\EO_UserIndex setSecondName(\string|\Bitrix\Main\DB\SqlExpression $secondName)
     * @method bool hasSecondName()
     * @method bool isSecondNameFilled()
     * @method bool isSecondNameChanged()
     * @method \string remindActualSecondName()
     * @method \string requireSecondName()
     * @method \Bitrix\Main\EO_UserIndex resetSecondName()
     * @method \Bitrix\Main\EO_UserIndex unsetSecondName()
     * @method \string fillSecondName()
     * @method \string getLastName()
     * @method \Bitrix\Main\EO_UserIndex setLastName(\string|\Bitrix\Main\DB\SqlExpression $lastName)
     * @method bool hasLastName()
     * @method bool isLastNameFilled()
     * @method bool isLastNameChanged()
     * @method \string remindActualLastName()
     * @method \string requireLastName()
     * @method \Bitrix\Main\EO_UserIndex resetLastName()
     * @method \Bitrix\Main\EO_UserIndex unsetLastName()
     * @method \string fillLastName()
     * @method \string getWorkPosition()
     * @method \Bitrix\Main\EO_UserIndex setWorkPosition(\string|\Bitrix\Main\DB\SqlExpression $workPosition)
     * @method bool hasWorkPosition()
     * @method bool isWorkPositionFilled()
     * @method bool isWorkPositionChanged()
     * @method \string remindActualWorkPosition()
     * @method \string requireWorkPosition()
     * @method \Bitrix\Main\EO_UserIndex resetWorkPosition()
     * @method \Bitrix\Main\EO_UserIndex unsetWorkPosition()
     * @method \string fillWorkPosition()
     * @method \string getUfDepartmentName()
     * @method \Bitrix\Main\EO_UserIndex setUfDepartmentName(\string|\Bitrix\Main\DB\SqlExpression $ufDepartmentName)
     * @method bool hasUfDepartmentName()
     * @method bool isUfDepartmentNameFilled()
     * @method bool isUfDepartmentNameChanged()
     * @method \string remindActualUfDepartmentName()
     * @method \string requireUfDepartmentName()
     * @method \Bitrix\Main\EO_UserIndex resetUfDepartmentName()
     * @method \Bitrix\Main\EO_UserIndex unsetUfDepartmentName()
     * @method \string fillUfDepartmentName()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_UserIndex set($fieldName, $value)
     * @method \Bitrix\Main\EO_UserIndex reset($fieldName)
     * @method \Bitrix\Main\EO_UserIndex unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_UserIndex wakeUp($data)
     */
    class EO_UserIndex
    {
        /* @var \Bitrix\Main\UserIndexTable */
        public static $dataClass = '\\Bitrix\\Main\\UserIndexTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserIndex_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \string[] getSearchUserContentList()
     * @method \string[] fillSearchUserContent()
     * @method \string[] getSearchAdminContentList()
     * @method \string[] fillSearchAdminContent()
     * @method \string[] getSearchDepartmentContentList()
     * @method \string[] fillSearchDepartmentContent()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getSecondNameList()
     * @method \string[] fillSecondName()
     * @method \string[] getLastNameList()
     * @method \string[] fillLastName()
     * @method \string[] getWorkPositionList()
     * @method \string[] fillWorkPosition()
     * @method \string[] getUfDepartmentNameList()
     * @method \string[] fillUfDepartmentName()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_UserIndex $object)
     * @method bool has(\Bitrix\Main\EO_UserIndex $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_UserIndex getByPrimary($primary)
     * @method \Bitrix\Main\EO_UserIndex[] getAll()
     * @method bool remove(\Bitrix\Main\EO_UserIndex $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_UserIndex_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_UserIndex current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserIndex_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserIndexTable */
        public static $dataClass = '\\Bitrix\\Main\\UserIndexTable';
    }
    /**
     * @method static EO_UserIndex_Query query()
     * @method static EO_UserIndex_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserIndex_Result getById($id)
     * @method static EO_UserIndex_Result getList(array $parameters = array())
     * @method static EO_UserIndex_Entity getEntity()
     * @method static \Bitrix\Main\EO_UserIndex createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_UserIndex_Collection createCollection()
     * @method static \Bitrix\Main\EO_UserIndex wakeUpObject($row)
     * @method static \Bitrix\Main\EO_UserIndex_Collection wakeUpCollection($rows)
     */
    class UserIndexTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserIndex_Result exec()
     * @method \Bitrix\Main\EO_UserIndex fetchObject()
     * @method \Bitrix\Main\EO_UserIndex_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserIndex_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserIndex fetchObject()
     * @method \Bitrix\Main\EO_UserIndex_Collection fetchCollection()
     */
    class EO_UserIndex_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserIndex createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_UserIndex_Collection createCollection()
     * @method \Bitrix\Main\EO_UserIndex wakeUpObject($row)
     * @method \Bitrix\Main\EO_UserIndex_Collection wakeUpCollection($rows)
     */
    class EO_UserIndex_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserIndexSelector
     * @see \Bitrix\Main\UserIndexSelectorTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Main\EO_UserIndexSelector setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \string getSearchSelectorContent()
     * @method \Bitrix\Main\EO_UserIndexSelector setSearchSelectorContent(\string|\Bitrix\Main\DB\SqlExpression $searchSelectorContent)
     * @method bool hasSearchSelectorContent()
     * @method bool isSearchSelectorContentFilled()
     * @method bool isSearchSelectorContentChanged()
     * @method \string remindActualSearchSelectorContent()
     * @method \string requireSearchSelectorContent()
     * @method \Bitrix\Main\EO_UserIndexSelector resetSearchSelectorContent()
     * @method \Bitrix\Main\EO_UserIndexSelector unsetSearchSelectorContent()
     * @method \string fillSearchSelectorContent()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_UserIndexSelector set($fieldName, $value)
     * @method \Bitrix\Main\EO_UserIndexSelector reset($fieldName)
     * @method \Bitrix\Main\EO_UserIndexSelector unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_UserIndexSelector wakeUp($data)
     */
    class EO_UserIndexSelector
    {
        /* @var \Bitrix\Main\UserIndexSelectorTable */
        public static $dataClass = '\\Bitrix\\Main\\UserIndexSelectorTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserIndexSelector_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \string[] getSearchSelectorContentList()
     * @method \string[] fillSearchSelectorContent()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_UserIndexSelector $object)
     * @method bool has(\Bitrix\Main\EO_UserIndexSelector $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_UserIndexSelector getByPrimary($primary)
     * @method \Bitrix\Main\EO_UserIndexSelector[] getAll()
     * @method bool remove(\Bitrix\Main\EO_UserIndexSelector $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_UserIndexSelector_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_UserIndexSelector current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserIndexSelector_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserIndexSelectorTable */
        public static $dataClass = '\\Bitrix\\Main\\UserIndexSelectorTable';
    }
    /**
     * @method static EO_UserIndexSelector_Query query()
     * @method static EO_UserIndexSelector_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserIndexSelector_Result getById($id)
     * @method static EO_UserIndexSelector_Result getList(array $parameters = array())
     * @method static EO_UserIndexSelector_Entity getEntity()
     * @method static \Bitrix\Main\EO_UserIndexSelector createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_UserIndexSelector_Collection createCollection()
     * @method static \Bitrix\Main\EO_UserIndexSelector wakeUpObject($row)
     * @method static \Bitrix\Main\EO_UserIndexSelector_Collection wakeUpCollection($rows)
     */
    class UserIndexSelectorTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserIndexSelector_Result exec()
     * @method \Bitrix\Main\EO_UserIndexSelector fetchObject()
     * @method \Bitrix\Main\EO_UserIndexSelector_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserIndexSelector_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserIndexSelector fetchObject()
     * @method \Bitrix\Main\EO_UserIndexSelector_Collection fetchCollection()
     */
    class EO_UserIndexSelector_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserIndexSelector createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_UserIndexSelector_Collection createCollection()
     * @method \Bitrix\Main\EO_UserIndexSelector wakeUpObject($row)
     * @method \Bitrix\Main\EO_UserIndexSelector_Collection wakeUpCollection($rows)
     */
    class EO_UserIndexSelector_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserPhoneAuth
     * @see \Bitrix\Main\UserPhoneAuthTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Main\EO_UserPhoneAuth setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \string getPhoneNumber()
     * @method \Bitrix\Main\EO_UserPhoneAuth setPhoneNumber(\string|\Bitrix\Main\DB\SqlExpression $phoneNumber)
     * @method bool hasPhoneNumber()
     * @method bool isPhoneNumberFilled()
     * @method bool isPhoneNumberChanged()
     * @method \string remindActualPhoneNumber()
     * @method \string requirePhoneNumber()
     * @method \Bitrix\Main\EO_UserPhoneAuth resetPhoneNumber()
     * @method \Bitrix\Main\EO_UserPhoneAuth unsetPhoneNumber()
     * @method \string fillPhoneNumber()
     * @method \string getOtpSecret()
     * @method \Bitrix\Main\EO_UserPhoneAuth setOtpSecret(\string|\Bitrix\Main\DB\SqlExpression $otpSecret)
     * @method bool hasOtpSecret()
     * @method bool isOtpSecretFilled()
     * @method bool isOtpSecretChanged()
     * @method \string remindActualOtpSecret()
     * @method \string requireOtpSecret()
     * @method \Bitrix\Main\EO_UserPhoneAuth resetOtpSecret()
     * @method \Bitrix\Main\EO_UserPhoneAuth unsetOtpSecret()
     * @method \string fillOtpSecret()
     * @method \int getAttempts()
     * @method \Bitrix\Main\EO_UserPhoneAuth setAttempts(\int|\Bitrix\Main\DB\SqlExpression $attempts)
     * @method bool hasAttempts()
     * @method bool isAttemptsFilled()
     * @method bool isAttemptsChanged()
     * @method \int remindActualAttempts()
     * @method \int requireAttempts()
     * @method \Bitrix\Main\EO_UserPhoneAuth resetAttempts()
     * @method \Bitrix\Main\EO_UserPhoneAuth unsetAttempts()
     * @method \int fillAttempts()
     * @method \boolean getConfirmed()
     * @method \Bitrix\Main\EO_UserPhoneAuth setConfirmed(\boolean|\Bitrix\Main\DB\SqlExpression $confirmed)
     * @method bool hasConfirmed()
     * @method bool isConfirmedFilled()
     * @method bool isConfirmedChanged()
     * @method \boolean remindActualConfirmed()
     * @method \boolean requireConfirmed()
     * @method \Bitrix\Main\EO_UserPhoneAuth resetConfirmed()
     * @method \Bitrix\Main\EO_UserPhoneAuth unsetConfirmed()
     * @method \boolean fillConfirmed()
     * @method \Bitrix\Main\Type\DateTime getDateSent()
     * @method \Bitrix\Main\EO_UserPhoneAuth setDateSent(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateSent)
     * @method bool hasDateSent()
     * @method bool isDateSentFilled()
     * @method bool isDateSentChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateSent()
     * @method \Bitrix\Main\Type\DateTime requireDateSent()
     * @method \Bitrix\Main\EO_UserPhoneAuth resetDateSent()
     * @method \Bitrix\Main\EO_UserPhoneAuth unsetDateSent()
     * @method \Bitrix\Main\Type\DateTime fillDateSent()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Main\EO_UserPhoneAuth setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Main\EO_UserPhoneAuth resetUser()
     * @method \Bitrix\Main\EO_UserPhoneAuth unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_UserPhoneAuth set($fieldName, $value)
     * @method \Bitrix\Main\EO_UserPhoneAuth reset($fieldName)
     * @method \Bitrix\Main\EO_UserPhoneAuth unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_UserPhoneAuth wakeUp($data)
     */
    class EO_UserPhoneAuth
    {
        /* @var \Bitrix\Main\UserPhoneAuthTable */
        public static $dataClass = '\\Bitrix\\Main\\UserPhoneAuthTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserPhoneAuth_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \string[] getPhoneNumberList()
     * @method \string[] fillPhoneNumber()
     * @method \string[] getOtpSecretList()
     * @method \string[] fillOtpSecret()
     * @method \int[] getAttemptsList()
     * @method \int[] fillAttempts()
     * @method \boolean[] getConfirmedList()
     * @method \boolean[] fillConfirmed()
     * @method \Bitrix\Main\Type\DateTime[] getDateSentList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateSent()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Main\EO_UserPhoneAuth_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_UserPhoneAuth $object)
     * @method bool has(\Bitrix\Main\EO_UserPhoneAuth $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_UserPhoneAuth getByPrimary($primary)
     * @method \Bitrix\Main\EO_UserPhoneAuth[] getAll()
     * @method bool remove(\Bitrix\Main\EO_UserPhoneAuth $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_UserPhoneAuth_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_UserPhoneAuth current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserPhoneAuth_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserPhoneAuthTable */
        public static $dataClass = '\\Bitrix\\Main\\UserPhoneAuthTable';
    }
    /**
     * @method static EO_UserPhoneAuth_Query query()
     * @method static EO_UserPhoneAuth_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserPhoneAuth_Result getById($id)
     * @method static EO_UserPhoneAuth_Result getList(array $parameters = array())
     * @method static EO_UserPhoneAuth_Entity getEntity()
     * @method static \Bitrix\Main\EO_UserPhoneAuth createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_UserPhoneAuth_Collection createCollection()
     * @method static \Bitrix\Main\EO_UserPhoneAuth wakeUpObject($row)
     * @method static \Bitrix\Main\EO_UserPhoneAuth_Collection wakeUpCollection($rows)
     */
    class UserPhoneAuthTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserPhoneAuth_Result exec()
     * @method \Bitrix\Main\EO_UserPhoneAuth fetchObject()
     * @method \Bitrix\Main\EO_UserPhoneAuth_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserPhoneAuth_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserPhoneAuth fetchObject()
     * @method \Bitrix\Main\EO_UserPhoneAuth_Collection fetchCollection()
     */
    class EO_UserPhoneAuth_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserPhoneAuth createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_UserPhoneAuth_Collection createCollection()
     * @method \Bitrix\Main\EO_UserPhoneAuth wakeUpObject($row)
     * @method \Bitrix\Main\EO_UserPhoneAuth_Collection wakeUpCollection($rows)
     */
    class EO_UserPhoneAuth_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserProfileHistory
     * @see \Bitrix\Main\UserProfileHistoryTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\EO_UserProfileHistory setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Main\EO_UserProfileHistory setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Main\EO_UserProfileHistory resetUserId()
     * @method \Bitrix\Main\EO_UserProfileHistory unsetUserId()
     * @method \int fillUserId()
     * @method \int getEventType()
     * @method \Bitrix\Main\EO_UserProfileHistory setEventType(\int|\Bitrix\Main\DB\SqlExpression $eventType)
     * @method bool hasEventType()
     * @method bool isEventTypeFilled()
     * @method bool isEventTypeChanged()
     * @method \int remindActualEventType()
     * @method \int requireEventType()
     * @method \Bitrix\Main\EO_UserProfileHistory resetEventType()
     * @method \Bitrix\Main\EO_UserProfileHistory unsetEventType()
     * @method \int fillEventType()
     * @method \Bitrix\Main\Type\DateTime getDateInsert()
     * @method \Bitrix\Main\EO_UserProfileHistory setDateInsert(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateInsert)
     * @method bool hasDateInsert()
     * @method bool isDateInsertFilled()
     * @method bool isDateInsertChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateInsert()
     * @method \Bitrix\Main\Type\DateTime requireDateInsert()
     * @method \Bitrix\Main\EO_UserProfileHistory resetDateInsert()
     * @method \Bitrix\Main\EO_UserProfileHistory unsetDateInsert()
     * @method \Bitrix\Main\Type\DateTime fillDateInsert()
     * @method \string getRemoteAddr()
     * @method \Bitrix\Main\EO_UserProfileHistory setRemoteAddr(\string|\Bitrix\Main\DB\SqlExpression $remoteAddr)
     * @method bool hasRemoteAddr()
     * @method bool isRemoteAddrFilled()
     * @method bool isRemoteAddrChanged()
     * @method \string remindActualRemoteAddr()
     * @method \string requireRemoteAddr()
     * @method \Bitrix\Main\EO_UserProfileHistory resetRemoteAddr()
     * @method \Bitrix\Main\EO_UserProfileHistory unsetRemoteAddr()
     * @method \string fillRemoteAddr()
     * @method \string getUserAgent()
     * @method \Bitrix\Main\EO_UserProfileHistory setUserAgent(\string|\Bitrix\Main\DB\SqlExpression $userAgent)
     * @method bool hasUserAgent()
     * @method bool isUserAgentFilled()
     * @method bool isUserAgentChanged()
     * @method \string remindActualUserAgent()
     * @method \string requireUserAgent()
     * @method \Bitrix\Main\EO_UserProfileHistory resetUserAgent()
     * @method \Bitrix\Main\EO_UserProfileHistory unsetUserAgent()
     * @method \string fillUserAgent()
     * @method \string getRequestUri()
     * @method \Bitrix\Main\EO_UserProfileHistory setRequestUri(\string|\Bitrix\Main\DB\SqlExpression $requestUri)
     * @method bool hasRequestUri()
     * @method bool isRequestUriFilled()
     * @method bool isRequestUriChanged()
     * @method \string remindActualRequestUri()
     * @method \string requireRequestUri()
     * @method \Bitrix\Main\EO_UserProfileHistory resetRequestUri()
     * @method \Bitrix\Main\EO_UserProfileHistory unsetRequestUri()
     * @method \string fillRequestUri()
     * @method \int getUpdatedById()
     * @method \Bitrix\Main\EO_UserProfileHistory setUpdatedById(\int|\Bitrix\Main\DB\SqlExpression $updatedById)
     * @method bool hasUpdatedById()
     * @method bool isUpdatedByIdFilled()
     * @method bool isUpdatedByIdChanged()
     * @method \int remindActualUpdatedById()
     * @method \int requireUpdatedById()
     * @method \Bitrix\Main\EO_UserProfileHistory resetUpdatedById()
     * @method \Bitrix\Main\EO_UserProfileHistory unsetUpdatedById()
     * @method \int fillUpdatedById()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_UserProfileHistory set($fieldName, $value)
     * @method \Bitrix\Main\EO_UserProfileHistory reset($fieldName)
     * @method \Bitrix\Main\EO_UserProfileHistory unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_UserProfileHistory wakeUp($data)
     */
    class EO_UserProfileHistory
    {
        /* @var \Bitrix\Main\UserProfileHistoryTable */
        public static $dataClass = '\\Bitrix\\Main\\UserProfileHistoryTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserProfileHistory_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \int[] getEventTypeList()
     * @method \int[] fillEventType()
     * @method \Bitrix\Main\Type\DateTime[] getDateInsertList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateInsert()
     * @method \string[] getRemoteAddrList()
     * @method \string[] fillRemoteAddr()
     * @method \string[] getUserAgentList()
     * @method \string[] fillUserAgent()
     * @method \string[] getRequestUriList()
     * @method \string[] fillRequestUri()
     * @method \int[] getUpdatedByIdList()
     * @method \int[] fillUpdatedById()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_UserProfileHistory $object)
     * @method bool has(\Bitrix\Main\EO_UserProfileHistory $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_UserProfileHistory getByPrimary($primary)
     * @method \Bitrix\Main\EO_UserProfileHistory[] getAll()
     * @method bool remove(\Bitrix\Main\EO_UserProfileHistory $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_UserProfileHistory_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_UserProfileHistory current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserProfileHistory_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserProfileHistoryTable */
        public static $dataClass = '\\Bitrix\\Main\\UserProfileHistoryTable';
    }
    /**
     * @method static EO_UserProfileHistory_Query query()
     * @method static EO_UserProfileHistory_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserProfileHistory_Result getById($id)
     * @method static EO_UserProfileHistory_Result getList(array $parameters = array())
     * @method static EO_UserProfileHistory_Entity getEntity()
     * @method static \Bitrix\Main\EO_UserProfileHistory createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_UserProfileHistory_Collection createCollection()
     * @method static \Bitrix\Main\EO_UserProfileHistory wakeUpObject($row)
     * @method static \Bitrix\Main\EO_UserProfileHistory_Collection wakeUpCollection($rows)
     */
    class UserProfileHistoryTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserProfileHistory_Result exec()
     * @method \Bitrix\Main\EO_UserProfileHistory fetchObject()
     * @method \Bitrix\Main\EO_UserProfileHistory_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserProfileHistory_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserProfileHistory fetchObject()
     * @method \Bitrix\Main\EO_UserProfileHistory_Collection fetchCollection()
     */
    class EO_UserProfileHistory_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserProfileHistory createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_UserProfileHistory_Collection createCollection()
     * @method \Bitrix\Main\EO_UserProfileHistory wakeUpObject($row)
     * @method \Bitrix\Main\EO_UserProfileHistory_Collection wakeUpCollection($rows)
     */
    class EO_UserProfileHistory_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserProfileRecord
     * @see \Bitrix\Main\UserProfileRecordTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Main\EO_UserProfileRecord setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getHistoryId()
     * @method \Bitrix\Main\EO_UserProfileRecord setHistoryId(\int|\Bitrix\Main\DB\SqlExpression $historyId)
     * @method bool hasHistoryId()
     * @method bool isHistoryIdFilled()
     * @method bool isHistoryIdChanged()
     * @method \int remindActualHistoryId()
     * @method \int requireHistoryId()
     * @method \Bitrix\Main\EO_UserProfileRecord resetHistoryId()
     * @method \Bitrix\Main\EO_UserProfileRecord unsetHistoryId()
     * @method \int fillHistoryId()
     * @method \string getField()
     * @method \Bitrix\Main\EO_UserProfileRecord setField(\string|\Bitrix\Main\DB\SqlExpression $field)
     * @method bool hasField()
     * @method bool isFieldFilled()
     * @method bool isFieldChanged()
     * @method \string remindActualField()
     * @method \string requireField()
     * @method \Bitrix\Main\EO_UserProfileRecord resetField()
     * @method \Bitrix\Main\EO_UserProfileRecord unsetField()
     * @method \string fillField()
     * @method \string getData()
     * @method \Bitrix\Main\EO_UserProfileRecord setData(\string|\Bitrix\Main\DB\SqlExpression $data)
     * @method bool hasData()
     * @method bool isDataFilled()
     * @method bool isDataChanged()
     * @method \string remindActualData()
     * @method \string requireData()
     * @method \Bitrix\Main\EO_UserProfileRecord resetData()
     * @method \Bitrix\Main\EO_UserProfileRecord unsetData()
     * @method \string fillData()
     * @method \Bitrix\Main\EO_UserProfileHistory getHistory()
     * @method \Bitrix\Main\EO_UserProfileHistory remindActualHistory()
     * @method \Bitrix\Main\EO_UserProfileHistory requireHistory()
     * @method \Bitrix\Main\EO_UserProfileRecord setHistory(\Bitrix\Main\EO_UserProfileHistory $object)
     * @method \Bitrix\Main\EO_UserProfileRecord resetHistory()
     * @method \Bitrix\Main\EO_UserProfileRecord unsetHistory()
     * @method bool hasHistory()
     * @method bool isHistoryFilled()
     * @method bool isHistoryChanged()
     * @method \Bitrix\Main\EO_UserProfileHistory fillHistory()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Main\EO_UserProfileRecord set($fieldName, $value)
     * @method \Bitrix\Main\EO_UserProfileRecord reset($fieldName)
     * @method \Bitrix\Main\EO_UserProfileRecord unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Main\EO_UserProfileRecord wakeUp($data)
     */
    class EO_UserProfileRecord
    {
        /* @var \Bitrix\Main\UserProfileRecordTable */
        public static $dataClass = '\\Bitrix\\Main\\UserProfileRecordTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserProfileRecord_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getHistoryIdList()
     * @method \int[] fillHistoryId()
     * @method \string[] getFieldList()
     * @method \string[] fillField()
     * @method \string[] getDataList()
     * @method \string[] fillData()
     * @method \Bitrix\Main\EO_UserProfileHistory[] getHistoryList()
     * @method \Bitrix\Main\EO_UserProfileRecord_Collection getHistoryCollection()
     * @method \Bitrix\Main\EO_UserProfileHistory_Collection fillHistory()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Main\EO_UserProfileRecord $object)
     * @method bool has(\Bitrix\Main\EO_UserProfileRecord $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Main\EO_UserProfileRecord getByPrimary($primary)
     * @method \Bitrix\Main\EO_UserProfileRecord[] getAll()
     * @method bool remove(\Bitrix\Main\EO_UserProfileRecord $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Main\EO_UserProfileRecord_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Main\EO_UserProfileRecord current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserProfileRecord_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Main\UserProfileRecordTable */
        public static $dataClass = '\\Bitrix\\Main\\UserProfileRecordTable';
    }
    /**
     * @method static EO_UserProfileRecord_Query query()
     * @method static EO_UserProfileRecord_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserProfileRecord_Result getById($id)
     * @method static EO_UserProfileRecord_Result getList(array $parameters = array())
     * @method static EO_UserProfileRecord_Entity getEntity()
     * @method static \Bitrix\Main\EO_UserProfileRecord createObject($setDefaultValues = true)
     * @method static \Bitrix\Main\EO_UserProfileRecord_Collection createCollection()
     * @method static \Bitrix\Main\EO_UserProfileRecord wakeUpObject($row)
     * @method static \Bitrix\Main\EO_UserProfileRecord_Collection wakeUpCollection($rows)
     */
    class UserProfileRecordTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserProfileRecord_Result exec()
     * @method \Bitrix\Main\EO_UserProfileRecord fetchObject()
     * @method \Bitrix\Main\EO_UserProfileRecord_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserProfileRecord_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserProfileRecord fetchObject()
     * @method \Bitrix\Main\EO_UserProfileRecord_Collection fetchCollection()
     */
    class EO_UserProfileRecord_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Main\EO_UserProfileRecord createObject($setDefaultValues = true)
     * @method \Bitrix\Main\EO_UserProfileRecord_Collection createCollection()
     * @method \Bitrix\Main\EO_UserProfileRecord wakeUpObject($row)
     * @method \Bitrix\Main\EO_UserProfileRecord_Collection wakeUpCollection($rows)
     */
    class EO_UserProfileRecord_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace {
    /**********************************
    Êîíâåðòàöèÿ òåêñòà äëÿ EMail
    **********************************/
    class CConvertorsPregReplaceHelper
    {
        private $codeMessage = "";
        function __construct($codeMessage = "")
        {
        }
        public function convertCodeTagForEmail($match)
        {
        }
        private $quoteOpened = 0;
        private $quoteClosed = 0;
        private $quoteError = 0;
        public function checkQuoteError()
        {
        }
        private $quoteTableClass = "";
        private $quoteHeadClass = "";
        private $quoteBodyClass = "";
        public function setQuoteClasses($tableClass, $headClass, $bodyClass)
        {
        }
        public function convertOpenQuoteTag($match)
        {
        }
        public function convertCloseQuoteTag()
        {
        }
        public function convertQuoteTag($match)
        {
        }
        public static function extractUrl($match)
        {
        }
        private $linkClass = "";
        public function setLinkClass($linkClass)
        {
        }
        private $linkTarget = "_self";
        public function setLinkTarget($linkTarget)
        {
        }
        private $event1 = "";
        private $event2 = "";
        private $event3 = "";
        public function setEvents($event1 = "", $event2 = "", $event3 = "")
        {
        }
        private $script = "/bitrix/redirect.php";
        public function setScript($script)
        {
        }
        function convertToMailTo($match)
        {
        }
        function convertToHref($match)
        {
        }
        private $codeTableClass = "";
        private $codeHeadClass = "";
        private $codeBodyClass = "";
        private $codeTextClass = "";
        public function setCodeClasses($tableClass, $headClass, $bodyClass, $textAreaClass)
        {
        }
        function convertCodeTagForHtmlBefore($text = "")
        {
        }
        function convertCodeTagForHtmlAfter($text = "")
        {
        }
    }
    class CJSCore
    {
        const USE_ADMIN = 'admin';
        const USE_PUBLIC = 'public';
        private static $arRegisteredExt = array();
        private static $arCurrentlyLoadedExt = array();
        private static $bInited = \false;
        private static $compositeMode = \false;
        /*
        ex: CJSCore::RegisterExt('timeman', array(
        	'js' => '/bitrix/js/timeman/core_timeman.js',
        	'css' => '/bitrix/js/timeman/css/core_timeman.css',
        	'lang' => '/bitrix/modules/timeman/js_core_timeman.php',
        	'rel' => array(needed extensions for automatic inclusion),
        	'use' => CJSCore::USE_ADMIN|CJSCore::USE_PUBLIC
        ));
        */
        public static function RegisterExt($name, $arPaths)
        {
        }
        public static function Init($arExt = array(), $bReturn = \false)
        {
        }
        protected static function registerAssetsAsLoaded($assets)
        {
        }
        /**
         * @param $code - name of extension
         */
        public static function markExtensionLoaded($code)
        {
        }
        /**
         * Returns true if Core JS was inited
         * @return bool
         */
        public static function IsCoreLoaded()
        {
        }
        /**
         * Returns true if JS extension was loaded.
         * @param string $code Code of JS extension.
         * @return bool
         */
        public static function isExtensionLoaded($code)
        {
        }
        public static function GetCoreMessagesScript($compositeMode = \false)
        {
        }
        public static function GetCoreMessages($compositeMode = \false)
        {
        }
        public static function GetHTML($arExt)
        {
        }
        /**
         *
         * When all of scripts are moved to the body, we need this code to add special classes (bx-chrome, bx-ie...) to <html> tag.
         * @return string
         */
        public static function GetInlineCoreJs()
        {
        }
        public static function GetScriptsList()
        {
        }
        public static function GetCoreConfig()
        {
        }
        private static function _loadExt($ext, $bReturn)
        {
        }
        public static function ShowTimer($params)
        {
        }
        public static function IsExtRegistered($ext)
        {
        }
        public static function getExtInfo($ext)
        {
        }
        private static function _RegisterStandardExt()
        {
        }
        private static function _loadJS($js, $bReturn)
        {
        }
        private static function _loadLang($lang, $bReturn, $arAdditionalMess = \false)
        {
        }
        private static function _loadCSS($css, $bReturn)
        {
        }
        /**
         * @param string $extension Extension name
         * @param array $settings Extension settings
         * @param bool $bReturn
         * @return string
         * @throws Main\ArgumentException
         */
        private static function loadSettings($extension, $settings, $bReturn = \false)
        {
        }
        private static function registerJsBundle($bundleName, $files)
        {
        }
        private static function registerCssBundle($bundleName, $files)
        {
        }
    }
    class CUtil
    {
        protected static $alreadyDecodedRequest = \false;
        public static function addslashes($s)
        {
        }
        public static function closetags($html)
        {
        }
        public static function JSEscape($s)
        {
        }
        public static function JSUrlEscape($s)
        {
        }
        public static function PhpToJSObject($arData, $bWS = \false, $bSkipTilda = \false, $bExtType = \false)
        {
        }
        //$data must be in LANG_CHARSET encoding
        public static function JsObjectToPhp($data, $bSkipNative = \false)
        {
        }
        public static function DecodeUtf16($ch)
        {
        }
        public static function JSPostUnescape()
        {
        }
        public static function decodeURIComponent(&$item)
        {
        }
        public static function DetectUTF8($string)
        {
        }
        public static function ConvertToLangCharset($string)
        {
        }
        public static function GetAdditionalFileURL($file, $bSkipCheck = \false)
        {
        }
        public static function InitJSCore($arExt = array(), $bReturn = \false)
        {
        }
        public static function GetPopupSize($resize_id, $arDefaults = array())
        {
        }
        public static function GetPopupOptions($wnd_id)
        {
        }
        public static function SetPopupOptions($wnd_id, $arOptions)
        {
        }
        public static function translit($str, $lang, $params = array())
        {
        }
        /**
         * @deprecated Use strlen()
         * @param $buf
         * @return int
         */
        public static function BinStrlen($buf)
        {
        }
        /**
         * @deprecated Use substr()
         * @param $buf
         * @param $start
         * @param array $args
         * @return string
         */
        public static function BinSubstr($buf, $start, ...$args)
        {
        }
        /**
         * @deprecated Use strpos()
         * @param $haystack
         * @param $needle
         * @param int $offset
         * @return false|int
         */
        public static function BinStrpos($haystack, $needle, $offset = 0)
        {
        }
        /**
         * Convert shorthand notation to integer equivalent
         * @param string $str
         * @return int
         *
         */
        public static function Unformat($str)
        {
        }
        /**
         * Adjust php pcre.backtrack_limit
         * @param int $val
         * @return void
         *
         */
        public static function AdjustPcreBacktrackLimit($val)
        {
        }
        public static function getSitesByWizard($wizard)
        {
        }
    }
    class CHTTP
    {
        var $url = '';
        var $status = 0;
        var $result = '';
        var $fp = \null;
        var $headers = array();
        var $cookies = array();
        var $http_timeout = 30;
        var $user_agent;
        var $follow_redirect = \false;
        var $errno;
        var $errstr;
        var $additional_headers = array();
        private $redirectMax = 5;
        private $redirectsMade = 0;
        private static $lastSetStatus = "";
        public function __construct()
        {
        }
        public static function URN2URI($urn, $server_name = '')
        {
        }
        public function Download($url, $file)
        {
        }
        /**
         * @deprecated Use Bitrix\Main\Web\HttpClient
         */
        public function Get($url)
        {
        }
        /**
         * @deprecated Use Bitrix\Main\Web\HttpClient
         */
        public function Post($url, $arPostData)
        {
        }
        public static function PrepareData($arPostData, $prefix = '')
        {
        }
        /**
         * @deprecated Use Bitrix\Main\Web\HttpClient
         */
        public function HTTPQuery($method, $url, $postdata = '')
        {
        }
        /**
         * @deprecated Use Bitrix\Main\Web\HttpClient
         */
        public function Query($method, $host, $port, $path, $postdata = \false, $proto = '', $post_content_type = 'N', $dont_wait_answer = \false)
        {
        }
        public function SetAuthBasic($user, $pass)
        {
        }
        /**
         * @deprecated Use Bitrix\Main\Web\Uri
         */
        public static function ParseURL($url)
        {
        }
        public function ParseHeaders($strHeaders)
        {
        }
        public function setFollowRedirect($follow)
        {
        }
        public function setRedirectMax($n)
        {
        }
        /**
         * @deprecated Use Bitrix\Main\Web\HttpClient
         */
        public static function sGet($url, $follow_redirect = \false)
        {
        }
        /**
         * @deprecated Use Bitrix\Main\Web\HttpClient
         */
        public static function sPost($url, $arPostData, $follow_redirect = \false)
        {
        }
        public function SetAdditionalHeaders($arHeader = array())
        {
        }
        /** Static Get with the ability to add headers and set the http timeout
         * @deprecated Use Bitrix\Main\Web\HttpClient
         * @static
         * @param $url
         * @param array $arHeader
         * @param int $httpTimeout
         * @return bool|string
         */
        public static function sGetHeader($url, $arHeader = array(), $httpTimeout = 0)
        {
        }
        /** Static Post with the ability to add headers and set the http timeout
         * @deprecated Use Bitrix\Main\Web\HttpClient
         * @static
         * @param $url
         * @param $arPostData
         * @param array $arHeader
         * @param int $http_timeout
         * @return bool|string
         */
        public static function sPostHeader($url, $arPostData, $arHeader = array(), $http_timeout = 0)
        {
        }
        public static function SetStatus($status)
        {
        }
        public static function GetLastStatus()
        {
        }
        public static function SetAuthHeader($bDigestEnabled = \true)
        {
        }
        public static function ParseAuthRequest()
        {
        }
        public static function ParseDigest($sDigest)
        {
        }
        public static function urlAddParams($url, $add_params, $options = array())
        {
        }
        public static function urlDeleteParams($url, $delete_params, $options = array())
        {
        }
        public static function urnEncode($str, $charset = \false)
        {
        }
        public static function urnDecode($str, $charset = \false)
        {
        }
        // search for /../ and ulrencoded /../
        public static function isPathTraversalUri($uri)
        {
        }
    }
    class UpdateTools
    {
        public static function CheckUpdates()
        {
        }
        public static function SetUpdateResult()
        {
        }
        public static function SetUpdateError($strError)
        {
        }
        public static function GetUpdateResult()
        {
        }
    }
    class CSpacer
    {
        var $iMaxChar;
        var $symbol;
        function __construct($iMaxChar, $symbol)
        {
        }
        function InsertSpaces($string)
        {
        }
        function __InsertSpacesCallback($arMatch)
        {
        }
    }
    class CEditArea
    {
        var $includeAreaIndex = array();
        var $includeAreaIcons = array();
        var $includeLevel = -1;
        var $arEditAreas = array();
        var $bEditAreas = \false;
        var $bDrawIcons = \false;
        function __GetAreaId()
        {
        }
        function IncludeStringBefore()
        {
        }
        function IncludeStringAfter($arIcons = \false, $arParams = array())
        {
        }
        function DrawIcons($arIcons, $arParams = array())
        {
        }
        function GetJSIcon($arIcon)
        {
        }
        function GetJSIconMenu($arMenu)
        {
        }
        function __GetEditAreas()
        {
        }
        function SetEditArea($areaId, $arIcons)
        {
        }
    }
    class CComponentPanel
    {
        /** @var CBitrixComponent */
        var $component;
        var $componentName;
        var $componentTemplate;
        var $parentComponent;
        var $bComponentEnabled;
        var $bSrcFound = \false;
        var $sSrcFile = "";
        var $iSrcLine = 0;
        public function __construct($component, $componentName, $componentTemplate, $parentComponent, $bComponentEnabled)
        {
        }
        public function GetIcons()
        {
        }
    }
    class CTopPanel
    {
        //Check permissions functions
        public static function IsCanCreatePage($currentDirPath, $documentRoot, $filemanExists)
        {
        }
        public static function IsCanCreateSection($currentDirPath, $documentRoot, $filemanExists)
        {
        }
        public static function IsCanEditPage($currentFilePath, $documentRoot, $filemanExists)
        {
        }
        public static function IsCanEditSection($currentDirPath, $filemanExists)
        {
        }
        public static function IsCanEditPermission($currentFilePath, $documentRoot, $filemanExists)
        {
        }
        public static function IsCanDeletePage($currentFilePath, $documentRoot, $filemanExists)
        {
        }
        public static function GetStandardButtons()
        {
        }
        public static function InitPanelIcons()
        {
        }
        public static function ShowPanelScripts($bReturn = \false)
        {
        }
        public static function IsShownForUser($bShowPanel)
        {
        }
        /**
         * Checks whether the panel should show
         * @return bool
         */
        public static function shouldShowPanel()
        {
        }
        public static function InitPanel()
        {
        }
        public static function AddAttrHint($hint_title, $hint_text = \false)
        {
        }
        public static function AddConstantHint($element_id, $hint_title, $hint_text, $hint_id = \false)
        {
        }
        public static function GetPanelHtml()
        {
        }
    }
}
namespace Bitrix\Main {
    /**
     * Base class for any application.
     */
    abstract class Application
    {
        const JOB_PRIORITY_NORMAL = 100;
        const JOB_PRIORITY_LOW = 50;
        /**
         * @var Application
         */
        protected static $instance = null;
        protected $isBasicKernelInitialized = false;
        protected $isExtendedKernelInitialized = false;
        /**
         * Execution context.
         *
         * @var Context
         */
        protected $context;
        /** @var Router */
        protected $router;
        /** @var Route */
        protected $currentRoute;
        /**
         * Pool of database connections.
         * @var Data\ConnectionPool
         */
        protected $connectionPool;
        /**
         * Managed cache instance.
         * @var \Bitrix\Main\Data\ManagedCache
         */
        protected $managedCache;
        /**
         * Tagged cache instance.
         * @var \Bitrix\Main\Data\TaggedCache
         */
        protected $taggedCache;
        /** @var SessionInterface */
        protected $session;
        /** @var SessionInterface */
        protected $kernelSession;
        /** @var CompositeSessionManager */
        protected $compositeSessionManager;
        /** @var Data\LocalStorage\SessionLocalStorageManager */
        protected $sessionLocalStorageManager;
        /*
         * @var \SplPriorityQueue
         */
        protected $backgroundJobs;
        /**
         * Creates new application instance.
         */
        protected function __construct()
        {
        }
        /**
         * Returns current instance of the Application.
         *
         * @return Application
         */
        public static function getInstance()
        {
        }
        /**
         * Does minimally possible kernel initialization.
         */
        public function initializeBasicKernel()
        {
        }
        /**
         * Does full kernel initialization. Should be called somewhere after initializeBasicKernel().
         *
         * @param array $params Parameters of the current request (depends on application type)
         */
        public function initializeExtendedKernel(array $params)
        {
        }
        private function initializeSessions()
        {
        }
        private function initializeSessionLocalStorage()
        {
        }
        /**
         * @return Router
         */
        public function getRouter() : \Bitrix\Main\Routing\Router
        {
        }
        /**
         * @param Router $router
         */
        public function setRouter(\Bitrix\Main\Routing\Router $router) : void
        {
        }
        /**
         * @return Route
         */
        public function getCurrentRoute() : \Bitrix\Main\Routing\Route
        {
        }
        /**
         * @param Route $currentRoute
         */
        public function setCurrentRoute(\Bitrix\Main\Routing\Route $currentRoute) : void
        {
        }
        /**
         * Initializes context of the current request.
         * Should be implemented in subclass.
         * @param array $params
         */
        protected abstract function initializeContext(array $params);
        /**
         * Starts request execution. Should be called after initialize.
         * Should be implemented in subclass.
         */
        public abstract function start();
        /**
         * Runs controller and its action and sends response to the output.
         *
         * It's a stub method and we can't mark it as abstract because there is compatibility.
         * @return void
         */
        public function run()
        {
        }
        /**
         * Ends work of application.
         * Sends response and then terminates execution.
         * If there is no $response the method will use Context::$response.
         *
         * @param int $status
         * @param Response|null $response
         *
         * @return void
         */
        public function end($status = 0, \Bitrix\Main\Response $response = null)
        {
        }
        protected function handleResponseBeforeSend(\Bitrix\Main\Response $response) : void
        {
        }
        /**
         * Terminates application by invoking exit().
         * It's the right way to finish application.
         *
         * @param int $status
         * @return void
         */
        public function terminate($status = 0)
        {
        }
        /**
         * Exception handler can be initialized through the Config\Configuration (.settings.php file).
         *
         * 'exception_handling' => array(
         *		'value' => array(
         *			'debug' => true,        // output exception on screen
         *			'handled_errors_types' => E_ALL & ~E_STRICT & ~E_NOTICE,    // catchable error types, printed to log
         *			'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT,  // error types from catchable which throws exceptions
         *			'ignore_silence' => false,      // ignore @
         *			'assertion_throws_exception' => true,       // assertion throws exception
         *			'assertion_error_type' => 256,
         *			'log' => array(
         *              'class_name' => 'MyLog',        // custom log class, must extends ExceptionHandlerLog; can be omited, in this case default Diag\FileExceptionHandlerLog will be used
         *              'extension' => 'MyLogExt',      // php extension, is used only with 'class_name'
         *              'required_file' => 'modules/mylog.module/mylog.php'     // included file, is used only with 'class_name'
         *				'settings' => array(        // any settings for 'class_name'
         *					'file' => 'bitrix/modules/error.log',
         *					'log_size' => 1000000,
         *				),
         *			),
         *		),
         *		'readonly' => false,
         *	),
         *
         */
        protected function initializeExceptionHandler()
        {
        }
        public function createExceptionHandlerLog()
        {
        }
        public function createExceptionHandlerOutput()
        {
        }
        /**
         * Creates database connection pool.
         */
        protected function createDatabaseConnection()
        {
        }
        protected function initializeCache()
        {
        }
        /**
         * @return \Bitrix\Main\Diag\ExceptionHandler
         */
        public function getExceptionHandler()
        {
        }
        /**
         * Returns database connections pool object.
         *
         * @return Data\ConnectionPool
         */
        public function getConnectionPool()
        {
        }
        /**
         * Returns context of the current request.
         *
         * @return Context
         */
        public function getContext()
        {
        }
        /**
         * Modifies context of the current request.
         *
         * @param Context $context
         */
        public function setContext(\Bitrix\Main\Context $context)
        {
        }
        /**
         * Static method returns database connection for the specified name.
         * If name is empty - default connection is returned.
         *
         * @static
         * @param string $name Name of database connection. If empty - default connection.
         * @return Data\Connection|DB\Connection
         */
        public static function getConnection($name = "")
        {
        }
        /**
         * Returns new instance of the Cache object.
         *
         * @return Data\Cache
         */
        public function getCache()
        {
        }
        /**
         * Returns manager of the managed cache.
         *
         * @return Data\ManagedCache
         */
        public function getManagedCache()
        {
        }
        /**
         * Returns manager of the managed cache.
         *
         * @return Data\TaggedCache
         */
        public function getTaggedCache()
        {
        }
        public final function getSessionLocalStorageManager() : \Bitrix\Main\Data\LocalStorage\SessionLocalStorageManager
        {
        }
        public final function getLocalSession($name) : \Bitrix\Main\Data\LocalStorage\SessionLocalStorage
        {
        }
        public final function getKernelSession() : \Bitrix\Main\Session\SessionInterface
        {
        }
        public final function getSession() : \Bitrix\Main\Session\SessionInterface
        {
        }
        public final function getCompositeSessionManager() : \Bitrix\Main\Session\CompositeSessionManager
        {
        }
        /**
         * Returns UF manager.
         *
         * @return \CUserTypeManager
         */
        public static function getUserTypeManager()
        {
        }
        /**
         * Returns true id server is in utf-8 mode. False - otherwise.
         *
         * @return bool
         */
        public static function isUtfMode()
        {
        }
        /**
         * Returns server document root.
         *
         * @return null|string
         */
        public static function getDocumentRoot()
        {
        }
        /**
         * Returns personal root directory (relative to document root)
         *
         * @return null|string
         */
        public static function getPersonalRoot()
        {
        }
        /**
         * Resets accelerator if any.
         */
        public static function resetAccelerator()
        {
        }
        /**
         * Adds a job to do after the response was sent.
         * @param callable $job
         * @param array $args
         * @param int $priority
         * @return $this
         */
        public function addBackgroundJob(callable $job, array $args = [], $priority = self::JOB_PRIORITY_NORMAL)
        {
        }
        protected function runBackgroundJobs()
        {
        }
        public function isExtendedKernelInitialized() : bool
        {
        }
    }
    /**
     * Http application extends application. Contains http specific methods.
     */
    class HttpApplication extends \Bitrix\Main\Application
    {
        /**
         * Creates new instance of http application.
         */
        protected function __construct()
        {
        }
        /**
         * Initializes context of the current request.
         *
         * @param array $params Request parameters
         */
        protected function initializeContext(array $params)
        {
        }
        public function createExceptionHandlerOutput()
        {
        }
        /**
         * Starts request execution. Should be called after initialize.
         */
        public function start()
        {
        }
        /**
         * Finishes request execution.
         * It is registered in start() and called automatically on script shutdown.
         */
        public function finish()
        {
        }
        private function getSourceParametersList()
        {
        }
        /**
         * Runs controller and its action and sends response to the output.
         *
         * @return void
         */
        public function run()
        {
        }
        /**
         * @param Controller|string $controller
         * @param string $action
         * @return void
         */
        public final function runController($controller, $action) : void
        {
        }
        /**
         * @param Controller|null   $controller
         * @param HttpResponse|null $result
         * @param ErrorCollection   $errorCollection
         */
        private function finalizeControllerResult($controller, $result, \Bitrix\Main\ErrorCollection $errorCollection) : void
        {
        }
        private function processRunError(\Throwable $e, \Bitrix\Main\ErrorCollection $errorCollection) : void
        {
        }
        private function registerAutoWirings()
        {
        }
        /**
         * Builds a response by result's action.
         * If an action returns non subclass of HttpResponse then the method tries to create Response\StandardJson.
         *
         * @param mixed $actionResult
         * @param ErrorCollection $errorCollection
         *
         * @return HttpResponse
         */
        private function buildResponse($actionResult, \Bitrix\Main\ErrorCollection $errorCollection)
        {
        }
    }
    /**
     * Class Loader loads required files, classes and modules. It is the only class which is included directly.
     * @package Bitrix\Main
     */
    class Loader
    {
        /**
         * Can be used to prevent loading all modules except main and fileman
         */
        const SAFE_MODE = false;
        const BITRIX_HOLDER = "bitrix";
        const LOCAL_HOLDER = "local";
        protected static $safeModeModules = ["main" => true, "fileman" => true];
        protected static $loadedModules = ["main" => true];
        protected static $semiloadedModules = [];
        protected static $modulesHolders = ["main" => self::BITRIX_HOLDER];
        protected static $sharewareModules = [];
        /**
         * Custom autoload paths.
         * @var array [namespace => path]
         */
        protected static $namespaces = [];
        /**
         * Returned by includeSharewareModule() if module is not found
         */
        const MODULE_NOT_FOUND = 0;
        /**
         * Returned by includeSharewareModule() if module is installed
         */
        const MODULE_INSTALLED = 1;
        /**
         * Returned by includeSharewareModule() if module works in demo mode
         */
        const MODULE_DEMO = 2;
        /**
         * Returned by includeSharewareModule() if the trial period is expired
         */
        const MODULE_DEMO_EXPIRED = 3;
        protected static $autoLoadClasses = [];
        /**
         * @var bool Controls throwing exception by requireModule method
         */
        protected static $requireThrowException = true;
        /** @deprecated   */
        const ALPHA_LOWER = "qwertyuioplkjhgfdsazxcvbnm";
        /** @deprecated   */
        const ALPHA_UPPER = "QWERTYUIOPLKJHGFDSAZXCVBNM";
        /**
         * Includes a module by its name.
         *
         * @param string $moduleName Name of the included module
         * @return bool Returns true if module was included successfully, otherwise returns false
         * @throws LoaderException
         */
        public static function includeModule($moduleName)
        {
        }
        /**
         * Includes module by its name, throws an exception in case of failure
         *
         * @param $moduleName
         *
         * @return bool
         * @throws LoaderException
         */
        public static function requireModule($moduleName)
        {
        }
        private static function includeModuleInternal($path)
        {
        }
        /**
         * Includes shareware module by its name.
         * Module must initialize constant <module name>_DEMO = Y in include.php to define demo mode.
         * include.php must return false to define trial period expiration.
         * Constants is used because it is easy to obfuscate them.
         *
         * @param string $moduleName Name of the included module
         * @return int One of the following constant: Loader::MODULE_NOT_FOUND, Loader::MODULE_INSTALLED, Loader::MODULE_DEMO, Loader::MODULE_DEMO_EXPIRED
         */
        public static function includeSharewareModule($moduleName)
        {
        }
        public static function clearModuleCache($moduleName)
        {
        }
        /**
         * Returns document root
         *
         * @return string Document root
         */
        public static function getDocumentRoot()
        {
        }
        /**
         * Registers classes for auto loading.
         * All the frequently used classes should be registered for auto loading (performance).
         * It is not necessary to register rarely used classes. They can be found and loaded dynamically.
         *
         * @param string $moduleName Name of the module. Can be null if classes are not part of any module
         * @param array $classes Array of classes with class names as keys and paths as values.
         * @throws LoaderException
         */
        public static function registerAutoLoadClasses($moduleName, array $classes)
        {
        }
        /**
         * Registers namespaces with custom paths.
         * e.g. ('Bitrix\Main\Dev', '/home/bitrix/web/site/bitrix/modules/main/dev/lib')
         *
         * @param string $namespace A namespace prefix.
         * @param string $path An absolute path.
         */
        public static function registerNamespace($namespace, $path)
        {
        }
        /**
         * Unregisters a namespace.
         * @param string $namespace
         */
        public static function unregisterNamespace($namespace)
        {
        }
        /**
         * Registers an additional autoload handler.
         * @param callable $handler
         */
        public static function registerHandler(callable $handler)
        {
        }
        /**
         * PSR-4 compatible autoloader.
         * https://www.php-fig.org/psr/psr-4/
         *
         * @param $className
         */
        public static function autoLoad($className)
        {
        }
        /**
         * @param $className
         *
         * @throws LoaderException
         */
        public static function requireClass($className)
        {
        }
        /**
         * Checks if file exists in /local or /bitrix directories
         *
         * @param string $path File path relative to /local/ or /bitrix/
         * @param string|null $root Server document root, default self::getDocumentRoot()
         * @return string|bool Returns combined path or false if the file does not exist in both dirs
         */
        public static function getLocal($path, $root = null)
        {
        }
        /**
         * Checks if file exists in personal directory.
         * If $_SERVER["BX_PERSONAL_ROOT"] is not set than personal directory is equal to /bitrix/
         *
         * @param string $path File path relative to personal directory
         * @return string|bool Returns combined path or false if the file does not exist
         */
        public static function getPersonal($path)
        {
        }
        /**
         * Changes requireModule behavior
         *
         * @param bool $requireThrowException
         */
        public static function setRequireThrowException($requireThrowException)
        {
        }
    }
    class LoaderException extends \Exception
    {
        public function __construct($message = "", $code = 0, \Exception $previous = null)
        {
        }
    }
}
namespace Bitrix\Main\UI\Uploader {
    class Package
    {
        /* @var string $index Package ID. */
        protected $index;
        /* @var Log $cidLog */
        protected $cidLog = null;
        /* @var Log $log */
        protected $log = null;
        /** @var string $path Path to temp directory. */
        protected $path;
        /** @var string $CID Control exemplar ID. */
        protected $CID;
        /* @var array */
        protected $copies = array("default" => array("width" => null, "height" => null));
        /* @var Storable */
        protected $storage;
        /** @var array File */
        public $files = array();
        /** @var string */
        public $controlId = "fileUploader";
        /*
         * @var string $script Url to uploading page for forming url to view
         * @var array $processTime Time limits
         */
        protected $processTime = array(
            // Time limits
            "max" => 30,
            "start" => 0,
            "current" => 0,
        );
        /**
         * Package constructor.
         * @param $path
         * @param $CID
         * @param $index
         * @throws ArgumentNullException
         * @throws NotImplementedException
         */
        public function __construct($path, $CID, $index)
        {
        }
        protected function setIndex($index)
        {
        }
        /**
         * Returns package Index.
         * @return string
         */
        public function getIndex()
        {
        }
        /**
         * Returns package Log of Control Exemplar.
         * @return Log
         */
        public function getCidLog($key = null)
        {
        }
        /**
         * Returns package Log.
         * @return array|mixed
         */
        public function getLog($key = null)
        {
        }
        /**
         * Returns file array.
         * @return array
         */
        public function getFile($id)
        {
        }
        protected function setCid($CID)
        {
        }
        /**
         * @return string
         */
        public function getCid()
        {
        }
        /**
         * @return string
         */
        public function getPath()
        {
        }
        /**
         * @param array $params
         * @return $this
         * @throws \Exception
         */
        public function setStorage(array $params)
        {
        }
        /**
         * @return Storable
         */
        public function getStorage()
        {
        }
        /**
         * @param array $params
         * @return $this
         */
        public function setCopies(array $params)
        {
        }
        /**
         * @return array
         */
        public function getCopies()
        {
        }
        /**
         * Decodes and converts keys(!) and values
         * @param $data
         * @return array
         */
        protected static function unescape($data)
        {
        }
        /**
         * Main function for uploading data.
         *
         * @throws NotImplementedException
         * @return array
         */
        public function checkPost($fileLimits)
        {
        }
        /**
         * @return bool
         */
        public function checkTime()
        {
        }
        /**
         * this function just merge 2 arrays with a lot of deep keys
         * array_merge replaces keys in second level and deeper
         * array_merge_recursive multiplies similar keys
         * @param $res
         * @param $res2
         * @return array
         */
        public static function merge($res, $res2)
        {
        }
    }
    class File
    {
        /** @var Package */
        protected $package;
        /** @var array */
        protected $data = array();
        /** @var ErrorCollection */
        protected $errorCollection;
        /** @var HttpClient */
        protected static $http = null;
        /**
         * File constructor.
         * @param Package $package Package for file.
         * @param array $file File array.
         */
        public function __construct($package, array $file)
        {
        }
        /**
         * @param array $file File array("id" => ... ).
         * @return string
         */
        public static function initHash($file = array())
        {
        }
        /**
         * @return string
         */
        public function getId()
        {
        }
        /**
         * @return string
         */
        public function getHash()
        {
        }
        /**
         * @return string
         */
        public function getName()
        {
        }
        /**
         * @return integer
         */
        public function getSize()
        {
        }
        /**
         * @return string
         */
        public function getType()
        {
        }
        /**
         * Returns file data array.
         * @param string $code File code like "default", "real_picture".
         * @return array|null
         */
        public function getFile($code)
        {
        }
        /**
         * Sets file data in file with code $code and saves changes into cache.
         * @param string $code File code like "default", "real_picture".
         * @param array $data Array("name" => "", "code" => ..., "type" => ..., "uploadStatus" => "inprogress",...).
         * @return void
         */
        public function setFile($code, $data)
        {
        }
        /**
         * Saves file on drive.
         * @param array $file Array("name" => "", "code" => ..., "type" => ..., "uploadStatus" => "inprogress",...).
         * @param Storable $storage .
         * @param array $copies Array("small" => array("width" => 100, "height" => 100)).
         * @return Result
         */
        public function saveFile(&$file, \Bitrix\Main\UI\Uploader\Storable $storage, array $copies)
        {
        }
        /**
         * Saves changes into cache.
         * @return void
         */
        public function saveLog()
        {
        }
        /**
         * Just function to prepare data array for saving on drive.
         * @param array $array Data array.
         * @return array
         */
        protected static function arrayWalkRecursive(array $array)
        {
        }
        /**
         * Adds error into errorConnection
         * @param Error $error
         * @return void
         */
        public function addError(\Bitrix\Main\Error $error)
        {
        }
        /**
         * Checks if errorCollection has errors.
         * @return bool
         */
        public function hasError()
        {
        }
        /**
         * Returns error collection.
         * @return ErrorCollection
         */
        public function getErrorCollection()
        {
        }
        /**
         * Returns error message.
         * @return string
         */
        public function getErrorMessage()
        {
        }
        /**
         * Return data array from cache.
         * @param string $hash
         * @param string $path
         * @return array|false
         */
        protected static function getFromCache($hash, $path)
        {
        }
        /**
         * @param Package $package
         * @param array $file
         * @return void
         */
        public static function deleteCache(\Bitrix\Main\UI\Uploader\Package $package, array $file)
        {
        }
        /**
         * Saves serialized data on disk.
         * @param string $hash
         * @param string $path
         * @param array $data
         * @return void
         */
        protected static function setIntoCache($hash, $path, $data)
        {
        }
        /**
         * this function just merge 2 arrays with a lot of deep keys
         * array_merge replaces keys in second level and deeper
         * array_merge_recursive multiplies similar keys
         * @param $res
         * @param $res2
         * @return array
         */
        static function merge($res, $res2)
        {
        }
        /**
         * Sets upload status.
         * @param string $status
         * @return void
         */
        public function setUploadStatus($status)
        {
        }
        /**
         * Checks if file is uploaded.
         * @return bool
         */
        public function isUploaded()
        {
        }
        /**
         * Sets executed status.
         * @param string $status
         * @return void
         */
        public function setExecuteStatus($status)
        {
        }
        /**
         * Check if file is executed.
         * @return bool
         */
        public function isExecuted()
        {
        }
        /**
         * Returns file whole data.
         * @return array
         */
        public function toArray()
        {
        }
        /**
         * Restore data from array and saves into cache.
         * @param array $data
         * @return void
         */
        public function fromArray(array $data)
        {
        }
        /**
         * @param string $cid Control exemplar ID.
         * @param string $hash File ID.
         * @param string $path Path to temporary directory.
         * @return bool
         */
        public static function deleteFile($cid, $hash, $path)
        {
        }
        /**
         * @param string $cid Control exemplar ID.
         * @param string $hash File ID.
         * @param string $path Path to temporary directory.
         * @return void
         */
        public static function viewFile($cid, $hash, $path)
        {
        }
        /**
         * @param string $act
         * @param string $copy
         * @return string
         */
        private function getUrl($act = "view", $copy = "default", $uri = null)
        {
        }
        public static function getUrlFromRelativePath($tmpName)
        {
        }
        /**
         * @param $error
         * @return string
         */
        public static function getUploadErrorMessage($error)
        {
        }
        /**
         * @return HttpClient
         */
        public static function http()
        {
        }
        /**
         * @param $file
         * @param File $f
         * @param $params
         * @return Result
         */
        public static function checkFile(&$file, \Bitrix\Main\UI\Uploader\File $f, $params)
        {
        }
        /**
         * Generates hash from info about file
         * @param $chunksCount
         * @param $chunkNumber
         * @return string
         */
        protected static function getChunkKey($chunksCount, $chunkNumber)
        {
        }
        /**
         * @param array $source Source file.
         * @param array $dest Destination File.
         * @param array $canvasParams Array("width" => 100, "height" => 100).
         * @param array $watermarkParams Array("position" => "top", "type" => "text", "text" => "Bla-bla", "font" => "", "color" => "red").
         * @return array
         */
        public static function createCanvas($source, $dest, $canvasParams = array(), $watermarkParams = array())
        {
        }
        /**
         * @param array $fileData
         * @param array $options
         * @return bool|mixed
         */
        public static function view(array $fileData, $options = array())
        {
        }
    }
    class Log implements \ArrayAccess
    {
        /*
         * @var \CBXVirtualFileFileSystem $file
         */
        protected $file = null;
        var $data = array();
        /**
         * Log constructor.
         * @param string $path Path to log file.
         * @return void
         */
        function __construct($path)
        {
        }
        /**
         * Saves log.
         * @param string $key Key of log array.
         * @param mixed $value value of log array.
         * @return $this
         */
        public function setLog($key, $value)
        {
        }
        /**
         * @param $key
         * @return mixed
         */
        public function getValue($key)
        {
        }
        /**
         *
         */
        public function save()
        {
        }
        /**
         * @return array
         */
        public function getLog()
        {
        }
        /**
         *
         */
        public function unlink()
        {
        }
        /**
         * @param mixed $offset
         * @return bool
         */
        public function offsetExists($offset)
        {
        }
        /**
         * @param mixed $offset
         * @return mixed|null
         */
        public function offsetGet($offset)
        {
        }
        /**
         * @param mixed $offset
         * @param mixed $value
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * @param mixed $offset
         */
        public function offsetUnset($offset)
        {
        }
    }
    interface Storable
    {
        /**
         * @param array $file
         * @return \Bitrix\Main\Result
         */
        public function copy($path, array $file);
    }
    class Storage implements \Bitrix\Main\UI\Uploader\Storable
    {
        protected $path = "";
        protected static $lastId = null;
        protected static $descriptor = null;
        function __construct()
        {
        }
        private static function flush()
        {
        }
        function __destruct()
        {
        }
        /**
         * @param array $path
         * @param array $file
         * @return Result
         */
        public function copy($path, array $file)
        {
        }
        /**
         * @param string $path
         * @param array $chunk
         * @return Result
         */
        public function copyChunk($path, array $chunk)
        {
        }
        public function flushDescriptor()
        {
        }
    }
    class CloudStorage extends \Bitrix\Main\UI\Uploader\Storage implements \Bitrix\Main\UI\Uploader\Storable
    {
        protected $moduleId = "main";
        function __construct($params)
        {
        }
        /**
         * @param $file
         * @return \CCloudStorageBucket|null
         */
        private function findBucket($file)
        {
        }
        protected function moveIntoCloud(\CCloudStorageBucket $bucket, $path, $file)
        {
        }
        public function copy($path, array $file)
        {
        }
        /**
         * @param string $path
         * @param array $file
         * @return Result
         */
        public function copyChunk($path, array $file)
        {
        }
        /**
         * Checks storage.
         * @param int $id
         * @return bool
         */
        public static function checkBucket($id)
        {
        }
    }
    /**
     * Class ErrorCatcher is used in main/tools/upload.php:16 to catch unknown server response.
     * @package Bitrix\Main\UI\Uploader
     *
     */
    class ErrorCatcher
    {
        /**
         * @param string $path URL where error was registered.
         * @param string $errorText Error text.
         * @return void
         */
        public function log($path, $errorText)
        {
        }
    }
}
namespace Bitrix\Main\UI\Selector {
    class Actions
    {
        const GET_DATA = "getData";
        const GET_DEPARTMENT_DATA = "getDepartmentData";
        const GET_TREE_ITEM_DATA = "getTreeItemRelation";
        const SEARCH = "search";
        public static function getList()
        {
        }
        public static function processAjax($action = false, $options = array(), $requestFields = array())
        {
        }
    }
    class Handler
    {
        public const ENTITY_TYPE_GROUP = 'USERGROUPS';
        public static function getProviderByEntityType($entityType)
        {
        }
    }
    class Entities
    {
        const CODE_USER_REGEX = '/^U(\\d+)$/i';
        const CODE_USERALL_REGEX = '/^UA$/i';
        const CODE_USERMANAGER_REGEX = '/^USER_MANAGER$/i';
        const CODE_SONETGROUP_REGEX = '/^SG(\\d+)$/i';
        const CODE_GROUP_REGEX = '/^G(\\d+)$/i';
        const CODE_DEPT_REGEX = '/^D(\\d+)$/i';
        const CODE_DEPTR_REGEX = '/^DR(\\d+)$/i';
        const CODE_CRMCONTACT_REGEX = '/^CRMCONTACT(\\d+)$/i';
        const CODE_CRMCOMPANY_REGEX = '/^CRMCOMPANY(\\d+)$/i';
        const CODE_CRMLEAD_REGEX = '/^CRMLEAD(\\d+)$/i';
        const CODE_CRMDEAL_REGEX = '/^CRMDEAL(\\d+)$/i';
        const ENTITY_TYPE_DEPARTMENTS = 'DEPARTMENTS';
        const LIST_USER_LIMIT = 11;
        public static function getList($params = array())
        {
        }
        public static function getEntityType($params)
        {
        }
        public static function getData($options = array(), $entityTypes = array(), $selectedItems = array())
        {
        }
        public static function getProviderByEntityType($entityType)
        {
        }
        public static function getLastSort($params = array())
        {
        }
        public static function fillLastDestination($destSortData, $params = array())
        {
        }
        private static function compareDestinations($a, $b)
        {
        }
        private static function sortDestinations(&$destinationList, $destSortData)
        {
        }
        public static function search($options = array(), $entityTypes = array(), $requestFields = array())
        {
        }
        public static function loadAll($entityType)
        {
        }
        public static function save($params = [])
        {
        }
    }
    class UserGroups extends \Bitrix\Main\UI\Selector\EntityBase
    {
        private const GROUP_PREFIX = 'A';
        public function loadAll()
        {
        }
        public function search()
        {
        }
        public function getData($params = [])
        {
        }
        public function getTabList($params = [])
        {
        }
    }
}
namespace Bitrix\Main\UI\AccessRights\Entity {
    interface AccessRightEntityInterface
    {
        public function __construct(int $id);
        public function getMetaData() : array;
        public function getId() : int;
        public function getType() : string;
        public function getUrl() : string;
        public function getName() : string;
        public function getAvatar(int $width, int $height) : ?string;
    }
    abstract class EntityBase implements \Bitrix\Main\UI\AccessRights\Entity\AccessRightEntityInterface
    {
        protected $id;
        protected $model;
        public function __construct(int $id)
        {
        }
        public function getId() : int
        {
        }
        public abstract function getType() : string;
        public abstract function getName() : string;
        public abstract function getUrl() : string;
        public abstract function getAvatar(int $width = 58, int $height = 58) : ?string;
        public function getMetaData() : array
        {
        }
        protected abstract function loadModel();
    }
    class UserAll extends \Bitrix\Main\UI\AccessRights\Entity\EntityBase
    {
        public function getType() : string
        {
        }
        public function getName() : string
        {
        }
        public function getUrl() : string
        {
        }
        public function getAvatar(int $width = 58, int $height = 58) : ?string
        {
        }
        protected function loadModel()
        {
        }
    }
    class Group extends \Bitrix\Main\UI\AccessRights\Entity\EntityBase
    {
        public function getType() : string
        {
        }
        public function getName() : string
        {
        }
        public function getUrl() : string
        {
        }
        public function getAvatar(int $width = 58, int $height = 58) : ?string
        {
        }
        protected function loadModel()
        {
        }
    }
    class User extends \Bitrix\Main\UI\AccessRights\Entity\EntityBase
    {
        private $isIntranetUser;
        public function getType() : string
        {
        }
        public function getName() : string
        {
        }
        public function getUrl() : string
        {
        }
        public function getAvatar(int $width = 58, int $height = 58) : ?string
        {
        }
        protected function loadModel()
        {
        }
        private function isExtranetUser()
        {
        }
        private function isIntranetUser()
        {
        }
    }
    class SocnetGroup extends \Bitrix\Main\UI\AccessRights\Entity\EntityBase
    {
        public function getType() : string
        {
        }
        public function getName() : string
        {
        }
        public function getUrl() : string
        {
        }
        public function getAvatar(int $width = 58, int $height = 58) : ?string
        {
        }
        protected function loadModel()
        {
        }
    }
    class AccessDirector extends \Bitrix\Main\UI\AccessRights\Entity\EntityBase
    {
        public function getType() : string
        {
        }
        public function getName() : string
        {
        }
        public function getUrl() : string
        {
        }
        public function getAvatar(int $width = 58, int $height = 58) : ?string
        {
        }
        protected function loadModel()
        {
        }
    }
    class Other extends \Bitrix\Main\UI\AccessRights\Entity\EntityBase
    {
        public function getType() : string
        {
        }
        public function getName() : string
        {
        }
        public function getUrl() : string
        {
        }
        public function getAvatar(int $width = 58, int $height = 58) : ?string
        {
        }
        protected function loadModel()
        {
        }
    }
    class Department extends \Bitrix\Main\UI\AccessRights\Entity\EntityBase
    {
        public function getType() : string
        {
        }
        public function getName() : string
        {
        }
        public function getUrl() : string
        {
        }
        public function getAvatar(int $width = 58, int $height = 58) : ?string
        {
        }
        protected function loadModel()
        {
        }
    }
}
namespace Bitrix\Main\UI\AccessRights {
    class DataProvider
    {
        public function getEntity(string $type, int $id) : \Bitrix\Main\UI\AccessRights\Entity\AccessRightEntityInterface
        {
        }
        private function getEntityClassByType(string $type) : ?string
        {
        }
    }
    class Avatar
    {
        private static $cache = [];
        public static function getSrc($avatarId, $width = 58, $height = 58) : ?string
        {
        }
    }
}
namespace Bitrix\Main\UI\AccessRights\Exception {
    class UnknownEntityTypeException extends \Bitrix\Main\SystemException
    {
    }
}
namespace Bitrix\Main\UI {
    class Spotlight
    {
        const USER_TYPE_OLD = "OLD";
        const USER_TYPE_NEW = "NEW";
        const USER_TYPE_ALL = "ALL";
        const CATEGORY_NAME = "spotlight";
        private $id;
        private $userType;
        private $userTimeSpan;
        private $lifetime;
        private $startDate = null;
        private $endDate = null;
        /**
         * Spotlight constructor.
         *
         * @param string $id Unique identifier
         *
         * @throws ArgumentTypeException
         */
        public function __construct($id)
        {
        }
        /**
         * @param bool $userId
         *
         * @return bool
         */
        public function isAvailable($userId = false)
        {
        }
        public function getActivationDate()
        {
        }
        public function activate($activationDate = false)
        {
        }
        public function deactivate()
        {
        }
        public function isViewed($userId)
        {
        }
        public function getViewDate($userId)
        {
        }
        public function setViewDate($userId, $date = false)
        {
        }
        public function unsetViewDate($userId)
        {
        }
        private function getViewDateOptionName()
        {
        }
        private function getActDateOptionName()
        {
        }
        private function getRegisterDate($userId)
        {
        }
        private function getUserId($userId = false)
        {
        }
        private function getUser($userId)
        {
        }
        /**
         * @return string
         */
        public function getId()
        {
        }
        /**
         * @return string
         */
        public function getUserType()
        {
        }
        /**
         * @param string $userType
         */
        public function setUserType($userType)
        {
        }
        public static function getUserTypes()
        {
        }
        /**
         * @return int
         */
        public function getUserTimeSpan()
        {
        }
        /**
         * @param int $userTimeSpan
         */
        public function setUserTimeSpan($userTimeSpan)
        {
        }
        /**
         * @return int
         */
        public function getLifetime()
        {
        }
        /**
         * @param int $lifetime
         */
        public function setLifetime($lifetime)
        {
        }
        /**
         * @return int|null
         */
        public function getStartDate()
        {
        }
        /**
         * @param int|null $startDate
         */
        public function setStartDate($startDate)
        {
        }
        /**
         * @return int|null
         */
        public function getEndDate()
        {
        }
        /**
         * @param int|null $endDate
         */
        public function setEndDate($endDate)
        {
        }
    }
    class Tour extends \Bitrix\Main\UI\Spotlight
    {
        const CATEGORY_NAME = "tour";
    }
    class AdminPageNavigation extends \Bitrix\Main\UI\PageNavigation
    {
        protected $pageSizes = array(10, 20, 50, 100, 200, 500);
        protected $allowAll = true;
        /**
         * @param string $id Navigation identity like "nav-cars".
         */
        public function __construct($id)
        {
        }
    }
    class Copyright
    {
        const LICENCE_MIT = "MIT";
        const LICENCE_COMMERCIAL = "Commercial";
        const LICENCE_PUBLIC_DOMAIN = "Public Domain";
        const LICENCE_BSD2 = "2-Clause BSD";
        const LICENCE_BSD3 = "3-Clause BSD";
        const LICENCE_APACHE2 = "Apache License, Version 2.0";
        const LICENCE_W3C = "W3C License";
        const LICENSE_GPLV2 = "General Public License, version 2";
        const LICENCE_CUSTOM = "License";
        protected $productName, $productUrl, $copyright, $copyrightUrl, $vendorName, $vendorUrl, $supportUrl, $licence, $licenceUrl, $licenceText;
        public function __construct($productName)
        {
        }
        /**
         * Returns the product info.
         * @return static
         */
        public static function getBitrixCopyright()
        {
        }
        /**
         * @return mixed
         */
        public function getProductName()
        {
        }
        /**
         * @return mixed
         */
        public function getProductUrl()
        {
        }
        /**
         * @return mixed
         */
        public function getCopyright()
        {
        }
        /**
         * @return mixed
         */
        public function getCopyrightUrl()
        {
        }
        /**
         * @return mixed
         */
        public function getVendorName()
        {
        }
        /**
         * @return mixed
         */
        public function getVendorUrl()
        {
        }
        /**
         * @return mixed
         */
        public function getSupportUrl()
        {
        }
        /**
         * @return mixed
         */
        public function getLicence()
        {
        }
        /**
         * @return mixed
         */
        public function getLicenceUrl()
        {
        }
        /**
         * @return mixed
         */
        public function getLicenceText()
        {
        }
        /**
         * @param mixed $productName
         * @return static
         */
        public function setProductName($productName)
        {
        }
        /**
         * @param mixed $productUrl
         * @return static
         */
        public function setProductUrl($productUrl)
        {
        }
        /**
         * @param mixed $copyright
         * @return static
         */
        public function setCopyright($copyright)
        {
        }
        /**
         * @param mixed $copyrightUrl
         * @return static
         */
        public function setCopyrightUrl($copyrightUrl)
        {
        }
        /**
         * @param mixed $vendorName
         * @return static
         */
        public function setVendorName($vendorName)
        {
        }
        /**
         * @param mixed $vendorUrl
         * @return static
         */
        public function setVendorUrl($vendorUrl)
        {
        }
        /**
         * @param mixed $supportUrl
         * @return static
         */
        public function setSupportUrl($supportUrl)
        {
        }
        /**
         * @param mixed $licence
         * @return static
         */
        public function setLicence($licence)
        {
        }
        /**
         * @param mixed $licenceUrl
         * @return Copyright
         */
        public function setLicenceUrl($licenceUrl)
        {
        }
        /**
         * @param mixed $licenceText
         * @return static
         */
        public function setLicenceText($licenceText)
        {
        }
        /**
         * Returns the array of third-party software components, sorted alphabetically.
         * @return static[]
         */
        public static function getThirdPartySoftware()
        {
        }
        protected static function getMainThirdParty()
        {
        }
    }
    class SessionExpander
    {
        /**
         * Initializes scripts on the page.
         */
        public static function init()
        {
        }
        /**
         * Returns the value of the signed string or false on an error.
         * @param $signedParam
         * @return bool|string
         */
        public static function getSignedValue($signedParam)
        {
        }
        protected static function getSalt()
        {
        }
    }
    class FileInput
    {
        protected $elementSetts = array("name" => "FILE[n#IND#]", "description" => true, "delete" => true, "edit" => true, "thumbSize" => 640);
        protected $uploadSetts = array("upload" => false, "uploadType" => "path", "medialib" => false, "fileDialog" => false, "cloud" => false, "maxCount" => 0, "maxSize" => 0);
        protected $id = "bx_iblockfileprop";
        protected $files = array();
        protected static $instance = null;
        protected $templates = array();
        public static $templatePatterns = array(
            'description' => <<<HTML
\t\t<input type="text" id="#id#Description" name="#description_name#" value="#description#" class="adm-fileinput-item-description" />
HTML
,
            'regularInput' => '<input class="bx-bxu-fileinput-value" type="hidden" id="#id#Value" name="#input_name#" value="#input_value#" />',
            'arrayInput' => <<<HTML
\t\t<input type="hidden" id="#id#Value" name="#input_name#[tmp_name]" value="#input_value#" />
\t\t<input type="hidden" name="#input_name#[type]" value="#type#" />
\t\t<input type="hidden" name="#input_name#[name]" value="#name#" />
\t\t<input type="hidden" name="#input_name#[size]" value="#size#" />
\t\t<input type="hidden" name="#input_name#[error]" value="0" />
HTML
,
            'new' => <<<HTML
\t<div class="adm-fileinput-item">
\t\t<div class="adm-fileinput-item-preview">
\t\t\t<span class="adm-fileinput-item-loading">
\t\t\t\t<span class="container-loading-title">#MESS_LOADING#</span>
\t\t\t\t<span class="container-loading-bg"><span class="container-loading-bg-progress" style="width: 5%;" id="#id#Progress"></span></span>
\t\t\t</span>
\t\t\t<div class="adm-fileinput-item-preview-icon">
\t\t\t\t<div class="bx-file-icon-container-medium icon-#ext#">
\t\t\t\t\t<div class="bx-file-icon-cover">
\t\t\t\t\t\t<div class="bx-file-icon-corner">
\t\t\t\t\t\t\t<div class="bx-file-icon-corner-fix"></div>
\t\t\t\t\t\t</div>
\t\t\t\t\t\t<div class="bx-file-icon-images"></div>
\t\t\t\t\t</div>
\t\t\t\t\t<div class="bx-file-icon-label"></div>
\t\t\t\t</div>
\t\t\t\t<span class="container-doc-title" id="#id#Name">#name#</span>
\t\t\t</div>
\t\t\t<div class="adm-fileinput-item-preview-img">#preview#</div>
\t\t\t<input class="bx-bxu-fileinput-value" type="hidden" id="#id#Value" name="#input_name#" value="#input_value#" />
\t\t</div>
\t\t#description#
\t\t<div class="adm-fileinput-item-panel">
\t\t\t<span class="adm-fileinput-item-panel-btn adm-btn-setting" id="#id#Edit">&nbsp;</span>
\t\t\t<span class="adm-fileinput-item-panel-btn adm-btn-del" id="#id#Del">&nbsp;</span>
\t\t</div>
\t\t<div id="#id#Properties" class="adm-fileinput-item-properties">#properties#</div>
\t</div>
HTML
,
            'unsaved' => <<<HTML
<div class="adm-fileinput-item-wrapper" id="#id#Block">
\t<div class="adm-fileinput-item">
\t\t<div class="adm-fileinput-item-preview">
\t\t\t<span class="adm-fileinput-item-loading">
\t\t\t\t<span class="container-loading-title">#MESS_LOADING#</span>
\t\t\t\t<span class="container-loading-bg"><span class="container-loading-bg-progress" style="width: 60%;" id="#id#Progress"></span></span>
\t\t\t</span>
\t\t\t<div class="adm-fileinput-item-preview-icon">
\t\t\t\t<div class="bx-file-icon-container-medium icon-#ext#">
\t\t\t\t\t<div class="bx-file-icon-cover">
\t\t\t\t\t\t<div class="bx-file-icon-corner">
\t\t\t\t\t\t\t<div class="bx-file-icon-corner-fix"></div>
\t\t\t\t\t\t</div>
\t\t\t\t\t\t<div class="bx-file-icon-images"></div>
\t\t\t\t\t</div>
\t\t\t\t\t<div class="bx-file-icon-label"></div>
\t\t\t\t</div>
\t\t\t\t<span class="container-doc-title" id="#id#Name">#name#</span>
\t\t\t</div>
\t\t\t<div class="adm-fileinput-item-preview-img" id="#id#Canvas"></div>
\t\t\t#input#
\t\t</div>
\t\t#description#
\t\t<div class="adm-fileinput-item-panel">
\t\t\t<span class="adm-fileinput-item-panel-btn adm-btn-setting" id="#id#Edit">&nbsp;</span>
\t\t\t<span class="adm-fileinput-item-panel-btn adm-btn-del" id="#id#Del">&nbsp;</span>
\t\t</div>
\t\t<div id="#id#Properties" class="adm-fileinput-item-properties">#properties#</div>
\t</div>
</div>
HTML
,
            /**
             * adm-fileinput-item-saved - saved
             * adm-fileinput-item-error - error
             * adm-fileinput-item-image - file is image
             *
             */
            'uploaded' => <<<HTML
<div class="adm-fileinput-item-wrapper" id="#id#Block">
\t<div class="adm-fileinput-item adm-fileinput-item-saved">
\t\t<div class="adm-fileinput-item-preview">
\t\t\t<span class="adm-fileinput-item-loading">
\t\t\t\t<span class="container-loading-title">#MESS_LOADING#</span>
\t\t\t\t<span class="container-loading-bg"><span class="container-loading-bg-progress" style="width: 60%;"></span></span>
\t\t\t</span>
\t\t\t<div class="adm-fileinput-item-preview-icon">
\t\t\t\t<div class="bx-file-icon-container-medium icon-#ext#">
\t\t\t\t\t<div class="bx-file-icon-cover">
\t\t\t\t\t\t<div class="bx-file-icon-corner">
\t\t\t\t\t\t\t<div class="bx-file-icon-corner-fix"></div>
\t\t\t\t\t\t</div>
\t\t\t\t\t\t<div class="bx-file-icon-images"></div>
\t\t\t\t\t</div>
\t\t\t\t\t<div class="bx-file-icon-label"></div>
\t\t\t\t</div>
\t\t\t\t<span class="container-doc-title" id="#id#Name">#name#</span>
\t\t\t</div>
\t\t\t<div class="adm-fileinput-item-preview-img" id="#id#Canvas"></div>
\t\t\t<input style="display: none;" type="hidden" id="#id#Value" readonly="readonly" name="#input_name#" value="#id#" />
\t\t</div>
\t\t#description#
\t\t<div class="adm-fileinput-item-panel">
\t\t\t<span class="adm-fileinput-item-panel-btn adm-btn-setting" id="#id#Edit">&nbsp;</span>
\t\t\t<span class="adm-fileinput-item-panel-btn adm-btn-del" id="#id#Del">&nbsp;</span>
\t\t</div>
\t\t<div id="#id#Properties" class="adm-fileinput-item-properties">#properties#</div>
\t</div>
</div>
HTML
,
            'unexisted' => <<<HTML
<div class="adm-fileinput-item-wrapper" id="#id#Block">
\t<div class="adm-fileinput-item adm-fileinput-item-saved">
\t\t<div class="adm-fileinput-item-preview">
\t\t\t<span class="adm-fileinput-item-loading">
\t\t\t\t<span class="container-loading-title">#MESS_LOADING#</span>
\t\t\t\t<span class="container-loading-bg"><span class="container-loading-bg-progress" style="width: 60%;"></span></span>
\t\t\t</span>
\t\t\t<div class="adm-fileinput-item-preview-icon">
\t\t\t\t<div class="bx-file-icon-container-medium icon-#ext#">
\t\t\t\t\t<div class="bx-file-icon-cover">
\t\t\t\t\t\t<div class="bx-file-icon-corner">
\t\t\t\t\t\t\t<div class="bx-file-icon-corner-fix"></div>
\t\t\t\t\t\t</div>
\t\t\t\t\t\t<div class="bx-file-icon-images"></div>
\t\t\t\t\t</div>
\t\t\t\t\t<div class="bx-file-icon-label"></div>
\t\t\t\t</div>
\t\t\t\t<span class="container-doc-title" id="#id#Name">#name#</span>
\t\t\t</div>
\t\t\t<div class="adm-fileinput-item-preview-img" id="#id#Canvas"></div>
\t\t\t<input style="display: none;" data-fileinput="Y" type="file" id="#id#Value" readonly="readonly" name="#input_name#" value="" />
\t\t</div>
\t\t#description#
\t\t<div class="adm-fileinput-item-panel">
\t\t\t<span class="adm-fileinput-item-panel-btn adm-btn-del" id="#id#Del">&nbsp;</span>
\t\t</div>
\t\t<div id="#id#Properties" class="adm-fileinput-item-properties">#properties#</div>
\t</div>
</div>
HTML
,
        );
        /**
         * @param array $params
         */
        public function __construct($params = array())
        {
        }
        /**
         * @param array $params
         * @param bool $hashIsID
         * @return FileInput
         */
        public static function createInstance($params = array(), $hashIsID = true)
        {
        }
        /**
         * @param array $values
         * @return string
         */
        public function show($values = array(), $getDataFromRequest = false)
        {
        }
        private function getExtDialogs()
        {
        }
        private function formFile($fileId = "", $inputName = "file")
        {
        }
        private function getFile($fileId = "", $inputName = "file", $getDataFromRequest = false)
        {
        }
        private static function getInputName($inputName, $type = "")
        {
        }
        /**
         * Prepares file array for saving. It is important to use if BX_TEMPORARY_FILES_DIRECTORY is defined.
         * @param $file
         * @return array|null
         */
        public static function prepareFile($file)
        {
        }
    }
    class FileInputUtility
    {
        protected static $instance = null;
        const SESSION_VAR_PREFIX = "MFI_UPLOADED_FILES_";
        const SESSION_LIST = "MFI_SESSIONS";
        const SESSION_TTL = 86400;
        /**
         * @return FileInputUtility
         */
        public static function instance()
        {
        }
        public function __construct()
        {
        }
        public function registerControl($CID, $controlId = "")
        {
        }
        public function registerFile($CID, $fileId)
        {
        }
        public function unRegisterFile($CID, $fileId)
        {
        }
        public function checkFiles($controlId, $arFiles)
        {
        }
        public function checkDeletedFiles($controlId)
        {
        }
        public function checkFile($CID, $fileId)
        {
        }
        public function getControlByCid($CID)
        {
        }
        public function isCidRegistered($CID)
        {
        }
        public function getUserFieldCid(array $userField)
        {
        }
        protected function initSession($CID, $controlId)
        {
        }
        protected function getSessionControlFiles($controlId)
        {
        }
    }
}
namespace Bitrix\Main\UI\Viewer\Renderer {
    abstract class Renderer
    {
        const JS_TYPE_UNKNOWN = 'unknown';
        protected $name;
        /** @var Uri */
        protected $sourceUri;
        /** @var array */
        protected $options;
        public function __construct($name, \Bitrix\Main\Web\Uri $sourceUri, array $options = [])
        {
        }
        public function getOption($name, $defaultValue = null)
        {
        }
        /**
         * Returns value, that belongs to path.
         *
         * @param array|\ArrayAccess $array Target array.
         * @param string $path Path. Example data.altContent.src
         * @param null $defaultValue Default value
         * @return array|\ArrayAccess|mixed|null
         * @throws ArgumentException
         */
        private function getByPath($array, $path, $defaultValue = null)
        {
        }
        public static function getAllowedContentTypes()
        {
        }
        public static function getJsType()
        {
        }
        public static function getSizeRestriction()
        {
        }
        public abstract function render();
        public function getData()
        {
        }
    }
    class Code extends \Bitrix\Main\UI\Viewer\Renderer\Renderer
    {
        const JS_TYPE_CODE = 'code';
        const SIZE_RESTRICTION = 2097152;
        public static function getJsType()
        {
        }
        public static function getSizeRestriction()
        {
        }
        public static function getAllowedContentTypes()
        {
        }
        public function render()
        {
        }
        public function getData()
        {
        }
    }
    class RestrictedBySize extends \Bitrix\Main\UI\Viewer\Renderer\Renderer
    {
        public function __construct()
        {
        }
        public function render()
        {
        }
    }
    class Video extends \Bitrix\Main\UI\Viewer\Renderer\Renderer
    {
        const WIDTH = 700;
        const HEIGHT = 700;
        const JS_TYPE_VIDEO = 'video';
        public function getWidth()
        {
        }
        public function getHeight()
        {
        }
        public static function getJsType()
        {
        }
        public static function getAllowedContentTypes()
        {
        }
        public function render()
        {
        }
        public function getData()
        {
        }
        protected function modifySourcesByDirtyHacks(array $sources)
        {
        }
    }
    class Audio extends \Bitrix\Main\UI\Viewer\Renderer\Renderer
    {
        const JS_TYPE_AUDIO = 'audio';
        public static function getJsType()
        {
        }
        public static function getAllowedContentTypes()
        {
        }
        public function render()
        {
        }
        public function getData()
        {
        }
    }
    class Pdf extends \Bitrix\Main\UI\Viewer\Renderer\Renderer
    {
        const WIDTH = 900;
        const HEIGHT = 800;
        const JS_TYPE_DOCUMENT = 'document';
        public function getWidth()
        {
        }
        public function getHeight()
        {
        }
        public static function getJsType()
        {
        }
        public static function getAllowedContentTypes()
        {
        }
        public function render()
        {
        }
        public function getData()
        {
        }
    }
    class Stub extends \Bitrix\Main\UI\Viewer\Renderer\Renderer
    {
        public function __construct()
        {
        }
        public function render()
        {
        }
    }
    class Image extends \Bitrix\Main\UI\Viewer\Renderer\Renderer
    {
        const WIDTH = 1920;
        const HEIGHT = 1080;
        const JS_TYPE_IMAGE = 'image';
        public function getWidth()
        {
        }
        public function getHeight()
        {
        }
        public function getOriginalImage()
        {
        }
        public static function getJsType()
        {
        }
        public static function getAllowedContentTypes()
        {
        }
        public function render()
        {
        }
    }
}
namespace Bitrix\Main\UI\Viewer\Transformation {
    abstract class Transformation
    {
        public static function getInputContentTypes()
        {
        }
        public abstract function getOutputContentType();
        public abstract function getOutputExtension();
        /**
         * @return FileTransformer
         */
        public abstract function buildTransformer();
        /**
         * Returns maximum file size for transformation.
         *
         * @return int
         */
        public function getInputMaxSize()
        {
        }
    }
    class Document extends \Bitrix\Main\UI\Viewer\Transformation\Transformation
    {
        public static function getInputContentTypes()
        {
        }
        public function getOutputContentType()
        {
        }
        public function getOutputExtension()
        {
        }
        public function buildTransformer()
        {
        }
        public function getInputMaxSize()
        {
        }
    }
    class Video extends \Bitrix\Main\UI\Viewer\Transformation\Transformation
    {
        public static function getInputContentTypes()
        {
        }
        public function getOutputContentType()
        {
        }
        public function getOutputExtension()
        {
        }
        public function buildTransformer()
        {
        }
        public function getInputMaxSize()
        {
        }
    }
    final class TransformerManager
    {
        const QUEUE_NAME = 'main_preview';
        const PULL_TAG = 'mainTransform';
        protected static $transformationList = [];
        public function __construct()
        {
        }
        public static function getPullTag($fileId)
        {
        }
        private function buildTransformationList()
        {
        }
        public function isAvailable()
        {
        }
        public function transform($fileId)
        {
        }
        protected function shouldSendToTransformation($information, array $fileData)
        {
        }
        protected function getTransformationInformation($fileId)
        {
        }
        public function subscribeCurrentUserForTransformation($fileId)
        {
        }
        /**
         * @param array $fileData
         *
         * @return null|Transformation
         * @throws \ReflectionException
         */
        public function buildTransformationByFile(array $fileData)
        {
        }
        /**
         * @param $contentType
         *
         * @return Transformation|null
         * @throws \ReflectionException
         */
        private function buildTransformationByContentType($contentType)
        {
        }
    }
    final class CallbackHandler implements \Bitrix\Transformer\InterfaceCallback
    {
        /**
         * Function to process results after transformation.
         *
         * @param int $status Status of the command.
         * @param string $command Name of the command.
         * @param array $params Input parameters of the command.
         * @param array $result Result of the command from controller
         *      Here keys are identifiers to result information. If result is file it will be in 'files' array.
         *      'files' - array of the files, where key is extension, and value is absolute path to the result file.
         *
         * This method should return true on success or string on error.
         *
         * @return bool|string
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function call($status, $command, $params, $result = array())
        {
        }
        protected static function sendNotifyAboutTransformation($fileId)
        {
        }
        protected static function saveFile($file, $type)
        {
        }
        public static function existSavedFile($fileId)
        {
        }
    }
}
namespace Bitrix\Main\UI\Viewer {
    final class PreviewManager
    {
        const GET_KEY_TO_SEND_PREVIEW_CONTENT = 'ibxPreview';
        const GET_KEY_TO_SHOW_IMAGE = 'ibxShowImage';
        const HEADER_TO_SEND_PREVIEW = 'BX-Viewer';
        const HEADER_TO_RESIZE_IMAGE = 'BX-Viewer-image';
        const HEADER_TO_GET_SOURCE = 'BX-Viewer-src';
        const HEADER_TO_RUN_FORCE_TRANSFORMATION = 'BX-Viewer-force-transformation';
        const HEADER_TO_CHECK_TRANSFORMATION = 'BX-Viewer-check-transformation';
        /** @var TransformerManager  */
        private $transformer;
        private $rendererList = [];
        private static $disableCatchingViewByUser = false;
        /**
         * @var HttpRequest
         */
        private $httpRequest;
        public function __construct(\Bitrix\Main\HttpRequest $httpRequest = null)
        {
        }
        private function buildTransformer()
        {
        }
        private function buildViewRendererList()
        {
        }
        public static function disableCatchingViewByUser()
        {
        }
        public static function enableCatchingViewByUser()
        {
        }
        public static function isDisabledCatchingViewByUser()
        {
        }
        public function isInternalRequest($file, $options)
        {
        }
        public function processViewByUserRequest($file, $options)
        {
        }
        protected function sendPreviewContent($file, $options)
        {
        }
        protected function showImage($file, $options)
        {
        }
        protected function sendResizedImage($file)
        {
        }
        protected function prepareRenderParameters($file)
        {
        }
        protected function checkTransformation($file)
        {
        }
        protected function sendPreview($file, $forceTransformation = false)
        {
        }
        public function setPreviewImageId($fileId, $previewImageId)
        {
        }
        public function generatePreview($fileId)
        {
        }
        protected function getSourceUri()
        {
        }
        protected function signFileId($fileId)
        {
        }
        protected function unsignFileId($signedString)
        {
        }
        public function getByImage($fileId, \Bitrix\Main\Web\Uri $sourceUri)
        {
        }
        protected function getViewFileData(array $fileData)
        {
        }
        protected function getFilePreviewEntryByFileId($fileId)
        {
        }
        protected function buildRenderByFile($originalName, $contentType, \Bitrix\Main\Web\Uri $sourceUri, array $options = [])
        {
        }
        public function getRenderClassByFile(array $file)
        {
        }
        private function shouldRestrictBySize(array $file, $rendererClass)
        {
        }
        private function findRenderClassByContentType($contentType)
        {
        }
        /**
         * Temporary dirty hack. It is here while we do not solve the problem of race conditions in b_file managed cache.
         * Get file data from b_file on $fileId.
         *
         * @param int $fileId
         * @param bool $cacheCleaned
         * @return array|false
         */
        protected function getFileData($fileId, $cacheCleaned = false)
        {
        }
    }
    class ItemAttributes
    {
        /**
         * @var
         */
        protected $fileData;
        /**
         * @var array
         */
        protected $attributes = [];
        /**
         * @var array
         */
        protected $actions = [];
        /**
         * @var
         */
        protected $sourceUri;
        /**
         * @var array
         */
        protected $options = [];
        /**
         * @var array
         */
        protected static $renderClassByContentType = [];
        /**
         * ItemAttributes constructor.
         *
         * @param $fileData
         * @param $sourceUri
         * @param array $options
         */
        private function __construct($fileData, $sourceUri, array $options = [])
        {
        }
        protected function setDefaultAttributes()
        {
        }
        /**
         * @param $fileId
         * @param $sourceUri
         *
         * @return static
         * @throws ArgumentException
         */
        public static function buildByFileId($fileId, $sourceUri)
        {
        }
        /**
         * @param array $fileData
         * @param $sourceUri
         *
         * @return static
         * @throws ArgumentException
         */
        public static function buildByFileData(array $fileData, $sourceUri)
        {
        }
        public static function tryBuildByFileData(array $fileData, $sourceUri)
        {
        }
        /**
         * @param $sourceUri
         *
         * @return static
         */
        public static function buildAsUnknownType($sourceUri)
        {
        }
        public static function tryBuildByFileId($fileId, $sourceUri)
        {
        }
        /**
         * @param $title
         *
         * @return $this
         */
        public function setTitle($title)
        {
        }
        /**
         * @param $id
         *
         * @return $this
         */
        public function setGroupBy($id)
        {
        }
        /**
         * @return $this
         */
        public function unsetGroupBy()
        {
        }
        /**
         * @return string|null
         */
        public function getGroupBy()
        {
        }
        /**
         * @param array $action
         *
         * @return $this
         */
        public function addAction(array $action)
        {
        }
        /**
         * @return array
         */
        public function getActions()
        {
        }
        /**
         * @param string $extension
         * @return ItemAttributes
         */
        public function setExtension($extension)
        {
        }
        /**
         * @return string|null
         */
        public function getExtension()
        {
        }
        /**
         * @return mixed|null
         */
        public function getViewerType()
        {
        }
        /**
         * @param $name
         * @param $value
         *
         * @return $this
         */
        public function setAttribute($name, $value = null)
        {
        }
        /**
         * @param $name
         *
         * @return $this
         */
        public function unsetAttribute($name)
        {
        }
        /**
         * @param $name
         *
         * @return bool
         */
        public function issetAttribute($name)
        {
        }
        /**
         * @param $name
         *
         * @return mixed|null
         */
        public function getAttribute($name)
        {
        }
        /**
         * @return array
         */
        public function getAttributes()
        {
        }
        /**
         * @param array $fileArray
         *
         * @return mixed|string
         * @throws \ReflectionException
         */
        protected static function getViewerTypeByFile(array $fileArray)
        {
        }
        /**
         * @return string
         */
        public function toString()
        {
        }
        /**
         * @return string
         */
        public function __toString()
        {
        }
        /**
         * Convert structure to array which we can use in js (node.dataset).
         * @return array
         */
        public function toDataSet()
        {
        }
        protected function convertKeyToDataSet($key)
        {
        }
    }
}
namespace Bitrix\Main\UI {
    class ReversePageNavigation extends \Bitrix\Main\UI\PageNavigation
    {
        /**
         * @param string $id Navigation identity like "nav-cars".
         * @param int $count Record count.
         */
        public function __construct($id, $count)
        {
        }
        /**
         * Returns number of pages.
         * @return int
         */
        public function getPageCount()
        {
        }
        /**
         * Returns the current page number.
         * @return int
         */
        public function getCurrentPage()
        {
        }
        /**
         * Returns offset of the first record of the current page.
         * @return int
         */
        public function getOffset()
        {
        }
        /**
         * Returns the number of records in the current page.
         * @return int
         */
        public function getLimit()
        {
        }
    }
    class FileInputReceiver
    {
        protected $status = array();
        protected $id = "unknown";
        protected $uploader;
        const STATUS_SUCCESS = 'success';
        const STATUS_DENIED = 'denied';
        const STATUS_ERROR = 'error';
        const STATUS_NEED_AUTH = 'need_auth';
        const STATUS_INVALID_SIGN = 'invalid_sign';
        function __construct($params = array(), $signature)
        {
        }
        protected function getAgent()
        {
        }
        public static function sign($params = array())
        {
        }
        protected static function resizePicture(&$f, $resize = array())
        {
        }
        protected static function handleFileByPath($hash, &$file)
        {
        }
        protected static function handleFileByHash($hash, &$file)
        {
        }
        public function handleFile($hash, &$file)
        {
        }
        public function exec()
        {
        }
    }
}
namespace Bitrix\Main\UI\Filter {
    /**
     * Class DateType. Available subtypes of date field
     * @package Bitrix\Main\UI\Filter
     */
    class DateType
    {
        const NONE = "NONE";
        const YESTERDAY = "YESTERDAY";
        const CURRENT_DAY = "CURRENT_DAY";
        const TOMORROW = "TOMORROW";
        const CURRENT_WEEK = "CURRENT_WEEK";
        const CURRENT_MONTH = "CURRENT_MONTH";
        const CURRENT_QUARTER = "CURRENT_QUARTER";
        const LAST_7_DAYS = "LAST_7_DAYS";
        const LAST_30_DAYS = "LAST_30_DAYS";
        const LAST_60_DAYS = "LAST_60_DAYS";
        const LAST_90_DAYS = "LAST_90_DAYS";
        const PREV_DAYS = "PREV_DAYS";
        const NEXT_DAYS = "NEXT_DAYS";
        const MONTH = "MONTH";
        const QUARTER = "QUARTER";
        const YEAR = "YEAR";
        const EXACT = "EXACT";
        const LAST_WEEK = "LAST_WEEK";
        const LAST_MONTH = "LAST_MONTH";
        const RANGE = "RANGE";
        const NEXT_WEEK = "NEXT_WEEK";
        const NEXT_MONTH = "NEXT_MONTH";
        /**
         * Gets subtypes list of date field
         * @return array
         */
        public static function getList()
        {
        }
        /**
         * Returns postfix for request.
         * @return string
         */
        public static function getPostfix()
        {
        }
        /**
         * Search in plain array data that can belongs to this type.
         * @param array $data
         * @param array $filterFields
         * @return array
         */
        public static function getLogicFilter(array $data, array $filterFields)
        {
        }
    }
    class DateTime
    {
        /** @var MainType\Date */
        protected $date;
        /** @var MainType\DateTime */
        protected $dateTime;
        /** @var ?number */
        protected $timestamp;
        /**
         * DateTime constructor.
         * @param string $timestamp
         */
        public function __construct($timestamp = "")
        {
        }
        /**
         * Adjusts time relative current timezone offset
         * @param MainType\DateTime $dateTime
         * @return int timestamp
         */
        public static function adjustTime(\Bitrix\Main\Type\DateTime $dateTime)
        {
        }
        /**
         * Gets month from date
         * @return string
         */
        public function month()
        {
        }
        /**
         * Gets year
         * @return string
         */
        public function year()
        {
        }
        /**
         * Gets quarter number
         * @return int
         */
        public function quarter()
        {
        }
        /**
         * Gets quarter start datetime
         * @return string
         */
        public function quarterStart()
        {
        }
        /**
         * Gets quarter end dateTime
         * @return string
         */
        public function quarterEnd()
        {
        }
        /**
         * Gets datetime string with offset.
         * @param string $offset
         * @return string
         */
        public function offset($offset)
        {
        }
        /**
         * Gets datetime string
         * @return string
         */
        public function toString()
        {
        }
        /**
         * Gets timestamp
         * @return number
         */
        public function getTimestamp()
        {
        }
    }
    /**
     * Class Actions. Available actions for works with user options.
     * @package Bitrix\Main\UI\Filter
     */
    class Actions
    {
        const SET_FILTER = "SET_FILTER";
        const REMOVE_FILTER = "REMOVE_FILTER";
        const SET_FILTER_ARRAY = "SET_FILTER_ARRAY";
        const RESTORE_FILTER = "RESTORE_FILTER";
        const SET_TMP_PRESET = "SET_TMP_PRESET";
        const PIN_PRESET = "PIN_PRESET";
        /**
         * Gets actions list
         * @return array
         */
        public static function getList()
        {
        }
    }
    /**
     * Class Type. Available field types
     * @package Bitrix\Main\UI\Filter
     */
    class Type
    {
        const STRING = "STRING";
        const TEXTAREA = "TEXTAREA";
        const NUMBER = "NUMBER";
        const DATE = "DATE";
        const SELECT = "SELECT";
        const MULTI_SELECT = "MULTI_SELECT";
        const DEST_SELECTOR = "DEST_SELECTOR";
        const ENTITY = "ENTITY";
        const CUSTOM = "CUSTOM";
        const CUSTOM_ENTITY = "CUSTOM_ENTITY";
        const CUSTOM_DATE = "CUSTOM_DATE";
        protected $list = [];
        protected static $instance;
        public function __construct()
        {
        }
        public function getTypesList()
        {
        }
        /**
         * @return Type
         */
        public static function getInstance()
        {
        }
        /**
         * Gets field types list
         * @return array
         */
        public static function getList()
        {
        }
        /**
         * Picks up from request filter data and converts it to ORM filter.
         * @param array $data
         * @param array $sourceFields
         * @return array
         */
        public static function getLogicFilter($data, array $sourceFields)
        {
        }
    }
    /**
     * Class NumberType. Subtypes of number field
     * @package Bitrix\Main\UI\Filter
     */
    class NumberType
    {
        const SINGLE = "exact";
        // =
        const RANGE = "range";
        // <= =>
        const MORE = "more";
        // >
        const LESS = "less";
        // <
        /**
         * Gets number field types list
         * @return array
         */
        public static function getList()
        {
        }
        /**
         * Returns postfix for request.
         * @return string
         */
        public static function getPostfix()
        {
        }
        /**
         * Search in plain array data that can belongs to this type.
         * @param array $data
         * @param array $filterFields
         * @return array
         */
        public static function getLogicFilter(array $data, array $filterFields)
        {
        }
    }
    /**
     * Class Theme. Available default filter themes
     * @package Bitrix\Main\UI\Filter
     */
    class Theme
    {
        const DEFAULT_FILTER = "DEFAULT";
        const BORDER = "BORDER";
        const ROUNDED = "ROUNDED";
        /**
         * Gets themes list
         * @return array
         */
        public static function getList()
        {
        }
    }
    /**
     * Class Field
     * @package Bitrix\Main\UI\Filter
     */
    class Field
    {
        /**
         * Prepares data of string field
         * @param string $name
         * @param string $defaultValue
         * @param string $label
         * @param string $placeholder
         * @return array
         */
        public static function string($name, $defaultValue = "", $label = "", $placeholder = "")
        {
        }
        /**
         * @param string $name
         * @param string $defaultValue
         * @param string $label
         * @param string $placeholder
         * @return array
         */
        public static function textarea($name, $defaultValue = "", $label = "", $placeholder = "")
        {
        }
        /**
         * Prepares data of custom field
         * @param string $name
         * @param string $value
         * @param string $label
         * @param string $placeholder
         * @param bool $style
         * @return array
         */
        public static function custom($name, $value, $label = "", $placeholder = "", $style = false)
        {
        }
        /**
         * Prepares data of custom_entity field
         * @param string $name
         * @param string $label
         * @param string $placeholder
         * @param bool $multiple
         * @return array
         */
        public static function customEntity($name, $label = "", $placeholder = "", $multiple = false)
        {
        }
        /**
         * Prepares data of date field
         * @param string $name
         * @param string $type
         * @param array $values
         * @param string $label
         * @param string $placeholder
         * @param bool $enableTime
         * @param array $exclude
         * @param array $include
         * @param boolean $allowYearsSwithcer
         * @param array $messages
         * @return array
         */
        public static function date($name, $type = \Bitrix\Main\UI\Filter\DateType::NONE, $values = [], $label = "", $placeholder = "", $enableTime = false, $exclude = [], $include = [], $allowYearsSwithcer = false, $messages = [])
        {
        }
        /**
         * Prepares data of number field
         * @param string $name
         * @param string $type
         * @param array $values
         * @param string $label
         * @param string $placeholder
         * @return array
         */
        public static function number($name, $type = \Bitrix\Main\UI\Filter\NumberType::SINGLE, $values = array(), $label = "", $placeholder = "")
        {
        }
        /**
         * Prepares data of select field
         * @param string $name
         * @param array $items
         * @param array $defaultValue
         * @param string $label
         * @param string $placeholder
         * @return array
         */
        public static function select($name, $items, array $defaultValue = array(), $label = "", $placeholder = "")
        {
        }
        /**
         * Prepares data of multiselect field
         * @param string $name
         * @param array $items
         * @param array $defaultValues
         * @param string $label
         * @param string $placeholder
         * @return array
         */
        public static function multiSelect($name, $items, $defaultValues = array(), $label = "", $placeholder = "")
        {
        }
        public static function customDate($options = array())
        {
        }
        /**
         * Gets months list
         * @return array
         */
        protected static function getMonthsList()
        {
        }
        /**
         * Gets years list
         * @return array
         * @throws \Bitrix\Main\ObjectException
         */
        protected static function getYearsList()
        {
        }
        /**
         * Gets days list
         * @return array
         */
        protected static function getDaysList()
        {
        }
        /**
         * Prepares data of user field
         * @param string $name
         * @param string $label
         * @param string $placeholder
         * @param bool $multiple
         * @param array $params
         * @param bool $lightweight
         * @return array
         */
        public static function destSelector($name, $label = "", $placeholder = "", $multiple = false, $params = array(), $lightweight = false, $filterName = '')
        {
        }
        protected static function getMessage($messages, $messageId)
        {
        }
    }
    /**
     * Works with quarters
     * @package Bitrix\Main\UI\Filter
     */
    class Quarter
    {
        const Q1 = 1;
        const Q2 = 2;
        const Q3 = 3;
        const Q4 = 4;
        const Q1_START = 1;
        const Q1_END = 3;
        const Q2_START = 4;
        const Q2_END = 6;
        const Q3_START = 7;
        const Q3_END = 9;
        const Q4_START = 10;
        const Q4_END = 12;
        /**
         * Gets current number of quarter
         * @return int
         */
        public static function getCurrent()
        {
        }
        /**
         * Gets number of quarter by Bitrix\Main\Type\Date object
         * @param Date $date
         * @return int
         */
        public static function get(\Bitrix\Main\Type\Date $date)
        {
        }
        /**
         * Gets start date of quarter
         * @param int $quarter
         * @param int $year
         * @return string
         */
        public static function getStartDate($quarter, $year)
        {
        }
        /**
         * Gets end date of quarter
         * @param int $quarter
         * @param int $year
         * @return string
         */
        public static function getEndDate($quarter, $year)
        {
        }
    }
    class FieldAdapter
    {
        /**
         * @param array $sourceField
         * @return array
         */
        public static function adapt(array $sourceField, $filterId = '')
        {
        }
        /**
         * @param array $sourceField
         * @return array
         */
        public static function normalize(array $sourceField)
        {
        }
    }
    /**
     * Class AdditionalDateType. Available additional subtypes of date field
     * @package Bitrix\Main\UI\Filter
     */
    class AdditionalDateType
    {
        const CUSTOM_DATE = "CUSTOM_DATE";
        const PREV_DAY = "PREV_DAY";
        const NEXT_DAY = "NEXT_DAY";
        const MORE_THAN_DAYS_AGO = "MORE_THAN_DAYS_AGO";
        const AFTER_DAYS = "AFTER_DAYS";
        /**
         * Gets subtypes list of date field
         * @return array
         * @throws \ReflectionException
         */
        public static function getList()
        {
        }
    }
    /**
     * Class Options of main.ui.filter
     * @package Bitrix\Main\UI\Filter
     */
    class Options
    {
        protected $id;
        protected $options;
        protected $commonPresets;
        protected $useCommonPresets;
        protected $commonPresetsId;
        protected $request;
        const DEFAULT_FILTER = "default_filter";
        const TMP_FILTER = "tmp_filter";
        /**
         * Options constructor.
         * @param string $filterId $arParams["FILTER_ID"]
         * @param array $filterPresets $arParams["FILTER_PRESETS"]
         * @param string $commonPresetsId $arParams["COMMON_PRESETS_ID"] Set if you want to use common presets
         */
        public function __construct($filterId, $filterPresets = array(), $commonPresetsId = null)
        {
        }
        /**
         * @return string
         */
        public function getCommonPresetsId()
        {
        }
        /**
         * @return bool
         */
        public function isUseCommonPresets()
        {
        }
        /**
         * Gets filter id
         * @return string
         */
        public function getId()
        {
        }
        /**
         * Sets filter presets
         * @param array $presets
         */
        public function setPresets($presets = array())
        {
        }
        /**
         * Sets current preset id
         * @param string $presetId
         */
        public function setCurrentPreset($presetId = "default_filter")
        {
        }
        /**
         * Gets default presets from filter options
         * @return array|null
         */
        public function getDefaultPresets()
        {
        }
        /**
         * Gets presets
         * @return array|null
         */
        public function getPresets()
        {
        }
        /**
         * Sets default preset id
         * @param string $presetId
         */
        public function setDefaultPreset($presetId = "default_filter")
        {
        }
        /**
         * Checks is need use pinned preset
         * @return bool
         */
        public function isUsePinPreset()
        {
        }
        /**
         * Sets default presets
         * @param array $presets
         */
        public function setDefaultPresets($presets = array())
        {
        }
        /**
         * Sets deleted presets array
         * @param array $deletedPresets
         */
        public function setDeletedPresets($deletedPresets = array())
        {
        }
        /**
         * Sets use_pin_preset values
         * @param boolean $value
         */
        public function setUsePinPreset($value = true)
        {
        }
        /**
         * Gets common presets from database
         * @param string $id Common presets id $arParams["COMMON_PRESETS_ID"]
         * @return array|bool
         */
        public static function fetchCommonPresets($id)
        {
        }
        /**
         * Gets filter options from database
         * @param string $id Filter id $arParams["FILTER_ID"]
         * @return array|bool
         */
        public function fetchOptions($id)
        {
        }
        protected static function getUserId()
        {
        }
        protected function getRequest()
        {
        }
        /**
         * Finds default preset in presets array
         * @param array $presets
         * @return string Default preset id
         */
        public static function findDefaultPresetId($presets = array())
        {
        }
        /**
         * Gets filter options
         * @return array
         */
        public function getOptions()
        {
        }
        /**
         * Makes preset as default
         * @param string $presetId Preset id
         */
        public function pinPreset($presetId = "default_filter")
        {
        }
        /**
         * Checks is need whether to set fields from query
         * @param HttpRequest $request
         *
         * @return bool
         */
        public static function isSetFromRequest(\Bitrix\Main\HttpRequest $request)
        {
        }
        /**
         * Fetches field values from request
         * @param array $fields
         * @param HttpRequest $request
         *
         * @return array|null
         */
        public static function fetchSettingsFromQuery($fields = array(), \Bitrix\Main\HttpRequest $request)
        {
        }
        /**
         * Gets session filter
         * @return mixed
         */
        public function getSessionFilterId()
        {
        }
        /**
         * Gets additional preset fields
         * @param string $presetId
         * @return array
         */
        public function getAdditionalPresetFields($presetId)
        {
        }
        /**
         * Sets additional fields
         * @param string $presetId
         * @param array $additional
         */
        public function setAdditionalPresetFields($presetId, $additional = array())
        {
        }
        /**
         * Gets default filter
         * @return mixed
         */
        public function getDefaultFilterId()
        {
        }
        /**
         * Gets current applied filter id
         * @return mixed
         */
        public function getCurrentFilterId()
        {
        }
        protected function trySetFilterFromRequest($fields = array())
        {
        }
        /**
         * Gets filter settings by preset id
         * @param $presetId
         * @return array|null
         */
        public function getFilterSettings($presetId)
        {
        }
        /**
         * Fetches filter fields from filter settings
         * @param array $filterSettings
         * @param array $additionalFields
         * @return array
         */
        protected static function fetchFieldsFromFilterSettings($filterSettings = array(), $additionalFields = array())
        {
        }
        /**
         * @param string $key
         * @return bool
         */
        public static function isDateField($key = "")
        {
        }
        /**
         * Fetches date field values
         * @param string $key
         * @param array $filterFields
         * @return array
         * @throws \Bitrix\Main\ObjectException
         */
        public static function fetchDateFieldValue($key = "", $filterFields = array())
        {
        }
        /**
         * Fetches number field values
         * @param string $key
         * @param array $filterFields
         *
         * @return array
         */
        public static function fetchNumberFieldValue($key = "", $filterFields = array())
        {
        }
        public static function isNumberField($key = "")
        {
        }
        public static function fetchFieldValuesFromFilterSettings($filterSettings = array(), $additionalFields = array(), $sourceFields = array())
        {
        }
        /**
         * @param string $presetId
         * @return bool
         */
        public static function isDefaultFilter($presetId = "")
        {
        }
        /**
         * Gets current filter values
         * @param array $sourceFields Filter fields $arParams["FILTER"]
         * @return array
         */
        public function getFilter($sourceFields = array())
        {
        }
        /**
         * Gets current filter values that available for DB seach
         * @param array $sourceFields Filter fields $arParams["FILTER"]
         * @return array
         */
        public function getFilterLogic($sourceFields = array())
        {
        }
        /**
         * Gets filter search string
         * @return string
         */
        public function getSearchString()
        {
        }
        /**
         * Saves filter optionsGet
         */
        public function save()
        {
        }
        /** @noinspection PhpUndefinedClassInspection */
        /**
         * Gets filter options for all users
         * @return bool|\CDBResult
         */
        public function getAllUserOptions()
        {
        }
        /**
         * @return bool
         */
        public static function isCurrentUserEditOtherSettings()
        {
        }
        /**
         * Saves filter options for all users
         */
        public function saveForAll()
        {
        }
        /**
         * Checks whether the parameters is common
         * @param $options
         * @return bool
         */
        public static function isCommon($options)
        {
        }
        /**
         * Saves options for user with $userId
         * @param array $options
         * @param $userId
         */
        public function saveOptionsForUser($options = array(), $userId)
        {
        }
        /**
         * Saves current options as common
         */
        public function saveCommon()
        {
        }
        /**
         * Sets filter preset rows
         * @param string $presetId
         * @param $rows
         */
        public function setFilterRows($presetId = "", $rows)
        {
        }
        /**
         * Restores filter options to default
         * @param array $settings
         */
        public function restore($settings = array())
        {
        }
        /**
         * @param array $settings
         */
        public function setFilterSettingsArray($settings = array())
        {
        }
        /**
         * @param string $presetId
         * @param $settings
         * @param bool $currentPreset
         * @param bool $useRequest
         */
        public function setFilterSettings($presetId = "", $settings, $currentPreset = true, $useRequest = true)
        {
        }
        /**
         * Deletes preset by preset id
         * @param string $presetId
         * @param bool $isDefault
         */
        public function deleteFilter($presetId, $isDefault = false)
        {
        }
        /**
         * Checks preset is deleted
         * @param string $presetId
         * @return bool
         */
        public function isDeletedPreset($presetId)
        {
        }
        /**
         * Setup Default Filter Settings
         * @param array $fields Default Filter Fields.
         * @param array $rows Default Filter Rows.
         */
        public function setupDefaultFilter(array $fields, array $rows)
        {
        }
        /**
         * Calculate date value
         *
         * @param string $fieldId
         * @param array $source Source values
         * @param array $result Result values
         * @throws \Bitrix\Main\ObjectException
         */
        public static function calcDates($fieldId, $source, &$result)
        {
        }
        /**
         * Resets current applied filter
         */
        public function reset()
        {
        }
        /**
         * Destroys this filter options
         */
        public function destroy()
        {
        }
        /**
         * Destroys filter options by filter id
         * @param $filterId
         */
        public static function destroyById($filterId)
        {
        }
        public static function getRowsFromFields($fields = array())
        {
        }
        /**
         * Fetches preset fields list
         * @param array $preset
         * @return array
         */
        public static function fetchPresetFields($preset)
        {
        }
        /**
         * Gets used fields
         * @return array
         */
        public function getUsedFields()
        {
        }
    }
}
namespace Bitrix\Main\UI {
    class FileInputUnclouder
    {
        protected $id;
        protected $signature;
        protected $file;
        protected static $salt = "fileinput";
        public static function getSrc($file = array())
        {
        }
        public static function getSrcWithResize($file = array(), $size = array())
        {
        }
        public function setValue($id)
        {
        }
        public function setSignature($signature)
        {
        }
        protected function check($params = array())
        {
        }
        public function exec($mode = "basic", $params = array())
        {
        }
    }
    class Extension
    {
        /**
         * Loads specified extension
         * @param $extNames
         * @throws \Bitrix\Main\LoaderException
         */
        public static function load($extNames)
        {
        }
        /**
         * @param $extName
         * @return bool
         * @throws \Bitrix\Main\LoaderException
         */
        public static function register($extName)
        {
        }
        /**
         * @param $id
         * @param array $options
         */
        public static function registerAssets($id, array $options)
        {
        }
        protected static function normalizeAssetPath($path, $extensionPath)
        {
        }
        /**
         * Gets extension config
         * @param $extName
         * @return array|mixed|null
         */
        public static function getConfig($extName)
        {
        }
        /**
         * @param $extName
         * @return array|bool|mixed|\SplFixedArray|string|null
         * @throws \Bitrix\Main\IO\FileNotFoundException
         */
        public static function getBundleConfig($extName)
        {
        }
        private static function getPath($extName)
        {
        }
        /**
         * @param $extName
         * @return bool|string|null
         * @throws \Bitrix\Main\LoaderException
         */
        public static function getHtml($extName)
        {
        }
        /**
         * @param $extName
         * @return array
         */
        public static function getAssets($extName)
        {
        }
        /**
         * @param $extName
         * @return array
         */
        public static function getDependencyList($extName)
        {
        }
        /**
         * @param $extName
         * @param array $option
         * @return array
         */
        public static function getResourceList($extName, $option = [])
        {
        }
        /**
         * @param $name
         * @param bool $storeConfig
         * @param bool $storeSelf
         * @param array $resultList
         * @param array $alreadyResolved
         * @return array
         */
        private static function getDependencyListRecursive($name, $storeConfig = false, $storeSelf = false, &$resultList = [], &$alreadyResolved = [])
        {
        }
        private static function getCoreConfigForDependencyList($name, $storeConfig = false, &$resultList = [], &$alreadyResolved = [])
        {
        }
    }
}
namespace Bitrix\Main\UI\ImageEditor {
    /**
     * Class Proxy
     * @package Bitrix\Main\UI\ImageEditor
     */
    class Proxy
    {
        /** @var Uri */
        protected $uri;
        /** @var array<string> */
        protected $allowedHosts = [];
        /**
         * Proxy constructor.
         * @param string $url
         * @param array<string> $allowedHosts
         * @throws \Bitrix\Main\SystemException
         */
        public function __construct($url, $allowedHosts = [])
        {
        }
        /**
         * @return \Bitrix\Main\HttpResponse
         * @throws \Bitrix\Main\SystemException
         */
        protected static function getResponse()
        {
        }
        /**
         * @return bool
         */
        protected static function isAuthorized()
        {
        }
        /**
         * Gets current http host
         * @return null|string
         * @throws \Bitrix\Main\SystemException
         */
        protected function getCurrentHttpHost()
        {
        }
        /**
         * Gets allowed hosts
         * @return array<string>
         * @throws \Bitrix\Main\SystemException
         */
        protected function getAllowedHosts()
        {
        }
        /**
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        protected function getUserAllowedHosts()
        {
        }
        /**
         * Checks that this host is allowed
         * @param string $host
         * @return bool
         * @throws \Bitrix\Main\SystemException
         */
        protected function isAllowedHost($host)
        {
        }
        /**
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        protected function isEnabledForAll()
        {
        }
        /**
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        protected static function isEnabledForWhiteList()
        {
        }
        /**
         * @return string
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        protected static function getEnabledOption()
        {
        }
        /**
         * @param $host
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\SystemException
         */
        protected function isEnabledForHost($host)
        {
        }
        public function output()
        {
        }
    }
}
namespace Bitrix\Main\UserField\Types {
    /**
     * Class DateType
     * @package Bitrix\Main\UserField\Types
     */
    class DateType extends \Bitrix\Main\UserField\Types\BaseType
    {
        public const USER_TYPE_ID = 'date', RENDER_COMPONENT = 'bitrix:main.field.date';
        public const TYPE_NONE = 'NONE', TYPE_FIXED = 'FIXED', TYPE_NOW = 'NOW';
        public const FORMAT_TYPE_FULL = 'FULL', FORMAT_TYPE_SHORT = 'SHORT';
        /**
         * @return array
         */
        public static function getDescription() : array
        {
        }
        /**
         * @return string
         */
        public static function getDbColumnType() : string
        {
        }
        /**
         * @param array $userField
         * @return array
         */
        public static function prepareSettings(array $userField) : array
        {
        }
        /**
         * @param array|null $userField
         * @param array $additionalParameters
         * @return array
         */
        public static function getFilterData(?array $userField, array $additionalParameters) : array
        {
        }
        /**
         * @param array $userField
         * @param string|array $value
         * @return array
         */
        public static function checkFields(array $userField, $value) : array
        {
        }
        /**
         * @param array $userField
         * @param array $fetched
         * @return string
         * @throws Main\ObjectException
         */
        public static function onAfterFetch(array $userField, array $fetched) : string
        {
        }
        /**
         * @param array $userField
         * @param $value
         * @return Type\Date
         * @throws Main\ObjectException
         */
        public static function onBeforeSave(?array $userField, $value)
        {
        }
        /**
         * @param array|null $userField
         * @param string $fieldName
         * @return string
         */
        public static function formatField(?array $userField, string $fieldName) : string
        {
        }
        /**
         * @param array $userFiled
         */
        public static function getDefaultValue(array $userField, array $additionalParameters = [])
        {
        }
        /**
         * @param array $userField
         * @param array $additionalParameters
         */
        public static function getFieldValue(array $userField, array $additionalParameters = [])
        {
        }
    }
    /**
     * Class DateTimeType
     * @package Bitrix\Main\UserField\Types
     */
    class DateTimeType extends \Bitrix\Main\UserField\Types\DateType
    {
        public const USER_TYPE_ID = 'datetime', RENDER_COMPONENT = 'bitrix:main.field.datetime';
        /**
         * @return array
         */
        public static function getDescription() : array
        {
        }
        /**
         * @return string
         */
        public static function getDbColumnType() : string
        {
        }
        /**
         * @param array $userField
         * @return array
         */
        public static function prepareSettings(array $userField) : array
        {
        }
        /**
         * @param array|null $userField
         * @param array $additionalParameters
         * @return array
         */
        public static function getFilterData(?array $userField, array $additionalParameters) : array
        {
        }
        /**
         * @param array $userField
         * @param string|array $value
         * @return array
         */
        public static function checkFields(array $userField, $value) : array
        {
        }
        /**
         * Returns string time in user timezone
         * @param array $userField
         * @param array $fetched
         * @return string|null
         */
        public static function onAfterFetch(array $userField, array $fetched) : string
        {
        }
        /**
         * Returns  time object in server timezone
         * @param array|null $userField
         * @param $value
         * @return Type\Date|Type\DateTime
         */
        public static function onBeforeSave(?array $userField, $value)
        {
        }
        /**
         * @param string $value
         * @param array $userField
         * @return string
         */
        public static function getFormat(string $value, array $userField) : string
        {
        }
        /**
         * @param array|null $userField
         * @param string $fieldName
         * @return string
         */
        public static function formatField(?array $userField, string $fieldName) : string
        {
        }
        /**
         * @param array|null $userField
         * @return bool
         */
        protected static function isFieldWithoutTimeZone(?array $userField) : bool
        {
        }
        /**
         * @param array $userField
         * @param Type\DateTime $dateTime
         * @return string
         */
        public static function charToDate(array $userField, \Bitrix\Main\Type\DateTime $dateTime) : string
        {
        }
        public static function getFieldValue(array $userField, array $additionalParameters = [])
        {
        }
    }
    /**
     * Class StringType
     * @package Bitrix\Main\UserField\Types
     */
    class StringType extends \Bitrix\Main\UserField\Types\BaseType
    {
        public const USER_TYPE_ID = 'string', RENDER_COMPONENT = 'bitrix:main.field.string';
        public static function getDescription() : array
        {
        }
        /**
         * This function is called when new properties are added. We only support mysql data types.
         *
         * This function is called to construct the SQL column creation query
         * to store non-multiple property values.
         * Values of multiple properties are not stored in rows, but in columns
         * (as in infoblocks) and the type of such a field in the database is always text
         *
         * @return string
         */
        public static function getDbColumnType() : string
        {
        }
        /**
         * This function is called before saving the property metadata to the database.
         *
         * It should 'clear' the array with the settings of the instance of the property type.
         * In order to accidentally / intentionally no one wrote down any garbage there.
         *
         * @param array $userField An array describing the field. Warning! this description of the field has not yet been saved to the database!
         * @return array An array that will later be serialized and stored in the database.
         */
        public static function prepareSettings(array $userField) : array
        {
        }
        /**
         * @param null|array $userField
         * @param array $additionalSettings
         * @return array
         */
        public static function getFilterData(?array $userField, array $additionalSettings) : array
        {
        }
        /**
         * This function is validator.
         * Called from the CheckFields method of the $ USER_FIELD_MANAGER object,
         * which can be called from the Add / Update methods of the property owner entity.
         * @param array $userField
         * @param string|array $value
         * @return array
         */
        public static function checkFields(array $userField, $value) : array
        {
        }
        /**
         * This function should return a representation of the field value for the search.
         * It is called from the OnSearchIndex method of the object $ USER_FIELD_MANAGER,
         * which is also called the update function of the entity search index.
         * For multiple values, the VALUE field is an array.
         * @param array $userField
         * @return string|null
         */
        public static function onSearchIndex(array $userField) : ?string
        {
        }
    }
    /**
     * Class UrlType
     * @package Bitrix\Main\UserField\Types
     */
    class UrlType extends \Bitrix\Main\UserField\Types\StringType
    {
        public const USER_TYPE_ID = 'url', RENDER_COMPONENT = 'bitrix:main.field.url';
        public static function getDescription() : array
        {
        }
        /**
         * @param array $userField
         * @return array
         */
        public static function prepareSettings(array $userField) : array
        {
        }
        /**
         * @param array|null $userField
         * @param $value
         * @return string
         */
        public static function onBeforeSave(?array $userField, $value)
        {
        }
    }
    /**
     * Class BooleanType
     * @package Bitrix\Main\UserField\Types
     */
    class BooleanType extends \Bitrix\Main\UserField\Types\BaseType
    {
        public const USER_TYPE_ID = 'boolean', RENDER_COMPONENT = 'bitrix:main.field.boolean';
        public const DISPLAY_DROPDOWN = 'DROPDOWN', DISPLAY_RADIO = 'RADIO', DISPLAY_CHECKBOX = 'CHECKBOX';
        /**
         * @return array
         */
        public static function getDescription() : array
        {
        }
        /**
         * @return string
         */
        public static function getDbColumnType() : string
        {
        }
        /**
         * @param array $userField
         * @return array
         */
        public static function prepareSettings(array $userField) : array
        {
        }
        /**
         * @param array $userField
         * @return array
         */
        public static function getLabels(array $userField) : array
        {
        }
        /**
         * @param array $userField
         * @param array $additionalParameters
         * @return array
         */
        public static function getFilterData(array $userField, array $additionalParameters) : array
        {
        }
        /**
         * @param $userField
         * @param $value
         * @return int
         */
        public static function onBeforeSave($userField, $value) : int
        {
        }
        /**
         * Return all display types
         * @return array
         */
        public static final function getAllDisplays() : array
        {
        }
        public static function getAdminListViewHtmlMulty(array $userField, ?array $additionalParameters) : string
        {
        }
    }
    /**
     * Class DoubleType
     * @package Bitrix\Main\UserField\Types
     */
    class DoubleType extends \Bitrix\Main\UserField\Types\BaseType
    {
        public const USER_TYPE_ID = 'double', RENDER_COMPONENT = 'bitrix:main.field.double';
        /**
         * @return array
         */
        public static function getDescription() : array
        {
        }
        /**
         * @return string
         */
        public static function getDbColumnType() : string
        {
        }
        /**
         * @param array $userField
         * @return array
         */
        public static function prepareSettings(array $userField) : array
        {
        }
        /**
         * @param array|null $userField
         * @param array $additionalSettings
         * @return array
         */
        public static function getFilterData(?array $userField, array $additionalSettings) : array
        {
        }
        /**
         * @param array $userField
         * @param string|array $value
         * @return array
         */
        public static function checkFields(array $userField, $value) : array
        {
        }
        /**
         * @param array $userField
         * @return string|null
         */
        public static function onSearchIndex(array $userField) : ?string
        {
        }
        /**
         * @param array $userField
         * @param $value
         * @return string|null
         */
        public static function onBeforeSave(array $userField, $value)
        {
        }
    }
    /**
     * Class IntegerType
     * @package Bitrix\Main\UserField\Types
     */
    class IntegerType extends \Bitrix\Main\UserField\Types\BaseType
    {
        public const USER_TYPE_ID = 'integer', RENDER_COMPONENT = 'bitrix:main.field.integer';
        /**
         * @return array
         */
        public static function getDescription() : array
        {
        }
        /**
         * @return string
         */
        public static function getDbColumnType() : string
        {
        }
        /**
         * @param array $userField
         * @return array
         */
        public static function prepareSettings(array $userField) : array
        {
        }
        /**
         * @param array|null $userField
         * @param array $additionalSettings
         * @return array
         */
        public static function getFilterData(?array $userField, array $additionalSettings) : array
        {
        }
        /**
         * @param array $userField
         * @param $value
         * @return array
         */
        public static function checkFields(array $userField, $value) : array
        {
        }
        /**
         * @param array $userField
         * @return string|null
         */
        public static function onSearchIndex(array $userField) : ?string
        {
        }
    }
    /**
     * Class StringFormattedType
     * @package Bitrix\Main\UserField\Types
     */
    class StringFormattedType extends \Bitrix\Main\UserField\Types\StringType
    {
        public const USER_TYPE_ID = 'string_formatted', RENDER_COMPONENT = 'bitrix:main.field.stringformatted';
        public static function getDescription() : array
        {
        }
        /**
         * @param array $userField
         * @return array
         */
        public static function prepareSettings(array $userField) : array
        {
        }
        /**
         * @param array|null $userField
         * @param array|null $additionalParameters
         * @return string|null
         */
        public static function getPublicViewHtml(?array $userField, ?array $additionalParameters = []) : ?string
        {
        }
    }
    /**
     * Class FileType
     * @package Bitrix\Main\UserField\Types
     */
    class FileType extends \Bitrix\Main\UserField\Types\BaseType
    {
        public const USER_TYPE_ID = 'file', RENDER_COMPONENT = 'bitrix:main.field.file';
        /**
         * @return array
         */
        public static function getDescription() : array
        {
        }
        /**
         * @return string
         */
        public static function getDbColumnType() : string
        {
        }
        /**
         * @param array $userField
         * @return array
         */
        public static function prepareSettings(array $userField) : array
        {
        }
        public static function getFilterHtml(array $userField, ?array $additionalParameters) : string
        {
        }
        public static function checkFields(array $userField, $value) : array
        {
        }
        public static function onBeforeSave(array $userField, $value)
        {
        }
        public static function onSearchIndex(array $userField) : ?string
        {
        }
        public static function getFileContent($fileId)
        {
        }
        public static function getPublicEditMultiple(array $userField, ?array $additionalParameters = []) : string
        {
        }
    }
}
namespace Bitrix\Main\UserField {
    /**
     * Class Renderer
     * @package Bitrix\Main\UserField
     */
    class Renderer
    {
        /**
         * @var array $userField
         * @var array $additionalParameters
         * @var array $defaultAdditionalParameters
         * @var string|array $mode
         */
        protected $userField = [], $additionalParameters = [], $defaultAdditionalParameters = ['bVarsFromForm' => false], $mode;
        /**
         * Renderer constructor.
         * @param array $userField
         * @param array $additionalParameters
         */
        public function __construct(array $userField, ?array $additionalParameters = [])
        {
        }
        /**
         * @return string|null
         */
        public function render() : ?string
        {
        }
        /**
         * @return array|string
         */
        public function getMode()
        {
        }
        /**
         * @param string|array $mode
         * @return Renderer
         */
        public function setMode($mode) : \Bitrix\Main\UserField\Renderer
        {
        }
        /**
         * @return array
         */
        public function getUserField() : array
        {
        }
        /**
         * @param string $param
         * @param string|array|int $value
         * @param bool|null $storeAsDefault
         * @return Renderer
         */
        public function setAdditionalParameter(string $param, $value, ?bool $storeAsDefault = false) : \Bitrix\Main\UserField\Renderer
        {
        }
        /**
         * @param string $param
         * @return null|mixed
         */
        public function getAdditionalParameter(string $param)
        {
        }
        /**
         * @return array
         */
        protected function getAdditionalParameters() : array
        {
        }
        /**
         * @param array $userField
         * @return Renderer
         */
        public function setUserField(array $userField) : \Bitrix\Main\UserField\Renderer
        {
        }
        /**
         * @param array|null $additionalParameters
         * @return Renderer
         */
        public function setAdditionalParameters(?array $additionalParameters) : \Bitrix\Main\UserField\Renderer
        {
        }
    }
}
namespace Bitrix\Main\UserField\Access {
    class UserFieldAccessController extends \Bitrix\Main\Access\BaseAccessController
    {
        public static function getAccessibleFields($userId, string $action, $itemId = null, $params = null) : array
        {
        }
        public function checkByItemsId(string $action, iterable $itemId = null, $params = null) : array
        {
        }
        protected function loadItems(iterable $itemsId = null) : array
        {
        }
        public function massCheck(string $action, array $items = null, $params = null) : array
        {
        }
        protected function loadItem(int $itemId = null) : \Bitrix\Main\Access\AccessibleItem
        {
        }
        protected function loadUser(int $userId) : \Bitrix\Main\Access\User\AccessibleUser
        {
        }
    }
    interface UserAccessibleInterface extends \Bitrix\Main\Access\User\AccessibleUser
    {
        public function getPermission(string $permissionId, int $groupId = 0) : ?int;
    }
}
namespace Bitrix\Main\UserField\Access\Rule {
    class UserFieldViewRule extends \Bitrix\Main\Access\Rule\AbstractRule
    {
        private $userFieldModel = null;
        public function __construct(\Bitrix\Main\Access\AccessibleController $controller)
        {
        }
        public function execute(\Bitrix\Main\Access\AccessibleItem $userField = null, $params = null) : bool
        {
        }
        public function executeMass($userFields = null, $params = null) : array
        {
        }
    }
}
namespace Bitrix\Main\UserField\Access {
    class ActionDictionary
    {
        public const ACTION_USER_FIELD_VIEW = 'user_field_view';
    }
}
namespace Bitrix\Main\Access {
    interface AccessibleItem
    {
        public static function createFromId(int $itemId) : \Bitrix\Main\Access\AccessibleItem;
        public function getId() : int;
    }
}
namespace Bitrix\Main\UserField\Access\Model {
    class UserFieldModel implements \Bitrix\Main\Access\AccessibleItem
    {
        private $id = 0;
        public static function createNew() : self
        {
        }
        public static function createFromId(int $userFieldId) : \Bitrix\Main\Access\AccessibleItem
        {
        }
        private function __construct()
        {
        }
        public function getId() : int
        {
        }
        public function setId(int $id) : self
        {
        }
        /**
         * @param UserAccessibleInterface $user
         * @param $permissionId
         * @return int
         */
        public function getPermission(\Bitrix\Main\UserField\Access\UserAccessibleInterface $user, $permissionId) : int
        {
        }
        /**
         * @param UserAccessibleInterface $user
         * @param int $permissionId
         * @return array
         */
        public function getPermissions(\Bitrix\Main\UserField\Access\UserAccessibleInterface $user, int $permissionId) : array
        {
        }
        /**
         * @return array
         */
        public function loadPermissions() : array
        {
        }
    }
    class UserModel extends \Bitrix\Main\Access\User\UserModel implements \Bitrix\Main\UserField\Access\UserAccessibleInterface
    {
        private $permissions;
        public function getRoles() : array
        {
        }
        public function getPermission(string $permissionId, int $userFieldId = 0) : ?int
        {
        }
        private function getPermissions(int $userFieldId = 0) : array
        {
        }
    }
}
namespace Bitrix\Main\UserField\Access\Permission {
    class PermissionDictionary extends \Bitrix\Main\Access\Permission\PermissionDictionary
    {
        public const USER_FIELD_VIEW = 1;
    }
    class UserFieldPermission extends \Bitrix\Main\UserField\Access\Permission\EO_UserFieldPermission
    {
        private $parsedAC;
        public function getMemberPrefix()
        {
        }
        public function getMemberId()
        {
        }
        private function getParsedAccessCode()
        {
        }
    }
}
namespace Bitrix\Main\UserField {
    class Dispatcher
    {
        /**
         * @var Dispatcher
         */
        protected static $instance;
        protected $languageId = LANGUAGE_ID;
        protected $fieldList = array();
        protected $validateFieldList = array();
        protected $userFieldList = array();
        protected $storedFieldSignature = array();
        protected $result = array();
        /**
         * @var IDisplay
         */
        protected $view = null;
        /**
         * @var SignatureManager
         */
        protected $signatureManager;
        /**
         * @var ErrorCollection
         */
        protected $errorCollection;
        /**
         * @var AssetCollector
         */
        protected $assetCollectior;
        /**
         * Singleton
         *
         * @return Dispatcher
         */
        public static function instance()
        {
        }
        public function __construct()
        {
        }
        /**
         * Sets current language of fields data
         *
         * @param $languageId
         */
        public function setLanguage($languageId)
        {
        }
        protected function validateFieldChangeRequest($fieldInfo)
        {
        }
        public function createField($fieldInfo)
        {
        }
        public function editField($fieldInfo)
        {
        }
        public function deleteField($fieldInfo)
        {
        }
        public function validateField($fieldInfo)
        {
        }
        protected function processValidate()
        {
        }
        protected function createNewField(array $fieldInfo)
        {
        }
        protected function updateField(array $fieldInfo)
        {
        }
        protected function createNewFieldEnumValues($fieldId, $fieldInfo)
        {
        }
        protected function updateFieldEnumValues($fieldId, $fieldInfo)
        {
        }
        protected function getErrorFromApplicationException($fieldInfo)
        {
        }
        protected function checkLabel($label)
        {
        }
        protected function storeFieldSignature($entityId, $field, $signature)
        {
        }
        protected function getStoredFieldSignature($entityId, $field)
        {
        }
        /**
         * Adds field to the processing list
         *
         * Input array format:
         * array(
         *   'ENTITY_ID' => field's entity code: USER, CRM_CONTACT, etc. Required
         *   'FIELD' => field code. Required
         *   'VALUE' => field value
         *   'ENTITY_VALUE_ID' => field's item id, may be needed for enum type fields
         *   'SIGNATURE' => field's data signature got from \Bitrix\Main\UserField\Dispatcher::getSignature. Required.
         * )
         *
         * @param array $field
         */
        public function addField($field)
        {
        }
        /**
         * Returns processing result
         *
         * array(
         *   'FIELD' => array(
         *     FIELD_NAME => array(
         *       'FIELD' => array(field description)),
         *       'HTML' => field_html,
         *     ),
         *   ),
         *   'ERROR' => array(
         *     list of processing error messages
         *   ),
         *   'ASSET' => array(
         *     list of js,css,etc needed for field functioning
         *   ),
         * );
         *
         * @return array
         */
        public function getResult()
        {
        }
        /**
         * Sets current view object
         *
         * @param IDisplay $view
         */
        public function setView(\Bitrix\Main\UserField\IDisplay $view)
        {
        }
        /**
         * Returns current view object
         *
         * @return IDisplay
         * @throws ObjectNotFoundException
         */
        public function getView()
        {
        }
        /**
         * @return SignatureManager
         */
        public function getSignatureManager()
        {
        }
        /**
         * @param SignatureManager $signatureManager
         */
        public function setSignatureManager(\Bitrix\Main\UserField\SignatureManager $signatureManager)
        {
        }
        /**
         * Processes single field and returns its result
         *
         * @param array $fieldInfo
         *
         * @return bool
         */
        protected function processField(array $fieldInfo)
        {
        }
        /**
         * Prepare for the next use
         */
        protected function reset()
        {
        }
        /**
         * Adds error message to the current collection
         *
         * @param $message
         * @param int $field
         */
        protected function addError($message, $field = 0)
        {
        }
        /**
         * Returns currently collected non-fatal errors
         *
         * @return array
         */
        protected function getErrorList()
        {
        }
        protected function getValidateErrorList()
        {
        }
        protected function clearErrorList()
        {
        }
        /**
         * Validates single field description
         *
         * @param array $fieldInfo
         *
         * @return bool
         */
        protected function checkFieldDescription($fieldInfo)
        {
        }
        /**
         * Returns userfield metadata
         *
         * @param string $entityId Entity ID
         * @param string $field Field name
         *
         * @return array|null
         */
        protected function getUserFieldInfo($entityId, $field)
        {
        }
        /**
         * Reloads userfield metadata for entity
         *
         * @param string $entityId Entity ID
         */
        protected function reloadUserFieldInfo($entityId)
        {
        }
        /**
         * Returns formatted field description for outpup
         *
         * @param array $userField Userfield metadata
         *
         * @return array
         */
        protected function getResultFieldInfo(array $userField)
        {
        }
        protected function setDefaultSignatureManager()
        {
        }
        public function getSignature(array $fieldParam)
        {
        }
        public function getCreateSignature(array $fieldParam)
        {
        }
    }
}
namespace Bitrix\Main\UserField\Internal {
    /**
     * Class Type
     * @deprecated
     * @see TypeDataManager
     * @method string getName()
     * @method string getTableName()
     */
    class Type extends \Bitrix\Main\ORM\Objectify\EntityObject
    {
        protected function getFactory() : \Bitrix\Main\UserField\Internal\TypeFactory
        {
        }
    }
    /**
     * @deprecated
     */
    abstract class TypeDataManager extends \Bitrix\Main\ORM\Data\DataManager
    {
        protected static $temporaryStorage;
        public static function getMap() : array
        {
        }
        public static function getFactory() : \Bitrix\Main\UserField\Internal\TypeFactory
        {
        }
        protected static function getTemporaryStorage() : \Bitrix\Main\UserField\Internal\TemporaryStorage
        {
        }
        /**
         * @param Event $event
         * @return EventResult
         * @throws SystemException
         */
        public static function onAfterAdd(\Bitrix\Main\ORM\Event $event) : \Bitrix\Main\ORM\EventResult
        {
        }
        /**
         * @param Event $event
         * @return EventResult
         */
        public static function onBeforeUpdate(\Bitrix\Main\ORM\Event $event) : \Bitrix\Main\ORM\EventResult
        {
        }
        /**
         * @param Event $event
         * @return EventResult
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public static function onAfterUpdate(\Bitrix\Main\ORM\Event $event) : \Bitrix\Main\ORM\EventResult
        {
        }
        /**
         * @param Event $event
         * @return EventResult
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         */
        public static function onBeforeDelete(\Bitrix\Main\ORM\Event $event) : \Bitrix\Main\ORM\EventResult
        {
        }
        /**
         * @param Event $event
         * @return EventResult
         * @throws SystemException
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public static function onAfterDelete(\Bitrix\Main\ORM\Event $event) : \Bitrix\Main\ORM\EventResult
        {
        }
        /**
         * @param array|int|string|Type $type Could be an object, an array, ID or NAME of block.
         * @return array|null
         */
        public static function resolveType($type) : ?array
        {
        }
        /**
         * @param $type
         * @return Entity
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function compileEntity($type) : \Bitrix\Main\ORM\Entity
        {
        }
        /**
         * @param Entity $typeEntity
         * @param $userField
         * @return mixed
         */
        protected static function compileUtmEntity(\Bitrix\Main\ORM\Entity $typeEntity, $userField) : \Bitrix\Main\ORM\Entity
        {
        }
        /**
         * @param Entity $typeEntity
         * @param $userField
         * @return string
         */
        public static function getUtmEntityClassName(\Bitrix\Main\ORM\Entity $typeEntity, array $userField) : string
        {
        }
        /**
         * @param $type
         * @param $userField
         * @return string
         */
        public static function getMultipleValueTableName(array $type, array $userField) : string
        {
        }
        public static function validateTableExisting($value, $primary, array $row, \Bitrix\Main\ORM\Fields\Field $field)
        {
        }
        public static function getObjectParentClass() : string
        {
        }
    }
    /**
     * @deprecated
     */
    final class UserFieldHelper
    {
        /** @var UserFieldHelper */
        private static $instance;
        private function __construct()
        {
        }
        private function __clone()
        {
        }
        /**
         * Returns Singleton of Driver
         * @return UserFieldHelper
         */
        public static function getInstance() : \Bitrix\Main\UserField\Internal\UserFieldHelper
        {
        }
        /**
         * @return \CUserTypeManager
         */
        public function getManager() : ?\CUserTypeManager
        {
        }
        /**
         * @return \CAllMain
         */
        public function getApplication() : ?\CAllMain
        {
        }
        /**
         * @param $entityId
         * @return array|null
         */
        public function parseUserFieldEntityId(string $entityId) : ?array
        {
        }
        /**
         * @param $field
         * @return array|bool
         */
        public static function OnBeforeUserTypeAdd($field)
        {
        }
        /**
         * @param $field
         * @return array|bool
         */
        public static function onAfterUserTypeAdd($field)
        {
        }
        /**
         * @param $field
         * @return array|bool
         */
        public static function OnBeforeUserTypeDelete($field)
        {
        }
        public static function onGetUserFieldValues(\Bitrix\Main\Event $event) : \Bitrix\Main\EventResult
        {
        }
        public static function onUpdateUserFieldValues(\Bitrix\Main\Event $event) : \Bitrix\Main\EventResult
        {
        }
        public static function onDeleteUserFieldValues(\Bitrix\Main\Event $event) : \Bitrix\Main\EventResult
        {
        }
    }
    /**
     * @deprecated
     */
    final class Registry
    {
        const EVENT_NAME = 'onGetUserFieldTypeFactory';
        /** @var TypeFactory[] */
        protected $factories = [];
        protected $itemTypes = [];
        /** @var Registry */
        private static $instance;
        private function __construct()
        {
        }
        private function __clone()
        {
        }
        /**
         * Returns Singleton of Driver
         * @return Registry
         */
        public static function getInstance() : \Bitrix\Main\UserField\Internal\Registry
        {
        }
        public function registerFactory(\Bitrix\Main\UserField\Internal\TypeFactory $factory)
        {
        }
        /**
         * @param Entity $entity
         * @param array $type
         */
        public function registerTypeByEntity(\Bitrix\Main\ORM\Entity $entity, array $type) : void
        {
        }
        /**
         * @param Entity $entity
         * @return array|null
         */
        public function getTypeByEntity(\Bitrix\Main\ORM\Entity $entity) : ?array
        {
        }
        public function getFactoryByCode(string $code) : ?\Bitrix\Main\UserField\Internal\TypeFactory
        {
        }
        public function getFactoryByTypeDataClass($typeDataClass) : ?\Bitrix\Main\UserField\Internal\TypeFactory
        {
        }
        /**
         * @param Entity $entity
         * @return null|string
         */
        public function getUserFieldEntityIdByItemEntity(\Bitrix\Main\ORM\Entity $entity) : ?string
        {
        }
        protected function addFactoriesByEvent() : void
        {
        }
    }
    /**
     * @deprecated
     */
    abstract class PrototypeItemDataManager extends \Bitrix\Main\ORM\Data\DataManager
    {
        protected static $temporaryStorage;
        public static function getType() : ?array
        {
        }
        public static function getMap() : array
        {
        }
        protected static function getTemporaryStorage() : \Bitrix\Main\UserField\Internal\TemporaryStorage
        {
        }
        public static function checkFields(\Bitrix\Main\ORM\Data\Result $result, $primary, array $data)
        {
        }
        public static function getItemUserFieldEntityId() : ?string
        {
        }
        protected static function getErrorFromException() : \Bitrix\Main\ORM\EntityError
        {
        }
        /**
         * @param $id
         * @param array $data
         * @param array $options
         * @return Main\ORM\EventResult
         */
        protected static function modifyValuesBeforeSave($id, array $data, array $options = []) : \Bitrix\Main\ORM\EventResult
        {
        }
        /**
         * @param $id
         * @param array $data
         * @param array $options
         * @return Main\ORM\EventResult
         * @throws Main\Db\SqlQueryException
         * @throws Main\SystemException
         */
        protected static function saveMultipleValues($id, array $data, array $options = []) : \Bitrix\Main\ORM\EventResult
        {
        }
        public static function onBeforeAdd(\Bitrix\Main\ORM\Event $event) : \Bitrix\Main\ORM\EventResult
        {
        }
        public static function onAfterAdd(\Bitrix\Main\ORM\Event $event) : \Bitrix\Main\ORM\EventResult
        {
        }
        public static function onBeforeUpdate(\Bitrix\Main\ORM\Event $event) : \Bitrix\Main\ORM\EventResult
        {
        }
        public static function onAfterUpdate(\Bitrix\Main\ORM\Event $event) : \Bitrix\Main\ORM\EventResult
        {
        }
        public static function onBeforeDelete(\Bitrix\Main\ORM\Event $event) : \Bitrix\Main\ORM\EventResult
        {
        }
        public static function onAfterDelete(\Bitrix\Main\ORM\Event $event) : \Bitrix\Main\ORM\EventResult
        {
        }
        /**
         * Convert values of user fields using their callback.
         *
         * @param array $data
         * @param array $userFields
         * @return array
         */
        protected static function convertValuesBeforeSave(array $data, array $userFields) : array
        {
        }
        /**
         * Modify value before save.
         * @param mixed $value Value for converting.
         * @param array $userField Field array.
         * @return mixed
         */
        protected static function convertSingleValueBeforeSave($value, array $userField)
        {
        }
        protected static function isNotNull($value) : bool
        {
        }
        public static function isOwnField(string $fieldName) : bool
        {
        }
        /**
         * Returns list of field names that are not user fields.
         *
         * @return array
         */
        public static function getOwnFieldNames() : array
        {
        }
        public static function getUserFieldValues(int $id, array $userFields) : ?array
        {
        }
        public static function updateUserFieldValues(int $id, array $fields) : \Bitrix\Main\Result
        {
        }
        public static function deleteUserFieldValues(int $id) : \Bitrix\Main\Result
        {
        }
    }
    /**
     * @deprecated
     */
    class Item extends \Bitrix\Main\ORM\Objectify\EntityObject
    {
    }
    /**
     * @deprecated
     */
    abstract class TypeFactory
    {
        protected $itemEntities = [];
        /**
         * @return TypeDataManager
         */
        public abstract function getTypeDataClass() : string;
        /**
         * @return PrototypeItemDataManager
         */
        public abstract function getItemPrototypeDataClass() : string;
        public abstract function getCode() : string;
        /**
         * @param mixed $type
         * @return PrototypeItemDataManager
         */
        public function getItemDataClass($type) : string
        {
        }
        public function getItemEntity($type) : \Bitrix\Main\ORM\Entity
        {
        }
        /**
         * @return Item
         */
        public function getItemParentClass() : string
        {
        }
        public function getUserFieldEntityPrefix() : string
        {
        }
        public function getUserFieldEntityId(int $typeId) : string
        {
        }
        public static function getCodeByPrefix(string $prefix) : string
        {
        }
        public static function getPrefixByCode(string $code) : string
        {
        }
    }
    /**
     * @deprecated
     */
    class TemporaryStorage
    {
        protected $data;
        /**
         * @param $primary
         * @return string
         */
        public function getIdByPrimary($primary)
        {
        }
        public function saveData($primary, array $data = null)
        {
        }
        public function getData($primary) : ?array
        {
        }
    }
}
namespace Bitrix\Main\UserField {
    class SignatureManager
    {
        /**
         * @var Signer
         */
        protected $signer;
        public function __construct()
        {
        }
        public function getSignature($data)
        {
        }
        public function validateSignature($data, $signature)
        {
        }
        /**
         * @return Signer
         */
        public function getSigner()
        {
        }
        /**
         * @param Signer $signer
         */
        public function setSigner(\Bitrix\Main\Security\Sign\Signer $signer)
        {
        }
        protected function setDefaultSigner()
        {
        }
        protected function getSignatureSalt()
        {
        }
    }
    /**
     * Bitrix vars
     * @global \CMain $APPLICATION
     */
    class AssetCollector
    {
        protected $assetCollectionStarted = false;
        public function startAssetCollection()
        {
        }
        public function getCollectedAssets()
        {
        }
        protected function resetAssets()
        {
        }
        protected function parseResourceString($string)
        {
        }
    }
    interface IDisplay
    {
        public function display();
        public function getField();
        public function setField(array $field);
        public function setAdditionalParameter($param, $value);
        public function clear();
    }
    class Display implements \Bitrix\Main\UserField\IDisplay
    {
        const MODE_EDIT = \Bitrix\Main\UserField\Types\BaseType::MODE_EDIT;
        const MODE_VIEW = \Bitrix\Main\UserField\Types\BaseType::MODE_VIEW;
        protected $userField;
        protected $additionalParameters = array();
        protected $defaultAdditionalParameters = array("bVarsFromForm" => false);
        protected $mode = self::MODE_VIEW;
        protected $tpl = '';
        public function __construct($mode = self::MODE_VIEW, string $tpl = '')
        {
        }
        /**
         * @return mixed
         */
        public function getField()
        {
        }
        /**
         * @param mixed $userField
         */
        public function setField(array $userField)
        {
        }
        public function setAdditionalParameter($param, $value, $storeAsDefault = false)
        {
        }
        public function clear()
        {
        }
        protected function getAdditionalParameters()
        {
        }
        public function display()
        {
        }
    }
    /**
     * Bitrix vars
     * @global \CUserTypeManager $USER_FIELD_MANAGER
     * @deprecated
     */
    class DisplayEdit extends \Bitrix\Main\UserField\Display implements \Bitrix\Main\UserField\IDisplay
    {
        public function display()
        {
        }
    }
    class SignatureHelper
    {
        public static function getSignature(\Bitrix\Main\UserField\SignatureManager $signatureManager, array $fieldParam)
        {
        }
        public static function validateSignature(\Bitrix\Main\UserField\SignatureManager $signatureManager, array $fieldParam, $signature)
        {
        }
        protected static function getSignatureParam(array $fieldParam)
        {
        }
    }
    class SignatureHelperCreate extends \Bitrix\Main\UserField\SignatureHelper
    {
        protected static function getSignatureParam(array $fieldParam)
        {
        }
    }
}
namespace Bitrix\Main\Web {
    class Uri implements \JsonSerializable
    {
        protected $scheme;
        protected $host;
        protected $port;
        protected $user;
        protected $pass;
        protected $path;
        protected $query;
        protected $fragment;
        /**
         * @param string $url
         */
        public function __construct($url)
        {
        }
        /**
         * @deprecated Use getLocator() or getUri().
         */
        public function getUrl()
        {
        }
        /**
         * Return the URI without a fragment.
         * @return string
         */
        public function getLocator()
        {
        }
        /**
         * Return the URI with a fragment, if any.
         * @return string
         */
        public function getUri()
        {
        }
        /**
         * Returns the fragment.
         * @return string
         */
        public function getFragment()
        {
        }
        /**
         * Returns the host.
         * @return string
         */
        public function getHost()
        {
        }
        /**
         * Sets the host
         * @param string $host Host name.
         * @return $this
         */
        public function setHost($host)
        {
        }
        /**
         * Returns the password.
         * @return string
         */
        public function getPass()
        {
        }
        /**
         * Sets the password.
         * @param string $pass Password,
         * @return $this
         */
        public function setPass($pass)
        {
        }
        /**
         * Returns the path.
         * @return string
         */
        public function getPath()
        {
        }
        /**
         * Sets the path.
         * @param string $path
         * @return $this
         */
        public function setPath($path)
        {
        }
        /**
         * Returns the path with the query.
         * @return string
         */
        public function getPathQuery()
        {
        }
        /**
         * Returns the port number.
         * @return string
         */
        public function getPort()
        {
        }
        /**
         * Returns the query.
         * @return string
         */
        public function getQuery()
        {
        }
        /**
         * Returns the scheme.
         * @return string
         */
        public function getScheme()
        {
        }
        /**
         * Returns the user.
         * @return string
         */
        public function getUser()
        {
        }
        /**
         * Sets the user.
         * @param string $user User.
         * @return $this
         */
        public function setUser($user)
        {
        }
        /**
         * Extended parsing to allow dots and spaces in parameters names.
         * @param string $params
         * @return array
         */
        protected static function parseParams($params)
        {
        }
        /**
         * Deletes parameters from the query.
         * @param array $params Parameters to delete.
         * @param bool $preserveDots Special treatment of dots and spaces in the parameters names.
         * @return $this
         */
        public function deleteParams(array $params, $preserveDots = false)
        {
        }
        /**
         * Adds parameters to query or replaces existing ones.
         * @param array $params Parameters to add.
         * @param bool $preserveDots Special treatment of dots and spaces in the parameters names.
         * @return $this
         */
        public function addParams(array $params, $preserveDots = false)
        {
        }
        public function __toString()
        {
        }
        /**
         * Specify data which should be serialized to JSON
         * @link http://php.net/manual/en/jsonserializable.jsonserialize.php
         * @return mixed data which can be serialized by <b>json_encode</b>,
         * which is a value of any type other than a resource.
         * @since 5.4.0
         */
        public function jsonSerialize()
        {
        }
        /**
         * Converts the host to punycode.
         * @return string|\Bitrix\Main\Error
         */
        public function convertToPunycode()
        {
        }
    }
}
namespace Bitrix\Main\UserField {
    class Uri extends \Bitrix\Main\Web\Uri
    {
        /**
         * Return the URI with user, pass and fragment, if any.
         * @return string
         */
        public function getUri()
        {
        }
        public function getASCIIHost()
        {
        }
    }
}
namespace Bitrix\Main\Engine\Response\ContentArea {
    interface ContentAreaInterface
    {
        /**
         * @return string
         */
        public function getHtml();
    }
}
namespace Bitrix\Main\UserField\Engine {
    class SettingsArea implements \Bitrix\Main\Engine\Response\ContentArea\ContentAreaInterface
    {
        protected $userField;
        public function __construct(array $userField)
        {
        }
        public function getHtml()
        {
        }
    }
}
namespace Bitrix\Main\UserField {
    /**
     * Class Helper
     * @package Bitrix\Main\UserField
     * @deprecated
     */
    class TypeHelper
    {
        protected $userTypeId;
        public function __construct($userTypeId)
        {
        }
        public function getCssClassName(array $additionalCss = array())
        {
        }
        public function wrapSingleField($html, array $additionalCss = array())
        {
        }
        public function wrapDisplayResult($html, $additionalCss = array())
        {
        }
        public function getMultipleValuesSeparator()
        {
        }
        public function getCloneButton($fieldName)
        {
        }
    }
    /**
     * Class HtmlBuilder
     * @package Bitrix\Main\UserField
     */
    class HtmlBuilder
    {
        protected $userTypeId;
        public function __construct($userTypeId)
        {
        }
        public function getCssClassName(array $additionalCss = array())
        {
        }
        public function wrapSingleField($html, array $additionalCss = array())
        {
        }
        public function wrapDisplayResult($html, $additionalCss = array())
        {
        }
        public function getMultipleValuesSeparator()
        {
        }
        public function getCloneButton($fieldName)
        {
        }
        public function getMobileCloneButton($fieldName)
        {
        }
        /**
         * @param array|null $attributes
         * @param bool $encode
         * @return string|null
         */
        public function buildTagAttributes(?array $attributes, bool $encode = true) : ?string
        {
        }
        /**
         * @param string|null $url
         * @return string
         */
        public function encodeUrl(?string $url) : string
        {
        }
    }
    abstract class UserFieldAccess
    {
        public const SETTINGS_USER_FIELD_KEY = 'userField';
        public const SETTINGS_ACCESS_CLASS_KEY = 'access';
        protected $userId;
        public function __construct(int $userId = null)
        {
        }
        public static function getInstance(string $moduleId, int $userId = null) : \Bitrix\Main\UserField\UserFieldAccess
        {
        }
        protected function getDefaultUserId() : int
        {
        }
        public function setUserId(int $userId) : \Bitrix\Main\UserField\UserFieldAccess
        {
        }
        public function getUserId() : int
        {
        }
        protected abstract function getAvailableEntityIds() : array;
        public function getRestrictedTypes() : array
        {
        }
        public function canReadWithFilter(array $filter) : bool
        {
        }
        public function prepareFilter(array $filter = []) : ?array
        {
        }
        public function canRead(int $id) : bool
        {
        }
        public function canAdd(array $field) : bool
        {
        }
        public function canUpdate(int $id) : bool
        {
        }
        public function canDelete(int $id) : bool
        {
        }
    }
    /**
     * Bitrix vars
     * @global \CUserTypeManager $USER_FIELD_MANAGER
     * @deprecated
     */
    class DisplayView extends \Bitrix\Main\UserField\Display implements \Bitrix\Main\UserField\IDisplay
    {
        public function display()
        {
        }
    }
}
namespace Bitrix\Main {
    class UserUtils
    {
        /**
         * @param array $fields
         * @return array
         */
        public static function getUserSearchFilter(array $fields)
        {
        }
        /**
         * @param array $fields
         * @return array
         */
        public static function getAdminSearchFilter(array $fields)
        {
        }
        public static function getGroupIds($userId)
        {
        }
        /**
         * @param $departmentId
         * @return bool|mixed
         */
        public static function getDepartmentName($departmentId)
        {
        }
        /**
         * @param array $departmentIds
         * @return array
         */
        public static function getDepartmentNames($departmentIds)
        {
        }
        public static function getCountryValue(array $params = [])
        {
        }
        public static function getUFContent($userId)
        {
        }
        private static function postFilterFields(array $fields)
        {
        }
        private static function getUserFieldValue(array $userField)
        {
        }
        public static function getTagsContent($userId)
        {
        }
    }
}
namespace Bitrix\Main\Page {
    class AssetLocation
    {
        const BEFORE_CSS = 'BEFORE_CSS';
        const AFTER_CSS = 'AFTER_CSS';
        const AFTER_JS_KERNEL = 'AFTER_JS_KERNEL';
        const AFTER_JS = 'AFTER_JS';
        const BODY_END = 'BODY_END';
    }
    class AssetMode
    {
        const STANDARD = 1;
        const COMPOSITE = 2;
        const SPECIAL = 4;
        const ALL = 7;
    }
    class AssetShowTargetType
    {
        const ALL = 0;
        const KERNEL = 1;
        const TEMPLATE_PAGE = 2;
        const BODY = 3;
    }
    class Asset
    {
        private static $instance;
        /** @var array Contains target list */
        private $targetList;
        /** @var array pointer to current target */
        private $target;
        /** @var array of css files */
        private $css = [];
        /** @var array of js files */
        private $js = [];
        /** @var array of inline string */
        private $strings = [\Bitrix\Main\Page\AssetLocation::BEFORE_CSS => [], \Bitrix\Main\Page\AssetLocation::AFTER_CSS => [], \Bitrix\Main\Page\AssetLocation::AFTER_JS_KERNEL => [], \Bitrix\Main\Page\AssetLocation::AFTER_JS => []];
        /** @var array Information about kernel modules */
        private $moduleInfo = ['CSS' => [], 'JS' => []];
        private $kernelAsset = ['CSS' => [], 'JS' => []];
        private $assetList = ['CSS' => [], 'SOURCE_CSS' => [], 'JS' => [], 'SOURCE_JS' => []];
        private $fileList = ['CSS' => [], 'JS' => []];
        private $mode = \Bitrix\Main\Page\AssetMode::STANDARD;
        private $ajax;
        private $xhtmlStyle = '/';
        private $optimizeCss = true;
        private $optimizeJs = true;
        private $headString = false;
        private $headScript = false;
        private $bodyScript = false;
        private $moveJsToBody = null;
        private $siteTemplateID = '';
        private $templatePath = '';
        private $documentRoot = '';
        private $dbType = 'MYSQL';
        private $assetCSSCnt = 0;
        private $assetJSCnt = 0;
        const SOURCE_MAP_TAG = "\n//# sourceMappingURL=";
        const HEADER_START_TAG = "; /* Start:\"";
        const HEADER_END_TAG = "\"*/";
        const version = 1;
        private function __construct()
        {
        }
        /**
         * Can`t clone this object
         * @return void
         */
        private function __clone()
        {
        }
        /**
         * Singleton instance.
         *
         * @return Asset
         */
        public static function getInstance()
        {
        }
        /**
         * Set mode for current target.
         * @param int $mode Set current composite mode.
         * @return void
         */
        public function setMode($mode = \Bitrix\Main\Page\AssetMode::STANDARD)
        {
        }
        /**
         * Returns gzip enabled or not.
         * @return bool|null
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function gzipEnabled()
        {
        }
        /**
         * Start optimizing css
         * @return void
         */
        public function enableOptimizeCss()
        {
        }
        /**
         * Stop optimizing css
         * @return void
         */
        public function disableOptimizeCss()
        {
        }
        /**
         * Start optimizing js
         * @return void
         */
        public function enableOptimizeJs()
        {
        }
        /**
         * Stop optimizing js
         * @return void
         */
        public function disableOptimizeJs()
        {
        }
        /**
         * @param boolean $value Use xhtml html style.
         * @return void
         */
        public function setXhtml($value)
        {
        }
        /**
         * @param integer $value Count of css files showed inline fore ie.
         * @deprecated
         * @return void
         */
        public function setMaxCss($value)
        {
        }
        /**
         * Set ShowHeadString in page or not.
         * @param boolean $value Set ShowHeadSting is set on page.
         * @return void
         */
        public function setShowHeadString($value = true)
        {
        }
        /**
         * Return true if ShowHeadString exist in page.
         * @return boolean
         */
        public function getShowHeadString()
        {
        }
        /**
         *  Set ShowHeadScript in page or not.
         * @param boolean $value Set ShowHeadScript is set on page.
         * @return void
         */
        public function setShowHeadScript($value = true)
        {
        }
        /**
         * Return true if ShowHeadBodyScript exist in page.
         * @param boolean $value Set ShowHeadBodyScript is set on page.
         * @return void
         */
        public function setShowBodyScript($value = true)
        {
        }
        /**
         * Set Ajax mode and restart instance
         * @return Asset
         */
        public function setAjax()
        {
        }
        /**
         * @return string - Return current set name
         */
        public function getTargetName()
        {
        }
        /**
         * @return mixed Return current set
         */
        public function getTarget()
        {
        }
        /**
         * Temporary fix for update system. Need to delete later.
         * @param string $id Target ID.
         * @param integer $mode Composite Mode.
         * @return boolean
         */
        public function startSet($id = '', $mode = \Bitrix\Main\Page\AssetMode::ALL)
        {
        }
        /**
         * Start new target for asset.
         * @param string $id Target ID.
         * @param integer $mode Composite mode.
         * @return boolean
         */
        public function startTarget($id = '', $mode = \Bitrix\Main\Page\AssetMode::ALL)
        {
        }
        /**
         * Stop current target.
         * @param string $id Target ID.
         * @return bool
         */
        public function stopTarget($id = '')
        {
        }
        /**
         * Return information about target assets.
         * @param string $id Asset ID.
         * @param mixed $mode Composite mode.
         * @return array
         */
        public function getAssetInfo($id, $mode)
        {
        }
        /**
         * Set composite mode for set.
         * @param string $id Target ID.
         * @return boolean
         */
        public function compositeTarget($id = '')
        {
        }
        /**
         * Return list of all targets on the page.
         * @param string $type Target type CSS or JS.
         * @return array Return set list with subsets.
         */
        public function getTargetList($type = 'CSS')
        {
        }
        /**
         * Add string asset.
         * @param string $str Added string.
         * @param bool $unique Check string for unique.
         * @param string $location Where string wheel be showed.
         * @param null $mode Composite mode.
         * @return boolean
         */
        function addString($str, $unique = false, $location = \Bitrix\Main\Page\AssetLocation::AFTER_JS_KERNEL, $mode = null)
        {
        }
        /**
         * Return strings assets.
         * @param string $location Location.
         * @return string
         */
        public function getStrings($location = \Bitrix\Main\Page\AssetLocation::AFTER_JS_KERNEL)
        {
        }
        /**
         * Add some css to asset.
         * @param string $path Path to css file.
         * @param boolean $additional Is additional file.
         * @return boolean
         */
        public function addCss($path, $additional = false)
        {
        }
        /**
         * Add some js to asset.
         * @param string $path Path to js file.
         * @param boolean $additional Is additional file.
         * @return boolean
         */
        public function addJs($path, $additional = false)
        {
        }
        /**
         * Replace path to includes in css.
         * @param string $content Content for replacing path.
         * @param string $path Path to correct.
         * @return mixed
         */
        public static function fixCssIncludes($content, $path)
        {
        }
        /**
         * Group some js modules.
         * @param string $from Module name for packing.
         * @param string $to Module name for pack.
         * @return void
         */
        public function groupJs($from = '', $to = '')
        {
        }
        /**
         * Group some css modules.
         * @param string $from Module name for packing.
         * @param string $to Module name for pack.
         * @return void
         */
        public function groupCss($from = '', $to = '')
        {
        }
        /**
         * @param string $to Module name.
         * @return string Return module name.
         */
        private function movedJsTo($to)
        {
        }
        /**
         * @param string $to Module name.
         * @return string Return module name
         */
        private function movedCssTo($to)
        {
        }
        /**
         * Move js kernel module to BODY.
         * @param string $module Module name.
         * @return void
         */
        public function moveJs($module = '')
        {
        }
        /**
         * Enables or disables the moving all of scripts to the body.
         * @param bool $flag True or False.
         * @return void
         */
        public function setJsToBody($flag)
        {
        }
        /**
         * @return bool|null
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        protected function getJsToBody()
        {
        }
        /**
         * Moves all of scripts in front of </body>.
         * @param string &$content Page content.
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @internal
         * @return void
         */
        public function moveJsToBody(&$content)
        {
        }
        /**
         * Returns positions of <script>...</script> elements.
         * @param string $content Page content.
         * @return array
         */
        private function getScriptAreas($content)
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @throws Main\SystemException
         */
        public function canMoveJsToBody()
        {
        }
        /**
         *
         * Returns true if <script> has valid mime type.
         * @param string $attrs Script attributes.
         * @return bool
         */
        private static function isValidScriptType($attrs)
        {
        }
        /**
         * Replace path to includes in line.
         * @param string $url Url of css files.
         * @param string $quote Quote.
         * @param string $path Path to css.
         * @return string replaced.
         */
        public static function replaceUrlCss($url, $quote, $path)
        {
        }
        /**
         * Remove from file path any parametrs.
         * @param string $src Path to asset file.
         * @return string path whithout ?xxx.
         */
        public static function getAssetPath($src)
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function optimizeCss()
        {
        }
        /**
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function optimizeJs()
        {
        }
        /**
         * @return bool|null
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function canUseMinifiedAssets()
        {
        }
        /**
         * @return boolean
         */
        public function sliceKernel()
        {
        }
        /**
         * Insert inline css.
         * @param string $css Content or file name.
         * @param mixed $label Additional info.
         * @param boolean $inline Show inline.
         * @return string
         */
        public function insertCss($css, $label = false, $inline = false)
        {
        }
        /**
         * insert inline js.
         * @param string $js Contet or file path.
         * @param mixed $label Additional info.
         * @param boolean $inline Show inline.
         * @return string
         */
        public function insertJs($js, $label = '', $inline = false)
        {
        }
        /**
         * Sets templateID and template path
         * @return void
         */
        private function setTemplateID()
        {
        }
        /**
         * Add template css to asset
         * @return void
         */
        private function addTemplateCss()
        {
        }
        /**
         * Prepare string assets.
         * @return void
         */
        private function prepareString()
        {
        }
        /**
         * Returns asset's paths.
         * @param string $assetPath Peth to asset.
         * @return null|array
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        private function getAssetPaths($assetPath)
        {
        }
        /**
         * Gets asset path.
         * if allowed use minified assets
         * @param $sourcePath
         * @return string|null
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function getFullAssetPath($sourcePath)
        {
        }
        /**
         * Prepare css asset to optimize.
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @return void
         */
        private function prepareCss() : void
        {
        }
        /**
         * Prepare js asset to optimize
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         * @return void
         */
        private function prepareJs()
        {
        }
        /**
         * Return css or page.
         * @param int $type Target type.
         * @return string
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public function getCss($type = \Bitrix\Main\Page\AssetShowTargetType::ALL)
        {
        }
        /**
         * Return JS page assets.
         * @param int $type Target type.
         * @return string
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        function getJs($type = \Bitrix\Main\Page\AssetShowTargetType::ALL)
        {
        }
        /**
         * Convert location for new format.
         * @param mixed $location AssetLocation.
         * @return AssetLocation
         */
        public static function getLocationByName($location)
        {
        }
        /**
         * Insert JS code to sets assets included in page.
         * @return string
         */
        public function showFilesList()
        {
        }
        /**
         * Add information about kernel module css.
         * @param string $module Module name.
         * @param array $css Css files.
         * @param array $settings Settings.
         * @return void
         */
        function addCssKernelInfo($module = '', $css = [], $settings = [])
        {
        }
        /**
         * Add information about kernel js modules.
         * @param string $module Module name.
         * @param array $js Js files.
         * @param array $settings Settings.
         * @return void
         */
        function addJsKernelInfo($module = '', $js = [], $settings = [])
        {
        }
        /**
         * Return information about file and check is it in kernel pack.
         * @param string $css File path.
         * @return array|bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        function isKernelCSS($css)
        {
        }
        /**
         * Return information about file and check is it in kernel pack.
         * @param string $js File path.
         * @return array|bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        function isKernelJS($js)
        {
        }
        /**
         * Sets unique mode for set.
         * @param string $setID Target ID.
         * @param string $uniqueID Unique type.
         * @return bool
         */
        public function setUnique($setID = '', $uniqueID = '')
        {
        }
        /**
         * Show asset resource.
         * @param array $setList Set list.
         * @param string $type Asset type css or js.
         * @param string $setName Parent set name.
         * @return string
         */
        private function showAsset($setList = [], $type = 'css', $setName = '')
        {
        }
        /**
         * Fix current set order for js.
         * @param string $setName Set name.
         * @return string
         */
        private function fixJsSetOrder($setName = '')
        {
        }
        /**
         * Get time for current asset.
         * @param string $file File path.
         * @return bool|string
         */
        public static function getAssetTime($file = '')
        {
        }
        /**
         * Return md5 for asset.
         * @param array $assetList Asset list.
         * @return string
         */
        private function getAssetChecksum($assetList = [])
        {
        }
        /**
         * Check assets and return action and files.
         * @param array $assetList Asset list.
         * @param string $infoFile Path to metadata file.
         * @param string $optimFile Path to packed file.
         * @param bool $unique Unique type.
         * @return array
         */
        private function isAssetChanged($assetList = [], $infoFile = '', $optimFile = '', $unique = false)
        {
        }
        /**
         * @param array $files Files for optimisation.
         * @param bool $unique Unique type.
         * @param string $prefix Prefix for packed file.
         * @param string $setName Set name.
         * @param string $type Asset type css or js.
         * @param string $data Additional info.
         * @return array
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        private function optimizeAsset($files = [], $unique = false, $prefix = 'default', $setName = '', $type = 'css', $data = '')
        {
        }
        /**
         * Cuts and returns source map comment.
         * @param string &$content Asset content.
         * @return string
         */
        private static function cutSourceMap(&$content)
        {
        }
        /**
         * Returns array of file data.
         * @param string $content Content.
         * @return array
         */
        private static function getFilesInfo($content)
        {
        }
        /**
         * Generates source map content.
         * @param string $fileName File name.
         * @param string $content Content.
         * @return string
         */
        private static function generateSourceMap($fileName, $content)
        {
        }
        /**
         * Write optimized css, js files or info file.
         * @param string $filePath Path for optimized css, js or info file.
         * @param string $content File contents.
         * @param bool $gzip For disabled gzip.
         * @return bool
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        function write($filePath, $content, $gzip = true)
        {
        }
    }
}
namespace Bitrix\Main {
    class XmlWriter
    {
        private $file = '';
        private $charset = '';
        private $tab = 0;
        private $f = null;
        private $lowercaseTag = false;
        private $errors = array();
        /**
         * Constructor.
         * @param array $params Array of settings.
         */
        public function __construct(array $params)
        {
        }
        /**
         * Prepare tag for write.
         * @param string $tag Code of tag.
         * @return string
         */
        private function prepareTag($tag)
        {
        }
        /**
         * Prepare value for write.
         * @param string $value Value.
         * @return string
         */
        private function prepareValue($value)
        {
        }
        /**
         * Write begin tag to file.
         * @param string $code Code of tag.
         * @return void
         */
        public function writeBeginTag($code)
        {
        }
        /**
         * Write end tag to file.
         * @param string $code Code of tag.
         * @return void
         */
        public function writeEndTag($code)
        {
        }
        /**
         * Write full tag to file.
         * @param string $code Code of tag.
         * @param string $value Code for tag.
         * @return void
         */
        public function writeFullTag($code, $value)
        {
        }
        /**
         * Add one more error.
         * @param mixed $message Text of error.
         * @param mixed $code Code of error.
         * @return void
         */
        private function addError($message, $code)
        {
        }
        /**
         * Return errors if exists.
         * @return array
         */
        public function getErrors()
        {
        }
        /**
         * Open file for write, start write xml.
         * @return void
         */
        public function openFile()
        {
        }
        /**
         * Close the open file.
         * @return void
         */
        public function closeFile()
        {
        }
        /**
         * Write one chunk in xml file.
         * @param array $item Data for write.
         * @param string $wrapperTag If != '' wrapper the array in this tag.
         * @return void
         */
        public function writeItem(array $item, $wrapperTag = '')
        {
        }
    }
}
namespace Bitrix\Main\Diag {
    class CacheTracker
    {
        private static $cacheStatBytes = 0;
        private static $arCacheDebug = array();
        private static $skipUntil = array("bitrix\\main\\diag\\cachetracker::add" => true, "bitrix\\main\\data\\cache->initcache" => true, "bitrix\\main\\data\\cache->startdatacache" => true, "bitrix\\main\\data\\cache->enddatacache" => true, "bitrix\\main\\data\\cache->clean" => true, "bitrix\\main\\data\\cache->cleandir" => true, "bitrix\\main\\data\\managedcache->read" => true, "bitrix\\main\\data\\managedcache->setimmediate" => true, "bitrix\\main\\data\\managedcache->clean" => true, "bitrix\\main\\data\\managedcache->cleandir" => true, "bitrix\\main\\data\\managedcache->cleanall" => true, "cbitrixcomponent->startresultcache" => true);
        /**
         * @param int $cacheStatBytes
         */
        public static function setCacheStatBytes($cacheStatBytes)
        {
        }
        public static function addCacheStatBytes($cacheStatBytes)
        {
        }
        public static function getCacheStatBytes()
        {
        }
        public static function add($size, $path, $baseDir, $initDir, $filename, $operation)
        {
        }
        public static function getCacheTracking()
        {
        }
        public static function setCacheTracking($val)
        {
        }
    }
    interface IExceptionHandlerOutput
    {
        /**
         * @param \Error|\Exception $exception
         * @param bool $debug
         */
        public function renderExceptionMessage($exception, $debug = false);
    }
    class ExceptionHandlerOutput implements \Bitrix\Main\Diag\IExceptionHandlerOutput
    {
        /**
         * @param \Error|\Exception $exception
         * @param bool $debug
         */
        public function renderExceptionMessage($exception, $debug = false)
        {
        }
    }
    class SqlTracker implements \Iterator
    {
        /** @var SqlTrackerQuery[] */
        protected $queries = array();
        /** @var float */
        protected $time = 0.0;
        /** @var int */
        protected $depthBackTrace = 8;
        /** @var integer */
        protected $counter = 0;
        /** @var string */
        protected $logFilePath = "";
        /**
         * Clears all queries collected and resets execution time.
         *
         * @return void
         */
        public function reset()
        {
        }
        /**
         * Creates new instance of SqlTrackerQuery object.
         *
         * @return \Bitrix\Main\Diag\SqlTrackerQuery
         */
        public function getNewTrackerQuery()
        {
        }
        /**
         * Used by SqlTrackerQuery to track overall execution time.
         *
         * @param float $time Time in seconds.
         *
         * @return void
         */
        public function addTime($time)
        {
        }
        /**
         * Returns number of queries executed.
         *
         * @return integer
         */
        public function getCounter()
        {
        }
        /**
         * Returns overall queries time execution.
         *
         * @return float
         */
        public function getTime()
        {
        }
        /**
         * Returns array of SqlTrackerQuery objects so far collected.
         *
         * @return SqlTrackerQuery[]
         */
        public function getQueries()
        {
        }
        /**
         * Returns backtrace depth for writing into log.
         *
         * @return int
         */
        public function getDepthBackTrace()
        {
        }
        /**
         * Sets backtrace depth for writing into log.
         *
         * @param int $depthBackTrace Desired backtrace depth.
         *
         * @return void
         */
        public function setDepthBackTrace($depthBackTrace)
        {
        }
        /**
         * Starts writing queries into log file.
         *
         * @param string $filePath Absolute file path.
         *
         * @return void
         * @see \Bitrix\Main\Diag\SqlTracker->stopFileLog
         * @see \Bitrix\Main\Diag\SqlTracker->writeFileLog
         */
        public function startFileLog($filePath)
        {
        }
        /**
         * Writes query text and part of backtrace into log file.
         *
         * @param string $sql Query to be dumped.
         * @param float $executionTime Query time.
         * @param string $additional Additional info string to be added to header.
         * @param integer $traceSkip How many backtrace frames to skip in output.
         *
         * @return void
         * @see \Bitrix\Main\Diag\SqlTracker->startFileLog
         * @see \Bitrix\Main\Diag\SqlTracker->stopFileLog
         */
        public function writeFileLog($sql, $executionTime = 0.0, $additional = "", $traceSkip = 2)
        {
        }
        /**
         * Stops writing queries into log file.
         *
         * @return void
         * @see \Bitrix\Main\Diag\SqlTracker->startFileLog
         * @see \Bitrix\Main\Diag\SqlTracker->writeFileLog
         */
        public function stopFileLog()
        {
        }
        /**
         * Skips leading whitespace lines.
         * And cuts leftmost repeated tabs.
         *
         * @param string $sql Sql text.
         *
         * @return string
         */
        protected function formatSql($sql)
        {
        }
        /**
         * Returns formatted backtrace for log writing.
         * Format is multi line. Line separator is "\n".
         *
         * @param array $trace Backtrace.
         *
         * @return string
         */
        protected function formatTrace(array $trace = null)
        {
        }
        /**
         * Part of Iterator implementation made for backward compatibility.
         *
         * @return void
         */
        public function rewind()
        {
        }
        /**
         * Part of Iterator implementation made for backward compatibility.
         *
         * @return mixed
         */
        public function current()
        {
        }
        /**
         * Part of Iterator implementation made for backward compatibility.
         *
         * @return mixed
         */
        public function key()
        {
        }
        /**
         * Part of Iterator implementation made for backward compatibility.
         *
         * @return void
         */
        public function next()
        {
        }
        /**
         * Part of Iterator implementation made for backward compatibility.
         *
         * @return boolean
         */
        public function valid()
        {
        }
    }
    class SqlTrackerQuery implements \ArrayAccess
    {
        /** @var string */
        protected $sql = "";
        /** @var array|null */
        protected $binds = null;
        /** @var string */
        protected $state = "";
        /** @var string */
        protected $node = "";
        /** @var float */
        protected $startTime = 0.0;
        /** @var float */
        protected $finishTime = 0.0;
        /** @var float */
        protected $time = 0.0;
        /** @var array|null */
        protected $trace = null;
        /** @var SqlTracker */
        protected $tracker;
        /**
         * @param SqlTracker $tracker This sql tracker.
         */
        public function __construct(\Bitrix\Main\Diag\SqlTracker $tracker)
        {
        }
        /**
         * Starts sql timer.
         *
         * @param string $sql Query text.
         * @param array $binds Binded variables used with query.
         *
         * @return void
         */
        public function startQuery($sql, array $binds = null)
        {
        }
        /**
         * Ends sql timer.
         *
         * @param integer $skip How many backtrace skip. By default 3.
         *
         * @return void
         */
        public function finishQuery($skip = 3)
        {
        }
        /**
         * Resets sql timer start.
         * combined with refinishQuery allows additional time to be included into execution.
         *
         * @return void
         * @see \Bitrix\Main\Diag\SqlTrackerQuery::refinishQuery
         */
        public function restartQuery()
        {
        }
        /**
         * Finishes query timer one more time.
         * Use with restartQuery.
         *
         * @return void
         * @see \Bitrix\Main\Diag\SqlTrackerQuery::restartQuery
         */
        public function refinishQuery()
        {
        }
        /**
         * Returns tracked sql text.
         *
         * @return string
         */
        public function getSql()
        {
        }
        /**
         * Sets tracked sql text.
         * Returns the object for call chaining.
         *
         * @param string $sql Sql text.
         *
         * @return \Bitrix\Main\Diag\SqlTrackerQuery
         */
        public function setSql($sql)
        {
        }
        /**
         * Returns sql binds used for query execution.
         *
         * @return array|null
         */
        public function getBinds()
        {
        }
        /**
         * Sets tracked sql binds.
         * Returns the object for call chaining.
         *
         * @param array $binds Sql binds.
         *
         * @return \Bitrix\Main\Diag\SqlTrackerQuery
         */
        public function setBinds(array $binds)
        {
        }
        /**
         * Returns page state of the query.
         *
         * @return string
         */
        public function getState()
        {
        }
        /**
         * Sets tracked sql page state.
         * Returns the object for call chaining.
         *
         * @param string $state Page state.
         *
         * @return \Bitrix\Main\Diag\SqlTrackerQuery
         */
        public function setState($state)
        {
        }
        /**
         * Returns sql connection node id of the query.
         *
         * @return string
         */
        public function getNode()
        {
        }
        /**
         * Sets tracked sql connection node id.
         * Returns the object for call chaining.
         *
         * @param string $node Cluster node identifier.
         *
         * @return \Bitrix\Main\Diag\SqlTrackerQuery
         */
        public function setNode($node)
        {
        }
        /**
         * Returns sql execution time.
         *
         * @return float
         */
        public function getTime()
        {
        }
        /**
         * Sets tracked sql execution time.
         * Returns the object for call chaining.
         *
         * @param float $time Sql execution time in seconds.
         *
         * @return \Bitrix\Main\Diag\SqlTrackerQuery
         */
        public function setTime($time)
        {
        }
        /**
         * Increments sql execution time.
         *
         * @param float $time Time in seconds to add.
         *
         * @return void
         */
        public function addTime($time)
        {
        }
        /**
         * Returns backtrace of the query.
         *
         * @return array|null
         */
        public function getTrace()
        {
        }
        /**
         * Sets tracked sql backtrace.
         * Returns the object for call chaining.
         *
         * @param array $trace Query backtrace.
         *
         * @return \Bitrix\Main\Diag\SqlTrackerQuery
         */
        public function setTrace(array $trace)
        {
        }
        /**
         * Whether a offset exists.
         * Part of ArrayAccess implementation made for backward compatibility.
         *
         * @param mixed $offset Array key.
         *
         * @return boolean
         */
        public function offsetExists($offset)
        {
        }
        /**
         * Offset to retrieve.
         * Part of ArrayAccess implementation made for backward compatibility.
         *
         * @param mixed $offset Array key.
         *
         * @return mixed
         */
        public function offsetGet($offset)
        {
        }
        /**
         * Offset to set.
         * Part of ArrayAccess implementation made for backward compatibility.
         *
         * @param mixed $offset Array key.
         * @param mixed $value Array value.
         *
         * @return mixed
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * Offset to unset.
         * Part of ArrayAccess implementation made for backward compatibility.
         *
         * @param mixed $offset Array key.
         *
         * @return mixed
         */
        public function offsetUnset($offset)
        {
        }
        /**
         * Removes and formats memory consuming function arguments in the backtrace.
         *
         * @param array $trace Backtrace.
         *
         * @return array
         */
        protected function filterTrace($trace)
        {
        }
    }
    class Debug
    {
        protected static $timeLabels = array();
        public static function startTimeLabel($name)
        {
        }
        public static function endTimeLabel($name)
        {
        }
        public static function getTimeLabels()
        {
        }
        public static function dump($var, $varName = "", $return = false)
        {
        }
        public static function dumpToFile($var, $varName = "", $fileName = "")
        {
        }
        public static function writeToFile($var, $varName = "", $fileName = "")
        {
        }
    }
    class ExceptionHandler
    {
        private $debug = false;
        private $handledErrorsTypes;
        private $exceptionErrorsTypes;
        private $catchOverflowMemory = false;
        private $memoryReserveLimit = 65536;
        private $memoryReserve;
        private $ignoreSilence = false;
        private $assertionThrowsException = true;
        private $assertionErrorType = E_USER_ERROR;
        /**
         * @var ExceptionHandlerLog
         */
        private $handlerLog = null;
        private $handlerLogCreator = null;
        /**
         * @var IExceptionHandlerOutput
         */
        private $handlerOutput = null;
        private $handlerOutputCreator = null;
        private $isInitialized = false;
        /**
         * ExceptionHandler constructor.
         */
        public function __construct()
        {
        }
        /**
         * Sets debug mode.
         * Should be used for development install.
         *
         * @param boolean $debug If true errors will be displayed in html output. If false most errors will be suppressed.
         *
         * @return void
         */
        public function setDebugMode($debug)
        {
        }
        /**
         * Whenever to try catch and report memory overflows errors or not.
         *
         * @param boolean $catchOverflowMemory If true memory overflow errors will be handled.
         *
         * @return void
         */
        public function setOverflowMemoryCatching($catchOverflowMemory)
        {
        }
        /**
         * Sets error types to be handled.
         *
         * @param integer $handledErrorsTypes Bitmask of error types.
         *
         * @return void
         * @see http://php.net/manual/en/errorfunc.constants.php
         */
        public function setHandledErrorsTypes($handledErrorsTypes)
        {
        }
        /**
         * Sets assertion types to be handled.
         *
         * @param integer $assertionErrorType Bitmask of assertion types.
         *
         * @return void
         * @see http://php.net/manual/en/errorfunc.constants.php
         */
        public function setAssertionErrorType($assertionErrorType)
        {
        }
        /**
         * Whenever to throw an exception on assertion or not.
         *
         * @param boolean $assertionThrowsException If true an assertion will throw exception.
         *
         * @return void
         */
        public function setAssertionThrowsException($assertionThrowsException)
        {
        }
        /**
         * Sets which errors will raise an exception.
         *
         * @param integer $errorTypesException Bitmask of error types.
         *
         * @return void
         * @see http://php.net/manual/en/errorfunc.constants.php
         */
        public function setExceptionErrorsTypes($errorTypesException)
        {
        }
        /**
         * Whenever to ignore error_reporting() == 0 or not.
         *
         * @param boolean $ignoreSilence If true then error_reporting()==0 will be ignored.
         *
         * @return void
         */
        public function setIgnoreSilence($ignoreSilence)
        {
        }
        /**
         * Sets logger object to use for log writing.
         *
         * @param \Bitrix\Main\Diag\ExceptionHandlerLog $handlerLog Logger object.
         *
         * @return void
         */
        public function setHandlerLog(\Bitrix\Main\Diag\ExceptionHandlerLog $handlerLog = null)
        {
        }
        /**
         * Sets an object used for error message display to user.
         *
         * @param \Bitrix\Main\Diag\IExceptionHandlerOutput $handlerOutput Object will display errors to user.
         *
         * @return void
         */
        public function setHandlerOutput(\Bitrix\Main\Diag\IExceptionHandlerOutput $handlerOutput)
        {
        }
        /**
         * Adjusts PHP for error handling.
         *
         * @return void
         */
        protected function initializeEnvironment()
        {
        }
        /**
         * Returns an object used for error message display to user.
         *
         * @return IExceptionHandlerOutput|null
         */
        protected function getHandlerOutput()
        {
        }
        /**
         * Returns an object for error message writing to log.
         *
         * @return ExceptionHandlerLog|null
         */
        protected function getHandlerLog()
        {
        }
        /**
         * Initializes error handling.
         * Must be called after the object creation.
         *
         * @param callable $exceptionHandlerOutputCreator Function to return an object for error message formatting.
         * @param callable|null $exceptionHandlerLogCreator Function to return an object for log writing.
         *
         * @return void
         */
        public function initialize($exceptionHandlerOutputCreator, $exceptionHandlerLogCreator = null)
        {
        }
        /**
         * Writes exception information into log, displays it to user and terminates with die().
         *
         * @param \Exception|\Error $exception Exception object.
         *
         * @return void
         * @see \Bitrix\Main\Diag\ExceptionHandler::writeToLog
         * @see \Bitrix\Main\Diag\ExceptionHandler::initialize
         */
        public function handleException($exception)
        {
        }
        /**
         * Creates and exception object from its arguments.
         * Throws it if $code matches exception mask or writes it into log.
         *
         * @param integer $code Error code.
         * @param string $message Error message.
         * @param string $file File where error has occurred.
         * @param integer $line File line number where error has occurred.
         *
         * @return true
         * @throws \ErrorException
         * @see \Bitrix\Main\Diag\ExceptionHandler::setExceptionErrorsTypes
         */
        public function handleError($code, $message, $file, $line)
        {
        }
        /**
         * Creates and exception object from its arguments.
         * Throws it if assertion set to raise exception (which is by default) or writes it to log.
         *
         * @param string $file File where error has occurred.
         * @param integer $line File line number where error has occurred.
         * @param string $message Error message.
         *
         * @return void
         * @throws \ErrorException
         * @see \Bitrix\Main\Diag\ExceptionHandler::setAssertionThrowsException
         */
        public function handleAssertion($file, $line, $message)
        {
        }
        /**
         * Gets error information from error_get_last() function.
         * Checks if type for certain error types and writes it to log.
         *
         * @return void
         * @see error_get_last
         * @see \Bitrix\Main\Diag\ExceptionHandler::setHandledErrorsTypes
         */
        public function handleFatalError()
        {
        }
        /**
         * Writes an exception information to log.
         *
         * @param \Exception $exception Exception object.
         * @param integer|null $logType See ExceptionHandlerLog class constants.
         *
         * @return void
         * @see \Bitrix\Main\Diag\ExceptionHandler::initialize
         */
        public function writeToLog($exception, $logType = null)
        {
        }
    }
    class ExceptionHandlerFormatter
    {
        const MAX_CHARS = 30;
        const SHOW_PARAMETERS = 1;
        const DELIMITER = '----------';
        /**
         * @param \Error|\Exception $exception
         * @param bool $htmlMode
         * @param int $level
         * @return string
         */
        public static function format($exception, $htmlMode = false, $level = 0)
        {
        }
        /**
         * @param \Error|\Exception $exception
         * @return array
         */
        protected static function getTrace($exception)
        {
        }
        /**
         * @param \Error|\Exception $exception
         * @return string
         */
        protected static function getMessage($exception)
        {
        }
        public static function severityToString($severity)
        {
        }
        protected static function getArguments($args, $level)
        {
        }
        protected static function convertArgumentToString($arg, $level)
        {
        }
        protected static function getFileLink($file, $line)
        {
        }
    }
    class Helper
    {
        /**
         * Returns current Unix timestamp with microseconds.
         *
         * @return float
         */
        public static function getCurrentMicrotime()
        {
        }
        /**
         * Returns array backtrace.
         *
         * @param integer $limit Maximum stack elements to return.
         * @param null|integer $options Passed to debug_backtrace options.
         * @param integer $skip How many stack frames to skip.
         *
         * @return array
         * @see debug_backtrace
         */
        public static function getBackTrace($limit = 0, $options = null, $skip = 1)
        {
        }
    }
    class HttpExceptionHandlerOutput implements \Bitrix\Main\Diag\IExceptionHandlerOutput
    {
        /**
         * @param \Error|\Exception $exception
         * @param bool $debug
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         */
        public function renderExceptionMessage($exception, $debug = false)
        {
        }
    }
}
namespace Bitrix\Main\DI {
    final class ServiceLocator implements \Psr\Container\ContainerInterface
    {
        /** @var string[][] */
        private $services = [];
        /** @var mixed[] */
        private $instantiated = [];
        /** @var self */
        private static $instance;
        private function __construct()
        {
        }
        private function __clone()
        {
        }
        public static function getInstance() : self
        {
        }
        /**
         * Adds service to locator.
         * @param string $code
         * @param mixed $service
         */
        public function addInstance(string $code, $service) : void
        {
        }
        /**
         * Adds service with lazy initialization.
         * @param string $code
         * @param array $configuration
         * @throws SystemException
         * @return void
         */
        public function addInstanceLazy(string $code, $configuration) : void
        {
        }
        /**
         * Registers services by module settings, which is stored in {moduleName}/.settings.php.
         * @param string $moduleName
         * @throws SystemException
         */
        public function registerByModuleSettings(string $moduleName) : void
        {
        }
        /**
         * Registers services by project settings, which is stored .settings.php.
         * @throws SystemException
         */
        public function registerByGlobalSettings() : void
        {
        }
        /**
         * Checks whether the service with code exists.
         * @param string $code
         * @return bool
         */
        public function has($code) : bool
        {
        }
        /**
         * Returns services by code.
         * @param string $code
         * @return mixed
         * @throws ObjectNotFoundException|\Psr\Container\NotFoundExceptionInterface
         */
        public function get($code)
        {
        }
        private function buildNotFoundException(string $code)
        {
        }
        private function buildBadRegistrationExceptions(string $code)
        {
        }
    }
}
namespace Bitrix\Main\Type {
    class ParameterDictionary extends \Bitrix\Main\Type\Dictionary
    {
        /**
         * @var array
         */
        protected $arRawValues = null;
        protected function setValuesNoDemand(array $values)
        {
        }
        /**
         * Returns original value of any variable by its name. Null if variable is not set.
         *
         * @param string $name
         * @return string | null
         */
        public function getRaw($name)
        {
        }
        public function toArrayRaw()
        {
        }
        /**
         * Offset to set
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * Offset to unset
         */
        public function offsetUnset($offset)
        {
        }
    }
}
namespace Bitrix\Main {
    /**
     * Represents server.
     */
    class Server extends \Bitrix\Main\Type\ParameterDictionary
    {
        /**
         * Creates server object.
         *
         * @param array $arServer
         */
        public function __construct(array $arServer)
        {
        }
        public function addFilter(\Bitrix\Main\Type\IRequestFilter $filter)
        {
        }
        /**
         * Returns server document root.
         *
         * @return string | null
         */
        public function getDocumentRoot()
        {
        }
        /**
         * Returns custom root folder.
         * Server variable BX_PERSONAL_ROOT is used. If empty - returns /bitrix.
         *
         * @return string | null
         */
        public function getPersonalRoot()
        {
        }
        /**
         * Returns server http host.
         *
         * @return string | null
         */
        public function getHttpHost()
        {
        }
        /**
         * Returns server name.
         *
         * @return string | null
         */
        public function getServerName()
        {
        }
        /**
         * Returns server address.
         *
         * @return string | null
         */
        public function getServerAddr()
        {
        }
        /**
         * Returns remote address.
         * @return string|null
         */
        public function getRemoteAddr()
        {
        }
        /**
         * Returns user agent.
         * @return string|null
         */
        public function getUserAgent()
        {
        }
        /**
         * Returns server port.
         *
         * @return string | null
         */
        public function getServerPort()
        {
        }
        public function getRequestScheme()
        {
        }
        /**
         * Returns requested uri.
         * /index.php/test1/test2?login=yes&back_url_admin=/
         *
         * @return string | null
         */
        public function getRequestUri()
        {
        }
        /**
         * Returns requested method.
         *
         * @return string | null
         */
        public function getRequestMethod()
        {
        }
        /**
         * Returns PHP_SELF.
         * /index.php/test1/test2
         *
         * @return string | null
         */
        public function getPhpSelf()
        {
        }
        /**
         * Returns SCRIPT_NAME.
         * /index.php
         *
         * @return string | null
         */
        public function getScriptName()
        {
        }
        public function rewriteUri($url, $queryString, $redirectStatus = null)
        {
        }
        public function transferUri($url, $queryString = "")
        {
        }
    }
}
namespace Bitrix\Main\Context {
    class Culture extends \Bitrix\Main\Localization\EO_Culture
    {
        public function getDateTimeFormat()
        {
        }
        public function getDateFormat()
        {
        }
        public function getNameFormat()
        {
        }
    }
    class Site
    {
        /** @var Culture */
        protected $culture;
        protected $fields;
        public function __construct($fields = null)
        {
        }
        public function getCulture()
        {
        }
        /**
         * @param Culture $culture
         */
        public function setCulture(\Bitrix\Main\Context\Culture $culture)
        {
        }
        public function getLanguage()
        {
        }
        public function getDocRoot()
        {
        }
        public function getId()
        {
        }
    }
}
namespace Bitrix\Main {
    /**
     * Class Request contains current request
     * @package Bitrix\Main
     */
    abstract class Request extends \Bitrix\Main\Type\ParameterDictionary
    {
        /**
         * @var Server
         */
        protected $server;
        protected $requestedPage = null;
        protected $requestedPageDirectory = null;
        public function __construct(\Bitrix\Main\Server $server, array $request)
        {
        }
        public function addFilter(\Bitrix\Main\Type\IRequestFilter $filter)
        {
        }
        /**
         * @return Server
         */
        public function getServer()
        {
        }
        public function getPhpSelf()
        {
        }
        public function getScriptName()
        {
        }
        public function getRequestedPage()
        {
        }
        public function getRequestedPageDirectory()
        {
        }
        public function isAdminSection()
        {
        }
        /**
         * Returns true if current request is AJAX
         * @return bool
         */
        public function isAjaxRequest()
        {
        }
    }
    /**
     * Class HttpRequest extends Request. Contains http specific request data.
     *
     * @package Bitrix\Main
     */
    class HttpRequest extends \Bitrix\Main\Request
    {
        /**
         * @var Type\ParameterDictionary
         */
        protected $queryString;
        /**
         * @var Type\ParameterDictionary
         */
        protected $postData;
        /**
         * @var Type\ParameterDictionary
         */
        protected $files;
        /**
         * @var Type\ParameterDictionary
         */
        protected $cookies;
        /**
         * @var Type\ParameterDictionary
         */
        protected $cookiesRaw;
        /**
         * @var HttpHeaders
         */
        protected $headers;
        protected $httpHost;
        /**
         * Creates new HttpRequest object
         *
         * @param Server $server
         * @param array $queryString _GET
         * @param array $postData _POST
         * @param array $files _FILES
         * @param array $cookies _COOKIE
         */
        public function __construct(\Bitrix\Main\Server $server, array $queryString, array $postData, array $files, array $cookies)
        {
        }
        private function buildHttpHeaders(\Bitrix\Main\Server $server)
        {
        }
        /**
         * Applies filter to the http request data. Preserve original values.
         *
         * @param Type\IRequestFilter $filter Filter object
         */
        public function addFilter(\Bitrix\Main\Type\IRequestFilter $filter)
        {
        }
        /**
         * Returns the GET parameter of the current request.
         *
         * @param string $name Parameter name
         * @return null|mixed
         */
        public function getQuery($name)
        {
        }
        /**
         * Returns the list of GET parameters of the current request.
         *
         * @return Type\ParameterDictionary
         */
        public function getQueryList()
        {
        }
        /**
         * Returns the POST parameter of the current request.
         *
         * @param $name
         * @return null|mixed
         */
        public function getPost($name)
        {
        }
        /**
         * Returns the list of POST parameters of the current request.
         *
         * @return Type\ParameterDictionary
         */
        public function getPostList()
        {
        }
        /**
         * Returns the FILES parameter of the current request.
         *
         * @param $name
         * @return null|mixed
         */
        public function getFile($name)
        {
        }
        /**
         * Returns the list of FILES parameters of the current request.
         *
         * @return Type\ParameterDictionary
         */
        public function getFileList()
        {
        }
        /**
         * Returns the header of the current request.
         *
         * @param string $name Name of header.
         *
         * @return null|string
         */
        public function getHeader($name)
        {
        }
        /**
         * Returns the list of headers of the current request.
         *
         * @return HttpHeaders
         */
        public function getHeaders()
        {
        }
        /**
         * Returns the COOKIES parameter of the current request.
         *
         * @param $name
         * @return null|string
         */
        public function getCookie($name)
        {
        }
        /**
         * Returns the list of COOKIES parameters of the current request.
         *
         * @return Type\ParameterDictionary
         */
        public function getCookieList()
        {
        }
        public function getCookieRaw($name)
        {
        }
        public function getCookieRawList()
        {
        }
        public function getRemoteAddress()
        {
        }
        public function getRequestUri()
        {
        }
        public function getRequestMethod()
        {
        }
        /**
         * Returns server port.
         *
         * @return string | null
         */
        public function getServerPort()
        {
        }
        public function isPost()
        {
        }
        /**
         * Returns the User-Agent HTTP request header.
         * @return null|string
         */
        public function getUserAgent()
        {
        }
        public function getAcceptedLanguages()
        {
        }
        /**
         * Returns the current page calculated from the request URI.
         *
         * @return string
         */
        public function getRequestedPage()
        {
        }
        /**
         * Returns url-decoded and converted to the current encoding URI of the request (except the query string).
         *
         * @return string
         */
        public function getDecodedUri()
        {
        }
        protected static function decode($url)
        {
        }
        /**
         * Returns the host from the server variable without a port number.
         * @return string
         */
        public function getHttpHost()
        {
        }
        public function isHttps()
        {
        }
        public function modifyByQueryString($queryString)
        {
        }
        /**
         * @param array $cookies
         * @return array
         */
        protected function prepareCookie(array $cookies)
        {
        }
        private function fetchHeaders(\Bitrix\Main\Server $server)
        {
        }
        private function normalizeHeaders(array $headers)
        {
        }
        protected static function normalize($path)
        {
        }
        /**
         * Returns script file possibly corrected by urlrewrite.php or virtual_file_system.php.
         *
         * @return string
         */
        public function getScriptFile()
        {
        }
        /**
         * Returns the array with predefined query parameters.
         * @return array
         */
        public static function getSystemParameters()
        {
        }
        /**
         * Returns raw request data from php://input.
         * @return bool|string
         */
        public static function getInput()
        {
        }
        /**
         * Returns Y if persistant cookies are enabled, N if disabled, or empty if unknown.
         * @return null|string
         */
        public function getCookiesMode()
        {
        }
    }
    class SenderEventHandler
    {
        /**
         * @param $data
         * @return mixed
         */
        public static function onConnectorListUser($data)
        {
        }
    }
    class SenderConnectorUser extends \Bitrix\Sender\Connector
    {
        /**
         * @return string
         */
        public function getName()
        {
        }
        /**
         * @return string
         */
        public function getCode()
        {
        }
        /** @return \CDBResult */
        public function getData()
        {
        }
        /**
         * @return string
         * @throws ArgumentException
         */
        public function getForm()
        {
        }
    }
}
namespace Bitrix\Main\Test\Webpacker {
    /**
     * Class Simple
     *
     * @package Bitrix\Crm\UI\Webpacker
     */
    class Simple
    {
        /**
         * Print script.
         *
         * @return void
         */
        public static function printScript()
        {
        }
    }
}
namespace Bitrix\Main\Test\Typography {
    /**
     * @package    bitrix
     * @subpackage main
     */
    class Book extends \Bitrix\Main\Test\Typography\EO_Book
    {
    }
    /**
     * @package    bitrix
     * @subpackage main
     */
    class Books extends \Bitrix\Main\Test\Typography\EO_Book_Collection
    {
    }
}
namespace Bitrix\Main\Update {
    final class UserStepper extends \Bitrix\Main\Update\Stepper
    {
        const OPTION_NAME = "main_index_user";
        protected static $moduleId = "main";
        /**
         * @inheritdoc
         */
        public function execute(array &$result)
        {
        }
    }
    final class UserSelectorStepper extends \Bitrix\Main\Update\Stepper
    {
        const OPTION_NAME = "main_index_user_selector";
        protected static $moduleId = "main";
        /**
         * @inheritdoc
         */
        public function execute(array &$result)
        {
        }
    }
}
namespace Bitrix\Main\Access\Role {
    interface AccessibleRoleDictionary
    {
        public static function getRoleName(string $code) : string;
    }
    abstract class AccessRoleTable extends \Bitrix\Main\Access\Entity\DataManager
    {
        public static function getMap()
        {
        }
    }
    abstract class RoleDictionary implements \Bitrix\Main\Access\Role\AccessibleRoleDictionary
    {
        protected static $locLoaded = [];
        public static function getRoleName(string $code) : string
        {
        }
        protected static function loadLoc()
        {
        }
    }
}
namespace Bitrix\Main\Access\Auth {
    class AccessAuthProvider extends \CAuthProvider
    {
        protected const PROVIDER_ID = 'access';
        public static function GetProviders()
        {
        }
        public function __construct()
        {
        }
        public function UpdateCodes($userId)
        {
        }
    }
    class AccessEventHandler
    {
        public static function onBeforeIBlockSectionUpdate(&$fields)
        {
        }
        public static function onBeforeIBlockSectionDelete($sectionId)
        {
        }
        public static function onBeforeIBlockSectionAdd(&$fields)
        {
        }
        private static function deleteByAccessCode(string $accessCode)
        {
        }
    }
}
namespace Bitrix\Main\Access\User {
    class UserSubordinate
    {
        public const RELATION_OTHER = 0, RELATION_HIMSELF = 1, RELATION_DEPARTMENT = 2, RELATION_SUBORDINATE = 3, RELATION_DIRECTOR = 4, RELATION_OTHER_DIRECTOR = 5;
        private $userId;
        private static $cache = [];
        private static $structure;
        public static function getDepartmentsByUserId(int $userId) : array
        {
        }
        public function __construct(int $userId)
        {
        }
        public function getSubordinate(int $userId) : int
        {
        }
        private static function getParentDepartments(int $id)
        {
        }
        private function getDepartmentsManagers($departments, bool $recursive = false) : array
        {
        }
        private static function getStructure()
        {
        }
        private static function getAllManagers() : array
        {
        }
        private static function getUserDepartments(int $userId)
        {
        }
    }
}
namespace Bitrix\Main\Access {
    class AccessCode
    {
        public const ACCESS_DIRECTOR = 'AD', ACCESS_EMPLOYEE = 'AE';
        public const AC_DEPARTMENT = '^(D)(\\d+)$', AC_ALL_DEPARTMENT = '^(DR)(\\d+)$', AC_INTRANET_USER = '^(IU)(\\d+)$', AC_GROUP = '^(G)(\\d+)$', AC_USER = '^(U)(\\d+)$', AC_SOCNETGROUP = '^(SG)(\\d+)(_[AEK])?$', AC_SOCNETUSER = '^(SU)(\\d+)(_M)?$', AC_ACCESS_DIRECTOR = '^(' . self::ACCESS_DIRECTOR . ')(\\d+)?$', AC_ACCESS_EMPLOYEE = '^(' . self::ACCESS_EMPLOYEE . ')(\\d+)?$';
        public const TYPE_USER = 'users', TYPE_USER_ALL = 'users_all', TYPE_GROUP = 'groups', TYPE_SOCNETGROUP = 'sonetgroups', TYPE_DEPARTMENT = 'departments', TYPE_ACCESS_DIRECTOR = 'access_director', TYPE_ACCESS_EMPLOYEE = 'access_employee', TYPE_OTHER = 'other';
        public static $map = [self::AC_DEPARTMENT => self::TYPE_DEPARTMENT, self::AC_ALL_DEPARTMENT => self::TYPE_DEPARTMENT, self::AC_INTRANET_USER => self::TYPE_USER, self::AC_GROUP => self::TYPE_GROUP, self::AC_USER => self::TYPE_USER, self::AC_SOCNETGROUP => self::TYPE_SOCNETGROUP, self::AC_SOCNETUSER => self::TYPE_OTHER, self::AC_ACCESS_DIRECTOR => self::TYPE_ACCESS_DIRECTOR, self::AC_ACCESS_EMPLOYEE => self::TYPE_ACCESS_EMPLOYEE];
        private $accessCode;
        private $entityType = self::TYPE_OTHER;
        private $entityPrefix = '';
        private $entityId = 0;
        public function __construct(string $accessCode)
        {
        }
        public function getSignature()
        {
        }
        public function getEntityType() : string
        {
        }
        public function getEntityPrefix() : string
        {
        }
        public function getEntityId() : int
        {
        }
        private function parse()
        {
        }
        public static function isValid($code)
        {
        }
    }
}
namespace Bitrix\Main\Access\Exception {
    class UnknownActionException extends \Bitrix\Main\Access\Exception\AccessException
    {
    }
    class RoleSaveException extends \Bitrix\Main\Access\Exception\AccessException
    {
    }
    class RoleNotFoundException extends \Bitrix\Main\Access\Exception\AccessException
    {
    }
    class RoleRelationSaveException extends \Bitrix\Main\Access\Exception\AccessException
    {
    }
    class PermissionSaveException extends \Bitrix\Main\Access\Exception\AccessException
    {
    }
}
namespace Bitrix\Main\Access\Event {
    class EventDictionary
    {
        public const EVENT_ON_BEFORE_CHECK = 'onBeforeCheck', EVENT_ON_AFTER_CHECK = 'onAfterCheck';
    }
    class Event extends \Bitrix\Main\Event
    {
        public function isAccess() : ?bool
        {
        }
    }
}
namespace Bitrix\Main {
    class EventResult
    {
        const UNDEFINED = 0;
        const SUCCESS = 1;
        const ERROR = 2;
        protected $moduleId;
        protected $handler;
        protected $type;
        protected $parameters;
        public function __construct($type, $parameters = null, $moduleId = null, $handler = null)
        {
        }
        /** @deprecated Use getType() */
        public function getResultType()
        {
        }
        public function getType()
        {
        }
        public function getModuleId()
        {
        }
        public function getHandler()
        {
        }
        public function getParameters()
        {
        }
    }
}
namespace Bitrix\Main\Access\Event {
    class EventResult extends \Bitrix\Main\EventResult
    {
        protected $isAccess = null;
        public function allowAccess() : self
        {
        }
        public function forbidAccess() : self
        {
        }
        public function isAccess() : ?bool
        {
        }
    }
}
namespace Bitrix\Main {
    /**
     * Context of current request.
     */
    class Context
    {
        /** @var Application */
        protected $application;
        /** @var Response */
        protected $response;
        /** @var Request */
        protected $request;
        /** @var Server */
        protected $server;
        /** @var string */
        private $language;
        /** @var string */
        private $site;
        /** @var Environment */
        protected $env;
        /** @var \Bitrix\Main\Context\Culture */
        protected $culture;
        /** @var array */
        protected $params;
        /**
         * Creates new instance of context.
         *
         * @param Application $application
         */
        public function __construct(\Bitrix\Main\Application $application)
        {
        }
        /**
         * Initializes context by request and response objects.
         *
         * @param Request $request
         * @param Response $response
         * @param Server $server
         * @param Environment $env
         */
        public function initialize(\Bitrix\Main\Request $request, \Bitrix\Main\Response $response = null, \Bitrix\Main\Server $server, array $params = array())
        {
        }
        public function getEnvironment()
        {
        }
        /**
         * Returns response object of the context.
         *
         * @return HttpResponse
         */
        public function getResponse()
        {
        }
        /**
         * Sets response of the context.
         *
         * @param Response $response Response.
         * @return void
         */
        public function setResponse(\Bitrix\Main\Response $response)
        {
        }
        /**
         * Returns request object of the context.
         *
         * @return HttpRequest
         */
        public function getRequest()
        {
        }
        /**
         * Returns server object of the context.
         *
         * @return Server
         */
        public function getServer()
        {
        }
        /**
         * Returns backreference to Application.
         *
         * @return Application
         */
        public function getApplication()
        {
        }
        /**
         * Returns culture of the context.
         *
         * @return \Bitrix\Main\Context\Culture
         */
        public function getCulture()
        {
        }
        /**
         * Returns current language (en, ru)
         *
         * @return string
         */
        public function getLanguage()
        {
        }
        /**
         * Returns current site
         *
         * @return string
         */
        public function getSite()
        {
        }
        /**
         * Sets culture of the context.
         *
         * @param \Bitrix\Main\Context\Culture $culture
         */
        public function setCulture(\Bitrix\Main\Context\Culture $culture)
        {
        }
        /**
         * Sets language of the context.
         *
         * @param string $language
         */
        public function setLanguage($language)
        {
        }
        /**
         * Sets site of the context.
         *
         * @param string $site
         */
        public function setSite($site)
        {
        }
        /**
         * Static method returns current instance of context.
         *
         * @static
         * @return Context
         */
        public static function getCurrent()
        {
        }
    }
    /**
     * Class HttpContext extends Context with http specific methods.
     * @package Bitrix\Main
     */
    class HttpContext extends \Bitrix\Main\Context
    {
        protected $session;
        /**
         * Creates new instance of context.
         *
         * @param HttpApplication $application
         */
        public function __construct(\Bitrix\Main\HttpApplication $application)
        {
        }
        public function getSession()
        {
        }
        public function rewriteUri($url, $queryString, $redirectStatus = null)
        {
        }
        public function transferUri($url, $queryString)
        {
        }
    }
}
namespace Bitrix\Main\Sms {
    class Event
    {
        const ERR_SITE = 'site';
        const ERR_TEMPLATES = 'templates';
        const ERR_MODULE = 'module';
        protected $eventName;
        protected $fields;
        protected $siteId;
        protected $languageId;
        protected $templateId;
        /**
         * Message constructor.
         * @param string $eventName Name of a SMS template
         * @param array $fields Data fields to insert into the message
         */
        public function __construct($eventName, array $fields = [])
        {
        }
        /**
         * @param string $siteId
         * @return $this
         */
        public function setSite($siteId)
        {
        }
        /**
         * @param string $languageId
         * @return $this
         */
        public function setLanguage($languageId)
        {
        }
        /**
         * @param int $templateId
         * @return $this
         */
        public function setTemplate($templateId)
        {
        }
        /**
         * @param bool $directly True - send directly, False - send via queue
         * @return Main\Result
         */
        public function send($directly = false)
        {
        }
        protected function fetchTemplates()
        {
        }
    }
    class Template extends \Bitrix\Main\Sms\EO_Template
    {
    }
    class Message
    {
        protected $sender;
        protected $receiver;
        protected $text;
        public function __construct()
        {
        }
        public static function createFromTemplate(\Bitrix\Main\Sms\Template $template, array $fields)
        {
        }
        protected static function compile($string, array $fields)
        {
        }
        public function getSender()
        {
        }
        public function getReceiver()
        {
        }
        public function getText()
        {
        }
        /**
         * @param string $sender
         * @return $this
         */
        public function setSender($sender)
        {
        }
        /**
         * @param string $receiver
         * @return $this
         */
        public function setReceiver($receiver)
        {
        }
        /**
         * @param string $text
         * @return $this
         */
        public function setText($text)
        {
        }
    }
}
namespace Bitrix\Main\Config {
    class Option
    {
        const CACHE_DIR = "b_option";
        protected static $options = array();
        /**
         * Returns a value of an option.
         *
         * @param string $moduleId The module ID.
         * @param string $name The option name.
         * @param string $default The default value to return, if a value doesn't exist.
         * @param bool|string $siteId The site ID, if the option differs for sites.
         * @return string
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function get($moduleId, $name, $default = "", $siteId = false)
        {
        }
        /**
         * Returns the real value of an option as it's written in a DB.
         *
         * @param string $moduleId The module ID.
         * @param string $name The option name.
         * @param bool|string $siteId The site ID.
         * @return null|string
         * @throws Main\ArgumentNullException
         */
        public static function getRealValue($moduleId, $name, $siteId = false)
        {
        }
        /**
         * Returns an array with default values of a module options (from a default_option.php file).
         *
         * @param string $moduleId The module ID.
         * @return array
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function getDefaults($moduleId)
        {
        }
        /**
         * Returns an array of set options array(name => value).
         *
         * @param string $moduleId The module ID.
         * @param bool|string $siteId The site ID, if the option differs for sites.
         * @return array
         * @throws Main\ArgumentNullException
         */
        public static function getForModule($moduleId, $siteId = false)
        {
        }
        protected static function load($moduleId)
        {
        }
        /**
         * Sets an option value and saves it into a DB. After saving the OnAfterSetOption event is triggered.
         *
         * @param string $moduleId The module ID.
         * @param string $name The option name.
         * @param string $value The option value.
         * @param string $siteId The site ID, if the option depends on a site.
         * @throws Main\ArgumentOutOfRangeException
         */
        public static function set($moduleId, $name, $value = "", $siteId = "")
        {
        }
        protected static function loadTriggers($moduleId)
        {
        }
        protected static function getCacheTtl()
        {
        }
        /**
         * Deletes options from a DB.
         *
         * @param string $moduleId The module ID.
         * @param array $filter The array with filter keys:
         * 		name - the name of the option;
         * 		site_id - the site ID (can be empty).
         * @throws Main\ArgumentNullException
         */
        public static function delete($moduleId, array $filter = array())
        {
        }
        protected static function clearCache($moduleId)
        {
        }
        protected static function getDefaultSite()
        {
        }
    }
    /**
     * Exception is thrown when a configuration error has occurred (i.e. system is frustrated).
     */
    class ConfigurationException extends \Bitrix\Main\SystemException
    {
        public function __construct($message = "", \Exception $previous = null)
        {
        }
    }
    final class Configuration implements \ArrayAccess, \Iterator, \Countable
    {
        /**
         * @var Configuration[]
         */
        private static $instances;
        private $moduleId = null;
        private $storedData = null;
        private $data = array();
        private $isLoaded = false;
        const CONFIGURATION_FILE_PATH = "/bitrix/.settings.php";
        const CONFIGURATION_FILE_PATH_EXTRA = "/bitrix/.settings_extra.php";
        public static function getValue($name)
        {
        }
        public static function setValue($name, $value)
        {
        }
        private function __construct($moduleId = null)
        {
        }
        /**
         * @static
         *
         * @param string|null $moduleId
         * @return Configuration
         */
        public static function getInstance($moduleId = null)
        {
        }
        private static function getPath($path)
        {
        }
        private static function getPathConfigForModule($moduleId)
        {
        }
        private function loadConfiguration()
        {
        }
        public function saveConfiguration()
        {
        }
        public function add($name, $value)
        {
        }
        /**
         * Changes readonly params.
         * Warning! Developer must use this method very carfully!.
         * You must use this method only if you know what you do!
         * @param string $name
         * @param array $value
         * @return void
         */
        public function addReadonly($name, $value)
        {
        }
        public function delete($name)
        {
        }
        public function get($name)
        {
        }
        public function offsetExists($name)
        {
        }
        public function offsetGet($name)
        {
        }
        public function offsetSet($name, $value)
        {
        }
        public function offsetUnset($name)
        {
        }
        public function current()
        {
        }
        public function next()
        {
        }
        public function key()
        {
        }
        public function valid()
        {
        }
        public function rewind()
        {
        }
        public function count()
        {
        }
        public static function wnc()
        {
        }
    }
}
namespace Bitrix\Main\Security {
    class SecurityException extends \Bitrix\Main\SystemException
    {
        public function __construct($message = "", $code = 0, \Exception $previous = null)
        {
        }
    }
    class OtpException extends \Bitrix\Main\Security\SecurityException
    {
    }
    class Cipher
    {
        protected $cipherAlgorithm;
        protected $hashAlgorithm;
        protected $ivLength;
        protected $calculateHash;
        /**
         * Cipher constructor. Aes-256-ctr and sha256 are the best currently known methods.
         * @param string $cipherAlgorithm
         * @param string $hashAlgorithm
         * @param bool $calculateHash
         * @throws SecurityException
         */
        public function __construct($cipherAlgorithm = 'aes-256-ctr', $hashAlgorithm = 'sha256', $calculateHash = true)
        {
        }
        /**
         * Encrypts the data by key (symmetric cipher).
         * @param string $data
         * @param string $key
         * @return string Base64 encoded.
         * @throws SecurityException
         */
        public function encrypt($data, $key)
        {
        }
        /**
         * Decrypts the data by key (symmetric cipher).
         * @param string $data Base64 encoded
         * @param string $key
         * @return string
         * @throws SecurityException
         */
        public function decrypt($data, $key)
        {
        }
    }
}
namespace Bitrix\Main\Security\Mfa {
    abstract class OtpAlgorithm
    {
        protected static $type = 'undefined';
        protected $digest = 'sha1';
        protected $digits = 6;
        protected $secret = null;
        protected $appScheme = 'otpauth';
        protected $requireTwoCode = true;
        /**
         * Verify provided input
         *
         * @param string $input Input received from user.
         * @param string $params Synchronized user params, saved for this algorithm (see getSyncParameters).
         * @return array [
         *  bool isSuccess (Valid input or not),
         *  string newParams (Updated user params for this OtpAlgorithm)
         * ]
         */
        public abstract function verify($input, $params = null);
        /**
         * Return synchronized user params for provided inputs
         *
         * @param string $inputA First code.
         * @param string|null $inputB Second code. Must be provided if current OtpAlgorithm required it (see isTwoCodeRequired).
         * @throws OtpException
         * @return string
         */
        public abstract function getSyncParameters($inputA, $inputB);
        /**
         * Require or not _two_ code for synchronize parameters
         *
         * @return bool
         */
        public function isTwoCodeRequired()
        {
        }
        /**
         * Set new secret
         *
         * @param string $secret Secret (binary).
         * @return $this
         */
        public function setSecret($secret)
        {
        }
        /**
         * Return used secret (binary)
         *
         * @return string
         */
        public function getSecret()
        {
        }
        /**
         * Generate provision URI according to KeyUriFormat
         *
         * @link https://code.google.com/p/google-authenticator/wiki/KeyUriFormat
         * @param string $label User label.
         * @param array $opts Additional URI parameters, e.g. ['image' => 'http://example.com/my_logo.png'] .
         * @throws \Bitrix\Main\ArgumentTypeException
         * @return string
         */
        public function generateUri($label, array $opts = array())
        {
        }
        /**
         * Main method, generate OTP value for provided counter
         *
         * @param string|int $counter Counter.
         * @return string
         */
        public function generateOTP($counter)
        {
        }
        /**
         * Convert value to byte string with padding
         *
         * @param string|int $value Value for convert. Must be unsigned integer, e.g. 123, '123', '0x7b', etc.
         * @return string
         */
        protected static function toByte($value)
        {
        }
        /**
         * A timing safe comparison method
         *
         * @param string $expected Expected string (e.g. input from user).
         * @param string $actual Actual string (e.g. generated password).
         * @throws ArgumentTypeException
         * @return bool
         */
        protected function isStringsEqual($expected, $actual)
        {
        }
        /**
         * Returns digest algorithm used to calculate the OTP.
         * Mostly used for generate provision URI
         *
         * @return string
         */
        public function getDigest()
        {
        }
        /**
         * Return digits (password length)
         *
         * @return int
         */
        public function getDigits()
        {
        }
        /**
         * Return OtpAlgorithm type
         *
         * @return string
         */
        public function getType()
        {
        }
        /**
         * Return algorithm scheme
         * Mostly used for generate provision URI
         *
         * @return string
         */
        public function getAppScheme()
        {
        }
    }
    class TotpAlgorithm extends \Bitrix\Main\Security\Mfa\OtpAlgorithm
    {
        const SYNC_WINDOW = 180;
        protected static $type = 'totp';
        protected $interval = 30;
        // ToDo: option here! May be just merge with HOTP window?
        protected $window = 2;
        protected $requireTwoCode = false;
        public function __construct()
        {
        }
        /**
         * @inheritDoc
         */
        public function verify($input, $params = null, $time = null)
        {
        }
        /**
         * @inheritDoc
         */
        public function generateUri($label, array $opts = array())
        {
        }
        /**
         * Make OTP counter from provided timestamp
         *
         * @param int $timestamp Timestamp.
         * @return int
         */
        public function timecode($timestamp)
        {
        }
        /**
         * @param int $interval
         * @return $this
         */
        public function setInterval($interval)
        {
        }
        /**
         * Return used interval in counter generation
         *
         * @return int
         */
        protected function getInterval()
        {
        }
        /**
         * @param int $window
         * @return $this
         */
        public function setWindow($window)
        {
        }
        /**
         * @inheritDoc
         */
        public function getSyncParameters($inputA, $inputB)
        {
        }
    }
    class HotpAlgorithm extends \Bitrix\Main\Security\Mfa\OtpAlgorithm
    {
        const SYNC_WINDOW = 15000;
        protected static $type = 'hotp';
        protected $window = 10;
        public function __construct()
        {
        }
        /**
         * @inheritDoc
         */
        public function verify($input, $params = null)
        {
        }
        /**
         * @inheritDoc
         */
        public function generateUri($label, array $opts = array())
        {
        }
        /**
         * @inheritDoc
         */
        public function getSyncParameters($inputA, $inputB)
        {
        }
    }
}
namespace Bitrix\Main\Security {
    class Random
    {
        const RANDOM_BLOCK_LENGTH = 64;
        // ToDo: In future versions (PHP >= 5.6.0) use shift to the left instead this s**t
        const ALPHABET_NUM = 1;
        const ALPHABET_ALPHALOWER = 2;
        const ALPHABET_ALPHAUPPER = 4;
        const ALPHABET_SPECIAL = 8;
        const ALPHABET_ALL = 15;
        protected static $alphabet = array(self::ALPHABET_NUM => '0123456789', self::ALPHABET_ALPHALOWER => 'abcdefghijklmnopqrstuvwxyz', self::ALPHABET_ALPHAUPPER => 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', self::ALPHABET_SPECIAL => ',.#!*%$:-^@{}[]()_+=<>?&;');
        /**
         * Returns random integer with the given range
         *
         * @param int $min The lower bound of the range.
         * @param int $max The upper bound of the range.
         * @return int
         * @throws \Bitrix\Main\SystemException
         */
        public static function getInt($min = 0, $max = \PHP_INT_MAX)
        {
        }
        /**
         * Returns random (if possible) alphanum string
         *
         * @param int $length Result string length.
         * @param bool $caseSensitive Generate case sensitive random string (e.g. `SoMeRandom1`).
         * @return string
         */
        public static function getString($length, $caseSensitive = false)
        {
        }
        /**
         * Returns random (if possible) ASCII string for a given alphabet mask (@see self::ALPHABET_ALL)
         *
         * @param int $length Result string length.
         * @param int $alphabet Alpabet masks (e.g. Random::ALPHABET_NUM|Random::ALPHABET_ALPHALOWER).
         * @return string
         */
        public static function getStringByAlphabet($length, $alphabet)
        {
        }
        /**
         * Returns random (if possible) string for a given charset list.
         *
         * @param int $length Result string length.
         * @param string $charsetList Charset list, must be ASCII.
         * @return string
         */
        public static function getStringByCharsets($length, $charsetList)
        {
        }
        /**
         * Returns random (if possible) byte string
         *
         * @param int $length Result byte string length.
         * @return string
         */
        public static function getBytes($length)
        {
        }
        /**
         * Returns pseudo random block
         *
         * @return string
         */
        protected static function getPseudoRandomBlock()
        {
        }
        /**
         * Checks OpenSSL available
         *
         * @return bool
         */
        protected static function isOpensslAvailable()
        {
        }
        /**
         * Returns strings with charsets based on alpabet mask (see $this->alphabet)
         *
         * Simple example:
         * <code>
         * echo $this->getCharsetsforAlphabet(static::ALPHABET_NUM|static::ALPHABET_ALPHALOWER);
         * //output: 0123456789abcdefghijklmnopqrstuvwxyz
         *
         * echo $this->getCharsetsforAlphabet(static::ALPHABET_SPECIAL|static::ALPHABET_ALPHAUPPER);
         * //output:ABCDEFGHIJKLMNOPQRSTUVWXYZ,.#!*%$:-^@{}[]()_+=<>?&;
         *
         * echo $this->getCharsetsforAlphabet(static::ALPHABET_ALL);
         * //output: 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,.#!*%$:-^@{}[]()_+=<>?&;
         * </code>
         *
         * @param string $alphabet Alpabet masks (e.g. static::ALPHABET_NUM|static::ALPHABET_ALPHALOWER).
         * @return string
         */
        protected static function getCharsetsForAlphabet($alphabet)
        {
        }
        /**
         * Returns number of bits needed to represent an integer
         *
         * @param int $value Integer value for calculate.
         * @return int
         */
        protected static function countBits($value)
        {
        }
    }
    class Password
    {
        /**
         * Compares a hash and a(n) (original) password.
         * @param string $hash Hash of the password.
         * @param string $password User supplied password.
         * @param bool $original
         * @return bool
         */
        public static function equals($hash, $password, $original = true) : bool
        {
        }
        /**
         * Determines if a password needs to be rehashed.
         * @param string $hash Hash of the password.
         * @return bool
         */
        public static function needRehash($hash) : bool
        {
        }
        /**
         * Hashes a password using SHA-512 by default.
         * @param string $password
         * @param null|string $salt If null, will be generated
         * @return string
         */
        public static function hash($password, $salt = null) : string
        {
        }
    }
}
namespace Bitrix\Main\Security\Sign {
    /**
     * Class SigningAlgorithm
     * @since 14.0.7
     * @package Bitrix\Main\Security\Sign
     */
    abstract class SigningAlgorithm
    {
        /**
         * Return message signature
         *
         * @param string $value Message.
         * @param string $key Secret password.
         * @return string
         * @throws \Bitrix\Main\NotImplementedException
         */
        public function getSignature($value, $key)
        {
        }
        /**
         * Verify message signature
         *
         * @param string $value Message.
         * @param string $key Secret password used while signing.
         * @param string $sig Message signature.
         * @return bool
         */
        public function verify($value, $key, $sig)
        {
        }
    }
    /**
     * Class HmacAlgorithm
     * @since 14.0.7
     * @package Bitrix\Main\Security\Sign
     */
    class HmacAlgorithm extends \Bitrix\Main\Security\Sign\SigningAlgorithm
    {
        // ToDo: need option here?
        // Default hashing algorithm used by HMAC
        protected $hashAlgorithm = 'sha256';
        /**
         * Creates signing algorithm based on HMAC.
         *
         * @since 16.0.0
         * @param string|null $hashAlgorithm Hashing algorithm (optional). See registered algorithms in hash_algos().
         */
        public function __construct($hashAlgorithm = null)
        {
        }
        /**
         * Set hashing algorithm for using in HMAC
         *
         * @param string $hashAlgorithm Hashing algorithm. See registered algorithms in hash_algos().
         * @return $this
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function setHashAlgorithm($hashAlgorithm)
        {
        }
        /**
         * Return currently used hashing algorithm
         *
         * @return string
         */
        public function getHashAlgorithm()
        {
        }
        /**
         * Return message signature
         *
         * @param string $value Message.
         * @param string $key Secret password for HMAC.
         * @return string
         */
        public function getSignature($value, $key)
        {
        }
        /**
         * Verify message signature
         *
         * @param string $value Message.
         * @param string $key Secret password used while signing.
         * @param string $sig Message signature password for HMAC.
         * @return bool
         */
        public function verify($value, $key, $sig)
        {
        }
        /**
         * A timing safe comparison method.
         *
         * C function memcmp() internally used by PHP, exits as soon as a difference
         * is found in the two buffers. That makes possible of leaking
         * timing information useful to an attacker attempting to iteratively guess
         * the unknown string (e.g. password).
         *
         * @param string $expected Expected string (e.g. generated signature).
         * @param string $actual Actual string (e.g. signature received from user).
         * @throws \Bitrix\Main\ArgumentTypeException
         * @return bool
         */
        protected function compareStrings($expected, $actual)
        {
        }
    }
    /**
     * Class BadSignatureException
     * @since 14.0.7
     * @package Bitrix\Main\Security\Sign
     */
    class BadSignatureException extends \Bitrix\Main\SystemException
    {
        /**
         * Creates new exception object for signing purposes.
         *
         * @param string $message Message.
         * @param \Exception $previous Previous exception.
         */
        public function __construct($message = "", \Exception $previous = null)
        {
        }
    }
    /**
     * Class TimeSigner
     * @sine 14.0.7
     * @package Bitrix\Main\Security\Sign
     */
    class TimeSigner
    {
        /** @var Signer */
        protected $signer = null;
        /**
         * Creates new TimeSigner object. If you want use your own signing algorithm - you can this
         *
         * @param SigningAlgorithm $algorithm Custom signing algorithm.
         */
        public function __construct(\Bitrix\Main\Security\Sign\SigningAlgorithm $algorithm = null)
        {
        }
        /**
         * Set key for signing
         *
         * @param string $value Key.
         * @return $this
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function setKey($value)
        {
        }
        /**
         * Return separator, used for packing/unpacking
         *
         * @return string
         */
        public function getSeparator()
        {
        }
        /**
         * Set separator, used for packing/unpacking
         *
         * @param string $value Separator.
         * @return $this
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function setSeparator($value)
        {
        }
        /**
         * Sign message with expired time, return string in format:
         *  {message}{separator}{expired timestamp}{separator}{signature}
         *
         * Simple example:
         * <code>
         *  // If salt needed
         *  $foo = (new TimeSigner)->sign('test', '+1 hour', 'my_salt');
         *
         *  // Otherwise
         *  $bar = (new TimeSigner)->sign('test', '+1 day');
         * </code>
         *
         * @param string $value Message for signing.
         * @param string $time Timestamp or datetime description (presented in format accepted by strtotime).
         * @param string|null $salt Salt, if needed.
         * @return string
         */
        public function sign($value, $time, $salt = null)
        {
        }
        /**
         * Check message signature and it lifetime. If everything is OK - return original message.
         *
         * Simple example:
         * <code>
         *  $signer = new TimeSigner;
         *
         *  // Sing message for 1 second
         *  $signedValue = $signer->sign('test', '+1 second');
         *
         *  // Or sign with expiring on some magic timestamp (e.g. 01.01.2030)
         *  $signedValue = $signer->sign('test', 1893445200);
         *
         *  // Get original message with checking
         *  echo $signer->unsign($signedValue);
         *  // Output: 'test'
         *
         *  // Try to unsigning not signed value
         *  echo $signer->unsign('test');
         *  //throw BadSignatureException with message 'Separator not found in value'
         *
         *  // Or with invalid sign
         *  echo $signer->unsign('test.invalid_sign');
         *
         *  // Or invalid salt
         *  echo $signer->unsign($signedValue, 'invalid_salt');
         *  //throw BadSignatureException with message 'Signature does not match'
         *
         *  // Or expired lifetime
         *  echo $signer->unsign($signedValue);
         *  //throw BadSignatureException with message 'Signature timestamp expired (1403039921 < 1403040024)'
         *
         * </code>
         *
         * @param string $signedValue  Signed value, must be in format: {message}{separator}{expired timestamp}{separator}{signature}.
         * @param string|null $salt Salt, if used while signing.
         * @return string
         * @throws BadSignatureException
         */
        public function unsign($signedValue, $salt = null)
        {
        }
        /**
         * Return message signature
         *
         * @param string $value Message.
         * @param int $timestamp Expire timestamp.
         * @param null $salt Salt (if needed).
         * @return string
         * @throws ArgumentTypeException
         */
        public function getSignature($value, $timestamp, $salt = null)
        {
        }
        /**
         * Simply validation of message signature
         *
         * @param string $value Message.
         * @param int $timestamp Expire timestamp.
         * @param string $signature Signature.
         * @param string|null $salt Salt, if used while signing.
         * @return bool True if OK, otherwise - false.
         */
        public function validate($value, $timestamp, $signature, $salt = null)
        {
        }
        /**
         * Return timestamp parsed from English textual datetime description
         *
         * @param string|int $time Timestamp or datetime description (presented in format accepted by strtotime).
         * @return int
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\ArgumentException
         */
        protected function getTimeStamp($time)
        {
        }
        /**
         * Pack array values to single string:
         * pack(['test', 'all', 'values']) -> 'test.all.values'
         *
         * @param array $values Values for packing.
         * @return string
         */
        public function pack(array $values)
        {
        }
        /**
         * Unpack values from string (something like rsplit).
         * Simple example for separator ".":
         * <code>
         *  // Unpack all values:
         *  unpack('test.all.values', 0) -> ['test', 'all', 'values']
         *
         *  // Unpack 2 values (by default). First element containing the rest of string.
         *  unpack('test.all.values') -> ['test.all', 'values']
         *
         *  // Exception if separator is missing
         *  unpack('test.all values', 3) -> throws BadSignatureException
         * </code>
         *
         * @param string $value String for unpacking.
         * @param int $limit If $limit === 0 - unpack all values, default - 2.
         * @return array
         * @throws BadSignatureException
         */
        public function unpack($value, $limit = 2)
        {
        }
    }
}
namespace Bitrix\Main {
    /*dispatchermutatormark1*/
    //Do not remove this
    final class Dispatcher
    {
        private $licenseKey = '';
        private $isInitialized = false;
        public function __construct()
        {
        }
        public function initialize()
        {
        }
        public function getLicenseKey()
        {
        }
    }
}
namespace Bitrix\Main\Mail {
    /**
     * Class Part
     * @package Bitrix\Main\Mail
     */
    class Part
    {
        /** @var [] $headers Headers. */
        protected $headers = [];
        /** @var string $body Body. */
        protected $body = '';
        /** @var string $eol Symbol of end-of-line. */
        protected $eol;
        /**
         * Multipart constructor.
         */
        public function __construct()
        {
        }
        /**
         * Get EOL.
         *
         * @return string
         */
        public function getEol()
        {
        }
        /**
         * Set EOL.
         *
         * @param string $eol
         * @return $this
         */
        public function setEol($eol)
        {
        }
        /**
         * Add header.
         *
         * @param string $name Name.
         * @param string $value Value.
         * @return $this
         */
        public function addHeader($name, $value)
        {
        }
        /**
         * Set headers.
         *
         * @param array $headers Headers.
         * @return $this
         */
        public function setHeaders(array $headers)
        {
        }
        /**
         * Get headers.
         *
         * @return array
         */
        public function getHeaders()
        {
        }
        /**
         * Get header.
         *
         * @param string $name Name.
         * @return mixed|null
         */
        public function getHeader($name)
        {
        }
        /**
         * Set body.
         *
         * @param string $body Body.
         * @return $this
         */
        public function setBody($body)
        {
        }
        /**
         * Get body.
         *
         * @return string
         */
        public function getBody()
        {
        }
        /**
         * Convert to string.
         *
         * @return string
         */
        public function toStringBody()
        {
        }
        /**
         * Convert headers to string.
         *
         * @return string
         */
        public function toStringHeaders()
        {
        }
        /**
         * Convert object to string.
         *
         * @return string
         */
        public function toString()
        {
        }
        /**
         * Magic method.
         *
         * @return string
         */
        public function __toString()
        {
        }
        protected function splitBody(&$body)
        {
        }
    }
    /**
     * Class Multipart
     * @package Bitrix\Main\Mail
     */
    class Multipart extends \Bitrix\Main\Mail\Part
    {
        const MIXED = 'multipart/mixed';
        const ALTERNATIVE = 'multipart/alternative';
        const RELATED = 'multipart/related';
        /** @var Multipart[]|Part[] $parts Parts. */
        protected $parts = [];
        /** @var string $uniqueString Unique string. */
        protected $uniqueString;
        /** @var string $eol Symbol of end-of-line. */
        protected $eol;
        /**
         * Multipart constructor.
         */
        public function __construct()
        {
        }
        /**
         * Set EOL.
         *
         * @param string $eol
         * @return $this
         */
        public function setEol($eol)
        {
        }
        /**
         * Set content type.
         *
         * @param string $type Type.
         * @return $this
         */
        public function setContentType($type)
        {
        }
        /**
         * Add part.
         *
         * @param Part $part Part.
         * @return $this
         */
        public function addPart(\Bitrix\Main\Mail\Part $part)
        {
        }
        /**
         * Convert object to string.
         *
         * @return string
         */
        public function toStringHeaders()
        {
        }
        /**
         * Convert object to string.
         *
         * @return string
         */
        public function toStringBody()
        {
        }
        /**
         * Get part count.
         *
         * @return integer
         */
        protected function getPartCount()
        {
        }
        /**
         * Get boundary.
         *
         * @param string $contentType Content type.
         * @return integer
         */
        protected function getBoundary($contentType = null)
        {
        }
    }
    class Event
    {
        const SEND_RESULT_NONE = 'N';
        const SEND_RESULT_SUCCESS = 'Y';
        const SEND_RESULT_ERROR = 'F';
        const SEND_RESULT_PARTLY = 'P';
        const SEND_RESULT_TEMPLATE_NOT_FOUND = '0';
        /**
         * @param array $data
         * @return string
         * @throws Main\ArgumentTypeException
         */
        public static function sendImmediate(array $data)
        {
        }
        /**
         * Send mail event
         *
         * @param array $data Params of event
         * @return Main\Entity\AddResult
         */
        public static function send(array $data)
        {
        }
        /**
         * @param array $arEvent
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         * @throws Main\ArgumentTypeException
         */
        public static function handleEvent(array $arEvent)
        {
        }
    }
    class EventMessageThemeCompiler
    {
        /**
         * @var EventMessageThemeCompiler
         */
        protected static $instance = null;
        protected $siteTemplateId;
        protected $siteId;
        protected $languageId;
        protected $themePath = '';
        protected $themeProlog;
        protected $themeEpilog;
        protected $themeStylesString = '';
        protected $resultString = '';
        protected $body;
        protected $contentTypeHtml = false;
        protected $params = array();
        protected $arStyle = array();
        protected $replaceCallback = array();
        protected $currentResourceOrder = 100;
        /**
         * Constructor.
         *
         * @param string|null $siteTemplateId
         * @param string $body
         * @param bool $isHtml
         * @return EventMessageThemeCompiler
         */
        public function __construct($siteTemplateId = null, $body, $isHtml = true)
        {
        }
        /**
         * Create instance.
         *
         * @param string|null $siteTemplateId
         * @param string $body
         * @param bool $isHtml
         * @return EventMessageThemeCompiler
         */
        public static function createInstance($siteTemplateId = null, $body, $isHtml = true)
        {
        }
        /**
         * Returns current instance of the EventMessageThemeCompiler.
         *
         * @return EventMessageThemeCompiler
         * @throws \Bitrix\Main\ObjectNotFoundException
         */
        public static function getInstance()
        {
        }
        /**
         * Unset current instance of the EventMessageThemeCompiler.
         *
         * @return void
         */
        public static function unsetInstance()
        {
        }
        /**
         * Set site template id.
         *
         * @param mixed $siteTemplateId
         */
        public function setSiteTemplateId($siteTemplateId)
        {
        }
        /**
         * Get site template id.
         *
         * @return mixed
         */
        public function getSiteTemplateId()
        {
        }
        /**
         * Set language id.
         *
         * @param mixed $languageId
         */
        public function setLanguageId($languageId)
        {
        }
        /**
         * Get language id.
         * @return mixed
         */
        public function getLanguageId()
        {
        }
        /**
         * Set site id.
         *
         * @param mixed $siteId
         * @return void
         */
        public function setSiteId($siteId)
        {
        }
        /**
         * Return site id.
         *
         * @return string
         */
        public function getSiteId()
        {
        }
        /**
         * Return result.
         *
         * @return string
         */
        public function getResult()
        {
        }
        /**
         * Set params that will be used for replacing placeholders.
         *
         * @param array $params
         */
        public function setParams(array $params)
        {
        }
        /**
         * Set theme prolog.
         *
         * @param mixed $themeProlog
         */
        public function setThemeProlog($themeProlog)
        {
        }
        /**
         * Return theme prolog.
         *
         * @return mixed
         */
        public function getThemeProlog()
        {
        }
        /**
         * Set theme epilog.
         *
         * @param mixed $themeEpilog
         */
        public function setThemeEpilog($themeEpilog)
        {
        }
        /**
         * Return theme epilog.
         *
         * @return mixed
         */
        public function getThemeEpilog()
        {
        }
        /**
         * Set style.
         *
         * @param array $arPaths
         * @param bool $sort
         * @return void
         */
        public function setStyle($path, $sort = false)
        {
        }
        /**
         * Set style list.
         *
         * @param array $arPaths
         * @param bool $sort
         * @return void
         */
        public function setStyleArray(array $arPaths, $sort = false)
        {
        }
        /**
         * Return style list that will be added by template.
         *
         * @return array
         */
        public function getStyles()
        {
        }
        /**
         * Return styles as string that will be added by template.
         *
         * @return string
         */
        public function getStylesString()
        {
        }
        /**
         * Show styles that will be added by template.
         *
         * @return string
         */
        public function showStyles()
        {
        }
        protected function setTheme($site_template_id)
        {
        }
        protected function setBody($body)
        {
        }
        /**
         * Function includes language files from within the theme directory.
         *
         * <p>For example: $this->includeThemeLang("header.php") will include "lang/en/header.php" file. </p>
         * <p>Note: theme must be inited by setTheme method.</p>
         * @param string $relativePath
         * @return void
         *
         */
        public final function includeThemeLang($relativePath = "")
        {
        }
        /**
         * Execute prolog, body and epilog.
         *
         * @param
         */
        public function execute()
        {
        }
        protected function executePhp($template, $resourceOrder = 100)
        {
        }
        protected function addReplaceCallback($identificator, $callback)
        {
        }
        protected function executeReplaceCallback()
        {
        }
        /**
         * Include mail component.
         *
         * @return mixed
         */
        public static function includeComponent($componentName, $componentTemplate, $arParams = array(), $parentComponent = null, $arFunctionParams = array())
        {
        }
        /**
         * Stop execution of template. Throws an exception if instance is exists.
         *
         * @return void
         * @throws \Bitrix\Main\Mail\StopException
         */
        public static function stop()
        {
        }
    }
    /**
     * Class Address
     * @package Bitrix\Main\Mail
     */
    class Address
    {
        /** @var string|null $name Name. */
        protected $name = null;
        /** @var string|null $email Email. */
        protected $email = null;
        private $checkingPunycode;
        /**
         * Return true if is valid.
         *
         * @param string $address Address.
         * @return bool
         */
        public static function isValid($address)
        {
        }
        /**
         * Address constructor.
         * @param null $address
         * @param array $options - possible keys are:
         * 		checkingPunycode - converting domain with non-latin symbols into punycode before validation
         */
        public function __construct($address = null, $options = [])
        {
        }
        public function setCheckingPunycode($checkingPunycode)
        {
        }
        /**
         * Get encoded address.
         *
         * @return null|string
         */
        public function getEncoded()
        {
        }
        /**
         * Get address.
         *
         * @return null|string
         */
        public function get()
        {
        }
        /**
         * Set address.
         *
         * @param null|string $address
         * @return $this
         */
        public function set($address)
        {
        }
        /**
         * Get name.
         *
         * @return null|string
         */
        public function getName()
        {
        }
        /**
         * Set name.
         *
         * @param null|string $name
         * @return $this
         */
        public function setName($name)
        {
        }
        /**
         * Get email.
         *
         * @return null|string
         */
        public function getEmail()
        {
        }
        /**
         * Set email.
         *
         * @param null|string $email
         * @return $this
         */
        public function setEmail($email)
        {
        }
        /**
         * Validate address.
         *
         * @return bool.
         */
        public function validate()
        {
        }
        /**
         * Parse address.
         *
         * @param string $address Address.
         * @return void
         */
        protected function parse($address)
        {
        }
        private function checkMail($email)
        {
        }
        /** Converts domain part to punycode
         * @param $email
         * @return bool|string
         */
        private function convertAddressToPunycode($email)
        {
        }
    }
    /**
     * Class Tracking
     * @package Bitrix\Main\Mail
     */
    class Tracking
    {
        const SIGN_SALT_ACTION = 'event_mail_tracking';
        const onRead = 'OnMailEventMailRead';
        const onClick = 'OnMailEventMailClick';
        const onUnsubscribe = 'OnMailEventSubscriptionDisable';
        const onChangeStatus = 'OnMailEventMailChangeStatus';
        /**
         * Get tag.
         *
         * @param string $moduleId Module ID.
         * @param array $fields Fields.
         * @return string
         */
        public static function getTag($moduleId, $fields)
        {
        }
        /**
         * Parse tag.
         *
         * @param string $tag Tag.
         * @return array
         */
        public static function parseTag($tag)
        {
        }
        /**
         * Get signed tag.
         *
         * @param string $moduleId Module ID.
         * @param array $fields Fields.
         * @return string
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public static function getSignedTag($moduleId, $fields)
        {
        }
        /**
         * Parse signed tag.
         *
         * @param string $signedTag Signed tag.
         * @return array
         * @throws BadSignatureException
         * @throws Main\ArgumentTypeException
         */
        public static function parseSignedTag($signedTag)
        {
        }
        /**
         * Get read page link
         *
         * @param string $moduleId Module ID.
         * @param array $fields Fields.
         * @param string|null $urlPage Url of custom click page.
         * @return string
         * @throws SystemException
         */
        public static function getLinkRead($moduleId, $fields, $urlPage = null)
        {
        }
        /**
         * Get click page link.
         *
         * @param string $moduleId Module ID.
         * @param array $fields Fields.
         * @param string|null $urlPage Url of custom click page.
         * @return string
         * @throws SystemException
         */
        public static function getLinkClick($moduleId, $fields, $urlPage = null)
        {
        }
        /**
         * Get link for unsubscribe.
         *
         * @param string $moduleId Module ID.
         * @param array $fields Fields.
         * @param string|null $urlPage Url of custom unsubscribe page.
         * @return string
         * @throws Main\ArgumentTypeException
         * @throws SystemException
         */
        public static function getLinkUnsub($moduleId, $fields, $urlPage = null)
        {
        }
        /**
         * @param $tag
         * @param $opCode
         * @param null $uri
         * @return null|string
         * @throws SystemException
         */
        protected static function getTaggedLink($tag, $opCode, $uri = null)
        {
        }
        /**
         * Get sign.
         *
         * @param string $value Value.
         * @return string
         * @throws Main\ArgumentTypeException
         */
        public static function getSign($value)
        {
        }
        /**
         * Verify sign.
         *
         * @param string $value Value.
         * @param string $signature Signature.
         * @return bool
         */
        public static function validateSign($value, $signature)
        {
        }
        /**
         * Get subscription list.
         *
         * @param array $data Data.
         * @return array|bool
         */
        public static function getSubscriptionList($data)
        {
        }
        /**
         * Subscribe.
         *
         * @param array $data Data.
         * @return bool
         */
        public static function subscribe($data)
        {
        }
        /**
         * Unsubscribe.
         *
         * @param array $data Data.
         * @return bool
         */
        public static function unsubscribe($data)
        {
        }
        /**
         * Click.
         *
         * @param array $data Data.
         * @return bool
         */
        public static function click(array $data)
        {
        }
        /**
         * Track click from request.
         *
         * @return void
         */
        public static function clickFromRequest()
        {
        }
        /**
         * Track read from request.
         *
         * @return bool
         */
        public static function readFromRequest()
        {
        }
        /**
         * Read.
         *
         * @param array $data Data.
         * @return bool
         */
        public static function read(array $data)
        {
        }
        /**
         * Change status of sending.
         *
         * @param Callback\Result $callbackResult Callback result instance.
         * @return bool
         */
        public static function changeStatus(\Bitrix\Main\Mail\Callback\Result $callbackResult)
        {
        }
    }
    class Context
    {
        const CAT_EXTERNAL = 1;
        const PRIORITY_HIGH = 1;
        const PRIORITY_NORMAL = 2;
        const PRIORITY_LOW = 3;
        protected $category;
        protected $priority;
        /** @var  Smtp\Config|null $smtp */
        protected $smtp;
        /** @var  Callback\Config $callback */
        protected $callback;
        public function __construct(array $params = null)
        {
        }
        /**
         * @param int $category See Context CAT_* constants.
         * @return $this
         */
        public function setCategory($category)
        {
        }
        /**
         * @return int|null
         */
        public function getCategory()
        {
        }
        /**
         * @param Smtp\Config $config Smtp config.
         * @return $this
         */
        public function setSmtp(\Bitrix\Main\Mail\Smtp\Config $config)
        {
        }
        /**
         * @return Smtp\Config|null
         */
        public function getSmtp()
        {
        }
        /**
         * @param int $priority See Context PRIORITY_* constants.
         * @return $this
         */
        public function setPriority($priority)
        {
        }
        /**
         * @return int|null
         */
        public function getPriority()
        {
        }
        /**
         * Get callback config instance.
         *
         * @param Callback\Config $config Callback config instance.
         * @return $this
         */
        public function setCallback(\Bitrix\Main\Mail\Callback\Config $config)
        {
        }
        /**
         * Get callback config instance.
         *
         * @return Callback\Config|null
         */
        public function getCallback()
        {
        }
    }
}
namespace Bitrix\Main\Mail\Smtp {
    class Config
    {
        protected $from, $host, $port, $protocol, $login, $password;
        public function __construct(array $params = null)
        {
        }
        public function setFrom($from)
        {
        }
        public function setHost($host)
        {
        }
        public function setPort($port)
        {
        }
        public function setProtocol($protocol)
        {
        }
        public function setLogin($login)
        {
        }
        public function setPassword($password)
        {
        }
        public function getFrom()
        {
        }
        public function getHost()
        {
        }
        public function getPort()
        {
        }
        public function getProtocol()
        {
        }
        public function getLogin()
        {
        }
        public function getPassword()
        {
        }
        public static function canCheck()
        {
        }
        public function check(&$error = null, \Bitrix\Main\ErrorCollection &$errors = null)
        {
        }
    }
}
namespace Bitrix\Main\Mail {
    class EventManager
    {
        /**
         * @return string|null
         */
        public static function checkEvents()
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        public static function executeEvents()
        {
        }
        /**
         * @return string
         * @throws Main\ArgumentNullException
         */
        public static function cleanUpAgent()
        {
        }
        /**
         * Agent for clean up event attachments.
         *
         * @return string
         */
        public static function cleanUpAttachmentAgent()
        {
        }
        /**
         * Handler of event main/OnMailEventSubscriptionList
         *
         * @param array $data Data.
         * @return array
         */
        public static function onMailEventSubscriptionList(array $data)
        {
        }
        /**
         * Handler of event main/OnMailEventSubscriptionDisable
         *
         * @param array $data Data.
         * @return bool
         */
        public static function onMailEventSubscriptionDisable(array $data)
        {
        }
    }
    class EventMessageCompiler
    {
        protected $mailTo;
        protected $mailHeaders;
        protected $mailSubject;
        protected $mailBody;
        protected $mailCharset;
        protected $mailId;
        protected $mailContentType;
        protected $mailAttachment;
        protected $eventMessageId = null;
        protected $event = array();
        protected $eventMessageFields;
        protected $eventFields;
        protected $siteFields;
        protected $siteId;
        protected $languageId;
        protected $eventSiteFields;
        /*
        *  'MESSAGE' = array(
        			'BODY_TYPE' => 'html',
        			'SUBJECT' => '',
        			'EMAIL_TO' => '',
        			'EMAIL_FROM' => '',
        			'MESSAGE' => '',
        			'ID' => '',
        			'DATE_INSERT' => '',
        			'SITE_TEMPLATE_ID' => '',
        			'BCC' => '',
        			'CC' => '',
        			'REPLY_TO' => '',
        			'IN_REPLY_TO' => '',
        			'PRIORITY' => '',
        			'ADDITIONAL_FIELD' => array(),
        			'FILE' => array(),
        		)
        */
        public function __construct(array $arMessageParams)
        {
        }
        /**
         * @return EventMessageCompiler
         */
        public static function createInstance(array $arMessageParams)
        {
        }
        /**
         * @param
         */
        public function compile()
        {
        }
        /**
         * @param
         */
        protected function setMailBody()
        {
        }
        /**
         * @return mixed
         */
        public function getMailBody()
        {
        }
        /**
         * @param mixed $mailCharset
         */
        protected function setMailCharset($mailCharset)
        {
        }
        /**
         * @return mixed
         */
        public function getMailCharset()
        {
        }
        /**
         * @param
         */
        protected function setMailContentType()
        {
        }
        /**
         * @return mixed
         */
        public function getMailContentType()
        {
        }
        /**
         * @param mixed $mailAttachment
         */
        protected function setMailAttachment()
        {
        }
        /**
         * @return mixed
         */
        public function getMailAttachment()
        {
        }
        /**
         * @param
         */
        protected function setMailHeaders()
        {
        }
        /**
         * @return mixed
         */
        public function getMailHeaders()
        {
        }
        /**
         * @param
         */
        protected function setMailId()
        {
        }
        /**
         * @return mixed
         */
        public function getMailId()
        {
        }
        /**
         * @param
         */
        protected function setMailSubject()
        {
        }
        /**
         * @return mixed
         */
        public function getMailSubject()
        {
        }
        /**
         * @param
         */
        protected function setMailTo()
        {
        }
        /**
         * @return mixed
         */
        public function getMailTo()
        {
        }
        /**
         * @param $str
         * @param $ar
         * @param bool $bNewLineToBreak
         * @return mixed
         */
        protected function replaceTemplate($str, $ar, $bNewLineToBreak = false)
        {
        }
        /**
         * @param array|string $sites Sites.
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         */
        protected function getSiteFieldsArray($sites)
        {
        }
        /**
         * @param string|array
         * @return string
         */
        protected static function getFieldFlatValue($value)
        {
        }
        /**
         * @return string
         */
        public function toString()
        {
        }
    }
}
namespace Bitrix\Main\Mail\Callback {
    /**
     * Class Controller
     *
     * @package Bitrix\Main\Mail\Callback
     */
    class Controller
    {
        const STATUS_DEFERED = 'defered';
        const STATUS_BOUNCED = 'bounced';
        const STATUS_DELIVERED = 'delivered';
        const DESC_AUTH = 'AUTH_ERROR';
        const DESC_UNKNOWN_USER = 'UNKNOWN_USER';
        const DESC_UNROUTEABLE = 'UNROUTEABLE';
        /** @var  string $id ID of mail. */
        protected $id;
        /** @var  Result $result Result instance. */
        protected $result;
        /** @var  Config $config Config instance. */
        protected $config;
        /** @var  Address $address Address instance. */
        protected $address;
        /** @var string[] $blacklist Black list of emails. */
        protected $blacklist = [];
        /** @var bool $answerExceptions Flush exceptions in answer. */
        protected static $answerExceptions = true;
        /** @var bool $enableItemErrors Ignore item errors. */
        protected $enableItemErrors = false;
        /** @var int $countItems. */
        protected $countItems = 0;
        /** @var int $countItems. */
        protected $countItemsProcessed = 0;
        /** @var int $countItems. */
        protected $countItemsError = 0;
        /**
         * Run controller.
         *
         * @param string $data Data.
         * @param array $parameters Parameters.
         * @return void
         */
        public static function run($data = null, array $parameters = [])
        {
        }
        /**
         * Give answer.
         *
         * @param bool $isError Data.
         * @param string|array|null $answer Answer.
         * @return void
         */
        public static function giveAnswer($isError = false, $answer = null)
        {
        }
        /**
         * Controller constructor.
         */
        public function __construct()
        {
        }
        /**
         * Enable item errors.
         *
         * @return $this
         */
        public function enableItemErrors()
        {
        }
        protected function validateItem($item)
        {
        }
        /**
         * Process list.
         *
         * @param array $list List of items.
         * @return void
         * @throws SystemException
         */
        public function processList($list)
        {
        }
        /**
         * Process item.
         *
         * @param array $item Item data.
         * @return bool
         * @throws SystemException
         */
        public function processItem($item)
        {
        }
        /**
         * Get counters
         *
         * @return array
         */
        public function getCounters()
        {
        }
        /**
         * Return true if status is error.
         *
         * @param string $status Status.
         * @return bool
         */
        public static function isStatusError($status)
        {
        }
        /**
         * Return true if status is permanent error.
         *
         * @param string $status Status.
         * @return bool
         */
        public static function isStatusPermanentError($status)
        {
        }
        /**
         * Return true if status descriptions is blacklistable.
         *
         * @param string $description Description.
         * @return bool
         */
        public static function isBlacklistable($description)
        {
        }
    }
    /**
     * Class Result
     *
     * @package Bitrix\Main\Mail\Callback
     */
    class Result
    {
        /** @var  string $moduleId Module ID. */
        protected $moduleId;
        /** @var  string $entityType Entity type. */
        protected $entityType;
        /** @var  string $entityId Entity ID. */
        protected $entityId;
        /** @var  string $email Email. */
        protected $email;
        /** @var  int $dateSent Date sent timestamp. */
        protected $dateSent = 0;
        /** @var  bool $isError Is error. */
        protected $isError;
        /** @var  bool $isPermanentError Is permanent error. */
        protected $isPermanentError;
        /** @var  bool $isBlacklistable Is email blacklistable. */
        protected $isBlacklistable;
        /** @var  string $message Status text. */
        protected $message;
        /** @var  string $description Status description. */
        protected $description;
        /**
         * Return true if result is belong to module ID and entity type.
         *
         * @param string $moduleId Module ID.
         * @param string $entityType|null Entity type.
         * @return bool
         */
        public function isBelongTo($moduleId, $entityType = null)
        {
        }
        /**
         * Return true if result is newest than custom date.
         *
         * @param DateTime|integer $dateSent Date sent.
         * @return bool
         */
        public function isNewest($dateSent)
        {
        }
        /**
         * Get module ID.
         *
         * @return string
         */
        public function getModuleId()
        {
        }
        /**
         * Set module ID.
         *
         * @param string $moduleId Module ID.
         * @return $this
         */
        public function setModuleId($moduleId)
        {
        }
        /**
         * Get entity type.
         *
         * @return string
         */
        public function getEntityType()
        {
        }
        /**
         * Set entity type.
         *
         * @param string $entityType Entity type.
         * @return $this
         */
        public function setEntityType($entityType)
        {
        }
        /**
         * Get entity ID.
         *
         * @return string
         */
        public function getEntityId()
        {
        }
        /**
         * Set entity ID.
         *
         * @param string $entityId Entity ID.
         * @return $this
         */
        public function setEntityId($entityId)
        {
        }
        /**
         * Get email.
         *
         * @return string
         */
        public function getEmail()
        {
        }
        /**
         * Set email.
         *
         * @param string $email Email.
         * @return $this
         */
        public function setEmail($email)
        {
        }
        /**
         * Get date sent.
         *
         * @return string
         */
        public function getDateSent()
        {
        }
        /**
         * Set date sent.
         *
         * @param string $dateSent Date sent.
         * @return $this
         */
        public function setDateSent($dateSent)
        {
        }
        /**
         * Return true if error.
         *
         * @return bool
         */
        public function isError()
        {
        }
        /**
         * Set as error.
         *
         * @param bool $isError Is error.
         * @return $this
         */
        public function setError($isError)
        {
        }
        /**
         * Return true if permanent error.
         *
         * @return bool
         */
        public function isPermanentError()
        {
        }
        /**
         * Set as permanent error.
         *
         * @param bool $isPermanentError Is permanent error.
         * @return $this
         */
        public function setPermanentError($isPermanentError)
        {
        }
        /**
         * Return true if email is blacklistable.
         *
         * @return bool
         */
        public function isBlacklistable()
        {
        }
        /**
         * Set as blacklistable.
         *
         * @param bool $isBlacklistable Is blacklistable.
         * @return $this
         */
        public function setBlacklistable($isBlacklistable)
        {
        }
        /**
         * Get message text.
         *
         * @return string
         */
        public function getMessage()
        {
        }
        /**
         * Set message text.
         *
         * @param string $message Message.
         * @return $this
         */
        public function setMessage($message)
        {
        }
        /**
         * Get description text.
         *
         * @return string
         */
        public function getDescription()
        {
        }
        /**
         * Set description text.
         *
         * @param string $description Description.
         * @return $this
         */
        public function setDescription($description)
        {
        }
        /**
         * Send event of receiving result.
         *
         * @return bool
         */
        public function sendEvent()
        {
        }
    }
    /**
     * Class Config
     *
     * @package Bitrix\Main\Mail\Callback
     */
    class Config
    {
        const SIGHT_SALT = 'main_mail_callback';
        /** @var  string $moduleId Module ID. */
        protected $moduleId;
        /** @var  string $entityType Entity type ID. */
        protected $entityType;
        /** @var  string $entityId Entity ID. */
        protected $entityId;
        /** @var  string $id ID. */
        protected $id;
        /** @var  string $host Host. */
        protected $host;
        /**
         * Get module ID.
         *
         * @return string
         */
        public function getModuleId()
        {
        }
        /**
         * Set module ID.
         *
         * @param string $moduleId Module ID.
         * @return $this
         * @throws ArgumentException
         */
        public function setModuleId($moduleId)
        {
        }
        /**
         * Get entity type.
         *
         * @return string
         */
        public function getEntityType()
        {
        }
        /**
         * Set entity type.
         * Additional category on callback. Unique per `moduleId`.
         *
         * @param string|null $entityType Entity type.
         * @return $this
         * @throws ArgumentException
         */
        public function setEntityType($entityType)
        {
        }
        /**
         * Get entity ID.
         * Unique per `moduleId` & `entityType`.
         * It might be an email or ID of row in some table.
         *
         * @return string
         */
        public function getEntityId()
        {
        }
        /**
         * Set entity ID.
         *
         * @param string $entityId Entity ID.
         * @return $this
         * @throws ArgumentException
         */
        public function setEntityId($entityId)
        {
        }
        /**
         * Set host.
         *
         * @param string $host Host.
         * @return $this
         */
        public function setHost($host)
        {
        }
        /**
         * Get host.
         *
         * @return string
         */
        public function getHost()
        {
        }
        /**
         * Get id.
         *
         * @return string
         */
        public function getId()
        {
        }
        /**
         * Get signature.
         *
         * @return string|null
         */
        public function getSignature()
        {
        }
        /**
         * Verify signature.
         *
         * @param string $signature Signature.
         * @return bool
         */
        public function verifySignature($signature)
        {
        }
        protected function getSignedString()
        {
        }
        /**
         * Generate ID.
         *
         * @param string $moduleId Module ID.
         * @param string|null $entityType Entity type.
         * @param string|int $entityId Entity ID.
         * @return $this
         * @throws ArgumentException
         */
        public static function generateId($moduleId, $entityType = null, $entityId)
        {
        }
        /**
         * Unpack ID.
         *
         * @param string $id ID.
         * @return $this
         * @throws ArgumentException
         */
        public function unpackId($id)
        {
        }
    }
}
namespace Bitrix\Main\Mail {
    class Sender
    {
        public static function add(array $fields)
        {
        }
        public static function confirm($ids)
        {
        }
        public static function delete($ids)
        {
        }
        public static function clearCustomSmtpCache($email)
        {
        }
        public static function getCustomSmtp($email)
        {
        }
        public static function applyCustomSmtp($event)
        {
        }
        public static function prepareUserMailboxes($userId = null)
        {
        }
    }
}
namespace Bitrix\Main\Web {
    final class CookiesCrypter
    {
        public const COOKIE_MAX_SIZE = 4096;
        public const COOKIE_RESERVED_SUFFIX_BYTES = 3;
        private const SIGN_PREFIX = '-crpt-';
        private const CIPHER_KEY_SUFFIX = 'cookiecrypter';
        /** @var string */
        protected $cipherKey;
        /** @var Cipher */
        protected $cipher;
        public function __construct()
        {
        }
        protected function buildCipher() : self
        {
        }
        protected function prependSuffixToKey(string $key) : string
        {
        }
        /**
         * @param CryptoCookie $cookie
         * @return iterable|Cookie[]
         */
        public function encrypt(\Bitrix\Main\Web\CryptoCookie $cookie) : iterable
        {
        }
        public function decrypt(string $name, string $value, iterable $cookies) : string
        {
        }
        /**
         * @param CryptoCookie $cookie
         * @param string       $encryptedValue
         * @return iterable|Cookie[]
         */
        protected function packCookie(\Bitrix\Main\Web\CryptoCookie $cookie, string $encryptedValue) : iterable
        {
        }
        protected function unpackCookie(string $mainCookie, iterable $cookies) : string
        {
        }
        protected function encryptValue(string $value) : string
        {
        }
        protected function decryptValue(string $value) : string
        {
        }
        private function decodeUrlSafeB64($input)
        {
        }
        private function encodeUrlSafeB64($input)
        {
        }
        public function shouldEncrypt(\Bitrix\Main\Web\Cookie $cookie) : bool
        {
        }
        public function shouldDecrypt(string $cookieName, string $cookieValue) : bool
        {
        }
        protected function prependSign(string $value) : string
        {
        }
        protected function removeSign(string $value) : string
        {
        }
        public function getCipherKey() : string
        {
        }
    }
}
namespace Bitrix\Main\Web\WebPacker {
    /**
     * Class Loader
     *
     * @package Bitrix\Main\Web\WebPacker
     */
    class Loader
    {
        /** @var Output\File */
        protected $file;
        protected $cacheTtl = 60;
        protected $skipMoving = false;
        protected $tagAttributes = [];
        /**
         * Loader constructor.
         *
         * @param Output\File $file File output instance.
         */
        public function __construct(\Bitrix\Main\Web\WebPacker\Output\File $file)
        {
        }
        /**
         * Set cache ttl.
         *
         * @param int $cacheTtl Ttl in seconds.
         * @return $this
         */
        public function setCacheTtl($cacheTtl)
        {
        }
        /**
         * Set skip moving.
         *
         * @param bool $skip Skip moving.
         * @return $this
         */
        public function setSkipMoving($skip)
        {
        }
        /**
         * Set tag attributes.
         *
         * @param array $tagAttributes Tag attributes.
         * @return $this
         */
        public function setTagAttributes(array $tagAttributes = [])
        {
        }
        /**
         * Return loader file url.
         *
         * @return string
         */
        public function getFileUrl()
        {
        }
        /**
         * Return loader string.
         *
         * @return string
         */
        public function getString()
        {
        }
        /**
         * Return loader js string.
         *
         * @return string
         */
        public function getStringJs()
        {
        }
    }
    /**
     * Class Builder
     *
     * @package Bitrix\Main\Web\WebPacker
     */
    class Builder
    {
        /** @var Output\Base $output Output. */
        protected $output;
        /** @var bool $useMinification Use minification. */
        protected $useMinification;
        /** @var Module[] $modules Modules.  */
        private $modules = [\Bitrix\Main\Web\WebPacker\Converter::CORE_EXTENSION];
        /** @var string[] $extensions Extensions.  */
        private $extensions = [];
        /** @var string $siteUri Site uri.*/
        protected static $siteUri;
        /**
         * Build.
         *
         * @return Output\Result
         */
        public function build()
        {
        }
        /**
         * Set output.
         *
         * @param Output\Base $output Output.
         * @return $this
         */
        public function setOutput(\Bitrix\Main\Web\WebPacker\Output\Base $output)
        {
        }
        /**
         * Get output.
         *
         * @return Output\Base
         */
        public function getOutput()
        {
        }
        /**
         * Add child module to root module.
         *
         * @param Module $module Module.
         * @return $this
         */
        public function addModule(\Bitrix\Main\Web\WebPacker\Module $module)
        {
        }
        /**
         * Add child module to root module.
         *
         * @param string $name Name.
         * @param bool $appendDependencies Append dependencies.
         * @return $this
         */
        public function addExtension($name, $appendDependencies = true)
        {
        }
        /**
         * Return true if it has core extension.
         *
         * @return bool
         */
        public function hasCoreExtension()
        {
        }
        private function convertExtensionsToModules()
        {
        }
        /**
         * Use minification.
         *
         * @param bool $use Use minification.
         * @return $this
         */
        public function useMinification($use)
        {
        }
        /**
         * Apply extension options.
         *
         * @param Resource\Profile $profile Profile.
         * @param array $extensionOptions Extension options.
         * @return void
         */
        protected function applyExtensionOptions($profile, $extensionOptions)
        {
        }
        protected function getValueByKey($array, $key)
        {
        }
        /**
         * Get modules.
         *
         * @return Module[]
         */
        public function getModules()
        {
        }
        /**
         * Get module.
         *
         * @param string $name Name.
         * @return Module|null
         */
        public function getModule($name)
        {
        }
        /**
         * Convert to string.
         *
         * @return string
         */
        public function stringify()
        {
        }
        /**
         * Get site uri.
         *
         * @return string
         */
        public static function getDefaultSiteUri()
        {
        }
    }
    /**
     * Class FileController
     *
     * @package Bitrix\Main\Web\WebPacker
     */
    class FileController extends \Bitrix\Main\Web\WebPacker\Builder
    {
        /** @var Output\File $file File. */
        private $file;
        /** @var Loader $loader Loader. */
        private $loader;
        /**
         * Delete.
         *
         * @return void
         */
        public function delete()
        {
        }
        /**
         * Configure file.
         *
         * @param string $id File ID.
         * @param string $moduleId Bitrix module ID.
         * @param string $dir File directory.
         * @param string $name Filename.
         * @return $this
         */
        public function configureFile($id, $moduleId, $dir, $name)
        {
        }
        /**
         * @return Loader
         */
        public function getLoader()
        {
        }
        /**
         * Get output file.
         *
         * @return Output\File
         */
        protected function getOutputFile()
        {
        }
        /**
         * Set output.
         *
         * @param Output\Base $output Output.
         * @return $this
         */
        public function setOutput(\Bitrix\Main\Web\WebPacker\Output\Base $output)
        {
        }
        /**
         * Get output.
         *
         * @return Output\Base
         */
        public function getOutput()
        {
        }
    }
}
namespace Bitrix\Main\Web\WebPacker\Output {
    /**
     * Class Base
     *
     * @package Bitrix\Main\Web\WebPacker
     */
    class Base
    {
        /**
         * Output.
         *
         * @param WebPacker\Builder $builder Builder.
         * @return Result
         */
        public function output(\Bitrix\Main\Web\WebPacker\Builder $builder)
        {
        }
    }
    /**
     * Class File
     *
     * @package Bitrix\Main\Web\WebPacker\Output
     */
    class File extends \Bitrix\Main\Web\WebPacker\Output\Base
    {
        protected $id;
        protected $moduleId;
        protected $uploadDir;
        protected $dir;
        protected $name;
        protected $type;
        protected $content;
        /**
         * Remove by ID.
         *
         * @param int $id ID.
         * @return void
         */
        public static function removeById($id)
        {
        }
        /**
         * Output.
         *
         * @param WebPacker\Builder $builder Module.
         * @return Result
         */
        public function output(\Bitrix\Main\Web\WebPacker\Builder $builder)
        {
        }
        /**
         * Set content.
         *
         * @param string $content Content.
         * @return $this
         */
        public function setContent($content)
        {
        }
        /**
         * Set file ID.
         *
         * @param int $id File ID.
         * @return $this
         */
        public function setId($id)
        {
        }
        /**
         * Get file ID.
         *
         * @return int|null
         */
        public function getId()
        {
        }
        /**
         * Set module ID.
         *
         * @param string $moduleId Bitrix module ID.
         * @return $this
         */
        public function setModuleId($moduleId)
        {
        }
        /**
         * Set upload directory.
         *
         * @param string $uploadDir Upload directory.
         * @return $this
         */
        public function setUploadDir($uploadDir)
        {
        }
        /**
         * Set directory.
         *
         * @param string $dir Directory.
         * @return $this
         */
        public function setDir($dir)
        {
        }
        /**
         * Set name.
         *
         * @param string $name Name.
         * @return $this
         */
        public function setName($name)
        {
        }
        /**
         * Set type.
         *
         * @param string $type Content type.
         * @return $this
         */
        public function setType($type)
        {
        }
        /**
         * Remove.
         *
         * @return void
         */
        public function remove()
        {
        }
        /**
         * Get uri.
         *
         * @return string
         */
        public function getUri()
        {
        }
        protected function saveFile($content)
        {
        }
        protected static function getMimeTypeByFileName($fileName)
        {
        }
    }
    /**
     * Class Result
     *
     * @package Bitrix\Main\Web\WebPacker\Output
     */
    class Result extends \Bitrix\Main\Result
    {
        protected $id;
        protected $content;
        /**
         * Get ID.
         *
         * @return int|null
         */
        public function getId()
        {
        }
        /**
         * Set ID.
         *
         * @param int|null $id ID.
         * @return $this
         */
        public function setId($id)
        {
        }
        /**
         * Get content.
         *
         * @return string| null
         */
        public function getContent()
        {
        }
        /**
         * Set content.
         *
         * @param string $content Content.
         * @return $this
         */
        public function setContent($content)
        {
        }
    }
}
namespace Bitrix\Main\Web\WebPacker {
    /**
     * Class Module
     *
     * @package Bitrix\Main\Web\WebPacker
     */
    class Module
    {
        /** @var string $name */
        protected $name;
        /** @var Resource\Package $package */
        protected $package;
        /** @var Resource\Profile $profile */
        protected $profile;
        /**
         * Module constructor.
         *
         * @param @var string $name Name.
         * @param Resource\Package|null $package Resource package.
         * @param Resource\Profile|null $profile Profile.
         */
        public function __construct($name, \Bitrix\Main\Web\WebPacker\Resource\Package $package = null, \Bitrix\Main\Web\WebPacker\Resource\Profile $profile = null)
        {
        }
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Set resource package.
         *
         * @param Resource\Package $package Resource package.
         * @return $this
         */
        public function setPackage(\Bitrix\Main\Web\WebPacker\Resource\Package $package)
        {
        }
        /**
         * Get package.
         *
         * @return Resource\Package|null
         */
        public function getPackage()
        {
        }
        /**
         * Set profile.
         *
         * @param Resource\Profile $profile Profile.
         * @return $this
         */
        public function setProfile(\Bitrix\Main\Web\WebPacker\Resource\Profile $profile)
        {
        }
        /**
         * Get profile.
         *
         * @return Resource\Profile|null
         */
        public function getProfile()
        {
        }
        /**
         * To string.
         *
         * @return string
         */
        public function __toString()
        {
        }
    }
    /**
     * Class Converter
     *
     * @package Bitrix\Main\Web\WebPacker
     */
    class Converter
    {
        const CORE_EXTENSION = 'ui.webpacker';
        protected static $hasCoreExtension = false;
        /**
         * Stringify module.
         *
         * @param Builder $builder Builder.
         * @return string
         */
        public static function stringify(\Bitrix\Main\Web\WebPacker\Builder $builder)
        {
        }
        /**
         * Wrap by closure.
         *
         * @param string $content Content.
         * @return string
         */
        protected static function wrap($content)
        {
        }
        /**
         * Encode module.
         *
         * @param Module $module Module.
         * @return string
         */
        protected static function encodeModule(\Bitrix\Main\Web\WebPacker\Module $module)
        {
        }
        /**
         * Encode resource package.
         *
         * @param Resource\Package $package Package.
         * @param Resource\Profile $profile Profile.
         * @return string
         */
        protected static function encodePackage(\Bitrix\Main\Web\WebPacker\Resource\Package $package, \Bitrix\Main\Web\WebPacker\Resource\Profile $profile = null)
        {
        }
        protected static function getEol($multiplier = 2)
        {
        }
        protected static function isCoreExtension($name)
        {
        }
    }
}
namespace Bitrix\Main\Web\WebPacker\Resource {
    /**
     * Class Asset
     *
     * @package Bitrix\Main\Web\WebPacker\Resource
     */
    abstract class Asset
    {
        const JS = 'js';
        const CSS = 'css';
        const LAYOUT = 'layout';
        const LANG = 'lang';
        /** @var string */
        protected $type;
        /** @var string|null $path Path. */
        protected $path;
        /** @var string|null $uri Uri. */
        protected $uri;
        /** @var string|array|null $content Content. */
        protected $content;
        /**
         * Create asset instance.
         *
         * @param string $path Relative path to asset.
         * @return CssAsset|JsAsset|LangAsset|LayoutAsset
         * @throws ArgumentException
         */
        public static function create($path)
        {
        }
        /**
         * Get type list.
         *
         * @return array
         */
        public static function getTypeList()
        {
        }
        /**
         * Detect type by path.
         *
         * @param string $path Relative path to asset.
         * @return null|string
         */
        public static function detectType($path)
        {
        }
        /**
         * Asset constructor.
         *
         * @param string|null $path Path to resource.
         */
        public function __construct($path = null)
        {
        }
        /**
         * Get type.
         *
         * @return string
         */
        public function getType()
        {
        }
        /**
         * Get path.
         *
         * @return string
         */
        public function getPath()
        {
        }
        /**
         * Set path to resource.
         *
         * @param string $path Path to file.
         * @return $this
         */
        public function setPath($path)
        {
        }
        /**
         * Get uri.
         *
         * @return string|null
         */
        public function getUri()
        {
        }
        /**
         * Set uri.
         *
         * @param string|null $uri Uri.
         * @return $this
         */
        public function setUri($uri)
        {
        }
        /**
         * Set content.
         *
         * @param string|array $content Content.
         * @return $this
         */
        public function setContent($content)
        {
        }
        /**
         * Get name.
         *
         * @return string|null
         */
        public function getName()
        {
        }
        /**
         * Get content.
         *
         * @return string|null
         */
        public function getContent()
        {
        }
        /**
         * Return true if asset exists.
         *
         * @param string $path Relative path.
         * @return string
         */
        public static function isExists($path)
        {
        }
        /**
         * Get absolute path.
         *
         * @param string $path Relative path.
         * @return string
         */
        protected static function getAbsolutePath($path)
        {
        }
    }
    /**
     * Class LayoutAsset
     *
     * @package Bitrix\Main\Web\WebPacker\Resource
     */
    class LayoutAsset extends \Bitrix\Main\Web\WebPacker\Resource\Asset
    {
        protected $type = self::LAYOUT;
    }
    /**
     * Class Package
     *
     * @package Bitrix\Main\Web\WebPacker\Resource
     */
    class Package
    {
        /** @var Asset[] $list  */
        protected $list = [];
        protected $onDemand = false;
        /**
         * Get type list.
         *
         * @return array
         */
        public static function getOrderedTypeList()
        {
        }
        /**
         * Package constructor.
         *
         * @param Asset[] $assets Assets.
         */
        public function __construct(array $assets = [])
        {
        }
        /**
         * Add asset.
         *
         * @param Asset $item Item.
         * @return $this
         */
        public function addAsset(\Bitrix\Main\Web\WebPacker\Resource\Asset $item)
        {
        }
        /**
         * Get assets.
         *
         * @param string $type Type.
         * @return Asset[]
         */
        public function getAssets($type = null)
        {
        }
        /**
         * Enable loading by path for resources.
         * Default - content loading.
         *
         * @return $this
         */
        public function onDemand()
        {
        }
        /**
         * Return true if on demand.
         *
         * @return bool
         */
        public function isOnDemand()
        {
        }
        /**
         * Convert to array.
         *
         * @param string $type Type.
         * @return array
         */
        public function toArray($type = null)
        {
        }
    }
    /**
     * Class CssAsset
     *
     * @package Bitrix\Main\Web\WebPacker\Resource
     */
    class CssAsset extends \Bitrix\Main\Web\WebPacker\Resource\Asset
    {
        protected $type = self::CSS;
    }
    /**
     * Class Profile
     *
     * @package Bitrix\Main\Web\WebPacker
     */
    class Profile
    {
        const WEBPACKER = 'webpacker';
        const USE_LANG_CAMEL_CASE = 'useLangCamelCase';
        const USE_ALL_LANGS = 'useAllLangs';
        const DELETE_LANG_PREFIXES = 'deleteLangPrefixes';
        const CALL_METHOD = 'callMethod';
        const PROPERTIES = 'properties';
        protected $callMethod = '';
        protected $callParameter = [];
        protected $properties = [];
        protected $useLangCamelCase = false;
        protected $useAllLangs = false;
        protected $language = null;
        protected $deleteLangPrefixes = [];
        /**
         * Profile constructor.
         *
         * @param string $callMethod Call method.
         * @param null|array $callParameter Call parameter.
         */
        public function __construct($callMethod = null, array $callParameter = null)
        {
        }
        /**
         * Add property.
         *
         * @param string $name Name.
         * @param mixed $value Value.
         * @return $this
         */
        public function setProperty($name, $value)
        {
        }
        /**
         * Get property.
         *
         * @param string $code Code.
         * @return mixed
         */
        public function getProperty($code)
        {
        }
        /**
         * Get properties.
         *
         * @return array
         */
        public function getProperties()
        {
        }
        /**
         * Get call method.
         *
         * @return string|null
         */
        public function getCallMethod()
        {
        }
        /**
         * Get call parameter.
         *
         * @return array
         */
        public function getCallParameter()
        {
        }
        /**
         * Set call method.
         *
         * @param string $callMethod Call method.
         * @return $this
         */
        public function setCallMethod($callMethod)
        {
        }
        /**
         * Set parameter.
         *
         * @param array $callParameter Call parameter.
         * @return $this
         */
        public function setCallParameter(array $callParameter)
        {
        }
        /**
         * Use lang camel case.
         *
         * @param bool $use Use.
         * @return $this
         */
        public function useLangCamelCase($use)
        {
        }
        /**
         * Use all languages.
         *
         * @param bool $use Use.
         * @return $this
         */
        public function useAllLangs($use)
        {
        }
        /**
         * Delete lang prefixes.
         *
         * @param array $prefixes Prefixes.
         * @return $this
         */
        public function deleteLangPrefixes($prefixes)
        {
        }
        /**
         * Return true if lang camel case uses.
         *
         * @return bool
         */
        public function isLangCamelCase()
        {
        }
        /**
         * Return true if all langs uses.
         *
         * @return bool
         */
        public function isAllLangs()
        {
        }
        /**
         * Get language.
         *
         * @return string|null
         */
        public function getLanguage()
        {
        }
        /**
         * Set language.
         *
         * @param string|null $language
         * @return $this
         */
        public function setLanguage($language)
        {
        }
        /**
         * Return true if lang prefixes will delete.
         *
         * @return array
         */
        public function getDeleteLangPrefixes()
        {
        }
    }
    /**
     * Class LangAsset
     *
     * @package Bitrix\Main\Web\WebPacker\Resource
     */
    class LangAsset extends \Bitrix\Main\Web\WebPacker\Resource\Asset
    {
        protected $type = self::LANG;
        protected $useAllLangs = false;
        /**
         * Get content.
         *
         * @return array
         */
        public function getContent()
        {
        }
        /**
         * Use all languages.
         *
         * @param bool $use Use.
         * @return $this
         */
        public function useAllLangs($use)
        {
        }
        /**
         * Convert messages to camel case.
         *
         * @param array $messages Messages.
         * @return array
         */
        public static function toCamelCase(array $messages)
        {
        }
        /**
         * Delete prefixes in messages.
         *
         * @param array $messages Messages.
         * @param array $prefixes Prefixes.
         * @return array
         */
        public static function deletePrefixes(array $messages, array $prefixes)
        {
        }
        /**
         * Return true if asset exists.
         *
         * @param string $path Relative path.
         * @return string
         */
        public static function isExists($path)
        {
        }
        protected static function getLanguages()
        {
        }
    }
    /**
     * Class Asset
     *
     * @package Bitrix\Main\Web\WebPacker\Resource
     */
    class JsAsset extends \Bitrix\Main\Web\WebPacker\Resource\Asset
    {
        protected $type = self::JS;
    }
}
namespace Bitrix\Main\Web {
    class Cookie
    {
        const SPREAD_SITES = 1;
        const SPREAD_DOMAIN = 2;
        protected $domain;
        protected $expires;
        protected $httpOnly = true;
        protected $spread;
        protected $name;
        protected $originalName;
        protected $path = '/';
        protected $secure = false;
        protected $value;
        /**
         * Cookie constructor.
         * @param string $name The cooke name
         * @param string|null $value The cooke value
         * @param int $expires Timestamp
         * @param bool $addPrefix Name prefix, usually BITRIX_SM_
         */
        public function __construct($name, $value, $expires = null, $addPrefix = true)
        {
        }
        protected static function generateCookieName($name)
        {
        }
        protected function setDefaultsFromConfig()
        {
        }
        public function setDomain($domain)
        {
        }
        public function getDomain()
        {
        }
        public function setExpires($expires)
        {
        }
        public function getExpires()
        {
        }
        public function setHttpOnly($httpOnly)
        {
        }
        public function getHttpOnly()
        {
        }
        public function setName($name)
        {
        }
        public function getOriginalName() : string
        {
        }
        public function getName()
        {
        }
        public function setPath($path)
        {
        }
        public function getPath()
        {
        }
        public function setSecure($secure)
        {
        }
        public function getSecure()
        {
        }
        public function setValue($value)
        {
        }
        public function getValue()
        {
        }
        public function setSpread($spread)
        {
        }
        public function getSpread()
        {
        }
        /**
         * Returns the domain from the sites settings to use with cookies.
         *
         * @return string
         * @throws \Bitrix\Main\Db\SqlQueryException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getCookieDomain()
        {
        }
    }
    class CryptoCookie extends \Bitrix\Main\Web\Cookie
    {
        public function copyAttributesTo(\Bitrix\Main\Web\Cookie $cookie) : void
        {
        }
    }
    class PostDecodeFilter implements \Bitrix\Main\Type\IRequestFilter
    {
        /**
         * @param array $values
         * @return array
         */
        public function filter(array $values)
        {
        }
    }
    final class MimeType
    {
        protected static $mimes = ['hqx' => 'application/mac-binhex40', 'cpt' => 'application/mac-compactpro', 'csv' => 'text/x-comma-separated-values', 'bin' => 'application/octet-stream', 'dms' => 'application/octet-stream', 'lha' => 'application/octet-stream', 'lzh' => 'application/octet-stream', 'exe' => 'application/octet-stream', 'class' => 'application/octet-stream', 'psd' => 'application/x-photoshop', 'so' => 'application/octet-stream', 'sea' => 'application/octet-stream', 'dll' => 'application/octet-stream', 'oda' => 'application/oda', 'pdf' => 'application/pdf', 'ai' => 'application/pdf', 'eps' => 'application/postscript', 'ps' => 'application/postscript', 'smi' => 'application/smil', 'smil' => 'application/smil', 'mif' => 'application/vnd.mif', 'xls' => 'application/vnd.ms-excel', 'ppt' => 'application/powerpoint', 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'wbxml' => 'application/wbxml', 'wmlc' => 'application/wmlc', 'dcr' => 'application/x-director', 'dir' => 'application/x-director', 'dxr' => 'application/x-director', 'dvi' => 'application/x-dvi', 'gtar' => 'application/x-gtar', 'gz' => 'application/x-gzip', 'gzip' => 'application/x-gzip', 'php' => 'application/x-httpd-php', 'php4' => 'application/x-httpd-php', 'php3' => 'application/x-httpd-php', 'phtml' => 'application/x-httpd-php', 'phps' => 'application/x-httpd-php-source', 'js' => 'application/javascript', 'swf' => 'application/x-shockwave-flash', 'sit' => 'application/x-stuffit', 'tar' => 'application/x-tar', 'tgz' => 'application/x-tar', 'z' => 'application/x-compress', 'xhtml' => 'application/xhtml+xml', 'xht' => 'application/xhtml+xml', 'zip' => 'application/x-zip', 'rar' => 'application/x-rar', 'mid' => 'audio/midi', 'midi' => 'audio/midi', 'mpga' => 'audio/mpeg', 'mp2' => 'audio/mpeg', 'mp3' => 'audio/mpeg', 'aif' => 'audio/x-aiff', 'aiff' => 'audio/x-aiff', 'aifc' => 'audio/x-aiff', 'ram' => 'audio/x-pn-realaudio', 'rm' => 'audio/x-pn-realaudio', 'rpm' => 'audio/x-pn-realaudio-plugin', 'ra' => 'audio/x-realaudio', 'rv' => 'video/vnd.rn-realvideo', 'wav' => 'audio/x-wav', 'jpg' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'jpe' => 'image/jpeg', 'png' => 'image/png', 'webp' => 'image/webp', 'gif' => 'image/gif', 'bmp' => 'image/bmp', 'tiff' => 'image/tiff', 'tif' => 'image/tiff', 'svg' => 'image/svg+xml', 'css' => 'text/css', 'html' => 'text/html', 'htm' => 'text/html', 'shtml' => 'text/html', 'txt' => 'text/plain', 'text' => 'text/plain', 'log' => 'text/plain', 'rtx' => 'text/richtext', 'rtf' => 'text/rtf', 'xml' => 'application/xml', 'xsl' => 'application/xml', 'mpeg' => 'video/mpeg', 'mpg' => 'video/mpeg', 'mpe' => 'video/mpeg', 'qt' => 'video/quicktime', 'mov' => 'video/quicktime', 'avi' => 'video/x-msvideo', 'movie' => 'video/x-sgi-movie', 'doc' => 'application/msword', 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'dot' => 'application/msword', 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'word' => 'application/msword', 'xl' => 'application/excel', 'eml' => 'message/rfc822', 'json' => 'application/json', 'pem' => 'application/x-x509-user-cert', 'p10' => 'application/x-pkcs10', 'p12' => 'application/x-pkcs12', 'p7a' => 'application/x-pkcs7-signature', 'p7c' => 'application/pkcs7-mime', 'p7m' => 'application/pkcs7-mime', 'p7r' => 'application/x-pkcs7-certreqresp', 'p7s' => 'application/pkcs7-signature', 'crt' => 'application/x-x509-ca-cert', 'crl' => 'application/pkix-crl', 'der' => 'application/x-x509-ca-cert', 'kdb' => 'application/octet-stream', 'pgp' => 'application/pgp', 'gpg' => 'application/gpg-keys', 'sst' => 'application/octet-stream', 'csr' => 'application/octet-stream', 'rsa' => 'application/x-pkcs7', 'cer' => 'application/pkix-cert', '3g2' => 'video/3gpp2', '3gp' => 'video/3gp', 'mp4' => 'video/mp4', 'm4a' => 'audio/x-m4a', 'f4v' => 'video/mp4', 'webm' => 'video/webm', 'aac' => 'audio/x-acc', 'm4u' => 'application/vnd.mpegurl', 'm3u' => 'text/plain', 'xspf' => 'application/xspf+xml', 'vlc' => 'application/videolan', 'wmv' => 'video/x-ms-wmv', 'au' => 'audio/x-au', 'ac3' => 'audio/ac3', 'flac' => 'audio/x-flac', 'ogg' => 'audio/ogg', 'kmz' => 'application/vnd.google-earth.kmz', 'kml' => 'application/vnd.google-earth.kml+xml', 'ics' => 'text/calendar', 'zsh' => 'text/x-scriptzsh', '7zip' => 'application/x-7z-compressed', 'cdr' => 'application/cdr', 'wma' => 'audio/x-ms-wma', 'jar' => 'application/java-archive', 'sketch' => 'application/octet-stream', 'vsd' => 'application/vnd.ms-visio', 'vsdx' => 'application/vnd.ms-visio.drawing', 'docm' => 'application/vnd.ms-word.document.macroEnabled.12', 'dotm' => 'application/vnd.ms-word.template.macroEnabled.12', 'potm' => 'application/vnd.ms-powerpoint.template.macroEnabled.12', 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', 'ppam' => 'application/vnd.ms-powerpoint.addin.macroEnabled.12', 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12', 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12', 'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12', 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12', 'xlsm' => 'application/vnd.ms-excel.sheet.macroEnabled.12', 'xltm' => 'application/vnd.ms-excel.template.macroEnabled.12', 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', 'fb2' => 'application/xml', 'djvu' => 'image/vnd.djvu', 'epub' => 'application/epub+zip', 'msg' => 'message/rfc822', 'odt' => 'application/vnd.oasis.opendocument.text', 'xodt' => 'application/vnd.collabio.xodocuments.document', '7z' => 'application/x-7z-compressed', 'bz2' => 'application/x-bzip2', 'mp4v' => 'video/mp4', 'mpg4' => 'video/mp4', 'ogv' => 'video/ogg', 'flv' => 'video/x-flv', 'mkv' => 'video/x-matroska', 'm4v' => 'video/x-m4v', 'h264' => 'video/h264', 'sql' => 'text/plain', 'pl' => 'text/plain', 'sh' => 'text/plain', 'ttf' => 'application/x-font-ttf', 'otf' => 'application/vnd.ms-opentype', 'eot' => 'application/vnd.ms-fontobject', 'woff' => 'application/font-woff', 'pfa' => 'application/x-font-type1', 'xla' => "application/vnd.ms-excel", 'xlb' => 'application/vnd.ms-excel', 'xlc' => 'application/vnd.ms-excel', 'xll' => 'application/vnd.ms-excel', 'xlm' => 'application/vnd.ms-excel', 'xlt' => 'application/vnd.ms-excel', 'xlw' => 'application/vnd.ms-excel', 'dbf' => 'application/vnd.ms-excel', 'm1v' => 'video/mpeg', 'm2v' => 'video/mpeg', 'jpgv' => 'video/jpeg', 'dvb' => 'video/vnd.dvb.file', 'fvt' => 'video/vnd.fvt', 'mxu' => 'video/vnd.mpegurl', 'pyv' => 'video/vnd.ms-playready.media.pyv', 'uvu' => 'video/vnd.uvvu.mp4', 'uvvu' => 'video/vnd.uvvu.mp4', 'viv' => 'video/vnd.vivo', 'fli' => 'video/x-fli', 'mk3d' => 'video/x-matroska', 'mks' => 'video/x-matroska', 'mng' => 'video/x-mng', 'asf' => 'video/x-ms-asf', 'asx' => 'video/x-ms-asf', 'vob' => 'video/x-ms-vob', 'wm' => 'video/x-ms-wm', 'wmx' => 'video/x-ms-wmx', 'wvx' => 'video/x-ms-wvx', 'smv' => 'video/x-smv', 'mp2a' => 'audio/mpeg', 'm2a' => 'audio/mpeg', 'm3a' => 'audio/mpeg', 'oga' => 'audio/ogg', 'spx' => 'audio/ogg', 'weba' => 'audio/webm', 'm3u8' => 'application/vnd.apple.mpegurl', 'ts' => 'video/MP2T'];
        public static function getMimeTypeList()
        {
        }
        public static function getByFileExtension($extension)
        {
        }
        public static function getByFilename($filename)
        {
        }
        public static function getByFilePath($filePath)
        {
        }
        public static function getByContent($content)
        {
        }
    }
    class Json
    {
        const JSON_ERROR_UNKNOWN = -1;
        /**
         * Returns a string containing the JSON representation of $data.
         *
         * @param mixed $data The value being encoded.
         * @param null $options Bitmasked options. Default is JSON_HEX_TAG|JSON_HEX_AMP|JSON_HEX_APOS|JSON_HEX_QUOT.
         *
         * @return mixed
         * @throws \Bitrix\Main\ArgumentException
         * @see json_encode
         */
        public static function encode($data, $options = null)
        {
        }
        /**
         * Takes a JSON encoded string and converts it into a PHP variable.
         *
         * @param string $data The json string being decoded.
         *
         * @return mixed
         * @throws \Bitrix\Main\ArgumentException
         * @see json_decode
         */
        public static function decode($data)
        {
        }
        /**
         * Executes serializeJson on JsonSerializable objects for non-UTF8 instances.
         * We have to do it manually to prevent "malformed UTF-8 characters" error.
         *
         * @param mixed $data
         */
        protected static function serializeJson(&$data)
        {
        }
        /**
         * Converts $data to UTF-8 charset.
         *
         * @param mixed $data Input data.
         * @return mixed
         */
        protected static function convertData($data)
        {
        }
        /**
         * Converts $data from UTF-8 charset.
         *
         * @param mixed $data Input data.
         * @return mixed
         */
        protected static function unConvertData($data)
        {
        }
        /**
         * Checks global error flag and raises exception if needed.
         *
         * @param integer $options Bitmasked options. When JSON_PARTIAL_OUTPUT_ON_ERROR passed no exception is raised.
         *
         * @return void
         * @throws \Bitrix\Main\ArgumentException
         */
        protected static function checkException($options = 0)
        {
        }
        /**
         * Throws exception with message given.
         *
         * @param string $e Exception message.
         *
         * @return void
         * @throws \Bitrix\Main\ArgumentException
         */
        protected static function throwException($e)
        {
        }
    }
    /**
     * JSON Web Key implementation, based on this spec:
     * https://tools.ietf.org/html/draft-ietf-jose-json-web-key-41
     *
     * PHP version 5
     *
     * @package  Firebase\JWT
     * @author   Bui Sy Nguyen <nguyenbs@gmail.com>
     * @license  http://opensource.org/licenses/BSD-3-Clause 3-clause BSD
     * @link     https://github.com/fproject/php-jwt
     */
    class JWK
    {
        /**
         * Parse a set of JWK keys
         * @param $source
         * @return array an associative array represents the set of keys
         */
        public static function parseKeySet($source)
        {
        }
        /**
         * Parse a JWK key
         * @param $source
         * @return resource|array an associative array represents the key
         */
        public static function parseKey($source)
        {
        }
        /**
         *
         * Create a public key represented in PEM format from RSA modulus and exponent information
         *
         * @param string $n the RSA modulus encoded in Base64
         * @param string $e the RSA exponent encoded in Base64
         * @return string the RSA public key represented in PEM format
         */
        private static function createPemFromModulusAndExponent($n, $e)
        {
        }
        /**
         * DER-encode the length
         *
         * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4.  See
         * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 paragraph 8.1.3} for more information.
         *
         * @access private
         * @param int $length
         * @return string
         */
        private static function encodeLength($length)
        {
        }
    }
    class HttpClient
    {
        const HTTP_1_0 = "1.0";
        const HTTP_1_1 = "1.1";
        const HTTP_GET = "GET";
        const HTTP_POST = "POST";
        const HTTP_PUT = "PUT";
        const HTTP_HEAD = "HEAD";
        const HTTP_PATCH = "PATCH";
        const HTTP_DELETE = "DELETE";
        const HTTP_OPTIONS = "OPTIONS";
        const DEFAULT_SOCKET_TIMEOUT = 30;
        const DEFAULT_STREAM_TIMEOUT = 60;
        const DEFAULT_STREAM_TIMEOUT_NO_WAIT = 1;
        const BUF_READ_LEN = 16384;
        const BUF_POST_LEN = 131072;
        protected $proxyHost;
        protected $proxyPort;
        protected $proxyUser;
        protected $proxyPassword;
        protected $resource;
        protected $socketTimeout = self::DEFAULT_SOCKET_TIMEOUT;
        protected $streamTimeout = self::DEFAULT_STREAM_TIMEOUT;
        protected $error = array();
        protected $peerSocketName;
        /** @var HttpHeaders */
        protected $requestHeaders;
        /** @var HttpCookies  */
        protected $requestCookies;
        protected $waitResponse = true;
        protected $redirect = true;
        protected $redirectMax = 5;
        protected $redirectCount = 0;
        protected $compress = false;
        protected $version = self::HTTP_1_0;
        protected $requestCharset = '';
        protected $sslVerify = true;
        protected $bodyLengthMax = 0;
        protected $privateIp = true;
        protected $status = 0;
        /** @var HttpHeaders */
        protected $responseHeaders;
        /** @var HttpCookies  */
        protected $responseCookies;
        protected $result = '';
        protected $outputStream;
        /** @var IpAddress */
        protected $effectiveIp;
        protected $effectiveUrl;
        protected $receivedBytesLength = 0;
        protected $contextOptions = [];
        /**
         * @param array $options Optional array with options:
         *		"redirect" bool Follow redirects (default true)
         *		"redirectMax" int Maximum number of redirects (default 5)
         *		"waitResponse" bool Read the body or disconnect just after reading headers (default true)
         *		"socketTimeout" int Connection timeout in seconds (default 30)
         *		"streamTimeout" int Stream reading timeout in seconds (default 60 for waitResponse == true and 1 for waitResponse == false)
         *		"version" string HTTP version (HttpClient::HTTP_1_0, HttpClient::HTTP_1_1) (default "1.0")
         *		"proxyHost" string Proxy host name/address
         *		"proxyPort" int Proxy port number
         *		"proxyUser" string Proxy username
         *		"proxyPassword" string Proxy password
         *		"compress" bool Accept gzip encoding (default false)
         *		"charset" string Charset for body in POST and PUT
         *		"disableSslVerification" bool Pass true to disable ssl check
         *		"bodyLengthMax" int Maximum length of the body.
         *		"privateIp" bool Enable or disable requests to private IPs (default true).
         * 	"cookies" array of cookies for HTTP request.
         * 	"headers" array of headers for HTTP request.
         * 	All the options can be set separately with setters.
         */
        public function __construct(array $options = null)
        {
        }
        /**
         * Closes the connection on the object destruction.
         */
        public function __destruct()
        {
        }
        /**
         * Performs GET request.
         *
         * @param string $url Absolute URI eg. "http://user:pass @ host:port/path/?query".
         * @return string|bool Response entity string or false on error. Note, it's empty string if outputStream is set.
         */
        public function get($url)
        {
        }
        /**
         * Performs HEAD request.
         *
         * @param string $url Absolute URI eg. "http://user:pass @ host:port/path/?query"
         * @return HttpHeaders|bool Response headers or false on error.
         */
        public function head($url)
        {
        }
        /**
         * Performs POST request.
         *
         * @param string $url Absolute URI eg. "http://user:pass @ host:port/path/?query".
         * @param array|string|resource $postData Entity of POST/PUT request. If it's resource handler then data will be read directly from the stream.
         * @param boolean $multipart Whether or not to use multipart/form-data encoding. If true, method accepts file as a resource or as an array with keys 'resource' (or 'content') and optionally 'filename' and 'contentType'
         * @return string|bool Response entity string or false on error. Note, it's empty string if outputStream is set.
         */
        public function post($url, $postData = null, $multipart = false)
        {
        }
        /**
         * Performs multipart/form-data encoding.
         * Accepts file as a resource or as an array with keys 'resource' (or 'content') and optionally 'filename' and 'contentType'
         *
         * @param array|string|resource $postData Entity of POST/PUT request
         * @return string|bool False on error
         */
        protected function prepareMultipart($postData)
        {
        }
        /**
         * Perfoms HTTP request.
         *
         * @param string $method HTTP method (GET, POST, etc.). Note, it must be in UPPERCASE.
         * @param string $url Absolute URI eg. "http://user:pass @ host:port/path/?query".
         * @param array|string|resource $entityBody Entity body of the request. If it's resource handler then data will be read directly from the stream.
         * @return bool Query result (true or false). Response entity string can be get via getResult() method. Note, it's empty string if outputStream is set.
         */
        public function query($method, $url, $entityBody = null)
        {
        }
        /**
         * Sets an HTTP request header field.
         *
         * @param string $name Name of the header field.
         * @param string $value Value of the field.
         * @param bool $replace Replace existing header field with the same name or add one more.
         * @return $this
         */
        public function setHeader($name, $value, $replace = true)
        {
        }
        /**
         * Sets an array of headers for HTTP request.
         *
         * @param array $headers Array of header_name => value pairs.
         * @return $this
         */
        public function setHeaders(array $headers)
        {
        }
        /**
         * Clears all HTTP request header fields.
         */
        public function clearHeaders()
        {
        }
        /**
         * Sets an array of cookies for HTTP request.
         *
         * @param array $cookies Array of cookie_name => value pairs.
         * @return $this
         */
        public function setCookies(array $cookies)
        {
        }
        /**
         * Sets Basic Authorization request header field.
         *
         * @param string $user Username.
         * @param string $pass Password.
         * @return $this
         */
        public function setAuthorization($user, $pass)
        {
        }
        /**
         * Sets redirect options.
         *
         * @param bool $value If true, do redirect (default true).
         * @param null|int $max Maximum allowed redirect count.
         * @return $this
         */
        public function setRedirect($value, $max = null)
        {
        }
        /**
         * Sets response body waiting option.
         *
         * @param bool $value If true, wait for response body. If false, disconnect just after reading headers (default true).
         * @return $this
         */
        public function waitResponse($value)
        {
        }
        /**
         * Sets connection timeout.
         *
         * @param int $value Connection timeout in seconds (default 30).
         * @return $this
         */
        public function setTimeout($value)
        {
        }
        /**
         * Sets socket stream reading timeout.
         *
         * @param int $value Stream reading timeout in seconds; "0" means no timeout (default 60).
         * @return $this
         */
        public function setStreamTimeout($value)
        {
        }
        /**
         * Sets HTTP protocol version. In version 1.1 chunked response is possible.
         *
         * @param string $value Version "1.0" or "1.1" (default "1.0").
         * @return $this
         */
        public function setVersion($value)
        {
        }
        /**
         * Sets compression option.
         * Consider not to use the "compress" option with the output stream if a content can be large.
         * Note, that compressed response is processed anyway if Content-Encoding response header field is set
         *
         * @param bool $value If true, "Accept-Encoding: gzip" will be sent.
         * @return $this
         */
        public function setCompress($value)
        {
        }
        /**
         * Sets charset for entity-body (used in the Content-Type request header field for POST and PUT)
         *
         * @param string $value Charset.
         * @return $this
         */
        public function setCharset($value)
        {
        }
        /**
         * Disables ssl certificate verification.
         *
         * @return $this
         */
        public function disableSslVerification()
        {
        }
        /**
         * Enables or disables requests to private IPs.
         *
         * @param bool $value
         * @return $this
         */
        public function setPrivateIp($value)
        {
        }
        /**
         * Sets HTTP proxy for request.
         *
         * @param string $proxyHost Proxy host name or address (without "http://").
         * @param null|int $proxyPort Proxy port number.
         * @param null|string $proxyUser Proxy username.
         * @param null|string $proxyPassword Proxy password.
         * @return $this
         */
        public function setProxy($proxyHost, $proxyPort = null, $proxyUser = null, $proxyPassword = null)
        {
        }
        /**
         * Sets the response output to the stream instead of the string result. Useful for large responses.
         * Note, the stream must be readable/writable to support a compressed response.
         * Note, in this mode the result string is empty.
         *
         * @param resource $handler File or stream handler.
         * @return $this
         */
        public function setOutputStream($handler)
        {
        }
        /**
         * Sets the maximum body length that will be received in $this->readBody().
         *
         * @param int $bodyLengthMax
         * @return $this
         */
        public function setBodyLengthMax($bodyLengthMax)
        {
        }
        /**
         * Downloads and saves a file.
         *
         * @param string $url URI to download.
         * @param string $filePath Absolute file path.
         * @return bool
         */
        public function download($url, $filePath)
        {
        }
        /**
         * Returns URL of the last redirect if request was redirected, or initial URL if request was not redirected.
         * @return string
         */
        public function getEffectiveUrl()
        {
        }
        /**
         * Sets context options and parameters.
         *
         * @param array $options Context options and parameters
         * @return $this
         */
        public function setContextOptions(array $options)
        {
        }
        protected function connect(\Bitrix\Main\Web\Uri $url)
        {
        }
        protected function createContext()
        {
        }
        protected function disconnect()
        {
        }
        protected function send($data)
        {
        }
        protected function receive($bufLength = null)
        {
        }
        protected function sendRequest($method, \Bitrix\Main\Web\Uri $url, $entityBody = null)
        {
        }
        protected function readHeaders()
        {
        }
        protected function readBody()
        {
        }
        protected function receiveBytes($length)
        {
        }
        protected function checkErrors($buf)
        {
        }
        protected function decompress()
        {
        }
        protected function parseHeaders($headers)
        {
        }
        /**
         * Returns parsed HTTP response headers
         *
         * @return HttpHeaders
         */
        public function getHeaders()
        {
        }
        /**
         * Returns parsed HTTP response cookies
         *
         * @return HttpCookies
         */
        public function getCookies()
        {
        }
        /**
         * Returns HTTP response status code
         *
         * @return int
         */
        public function getStatus()
        {
        }
        /**
         * Returns HTTP response entity string. Note, if outputStream is set, the result will be empty string.
         *
         * @return string
         */
        public function getResult()
        {
        }
        /**
         * Returns array of errors on failure
         *
         * @return array Array with "error_code" => "error_message" pair
         */
        public function getError()
        {
        }
        /**
         * Returns response content type
         *
         * @return string
         */
        public function getContentType()
        {
        }
        /**
         * Returns response content encoding
         *
         * @return string
         */
        public function getCharset()
        {
        }
        /**
         * Returns remote peer socket name (usually in form ip:port)
         *
         * @return string
         */
        public function getPeerSocketName()
        {
        }
        /**
         * Returns remote peer ip address.
         * @return string|false
         */
        public function getPeerAddress()
        {
        }
        /**
         * Returns remote peer ip address.
         * @return int|false
         */
        public function getPeerPort()
        {
        }
    }
    class IpAddress
    {
        protected $ip;
        /**
         * @param string $ip
         */
        public function __construct($ip)
        {
        }
        /**
         * Creates the object by a host name.
         *
         * @param string $name
         * @return static
         */
        public static function createByName($name)
        {
        }
        /**
         * Creates the object by an Uri.
         *
         * @param Uri $uri
         * @return static
         */
        public static function createByUri(\Bitrix\Main\Web\Uri $uri)
        {
        }
        /**
         * Returns address's value.
         *
         * @return string
         */
        public function get()
        {
        }
        /**
         * Retuns true if the address is incorrect or private.
         *
         * @return bool
         */
        public function isPrivate()
        {
        }
        /**
         * Check IPv4 address is within an IP range
         *
         * @param string $cidr a valid IPv4 subnet[/mask]
         * @return bool
         */
        public function matchRange(string $cidr) : bool
        {
        }
    }
    class HttpCookies extends \Bitrix\Main\Type\Dictionary
    {
        public function __construct(array $values = null)
        {
        }
        public function toString()
        {
        }
        public function addFromString($str)
        {
        }
    }
    class HttpHeaders implements \IteratorAggregate
    {
        protected $headers = array();
        public function __construct()
        {
        }
        /**
         * Adds a header.
         * @param string $name
         * @param string $value
         */
        public function add($name, $value)
        {
        }
        private function refineString($string)
        {
        }
        /**
         * Sets a header value.
         * @param string $name
         * @param string|null $value
         */
        public function set($name, $value)
        {
        }
        /**
         * Returns a header value by its name. If $returnArray is true then an array with multiple values is returned.
         * @param string $name
         * @param bool $returnArray
         * @return null|string|array
         */
        public function get($name, $returnArray = false)
        {
        }
        /**
         * Deletes a header or headers by its name.
         *
         * @param string $name
         * @return void
         */
        public function delete($name)
        {
        }
        /**
         * Clears all headers.
         */
        public function clear()
        {
        }
        /**
         * Returns the string representation for a HTTP request.
         * @return string
         */
        public function toString()
        {
        }
        /**
         * Returns headers as a raw array.
         * @return array
         */
        public function toArray()
        {
        }
        /**
         * Returns the content type part of the Content-Type header.
         * @return null|string
         */
        public function getContentType()
        {
        }
        public function getBoundary()
        {
        }
        /**
         * Returns the charset part of the Content-Type header.
         * @return null|string
         */
        public function getCharset()
        {
        }
        /**
         * Returns disposition-type part of the Content-Disposition header
         * @return null|string Disposition-type part of the Content-Disposition header if found or null otherwise.
         */
        public function getContentDisposition()
        {
        }
        /**
         * Returns a filename from the Content-disposition header.
         *
         * @return string|null Filename if it was found in the Content-disposition header or null otherwise.
         */
        public function getFilename()
        {
        }
        /**
         * Retrieve an external iterator
         * @link https://php.net/manual/en/iteratoraggregate.getiterator.php
         * @return Traversable An instance of an object implementing <b>Iterator</b> or
         * <b>Traversable</b>
         * @since 5.0.0
         */
        public function getIterator()
        {
        }
    }
}
namespace Bitrix\Main\Web\DOM {
    abstract class Node
    {
        const ELEMENT_NODE = 1;
        const ATTRIBUTE_NODE = 2;
        const TEXT_NODE = 3;
        const CDATA_SECTION_NODE = 4;
        const ENTITY_REFERENCE_NODE = 5;
        const ENTITY_NODE = 6;
        const PROCESSING_INSTRUCTION_NODE = 7;
        const COMMENT_NODE = 8;
        const DOCUMENT_FRAGMENT_NODE = 11;
        const DOCUMENT_NODE = 9;
        const DOCUMENT_TYPE_NODE = 10;
        const NOTATION_NODE = 12;
        public static $isNodeListAsArray = true;
        /*@var Document $ownerDocument*/
        protected $ownerDocument = null;
        /*@var string $nodeType*/
        protected $nodeType = null;
        /*@var string $nodeName*/
        protected $nodeName = null;
        /*@var string $nodeValue*/
        protected $nodeValue = null;
        /*@var NodeList $childNodes*/
        protected $childNodes = null;
        /*@var Node $parentNode*/
        protected $parentNode = null;
        /*@var null|NamedNodeMap $attributes*/
        protected $attributes = null;
        /*@var string $textContent*/
        protected $textContent = null;
        /*@var bool $bxIsAlreadyClosed*/
        public $bxIsAlreadyClosed = false;
        /*@var bool $bxClosable*/
        public $bxClosable = true;
        public function __construct()
        {
        }
        protected function init()
        {
        }
        public function getNodeType()
        {
        }
        public function getParentNode()
        {
        }
        public function setParentNode(\Bitrix\Main\Web\DOM\Node $node = null)
        {
        }
        public function hasAttributes()
        {
        }
        public function getAttributes()
        {
        }
        public function getNodeName()
        {
        }
        public function setNodeName($a)
        {
        }
        public function getNodeValue()
        {
        }
        public function getTextContent()
        {
        }
        public function getOwnerDocument()
        {
        }
        public function setOwnerDocument(\Bitrix\Main\Web\DOM\Document $owner)
        {
        }
        public function getFirstChild()
        {
        }
        public function getLastChild()
        {
        }
        public function getPreviousSibling()
        {
        }
        public function getNextSibling()
        {
        }
        /*
         * @return NodeList|Node[]
         */
        public function getChildNodes()
        {
        }
        /*
         * @return Node[]
         */
        public function getChildNodesArray()
        {
        }
        public function setChildNodesArray($childList)
        {
        }
        public function hasChildNodes()
        {
        }
        protected function haveChild($checkingChild)
        {
        }
        /**
         * Adds the node newChild to the end of the list of children of this node.
         * If the newChild is already in the tree, it is first removed.
         * */
        public function appendChild(\Bitrix\Main\Web\DOM\Node $newChild)
        {
        }
        public function insertBefore(\Bitrix\Main\Web\DOM\Node $newChild, \Bitrix\Main\Web\DOM\Node $refChild = null, $removeExist = true)
        {
        }
        public function removeChild(\Bitrix\Main\Web\DOM\Node $oldChild)
        {
        }
        public function replaceChild(\Bitrix\Main\Web\DOM\Node $newChild, \Bitrix\Main\Web\DOM\Node $oldChild)
        {
        }
        public function isEqual(\Bitrix\Main\Web\DOM\Node $node = null)
        {
        }
        public function getOuterHTML()
        {
        }
        public function getInnerHTML()
        {
        }
        public function setInnerHTML($html)
        {
        }
        /**
         * @param string $queryString
         * @return Node[]
         * */
        public function querySelectorAll($queryString)
        {
        }
        /**
         * @param string $queryString
         * @return Node|null
         * */
        public function querySelector($queryString)
        {
        }
        public function closest($queryString)
        {
        }
        public function toString()
        {
        }
        public function toArray()
        {
        }
    }
    class Document extends \Bitrix\Main\Web\DOM\Node
    {
        /** @var $parser Parser */
        protected $parser;
        /** @var $queryEngine QueryEngine */
        protected $queryEngine;
        /*
         * @return void
         */
        public function __construct()
        {
        }
        /*
         * @param string $source
         * @return void
         */
        public function loadHTML($source)
        {
        }
        /*
         * @param null|Node $node
         * @return string
         */
        public function saveHTML(\Bitrix\Main\Web\DOM\Node $node = null)
        {
        }
        /*
         * @return QueryEngine
         */
        public function getQueryEngine()
        {
        }
        /*
         * @param QueryEngine $engine
         * @return void
         */
        public function setQueryEngine(\Bitrix\Main\Web\DOM\QueryEngine $engine)
        {
        }
        /*
         * @return Parser
         */
        public function getParser()
        {
        }
        /*
         * @param Parser $parser
         * @return void
         */
        public function setParser(\Bitrix\Main\Web\DOM\Parser $parser)
        {
        }
        /*
         * Changes the ownerDocument of a node, its children, as well as the attached attribute nodes if there are any.
         * If the node has a parent it is first removed from its parent child list.
         * This effectively allows moving a subtree from one document to another.
         */
        public function adoptNode(\Bitrix\Main\Web\DOM\Node $source)
        {
        }
        /*
         * @param string $tagName
         * @return Element
         */
        public function createElement($tagName)
        {
        }
        /*
         * @param string $name
         * @param string $value
         * @return Attr
         */
        public function createAttribute($name, $value)
        {
        }
        /*
         * @param string $comment
         * @return Comment
         */
        public function createComment($comment)
        {
        }
        /*
         * @param string $text
         * @return Text
         */
        public function createTextNode($text)
        {
        }
        /*
         * @return null
         */
        public function createDocumentFragment()
        {
        }
        /*
         * @return null|Node
         */
        public function getElementById($id)
        {
        }
        /*
         * @return null|Node
         */
        public function getElementByClassName($className)
        {
        }
        /*
         * @return array|NodeList
         */
        public function getElementsByName($name)
        {
        }
        public function getTextContent()
        {
        }
        /*
         * @return array|NodeList
         */
        public function getElementsByAttr($attrName, $attrValue = null, $limit = 0)
        {
        }
        /*
         * @return array|NodeList
         */
        public function getElementsByTagName($tagName)
        {
        }
        /*
         * @return array|NodeList
         */
        public function getElementsByClassName($className, $limit = 0)
        {
        }
        /*
         * @return null|Element
         */
        public function getDocumentElement()
        {
        }
        /*
         * Get HEAD element
         * @return null|Element
         */
        public function getHead()
        {
        }
        /*
         * Get BODY element
         * @return null|Element
         */
        public function getBody()
        {
        }
    }
    class Element extends \Bitrix\Main\Web\DOM\Node
    {
        /**
         * @var Element $parentElement
         */
        protected $parentElement;
        /**
         * @var NamedNodeMap $attributes
         */
        protected $attributes;
        /**
         * @var string $tagName
         */
        protected $tagName;
        /**
         * @var array $classList
         */
        protected $classList;
        /**
         * @var string $id
         */
        protected $id;
        /**
         * @var string $name
         */
        protected $name;
        /**
         * @var string $className
         */
        protected $className;
        /**
         * @var string $style
         */
        protected $style;
        public function __construct($name)
        {
        }
        public function getTagName()
        {
        }
        public function getId()
        {
        }
        public function setId($id)
        {
        }
        public function getName()
        {
        }
        public function setName($id)
        {
        }
        public function getStyle()
        {
        }
        public function setStyle($style)
        {
        }
        public function getClassName()
        {
        }
        public function setClassName($className)
        {
        }
        public function getClassList()
        {
        }
        public function setClassList(array $classList)
        {
        }
        public function getParentElement()
        {
        }
        public function getTextContent()
        {
        }
        protected function setParentElement(\Bitrix\Main\Web\DOM\Element $parentElement)
        {
        }
        public function getAttributesArray()
        {
        }
        public function setAttributeNode(\Bitrix\Main\Web\DOM\Attr $attr)
        {
        }
        public function getAttributeNode($name)
        {
        }
        public function removeAttributeNode(\Bitrix\Main\Web\DOM\Attr $oldNode)
        {
        }
        public function setAttribute($name, $value)
        {
        }
        /**
         * @param string $attributeName
         * @return bool
         */
        public function hasAttribute($attributeName)
        {
        }
        public function getAttribute($name)
        {
        }
        public function removeAttribute($name)
        {
        }
    }
    /*
    class NodeList extends \Bitrix\Main\Type\Dictionary implements \Traversable
    {
    	public function item($index)
    	{
    		return $this->offsetGet($index);
    	}
    
    	public function haveItem(Node $item)
    	{
    		for($i = 0; $i < $this->count(); $i++)
    		{
    			if($item->isEqual($this->item($i)))
    			{
    				return true;
    			}
    		}
    
    		return false;
    	}
    
    	public function removeItem(Node $item)
    	{
    		for($i = 0; $i < $this->count(); $i++)
    		{
    			if($item === $this->item($i))
    			{
    				$this->offsetUnset($i);
    				break;
    			}
    		}
    	}
    }
    */
    class NodeList implements \Iterator
    {
        protected $length = 0;
        protected $position = 0;
        protected $values = array();
        public function __construct(array $values = null)
        {
        }
        public function getLength()
        {
        }
        /*
         * @return Node|null
         */
        public function item($index)
        {
        }
        public function set(array $values)
        {
        }
        public function get()
        {
        }
        public function rewind()
        {
        }
        public function current()
        {
        }
        public function key()
        {
        }
        public function next()
        {
        }
        public function valid($index = null)
        {
        }
    }
    abstract class Parser
    {
        /*@var $htmlParser HtmlParser */
        private static $htmlParser;
        /*@var $config ParserConfig */
        protected $config;
        public static function getHtmlParser()
        {
        }
        public function setConfig(\Bitrix\Main\Web\DOM\ParserConfig $config)
        {
        }
        public function getConfig()
        {
        }
        public abstract function parse($text = "", \Bitrix\Main\Web\DOM\Node $toNode);
        public abstract function getSource(\Bitrix\Main\Web\DOM\Node $node);
    }
    class StyleInliner
    {
        /**
         * @param Document $document
         * @param array $styleList
         * @return array
         */
        public static function inlineDocument(\Bitrix\Main\Web\DOM\Document $document, array $styleList = null)
        {
        }
        public static function inlineHtml($html, array $styleList = null)
        {
        }
        /*
         * @param Element $node
         * @param bool $singleStyle
         * @return array
         */
        public static function getStyle(\Bitrix\Main\Web\DOM\Element $node, $singleStyle = true)
        {
        }
        /*
         * @param Element $node
         * @param array $styleList
         * @param bool $append
         * @return void
         */
        public static function setStyle(\Bitrix\Main\Web\DOM\Element $node, $styleList, $append = false)
        {
        }
    }
    abstract class QueryEngine
    {
        const DIR_DOWN = 0;
        const DIR_UP = 1;
        const FILTER_NODE_TYPE = 'nodeType';
        const FILTER_NODE_NAME = 'nodeName';
        const FILTER_ATTR = 'attr';
        const FILTER_ATTR_VALUE = 'attrValue';
        const FILTER_ATTR_CLASS_NAME = 'attrClassName';
        const FILTER_OPERATION_EQUAL = '=';
        const FILTER_OPERATION_NOT_EQUAL = '!';
        const FILTER_OPERATION_START = '^';
        const FILTER_OPERATION_END = '$';
        const FILTER_OPERATION_CONTAIN = '*';
        const FILTER_OPERATION_CONTAIN_WORD = '|';
        protected $limit = null;
        protected $deep = true;
        protected $direction = self::DIR_DOWN;
        private static $querySelectorEngine;
        public static function getQuerySelectorEngine()
        {
        }
        protected function isNodeFiltered(\Bitrix\Main\Web\DOM\Node $node, array $filter)
        {
        }
        public function walk(array $filter = null, callable $callback = null, \Bitrix\Main\Web\DOM\Node $node, $limit = 0, $direction = self::DIR_DOWN)
        {
        }
        protected function walkInternal(array $filter = null, callable $callback = null, \Bitrix\Main\Web\DOM\Node $node)
        {
        }
        public abstract function query($queryString = "", \Bitrix\Main\Web\DOM\Node $node, $limit = 0, $direction = self::DIR_DOWN);
    }
    class QuerySelectorEngine extends \Bitrix\Main\Web\DOM\QueryEngine
    {
        const PATH_CODE_NAME = 'name';
        const PATH_CODE_CHILD = 'child';
        const PATH_CODE_CLASS = 'class';
        const PATH_CODE_DESCENDANT = 'descendant';
        const PATH_CODE_ATTR = 'attr';
        const PATH_CODE_PSEUDO = 'pseudo';
        public function query($queryString = "", \Bitrix\Main\Web\DOM\Node $node, $limit = 0, $direction = self::DIR_DOWN)
        {
        }
        public function queryInternal(array $instructionList, \Bitrix\Main\Web\DOM\Node $node, $limit = 0, $direction = self::DIR_DOWN)
        {
        }
        public function parseQueryStringPseudo($string)
        {
        }
        public function parseQueryStringAttr($string)
        {
        }
        /**
         * @param string $string
         * @return array
         */
        public function parseQueryString($string)
        {
        }
        /**
         * @param string $string
         * @param int $length
         * @param int $i
         * @param array $dividers
         * @return string
         */
        protected function writeToBuffer($string, $length, &$i, array $dividers)
        {
        }
    }
    class DomException extends \Bitrix\Main\SystemException
    {
        const INDEX_SIZE_ERR = 1;
        const DOMSTRING_SIZE_ERR = 2;
        const HIERARCHY_REQUEST_ERR = 3;
        const WRONG_DOCUMENT_ERR = 4;
        const INVALID_CHARACTER_ERR = 5;
        const NO_DATA_ALLOWED_ERR = 6;
        const NO_MODIFICATION_ALLOWED_ERR = 7;
        const NOT_FOUND_ERR = 8;
        const NOT_SUPPORTED_ERR = 9;
        const INUSE_ATTRIBUTE_ERR = 10;
        // Introduced in DOM Level 2:
        const INVALID_STATE_ERR = 11;
        // Introduced in DOM Level 2:
        const SYNTAX_ERR = 12;
        // Introduced in DOM Level 2:
        const INVALID_MODIFICATION_ERR = 13;
        // Introduced in DOM Level 2:
        const NAMESPACE_ERR = 14;
        // Introduced in DOM Level 2:
        const INVALID_ACCESS_ERR = 15;
        // Introduced in DOM Level 3:
        const VALIDATION_ERR = 16;
        public function __construct($message = "", $code = 0, \Exception $previous = null)
        {
        }
    }
}
namespace Bitrix\Main\Web\DOM\Element {
    class Input extends \Bitrix\Main\Web\DOM\Element
    {
        /**
         * @var string $name
         */
        public $name = null;
        public $value = null;
        public function __construct($name, $value = null)
        {
        }
    }
}
namespace Bitrix\Main\Web\DOM {
    class HtmlParser extends \Bitrix\Main\Web\DOM\Parser
    {
        public $debugTime = 0;
        protected $tagsMustBeClosed = array('SCRIPT', 'STYLE');
        public $storePhpCode = true;
        protected static $objectCounter = 0;
        protected $currentObjectNumber;
        protected $storedItemCounter;
        protected $storedPHP = array();
        public function __construct()
        {
        }
        /*
         * @param Node $node
         * @return string
         */
        public function getSource(\Bitrix\Main\Web\DOM\Node $node)
        {
        }
        protected function getSourceAttr(\Bitrix\Main\Web\DOM\Attr $node)
        {
        }
        protected function getSourceElement(\Bitrix\Main\Web\DOM\Element $node)
        {
        }
        protected function getSourceDocType(\Bitrix\Main\Web\DOM\DocumentType $node)
        {
        }
        /*
         * @param string $text
         * @param Node $node
         * @return void
         */
        public function parse($text = "", \Bitrix\Main\Web\DOM\Node $node)
        {
        }
        protected function parseElement($text)
        {
        }
        protected function parseDocType($text)
        {
        }
        protected function parseAttributes($text)
        {
        }
        protected function parseAttributesOld($text)
        {
        }
        protected function getNextNode($tag, \Bitrix\Main\Web\DOM\Node $parentNode)
        {
        }
        /*
         * @param string $html
         * @return string
         */
        public function commentPHP($html)
        {
        }
        /*
         * @param string $html
         * @return string
         */
        public function storePHP($html)
        {
        }
        /*
         * @param string $html
         * @return string
         */
        public function restorePHP($html)
        {
        }
    }
    class Attr extends \Bitrix\Main\Web\DOM\Node
    {
        /**
         * @var string $name
         */
        protected $name = null;
        public $value = null;
        public function __construct($name, $value)
        {
        }
        public function toString()
        {
        }
        public function getName()
        {
        }
        public function setName($name)
        {
        }
        public function getValue()
        {
        }
        public function setValue($value)
        {
        }
        public function toArray()
        {
        }
    }
    class DocumentType extends \Bitrix\Main\Web\DOM\Node
    {
        public function __construct()
        {
        }
        public function getTextContent()
        {
        }
    }
    abstract class ParserConfig
    {
    }
    class Comment extends \Bitrix\Main\Web\DOM\Node
    {
        public function __construct($comment)
        {
        }
        public function setNodeValue($comment)
        {
        }
        public function getTextContent()
        {
        }
    }
    class HtmlParserConfig extends \Bitrix\Main\Web\DOM\ParserConfig
    {
    }
    class DisplayProperties
    {
        const DISPLAY = 'display';
        const FONT = 'font';
        const DISPLAY_HIDDEN = 'hidden';
        const DISPLAY_BLOCK = 'block';
        const DISPLAY_INLINE = 'inline';
        const FONT_NORMAL = 'normal';
        const FONT_BOLD = 'bold';
        const FONT_ITALIC = 'italic';
        const FONT_UNDERLINED = 'underlined';
        const FONT_DELETED = 'deleted';
        protected $properties = [];
        public function __construct(\Bitrix\Main\Web\DOM\Node $node, array $properties = [], array $defaultProperties = [])
        {
        }
        /**
         * @return bool
         */
        public function isHidden()
        {
        }
        /**
         * @return bool
         */
        public function isDisplayBlock()
        {
        }
        /**
         * @return bool
         */
        public function isDisplayInline()
        {
        }
        /**
         * @return bool
         */
        public function isFontBold()
        {
        }
        /**
         * @return bool
         */
        public function isFontItalic()
        {
        }
        /**
         * @return bool
         */
        public function isFontUnderlined()
        {
        }
        /**
         * @return bool
         */
        public function isFontDeleted()
        {
        }
        /**
         * @return array
         */
        public function getProperties()
        {
        }
        /**
         * @return array
         */
        protected function getDefaultProperties()
        {
        }
        /**
         * Returns true if this node should be rendered.
         *
         * @param \Bitrix\Main\Web\DOM\Node $node
         * @return bool
         */
        protected function isHiddenNode(\Bitrix\Main\Web\DOM\Node $node)
        {
        }
        /**
         * Returns true if html-tag with this $tagName displays as block by default.
         *
         * @param string $tagName
         * @return bool
         */
        protected function isBlockTag($tagName)
        {
        }
        /**
         * Returns true if html-tag with this $tagName has bold font-weight by default.
         *
         * @param string $tagName
         * @return bool
         */
        protected function isBoldTag($tagName)
        {
        }
        /**
         * Returns true if html-tag with this $tagName has italic font-style by default.
         *
         * @param string $tagName
         * @return bool
         */
        protected function isItalicTag($tagName)
        {
        }
        /**
         * Returns true if html-tag with this $tagName has underlined font-decoration by default.
         *
         * @param string $tagName
         * @return bool
         */
        protected function isUnderlinedTag($tagName)
        {
        }
        /**
         * Returns true if html-tag with this $tagName renders as 'deleted' by default.
         *
         * @param string $tagName
         * @return bool
         */
        protected function isDeletedTag($tagName)
        {
        }
        /**
         * @param Node $node
         * @return array
         */
        protected function getNodeProperties(\Bitrix\Main\Web\DOM\Node $node)
        {
        }
    }
    class Text extends \Bitrix\Main\Web\DOM\Node
    {
        public function __construct($text)
        {
        }
        public function setNodeValue($text)
        {
        }
    }
    /*
    class NamedNodeMap extends NodeList
    {
    	public function getNamedItem($name)
    	{
    		for($index = 0; $index < $this->count(); $index++)
    		{
    			if($this->item($index)->getName() === $name)
    			{
    				return $this->item($index);
    			}
    		}
    
    		return null;
    	}
    
    	public function setNamedItem(Node $node)
    	{
    		$this->offsetSet(null, $node);
    	}
    
    	public function removeNamedItem($name)
    	{
    		for($index = 0; $index < $this->count(); $index++)
    		{
    			if($this->item($index)->getName() === $name)
    			{
    				$this->offsetUnset($index);
    			}
    		}
    
    		$this->rewind();
    	}
    }
    */
    class NamedNodeMap extends \Bitrix\Main\Web\DOM\NodeList
    {
        protected $names = array();
        protected $nameByPosition = array();
        protected $positionByName = array();
        public function set(array $values)
        {
        }
        public function get()
        {
        }
        public function key()
        {
        }
        public function getNamedItem($name)
        {
        }
        /*
         * Adds a node using its nodeName attribute.
         * If a node with that name is already present in this map, it is replaced by the new one.
         * Replacing a node by itself has no effect.
         * As the nodeName attribute is used to derive the name which the node must be stored under,
         * multiple nodes of certain types (those that have a "special" string value) cannot be stored as the names would clash.
         * This is seen as preferable to allowing nodes to be aliased.
         */
        public function setNamedItem(\Bitrix\Main\Web\DOM\Attr $node)
        {
        }
        /*
         * Removes a node specified by name.
         * When this map contains the attributes attached to an element,
         * if the removed attribute is known to have a default value,
         * an attribute immediately appears containing the default value as well
         * as the corresponding namespace URI, local name, and prefix when applicable.
         */
        public function removeNamedItem($name)
        {
        }
    }
    class CssParser
    {
        public static function parseDocument(\Bitrix\Main\Web\DOM\Document $document, $sort = false)
        {
        }
        public static function parse($css, $sort = false)
        {
        }
        public static function parseCss($css)
        {
        }
        /**
         * @param Document $document
         * @return string
         */
        public static function findDocumentCss(\Bitrix\Main\Web\DOM\Document $document)
        {
        }
        public static function getDeclarationArray($declarationBlock, $singleStyle = true)
        {
        }
        public static function getDeclarationString($declarationList)
        {
        }
        public static function sortSelectors($styleList)
        {
        }
        public static function getSelectorSort($selector)
        {
        }
    }
}
namespace Bitrix\Main\Web {
    /**
     * JSON Web Token implementation, based on this spec:
     * https://tools.ietf.org/html/rfc7519
     *
     * PHP version 5
     *
     * @category Authentication
     * @package  Authentication_JWT
     * @author   Neuman Vong <neuman@twilio.com>
     * @author   Anant Narayanan <anant@php.net>
     * @license  http://opensource.org/licenses/BSD-3-Clause 3-clause BSD
     * @link     https://github.com/firebase/php-jwt
     */
    class JWT
    {
        const ASN1_INTEGER = 0x2;
        const ASN1_SEQUENCE = 0x10;
        const ASN1_BIT_STRING = 0x3;
        /**
         * When checking nbf, iat or expiration times,
         * we want to provide some extra leeway time to
         * account for clock skew.
         */
        public static $leeway = 0;
        /**
         * Allow the current timestamp to be specified.
         * Useful for fixing a value within unit testing.
         *
         * Will default to PHP time() value if null.
         */
        public static $timestamp = null;
        public static $supported_algs = array('ES256' => array('openssl', 'SHA256'), 'HS256' => array('hash_hmac', 'SHA256'), 'HS384' => array('hash_hmac', 'SHA384'), 'HS512' => array('hash_hmac', 'SHA512'), 'RS256' => array('openssl', 'SHA256'), 'RS384' => array('openssl', 'SHA384'), 'RS512' => array('openssl', 'SHA512'));
        /**
         * Decodes a JWT string into a PHP object.
         *
         * @param string                    $jwt            The JWT
         * @param string|array|resource     $key            The key, or map of keys.
         *                                                  If the algorithm used is asymmetric, this is the public key
         * @param array                     $allowed_algs   List of supported verification algorithms
         *                                                  Supported algorithms are 'ES256', 'HS256', 'HS384', 'HS512', 'RS256', 'RS384', and 'RS512'
         *
         * @return object The JWT's payload as a PHP object
         *
         * @throws UnexpectedValueException     Provided JWT was invalid
         *
         * @uses jsonDecode
         * @uses urlsafeB64Decode
         */
        public static function decode($jwt, $key, array $allowed_algs = array())
        {
        }
        /**
         * Converts and signs a PHP object or array into a JWT string.
         *
         * @param object|array  $payload    PHP object or array
         * @param string        $key        The secret key.
         *                                  If the algorithm used is asymmetric, this is the private key
         * @param string        $alg        The signing algorithm.
         *                                  Supported algorithms are 'ES256', 'HS256', 'HS384', 'HS512', 'RS256', 'RS384', and 'RS512'
         * @param mixed         $keyId
         * @param array         $head       An array with header elements to attach
         *
         * @return string A signed JWT
         *
         * @uses jsonEncode
         * @uses urlsafeB64Encode
         */
        public static function encode($payload, $key, $alg = 'HS256', $keyId = null, $head = null)
        {
        }
        /**
         * Sign a string with a given key and algorithm.
         *
         * @param string            $msg    The message to sign
         * @param string|resource   $key    The secret key
         * @param string            $alg    The signing algorithm.
         *                                  Supported algorithms are 'ES256', 'HS256', 'HS384', 'HS512', 'RS256', 'RS384', and 'RS512'
         *
         * @return string An encrypted message
         *
         * @throws DomainException Unsupported algorithm was specified
         */
        public static function sign($msg, $key, $alg = 'HS256')
        {
        }
        /**
         * Verify a signature with the message, key and method. Not all methods
         * are symmetric, so we must have a separate verify and sign method.
         *
         * @param string            $msg        The original message (header and body)
         * @param string            $signature  The original signature
         * @param string|resource   $key        For HS*, a string key works. for RS*, must be a resource of an openssl public key
         * @param string            $alg        The algorithm
         *
         * @return bool
         *
         * @throws DomainException Invalid Algorithm or OpenSSL failure
         */
        private static function verify($msg, $signature, $key, $alg)
        {
        }
        /**
         * Decode a JSON string into a PHP object.
         *
         * @param string $input JSON string
         *
         * @return object Object representation of JSON string
         *
         * @throws DomainException Provided string was invalid JSON
         */
        public static function jsonDecode($input)
        {
        }
        /**
         * Encode a PHP object into a JSON string.
         *
         * @param object|array $input A PHP object or array
         *
         * @return string JSON representation of the PHP object or array
         *
         * @throws DomainException Provided object could not be encoded to valid JSON
         */
        public static function jsonEncode($input)
        {
        }
        /**
         * Decode a string with URL-safe Base64.
         *
         * @param string $input A Base64 encoded string
         *
         * @return string A decoded string
         */
        public static function urlsafeB64Decode($input)
        {
        }
        /**
         * Encode a string with URL-safe Base64.
         *
         * @param string $input The string you want encoded
         *
         * @return string The base64 encode of what you passed in
         */
        public static function urlsafeB64Encode($input)
        {
        }
        /**
         * Helper method to create a JSON error.
         *
         * @param int $errno An error number from json_last_error()
         *
         * @return void
         */
        private static function handleJsonError($errno)
        {
        }
        /**
         * Get the number of bytes in cryptographic strings.
         *
         * @param string $str
         *
         * @return int
         */
        private static function safeStrlen($str)
        {
        }
        /**
         * Convert an ECDSA signature to an ASN.1 DER sequence
         *
         * @param   string $sig The ECDSA signature to convert
         * @return  string The encoded DER object
         */
        private static function signatureToDER($sig)
        {
        }
        /**
         * Encodes a value into a DER object.
         *
         * @param   int     $type DER tag
         * @param   string  $value the value to encode
         * @return  string  the encoded object
         */
        private static function encodeDER($type, $value)
        {
        }
        /**
         * Encodes signature from a DER object.
         *
         * @param   string  $der binary signature in DER format
         * @param   int     $keySize the nubmer of bits in the key
         * @return  string  the signature
         */
        private static function signatureFromDER($der, $keySize)
        {
        }
        /**
         * Reads binary DER-encoded data and decodes into a single object
         *
         * @param string $der the binary data in DER format
         * @param int $offset the offset of the data stream containing the object
         * to decode
         * @return array [$offset, $data] the new offset and the decoded object
         */
        private static function readDER($der, $offset = 0)
        {
        }
    }
}
namespace Bitrix\Main {
    class ModuleManager
    {
        protected static $installedModules = array();
        public static function getInstalledModules()
        {
        }
        public static function getVersion($moduleName)
        {
        }
        public static function isModuleInstalled($moduleName)
        {
        }
        public static function delete($moduleName)
        {
        }
        public static function add($moduleName)
        {
        }
        public static function registerModule($moduleName)
        {
        }
        public static function unRegisterModule($moduleName)
        {
        }
    }
}
namespace Bitrix\Main\IO {
    /**
     * This exception is thrown when an I/O error occurs.
     */
    class IoException extends \Bitrix\Main\SystemException
    {
        protected $path;
        /**
         * Creates new exception object.
         *
         * @param string $message Exception message
         * @param string $path Path that generated exception.
         * @param \Exception $previous
         */
        public function __construct($message = "", $path = "", \Exception $previous = null)
        {
        }
        /**
         * Path that generated exception.
         *
         * @return string
         */
        public function getPath()
        {
        }
    }
    class InvalidPathException extends \Bitrix\Main\IO\IoException
    {
        public function __construct($path, \Exception $previous = null)
        {
        }
    }
    class FileNotFoundException extends \Bitrix\Main\IO\IoException
    {
        public function __construct($path, \Exception $previous = null)
        {
        }
    }
    class FileDeleteException extends \Bitrix\Main\IO\IoException
    {
        public function __construct($path, \Exception $previous = null)
        {
        }
    }
    class FileOpenException extends \Bitrix\Main\IO\IoException
    {
        public function __construct($path, \Exception $previous = null)
        {
        }
    }
    class FileNotOpenedException extends \Bitrix\Main\IO\IoException
    {
        public function __construct($path, \Exception $previous = null)
        {
        }
    }
    class FileStreamOpenMode
    {
        const READ = "r";
        const WRITE = "w";
        const APPEND = "a";
    }
}
namespace Bitrix\Main\Component {
    class ParameterSigner
    {
        /**
         * @param string $componentName
         * @param array $parameters
         *
         * @return string
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public static function signParameters($componentName, $parameters)
        {
        }
        /**
         * @param string $componentName
         * @param string $signedParameters
         *
         * @return array
         * @throws Security\Sign\BadSignatureException
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public static function unsignParameters($componentName, $signedParameters)
        {
        }
        private static function unserialize(string $str, string $componentName)
        {
        }
        protected static function refineComponentName($componentName)
        {
        }
    }
}
namespace Bitrix\Main\ORM\Annotations {
    /**
     * Bitrix Framework
     * @package    bitrix
     * @subpackage main
     * @copyright  2001-2018 Bitrix
     */
    trait AnnotationTrait
    {
        public static function annotateEntity(\Bitrix\Main\ORM\Entity $entity)
        {
        }
        public static function annotateScalarField(\Bitrix\Main\ORM\Fields\ScalarField $field)
        {
        }
        public static function annotateUserType(\Bitrix\Main\ORM\Fields\UserTypeField $field)
        {
        }
        public static function annotateExpression(\Bitrix\Main\ORM\Fields\ExpressionField $field)
        {
        }
        public static function annotateReference(\Bitrix\Main\ORM\Fields\Relations\Reference $field)
        {
        }
        public static function annotateOneToMany(\Bitrix\Main\ORM\Fields\Relations\OneToMany $field)
        {
        }
        public static function annotateManyToMany(\Bitrix\Main\ORM\Fields\Relations\ManyToMany $field)
        {
        }
        public static function tryToFindEntity($entityClass)
        {
        }
        protected static function getFieldNameCamelCase($fieldName)
        {
        }
    }
}
namespace Bitrix\Main\Cli {
    /**
     * @package    bitrix
     * @subpackage main
     */
    class OrmAnnotateCommand extends \Symfony\Component\Console\Command\Command
    {
        use \Bitrix\Main\ORM\Annotations\AnnotationTrait;
        protected $debug = 0;
        protected $modulesScanned = [];
        protected $filesIncluded = 0;
        /** @var array Filled by handleClasses() */
        protected $entitiesFound = [];
        protected $excludedFiles = ['main/lib/text/string.php', 'main/lib/composite/compatibility/aliases.php', 'sale/lib/delivery/extra_services/string.php'];
        const ANNOTATION_MARKER = 'ORMENTITYANNOTATION';
        protected function configure()
        {
        }
        protected function execute(\Symfony\Component\Console\Input\InputInterface $input, \Symfony\Component\Console\Output\OutputInterface $output)
        {
        }
        protected function getDirsToScan($inputModules, \Symfony\Component\Console\Input\InputInterface $input, \Symfony\Component\Console\Output\OutputInterface $output)
        {
        }
        protected function registerFallbackAutoload()
        {
        }
        protected function scanDir($dir, \Symfony\Component\Console\Input\InputInterface $input, \Symfony\Component\Console\Output\OutputInterface $output)
        {
        }
        protected function handleClasses($classes, \Symfony\Component\Console\Input\InputInterface $input, \Symfony\Component\Console\Output\OutputInterface $output)
        {
        }
        protected function getDeclaredClassesDiff()
        {
        }
        /**
         * Builds annotation for classes outside regular filesystem (e.g. iblock, hlblock)
         *
         * @param array           $inputModules
         * @param InputInterface  $input
         * @param OutputInterface $output
         */
        protected function handleVirtualClasses($inputModules, \Symfony\Component\Console\Input\InputInterface $input, \Symfony\Component\Console\Output\OutputInterface $output)
        {
        }
        /**
         * @deprecated
         *
         * @param $field
         *
         * @return string
         */
        public static function scalarFieldToTypeHint($field)
        {
        }
        protected function debug(\Symfony\Component\Console\Output\OutputInterface $output, $message)
        {
        }
    }
}
namespace Bitrix\Main\PhoneNumber\Tools {
    abstract class XmlParser
    {
        /** @var XmlField[] */
        protected $attributesMapping = array();
        protected $properties = array();
        public function __construct()
        {
        }
        /**
         * @param \XMLReader $xmlReader
         * @param string $path
         * @return array
         */
        public function parseElement(\XMLReader $xmlReader, $path)
        {
        }
        protected function init()
        {
        }
        /**
         * @param \XMLReader $xmlReader
         * @param string $parentPath XPath to the element.
         */
        protected function walkDomTree(\XMLReader $xmlReader, $parentPath)
        {
        }
        protected function parseAttributes(\XMLReader $xmlReader, $parentPath)
        {
        }
        /**
         * @param $path
         * @return XmlField;
         */
        protected function getField($path)
        {
        }
        protected function getElementValue(\XMLReader $xmlReader, $path, \Bitrix\Main\PhoneNumber\Tools\XmlField $field)
        {
        }
        /**
         * Function should return array
         * @return XmlField[]
         */
        public abstract function getMap();
    }
}
namespace Bitrix\Main\PhoneNumber\Tools\GoogleMetadata {
    class Root extends \Bitrix\Main\PhoneNumber\Tools\XmlParser
    {
        public function getMap()
        {
        }
    }
    class Territories extends \Bitrix\Main\PhoneNumber\Tools\XmlParser
    {
        public function getMap()
        {
        }
    }
    class Territory extends \Bitrix\Main\PhoneNumber\Tools\XmlParser
    {
        public function getMap()
        {
        }
    }
    class References extends \Bitrix\Main\PhoneNumber\Tools\XmlParser
    {
        public function getMap()
        {
        }
    }
    class GeneralDesc extends \Bitrix\Main\PhoneNumber\Tools\XmlParser
    {
        public function getMap()
        {
        }
    }
    class NumberFormatDesc extends \Bitrix\Main\PhoneNumber\Tools\XmlParser
    {
        protected $fieldName;
        public function __construct($fieldName)
        {
        }
        public function getMap()
        {
        }
    }
    class NumberFormat extends \Bitrix\Main\PhoneNumber\Tools\XmlParser
    {
        public function getMap()
        {
        }
    }
}
namespace Bitrix\Main\PhoneNumber\Tools {
    class XmlField
    {
        /** @var string */
        protected $name = '';
        /** @var bool */
        protected $multiple = false;
        /** @var \Bitrix\Main\PhoneNumber\Tools\XmlParser */
        protected $subParser = null;
        public function __construct($name, array $options = array())
        {
        }
        public function getName()
        {
        }
        public function isMultiple()
        {
        }
        /**
         * @return \Bitrix\PropertiesService\XmlParser|null
         */
        public function getSubParser()
        {
        }
        /**
         * Modifier for the field value.
         *
         * @param mixed $value
         * @return mixed
         */
        public function decodeValue($value)
        {
        }
        public static function getClass()
        {
        }
    }
    class BoolField extends \Bitrix\Main\PhoneNumber\Tools\XmlField
    {
        public function decodeValue($value)
        {
        }
    }
    class RegexField extends \Bitrix\Main\PhoneNumber\Tools\XmlField
    {
        public function decodeValue($value)
        {
        }
        public static function validateRegex($regex, $removeWhitespace = false)
        {
        }
    }
    class MetadataBuilder
    {
        protected $fileName;
        protected $parser;
        public function __construct($fileName)
        {
        }
        public function build()
        {
        }
    }
    class PossibleLengthField extends \Bitrix\Main\PhoneNumber\Tools\XmlField
    {
        public function decodeValue($value)
        {
        }
        /**
         * Parses possible length field and returns corresponding array of possible lengths.
         * @param string $possibleLength Something like "3,5,7", or "[7-9]", or  "6,[8-10]"
         * @return array Returns array of possible lengths. I.e. [3, 5, 7], or [7, 8, 9], or [6, 8, 10].
         */
        public static function parsePossibleLength($possibleLength)
        {
        }
    }
}
namespace Bitrix\Main\PhoneNumber {
    class Parser
    {
        const MAX_LENGTH_COUNTRY_CODE = 3;
        // The maximum length of the country calling code.
        const MIN_LENGTH_FOR_NSN = 2;
        // The minimum length of the national significant number.
        const MAX_LENGTH_FOR_NSN = 17;
        // The ITU says the maximum length should be 15, but one can find longer numbers in Germany.
        /* We don't allow input strings for parsing to be longer than 250 chars. This prevents malicious input from consuming CPU.*/
        const MAX_INPUT_STRING_LENGTH = 250;
        protected $plusChar = '+';
        /* Digits accepted in phone numbers (ascii, fullwidth, arabic-indic, and eastern arabic digits). */
        protected $validDigits = '0-9';
        protected $dashes = '-';
        protected $slashes = '\\/';
        protected $dot = '.';
        protected $whitespace = '\\s';
        protected $brackets = '()\\[\\]';
        protected $tildes = '~';
        protected $extensionSeparators = ';#';
        protected $extensionSymbols = ',';
        protected $phoneNumberStartPattern;
        protected $afterPhoneNumberEndPattern;
        protected $minLengthPhoneNumberPattern;
        protected $validPunctuation;
        protected $validPhoneNumber;
        protected $validPhoneNumberPattern;
        const DEFAULT_COUNTRY_OPTION = 'phone_number_default_country';
        /** @var static */
        protected static $instance = null;
        /**
         * This class is a singleton and should not be constructed directly.
         * @see HtmlParser::getInstance
         */
        protected function __construct()
        {
        }
        /**
         * Returns instance of Parser.
         * @return Parser
         */
        public static function getInstance()
        {
        }
        /**
         * Returns two-letter default country code, used for phone number parsing.
         * @return string
         */
        public static function getDefaultCountry()
        {
        }
        public static function getUserDefaultCountry()
        {
        }
        /**
         * Tries to detect default country for parsing,
         * @return string
         */
        public static function detectCountry()
        {
        }
        /**
         * Return pattern string suitable to detect phone number in some string.
         * @return string
         */
        public function getValidNumberPattern()
        {
        }
        /**
         * Parses provided phone number.
         * @param string $phoneNumber Phone number to be parsed.
         * @param string $defaultCountry 2-symbol country code.
         * @return PhoneNumber
         */
        public function parse($phoneNumber, $defaultCountry = '')
        {
        }
        /**
         * Strips and returns extension and extension separator from the specified phone number.
         * @param string $phoneNumber Phone number to be stripped.
         * @return [$extenstionSeparator, $extension]
         */
        public function stripExtension(&$phoneNumber)
        {
        }
        /**
         * Extracts phone number from the input string.
         * @param string $phoneNumber Phone number.
         * @return string
         */
        protected function extractFormattedPhoneNumber($phoneNumber)
        {
        }
        /**
         * Returns true if the specified string matches general phone number pattern.
         * @param string $phoneNumber Phone number.
         * @return bool
         */
        protected function isViablePhoneNumber($phoneNumber)
        {
        }
        /**
         * Returns country code and local number for the provided international phone number.
         * @param string $phoneNumber Phone number in international format.
         * @return array|false
         */
        protected function parsePhoneNumberAndCountryPhoneCode($phoneNumber)
        {
        }
        /**
         * Strips letters from the phone number, except for the leading plus character.
         * @param string $phoneNumber Phone number.
         * @return string
         */
        protected function normalizePhoneNumber($phoneNumber)
        {
        }
        /**
         * Returns metadata for the first country with specified $countryCode.
         * @param string $countryCode Phone code of the country
         * @return array | false
         */
        protected function getMetadataByCountryCode($countryCode)
        {
        }
        /**
         * Returns 2-symbol country code by localNumber.
         * @param string $countryCode Phone code of the country.
         * @param string $localNumber Local phone number.
         * @return string|false
         */
        protected function findCountry($countryCode, $localNumber)
        {
        }
        /**
         * Returns type of the specified number.
         * @param string $localNumber Local phone number.
         * @param string $country 2-symbol country code.
         * @return string|false
         */
        protected function getNumberType($localNumber, $country)
        {
        }
        /**
         * Strips national prefix from the specified phone number. Returns true if national prefix
         * was stripped and false otherwise.
         * @param string $phoneNumber Local phone number.
         * @param array $countryMetadata Country metadata.
         * @return string
         */
        protected static function stripNationalPrefix(&$phoneNumber, $countryMetadata)
        {
        }
        /**
         * Strips country code from the number. Returns true if country code was stripped or false otherwise.
         * @param string $phoneNumber Phone number.
         * @param array $countryMetadata Country metadata.
         * @return bool
         */
        protected static function stripCountryCode(&$phoneNumber, $countryMetadata)
        {
        }
        protected function getCountriesByCode($countryCode)
        {
        }
        protected function getCountryMetadata($country)
        {
        }
        /**
         * Strips all letters from the string.
         * @param string $str Input string.
         * @return string
         */
        protected static function stripLetters($str)
        {
        }
    }
    class Formatter
    {
        public static function format(\Bitrix\Main\PhoneNumber\PhoneNumber $number, $formatType, $forceNationalPrefix = false)
        {
        }
        /**
         * Formats number using original format. No digit or significant char should be added or removed.
         * @param PhoneNumber $number Phone number.
         * @return string
         */
        public static function formatOriginal(\Bitrix\Main\PhoneNumber\PhoneNumber $number)
        {
        }
        protected static function selectFormatForNumber(\Bitrix\Main\PhoneNumber\PhoneNumber $number, $formatType, $countryMetadata)
        {
        }
        protected static function selectOriginalFormatForNumber(\Bitrix\Main\PhoneNumber\PhoneNumber $number)
        {
        }
        /**
         * Checks that number starts with specified leading digits regex. Return array of matches if matched or false otherwise
         * @param string $phoneNumber Phone number.
         * @param string|array $leadingDigits Leading digits to check (one pattern or array of patterns).
         * @return array|false
         */
        protected static function matchLeadingDigits($phoneNumber, $leadingDigits)
        {
        }
        /**
         * @param string $nationalNumber
         * @param string $formatType
         * @param array $countryMetadata
         * @param mixed $format
         * @param bool $forceNationalPrefix
         * @return mixed
         */
        protected static function formatNationalNumber($nationalNumber, $formatType, $countryMetadata, $format, $forceNationalPrefix)
        {
        }
        protected static function formatNationalNumberWithOriginalFormat(\Bitrix\Main\PhoneNumber\PhoneNumber $number, $format)
        {
        }
        protected static function getNationalPrefix($countryMetadata, $stripNonDigits)
        {
        }
        protected static function getNationalPrefixFormattingRule($format, $countryMetadata)
        {
        }
        protected static function getNationalPrefixOptional($countryMetadata, $format)
        {
        }
        /**
         * Check if rawInput, which is assumed to be in the national format, has a national prefix. The
         * national prefix is assumed to be in digits-only form.
         * @param string $phoneNumber
         * @param string $nationalPrefix
         * @param array $countryMetadata
         * @return bool
         */
        protected static function numberContainsNationalPrefix($phoneNumber, $nationalPrefix, $countryMetadata)
        {
        }
        /**
         * Returns array of available for country phone number formats.
         * @param array $countryMetadata
         * @return array
         */
        protected static function getAvailableFormats($countryMetadata)
        {
        }
        /**
         * National prefix is supported by the format if:
         * 1.    Format and country metadata do not have nationalPrefixFormattingRule.
         * 2. OR Format or country metadata contains nationalPrefixFormattingRule and this formatting rule contains "$NP"
         * @param array $format
         * @param array $countryMetadata
         * @returns {boolean}
         * @private
         */
        protected static function _isNationalPrefixSupported($format, $countryMetadata)
        {
        }
        protected static function stripNonNumbers($string)
        {
        }
    }
    /**
     * Formatter for invalid short numbers, like 32-12-43, just to make them look pretty.
     * @package Bitrix\Main\PhoneNumber
     */
    class ShortNumberFormatter
    {
        protected static $templates = [3 => 'x-xx', 4 => 'xx-xx', 5 => 'x-xx-xx', 6 => 'xx-xx-xx', 7 => 'xxx-xx-xx'];
        /**
         * Pretty prints some invalid short number.
         * @param PhoneNumber $phoneNumber Phone number.
         * @return string
         */
        public static function format(\Bitrix\Main\PhoneNumber\PhoneNumber $phoneNumber)
        {
        }
        /**
         * Return true if the phone number could be formatted using this formatter and false otherwise.
         * @param PhoneNumber $phoneNumber Phone number.
         * @return bool
         */
        public static function isApplicable(\Bitrix\Main\PhoneNumber\PhoneNumber $phoneNumber)
        {
        }
    }
    class MetadataProvider
    {
        protected $metadata;
        protected $codeToCountries;
        protected static $instance;
        const PARSED_METADATA_FILENAME = 'metadata.php';
        protected function __construct()
        {
        }
        /**
         * Returns instance of MetadataProvider.
         * @return MetadataProvider
         */
        public static function getInstance()
        {
        }
        /**
         * Returns array of 2-letter country codes of the countries, sharing the specified phone country code.
         * @param string $countryCode Phone country code.
         * @return array
         */
        public function getCountriesByCode($countryCode)
        {
        }
        public function isValidCountryCode($countryCode)
        {
        }
        /**
         * Returns metadata record for the country.
         * @param string $country 2-letter country code.
         * @return array|false
         */
        public function getCountryMetadata($country)
        {
        }
        public function toArray()
        {
        }
        /**
         * Parses google metadata from the PhoneNumberMetadata.xml
         * @see https://github.com/googlei18n/libphonenumber/blob/master/resources/
         * @params string $fileName Metadata file.
         * @return array Returns parsed metadata.
         */
        public static function parseGoogleMetadata($fileName)
        {
        }
        /**
         * Loads parsed metadata.
         * @return void
         * @throws SystemException
         */
        protected function loadMetadata()
        {
        }
    }
    class PhoneNumber
    {
        protected $rawNumber;
        protected $country;
        protected $valid = false;
        protected $countryCode;
        protected $nationalNumber;
        protected $nationalPrefix;
        protected $hasPlus = false;
        protected $numberType;
        protected $extension = '';
        protected $extensionSeparator;
        protected $international = false;
        public function format($formatType = '', $forceNationalPrefix = false)
        {
        }
        /**
         * @return string
         */
        public function getRawNumber()
        {
        }
        /**
         * @param string $rawNumber
         */
        public function setRawNumber($rawNumber)
        {
        }
        /**
         * @return mixed
         */
        public function getCountry()
        {
        }
        /**
         * @param mixed $country
         */
        public function setCountry($country)
        {
        }
        /**
         * @return string
         */
        public function getNationalNumber()
        {
        }
        /**
         * @param string $nationalNumber
         */
        public function setNationalNumber($nationalNumber)
        {
        }
        /**
         * @return mixed
         */
        public function getNumberType()
        {
        }
        /**
         * @param mixed $numberType
         */
        public function setNumberType($numberType)
        {
        }
        /**
         * @return bool
         */
        public function isValid()
        {
        }
        /**
         * @param bool $valid
         */
        public function setValid($valid)
        {
        }
        /**
         * @param string $countryCode
         */
        public function setCountryCode($countryCode)
        {
        }
        public function getCountryCode()
        {
        }
        public function hasExtension()
        {
        }
        /**
         * @return string
         */
        public function getExtension()
        {
        }
        /**
         * @param string $extension
         */
        public function setExtension($extension)
        {
        }
        /**
         * @return mixed
         */
        public function getExtensionSeparator()
        {
        }
        /**
         * @param mixed $extensionSeparator
         */
        public function setExtensionSeparator($extensionSeparator)
        {
        }
        /**
         * @return bool
         */
        public function isInternational()
        {
        }
        /**
         * @param bool $international
         */
        public function setInternational($international)
        {
        }
        /**
         * @return string
         */
        public function getNationalPrefix()
        {
        }
        /**
         * @param string $nationalPrefix
         */
        public function setNationalPrefix($nationalPrefix)
        {
        }
        /**
         * @return bool
         */
        public function hasPlus()
        {
        }
        /**
         * @param bool $hasPlus
         */
        public function setHasPlus($hasPlus)
        {
        }
    }
    class Format
    {
        const E164 = 'E.164';
        const INTERNATIONAL = 'International';
        const NATIONAL = 'National';
    }
}
namespace Bitrix\Main\UrlPreview {
    abstract class Parser
    {
        /**
         * Method should parse document and fill document's metadata properties that were left unfilled by
         * previous parsers in chain.
         *
         * @param HtmlDocument $document
         */
        public abstract function handle(\Bitrix\Main\UrlPreview\HtmlDocument $document);
    }
    class HtmlDocument
    {
        const MAX_IMAGES = 4;
        const MAX_IMAGE_URL_LENGTH = 255;
        /** @var \Bitrix\Main\Web\Uri */
        protected $uri;
        /** @var string */
        protected $html;
        /** @var  string */
        protected $htmlEncoding;
        /** @var array
         * Allowed keys so far: TITLE, DESCRIPTION, IMAGE
         */
        protected $metadata = array("TITLE" => null, "DESCRIPTION" => null, "IMAGE" => null, "EMBED" => null);
        /** @var array  */
        protected $metaElements = array();
        /** @var array */
        protected $linkElements = array();
        /**
         * HtmlDocument constructor.
         *
         * @param string $html Document HTML code.
         * @param Uri $uri Document's URL.
         */
        public function __construct($html, \Bitrix\Main\Web\Uri $uri)
        {
        }
        /**
         * Returns Uri of the document
         *
         * @return Uri
         */
        public function getUri()
        {
        }
        /**
         * Returns full html code of the document
         *
         * @return string
         */
        public function getHtml()
        {
        }
        /**
         * Returns true if metadata is complete
         *
         * @return bool
         */
        public function checkMetadata()
        {
        }
        /**
         * Returns metadata, extracted from the page. Should return an array with required key TITLE
         * and optional keys DESCRIPTION and URL
         *
         * @return array|false
         */
        public function getMetadata()
        {
        }
        /**
         * Returns document's TITLE metadata
         *
         * @return string
         */
        public function getTitle()
        {
        }
        /**
         * Sets document's TITLE metadata
         *
         * @param string $title Title.
         * @return void
         */
        public function setTitle($title)
        {
        }
        /**
         * @return string
         */
        public function getDescription()
        {
        }
        /**
         * Sets document's DESCRIPTION metadata
         *
         * @param string $description Description.
         * @return void
         */
        public function setDescription($description)
        {
        }
        /**
         * @return string Main image's url.
         */
        public function getImage()
        {
        }
        /**
         * Sets document's IMAGE metadata
         *
         * @param string $image Main image's url.
         * @return void
         */
        public function setImage($image)
        {
        }
        /**
         * @return string HTML code to embed url to the page.
         */
        public function getEmdbed()
        {
        }
        /**
         * Sets document's EMBED metadata, if site is allowed to be embedded.
         *
         * @param string $embed HTML code for embedding object to the page.
         * @return void
         */
        public function setEmbed($embed)
        {
        }
        /**
         * Sets additional metadata field.
         * @param string $fieldName Name of the field. Expected values:
         * <li>FAVICON: $fieldValue must contain the url of document's favicon
         * <li>IMAGES: $fieldValue must be the array of urls of images, detected in the document
         * <li>In other cases, $fieldValue must contain plain text.
         * @param string $fieldValue Field value.
         * @return void
         */
        public function setExtraField($fieldName, $fieldValue)
        {
        }
        /**
         * Returns value of the additional metadata field
         * @param string $fieldName Name of the field.
         * @return string|null Value of the additional metadata field.
         */
        public function getExtraField($fieldName)
        {
        }
        /**
         * Set HTML document encoding
         *
         * @param string $encoding Document's encoding.
         * @return void
         */
        public function setEncoding($encoding)
        {
        }
        /**
         * @return string Document encoding.
         */
        public function getEncoding()
        {
        }
        /**
         * Auto-detect and set HTML document encoding
         *
         * @return string Detected encoding.
         */
        public function detectEncoding()
        {
        }
        /**
         * Parses html content for attributes of the specified elements and fills $destination array with found attributes
         *
         * @param string $tagName Name of the tag.
         * @return array
         */
        public function extractElementAttributes($tagName)
        {
        }
        /**
         * Returns value of the content attribute
         *
         * @param string $name Value of a name or property attribute.
         * @return string
         * */
        public function getMetaContent($name)
        {
        }
        /**
         * Returns value of the href attribute.
         *
         * @param string $rel Value of the rel attribute.
         * @return string
         */
        public function getLinkHref($rel)
        {
        }
        /**
         * Sanitizes string and converts it to the site's charset.
         *
         * @param string $str Input string.
         * @return string
         */
        protected function filterString($str)
        {
        }
        /**
         * Converts relative url to the absolute, considering document's url.
         * @param string $uri Relative url.
         * @return null|string Absolute url or null if relative url contains errors.
         */
        protected function convertRelativeUriToAbsolute($uri)
        {
        }
        /**
         * Transforms image's URL from relative to absolute and checks length of the resulting URL.
         * @param string $url Image's URL.
         * @return string|null Absolute image's URL, or null if URL is incorrect or too long.
         */
        protected function normalizeImageUrl($url)
        {
        }
        /**
         * Validates mime-type of the image
         * @param string $url Absolute image's URL.
         * @return bool
         */
        protected function validateImage($url)
        {
        }
        /**
         * Returns true if document's site is allowed to be embedded.
         * @return bool
         */
        protected function isEmbeddingAllowed()
        {
        }
    }
}
namespace Bitrix\Main\UrlPreview\Parser {
    class OpenGraph extends \Bitrix\Main\UrlPreview\Parser
    {
        /**
         * Parses HTML documents OpenGraph metadata
         *
         * @param HtmlDocument $document HTML document to be parsed.
         * @return void
         */
        public function handle(\Bitrix\Main\UrlPreview\HtmlDocument $document)
        {
        }
        protected function parseVideoData(\Bitrix\Main\UrlPreview\HtmlDocument $document)
        {
        }
    }
    /**
     * Class AppleMaps
     * @package Bitrix\Main\UrlPreview\Parser
     */
    class AppleMaps extends \Bitrix\Main\UrlPreview\Parser
    {
        /**
         * Parses HTML document's meta tags, and fills document's metadata.
         *
         * @param HtmlDocument $document HTML document to scan for metadata.
         * @return void
         */
        public function handle(\Bitrix\Main\UrlPreview\HtmlDocument $document) : void
        {
        }
    }
    class SchemaOrg extends \Bitrix\Main\UrlPreview\Parser
    {
        /** @var  \DOMDocument */
        protected $dom;
        /** @var  array */
        protected $schemaMetadata = array();
        protected $documentEncoding;
        /**
         * Parses HTML document's Schema.org metadata.
         *
         * @param HtmlDocument $document
         */
        public function handle(\Bitrix\Main\UrlPreview\HtmlDocument $document)
        {
        }
        /**
         * @return bool
         */
        protected function getSchemaMetadata()
        {
        }
        /**
         * @param \DOMElement $currentNode
         * @param int $currentDepth
         */
        protected function walkDomTree(\DOMElement $currentNode, $currentDepth = 0)
        {
        }
        /**
         * @param \DOMElement $node
         * @return null|string
         */
        protected function getSchemaPropertyValue(\DOMElement $node)
        {
        }
        /**
         * @param \DOMElement $node
         */
        protected function handleNode(\DOMElement $node)
        {
        }
        /**
         * @param \DOMElement $element
         * @return string
         */
        protected function getNodeInnerHtml(\DOMElement $element)
        {
        }
        /**
         * @param HtmlDocument $document
         * @return bool
         */
        protected function initializeDom(\Bitrix\Main\UrlPreview\HtmlDocument $document)
        {
        }
    }
    class Oembed extends \Bitrix\Main\UrlPreview\Parser
    {
        const OEMBED_TYPE_XML = "text/xml+oembed";
        const OEMBED_TYPE_JSON = "application/json+oembed";
        /** @var string Possible values: (json|xml) */
        protected $metadataType;
        /** @var string */
        protected $metadataUrl;
        /** @var  string */
        protected $metadataEncoding;
        /**
         * Downloads and parses HTML's document metadata, formatted with oEmbed standard.
         *
         * @param HtmlDocument $document HTML document.
         * @param HttpClient|null $httpClient
         */
        public function handle(\Bitrix\Main\UrlPreview\HtmlDocument $document, \Bitrix\Main\Web\HttpClient $httpClient = null)
        {
        }
        /**
         * @param HtmlDocument $document
         * @return bool
         */
        protected function detectOembedLink(\Bitrix\Main\UrlPreview\HtmlDocument $document)
        {
        }
        /**
         * @param string $rawMetadata
         * @return array|false
         */
        protected function parseMetadata($rawMetadata)
        {
        }
        protected function parseJsonMetadata($rawMetadata)
        {
        }
        /**
         * @param string $rawMetadata
         * @return array|false
         */
        protected function parseXmlMetadata($rawMetadata)
        {
        }
        protected function getRawMetaData(\Bitrix\Main\Web\HttpClient $httpClient = null)
        {
        }
    }
    class Instagram extends \Bitrix\Main\UrlPreview\Parser\Oembed
    {
        protected function detectOembedLink(\Bitrix\Main\UrlPreview\HtmlDocument $document)
        {
        }
    }
    class Vk extends \Bitrix\Main\UrlPreview\Parser\OpenGraph
    {
        public function handle(\Bitrix\Main\UrlPreview\HtmlDocument $document)
        {
        }
    }
    class Common extends \Bitrix\Main\UrlPreview\Parser
    {
        const MIN_IMAGE_HEIGHT = 100;
        const MIN_IMAGE_WIDTH = 100;
        /** @var array img elements, discovered in the document */
        protected $imgElements = array();
        /**
         * Parses HTML document's meta tags, and fills document's metadata.
         *
         * @param HtmlDocument $document HTML document to scan for metadata.
         * @return void
         */
        public function handle(\Bitrix\Main\UrlPreview\HtmlDocument $document)
        {
        }
        /**
         * @param HtmlDocument $document HTML document to scan for title.
         * @return string
         */
        protected function getTitle(\Bitrix\Main\UrlPreview\HtmlDocument $document)
        {
        }
        /**
         * @param HtmlDocument $document
         * @return string
         */
        protected function getImage(\Bitrix\Main\UrlPreview\HtmlDocument $document)
        {
        }
        /**
         * Iterates through img elements, and return array of urls of images, which size is greater then 100pxx100px
         * @return array
         */
        protected function getImageCandidates()
        {
        }
        /**
         * Returns size of the img element
         * @param array $imageAttributes Array of the attributes of the img tag.
         * @return array Returns array with keys width and height.
         */
        protected function getImageDimensions(array $imageAttributes)
        {
        }
        /**
         * Parse one <video> tag and try to get valid information off it.
         *
         * @param string $html - one <video> from the document.
         * @return array
         */
        protected function getVideoInfo($html = '')
        {
        }
        /**
         * Returns true if $type is a valid video mime-type.
         *
         * @param string $type
         * @return bool
         */
        protected function isValidVideoMimeType($type = '')
        {
        }
    }
    class Facebook extends \Bitrix\Main\UrlPreview\Parser\Oembed
    {
        public function handle(\Bitrix\Main\UrlPreview\HtmlDocument $document, \Bitrix\Main\Web\HttpClient $httpClient = null)
        {
        }
    }
}
namespace Bitrix\Main\UrlPreview {
    class Router
    {
        const CACHE_ID = 'UrlPreviewRouteCache';
        const CACHE_TTL = 315360000;
        /** @var array
         * Allowed keys: ID, MODULE, CLASS, BUILD_METHOD, CHECK_METHOD, PARAMETERS
         */
        protected static $routeTable = array();
        /** @var \Bitrix\Main\Data\ManagedCache */
        protected static $managedCache;
        /** @var bool */
        protected static $initialized = false;
        /**
         * Adds, or, if route already exists, changes route handling method.
         * @param string $route Route URL template.
         * Route parameters should be enclosed in hash symbols, like '/user/#userId#/'.
         * @param string $handlerModule Route handler module.
         * @param string $handlerClass Route handler class should implement methods:
         * <ul>
         * 		<li>buildPreview($params): string. Method must accept array of parameters and return rendered preview
         * 		<li>checkUserReadAccess($params): boolean. Method must accept array of parameters. Method must return true if
         * 			currently logged in user has read access to the entity; false otherwise.
         * 		<li>getCacheTag(): string. Method must return cache tag for the entity.
         * </ul>.
         * @param array $handlerParameters Array of parameters, passed to the handler methods.
         * Will be passed as the argument when calling handler's method for building preview or checking access.
         * Array values may contain variables referencing route parameters.
         * e.g. ['userId' => '$userId'].
         * @return void
         * @throws ArgumentException
         */
        public static function setRouteHandler($route, $handlerModule, $handlerClass, array $handlerParameters)
        {
        }
        /**
         * Returns handler for the url
         *
         * @param Uri $uri Absolute or relative URL.
         * @return array|false Handler for this URL if found, false otherwise.
         */
        public static function dispatch(\Bitrix\Main\Web\Uri $uri)
        {
        }
        /**
         * Initializes router and prepares routing table.
         * @return void
         */
        protected static function init()
        {
        }
        /**
         * Persists routing table record in database
         *
         * @param string $route Route URL template.
         * @param bool $isNew True if handler record was not encountered in router cache.
         * @return bool Returns true if route is successfully stored in the database table, and false otherwise.
         */
        protected static function persistRoute($route, $isNew)
        {
        }
        /**
         * Return regexp string for checking URL against route template.
         * @param string $route Route URL template.
         * @return string
         */
        protected static function convertRouteToRegexp($route)
        {
        }
        /**
         * Resets router cache
         * @return void
         */
        public static function invalidateRouteCache()
        {
        }
    }
    class UrlPreview
    {
        const SIGN_SALT = 'url_preview';
        const USER_AGENT = 'Bitrix link preview';
        /** @var int Maximum allowed length of the description. */
        const MAX_DESCRIPTION = 500;
        const IFRAME_MAX_WIDTH = 640;
        const IFRAME_MAX_HEIGHT = 340;
        protected static $trustedHosts = ['youtube.com' => 'youtube.com', 'youtu.be' => 'youtu.be', 'vimeo.com' => 'vimeo.com', 'rutube.ru' => 'rutube.ru', 'facebook.com' => 'facebook.com', 'vk.com' => 'vk.com', 'instagram.com' => 'instagram.com'];
        /**
         * Returns associated metadata for the specified URL
         *
         * @param string $url URL.
         * @param bool $addIfNew Should metadata be fetched and saved, if not found in database.
         * @param bool $reuseExistingMetadata Allow reading of the cached metadata.
         * @return array|false Metadata for the URL if found, or false otherwise.
         */
        public static function getMetadataByUrl($url, $addIfNew = true, $reuseExistingMetadata = true)
        {
        }
        /**
         * Returns html code for url preview
         *
         * @param array $userField Userfield's value.
         * @param array $userFieldParams Userfield's parameters.
         * @param string $cacheTag Cache tag for returned preview (out param).
         * @param bool $edit Show method build preview for editing the userfield.
         * @return string HTML code for the preview.
         */
        public static function showView($userField, $userFieldParams, &$cacheTag, $edit = false)
        {
        }
        /**
         * Returns html code for url preview edit form
         *
         * @param array $userField Userfield's value.
         * @param array $userFieldParams Userfield's parameters.
         * @return string HTML code for the preview.
         */
        public static function showEdit($userField, $userFieldParams)
        {
        }
        /**
         * Checks if metadata for the provided url is already fetched and cached.
         *
         * @param string $url Document's URL.
         * @return bool True if metadata for the url is located in database, false otherwise.
         */
        public static function isUrlCached($url)
        {
        }
        /**
         * If url is remote - returns metadata for this url. If url is local - checks current user access to the entity
         * behind the url, and returns html preview for this entity.
         *
         * @param string $url Document's URL.
         * @param bool $addIfNew Should method fetch and store metadata for the document, if it is not found in database.
         * @params bool $reuseExistingMetadata Allow reading of the cached metadata.
         * @return array|false Metadata for the document, or false if metadata could not be fetched/parsed.
         */
        public static function getMetadataAndHtmlByUrl($url, $addIfNew = true, $reuseExistingMetadata = true)
        {
        }
        /**
         * Returns stored metadata for array of IDs
         *
         * @param array $ids Array of record's IDs.
         * @param bool $checkAccess Should method check current user's access to the internal entities, or not.
         * @params int $userId. Id of the users to check access. If == 0, will check access for current user.
         * @return array|false Array with provided IDs as the keys.
         */
        public static function getMetadataAndHtmlByIds(array $ids, $checkAccess = true, $userId = 0)
        {
        }
        /**
         * Creates temporary record for url
         *
         * @param string $url URL for which temporary record should be created.
         * @return int Temporary record's id.
         */
        public static function reserveIdForUrl($url)
        {
        }
        /**
         * Fetches and stores metadata for temporary record, created by UrlPreview::reserveIdForUrl. If metadata could
         * not be fetched, deletes record.
         * @param int $id Metadata record's id.
         * @param bool $checkAccess Should method check current user's access to the entity, or not.
         * @params int $userId. Id of the users to check access. If == 0, will check access for current user.
         * @return array|false Metadata if fetched, false otherwise.
         */
        public static function resolveTemporaryMetadata($id, $checkAccess = true, $userId = 0)
        {
        }
        /**
         * Returns HTML code for the dynamic (internal url) preview.
         * @param string $url URL of the internal document.
         * @param bool $checkAccess Should method check current user's access to the entity, or not.
         * @params int $userId. Id of the users to check access. If userId == 0, will check access for current user.
         * @return string|false HTML code of the preview, or false if case of any errors (including access denied)/
         */
        public static function getDynamicPreview($url, $checkAccess = true, $userId = 0)
        {
        }
        /**
         * Returns attach for the IM message with the requested internal entity content.
         * @param string $url URL of the internal document.
         * @param bool $checkAccess Should method check current user's access to the entity, or not.
         * @params int $userId. Id of the users to check access. If userId == 0, will check access for current user.
         * @return \CIMMessageParamAttach | false
         */
        public static function getImAttach($url, $checkAccess = true, $userId = 0)
        {
        }
        /**
         * Returns true if current user has read access to the content behind internal url.
         * @param string $url URL of the internal document.
         * @params int $userId. Id of the users to check access. If userId == 0, will check access for current user.
         * @return bool True if current user has read access to the main entity of the document, or false otherwise.
         */
        public static function checkDynamicPreviewAccess($url, $userId = 0)
        {
        }
        /**
         * Sets main image url for the metadata with given id.
         * @param int $id Id of the metadata to set image url.
         * @param string $imageUrl Url of the image.
         * @return bool Returns true in case of successful update, or false otherwise.
         * @throws ArgumentException
         */
        public static function setMetadataImage($id, $imageUrl)
        {
        }
        /**
         * Checks if UrlPreview is enabled in module option
         * @return bool True if UrlPreview is enabled in module options.
         */
        public static function isEnabled()
        {
        }
        /**
         * Signs value using UrlPreview salt
         * @param string $id Unsigned value.
         * @return string Signed value.
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public static function sign($id)
        {
        }
        /**
         * @param string $url URL of the document.
         * @return array|false Fetched metadata or false if metadata was not found, or was invalid.
         */
        protected static function fetchUrlMetadata($url)
        {
        }
        /**
         * Returns true if given URL is local
         *
         * @param Uri $uri Absolute URL to be checked.
         * @return bool
         */
        protected static function isUrlLocal(\Bitrix\Main\Web\Uri $uri)
        {
        }
        /**
         * @param Uri $uri Absolute URL to get metadata for.
         * @return array|false
         */
        protected static function getRemoteUrlMetadata(\Bitrix\Main\Web\Uri $uri)
        {
        }
        /**
         * @param string $url Image's URL.
         * @return integer Saved file identifier
         */
        protected static function saveImage($url)
        {
        }
        /**
         * If provided url does not contain scheme part, tries to add it
         *
         * @param string $url URL to be fixed.
         * @return string Fixed URL.
         */
        protected static function normalizeUrl($url)
        {
        }
        /**
         * Returns value of the option for saving images locally.
         * @return bool True if images should be saved locally.
         */
        protected static function getOptionSaveImages()
        {
        }
        /**
         * Checks if metadata is complete.
         * @param array $metadata HTML document metadata.
         * @return bool True if metadata is complete, false otherwise.
         */
        protected static function validateRemoteMetadata(array $metadata)
        {
        }
        /**
         * Returns id of currently logged user.
         * @return int User's id.
         */
        public static function getCurrentUserId()
        {
        }
        /**
         * Unfolds internal short url. If url is not classified as a short link, returns input $url.
         * @param string $shortUrl Short URL.
         * @return string Full URL.
         */
        protected static function unfoldShortLink($shortUrl)
        {
        }
        /**
         * Returns metadata for downloadable file.
         * @param string $path Path part of the URL.
         * @param HttpHeaders $httpHeaders Server's response headers.
         * @return array|bool Metadata record if mime type and filename were detected, or false otherwise.
         */
        protected static function getFileMetadata($path, \Bitrix\Main\Web\HttpHeaders $httpHeaders)
        {
        }
        /**
         * @param string $ipAddress
         * @return bool
         */
        public static function isIpAddressPrivate($ipAddress)
        {
        }
        /**
         * Returns true if host of $uri is in $trustedHosts list.
         *
         * @param Uri $uri
         * @return bool
         */
        public static function isHostTrusted(\Bitrix\Main\Web\Uri $uri)
        {
        }
        /**
         * Returns video metaData for $url if its host is trusted.
         *
         * @param string $url
         * @return array|false
         */
        public static function fetchVideoMetaData($url)
        {
        }
        /**
         * Returns inner frame url to embed third parties html video players.
         *
         * @param int $id
         * @param string $provider
         * @return bool|string
         */
        public static function getInnerFrameUrl($id, $provider = '')
        {
        }
    }
    class ParserChain
    {
        /** @var array */
        protected static $metadataParsers = array('Bitrix\\Main\\UrlPreview\\Parser\\OpenGraph', 'Bitrix\\Main\\UrlPreview\\Parser\\SchemaOrg', 'Bitrix\\Main\\UrlPreview\\Parser\\Oembed', 'Bitrix\\Main\\UrlPreview\\Parser\\Common');
        /**
         * @var array Key is host, value - parser class name
         */
        protected static $metadataParsersByHost = ['vk.com' => 'Bitrix\\Main\\UrlPreview\\Parser\\Vk', 'www.facebook.com' => 'Bitrix\\Main\\UrlPreview\\Parser\\Facebook', 'www.instagram.com' => 'Bitrix\\Main\\UrlPreview\\Parser\\Instagram', 'maps.apple.com' => 'Bitrix\\Main\\UrlPreview\\Parser\\AppleMaps'];
        /**
         * @param Uri $uri
         * @return array
         */
        protected static function getParserChain(\Bitrix\Main\Web\Uri $uri)
        {
        }
        /**
         * Executes chain of parsers, passing them $document
         *
         * @param HtmlDocument $document
         */
        public static function extractMetadata(\Bitrix\Main\UrlPreview\HtmlDocument $document)
        {
        }
        /**
         * Registers special parser for host
         *
         * @param string $host
         * @param string $parserClassName Parser class must extend \Bitrix\Main\UrlPreview\Parser
         * @throws ArgumentException
         */
        public static function registerMetadataParser($host, $parserClassName)
        {
        }
    }
    class UrlPreviewUserType
    {
        /**
         * Returns url_preview user type description
         *
         * @return array
         */
        public static function getUserTypeDescription()
        {
        }
        /**
         * Return internal type for storing url_preview user type values
         *
         * @param array $userField Array containing parameters of the user field.
         * @return string
         */
        public static function getDBColumnType($userField)
        {
        }
        /**
         * @param array $userField
         * @return array
         */
        public static function prepareSettings($userField)
        {
        }
        /**
         * @param array $userField Array containing parameters of the user field.
         * @param $htmlControl
         * @param $varsFromForm
         * @return string
         */
        public static function getSettingsHTML($userField, $htmlControl, $varsFromForm)
        {
        }
        /**
         * @param array $userField Array containing parameters of the user field.
         * @param array $htmlControl
         * @return string
         */
        public static function getEditFormHTML($userField, $htmlControl)
        {
        }
        /**
         * @param array $userField Array containing parameters of the user field.
         * @param array $htmlControl
         * @return string
         */
        public static function getFilterHTML($userField, $htmlControl)
        {
        }
        /**
         * @param array $userField Array containing parameters of the user field.
         * @param array $htmlControl
         * @return string
         */
        public static function getAdminListViewHTML($userField, $htmlControl)
        {
        }
        /**
         * @param array $userField Array containing parameters of the user field.
         * @param array $htmlControl
         * @return string
         */
        public static function getAdminListEditHTML($userField, $htmlControl)
        {
        }
        /**
         * @param array $userField Array containing parameters of the user field.
         * @param array $htmlControl
         * @return string
         */
        public static function getAdminListEditHTMLMulty($userField, $htmlControl)
        {
        }
        /**
         * @param array $userField Array containing parameters of the user field.
         * @param array $params
         * @param array $setting
         * @return string
         */
        public static function getPublicViewHTML($userField, $id, $params = "", $settings = array())
        {
        }
        /**
         * Checks for current user's access to $value.
         *
         * @param array $userField Array containing parameters of the user field.
         * @param int $value
         * @return array
         */
        public static function checkfields($userField, $value)
        {
        }
        /**
         * Hook executed before saving url_preview user type value. Checks and removes signature of the $value.
         * If signature is correct, checks current user's access to $value.
         *
         * @param array $userField Array containing parameters of the user field.
         * @param string $value Signed value of the user field.
         * @return int Unsigned value of the user field, or null in case of errors.
         */
        public static function onBeforeSave($userField, $value)
        {
        }
    }
}
namespace Bitrix\Main\Discount {
    class UserConditionControl extends \CSaleCondCtrlComplex
    {
        const ENTITY_USER_ID = 'CondMainUserId';
        const ENTITY_USER_GROUP_ID = 'BX:CondMainUserGroupId';
        public static function onBuildDiscountConditionInterfaceControls()
        {
        }
        public static function getControlDescr()
        {
        }
        public static function getClassName()
        {
        }
        public static function getControlShow($params)
        {
        }
        public static function checkBasket(array $order, array $userIds, $type)
        {
        }
        public static function generate($oneCondition, $params, $control, $subs = false)
        {
        }
        /**
         * @param bool|string $controlId
         *
         *@return array|bool
         */
        public static function getControls($controlId = false)
        {
        }
        public static function getShowIn($arControls)
        {
        }
        private static function generateOrderConditions(array $oneCondition, array $params, array $control, $values)
        {
        }
        /**
         * @return string
         */
        private static function getAdminSection()
        {
        }
    }
}
namespace Bitrix\Main\Controller {
    class PhoneAuth extends \Bitrix\Main\Engine\Controller
    {
        const SIGNATURE_SALT = 'phone_auth_sms';
        public function resendCodeAction($signedData)
        {
        }
        public function confirmAction($code, $signedData)
        {
        }
        public function configureActions()
        {
        }
        /**
         * @param array $data 'phoneNumber' key is required
         * @return string
         */
        public static function signData(array $data)
        {
        }
        /**
         * @param string $signedData
         * @return bool|array
         */
        public static function extractData($signedData)
        {
        }
    }
    class Export extends \Bitrix\Main\Engine\Controller
    {
        /** @var string - Module Id. */
        protected $module = '';
        /** Where to store cloud files. */
        const EXPORT_PATH = '/export/';
        /** How many day keep files in the cloud. */
        const EXPIRE_DAYS = 24;
        const ACTION_EXPORT = 'export';
        const ACTION_UPLOAD = 'upload';
        const ACTION_CANCEL = 'cancel';
        const ACTION_FINISH = 'finish';
        const ACTION_DOWNLOAD = 'download';
        const ACTION_CLEAR = 'clear';
        const ACTION_VOID = 'void';
        const ACTION_PURGE = 'purge';
        const STATUS_COMPLETED = 'COMPLETED';
        const STATUS_PROGRESS = 'PROGRESS';
        /** @var string */
        protected $componentName = '';
        /** @var array */
        protected $componentParameters = array();
        /** @var string - Exporting file type csv|excel. */
        protected $exportType;
        const EXPORT_TYPE_CSV = 'csv';
        const EXPORT_TYPE_EXCEL = 'excel';
        /** @var string */
        protected $processToken;
        /** @var boolean */
        protected $isNewProcess = true;
        /** @var string */
        protected $fileName = '';
        /** @var string */
        protected $filePath = '';
        /** @var int */
        protected $fileSize = 0;
        /** @var string */
        protected $fileType = 'application/csv';
        /** How long to keep temporally files. */
        const KEEP_FILE_HOURS = 5;
        /** @var int */
        protected $processedItems = 0;
        /** @var int */
        protected $totalItems = 0;
        /** @var int */
        protected $pageSize = 0;
        /** Default limitation query result per page. */
        const ROWS_PER_PAGE = 100;
        /** @var int */
        protected $lastExportedId = -1;
        /** @var \CCloudStorageBucket */
        protected $bucket;
        /** @var int */
        protected $bucketId = -1;
        /** @var string */
        protected $uploadPath = '';
        /** @var int */
        protected $uploadedSize = 0;
        /** @var int */
        protected $uploadedPart = 0;
        /** @var int */
        protected $cloudMinChunkSize = 5 * 1024 * 1024;
        // 5M
        /** @var string[] */
        protected $fieldToStoreInProcess = array('exportType', 'fileName', 'filePath', 'fileSize', 'fileType', 'uploadedSize', 'uploadPath', 'uploadedPart', 'pageSize', 'processedItems', 'totalItems', 'lastExportedId', 'cloudChunkSize', 'bucketId', 'isExportCompleted', 'isUploadFinished', 'timeStart', 'stepCount', 'useCloud');
        /** @var boolean */
        protected $isBitrix24 = false;
        /** @var boolean */
        protected $isCloudAvailable = false;
        /** @var boolean */
        protected $isExportCompleted = false;
        /** @var boolean */
        protected $isUploadFinished = false;
        /** @var integer */
        protected $timeStart = 0;
        /** @var integer */
        protected $stepCount = 0;
        /** @var boolean */
        protected $useCloud = null;
        /** @var float seconds */
        protected $timeLimit = -1;
        /** @var float seconds */
        protected $hitStartTime = -1;
        /** @var boolean */
        protected $timeLimitReached = false;
        /** @const int */
        const TIME_LIMIT = 20;
        // 20 seconds
        /**
         * Action
         * @return array
         */
        public function configureActions()
        {
        }
        /**
         * Initializes controller.
         *
         * @return void
         */
        protected function init()
        {
        }
        /**
         * Common operations before process action.
         * @param Main\Engine\Action $action Action.
         * @return bool If method will return false, then action will not execute.
         */
        protected function processBeforeAction(\Bitrix\Main\Engine\Action $action)
        {
        }
        /**
         * Add name on filed to keep during in the process.
         *
         * @param string $fieldName Field name.
         *
         * @return self
         */
        protected function keepFieldInProcess($fieldName)
        {
        }
        /**
         * @return array|Main\Engine\Response\AjaxJson
         */
        public function dispatcherAction()
        {
        }
        /**
         * @return Main\HttpResponse|void
         */
        public function downloadAction()
        {
        }
        /**
         * Performs exporting action.
         *
         * @return array|Main\Engine\Response\AjaxJson
         */
        public function exportAction()
        {
        }
        /**
         * Performs of the action uploading into the cloud.
         *
         * @return array
         */
        public function uploadAction()
        {
        }
        /**
         * Drops temporally and cloud files.
         *
         * @return array
         */
        public function clearAction()
        {
        }
        /**
         * Cancels exporting and uploading processes. Drops temporally and cloud files.
         *
         * @return array
         */
        public function cancelAction()
        {
        }
        /**
         * Drops all outdated cloud files.
         *
         * @return array
         */
        public function purgeAction()
        {
        }
        /**
         * Finishes exporting and uploading processes. Drops temporally.
         *
         * @return array
         */
        public function finishAction()
        {
        }
        /**
         * Preforms action answer.
         * @param string $action Action.
         * @return array
         */
        protected function preformAnswer($action)
        {
        }
        /**
         * Preform expected duration message.
         *
         * @return string
         */
        protected function preformExpectedDuration()
        {
        }
        /**
         * Generate link to download local exported temporally file.
         *
         * @return string
         */
        protected function generateDownloadLink()
        {
        }
        /**
         * Generate link to download exported file from cloud.
         *
         * @return string
         */
        protected function generateCloudLink()
        {
        }
        /**
         * Checks for common errors.
         *
         * @param \Bitrix\Main\Engine\Action $action Action.
         * @return bool - True if errors not exist.
         */
        protected function checkCommonErrors($action)
        {
        }
        /**
         * Checks for cloud errors.
         *
         * @return bool - True if errors not exist.
         */
        protected function checkCloudErrors()
        {
        }
        /**
         * Finds and instantiates the cloud bucket for file attributes.
         *
         * @param array $attributes File attributes for bucket search.
         *
         * @return bool
         */
        protected function findInitBucket(array $attributes)
        {
        }
        /**
         * Returns the cloud bucket for file attributes.
         *
         * @return \CCloudStorageBucket
         */
        protected function instanceBucket()
        {
        }
        /**
         * Returns active cloud bucket list.
         *
         * @param array $filter Filter params.
         *
         * @return array
         */
        protected function getBucketList($filter = array())
        {
        }
        /**
         * Save progress parameters.
         *
         * @return boolean
         */
        protected function saveProgressParameters()
        {
        }
        /**
         * Load progress parameters.
         *
         * @return array
         */
        protected function getProgressParameters()
        {
        }
        /**
         * Removes progress parameters.
         *
         * @return boolean
         */
        protected function clearProgressParameters()
        {
        }
        /**
         * Returns progress option name
         *
         * @return string
         */
        protected function getProgressParameterOptionName()
        {
        }
        /**
         * Returns file name
         *
         * @return string
         */
        protected function generateExportFileName()
        {
        }
        /**
         * Returns file mime/type
         *
         * @return string
         */
        protected function getFileType()
        {
        }
        /**
         * Returns temporally directory
         *
         * @return string
         */
        protected function generateTempDirPath()
        {
        }
        /**
         * Returns path to upload
         *
         * @return string
         */
        protected function generateUploadDir()
        {
        }
        /**
         * Sings and returns parameters as string in format "{message}{separator}{signature}".
         *
         * @param string $componentName Component name.
         * @param array $params Parameters of component.
         *
         * @return string
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        protected function getSignedParameters($componentName, array $params)
        {
        }
        /**
         * Sings and stores parameters.
         *
         * @param string $componentName Component name.
         * @param string $signedParameters Signed parameters of component as string.
         *
         * @return array
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        protected function decodeSignedParameters($componentName, $signedParameters)
        {
        }
        /**
         * @param string $data Bytes to write.
         * @param boolean $precedeUtf8Bom Precede first bites with UTF8 BOM mark.
         * @return void
         */
        protected function writeTempFile($data, $precedeUtf8Bom = true)
        {
        }
        /**
         * @return void
         */
        protected function dropTempFile()
        {
        }
        /**
         * @return string
         */
        protected function getContentTempFile()
        {
        }
        /**
         * @return int
         */
        protected function getSizeTempFile()
        {
        }
        /**
         * Start up timer.
         *
         * @param int $timeLimit Time limit.
         * @return void
         */
        protected function startTimer($timeLimit = 25)
        {
        }
        /**
         * Tells true if time limit reached.
         *
         * @return boolean
         */
        protected function hasTimeLimitReached()
        {
        }
    }
    class UserFieldConfig extends \Bitrix\Main\Engine\Controller
    {
        protected $moduleId;
        /** @var UserFieldAccess */
        protected $access;
        protected function init() : void
        {
        }
        protected function processBeforeAction(\Bitrix\Main\Engine\Action $action) : bool
        {
        }
        protected function processAfterAction(\Bitrix\Main\Engine\Action $action, $result)
        {
        }
        protected function getEmptyModuleIdError() : \Bitrix\Main\Error
        {
        }
        protected function getReadAccessDeniedError() : \Bitrix\Main\Error
        {
        }
        protected function getAddAccessDeniedError() : \Bitrix\Main\Error
        {
        }
        protected function getUpdateAccessDeniedError() : \Bitrix\Main\Error
        {
        }
        protected function getDeleteAccessDeniedError() : \Bitrix\Main\Error
        {
        }
        protected function getCommonError() : \Bitrix\Main\Error
        {
        }
        public function getTypesAction() : array
        {
        }
        protected function prepareFields(array $fields) : array
        {
        }
        public function preparePublicData(array $field) : array
        {
        }
        protected function fillErrorsFromApplication() : void
        {
        }
        protected function prepareEnums(array $newEnums, array $currentEnums) : array
        {
        }
        protected function updateEnums(int $id, array $enums, array $currentEnums = []) : void
        {
        }
        public function getAction(int $id) : ?array
        {
        }
        public function listAction(array $select = ['*'], array $order = [], array $filter = [], \Bitrix\Main\UI\PageNavigation $pageNavigation = null) : ?\Bitrix\Main\Engine\Response\DataType\Page
        {
        }
        public function addAction(array $field) : ?array
        {
        }
        public function updateAction(int $id, array $field) : ?array
        {
        }
        public function deleteAction(int $id) : void
        {
        }
    }
    class AuthCode extends \Bitrix\Main\Engine\Controller
    {
        const SIGNATURE_SALT = 'phone_auth_email';
        /**
         * Sends a email with a generated code.
         * @param string $login User input
         * @return array|null
         */
        public function sendEmailAction($login)
        {
        }
        /**
         * Verifies the code and authorizes the user on success.
         * @param string $code User input
         * @param string $signedData Expected to be sent back from sendEmail() result
         * @return bool|null
         */
        public function confirmAction($code, $signedData)
        {
        }
        /**
         * Verifies the code and authorizes the user on success.
         * @param string $otp OTP code
         * @param string $captchaSid If needed
         * @param string $captchaWord If needed
         * @return bool|null
         */
        public function loginByOtpAction($otp, $captchaSid = "", $captchaWord = "")
        {
        }
        protected function checkOtpCaptcha()
        {
        }
        public function configureActions()
        {
        }
        /**
         * @param array $data
         * @return string
         */
        public static function signData(array $data)
        {
        }
        /**
         * @param string $signedData
         * @return bool|array
         */
        public static function extractData($signedData)
        {
        }
    }
}
namespace Bitrix\Main\Controller\Filter {
    class Base extends \Bitrix\Main\Engine\Controller
    {
        protected function getList($entityTypeId, array $filterSettingsParams)
        {
        }
        protected function getField($entityTypeId, array $filterSettingsParams, $id)
        {
        }
        public function getListAction($filterId, $componentName, $signedParameters)
        {
        }
        public function getFieldAction($filterId, $id, $componentName, $signedParameters)
        {
        }
    }
    class User extends \Bitrix\Main\Controller\Filter\Base
    {
        public function getListAction($filterId, $componentName, $signedParameters)
        {
        }
        public function getFieldAction($filterId, $id, $componentName, $signedParameters)
        {
        }
    }
}
namespace Bitrix\Main\Controller {
    /**
     * Class LoadExt
     * @package Bitrix\Main\Controller
     */
    class LoadExt extends \Bitrix\Main\Engine\Controller
    {
        /**
         * Configures ajax actions
         * @return array
         */
        public function configureActions()
        {
        }
        /**
         * @param array $extension
         * @return array
         * @throws \Bitrix\Main\IO\FileNotFoundException
         * @throws \Bitrix\Main\LoaderException
         */
        public function getExtensionsAction($extension = [])
        {
        }
    }
    class PhoneNumber extends \Bitrix\Main\Engine\Controller
    {
        public function getCountriesAction()
        {
        }
        public function configureActions()
        {
        }
    }
    /**
     * Class Numerator
     * @package Bitrix\Main\Controller
     */
    class Numerator extends \Bitrix\Main\Engine\Controller
    {
        /**
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\SystemException
         */
        public function saveAction()
        {
        }
    }
}
namespace {
    /**
     * Class CHTMLPagesCache
     * @deprecated
     * @mixin \Bitrix\Main\Composite\Helper
     * @see \Bitrix\Main\Composite\Responder
     */
    class CHTMLPagesCache
    {
    }
}
namespace Bitrix\Main\Composite {
    /**
     * Represents interface for the html cache response
     * Class AbstractResponse
     */
    abstract class AbstractResponse
    {
        protected $cacheKey = null;
        protected $configuration = array();
        protected $htmlCacheOptions = array();
        /**
         * @param string $cacheKey unique cache identifier
         * @param array $configuration storage configuration
         * @param array $htmlCacheOptions html cache options
         */
        public function __construct($cacheKey, array $configuration, array $htmlCacheOptions)
        {
        }
        /**
         * Returns the cache contents
         * @return string|false
         */
        public abstract function getContents();
        /**
         * Returns true if content is gzipped
         * @return bool
         */
        public abstract function isGzipped();
        /**
         * Returns the time the cache was last modified
         * @return int|false
         */
        public abstract function getLastModified();
        /**
         * Returns the Entity Tag of the cache
         * @return string|int
         */
        public abstract function getEtag();
        /**
         * Returns the content type of the cache
         * @return string|false
         */
        public abstract function getContentType();
        /**
         * Checks whether the cache exists
         *
         * @return bool
         */
        public abstract function exists();
        /**
         * Should we count a quota limit
         * @return bool
         */
        public abstract function shouldCountQuota();
    }
}
namespace {
    /**
     * Class StaticHtmlCacheResponse
     * @deprecated
     * @mixin \Bitrix\Main\Composite\AbstractResponse
     * @see \Bitrix\Main\Composite\AbstractResponse
     */
    /** @noinspection PhpHierarchyChecksInspection */
    class StaticHtmlCacheResponse extends \Bitrix\Main\Composite\AbstractResponse
    {
    }
    /**
     * Class StaticHtmlMemcachedResponse
     * @deprecated
     * @mixin \Bitrix\Main\Composite\MemcachedResponse
     * @see \Bitrix\Main\Composite\MemcachedResponse
     */
    class StaticHtmlMemcachedResponse
    {
    }
    /**
     * Class StaticHtmlFileResponse
     * @deprecated
     * @mixin \Bitrix\Main\Composite\FileResponse
     * @see \Bitrix\Main\Composite\FileResponse
     */
    class StaticHtmlFileResponse
    {
    }
}
namespace Bitrix\Main\Page {
    /**
     * Class Frame
     * @package Bitrix\Main\Page
     * @deprecated
     * @mixin \Bitrix\Main\Composite\Engine
     * @see \Bitrix\Main\Composite\Engine
     */
    class Frame
    {
    }
    /**
     * Class FrameStatic
     * @package Bitrix\Main\Page
     * @deprecated
     * @mixin \Bitrix\Main\Composite\StaticArea
     * @see \Bitrix\Main\Composite\StaticArea
     */
    class FrameStatic
    {
    }
    /**
     * Class FrameBuffered
     * @package Bitrix\Main\Page
     * @deprecated
     * @mixin \Bitrix\Main\Composite\BufferArea
     * @see \Bitrix\Main\Composite\BufferArea
     */
    class FrameBuffered
    {
    }
    /**
     * Class FrameHelper
     * @package Bitrix\Main\Page
     * @deprecated
     * @mixin \Bitrix\Main\Composite\BufferArea
     * @see \Bitrix\Main\Composite\BufferArea
     */
    class FrameHelper
    {
    }
}
namespace Bitrix\Main\Data {
    /**
     * Class StaticHtmlCache
     * @package \Bitrix\Main\Data
     * @deprecated
     * @mixin \Bitrix\Main\Composite\Page
     * @see \Bitrix\Main\Composite\Page
     */
    class StaticHtmlCache
    {
    }
    /**
     * Class StaticHtmlStorage
     * @package \Bitrix\Main\Data
     * @deprecated
     * @mixin \Bitrix\Main\Composite\Data\FileStorage
     * @see \Bitrix\Main\Composite\Data\FileStorage
     */
    class StaticHtmlStorage
    {
    }
    /**
     * Class StaticHtmlFileStorage
     * @package Bitrix\Main\Data
     * @deprecated
     * @mixin \Bitrix\Main\Composite\Data\FileStorage
     * @see \Bitrix\Main\Composite\Data\FileStorage
     */
    class StaticHtmlFileStorage
    {
    }
    /**
     * Class StaticHtmlMemcachedStorage
     * @package Bitrix\Main\Data
     * @deprecated
     * @mixin \Bitrix\Main\Composite\Data\MemcachedStorage
     * @see \Bitrix\Main\Composite\Data\MemcachedStorage
     */
    class StaticHtmlMemcachedStorage
    {
    }
    /**
     * Class StaticCacheProvider
     * @package Bitrix\Main\Data
     * @deprecated
     * @mixin \Bitrix\Main\Composite\Data\CacheProvider
     * @see \Bitrix\Main\Composite\Data\CacheProvider
     */
    /** @noinspection PhpHierarchyChecksInspection */
    class StaticCacheProvider
    {
    }
    /**
     * Class AppCacheManifest
     * @package Bitrix\Main\Data
     * @deprecated
     * @mixin \Bitrix\Main\Composite\AppCache
     * @see \Bitrix\Main\Composite\AppCache
     */
    class AppCacheManifest
    {
    }
}
namespace Bitrix\Main\Composite {
    class AppCache
    {
        const MANIFEST_CHECK_FILE = "/bitrix/tools/check_appcache.php";
        const DEBUG_HOLDER = "//__APP_CACHE_DEBUG_HOLDER__";
        private static $debug;
        private static $instance;
        private static $isEnabled = false;
        private static $customCheckFile = null;
        private $files = array();
        private $pageURI = "";
        private $network = array();
        private $fallbackPages = array();
        private $params = array();
        private $isSided = false;
        private $isModified = false;
        private $receivedManifest = "";
        private $excludeImagePatterns = array();
        private $receivedCacheParams = array();
        private function __construct()
        {
        }
        /**
         * @return boolean
         */
        public static function getDebug()
        {
        }
        /**
         * @return boolean
         */
        public function isEnabled()
        {
        }
        /**
         * Sets the array of path patterns to exclude unused images from the manifest file
         * @return array
         */
        public function getExcludeImagePatterns()
        {
        }
        /**
         * Returns the array of path patters
         * @param array $excludeImagePatterns
         */
        public function setExcludeImagePatterns($excludeImagePatterns)
        {
        }
        private function __clone()
        {
        }
        public static function getInstance()
        {
        }
        /**
         * Creates or updates the manifest file for the page with usage its content.
         *
         * @param bool $isEnabled
         */
        public static function setEnabled($isEnabled = true)
        {
        }
        public function generate(&$content)
        {
        }
        /**
         * OnBeforeEndBufferContent handler
         * @return array|mixed
         */
        public static function onBeforeEndBufferContent()
        {
        }
        /**
         * Gets file path for getting of manifest content
         * @return string
         */
        public function getManifestCheckFile()
        {
        }
        /**
         * Sets custom file for getting of manifest content
         * self::MANIFEST_CHECK_FILE uses by default
         *@param string $customManifestCheckFile
         */
        public function setManifestCheckFile($customManifestCheckFile)
        {
        }
        /*
         * OnEndBufferContent handler
         */
        public static function onEndBufferContent(&$content)
        {
        }
        /**
         * Returns content of the manifest
         * @return string
         */
        public function getManifestContent()
        {
        }
        /**
         * Parses the passed content to find css, js and images. Returns the array of files.
         *
         * @param $content
         *
         * @return array
         */
        public function getFilesFromContent($content)
        {
        }
        /**
         * Replaces url in css-file with absolute path.
         *
         * @param $url
         * @param $cssPath
         *
         * @return string
         */
        private static function replaceUrlCSS($url, $cssPath)
        {
        }
        /**
         * Sets received cache params
         * @param $receivedCacheParams
         */
        public function setReceivedCacheParams($receivedCacheParams)
        {
        }
        /**
         * Gets received cache parameters
         * @return array
         */
        public function getReceivedCacheParams()
        {
        }
        /**
         * Sets received path to manifest
         *
         * @param $receivedManifest
         */
        public function setReceivedManifest($receivedManifest)
        {
        }
        public function getReceivedManifest()
        {
        }
        public function setIsSided($isSided)
        {
        }
        public function getIsSided()
        {
        }
        public function setPageURI($pageURI = "")
        {
        }
        public function getPageURI()
        {
        }
        public function setFiles($arFiles)
        {
        }
        public function addFile($filePath)
        {
        }
        public function addAdditionalParam($name, $value)
        {
        }
        public function getAdditionalParams()
        {
        }
        public function setNetworkFiles($network)
        {
        }
        public function getNetworkFiles()
        {
        }
        public function addFallbackPage($onlinePage, $offlinePage)
        {
        }
        public function getFallbackPages()
        {
        }
        public function getCurrentManifestID()
        {
        }
        public function getIsModified()
        {
        }
        private function getManifestDescription()
        {
        }
        private function writeManifestCache($arFields)
        {
        }
        public function readManifestCache($manifestId)
        {
        }
        private static function removeManifestById($manifestId)
        {
        }
        /**
         * @param $manifestId
         *
         * @return string
         */
        public static function getCachePath($manifestId)
        {
        }
        private function getManifestID($pageURI, $arParams)
        {
        }
        public static function checkObsoleteManifest()
        {
        }
        private static function clear($url, $params)
        {
        }
    }
    final class Engine
    {
        const PAGE_DELETION_LIMIT = 100;
        const PAGE_DELETION_ATTEMPTS = 2;
        private static $instance;
        private static $isEnabled = false;
        private static $useHTMLCache = false;
        private static $onBeforeHandleKey = false;
        private static $onRestartBufferHandleKey = false;
        private static $onBeforeLocalRedirect = false;
        private static $autoUpdate = true;
        private static $autoUpdateTTL = 0;
        private static $isCompositeInjected = false;
        private static $isRedirect = false;
        private static $isBufferRestarted = false;
        /**
         * use self::getInstance()
         */
        private function __construct()
        {
        }
        /**
         * you can't clone it
         */
        private function __clone()
        {
        }
        /**
         * Singleton instance.
         * @deprecated just use static methods
         * @return Engine
         */
        public static function getInstance()
        {
        }
        /**
         * Sets isEnable property value and attaches needed handlers.
         *
         * @param bool $isEnabled Mode control flag.
         *
         * @return void
         */
        public static function setEnable($isEnabled = true)
        {
        }
        /**
         * Gets isEnabled property.
         *
         * @return boolean
         */
        public static function isEnabled()
        {
        }
        /**
         * Sets useAppCache property.
         *
         * @param boolean $useAppCache AppCache mode control flag.
         *
         * @return void
         */
        public static function setUseAppCache($useAppCache = true)
        {
        }
        /**
         * Gets useAppCache property.
         *
         * @return boolean
         */
        public static function getUseAppCache()
        {
        }
        /**
         * Sets useHTMLCache property.
         *
         * @param boolean $useHTMLCache Composite mode control flag.
         *
         * @return void
         */
        public static function setUseHTMLCache($useHTMLCache = true)
        {
        }
        /**
         * Gets useHTMLCache property.
         *
         * @return boolean
         */
        public static function getUseHTMLCache()
        {
        }
        /**
         * Returns true if current request was initiated by Ajax.
         *
         * @return boolean
         */
        public static function isAjaxRequest()
        {
        }
        public static function isInvalidationRequest()
        {
        }
        /**
         * Returns true if we should inject banner into a page.
         * @return bool
         */
        public static function isBannerEnabled()
        {
        }
        /**
         * Sets autoUpdate property
         *
         * @param bool $flag
         *
         * @return void
         */
        public static function setAutoUpdate($flag)
        {
        }
        /**
         * Gets autoUpdate property
         * @return bool
         */
        public static function getAutoUpdate()
        {
        }
        /**
         * Sets auto update ttl
         *
         * @param int $ttl - number of seconds
         *
         * @return void
         */
        public static function setAutoUpdateTTL($ttl)
        {
        }
        /**
         * Gets auto update ttl
         * @return int
         */
        public static function getAutoUpdateTTL()
        {
        }
        /**
         * OnBeforeEndBufferContent handler.
         * Prepares the stage for composite mode handler.
         *
         * @return void
         */
        public static function onBeforeEndBufferContent()
        {
        }
        /**
         * @param $content
         *
         * @return null|string
         * @internal
         */
        public static function startBuffering($content)
        {
        }
        /**
         * Returns true if $originalContent was modified
         *
         * @param $originalContent
         * @param $compositeContent
         *
         * @return bool
         * @internal
         */
        public static function endBuffering(&$originalContent, $compositeContent)
        {
        }
        /**
         * * There are two variants of content's modification in this method.
         * The first one:
         * If it's ajax-hit the content will be replaced by json data with dynamic blocks,
         * javascript files and etc. - dynamic part
         *
         * The second one:
         * If it's simple hit the content will be modified also,
         * all dynamic blocks will be cut out of the content - static part.
         *
         * @param string $content Html page content.
         *
         * @return string
         */
        private static function processPageContent($content)
        {
        }
        /**
         * This method returns the divided content.
         * The content is divided by two parts - static and dynamic.
         * Example of returned value:
         * <code>
         * array(
         *    "static"=>"Hello World!"
         *    "dynamic"=>array(
         *        array("ID"=>"someID","CONTENT"=>"someDynamicContent", "HASH"=>"md5ofDynamicContent")),
         *        array("ID"=>"someID2","CONTENT"=>"someDynamicContent2", "HASH"=>"md5ofDynamicContent2"))
         * );
         * </code>
         *
         * @param string $content Html page content.
         *
         * @return array
         */
        private static function getDividedPageData($content)
        {
        }
        /**
         * @param string $content
         *
         * @return array|bool
         */
        private static function getFrameIndexes($content)
        {
        }
        private static function getPageBlocks()
        {
        }
        /**
         * Replaces bitrix sessid in the $content
         *
         * @param string $content
         */
        private static function replaceSessid(&$content)
        {
        }
        /**
         * OnBeforeRestartBuffer event handler.
         * Disables composite mode when called.
         *
         * @return void
         */
        public static function onBeforeRestartBuffer()
        {
        }
        public static function onBeforeLocalRedirect(&$url, $skip_security_check, $isExternal)
        {
        }
        private static function ensureFileQuota($requiredFreeSpace = 0)
        {
        }
        /**
         * @return int
         */
        private static function getDeletionLimit()
        {
        }
        private static function getAjaxError($errorMsg = null)
        {
        }
        /**
         * Sends BX-RAND Header
         */
        private static function sendRandHeader()
        {
        }
        /**
         * Returns JS minified code that will do dynamic hit to the server.
         * The code is returned in the 'start' key of the array.
         *
         * @param array $params
         *
         * @return array[string]string
         */
        private static function getInjectedJs($params = array())
        {
        }
        /**
         * Returns css string to be injected.
         *
         * @internal
         * @return string
         */
        public static function getInjectedCSS()
        {
        }
        /**
         * Checks whether HTML Cache should be enabled.
         *
         * @internal
         * @return void
         */
        public static function shouldBeEnabled()
        {
        }
        /**
         * Checks if admin panel will be shown or not.
         * Disables itself if panel will be show.
         *
         * @internal
         * @return void
         */
        public static function checkAdminPanel()
        {
        }
        /**
         * Return true if it's a self-hosted portal.
         * @return bool
         */
        public static function isSelfHostedPortal()
        {
        }
        public static function install($setDefaults = true)
        {
        }
        public static function uninstall()
        {
        }
        /**
         *
         * Returns true if composite mode is turned on
         * @return bool
         */
        public static function isOn()
        {
        }
        /**
         * @internal
         * OnEpilog Event Handler
         * @return void
         */
        public static function onEpilog()
        {
        }
        /**
         * OnChangeFile Event Handler
         *
         * @internal
         * @param $path
         * @param $site
         */
        public static function onChangeFile($path, $site)
        {
        }
        /**
         * OnUserLogin Event Handler
         */
        public static function onUserLogin()
        {
        }
        /**
         * OnUserLogout Event Handler
         */
        public static function onUserLogout()
        {
        }
        public static function isCurrentUserCC()
        {
        }
        /**
         * Sets NCC cookie
         */
        public static function setNCC()
        {
        }
        /**
         * Sets CC cookie
         */
        public static function setCC()
        {
        }
        /**
         * Removes all composite cookies
         */
        public static function deleteCompositeCookies()
        {
        }
        //region Deprecated Methods
        /**
         * Sets useHTMLCache property.
         *
         * @param boolean $preventAutoUpdate property.
         *
         * @deprecated use setAutoUpdate
         * @return void
         */
        public static function setPreventAutoUpdate($preventAutoUpdate = true)
        {
        }
        /**
         * Gets preventAutoUpdate property.
         *
         * @return boolean
         * @deprecated use getAutoUpdate
         */
        public static function getPreventAutoUpdate()
        {
        }
        /**
         * Gets ids of the dynamic blocks.
         *
         * @deprecated
         * @return array
         */
        public function getDynamicIDs()
        {
        }
        /**
         * Returns the identifier of current dynamic area.
         *
         * @deprecated
         * @see \Bitrix\Main\Composite\StaticArea::getCurrentDynamicId
         * @return string|false
         */
        public function getCurrentDynamicId()
        {
        }
        /**
         * Adds dynamic data to be sent to the client.
         *
         * @deprecated
         *
         * @param string $id Unique identifier of the block.
         * @param string $content Dynamic part html.
         * @param string $stub Html to use as stub.
         * @param string $containerId Identifier of the html container.
         * @param boolean $useBrowserStorage Use browser storage for caching or not.
         * @param boolean $autoUpdate Automatically or manually update block contents.
         * @param boolean $useAnimation Animation flag.
         *
         * @return void
         */
        public function addDynamicData($id, $content, $stub = "", $containerId = null, $useBrowserStorage = false, $autoUpdate = true, $useAnimation = false)
        {
        }
        /**
         * Marks start of a dynamic block.
         *
         * @deprecated
         *
         * @param integer $id Unique identifier of the block.
         *
         * @return boolean
         */
        public function startDynamicWithID($id)
        {
        }
        /**
         * Marks end of the dynamic block if it's the current dynamic block
         * and its start was being marked early.
         *
         * @deprecated
         *
         * @param string $id Unique identifier of the block.
         * @param string $stub Html to use as stub.
         * @param string $containerId Identifier of the html container.
         * @param boolean $useBrowserStorage Use browser storage for caching or not.
         * @param boolean $autoUpdate Automatically or manually update block contents.
         * @param boolean $useAnimation Animation flag.
         *
         * @return boolean
         */
        public function finishDynamicWithID($id, $stub = "", $containerId = null, $useBrowserStorage = false, $autoUpdate = true, $useAnimation = false)
        {
        }
    }
    /**
     * Class Responder
     * @package \Bitrix\Main\Composite
     */
    class Responder
    {
        private static $error = null;
        private static $errorMessage = null;
        /**
         * Checks many conditions to enable HTML Cache and tries to send
         *
         * @return void
         */
        public static function respond()
        {
        }
        private static function isValidRequest()
        {
        }
        /**
         * Tries to send a response if cache exists
         */
        private static function trySendResponse()
        {
        }
        private static function modifyHttpHeaders()
        {
        }
        /**
         *
         * Sets HTTP headers
         *
         * @param string $etag
         * @param int $lastModified
         * @param bool $compositeHeader
         * @param bool $contentType
         */
        private static function setHeaders($etag, $lastModified, $compositeHeader = false, $contentType = false)
        {
        }
        /**
         * Sets HTTP status
         *
         * @param string $status
         */
        private static function setStatus($status)
        {
        }
        private static function isValidQueryString($compositeOptions)
        {
        }
        /**
         * Gets a cache key with a hostname given by $host
         *
         * @return string
         */
        private static function getCacheKey()
        {
        }
        /**
         * Returns the instance of the AbstractResponse
         *
         * @param string $cacheKey unique cache identifier
         *
         * @return AbstractResponse|null
         */
        private static function getHtmlCacheResponse($cacheKey)
        {
        }
        private static function registerAutoloader()
        {
        }
        private static function unregisterAutoloader()
        {
        }
        public static function autoLoad($className)
        {
        }
        /**
         * @internal
         * Returns last respond error
         * @return string
         */
        public static function getLastError()
        {
        }
        /**
         * @internal
         * Returns last error message
         * @return string
         */
        public static function getLastErrorMessage()
        {
        }
        private static function setErrorHandler()
        {
        }
        private static function restoreErrorHandler()
        {
        }
        public static function handleError($code, $message, $file, $line)
        {
        }
    }
    final class MemcachedResponse extends \Bitrix\Main\Composite\AbstractResponse
    {
        /**
         * @var \stdClass
         */
        private $props = null;
        /**
         * @var \Memcache
         */
        private static $memcached = null;
        private static $connected = null;
        private $contents = null;
        private $flags = 0;
        const MEMCACHED_GZIP_FLAG = 65536;
        public function __construct($cacheKey, array $configuration, array $htmlCacheOptions)
        {
        }
        public function getContents()
        {
        }
        public function getLastModified()
        {
        }
        public function getEtag()
        {
        }
        public function getContentType()
        {
        }
        public function exists()
        {
        }
        /**
         * Returns true if content is gzipped
         * @return bool
         */
        public function isGzipped()
        {
        }
        /**
         * Should we count a quota limit
         * @return bool
         */
        public function shouldCountQuota()
        {
        }
        /**
         * @param array $htmlCacheOptions html cache options
         *
         * @return array
         */
        private static function getServers(array $htmlCacheOptions)
        {
        }
        /**
         * Gets clusters settings
         *
         * @param int $groupId
         *
         * @return array
         */
        private static function getClusterServers($groupId)
        {
        }
        /**
         * Returns the object that represents the connection to the memcached server
         *
         * @param array $configuration memcached configuration
         * @param array $htmlCacheOptions html cache options
         *
         * @return \Memcache|false
         */
        public static function getConnection(array $configuration, array $htmlCacheOptions)
        {
        }
        /**
         * Closes connection to the memcached server
         */
        public static function close()
        {
        }
        /**
         * Returns an array of the cache properties
         *
         * @return \stdClass|false
         */
        public function getProps()
        {
        }
        /**
         * Returns the $property value
         *
         * @param string $property the property name
         *
         * @return string|false
         */
        public function getProp($property)
        {
        }
    }
    final class FileResponse extends \Bitrix\Main\Composite\AbstractResponse
    {
        private $cacheFile = null;
        private $lastModified = null;
        private $contents = null;
        public function __construct($cacheKey, array $configuration, array $htmlCacheOptions)
        {
        }
        public function getContents()
        {
        }
        public function getLastModified()
        {
        }
        public function getEtag()
        {
        }
        public function getContentType()
        {
        }
        public function exists()
        {
        }
        /**
         * Should we count a quota limit
         * @return bool
         */
        public function shouldCountQuota()
        {
        }
        /**
         * Returns true if content is gzipped
         * @return bool
         */
        public function isGzipped()
        {
        }
    }
    class StaticArea
    {
        private $id = null;
        private $stub = "";
        private $containerId = null;
        private $useBrowserStorage = false;
        private $useAnimation = false;
        private $autoUpdate = true;
        private $assetMode = \Bitrix\Main\Page\AssetMode::ALL;
        /**
         * @var StaticArea[]
         */
        private static $dynamicAreas = array();
        private static $curDynamicId = false;
        private static $containers = array();
        function __construct($id)
        {
        }
        public function startDynamicArea()
        {
        }
        public function finishDynamicArea()
        {
        }
        public static function addDynamicArea(\Bitrix\Main\Composite\StaticArea $area)
        {
        }
        /**
         * @return array[]
         */
        public static function getDynamicIDs()
        {
        }
        /**
         * @return StaticArea[]
         */
        public static function getDynamicAreas()
        {
        }
        /**
         * @param string $id Dynamic Area Id
         *
         * @return StaticArea
         */
        public static function getDynamicArea($id)
        {
        }
        /**
         * @return StaticArea
         */
        public static function getCurrentDynamicArea()
        {
        }
        public static function getCurrentDynamicId()
        {
        }
        public static function getContainers()
        {
        }
        public function getId()
        {
        }
        public function getAssetId()
        {
        }
        public function setStub($stub)
        {
        }
        public function getStub()
        {
        }
        public function setContainerId($containerId)
        {
        }
        public function getContainerId()
        {
        }
        public function setBrowserStorage($useBrowserStorage)
        {
        }
        public function getBrowserStorage()
        {
        }
        public function setAnimation($useAnimation)
        {
        }
        public function getAnimation()
        {
        }
        public function setAutoUpdate($autoUpdate)
        {
        }
        public function getAutoUpdate()
        {
        }
        /**
         * @param AssetMode $mode
         */
        public function setAssetMode($mode)
        {
        }
        public function getAssetMode()
        {
        }
        /**
         * Returns internal state of the object for storing in cache.
         *
         * @return array
         */
        public function getCachedData()
        {
        }
        /**
         * Apply previously saved state.
         *
         * @param $cachedData
         *
         * @return StaticArea
         */
        public static function applyCachedData($cachedData)
        {
        }
    }
    class BufferArea extends \Bitrix\Main\Composite\StaticArea
    {
        private $staticPart = null;
        private $dynamicPart = null;
        private $started = false;
        private $ended = false;
        /**
         * @param $id
         * @param bool $autoContainer
         */
        public function __construct($id, $autoContainer = true)
        {
        }
        /**
         * Starts an dynamic frame.
         * Returns self object instance.
         *
         * @see BufferArea
         * @see BufferArea::end
         *
         * @param null|string $stub
         * @return BufferArea
         * @throws NotSupportedException
         */
        public function begin($stub = null)
        {
        }
        /**
         * Starts static part of dynamic frame which will be shown to user.
         * Method begin() must be called before.
         * Returns self object instance.
         *
         * @see BufferArea
         * @see BufferArea::begin
         *
         * @return BufferArea
         * @throws NotSupportedException
         */
        public function beginStub()
        {
        }
        /**
         * Ends dynamic part of the content.
         * Method begin() must be called before.
         * Returns self object instance.
         *
         * @see BufferArea
         * @see BufferArea::begin
         *
         * @return BufferArea
         * @throws NotSupportedException
         */
        public function end()
        {
        }
        /**
         * Returns true if Frame was started.
         *
         * @return bool
         */
        public function isStarted()
        {
        }
        /**
         * Returns true if Frame was ended.
         *
         * @return bool
         */
        public function isEnded()
        {
        }
    }
}
namespace Bitrix\Main\Composite\Internals {
    class Locker
    {
        const CONNECTION_NAME = "composite";
        /**
         * Tries to obtain a lock with a name given by the string $id
         * Supports only Mysql.
         *
         * @param string $id Lock Name.
         * @return bool Returns true if lock was obtained.
         */
        public static function lock($id)
        {
        }
        /**
         * Releases the lock named by the string $id
         * Supports only Mysql
         *
         * @param string $id Lock Name.
         * @return bool Returns true if lock was released.
         */
        public static function unlock($id)
        {
        }
        /**
         * Gets a new connection for the lock mechanism
         * @return \Bitrix\Main\DB\Connection
         */
        private static function getConnection()
        {
        }
    }
    class PageManager
    {
        public static function register($cacheKey, array $params = array())
        {
        }
        public static function getByCacheKey($cacheKey)
        {
        }
        public static function deleteByCacheKey($cacheKey)
        {
        }
    }
    class AutomaticArea
    {
        /** @var \CBitrixComponent */
        private $component = null;
        private $started = false;
        /** @var  AutomaticArea */
        private static $currentArea = null;
        public function __construct($component)
        {
        }
        public function start()
        {
        }
        public function end()
        {
        }
        public function getFrameType()
        {
        }
        public static function getFrameTypes()
        {
        }
        /**
         * @return AutomaticArea
         */
        public static function getCurrentArea()
        {
        }
        private function isFirstLevelComponent()
        {
        }
    }
}
namespace Bitrix\Main\Composite {
    /**
     *
     * This class shares static methods between Responder and other composite classes.
     * Methods of this class can't call Bitrix API at all.
     *
     * @alias \CHTMLPagesCache
     * @package Bitrix\Main\Composite
     */
    class Helper
    {
        private static $options = array();
        private static $isAjaxRequest = null;
        private static $ajaxRandom = null;
        /**
         * Returns Request URI
         * @return string
         */
        public static function getRequestUri()
        {
        }
        /**
         * Returns HTTP hostname
         *
         * @param string $host
         *
         * @return string
         */
        public static function getHttpHost($host = null)
        {
        }
        /**
         * Returns valid domains from the composite options
         * @return array
         */
        public static function getDomains()
        {
        }
        public static function getSpaPostfixByUri($requestUri)
        {
        }
        public static function getSpaPostfix()
        {
        }
        public static function getRealPrivateKey($privateKey = null, $postfix = null)
        {
        }
        public static function getUserPrivateKey()
        {
        }
        public static function setUserPrivateKey($prefix, $expire = 0)
        {
        }
        public static function deleteUserPrivateKey()
        {
        }
        /**
         * Returns true if the current request was initiated by Ajax.
         *
         * @return bool
         */
        public static function isAjaxRequest()
        {
        }
        public static function isAppCacheRequest()
        {
        }
        public static function isCompositeRequest()
        {
        }
        /**
         * Returns true if the current request URI has bitrix folder
         *
         * @return bool
         */
        public static function isBitrixFolder()
        {
        }
        public static function isSpaMode()
        {
        }
        /**
         *
         * Decodes a gzip compressed string
         *
         * @param $data
         *
         * @return string
         */
        public static function gzdecode($data)
        {
        }
        /**
         *
         * Binary version of substr
         *
         * @param $str
         * @param $start
         *
         * @return string
         */
        private static function getBinarySubstring($str, $start)
        {
        }
        /**
         * Binary version of strlen
         *
         * @param $str
         *
         * @return int
         */
        public static function getBinaryLength($str)
        {
        }
        /**
         * Returns bxrand value
         *
         * @return string|false
         */
        public static function getAjaxRandom()
        {
        }
        /**
         * Removes bxrand parameter from the current request and returns its value
         *
         * @return string|false
         */
        public static function removeRandParam()
        {
        }
        /**
         * Converts URI to a cache key (file path)
         * / => /index.html
         * /index.php => /index.html
         * /aa/bb/ => /aa/bb/index.html
         * /aa/bb/index.php => /aa/bb/index.html
         * /?a=b&b=c => /index@a=b&b=c.html
         *
         * @param string $uri
         * @param string $host
         * @param string $privateKey
         *
         * @return string
         */
        public static function convertUriToPath($uri, $host = null, $privateKey = null)
        {
        }
        public static function removeIgnoredParams($queryString)
        {
        }
        /**
         * Return true if html cache is on
         * @return bool
         */
        public static function isOn()
        {
        }
        /**
         * Return true if composite mode is enabled
         * @return bool
         */
        public static function isCompositeEnabled()
        {
        }
        public static function getEnabledFilePath()
        {
        }
        public static function getConfigFilePath()
        {
        }
        public static function getSizeFilePath()
        {
        }
        /**
         * Saves cache options
         *
         * @param array $arOptions
         *
         * @return void
         */
        public static function setOptions($arOptions = array())
        {
        }
        public static function makeDirPath($path)
        {
        }
        public static function escapePHPString($str)
        {
        }
        /**
         * Returns an array with cache options.
         * @return array
         */
        public static function getOptions()
        {
        }
        public static function resetOptions()
        {
        }
        private static function getDefaultOptions()
        {
        }
        private static function getCompiledOptions()
        {
        }
        public static function compileOptions(&$arOptions)
        {
        }
        /**
         * Returns the number of bytes of file cache. If file .size doesn't exist returns false
         * @return bool|float
         */
        public static function getCacheFileSize()
        {
        }
        public static function updateCacheFileSize($bytes = 0.0)
        {
        }
        /**
         * Returns array with cache statistics data.
         * Returns an empty array in case of disabled html cache.
         *
         * @return array
         */
        public static function readStatistic()
        {
        }
        /**
         * Updates cache usage statistics.
         * Each of parameters is added to appropriate existing stats.
         *
         * @param integer|false $hits Number of cache hits.
         * @param integer|false $writings Number of cache writing.
         * @param integer|false $quota Quota change in bytes.
         * @param integer|false $posts Number of POST requests.
         * @param float|false $files File size in bytes.
         *
         * @return void
         */
        public static function writeStatistic($hits = 0, $writings = 0, $quota = 0, $posts = 0, $files = 0.0)
        {
        }
        /**
         * Checks disk quota.
         * Returns true if quota is not exceeded.
         *
         * @param int $requiredFreeSpace
         *
         * @return bool
         */
        public static function checkQuota($requiredFreeSpace = 0)
        {
        }
        /**
         * Updates disk quota and cache statistic
         *
         * @param float $bytes positive or negative value
         */
        public static function updateQuota($bytes)
        {
        }
        //This method  exists because of SiteUpdate features.
        //When you reinstall updates (main 17.1.0 with previous ones).
        public static function __callStatic($name, $arguments)
        {
        }
        /**
         * @param $url
         * @return mixed|string
         */
        public static function getDomainName($url)
        {
        }
        //region Deprecated Methods
        /**
         * @deprecated
         * use Engine::install and Engine::uninstall
         * @param $status
         * @param bool $setDefaults
         */
        public static function setEnabled($status, $setDefaults = true)
        {
        }
        /**
         * @deprecated
         * use
         * $page = \Bitrix\Main\Composite\Page::getInstance();
         * $page->deleteAll();
         */
        public static function cleanAll()
        {
        }
    }
    /**
     * Class Page
     * @package Bitrix\Main\Composite
     */
    class Page
    {
        /**
         * @var Page
         */
        protected static $instance = null;
        /**
         * @var string
         */
        private $cacheKey = null;
        /**
         * @var bool
         */
        private $canCache = true;
        /**
         * @var Data\AbstractStorage
         */
        private $storage = null;
        /**
         * @var CacheProvider
         */
        private $cacheProvider = null;
        private $voting = true;
        /**
         * Creates new cache manager instance.
         * @param {string } $requestUri
         * @param {string} $host
         * @param {string} $privateKey
         */
        public function __construct($requestUri = null, $host = null, $privateKey = null)
        {
        }
        protected function init($cacheKey)
        {
        }
        public static function createFromCacheKey($cacheKey)
        {
        }
        /**
         * Returns current instance of the Storage.
         *
         * @return Page
         */
        public static function getInstance()
        {
        }
        /**
         *
         * Returns File Storage or Memcached Storage
         * @return Data\AbstractStorage|null
         */
        public function getStorage()
        {
        }
        public function setCacheProvider(\Bitrix\Main\Composite\Data\CacheProvider $provider)
        {
        }
        /**
         * @return CacheProvider|null
         */
        private static function getCacheProvider()
        {
        }
        /*
         * Returns private cache key
         */
        public static function getPrivateKey()
        {
        }
        /**
         * Converts request uri into path safe file with .html extension.
         * Returns empty string if fails.
         * @param string $uri Uri.
         * @param string $host Host name.
         * @param string $privateKey
         * @return string
         */
        public static function convertUriToPath($uri, $host = null, $privateKey = null)
        {
        }
        /**
         * Returns cache key
         * @return string
         */
        public function getCacheKey()
        {
        }
        /**
         * Writes the content to the storage
         * @param string $content the string that is to be written
         * @param string $md5 the content hash
         *
         * @return bool
         */
        public function write($content, $md5)
        {
        }
        /**
         * Returns html content from the cache
         *
         * @return string
         */
        public function read()
        {
        }
        /**
         * Deletes the cache
         *
         * @return bool|int
         */
        public function delete()
        {
        }
        /**
         * Deletes all cache data
         * @return bool
         */
        public function deleteAll()
        {
        }
        /**
         * Returns the time the cache was last modified
         * @return int|false
         */
        public function getLastModified()
        {
        }
        /**
         * Returns true if the cache exists
         *
         * @return boolean
         */
        public function exists()
        {
        }
        /**
         * Returns hash of the cache
         * @return string|false
         */
        public function getMd5()
        {
        }
        /**
         * Returns cache size
         * @return int|false
         */
        public function getSize()
        {
        }
        /**
         * Returns true if we can cache current request
         *
         * @return bool
         */
        public function isCacheable()
        {
        }
        /**
         * Marks current page as non cacheable.
         *
         * @return void
         */
        public function markNonCacheable()
        {
        }
        public function setUserPrivateKey()
        {
        }
        public function onBeforeEndBufferContent()
        {
        }
        /**
         * Returns the instance of the StaticHtmlStorage
         * @param string $cacheKey unique cache identifier
         *
         * @return Data\AbstractStorage|null
         */
        public static function getStaticHtmlStorage($cacheKey)
        {
        }
        public function enableVoting()
        {
        }
        public function disableVoting()
        {
        }
        public function isVotingEnabled()
        {
        }
        /**
         * Tries to vote against composite mode
         * @param string $context
         * @internal
         */
        public function giveNegativeComponentVote($context = "")
        {
        }
    }
}
namespace Bitrix\Main\Composite\Data {
    abstract class CacheProvider
    {
        public abstract function isCacheable();
        public abstract function setUserPrivateKey();
        public abstract function getCachePrivateKey();
        public abstract function onBeforeEndBufferContent();
    }
    /**
     * Class AbstractStorage
     * Represents the interface for a cache storage
     * @package Bitrix\Main\Composite\Data
     */
    abstract class AbstractStorage
    {
        protected $cacheKey = null;
        protected $configuration = array();
        protected $htmlCacheOptions = array();
        /**
         * @param string $cacheKey unique cache identifier
         * @param array $configuration storage configuration
         * @param array $htmlCacheOptions html cache options
         */
        public function __construct($cacheKey, array $configuration, array $htmlCacheOptions)
        {
        }
        /**
         * Writes the content to the storage
         * @param string $content the string that is to be written
         * @param string $md5 the content hash
         *
         * @return bool
         */
        public abstract function write($content, $md5);
        /**
         * Returns the cache contents
         * @return string|false
         */
        public abstract function read();
        /**
         * Returns true if the cache exists
         * @return bool
         */
        public abstract function exists();
        /**
         * Deletes the cache
         * Returns the number of deleted bytes
         * @return int|false
         */
        public abstract function delete();
        /**
         * Deletes all cache data in the storage
         * @return bool
         */
        public abstract function deleteAll();
        /**
         * Returns md5 hash of the cache
         * @return string|false
         */
        public abstract function getMd5();
        /**
         * Should we count a quota limit
         * @return bool
         */
        public abstract function shouldCountQuota();
        /**
         * Returns the time the cache was last modified
         * @return int|false
         */
        public abstract function getLastModified();
        /**
         * Returns cache size
         * @return int|false
         */
        public abstract function getSize();
    }
    /**
     * Class MemcachedStorage
     * Stores html cache in a memcached
     * @package Bitrix\Main\Composite\Data
     */
    final class MemcachedStorage extends \Bitrix\Main\Composite\Data\AbstractStorage
    {
        private $memcached = null;
        private $props = null;
        private $compression = true;
        public function __construct($cacheKey, array $configuration, array $htmlCacheOptions)
        {
        }
        public function write($content, $md5)
        {
        }
        public function read()
        {
        }
        public function exists()
        {
        }
        public function delete()
        {
        }
        public function deleteAll()
        {
        }
        /**
         * Returns the md5 hash of the cache
         * @return string|false
         */
        public function getMd5()
        {
        }
        /**
         * Should we count a quota limit
         * @return bool
         */
        public function shouldCountQuota()
        {
        }
        /**
         * Returns the time the cache was last modified
         * @return int|false
         */
        public function getLastModified()
        {
        }
        /**
         * Returns the size of the cache
         *
         * @return int|false
         */
        public function getSize()
        {
        }
        /**
         * Returns an array of the cache properties
         *
         * @return \stdClass|false
         */
        protected function getProps()
        {
        }
        /**
         * Deletes the cache properties
         *
         * @return bool
         */
        protected function deleteProps()
        {
        }
        /**
         * Returns the property value
         * @param string $property the property name
         *
         * @return string|false
         */
        protected function getProp($property)
        {
        }
    }
    final class FileStorage extends \Bitrix\Main\Composite\Data\AbstractStorage
    {
        private $cacheFile = null;
        function __construct($cacheKey, array $configuration, array $htmlCacheOptions)
        {
        }
        public function write($content, $md5)
        {
        }
        public function read()
        {
        }
        public function exists()
        {
        }
        public function delete()
        {
        }
        public function deleteAll()
        {
        }
        public function getMd5()
        {
        }
        /**
         * Should we count a quota limit
         * @return bool
         */
        public function shouldCountQuota()
        {
        }
        public function getLastModified()
        {
        }
        /**
         * Returns cache size
         * @return int|false
         */
        public function getSize()
        {
        }
        public function getCacheFile()
        {
        }
        /**
         * Deletes all above html_pages
         * @param string $relativePath [optional]
         * @param int $validTime [optional] unix timestamp
         * @return float
         */
        public static function deleteRecursive($relativePath = "", $validTime = 0)
        {
        }
    }
}
namespace Bitrix\Main\Composite\Debug {
    class Logger
    {
        const TYPE_CACHE_REWRITING = "CACHE_REWRITING";
        const TYPE_COMPONENT_VOTING = "COMPONENT_VOTING";
        const TYPE_BUFFER_RESTART = "BUFFER_RESTART";
        const TYPE_CACHE_RESET = "CACHE_RESET";
        const TYPE_GET_METHOD_ONLY = "GET_METHOD_ONLY";
        const TYPE_NCC_PARAMETER = "NCC_PARAMETER";
        const TYPE_NCC_COOKIE = "NCC_COOKIE";
        const TYPE_EXCLUDE_MASK = "EXCLUDE_MASK";
        const TYPE_EXCLUDE_PARAMETER = "EXCLUDE_PARAMETER";
        const TYPE_INCLUDE_MASK = "INCLUDE_MASK";
        const TYPE_INVALID_HOST = "INVALID_HOST";
        const TYPE_INVALID_QUERY_STRING = "INVALID_QUERY_STRING";
        const TYPE_LOCAL_REDIRECT = "LOCAL_REDIRECT";
        const TYPE_ADMIN_PANEL = "ADMIN_PANEL";
        const TYPE_PHP_SHUTDOWN = "PHP_SHUTDOWN";
        const TYPE_PAGE_NOT_CACHEABLE = "PAGE_NOT_CACHEABLE";
        const TYPE_COMPOSITE_NOT_INJECTED = "COMPOSITE_NOT_INJECTED";
        const TYPE_CC_COOKIE_NOT_FOUND = "CC_COOKIE_NOT_FOUND";
        const TYPE_SESSID_PARAMETER = "SESSID_PARAMETER";
        const TYPE_AJAX_REQUEST = "AJAX_REQUEST";
        const TYPE_BITRIX_FOLDER = "BITRIX_FOLDER";
        const TYPE_CONTROLLER_FILE = "CONTROLLER_FILE";
        const TYPE_MESSAGE = "MESSAGE";
        const END_TIME_OPTION = "composite_debug_end_time";
        public static function isOn()
        {
        }
        public static function enable($endTime = 0)
        {
        }
        public static function disable()
        {
        }
        public static function getEndTime()
        {
        }
        public static function log(array $params = array())
        {
        }
        /**
         * Returns logger types
         * @return array
         */
        public static function getTypes()
        {
        }
        /**
         * Returns name for specific type. Returns null if type is invalid .
         * @param string $type Log Message Type.
         * @return null|string
         */
        public static function getTypeName($type)
        {
        }
    }
}
namespace Bitrix\Main\Search {
    abstract class SearchAction extends \Bitrix\Main\Engine\Action
    {
        public final function run($searchQuery, array $options = null, \Bitrix\Main\UI\PageNavigation $pageNavigation = null)
        {
        }
        protected final function adjustResultItem(\Bitrix\Main\Search\ResultItem $item)
        {
        }
        protected function prepareSearchQuery($searchQuery)
        {
        }
        protected function provideLimits($searchQuery, array $options = null)
        {
        }
        /**
         * Provides search results.
         *
         * @param string $searchQuery
         * @param array|null $options
         * @param PageNavigation|null $pageNavigation
         *
         * @return ResultItem[]
         */
        abstract function provideData($searchQuery, array $options = null, \Bitrix\Main\UI\PageNavigation $pageNavigation = null);
    }
    class Content
    {
        const TYPE_STRING = 1;
        const TYPE_INTEGER = 2;
        const TYPE_MIXED = 3;
        /**
         * Applies ROT13 transform to string search token, in order to bypass default mysql search blacklist.
         * @param string $token Search token.
         * @return string
         */
        public static function prepareStringToken($token)
        {
        }
        /**
         * Method adds zeros to integer search token, in order to bypass current mysql minimum of token size.
         * @param integer $token Search token.
         * @return string
         */
        public static function prepareIntegerToken($token)
        {
        }
        /**
         * Method checks whether token is a number.
         * @param integer $token Search token.
         * @return bool
         */
        public static function isIntegerToken($token)
        {
        }
        /**
         * Method check whether you can use the full-text search.
         * @param integer|string $token Search token.
         * @param integer $type Type of content.
         * @return bool
         */
        public static function canUseFulltextSearch($token, $type = self::TYPE_STRING)
        {
        }
    }
    final class ResultLimit implements \JsonSerializable
    {
        /** @var string */
        private $type;
        /** @var string */
        private $title;
        /** @var string */
        private $description;
        /** @var array */
        private $buttons = [];
        public function __construct($type, $title, $description = null)
        {
        }
        /**
         * Returns the element type. For example: lead, deal, file, folder, etc.
         *
         * @return string|null
         */
        public function getType()
        {
        }
        /**
         * Sets the element type. For example: lead, deal, file, folder, etc.
         * @param string $type
         *
         * @return $this
         */
        public function setType($type)
        {
        }
        /**
         * Returns the limit title
         *
         * @return string
         */
        public function getTitle()
        {
        }
        /**
         * Sets the limit title
         *
         * @param $title
         *
         * @return $this
         */
        public function setTitle($title)
        {
        }
        /**
         * Return the limit description
         *
         * @return string|null
         */
        public function getDescription()
        {
        }
        /**
         * Sets the limit description
         *
         * @param $description
         *
         * @return $this
         */
        public function setDescription($description)
        {
        }
        /**
         * Gets the limit buttons
         *
         * @return array
         */
        public function getButtons()
        {
        }
        /**
         * Sets the limit buttons
         *
         * @param $buttons
         *
         * @return $this
         */
        public function setButtons($buttons)
        {
        }
        /**
         * Specify data which should be serialized to JSON
         * @link https://php.net/manual/en/jsonserializable.jsonserialize.php
         * @return mixed data which can be serialized by <b>json_encode</b>,
         * which is a value of any type other than a resource.
         * @since 5.4.0
         */
        public function jsonSerialize()
        {
        }
    }
    class MapBuilder
    {
        /** @var array [search_token => true] */
        protected $tokens = array();
        /**
         * StringBuilder constructor.
         */
        public function __construct()
        {
        }
        /**
         * Creates instance of the StringBuilder
         * @return static
         */
        public static function create()
        {
        }
        /**
         * Adds arbitrary integer content to the builder.
         * @param string $token Arbitrary string.
         * @return $this.
         */
        public function addText($token)
        {
        }
        /**
         * Adds digit content to the builder.
         * @param int $token .
         * @return $this.
         */
        public function addInteger($token)
        {
        }
        /**
         * Adds phone number to the builder.
         * @param string $phone Phone number.
         * @return $this
         */
        public function addPhone($phone)
        {
        }
        /**
         * Adds email to the builder.
         * @param string $email Email.
         * @return $this
         */
        public function addEmail($email)
        {
        }
        /**
         * Adds full user name to the builder.
         * @param array|int $userId Id of the user.
         * @return $this
         */
        public function addUser($userId)
        {
        }
        /**
         * Builds search string.
         * @return string
         */
        public function build()
        {
        }
    }
    final class ResultItem implements \JsonSerializable, \ArrayAccess
    {
        /** @var mixed */
        private $id;
        /** @var string */
        private $type;
        /** @var string */
        private $title;
        /** @var Uri */
        private $showLink;
        /** @var string */
        private $module;
        /** @var string */
        private $subTitle;
        /** @var array */
        private $actions = [];
        /** @var Uri[] */
        private $links = [];
        /** @var array */
        private $attributes = [];
        /**
         * ResultItem constructor.
         *
         * @param $title
         * @param Uri|string $showLink
         * @param null $id
         */
        public function __construct($title, $showLink, $id = null)
        {
        }
        /**
         * Returns id.
         *
         * @return mixed
         */
        public function getId()
        {
        }
        /**
         * Sets id.
         * @param mixed $id
         *
         * @return ResultItem
         */
        public function setId($id)
        {
        }
        /**
         * Returns type of element. For example: lead, deal, file, folder, etc.
         * Type is unnecessary.
         *
         * @return string|null
         */
        public function getType()
        {
        }
        /**
         * Sets type of element. For example: lead, deal, file, folder, etc.
         * Type is unnecessary.
         * @param string $type
         *
         * @return ResultItem
         */
        public function setType($type)
        {
        }
        /**
         * Returns title of searched item.
         *
         * @return string
         */
        public function getTitle()
        {
        }
        /**
         * Sets title of searched item.
         * @param string $title Title.
         *
         * @return ResultItem
         */
        public function setTitle($title)
        {
        }
        /**
         * Returns link to show searched item.
         *
         * @return Uri
         */
        public function getShowLink()
        {
        }
        /**
         * Sets link to show searched item.
         * @param Uri $showLink Show link.
         *
         * @return ResultItem
         */
        public function setShowLink($showLink)
        {
        }
        /**
         * Adjusts link.
         * @param Uri|string $link Link.
         *
         * @return Uri
         */
        protected function adjustLink($link)
        {
        }
        /**
         * Returns module which provides searched item.
         *
         * @return string
         */
        public function getModule()
        {
        }
        /**
         * Sets module which provides searched item.
         * Module is unnecessary and will generate automatically.
         * @param string $module Module id.
         *
         * @return ResultItem
         */
        public function setModule($module)
        {
        }
        /**
         * Returns subtitle of searched item.
         * Subtitle is is unnecessary.
         *
         * @return string
         */
        public function getSubTitle()
        {
        }
        /**
         * Sets subtitle of searched item.
         * Subtitle is is unnecessary.
         * @param string $subTitle Subtitle.
         *
         * @return ResultItem
         */
        public function setSubTitle($subTitle)
        {
        }
        /**
         * Returns actions.
         * It's reserved field and unused.
         * @return array
         */
        public function getActions()
        {
        }
        /**
         * Returns links on searched item.
         *
         * @return Uri[]
         */
        public function getLinks()
        {
        }
        /**
         * Sets links on searched item.
         * Should be associative array.
         * @param Uri[]|string[] $links Links.
         *
         * @return ResultItem
         */
        public function setLinks(array $links)
        {
        }
        /**
         * Adds link on searched item.
         * @param string $name Name of link.
         * @param Uri|string $link Link.
         *
         * @return $this
         */
        public function addLink($name, $link)
        {
        }
        /**
         * Returns attributes.
         * @return array
         */
        public function getAttributes()
        {
        }
        /**
         * Sets attributes.
         * @param array $attributes
         *
         * @return ResultItem
         */
        public function setAttributes($attributes)
        {
        }
        /**
         * Sets value for attribute with name.
         * @param string $name
         * @param mixed $value
         *
         * @return $this
         */
        public function setAttribute($name, $value)
        {
        }
        /**
         * Deletes attribute by name.
         * @param string $name
         *
         * @return $this
         */
        public function unsetAttribute($name)
        {
        }
        /**
         * Specify data which should be serialized to JSON
         * @link https://php.net/manual/en/jsonserializable.jsonserialize.php
         * @return mixed data which can be serialized by <b>json_encode</b>,
         * which is a value of any type other than a resource.
         * @since 5.4.0
         */
        public function jsonSerialize()
        {
        }
        /**
         * Whether a offset exists
         * @link https://php.net/manual/en/arrayaccess.offsetexists.php
         *
         * @param mixed $offset <p>
         * An offset to check for.
         * </p>
         *
         * @return boolean true on success or false on failure.
         * </p>
         * <p>
         * The return value will be casted to boolean if non-boolean was returned.
         * @since 5.0.0
         */
        public function offsetExists($offset)
        {
        }
        /**
         * Offset to retrieve
         * @link https://php.net/manual/en/arrayaccess.offsetget.php
         *
         * @param mixed $offset <p>
         * The offset to retrieve.
         * </p>
         *
         * @return mixed Can return all value types.
         * @since 5.0.0
         */
        public function offsetGet($offset)
        {
        }
        /**
         * Offset to set
         * @link https://php.net/manual/en/arrayaccess.offsetset.php
         *
         * @param mixed $offset <p>
         * The offset to assign the value to.
         * </p>
         * @param mixed $value <p>
         * The value to set.
         * </p>
         *
         * @return void
         * @since 5.0.0
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * Offset to unset
         * @link https://php.net/manual/en/arrayaccess.offsetunset.php
         *
         * @param mixed $offset <p>
         * The offset to unset.
         * </p>
         *
         * @return void
         * @since 5.0.0
         */
        public function offsetUnset($offset)
        {
        }
    }
}
namespace Bitrix\Main\Annotations {
    class AnnotationReader
    {
        const RULE_FIRST_CAPITAL_LETTER = 0x1;
        protected $collectRules = self::RULE_FIRST_CAPITAL_LETTER;
        /**
         * AnnotationReader constructor.
         */
        public function __construct()
        {
        }
        public function getMethodAnnotations(\ReflectionMethod $method)
        {
        }
        private function extractParameters($string)
        {
        }
        private function extractParameter($valueInString)
        {
        }
    }
}
namespace Bitrix\Main\Type {
    class Date
    {
        /** @var \DateTime */
        protected $value;
        /**
         * @param string $date String representation of date.
         * @param string $format PHP date format. If not specified, the format is got from the current culture.
         *
         * @throws Main\ObjectException
         */
        public function __construct($date = null, $format = null)
        {
        }
        /**
         * @param string $format
         * @param string $time
         * @return array|bool
         */
        protected function parse($format, $time)
        {
        }
        /**
         * Formats date value to string.
         *
         * @param string $format PHP date format.
         *
         * @return string
         */
        public function format($format)
        {
        }
        /**
         * Produces the copy of the object.
         *
         * @return void
         */
        public function __clone()
        {
        }
        /**
         * Performs dates arithmetic.
         *
         * Each duration period is represented by an integer value followed by a period
         * designator. If the duration contains time elements, that portion of the
         * specification is preceded by the letter T.
         * Period Designators: Y - years, M - months, D - days, W - weeks, H - hours,
         * M - minutes, S - seconds.
         * Examples: two days - 2D, two seconds - T2S, six years and five minutes - 6YT5M.
         * The unit types must be entered from the largest scale unit on the left to the
         * smallest scale unit on the right.
         * Use first "-" char for negative periods.
         * OR
         * Relative period.
         * Examples: "+5 weeks", "12 day", "-7 weekdays", '3 months - 5 days'
         *
         * @param string $interval Time interval to add.
         *
         * @return $this
         */
        public function add($interval)
        {
        }
        /**
         * Sets the current date of the DateTime object to a different date.
         * @param int $year
         * @param int $month
         * @param int $day
         * 
         * @return $this
         */
        public function setDate($year, $month, $day)
        {
        }
        private function tryToCreateIntervalByDesignators($interval)
        {
        }
        /**
         * Returns Unix timestamp from date.
         *
         * @return int
         */
        public function getTimestamp()
        {
        }
        /**
         * Returns difference between dates.
         *
         * @param DateTime $time
         * @return \DateInterval
         */
        public function getDiff(\Bitrix\Main\Type\DateTime $time)
        {
        }
        /**
         * Converts a date to the string.
         *
         * @param Context\Culture $culture Culture contains date format.
         *
         * @return string
         */
        public function toString(\Bitrix\Main\Context\Culture $culture = null)
        {
        }
        /**
         * Converts a date to the string with default culture format setting.
         *
         * @return string
         */
        public function __toString()
        {
        }
        /**
         * Returns a date format from the culture in the php format.
         *
         * @param Context\Culture $culture Optional culture.
         *
         * @return string
         */
        public static function getFormat(\Bitrix\Main\Context\Culture $culture = null)
        {
        }
        /**
         * Returns short date culture format.
         *
         * @param Context\Culture $culture Culture.
         *
         * @return string
         */
        protected static function getCultureFormat(\Bitrix\Main\Context\Culture $culture = null)
        {
        }
        /**
         * Converts date format from culture to php format.
         *
         * @param string $format Format string.
         *
         * @return mixed
         */
        public static function convertFormatToPhp($format)
        {
        }
        /**
         * Checks the string for correct date (by trying to create Date object).
         *
         * @param string $time String representation of date.
         * @param string $format PHP date format. If not specified, the format is got from the current culture.
         *
         * @return bool
         */
        public static function isCorrect($time, $format = null)
        {
        }
        /**
         * Creates Date object from PHP \DateTime object.
         *
         * @param \DateTime $datetime Source object.
         *
         * @return static
         */
        public static function createFromPhp(\DateTime $datetime)
        {
        }
        /**
         * Creates Date object from Unix timestamp.
         *
         * @param int $timestamp Source timestamp.
         *
         * @return static
         */
        public static function createFromTimestamp($timestamp)
        {
        }
        /**
         * Creates Date object from Text (return array of result object)
         * Examples: "end of next week", "tomorrow morning", "friday 25.10"
         *
         * @param string $text
         * @return DateTime|null
         */
        public static function createFromText($text)
        {
        }
    }
    class DateTime extends \Bitrix\Main\Type\Date
    {
        /**
         * @param string $time String representation of datetime.
         * @param string $format PHP datetime format. If not specified, the format is got from the current culture.
         * @param \DateTimeZone $timezone Optional timezone object.
         *
         * @throws Main\ObjectException
         */
        public function __construct($time = null, $format = null, \DateTimeZone $timezone = null)
        {
        }
        public static function secondsToOffset($seconds)
        {
        }
        /**
         * Converts date to string, using Culture and global timezone settings.
         *
         * @param Context\Culture $culture Culture contains datetime format.
         *
         * @return string
         */
        public function toString(\Bitrix\Main\Context\Culture $culture = null)
        {
        }
        /**
         * Returns timezone object.
         *
         * @return \DateTimeZone
         */
        public function getTimeZone()
        {
        }
        /**
         * Sets timezone object.
         *
         * @param \DateTimeZone $timezone Timezone object.
         *
         * @return DateTime
         */
        public function setTimeZone(\DateTimeZone $timezone)
        {
        }
        /**
         * Sets default timezone.
         *
         * @return DateTime
         */
        public function setDefaultTimeZone()
        {
        }
        /**
         * @param int $hour Hour value.
         * @param int $minute Minute value.
         * @param int $second Second value.
         * @param int $microseconds Microseconds value.
         *
         * @return DateTime
         */
        public function setTime($hour, $minute, $second = 0, $microseconds = 0)
        {
        }
        /**
         * Changes time from server time to user time using global timezone settings.
         *
         * @return DateTime
         */
        public function toUserTime()
        {
        }
        /**
         * Creates DateTime object from local user time using global timezone settings and default culture.
         *
         * @param string $timeString Full or short formatted time.
         *
         * @return DateTime
         */
        public static function createFromUserTime($timeString)
        {
        }
        /**
         * Returns long (including time) date culture format.
         *
         * @param Context\Culture $culture Culture.
         *
         * @return string
         */
        protected static function getCultureFormat(\Bitrix\Main\Context\Culture $culture = null)
        {
        }
        /**
         * Creates DateTime object from PHP \DateTime object.
         *
         * @param \DateTime $datetime Source object.
         *
         * @return static
         */
        public static function createFromPhp(\DateTime $datetime)
        {
        }
        /**
         * Creates DateTime object from Unix timestamp.
         *
         * @param int $timestamp Source timestamp.
         *
         * @return static
         */
        public static function createFromTimestamp($timestamp)
        {
        }
        /**
         * Creates DateTime object from string.
         * NULL will be returned on failure.
         * @param string $timeString Full formatted time.
         * @param string $format PHP datetime format. If not specified, the format is got from the current culture.
         * @return DateTime|null
         */
        public static function tryParse($timeString, $format = null)
        {
        }
    }
}
namespace Bitrix\Main\Type\Contract {
    interface Jsonable
    {
        /**
         * @return array
         */
        public function toJson($options = 0);
    }
}
namespace Bitrix\Main\Type {
    class Collection
    {
        /**
         * Sorting array by column.
         * You can use short mode: Collection::sortByColumn($arr, 'value'); This is equal Collection::sortByColumn($arr, array('value' => SORT_ASC))
         *
         * Pay attention: if two members compare as equal, their relative order in the sorted array is undefined. The sorting is not stable.
         *
         * More example:
         * Collection::sortByColumn($arr, array('value' => array(SORT_NUMERIC, SORT_ASC), 'attr' => SORT_DESC), array('attr' => 'strlen'), 'www');
         *
         * @param array        $array
         * @param string|array $columns
         * @param string|array $callbacks
         * @param null         $defaultValueIfNotSetValue If value not set - use $defaultValueIfNotSetValue (any cols)
         * @param bool         $preserveKeys If false numeric keys will be re-indexed. If true - preserve.
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function sortByColumn(array &$array, $columns, $callbacks = '', $defaultValueIfNotSetValue = null, $preserveKeys = false)
        {
        }
        /**
         * Takes all arguments by pairs..
         * Odd arguments are arrays.
         * Even arguments are keys to lookup in these arrays.
         * Keys may be arrays. In this case function will try to dig deeper.
         * Returns first not empty element of a[k] pair.
         *
         * @param array $a array to analyze
         * @param string|int $k key to lookup
         * @param mixed $a,... unlimited array/key pairs to go through
         * @return mixed|string
         */
        public static function firstNotEmpty()
        {
        }
        /**
         * Convert array values to int, return unique values > 0. Optionally sorted array.
         *
         * @param array &$map	Array for normalize.
         * @param bool $sorted	If sorted true, result array will be sorted.
         * @return void
         */
        public static function normalizeArrayValuesByInt(&$map, $sorted = true)
        {
        }
        /**
         * Check array is associative.
         *
         * @param $array - Array for check.
         * @return bool
         */
        public static function isAssociative(array $array)
        {
        }
    }
    /**
     * Class for generating pseudo random sequences.
     * Never use it for any security or cryptographic purposes.
     *
     * <code>
     * use \Bitrix\Main\Type\RandomSequence;
     * $rs = new RandomSequence("A");
     * echo $rs->randString();
     * </code>
     */
    class RandomSequence
    {
        private $mz = 0;
        private $mw = 0;
        /**
         * Starts new sequence of pseudo random values.
         *
         * @param string $seed
         * @return void
         */
        public function __construct($seed = "")
        {
        }
        /**
         * Returns next pseudo random value from the sequence.
         * The result is signed 32 bit integer.
         *
         * @return int
         */
        public function getNext()
        {
        }
        /**
         * Returns next pseudo random number value from the sequence.
         * between $min and $max including borders.
         *
         * @param int $min
         * @param int $max
         * @return int
         * @throws \Bitrix\Main\NotSupportedException
         */
        public function rand($min, $max)
        {
        }
        /**
         * Returns next pseudo random string value from the sequence.
         *
         * @param int $length
         * @return string
         */
        public function randString($length = 10)
        {
        }
    }
    class FilterableDictionary extends \Bitrix\Main\Type\Dictionary
    {
        /**
         * @var string
         */
        protected $name;
        /**
         * @var array
         */
        protected $arRawValues = array();
        /**
         * @var IDictionaryFilter[]
         */
        protected $arFilters = array();
        /**
         * Creates object.
         *
         * @param array $values
         */
        public function __construct(array $values, $name = null)
        {
        }
        public function addFilter(\Bitrix\Main\Type\IDictionaryFilter $filter)
        {
        }
        /**
         * Returns original value of any variable by its name. Null if variable is not set.
         *
         * @param string $name
         * @return string | null
         */
        public function getRaw($name)
        {
        }
        /**
         * Offset to set
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * Offset to unset
         */
        public function offsetUnset($offset)
        {
        }
    }
}
namespace Bitrix\Main\Numerator {
    /**
     * Interface Hashable
     * @package Bitrix\Main\Numerator
     */
    interface Hashable
    {
        public function getHash();
    }
}
namespace Bitrix\Main\Numerator\Generator\Contract {
    /**
     * Interface UserConfigurable -
     * for generators that have configurations fields that can be set by users
     * generators store their settings values in db
     * @package Bitrix\Main\Numerator\Contract
     */
    interface UserConfigurable
    {
        /**
         * @param array $config
         */
        public function setConfig($config);
        /**
         * @return array of configuration fields and their values
         */
        public function getConfig();
        /**
         * @param array $config
         * @return Result
         */
        public function validateConfig($config);
        /**
         * @return array of configuration fields that can be edited by user
         */
        public static function getSettingsFields();
    }
}
namespace Bitrix\Main\Numerator\Generator {
    /**
     * Class RandomNumberGenerator - replaces random symbol's sequence in numerator template
     * @package Bitrix\Main\Numerator\Generator
     */
    class RandomNumberGenerator extends \Bitrix\Main\Numerator\Generator\NumberGenerator implements \Bitrix\Main\Numerator\Generator\Contract\UserConfigurable
    {
        protected $length;
        const TEMPLATE_WORD_RANDOM = 'RANDOM';
        /** @inheritdoc */
        public function setConfig($config)
        {
        }
        /** @inheritdoc */
        public function getConfig()
        {
        }
        /** @inheritdoc */
        public function parseTemplate($template)
        {
        }
        /** @inheritdoc */
        public static function getTemplateWordsForParse()
        {
        }
        /**
         * @return bool|string
         */
        private function generateRandomString()
        {
        }
        /**
         * @return string
         */
        public static function getAvailableForType()
        {
        }
        /** @inheritdoc */
        public static function getTemplateWordsSettings()
        {
        }
        /** @inheritdoc */
        public static function getSettingsFields()
        {
        }
        /** @inheritdoc */
        public function validateConfig($config)
        {
        }
    }
}
namespace Bitrix\Main\Numerator\Generator\Contract {
    /**
     * Interface Sequenceable
     * @package Bitrix\Main\Numerator\Generator\Contract
     */
    interface Sequenceable
    {
        /**
         * @param $numeratorId
         * @return mixed
         */
        public function getNextNumber($numeratorId);
        /**
         * @param $numeratorId
         * @param int $newNumber
         * @param $whereNumber
         * @return Result
         */
        public function setNextNumber($numeratorId, $newNumber, $whereNumber);
        /**
         * @param $numberHash
         * @return mixed
         */
        public function setNumberHash($numberHash);
    }
}
namespace Bitrix\Main\Numerator\Generator {
    /**
     * Class SequentNumberGenerator
     * @package Bitrix\Main\Numerator\Generator
     */
    class SequentNumberGenerator extends \Bitrix\Main\Numerator\Generator\NumberGenerator implements \Bitrix\Main\Numerator\Generator\Contract\Sequenceable, \Bitrix\Main\Numerator\Generator\Contract\UserConfigurable
    {
        const DAY = 'day';
        const MONTH = 'month';
        const YEAR = 'year';
        const TEMPLATE_WORD_NUMBER = 'NUMBER';
        const ERROR_SEQUENCE_NOT_SET = 'ERROR_SEQUENCE_NOT_SET';
        protected $start;
        protected $step;
        protected $length = 0;
        protected $padString = '0';
        protected $periodicBy;
        protected $timezone;
        protected $isDirectNumeration;
        protected $nowTime;
        /** value stored in database */
        protected $nextNumber;
        /** calculated value that used for template parsing */
        protected $currentNumber;
        protected $lastInvocationTime;
        protected $numeratorId;
        protected $numberHash;
        /** @inheritdoc */
        public function setConfig($config)
        {
        }
        /** @inheritdoc */
        public static function getSettingsFields()
        {
        }
        /** @inheritdoc */
        public static function getTemplateWordsSettings()
        {
        }
        /** @inheritdoc */
        public function getConfig()
        {
        }
        /**
         * @param null $numeratorId
         * @param bool $createIfEmpty
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\DB\SqlQueryException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        protected function getSettings($numeratorId = null, $createIfEmpty = true)
        {
        }
        /**
         * @return mixed
         */
        private function getNumberHash()
        {
        }
        /** @inheritdoc */
        public function parseTemplate($template)
        {
        }
        protected function saveNumeratorSequenceSettings($numeratorId, $numberHash, $fields, $whereNextNumber = null)
        {
        }
        /** @inheritdoc */
        public static function getTemplateWordsForParse()
        {
        }
        /** @inheritdoc */
        public function parseTemplateForPreview($template)
        {
        }
        private function replaceNumberInPattern($template)
        {
        }
        /** @inheritdoc */
        public function getNextNumber($numeratorId)
        {
        }
        /**
         * @return string
         */
        public static function getAvailableForType()
        {
        }
        /*** @inheritdoc */
        public function setNextNumber($numeratorId, $newNumber, $whereNumber)
        {
        }
        /**
         * set current number to its start position if generator is periodic and period has been just changed
         */
        private function resetCurrentNumberIfNeeded()
        {
        }
        /**
         * @return bool
         */
        private function isSameMonthButDifferentYear()
        {
        }
        /**
         * @param $interval
         * @return bool
         */
        private function isSameDayButDifferent($interval)
        {
        }
        /**
         * @param $interval
         * @return bool
         */
        private function isHasChanged($interval)
        {
        }
        /**
         * @return array
         */
        private static function getTimezoneSettings()
        {
        }
        private function getNowUserTime()
        {
        }
        private function getLastInvocationUserTime()
        {
        }
        private function createDateTimeInCurrentTimezone($timestamp)
        {
        }
        /** @inheritdoc */
        public function validateConfig($config)
        {
        }
        /** @inheritdoc */
        public function setNumberHash($numberHash)
        {
        }
        private function calculateNextAndCurrentNumber($initNumber)
        {
        }
    }
    /**
     * Class DateNumberGenerator - is responsible for parsing date values in numerator's template
     * @package Bitrix\Main\Numerator\Generator
     */
    class DateNumberGenerator extends \Bitrix\Main\Numerator\Generator\NumberGenerator
    {
        const TEMPLATE_WORD_YEAR = 'YEAR';
        const TEMPLATE_WORD_MONTH = 'MONTH';
        const TEMPLATE_WORD_DAY = 'DAY';
        /** @inheritdoc */
        public static function getTemplateWordsForParse()
        {
        }
        /** @inheritdoc */
        public static function getTemplateWordsSettings()
        {
        }
        /** @inheritdoc */
        public function parseTemplate($template)
        {
        }
        /**
         * @return string
         */
        public static function getAvailableForType()
        {
        }
    }
    /**
     * Class PrefixNumberGenerator - replace prefix in numerator template
     * @package Bitrix\Main\Numerator\Generator
     */
    class PrefixNumberGenerator extends \Bitrix\Main\Numerator\Generator\NumberGenerator implements \Bitrix\Main\Numerator\Generator\Contract\UserConfigurable
    {
        protected $prefix;
        const TEMPLATE_WORD_PREFIX = 'PREFIX';
        /** @inheritdoc */
        public function setConfig($config)
        {
        }
        /** @inheritdoc */
        public function getConfig()
        {
        }
        /**
         * @return string
         */
        public static function getAvailableForType()
        {
        }
        /** @inheritdoc */
        public function parseTemplate($template)
        {
        }
        /** @inheritdoc */
        public static function getTemplateWordsForParse()
        {
        }
        /** @inheritdoc */
        public static function getTemplateWordsSettings()
        {
        }
        /** @inheritdoc */
        public static function getSettingsFields()
        {
        }
        /**
         * @return string
         */
        protected static function getPrefixSettingsTitle()
        {
        }
        /** @inheritdoc */
        public function validateConfig($config)
        {
        }
    }
}
namespace Bitrix\Main\Numerator\Service {
    /**
     * Class NumeratorRequestManager
     * @package Bitrix\Main\Numerator\Model
     */
    class NumeratorRequestManager
    {
        /*** @var \Bitrix\Main\HttpRequest */
        private $request;
        /**
         * NumeratorRequestManager constructor.
         * @param \Bitrix\Main\HttpRequest $request
         */
        public function __construct($request)
        {
        }
        /**
         * @return \Bitrix\Main\Entity\AddResult|\Bitrix\Main\Entity\UpdateResult|Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function saveFromRequest()
        {
        }
        /**
         * @param $id
         * @return Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private function updateNextSequentialNumber($id)
        {
        }
    }
}
namespace Bitrix\Main\Numerator {
    /**
     * Class NumberGeneratorFactory
     * @package Bitrix\Main\Numerator
     */
    class NumberGeneratorFactory
    {
        const EVENT_GENERATOR_CLASSES_COLLECT = 'onNumberGeneratorsClassesCollect';
        /**
         * returns generator object, created based on its class
         * @param $type
         * @return mixed
         */
        public function createGeneratorByType($type)
        {
        }
        /**
         * returns array where the keys are types of generators
         * and the values are generators classes
         * @return array
         */
        public function getTypeToClassMap()
        {
        }
        /**
         * @return string[]
         */
        private function collectCustomGeneratorClasses()
        {
        }
        /**
         * returns class of generator by its type
         * @param $type
         * @return mixed|null
         */
        public function getClassByType($type)
        {
        }
        /**
         * returns all available generators classes
         * @return array
         */
        public function getClasses()
        {
        }
    }
    /**
     * Class Numerator - generates numbers based on config,
     * is used for creating random, sequential numbers, also may contain prefix, date values etc.
     * @package Bitrix\Main\Numerator
     */
    class Numerator
    {
        private $template;
        private $type;
        private $name;
        /** @var NumberGenerator[] */
        private $generators = [];
        private $id;
        const NUMERATOR_DEFAULT_TYPE = 'DEFAULT';
        const NUMERATOR_ALL_GENERATORS_TYPE = 'ALL';
        /** * @var NumberGeneratorFactory */
        protected static $numberGeneratorFactory;
        /** return empty numerator object with no configuration
         * @return static
         */
        public static function create()
        {
        }
        private function __construct()
        {
        }
        /**
         * @return NumberGeneratorFactory
         */
        protected static function getNumberGeneratorFactory()
        {
        }
        /**
         * @param $numeratorType
         * @return mixed
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getSettingsFields($numeratorType)
        {
        }
        /** For compatibility - users can defined their own type of template generation
         * @param $numeratorType
         * @return array
         */
        protected static function getUserDefinedTemplateWords($numeratorType)
        {
        }
        /**
         * @param string $type
         * @param null $sort
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getListByType($type = null, $sort = null)
        {
        }
        /** Returns numerator related fields from db by its type
         * (use it in case of only single one exists for the type)
         * @param string $type
         * @return array|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getOneByType($type = null)
        {
        }
        /** returns all template words for creating new numerator depending on its type
         * @param string $isAvailableByType
         * @return array
         * @throws \Bitrix\Main\NotImplementedException
         */
        public static function getTemplateWordsForType($isAvailableByType = null)
        {
        }
        /**
         * @param $hash
         */
        private function setNumberHashForGenerators($hash)
        {
        }
        /** return next number. If numerator has {NUMBER} in template,
         * Sequential counter value in database will be updated
         * If you need next number for preview only, use previewNextNumber
         * @param string|int $hash - you can reuse one numerator in various cases (for various companies etc.)
         * by passing different hashes to it. For Sequential number it means using independent counters for every hash
         * Hash will be ignored here, if it was already set in Load method or via setHash
         * @return string
         * @see Numerator::setHash()
         * @see Numerator::previewNextNumber()
         */
        public function getNext($hash = null)
        {
        }
        /**
         * @param $dynamicConfig
         */
        private function setDynamicConfigForGenerators($dynamicConfig)
        {
        }
        /**
         * @param $numId
         * @param $config - same configuration structure as using via setConfig method
         * @return \Bitrix\Main\Entity\AddResult|\Bitrix\Main\Entity\UpdateResult|Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\NotImplementedException
         * @throws \Bitrix\Main\ObjectException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function update($numId, $config)
        {
        }
        /**
         * @param $hashable - object that returns hash string
         * Used for Numerators containing Sequential number
         * Hash can be set once, will be ignored here, if it was already set
         * Typically hash is a string like COMPANY_64, or USER_42
         */
        public function setHash($hashable)
        {
        }
        /**
         * @param $dynamicConfig - anything (array|object|..) that will be used by DynamicConfigurable generators
         * of Numerator for parsing template and creating number
         */
        public function setDynamicConfig($dynamicConfig)
        {
        }
        /**
         * @return \Bitrix\Main\Entity\AddResult|\Bitrix\Main\Entity\UpdateResult
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function save()
        {
        }
        /**
         * @return array
         */
        private function getSettings()
        {
        }
        /** Load numerator by id
         * @param $numeratorId
         * @param $source - optional, numerator dynamicConfig for generating next number,
         * also can be Hashable ancestor for set up hash for numerator
         * @return null|static
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         * @see Numerator::getNext()
         */
        public static function load($numeratorId, $source = null)
        {
        }
        /**
         * @param $id
         * @return $this|\Bitrix\Main\Entity\DeleteResult|Result
         * @throws \Exception
         */
        public static function delete($id)
        {
        }
        /** return next number, without updating database value (for numerator with sequential number)
         * @param null $hash
         * @return string
         */
        public function previewNextNumber($hash = null)
        {
        }
        /**
         * returns next sequential number, if numerator has sequence,
         * null if it hasn't
         * not increases the sequent number
         * @param string $hash
         * @return int|null
         */
        public function previewNextSequentialNumber($hash = null)
        {
        }
        /** check if numerator has {NUMBER} in template
         * @return bool
         */
        public function hasSequentialNumber()
        {
        }
        /**
         * The only way to affect the NEXT number
         * - function forces the numerator to start counting with a given number
         * @param int $nextNumber
         * @param $whereNumber - old value of next number
         * @param string $hash
         * @return Result
         */
        public function setNextSequentialNumber($nextNumber, $whereNumber = null, $hash = null)
        {
        }
        /** return numerator's configuration with filled in values for every setting
         * @return array
         */
        public function getConfig()
        {
        }
        /** sets configuration for numerator and validates settings
         * @param $config
         * @return Result - message that can be shown to an end user
         * @throws \Bitrix\Main\NotImplementedException
         */
        public function setConfig($config)
        {
        }
        /**
         * @param $config
         * @return Result
         */
        private function setNumeratorConfig($config)
        {
        }
        private function createGenerators()
        {
        }
        /**
         * @param $config
         * @return Result
         * @throws \Bitrix\Main\NotImplementedException
         */
        private function setGeneratorsConfig($config)
        {
        }
        /** type string used as key in configuration arrays
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @param $template
         */
        protected function setTemplate($template)
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\NotImplementedException
         */
        private function getTypeToTemplateWords()
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\NotImplementedException
         */
        private function getGeneratorTypesByTemplate()
        {
        }
        /**
         * @param $generatorTypesToCreate
         * @return array
         */
        private function createGeneratorsOfTypes($generatorTypesToCreate)
        {
        }
        /**
         * @param $numeratorConfig
         * @return Result
         */
        private function validate($numeratorConfig)
        {
        }
        /**
         * @param string $template
         * @return Result
         */
        private function validateTemplate($template)
        {
        }
        /**
         * @param $isAvailableForType
         * @return int
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private static function getNextNumeratorNumber($isAvailableForType)
        {
        }
        /**
         * @param $config
         * @return Result
         */
        private function validateGeneratorsConfig($config)
        {
        }
        /**
         * @param $generator
         */
        private function addGenerator($generator)
        {
        }
        /**
         * @param $generator
         * @return string
         */
        private function getTypeOfGenerator($generator)
        {
        }
        public function getId()
        {
        }
    }
}
namespace Bitrix\Main\Data {
    /**
     * Class Connection
     *
     * Abstarct base class for data connections.
     */
    abstract class Connection
    {
        /** @var resource */
        protected $resource;
        protected $isConnected = false;
        protected $configuration;
        public function __construct(array $configuration)
        {
        }
        /**
         * Connects to data source.
         */
        public function connect()
        {
        }
        /**
         * Disconects from data source.
         */
        public function disconnect()
        {
        }
        /**
         * Returns the resource of the connection.
         *
         * @return resource
         */
        public function getResource()
        {
        }
        /**
         * Returns the state of the connection.
         *
         * @return bool
         */
        public function isConnected()
        {
        }
        protected abstract function connectInternal();
        protected abstract function disconnectInternal();
        /**
         * Returns the array with the connection parameters.
         *
         * @return array
         */
        public function getConfiguration()
        {
        }
        /**
         * Returns max packet length to send to or receive from the database server.
         *
         * @return int
         */
        public function getMaxAllowedPacket()
        {
        }
    }
}
namespace Bitrix\Main\DB {
    /**
     * Class Connection
     *
     * Base abstract class for database connections.
     * @package Bitrix\Main\DB
     */
    abstract class Connection extends \Bitrix\Main\Data\Connection
    {
        /**@var SqlHelper */
        protected $sqlHelper;
        /** @var Diag\SqlTracker */
        protected $sqlTracker;
        protected $trackSql = false;
        protected $version;
        protected $versionExpress;
        protected $host;
        protected $database;
        protected $login;
        protected $password;
        protected $initCommand = 0;
        protected $options = 0;
        protected $nodeId = 0;
        protected $utf8mb4 = array();
        protected $tableColumnsCache = array();
        protected $lastQueryResult;
        /**
         * @var bool Flag for static::query - if need to execute query or just to collect it
         * @see $disabledQueryExecutingDump
         */
        protected $queryExecutingEnabled = true;
        /** @var null|string[] Queries that were collected while Query Executing was Disabled */
        protected $disabledQueryExecutingDump;
        const PERSISTENT = 1;
        const DEFERRED = 2;
        /**
         * $configuration may contain following keys:
         * <ul>
         * <li>host
         * <li>database
         * <li>login
         * <li>password
         * <li>initCommand
         * <li>options
         * </ul>
         *
         * @param array $configuration Array of Name => Value pairs.
         */
        public function __construct(array $configuration)
        {
        }
        /**
         * @return string
         * @deprecated Use getHost()
         */
        public function getDbHost()
        {
        }
        /**
         * @return string
         * @deprecated Use getLogin()
         */
        public function getDbLogin()
        {
        }
        /**
         * @return string
         * @deprecated Use getDatabase()
         */
        public function getDbName()
        {
        }
        /**
         * Returns database host.
         *
         * @return string
         */
        public function getHost()
        {
        }
        /**
         * Returns database login.
         *
         * @return string
         */
        public function getLogin()
        {
        }
        /**
         * Returns database name.
         *
         * @return string
         */
        public function getDatabase()
        {
        }
        /**
         * Sets the connection resource directly.
         *
         * @param resource &$connection Database depended connection resource.
         *
         * @return void
         */
        public function setConnectionResourceNoDemand(&$connection)
        {
        }
        /**
         * Temporary disables query executing. All queries being collected in disabledQueryExecutingDump
         *
         * @api
         * @see enableQueryExecuting
         * @see getDisabledQueryExecutingDump
         *
         * @return void
         */
        public function disableQueryExecuting()
        {
        }
        /**
         * Enables query executing after it has been temporary disabled
         *
         * @api
         * @see disableQueryExecuting
         *
         * @return void
         */
        public function enableQueryExecuting()
        {
        }
        /**
         * @api
         * @see disableQueryExecuting
         *
         * @return bool
         */
        public function isQueryExecutingEnabled()
        {
        }
        /**
         * Returns queries that were collected while Query Executing was disabled and clears the dump.
         *
         * @api
         * @see disableQueryExecuting
         *
         * @return null|\string[]
         */
        public function getDisabledQueryExecutingDump()
        {
        }
        /**********************************************************
         * SqlHelper
         **********************************************************/
        /**
         * @return \Bitrix\Main\Db\SqlHelper
         */
        protected abstract function createSqlHelper();
        /**
         * Returns database depended SqlHelper object.
         * Creates new one on the first call per Connection object instance.
         *
         * @return \Bitrix\Main\Db\SqlHelper
         */
        public function getSqlHelper()
        {
        }
        /***********************************************************
         * Connection and disconnection
         ***********************************************************/
        /**
         * Connects to the database.
         *
         * @return void
         */
        public function connect()
        {
        }
        /**
         * Disconnects from the database.
         *
         * @return void
         */
        public function disconnect()
        {
        }
        /*********************************************************
         * Query
         *********************************************************/
        /**
         * Executes a query against connected database.
         * Rises SqlQueryException on any database error.
         * <p>
         * When object $trackerQuery passed then calls its startQuery and finishQuery
         * methods before and after query execution.
         *
         * @param string                            $sql Sql query.
         * @param array                             $binds Array of binds.
         * @param \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery Debug collector object.
         *
         * @return resource
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        protected abstract function queryInternal($sql, array $binds = null, \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery = null);
        /**
         * Returns database depended result of the query.
         *
         * @param resource $result Result of internal query function.
         * @param \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery Debug collector object.
         *
         * @return Result
         */
        protected abstract function createResult($result, \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery = null);
        /**
         * Executes a query to the database.
         *
         * - query($sql)
         * - query($sql, $limit)
         * - query($sql, $offset, $limit)
         * - query($sql, $binds)
         * - query($sql, $binds, $limit)
         * - query($sql, $binds, $offset, $limit)
         *
         * @param string $sql Sql query.
         * @param array $binds Array of binds.
         * @param int $offset Offset the of the first row to return, starting from 0.
         * @param int $limit Limit rows count.
         *
         * @return Result
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function query($sql)
        {
        }
        /**
         * Executes a query, fetches a row and returns single field value
         * from the first column of the result.
         *
         * @param string $sql Sql text.
         * @param array $binds Binding array.
         *
         * @return string|null
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function queryScalar($sql, array $binds = null)
        {
        }
        /**
         * Executes a query without returning result, i.e. INSERT, UPDATE, DELETE
         *
         * @param string $sql Sql text.
         * @param array[string]mixed $binds Binding array.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function queryExecute($sql, array $binds = null)
        {
        }
        /**
         * Helper function for parameters handling.
         *
         * @param mixed $args Variable list of parameters.
         *
         * @return array
         * @throws ArgumentNullException
         */
        protected static function parseQueryFunctionArgs($args)
        {
        }
        /**
         * Adds row to table and returns ID of the added row.
         * <p>
         * $identity parameter must be null when table does not have autoincrement column.
         *
         * @param string $tableName Name of the table for insertion of new row..
         * @param array $data Array of columnName => Value pairs.
         * @param string $identity For Oracle only.
         *
         * @return integer
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function add($tableName, array $data, $identity = "ID")
        {
        }
        /**
         * @param string $tableName
         * @param array  $rows
         * @param string $identity
         *
         * @return int
         * @throws Main\ArgumentTypeException
         * @throws SqlQueryException
         */
        public function addMulti($tableName, $rows, $identity = "ID")
        {
        }
        /**
         * @return integer
         */
        public abstract function getInsertedId();
        /**
         * Parses the string containing multiple queries and executes the queries one by one.
         * Queries delimiter depends on database type.
         * @see \Bitrix\Main\Db\SqlHelper->getQueryDelimiter
         *
         * @param string $sqlBatch String with queries, separated by database-specific delimiters.
         * @param bool $stopOnError Whether return after the first error.
         *
         * @return array Array of errors or empty array on success.
         */
        public function executeSqlBatch($sqlBatch, $stopOnError = false)
        {
        }
        /**
         * Returns affected rows count from last executed query.
         *
         * @return integer
         */
        public abstract function getAffectedRowsCount();
        /*********************************************************
         * DDL
         *********************************************************/
        /**
         * Checks if a table exists.
         *
         * @param string $tableName The table name.
         *
         * @return boolean
         */
        public abstract function isTableExists($tableName);
        /**
         * Checks if an index exists.
         * Actual columns in the index may differ from requested.
         * $columns may present an "prefix" of actual index columns.
         *
         * @param string $tableName A table name.
         * @param array  $columns An array of columns in the index.
         *
         * @return boolean
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public abstract function isIndexExists($tableName, array $columns);
        /**
         * Returns the name of an index.
         *
         * @param string $tableName A table name.
         * @param array $columns An array of columns in the index.
         * @param bool $strict The flag indicating that the columns in the index must exactly match the columns in the $arColumns parameter.
         *
         * @return string|null Name of the index or null if the index doesn't exist.
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public abstract function getIndexName($tableName, array $columns, $strict = false);
        /**
         * Returns fields objects according to the columns of a table.
         * Table must exists.
         *
         * @param string $tableName The table name.
         *
         * @return ScalarField[] An array of objects with columns information.
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public abstract function getTableFields($tableName);
        /**
         * @param string        $tableName     Name of the new table.
         * @param ScalarField[] $fields        Array with columns descriptions.
         * @param string[]      $primary       Array with primary key column names.
         * @param string[]      $autoincrement Which columns will be auto incremented ones.
         *
         * @return void
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public abstract function createTable($tableName, $fields, $primary = array(), $autoincrement = array());
        /**
         * Creates primary index on column(s)
         * @api
         *
         * @param string          $tableName Name of the table.
         * @param string|string[] $columnNames Name of the column or array of column names to be included into the index.
         *
         * @return Result
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function createPrimaryIndex($tableName, $columnNames)
        {
        }
        /**
         * Creates index on column(s)
         * @api
         *
         * @param string          $tableName Name of the table.
         * @param string          $indexName Name of the new index.
         * @param string|string[] $columnNames Name of the column or array of column names to be included into the index.
         *
         * @return Result
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function createIndex($tableName, $indexName, $columnNames)
        {
        }
        /**
         * Returns an object for the single column according to the column type.
         *
         * @param string $tableName Name of the table.
         * @param string $columnName Name of the column.
         *
         * @return ScalarField | null
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function getTableField($tableName, $columnName)
        {
        }
        /**
         * Truncates all table data
         *
         * @param string $tableName Name of the table.
         * @return Result
         */
        public function truncateTable($tableName)
        {
        }
        /**
         * Renames the table. Renamed table must exists and new name must not be occupied by any database object.
         *
         * @param string $currentName Old name of the table.
         * @param string $newName New name of the table.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public abstract function renameTable($currentName, $newName);
        /**
         * Drops a column. This column must exists and must be not the part of primary constraint.
         * and must be not the last one in the table.
         *
         * @param string $tableName Name of the table to which column will be dropped.
         * @param string $columnName Name of the column to be dropped.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function dropColumn($tableName, $columnName)
        {
        }
        /**
         * Drops the table.
         *
         * @param string $tableName Name of the table to be dropped.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public abstract function dropTable($tableName);
        /*********************************************************
         * Transaction
         *********************************************************/
        /**
         * Starts new database transaction.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public abstract function startTransaction();
        /**
         * Commits started database transaction.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public abstract function commitTransaction();
        /**
         * Rollbacks started database transaction.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public abstract function rollbackTransaction();
        /*********************************************************
         * Global named lock
         *********************************************************/
        /**
         * Sets a global named lock. Currently only Mysql is supported.
         * @param string $name The lock name.
         * @param int $timeout
         * @return bool
         */
        public function lock($name, $timeout = 0)
        {
        }
        /**
         * Releases a global named lock. Currently only Mysql is supported.
         * @param string $name The lock name.
         * @return bool
         */
        public function unlock($name)
        {
        }
        /*********************************************************
         * Tracker
         *********************************************************/
        /**
         * Starts collecting information about all queries executed.
         *
         * @param boolean $reset Clears all previously collected information when set to true.
         *
         * @return \Bitrix\Main\Diag\SqlTracker
         */
        public function startTracker($reset = false)
        {
        }
        /**
         * Stops collecting information about all queries executed.
         *
         * @return void
         */
        public function stopTracker()
        {
        }
        /**
         * Returns an object with information about queries executed.
         * or null if no tracking was started.
         *
         * @return null|\Bitrix\Main\Diag\SqlTracker
         */
        public function getTracker()
        {
        }
        /**
         * Sets new sql tracker.
         *
         * @param null|Diag\SqlTracker $sqlTracker New tracker.
         *
         * @return void
         */
        public function setTracker(\Bitrix\Main\Diag\SqlTracker $sqlTracker = null)
        {
        }
        /*********************************************************
         * Type, version, cache, etc.
         *********************************************************/
        /**
         * Returns database type.
         * <ul>
         * <li> mysql
         * <li> oracle
         * <li> mssql
         * </ul>
         *
         * @return string
         */
        public abstract function getType();
        /**
         * Returns connected database version.
         * Version presented in array of two elements.
         * - First (with index 0) is database version.
         * - Second (with index 1) is true when light/express version of database is used.
         *
         * @return array
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public abstract function getVersion();
        /**
         * Returns error message of last failed database operation.
         *
         * @return string
         */
        protected abstract function getErrorMessage();
        /**
         * Clears all internal caches which may be used by some dictionary functions.
         *
         * @return void
         */
        public function clearCaches()
        {
        }
        /**
         * Sets connection node identifier.
         *
         * @param string $nodeId Node identifier.
         * @return void
         */
        public function setNodeId($nodeId)
        {
        }
        /**
         * Returns connection node identifier.
         *
         * @return string|null
         */
        public function getNodeId()
        {
        }
        protected function afterConnected()
        {
        }
        /**
         * Returns utfmb4 flag for the specific table/column.
         *
         * @param string|null $table
         * @param string|null $column
         * @return bool
         */
        public function isUtf8mb4($table = null, $column = null)
        {
        }
    }
    abstract class SqlHelper
    {
        /** @var Connection $connection */
        protected $connection;
        protected $idCache;
        /**
         * @param Connection $connection Database connection.
         */
        public function __construct(\Bitrix\Main\DB\Connection $connection)
        {
        }
        /**
         * Returns an identificator escaping left character.
         *
         * @return string
         */
        public function getLeftQuote()
        {
        }
        /**
         * Returns an identificator escaping right character.
         *
         * @return string
         */
        public function getRightQuote()
        {
        }
        /**
         * Returns maximum length of an alias in a select statement
         *
         * @return integer
         */
        public abstract function getAliasLength();
        /**
         * Returns quoted identifier.
         * <p>
         * For example Title become :
         * - `Title` for MySQL
         * - "TITLE" for Oracle
         * - [Title] for Ms SQL
         * <p>
         * @param string $identifier Table or Column name.
         *
         * @return string
         * @see \Bitrix\Main\DB\SqlHelper::getLeftQuote
         * @see \Bitrix\Main\DB\SqlHelper::getRightQuote
         */
        public function quote($identifier)
        {
        }
        /**
         * Returns database specific query delimiter for batch processing.
         *
         * @return string
         */
        public abstract function getQueryDelimiter();
        /**
         * Escapes special characters in a string for use in an SQL statement.
         *
         * @param string $value Value to be escaped.
         * @param integer $maxLength Limits string length if set.
         *
         * @return string
         */
        public abstract function forSql($value, $maxLength = 0);
        /**
         * Returns function for getting current time.
         *
         * @return string
         */
        public abstract function getCurrentDateTimeFunction();
        /**
         * Returns function for getting current date without time part.
         *
         * @return string
         */
        public abstract function getCurrentDateFunction();
        /**
         * Returns function for adding seconds time interval to $from.
         * <p>
         * If $from is null or omitted, then current time is used.
         * <p>
         * $seconds and $from parameters are SQL unsafe.
         *
         * @param integer $seconds How many seconds to add.
         * @param integer $from Datetime database field of expression.
         *
         * @return string
         */
        public abstract function addSecondsToDateTime($seconds, $from = null);
        /**
         * Returns function cast $value to datetime database type.
         * <p>
         * $value parameter is SQL unsafe.
         *
         * @param string $value Database field or expression to cast.
         *
         * @return string
         */
        public abstract function getDatetimeToDateFunction($value);
        /**
         * Returns database expression for converting $field value according the $format.
         * <p>
         * Following format parts converted:
         * - YYYY   A full numeric representation of a year, 4 digits
         * - MMMM   A full textual representation of a month, such as January or March
         * - MM     Numeric representation of a month, with leading zeros
         * - MI     Minutes with leading zeros
         * - M      A short textual representation of a month, three letters
         * - DD     Day of the month, 2 digits with leading zeros
         * - HH     24-hour format of an hour with leading zeros
         * - H      24-hour format of an hour without leading zeros
         * - GG     12-hour format of an hour with leading zeros
         * - G      12-hour format of an hour without leading zeros
         * - SS     Seconds with leading zeros
         * - TT     AM or PM
         * - T      AM or PM
         * <p>
         * $field parameter is SQL unsafe.
         *
         * @param string $format Format string.
         * @param string $field Database field or expression.
         *
         * @return string
         */
        public abstract function formatDate($format, $field = null);
        /**
         * Returns function for getting part of string.
         * <p>
         * If length is null or omitted, the substring starting
         * from start until the end of the string will be returned.
         * <p>
         * $str and $from parameters are SQL unsafe.
         *
         * @param string $str Database field or expression.
         * @param integer $from Start position.
         * @param integer $length Maximum length.
         *
         * @return string
         */
        public function getSubstrFunction($str, $from, $length = null)
        {
        }
        /**
         * Returns function for concatenating database fields or expressions.
         * <p>
         * All parameters are SQL unsafe.
         *
         * @param string $field,... Database fields or expressions.
         *
         * @return string
         */
        public abstract function getConcatFunction();
        /**
         * Returns function for testing database field or expressions
         * against NULL value. When it is NULL then $result will be returned.
         * <p>
         * All parameters are SQL unsafe.
         *
         * @param string $expression Database field or expression for NULL test.
         * @param string $result Database field or expression to return when $expression is NULL.
         *
         * @return string
         */
        public abstract function getIsNullFunction($expression, $result);
        /**
         * Returns function for getting length of database field or expression.
         * <p>
         * $field parameter is SQL unsafe.
         *
         * @param string $field Database field or expression.
         *
         * @return string
         */
        public abstract function getLengthFunction($field);
        /**
         * Returns function for converting string value into datetime.
         * $value must be in YYYY-MM-DD HH:MI:SS format.
         * <p>
         * $value parameter is SQL unsafe.
         *
         * @param string $value String in YYYY-MM-DD HH:MI:SS format.
         *
         * @return string
         * @see \Bitrix\Main\DB\MssqlSqlHelper::formatDate
         */
        public abstract function getCharToDateFunction($value);
        /**
         * Returns function for converting database field or expression into string.
         * <p>
         * Result string will be in YYYY-MM-DD HH:MI:SS format.
         * <p>
         * $fieldName parameter is SQL unsafe.
         *
         * @param string $fieldName Database field or expression.
         *
         * @return string
         * @see \Bitrix\Main\DB\MssqlSqlHelper::formatDate
         */
        public abstract function getDateToCharFunction($fieldName);
        /**
         * Returns CAST expression for converting field or expression into string
         *
         * @param string $fieldName
         *
         * @return string
         */
        public abstract function castToChar($fieldName);
        /**
         * Returns expression for text field being used in group or order
         * @see \Bitrix\Main\ORM\Query\Query::buildGroup
         * @see \Bitrix\Main\ORM\Query\Query::buildOrder
         *
         * @param string $fieldName
         *
         * @return string
         */
        public abstract function softCastTextToChar($fieldName);
        /**
         * Transforms Sql according to $limit and $offset limitations.
         * <p>
         * You must specify $limit when $offset is set.
         *
         * @param string $sql Sql text.
         * @param integer $limit Maximum number of rows to return.
         * @param integer $offset Offset of the first row to return, starting from 0.
         *
         * @return string
         * @throws Main\ArgumentException
         */
        public abstract function getTopSql($sql, $limit, $offset = 0);
        /**
         * Builds the strings for the SQL INSERT command for the given table.
         *
         * @param string $tableName A table name.
         * @param array  $fields    Array("column" => $value)[].
         *
         * @param bool   $returnAsArray
         *
         * @return array (columnList, valueList, binds)
         * @throws Main\ArgumentTypeException
         * @throws SqlQueryException
         */
        public function prepareInsert($tableName, array $fields, $returnAsArray = false)
        {
        }
        /**
         * Builds the strings for the SQL UPDATE command for the given table.
         *
         * @param string $tableName A table name.
         * @param array $fields Array("column" => $value)[].
         *
         * @return array (update, binds)
         */
        public function prepareUpdate($tableName, array $fields)
        {
        }
        /**
         * Builds the strings for the SQL MERGE command for the given table.
         *
         * @param string $tableName A table name.
         * @param array $primaryFields Array("column")[] Primary key columns list.
         * @param array $insertFields Array("column" => $value)[] What to insert.
         * @param array $updateFields Array("column" => $value)[] How to update.
         *
         * @return array (merge)
         */
        public abstract function prepareMerge($tableName, array $primaryFields, array $insertFields, array $updateFields);
        /**
         * Performs additional processing of CLOB fields.
         *
         * @param ORM\Fields\ScalarField[] $tableFields Table fields.
         * @param array                    $fields      Data fields.
         *
         * @return array
         */
        protected function prepareBinds(array $tableFields, array $fields)
        {
        }
        /**
         * Builds the string for the SQL assignment operation of the given column.
         *
         * @param string $tableName A table name.
         * @param string $columnName A column name.
         * @param string $value A value to assign.
         *
         * @return string
         */
        public function prepareAssignment($tableName, $columnName, $value)
        {
        }
        /**
         * Converts values to the string according to the column type to use it in a SQL query.
         *
         * @param mixed                $value Value to be converted.
         * @param ORM\Fields\IReadable $field Type "source".
         *
         * @return string Value to write to column.
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function convertToDb($value, \Bitrix\Main\ORM\Fields\IReadable $field = null)
        {
        }
        /**
         * Returns $value converted to an type according to $field type.
         * <p>
         * For example if $field is Entity\DatetimeField then returned value will be instance of Type\DateTime.
         *
         * @param mixed                $value Value to be converted.
         * @param ORM\Fields\IReadable $field Type "source".
         *
         * @return mixed
         */
        public function convertFromDb($value, \Bitrix\Main\ORM\Fields\IReadable $field)
        {
        }
        /**
         * Converts value to the string according to the data type to use it in a SQL query.
         *
         * @param mixed $value Value to be converted.
         *
         * @return string Value to write to column.
         */
        public function convertToDbInteger($value)
        {
        }
        /**
         * @param $value
         *
         * @return int
         */
        public function convertFromDbInteger($value)
        {
        }
        /**
         * Converts value to the string according to the data type to use it in a SQL query.
         *
         * @param mixed $value Value to be converted.
         * @param int|null $scale Precise to round float value.
         *
         * @return string Value to write to column.
         */
        public function convertToDbFloat($value, $scale = null)
        {
        }
        /**
         * @param      $value
         * @param int $scale
         *
         * @return float
         */
        public function convertFromDbFloat($value, $scale = null)
        {
        }
        /**
         * Converts value to the string according to the data type to use it in a SQL query.
         *
         * @param mixed $value Value to be converted.
         * @param int|null $length Maximum acceptable length of the value
         *
         * @return string Value to write to column.
         */
        public function convertToDbString($value, $length = null)
        {
        }
        /**
         * @param string $value
         * @param int $length
         *
         * @return string
         */
        public function convertFromDbString($value, $length = null)
        {
        }
        /**
         * Converts value to the string according to the data type to use it in a SQL query.
         *
         * @param mixed $value Value to be converted.
         *
         * @return string Value to write to column.
         */
        public function convertToDbText($value)
        {
        }
        /**
         * @param $value
         *
         * @return string
         */
        public function convertFromDbText($value)
        {
        }
        /**
         * Converts value to the string according to the data type to use it in a SQL query.
         *
         * @param mixed $value Value to be converted.
         *
         * @return string Value to write to column.
         * @throws Main\ArgumentTypeException
         */
        public function convertToDbDate($value)
        {
        }
        /**
         * @param $value
         *
         * @return Type\Date
         * @throws Main\ObjectException
         */
        public function convertFromDbDate($value)
        {
        }
        /**
         * Converts value to the string according to the data type to use it in a SQL query.
         *
         * @param mixed $value Value to be converted.
         *
         * @return string Value to write to column.
         * @throws Main\ArgumentTypeException
         */
        public function convertToDbDateTime($value)
        {
        }
        /**
         * @param $value
         *
         * @return Type\DateTime
         * @throws Main\ObjectException
         */
        public function convertFromDbDateTime($value)
        {
        }
        /**
         * Returns callback to be called for a field value on fetch.
         * Used for soft conversion. For strict results @see ORM\Query\Result::setStrictValueConverters()
         *
         * @param ORM\Fields\ScalarField $field Type "source".
         *
         * @return false|callback
         */
        public function getConverter(\Bitrix\Main\ORM\Fields\ScalarField $field)
        {
        }
        /**
         * Returns a column type according to ScalarField object.
         *
         * @param \Bitrix\Main\ORM\Fields\ScalarField $field Type "source".
         *
         * @return string
         */
        public abstract function getColumnTypeByField(\Bitrix\Main\ORM\Fields\ScalarField $field);
        /**
         * Returns instance of a descendant from Entity\ScalarField
         * that matches database type.
         *
         * @param string $name Database column name.
         * @param mixed $type Database specific type.
         * @param array $parameters Additional information.
         *
         * @return \Bitrix\Main\ORM\Fields\ScalarField
         */
        public abstract function getFieldByColumnType($name, $type, array $parameters = null);
        /**
         * Returns ascending order specifier for ORDER BY clause.
         *
         * @return string
         */
        public function getAscendingOrder()
        {
        }
        /**
         * Returns descending order specifier for ORDER BY clause.
         *
         * @return string
         */
        public function getDescendingOrder()
        {
        }
    }
    class OracleSqlHelper extends \Bitrix\Main\DB\SqlHelper
    {
        /**
         * Returns an identificator escaping left character.
         *
         * @return string
         */
        public function getLeftQuote()
        {
        }
        /**
         * Returns an identificator escaping right character.
         *
         * @return string
         */
        public function getRightQuote()
        {
        }
        /**
         * Returns maximum length of an alias in a select statement
         *
         * @return integer
         */
        public function getAliasLength()
        {
        }
        /**
         * Returns quoted identifier.
         *
         * @param string $identifier Table or Column name.
         *
         * @return string
         * @see \Bitrix\Main\DB\SqlHelper::quote
         */
        public function quote($identifier)
        {
        }
        /**
         * Returns database specific query delimiter for batch processing.
         *
         * @return string
         */
        public function getQueryDelimiter()
        {
        }
        /**
         * Escapes special characters in a string for use in an SQL statement.
         *
         * @param string $value Value to be escaped.
         * @param integer $maxLength Limits string length if set.
         *
         * @return string
         */
        function forSql($value, $maxLength = 0)
        {
        }
        /**
         * Returns function for getting current time.
         *
         * @return string
         */
        public function getCurrentDateTimeFunction()
        {
        }
        /**
         * Returns function for getting current date without time part.
         *
         * @return string
         */
        public function getCurrentDateFunction()
        {
        }
        /**
         * Returns function for adding seconds time interval to $from.
         * <p>
         * If $from is null or omitted, then current time is used.
         * <p>
         * $seconds and $from parameters are SQL unsafe.
         *
         * @param integer $seconds How many seconds to add.
         * @param integer $from Datetime database field of expression.
         *
         * @return string
         */
        public function addSecondsToDateTime($seconds, $from = null)
        {
        }
        /**
         * Returns function cast $value to datetime database type.
         * <p>
         * $value parameter is SQL unsafe.
         *
         * @param string $value Database field or expression to cast.
         *
         * @return string
         */
        public function getDatetimeToDateFunction($value)
        {
        }
        /**
         * Returns database expression for converting $field value according the $format.
         * <p>
         * Following format parts converted:
         * - YYYY   A full numeric representation of a year, 4 digits
         * - MMMM   A full textual representation of a month, such as January or March
         * - MM     Numeric representation of a month, with leading zeros
         * - MI     Minutes with leading zeros
         * - M      A short textual representation of a month, three letters
         * - DD     Day of the month, 2 digits with leading zeros
         * - HH     24-hour format of an hour with leading zeros
         * - H      24-hour format of an hour without leading zeros
         * - GG     12-hour format of an hour with leading zeros
         * - G      12-hour format of an hour without leading zeros
         * - SS     Seconds with leading zeros
         * - TT     AM or PM
         * - T      AM or PM
         * <p>
         * $field parameter is SQL unsafe.
         *
         * @param string $format Format string.
         * @param string $field Database field or expression.
         *
         * @return string
         */
        public function formatDate($format, $field = null)
        {
        }
        /**
         * Returns function for concatenating database fields or expressions.
         * <p>
         * All parameters are SQL unsafe.
         *
         * @param string $field,... Database fields or expressions.
         *
         * @return string
         */
        public function getConcatFunction()
        {
        }
        /**
         * Returns function for testing database field or expressions
         * against NULL value. When it is NULL then $result will be returned.
         * <p>
         * All parameters are SQL unsafe.
         *
         * @param string $expression Database field or expression for NULL test.
         * @param string $result Database field or expression to return when $expression is NULL.
         *
         * @return string
         */
        public function getIsNullFunction($expression, $result)
        {
        }
        /**
         * Returns function for getting length of database field or expression.
         * <p>
         * $field parameter is SQL unsafe.
         *
         * @param string $field Database field or expression.
         *
         * @return string
         */
        public function getLengthFunction($field)
        {
        }
        /**
         * Returns function for converting string value into datetime.
         * $value must be in YYYY-MM-DD HH:MI:SS format.
         * <p>
         * $value parameter is SQL unsafe.
         *
         * @param string $value String in YYYY-MM-DD HH:MI:SS format.
         *
         * @return string
         * @see \Bitrix\Main\DB\MssqlSqlHelper::formatDate
         */
        public function getCharToDateFunction($value)
        {
        }
        /**
         * Returns function for converting database field or expression into string.
         * <p>
         * Result string will be in YYYY-MM-DD HH:MI:SS format.
         * <p>
         * $fieldName parameter is SQL unsafe.
         *
         * @param string $fieldName Database field or expression.
         *
         * @return string
         * @see \Bitrix\Main\DB\MssqlSqlHelper::formatDate
         */
        public function getDateToCharFunction($fieldName)
        {
        }
        /**
         * Performs additional processing of CLOB fields.
         *
         * @param ScalarField[] $tableFields Table fields.
         * @param array         $fields      Data fields.
         *
         * @return array
         */
        protected function prepareBinds(array $tableFields, array $fields)
        {
        }
        /**
         * Returns callback to be called for a field value on fetch.
         * Used for soft conversion. For strict results @see ORM\Query\Result::setStrictValueConverters()
         *
         * @param ScalarField $field Type "source".
         *
         * @return false|callback
         */
        public function getConverter(\Bitrix\Main\ORM\Fields\ScalarField $field)
        {
        }
        /**
         * @deprecated
         * Converts string into \Bitrix\Main\Type\DateTime object.
         * <p>
         * Helper function.
         *
         * @param string $value Value fetched.
         *
         * @return null|\Bitrix\Main\Type\DateTime
         * @see \Bitrix\Main\Db\OracleSqlHelper::getConverter
         */
        public function convertDatetimeField($value)
        {
        }
        /**
         * @param $value
         *
         * @return Type\DateTime
         * @throws Main\ObjectException
         */
        public function convertFromDbDateTime($value)
        {
        }
        /**
         * @deprecated
         * Converts lob object into string.
         * <p>
         * Helper function.
         *
         * @param string $value Value fetched.
         *
         * @return null|string
         * @see \Bitrix\Main\Db\OracleSqlHelper::getConverter
         */
        public function convertTextField($value)
        {
        }
        /**
         * @param $value
         *
         * @return string
         */
        public function convertFromDbText($value)
        {
        }
        /**
         * @inheritdoc
         */
        public function convertToDbText($value)
        {
        }
        /**
         * @deprecated
         * Converts string into \Bitrix\Main\Type\Date object if string has datetime specific format..
         * <p>
         * Helper function.
         *
         * @param string $value Value fetched.
         *
         * @return null|\Bitrix\Main\Type\DateTime
         * @see \Bitrix\Main\Db\OracleSqlHelper::getConverter
         */
        public function convertStringField($value)
        {
        }
        /**
         * @param string $value
         * @param null   $length
         *
         * @return Type\DateTime|string
         * @throws Main\ObjectException
         */
        public function convertFromDbString($value, $length = null)
        {
        }
        /**
         * {@inheritDoc}
         *
         * @param string $fieldName
         *
         * return string
         */
        public function castToChar($fieldName)
        {
        }
        /**
         * {@inheritDoc}
         *
         * @param string $fieldName
         *
         * return string
         */
        public function softCastTextToChar($fieldName)
        {
        }
        /**
         * Returns a column type according to ScalarField object.
         *
         * @param ScalarField $field Type "source".
         *
         * @return string
         */
        public function getColumnTypeByField(\Bitrix\Main\ORM\Fields\ScalarField $field)
        {
        }
        /**
         * Returns instance of a descendant from Entity\ScalarField
         * that matches database type.
         *
         * @param string $name Database column name.
         * @param mixed $type Database specific type.
         * @param array $parameters Additional information.
         *
         * @return ScalarField
         */
        public function getFieldByColumnType($name, $type, array $parameters = null)
        {
        }
        /**
         * Transforms Sql according to $limit and $offset limitations.
         * <p>
         * You must specify $limit when $offset is set.
         *
         * @param string $sql Sql text.
         * @param integer $limit Maximum number of rows to return.
         * @param integer $offset Offset of the first row to return, starting from 0.
         *
         * @return string
         * @throws Main\ArgumentException
         */
        public function getTopSql($sql, $limit, $offset = 0)
        {
        }
        /**
         * Returns ascending order specifier for ORDER BY clause.
         *
         * @return string
         */
        public function getAscendingOrder()
        {
        }
        /**
         * Returns descending order specifier for ORDER BY clause.
         *
         * @return string
         */
        public function getDescendingOrder()
        {
        }
        /**
         * Builds the strings for the SQL MERGE command for the given table.
         *
         * @param string $tableName A table name.
         * @param array $primaryFields Array("column")[] Primary key columns list.
         * @param array $insertFields Array("column" => $value)[] What to insert.
         * @param array $updateFields Array("column" => $value)[] How to update.
         *
         * @return array (merge)
         */
        public function prepareMerge($tableName, array $primaryFields, array $insertFields, array $updateFields)
        {
        }
    }
    abstract class MysqlCommonConnection extends \Bitrix\Main\DB\Connection
    {
        const INDEX_UNIQUE = 'UNIQUE';
        const INDEX_FULLTEXT = 'FULLTEXT';
        const INDEX_SPATIAL = 'SPATIAL';
        protected $engine = "";
        /**
         * @inheritDoc
         */
        public function __construct(array $configuration)
        {
        }
        /**
         * @inheritDoc
         */
        public function isTableExists($tableName)
        {
        }
        /**
         * @inheritDoc
         */
        public function isIndexExists($tableName, array $columns)
        {
        }
        /**
         * @inheritDoc
         */
        public function getIndexName($tableName, array $columns, $strict = false)
        {
        }
        /**
         * @inheritDoc
         */
        public function getTableFields($tableName)
        {
        }
        /**
         * @inheritDoc
         */
        public function createTable($tableName, $fields, $primary = array(), $autoincrement = array())
        {
        }
        /**
         * Creates index on column(s)
         * @api
         *
         * @param string          $tableName     Name of the table.
         * @param string          $indexName     Name of the new index.
         * @param string|string[] $columnNames   Name of the column or array of column names to be included into the index.
         * @param string[]        $columnLengths Array of column names and maximum length for them.
         * @param null            $indexType
         *
         * @return Result
         * @throws SqlQueryException
         */
        public function createIndex($tableName, $indexName, $columnNames, $columnLengths = null, $indexType = null)
        {
        }
        /**
         * @inheritDoc
         */
        public function renameTable($currentName, $newName)
        {
        }
        /**
         * @inheritDoc
         */
        public function dropTable($tableName)
        {
        }
        /*********************************************************
         * Transaction
         *********************************************************/
        /**
         * @inheritDoc
         */
        public function startTransaction()
        {
        }
        /**
         * @inheritDoc
         */
        public function commitTransaction()
        {
        }
        /**
         * @inheritDoc
         */
        public function rollbackTransaction()
        {
        }
        /*********************************************************
         * Global named lock
         *********************************************************/
        /**
         * @inheritDoc
         */
        public function lock($name, $timeout = 0)
        {
        }
        /**
         * @inheritDoc
         */
        public function unlock($name)
        {
        }
        protected function getLockName($name)
        {
        }
        /*********************************************************
         * Type, version, cache, etc.
         *********************************************************/
        /**
         * Sets default storage engine for all consequent CREATE TABLE statements and all other relevant DDL.
         * Storage engine read from .settings.php file. It is 'engine' key of the 'default' from the 'connections'.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function setStorageEngine()
        {
        }
        /**
         * Selects the default database for database queries.
         *
         * @param string $database Database name.
         * @return bool
         */
        public abstract function selectDatabase($database);
        /**
         * Returns max packet length to send to or receive from the database server.
         *
         * @return int
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function getMaxAllowedPacket()
        {
        }
    }
    class MysqliConnection extends \Bitrix\Main\DB\MysqlCommonConnection
    {
        /**********************************************************
         * SqlHelper
         **********************************************************/
        /**
         * @return SqlHelper
         */
        protected function createSqlHelper()
        {
        }
        /***********************************************************
         * Connection and disconnection
         ***********************************************************/
        /**
         * Establishes a connection to the database.
         * Includes php_interface/after_connect_d7.php on success.
         * Throws exception on failure.
         *
         * @return void
         * @throws \Bitrix\Main\DB\ConnectionException
         */
        protected function connectInternal()
        {
        }
        /**
         * Disconnects from the database.
         * Does nothing if there was no connection established.
         *
         * @return void
         */
        protected function disconnectInternal()
        {
        }
        /*********************************************************
         * Query
         *********************************************************/
        /**
         * Executes a query against connected database.
         * Rises SqlQueryException on any database error.
         * <p>
         * When object $trackerQuery passed then calls its startQuery and finishQuery
         * methods before and after query execution.
         *
         * @param string                            $sql Sql query.
         * @param array                             $binds Array of binds.
         * @param \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery Debug collector object.
         *
         * @return resource
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        protected function queryInternal($sql, array $binds = null, \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery = null)
        {
        }
        /**
         * Returns database depended result of the query.
         *
         * @param resource $result Result of internal query function.
         * @param \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery Debug collector object.
         *
         * @return Result
         */
        protected function createResult($result, \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery = null)
        {
        }
        /**
         * @return integer
         */
        public function getInsertedId()
        {
        }
        /**
         * Returns affected rows count from last executed query.
         *
         * @return integer
         */
        public function getAffectedRowsCount()
        {
        }
        /*********************************************************
         * Type, version, cache, etc.
         *********************************************************/
        /**
         * Returns database type.
         * <ul>
         * <li> mysql
         * </ul>
         *
         * @return string
         * @see \Bitrix\Main\DB\Connection::getType
         */
        public function getType()
        {
        }
        /**
         * Returns connected database version.
         * Version presented in array of two elements.
         * - First (with index 0) is database version.
         * - Second (with index 1) is true when light/express version of database is used.
         *
         * @return array
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function getVersion()
        {
        }
        /**
         * Returns error message of last failed database operation.
         *
         * @return string
         */
        protected function getErrorMessage()
        {
        }
        /**
         * Selects the default database for database queries.
         *
         * @param string $database Database name.
         * @return bool
         */
        public function selectDatabase($database)
        {
        }
    }
    abstract class MysqlCommonSqlHelper extends \Bitrix\Main\DB\SqlHelper
    {
        /**
         * Returns an identificator escaping left character.
         *
         * @return string
         */
        public function getLeftQuote()
        {
        }
        /**
         * Returns an identificator escaping right character.
         *
         * @return string
         */
        public function getRightQuote()
        {
        }
        /**
         * Returns maximum length of an alias in a select statement
         *
         * @return integer
         */
        public function getAliasLength()
        {
        }
        /**
         * Returns database specific query delimiter for batch processing.
         *
         * @return string
         */
        public function getQueryDelimiter()
        {
        }
        /**
         * Returns function for getting current time.
         *
         * @return string
         */
        public function getCurrentDateTimeFunction()
        {
        }
        /**
         * Returns function for getting current date without time part.
         *
         * @return string
         */
        public function getCurrentDateFunction()
        {
        }
        /**
         * Returns function for adding seconds time interval to $from.
         * <p>
         * If $from is null or omitted, then current time is used.
         * <p>
         * $seconds and $from parameters are SQL unsafe.
         *
         * @param integer $seconds How many seconds to add.
         * @param integer $from Datetime database field of expression.
         *
         * @return string
         */
        public function addSecondsToDateTime($seconds, $from = null)
        {
        }
        /**
         * Returns function cast $value to datetime database type.
         * <p>
         * $value parameter is SQL unsafe.
         *
         * @param string $value Database field or expression to cast.
         *
         * @return string
         */
        public function getDatetimeToDateFunction($value)
        {
        }
        /**
         * Returns database expression for converting $field value according the $format.
         * <p>
         * Following format parts converted:
         * - YYYY   A full numeric representation of a year, 4 digits
         * - MMMM   A full textual representation of a month, such as January or March
         * - MM     Numeric representation of a month, with leading zeros
         * - MI     Minutes with leading zeros
         * - M      A short textual representation of a month, three letters
         * - DD     Day of the month, 2 digits with leading zeros
         * - HH     24-hour format of an hour with leading zeros
         * - H      24-hour format of an hour without leading zeros
         * - GG     12-hour format of an hour with leading zeros
         * - G      12-hour format of an hour without leading zeros
         * - SS     Seconds with leading zeros
         * - TT     AM or PM
         * - T      AM or PM
         * <p>
         * $field parameter is SQL unsafe.
         *
         * @param string $format Format string.
         * @param string $field Database field or expression.
         *
         * @return string
         */
        public function formatDate($format, $field = null)
        {
        }
        /**
         * Returns function for concatenating database fields or expressions.
         * <p>
         * All parameters are SQL unsafe.
         *
         * @param string $field,... Database fields or expressions.
         *
         * @return string
         */
        public function getConcatFunction()
        {
        }
        /**
         * Returns function for testing database field or expressions
         * against NULL value. When it is NULL then $result will be returned.
         * <p>
         * All parameters are SQL unsafe.
         *
         * @param string $expression Database field or expression for NULL test.
         * @param string $result Database field or expression to return when $expression is NULL.
         *
         * @return string
         */
        public function getIsNullFunction($expression, $result)
        {
        }
        /**
         * Returns function for getting length of database field or expression.
         * <p>
         * $field parameter is SQL unsafe.
         *
         * @param string $field Database field or expression.
         *
         * @return string
         */
        public function getLengthFunction($field)
        {
        }
        /**
         * Returns function for converting string value into datetime.
         * $value must be in YYYY-MM-DD HH:MI:SS format.
         * <p>
         * $value parameter is SQL unsafe.
         *
         * @param string $value String in YYYY-MM-DD HH:MI:SS format.
         *
         * @return string
         * @see \Bitrix\Main\DB\MssqlSqlHelper::formatDate
         */
        public function getCharToDateFunction($value)
        {
        }
        /**
         * Returns function for converting database field or expression into string.
         * <p>
         * Result string will be in YYYY-MM-DD HH:MI:SS format.
         * <p>
         * $fieldName parameter is SQL unsafe.
         *
         * @param string $fieldName Database field or expression.
         *
         * @return string
         * @see \Bitrix\Main\DB\MssqlSqlHelper::formatDate
         */
        public function getDateToCharFunction($fieldName)
        {
        }
        /**
         * Returns callback to be called for a field value on fetch.
         * Used for soft conversion. For strict results @see Entity\Query\Result::setStrictValueConverters()
         *
         * @param ScalarField $field Type "source".
         *
         * @return false|callback
         */
        public function getConverter(\Bitrix\Main\ORM\Fields\ScalarField $field)
        {
        }
        /**
         * @deprecated
         * Converts string into \Bitrix\Main\Type\DateTime object.
         * <p>
         * Helper function.
         *
         * @param string $value Value fetched.
         *
         * @return null|\Bitrix\Main\Type\DateTime
         * @see \Bitrix\Main\Db\MysqlCommonSqlHelper::getConverter
         */
        public function convertDatetimeField($value)
        {
        }
        /**
         * @param $value
         *
         * @return Type\DateTime|null
         * @throws Main\ObjectException
         */
        public function convertFromDbDateTime($value)
        {
        }
        /**
         * @deprecated
         * Converts string into \Bitrix\Main\Type\Date object.
         * <p>
         * Helper function.
         *
         * @param string $value Value fetched.
         *
         * @return null|\Bitrix\Main\Type\Date
         * @see \Bitrix\Main\Db\MysqlCommonSqlHelper::getConverter
         */
        public function convertDateField($value)
        {
        }
        /**
         * @param $value
         *
         * @return Type\Date|null
         * @throws Main\ObjectException
         */
        public function convertFromDbDate($value)
        {
        }
        /**
         * {@inheritDoc}
         *
         * @param string $fieldName
         *
         * return string
         */
        public function castToChar($fieldName)
        {
        }
        /**
         * {@inheritDoc}
         *
         * @param string $fieldName
         *
         * return string
         */
        public function softCastTextToChar($fieldName)
        {
        }
        /**
         * Returns a column type according to ScalarField object.
         *
         * @param ScalarField $field Type "source".
         *
         * @return string
         */
        public function getColumnTypeByField(\Bitrix\Main\ORM\Fields\ScalarField $field)
        {
        }
        /**
         * Transforms Sql according to $limit and $offset limitations.
         * <p>
         * You must specify $limit when $offset is set.
         *
         * @param string $sql Sql text.
         * @param integer $limit Maximum number of rows to return.
         * @param integer $offset Offset of the first row to return, starting from 0.
         *
         * @return string
         * @throws Main\ArgumentException
         */
        public function getTopSql($sql, $limit, $offset = 0)
        {
        }
        /**
         * Builds the strings for the SQL MERGE command for the given table.
         *
         * @param string $tableName A table name.
         * @param array $primaryFields Array("column")[] Primary key columns list.
         * @param array $insertFields Array("column" => $value)[] What to insert.
         * @param array $updateFields Array("column" => $value)[] How to update.
         *
         * @return array (merge)
         */
        public function prepareMerge($tableName, array $primaryFields, array $insertFields, array $updateFields)
        {
        }
    }
    class MysqlSqlHelper extends \Bitrix\Main\DB\MysqlCommonSqlHelper
    {
        /**
         * Escapes special characters in a string for use in an SQL statement.
         *
         * @param string $value Value to be escaped.
         * @param integer $maxLength Limits string length if set.
         *
         * @return string
         */
        public function forSql($value, $maxLength = 0)
        {
        }
        /**
         * Returns instance of a descendant from Entity\ScalarField
         * that matches database type.
         *
         * @param string $name Database column name.
         * @param mixed $type Database specific type.
         * @param array $parameters Additional information.
         *
         * @return \Bitrix\Main\ORM\Fields\ScalarField
         */
        public function getFieldByColumnType($name, $type, array $parameters = null)
        {
        }
    }
    /**
     * Class Paginator
     *
     * @deprecated To be removed soon. Don't use it.
     * @package Bitrix\Main\DB
     */
    class Paginator
    {
        /**
         * Makes offset and limit calculations and executes limited query against $connection.
         *
         * @param string $sql Sql query.
         * @param Connection $connection Database connection for query execution.
         * @param integer $numberOfRecords Total number of records returned by Sql query.
         * @param integer $pageNumber Page to be displayed.
         * @param integer $numberOfRecordsPerPage Page size.
         * @param boolean $backward Use backward paging.
         *
         * @return Result
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public static function query($sql, \Bitrix\Main\DB\Connection $connection, $numberOfRecords, $pageNumber, $numberOfRecordsPerPage, $backward = false)
        {
        }
        /**
         * Returns two element array with offset and limit based on paging parameters.
         *
         * @param integer $numberOfRecords Total number of records returned by Sql query.
         * @param integer $pageNumber Page to be displayed.
         * @param integer $numberOfRecordsPerPage Page size.
         * @param boolean $backward Use backward paging.
         *
         * @return array
         */
        public static function calculateQueryLimits($numberOfRecords, $pageNumber, $numberOfRecordsPerPage, $backward)
        {
        }
    }
    /**
     * Class Exception is used for all exceptions thrown in database.
     *
     * @see \Bitrix\Main\DB\Exception::__construct
     * @package Bitrix\Main\DB
     */
    class Exception extends \Bitrix\Main\SystemException
    {
        /** @var string */
        protected $databaseMessage;
        /**
         * @param string $message Application message.
         * @param string $databaseMessage Database reason.
         * @param \Exception $previous The previous exception used for the exception chaining.
         */
        public function __construct($message = "", $databaseMessage = "", \Exception $previous = null)
        {
        }
        /**
         * Returns database specific message provided to the constructor.
         *
         * @return string
         */
        public function getDatabaseMessage()
        {
        }
    }
    /**
     * Exception is thrown when database returns a error.
     *
     * @see \Bitrix\Main\DB\SqlException::__construct
     * @package Bitrix\Main\DB
     */
    class SqlException extends \Bitrix\Main\DB\Exception
    {
        /**
         * @param string $message Application message.
         * @param string $databaseMessage Database reason.
         * @param \Exception $previous The previous exception used for the exception chaining.
         */
        public function __construct($message = "", $databaseMessage = "", \Exception $previous = null)
        {
        }
    }
    /**
     * Exception is thrown when database returns a error on query execution.
     *
     * @see \Bitrix\Main\DB\SqlQueryException::__construct
     * @package Bitrix\Main\DB
     */
    class SqlQueryException extends \Bitrix\Main\DB\SqlException
    {
        /** @var string */
        protected $query = "";
        /**
         * @param string $message Application message.
         * @param string $databaseMessage Database reason.
         * @param string $query Sql query text.
         * @param \Exception $previous The previous exception used for the exception chaining.
         */
        public function __construct($message = "", $databaseMessage = "", $query = "", \Exception $previous = null)
        {
        }
        /**
         * Returns text of the sql query.
         *
         * @return string
         */
        public function getQuery()
        {
        }
    }
    /**
     * Class ArrayResult is for presenting an array as database result
     * with fetch() navigation.
     *
     * @package Bitrix\Main\DB
     */
    class ArrayResult extends \Bitrix\Main\DB\Result
    {
        /** @var array */
        protected $resource;
        /**
         * @param array $result Array of arrays.
         */
        public function __construct($result)
        {
        }
        /**
         * Returns the number of rows in the result.
         *
         * @return integer
         */
        public function getSelectedRowsCount()
        {
        }
        /**
         * Returns null because there is no way to know the fields.
         *
         * @return null
         */
        public function getFields()
        {
        }
        /**
         * Returns next result row or false.
         *
         * @return array|false
         */
        protected function fetchRowInternal()
        {
        }
    }
    /**
     * Class OracleConnection
     *
     * Class for Oracle database connections.
     * @package Bitrix\Main\DB
     */
    class OracleConnection extends \Bitrix\Main\DB\Connection
    {
        private $transaction = OCI_COMMIT_ON_SUCCESS;
        protected $lastInsertedId;
        /**********************************************************
         * SqlHelper
         **********************************************************/
        /**
         * @return \Bitrix\Main\Db\SqlHelper
         */
        protected function createSqlHelper()
        {
        }
        /***********************************************************
         * Connection and disconnection
         ***********************************************************/
        /**
         * Establishes a connection to the database.
         * Includes php_interface/after_connect_d7.php on success.
         * Throws exception on failure.
         *
         * @return void
         * @throws \Bitrix\Main\DB\ConnectionException
         */
        protected function connectInternal()
        {
        }
        /**
         * Disconnects from the database.
         * Does nothing if there was no connection established.
         *
         * @return void
         */
        protected function disconnectInternal()
        {
        }
        /*********************************************************
         * Query
         *********************************************************/
        /**
         * Executes a query against connected database.
         * Rises SqlQueryException on any database error.
         * <p>
         * When object $trackerQuery passed then calls its startQuery and finishQuery
         * methods before and after query execution.
         *
         * @param string                            $sql Sql query.
         * @param array                             $binds Array of binds.
         * @param \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery Debug collector object.
         *
         * @return resource
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        protected function queryInternal($sql, array $binds = null, \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery = null)
        {
        }
        /**
         * Returns database depended result of the query.
         *
         * @param resource $result Result of internal query function.
         * @param \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery Debug collector object.
         *
         * @return Result
         */
        protected function createResult($result, \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery = null)
        {
        }
        /**
         * Executes a query to the database.
         *
         * - query($sql)
         * - query($sql, $limit)
         * - query($sql, $offset, $limit)
         * - query($sql, $binds)
         * - query($sql, $binds, $limit)
         * - query($sql, $binds, $offset, $limit)
         *
         * @param string $sql Sql query.
         * @param array $binds Array of binds.
         * @param int $offset Offset of the first row to return, starting from 0.
         * @param int $limit Limit rows count.
         *
         * @return Result
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function query($sql)
        {
        }
        /**
         * Adds row to table and returns ID of the added row.
         * <p>
         * $identity parameter must be null when table does not have autoincrement column.
         *
         * @param string $tableName Name of the table for insertion of new row..
         * @param array $data Array of columnName => Value pairs.
         * @param string $identity For Oracle only.
         *
         * @return integer
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function add($tableName, array $data, $identity = "ID")
        {
        }
        /**
         * Gets next value from the database sequence.
         * <p>
         * Sequence name may contain only A-Z,a-z,0-9 and _ characters.
         *
         * @param string $name Name of the sequence.
         *
         * @return null|string
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function getNextId($name = "")
        {
        }
        /**
         * @return integer
         */
        public function getInsertedId()
        {
        }
        /**
         * Returns affected rows count from last executed query.
         *
         * @return integer
         */
        public function getAffectedRowsCount()
        {
        }
        /**
         * Checks if a table exists.
         *
         * @param string $tableName The table name.
         *
         * @return boolean
         */
        public function isTableExists($tableName)
        {
        }
        /**
         * Checks if an index exists.
         * Actual columns in the index may differ from requested.
         * $columns may present an "prefix" of actual index columns.
         *
         * @param string $tableName A table name.
         * @param array  $columns An array of columns in the index.
         *
         * @return boolean
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function isIndexExists($tableName, array $columns)
        {
        }
        /**
         * Returns the name of an index.
         *
         * @param string $tableName A table name.
         * @param array $columns An array of columns in the index.
         * @param bool $strict The flag indicating that the columns in the index must exactly match the columns in the $arColumns parameter.
         *
         * @return string|null Name of the index or null if the index doesn't exist.
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function getIndexName($tableName, array $columns, $strict = false)
        {
        }
        /**
         * Returns fields objects according to the columns of a table.
         * Table must exists.
         *
         * @param string $tableName The table name.
         *
         * @return ScalarField[] An array of objects with columns information.
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function getTableFields($tableName)
        {
        }
        /**
         * @param string        $tableName     Name of the new table.
         * @param ScalarField[] $fields        Array with columns descriptions.
         * @param string[]      $primary       Array with primary key column names.
         * @param string[]      $autoincrement Which columns will be auto incremented ones.
         *
         * @return void
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function createTable($tableName, $fields, $primary = array(), $autoincrement = array())
        {
        }
        /**
         * Renames the table. Renamed table must exists and new name must not be occupied by any database object.
         *
         * @param string $currentName Old name of the table.
         * @param string $newName New name of the table.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function renameTable($currentName, $newName)
        {
        }
        /**
         * Drops the table.
         *
         * @param string $tableName Name of the table to be dropped.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function dropTable($tableName)
        {
        }
        /*********************************************************
         * Transaction
         *********************************************************/
        /**
         * Starts new database transaction.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function startTransaction()
        {
        }
        /**
         * Commits started database transaction.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function commitTransaction()
        {
        }
        /**
         * Rollbacks started database transaction.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function rollbackTransaction()
        {
        }
        /*********************************************************
         * Type, version, cache, etc.
         *********************************************************/
        /**
         * Returns database type.
         * <ul>
         * <li> oracle
         * </ul>
         *
         * @return string
         * @see \Bitrix\Main\DB\Connection::getType
         */
        public function getType()
        {
        }
        /**
         * Returns connected database version.
         * Version presented in array of two elements.
         * - First (with index 0) is database version.
         * - Second (with index 1) is true when light/express version of database is used.
         *
         * @return array
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function getVersion()
        {
        }
        /**
         * Returns error message of last failed database operation.
         *
         * @param resource $resource Connection or query result resource.
         * @return string
         */
        protected function getErrorMessage($resource = null)
        {
        }
    }
    class MysqlConnection extends \Bitrix\Main\DB\MysqlCommonConnection
    {
        /**********************************************************
         * SqlHelper
         **********************************************************/
        /**
         * @return \Bitrix\Main\Db\SqlHelper
         */
        protected function createSqlHelper()
        {
        }
        /***********************************************************
         * Connection and disconnection
         ***********************************************************/
        /**
         * Establishes a connection to the database.
         * Includes php_interface/after_connect_d7.php on success.
         * Throws exception on failure.
         *
         * @return void
         * @throws \Bitrix\Main\DB\ConnectionException
         */
        protected function connectInternal()
        {
        }
        /**
         * Disconnects from the database.
         * Does nothing if there was no connection established.
         *
         * @return void
         */
        public function disconnectInternal()
        {
        }
        /*********************************************************
         * Query
         *********************************************************/
        /**
         * Executes a query against connected database.
         * Rises SqlQueryException on any database error.
         * <p>
         * When object $trackerQuery passed then calls its startQuery and finishQuery
         * methods before and after query execution.
         *
         * @param string                            $sql Sql query.
         * @param array                             $binds Array of binds.
         * @param \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery Debug collector object.
         *
         * @return resource
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        protected function queryInternal($sql, array $binds = null, \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery = null)
        {
        }
        /**
         * Returns database depended result of the query.
         *
         * @param resource $result Result of internal query function.
         * @param \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery Debug collector object.
         *
         * @return Result
         */
        protected function createResult($result, \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery = null)
        {
        }
        /**
         * @return integer
         */
        public function getInsertedId()
        {
        }
        /**
         * Returns affected rows count from last executed query.
         *
         * @return integer
         */
        public function getAffectedRowsCount()
        {
        }
        /*********************************************************
         * Type, version, cache, etc.
         *********************************************************/
        /**
         * Returns database type.
         * <ul>
         * <li> mysql
         * </ul>
         *
         * @return string
         * @see \Bitrix\Main\DB\Connection::getType
         */
        public function getType()
        {
        }
        /**
         * Returns connected database version.
         * Version presented in array of two elements.
         * - First (with index 0) is database version.
         * - Second (with index 1) is true when light/express version of database is used.
         *
         * @return array
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function getVersion()
        {
        }
        /**
         * Returns error message of last failed database operation.
         *
         * @return string
         */
        protected function getErrorMessage()
        {
        }
        /**
         * Selects the default database for database queries.
         *
         * @param string $database Database name.
         * @return bool
         */
        public function selectDatabase($database)
        {
        }
    }
    class MssqlResult extends \Bitrix\Main\DB\Result
    {
        /** @var \Bitrix\Main\ORM\Fields\ScalarField[]  */
        private $resultFields = null;
        /**
         * @param resource $result Database-specific query result.
         * @param Connection $dbConnection Connection object.
         * @param \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery Helps to collect debug information.
         */
        public function __construct($result, \Bitrix\Main\DB\Connection $dbConnection = null, \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery = null)
        {
        }
        /**
         * Returns an array of fields according to columns in the result.
         *
         * @return \Bitrix\Main\ORM\Fields\ScalarField[]
         */
        public function getFields()
        {
        }
        /**
         * Returns the number of rows in the result.
         *
         * @return integer
         */
        public function getSelectedRowsCount()
        {
        }
        /**
         * Returns next result row or false.
         *
         * @return array|false
         */
        protected function fetchRowInternal()
        {
        }
    }
    class MysqliResult extends \Bitrix\Main\DB\Result
    {
        /** @var \mysqli_result */
        protected $resource;
        /** @var \Bitrix\Main\ORM\Fields\ScalarField[]  */
        private $resultFields = null;
        /**
         * @param resource $result Database-specific query result.
         * @param Connection $dbConnection Connection object.
         * @param \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery Helps to collect debug information.
         */
        public function __construct($result, \Bitrix\Main\DB\Connection $dbConnection = null, \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery = null)
        {
        }
        /**
         * Returns the number of rows in the result.
         *
         * @return integer
         */
        public function getSelectedRowsCount()
        {
        }
        /**
         * Returns an array of fields according to columns in the result.
         *
         * @return \Bitrix\Main\ORM\Fields\ScalarField[]
         */
        public function getFields()
        {
        }
        /**
         * Returns next result row or false.
         *
         * @return array|false
         */
        protected function fetchRowInternal()
        {
        }
    }
    class ResultIterator implements \Iterator
    {
        /** @var Result */
        private $result;
        /** @var int */
        private $counter;
        private $currentData;
        /**
         * ResultIterator constructor.
         *
         * @param Result $result
         */
        public function __construct(\Bitrix\Main\DB\Result $result)
        {
        }
        /**
         * Return the current element
         * @link http://php.net/manual/en/iterator.current.php
         * @return mixed Can return any type.
         * @since 5.0.0
         */
        public function current()
        {
        }
        /**
         * Move forward to next element
         * @link http://php.net/manual/en/iterator.next.php
         * @return void Any returned value is ignored.
         * @since 5.0.0
         */
        public function next()
        {
        }
        /**
         * Return the key of the current element
         * @link http://php.net/manual/en/iterator.key.php
         * @return mixed scalar on success, or null on failure.
         * @since 5.0.0
         */
        public function key()
        {
        }
        /**
         * Checks if current position is valid
         * @link http://php.net/manual/en/iterator.valid.php
         * @return boolean The return value will be casted to boolean and then evaluated.
         * Returns true on success or false on failure.
         * @since 5.0.0
         */
        public function valid()
        {
        }
        /**
         * Rewind the Iterator to the first element
         * @link http://php.net/manual/en/iterator.rewind.php
         * @throws NotSupportedException
         * @since 5.0.0
         */
        public function rewind()
        {
        }
    }
    /**
     * Class ConnectionException used to indicate errors during database connection process.
     *
     * @see \Bitrix\Main\DB\ConnectionException::__construct
     * @package Bitrix\Main\DB
     */
    class ConnectionException extends \Bitrix\Main\DB\Exception
    {
        /**
         * @param string $message Application message.
         * @param string $databaseMessage Database reason.
         * @param \Exception $previous The previous exception used for the exception chaining.
         */
        public function __construct($message = "", $databaseMessage = "", \Exception $previous = null)
        {
        }
    }
    /**
     * Class MssqlConnection
     *
     * Class for MS SQL database connections.
     * @package Bitrix\Main\DB
     */
    class MssqlConnection extends \Bitrix\Main\DB\Connection
    {
        /**********************************************************
         * SqlHelper
         **********************************************************/
        /**
         * @return \Bitrix\Main\Db\SqlHelper
         */
        protected function createSqlHelper()
        {
        }
        /***********************************************************
         * Connection and disconnection
         ***********************************************************/
        /**
         * Establishes a connection to the database.
         * Includes php_interface/after_connect_d7.php on success.
         * Throws exception on failure.
         *
         * @return void
         * @throws \Bitrix\Main\DB\ConnectionException
         */
        protected function connectInternal()
        {
        }
        /**
         * Disconnects from the database.
         * Does nothing if there was no connection established.
         *
         * @return void
         */
        protected function disconnectInternal()
        {
        }
        /*********************************************************
         * Query
         *********************************************************/
        /**
         * Executes a query against connected database.
         * Rises SqlQueryException on any database error.
         * <p>
         * When object $trackerQuery passed then calls its startQuery and finishQuery
         * methods before and after query execution.
         *
         * @param string                            $sql Sql query.
         * @param array                             $binds Array of binds.
         * @param \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery Debug collector object.
         *
         * @return resource
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        protected function queryInternal($sql, array $binds = null, \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery = null)
        {
        }
        /**
         * Returns database depended result of the query.
         *
         * @param resource $result Result of internal query function.
         * @param \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery Debug collector object.
         *
         * @return Result
         */
        protected function createResult($result, \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery = null)
        {
        }
        /**
         * @return integer
         */
        public function getInsertedId()
        {
        }
        /**
         * Returns affected rows count from last executed query.
         *
         * @return integer
         */
        public function getAffectedRowsCount()
        {
        }
        /**
         * Checks if a table exists.
         *
         * @param string $tableName The table name.
         *
         * @return boolean
         */
        public function isTableExists($tableName)
        {
        }
        /**
         * Checks if an index exists.
         * Actual columns in the index may differ from requested.
         * $columns may present an "prefix" of actual index columns.
         *
         * @param string $tableName A table name.
         * @param array  $columns An array of columns in the index.
         *
         * @return boolean
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function isIndexExists($tableName, array $columns)
        {
        }
        /**
         * Returns the name of an index.
         *
         * @param string $tableName A table name.
         * @param array $columns An array of columns in the index.
         * @param bool $strict The flag indicating that the columns in the index must exactly match the columns in the $arColumns parameter.
         *
         * @return string|null Name of the index or null if the index doesn't exist.
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function getIndexName($tableName, array $columns, $strict = false)
        {
        }
        /**
         * Returns fields objects according to the columns of a table.
         * Table must exists.
         *
         * @param string $tableName The table name.
         *
         * @return ScalarField[] An array of objects with columns information.
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function getTableFields($tableName)
        {
        }
        /**
         * @param string        $tableName     Name of the new table.
         * @param ScalarField[] $fields        Array with columns descriptions.
         * @param string[]      $primary       Array with primary key column names.
         * @param string[]      $autoincrement Which columns will be auto incremented ones.
         *
         * @return void
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function createTable($tableName, $fields, $primary = array(), $autoincrement = array())
        {
        }
        /**
         * Renames the table. Renamed table must exists and new name must not be occupied by any database object.
         *
         * @param string $currentName Old name of the table.
         * @param string $newName New name of the table.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function renameTable($currentName, $newName)
        {
        }
        /**
         * Drops the table.
         *
         * @param string $tableName Name of the table to be dropped.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function dropTable($tableName)
        {
        }
        /*********************************************************
         * Transaction
         *********************************************************/
        /**
         * Starts new database transaction.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function startTransaction()
        {
        }
        /**
         * Commits started database transaction.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function commitTransaction()
        {
        }
        /**
         * Rollbacks started database transaction.
         *
         * @return void
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function rollbackTransaction()
        {
        }
        /*********************************************************
         * Type, version, cache, etc.
         *********************************************************/
        /**
         * Returns database type.
         * <ul>
         * <li> mssql
         * </ul>
         *
         * @return string
         * @see \Bitrix\Main\DB\Connection::getType
         */
        public function getType()
        {
        }
        /**
         * Returns connected database version.
         * Version presented in array of two elements.
         * - First (with index 0) is database version.
         * - Second (with index 1) is true when light/express version of database is used.
         *
         * @return array
         * @throws \Bitrix\Main\Db\SqlQueryException
         */
        public function getVersion()
        {
        }
        /**
         * Returns error message of last failed database operation.
         *
         * @return string
         */
        protected function getErrorMessage()
        {
        }
    }
    class OracleResult extends \Bitrix\Main\DB\Result
    {
        /** @var \Bitrix\Main\ORM\Fields\ScalarField[]  */
        private $resultFields = null;
        /**
         * @param resource $result Database-specific query result.
         * @param Connection $dbConnection Connection object.
         * @param \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery Helps to collect debug information.
         */
        public function __construct($result, \Bitrix\Main\DB\Connection $dbConnection = null, \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery = null)
        {
        }
        /**
         * Returns the number of rows in the result.
         *
         * @return integer
         */
        public function getSelectedRowsCount()
        {
        }
        /**
         * Returns an array of fields according to columns in the result.
         *
         * @return \Bitrix\Main\ORM\Fields\ScalarField[]
         */
        public function getFields()
        {
        }
        /**
         * Returns next result row or false.
         *
         * @return array|false
         */
        protected function fetchRowInternal()
        {
        }
    }
    class MssqlSqlHelper extends \Bitrix\Main\DB\SqlHelper
    {
        /**
         * Returns an identificator escaping left character.
         *
         * @return string
         */
        public function getLeftQuote()
        {
        }
        /**
         * Returns an identificator escaping right character.
         *
         * @return string
         */
        public function getRightQuote()
        {
        }
        /**
         * Returns maximum length of an alias in a select statement
         *
         * @return integer
         */
        public function getAliasLength()
        {
        }
        /**
         * Returns database specific query delimiter for batch processing.
         *
         * @return string
         */
        public function getQueryDelimiter()
        {
        }
        /**
         * Escapes special characters in a string for use in an SQL statement.
         *
         * @param string $value Value to be escaped.
         * @param integer $maxLength Limits string length if set.
         *
         * @return string
         */
        function forSql($value, $maxLength = 0)
        {
        }
        /**
         * Returns function for getting current time.
         *
         * @return string
         */
        public function getCurrentDateTimeFunction()
        {
        }
        /**
         * Returns function for getting current date without time part.
         *
         * @return string
         */
        public function getCurrentDateFunction()
        {
        }
        /**
         * Returns function for adding seconds time interval to $from.
         * <p>
         * If $from is null or omitted, then current time is used.
         * <p>
         * $seconds and $from parameters are SQL unsafe.
         *
         * @param integer $seconds How many seconds to add.
         * @param integer $from Datetime database field of expression.
         *
         * @return string
         */
        public function addSecondsToDateTime($seconds, $from = null)
        {
        }
        /**
         * Returns function cast $value to datetime database type.
         * <p>
         * $value parameter is SQL unsafe.
         *
         * @param string $value Database field or expression to cast.
         *
         * @return string
         */
        public function getDatetimeToDateFunction($value)
        {
        }
        /**
         * Returns database expression for converting $field value according the $format.
         * <p>
         * Following format parts converted:
         * - YYYY   A full numeric representation of a year, 4 digits
         * - MMMM   A full textual representation of a month, such as January or March
         * - MM     Numeric representation of a month, with leading zeros
         * - MI     Minutes with leading zeros
         * - M      A short textual representation of a month, three letters
         * - DD     Day of the month, 2 digits with leading zeros
         * - HH     24-hour format of an hour with leading zeros
         * - H      24-hour format of an hour without leading zeros
         * - GG     12-hour format of an hour with leading zeros
         * - G      12-hour format of an hour without leading zeros
         * - SS     Seconds with leading zeros
         * - TT     AM or PM
         * - T      AM or PM
         * <p>
         * $field parameter is SQL unsafe.
         *
         * @param string $format Format string.
         * @param string $field Database field or expression.
         *
         * @return string
         */
        public function formatDate($format, $field = null)
        {
        }
        /**
         * Returns function for getting part of string.
         * <p>
         * If length is null or omitted, the substring starting
         * from start until the end of the string will be returned.
         * <p>
         * $str and $from parameters are SQL unsafe.
         *
         * @param string $str Database field or expression.
         * @param integer $from Start position.
         * @param integer $length Maximum length.
         *
         * @return string
         */
        public function getSubstrFunction($str, $from, $length = null)
        {
        }
        /**
         * Returns function for concatenating database fields or expressions.
         * <p>
         * All parameters are SQL unsafe.
         *
         * @param string $field,... Database fields or expressions.
         *
         * @return string
         */
        public function getConcatFunction()
        {
        }
        /**
         * Returns function for testing database field or expressions
         * against NULL value. When it is NULL then $result will be returned.
         * <p>
         * All parameters are SQL unsafe.
         *
         * @param string $expression Database field or expression for NULL test.
         * @param string $result Database field or expression to return when $expression is NULL.
         *
         * @return string
         */
        public function getIsNullFunction($expression, $result)
        {
        }
        /**
         * Returns function for getting length of database field or expression.
         * <p>
         * $field parameter is SQL unsafe.
         *
         * @param string $field Database field or expression.
         *
         * @return string
         */
        public function getLengthFunction($field)
        {
        }
        /**
         * Returns function for converting string value into datetime.
         * $value must be in YYYY-MM-DD HH:MI:SS format.
         * <p>
         * $value parameter is SQL unsafe.
         *
         * @param string $value String in YYYY-MM-DD HH:MI:SS format.
         *
         * @return string
         * @see \Bitrix\Main\DB\MssqlSqlHelper::formatDate
         */
        public function getCharToDateFunction($value)
        {
        }
        /**
         * Returns function for converting database field or expression into string.
         * <p>
         * Result string will be in YYYY-MM-DD HH:MI:SS format.
         * <p>
         * $fieldName parameter is SQL unsafe.
         *
         * @param string $fieldName Database field or expression.
         *
         * @return string
         * @see \Bitrix\Main\DB\MssqlSqlHelper::formatDate
         */
        public function getDateToCharFunction($fieldName)
        {
        }
        /**
         * {@inheritDoc}
         *
         * @param string $fieldName
         *
         * return string
         */
        public function castToChar($fieldName)
        {
        }
        /**
         * {@inheritDoc}
         *
         * @param string $fieldName
         *
         * return string
         */
        public function softCastTextToChar($fieldName)
        {
        }
        /**
         * Returns callback to be called for a field value on fetch.
         * Used for soft conversion. For strict results @see ORM\Query\Result::setStrictValueConverters()
         *
         * @param ScalarField $field Type "source".
         *
         * @return false|callback
         */
        public function getConverter(\Bitrix\Main\ORM\Fields\ScalarField $field)
        {
        }
        /**
         * @deprecated
         * Converts string into \Bitrix\Main\Type\DateTime object.
         * <p>
         * Helper function.
         *
         * @param string $value Value fetched.
         *
         * @return null|\Bitrix\Main\Type\DateTime
         * @see \Bitrix\Main\Db\MssqlSqlHelper::getConverter
         */
        public function convertDatetimeField($value)
        {
        }
        /**
         * @param $value
         *
         * @return Type\DateTime
         * @throws Main\ObjectException
         */
        public function convertFromDbDateTime($value)
        {
        }
        /**
         * @deprecated
         * Converts string into \Bitrix\Main\Type\Date object.
         * <p>
         * Helper function.
         *
         * @param string $value Value fetched.
         *
         * @return \Bitrix\Main\Type\Date
         * @see \Bitrix\Main\Db\MssqlSqlHelper::getConverter
         */
        public function convertDateField($value)
        {
        }
        /**
         * @param $value
         *
         * @return Type\Date
         * @throws Main\ObjectException
         */
        public function convertFromDbDate($value)
        {
        }
        /**
         * @deprecated
         * Converts string into \Bitrix\Main\Type\Date object if string has datetime specific format..
         * <p>
         * Helper function.
         *
         * @param string $value Value fetched.
         *
         * @return null|\Bitrix\Main\Type\DateTime
         * @see \Bitrix\Main\Db\MssqlSqlHelper::getConverter
         */
        public function convertStringField($value)
        {
        }
        /**
         * @param string $value
         * @param null   $length
         *
         * @return Type\DateTime|string
         * @throws Main\ObjectException
         */
        public function convertFromDbString($value, $length = null)
        {
        }
        /**
         * Returns a column type according to ScalarField object.
         *
         * @param ScalarField $field Type "source".
         *
         * @return string
         */
        public function getColumnTypeByField(\Bitrix\Main\ORM\Fields\ScalarField $field)
        {
        }
        /**
         * Returns instance of a descendant from Entity\ScalarField
         * that matches database type.
         *
         * @param string $name Database column name.
         * @param mixed $type Database specific type.
         * @param array $parameters Additional information.
         *
         * @return ScalarField
         */
        public function getFieldByColumnType($name, $type, array $parameters = null)
        {
        }
        /**
         * Transforms Sql according to $limit and $offset limitations.
         * <p>
         * You must specify $limit when $offset is set.
         *
         * @param string $sql Sql text.
         * @param integer $limit Maximum number of rows to return.
         * @param integer $offset Offset of the first row to return, starting from 0.
         *
         * @return string
         * @throws Main\ArgumentException
         */
        public function getTopSql($sql, $limit, $offset = 0)
        {
        }
        /**
         * Builds the strings for the SQL MERGE command for the given table.
         *
         * @param string $tableName A table name.
         * @param array $primaryFields Array("column")[] Primary key columns list.
         * @param array $insertFields Array("column" => $value)[] What to insert.
         * @param array $updateFields Array("column" => $value)[] How to update.
         *
         * @return array (merge)
         */
        public function prepareMerge($tableName, array $primaryFields, array $insertFields, array $updateFields)
        {
        }
    }
    /**
     * Class SqlExpression
     *
     * @package Bitrix\Main\DB
     */
    class SqlExpression
    {
        /** @var string */
        protected $expression;
        /** @var array */
        protected $args = array();
        protected $pattern = '/([^\\\\]|^)(\\?[#sif]?)/';
        protected $i;
        /** @var  Connection */
        protected $connection;
        /**
         * @param string $expression Sql expression.
         * @param string,... $args Substitutes.
         *
         * @throws \Bitrix\Main\ArgumentException
         */
        public function __construct()
        {
        }
        /**
         * Returns $expression with replaced placeholders.
         *
         * @return string
         */
        public function compile()
        {
        }
        /**
         * Used by compile method to replace placeholders with values.
         *
         * @param array $matches Matches found by preg_replace.
         *
         * @return string
         */
        protected function execPlaceholders($matches)
        {
        }
        public function __toString()
        {
        }
        /**
         * @return Connection
         */
        public function getConnection()
        {
        }
        /**
         * @param Connection $connection
         */
        public function setConnection($connection)
        {
        }
    }
    class MysqlResult extends \Bitrix\Main\DB\Result
    {
        /** @var \Bitrix\Main\ORM\Fields\ScalarField[]  */
        protected $resultFields = null;
        /**
         * @param resource $result Database-specific query result.
         * @param Connection $dbConnection Connection object.
         * @param \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery Helps to collect debug information.
         */
        public function __construct($result, \Bitrix\Main\DB\Connection $dbConnection, \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery = null)
        {
        }
        /**
         * Returns the number of rows in the result.
         *
         * @return integer
         */
        public function getSelectedRowsCount()
        {
        }
        /**
         * Returns an array of fields according to columns in the result.
         *
         * @return \Bitrix\Main\ORM\Fields\ScalarField[]
         */
        public function getFields()
        {
        }
        /**
         * Returns next result row or false.
         *
         * @return array|false
         */
        protected function fetchRowInternal()
        {
        }
    }
    class MysqliSqlHelper extends \Bitrix\Main\DB\MysqlCommonSqlHelper
    {
        /**
         * Escapes special characters in a string for use in an SQL statement.
         *
         * @param string $value Value to be escaped.
         * @param integer $maxLength Limits string length if set.
         *
         * @return string
         */
        public function forSql($value, $maxLength = 0)
        {
        }
        /**
         * Returns instance of a descendant from Entity\ScalarField
         * that matches database type.
         *
         * @param string $name Database column name.
         * @param mixed $type Database specific type.
         * @param array $parameters Additional information.
         *
         * @return \Bitrix\Main\ORM\Fields\ScalarField
         */
        public function getFieldByColumnType($name, $type, array $parameters = null)
        {
        }
    }
}
namespace Bitrix\Main {
    class EventManager
    {
        /**
         * @var EventManager
         */
        protected static $instance;
        protected $handlers = array();
        protected $isHandlersLoaded = false;
        protected static $cacheKey = "b_module_to_module";
        protected function __construct()
        {
        }
        /**
         * @static
         * @return EventManager
         */
        public static function getInstance()
        {
        }
        protected function addEventHandlerInternal($fromModuleId, $eventType, $callback, $includeFile, $sort, $version)
        {
        }
        public function addEventHandler($fromModuleId, $eventType, $callback, $includeFile = false, $sort = 100)
        {
        }
        /**
         * @param $fromModuleId
         * @param $eventType
         * @param $callback
         * @param bool $includeFile
         * @param int $sort
         * @return int
         */
        public function addEventHandlerCompatible($fromModuleId, $eventType, $callback, $includeFile = false, $sort = 100)
        {
        }
        public function removeEventHandler($fromModuleId, $eventType, $iEventHandlerKey)
        {
        }
        public function unRegisterEventHandler($fromModuleId, $eventType, $toModuleId, $toClass = "", $toMethod = "", $toPath = "", $toMethodArg = array())
        {
        }
        public function registerEventHandler($fromModuleId, $eventType, $toModuleId, $toClass = "", $toMethod = "", $sort = 100, $toPath = "", $toMethodArg = array())
        {
        }
        public function registerEventHandlerCompatible($fromModuleId, $eventType, $toModuleId, $toClass = "", $toMethod = "", $sort = 100, $toPath = "", $toMethodArg = array())
        {
        }
        protected function registerEventHandlerInternal($fromModuleId, $eventType, $toModuleId, $toClass, $toMethod, $sort, $toPath, $toMethodArg, $version)
        {
        }
        protected function formatEventName($arEvent)
        {
        }
        protected function loadEventHandlers()
        {
        }
        protected function clearLoadedHandlers()
        {
        }
        public function findEventHandlers($eventModuleId, $eventType, array $filter = null)
        {
        }
        public function send(\Bitrix\Main\Event $event)
        {
        }
        protected function sendToEventHandler(array $handler, \Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Main\Copy {
    /**
     * Class stores a data that is needed in the process of copying the entity.
     *
     * @package Bitrix\Main\Copy
     */
    class Container
    {
        protected $entityId;
        protected $copiedEntityId;
        protected $parentId;
        protected $dictionary;
        public function __construct($entityId)
        {
        }
        /**
         * Returns the id of the parent entity that is being copied.
         *
         * @return integer
         */
        public function getEntityId()
        {
        }
        /**
         * Writes a copied entity id.
         *
         * @param integer $id A copied entity id.
         */
        public function setCopiedEntityId($id)
        {
        }
        /**
         * Returns a copied entity id.
         *
         * @return integer|null
         */
        public function getCopiedEntityId()
        {
        }
        /**
         * Writes a parent id.
         *
         * @param integer $parentId A copied entity id.
         */
        public function setParentId($parentId)
        {
        }
        /**
         * Returns a parent id.
         *
         * @return integer|null
         */
        public function getParentId()
        {
        }
        /**
         * Writes a dictionary.
         *
         * @param Dictionary $dictionary
         */
        public function setDictionary(\Bitrix\Main\Type\Dictionary $dictionary)
        {
        }
        /**
         * Returns a dictionary.
         * @return Dictionary
         */
        public function getDictionary()
        {
        }
    }
    /**
     * Class for to store containers that will be used for copying.
     *
     * @package Bitrix\Main\Copy
     */
    class ContainerCollection extends \Bitrix\Main\Type\Dictionary
    {
        protected function addContainer(\Bitrix\Main\Copy\Container $container, $offset = null)
        {
        }
        public function offsetSet($offset, $value)
        {
        }
    }
}
namespace Bitrix\Main\UserConsent {
    /**
     * Class AgreementLink
     * @package Bitrix\Main\UserConsent
     */
    class AgreementLink
    {
        const SIGN_SALT = 'user_consent';
        /** @var array $errors Errors. */
        protected static $errors = array();
        /**
         * Return Uri parameters.
         *
         * @param integer $agreementId Agreement ID.
         * @param array $replace Replace data.
         * @param string $baseUri Base Uri.
         * @return array
         */
        public static function getUri($agreementId, array $replace = array(), $baseUri = '')
        {
        }
        /**
         * Replace template by data.
         *
         * @param array $parameters Uri parameters.
         * @return Agreement
         */
        public static function getAgreementFromUriParameters(array $parameters = array())
        {
        }
        protected static function clearErrors()
        {
        }
        /**
         * Get errors.
         *
         * @return array
         */
        public static function getErrors()
        {
        }
    }
    /**
     * Class Policy
     * @package Bitrix\Main\UserConsent
     */
    class Policy
    {
        /** @var array  */
        protected static $standardTextForLanguages = array('ru', 'ua');
        /** @var array  */
        protected static $requiredForLanguages = array('ru');
        /**
         * Is consent required for language.
         *
         * @param string $languageId Language ID.
         * @return bool
         */
        public static function isRequired($languageId)
        {
        }
        /**
         * Return true if has standard consent text for language.
         *
         * @param string $languageId Language ID.
         * @return string|null
         */
        public static function hasText($languageId)
        {
        }
        /**
         * Install default.
         *
         * @return void
         */
        public static function installDefault()
        {
        }
    }
    /**
     * Class DataProvider.
     * @package Bitrix\Main\UserConsent
     */
    class DataProvider
    {
        const EVENT_NAME_LIST = 'OnUserConsentDataProviderList';
        /** @var string  */
        protected $code;
        /** @var string  */
        protected $name;
        /** @var array|callable  */
        protected $data;
        /** @var string */
        protected $editUrl;
        /**
         * Create instance.
         *
         * @param string $providerCode Provider code.
         * @return static|null
         */
        public static function getByCode($providerCode)
        {
        }
        /**
         * Constructor.
         *
         * @param string $code Code.
         * @param string $name Name.
         * @param array|callable $data Data.
         * @param string $editUrl Url to data edit page.
         * @param array|callable $data Data.
         */
        public function __construct($code, $name, $data, $editUrl)
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get edit url.
         *
         * @return string
         */
        public function getEditUrl()
        {
        }
        /**
         * Get data.
         *
         * @return array
         */
        public function getData()
        {
        }
        /**
         * Get as array.
         *
         * @return array
         */
        public function toArray()
        {
        }
        /**
         * Get list.
         *
         * @return static[]
         */
        public static function getList()
        {
        }
        protected static function checkObligatoryFields($params)
        {
        }
    }
    /**
     * Class Intl
     * @package Bitrix\Main\UserConsent
     */
    class Intl
    {
        /** @var string|null  */
        protected $languageId = null;
        /** @var array  */
        protected $data = [];
        /** @var array  */
        protected static $virtualLanguageMap = ['kz' => 'ru', 'by' => 'ru'];
        /**
         * Constructor.
         *
         * @param string $languageId Language ID.
         */
        public function __construct($languageId = null)
        {
        }
        /**
         * Load.
         *
         * @param string $languageId Language ID.
         * @return void
         */
        public function load($languageId)
        {
        }
        /**
         * Return standard fields for current language.
         *
         * @return array
         */
        public function getFields()
        {
        }
        /**
         * Get text.
         *
         * @return string
         */
        public function getText()
        {
        }
        /**
         * Get label text.
         *
         * @return string
         */
        public function getLabelText()
        {
        }
        /**
         * Get label text.
         *
         * @return string
         */
        public function getNotifyText()
        {
        }
        /**
         * Get phrase.
         *
         * @param string $code Phrase code.
         * @return string
         */
        public function getPhrase($code)
        {
        }
        /**
         * Get data value by code.
         *
         * @param string $code Data code.
         * @return string
         */
        public function getDataValue($code)
        {
        }
        /**
         * Get list of language settings.
         *
         * @return array
         */
        public static function getList()
        {
        }
        /**
         * Get languages.
         *
         * @return array
         */
        public static function getLanguages()
        {
        }
        /**
         * Get provider fields.
         *
         * @param string $languageId Language ID.
         * @param array $map Message key map.
         * @return array
         */
        public static function getLanguageMessages($languageId, array $map = array())
        {
        }
    }
    /**
     * Class Consent
     * @package Bitrix\Main\UserConsent
     */
    class Consent
    {
        const EVENT_NAME_LIST = 'OnUserConsentProviderList';
        /**
         * Add user consent by context data.
         *
         * @param integer $agreementId Agreement ID.
         * @param integer|null $originatorId Originator ID.
         * @param integer|null $originId Origin ID.
         * @param array $params Extra params like IP, URL or USER_ID.
         * @return integer|null
         */
        public static function addByContext($agreementId, $originatorId = null, $originId = null, array $params = array())
        {
        }
        /**
         * Get user consent added by context data.
         *
         * @param integer $agreementId Agreement ID.
         * @param integer|null $originatorId Originator ID.
         * @param integer|null $originId Origin ID.
         * @param array $params Extra params.
         * @return array|null
         */
        public static function getByContext($agreementId, $originatorId = null, $originId = null, $params = array())
        {
        }
        /**
         * Get origin data.
         *
         * @param string $originatorId Originator ID.
         * @param string|integer|null $originId Origin ID.
         * @return array|null
         */
        public static function getOriginData($originatorId, $originId = null)
        {
        }
        /**
         * Get items data.
         *
         * @param string $originatorId Originator ID.
         * @param array $items Source Items.
         * @return string|null
         */
        public static function getItems($originatorId, $items = [])
        {
        }
        /**
         * Get list.
         *
         * @return static[]
         */
        protected static function getList()
        {
        }
    }
    /**
     * Class Agreement
     * @package Bitrix\Main\UserConsent
     */
    class Agreement
    {
        const ACTIVE = 'Y';
        const NOT_ACTIVE = 'N';
        const TYPE_STANDARD = 'S';
        const TYPE_CUSTOM = 'C';
        /** @var integer|null $id Agreement ID. */
        protected $id = null;
        /** @var ErrorCollection $errors */
        protected $errors;
        /** @var array $data Agreement data. */
        protected $data = array('ACTIVE' => self::ACTIVE, 'TYPE' => self::TYPE_CUSTOM);
        /** @var array $replace Replace data. */
        protected $replace = array();
        /** @var Intl $intl Intl. */
        protected $intl;
        /** @var DataProvider|null $dataProvider Data provider. */
        protected $dataProvider;
        private $isAgreementTextHtml;
        /**
         * Get active agreement list.
         *
         * @return array
         */
        public static function getActiveList()
        {
        }
        /**
         * Get types.
         *
         * @return array
         */
        public static function getTypeNames()
        {
        }
        /**
         * Construct.
         *
         * @param integer $id Agreement ID.
         * @param array $replace Replace data.
         */
        public function __construct($id, array $replace = array())
        {
        }
        /**
         * Return true if is used.
         *
         * @param integer $id Agreement ID.
         * @return string
         */
        public function load($id)
        {
        }
        /**
         * Set replace.
         *
         * @param array $replace Replace data.
         * @return $this
         */
        public function setReplace(array $replace)
        {
        }
        /**
         * Get errors.
         *
         * @return Error[]
         */
        public function getErrors()
        {
        }
        /**
         * Has errors.
         *
         * @return bool
         */
        public function hasErrors()
        {
        }
        /**
         * Get agreement ID.
         *
         * @return int
         */
        public function getId()
        {
        }
        /**
         * Get agreement data.
         *
         * @return array
         */
        public function getData()
        {
        }
        /**
         * Set agreement data.
         *
         * @param array $data Data.
         * @return void
         */
        public function setData(array $data)
        {
        }
        /**
         * Merge agreement data.
         *
         * @param array $data Data.
         * @return void
         */
        public function mergeData(array $data)
        {
        }
        /**
         * Save agreement data.
         *
         * @return void
         */
        public function save()
        {
        }
        /**
         * Check.
         *
         * @return bool
         */
        protected function check()
        {
        }
        /**
         * Return true if is exist.
         *
         * @return bool
         */
        public function isExist()
        {
        }
        /**
         * Return true if is active.
         *
         * @return string
         */
        public function isActive()
        {
        }
        public function isAgreementTextHtml() : bool
        {
        }
        /**
         * Return true if is custom type.
         *
         * @return string
         */
        protected function isCustomType()
        {
        }
        /**
         * Get title.
         *
         * @return string
         */
        public function getTitle()
        {
        }
        protected static function getTitleFromText($text)
        {
        }
        /**
         * Get text.
         *
         * @param bool $cutTitle Cut title.
         * @return string
         */
        public function getText($cutTitle = false)
        {
        }
        /**
         * Get html.
         * @return string
         */
        public function getHtml()
        {
        }
        private function getContent($cutTitle = false)
        {
        }
        /**
         * Get label text.
         *
         * @return string
         */
        public function getLabelText()
        {
        }
        /**
         * Get url.
         *
         * @return string
         */
        public function getUrl()
        {
        }
        /**
         * Get label with synbols '%' for link in label text.
         *
         * @return string
         */
        public function getLabel()
        {
        }
        /**
         * Get data provider fields.
         *
         * @return array
         */
        protected function getDataProviderValues()
        {
        }
        /**
         * Return fields.
         *
         * @return array
         */
        public function getFields()
        {
        }
        /**
         * Return field values.
         *
         * @return array
         */
        public function getFieldValues()
        {
        }
        protected function getReplaceFieldValues()
        {
        }
    }
    /**
     * Class Rest
     * @package Bitrix\Main\UserConsent
     */
    class Rest
    {
        /**
         * Get agreement list.
         *
         * @param array $query Query parameters.
         * @param int $nav Navigation.
         * @param \CRestServer $server Rest server.
         * @return array
         */
        public static function getAgreementList($query, $nav = 0, \CRestServer $server)
        {
        }
        /**
         * Get agreement text.
         *
         * @param array $query Query parameters.
         * @param int $nav Navigation.
         * @param \CRestServer $server Rest server.
         * @return array
         * @throws RestException
         */
        public static function getAgreementText($query, $nav = 0, \CRestServer $server)
        {
        }
        /**
         * Add consent.
         *
         * @param array $query Query parameters.
         * @param int $nav Navigation.
         * @param \CRestServer $server Rest server.
         * @return int
         * @throws RestException
         */
        public static function addConsent($query, $nav = 0, \CRestServer $server)
        {
        }
        /**
         * Get agreement instance by ID.
         *
         * @param int|null $id ID.
         * @return Agreement
         * @throws RestException
         */
        protected static function getAgreementById($id)
        {
        }
        /**
         * Print rest errors.
         *
         * @param Error[] $errors Errors.
         * @throws RestException
         */
        protected static function printErrors(array $errors)
        {
        }
    }
    /**
     * Class Text
     * @package Bitrix\Main\UserConsent
     */
    class Text
    {
        /**
         * Replace template by data.
         *
         * @param string $template Template text.
         * @param array $data Replace data.
         * @param bool $isCut Is cut areas if empty data.
         * @return string
         */
        public static function replace($template, array $data, $isCut = false)
        {
        }
        protected static function cut($template, array $data)
        {
        }
        /**
         * Format array to text.
         *
         * @param array $list List.
         * @return string
         */
        public static function formatArrayToText(array $list)
        {
        }
    }
}
namespace Bitrix\Main\ORM {
    /**
     * Loads (generates) entity object or collection classes
     *
     * @package    bitrix
     * @subpackage main
     */
    class Loader
    {
        /** @var DataManager[] Entity registers its object class on init */
        protected static $predefinedObjectClass;
        /** @var DataManager[] Entity registers its collection class on init */
        protected static $predefinedCollectionClass;
        public static function autoLoad($class)
        {
        }
        public static function registerObjectClass($objectClass, $entityClass)
        {
        }
        public static function registerCollectionClass($collectionClass, $entityClass)
        {
        }
    }
    class Event extends \Bitrix\Main\Event
    {
        protected $entity;
        protected $entityEventType;
        /**
         * @param Entity $entity
         * @param string $type
         * @param array  $parameters
         * @param bool   $withNamespace
         */
        public function __construct(\Bitrix\Main\ORM\Entity $entity, $type, array $parameters = array(), $withNamespace = false)
        {
        }
        /**
         * Returns entity
         */
        public function getEntity()
        {
        }
        /**
         * Checks the result of the event for errors, fills the Result object.
         * Returns true on errors, false on no errors.
         *
         * @param Result $result
         * @return bool
         */
        public function getErrors(\Bitrix\Main\ORM\Data\Result $result)
        {
        }
        /**
         * Merges the data fields set in the event handlers with the source fields.
         * Returns a merged array of the data fields from the all event handlers.
         *
         * @param array $data
         * @return array
         */
        public function mergeFields(array $data)
        {
        }
        public function mergeObjectFields(\Bitrix\Main\ORM\Objectify\EntityObject $object)
        {
        }
        public function send($sender = null)
        {
        }
    }
    class EventResult extends \Bitrix\Main\EventResult
    {
        /** @var array */
        protected $modified = array();
        /** @var string[] */
        protected $unset = array();
        /** @var EntityError[] */
        protected $errors = array();
        public function __construct()
        {
        }
        /**
         * Sets the errors array and changes the event type to ERROR
         * @param EntityError[] $errors
         */
        public function setErrors(array $errors)
        {
        }
        /**
         * @param EntityError $error
         */
        public function addError(\Bitrix\Main\ORM\EntityError $error)
        {
        }
        /**
         * @return EntityError[]|FieldError[]
         */
        public function getErrors()
        {
        }
        /**
         * Sets the array of fields to modify data in the Bitrix\Main\ORM\Event
         * @param array $fields
         */
        public function modifyFields(array $fields)
        {
        }
        public function getModified()
        {
        }
        /**
         * Sets the array of fields names to unset data in the Bitrix\Main\ORM\Event
         * @param array $fields
         */
        public function unsetFields(array $fields)
        {
        }
        /**
         * @param string $fieldName
         */
        public function unsetField($fieldName)
        {
        }
        public function getUnset()
        {
        }
    }
    /**
     * EventManager wrapper for ORM entities
     *
     * @package    bitrix
     * @subpackage main
     */
    class EventManager
    {
        /**
         * @var EventManager
         */
        protected static $instance;
        /**
         * Singleton constructor
         */
        protected function __construct()
        {
        }
        /**
         * Singleton getter
         *
         * @static
         * @return EventManager
         */
        public static function getInstance()
        {
        }
        /**
         * @param string|Entity|DataManager|EntityObject $entity    ORM Entity, or ORM Table class, or ORM Object class
         * @param string                                 $eventType Constants DataManager::EVENT_ON_BEFORE_ADD etc.
         * @param callable                               $callback  Callback
         * @param bool                                   $includeFile
         * @param int                                    $sort
         *
         * @return int|mixed
         * @throws ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public function addEventHandler($entity, $eventType, $callback, $includeFile = false, $sort = 100)
        {
        }
        /**
         * @param string|Entity|DataManager|EntityObject $entity
         * @param string                                 $eventType
         * @param                                        $iEventHandlerKey
         *
         * @return bool
         * @throws ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public function removeEventHandler($entity, $eventType, $iEventHandlerKey)
        {
        }
        /**
         * @param string|Entity|DataManager|EntityObject $entity
         * @param string                                 $eventType
         * @param string                                 $toModuleId
         * @param string                                 $toClass
         * @param string                                 $toMethod
         * @param int                                    $sort
         * @param string                                 $toPath
         * @param array                                  $toMethodArg
         *
         * @throws ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public function registerEventHandler($entity, $eventType, $toModuleId, $toClass = "", $toMethod = "", $sort = 100, $toPath = "", $toMethodArg = [])
        {
        }
        /**
         * @param string|Entity|DataManager|EntityObject $entity
         * @param string                                 $eventType
         * @param string                                 $toModuleId
         * @param string                                 $toClass
         * @param string                                 $toMethod
         * @param string                                 $toPath
         * @param array                                  $toMethodArg
         *
         * @throws ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public function unRegisterEventHandler($entity, $eventType, $toModuleId, $toClass = "", $toMethod = "", $toPath = "", $toMethodArg = [])
        {
        }
        /**
         * @param string|Entity|DataManager|EntityObject $entity
         *
         * @return Entity
         * @throws ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        protected static function obtainEntity($entity)
        {
        }
        /**
         * @param Entity $entity
         * @param string $eventType
         *
         * @return string
         * @throws ArgumentException
         */
        protected static function obtainEventType($entity, $eventType)
        {
        }
    }
}
namespace Bitrix\Main\ORM\Objectify {
    /**
     * Object values type registry
     * @package    bitrix
     * @subpackage main
     */
    class Values
    {
        const ACTUAL = 1;
        const CURRENT = 2;
        const ALL = 1 | 2;
    }
    /**
     * Object states registry
     * @package    bitrix
     * @subpackage main
     */
    class State
    {
        const RAW = 0;
        const ACTUAL = 1;
        const CHANGED = 2;
        const DELETED = 3;
    }
    /**
     * Object registry, stores objects in collections.
     *
     * @package    bitrix
     * @subpackage main
     */
    class IdentityMap
    {
        /** @var Collection[] */
        protected $collections;
        /**
         * @param $class
         * @param $primary
         *
         * @return EntityObject|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public function get($class, $primary)
        {
        }
        /**
         * @param EntityObject $object
         *
         * @return Collection
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public function put($object)
        {
        }
        /**
         * @param $class
         *
         * @return Collection
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public function getCollectionByClass($class)
        {
        }
    }
    /**
     * Collection of entity objects. Used to hold 1:N and N:M object collections.
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     *
     * @package    bitrix
     * @subpackage main
     */
    abstract class Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /**
         * Entity Table class. Read-only property.
         * @var DataManager
         */
        public static $dataClass;
        /** @var Entity */
        protected $_entity;
        /** @var EntityObject */
        protected $_objectClass;
        /** @var  EntityObject[] */
        protected $_objects = [];
        /** @var bool */
        protected $_isFilled = false;
        /** @var bool */
        protected $_isSinglePrimary;
        /** @var array [SerializedPrimary => OBJECT_CHANGE_CODE] */
        protected $_objectsChanges;
        /** @var  EntityObject[] */
        protected $_objectsRemoved;
        /** @var EntityObject[] Used for Iterator interface, allows to delete elements during foreach loop */
        protected $_iterableObjects;
        /** @var int Code for $objectsChanged */
        const OBJECT_ADDED = 1;
        /** @var int Code for $objectsChanged */
        const OBJECT_REMOVED = 2;
        /**
         * Collection constructor.
         *
         * @param Entity $entity
         *
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function __construct(\Bitrix\Main\ORM\Entity $entity = null)
        {
        }
        /**
         * @param EntityObject $object
         *
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function add(\Bitrix\Main\ORM\Objectify\EntityObject $object)
        {
        }
        /**
         * @param EntityObject $object
         *
         * @return bool
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function has(\Bitrix\Main\ORM\Objectify\EntityObject $object)
        {
        }
        /**
         * @param $primary
         *
         * @return bool
         * @throws ArgumentException
         */
        public final function hasByPrimary($primary)
        {
        }
        /**
         * @param $primary
         *
         * @return EntityObject
         * @throws ArgumentException
         */
        public final function getByPrimary($primary)
        {
        }
        /**
         * @return EntityObject[]
         */
        public final function getAll()
        {
        }
        /**
         * @param EntityObject $object
         *
         * @return void
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function remove(\Bitrix\Main\ORM\Objectify\EntityObject $object)
        {
        }
        /**
         * @param $primary
         *
         * @throws ArgumentException
         */
        public final function removeByPrimary($primary)
        {
        }
        public function sysRemove($srPrimary)
        {
        }
        /**
         * Fills all the values and relations of object
         *
         * @param int|string[] $fields Names of fields to fill
         *
         * @return array|Collection
         * @throws ArgumentException
         * @throws SystemException
         */
        public final function fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
        {
        }
        public final function save($ignoreEvents = false)
        {
        }
        /**
         * Constructs set of existing objects from pre-selected data, including references and relations.
         *
         * @param $rows
         *
         * @return array|static
         * @throws ArgumentException
         * @throws SystemException
         */
        public static final function wakeUp($rows)
        {
        }
        /**
         * Magic read-only properties
         *
         * @param $name
         *
         * @return array|Entity
         * @throws SystemException
         */
        public function __get($name)
        {
        }
        /**
         * Magic read-only properties
         *
         * @param $name
         * @param $value
         *
         * @throws SystemException
         */
        public function __set($name, $value)
        {
        }
        /**
         * Magic to handle getters, setters etc.
         *
         * @param $name
         * @param $arguments
         *
         * @return array
         * @throws ArgumentException
         * @throws SystemException
         */
        public function __call($name, $arguments)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param \Bitrix\Main\ORM\Objectify\EntityObject $object
         *
         * @throws ArgumentException
         * @throws SystemException
         */
        public function sysAddActual(\Bitrix\Main\ORM\Objectify\EntityObject $object)
        {
        }
        /**
         * Callback for object event when it gets primary
         *
         * @param $object
         */
        public function sysOnObjectPrimarySet($object)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @return bool
         */
        public function sysIsFilled()
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @return bool
         */
        public function sysIsChanged()
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @return array
         * @throws SystemException
         */
        public function sysGetChanges()
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param bool $rollback
         */
        public function sysResetChanges($rollback = false)
        {
        }
        /**
         * @param $fieldName
         *
         * @return array
         * @throws SystemException
         */
        protected function sysGetList($fieldName)
        {
        }
        /**
         * @param $fieldName
         *
         * @return Collection
         * @throws ArgumentException
         * @throws SystemException
         */
        protected function sysGetCollection($fieldName)
        {
        }
        /**
         * @internal For internal system usage only.
         */
        public function sysReviseDeletedObjects()
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param bool $value
         */
        public function sysSetFilled($value = true)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param $primary
         *
         * @return array
         * @throws ArgumentException
         */
        protected function sysNormalizePrimary($primary)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param \Bitrix\Main\ORM\Objectify\EntityObject $object
         *
         * @return false|mixed|string
         * @throws ArgumentException
         * @throws SystemException
         */
        protected function sysGetPrimaryKey(\Bitrix\Main\ORM\Objectify\EntityObject $object)
        {
        }
        /**
         * @internal For internal system usage only.
         *
         * @param $primary
         *
         * @return false|mixed|string
         * @throws ArgumentException
         */
        protected function sysSerializePrimaryKey($primary)
        {
        }
        /**
         * ArrayAccess implementation
         *
         * @param mixed $offset
         * @param mixed $value
         *
         * @throws ArgumentException
         * @throws SystemException
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * ArrayAccess implementation
         *
         * @param mixed $offset
         *
         * @return bool|void
         * @throws NotImplementedException
         */
        public function offsetExists($offset)
        {
        }
        /**
         * ArrayAccess implementation
         *
         * @param mixed $offset
         *
         * @throws NotImplementedException
         */
        public function offsetUnset($offset)
        {
        }
        /**
         * ArrayAccess implementation
         *
         * @param mixed $offset
         *
         * @return mixed|void
         * @throws NotImplementedException
         */
        public function offsetGet($offset)
        {
        }
        /**
         * Iterator implementation
         */
        public function rewind()
        {
        }
        /**
         * Iterator implementation
         *
         * @return EntityObject|mixed
         */
        public function current()
        {
        }
        /**
         * Iterator implementation
         *
         * @return int|mixed|null|string
         */
        public function key()
        {
        }
        /**
         * Iterator implementation
         */
        public function next()
        {
        }
        /**
         * Iterator implementation
         *
         * @return bool
         */
        public function valid()
        {
        }
        /**
         * Countable implementation
         *
         * @return int
         */
        public function count()
        {
        }
    }
}
namespace Bitrix\Main\ORM\Fields {
    class SecretField extends \Bitrix\Main\ORM\Fields\CryptoField
    {
        protected $secretLength = 20;
        /**
         * SecretField constructor.
         * @param string $name
         * @param array $parameters Can contain 'secret_length'.
         */
        public function __construct($name, $parameters = [])
        {
        }
        /**
         * @param int $length The length of the secret
         */
        public function configureSecretLength($length)
        {
        }
        /**
         * Encodes binary data before save into DB.
         * @param string $data
         * @return string
         */
        public function encode($data)
        {
        }
        /**
         * Decodes into binary data from DB.
         * @param $data
         * @return false|string
         */
        public function decode($data)
        {
        }
        /**
         * @return string
         */
        public function getRandomBytes()
        {
        }
    }
    /**
     * Entity field class for date data type
     * @package bitrix
     * @subpackage main
     */
    class DateField extends \Bitrix\Main\ORM\Fields\ScalarField
    {
        protected $format = null;
        /**
         * DateField constructor.
         *
         * @param       $name
         * @param array $parameters deprecated, use configure* and add* methods instead
         *
         * @throws Main\SystemException
         */
        public function __construct($name, $parameters = array())
        {
        }
        public function configureFormat($format)
        {
        }
        /**
         * @return array|\Bitrix\Main\ORM\Fields\Validators\Validator[]|callback[]
         * @throws Main\ArgumentTypeException
         * @throws Main\SystemException
         */
        public function getValidators()
        {
        }
        /**
         * @param $value
         *
         * @return Type\Date
         * @throws Main\ObjectException
         */
        public function assureValueObject($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return Type\Date
         * @throws Main\ObjectException
         */
        public function cast($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return Type\Date
         * @throws Main\ObjectException
         * @throws Main\SystemException
         */
        public function convertValueFromDb($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return string
         * @throws Main\ArgumentTypeException
         * @throws Main\SystemException
         */
        public function convertValueToDb($value)
        {
        }
        /**
         * @return string
         */
        public function getGetterTypeHint()
        {
        }
        /**
         * @return string
         */
        public function getSetterTypeHint()
        {
        }
    }
    /**
     * Entity field class for datetime data type
     * @package bitrix
     * @subpackage main
     */
    class DatetimeField extends \Bitrix\Main\ORM\Fields\DateField
    {
        /**
         * DatetimeField constructor.
         *
         * @param       $name
         * @param array $parameters deprecated, use configure* and add* methods instead
         *
         * @throws \Bitrix\Main\SystemException
         */
        public function __construct($name, $parameters = array())
        {
        }
        /**
         * @param mixed $value
         *
         * @return \Bitrix\Main\Type\Date|DateTime
         * @throws \Bitrix\Main\ObjectException
         */
        public function cast($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return \Bitrix\Main\Type\Date|DateTime
         * @throws \Bitrix\Main\ObjectException
         * @throws \Bitrix\Main\SystemException
         */
        public function convertValueFromDb($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return string
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\SystemException
         */
        public function convertValueToDb($value)
        {
        }
        /**
         * @return string
         */
        public function getGetterTypeHint()
        {
        }
        /**
         * @return string
         */
        public function getSetterTypeHint()
        {
        }
    }
    /**
     * @package    bitrix
     * @subpackage main
     */
    abstract class FieldTypeMask
    {
        const SCALAR = 1;
        const EXPRESSION = 2;
        const USERTYPE = 4;
        const REFERENCE = 8;
        const ONE_TO_MANY = 16;
        const MANY_TO_MANY = 32;
        const FLAT = 1 | 2;
        const RELATION = 8 | 16 | 32;
        const ALL = 63;
    }
}
namespace Bitrix\Main\ORM\Fields\Relations {
    /**
     * @package    bitrix
     * @subpackage main
     */
    class CascadePolicy
    {
        const NO_ACTION = 1;
        const SET_NULL = 2;
        const FOLLOW = 3;
        const FOLLOW_ORPHANS = 4;
    }
    /**
     * Performs many to many relation through mediator entity
     * @package    bitrix
     * @subpackage main
     */
    class ManyToMany extends \Bitrix\Main\ORM\Fields\Relations\Relation
    {
        /** @var string */
        protected $mediatorEntityName;
        /** @var Entity */
        protected $mediatorEntity;
        /** @var string Used when mediator is a virtual entity */
        protected $mediatorTableName;
        /** @var string[] Stores owner entity primary => mediator primary */
        protected $localPrimaryNames;
        /** @var string Name of reference from mediator to owner entity */
        protected $localReferenceName;
        /** @var string[] Stores target entity primary => mediator primary */
        protected $remotePrimaryNames;
        /** @var string Name of reference from mediator to target entity */
        protected $remoteReferenceName;
        /** @var string */
        protected $joinType = \Bitrix\Main\ORM\Query\Join::TYPE_LEFT;
        /** @var int */
        protected $cascadeSavePolicy = \Bitrix\Main\ORM\Fields\Relations\CascadePolicy::NO_ACTION;
        protected $cascadeDeletePolicy = \Bitrix\Main\ORM\Fields\Relations\CascadePolicy::NO_ACTION;
        // follow_orphans | no_action
        /**
         * @param string        $name
         * @param string|Entity $referenceEntity
         *
         * @throws SystemException
         */
        public function __construct($name, $referenceEntity)
        {
        }
        public function getTypeMask()
        {
        }
        /**
         * Explicit mediator entity. By default will be generated automatically.
         *
         * @param string|Entity $entity
         *
         * @return $this
         */
        public function configureMediatorEntity($entity)
        {
        }
        /**
         * In case of auto-generated mediator, sets the custom table name.
         *
         * @param $name
         *
         * @return $this
         */
        public function configureMediatorTableName($name)
        {
        }
        /**
         * Short alias for configureMediatorTableName()
         *
         * @param $name
         *
         * @return $this
         */
        public function configureTableName($name)
        {
        }
        /**
         * In case of auto-generated mediator, sets the custom ID field name that stores owner entity ID.
         *
         * @param $fieldName
         * @param $mediatorFieldName
         *
         * @return $this
         */
        public function configureLocalPrimary($fieldName, $mediatorFieldName)
        {
        }
        /**
         * In case of auto-generated mediator, sets the custom reference field name that points to owner entity.
         *
         * @param $name
         *
         * @return $this
         */
        public function configureLocalReference($name)
        {
        }
        /**
         * In case of auto-generated mediator, sets the custom ID field name that stores target entity ID.
         *
         * @param $fieldName
         * @param $mediatorFieldName
         *
         * @return $this
         */
        public function configureRemotePrimary($fieldName, $mediatorFieldName)
        {
        }
        /**
         * In case of auto-generated mediator, sets the custom reference field name that points to target entity.
         *
         * @param $name
         *
         * @return $this
         */
        public function configureRemoteReference($name)
        {
        }
        /**
         * @return Entity
         * @throws ArgumentException
         * @throws SystemException
         */
        public function getRemoteEntity()
        {
        }
        /**
         * @return Entity
         * @throws ArgumentException
         * @throws SystemException
         */
        public function getMediatorEntity()
        {
        }
        /**
         * @return string
         */
        public function getLocalReferenceName()
        {
        }
        /**
         * Returns reference from mediator to owner entity
         *
         * @return \Bitrix\Main\ORM\Fields\Relations\Reference|\Bitrix\Main\ORM\Fields\Field
         * @throws ArgumentException
         * @throws SystemException
         */
        public function getLocalReference()
        {
        }
        /**
         * @return string
         * @throws ArgumentException
         * @throws SystemException
         */
        public function getRemoteReferenceName()
        {
        }
        /**
         * Returns reference from mediator to target entity
         *
         * @return \Bitrix\Main\ORM\Fields\Relations\Reference|\Bitrix\Main\ORM\Fields\Field
         * @throws ArgumentException
         * @throws SystemException
         */
        public function getRemoteReference()
        {
        }
    }
}
namespace Bitrix\Main\ORM\Fields {
    /**
     * Entity field class for enum data type
     * @package bitrix
     * @subpackage main
     */
    class FloatField extends \Bitrix\Main\ORM\Fields\ScalarField
    {
        /** @var int|null */
        protected $scale;
        /**
         * FloatField constructor.
         *
         * @param       $name
         * @param array $parameters deprecated, use configure* and add* methods instead
         *
         * @throws \Bitrix\Main\SystemException
         */
        public function __construct($name, $parameters = array())
        {
        }
        /**
         * @param $scale
         *
         * @return $this
         */
        public function configureScale($scale)
        {
        }
        /**
         * @return int|null
         */
        public function getScale()
        {
        }
        /**
         * @param mixed $value
         *
         * @return float|mixed
         */
        public function cast($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return float|mixed
         * @throws \Bitrix\Main\SystemException
         */
        public function convertValueFromDb($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return string
         * @throws \Bitrix\Main\SystemException
         */
        public function convertValueToDb($value)
        {
        }
        /**
         * @return string
         */
        public function getGetterTypeHint()
        {
        }
        /**
         * @return string
         */
        public function getSetterTypeHint()
        {
        }
    }
    /**
     * Entity field class for boolean data type
     * @package bitrix
     * @subpackage main
     */
    class BooleanField extends \Bitrix\Main\ORM\Fields\ScalarField
    {
        /**
         * Value (false, true) equivalent map
         * @var array
         */
        protected $values;
        /**
         * BooleanField constructor.
         *
         * @param       $name
         * @param array $parameters deprecated, use configure* and add* methods instead
         *
         * @throws \Bitrix\Main\SystemException
         */
        function __construct($name, $parameters = array())
        {
        }
        /**
         * @param $falseValue
         * @param $trueValue
         *
         * @return $this
         */
        public function configureStorageValues($falseValue, $trueValue)
        {
        }
        /**
         * Short alias for configureStorageValues
         *
         * @param $falseValue
         * @param $trueValue
         *
         * @return BooleanField
         */
        public function configureValues($falseValue, $trueValue)
        {
        }
        /**
         * Convert true/false values to actual field values
         * @param boolean|integer|string $value
         * @return mixed
         */
        public function normalizeValue($value)
        {
        }
        /**
         * Converts any possible value to strict boolean.
         *
         * @param $value
         *
         * @return bool
         */
        public function booleanizeValue($value)
        {
        }
        /**
         * @return array|\Bitrix\Main\ORM\Fields\Validators\Validator[]|callback[]
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\SystemException
         */
        public function getValidators()
        {
        }
        public function getValues()
        {
        }
        public function isValueEmpty($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return mixed
         */
        public function cast($value)
        {
        }
        /**
         * @param $value
         *
         * @return mixed
         */
        public function convertValueFromDb($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return string
         * @throws \Bitrix\Main\SystemException
         */
        public function convertValueToDb($value)
        {
        }
        /**
         * @return string
         */
        public function getGetterTypeHint()
        {
        }
        /**
         * @return string
         */
        public function getSetterTypeHint()
        {
        }
    }
    /**
     * Entity field class for integer data type
     * @package bitrix
     * @subpackage main
     */
    class IntegerField extends \Bitrix\Main\ORM\Fields\ScalarField
    {
        /**
         * @param mixed $value
         *
         * @return int
         */
        public function cast($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return int
         * @throws \Bitrix\Main\SystemException
         */
        public function convertValueFromDb($value)
        {
        }
        /**
         * @param int $value
         *
         * @return string
         * @throws \Bitrix\Main\SystemException
         */
        public function convertValueToDb($value)
        {
        }
        /**
         * @return string
         */
        public function getGetterTypeHint()
        {
        }
        /**
         * @return string
         */
        public function getSetterTypeHint()
        {
        }
    }
    /**
     * @package    bitrix
     * @subpackage main
     */
    class ArrayField extends \Bitrix\Main\ORM\Fields\ScalarField
    {
        /** @var string  json, serialize, custom */
        protected $serializationType;
        /** @var callable */
        protected $encodeFunction;
        /** @var callable */
        protected $decodeFunction;
        public function __construct($name, $parameters = [])
        {
        }
        /**
         * Sets json serialization format
         *
         * @return $this
         */
        public function configureSerializationJson()
        {
        }
        /**
         * Sets php serialization format
         *
         * @return $this
         */
        public function configureSerializationPhp()
        {
        }
        /**
         * Custom encode handler
         *
         * @param callable $callback
         *
         * @return $this
         */
        public function configureSerializeCallback($callback)
        {
        }
        /**
         * Custom decode handler
         *
         * @param $callback
         *
         * @return $this
         */
        public function configureUnserializeCallback($callback)
        {
        }
        /**
         * @param array $value
         *
         * @return string
         */
        public function encode($value)
        {
        }
        /**
         * @param string $value
         *
         * @return array
         */
        public function decode($value)
        {
        }
        /**
         * @param $value
         *
         * @return mixed
         * @throws \Bitrix\Main\ArgumentException
         */
        public function encodeJson($value)
        {
        }
        /**
         * @param $value
         *
         * @return mixed
         * @throws \Bitrix\Main\ArgumentException
         */
        public function decodeJson($value)
        {
        }
        /**
         * @param $value
         *
         * @return string
         */
        public function encodePhp($value)
        {
        }
        /**
         * @param $value
         *
         * @return array
         */
        public function decodePhp($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return array
         */
        public function cast($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return mixed|string
         * @throws \Bitrix\Main\SystemException
         */
        public function convertValueFromDb($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return string
         * @throws \Bitrix\Main\SystemException
         */
        public function convertValueToDb($value)
        {
        }
        /**
         * @return string
         */
        public function getGetterTypeHint()
        {
        }
        /**
         * @return string
         */
        public function getSetterTypeHint()
        {
        }
    }
    /**
     * Expr field is to describe dynamic fields by expression, e.g. we have PRICE_USD field and need to count price in EUR
     * then we define expression field PRICE_EUR with expression = array('%s * 1.25', 'PRICE_USD')
     * @package bitrix
     * @subpackage main
     */
    class ExpressionField extends \Bitrix\Main\ORM\Fields\Field implements \Bitrix\Main\ORM\Fields\IReadable
    {
        /**
         * @var string
         */
        protected $expression;
        /**
         * Full expression, recursively includes expressions from buildFrom fields
         * @var string
         */
        protected $fullExpression;
        /** @var string Scalar field class name */
        protected $valueType;
        /**
         * @var ScalarField
         */
        protected $valueField;
        /**
         * @var array
         */
        protected $buildFrom;
        /** @var \Bitrix\Main\ORM\Query\Chain[] */
        protected $buildFromChains;
        protected $isAggregated;
        protected $hasSubquery;
        protected static $aggrFunctionsMYSQL = array('AVG', 'BIT_AND', 'BIT_OR', 'BIT_XOR', 'COUNT', 'GROUP_CONCAT', 'MAX', 'MIN', 'STD', 'STDDEV_POP', 'STDDEV_SAMP', 'STDDEV', 'SUM', 'VAR_POP', 'VAR_SAMP', 'VARIANCE'), $aggrFunctionsMSSQL = array('AVG', 'MIN', 'CHECKSUM_AGG', 'OVER', 'COUNT', 'ROWCOUNT_BIG', 'COUNT_BIG', 'STDEV', 'GROUPING', 'STDEVP', 'GROUPING_ID', 'SUM', 'MAX', 'VAR', 'VARP'), $aggrFunctionsORACLE = array('AVG', 'COLLECT', 'CORR', 'CORR_S', 'CORR_K', 'COUNT', 'COVAR_POP', 'COVAR_SAMP', 'CUME_DIST', 'DENSE_RANK', 'FIRST', 'GROUP_ID', 'GROUPING', 'GROUPING_ID', 'LAST', 'MAX', 'MEDIAN', 'MIN', 'PERCENTILE_CONT', 'PERCENTILE_DISC', 'PERCENT_RANK', 'RANK', 'REGR_SLOPE', 'REGR_INTERCEPT', 'REGR_COUNT', 'REGR_R2', 'REGR_AVGX', 'REGR_AVGY', 'REGR_SXX', 'REGR_SYY', 'REGR_SXY', 'STATS_BINOMIAL_TEST', 'STATS_CROSSTAB', 'STATS_F_TEST', 'STATS_KS_TEST', 'STATS_MODE', 'STATS_MW_TEST', 'STATS_ONE_WAY_ANOVA', 'STATS_T_TEST_ONE', 'STATS_T_TEST_PAIRED', 'STATS_T_TEST_INDEP', 'STATS_T_TEST_INDEPU', 'STATS_WSR_TEST', 'STDDEV', 'STDDEV_POP', 'STDDEV_SAMP', 'SUM', 'VAR_POP', 'VAR_SAMP', 'VARIANCE'), $aggrFunctions;
        /**
         * All fields in expression should be placed as %s (or as another placeholder for sprintf),
         * and the real field names being carrying in $buildFrom array (= args for sprintf)
         *
         * @param string            $name
         * @param string            $expression
         * @param array|string|null $buildFrom
         * @param array             $parameters deprecated, use configure* and add* instead
         *
         * @throws SystemException
         */
        public function __construct($name, $expression, $buildFrom = null, $parameters = array())
        {
        }
        public function __call($name, $arguments)
        {
        }
        /**
         * @return mixed
         */
        public function getTypeMask()
        {
        }
        /**
         * @param $class
         *
         * @return $this
         */
        public function configureValueType($class)
        {
        }
        /**
         * @param Entity $entity
         *
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         */
        public function setEntity(\Bitrix\Main\ORM\Entity $entity)
        {
        }
        public function getExpression()
        {
        }
        /**
         * @return mixed|string
         * @throws SystemException
         */
        public function getFullExpression()
        {
        }
        /**
         * @return bool
         * @throws SystemException
         */
        public function isAggregated()
        {
        }
        /**
         * @return bool
         * @throws SystemException
         */
        public function hasSubquery()
        {
        }
        public function isConstant()
        {
        }
        /**
         * @return array|\Bitrix\Main\ORM\Query\Chain[]
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getBuildFromChains()
        {
        }
        public static function checkAggregation($expression)
        {
        }
        public static function checkSubquery($expression)
        {
        }
        public static function removeSubqueries($expression)
        {
        }
        protected static function removeStrings($quote, $expression)
        {
        }
        protected static function removeSubqueryBody($query)
        {
        }
        /**
         * @deprecated
         * @return null|string
         */
        public function getDataType()
        {
        }
        /**
         * @return string
         */
        public function getValueType()
        {
        }
        /**
         * @return ScalarField
         */
        public function getValueField()
        {
        }
        public function __clone()
        {
        }
        /**
         * @param mixed $value
         *
         * @return mixed
         */
        public function cast($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return mixed
         */
        public function convertValueFromDb($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return string
         */
        public function convertValueToDb($value)
        {
        }
        public function validateValue($value, $primary, $row, \Bitrix\Main\ORM\Data\Result $result)
        {
        }
    }
}
namespace Bitrix\Main\ORM {
    class EntityError extends \Bitrix\Main\Error
    {
        public function __construct($message, $code = 'BX_ERROR')
        {
        }
    }
}
namespace Bitrix\Main\ORM\Fields {
    class FieldError extends \Bitrix\Main\ORM\EntityError
    {
        const EMPTY_REQUIRED = 'BX_EMPTY_REQUIRED';
        const INVALID_VALUE = 'BX_INVALID_VALUE';
        /** @var Field */
        protected $field;
        public function __construct(\Bitrix\Main\ORM\Fields\Field $field, $message, $code = 'BX_ERROR')
        {
        }
        public function getField()
        {
        }
    }
}
namespace Bitrix\Main\ORM\Fields\Validators {
    interface IValidator
    {
        /**
         * @param       $value
         * @param       $primary
         * @param array $row
         * @param Field $field
         *
         * @return string|boolean|EntityError
         */
        public function validate($value, $primary, array $row, \Bitrix\Main\ORM\Fields\Field $field);
    }
    abstract class Validator implements \Bitrix\Main\ORM\Fields\Validators\IValidator
    {
        /**
         * @var string
         */
        protected $errorPhraseCode = 'MAIN_ENTITY_VALIDATOR';
        protected $errorPhrase;
        /**
         * @param null $errorPhrase
         * @throws ArgumentTypeException
         */
        public function __construct($errorPhrase = null)
        {
        }
        /**
         * @param $value
         * @param \Bitrix\Main\ORM\Fields\Field $field
         * @param null|string $errorPhrase
         * @param null|array $additionalTemplates
         *
         * @return string
         */
        protected function getErrorMessage($value, \Bitrix\Main\ORM\Fields\Field $field, $errorPhrase = null, $additionalTemplates = null)
        {
        }
    }
    /**
     * @package    bitrix
     * @subpackage main
     */
    class BooleanValidator extends \Bitrix\Main\ORM\Fields\Validators\Validator
    {
        public function validate($value, $primary, array $row, \Bitrix\Main\ORM\Fields\Field $field)
        {
        }
    }
    class RegExpValidator extends \Bitrix\Main\ORM\Fields\Validators\Validator
    {
        /**
         * @var string
         */
        protected $pattern;
        /**
         * @var string
         */
        protected $errorPhraseCode = 'MAIN_ENTITY_VALIDATOR_REGEXP';
        /**
         * @param string $pattern
         * @param null   $errorPhrase
         *
         * @throws ArgumentTypeException
         */
        public function __construct($pattern, $errorPhrase = null)
        {
        }
        public function validate($value, $primary, array $row, \Bitrix\Main\ORM\Fields\Field $field)
        {
        }
    }
    class RangeValidator extends \Bitrix\Main\ORM\Fields\Validators\Validator
    {
        /** @var integer */
        protected $min;
        /** @var integer */
        protected $max;
        /** @var boolean */
        protected $equality;
        /** @var string */
        protected $errorPhraseMinCode = 'MAIN_ENTITY_VALIDATOR_RANGE_MIN';
        protected $errorPhraseMin;
        /** @var string */
        protected $errorPhraseMaxCode = 'MAIN_ENTITY_VALIDATOR_RANGE_MAX';
        protected $errorPhraseMax;
        /**
         * @param int   $min
         * @param null  $max
         * @param bool  $equality  Check "or equal" to the edges of the range
         * @param array $errorPhrase
         *
         * @throws ArgumentTypeException
         */
        public function __construct($min = 0, $max = null, $equality = false, $errorPhrase = array('MIN' => null, 'MAX' => null))
        {
        }
        public function validate($value, $primary, array $row, \Bitrix\Main\ORM\Fields\Field $field)
        {
        }
    }
    class UniqueValidator extends \Bitrix\Main\ORM\Fields\Validators\Validator
    {
        /**
         * @var string
         */
        protected $errorPhraseCode = 'MAIN_ENTITY_VALIDATOR_UNIQUE';
        public function validate($value, $primary, array $row, \Bitrix\Main\ORM\Fields\Field $field)
        {
        }
    }
    class DateValidator extends \Bitrix\Main\ORM\Fields\Validators\Validator
    {
        public function validate($value, $primary, array $row, \Bitrix\Main\ORM\Fields\Field $field)
        {
        }
    }
    /**
     * Checks if field value exists in referenced entity
     *
     * example: new Foreign(GroupTable::getEntity()->getField('ID'));
     *
     * @package Bitrix\Main\ORM\Validator
     */
    class ForeignValidator extends \Bitrix\Main\ORM\Fields\Validators\Validator
    {
        protected $errorPhraseCode = 'MAIN_ENTITY_VALIDATOR_FOREIGN';
        protected $reference = null;
        protected $filter = null;
        const NOT_EXISTS = 'BX_FOREIGN_NOT_EXISTS';
        /**
         * @param ORM\Fields\Field $reference
         * @param array            $filter
         */
        public function __construct(\Bitrix\Main\ORM\Fields\Field $reference, array $filter = array())
        {
        }
        public function validate($value, $primary, array $row, \Bitrix\Main\ORM\Fields\Field $field)
        {
        }
    }
    class LengthValidator extends \Bitrix\Main\ORM\Fields\Validators\Validator
    {
        /** @var integer */
        protected $min;
        /** @var integer */
        protected $max;
        /** @var string */
        protected $errorPhraseMinCode = 'MAIN_ENTITY_VALIDATOR_LENGTH_MIN';
        protected $errorPhraseMin;
        /** @var string */
        protected $errorPhraseMaxCode = 'MAIN_ENTITY_VALIDATOR_LENGTH_MAX';
        protected $errorPhraseMax;
        /**
         * @param int|null  $min
         * @param int|null  $max
         * @param array $errorPhrase
         *
         * @throws ArgumentTypeException
         */
        public function __construct($min = 1, $max = null, $errorPhrase = array('MIN' => null, 'MAX' => null))
        {
        }
        /**
         * Checks minimum and/or maximum length (as string) of the value.
         * Returns true if check was successful or string with error text otherwise.
         *
         * @param mixed $value   Value to check.
         * @param array $primary Has no use in this function.
         * @param array $row     Has no use in this function.
         * @param Field $field   Field metadata.
         *
         * @return boolean|string
         */
        public function validate($value, $primary, array $row, \Bitrix\Main\ORM\Fields\Field $field)
        {
        }
        /**
         * Returns minimum allowed length.
         * null if not set.
         *
         * @return integer|null
         */
        public function getMin()
        {
        }
        /**
         * Returns maximum allowed length.
         * null if not set.
         *
         * @return integer|null
         */
        public function getMax()
        {
        }
    }
    class EnumValidator extends \Bitrix\Main\ORM\Fields\Validators\Validator
    {
        /**
         * @param $value
         * @param $primary
         * @param array $row
         * @param \Bitrix\Main\ORM\Fields\Field | \Bitrix\Main\ORM\Fields\EnumField | \Bitrix\Main\ORM\Fields\BooleanField $field
         *
         * @return bool|string
         */
        public function validate($value, $primary, array $row, \Bitrix\Main\ORM\Fields\Field $field)
        {
        }
    }
}
namespace Bitrix\Main\ORM\Fields {
    /**
     * Entity field class for enum data type
     * @package bitrix
     * @subpackage main
     */
    class EnumField extends \Bitrix\Main\ORM\Fields\ScalarField
    {
        protected $values;
        /**
         * EnumField constructor.
         *
         * @param       $name
         * @param array $parameters deprecated, use configure* and add* methods instead
         *
         * @throws SystemException
         */
        function __construct($name, $parameters = array())
        {
        }
        public function postInitialize()
        {
        }
        /**
         * @param $values
         *
         * @return $this
         */
        public function configureValues($values)
        {
        }
        /**
         * @return array|Validators\Validator[]|callback[]
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        public function getValidators()
        {
        }
        public function getValues()
        {
        }
        /**
         * @param mixed $value
         *
         * @return mixed
         */
        public function cast($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return mixed
         */
        public function convertValueFromDb($value)
        {
        }
        /**
         * @param mixed $value
         *
         * @return string
         * @throws SystemException
         */
        public function convertValueToDb($value)
        {
        }
    }
    /**
     * UserType proxy fields. Works like expressions and allows to be set.
     * @package    bitrix
     * @subpackage main
     */
    class UserTypeField extends \Bitrix\Main\ORM\Fields\ExpressionField
    {
        /** @var bool */
        protected $isMultiple = false;
        /**
         * @param mixed $value
         *
         * @return mixed
         * @throws ArgumentException
         */
        public function cast($value)
        {
        }
        /**
         * @return mixed
         */
        public function getTypeMask()
        {
        }
        /**
         * @param bool $isMultiple
         *
         * @return $this
         */
        public function configureMultiple($isMultiple = true)
        {
        }
        /**
         * @return mixed
         */
        public function isMultiple()
        {
        }
    }
}
namespace Bitrix\Main\ORM\Query {
    /**
     * Short calls for runtime fields.
     * @see ConditionTree::where()
     *
     * @package    bitrix
     * @subpackage main
     */
    class Expression
    {
        /**
         * Expression with COUNT(...) function.
         *
         * @param $columnName
         *
         * @return ExpressionField
         */
        public function count($columnName)
        {
        }
        /**
         * Expression with COUNT(DISTINCT ...) function.
         *
         * @param $columnName
         *
         * @return ExpressionField
         */
        public function countDistinct($columnName)
        {
        }
        /**
         * Expression with SUM(...) function.
         *
         * @param $columnName
         *
         * @return ExpressionField
         */
        public function sum($columnName)
        {
        }
        /**
         * Expression with MIN(...) function.
         *
         * @param $columnName
         *
         * @return ExpressionField
         */
        public function min($columnName)
        {
        }
        /**
         * Expression with AVG(...) function.
         *
         * @param $columnName
         *
         * @return ExpressionField
         */
        public function avg($columnName)
        {
        }
        /**
         * Expression with MAX(...) function.
         *
         * @param $columnName
         *
         * @return ExpressionField
         */
        public function max($columnName)
        {
        }
        /**
         * Expression with LENGTH(...) function.
         *
         * @param $columnName
         *
         * @return ExpressionField
         */
        public function length($columnName)
        {
        }
        /**
         * Expression with LOWER(...) function.
         *
         * @param $columnName
         *
         * @return ExpressionField
         */
        public function lower($columnName)
        {
        }
        /**
         * Expression with UPPER(...) function.
         *
         * @param $columnName
         *
         * @return ExpressionField
         */
        public function upper($columnName)
        {
        }
        /**
         * Expression with CONCAT(...) function.
         *
         * @param array $columns
         *
         * @return ExpressionField
         */
        public function concat()
        {
        }
        /**
         * Random name for Expression. Real alias is expected in Query when set the Expression.
         *
         * @param $postfix
         *
         * @return string
         */
        protected static function getTmpName($postfix)
        {
        }
    }
    /**
     * Class description
     * @package    bitrix
     * @subpackage main
     */
    class NosqlPrimarySelector
    {
        /**
         * @param \Bitrix\Main\Data\Connection $connection
         * @param Query                        $query
         *
         * @return bool
         */
        public static function checkQuery(\Bitrix\Main\Data\Connection $connection, \Bitrix\Main\ORM\Query\Query $query)
        {
        }
        public static function relayQuery(\Bitrix\Main\Data\Connection $connection, \Bitrix\Main\ORM\Query\Query $query)
        {
        }
    }
    class ChainElement
    {
        /** @var array|Entity|Field|\Bitrix\Main\ORM\Fields\Relations\Reference|ScalarField|Relation */
        protected $value;
        protected $parameters;
        protected $type;
        protected $definition_fragment;
        protected $alias_fragment;
        /**
         * Value format:
         * 1. Field - normal scalar field
         * 2. Reference - pointer to another entity
         * 3. array(Base, Reference) - pointer from another entity to this
         * 4. Base - all fields of entity
         *
         * @param Field|array|Entity $element
         * @param array              $parameters
         *
         * @throws SystemException
         */
        public function __construct($element, $parameters = array())
        {
        }
        /**
         * @return array|Entity|ExpressionField|\Bitrix\Main\ORM\Fields\Relations\Reference|ScalarField|Relation|OneToMany|ManyToMany
         */
        public function getValue()
        {
        }
        /**
         * @param $name
         *
         * @return mixed|null
         */
        public function getParameter($name)
        {
        }
        public function setParameter($name, $value)
        {
        }
        /**
         * @return string
         * @throws SystemException
         * @throws ArgumentException
         */
        public function getDefinitionFragment()
        {
        }
        /**
         * @return string
         * @throws ArgumentException
         * @throws SystemException
         */
        public function getAliasFragment()
        {
        }
        /**
         * @return mixed|string
         * @throws ArgumentException
         * @throws SystemException
         */
        public function getSqlDefinition()
        {
        }
        /**
         * @return bool
         * @throws ArgumentException
         * @throws SystemException
         */
        public function isBackReference()
        {
        }
        public function dump()
        {
        }
    }
    /**
     * Class for nice description of join reference. Alias to Query::filter().
     * @package    bitrix
     * @subpackage main
     */
    class Join
    {
        const TYPE_INNER = 'INNER';
        const TYPE_LEFT = 'LEFT';
        const TYPE_LEFT_OUTER = 'LEFT OUTER';
        const TYPE_RIGHT = 'RIGHT';
        const TYPE_RIGHT_OUTER = 'RIGHT OUTER';
        /**
         * Short alias to init filter with whereColumn.
         * @see Filter::whereColumn()
         *
         * @param array ...$condition
         *
         * @return Filter
         */
        public static function on()
        {
        }
        public static function getTypes()
        {
        }
    }
    interface INosqlPrimarySelector
    {
        public function getEntityByPrimary(\Bitrix\Main\ORM\Entity $entity, $primary, $select);
    }
    class Chain
    {
        /** @var ChainElement[] */
        protected $chain;
        protected $size = 0;
        /** @var string[] Definition caches ([0] - full length) */
        protected $definition;
        /** @var array Definition cache */
        protected $definitionParts;
        protected $alias;
        protected $custom_alias;
        /** @var boolean */
        protected $forcesDataDoublingOff = false;
        /** @var ChainElement */
        protected $last_element;
        public function __construct()
        {
        }
        /**
         * @param ChainElement $element
         *
         * @throws SystemException
         */
        public function addElement(\Bitrix\Main\ORM\Query\ChainElement $element)
        {
        }
        /**
         * @param ChainElement $element
         */
        public function prependElement(\Bitrix\Main\ORM\Query\ChainElement $element)
        {
        }
        /**
         * @param Chain $chain
         */
        public function prepend(\Bitrix\Main\ORM\Query\Chain $chain)
        {
        }
        public function getFirstElement()
        {
        }
        /**
         * @return ChainElement
         */
        public function getLastElement()
        {
        }
        /**
         * @return array|ChainElement[]
         */
        public function getAllElements()
        {
        }
        public function removeLastElement()
        {
        }
        public function removeFirstElement()
        {
        }
        public function hasBackReference()
        {
        }
        public function getSize()
        {
        }
        /**
         * @param int $elementsSlice Definition length, e.g. -1 would exclude last element.
         *
         * @return string
         */
        public function getDefinition($elementsSlice = 0)
        {
        }
        /**
         * @return array
         */
        public function getDefinitionParts()
        {
        }
        public function getAlias()
        {
        }
        public function setCustomAlias($alias)
        {
        }
        /**
         * @param Entity $init_entity
         * @param      $definition
         *
         * @return Chain
         * @throws Main\ArgumentException
         * @throws SystemException
         */
        public static function getChainByDefinition(\Bitrix\Main\ORM\Entity $init_entity, $definition)
        {
        }
        public static function getDefinitionByChain(\Bitrix\Main\ORM\Query\Chain $chain)
        {
        }
        public static function getDefinitionPartsByChain(\Bitrix\Main\ORM\Query\Chain $chain)
        {
        }
        public static function appendDefinition($currentDefinition, $newDefinitionPart)
        {
        }
        public static function getAliasByChain(\Bitrix\Main\ORM\Query\Chain $chain)
        {
        }
        /**
         * @param Entity $entity
         * @param      $definition
         *
         * @return string
         * @throws Main\ArgumentException
         * @throws SystemException
         */
        public static function getAliasByDefinition(\Bitrix\Main\ORM\Entity $entity, $definition)
        {
        }
        /**
         * @return bool
         * @throws SystemException
         */
        public function hasAggregation()
        {
        }
        /**
         * @return bool
         * @throws SystemException
         */
        public function hasSubquery()
        {
        }
        public function isConstant()
        {
        }
        public function forceDataDoublingOff()
        {
        }
        public function forcesDataDoublingOff()
        {
        }
        /**
         * @param bool $with_alias
         *
         * @return mixed|string
         * @throws SystemException
         */
        public function getSqlDefinition($with_alias = false)
        {
        }
        public function __clone()
        {
        }
        public function dump()
        {
        }
    }
    /**
     * UNION container to be used in Query.
     *
     * @package    bitrix
     * @subpackage main
     */
    class UnionCondition
    {
        /** @var Query|SqlExpression */
        protected $subQuery;
        /** @var bool */
        protected $all;
        /**
         * @param Query|SqlExpression $subQuery
         * @param bool                $unionAll
         *
         * @throws ArgumentException
         */
        public function __construct($subQuery, $unionAll = false)
        {
        }
        /**
         * @return SqlExpression|Query
         */
        public function getSubQuery()
        {
        }
        /**
         * @param SqlExpression|Query $subQuery
         */
        public function setSubQuery($subQuery)
        {
        }
        /**
         * @return bool
         */
        public function isAll()
        {
        }
        /**
         * @param bool $all
         */
        public function setAll($all)
        {
        }
        /**
         * @param bool $forceObjectPrimary
         *
         * @return string
         * @throws ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public function getSql($forceObjectPrimary = false)
        {
        }
        /**
         * @param bool $forceObjectPrimary
         *
         * @return string
         * @throws ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public function getSubQuerySql($forceObjectPrimary = false)
        {
        }
    }
}
namespace Bitrix\Main\ORM\Query\Filter {
    /**
     * SQL operators handler.
     * @package    bitrix
     * @subpackage main
     */
    class Operator
    {
        /**
         * Available operators.
         * @var array
         */
        protected static $operators = array('=' => 'eq', '<>' => 'neq', '!=' => 'neq', '<' => 'lt', '<=' => 'lte', '>' => 'gt', '>=' => 'gte', 'in' => 'in', 'between' => 'between', 'like' => 'like', 'exists' => 'exists', 'match' => 'match');
        /**
         * List of available operators `code => method`.
         *
         * @return array
         */
        public static function get()
        {
        }
        public static function eq($columnSql, $valueSql)
        {
        }
        public static function neq($columnSql, $valueSql)
        {
        }
        public static function lt($columnSql, $valueSql)
        {
        }
        public static function lte($columnSql, $valueSql)
        {
        }
        public static function gt($columnSql, $valueSql)
        {
        }
        public static function gte($columnSql, $valueSql)
        {
        }
        public static function in($columnSql, $valueSql)
        {
        }
        public static function between($columnSql, $valueSql)
        {
        }
        public static function like($columnSql, $valueSql)
        {
        }
        public static function exists($columnSql, $valueSql)
        {
        }
        public static function match($columnSql, $valueSql)
        {
        }
    }
    /**
     * Handles filtering conditions for Query and join conditions for Entity References.
     * @package bitrix
     * @subpackage main
     */
    class ConditionTree
    {
        /** @var Chain[] */
        protected $chains;
        /** @var Condition[]|ConditionTree[] */
        protected $conditions = array();
        /**
         * @var string and|or
         * @see ConditionTree::logic()
         */
        protected $logic;
        const LOGIC_OR = 'or';
        const LOGIC_AND = 'and';
        /**
         * Whether to set NOT before all the conditions.
         * @var bool
         */
        protected $isNegative = false;
        /**
         * ConditionTree constructor.
         */
        public function __construct()
        {
        }
        /**
         * All conditions will be imploded by this logic: static::LOGIC_AND or static::LOGIC_OR
         *
         * @param string $logic and|or
         *
         * @return $this|string
         * @throws ArgumentException
         */
        public function logic($logic = null)
        {
        }
        /**
         * Sets NOT before all the conditions.
         *
         * @param bool $negative
         *
         * @return $this
         */
        public function negative($negative = true)
        {
        }
        /**
         * General condition. In regular case used with 3 parameters:
         *   where(columnName, operator, value), e.g. ('ID', '=', 1); ('SALARY', '>', '500')
         *
         * List of available operators can be found in Operator class.
         * @see Operator::$operators
         *
         * Can be used in short format:
         *   where(columnName, value), with operator '=' by default
         * Can be used in ultra short format:
         *   where(columnName), for boolean fields only
         *
         * Can be used for subfilter set:
         *   where(ConditionTree subfilter)
         *
         * Instead of columnName, you can use runtime field:
         *   where(new ExpressionField('TMP', 'CONCAT(%s, %s)', ["NAME", "LAST_NAME"]), 'Anton Ivanov')
         *     or with expr helper
         *   where(Query::expr()->concat("NAME", "LAST_NAME"), 'Anton Ivanov')
         *
         * @param array ...$filter
         *
         * @return $this
         * @throws ArgumentException
         */
        public function where()
        {
        }
        /**
         * Sets NOT before any conditions or subfilter.
         * @see ConditionTree::where()
         *
         * @param array ...$filter
         *
         * @return $this
         */
        public function whereNot()
        {
        }
        /**
         * The same logic as where(), but value will be taken as another column name.
         * @see ConditionTree::where()
         *
         * @param array ...$filter
         *
         * @return $this
         * @throws ArgumentException
         */
        public function whereColumn()
        {
        }
        /**
         * Compares column with NULL.
         *
         * @param string $column
         *
         * @return $this
         */
        public function whereNull($column)
        {
        }
        /**
         * Compares column with NOT NULL.
         *
         * @param string $column
         *
         * @return $this
         */
        public function whereNotNull($column)
        {
        }
        /**
         * IN() condition.
         *
         * @param string                    $column
         * @param array|Query|SqlExpression $values
         *
         * @return $this
         */
        public function whereIn($column, $values)
        {
        }
        /**
         * Negative IN() condition.
         * @see ConditionTree::whereIn()
         *
         * @param string                    $column
         * @param array|Query|SqlExpression $values
         *
         * @return $this
         */
        public function whereNotIn($column, $values)
        {
        }
        /**
         * BETWEEN condition.
         *
         * @param $column
         * @param $valueMin
         * @param $valueMax
         *
         * @return $this
         */
        public function whereBetween($column, $valueMin, $valueMax)
        {
        }
        /**
         * Negative BETWEEN condition.
         * @see ConditionTree::whereBetween()
         *
         * @param $column
         * @param $valueMin
         * @param $valueMax
         *
         * @return $this
         */
        public function whereNotBetween($column, $valueMin, $valueMax)
        {
        }
        /**
         * LIKE condition, without default % placement.
         *
         * @param $column
         * @param $value
         *
         * @return $this
         */
        public function whereLike($column, $value)
        {
        }
        /**
         * Negative LIKE condition, without default % placement.
         * @see ConditionTree::whereLike()
         *
         * @param $column
         * @param $value
         *
         * @return $this
         */
        public function whereNotLike($column, $value)
        {
        }
        /**
         * Exists() condition. Can be used with Query object or plain sql wrapped with SqlExpression.
         *
         * @param Query|SqlExpression $query
         *
         * @return $this
         */
        public function whereExists($query)
        {
        }
        /**
         * Negative Exists() condition. Can be used with Query object or plain sql wrapped with SqlExpression.
         * @see ConditionTree::whereExists()
         *
         * @param Query|SqlExpression $query
         *
         * @return $this
         * @throws ArgumentException
         */
        public function whereNotExists($query)
        {
        }
        /**
         * Fulltext search condition.
         * @see Helper::matchAgainstWildcard() for preparing $value for AGAINST.
         *
         * @param $column
         * @param $value
         *
         * @return $this
         */
        public function whereMatch($column, $value)
        {
        }
        /**
         * Negative fulltext search condition.
         * @see Helper::matchAgainstWildcard() for preparing $value for AGAINST.
         *
         * @param $column
         * @param $value
         *
         * @return $this
         */
        public function whereNotMatch($column, $value)
        {
        }
        /**
         * Returns SQL for all conditions and subfilters.
         *
         * @param Chain[] $chains
         *
         * @return string
         * @throws ArgumentException
         * @throws SystemException
         */
        public function getSql($chains)
        {
        }
        /**
         * Returns all conditions and subfilters.
         *
         * @return ConditionTree[]|Condition[]
         */
        public function getConditions()
        {
        }
        /**
         * Adds prepared condition.
         *
         * @param Condition|ConditionTree $condition
         *
         * @return $this
         * @throws ArgumentException
         */
        public function addCondition($condition)
        {
        }
        /**
         * Checks if filter is not empty.
         *
         * @return bool
         */
        public function hasConditions()
        {
        }
        /**
         * Replaces condition with a new one.
         *
         * @param $currentCondition
         * @param $newCondition
         *
         * @return bool
         */
        public function replaceCondition($currentCondition, $newCondition)
        {
        }
        /**
         * Removes one condition
         *
         * @param $condition
         *
         * @return bool
         */
        public function removeCondition($condition)
        {
        }
        /**
         * Removes all conditions
         */
        public function removeAllConditions()
        {
        }
        /**
         * Converts any value to raw SQL, except of NULL, which is supposed to be handled in Operator.
         *
         * @param mixed     $value
         * @param IReadable $field
         *
         * @return mixed|null|string
         * @throws ArgumentException
         * @throws SystemException
         */
        protected function convertValue($value, \Bitrix\Main\ORM\Fields\IReadable $field = null)
        {
        }
        /**
         * Converts array of values to raw SQL.
         * @see ConditionTree::convertValue()
         *
         * @param array                                  $values
         * @param \Bitrix\Main\ORM\Fields\IReadable|null $field
         *
         * @return array
         * @throws ArgumentException
         * @throws SystemException
         */
        protected function convertValues($values, \Bitrix\Main\ORM\Fields\IReadable $field = null)
        {
        }
        public function __clone()
        {
        }
        /**
         * Creates filter object from array
         *
         * @param $filter
         *
         * @return ConditionTree
         * @throws ArgumentException
         */
        public static function createFromArray($filter)
        {
        }
    }
}
namespace Bitrix\Main\ORM\Query\Filter\Expressions {
    /**
     * Base expression.
     * @package    bitrix
     * @subpackage main
     */
    class Expression
    {
    }
    /**
     * Wrapper for columns values in QueryFilter.
     * @package    bitrix
     * @subpackage main
     */
    class ColumnExpression extends \Bitrix\Main\ORM\Query\Filter\Expressions\Expression
    {
        /**
         * @var string
         */
        protected $definition;
        /**
         * @param $definition
         */
        public function __construct($definition)
        {
        }
        /**
         * @return string
         */
        public function getDefinition()
        {
        }
        /**
         * @param string $definition
         */
        public function setDefinition($definition)
        {
        }
    }
    /**
     * Wrapper for null values in QueryFilter.
     * @package    bitrix
     * @subpackage main
     */
    class NullExpression extends \Bitrix\Main\ORM\Query\Filter\Expressions\Expression
    {
        public function __toString()
        {
        }
    }
}
namespace Bitrix\Main\ORM\Query\Filter {
    /**
     * Filter helper for specific values preparation.
     *
     * @package    bitrix
     * @subpackage main
     */
    class Helper
    {
        const FT_MIN_TOKEN_SIZE = 3;
        /**
         * Places + and * for each word in a phrase.
         *
         * @param string $phrase
         * @param string $wildcard '*' or '' actually
         * @param int|null    $minTokenSize
         *
         * @return string
         */
        public static function matchAgainstWildcard($phrase, $wildcard = '*', $minTokenSize = null)
        {
        }
        /**
         * @return int
         */
        public static function getMinTokenSize()
        {
        }
        /**
         * Splits a string to words by any non-word symbols.
         * @param $string
         * @return array
         */
        public static function splitWords($string)
        {
        }
    }
    /**
     * Single condition handler.
     *
     * @package    bitrix
     * @subpackage main
     */
    class Condition
    {
        /** @var string|Field|null */
        protected $column;
        /** @var string */
        protected $operator;
        /** @var mixed */
        protected $value;
        /**
         * QueryFilterCondition constructor.
         *
         * @param string|Field|null $column
         * @param string $operator
         * @param mixed  $value
         */
        public function __construct($column, $operator, $value)
        {
        }
        /**
         * @return string|Field
         */
        public function getColumn()
        {
        }
        /**
         * @param string|Field|null $column
         */
        public function setColumn($column)
        {
        }
        /**
         * @return string
         */
        public function getOperator()
        {
        }
        /**
         * @param string $operator
         */
        public function setOperator($operator)
        {
        }
        /**
         * @return mixed|ColumnExpression
         */
        public function getValue()
        {
        }
        /**
         * @param mixed $value
         */
        public function setValue($value)
        {
        }
        /**
         * Returns value as a set of atomic (composite) values.
         *
         * In classic condition there is only one value v1.
         * In whereIn there is an array [v1, v2, v3, ...].
         * In whereBetween there are two values v1, v2.
         * etc.
         *
         * This method returns array of all the values regardless the operator.
         *
         * @return array
         */
        public function getAtomicValues()
        {
        }
        /**
         * Checks for multi-values (array for IN etc.)
         *
         * @return bool
         */
        public function hasMultiValues()
        {
        }
        /**
         * @return string|Field|null
         */
        public function getDefinition()
        {
        }
        /**
         * @param string|Field|null $definition
         */
        public function setDefinition($definition)
        {
        }
        public function __clone()
        {
        }
    }
}
namespace Bitrix\Main\ORM\Query {
    /**
     * UNION handler for Query.
     *
     * @package    bitrix
     * @subpackage main
     */
    class Union
    {
        /** @var UnionCondition[] */
        protected $queries;
        /** @var array */
        protected $order;
        /** @var int */
        protected $limit;
        /** @var int */
        protected $offset;
        /** @var Connection */
        protected $connection;
        public function __construct(\Bitrix\Main\DB\Connection $connection)
        {
        }
        /**
         * @param UnionCondition $query
         *
         * @return $this
         */
        public function addQuery(\Bitrix\Main\ORM\Query\UnionCondition $query)
        {
        }
        /**
         * @return UnionCondition[]
         */
        public function getQueries()
        {
        }
        /**
         * @param mixed $order
         *
         * @return $this
         */
        public function setOrder($order)
        {
        }
        /**
         * @param string $definition
         * @param string $order
         *
         * @return $this
         * @throws ArgumentException
         */
        public function addOrder($definition, $order = 'ASC')
        {
        }
        /**
         * @return array
         */
        public function getOrder()
        {
        }
        /**
         * @param int $limit
         *
         * @return $this
         */
        public function setLimit($limit)
        {
        }
        /**
         * @return int
         */
        public function getLimit()
        {
        }
        /**
         * @param $offset
         *
         * @return $this
         */
        public function setOffset($offset)
        {
        }
        /**
         * @return int
         */
        public function getOffset()
        {
        }
    }
}
namespace Bitrix\Main\ORM\Data {
    class Result extends \Bitrix\Main\Result
    {
        /** @var bool  */
        protected $wereErrorsChecked = false;
        /** @var EntityObject */
        protected $object;
        public function __construct()
        {
        }
        /**
         * @return EntityObject
         */
        public function getObject()
        {
        }
        /**
         * @param EntityObject $object
         */
        public function setObject($object)
        {
        }
        /**
         * Returns result status
         * Within the core and events should be called with internalCall flag
         *
         * @param bool $internalCall
         *
         * @return bool
         */
        public function isSuccess($internalCall = false)
        {
        }
        /**
         * Returns an array of Error objects
         *
         * @return EntityError[]|FieldError[]
         */
        public function getErrors()
        {
        }
        /**
         * Returns array of strings with error messages
         *
         * @return array
         */
        public function getErrorMessages()
        {
        }
        public function __destruct()
        {
        }
    }
    class UpdateResult extends \Bitrix\Main\ORM\Data\Result
    {
        /** @var int */
        protected $affectedRowsCount;
        /** @var array */
        protected $primary;
        public function __construct()
        {
        }
        public function setAffectedRowsCount(\Bitrix\Main\DB\Connection $connection)
        {
        }
        /**
         * @return int
         */
        public function getAffectedRowsCount()
        {
        }
        public function setPrimary($primary)
        {
        }
        /**
         * @return array
         */
        public function getPrimary()
        {
        }
        /**
         * Returns id of updated record
         * @return array|int|string
         */
        public function getId()
        {
        }
    }
    class AddResult extends \Bitrix\Main\ORM\Data\Result
    {
        /** @var array */
        protected $primary;
        public function __construct()
        {
        }
        public function setId($id)
        {
        }
        /**
         * Returns id of added record
         * @return int|array
         */
        public function getId()
        {
        }
        /**
         * @param array $primary
         */
        public function setPrimary($primary)
        {
        }
        /**
         * @return array
         */
        public function getPrimary()
        {
        }
    }
    class DeleteResult extends \Bitrix\Main\ORM\Data\Result
    {
        public function __construct()
        {
        }
    }
}
namespace Bitrix\Main\Text {
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2019 Bitrix
     */
    class Emoji
    {
        private static $emojiPattern = '%(?:
		\\xF0[\\x90-\\xBF][\\x80-\\xBF]{2} # planes 1-3
		| [\\xF1-\\xF3][\\x80-\\xBF]{3} # planes 4-15
		| \\xF4[\\x80-\\x8F][\\x80-\\xBF]{2} # plane 16
	)%xs';
        public static function encode($text)
        {
        }
        public static function decode($text)
        {
        }
        /**
         * @param string $text
         * @param callable $callback
         *
         * @return string|string[]|null
         */
        public static function replace($text, $callback)
        {
        }
        public static function getSaveModificator()
        {
        }
        public static function getFetchModificator()
        {
        }
    }
    /**
     * This Class implements the Difference Algorithm published in
     * "An O(ND) Difference Algorithm and its Variations" by Eugene Myers
     *  Algorithmica Vol. 1 No. 2, 1986, p 251.
     */
    class Diff
    {
        protected $upVector = array();
        protected $downVector = array();
        protected $modifiedA = array();
        protected $modifiedB = array();
        /**
         * Function finds the difference between two versions of text and creates html output with highlighted edits to
         * transform text from first to second version.
         *
         * @param string $a First version of text to be compared.
         * @param string $b Second version of text to be compared.
         * @return string
         */
        public function getDiffHtml($a, $b)
        {
        }
        /**
         * Function compares two arrays and creates edit script, that is required to transform array $a to array $b
         *
         * @param array $a First array to be compared.
         * @param array $b Second array to be compared.
         * @return array Array of edit steps to transform array $a to array $b. Each step is an array with keys:
         * <li>startA - position in array $a
         * <li>startB - position in array $b
         * <li>deletedA - count of elements deleted from array $a
         * <li>insertedB - count of elements inserted from array $b.
         */
        public function getDiffScript(array $a, array $b)
        {
        }
        /**
         * Function initializes object's fields for usage in difference algorithm.
         *
         * @return void
         */
        protected function init()
        {
        }
        /**
         * Function looks for longest common subsequence between two array
         *
         * @param array $a First array to be compared.
         * @param int $lowerA Lower bound of the first array.
         * @param int $upperA Upper bound of the first array.
         * @param array $b Second array to be compared.
         * @param int $lowerB Lower bound of the second array.
         * @param int $upperB Upper bound of the second array.
         * @return void
         */
        protected function longestCommonSubsequence(array $a, $lowerA, $upperA, array $b, $lowerB, $upperB)
        {
        }
        /**
         * Function looks for shortest middle snake between two arrays (see Meyer's work
         * "An O(ND) Difference Algorithm and its Variations")
         *
         * @param array $a First array to be compared.
         * @param int $lowerA Lower bound of the first array.
         * @param int $upperA Upper bound of the first array.
         * @param array $b Second array to be compared.
         * @param int $lowerB Lower bound of the second array.
         * @param int $upperB Upper bound of the second array.
         * @return array Array with keys 'x' and 'y', describing found shortest middle snake
         */
        protected function shortestMiddleSnake(array $a, $lowerA, $upperA, array $b, $lowerB, $upperB)
        {
        }
        /**
         * Function creates diff script. Should be called after longestCommonSubsequence().
         * @param array $a First array to be compared.
         * @param array $b Second array to be compared.
         * @return array Array of edit steps to transform array $a to array $b.
         */
        protected function createDiff(array $a, array $b)
        {
        }
    }
    abstract class Converter
    {
        const TEXT = "text";
        const HTML = "html";
        private static $htmlConverter;
        private static $xmlConverter;
        private static $emptyConverter;
        public static function getHtmlConverter()
        {
        }
        public static function getXmlConverter()
        {
        }
        public static function getEmptyConverter()
        {
        }
        public static function initTextType($textType)
        {
        }
        public abstract function encode($text, $textType = "");
        public abstract function decode($text, $textType = "");
    }
    class XmlConverter extends \Bitrix\Main\Text\Converter
    {
        public function encode($text, $textType = "")
        {
        }
        public function decode($text, $textType = "")
        {
        }
    }
    /**
     * Class DateConverterResult
     * @package Bitrix\Main\Text
     */
    class DateConverterResult
    {
        /**
         * @var \Bitrix\Main\Type\DateTime|null
         */
        private $date = null;
        /**
         * @var string
         */
        private $text = '';
        /**
         * @var integer
         */
        private $textPosition = 0;
        /**
         * @var integer
         */
        private $textLength = 0;
        /**
         * @var string
         */
        private $type = '';
        /**
         * @var array
         */
        private $metrics = array();
        /**
         * @var array
         */
        private $metricModifier = array();
        const TYPE_UNKNOWN = 'UNKNOWN';
        const TYPE_RELATIVE = 'RELATIVE';
        const TYPE_DAYOFWEEK = 'DAYOFWEEK';
        const TYPE_MODIFIER = 'MODIFIER';
        const TYPE_CALENDAR = 'CALENDAR';
        const TYPE_PARTOFDAY = 'PARTOFDAY';
        /**
         * DateConverterResult constructor.
         * @param \Bitrix\Main\Type\DateTime $date
         * @param string $text
         * @param $type
         * @param array $metrics
         * @param array $metricModifier
         */
        function __construct(\Bitrix\Main\Type\DateTime $date, $matchParams, $type = self::TYPE_UNKNOWN, $metrics = array(), $metricModifier = array())
        {
        }
        /**
         * Date from the text
         * 
         * @return \Bitrix\Main\Type\DateTime|null
         */
        public function getDate()
        {
        }
        /**
         * The string used to build the date
         * 
         * @return string
         */
        public function getText()
        {
        }
        /**
         * Position of string used to build the date
         * 
         * @return integer
         */
        public function getTextPosition()
        {
        }
        /**
         * Length of string used to build the date
         * 
         * @return integer
         */
        public function getTextLength()
        {
        }
        /**
         * Get primary recognition type
         * 
         * @return string
         */
        public function getType()
        {
        }
        /**
         * Get recognition metrics
         * 
         * @return array
         */
        public function getMetrics()
        {
        }
        /**
         * Get recognition metric modifier
         * 
         * @return array
         */
        public function getMetricModifier()
        {
        }
    }
    class HtmlConverter extends \Bitrix\Main\Text\Converter
    {
        public function encode($text, $textType = "")
        {
        }
        public function decode($text, $textType = "")
        {
        }
    }
    class DateConverter
    {
        /**
         * Creates Date object from Text (return array of result object)
         * 
         * Examples: "end of next week", "tomorrow morning", "friday 25.10"
         *
         * @param string $text
         * @param integer $limit
         * @return \Bitrix\Main\Text\DateConverterResult[]
         */
        public static function decode($text, $limit = 0)
        {
        }
        /**
         * Creates Date object from metrics (private method for self::decode)
         *
         * @param int $type Type of metric
         * @param array $metric Params of metric
         * @param array $metricModificator List of metric modificators
         * @param \Bitrix\Main\Type\DateTime $date If not specified, the modified date is got from the current date.
         * @return \Bitrix\Main\Type\DateTime
         *
         */
        private static function createDateUsingMetrics($type, $metric, &$metricModificator = array(), \Bitrix\Main\Type\DateTime $date = null)
        {
        }
        /**
         * Creates Date object of the day of the method week (private function for self::createDateUsingMetrics)
         *
         * @param string $nameOfday name of the day (monday, tuesday, etc)
         * @param \Bitrix\Main\Type\DateTime $date If not specified, the modified date is got from the current date.
         * @return \Bitrix\Main\Type\DateTime
         *
         */
        private static function getDateOfDayOfCurrentWeek($nameOfday, \Bitrix\Main\Type\DateTime $date = null)
        {
        }
        /**
         * @param $text
         * @param $position
         * @return string
         */
        private static function getMatchWord($text, $position)
        {
        }
        private static function getTextForReplace($text, $metrics, $metricModifier)
        {
        }
        private static function checkModifierPosition($metrics, $metricModifier)
        {
        }
        private static function findFirstOccurrence($haystack, $needle, $offset = 0)
        {
        }
    }
    class Encoding
    {
        /**
         * Converts data from a source encoding to a target encoding.
         *
         * @param string|array|\SplFixedArray $data The data to convert. From main 16.0.10 data can be an array.
         * @param string $charsetFrom The source encoding.
         * @param string $charsetTo The target encoding.
         * @return string|array|\SplFixedArray|bool Returns converted data or false on error.
         */
        public static function convertEncoding($data, $charsetFrom, $charsetTo)
        {
        }
        protected static function resolveAlias($alias)
        {
        }
        protected static function convert(&$data, $charsetFrom, $charsetTo)
        {
        }
        /**
         * @deprecated Deprecated in main 16.0.10. Use Encoding::convertEncoding().
         * @param $data
         * @param $charsetFrom
         * @param $charsetTo
         * @return mixed
         */
        public static function convertEncodingArray($data, $charsetFrom, $charsetTo)
        {
        }
        /**
         * @param string $string
         * @return bool|string
         */
        public static function convertEncodingToCurrent($string)
        {
        }
        /**
         * @param string $string
         * @return bool
         */
        public static function detectUtf8($string)
        {
        }
        protected static function convertByMbstring($data, $charsetFrom, $charsetTo)
        {
        }
    }
    /**
     * Class description
     * @package bitrix
     * @subpackage main
     */
    class JsExpression
    {
        /** @var string */
        protected $expression;
        function __construct($expression)
        {
        }
        function __toString()
        {
        }
    }
    class Base32
    {
        /**
         * Table for encoding/decoding base32, RFC 4648/3548
         *
         * @var array $alphabet
         */
        private static $alphabet = array('A' => 0, 'B' => 1, 'C' => 2, 'D' => 3, 'E' => 4, 'F' => 5, 'G' => 6, 'H' => 7, 'I' => 8, 'J' => 9, 'K' => 10, 'L' => 11, 'M' => 12, 'N' => 13, 'O' => 14, 'P' => 15, 'Q' => 16, 'R' => 17, 'S' => 18, 'T' => 19, 'U' => 20, 'V' => 21, 'W' => 22, 'X' => 23, 'Y' => 24, 'Z' => 25, 2 => 26, 3 => 27, 4 => 28, 5 => 29, 6 => 30, 7 => 31, '=' => 32);
        private static $encodeAlphabet = null;
        /**
         * Encode data to Base32 string
         *
         * @param string $string Data to encode.
         * @return string Base32 encoded data.
         * @throws ArgumentTypeException
         */
        public static function encode($string)
        {
        }
        /**
         * Decode Base32 encoded string
         *
         * @param string $base32String Base32 encoded string.
         * @throws ArgumentTypeException
         * @throws DecodingException
         * @return string Original data.
         */
        public static function decode($base32String)
        {
        }
        /**
         * Split binary string to chunks
         *
         * @param string $binaryString The string to be chunked.
         * @param int $bits The chunk length.
         * @return array
         */
        private static function chunk($binaryString, $bits)
        {
        }
    }
    class UtfSafeString
    {
        public static function getLastPosition($haystack, $needle)
        {
        }
        public static function rtrimInvalidUtf($string)
        {
        }
        /**
         * Escapes 4-bytes UTF sequences.
         *
         * @param $string
         * @return string
         */
        public static function escapeInvalidUtf($string)
        {
        }
        /**
         * Pads utf string as str_pad.
         * Using parameters like native str_pad().
         *
         * @param $string
         * @param $padLength
         * @param string $padString
         * @param int $padType
         * @return string
         */
        public static function pad($string, $padLen, $padStr = ' ', $padType = STR_PAD_RIGHT)
        {
        }
        /**
         * Checks array of strings or string for invalid unicode symbols.
         * If input data does not contain invalid characters, returns TRUE; otherwise, returns FALSE.
         *
         * @param array|string $data Input data to validate.
         *
         * @return boolean
         */
        public static function checkEncoding($data)
        {
        }
    }
    /**
     * String functions
     * @package    bitrix
     * @subpackage main
     */
    class StringHelper
    {
        /**
         * Regular uppercase with result cache
         *
         * @param $str
         *
         * @return mixed
         */
        public static function strtoupper($str)
        {
        }
        /**
         * Changes registry from CamelCase to snake_case
         *
         * @param $str
         *
         * @return string
         */
        public static function camel2snake($str)
        {
        }
        /**
         * Changes registry from snake_case or SNAKE_CASE to CamelCase
         *
         * @param $str
         *
         * @return mixed
         */
        public static function snake2camel($str)
        {
        }
    }
    class EmptyConverter extends \Bitrix\Main\Text\Converter
    {
        public function encode($text, $textType = "")
        {
        }
        public function decode($text, $textType = "")
        {
        }
    }
    /**
     * @deprecated Use str* functions for binary strings and mb_* for characters.
     */
    class BinaryString
    {
        /**
         * Binary version of strlen.
         * @param $str
         * @return int
         */
        public static function getLength($str)
        {
        }
        /**
         * Binary version of substr.
         * @param $str
         * @param $start
         * @param array $args
         * @return string
         */
        public static function getSubstring($str, $start, ...$args)
        {
        }
        /**
         * Binary version of strpos.
         * @param $haystack
         * @param $needle
         * @param int $offset
         * @return bool|int
         */
        public static function getPosition($haystack, $needle, $offset = 0)
        {
        }
        /**
         * Binary version of strrpos.
         * @param $haystack
         * @param $needle
         * @param int $offset
         * @return bool|int
         */
        public static function getLastPosition($haystack, $needle, $offset = 0)
        {
        }
        /**
         * Binary version of stripos.
         * @param $haystack
         * @param $needle
         * @param int $offset
         * @return int
         */
        public static function getPositionIgnoreCase($haystack, $needle, $offset = 0)
        {
        }
        /**
         * Binary version of strripos.
         * @param $haystack
         * @param $needle
         * @param int $offset
         * @return int
         */
        public static function getLastPositionIgnoreCase($haystack, $needle, $offset = 0)
        {
        }
        /**
         * Binary version of strtolower.
         * @param $str
         * @return string
         */
        public static function changeCaseToLower($str)
        {
        }
    }
    class GeoHash
    {
        const MAX_LENGTH = 15;
        protected static $latitudeInterval = array(-90.0, 90.0);
        protected static $longitudeInterval = array(-180.0, 180.0);
        protected static $bits = array(16, 8, 4, 2, 1);
        protected static $base32Chars = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k', 'm', 'n', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');
        public static function encode(array $coordinate, $length = self::MAX_LENGTH)
        {
        }
        public static function decode($geohash)
        {
        }
    }
    class HtmlFilter
    {
        public static function encode($string, $flags = ENT_COMPAT)
        {
        }
    }
}
namespace Bitrix\Main\Routing {
    /**
     * @package    bitrix
     * @subpackage main
     *
     * @method RoutingConfiguration middleware($middleware)
     * @method RoutingConfiguration prefix($prefix)
     * @method RoutingConfiguration name($name)
     * @method RoutingConfiguration domain($domain)
     * @method RoutingConfiguration where($parameter, $pattern)
     * @method RoutingConfiguration default($parameter, $value)
     */
    class RoutingConfiguration
    {
        /** @var RoutingConfigurator */
        protected $configurator;
        /** @var Route|\Closure One route or group of routes */
        protected $routeContainer;
        /** @var Options */
        protected $options;
        public static $configurationList = ['get', 'post', 'any', 'group'];
        public function __call($method, $arguments)
        {
        }
        /**
         * @param RoutingConfigurator $configurator
         */
        public function setConfigurator($configurator)
        {
        }
        /**
         * @param Options $options
         */
        public function setOptions($options)
        {
        }
        public function get($uri, $controller)
        {
        }
        public function post($uri, $controller)
        {
        }
        public function any($uri, $controller)
        {
        }
        public function group($callback)
        {
        }
        public function release()
        {
        }
    }
}
namespace Bitrix\Main\Routing\Exceptions {
    /**
     * @package    bitrix
     * @subpackage main
     */
    class ParameterNotFoundException extends \Bitrix\Main\SystemException
    {
    }
}
namespace Bitrix\Main\Routing {
    /**
     * @package    bitrix
     * @subpackage main
     */
    class Route
    {
        /** @var string Defined by user */
        protected $uri;
        /** @var string uri with prefix */
        protected $fullUri;
        /** @var string Defined by compile() */
        protected $matchUri;
        /** @var array [name => pattern] Defined by compile() */
        protected $parameters;
        /** @var ParameterDictionary Set by router->match() */
        protected $parametersValues;
        /** @var callable */
        protected $controller;
        /** @var Options */
        protected $options;
        public function __construct($uri, $controller)
        {
        }
        /**
         * @return Options
         */
        public function getOptions()
        {
        }
        /**
         * @param Options $options
         */
        public function setOptions($options)
        {
        }
        /**
         * @return callable
         */
        public function getController()
        {
        }
        /**
         * @return array
         */
        public function getParameters()
        {
        }
        /**
         * @return ParameterDictionary
         */
        public function getParametersValues()
        {
        }
        public function getParameterValue($name)
        {
        }
        public function compile()
        {
        }
        public function compileFromCache($cacheData)
        {
        }
        public function getCompileCache()
        {
        }
        public function match($uriPath)
        {
        }
        function getUri()
        {
        }
    }
    /**
     * @package    bitrix
     * @subpackage main
     */
    class CompileCache
    {
        /**
         * @param string[] $files
         * @param Router   $router
         */
        public static function handle($files, $router)
        {
        }
    }
    /**
     * @package    bitrix
     * @subpackage main
     */
    class Options
    {
        // could be auto-generated by Reflection and prop-prefixes
        public static $optionList = ['methods', 'middleware', 'prefix', 'name', 'domain', 'where', 'default'];
        protected $methods = [];
        protected $middleware = [];
        protected $prefix;
        protected $parentPrefixes = [];
        protected $name;
        protected $parentNames = [];
        protected $domain;
        protected $where = [];
        protected $default = [];
        /**
         * @param Options $anotherOptions
         */
        public function mergeWith($anotherOptions)
        {
        }
        public function methods($methods)
        {
        }
        /**
         * @return array
         */
        public function getMethods()
        {
        }
        public function middleware($middleware)
        {
        }
        public function prefix($prefix)
        {
        }
        public function hasPrefix()
        {
        }
        public function getFullPrefix()
        {
        }
        public function name($name)
        {
        }
        public function hasName()
        {
        }
        public function getFullName()
        {
        }
        /**
         * @param string $domain
         */
        public function domain($domain)
        {
        }
        public function where($parameter, $pattern)
        {
        }
        public function hasWhere($parameter)
        {
        }
        public function getWhere($parameter = null)
        {
        }
        public function default($parameter, $value)
        {
        }
        public function hasDefault($parameter)
        {
        }
        public function getDefault($parameter = null)
        {
        }
        /**
         * Clears runtime options for the new scope
         * Saves global options and
         */
        public function clearCurrent()
        {
        }
    }
    /**
     * @package    bitrix
     * @subpackage main
     */
    class Router
    {
        /** @var Route[] */
        protected $routes = [];
        /** @var Route[] */
        protected $routesByName = [];
        /** @var RoutingConfiguration[] */
        protected $configurations = [];
        public function registerConfiguration($configuration)
        {
        }
        public function releaseRoutes()
        {
        }
        protected function reindexRoutes()
        {
        }
        /**
         * @param HttpRequest $request
         *
         * @return Route|void
         */
        public function match($request)
        {
        }
        /**
         * @param HttpRequest $request
         *
         * @return string
         */
        protected function getUriPath($request)
        {
        }
        public function url($url, $parameters = [])
        {
        }
        public function route($name, $parameters = [])
        {
        }
        /**
         * @return Route[]
         */
        public function getRoutes()
        {
        }
    }
}
namespace Bitrix\Main\Routing\Controllers {
    /**
     * @package    bitrix
     * @subpackage main
     */
    class PublicPageController
    {
        protected $path;
        public function __construct($path)
        {
        }
        public function __invoke()
        {
        }
        /**
         * @return mixed
         */
        public function getPath()
        {
        }
    }
}
namespace Bitrix\Main\Routing {
    /**
     * @package    bitrix
     * @subpackage main
     *
     * @method RoutingConfiguration middleware($middleware)
     * @method RoutingConfiguration prefix($prefix)
     * @method RoutingConfiguration name($name)
     * @method RoutingConfiguration domain($domain)
     * @method RoutingConfiguration where($parameter, $pattern)
     * @method RoutingConfiguration default($parameter, $value)
     *
     * @method RoutingConfiguration get($uri, $controller)
     * @method RoutingConfiguration post($uri, $controller)
     * @method RoutingConfiguration any($uri, $controller)
     *
     * @method RoutingConfiguration group($callback)
     */
    class RoutingConfigurator
    {
        /** @var Router */
        protected $router;
        /** @var Options Acts inside groups as a stack */
        protected $scopeOptions;
        /**
         * RoutingConfigurator constructor.
         */
        public function __construct()
        {
        }
        public function __call($method, $arguments)
        {
        }
        public function createConfiguration()
        {
        }
        public function mergeOptionsWith($anotherOptions)
        {
        }
        /**
         * @return Router
         */
        public function getRouter()
        {
        }
        /**
         * @param Router $router
         */
        public function setRouter($router)
        {
        }
        public function __clone()
        {
        }
    }
}
namespace Bitrix\Main\Replica {
    class UrlMetadataHandler extends \Bitrix\Replica\Client\BaseHandler
    {
        protected $tableName = "b_urlpreview_metadata";
        protected $moduleId = "main";
        protected $className = "\\Bitrix\\Main\\UrlPreview\\UrlMetadataTable";
        protected $primary = array("ID" => "auto_increment");
        protected $predicates = array();
        protected $translation = array("IMAGE_ID" => "b_file.ID");
        protected $fields = array("DATE_INSERT" => "datetime", "DATE_EXPIRE" => "datetime", "TITLE" => "text", "DESCRIPTION" => "text", "SITE_NAME" => "text");
        /**
         * Called before log write. You may return false and not log write will take place.
         *
         * @param array $record Database record.
         * @return boolean
         */
        public function beforeLogInsert(array $record)
        {
        }
    }
    class Bind
    {
        /**
         * Initializes replication process on main side.
         *
         * @return void
         */
        public function start()
        {
        }
    }
}
namespace Bitrix\Main\EventLog {
    abstract class Action
    {
        const TYPE_EMAIL = 'email';
        const TYPE_SMS = 'sms';
        protected $type;
        protected $recipient;
        protected $text;
        /**
         * Action constructor.
         * @param string $type
         * @param string $recipient
         * @param string $text
         */
        public function __construct($type, $recipient, $text)
        {
        }
        /**
         * Creates an action by its type.
         * @param string $type
         * @param string $recipient
         * @param string $text
         * @return Action
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function createByType($type, $recipient, $text)
        {
        }
        /**
         * Returns a type of the action.
         * @return string
         */
        public function getType()
        {
        }
        /**
         * Returns a receiver.
         * @return string
         */
        public function getRecipient()
        {
        }
        /**
         * Returns a text.
         * @return string
         */
        public function getText()
        {
        }
        /**
         * Sends a notification.
         * @param Notification $notification
         */
        public abstract function send(\Bitrix\Main\EventLog\Notification $notification);
        protected static function getNotificationFields(\Bitrix\Main\EventLog\Notification $notification)
        {
        }
    }
    class ActionEmail extends \Bitrix\Main\EventLog\Action
    {
        const EVENT_TYPE = 'EVENT_LOG_NOTIFICATION';
        public function __construct($recipient, $text)
        {
        }
        /**
         * @inheritDoc
         */
        public function send(\Bitrix\Main\EventLog\Notification $notification)
        {
        }
    }
    class ActionSms extends \Bitrix\Main\EventLog\Action
    {
        const EVENT_TYPE = 'SMS_EVENT_LOG_NOTIFICATION';
        public function __construct($recipient, $text)
        {
        }
        /**
         * @inheritDoc
         */
        public function send(\Bitrix\Main\EventLog\Notification $notification)
        {
        }
    }
    /**
     * @method int getId()
     * @method boolean getActive()
     * @method string getName()
     * @method string getAuditTypeId()
     * @method string getItemId()
     * @method int getUserId()
     * @method string getRemoteAddr()
     * @method string getUserAgent()
     * @method string getRequestUri()
     * @method int getCheckInterval()
     * @method int getAlertCount()
     * @method Main\Type\DateTime getDateChecked()
     * @method $this setActive($arg)
     * @method $this setName($arg)
     * @method $this setAuditTypeId($arg)
     * @method $this setItemId($arg)
     * @method $this setUserId($arg)
     * @method $this setRemoteAddr($arg)
     * @method $this setUserAgent($arg)
     * @method $this setRequestUri($arg)
     * @method $this setCheckInterval($arg)
     * @method $this setAlertCount($arg)
     * @method $this setDateChecked($arg)
     */
    class Notification
    {
        protected $data;
        protected $eventCount = 0;
        /**
         * Creates (wake-ups) a notification object.
         * @param int $id
         */
        public function __construct($id = 0)
        {
        }
        /**
         * Fills data from DB.
         */
        public function fill()
        {
        }
        /**
         * Fills the actions collection from DB.
         */
        public function fillActions()
        {
        }
        /**
         * Saves data to DB.
         * @return Main\ORM\Data\Result
         */
        public function save()
        {
        }
        /**
         * Deletes data from DB.
         * @return Main\ORM\Data\Result
         */
        public function delete()
        {
        }
        /**
         * Sets values from an array.
         * @param array $values
         */
        public function setFromArray(array $values)
        {
        }
        /**
         * Sets actions from an array.
         * @param array $values
         */
        public function setActionsFromArray(array $values)
        {
        }
        /**
         * Returns an array of actions.
         * @return Action[]
         */
        public function getActions()
        {
        }
        /**
         * It's magic...
         * @param string $name
         * @param array $arguments
         * @return mixed
         * @throws Main\SystemException
         */
        public function __call($name, $arguments)
        {
        }
        /**
         * @param int $n
         * @return $this
         */
        public function setEventCount($n)
        {
        }
        /**
         * @return int
         */
        public function getEventCount()
        {
        }
        /**
         * Agent function.
         * @param int $id Notification ID
         * @return string
         */
        public static function checkConditions($id)
        {
        }
        /**
         * Sends the notification via its actions.
         */
        public function send()
        {
        }
        /**
         * @param int $id
         * @return string
         */
        protected static function getAgentName($id)
        {
        }
    }
}
namespace Bitrix\Main\Filter {
    class Factory
    {
        protected static $methods = null;
        /**
         * Prepare Entity Filter Factory Methods
         * Function will rise event "OnBuildFilterFactoryMethods" if it required.
         * @return array
         */
        protected static function prepareMethods()
        {
        }
        /**
         * Create Entity Filter by Entity Type Name.
         * @param string $entityTypeName Entity Type Name
         * @param array $settingsParams Filter Settings Params
         * @param array $additionalParams Factory Method Additional Params.
         * @return Filter
         * @throws Main\NotSupportedException
         */
        public static function createEntityFilter($entityTypeName, array $settingsParams, array $additionalParams = null)
        {
        }
    }
    abstract class DataProvider
    {
        /**
         * Get Settings
         * @return Settings
         */
        public abstract function getSettings();
        /**
         * Get ID.
         * @return string
         */
        public function getID()
        {
        }
        /**
         * Prepare field list.
         * @return Field[]
         */
        public abstract function prepareFields();
        /**
         * Prepare complete field data for specified field.
         * @param string $fieldID Field ID.
         * @return array|null
         */
        public abstract function prepareFieldData($fieldID);
        /**
         * Prepare Field additional HTML.
         * @param Field $field Field.
         * @return string
         */
        public function prepareFieldHtml(\Bitrix\Main\Filter\Field $field)
        {
        }
        /**
         * Prepare field parameter for specified field.
         * @param array $filter Filter params.
         * @param string $fieldID Field ID.
         * @return void
         */
        public function prepareListFilterParam(array &$filter, $fieldID)
        {
        }
        /**
         * Create filter field.
         * @param string $fieldID Field ID.
         * @param array|null $params Field parameters (optional).
         * @return Field
         */
        protected function createField($fieldID, array $params = null)
        {
        }
    }
    abstract class EntityDataProvider extends \Bitrix\Main\Filter\DataProvider
    {
        /**
         * Get specified entity field caption.
         * @param string $fieldID Field ID.
         * @return string
         * @throws Main\NotImplementedException
         */
        protected function getFieldName($fieldID)
        {
        }
        /**
         * Create filter field.
         * @param string $fieldID Field ID.
         * @param array|null $params Field parameters (optional).
         * @return Field
         * @throws Main\NotImplementedException
         */
        protected function createField($fieldID, array $params = null)
        {
        }
    }
    class Settings
    {
        /** @var string */
        protected $ID = '';
        function __construct(array $params)
        {
        }
        public function getID()
        {
        }
    }
    class FactoryMain
    {
        public static function onBuildFilterFactoryMethods(\Bitrix\Main\Event $event)
        {
        }
    }
    class Field
    {
        /** @var DataProvider|null  */
        protected $dataProvider = null;
        /** @var string  */
        protected $id = '';
        /** @var string  */
        protected $name = '';
        /** @var string  */
        protected $type = '';
        /** @var bool  */
        protected $isDefault = false;
        /** @var array|null  */
        protected $data = null;
        /** @var bool  */
        protected $isPartial = false;
        public function __construct(\Bitrix\Main\Filter\DataProvider $dataProvider, $id, array $params = null)
        {
        }
        /**
         * Get Data Provider.
         * @return DataProvider
         */
        public function getDataProvider()
        {
        }
        /**
         * Set Data Provider.
         * @param DataProvider $dataProvider Data Provider.
         */
        public function setDataProvider(\Bitrix\Main\Filter\DataProvider $dataProvider)
        {
        }
        /**
         * Prepare complete field data for field.
         * @return array|null
         */
        protected function prepareData()
        {
        }
        /**
         * Prepare Field additional HTML.
         * @return string
         */
        public function prepareHtml()
        {
        }
        /**
         * Get Field ID.
         * @return string
         */
        public function getId()
        {
        }
        /**
         * Set Field ID.
         * @param string $id Field ID.
         */
        public function setID($id)
        {
        }
        /**
         * Get localized name.
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Set localized name.
         * @param string $name Field Name.
         */
        public function setName($name)
        {
        }
        /**
         * Get Field Type.
         * @return string
         */
        public function getType()
        {
        }
        /**
         * Set Field Type.
         * @param string $type Field Type Name.
         */
        public function setType($type)
        {
        }
        /**
         * Check if default field.
         * @return bool
         */
        public function isDefault()
        {
        }
        /**
         * Mark Field as default.
         * @param bool $isDefault Default Field Flag.
         */
        public function markAsDefault($isDefault)
        {
        }
        /**
         * Check if partial field.
         * Partial Field does not have data. Field is not completely initialized.
         * You may call "assemble" to load required data in it.
         * @return bool
         */
        public function isPartial()
        {
        }
        /**
         * Get Field Data.
         * @return array|null
         */
        public function getData()
        {
        }
        /**
         * Get Data Item by key.
         * @param string $key Data Item Key.
         * @return mixed|null
         */
        public function getDataItem($key)
        {
        }
        /**
         * Assemble field data.
         * This method will complete initialization of partially initialized field.
         * @return void
         */
        public function assemble()
        {
        }
        /**
         * Put Field Parameters in array.
         * @param array|null $options Options array.
         * @return array
         */
        public function toArray(array $options = null)
        {
        }
    }
    abstract class EntitySettings extends \Bitrix\Main\Filter\Settings
    {
        const FLAG_NONE = 0;
        /** @var int */
        protected $flags = 0;
        function __construct(array $params)
        {
        }
        /**
         * Get Entity Type Name.
         * @return string
         */
        public abstract function getEntityTypeName();
        /**
         * Get User Field Entity ID.
         * @return string
         */
        public abstract function getUserFieldEntityID();
        /**
         * Check if specified flag is enabled.
         * @param int $flag Flag value.
         * @return bool
         */
        public function checkFlag($flag)
        {
        }
    }
    class UserSettings extends \Bitrix\Main\Filter\EntitySettings
    {
        private $whiteList = [];
        function __construct(array $params)
        {
        }
        public function getWhiteList()
        {
        }
        /**
         * Get Entity Type ID.
         * @return int
         */
        public function getEntityTypeName()
        {
        }
        /**
         * Get User Field Entity ID.
         * @return string
         */
        public function getUserFieldEntityID()
        {
        }
    }
    class Filter
    {
        /** @var string */
        protected $ID = '';
        /** @var DataProvider|null */
        protected $entityDataProvider = null;
        /** @var DataProvider[]|null */
        protected $extraProviders = null;
        /** @var array|null  */
        protected $params = null;
        /** @var Field[]|null */
        protected $fields = null;
        function __construct($ID, \Bitrix\Main\Filter\DataProvider $entityDataProvider, array $extraDataProviders = null, array $params = null)
        {
        }
        /**
         * Get Filter ID.
         * @return string
         */
        function getID()
        {
        }
        /**
         * Get Default Field IDs.
         * @return array
         */
        public function getDefaultFieldIDs()
        {
        }
        /**
         * Get Field list.
         * @return Field[]
         */
        public function getFields()
        {
        }
        /**
         * Get Fields converted to plain object (array).
         *
         * @param array $fieldMask
         * @return array
         */
        public function getFieldArrays(array $fieldMask = [])
        {
        }
        /**
         * Get Field by ID.
         * @param string $fieldID Field ID.
         * @return Field|null
         */
        public function getField($fieldID)
        {
        }
        /**
         * @return DataProvider|null
         */
        public function getEntityDataProvider()
        {
        }
        /**
         * Prepare list filter params.
         * @param array $filter Source Filter.
         * @return void
         */
        public function prepareListFilterParams(array &$filter)
        {
        }
    }
    class EntityUFDataProvider extends \Bitrix\Main\Filter\DataProvider
    {
        /** @var EntitySettings|null */
        protected $settings = null;
        protected $ufReserved = [];
        function __construct(\Bitrix\Main\Filter\EntitySettings $settings)
        {
        }
        /**
         * Get Settings
         * @return EntitySettings
         */
        public function getSettings()
        {
        }
        /**
         * Get user field entity ID.
         * @return string
         */
        public function getUserFieldEntityID()
        {
        }
        /**
         * Get custom fields defined for entity
         * @return array
         */
        protected function getUserFields()
        {
        }
        /**
         * Prepare field list.
         * @return Field[]
         */
        public function prepareFields()
        {
        }
        /**
         * Prepare complete field data for specified field.
         * @param string $fieldID Field ID.
         * @return array|null
         */
        public function prepareFieldData($fieldID)
        {
        }
        /**
         * Create filter field.
         * @param string $fieldID Field ID.
         * @param array|null $params Field parameters (optional).
         * @return Field
         */
        protected function createField($fieldID, array $params = null)
        {
        }
        public function getUfReserved()
        {
        }
        protected function postFilterFields(array $fields)
        {
        }
    }
    class Range
    {
        public static function prepareFrom(array &$filter, $name, $value)
        {
        }
        public static function prepareTo(array &$filter, $name, $value)
        {
        }
    }
    class UserUFDataProvider extends \Bitrix\Main\Filter\EntityUFDataProvider
    {
        protected $ufReserved = ['UF_DEPARTMENT', 'UF_USER_CRM_ENTITY', 'UF_PUBLIC', 'UF_TIMEMAN', 'UF_TM_REPORT_REQ', 'UF_TM_FREE', 'UF_REPORT_PERIOD', 'UF_1C', 'UF_TM_ALLOWED_DELTA', 'UF_SETTING_DATE', 'UF_LAST_REPORT_DATE', 'UF_DELAY_TIME', 'UF_TM_REPORT_DATE', 'UF_TM_DAY', 'UF_TM_TIME', 'UF_TM_REPORT_TPL', 'UF_TM_MIN_DURATION', 'UF_TM_MIN_FINISH', 'UF_TM_MAX_START', 'UF_CONNECTOR_MD5', 'UF_WORK_BINDING', 'UF_IM_SEARCH', 'UF_BXDAVEX_CALSYNC', 'UF_BXDAVEX_MLSYNC', 'UF_UNREAD_MAIL_COUNT', 'UF_BXDAVEX_CNTSYNC', 'UF_BXDAVEX_MAILBOX', 'UF_VI_PASSWORD', 'UF_VI_BACKPHONE', 'UF_VI_PHONE', 'UF_VI_PHONE_PASSWORD'];
        protected function postFilterFields(array $fields)
        {
        }
    }
    class UserDataProvider extends \Bitrix\Main\Filter\EntityDataProvider
    {
        /** @var UserSettings|null */
        protected $settings = null;
        function __construct(\Bitrix\Main\Filter\UserSettings $settings)
        {
        }
        public static function extranetSite()
        {
        }
        public static function getFiredAvailability()
        {
        }
        public static function getExtranetAvailability()
        {
        }
        public static function getInvitedAvailability()
        {
        }
        public static function getIntegratorAvailability()
        {
        }
        public static function getAdminAvailability()
        {
        }
        /**
         * Get Settings
         * @return UserSettings
         */
        public function getSettings()
        {
        }
        /**
         * Get specified entity field caption.
         * @param string $fieldID Field ID.
         * @return string
         */
        protected function getFieldName($fieldID)
        {
        }
        public function prepareFieldData($fieldID)
        {
        }
        /**
         * Prepare field list.
         * @return Field[]
         */
        public function prepareFields()
        {
        }
    }
}
namespace Bitrix\Main\Service\GeoIp {
    /**
     * Class Base
     * @package Bitrix\Main\Service\GeoIp
     *
     * Base class for geolocation handlers
     */
    abstract class Base
    {
        protected $id;
        protected $sort;
        protected $active;
        protected $config;
        /**
         * Base constructor.
         * @param array $fields DB fields of handlers settings.
         */
        public function __construct(array $fields = array())
        {
        }
        /**
         * @return int DB record identifier.
         */
        public function getId()
        {
        }
        /**
         * @return int DB field sorting.
         */
        public function getSort()
        {
        }
        /**
         * @return bool Is handler active, or not.
         */
        public function isActive()
        {
        }
        /**
         * @return string Title of handler.
         */
        public abstract function getTitle();
        /**
         * @return string Handler description.
         */
        public abstract function getDescription();
        /**
         * @param string $ip Ip address
         * @param string $lang Language identifier
         * @return Result | null
         */
        public abstract function getDataResult($ip, $lang = '');
        /**
         * Languages supported by handler ISO 639-1
         * @return array
         */
        public function getSupportedLanguages()
        {
        }
        /**
         * Is this handler installed and ready for using.
         * @return bool
         */
        public function isInstalled()
        {
        }
        /**
         * @return array Set of fields description for administration purposes.
         */
        public function getConfigForAdmin()
        {
        }
        /**
         * @param array $postFields  Admin form posted fields during saving process.
         * @return array Field CONFIG for saving to DB in admin edit form.
         */
        public function createConfigField(array $postFields)
        {
        }
        /**
         * @return ProvidingData Geolocation information witch handler can return.
         */
        public function getProvidingData()
        {
        }
    }
    /**
     * Class MaxMind
     * @package Bitrix\Main\Service\GeoIp
     * @link https://www.maxmind.com
     */
    final class MaxMind extends \Bitrix\Main\Service\GeoIp\Base
    {
        /**
         * @return string Title of handler.
         */
        public function getTitle()
        {
        }
        /**
         * @return string Handler description.
         */
        public function getDescription()
        {
        }
        /**
         * @param string $ipAddress Ip address
         * @param string $userId user identifier obtained from www.maxmind.com
         * @param string $licenseKey
         * @return Main\Result
         */
        protected function sendRequest($ipAddress, $userId, $licenseKey)
        {
        }
        /**
         * @return HttpClient
         */
        protected static function getHttpClient()
        {
        }
        /**
         * Languages supported by handler ISO 639-1
         * @return array
         */
        public function getSupportedLanguages()
        {
        }
        /**
         * @param string $ipAddress Ip address
         * @param string $lang Language identifier
         * @return Result | null
         */
        public function getDataResult($ipAddress, $lang = '')
        {
        }
        /**
         * Is this handler installed and ready for using.
         * @return bool
         */
        public function isInstalled()
        {
        }
        /**
         * @param array $postFields  Admin form posted fields during saving process.
         * @return array Field CONFIG for saving to DB in admin edit form.
         */
        public function createConfigField(array $postFields)
        {
        }
        /**
         * @return array Set of fields description for administration purposes.
         */
        public function getConfigForAdmin()
        {
        }
        /**
         * @return ProvidingData Geolocation information witch handler can return.
         */
        public function getProvidingData()
        {
        }
    }
    /**
     * Class Result
     * @package Bitrix\Main\Service\GeoIp
     * Contains info about success or error descriptions of receiving geolocation information,
     * and geolocation information.
     */
    class Result extends \Bitrix\Main\Result
    {
        /** @var Data Geolocation data */
        protected $geoData = null;
        /**
         * Result constructor.
         */
        public function __construct()
        {
        }
        /**
         * @return Data
         */
        public function getGeoData()
        {
        }
        /**
         * @param Data $geoData
         */
        public function setGeoData(\Bitrix\Main\Service\GeoIp\Data $geoData)
        {
        }
    }
    /**
     * Class ProvidingData
     * @package Bitrix\Main\Service\GeoIp
     *
     * The structure witch contain information about providing data.
     */
    class ProvidingData
    {
        /** @var bool Country name  */
        public $countryName = false;
        /** @var bool Region name  */
        public $regionName = false;
        /** @var bool Subregion name  */
        public $subRegionName = false;
        /** @var bool City name  */
        public $cityName = false;
        /** @var bool Country code  */
        public $countryCode = false;
        /** @var bool Region code  */
        public $regionCode = false;
        /** @var bool Zip or postal code  */
        public $zipCode = false;
        /** @var bool Latitude*/
        public $latitude = false;
        /** @var bool Longitude*/
        public $longitude = false;
        /** @var bool Timezone*/
        public $timezone = false;
        /** @var bool Autonomous System Numbers (ASN) */
        public $asn = false;
        /** @var bool Internet Service Provider (ISP) name */
        public $ispName = false;
        /** @var bool Organization name */
        public $organizationName = false;
    }
    /**
     * Class DataResult
     * @package Bitrix\Main\Service\GeoIp
     * Class-structure for transferring geolocation data
     * @deprecated
     */
    class DataResult extends \Bitrix\Main\Result
    {
        public $ip = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        public $lang = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        public $countryName = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        public $regionName = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        public $subRegionName = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        public $cityName = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        public $countryCode = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        public $regionCode = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        public $zipCode = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        public $latitude = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        public $longitude = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        public $timezone = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        /** @var string Autonomous System Numbers (ASN) */
        public $asn = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        /** @var string Internet Service Provider (ISP) name */
        public $ispName = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        public $organizationName = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        public $handlerClass = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
    }
    /**
     * Class Data
     * @package Bitrix\Main\Service\GeoIp
     *
     * Structure for transferring geolocation data.
     */
    class Data
    {
        /** @var string Ip address. */
        public $ip = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        /** @var string Storing data language. */
        public $lang = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        /** @var string Country name  */
        public $countryName = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        /** @var string Region name  */
        public $regionName = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        /** @var string Subregion name  */
        public $subRegionName = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        /** @var string City name  */
        public $cityName = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        /** @var string Country code  */
        public $countryCode = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        /** @var string Region code  */
        public $regionCode = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        /** @var string Zip or postal code  */
        public $zipCode = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        /** @var string Latitude*/
        public $latitude = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        /** @var string Longitude*/
        public $longitude = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        /** @var string Timezone*/
        public $timezone = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        /** @var string Autonomous System Numbers (ASN) */
        public $asn = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        /** @var string Internet Service Provider (ISP) name */
        public $ispName = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        /** @var string Organization name */
        public $organizationName = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
        /** @var string Geolocation handler - source of information */
        public $handlerClass = \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE;
    }
    /**
     * Class for working with geolocation information.
     * @package Bitrix\Main\Service\GeoIp
     */
    final class Manager
    {
        /** @var array | null  */
        private static $handlers = null;
        /** @var Result */
        private static $data = array();
        /** @var bool */
        private static $logErrors = false;
        /**
         * Constant for parameters who information not available.
         */
        const INFO_NOT_AVAILABLE = null;
        const COOKIE_NAME = 'BX_GEO_IP';
        const COOKIE_EXPIRED = 86400;
        //day
        const STORE_VAR_NAME = 'BX_GEO_IP';
        /**
         * Get the two letter country code.
         * @param string $ip Ip address.
         * @param string $lang Language identifier.
         * @return string
         */
        public static function getCountryCode($ip = '', $lang = '')
        {
        }
        /**
         * Get the full country name.
         * @param string $ip Ip address.
         * @param string $lang Language identifier.
         * @return string
         */
        public static function getCountryName($ip = '', $lang = '')
        {
        }
        /**
         * Get the full city name.
         * @param string $ip Ip address.
         * @param string $lang Language identifier.
         * @return string|null
         */
        public static function getCityName($ip = '', $lang = '')
        {
        }
        /**
         * Get the Postal Code, FSA or Zip Code.
         * @param string $ip Ip address.
         * @param string $lang Language identifier.
         * @return string|null
         */
        public static function getCityPostCode($ip = '', $lang = '')
        {
        }
        /**
         * Get geo-position attribute.
         * @param string $ip Ip address.
         * @param string $lang Language identifier.
         * @return array|null
         */
        public static function getGeoPosition($ip = '', $lang = '')
        {
        }
        /**
         * Get the Latitude as signed double.
         * @param string $ip Ip address.
         * @param string $lang Language identifier.
         * @return string
         */
        public static function getGeoPositionLatitude($ip = '', $lang = '')
        {
        }
        /**
         * Get the Longitude as signed double.
         * @param string $ip Ip address.
         * @param string $lang Language identifier.
         * @return string
         */
        public static function getGeoPositionLongitude($ip = '', $lang = '')
        {
        }
        /**
         * Get the organization name.
         * @param string $ip Ip address.
         * @param string $lang Language identifier.
         * @return string
         */
        public static function getOrganizationName($ip = '', $lang = '')
        {
        }
        /**
         * Get the Internet Service Provider (ISP) name.
         * @param string $ip Ip address.
         * @param string $lang Language identifier.
         * @return string
         */
        public static function getIspName($ip = '', $lang = '')
        {
        }
        /**
         * Get the time zone for country and region code combo.
         * @param string $ip Ip address.
         * @param string $lang Language identifier.
         * @return string|null
         */
        public static function getTimezoneName($ip = '', $lang = '')
        {
        }
        /**
         * Get the all available information about geolocation.
         *
         * @param string  $ip Ip address.
         * @param string  $lang Language identifier.
         * @param array $required Required fields for result data.
         * @return Result | null
         */
        public static function getDataResult($ip = '', $lang = '', array $required = array())
        {
        }
        /**
         * @param $ip
         * @return bool| Result[]
         */
        private static function getFromStore($ip)
        {
        }
        /**
         * @param string $ip
         * @param Data[] $geoData
         */
        private static function saveToStore($ip, $geoData)
        {
        }
        /**
         * @return string
         */
        private static function getStoreVarName()
        {
        }
        /**
         * @param array $required
         * @param Data|ProvidingData $geoData
         * @return bool
         */
        private static function hasDataAllRequiredFields(array $required, $geoData)
        {
        }
        private static function initHandlers()
        {
        }
        /**
         * @param string $className
         * @return bool
         */
        private static function isHandlerClassValid($className)
        {
        }
        /**
         * @return string | false Ip address.
         */
        public static function getRealIp()
        {
        }
        /**
         * @return Base[] Handlers list.
         */
        public static function getHandlers()
        {
        }
        /**
         * @param string $className. Class name of handler.
         * @return Base | null Handler.
         */
        public static function getHandlerByClassName($className)
        {
        }
        /**
         * Turn on / off error logging for debugging purposes.
         * @param bool $isLog
         */
        public static function setLogErrors($isLog)
        {
        }
        /**
         * @param Base $handler
         * @return string Config HTML for admin interface form.
         */
        public static function getHandlerAdminConfigHtml(\Bitrix\Main\Service\GeoIp\Base $handler)
        {
        }
        /**
         * @param string $ip
         * @param string $lang
         * @param array $required
         * @return DataResult|null
         * @deprecated
         */
        public static function getData($ip = '', $lang = '', array $required = array())
        {
        }
        /**
         * @param bool $isUse
         * @deprecated
         */
        public static function useCookieToStoreInfo($isUse)
        {
        }
    }
    /**
     * Class Extension
     * @package Bitrix\Main\Service\GeoIp
     * Uses standard php GeoIP extension
     * @link http://php.net/manual/ru/book.geoip.php
     */
    class Extension extends \Bitrix\Main\Service\GeoIp\Base
    {
        /**
         * @return string Class title
         */
        public function getTitle()
        {
        }
        /**
         * @return string Class description
         */
        public function getDescription()
        {
        }
        /**
         * Languages supported by handler ISO 639-1
         * @return array
         */
        public function getSupportedLanguages()
        {
        }
        /**
         * @param string $ip Ip address
         * @param string $lang Language identifier
         * @return Result
         */
        public function getDataResult($ip, $lang = '')
        {
        }
        /**
         * Determine if GeoIP Database is available.
         *
         * @return bool
         */
        protected static function isAvailable()
        {
        }
        /**
         * Determine if GeoIP Country Database is available (GEOIP_COUNTRY_EDITION).
         *
         * @return bool
         */
        protected static function isAvailableBaseCountry()
        {
        }
        /**
         * Determine if GeoIP City Database is available (GEOIP_CITY_EDITION_REV0).
         *
         * @return bool
         */
        protected static function isAvailableBaseCity()
        {
        }
        /**
         * Determine if GeoIP Organization Database is available (GEOIP_ORG_EDITION).
         *
         * @return bool
         */
        protected static function isAvailableBaseOrganization()
        {
        }
        /**
         * Determine if GeoIP ISP Database is available (GEOIP_ISP_EDITION).
         *
         * @return bool
         */
        protected static function isAvailableBaseIsp()
        {
        }
        /**
         * Determine if GeoIP ASN Database is available (GEOIP_ASNUM_EDITION).
         *
         * @return bool
         */
        protected static function isAvailableBaseAsn()
        {
        }
        /**
         * Is this handler installed and ready for using.
         * @return bool
         */
        public function isInstalled()
        {
        }
        /**
         * @return array Set of fields description for administration purposes.
         */
        public function getConfigForAdmin()
        {
        }
        /**
         * @return ProvidingData Geolocation information witch handler can return.
         */
        public function getProvidingData()
        {
        }
    }
    /**
     * Class SypexGeo
     * @package Bitrix\Main\Service\GeoIp
     * @link http://sypexgeo.net
     */
    final class SypexGeo extends \Bitrix\Main\Service\GeoIp\Base
    {
        /**
         * @return string Title of handler.
         */
        public function getTitle()
        {
        }
        /**
         * @return string Handler description.
         */
        public function getDescription()
        {
        }
        /**
         * @param string $ip Ip address
         * @param string $key license key.
         * @return Main\Result
         */
        protected function sendRequest($ip, $key)
        {
        }
        /**
         * @return HttpClient
         */
        protected static function getHttpClient()
        {
        }
        /**
         * Languages supported by handler ISO 639-1
         * @return array
         */
        public function getSupportedLanguages()
        {
        }
        /**
         * @param string $ip Ip address
         * @param string $lang Language identifier
         * @return Result | null
         */
        public function getDataResult($ip, $lang = '')
        {
        }
        /**
         * @param array $postFields $_POST
         * @return array Field CONFIG for saving to DB in admin edit form.
         */
        public function createConfigField(array $postFields)
        {
        }
        /**
         * @return array Set of fields description for administration purposes.
         */
        public function getConfigForAdmin()
        {
        }
        /**
         * @return ProvidingData Geolocation information witch handler can return.
         */
        public function getProvidingData()
        {
        }
    }
}
namespace Bitrix\Main\Service\MicroService\Filter {
    class ParametersUnpacking extends \Bitrix\Main\Engine\ActionFilter\Base
    {
        public function onBeforeAction(\Bitrix\Main\Event $event)
        {
        }
    }
    class Authorization extends \Bitrix\Main\Engine\ActionFilter\Base
    {
        public function onBeforeAction(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Main\Service\MicroService {
    abstract class JWTSender extends \Bitrix\Main\Service\MicroService\BaseSender
    {
        protected abstract function obtainJWToken();
        protected function createHttpClient()
        {
        }
        public function performRequest($action, array $parameters = []) : \Bitrix\Main\Result
        {
        }
    }
    class Client
    {
        const TYPE_BITRIX24 = "B24";
        const TYPE_BOX = "BOX";
        public static function getPortalType() : string
        {
        }
        /**
         * Return license code of the portal (to be used as a part of request verification scheme).
         *
         * @return string
         */
        public static function getLicenseCode() : string
        {
        }
        public static function getServerName() : string
        {
        }
        /**
         * Returns request authorization hash string.
         *
         * @param array $parameters Array or request parameters to be signed.
         * @param string $suffix Suffix to append to signed string
         *
         * @return string
         */
        public static function signRequest(array $parameters, string $suffix = "") : string
        {
        }
    }
}
namespace Bitrix\Main\Data {
    interface ICacheEngine
    {
        public function isAvailable();
        public function clean($baseDir, $initDir = false, $filename = false);
        public function read(&$allVars, $baseDir, $initDir, $filename, $TTL);
        public function write($allVars, $baseDir, $initDir, $filename, $TTL);
        public function isCacheExpired($path);
    }
    interface ICacheEngineStat
    {
        public function getReadBytes();
        public function getWrittenBytes();
        public function getCachePath();
    }
    class CacheEngineFiles implements \Bitrix\Main\Data\ICacheEngine, \Bitrix\Main\Data\ICacheEngineStat
    {
        private $TTL;
        //cache stats
        private $written = false;
        private $read = false;
        private $path = '';
        protected $useLock = false;
        protected static $lockHandles = array();
        /**
         * Engine constructor.
         * @param array $options Cache options.
         */
        public function __construct($options = [])
        {
        }
        /**
         * Returns number of bytes read from disk or false if there was no read operation.
         *
         * @return integer|false
         */
        public function getReadBytes()
        {
        }
        /**
         * Returns number of bytes written to disk or false if there was no write operation.
         *
         * @return integer|false
         */
        public function getWrittenBytes()
        {
        }
        /**
         * Returns physical file path after read or write operation.
         *
         * @return string
         */
        public function getCachePath()
        {
        }
        /**
         * Returns true if cache can be read or written.
         *
         * @return bool
         */
        public function isAvailable()
        {
        }
        /**
         * Deletes physical file. Returns true on success.
         *
         * @param string $fileName Absolute physical path.
         *
         * @return boolean
         */
        private static function unlink($fileName)
        {
        }
        /**
         * Adds delayed delete worker agent.
         *
         * @return void
         */
        private static function addAgent()
        {
        }
        /**
         * Generates very temporary file name by adding some random suffix to the file path.
         * Returns empty string on failure.
         *
         * @param string $fileName File path within document root.
         *
         * @return string
         */
        private static function randomizeFile($fileName)
        {
        }
        /**
         * Cleans (removes) cache directory or file.
         *
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $filename File name.
         *
         * @return void
         */
        public function clean($baseDir, $initDir = '', $filename = '')
        {
        }
        /**
         * Tries to put non blocking exclusive lock on the file.
         * Returns true if file not exists, or lock was successfully got.
         *
         * @param string $fileName Absolute cache file path.
         *
         * @return boolean
         */
        protected function lock($fileName)
        {
        }
        /**
         * Releases the lock obtained by lock method.
         *
         * @param string $fileName Absolute cache file path.
         *
         * @return void
         */
        protected function unlock($fileName)
        {
        }
        /**
         * Reads cache from the file. Returns true if file exists, not expired, and successfully read.
         *
         * @param mixed &$allVars Cached result.
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $filename File name.
         * @param integer $TTL Expiration period in seconds.
         *
         * @return boolean
         */
        public function read(&$allVars, $baseDir, $initDir, $filename, $TTL)
        {
        }
        /**
         * Writes cache into the file.
         *
         * @param mixed $allVars Cached result.
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $filename File name.
         * @param integer $TTL Expiration period in seconds.
         *
         * @return void
         */
        public function write($allVars, $baseDir, $initDir, $filename, $TTL)
        {
        }
        /**
         * Returns true if cache file has expired.
         *
         * @param string $path Absolute physical path.
         *
         * @return boolean
         */
        public function isCacheExpired($path)
        {
        }
        /**
         * Deletes one cache directory. Works no longer than etime.
         *
         * @param integer $etime Timestamp when to stop working.
         * @param boolean $ar Record from b_cache_tag.
         *
         * @return void
         */
        protected static function deleteOneDir($etime = 0, $ar = false)
        {
        }
        /**
         * Agent function which deletes marked cache directories.
         *
         * @param integer $count Desired delete count.
         *
         * @return string
         */
        public static function delayedDelete($count = 1)
        {
        }
    }
    class Cache
    {
        /**
         * @var ICacheEngine | \ICacheBackend
         */
        protected $cacheEngine;
        protected $content;
        protected $vars;
        protected $TTL;
        protected $uniqueString;
        protected $baseDir;
        protected $initDir;
        protected $filename;
        protected $isStarted = false;
        protected static $showCacheStat = false;
        protected static $clearCache = null;
        protected static $clearCacheSession = null;
        protected $forceRewriting = false;
        public static function createCacheEngine($params = [])
        {
        }
        public static function getCacheEngineType()
        {
        }
        /**
         * @param array $params
         * @return static Cache
         */
        public static function createInstance($params = [])
        {
        }
        public function __construct($cacheEngine)
        {
        }
        public static function setShowCacheStat($showCacheStat)
        {
        }
        public static function getShowCacheStat()
        {
        }
        /**
         * A privileged user wants to skip cache on this hit.
         * @param bool $clearCache
         */
        public static function setClearCache($clearCache)
        {
        }
        /**
         * A privileged user wants to skip cache on this session.
         * @param bool $clearCacheSession
         */
        public static function setClearCacheSession($clearCacheSession)
        {
        }
        public static function getSalt()
        {
        }
        /**
         * Returns true if a privileged user wants to skip reading from cache (on this hit or session).
         * @return bool
         */
        public static function shouldClearCache()
        {
        }
        public static function getPath($uniqueString)
        {
        }
        public function clean($uniqueString, $initDir = false, $baseDir = "cache")
        {
        }
        public function cleanDir($initDir = false, $baseDir = "cache")
        {
        }
        public function initCache($TTL, $uniqueString, $initDir = false, $baseDir = "cache")
        {
        }
        public function output()
        {
        }
        public function getVars()
        {
        }
        public function startDataCache($TTL = false, $uniqueString = false, $initDir = false, $vars = array(), $baseDir = "cache")
        {
        }
        public function abortDataCache()
        {
        }
        public function endDataCache($vars = false)
        {
        }
        public function isCacheExpired($path)
        {
        }
        public function isStarted()
        {
        }
        public static function clearCache($full = false, $initDir = "")
        {
        }
        /**
         * Sets the forced mode to ignore TTL and rewrite the cache.
         * @param bool $mode
         */
        public function forceRewriting($mode)
        {
        }
    }
    class LruCache
    {
    }
    abstract class NosqlConnection extends \Bitrix\Main\Data\Connection
    {
        public abstract function get($key);
        public abstract function set($key, $value);
    }
    /**
     * Class RedisConnection
     * @package Bitrix\Main\Data
     * @property \Redis|\RedisCluster $resource
     * @method getResource(): \Redis|\RedisCluster
     */
    class RedisConnection extends \Bitrix\Main\Data\NosqlConnection
    {
        /** @var Configurator\RedisConnectionConfigurator */
        protected $configurator;
        public function __construct(array $configuration)
        {
        }
        protected function connectInternal()
        {
        }
        protected function disconnectInternal()
        {
        }
        public function get($key)
        {
        }
        public function set($key, $value)
        {
        }
    }
    /**
     * Class MemcacheConnection
     * @package Bitrix\Main\Data
     * @property \Memcache $resource
     * @method getResource(): \Memcache
     */
    class MemcacheConnection extends \Bitrix\Main\Data\NosqlConnection
    {
        /** @var Configurator\MemcacheConnectionConfigurator */
        protected $configurator;
        public function __construct(array $configuration)
        {
        }
        protected function connectInternal()
        {
        }
        protected function disconnectInternal()
        {
        }
        public function get($key)
        {
        }
        public function set($key, $value)
        {
        }
    }
    class TaggedCache
    {
        protected $compCacheStack = [];
        protected $salt = false;
        protected $cacheTag = [];
        protected $wasTagged = false;
        protected $isMySql = false;
        protected $pool = false;
        public function __construct()
        {
        }
        protected static function getDbType()
        {
        }
        protected function initDbCache($path)
        {
        }
        protected function initCompSalt()
        {
        }
        public function startTagCache($relativePath)
        {
        }
        public function endTagCache()
        {
        }
        public function abortTagCache()
        {
        }
        public function registerTag($tag)
        {
        }
        public function clearByTag($tag)
        {
        }
    }
    class ManagedCache
    {
        /**
         * @var Cache[]
         */
        protected $cache = array();
        protected $cache_init = array();
        protected $cachePath = array();
        protected $vars = array();
        protected $ttl = array();
        public function __construct()
        {
        }
        protected static function getDbType()
        {
        }
        // Tries to read cached variable value from the file
        // Returns true on success
        // otherwise returns false
        public function read($ttl, $uniqueId, $tableId = false)
        {
        }
        public function getImmediate($ttl, $uniqueId, $tableId = false)
        {
        }
        /**
         * This method is used to read the variable value
         * from the cache after successfull Read
         *
         * @param string $uniqueId
         * @return mixed
         */
        public function get($uniqueId)
        {
        }
        // Sets new value to the variable
        public function set($uniqueId, $val)
        {
        }
        public function setImmediate($uniqueId, $val)
        {
        }
        // Marks cache entry as invalid
        public function clean($uniqueId, $tableId = false)
        {
        }
        // Marks cache entries associated with the table as invalid
        public function cleanDir($tableId)
        {
        }
        // Clears all managed_cache
        public function cleanAll()
        {
        }
        // Use it to flush cache to the files.
        // Causion: only at the end of all operations!
        public static function finalize()
        {
        }
        public function getCompCachePath($relativePath)
        {
        }
    }
}
namespace Bitrix\Main\Data\LocalStorage\Storage {
    interface CacheEngineInterface
    {
        public function read(&$allVars, $baseDir, $initDir, $filename, $TTL);
        public function write($allVars, $baseDir, $initDir, $filename, $TTL);
    }
}
namespace Bitrix\Main\Data {
    class CacheEngineXCache implements \Bitrix\Main\Data\ICacheEngine, \Bitrix\Main\Data\ICacheEngineStat, \Bitrix\Main\Data\LocalStorage\Storage\CacheEngineInterface
    {
        private $sid = "BX";
        //cache stats
        private $written = false;
        private $read = false;
        protected $useLock = false;
        protected $ttlMultiplier = 2;
        protected static $locks = array();
        /**
         * Engine constructor.
         * @param array $options Cache options.
         */
        function __construct($options = [])
        {
        }
        /**
         * Returns number of bytes read from xcache or false if there was no read operation.
         *
         * @return integer|false
         */
        public function getReadBytes()
        {
        }
        /**
         * Returns number of bytes written to xcache or false if there was no write operation.
         *
         * @return integer|false
         */
        public function getWrittenBytes()
        {
        }
        /**
         * Returns physical file path after read or write operation.
         * Stub function always returns '' (empty string).
         *
         * @return string
         */
        public function getCachePath()
        {
        }
        /**
         * Returns true if cache can be read or written.
         *
         * @return bool
         */
        public function isAvailable()
        {
        }
        /**
         * Tries to put non blocking exclusive lock on the cache entry.
         * Returns true on success.
         *
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $key Calculated cache key.
         * @param integer $TTL Expiration period in seconds.
         *
         * @return boolean
         */
        protected function lock($baseDir, $initDir, $key, $TTL)
        {
        }
        /**
         * Releases the lock obtained by lock method.
         *
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $key Calculated cache key.
         * @param integer $TTL Expiration period in seconds.
         *
         * @return void
         */
        protected function unlock($baseDir, $initDir = false, $key = false, $TTL = 0)
        {
        }
        /**
         * Cleans (removes) cache directory or file.
         *
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $filename File name.
         *
         * @return void
         */
        public function clean($baseDir, $initDir = false, $filename = false)
        {
        }
        /**
         * Reads cache from the xcache. Returns true if key value exists, not expired, and successfully read.
         *
         * @param mixed &$allVars Cached result.
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $filename File name.
         * @param integer $TTL Expiration period in seconds.
         *
         * @return boolean
         */
        public function read(&$allVars, $baseDir, $initDir, $filename, $TTL)
        {
        }
        /**
         * Puts cache into the xcache.
         *
         * @param mixed $allVars Cached result.
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $filename File name.
         * @param integer $TTL Expiration period in seconds.
         *
         * @return void
         */
        public function write($allVars, $baseDir, $initDir, $filename, $TTL)
        {
        }
        /**
         * Returns true if cache has been expired.
         * Stub function always returns true.
         *
         * @param string $path Absolute physical path.
         *
         * @return boolean
         */
        public function isCacheExpired($path)
        {
        }
    }
    /**
     * Connection pool is a connections holder
     */
    class ConnectionPool
    {
        /**
         * @var Connection[]
         */
        protected $connections = array();
        protected $connectionParameters = array();
        protected $slavePossible = true;
        protected $ignoreDml = 0;
        protected $masterOnly = 0;
        protected $slaveConnection = null;
        const DEFAULT_CONNECTION_NAME = "default";
        /**
         * Creates connection pool object
         */
        public function __construct()
        {
        }
        /**
         * @param string $name
         * @param array $parameters
         * @return Connection
         * @throws \Bitrix\Main\Config\ConfigurationException
         */
        protected function createConnection($name, $parameters)
        {
        }
        /**
         * Returns database connection by its name. Creates new connection if necessary.
         *
         * @param string $name Connection name.
         * @return Connection|null
         */
        public function getConnection($name = "")
        {
        }
        /**
         * Searches connection parameters (type, host, db, login and password) by connection name
         *
         * @param string $name Connection name
         * @return array|null
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\ArgumentNullException
         */
        protected function getConnectionParameters($name)
        {
        }
        /**
         * Sets named connection paramters.
         *
         * @param string $name Name of the connection.
         * @param array $parameters Parameters values.
         * @return void
         */
        public function setConnectionParameters($name, $parameters)
        {
        }
        /**
         * Returns connected database type.
         * - MYSQL
         * - ORACLE
         * - MSSQL
         *
         * @return string
         */
        public function getDefaultConnectionType()
        {
        }
        protected function getDbConnConnectionParameters()
        {
        }
        /**
         * Returns a slave connection or null if the query should go to the master.
         *
         * @param string $sql A SQL string. Only SELECT will go to a slave.
         * @return Main\DB\Connection|null
         */
        public function getSlaveConnection($sql)
        {
        }
        /**
         * In the master-only mode all queries will go to the master.
         *
         * @param bool $mode True starts the mode and false ends.
         * @return void
         */
        public function useMasterOnly($mode)
        {
        }
        /**
         * In the ignore DML mode a data modification command will not stop next queries going to a slave.
         *
         * @param bool $mode Ignore subsequent DML or not.
         * @return void
         */
        public function ignoreDml($mode)
        {
        }
        /**
         * Creates a new slave connection.
         *
         * @return bool|null|Connection
         * @throws \Bitrix\Main\Config\ConfigurationException
         */
        protected function createSlaveConnection()
        {
        }
        /**
         * Creates a new connection based on the supplied one.
         *
         * @param string $name Copy source.
         * @param string $newName Copy target.
         * @param array $parameters Parameters to be passed to createConnection method.
         * @throws \Bitrix\Main\Config\ConfigurationException
         * @return Main\DB\Connection
         */
        public function cloneConnection($name, $newName, array $parameters = array())
        {
        }
        /**
         * Returns the state of queries balancing (is a slave still can be used).
         *
         * @return bool
         */
        public function isSlavePossible()
        {
        }
        /**
         * Returns the state of queries balancing (is the master only can be used).
         *
         * @return bool
         */
        public function isMasterOnly()
        {
        }
    }
}
namespace Bitrix\Main\Data\LocalStorage {
    final class SessionLocalStorageManager
    {
        /** @var SessionLocalStorage[]  */
        private $collection = [];
        /** @var string */
        private $uniqueId;
        /** @var Storage\StorageInterface */
        private $storage;
        /** @var int */
        private $ttl = 86400;
        public function __construct(\Bitrix\Main\Data\LocalStorage\Storage\StorageInterface $storage)
        {
        }
        public function save()
        {
        }
        public function getUniqueId() : string
        {
        }
        public function setUniqueId($uniqueId)
        {
        }
        public function getTtl() : int
        {
        }
        public function setTtl(int $ttl) : self
        {
        }
        public function get(string $name) : \Bitrix\Main\Data\LocalStorage\SessionLocalStorage
        {
        }
        public function exists(string $name) : bool
        {
        }
        public function clear(string $name) : void
        {
        }
        protected function buildUniqueKey(string $name) : string
        {
        }
    }
}
namespace Bitrix\Main\Data\LocalStorage\Storage {
    interface StorageInterface
    {
        /**
         * @param string   $key
         * @param int|null $ttl
         * @return array
         */
        public function read(string $key, int $ttl);
        public function write(string $key, $value, int $ttl);
    }
    class NativeSessionStorage implements \Bitrix\Main\Data\LocalStorage\Storage\StorageInterface
    {
        /** @var SessionInterface */
        private $session;
        public function __construct(\Bitrix\Main\Session\SessionInterface $session)
        {
        }
        public function read(string $key, int $ttl)
        {
        }
        public function write(string $key, $value, int $ttl)
        {
        }
    }
    class CacheStorage implements \Bitrix\Main\Data\LocalStorage\Storage\StorageInterface
    {
        private const CACHE_DIR = 'local-session';
        /** @var string */
        private $baseDir;
        /** @var CacheEngineInterface */
        private $cacheEngine;
        public function __construct(\Bitrix\Main\Data\LocalStorage\Storage\CacheEngineInterface $cacheEngine)
        {
        }
        public function read(string $key, int $ttl)
        {
        }
        public function write(string $key, $value, int $ttl)
        {
        }
    }
}
namespace Bitrix\Main\Data\LocalStorage {
    final class SessionLocalStorage implements \ArrayAccess, \Countable, \IteratorAggregate
    {
        /** @var array */
        private $data = [];
        /** @var string */
        private $uniqueName;
        public function __construct(string $uniqueName)
        {
        }
        /**
         * @return string
         */
        public function getUniqueName() : string
        {
        }
        /**
         * @return array
         */
        public function getData() : array
        {
        }
        /**
         * @param array $data
         * @return $this
         */
        public function setData(array $data)
        {
        }
        public function &get($key)
        {
        }
        public function set($key, $value) : self
        {
        }
        public function clear() : void
        {
        }
        public function offsetExists($offset)
        {
        }
        public function &offsetGet($offset)
        {
        }
        public function offsetSet($offset, $value)
        {
        }
        public function offsetUnset($offset)
        {
        }
        public function count()
        {
        }
        public function getIterator()
        {
        }
    }
}
namespace Bitrix\Main\Data {
    class CacheEngineMemcache implements \Bitrix\Main\Data\ICacheEngine, \Bitrix\Main\Data\ICacheEngineStat, \Bitrix\Main\Data\LocalStorage\Storage\CacheEngineInterface
    {
        public const SESSION_MEMCACHE_CONNECTION = 'cache.memcache';
        protected static $memcache = null;
        private static $isConnected = false;
        private static $baseDirVersion = array();
        protected $sid = "BX";
        //cache stats
        private $written = false;
        private $read = false;
        // unfortunately is not available for memcache...
        protected $useLock = false;
        protected $ttlMultiplier = 2;
        protected static $locks = array();
        protected $old = false;
        /**
         * Engine constructor.
         * @param array $options Cache options.
         */
        function __construct($options = [])
        {
        }
        /**
         * Closes opened connection.
         *
         * @return void
         */
        function close()
        {
        }
        /**
         * Returns number of bytes read from memcache or false if there was no read operation.
         * Stub function always returns false.
         *
         * @return integer|false
         */
        public function getReadBytes()
        {
        }
        /**
         * Returns number of bytes written to memcache or false if there was no write operation.
         * Stub function always returns false.
         *
         * @return integer|false
         */
        public function getWrittenBytes()
        {
        }
        /**
         * Returns physical file path after read or write operation.
         * Stub function always returns '' (empty string).
         *
         * @return string
         */
        public function getCachePath()
        {
        }
        /**
         * Returns true if cache can be read or written.
         *
         * @return bool
         */
        function isAvailable()
        {
        }
        /**
         * Tries to put non blocking exclusive lock on the cache entry.
         * Returns true on success.
         *
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $key Calculated cache key.
         * @param integer $TTL Expiration period in seconds.
         *
         * @return boolean
         */
        protected function lock($baseDir, $initDir, $key, $TTL)
        {
        }
        /**
         * Releases the lock obtained by lock method.
         *
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $key Calculated cache key.
         * @param integer $TTL Expiration period in seconds.
         *
         * @return void
         */
        protected function unlock($baseDir, $initDir = false, $key = false, $TTL = 0)
        {
        }
        /**
         * Cleans (removes) cache directory or file.
         *
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $filename File name.
         *
         * @return void
         */
        function clean($baseDir, $initDir = false, $filename = false)
        {
        }
        /**
         * Reads cache from the memcache. Returns true if key value exists, not expired, and successfully read.
         *
         * @param mixed &$allVars Cached result.
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $filename File name.
         * @param integer $TTL Expiration period in seconds.
         *
         * @return boolean
         */
        function read(&$allVars, $baseDir, $initDir, $filename, $TTL)
        {
        }
        /**
         * Puts cache into the memcache.
         *
         * @param mixed $allVars Cached result.
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $filename File name.
         * @param integer $TTL Expiration period in seconds.
         *
         * @return void
         */
        function write($allVars, $baseDir, $initDir, $filename, $TTL)
        {
        }
        /**
         * Returns true if cache has been expired.
         * Stub function always returns true.
         *
         * @param string $path Absolute physical path.
         *
         * @return boolean
         */
        function isCacheExpired($path)
        {
        }
        /**
         * Return InitDirVersion
         * @param bool|string $baseDir Base cache directory (usually /bitrix/cache).
         * @param bool|string $initDir Directory within base.
         * @param bool $skipOld Return cleaned value.
         * @return array|bool|string
         */
        function getInitDirVersion($baseDir, $initDir = false, $skipOld = false)
        {
        }
        /**
         * Return BaseDirVersion
         * @param bool|string $baseDir Base cache directory (usually /bitrix/cache).
         * @param bool $skipOld Return cleaned value.
         *
         * @return void
         */
        function getBaseDirVersion($baseDir, $skipOld = false)
        {
        }
    }
    class CacheEngineNone implements \Bitrix\Main\Data\ICacheEngine, \Bitrix\Main\Data\ICacheEngineStat
    {
        public function getReadBytes()
        {
        }
        public function getWrittenBytes()
        {
        }
        public function getCachePath()
        {
        }
        public function isAvailable()
        {
        }
        public function clean($baseDir, $initDir = false, $filename = false)
        {
        }
        public function read(&$allVars, $baseDir, $initDir, $filename, $TTL)
        {
        }
        public function write($allVars, $baseDir, $initDir, $filename, $TTL)
        {
        }
        public function isCacheExpired($path)
        {
        }
    }
    class CacheEngineRedis implements \Bitrix\Main\Data\ICacheEngine, \Bitrix\Main\Data\LocalStorage\Storage\CacheEngineInterface
    {
        public const SESSION_REDIS_CONNECTION = 'cache.redis';
        protected static $redis = null;
        protected static $locks = [];
        protected static $isConnected = false;
        private static $baseDirVersion = [];
        private static $host = '127.0.0.1';
        private static $port = 6379;
        protected $sid = "BX";
        protected $useLock = false;
        protected $ttlMultiplier = 2;
        protected $old = false;
        protected $serializer = \Redis::SERIALIZER_IGBINARY;
        protected $persistent = true;
        /**
         * CacheEngineRedis constructor.
         * @param array $options Cache options.
         */
        public function __construct($options = [])
        {
        }
        protected function configure()
        {
        }
        /**
         * Closes opened connection.
         *
         * @return void
         */
        function close()
        {
        }
        /**
         * Returns true if cache can be read or written.
         *
         * @return bool
         */
        public function isAvailable()
        {
        }
        /**
         * Tries to put non blocking exclusive lock on the cache entry.
         * Returns true on success.
         *
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $key Calculated cache key.
         * @param integer $ttl Expiration period in seconds.
         *
         * @return boolean
         */
        protected function lock($baseDir, $initDir, $key, $ttl)
        {
        }
        /**
         * Releases the lock obtained by lock method.
         *
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $key Calculated cache key.
         * @param integer $ttl Expiration period in seconds.
         *
         * @return void
         */
        protected function unlock($baseDir, $initDir = false, $key = false, $ttl = 0)
        {
        }
        /**
         * Cleans (removes) cache directory or file.
         *
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $filename File name.
         *
         * @return void
         */
        public function clean($baseDir, $initDir = false, $filename = false)
        {
        }
        /**
         * Reads cache from the memcache. Returns true if key value exists, not expired, and successfully read.
         *
         * @param mixed &$allVars Cached result.
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $filename File name.
         * @param integer $ttl Expiration period in seconds.
         *
         * @return boolean
         */
        public function read(&$allVars, $baseDir, $initDir, $filename, $ttl)
        {
        }
        /**
         * Puts cache into the memcache.
         *
         * @param mixed $allVars Cached result.
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $filename File name.
         * @param integer $ttl Expiration period in seconds.
         *
         * @return void
         */
        public function write($allVars, $baseDir, $initDir, $filename, $ttl)
        {
        }
        /**
         * Returns true if cache has been expired.
         * Stub function always returns true.
         *
         * @param string $path Absolute physical path.
         *
         * @return boolean
         */
        public function isCacheExpired($path)
        {
        }
        /**
         * Return InitDirVersion
         * @param bool|string $baseDir Base cache directory (usually /bitrix/cache).
         * @param bool|string $initDir Directory within base.
         * @param bool $skipOld Return cleaned value.
         * @return array|bool|string
         */
        protected function getInitDirVersion($baseDir, $initDir = false, $skipOld = false)
        {
        }
        /**
         * Return BaseDirVersion
         * @param bool|string $baseDir Base cache directory (usually /bitrix/cache).
         * @param bool $skipOld Return cleaned value.
         *
         * @return void
         */
        protected function getBaseDirVersion($baseDir, $skipOld = false)
        {
        }
    }
    /**
     * Class description
     * @package    bitrix
     * @subpackage main
     */
    class HsphpReadConnection extends \Bitrix\Main\Data\NosqlConnection implements \Bitrix\Main\ORM\Query\INosqlPrimarySelector
    {
        protected $host = 'localhost';
        protected $port = '9998';
        public function __construct(array $configuration)
        {
        }
        protected function connectInternal()
        {
        }
        protected function disconnectInternal()
        {
        }
        public function get($key)
        {
        }
        public function set($key, $value)
        {
        }
        public function getEntityByPrimary(\Bitrix\Main\ORM\Entity $entity, $primary, $select)
        {
        }
    }
}
namespace Bitrix\Main\Data\Configurator {
    class MemcacheConnectionConfigurator
    {
        /** @var array */
        protected $config;
        /** @var array */
        protected $servers = [];
        public function __construct($config)
        {
        }
        protected function addServers($config)
        {
        }
        public function getConfig()
        {
        }
        public function createConnection()
        {
        }
    }
    class RedisConnectionConfigurator
    {
        /** @var array */
        protected $config;
        /** @var array */
        protected $servers = [];
        public function __construct($config)
        {
        }
        protected function addServers($config)
        {
        }
        public function getConfig()
        {
        }
        /**
         * @param \Redis|\RedisCluster $connection
         */
        protected function configureConnection($connection) : void
        {
        }
        public function createConnection()
        {
        }
    }
}
namespace Bitrix\Main\Data {
    class CacheEngineApc implements \Bitrix\Main\Data\ICacheEngine, \Bitrix\Main\Data\ICacheEngineStat, \Bitrix\Main\Data\LocalStorage\Storage\CacheEngineInterface
    {
        private $sid = "BX";
        //cache stats
        private $written = false;
        private $read = false;
        protected $useLock = false;
        protected $ttlMultiplier = 2;
        protected static $locks = array();
        /**
         * Engine constructor.
         * @param array $options Cache options.
         */
        public function __construct($options = [])
        {
        }
        /**
         * Returns number of bytes read from apc or false if there was no read operation.
         *
         * @return integer|false
         */
        public function getReadBytes()
        {
        }
        /**
         * Returns number of bytes written to apc or false if there was no write operation.
         *
         * @return integer|false
         */
        public function getWrittenBytes()
        {
        }
        /**
         * Returns physical file path after read or write operation.
         * Stub function always returns '' (empty string).
         *
         * @return string
         */
        public function getCachePath()
        {
        }
        /**
         * Returns true if cache can be read or written.
         *
         * @return bool
         */
        public function isAvailable()
        {
        }
        /**
         * Tries to put non blocking exclusive lock on the cache entry.
         * Returns true on success.
         *
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $key Calculated cache key.
         * @param integer $TTL Expiration period in seconds.
         *
         * @return boolean
         */
        protected function lock($baseDir, $initDir, $key, $TTL)
        {
        }
        /**
         * Releases the lock obtained by lock method.
         *
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $key Calculated cache key.
         * @param integer $TTL Expiration period in seconds.
         *
         * @return void
         */
        protected function unlock($baseDir, $initDir = false, $key = false, $TTL = 0)
        {
        }
        /**
         * Cleans (removes) cache directory or file.
         *
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $filename File name.
         *
         * @return void
         */
        public function clean($baseDir, $initDir = false, $filename = false)
        {
        }
        /**
         * Reads cache from the apc. Returns true if key value exists, not expired, and successfully read.
         *
         * @param mixed &$allVars Cached result.
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $filename File name.
         * @param integer $TTL Expiration period in seconds.
         *
         * @return boolean
         */
        public function read(&$allVars, $baseDir, $initDir, $filename, $TTL)
        {
        }
        /**
         * Puts cache into the apc.
         *
         * @param mixed $allVars Cached result.
         * @param string $baseDir Base cache directory (usually /bitrix/cache).
         * @param string $initDir Directory within base.
         * @param string $filename File name.
         * @param integer $TTL Expiration period in seconds.
         *
         * @return void
         */
        public function write($allVars, $baseDir, $initDir, $filename, $TTL)
        {
        }
        /**
         * Returns true if cache has been expired.
         * Stub function always returns true.
         *
         * @param string $path Absolute physical path.
         *
         * @return boolean
         */
        public function isCacheExpired($path)
        {
        }
    }
    /**
     * Class description
     * @package    bitrix
     * @subpackage main
     * @property \Memcached $resource
     */
    class MemcachedConnection extends \Bitrix\Main\Data\NosqlConnection
    {
        protected $host = 'localhost';
        protected $port = '11211';
        public function __construct(array $configuration)
        {
        }
        protected function connectInternal()
        {
        }
        protected function disconnectInternal()
        {
        }
        public function get($key)
        {
        }
        public function set($key, $value)
        {
        }
    }
}
namespace Bitrix\Main {
    /**
     * Exception is thrown when function argument is not valid.
     */
    class ArgumentException extends \Bitrix\Main\SystemException
    {
        protected $parameter;
        public function __construct($message = "", $parameter = "", \Exception $previous = null)
        {
        }
        public function getParameter()
        {
        }
    }
    /**
     * Exception is thrown when "empty" value is passed to a function that does not accept it as a valid argument.
     */
    class ArgumentNullException extends \Bitrix\Main\ArgumentException
    {
        public function __construct($parameter, \Exception $previous = null)
        {
        }
    }
    /**
     * Exception is thrown when the value of an argument is outside the allowable range of values.
     */
    class ArgumentOutOfRangeException extends \Bitrix\Main\ArgumentException
    {
        protected $lowerLimit;
        protected $upperLimit;
        /**
         * Creates new exception object.
         *
         * @param string $parameter Argument that generates exception
         * @param null $lowerLimit Either lower limit of the allowable range of values or an array of allowable values
         * @param null $upperLimit Upper limit of the allowable values
         * @param \Exception $previous
         */
        public function __construct($parameter, $lowerLimit = null, $upperLimit = null, \Exception $previous = null)
        {
        }
        public function getLowerLimitType()
        {
        }
        public function getUpperType()
        {
        }
    }
    /**
     * Exception is thrown when the type of an argument is not accepted by function.
     */
    class ArgumentTypeException extends \Bitrix\Main\ArgumentException
    {
        protected $requiredType;
        /**
         * Creates new exception object
         *
         * @param string $parameter Argument that generates exception
         * @param string $requiredType Required type
         * @param \Exception $previous
         */
        public function __construct($parameter, $requiredType = "", \Exception $previous = null)
        {
        }
        public function getRequiredType()
        {
        }
    }
    /**
     * Exception is thrown when operation is not implemented but should be.
     */
    class NotImplementedException extends \Bitrix\Main\SystemException
    {
        public function __construct($message = "", \Exception $previous = null)
        {
        }
    }
    /**
     * Exception is thrown when operation is not supported.
     */
    class NotSupportedException extends \Bitrix\Main\SystemException
    {
        public function __construct($message = "", \Exception $previous = null)
        {
        }
    }
    /**
     * Exception is thrown when a method call is invalid for current state of object.
     */
    class InvalidOperationException extends \Bitrix\Main\SystemException
    {
        public function __construct($message = "", \Exception $previous = null)
        {
        }
    }
    /**
     * Exception is thrown when object property is not valid.
     */
    class ObjectPropertyException extends \Bitrix\Main\ArgumentException
    {
        public function __construct($parameter = "", \Exception $previous = null)
        {
        }
    }
    /**
     * Exception is thrown when the object can't be constructed.
     */
    class ObjectException extends \Bitrix\Main\SystemException
    {
        public function __construct($message = "", \Exception $previous = null)
        {
        }
    }
    /**
     * Exception is thrown when an object is not present.
     */
    class ObjectNotFoundException extends \Bitrix\Main\SystemException
    {
        public function __construct($message = "", \Exception $previous = null)
        {
        }
    }
    /**
     * Exception is thrown when access is denied
     */
    class AccessDeniedException extends \Bitrix\Main\SystemException
    {
        public function __construct($message = "", \Exception $previous = null)
        {
        }
    }
    class DecodingException extends \Bitrix\Main\SystemException
    {
    }
}
namespace Bitrix\Main\Engine {
    /**
     * Class JsonPayload
     * @package Bitrix\Main\Engine
     */
    final class JsonPayload
    {
        /**
         * Get data.
         *
         * @return array|mixed
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getData()
        {
        }
        /**
         * Get raw data.
         *
         * @return bool|string
         */
        public function getRaw()
        {
        }
    }
    class DefaultController extends \Bitrix\Main\Engine\Controller
    {
        public function configureActions()
        {
        }
        public function indexAction()
        {
        }
    }
    final class UrlManager
    {
        const AJAX_END_POINT = '/bitrix/services/main/ajax.php';
        const ABSOLUTE_URL = true;
        /** @var UrlManager */
        private static $instance;
        private function __clone()
        {
        }
        private function __construct()
        {
        }
        /**
         * @return UrlManager
         */
        public static function getInstance()
        {
        }
        /**
         * Creates uri for the action.
         *
         * @param string $action The fully qualified action name.
         * @param array $params Additional parameters for action.
         *
         * @param bool $absolute Generate absolute uri or not.
         *
         * @return Uri
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function create($action, $params = [], $absolute = false)
        {
        }
        /**
         * Creates uri for the controller and it's action.
         *
         * @param Controller $controller Controller.
         * @param string $action Relative action name.
         * @param array $params Additional parameters for action.
         *
         * @param bool $absolute Generate absolute uri or not.
         *
         * @return Uri
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function createByController(\Bitrix\Main\Engine\Controller $controller, $action, $params = array(), $absolute = false)
        {
        }
        protected function getVendorAndModule($moduleId)
        {
        }
        /**
         * Creates uri for the controller in component and it's action.
         *
         * @param Controller $controller Controller.
         * @param string $action Relative action name.
         * @param array $params Additional parameters for action.
         *
         * @param bool $absolute Generate absolute uri or not.
         *
         * @return Uri
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \ReflectionException
         */
        public function createByComponentController(\Bitrix\Main\Engine\Controller $controller, $action, $params = array(), $absolute = false)
        {
        }
        /**
         * Creates uri for the bitrix component which implements @see \Bitrix\Main\Engine\Contract\Controllerable
         * and it's action.
         *
         * @param \CBitrixComponent $component
         * @param string $action Relative action name.
         * @param array $params Additional parameters for action.
         *
         * @param bool $absolute Generate absolute uri or not.
         *
         * @return Uri
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function createByBitrixComponent(\CBitrixComponent $component, $action, $params = array(), $absolute = false)
        {
        }
        /**
         * Returns uri for the end point.
         *
         * @param bool $absolute Generate absolute uri or not.
         *
         * @return Uri
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function getEndPoint($absolute = false)
        {
        }
        /**
         * Returns host url with port and scheme.
         *
         * @return string
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public function getHostUrl()
        {
        }
    }
}
namespace Bitrix\Main\Engine\Contract {
    interface RoutableAction
    {
        /**
         * @return string|Controller
         */
        public static function getControllerClass();
        /**
         * @return string
         */
        public static function getDefaultName();
    }
    interface FallbackActionInterface
    {
        public const ACTION_NAME = \Bitrix\Main\Engine\FallbackAction::ACTION_NAME;
        /**
         * @param string $actionName
         * @return mixed
         */
        public function fallbackAction($actionName);
    }
}
namespace Bitrix\Main\Engine {
    final class Resolver
    {
        const DEFAULT_VENDOR = 'bitrix';
        /**
         * Returns list instance of controller and action in this controller.
         *
         * @param string $vendor
         * @param string $module
         * @param string $action
         * @param string $scope
         *
         * @return array|null
         */
        public static function getControllerAndAction($vendor, $module, $action, $scope = \Bitrix\Main\Engine\Controller::SCOPE_AJAX)
        {
        }
        private static function buildControllerClassName($vendor, $module, array $actionParts)
        {
        }
        /**
         * Returns default namespace by module.
         * @param string $module Module id.
         *
         * @return null|string
         */
        public static function getDefaultNamespaceByModule($module)
        {
        }
        /**
         * Checks if the name of action is old full qualified name.
         * For example: disk.bitrix.disk.controller.file.get.
         * @param $vendor
         * @param $module
         * @param array $actionParts
         *
         * @return bool
         */
        private static function isOldFullQualifiedName($vendor, $module, array $actionParts)
        {
        }
        private static function listAllowedNamespaces($module)
        {
        }
        private static function checkClassUnderAllowedNamespaces($module, $class)
        {
        }
        /**
         * Builds class name by vendor and module.
         * @param $vendor
         * @param $module
         * @param array $actionParts
         *
         * @return string
         */
        private static function buildClassNameByAction($vendor, $module, array $actionParts)
        {
        }
        /**
         * Returns name of controller for using in routing.
         * The name is built by rules: fully qualified name contains delimiters by dot.
         * Example: vendor:module.controller.action.
         *
         * @param Controller $controller Controller.
         *
         * @return string
         */
        public static function getNameByController(\Bitrix\Main\Engine\Controller $controller)
        {
        }
    }
}
namespace Bitrix\Main\Engine\Response\ContentArea {
    interface DataSectionInterface
    {
        public function getSectionName() : string;
        /**
         * @return array
         */
        public function getSectionData();
    }
    class Component implements \Bitrix\Main\Engine\Response\ContentArea\ContentAreaInterface, \Bitrix\Main\Engine\Response\ContentArea\DataSectionInterface
    {
        private $componentName = null;
        private $componentTemplate = null;
        private $componentParams = [];
        private $componentResult = [];
        /** @var array|callable  */
        private $dataKeys = [];
        private $parentComponent = null;
        private $functionParams = [];
        /**
         * Component constructor.
         *
         * @param $componentName
         * @param string $componentTemplate
         * @param array $componentParams
         * @param mixed $dataKeys
         */
        public function __construct($componentName, $componentTemplate = '', array $componentParams = [], $dataKeys = [])
        {
        }
        /**
         * @param array $params
         *
         * @return $this
         */
        public function setParameters(array $params)
        {
        }
        /**
         * @param $parentComponent
         *
         * @return $this
         */
        public function setParentComponent($parentComponent)
        {
        }
        /**
         * @param array $functionParams
         *
         * @return $this
         */
        public function setFunctionParameters(array $functionParams)
        {
        }
        /**
         * @return string
         */
        public function getHtml()
        {
        }
        /**
         * @return string
         */
        public function getSectionName() : string
        {
        }
        /**
         * @return array
         */
        public function getSectionData()
        {
        }
    }
}
namespace Bitrix\Main\Engine\Response {
    class AjaxJson extends \Bitrix\Main\Engine\Response\Json implements \Bitrix\Main\Errorable
    {
        const STATUS_SUCCESS = 'success';
        const STATUS_DENIED = 'denied';
        const STATUS_ERROR = 'error';
        /**
         * @var string
         */
        private $status;
        /**
         * @var ErrorCollection
         */
        private $errorCollection;
        public function __construct($data = null, $status = self::STATUS_SUCCESS, \Bitrix\Main\ErrorCollection $errorCollection = null)
        {
        }
        public static final function createSuccess($data = null)
        {
        }
        public static final function createError(\Bitrix\Main\ErrorCollection $errorCollection = null, $data = null)
        {
        }
        public static final function createDenied(\Bitrix\Main\ErrorCollection $errorCollection = null, $data = null)
        {
        }
        public final function setData($data)
        {
        }
        protected final function getErrorsToResponse()
        {
        }
        /**
         * Getting array of errors.
         * @return Error[]
         */
        public final function getErrors()
        {
        }
        /**
         * Getting once error with the necessary code.
         * @param string $code Code of error.
         * @return Error
         */
        public final function getErrorByCode($code)
        {
        }
    }
    class File extends \Bitrix\Main\HttpResponse
    {
        protected $path;
        /**
         * @var null
         */
        protected $name;
        /**
         * @var string
         */
        protected $contentType;
        protected $showInline = false;
        protected $cacheTime = 0;
        public function __construct($path, $name = null, $contentType = 'application/octet-stream')
        {
        }
        /**
         * @return mixed
         */
        public function getPath()
        {
        }
        /**
         * @param mixed $path
         *
         * @return File
         */
        public function setPath($path)
        {
        }
        /**
         * @return null
         */
        public function getName()
        {
        }
        /**
         * @param null $name
         *
         * @return File
         */
        public function setName($name)
        {
        }
        /**
         * @return string
         */
        public function getContentType()
        {
        }
        /**
         * @param string $contentType
         *
         * @return File
         */
        public function setContentType($contentType)
        {
        }
        /**
         * @return bool
         */
        public function isShowInline()
        {
        }
        /**
         * @param bool $enabled
         *
         * @return File
         */
        public function showInline($enabled)
        {
        }
        /**
         * @return int
         */
        public function getCacheTime()
        {
        }
        /**
         * @param int $cacheTime
         *
         * @return File
         */
        public function setCacheTime($cacheTime)
        {
        }
        protected function prepareOptions()
        {
        }
        protected function prepareFile()
        {
        }
        public function send()
        {
        }
    }
    class BFile extends \Bitrix\Main\Engine\Response\File
    {
        protected $file;
        public function __construct(array $file, $name = null)
        {
        }
        public static function createByFileData(array $file, $name = null)
        {
        }
        public static function createByFileId($fileId, $name = null)
        {
        }
        /**
         * @return array
         */
        public function getFile()
        {
        }
        /**
         * @return array|bool|null
         */
        protected function prepareFile()
        {
        }
        protected function prepareOptions()
        {
        }
    }
    class ResizedImage extends \Bitrix\Main\Engine\Response\BFile
    {
        protected $showInline = true;
        protected $width;
        protected $height;
        protected $resizeType = BX_RESIZE_IMAGE_EXACT;
        protected $filters;
        public function __construct(array $file, $width, $height, $name = null)
        {
        }
        public static function createByImageId($imageId, $width, $height, $name = null)
        {
        }
        public static function createByImageData(array $imageData, $width, $height, $name = null)
        {
        }
        /**
         * @return mixed
         */
        public function getWidth()
        {
        }
        /**
         * @param mixed $width
         *
         * @return ResizedImage
         */
        public function setWidth($width)
        {
        }
        /**
         * @return mixed
         */
        public function getHeight()
        {
        }
        /**
         * @param mixed $height
         *
         * @return ResizedImage
         */
        public function setHeight($height)
        {
        }
        /**
         * @return int
         */
        public function getResizeType()
        {
        }
        /**
         * @param int $resizeType
         *
         * @return ResizedImage
         */
        public function setResizeType($resizeType)
        {
        }
        /**
         * @return mixed
         */
        public function getFilters()
        {
        }
        /**
         * @param mixed $filters
         *
         * @return ResizedImage
         */
        public function setFilters($filters)
        {
        }
        /**
         * @return array
         */
        public function getImage()
        {
        }
        protected function prepareFile()
        {
        }
    }
}
namespace Bitrix\Main\Engine\Response\DataType {
    /**
     * Class ContentUri marks uri which provides content (file content).
     * It gives chance to process uri by some rest application without any bearer tokens.
     * So, module "rest" converts ContentUri to two items. One of them is original uri and
     * second is machine uri.
     * @package Bitrix\Main\Engine\Response\DataType
     *
     */
    final class ContentUri extends \Bitrix\Main\Web\Uri
    {
    }
    final class Page implements \Bitrix\Main\Type\Contract\Arrayable, \IteratorAggregate, \ArrayAccess, \JsonSerializable
    {
        /** @var string */
        private $id;
        /** @var array */
        private $items = [];
        /** @var int|\Closure */
        private $totalCount;
        private $calculatedTotalCount;
        /**
         * @param string $id Id of collection.
         * @param array|\Traversable $items
         * @param int|\Closure $totalCount The parameter can be Closure to prevent unnecessary actions for calculation.
         */
        public function __construct($id, $items, $totalCount)
        {
        }
        /**
         * @return int
         */
        public function getTotalCount()
        {
        }
        /**
         * @return string
         */
        public function getId()
        {
        }
        /**
         * @return array
         */
        public function getItems()
        {
        }
        /**
         * Retrieve an external iterator
         * @link http://php.net/manual/en/iteratoraggregate.getiterator.php
         * @return \Traversable An instance of an object implementing <b>Iterator</b> or
         * <b>Traversable</b>
         * @since 5.0.0
         */
        public function getIterator()
        {
        }
        /**
         * Whether a offset exists
         * @link http://php.net/manual/en/arrayaccess.offsetexists.php
         *
         * @param mixed $offset <p>
         * An offset to check for.
         * </p>
         *
         * @return boolean true on success or false on failure.
         * </p>
         * <p>
         * The return value will be casted to boolean if non-boolean was returned.
         * @since 5.0.0
         */
        public function offsetExists($offset)
        {
        }
        /**
         * Offset to retrieve
         * @link http://php.net/manual/en/arrayaccess.offsetget.php
         *
         * @param mixed $offset <p>
         * The offset to retrieve.
         * </p>
         *
         * @return mixed Can return all value types.
         * @since 5.0.0
         */
        public function offsetGet($offset)
        {
        }
        /**
         * Offset to set
         * @link http://php.net/manual/en/arrayaccess.offsetset.php
         *
         * @param mixed $offset <p>
         * The offset to assign the value to.
         * </p>
         * @param mixed $value <p>
         * The value to set.
         * </p>
         *
         * @return void
         * @since 5.0.0
         */
        public function offsetSet($offset, $value)
        {
        }
        /**
         * Offset to unset
         * @link http://php.net/manual/en/arrayaccess.offsetunset.php
         *
         * @param mixed $offset <p>
         * The offset to unset.
         * </p>
         *
         * @return void
         * @since 5.0.0
         */
        public function offsetUnset($offset)
        {
        }
        /**
         * Specify data which should be serialized to JSON
         * @link http://php.net/manual/en/jsonserializable.jsonserialize.php
         * @return mixed data which can be serialized by <b>json_encode</b>,
         * which is a value of any type other than a resource.
         * @since 5.4.0
         */
        public function jsonSerialize()
        {
        }
        public function toArray()
        {
        }
    }
}
namespace Bitrix\Main\Engine\Response\Zip {
    class Archive extends \Bitrix\Main\HttpResponse
    {
        /**
         * Archive name.
         * @var string
         */
        protected $name;
        /**
         * Archive Entries.
         * @var ArchiveEntry[]
         */
        protected $entries = [];
        /**
         * Archive constructor.
         * @param string $name Archive name.
         */
        public function __construct($name)
        {
        }
        /**
         * Add one entry. in current archive.
         * @param ArchiveEntry $archiveEntry Entry for archive.
         */
        public function addEntry($archiveEntry)
        {
        }
        /**
         * Returns true if the archive does not have entries.
         * @return bool
         */
        public function isEmpty()
        {
        }
        /**
         * Return entries as string.
         * @return string
         */
        protected function getFileList()
        {
        }
        protected function setContentDispositionHeader()
        {
        }
        /**
         * Sends content to output stream and sets necessary headers.
         * @return void
         */
        public function send()
        {
        }
    }
    class ArchiveEntry
    {
        /**
         * File name in entry.
         * @var string
         */
        protected $name;
        /**
         * File path in entry.
         * @var string
         */
        protected $path;
        /**
         * File size in entry.
         * @var int
         */
        protected $size;
        /**
         * Crc32 for file
         * @var string
         */
        protected $crc32;
        /**
         * Entry constructor.
         */
        protected function __construct()
        {
        }
        /**
         * Gets name of current file.
         * @return string
         */
        public function getName()
        {
        }
        /**
         * @param string $name
         *
         * @return ArchiveEntry
         */
        public function setName($name)
        {
        }
        /**
         * Gets full path of current file.
         * @return string
         */
        public function getPath()
        {
        }
        /**
         * Gets size of current file.
         * @return int
         */
        public function getSize()
        {
        }
        /**
         * @return string
         */
        public function getCrc32()
        {
        }
        /**
         * Creates Entry from file path.
         * @param string $filePath File id from b_file.
         * @param string|null $name
         * @return static
         */
        public static function createFromFilePath($filePath, $name = null)
        {
        }
        /**
         * Creates Entry from file id (from b_file).
         * @param int $fileId File id from b_file.
         * @param string $moduleId Module id for strong restriction.
         * @return static
         */
        public static function createFromFileId($fileId, $moduleId = null)
        {
        }
        /**
         * Creates Entry from file array.
         * @param array $fileArray File id from b_file.
         * @param string|null $name
         * @return static
         */
        protected static function createFromFile(array $fileArray, $name = null)
        {
        }
        /**
         * Get main instance of \CMain.
         * @return \CMain
         */
        protected static function getApplication()
        {
        }
        /**
         * Famous document root.
         * @return string
         */
        protected static function getDocRoot()
        {
        }
        /**
         * Encodes uri: explodes uri by / and encodes in UTF-8 and rawurlencodes.
         * @param string $uri Uri.
         * @return string
         */
        protected static function encodeUrn($uri)
        {
        }
        /**
         * Returns representation zip entry as string.
         * @return string
         */
        public function __toString()
        {
        }
    }
}
namespace Bitrix\Main\Engine\Response {
    /**
     * Response type for rendering ajax html content from action
     */
    class HtmlContent extends \Bitrix\Main\Engine\Response\AjaxJson
    {
        private $jsPathList = [];
        private $cssPathList = [];
        /**
         * @param ContentAreaInterface $content
         * @param string $status
         * @param ErrorCollection|null $errorCollection
         * @param array $additionalResponseParams
         */
        public function __construct(\Bitrix\Main\Engine\Response\ContentArea\ContentAreaInterface $content, $status = self::STATUS_SUCCESS, \Bitrix\Main\ErrorCollection $errorCollection = null, array $additionalResponseParams = [])
        {
        }
        protected final function collectAssetsPathList()
        {
        }
        /**
         * @return array
         */
        protected final function getJsList()
        {
        }
        /**
         * @return array
         */
        protected final function getCssList()
        {
        }
        /**
         * @return array
         */
        protected final function getStringList()
        {
        }
    }
    final class Component extends \Bitrix\Main\Engine\Response\HtmlContent
    {
        /**
         * Component constructor.
         *
         * @param string $componentName
         * @param string $componentTemplate
         * @param array $componentParams
         * @param array $additionalResponseParams
         * @param mixed $dataKeys
         */
        public function __construct($componentName, $componentTemplate = '', array $componentParams = [], array $additionalResponseParams = [], $dataKeys = [])
        {
        }
    }
    final class Converter
    {
        const TO_SNAKE = 0x1;
        const TO_CAMEL = 0x2;
        const TO_SNAKE_DIGIT = 0x4;
        const TO_UPPER = 0x10;
        const TO_LOWER = 0x20;
        const LC_FIRST = 0x100;
        const UC_FIRST = 0x200;
        const KEYS = 0x1000;
        const VALUES = 0x2000;
        const RECURSIVE = 0x4000;
        const OUTPUT_JSON_FORMAT = self::KEYS | self::RECURSIVE | self::TO_CAMEL | self::LC_FIRST;
        private $format;
        public function __construct($format)
        {
        }
        public static function toJson()
        {
        }
        public function process($data)
        {
        }
        protected function formatArray(array $array)
        {
        }
        protected function formatString($string)
        {
        }
        public function getFormat()
        {
        }
        public function setFormat($format)
        {
        }
    }
    class Redirect extends \Bitrix\Main\HttpResponse
    {
        /** @var string|Main\Web\Uri $url */
        private $url;
        /** @var bool */
        private $skipSecurity;
        public function __construct($url, bool $skipSecurity = false)
        {
        }
        /**
         * @return Main\Web\Uri|string
         */
        public function getUrl()
        {
        }
        /**
         * @param Main\Web\Uri|string $url
         * @return $this
         */
        public function setUrl($url)
        {
        }
        /**
         * @return bool
         */
        public function isSkippedSecurity() : bool
        {
        }
        /**
         * @param bool $skipSecurity
         * @return $this
         */
        public function setSkipSecurity(bool $skipSecurity)
        {
        }
        private function checkTrial() : bool
        {
        }
        private function isExternalUrl($url) : bool
        {
        }
        private function modifyBySecurity($url)
        {
        }
        private function processInternalUrl($url)
        {
        }
        public function send()
        {
        }
    }
}
namespace Bitrix\Main\Engine {
    final class Crawler
    {
        /** @var  Crawler */
        private static $instance;
        private function __construct()
        {
        }
        private function __clone()
        {
        }
        /**
         * Returns Singleton of Crawler
         * @return Crawler
         */
        public static function getInstance()
        {
        }
        public function listActionsByModule($module)
        {
        }
        private function getActionsFromControllers($namespace)
        {
        }
        private function getFilesUnderNamespace($namespace)
        {
        }
        private function getNamespaces($module)
        {
        }
        /**
         * @param \ReflectionClass $reflectionClass
         *
         * @return Controller
         */
        private function constructController(\ReflectionClass $reflectionClass)
        {
        }
    }
}
namespace Bitrix\Main\Engine\ActionFilter {
    final class ClosureWrapper extends \Bitrix\Main\Engine\ActionFilter\Base
    {
        /**
         * @var Closure
         */
        private $closure;
        /**
         * ClosureActionFilter constructor.
         * @param Closure $closure
         */
        public function __construct(\Closure $closure)
        {
        }
        public function onBeforeAction(\Bitrix\Main\Event $event)
        {
        }
        public function onAfterAction(\Bitrix\Main\Event $event)
        {
        }
    }
    /**
     * Class CloseSession
     * Be careful by using this feature. You will close session and code below can't work with it until session will be open.
     * @package Bitrix\Main\Engine\ActionFilter
     */
    final class CloseSession extends \Bitrix\Main\Engine\ActionFilter\Base
    {
        /**
         * @var bool
         */
        private $enabled;
        /**
         * Close session constructor.
         * @param bool $enabled
         */
        public function __construct($enabled = true)
        {
        }
        public function onBeforeAction(\Bitrix\Main\Event $event)
        {
        }
    }
    final class Authentication extends \Bitrix\Main\Engine\ActionFilter\Base
    {
        const ERROR_INVALID_AUTHENTICATION = 'invalid_authentication';
        /**
         * @var bool
         */
        private $enableRedirect;
        public function __construct($enableRedirect = false)
        {
        }
        public function onBeforeAction(\Bitrix\Main\Event $event)
        {
        }
    }
    class Scope extends \Bitrix\Main\Engine\ActionFilter\Base
    {
        const AJAX = 0b1;
        const REST = 0b10;
        const CLI = 0b100;
        const ALL = 0b111;
        const NOT_AJAX = self::ALL & ~self::AJAX;
        const NOT_REST = self::ALL & ~self::REST;
        const NOT_CLI = self::ALL & ~self::CLI;
        private $scopes;
        public function __construct($scopes)
        {
        }
        public function onBeforeAction(\Bitrix\Main\Event $event)
        {
        }
        protected function getCurrentScope()
        {
        }
    }
    final class Csrf extends \Bitrix\Main\Engine\ActionFilter\Base
    {
        const ERROR_INVALID_CSRF = 'invalid_csrf';
        /**
         * @var bool
         */
        private $enabled;
        /**
         * @var string
         */
        private $tokenName;
        /**
         * @var bool
         */
        private $returnNew;
        /**
         * Csrf constructor.
         *
         * @param bool $enabled
         * @param string $tokenName
         * @param bool $returnNew
         */
        public function __construct($enabled = true, $tokenName = 'sessid', $returnNew = true)
        {
        }
        /**
         * List allowed values of scopes where the filter should work.
         * @return array
         */
        public function listAllowedScopes()
        {
        }
        public function onBeforeAction(\Bitrix\Main\Event $event)
        {
        }
    }
    /**
     * Class Content
     * @package Bitrix\Main\Engine\ActionFilter
     */
    final class ContentType extends \Bitrix\Main\Engine\ActionFilter\Base
    {
        const JSON = 'application/json';
        const ERROR_INVALID_CONTENT_TYPE = 'invalid_content_type';
        /** @var array  */
        private $allowedTypes;
        /**
         * ContentType filter constructor.
         *
         * @param array $allowedTypes Allowed types.
         */
        public function __construct(array $allowedTypes = [])
        {
        }
        /**
         * Event `onBeforeAction` handler.
         *
         * @param Event $event Event.
         * @return EventResult|void|null
         */
        public function onBeforeAction(\Bitrix\Main\Event $event)
        {
        }
        protected function setActionSourceParametersToMap(\Bitrix\Main\Engine\JsonPayload $payload)
        {
        }
        protected function getRequestContentType()
        {
        }
    }
    final class PostDecode extends \Bitrix\Main\Engine\ActionFilter\Base
    {
        public function onBeforeAction(\Bitrix\Main\Event $event)
        {
        }
    }
    /**
     * Class Cors
     * Set headers for CORS .
     * @package Bitrix\Main\Engine\ActionFilter
     */
    final class Cors extends \Bitrix\Main\Engine\ActionFilter\Base
    {
        /** @var string|null */
        private $origin;
        /** @var bool */
        private $credentials;
        /**
         * Constructor.
         *
         * @param string|null $origin Origin. NULL - take from Origin header, '*' or like 'https://example.com'.
         * @param bool $credentials Set header `Access-Control-Allow-Credentials`.
         */
        public function __construct(string $origin = null, bool $credentials = false)
        {
        }
        /**
         * Handler of event `onBeforeAction`.
         *
         * @param Main\Event $event Event.
         * return void
         */
        public function onAfterAction(\Bitrix\Main\Event $event)
        {
        }
    }
    final class HttpMethod extends \Bitrix\Main\Engine\ActionFilter\Base
    {
        const METHOD_GET = 'GET';
        const METHOD_POST = 'POST';
        const ERROR_INVALID_HTTP_METHOD = 'invalid_http_method';
        /**
         * @var array
         */
        private $allowedMethods;
        /**
         * HttpMethodFilter constructor.
         * @param array $allowedMethods
         */
        public function __construct(array $allowedMethods = array(self::METHOD_GET))
        {
        }
        /**
         * List allowed values of scopes where the filter should work.
         * @return array
         */
        public function listAllowedScopes()
        {
        }
        /**
         * @return bool
         */
        public function containsPostMethod()
        {
        }
        public function onBeforeAction(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Main\Engine\AutoWire {
    class Parameter
    {
        /** @var string */
        private $className;
        /** @var \Closure */
        private $constructor;
        /** @var \Closure */
        private $externalNameConstructor;
        public function __construct($className, \Closure $constructor, \Closure $externalNameConstructor = null)
        {
        }
        public function getPriority()
        {
        }
        public function constructValue(\ReflectionParameter $parameter, \Bitrix\Main\Result $captureResult)
        {
        }
        public function captureData(\ReflectionParameter $parameter, array $sourceParameters)
        {
        }
        protected function findParameterInSourceList($name, array $sourceParameters, &$status)
        {
        }
        public function match(\ReflectionParameter $parameter)
        {
        }
        /**
         * @return string
         */
        public function getClassName()
        {
        }
        /**
         * @param string $className
         *
         * @return Parameter
         */
        public function setClassName($className)
        {
        }
        /**
         * @return \Closure
         */
        public function getConstructor()
        {
        }
        /**
         * @param \Closure $constructor
         *
         * @return Parameter
         */
        public function setConstructor(\Closure $constructor)
        {
        }
        /**
         * @return \Closure
         */
        public function getExternalNameConstructor()
        {
        }
        /**
         * @param \Closure $externalNameConstructor
         *
         * @return Parameter
         */
        public function setExternalNameConstructor(\Closure $externalNameConstructor)
        {
        }
        protected function needToMapExternalData()
        {
        }
        public function generateExternalName()
        {
        }
    }
    class ExactParameter extends \Bitrix\Main\Engine\AutoWire\Parameter
    {
        /** @var string */
        private $parameterName;
        public function __construct($className, $parameterName, \Closure $constructor)
        {
        }
        protected function validateConstructor(\Closure $constructor)
        {
        }
        public function captureData(\ReflectionParameter $parameter, array $sourceParameters)
        {
        }
        /**
         * @return \ReflectionParameter[]
         * @throws \ReflectionException
         */
        private function fetchParametersToMapExternalNamesFromClosure()
        {
        }
        public function match(\ReflectionParameter $parameter)
        {
        }
        /**
         * @return string
         */
        public function getParameterName()
        {
        }
        public function getPriority()
        {
        }
    }
    final class Binder
    {
        const STATUS_FOUND = true;
        const STATUS_NOT_FOUND = false;
        private $instance;
        private $method;
        /** @var array */
        private $configuration = [];
        /** @var \SplObjectStorage|Parameter[] */
        private static $globalAutoWiredParameters;
        /** @var Parameter[] */
        private $autoWiredParameters = [];
        /** @var \ReflectionFunctionAbstract */
        private $reflectionFunctionAbstract;
        /** @var array */
        private $methodParams = null;
        /** @var array */
        private $args = null;
        public function __construct($instance, $method, $configuration = [])
        {
        }
        public static final function buildForFunction($callable, $configuration = [])
        {
        }
        public static final function buildForMethod($instance, $method, $configuration = [])
        {
        }
        private function buildReflectionMethod()
        {
        }
        private function buildReflectionFunction()
        {
        }
        /**
         * @return mixed
         */
        public function getInstance()
        {
        }
        /**
         * @return mixed
         */
        public function getMethod()
        {
        }
        /**
         * @return array
         */
        public function getConfiguration()
        {
        }
        /**
         * @param array $configuration
         *
         * @return Binder
         */
        public function setConfiguration($configuration)
        {
        }
        /**
         * @param Parameter[] $parameters
         *
         * @return $this
         */
        public function setAutoWiredParameters(array $parameters)
        {
        }
        public function appendAutoWiredParameter(\Bitrix\Main\Engine\AutoWire\Parameter $parameter)
        {
        }
        /**
         * Register globally auto wired parameter. The method was added in backwards compatibility reason.
         * @param Parameter $parameter
         * @return void
         */
        public static function registerGlobalAutoWiredParameter(\Bitrix\Main\Engine\AutoWire\Parameter $parameter)
        {
        }
        /**
         * @param Parameter $parameter
         * @return void
         */
        public static function unRegisterGlobalAutoWiredParameter(\Bitrix\Main\Engine\AutoWire\Parameter $parameter) : void
        {
        }
        private function getPriorityByParameter(\Bitrix\Main\Engine\AutoWire\Parameter $parameter)
        {
        }
        /**
         * @return Parameter[]
         */
        public function getAutoWiredParameters()
        {
        }
        public function setSourcesParametersToMap(array $parameters)
        {
        }
        public function getSourcesParametersToMap()
        {
        }
        public function appendSourcesParametersToMap(array $parameter)
        {
        }
        /**
         * Invokes method with binded parameters.
         * return @mixed
         */
        public final function invoke()
        {
        }
        /**
         * Returns list of method params.
         * @return array
         */
        public final function getMethodParams()
        {
        }
        /**
         * Sets list of method params.
         * @param array $params List of parameters.
         *
         * @return $this
         */
        public final function setMethodParams(array $params)
        {
        }
        /**
         * Returns list of method params which possible use in call_user_func_array().
         * @return array
         */
        public final function getArgs()
        {
        }
        private function bindParams()
        {
        }
        /**
         * @param \ReflectionParameter $reflectionParameter
         *
         * @return \SplPriorityQueue|Parameter[]
         */
        private function getAutoWiredByClass(\ReflectionParameter $reflectionParameter)
        {
        }
        /**
         * @return Parameter[]
         */
        private function getAllAutoWiredParameters()
        {
        }
        private function getParameterValue(\ReflectionParameter $parameter)
        {
        }
        private function findParameterInSourceList($name, &$status)
        {
        }
    }
    class BinderArgumentException extends \Bitrix\Main\ArgumentException
    {
    }
}
namespace Bitrix\Main\Engine {
    final class ControllerBuilder
    {
        public static function build(string $controllerClass, $options) : \Bitrix\Main\Engine\Controller
        {
        }
    }
}
namespace Bitrix\Main\Engine\Component {
    final class ComponentController extends \Bitrix\Main\Engine\Controller
    {
        /**
         * @var \CBitrixComponent
         */
        private $component;
        /**
         * ComponentController constructor.
         *
         * @param Controllerable $component
         */
        public function __construct(\Bitrix\Main\Engine\Contract\Controllerable $component)
        {
        }
        public function configureActions()
        {
        }
        protected function create($actionName)
        {
        }
    }
    final class InlineAction extends \Bitrix\Main\Engine\Action
    {
        /**
         * @var string
         */
        protected $methodName;
        /**
         * @var Controllerable
         */
        private $controllerable;
        /**
         * InlineAction constructor.
         *
         * @param string $name
         * @param Controllerable $controllerable
         * @param Controller $controller
         * @param array $config
         */
        public function __construct($name, \Bitrix\Main\Engine\Contract\Controllerable $controllerable, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        protected function buildBinder()
        {
        }
        public function runWithSourceParametersList()
        {
        }
    }
}
namespace Bitrix\Main\Engine {
    final class FallbackAction extends \Bitrix\Main\Engine\Action
    {
        public const ACTION_NAME = 'fallback';
        public const ACTION_METHOD = 'fallbackAction';
        /** @var string */
        private $originalActionName;
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = [])
        {
        }
        protected function buildBinder()
        {
        }
    }
    final class CurrentUser
    {
        /** @var CUser */
        private $cuser;
        /**
         * CurrentUser constructor.
         * In future when we create User in D7 we can make refactoring and make public the constructor.
         */
        protected function __construct()
        {
        }
        /**
         * Returns the fully qualified name of this class.
         * @return string
         */
        public static function className()
        {
        }
        /**
         * Returns current user by global $USER.
         * @return static
         */
        public static function get()
        {
        }
        /**
         * @return null
         */
        public function getId()
        {
        }
        /**
         * @return mixed
         */
        public function getLogin()
        {
        }
        /**
         * @return mixed
         */
        public function getEmail()
        {
        }
        /**
         * @return mixed
         */
        public function getFullName()
        {
        }
        /**
         * @return mixed
         */
        public function getFirstName()
        {
        }
        /**
         * @return mixed
         */
        public function getLastName()
        {
        }
        /**
         * @return mixed
         */
        public function getSecondName()
        {
        }
        /**
         * @return array
         */
        public function getUserGroups()
        {
        }
        /**
         * @return string
         */
        public function getFormattedName()
        {
        }
        /**
         * @param string $operationName
         * @return boolean
         */
        public function canDoOperation($operationName)
        {
        }
        /**
         * @return boolean
         */
        public function isAdmin()
        {
        }
    }
    final class InlineAction extends \Bitrix\Main\Engine\Action
    {
        /**
         * @var string
         */
        protected $methodName;
        /**
         * InlineAction constructor.
         *
         * @param string $name
         * @param Controller $controller
         * @param array $config
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $config = array())
        {
        }
        protected function buildBinder()
        {
        }
    }
    final class Router
    {
        const COMPONENT_MODE_AJAX = 'ajax';
        const COMPONENT_MODE_CLASS = 'class';
        protected $vendor = \Bitrix\Main\Engine\Resolver::DEFAULT_VENDOR;
        protected $module = 'main';
        protected $action = 'index';
        protected $component;
        protected $mode;
        /**
         * @var HttpRequest
         */
        private $request;
        /**
         * Router constructor.
         * @param HttpRequest $request
         */
        public function __construct(\Bitrix\Main\HttpRequest $request)
        {
        }
        private function resolveModuleAndAction($action)
        {
        }
        private function resolveVendor($action)
        {
        }
        protected function refineModuleName($vendor, $module)
        {
        }
        /**
         * @param $componentName
         *
         * @param string|null $signedParameters
         *
         * @param null $template
         *
         * @return Controllerable|null
         * @throws Security\Sign\BadSignatureException
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentTypeException
         */
        protected function buildComponent($componentName, $signedParameters = null, $template = null)
        {
        }
        /**
         * @return array
         */
        public function getControllerAndAction()
        {
        }
        private function getComponentControllerAndAction()
        {
        }
        private function includeModule($module)
        {
        }
        private function includeComponentAjaxClass($name)
        {
        }
        private function getAjaxClassForPath($componentPath)
        {
        }
        /**
         * @param HttpRequest $request
         * @return $this
         */
        public function setRequest(\Bitrix\Main\HttpRequest $request)
        {
        }
        /**
         * @return string
         */
        public function getVendor()
        {
        }
        /**
         * @return string
         */
        public function getModule()
        {
        }
        /**
         * @return string
         */
        public function getAction()
        {
        }
        /**
         * @return string
         */
        public function getComponent()
        {
        }
        /**
         * @return string
         */
        public function getMode()
        {
        }
    }
    /**
     * Class Binder
     * @package Bitrix\Main\Engine
     * @deprecated
     * @see \Bitrix\Main\Engine\AutoWire\Binder
     */
    class Binder
    {
        const ANY_PARAMETER_NAME = -1;
        const STATUS_FOUND = true;
        const STATUS_NOT_FOUND = false;
        const EVENT_ON_BUILD_AUTO_WIRED_CLASSES = 'onBuildAutoWiredClasses';
        private $instance;
        private $method;
        /** @var array */
        private $methodParams;
        /** @var array */
        private $args;
        private $listSourceParameters;
        /** @var \ReflectionFunctionAbstract */
        private $reflectionFunctionAbstract;
        /** @var array */
        private static $autoWiredHandlers = null;
        /**
         * Binder constructor.
         * @param mixed  $instance Instance of the class that contains the method.
         * @param string $method Name of the method.
         * @param array  $listSourceParameters List of parameters source which we want to bind.
         */
        public function __construct($instance, $method, array $listSourceParameters)
        {
        }
        private static function registerDefaultAutoWirings()
        {
        }
        public static final function buildForFunction($callable, array $listSourceParameters)
        {
        }
        public static final function buildForMethod($instance, $method, array $listSourceParameters)
        {
        }
        public static final function registerParameter($className, \Closure $constructObjectByClassAndId)
        {
        }
        public static final function registerParameterDependsOnName($className, \Closure $constructObjectByClassAndId, \Closure $constructIdParameterName = null)
        {
        }
        /**
         * Builds instance of reflection method.
         * @return void
         */
        private function buildReflectionMethod()
        {
        }
        private function buildReflectionFunction()
        {
        }
        protected final function collectAutoWiredClasses()
        {
        }
        /**
         * Returns list of method params.
         * @return array
         */
        public final function getMethodParams()
        {
        }
        /**
         * Sets list of method params.
         * @param array $params List of parameters.
         *
         * @return $this
         */
        public final function setMethodParams(array $params)
        {
        }
        /**
         * Returns list of method params which possible use in call_user_func_array().
         * @return array
         */
        public final function getArgs()
        {
        }
        /**
         * Invokes method with binded parameters.
         * return @mixed
         */
        public final function invoke()
        {
        }
        private function processException($exception)
        {
        }
        private function extractParameterClassName($message)
        {
        }
        private function getParameterValue(\ReflectionParameter $parameter)
        {
        }
        /**
         * @param array $listSourceParameters
         */
        public function setListSourceParameters($listSourceParameters)
        {
        }
        private function findParameterInSourceList($name, &$status)
        {
        }
        private function bindParams()
        {
        }
        private function getAutoWiredHandler(\ReflectionClass $class)
        {
        }
        private function isAutoWiredClass(\ReflectionClass $class)
        {
        }
    }
    final class ClosureAction extends \Bitrix\Main\Engine\Action
    {
        /**
         * @var callable
         */
        protected $callable;
        /**
         * ClosureAction constructor.
         *
         * @param string $name
         * @param Controller $controller
         * @param callable $callable
         * @param array $config
         */
        public function __construct($name, \Bitrix\Main\Engine\Controller $controller, $callable, $config = array())
        {
        }
        protected function buildBinder()
        {
        }
    }
    final class Configurator
    {
        const EVENT_ON_BUILD_ACTIONS = 'onBuildActions';
        const MODE_ANNOTATIONS = 0x1;
        protected $mode = 0;
        /**
         * Configurator constructor.
         */
        public function __construct()
        {
        }
        public function getConfigurationByAnnotations(array $annotations)
        {
        }
        public function getConfigurationByController(\Bitrix\Main\Engine\Controller $controller)
        {
        }
        private function isExists(array $configuration, $actionName)
        {
        }
        private function checkReflectionMethodAsAction(\ReflectionMethod $reflectionMethod, array $annotations = null)
        {
        }
        private function onBuildConfigurationOfActions(\Bitrix\Main\Engine\Controller $controller)
        {
        }
        public function wrapFiltersClosure(array $filters)
        {
        }
        private function wrapClosure(array $configurations)
        {
        }
        private function checkConfigurations(array $configurations)
        {
        }
        private function checkFilters(array $filters)
        {
        }
    }
}
namespace Bitrix\Main\Authentication {
    class ApplicationManager
    {
        /** @var ApplicationManager */
        protected static $instance;
        protected $applications = array();
        protected function __construct()
        {
        }
        public static function getInstance()
        {
        }
        /**
         * Returns sorted array which describes available applications.
         *
         * @return array Array of arrays:
         * 		array("ID" => array(
         *	 		"ID" => application id,
         * 			"NAME" => application name,
         * 			"SORT" => application sort index,
         * 			"CLASS" => application class name
         * 		))
         */
        public function getApplications()
        {
        }
        /**
         * Checks the valid scope for the applicaton.
         *
         * @param string $applicationId
         * @return bool
         */
        public function checkScope($applicationId)
        {
        }
    }
    class ShortCode
    {
        /** @var Context */
        protected $context;
        protected $type;
        /** @var Internal\EO_UserAuthCode */
        protected $code;
        protected $checkInterval = 300;
        //seconds, a half of the real time window
        protected $resendInterval = 60;
        //seconds
        /**
         * ShortCode constructor.
         * @param Context $context Contains userId
         * @param string $type Currently 'email' only
         */
        public function __construct(\Bitrix\Main\Authentication\Context $context, $type = \Bitrix\Main\Authentication\Internal\UserAuthCodeTable::TYPE_EMAIL)
        {
        }
        /**
         * Generates a 6-number code.
         * @return bool|string
         */
        public function generate()
        {
        }
        /**
         * Verifies the 6-number code.
         * @param string $code
         * @return Main\Result
         */
        public function verify($code)
        {
        }
        /**
         * Checks if previous dispatch time is outside the interval.
         * @return Main\Result
         */
        public function checkDateSent()
        {
        }
        /**
         * Saves last sent date.
         * @return bool
         */
        public function saveDateSent()
        {
        }
        /**
         * @return Main\EO_User
         */
        public function getUser()
        {
        }
        /**
         * @param int $userId
         */
        public static function deleteByUser($userId)
        {
        }
        protected function load()
        {
        }
    }
    class Context
    {
        protected $userId;
        public function __construct()
        {
        }
        public function getUserId()
        {
        }
        public function setUserId($userId)
        {
        }
    }
}
namespace Bitrix\Main {
    class UrlRewriter
    {
        const DEFAULT_SORT = 100;
        protected static function loadRules($siteId)
        {
        }
        protected static function saveRules($siteId, array $arUrlRewrite)
        {
        }
        public static function getList($siteId, $arFilter = array(), $arOrder = array())
        {
        }
        protected static function filterRules(array $arUrlRewrite, array $arFilter)
        {
        }
        protected static function recordsCompare($a, $b)
        {
        }
        public static function add($siteId, $arFields)
        {
        }
        public static function update($siteId, $arFilter, $arFields)
        {
        }
        public static function delete($siteId, $arFilter)
        {
        }
        public static function reindexAll($maxExecutionTime = 0, $ns = array())
        {
        }
        protected static function recursiveReindex($rootPath, $path, $arSites, $maxExecutionTime, &$ns)
        {
        }
        public static function reindexFile($siteId, $rootPath, $path, $maxFileSize = 0)
        {
        }
        public static function checkPath($path)
        {
        }
    }
    /**
     * Class UrlRewriterRuleMaker
     *
     * Helper used for sef rules creation.
     *
     * @package Bitrix\Main
     */
    class UrlRewriterRuleMaker
    {
        protected $condition = "";
        protected $variables = array();
        protected $rule = "";
        /**
         * @param string $sefRule SEF_RULE component parameter value.
         *
         * @return void
         */
        public function process($sefRule)
        {
        }
        /**
         * Returns CONDITION field of the sef rule based on what was processed.
         *
         * @return string
         */
        public function getCondition()
        {
        }
        /**
         * Returns RULE field of the sef rule based on what was processed.
         *
         * @return string
         */
        public function getRule()
        {
        }
        /**
         * Internal method used for preg_replace processing.
         *
         * @param array $match match array.
         *
         * @return string
         */
        protected function _callback(array $match)
        {
        }
    }
    class SiteTemplate
    {
        protected $id;
        public function __construct($id)
        {
        }
    }
}
namespace Bitrix\Main\Rest {
    class User extends \IRestService
    {
        public static function getHistoryList($query, $nav = 0, \CRestServer $server)
        {
        }
        public static function getHistoryFieldsList($query, $nav = 0, \CRestServer $server)
        {
        }
    }
    class Handlers
    {
        const SCOPE_USER = 'user';
        const SCOPE_USER_CONSENT = 'userconsent';
        const SCOPE_RATING = 'rating';
        const SCOPE_SMILE = 'smile';
        public static function onRestServiceBuildDescription()
        {
        }
    }
    class Rating extends \IRestService
    {
        const LIST_LIMIT = 20;
        public static function getLikeReactions($query, $nav = 0, \CRestServer $server)
        {
        }
        public static function getLikeList($query, $nav = 0, \CRestServer $server)
        {
        }
    }
    class Smile extends \IRestService
    {
        public static function getList($arParams, $n, \CRestServer $server)
        {
        }
        /* Utils */
        public static function objectEncode($data, $options = [])
        {
        }
        public static function getServerAddress()
        {
        }
    }
}
namespace Bitrix\Main {
    class Environment extends \Bitrix\Main\Type\ParameterDictionary
    {
        /**
         * Creates env object.
         *
         * @param array $arEnv
         */
        public function __construct(array $arEnv)
        {
        }
    }
}
namespace Bitrix\Main\Localization {
    class Translation
    {
        /** @var boolean */
        private static $allowConvertEncoding = null;
        /** @var boolean */
        private static $useTranslationRepository = null;
        /** @var string */
        private static $translationRepositoryPath = null;
        /** @var string */
        private static $currentEncoding = null;
        /** @var bool[] */
        private static $needConvertEncoding = array();
        /** @var array */
        private static $map = array();
        const CACHE_ID = 'TranslationLoadMapCache';
        const CACHE_TTL = 3600;
        /**
         * Returns true if language translation is one of the default translation.
         *
         * @param string $lang Language code to check.
         * @return bool
         */
        public static function isDefaultTranslationLang($lang)
        {
        }
        /**
         * Returns encoding of source lang file in the translation repository.
         *
         * @param string $lang Language code to retrieve encoding.
         * @return string
         */
        public static function getDefaultTranslationEncoding($lang)
        {
        }
        /**
         * Returns encoding of source lang file in the translation repository.
         *
         * @param string $lang Language code to retrieve encoding.
         * @return string
         */
        public static function getSourceEncoding($lang)
        {
        }
        /**
         * Sets current encoding.
         *
         * @param  string $encoding Charset encoding.
         * @return void
         */
        public static function setCurrentEncoding($encoding)
        {
        }
        /**
         * Returns current encoding.
         *
         * @return string
         */
        public static function getCurrentEncoding()
        {
        }
        /**
         * Tells if need to convert encoding.
         *
         * @param string $language Language code.
         * @param string $targetEncoding Target encoding.
         *
         * @return bool
         */
        public static function needConvertEncoding($language, $targetEncoding = null)
        {
        }
        /**
         * Tells if need to convert encoding for certain file.
         *
         * @param string $langFile Language file path.
         *
         * @return bool
         */
        public static function checkPathRestrictionConvertEncoding($langFile)
        {
        }
        /**
         * Tells if need to use translation repository.
         *
         * @return bool
         */
        public static function useTranslationRepository()
        {
        }
        /**
         * Returns path to translation repository.
         *
         * @return string
         */
        public static function getTranslationRepositoryPath()
        {
        }
        /**
         * Tells true if configuration allows to convert encodings.
         *
         * @return bool
         */
        public static function allowConvertEncoding()
        {
        }
        /**
         * Returns path to developer repository.
         *
         * @return string
         */
        public static function getDeveloperRepositoryPath()
        {
        }
        /**
         * Converts lang file to translation repository path.
         *
         * @param string $langFile Language file path.
         * @param string $language Language code to retrieve translation.
         * @return string
         */
        public static function convertLangPath($langFile, $language)
        {
        }
        /**
         * Restore project map structure from file structure.
         *
         * @return array
         */
        public static function loadMap()
        {
        }
        /**
         * @param $language
         * @param $langFile
         * @return array
         */
        public static function getEncodings($language, $langFile)
        {
        }
    }
    final class Loc
    {
        private static $currentLang = null;
        private static $messages = array();
        private static $customMessages = array();
        private static $userMessages = array();
        private static $includedFiles = array();
        private static $lazyLoadFiles = array();
        private static $triedFiles = array();
        /**
         * Returns translation by message code.
         * Loc::loadMessages(__FILE__) should be called first once per php file
         *
         * @param string $code
         * @param array $replace e.g. array("#NUM#"=>5)
         * @param string $language
         * @return string
         */
        public static function getMessage($code, $replace = null, $language = null)
        {
        }
        /**
         * Loads language messages for specified file in a lazy way
         *
         * @param string $file
         */
        public static function loadMessages($file)
        {
        }
        /**
         * @return string
         */
        public static function getCurrentLang()
        {
        }
        public static function setCurrentLang($language)
        {
        }
        /**
         * Loads language messages for specified file and language.
         *
         * @param string $file File path to look for language translation for its.
         * @param string $language Language code.
         * @param string $loadedLangFile Certain loaded language file.
         *
         * @return array
         */
        private static function includeLangFiles($file, $language, &$loadedLangFile)
        {
        }
        /**
         * Loads language messages for specified file
         *
         * @param string $file
         * @param string $language
         * @param bool $normalize
         * @return array
         */
        public static function loadLanguageFile($file, $language = null, $normalize = true)
        {
        }
        /**
         * Loads custom messages from the file to overwrite messages by their IDs.
         *
         * @param string $file
         * @param string|null $language
         */
        public static function loadCustomMessages($file, $language = null)
        {
        }
        private static function loadLazy($code, $language)
        {
        }
        /**
         * Reads messages from user defined lang file
         *
         * @param string $lang
         * @return array
         */
        private static function loadUserMessages($lang)
        {
        }
        /**
         * Reads messages from lang file.
         *
         * @param string $path
         * @return array
         */
        private static function includeFile($path)
        {
        }
        /**
         * Returns default language for specified language. Default language is used when translation is not found.
         *
         * @param string $lang
         * @return string
         */
        public static function getDefaultLang($lang)
        {
        }
        /**
         * Returns previously included lang files.
         * @return array
         */
        public static function getIncludedFiles()
        {
        }
    }
}
namespace Bitrix\Main\Analytics {
    /**
     * @package bitrix
     * @subpackage main
     */
    class Catalog
    {
        protected static $cookieLogName = 'RCM_PRODUCT_LOG';
        // basket (sale:OnSaleBasketItemSaved)
        public static function catchCatalogBasket(\Bitrix\Main\Event $event)
        {
        }
        // order detailed info (sale:OnSaleOrderSaved)
        public static function catchCatalogOrder(\Bitrix\Main\Event $event)
        {
        }
        // order payment (sale:OnSaleOrderPaid)
        public static function catchCatalogOrderPayment(\Bitrix\Main\Event $event)
        {
        }
        public static function getOrderInfo($orderId)
        {
        }
        protected function getBxUserId()
        {
        }
        public static function normalizePhoneNumber($phone)
        {
        }
        public static function isOn()
        {
        }
        public static function getProductIdsByOfferIds($offerIds)
        {
        }
        /**
         * @param array $log
         *
         * @return string
         */
        public static function encodeProductLog(array $log)
        {
        }
        /**
         * @param $log
         *
         * @return array
         */
        public static function decodeProductLog($log)
        {
        }
        /**
         * @return string
         */
        public static function getCookieLogName()
        {
        }
    }
    class Counter
    {
        protected static $data = array();
        protected static $enabled = true;
        public static function enable()
        {
        }
        public static function disable()
        {
        }
        public static function getInjectedJs($stripTags = false)
        {
        }
        public static function injectIntoPage()
        {
        }
        public static function getAccountId()
        {
        }
        public static function getPrivateKey()
        {
        }
        public static function onBeforeEndBufferContent()
        {
        }
        public static function onBeforeRestartBuffer()
        {
        }
        public static function sendData($id, array $arParams)
        {
        }
        private static function injectDataParams()
        {
        }
    }
    class SiteSpeed
    {
        public static function onBuildGlobalMenu(&$arGlobalMenu, &$arModuleMenu)
        {
        }
        /**
         * @return bool
         */
        public static function isRussianSiteManager()
        {
        }
        /**
         * @param $siteId
         * @return bool
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function isIntranetSite($siteId)
        {
        }
        public static function canGatherStat()
        {
        }
        public static function isOn()
        {
        }
    }
}
namespace Bitrix\Main\Grid\Uf {
    class Base
    {
        protected $entityTypeId;
        protected $userFieldsReserved = [];
        public function __construct($entityTypeId)
        {
        }
        protected function getEntityUFList()
        {
        }
        protected function getUserFieldsReserved()
        {
        }
        public function addUFHeaders(&$gridHeaders, $import = false)
        {
        }
        protected function postFilterFields(array $fields)
        {
        }
    }
    class User extends \Bitrix\Main\Grid\Uf\Base
    {
        protected $userFieldsReserved = ['UF_DEPARTMENT', 'UF_USER_CRM_ENTITY', 'UF_PUBLIC', 'UF_TIMEMAN', 'UF_TM_REPORT_REQ', 'UF_TM_FREE', 'UF_REPORT_PERIOD', 'UF_1C', 'UF_TM_ALLOWED_DELTA', 'UF_SETTING_DATE', 'UF_LAST_REPORT_DATE', 'UF_DELAY_TIME', 'UF_TM_REPORT_DATE', 'UF_TM_DAY', 'UF_TM_TIME', 'UF_TM_REPORT_TPL', 'UF_TM_MIN_DURATION', 'UF_TM_MIN_FINISH', 'UF_TM_MAX_START', 'UF_CONNECTOR_MD5', 'UF_WORK_BINDING', 'UF_IM_SEARCH', 'UF_BXDAVEX_CALSYNC', 'UF_BXDAVEX_MLSYNC', 'UF_UNREAD_MAIL_COUNT', 'UF_BXDAVEX_CNTSYNC', 'UF_BXDAVEX_MAILBOX', 'UF_VI_PASSWORD', 'UF_VI_BACKPHONE', 'UF_VI_PHONE', 'UF_VI_PHONE_PASSWORD'];
        public function __construct()
        {
        }
        public function addUFHeaders(&$gridHeaders, $import = false)
        {
        }
    }
}
namespace Bitrix\Main\Grid {
    class Params
    {
        /**
         * Gets first a Boolean value from $values or gets a default value
         * @param array $values
         * @param $defaultValue
         *
         * @return bool|*
         */
        public static function prepareBoolean(array $values = array(), $defaultValue)
        {
        }
        /**
         * Gets first a String value from $values or gets a default value
         * @param array $values
         * @param $defaultValue
         *
         * @return string|*
         */
        public static function prepareString(array $values = array(), $defaultValue)
        {
        }
        /**
         * Gets first a Array value from $values or gets a default value
         * @param array $values
         * @param $defaultValue
         *
         * @return array|*
         */
        public static function prepareArray(array $values = array(), $defaultValue)
        {
        }
        /**
         * Gets first a Integer value from $values or gets a default value
         * @param array $values
         * @param $defaultValue
         *
         * @return int|string
         */
        public static function prepareInt(array $values = array(), $defaultValue)
        {
        }
        public static function ensureString(array $params, $name)
        {
        }
        public static function ensureNotEmptyString(array $params, $name)
        {
        }
        public static function ensureArray(array $params, $name)
        {
        }
        public static function ensureNotEmptyArray(array $params, $name)
        {
        }
    }
    /**
     * Class Actions. Types of grid actions
     * @package Bitrix\Main\Grid
     */
    class Actions
    {
        const GRID_SET_COLUMNS = "setColumns";
        const GRID_SET_THEME = "setTheme";
        const GRID_SAVE_SETTINGS = "saveSettings";
        const GRID_DELETE_VIEW = "deleteView";
        const GRID_SET_VIEW = "setView";
        const GRID_SET_FILTER_ROWS = "setFilterRows";
        const GRID_SAVE_FILTER_SETTINGS = "saveFilterSettings";
        const GRID_DELETE_FILTER = "deleteFilter";
        const GRID_SET_FILTER_SWITCH = "setFilterSwitch";
        const GRID_SET_SORT = "setSort";
        const GRID_SET_COLUMN_SIZES = "setColumnSizes";
        const GRID_SET_PAGE_SIZE = "setPageSize";
        const GRID_RESET = "gridReset";
        const SET_CUSTOM_NAMES = "setCustomNames";
        const GRID_GET_CHILD_ROWS = "getChildRows";
        const GRID_UPDATE_ROW = "updateRow";
        const GRID_DELETE_ROW = "deleteRow";
        const GRID_ADD_ROW = "addRow";
        const GRID_SET_EXPANDED_ROWS = "setExpandedRows";
        const GRID_RESET_EXPANDED_ROWS = "resetExpandedRows";
        const GRID_SAVE_ROWS_SORT = "saveRowsSort";
        const GRID_SAVE_BATH = "saveBath";
        const GRID_SET_COLLAPSED_GROUPS = "setCollapsedGroups";
        const GRID_SET_STICKED_COLUMNS = "setStickedColumns";
        /**
         * Gets types list
         * @return array
         */
        public static function getList()
        {
        }
    }
}
namespace Bitrix\Main\Grid\Panel {
    /**
     * Class Actions
     * @package Bitrix\Main\Grid\Panel
     */
    class Actions
    {
        const CREATE = "CREATE";
        const SEND = "SEND";
        const ACTIVATE = "ACTIVATE";
        const SHOW = "SHOW";
        const HIDE = "HIDE";
        const REMOVE = "REMOVE";
        const CALLBACK = "CALLBACK";
        const INLINE_EDIT = "INLINE_EDIT";
        const HIDE_ALL_EXPECT = "HIDE_ALL_EXPECT";
        const SHOW_ALL = "SHOW_ALL";
        const RESET_CONTROLS = "RESET_CONTROLS";
        /**
         * Gets types list of actions
         * @return array
         */
        public static function getList()
        {
        }
    }
}
namespace Bitrix\Main\Grid\Panel\Snippet {
    /**
     * Control change actions
     * @package Bitrix\Main\Grid\Panel\Snippet
     */
    class Onchange
    {
        protected $actions;
        /**
         * Onchange constructor.
         * @param array $actions
         */
        public function __construct($actions = array())
        {
        }
        /**
         * Adds action
         * @param array $action
         */
        public function addAction($action = array())
        {
        }
        /**
         * @return array
         */
        public function toArray()
        {
        }
    }
    /**
     * Group action panel checkbox
     * @package Bitrix\Main\Grid\Panel\Snippet
     */
    class Checkbox
    {
        protected $id = "";
        protected $name = "";
        protected $class = "";
        protected $text = "";
        /**
         * @var Onchange
         */
        protected $onchange;
        protected $value = "";
        public function __construct()
        {
        }
        /**
         * Sets checkbox value
         * @param string $value
         * @return $this
         */
        public function setValue($value = "")
        {
        }
        /**
         * Sets checkbox id
         * @param string $id
         * @return $this
         */
        public function setId($id = "")
        {
        }
        /**
         * Sets checkbox name attribute value
         * @param string $name
         * @return $this
         */
        public function setName($name = "")
        {
        }
        /**
         * Sets checkbox class name
         * @param string $class
         * @return $this
         */
        public function setClass($class = "")
        {
        }
        /**
         * Sets checkbox label text
         * @param string $text
         * @return $this
         */
        public function setText($text = "")
        {
        }
        /**
         * Sets actions on checkbox change
         * @param Onchange $onchange
         * @return $this
         */
        public function setOnchange(\Bitrix\Main\Grid\Panel\Snippet\Onchange $onchange)
        {
        }
        /**
         * @return array
         */
        public function toArray()
        {
        }
    }
    /**
     * Button for group actions panel
     * @package Bitrix\Main\Grid\Panel\Snippet
     */
    class Button
    {
        protected $id = "";
        protected $name = "";
        protected $class = "";
        protected $text = "";
        /**
         * @var Onchange
         */
        protected $onchange;
        protected $title = "";
        public function __construct()
        {
        }
        /**
         * Sets button title
         * @param string $title
         * @return $this
         */
        public function setTitle($title = "")
        {
        }
        /**
         * Sets button id
         * @param string $id
         * @return $this
         */
        public function setId($id = "")
        {
        }
        /**
         * Sets button name attribute value
         * @param string $name
         * @return $this
         */
        public function setName($name = "")
        {
        }
        /**
         * Sets button class name
         * @param string $class
         * @return $this
         */
        public function setClass($class = "")
        {
        }
        /**
         * Sets button text
         * @param string $text
         * @return $this
         */
        public function setText($text = "")
        {
        }
        /**
         * Sets actions on button click
         * @param Onchange $onchange
         * @return $this
         */
        public function setOnchange(\Bitrix\Main\Grid\Panel\Snippet\Onchange $onchange)
        {
        }
        /**
         * @return array
         */
        public function toArray()
        {
        }
    }
}
namespace Bitrix\Main\Grid\Panel {
    /**
     * Group actions panel control types
     * @package Bitrix\Main\Grid\Panel
     */
    class Types
    {
        const DROPDOWN = "DROPDOWN";
        const CHECKBOX = "CHECKBOX";
        const TEXT = "TEXT";
        const BUTTON = "BUTTON";
        const LINK = "LINK";
        const CUSTOM = "CUSTOM";
        const HIDDEN = "HIDDEN";
        const DATE = "DATE";
        /**
         * Gets types list
         * @return array
         */
        public static function getList()
        {
        }
    }
    /**
     * Class DefaultValue
     * @package Bitrix\Main\Grid\Panel
     */
    class DefaultValue
    {
        const EDIT_BUTTON_ID = "grid_edit_button";
        const REMOVE_BUTTON_ID = "grid_remove_button";
        const SAVE_BUTTON_ID = "grid_save_button";
        const CANCEL_BUTTON_ID = "grid_cancel_button";
        const FOR_ALL_CHECKBOX_ID = "actallrows_";
        const FOR_ALL_CHECKBOX_NAME = "action_all_rows_";
        const FOR_ALL_CHECKBOX_VALUE = "Y";
        const FOR_ALL_CHECKBOX_CLASS = "main-grid-for-all-checkbox";
        const EDIT_BUTTON_CLASS = "icon edit";
        const REMOVE_BUTTON_CLASS = "icon remove";
        const SAVE_BUTTON_CLASS = "save";
        const CANCEL_BUTTON_CLASS = "cancel";
    }
    /**
     * Group actions panel snippets factory
     * @package Bitrix\Main\Grid\Panel
     */
    class Snippet
    {
        protected $applyButton;
        protected $saveButton;
        protected $cancelButton;
        protected $editButton;
        protected $removeButton;
        protected $saveAndCancelButtons;
        protected $forAllCheckbox;
        /**
         * Gets save button
         * @return array
         */
        public function getSaveEditButton()
        {
        }
        /**
         * Gets cancel button
         * @return array
         */
        public function getCancelEditButton()
        {
        }
        /**
         * Gets edit button
         * @return array
         */
        public function getEditButton()
        {
        }
        /**
         * Gets edit actions
         * @return array
         */
        public function getEditAction()
        {
        }
        /**
         * Gets remove button
         * @return array
         */
        public function getRemoveButton()
        {
        }
        /**
         * Gets remove acions
         * @return array
         */
        public function getRemoveAction()
        {
        }
        /**
         * Gets apply button
         * @param array $params
         * @return array
         */
        public function getApplyButton(array $params)
        {
        }
        /**
         * Gets for all checkbox
         * @return array
         */
        public function getForAllCheckbox()
        {
        }
        /**
         * Setup button onChange event handlers.
         * @param array $button Button params.
         * @param array $actions OnChange action params.
         */
        public function setButtonActions(array &$button, array $actions)
        {
        }
    }
}
namespace Bitrix\Main\Grid {
    /**
     * Class Context.
     * @package Bitrix\Main\Grid
     */
    class Context
    {
        /**
         * @return \Bitrix\Main\HttpRequest
         */
        protected static function getRequest()
        {
        }
        /**
         * Checks whether the request from grid
         * @return bool
         */
        public static function isInternalRequest()
        {
        }
        /**
         * Checks that this is validate action request
         * @return bool
         */
        public static function isValidateRequest()
        {
        }
        /**
         * Checks that this is edit action request
         *
         * @return bool
         */
        public static function isShowpageRequest()
        {
        }
    }
    /**
     * Class Options of main.ui.grid
     * @package Bitrix\Main\Grid
     */
    class Options extends \CGridOptions
    {
        /** @var string */
        protected $id;
        /**
         * Options constructor.
         *
         * @param $gridId $arParams["GRID_ID"]
         * @param array $filterPresets
         */
        public function __construct($gridId, array $filterPresets = array())
        {
        }
        /**
         * Gets grid id
         * @return string $arParams["GRID_ID"]
         */
        public function getId()
        {
        }
        /**
         * Gets $USER object
         * @return \CUser
         */
        protected static function getUser()
        {
        }
        /**
         * Sets width of grid columns
         * @param number $expand
         * @param array $sizes
         */
        public function setColumnsSizes($expand, $sizes)
        {
        }
        /**
         * Sets page size
         * @param int $size
         */
        public function setPageSize($size)
        {
        }
        /**
         * Sets custom names of grid columns
         * @param array $names
         */
        public function setCustomNames($names)
        {
        }
        /**
         * Resets saved expanded ids of rows
         */
        public function resetExpandedRows()
        {
        }
        /**
         * Sets ids of expanded rows
         * @param array [$ids = array()]
         */
        public function setExpandedRows($ids = array())
        {
        }
        /**
         * Gets ids of expanded rows
         * @return array|null
         */
        public function getExpandedRows()
        {
        }
        /**
         * Sets collapsed groups
         * @param array $ids
         */
        public function setCollapsedGroups($ids = array())
        {
        }
        /**
         * Gets ids of collapsed groups
         * @return ?array
         */
        public function getCollapsedGroups()
        {
        }
        /**
         * Resets view settings by view id
         * @param string $viewId
         */
        public function resetView($viewId)
        {
        }
        /**
         * Deletes view settings by view id
         * @param string $viewId
         */
        public function deleteView($viewId)
        {
        }
        /**
         * @return array
         */
        public function getCurrentOptions()
        {
        }
        /**
         * @return array
         */
        private static function getDefaultGetSortingResult()
        {
        }
        /**
         * Gets current grid sorting
         * @param array [$default = array()] - Default value
         * @return array
         */
        public function getSorting($default = array())
        {
        }
        /**
         * Gets current user id
         * @return int
         */
        protected static function getUserId()
        {
        }
        /**
         * Checks that current user is authorized
         * @return bool
         */
        protected static function isAuthorized()
        {
        }
        /**
         * Saves all options
         */
        public function save()
        {
        }
        /**
         * Gets used columns
         * @param array $defaultColumns
         * @return array
         */
        public function getUsedColumns($defaultColumns = array())
        {
        }
        /**
         * Sets sticked columns
         * @param string[] $columns
         */
        public function setStickedColumns($columns = [])
        {
        }
        /**
         * Gets sticked columns
         * @return string[]|null
         */
        public function getStickedColumns()
        {
        }
    }
    /**
     * Class Types. Column data types
     * @package Bitrix\Main\Grid
     */
    class Types
    {
        const GRID_CHECKBOX = "checkbox";
        const GRID_TEXT = "text";
        const GRID_INT = "int";
        const GRID_CUSTOM = "custom";
        const GRID_LIST = "list";
        const GRID_GRID = "grid";
        /**
         * Gets types list
         * @return array
         */
        public static function getList()
        {
        }
    }
    /**
     * Class Declension
     * @package Bitrix\Main\Grid
     */
    class Declension
    {
        /**
         * @var string
         */
        public $oneItem;
        /**
         * @var string
         */
        public $fourItem;
        /**
         * @var string
         */
        public $fiveItem;
        /**
         * Declension constructor.
         *
         * @param string $one
         * @param string $four
         * @param string $five
         */
        public function __construct($one = "", $four = "", $five = "")
        {
        }
        /**
         * Gets declension
         * @param number|string $number
         * @return string
         */
        public function get($number)
        {
        }
    }
    /**
     * Class MessageType. Types of grid message
     * @package Bitrix\Main\Grid
     */
    class MessageType
    {
        const MESSAGE = "MESSAGE";
        const ERROR = "ERROR";
        const WARNING = "WARNING";
        const INFO = "INFO";
        const SUCCESS = "SUCCESS";
        /**
         * Gets types list
         * @return array
         */
        public static function getList()
        {
        }
    }
}
namespace Bitrix\Main\Grid\Editor {
    /**
     * Class Types. Inline editor field types
     * @package Bitrix\Main\Grid\Editor
     */
    class Types
    {
        const DROPDOWN = "DROPDOWN";
        const CHECKBOX = "CHECKBOX";
        const TEXT = "TEXT";
        const DATE = "DATE";
        const NUMBER = "NUMBER";
        const RANGE = "RANGE";
        const TEXTAREA = "TEXTAREA";
        const CUSTOM = "CUSTOM";
        const IMAGE = "IMAGE";
        const MONEY = "MONEY";
        /**
         * Gets types list
         * @return array
         */
        public static function getList()
        {
        }
    }
}
namespace Bitrix\Main\Session {
    interface SessionInterface
    {
        public function start();
        public function destroy();
        public function getId();
        public function setId($id);
        public function regenerateId() : bool;
        public function getName();
        public function setName($name);
        public function save();
        public function has($name);
        public function get($name);
        public function set($name, $value);
        public function remove($name);
        public function clear();
        public function isStarted();
    }
    trait ArrayAccessWithReferences
    {
        /** @var array */
        protected $sessionData = [];
        /** @var array */
        protected $nullPointers = [];
        /** @var bool */
        protected $strictMode = false;
        public function has($name)
        {
        }
        public function &get($name)
        {
        }
        public function set($name, $value)
        {
        }
        public function remove($name)
        {
        }
        public function delete($name)
        {
        }
        public function offsetExists($offset)
        {
        }
        public function &offsetGet($offset)
        {
        }
        public function offsetSet($offset, $value)
        {
        }
        public function offsetUnset($offset)
        {
        }
        public function refineReferencesBeforeSave() : void
        {
        }
        protected function processLazyStart()
        {
        }
    }
    class KernelSession implements \Bitrix\Main\Session\SessionInterface, \ArrayAccess
    {
        use \Bitrix\Main\Session\ArrayAccessWithReferences;
        private const COOKIE_NAME = 'kernel';
        /** @var bool */
        protected $started;
        /** @var \SessionHandlerInterface */
        protected $sessionHandler;
        /** @var int */
        private $lifetime = 0;
        /** @var string */
        private $id;
        /** @var string */
        private $hash;
        public function __construct(int $lifetime = 0)
        {
        }
        public function isActive() : bool
        {
        }
        public function getId() : string
        {
        }
        public function setId($id)
        {
        }
        public function getName() : string
        {
        }
        public function setName($name)
        {
        }
        /**
         * @return \SessionHandlerInterface|CookieSessionHandler
         */
        public function getSessionHandler() : \SessionHandlerInterface
        {
        }
        protected final function hashData(string $data) : string
        {
        }
        public function start() : bool
        {
        }
        public function regenerateId() : bool
        {
        }
        public function destroy()
        {
        }
        public function save()
        {
        }
        public function clear()
        {
        }
        public function isStarted()
        {
        }
    }
    final class KernelSessionProxy extends \Bitrix\Main\Session\KernelSession
    {
        /** @var Session */
        protected $session;
        public function __construct(\Bitrix\Main\Session\Session $session)
        {
        }
        public function isActive() : bool
        {
        }
        public function getId() : string
        {
        }
        public function setId($id)
        {
        }
        public function getName() : string
        {
        }
        public function setName($name)
        {
        }
        public function start() : bool
        {
        }
        public function regenerateId() : bool
        {
        }
        public function destroy()
        {
        }
        public function save()
        {
        }
        public function has($name)
        {
        }
        public function &get($name)
        {
        }
        public function set($name, $value)
        {
        }
        public function remove($name)
        {
        }
        public function delete($name)
        {
        }
        public function clear()
        {
        }
        public function isStarted()
        {
        }
        public function offsetExists($offset)
        {
        }
        public function offsetSet($offset, $value)
        {
        }
    }
    final class SessionConfigurationResolver
    {
        private const MODE_DEFAULT = 'default';
        private const MODE_SEPARATED = 'separated';
        private const TYPE_FILE = 'file';
        private const TYPE_DATABASE = 'database';
        private const TYPE_REDIS = 'redis';
        private const TYPE_MEMCACHE = 'memcache';
        private const TYPE_ARRAY = 'array';
        private const TYPE_NULL = 'null';
        private const TYPE_CUSTOM_INI = 'save_handler.php.ini';
        /** @var Configuration */
        private $configuration;
        private $sessionConfig;
        /** @var Session */
        private $session;
        /** @var KernelSession */
        private $kernelSession;
        public function __construct(\Bitrix\Main\Config\Configuration $configuration)
        {
        }
        public function resolve() : void
        {
        }
        private function getSessionConfig() : array
        {
        }
        private function buildSessionHandlerByOptions(string $type, array $options = [])
        {
        }
        private function normalizeSessionOptions($options) : array
        {
        }
        public function getSession() : \Bitrix\Main\Session\SessionInterface
        {
        }
        public function getKernelSession() : \Bitrix\Main\Session\SessionInterface
        {
        }
        public function getConfiguration() : \Bitrix\Main\Config\Configuration
        {
        }
    }
    class Session implements \Bitrix\Main\Session\SessionInterface, \ArrayAccess
    {
        use \Bitrix\Main\Session\ArrayAccessWithReferences;
        /** @var bool */
        protected $started = false;
        /** @var \SessionHandlerInterface|null */
        protected $sessionHandler;
        /** @var bool */
        protected $lazyStartEnabled = false;
        /** @var bool */
        protected $debug = false;
        /** @var Debugger */
        protected $debugger;
        /**
         * Session constructor.
         */
        public function __construct(\SessionHandlerInterface $sessionHandler = null)
        {
        }
        public function enableLazyStart() : self
        {
        }
        public function disableLazyStart() : self
        {
        }
        public function enableDebug() : self
        {
        }
        public function disableDebug() : self
        {
        }
        public function isActive() : bool
        {
        }
        public function getId() : string
        {
        }
        public function setId($id)
        {
        }
        public function getName() : string
        {
        }
        public function setName($name)
        {
        }
        public function start() : bool
        {
        }
        public function regenerateId() : bool
        {
        }
        public function destroy()
        {
        }
        public function save()
        {
        }
        protected function processLazyStart()
        {
        }
        public function clear()
        {
        }
        public function isStarted()
        {
        }
        /**
         * @return Debugger
         */
        public function getDebugger() : \Bitrix\Main\Session\Debugger
        {
        }
        private function debug(string $text) : void
        {
        }
        private function detectFirstUsage() : void
        {
        }
    }
}
namespace Bitrix\Main\Session\Legacy {
    final class LazySessionStart implements \ArrayAccess
    {
        private static $instance;
        public static function register()
        {
        }
        protected function start()
        {
        }
        public function offsetExists($offset)
        {
        }
        public function &offsetGet($offset)
        {
        }
        public function offsetSet($offset, $value)
        {
        }
        public function offsetUnset($offset)
        {
        }
    }
    final class HealerEarlySessionStart
    {
        public function process(\Bitrix\Main\Session\SessionInterface $kernelSession)
        {
        }
    }
}
namespace Bitrix\Main\Session {
    final class Debugger
    {
        public const TO_FILE = 0b1;
        public const TO_HEADER = 0b10;
        public const TO_ALL = self::TO_FILE | self::TO_HEADER;
        protected $mode = 0;
        /** @var array */
        private $config = [];
        public function __construct(int $mode = 0)
        {
        }
        public function setMode(int $mode) : void
        {
        }
        public function logConfiguration(array $config) : void
        {
        }
        public function detectFirstUsage() : void
        {
        }
        public function logToFile($text)
        {
        }
        protected function addHeader(string $category, $value) : void
        {
        }
        public function storeConfig(array $sessionConfig) : void
        {
        }
    }
    final class CompositeSessionManager
    {
        /**	@var SessionInterface */
        private $kernelSession;
        /**	@var SessionInterface */
        private $session;
        /**
         * CompositeSessionManager constructor.
         * @param SessionInterface $kernelSession
         * @param SessionInterface $session
         */
        public function __construct(\Bitrix\Main\Session\SessionInterface $kernelSession, \Bitrix\Main\Session\SessionInterface $session)
        {
        }
        public function start() : void
        {
        }
        public function destroy() : void
        {
        }
        public function clear() : void
        {
        }
        public function regenerateId() : void
        {
        }
    }
}
namespace Bitrix\Main\Session\Handlers {
    abstract class AbstractSessionHandler implements \SessionHandlerInterface, \SessionUpdateTimestampHandlerInterface, \SessionIdInterface
    {
        /** @var bool */
        protected $readOnly = false;
        /** @var string */
        protected $sessionId;
        /** @var string */
        private $prefetchId;
        /** @var string */
        private $prefetchData;
        /** @var string */
        private $lastCreatedId;
        /** @var array */
        private $listValidatedIds = [];
        /**
         * @return string
         */
        public function read($sessionId)
        {
        }
        protected abstract function processRead($sessionId) : string;
        protected function triggerLockFatalError(string $text) : void
        {
        }
        public function write($sessionId, $sessionData)
        {
        }
        protected abstract function processWrite($sessionId, $sessionData) : bool;
        protected abstract function lock($sessionId) : bool;
        protected abstract function unlock($sessionId) : bool;
        private function releaseLocksAfterValidate() : void
        {
        }
        public function close()
        {
        }
        public function destroy($sessionId)
        {
        }
        protected abstract function processDestroy($sessionId) : bool;
        public function validateId($sessionId)
        {
        }
        public function create_sid()
        {
        }
        protected function validateSessionId(string $sessionId) : bool
        {
        }
    }
    class NullSessionHandler extends \Bitrix\Main\Session\Handlers\AbstractSessionHandler
    {
        public function gc($maxLifeTime)
        {
        }
        public function open($savePath, $sessionName)
        {
        }
        public function updateTimestamp($sessionId, $sessionData)
        {
        }
        protected function processRead($sessionId) : string
        {
        }
        protected function processWrite($sessionId, $sessionData) : bool
        {
        }
        protected function lock($sessionId) : bool
        {
        }
        protected function unlock($sessionId) : bool
        {
        }
        protected function processDestroy($sessionId) : bool
        {
        }
    }
    class DatabaseSessionHandler extends \Bitrix\Main\Session\Handlers\AbstractSessionHandler
    {
        public function __construct(array $options)
        {
        }
        public function open($savePath, $sessionName)
        {
        }
        public function processRead($sessionId) : string
        {
        }
        public function processWrite($sessionId, $sessionData) : bool
        {
        }
        protected function lock($sessionId) : bool
        {
        }
        protected function unlock($sessionId) : bool
        {
        }
        protected function processDestroy($sessionId) : bool
        {
        }
        /**
         * @param int $maxLifeTime
         * @return bool
         */
        public function gc($maxLifeTime)
        {
        }
        public function updateTimestamp($sessionId, $sessionData)
        {
        }
    }
    class NativeFileSessionHandler extends \SessionHandler
    {
        public function __construct(array $options)
        {
        }
    }
    class CookieSessionHandler implements \SessionHandlerInterface
    {
        /** @var \Bitrix\Main\Request  */
        private $request;
        /** @var \Bitrix\Main\HttpResponse */
        private $response;
        /** @var int */
        private $lifetime;
        public function __construct(int $lifetime, \Bitrix\Main\Request $request = null)
        {
        }
        public function close()
        {
        }
        public function destroy($sessionId)
        {
        }
        public function gc($maxlifetime)
        {
        }
        public function open($savePath, $name)
        {
        }
        public function read($sessionId)
        {
        }
        public function write($sessionId, $sessionData)
        {
        }
        /**
         * @return \Bitrix\Main\HttpResponse
         */
        public function getResponse() : \Bitrix\Main\HttpResponse
        {
        }
        /**
         * @param \Bitrix\Main\HttpResponse $response
         * @return $this
         */
        public function setResponse($response)
        {
        }
    }
    class MemcacheSessionHandler extends \Bitrix\Main\Session\Handlers\AbstractSessionHandler
    {
        public const SESSION_MEMCACHE_CONNECTION = 'session.memcache';
        /** @var \Memcache $connection */
        protected $connection;
        /** @var string */
        protected $prefix;
        /** @var bool */
        protected $exclusiveLock;
        public function __construct(array $options)
        {
        }
        public function open($savePath, $sessionName)
        {
        }
        public function close()
        {
        }
        public function processRead($sessionId) : string
        {
        }
        public function processWrite($sessionId, $sessionData) : bool
        {
        }
        public function processDestroy($sessionId) : bool
        {
        }
        public function gc($maxLifeTime)
        {
        }
        protected function isConnected() : bool
        {
        }
        protected function getPrefix() : string
        {
        }
        protected function createConnection() : bool
        {
        }
        protected function closeConnection() : void
        {
        }
        public function updateTimestamp($sessionId, $sessionData)
        {
        }
        protected function lock($sessionId) : bool
        {
        }
        protected function unlock($sessionId) : bool
        {
        }
    }
    class RedisSessionHandler extends \Bitrix\Main\Session\Handlers\AbstractSessionHandler
    {
        public const SESSION_REDIS_CONNECTION = 'session.redis';
        /** @var \Redis $connection */
        protected $connection;
        /** @var string */
        protected $prefix;
        /** @var bool */
        protected $exclusiveLock;
        public function __construct(array $options)
        {
        }
        public function open($savePath, $sessionName)
        {
        }
        public function close()
        {
        }
        public function processRead($sessionId) : string
        {
        }
        public function processWrite($sessionId, $sessionData) : bool
        {
        }
        public function processDestroy($sessionId) : bool
        {
        }
        public function gc($maxLifeTime)
        {
        }
        protected function isConnected() : bool
        {
        }
        protected function getPrefix() : string
        {
        }
        protected function createConnection() : bool
        {
        }
        protected function closeConnection() : void
        {
        }
        public function updateTimestamp($sessionId, $sessionData)
        {
        }
        protected function lock($sessionId) : bool
        {
        }
        protected function unlock($sessionId) : bool
        {
        }
    }
    class StrictSessionHandler extends \Bitrix\Main\Session\Handlers\AbstractSessionHandler
    {
        /** @var NativeFileSessionHandler */
        private $handler;
        public function __construct(\Bitrix\Main\Session\Handlers\NativeFileSessionHandler $handler)
        {
        }
        public function gc($maxLifeTime)
        {
        }
        public function open($savePath, $sessionName)
        {
        }
        public function updateTimestamp($sessionId, $sessionData)
        {
        }
        protected function processRead($sessionId) : string
        {
        }
        protected function processWrite($sessionId, $sessionData) : bool
        {
        }
        protected function lock($sessionId) : bool
        {
        }
        protected function unlock($sessionId) : bool
        {
        }
        protected function processDestroy($sessionId) : bool
        {
        }
        public function close()
        {
        }
    }
}
namespace {
    class CMainAdmin
    {
        public static function GetTemplateList($rel_dir)
        {
        }
    }
    class CTemplates
    {
        public static function GetList($arFilter = array(), $arCurrentValues = array(), $template_id = array())
        {
        }
        public static function GetByID($id, $arCurrentValues = array(), $templateID = array())
        {
        }
        public static function __FindTemplates($root, &$arTemplates, $arCurrentValues = array(), $init = "")
        {
        }
        public static function GetFolderList($template_id = \false)
        {
        }
    }
    class CPageTemplate
    {
        public static function GetList($arSiteTemplates = array())
        {
        }
        public static function GetDescription()
        {
        }
        public static function _templ_sort($a, $b)
        {
        }
        public static function GetTemplate($template, $arSiteTemplates = array())
        {
        }
        public static function IncludeLangFile($filepath)
        {
        }
    }
    class _FilesCmp
    {
        public static function cmp_size_asc($a, $b)
        {
        }
        public static function cmp_size_desc($a, $b)
        {
        }
        public static function cmp_timestamp_asc($a, $b)
        {
        }
        public static function cmp_timestamp_desc($a, $b)
        {
        }
        public static function cmp_name_asc($a, $b)
        {
        }
        public static function cmp_name_desc($a, $b)
        {
        }
        public static function cmp_name_nat_asc($a, $b)
        {
        }
        public static function cmp_name_nat_desc($a, $b)
        {
        }
    }
    class seo extends \CModule
    {
        var $MODULE_ID = "seo";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_GROUP_RIGHTS = "Y";
        function seo()
        {
        }
        function DoInstall()
        {
        }
        function InstallDB()
        {
        }
        function InstallFiles()
        {
        }
        function InstallEvents()
        {
        }
        function DoUninstall()
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function UnInstallFiles($arParams = array())
        {
        }
        function UnInstallEvents()
        {
        }
        function GetModuleRightList()
        {
        }
        /**
         * Method for migrate from cloud version.
         * @return void
         * @throws \Bitrix\Main\LoaderException
         */
        public function migrateToBox() : void
        {
        }
    }
    class SeoAdsRetargetingComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function listKeysSignedParameters()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function onPrepareComponentParams($arParams)
        {
        }
        protected function checkAccess()
        {
        }
        protected function prepareAjaxAnswer(array $data)
        {
        }
        public function configureActions()
        {
        }
        public function getAccountsAction($type, $clientId = \null)
        {
        }
        public function getProviderAction($type, $clientId = \null)
        {
        }
        public function logoutAction($type, $clientId = \null, $logoutClientId = \null)
        {
        }
        public function getAudiencesAction($type, $clientId = \null, $accountId = \null)
        {
        }
        public function addAudienceAction($type, $name = \null, $clientId = \null, $accountId = \null)
        {
        }
        public function getRegionsAction($type, $clientId = \null)
        {
        }
        protected static function getAdsProvider($adsType, $clientId = \null)
        {
        }
    }
    class CSeoEventHandlers
    {
        function SeoOnPanelCreate()
        {
        }
        public static function OnIncludeHTMLEditorScript()
        {
        }
        public static function OnBeforeHTMLEditorScriptRuns()
        {
        }
    }
    class CSeoPageChecker
    {
        var $__site;
        var $__url;
        var $__lang;
        var $__server_name;
        var $__bCheckErrors = \true;
        var $__getter;
        var $__result_headers;
        var $__result_data;
        var $__result_extended = array();
        var $__result_meta = array('KEYWORDS' => '', 'DESCRIPTION' => '');
        var $__result_errors = array();
        var $__index;
        var $__index_total_len;
        var $pcre_backtrack_limit = \false;
        var $__qualifier_links_count = 100;
        var $bError = \false;
        var $errorString = '';
        var $bSearch = \false;
        function CSeoPageChecker($site, $url, $get = \true, $check_errors = \true)
        {
        }
        function GetHTTPData()
        {
        }
        function __prepareText($text)
        {
        }
        function _PrepareData()
        {
        }
        function _GetContrast($word)
        {
        }
        function GetStatistics()
        {
        }
        function GetURL()
        {
        }
        function CheckKeyword($keyword, $bStemmed = \false)
        {
        }
        function GetExtendedData()
        {
        }
        function GetErrors()
        {
        }
        function IsOuterUrl($url)
        {
        }
    }
    class CSeoUtils
    {
        public static function CleanURL($URL)
        {
        }
        public static function getDomainsList()
        {
        }
        public static function getDirStructure($bLogical, $site, $path)
        {
        }
    }
    class CSeoKeywords
    {
        function GetList($arOrder, $arFilter)
        {
        }
        function CheckFields($ACTION, &$arFields)
        {
        }
        function Add($arFields)
        {
        }
        function Update($arFields)
        {
        }
        function GetByURL($URL, $SITE_ID = \false, $bPart = \false, $bCleanUrl = \false)
        {
        }
    }
}
namespace Bitrix\Seo\WebHook {
    /**
     * Class Service
     * @package Bitrix\Seo\WebHook
     */
    class Service
    {
        const ANSWER_ERROR_SYSTEM = '001';
        const ANSWER_ERROR_NO_CODE = '002';
        const ANSWER_ERROR_NO_EXT_ID = '003';
        const ANSWER_ERROR_NO_PAYLOAD = '004';
        const ANSWER_ERROR_NO_SEC_CODE = '005';
        const ANSWER_ERROR_WRONG_SEC_CODE = '006';
        /** @var  ErrorCollection $errorCollection Error collection. */
        protected $errorCollection;
        protected $type;
        protected $externalId;
        /** @var Payload\Batch $payload Payload instance. */
        protected $payload;
        protected $errors = array();
        protected $data = null;
        /**
         * Create instance.
         *
         * @param string $type Type.
         * @param string $externalId External ID.
         * @return static
         */
        public static function create($type, $externalId)
        {
        }
        /**
         * Service constructor.
         *
         * @param string $type Type.
         * @param string $externalId External ID.
         */
        public function __construct($type, $externalId)
        {
        }
        protected static function answer(array $answer)
        {
        }
        protected static function answerError($code = null, $text = null)
        {
        }
        protected static function answerData(array $data = array())
        {
        }
        /**
         * Listen web hooks.
         *
         * @return void
         */
        public static function listen()
        {
        }
        /**
         * Handle web hook.
         *
         * @param Payload\Batch $payload Payload instance.
         * @return $this
         */
        public function handle(\Bitrix\Seo\WebHook\Payload\Batch $payload)
        {
        }
        /**
         * Register web hook.
         *
         * @param array $parameters Parameters.
         * @return bool
         */
        public function register(array $parameters = [])
        {
        }
        /**
         * Remove web hook.
         *
         * @return bool
         */
        public function remove()
        {
        }
        protected static function getData($type, $externalId)
        {
        }
        protected static function queryHookRegister($methodName, array $parameters)
        {
        }
        /**
         * Check security code.
         *
         * @param string $securityCode Code.
         * @return bool
         */
        public function checkSecurityCode($securityCode)
        {
        }
        /**
         * Get error collection.
         *
         * @return ErrorCollection
         */
        public function getErrorCollection()
        {
        }
        protected function sendEvent()
        {
        }
    }
}
namespace Bitrix\Seo\WebHook\Payload {
    /**
     * Class Payload
     *
     * @package Bitrix\Seo\WebHook\Payload
     */
    class Batch
    {
        /** @var Item[] $items Items.  */
        protected $items = [];
        /** @var  string $requestId Request ID. */
        protected $requestId;
        /** @var  string $source Source. */
        protected $source;
        /** @var  string $code Code. */
        protected $code;
        /** @var  string $externalId External ID. */
        protected $externalId;
        /**
         * Set lead items array.
         *
         * @param array $items Items.
         * @return $this
         */
        public function setLeadItemsArray(array $items)
        {
        }
        /**
         * Set array.
         *
         * @param array $data
         * @return $this
         */
        public function setArray(array $data)
        {
        }
        public function getArray()
        {
        }
        /**
         * Get item instances.
         *
         * @return Item[]|LeadItem[]
         */
        public function getItems()
        {
        }
        /**
         * Add item.
         *
         * @param Item $item Item instance.
         * @return $this
         */
        public function addItem(\Bitrix\Seo\WebHook\Payload\Item $item)
        {
        }
        /**
         * Get request ID.
         *
         * @return string
         */
        public function getRequestId()
        {
        }
        /**
         * Set request ID.
         *
         * @param string $requestId Request ID.
         * @return $this
         */
        public function setRequestId($requestId)
        {
        }
        /**
         * Get source.
         *
         * @return string
         */
        public function getSource()
        {
        }
        /**
         * Set request ID.
         *
         * @param string $source Source.
         * @return $this
         */
        public function setSource($source)
        {
        }
        /**
         * Get code.
         *
         * @return string
         */
        public function getCode()
        {
        }
        /**
         * Set code.
         *
         * @param string $code Code.
         * @return $this
         */
        public function setCode($code)
        {
        }
        /**
         * Get external ID.
         *
         * @return string
         */
        public function getExternalId()
        {
        }
        /**
         * Set external ID.
         *
         * @param string $externalId External ID.
         * @return $this
         */
        public function setExternalId($externalId)
        {
        }
    }
    /**
     * Class Item
     *
     * @package Bitrix\Seo\WebHook\Payload
     */
    abstract class Item
    {
        /** @var  array $data Data. */
        protected $data = ['source' => null];
        /**
         * Item constructor.
         *
         * @param array $data Data.
         */
        public function __construct(array $data)
        {
        }
        /**
         * Get data.
         *
         * @return array
         */
        public function getData()
        {
        }
        /**
         * Set data.
         *
         * @param array $data Data.
         * @return $this
         */
        public function setData(array $data)
        {
        }
        /**
         * Get source.
         *
         * @return string
         * @throws ArgumentException
         */
        public function get($key)
        {
        }
        /**
         * Set source.
         *
         * @param string $key Key.
         * @param string|array $value Value
         * @return $this
         * @throws ArgumentException
         */
        public function set($key, $value)
        {
        }
        /**
         * Magic method __call.
         *
         * @param string $name Name.
         * @param array $arguments Arguments.
         * @return mixed
         * @throws ArgumentException
         */
        public function __call($name, $arguments)
        {
        }
    }
    /**
     * Class LeadItem
     *
     * @package Bitrix\Seo\WebHook\Payload
     *
     * @method string getLeadId()
     * @method $this setLeadId(string $leadId)
     * @method string getGroupId()
     * @method $this setGroupId(string $groupId)
     * @method string getUserId()
     * @method $this setUserId(string $userId)
     * @method string getFormId()
     * @method $this setFormId(string $formId)
     * @method array getAnswers()
     * @method $this setAnswers(array $answers)
     */
    class LeadItem extends \Bitrix\Seo\WebHook\Payload\Item
    {
        /** @var  array $data Data. */
        protected $data = ['leadId' => null, 'groupId' => null, 'userId' => null, 'formId' => null, 'answers' => [], 'source' => null];
        /**
         * Set answers.
         *
         * @param string $key Key.
         * @param array $values Values.
         * @return $this
         */
        public function addAnswer($key, array $values)
        {
        }
    }
}
namespace Bitrix\Seo\WebHook\Internals {
    class WebHookTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Seo {
    interface IEngine
    {
        public function getCode();
        public function getInterface();
        public function getAuthSettings();
        public function setAuthSettings($settings);
    }
    class Engine
    {
        const HTTP_STATUS_OK = 200;
        const HTTP_STATUS_CREATED = 201;
        const HTTP_STATUS_NO_CONTENT = 204;
        const HTTP_STATUS_AUTHORIZATION = 401;
        protected $engineId = 'unknown engine';
        protected $engine = null;
        protected $engineSettings = array();
        protected $authInterface = null;
        public function __construct()
        {
        }
        public function getId()
        {
        }
        public function getCode()
        {
        }
        public function getSettings()
        {
        }
        public function getClientId()
        {
        }
        public function getClientSecret()
        {
        }
        public function getAuthSettings()
        {
        }
        public function clearAuthSettings()
        {
        }
        protected function saveSettings()
        {
        }
        protected static function getEngine($engineId)
        {
        }
    }
    /**
     * Class AdvSession
     *
     * Events handler for managing users came from yandex.direct ad
     *
     * @package Bitrix\Seo
     **/
    class AdvSession
    {
        const URL_PARAM_CAMPAIGN = 'bxydcampaign';
        const URL_PARAM_CAMPAIGN_VALUE = '{campaign_id}';
        const URL_PARAM_BANNER = 'bxydbanner';
        const URL_PARAM_BANNER_VALUE = '{banner_id}';
        protected static $orderHandlerCalled = array();
        public static function checkSession()
        {
        }
        public static function isSession()
        {
        }
        public static function getSession()
        {
        }
        public static function onOrderSave($orderId, $orderFields, $orderData, $isNew)
        {
        }
        public static function onBasketOrder($orderId)
        {
        }
        public static function onSalePayOrder($orderId, $val)
        {
        }
        public static function onSaleDeductOrder($orderId, $val)
        {
        }
        public static function onSaleDeliveryOrder($orderId, $val)
        {
        }
        public static function onSaleStatusOrder($orderId, $status)
        {
        }
        protected static function checkSessionOrder($orderId)
        {
        }
        protected static function countSessionOrder($orderId)
        {
        }
        protected static function getBannerLinkedProducts($bannerId)
        {
        }
        // TODO: remove all this math when /sale_refactoring_mince releases
        protected static function getProductProfit($productInfo)
        {
        }
    }
    class RobotsFile extends \Bitrix\Main\IO\File
    {
        const ROBOTS_FILE_NAME = 'robots.txt';
        const SECTION_RULE = 'User-Agent';
        const SITEMAP_RULE = 'Sitemap';
        /**
         * Standard robots.txt rules tell us that at least one Disallow instruction should be put in robots.txt for its correct interpretation. But Yandex interprets empty Disallow rule as total allowance and skips all further Disallow rules.
         *
         * @deprecated
         */
        const EMPTY_DISALLOW_RULE = 'Disallow: # empty Disallow instruction SHOULD be there';
        protected $siteId = '';
        protected $documentRoot;
        protected $robotsFile = null;
        protected $contents = array();
        protected $bLoaded = false;
        public function __construct($siteId)
        {
        }
        public function addRule($rule, $section = '*', $bCheckUnique = true)
        {
        }
        public function getRuleText($rule)
        {
        }
        public function parseRule($strRule)
        {
        }
        public function getRules($rule, $section = '*')
        {
        }
        protected function getSection($section)
        {
        }
        protected function addSectionRule($section, $rule)
        {
        }
        protected function load()
        {
        }
        protected function save()
        {
        }
    }
    class ConversionHandler
    {
        public static function onSetDayContextAttributes(\Bitrix\Conversion\DayContext $context)
        {
        }
        protected static function getSeoId()
        {
        }
        public static function onGetAttributeTypes()
        {
        }
    }
}
namespace Bitrix\Seo\Update {
    class YandexDirectCampaign
    {
        /**
         * Agent for updating settings field in Yandex direct campaign table. Just once
         *
         * @return void
         * @throws \Bitrix\Main\LoaderException
         */
        public static function updateSettingsAgent()
        {
        }
        protected static function clearData()
        {
        }
    }
}
namespace Bitrix\Seo {
    class SearchEngineTable extends \Bitrix\Main\Entity\DataManager
    {
        const INACTIVE = 'N';
        const ACTIVE = 'Y';
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function getByCode($code)
        {
        }
    }
    /**
     * Temporary data structure
     * Class SitemapRuntimeTable
     * @package Bitrix\Seo
     */
    class SitemapRuntimeTable extends \Bitrix\Main\Entity\DataManager
    {
        const ACTIVE = 'Y';
        const INACTIVE = 'N';
        const ITEM_TYPE_DIR = 'D';
        const ITEM_TYPE_FILE = 'F';
        const ITEM_TYPE_IBLOCK = 'I';
        const ITEM_TYPE_SECTION = 'S';
        const ITEM_TYPE_ELEMENT = 'E';
        const ITEM_TYPE_FORUM = 'G';
        const ITEM_TYPE_TOPIC = 'T';
        const PROCESSED = 'Y';
        const UNPROCESSED = 'N';
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function clearByPid($PID)
        {
        }
    }
    /**
     * Base class for sitemapfile
     * Class SitemapFile
     * @package Bitrix\Seo
     */
    class SitemapFile extends \Bitrix\Main\IO\File
    {
        const XML_HEADER = '<?xml version="1.0" encoding="UTF-8"?>';
        const FILE_HEADER = '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
        const FILE_FOOTER = '</urlset>';
        const ENTRY_TPL = '<url><loc>%s</loc><lastmod>%s</lastmod></url>';
        const ENTRY_TPL_SEARCH = '<url><loc>%s</loc>';
        const XPATH_URL = '/urlset/url';
        const MAX_SIZE = 5000000;
        const FILE_EXT = '.xml';
        const FILE_PART_SUFFIX = '.part';
        protected $documentRoot;
        protected $settings = array();
        protected $parser = false;
        protected $siteRoot = '';
        protected $partFile = '';
        protected $partList = array();
        protected $part = 0;
        protected $partChanged = false;
        protected $footerClosed = false;
        protected $urlToSearch = '';
        protected $urlFound = false;
        public function __construct($fileName, $settings)
        {
        }
        protected function prepareFileName($fileName)
        {
        }
        /**
         * Reinitializes current object with new file name.
         *
         * @param string $fileName New file name.
         */
        protected function reInit($fileName)
        {
        }
        /**
         * Adds header to the current sitemap file.
         *
         * @return void
         */
        public function addHeader()
        {
        }
        /**
         * Checks is it needed to create new part of sitemap file
         *
         * @return bool
         * @throws \Bitrix\Main\IO\FileNotFoundException
         */
        protected function isSplitNeeded()
        {
        }
        /**
         * Adds new entry to the current sitemap file
         *
         * Entry array keys
         * XML_LOC - loc field value
         * XML_LASTMOD - lastmod field value
         *
         * @param array $entry Entry array.
         *
         * @return void
         */
        public function addEntry($entry)
        {
        }
        /**
         * Creates next sitemap file part. Returns new part file name.
         *
         * @return string
         */
        public function split()
        {
        }
        /**
         * Returns list of file parts.
         *
         * @return array
         */
        public function getNameList()
        {
        }
        /**
         * Divide path to directory and filemname
         * @return array
         */
        public function getPathDirectory()
        {
        }
        /**
         * Returns if the whole sitemap is empty (not only current part).
         *
         * @return bool
         */
        public function isNotEmpty()
        {
        }
        /**
         * Returns if current sitemap part contains something besides header.
         *
         * @return bool
         */
        public function isCurrentPartNotEmpty()
        {
        }
        /**
         * Appends new entry to the existing and finished sitemap file
         *
         * Entry array keys
         * XML_LOC - loc field value
         * XML_LASTMOD - lastmod field value
         *
         * @param array $entry Entry array.
         *
         * @return void
         */
        public function appendEntry($entry)
        {
        }
        /**
         * Searches and removes entry to the existing and finished sitemap file
         *
         * Entry array keys
         * XML_LOC - loc field value
         * XML_LASTMOD - lastmod field value
         *
         * @param string $url Entry URL.
         *
         * @return string
         */
        public function removeEntry($url)
        {
        }
        /**
         * Adds new file entry to the current sitemap
         *
         * @param File $f File to add.
         *
         * @return void
         * @throws \Bitrix\Main\IO\FileNotFoundException
         */
        public function addFileEntry(\Bitrix\Main\IO\File $f)
        {
        }
        /**
         * Adds new IBlock entry to the current sitemap
         *
         * @param string $url IBlock entry URL.
         * @param string $modifiedDate IBlock entry modify timestamp.
         *
         * @return void
         */
        public function addIBlockEntry($url, $modifiedDate)
        {
        }
        /**
         * Appends new IBlock entry to the existing finished sitemap
         *
         * @param string $url IBlock entry URL.
         * @param string $modifiedDate IBlock entry modify timestamp.
         *
         * @return void
         */
        public function appendIBlockEntry($url, $modifiedDate)
        {
        }
        /**
         * Adds footer to the current sitemap part
         *
         * @return void
         */
        public function addFooter()
        {
        }
        /**
         * Returns sitemap site root
         *
         * @return mixed|string
         */
        public function getSiteRoot()
        {
        }
        /**
         * Returns sitemap file URL
         *
         * @return string
         */
        public function getUrl()
        {
        }
        /**
         * Parses sitemap file
         *
         * @return bool|\CDataXML
         * @throws \Bitrix\Main\IO\FileNotFoundException
         */
        public function parse()
        {
        }
        /**
         * Returns file relative path for URL.
         *
         * @param File $f File object.
         *
         * @return string
         */
        protected function getFileUrl(\Bitrix\Main\IO\File $f)
        {
        }
    }
    class SitemapRuntime extends \Bitrix\Seo\SitemapFile
    {
        const PROGRESS_WIDTH = 500;
        protected $PID = 0;
        private $originalFile = NULL;
        public function __construct($PID, $fileName, $arSettings)
        {
        }
        /**
         * Recreate file with same settings to new part
         *
         * @param string $fileName
         */
        protected function reInit($fileName)
        {
        }
        public function putSitemapContent(\Bitrix\Seo\SitemapFile $sitemapFile)
        {
        }
        public function setOriginalFile(\Bitrix\Seo\SitemapFile $sitemapFile)
        {
        }
        /**
         * Overwrite parent method to creating temp-files and correctly work with multipart
         * Appends new IBlock entry to the existing finished sitemap
         *
         * @param string $url IBlock entry URL.
         * @param string $modifiedDate IBlock entry modify timestamp.
         *
         * @return void
         */
        public function appendIBlockEntry($url, $modifiedDate)
        {
        }
        /**
         * Rename runtime file to original name. If runtime have part - rename them all
         */
        public function finish()
        {
        }
        protected function getPrefix()
        {
        }
        public static function showProgress($text, $title, $v)
        {
        }
    }
    class Service
    {
        const SERVICE_URL = SEO_SERVICE_URL;
        const REGISTER = "/oauth/register/";
        const AUTHORIZE = "/register/";
        const REDIRECT_URI = "/bitrix/tools/seo_client.php";
        const SERVICE_AUTH_CACHE_TLL = 86400;
        const SERVICE_AUTH_CACHE_ID = 'seo|service_auth';
        const CLIENT_LIST_CACHE_TLL = 86400;
        const CLIENT_LIST_CACHE_ID = 'seo|client_list';
        const CLIENT_TYPE_SINGLE = 'S';
        const CLIENT_TYPE_MULTIPLE = 'M';
        const CLIENT_TYPE_COMPATIBLE = 'C';
        protected static $engine = null;
        protected static $auth = null;
        protected static $clientList = null;
        /**
         * CAn connect to seoproxy?
         * @return bool
         */
        public static function isRegistered()
        {
        }
        /**
         * Get client info
         * @use \Bitrix\Seo\Service::getClientList(...)
         * @param string $engineCode Provider code.
         * @return array
         * @deprecated
         */
        public static function getAuth($engineCode)
        {
        }
        /**
         * Get clients list
         * @param string|bool $engineCode Provider code.
         * @return array
         * @throws SystemException
         */
        public static function getClientList($engineCode = false)
        {
        }
        /**
         * @return void
         * @use \Bitrix\Seo\Service::clearClientsCache()
         * @deprecated
         */
        public static function clearLocalAuth()
        {
        }
        /**
         * Clear clients list cache
         * @param string|null $engine Engine code.
         * @param int|null $clientId Proxy client id.
         * @return void
         * @throws SystemException
         */
        public static function clearClientsCache($engine = null, $clientId = null)
        {
        }
        /**
         * @param string $engineCode Provider code.
         * @param bool $localOnly Do not delete client in seoproxy service.
         * @return void
         * @use \Bitrix\Seo\Service::clearAuthForClient(...)
         * @throws SystemException
         * @deprecated
         */
        public static function clearAuth($engineCode, $localOnly = false)
        {
        }
        /**
         * Remove auth for a client
         * @param array $client Client data.
         * @param bool $localOnly Only clear cache.
         * @return void
         * @throws SystemException
         */
        public static function clearAuthForClient($client, $localOnly = false)
        {
        }
        /**
         * Set access settings
         * @param array $accessParams Access params.
         * @return void
         * @throws SystemException
         */
        protected static function setAccessSettings(array $accessParams)
        {
        }
        /**
         * @return \Bitrix\Seo\Engine\Bitrix
         */
        public static function getEngine()
        {
        }
        /**
         * @return void
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function register()
        {
        }
        /**
         * @return void
         * @throws SystemException
         */
        public static function unregister()
        {
        }
        /**
         * @return string
         */
        public static function getAuthorizeLink()
        {
        }
        /**
         * @param string $engine Provider code.
         * @param bool $clientType Client type.
         * @return array
         * @throws \Bitrix\Main\LoaderException
         */
        public static function getAuthorizeData($engine, $clientType = false)
        {
        }
        /**
         * @return string
         */
        protected static function getRedirectUri()
        {
        }
        /**
         * @return string
         */
        protected static function getLicense()
        {
        }
        /**
         * If site change domain - need update engine
         * @param array $domains
         * @throws \Exception
         */
        public static function changeRegisteredDomain(array $domains = []) : void
        {
        }
    }
    /**
     * Generates index file from sitemap files list
     * Class SitemapIndex
     * @package Bitrix\Seo
     */
    class SitemapIndex extends \Bitrix\Seo\SitemapFile
    {
        const FILE_HEADER = '<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
        const FILE_FOOTER = '</sitemapindex>';
        const ENTRY_TPL = '<sitemap><loc>%s</loc><lastmod>%s</lastmod></sitemap>';
        public function createIndex($arIndex)
        {
        }
        public function appendIndexEntry($file)
        {
        }
    }
    /**
     * Class SitemapEntityTable
     * @package Bitrix\Seo
     */
    class SitemapEntityTable extends \Bitrix\Main\Entity\DataManager
    {
        const ENTITY_TYPE = 'ENTITY';
        protected static $entityCache = array();
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function add(array $data)
        {
        }
        public static function getMap()
        {
        }
        public static function getSitemapsByEntityId($entityId)
        {
        }
        public static function clearBySitemap($sitemapId)
        {
        }
    }
    class SitemapForumTable extends \Bitrix\Seo\SitemapEntityTable
    {
        const ENTITY_TYPE = 'FORUM';
    }
    class SitemapForum
    {
        public static function __callStatic($name, $arguments)
        {
        }
        protected static function checkParams($arMessage = array(), &$arTopic, &$arForum)
        {
        }
        protected static function actionUpdate($arOldTopic, $arTopic, $arForum = array())
        {
        }
        protected static function actionDelete($arTopic, $arForum = array())
        {
        }
        protected static function actionAdd($arMessage, $arTopic, $arForum = array())
        {
        }
    }
}
namespace Bitrix\Seo\Checkout {
    /**
     * Class Factory
     * @package Bitrix\Seo\Checkout
     */
    class Factory
    {
        /**
         * @param $object
         * @param $type
         * @param null $parameters
         * @return mixed
         * @throws ArgumentOutOfRangeException
         */
        public static function create($object, $type, $parameters = null)
        {
        }
    }
    /**
     * Interface IService
     * @package Bitrix\Seo\Checkout
     */
    interface IService
    {
        /**
         * @param string $type
         * @return string
         */
        public static function getEngineCode($type);
        /**
         * @return array
         */
        public static function getTypes();
        /**
         * @param string $type
         * @return AuthAdapter
         */
        public static function getAuthAdapter($type);
    }
    /**
     * Class Response
     * @package Bitrix\Seo\Checkout
     */
    abstract class Response extends \Bitrix\Main\Result
    {
        const TYPE_CODE = '';
        protected $type;
        protected $responseText;
        /* @var Request|null */
        protected $request;
        /**
         * Response constructor.
         */
        public function __construct()
        {
        }
        /**
         * @param array $data
         * @return Result|void
         */
        public function setData(array $data)
        {
        }
        /**
         * @param $responseText
         */
        public function setResponseText($responseText)
        {
        }
        /**
         * @return mixed
         */
        public function getResponseText()
        {
        }
        /**
         * @return Request|null
         */
        public function getRequest()
        {
        }
        /**
         * @param Request $request
         * @return Request
         */
        public function setRequest(\Bitrix\Seo\Checkout\Request $request)
        {
        }
        /**
         * @param $type
         * @return static
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function create($type)
        {
        }
        /**
         * @param $data
         */
        public abstract function parse($data);
    }
    /**
     * Class Service
     * @package Bitrix\Seo\Checkout
     */
    class Service implements \Bitrix\Seo\Checkout\IService
    {
        const GROUP = 'checkout';
        const TYPE_YANDEX = 'yandex';
        /**
         * Get instance.
         *
         * @return static
         */
        public static function getInstance()
        {
        }
        /**
         * @param string $type
         * @return string
         */
        public static function getEngineCode($type)
        {
        }
        /**
         * @return array
         */
        public static function getTypes()
        {
        }
        /**
         * Get auth adapter.
         *
         * @param string $type Type.
         * @return AuthAdapter
         * @throws \Bitrix\Main\SystemException
         */
        public static function getAuthAdapter($type)
        {
        }
    }
    /**
     * Class BaseApiObject
     * @package Bitrix\Seo\Checkout
     */
    class BaseApiObject
    {
        const TYPE_CODE = '';
        /** @var Request $request */
        protected $request;
        /** @var Service $service */
        protected $service;
        /**
         * BaseApiObject constructor.
         */
        public function __construct()
        {
        }
        /**
         * @return Request
         */
        public function getRequest()
        {
        }
        /**
         * @param Request $request
         * @return $this
         */
        public function setRequest(\Bitrix\Seo\Checkout\Request $request)
        {
        }
        /**
         * @param $type
         * @param null $parameters
         * @param IService|null $service
         * @return static
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function create($type, $parameters = null, \Bitrix\Seo\Checkout\IService $service = null)
        {
        }
        /**
         * @param IService $service
         * @return $this
         * @throws \Bitrix\Main\SystemException
         */
        public function setService(\Bitrix\Seo\Checkout\IService $service)
        {
        }
    }
    /**
     * Class Request
     * @package Bitrix\Seo\Checkout
     */
    abstract class Request
    {
        const TYPE_CODE = '';
        /** @var AuthAdapter */
        protected $adapter;
        /** @var AdsHttpClient */
        protected $client;
        /** @var Response $response Response. */
        protected $response;
        /** @var string $type Type. */
        protected $type;
        /**
         * Request constructor.
         */
        public function __construct()
        {
        }
        /**
         * Get auth adapter.
         *
         * @return AuthAdapter
         */
        public function getAuthAdapter()
        {
        }
        /**
         * Set auth adapter.
         *
         * @param AuthAdapter $adapter Auth adapter.
         * @return $this
         */
        public function setAuthAdapter(\Bitrix\Seo\Checkout\AuthAdapter $adapter)
        {
        }
        /**
         * Get response.
         *
         * @return mixed
         */
        public function getResponse()
        {
        }
        /**
         * Get client.
         *
         * @return AdsHttpClient
         */
        public function getClient()
        {
        }
        /**
         * Set client.
         *
         * @param AdsHttpClient $client Http client.
         * @return $this
         */
        public function setClient(\Bitrix\Seo\Retargeting\AdsHttpClient $client)
        {
        }
        /**
         * Create instance.
         *
         * @param string $type Type.
         * @return static
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function create($type)
        {
        }
        /**
         * Send request.
         *
         * @param array $params Parameters.
         * @return Response
         * @throws SystemException
         */
        public function send(array $params = array())
        {
        }
        /**
         * Query.
         *
         * @param array $params Parameters.
         * @return mixed
         */
        public abstract function query(array $params = array());
    }
    /**
     * Class AuthAdapter
     * @package Bitrix\Seo\Checkout
     */
    class AuthAdapter
    {
        /** @var  IService $service */
        protected $service;
        protected $type;
        protected $data;
        /** @var array $parameters Parameters. */
        protected $parameters = ['URL_PARAMETERS' => []];
        /**
         * AuthAdapter constructor.
         * @param $type
         */
        public function __construct($type)
        {
        }
        /**
         * @param $type
         * @param IService|null $service
         * @return AuthAdapter
         * @throws SystemException
         * @throws \Bitrix\Main\LoaderException
         */
        public static function create($type, \Bitrix\Seo\Checkout\IService $service = null)
        {
        }
        /**
         * @param IService $service
         * @return $this
         */
        public function setService(\Bitrix\Seo\Checkout\IService $service)
        {
        }
        /**
         * @param array $parameters
         * @return $this
         */
        public function setParameters(array $parameters = [])
        {
        }
        /**
         * @return string
         * @throws SystemException
         */
        public function getAuthUrl()
        {
        }
        /**
         * @param bool $isUseCache
         * @return bool
         */
        protected function getAuthData($isUseCache = true)
        {
        }
        public function removeAuth()
        {
        }
        /**
         * @return string
         */
        protected function getEngineCode()
        {
        }
        /**
         * @return mixed
         */
        public function getType()
        {
        }
        /**
         * @return mixed|null
         */
        public function getToken()
        {
        }
        /**
         * @return bool
         */
        public function hasAuth()
        {
        }
    }
}
namespace Bitrix\Seo\Checkout\Services {
    /**
     * Class ResponseYandex
     * @package Bitrix\Seo\Checkout\Services
     */
    class ResponseYandex extends \Bitrix\Seo\Checkout\Response
    {
        const TYPE_CODE = 'yandex';
        /**
         * @param $data
         */
        public function parse($data)
        {
        }
    }
    /**
     * Class AccountYandex
     * @package Bitrix\Seo\Checkout\Services
     */
    class AccountYandex extends \Bitrix\Seo\Checkout\BaseApiObject
    {
        const TYPE_CODE = 'yandex';
        /** @var Web\Uri $callbackEventUrl */
        private $callbackEventUrl = null;
        /**
         * Get service.
         *
         * @return Service
         */
        public static function getService()
        {
        }
        /**
         * @param Web\Uri $callbackEventUrl
         */
        public function setCallbackEventUrl(\Bitrix\Main\Web\Uri $callbackEventUrl)
        {
        }
        /**
         * @return Web\Uri
         * @throws \Bitrix\Main\SystemException
         */
        private function getCallbackEventUrl()
        {
        }
        /**
         * @param Web\Uri $url
         * @return bool
         */
        private function isHttps(\Bitrix\Main\Web\Uri $url)
        {
        }
        /**
         * @return array|Response|null
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getProfile()
        {
        }
        /**
         * Remove auth.
         *
         * @return void
         * @throws \Bitrix\Main\SystemException
         */
        public static function removeAuth()
        {
        }
        /**
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        public function registerPaymentSucceededWebhook()
        {
        }
        /**
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        public function registerPaymentCanceledWebhook()
        {
        }
        /**
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        public function registerRefundSucceededWebhook()
        {
        }
        /**
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        public function removeWebhook($id)
        {
        }
        /**
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        public function getWebhookList()
        {
        }
        /**
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        public function getShopInfo()
        {
        }
    }
    /**
     * Class RequestYandex
     * @package Bitrix\Seo\Checkout\Services
     */
    class RequestYandex extends \Bitrix\Seo\Checkout\Request
    {
        const TYPE_CODE = 'yandex';
        /**
         * Query.
         *
         * @param array $params Parameters.
         * @return mixed
         * @throws \Bitrix\Main\SystemException
         */
        public function query(array $params = array())
        {
        }
    }
}
namespace Bitrix\Seo {
    /**
     * Class AdvEntity
     *
     * Interface for Yandex.Direct and Google AdWords local data mirrors. Contains common fields defeinitions.
     *
     * Implemented fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ENGINE_ID int mandatory
     * <li> XML_ID string(255) mandatory
     * <li> LAST_UPDATE datetime optional
     * <li> SETTINGS string optional
     * </ul>
     *
     * @package Bitrix\Seo
     **/
    class AdvEntity extends \Bitrix\Main\Entity\DataManager
    {
        const ACTIVE = 'Y';
        const INACTIVE = 'N';
        protected static $skipRemoteUpdate = false;
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        public static function setSkipRemoteUpdate($value)
        {
        }
        public static function onBeforeAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onBeforeUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
}
namespace Bitrix\Seo\Adv {
    class Auto
    {
        public static function checkQuantity($ID, $productFields)
        {
        }
        public static function checkQuantityAgent()
        {
        }
    }
    /**
     * Class YandexGroupTable
     *
     * Local mirror for Yandex.Direct banner groups
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ENGINE_ID int mandatory
     * <li> XML_ID string(255) mandatory
     * <li> LAST_UPDATE datetime optional
     * <li> SETTINGS string optional
     * <li> CAMPAIGN_ID int mandatory
     * </ul>
     *
     * @package Bitrix\Seo
     **/
    class YandexGroupTable extends \Bitrix\Seo\AdvEntity
    {
        const ENGINE = 'yandex_direct';
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
    /**
     * Class YandexStatTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> CAMPAIGN_ID int mandatory
     * <li> BANNER_ID int mandatory
     * <li> DATE_DAY date mandatory
     * <li> SUM double optional
     * <li> SUM_SEARCH double optional
     * <li> SUM_CONTEXT double optional
     * <li> CLICKS int optional
     * <li> CLICKS_SEARCH int optional
     * <li> CLICKS_CONTEXT int optional
     * <li> SHOWS int optional
     * <li> SHOW_SEARCH int optional
     * <li> SHOW_CONTEXT int optional
     * </ul>
     *
     * @package Bitrix\Seo
     **/
    class YandexStatTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        public static function getBannerStat($bannerId, $dateStart, $dateFinish)
        {
        }
        public static function getCampaignStat($campaignId, $dateStart, $dateFinish)
        {
        }
        public static function loadBannerStat($bannerId, $dateStart, $dateFinish)
        {
        }
        public static function loadCampaignStat($campaignId, $dateStart, $dateFinish)
        {
        }
        protected function loadStat(\Bitrix\Seo\Engine\YandexDirect $directEngine, $campaignXmlId, $dateStart, $dateFinish, $skipCurrency = false)
        {
        }
        protected function processStatsResult($campaignId, array $result, \Bitrix\Seo\Engine\YandexDirect $directEngine)
        {
        }
        public static function getMissedPeriods(array $stats, $dateStart, $dateFinish)
        {
        }
    }
    /**
     * Class LinkTable
     *
     * Fields:
     * <ul>
     * <li> LINK_TYPE string(1) mandatory
     * <li> LINK_ID int mandatory
     * <li> BANNER_ID int mandatory
     * </ul>
     *
     * @package Bitrix\Seo
     **/
    class LinkTable extends \Bitrix\Main\Entity\DataManager
    {
        const TYPE_IBLOCK_ELEMENT = 'I';
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
    /**
     * Class OrderTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ENGINE_ID int mandatory
     * <li> TIMESTAMP_X datetime mandatory default 'CURRENT_TIMESTAMP'
     * <li> REQUEST_URI string(100) mandatory
     * <li> REQUEST_DATA string optional
     * <li> RESPONSE_TIME double mandatory
     * <li> RESPONSE_STATUS int optional
     * <li> RESPONSE_DATA string optional
     * </ul>
     *
     * @package Bitrix\Seo
     **/
    class OrderTable extends \Bitrix\Main\Entity\DataManager
    {
        const PROCESSED = 'Y';
        const NOT_PROCESSED = 'N';
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        public static function onBeforeAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
    /**
     * Class AutologTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ENGINE_ID int mandatory
     * <li> TIMESTAMP_X datetime mandatory default 'CURRENT_TIMESTAMP'
     * <li> CAMPAIGN_ID int mandatory
     * <li> CAMPAIGN_XML_ID string(255) mandatory
     * <li> BANNER_ID int mandatory
     * <li> BANNER_XML_ID string(255) mandatory
     * <li> CAUSE_CODE int optional
     * <li> SUCCESS bool optional
     * </ul>
     *
     * @package Bitrix\Seo
     **/
    class AutologTable extends \Bitrix\Main\Entity\DataManager
    {
        const CODE_QUANTITY_ON = 1;
        const CODE_QUANTITY_OFF = 2;
        const SUCCESS = 'Y';
        const FAILURE = 'N';
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        public static function onBeforeAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
    /**
     * Class YandexCampaignTable
     *
     * Local mirror for Yandex.Direct campaigns
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ENGINE_ID int mandatory
     * <li> XML_ID string(255) mandatory
     * <li> LAST_UPDATE datetime optional
     * <li> SETTINGS string optional
     * </ul>
     *
     * @package Bitrix\Seo
     **/
    class YandexCampaignTable extends \Bitrix\Seo\AdvEntity
    {
        const ENGINE = 'yandex_direct';
        const STRATEGY_WEEKLY_BUDGET = 'WeeklyBudget';
        const STRATEGY_WEEKLY_PACKET_OF_CLICKS = 'WeeklyPacketOfClicks';
        const STRATEGY_AVERAGE_CLICK_PRICE = 'AverageClickPrice';
        const MONEY_WARNING_VALUE_DEFAULT = 20;
        const MONEY_WARN_PLACE_INTERVAL_DEFAULT = 30;
        const CACHE_LIFETIME = 3600;
        public static $allowedWarnPlaceIntervalValues = array(15, 30, 60);
        public static $allowedMoneyWarningInterval = array(1, 50);
        public static $supportedStrategy = array("WEEKLY_BUDGET" => self::STRATEGY_WEEKLY_BUDGET, "WEEKLY_PACKET_OF_CLICKS" => self::STRATEGY_WEEKLY_PACKET_OF_CLICKS, "AVERAGE_CLICK_PRICE" => self::STRATEGY_AVERAGE_CLICK_PRICE);
        public static $strategyConfig = array(self::STRATEGY_WEEKLY_BUDGET => array('WeeklySumLimit' => array('type' => 'float', 'mandatory' => true), 'MaxPrice' => array('type' => 'float', 'mandatory' => false)), self::STRATEGY_WEEKLY_PACKET_OF_CLICKS => array('ClicksPerWeek' => array('type' => 'int', 'mandatory' => true), 'MaxPrice' => array('type' => 'float', 'mandatory' => false), 'AveragePrice' => array('type' => 'float', 'mandatory' => false)), self::STRATEGY_AVERAGE_CLICK_PRICE => array('AveragePrice' => array('type' => 'float', 'mandatory' => true), 'WeeklySumLimit' => array('type' => 'float', 'mandatory' => false)));
        private static $engine = null;
        /**
         * Returns path to the file which contains definition of the class.
         *
         * @return string
         */
        public static function getFilePath()
        {
        }
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns link to transport engine object.
         *
         * @return Engine\YandexDirect|null
         */
        public static function getEngine()
        {
        }
        /**
         * Makes fields validation and adds new Yandex.Direct campaign.
         *
         * @param Entity\Event $event Event data.
         *
         * @return Entity\EventResult
         *
         * @throws Engine\YandexException
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        public static function onBeforeAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Makes fields validation and updates Yandex.Direct campaign.
         *
         * @param Entity\Event $event Event data.
         *
         * @return Entity\EventResult
         *
         * @throws Engine\YandexException
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        public static function onBeforeUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Deletes Yandex.Direct campaign.
         *
         * @param Entity\Event $event Event data.
         *
         * @return void
         *
         * @throws Engine\YandexException
         * @throws Main\ArgumentException
         */
        public static function onDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Deletes all campaign banners.
         *
         * @param Entity\Event $event Event data.
         *
         * @return void
         *
         * @throws Main\ArgumentException
         */
        public static function onAfterDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Checks campaign data before sending it to Yandex
         *
         * $data array format:
         *
         * <ul>
         * <li>ID
         * <li>XML_ID
         * <li>NAME
         * <li>SETTINGS<ul>
         *    <li>FIO
         *    <li>StartDate
         *    <li>Strategy<ul>
         *        <li>StrategyName
         *        <li>MaxPrice
         *        <li>AveragePrice
         *        <li>WeeklySumLimit
         *        <li>ClicksPerWeek
         *    </ul>
         *    <li>EmailNotification<ul>
         *        <li>Email
         *        <li>WarnPlaceInterval
         *        <li>MoneyWarningValue
         *    </ul>
         *  </ul>
         * </ul>
         *
         * @param Engine\YandexDirect $engine Engine object.
         * @param array $data Campaign data.
         * @param Entity\EventResult $result Event result object.
         *
         * @return array
         * @see http://api.yandex.ru/direct/doc/reference/CreateOrUpdateCampaign.xml
         */
        protected static function createParam(\Bitrix\Seo\Engine\YandexDirect $engine, array $data, \Bitrix\Main\Entity\EventResult $result)
        {
        }
    }
    /**
     * Class LogTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ENGINE_ID int mandatory
     * <li> TIMESTAMP_X datetime mandatory default 'CURRENT_TIMESTAMP'
     * <li> REQUEST_URI string(100) mandatory
     * <li> REQUEST_DATA string optional
     * <li> RESPONSE_TIME double mandatory
     * <li> RESPONSE_STATUS int optional
     * <li> RESPONSE_DATA string optional
     * </ul>
     *
     * @package Bitrix\Seo
     **/
    class LogTable extends \Bitrix\Main\Entity\DataManager
    {
        const TTL = 604800;
        // one week
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        public static function onBeforeAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function clean()
        {
        }
    }
    /**
     * Class YandexBannerTable
     *
     * Local mirror for Yandex.Direct banners
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ENGINE_ID int mandatory
     * <li> XML_ID string(255) mandatory
     * <li> LAST_UPDATE datetime optional
     * <li> SETTINGS string optional
     * <li> CAMPAIGN_ID int mandatory
     * <li> GROUP_ID int optional - Yandex.Direct supports groups only in Live version, so we add this entity but won't use it right now
     * <li> AUTO_QUANTITY char(1) optional
     * </ul>
     *
     * @package Bitrix\Seo
     **/
    class YandexBannerTable extends \Bitrix\Seo\AdvEntity
    {
        const ENGINE = 'yandex_direct';
        const MAX_TITLE_LENGTH = 35;
        const MAX_TEXT_LENGTH = 81;
        const CACHE_LIFETIME = 3600;
        const MARKED = 'D';
        private static $engine = null;
        protected static $priorityList = array(-1 => \Bitrix\Seo\Engine\YandexDirect::PRIORITY_LOW, 0 => \Bitrix\Seo\Engine\YandexDirect::PRIORITY_MEDIUM, 1 => \Bitrix\Seo\Engine\YandexDirect::PRIORITY_HIGH);
        /**
         * Returns path to the file which contains definition of the class.
         *
         * @return string
         */
        public static function getFilePath()
        {
        }
        /**
         * Returns DB table name for entity
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns link to transport engine object.
         *
         * @return Engine\YandexDirect|null
         */
        public static function getEngine()
        {
        }
        /**
         * Makes fields validation and adds new Yandex.Direct banner.
         *
         * @param Entity\Event $event Event data.
         *
         * @return Entity\EventResult
         *
         * @throws Engine\YandexException
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        public static function onBeforeAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Makes fields validation and updates Yandex.Direct banner.
         *
         * @param Entity\Event $event Event data.
         *
         * @return Entity\EventResult
         *
         * @throws Engine\YandexException
         * @throws Main\ArgumentException
         * @throws Main\ArgumentNullException
         */
        public static function onBeforeUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Deletes Yandex.Direct banner.
         *
         * @param Entity\Event $event Event data.
         *
         * @return void
         *
         * @throws Engine\YandexException
         * @throws Main\ArgumentException
         */
        public static function onDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        /**
         * Checks banner data before sending it to Yandex.
         *
         * $data array format:
         *
         * <ul>
         * <li>ID
         * <li>XML_ID
         * <li>NAME
         * <li>SETTINGS<ul>
         *    <li>BannerID
         *    <li>CampaignID *
         *    <li>Title *
         *    <li>Text *
         *    <li>Href *
         *    <li>Geo - comma-separated list of yandex location IDs
         *    <li>Phrases *
         *    <li>MinusKeywords
         *  </ul>
         * </ul>
         *
         * @param Engine\YandexDirect $engine Engine object.
         * @param array $data Banner data.
         * @param Entity\EventResult $result Event result object.
         *
         * @return array
         * @see http://api.yandex.ru/direct/doc/reference/CreateOrUpdateBanner.xml
         */
        protected static function createParam(\Bitrix\Seo\Engine\YandexDirect $engine, array $data, \Bitrix\Main\Entity\EventResult $result)
        {
        }
        public static function markStopped(array $idList)
        {
        }
        public static function markResumed(array $idList)
        {
        }
        public static function unMarkStopped(array $idList)
        {
        }
        public static function unMarkResumed(array $idList)
        {
        }
    }
    /**
     * Class YandexGroupTable
     *
     * Local mirror for Yandex.Direct banner groups
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ENGINE_ID int mandatory
     * <li> XML_ID string(255) mandatory
     * <li> LAST_UPDATE datetime optional
     * <li> SETTINGS string optional
     * <li> PARENT_ID int optional
     * </ul>
     *
     * @package Bitrix\Seo
     **/
    class YandexRegionTable extends \Bitrix\Seo\AdvEntity
    {
        const ENGINE = 'yandex_direct';
        const CACHE_LIFETIME = 2592000;
        const OPTION_LAST_UPDATE = 'yandex_direct_region_last_update';
        private static $engine = null;
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function getEngine()
        {
        }
        public static function getList(array $parameters = array())
        {
        }
        public static function updateDatabase()
        {
        }
        protected static function updateDatabaseItem(array &$regionMap, $regionId)
        {
        }
        protected static function clearDatabase()
        {
        }
        protected static function needDatabaseUpdate()
        {
        }
        public static function setLastUpdate($v = null)
        {
        }
        public static function getLastUpdate()
        {
        }
    }
}
namespace Bitrix\Seo {
    // Table with settings
    class SitemapTable extends \Bitrix\Main\Entity\DataManager
    {
        const SETTINGS_DEFAULT_FILE_MASK = '*.php,*.html';
        const ACTIVE = 'Y';
        const INACTIVE = 'N';
        public static function getFilePath()
        {
        }
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        protected static function compileMask($mask)
        {
        }
        /**
         * Gets settings from admin page and returns filtered version
         * @param $arSettings
         * @return array
         */
        public static function prepareSettings($arSettings)
        {
        }
    }
}
namespace Bitrix\Seo\Retargeting {
    class Factory
    {
        public static function create($object, $type, $parameters = null)
        {
        }
    }
    interface IService
    {
        /**
         * @param string $type
         * @return string
         */
        public static function getEngineCode($type);
        /**
         * @return array
         */
        public static function getTypes();
        /**
         * @param string $type
         * @return AuthAdapter
         */
        public static function getAuthAdapter($type);
    }
    /**
     * Class Request
     * @package Bitrix\Seo\Retargeting
     */
    abstract class Request
    {
        const TYPE_CODE = '';
        /** @var AuthAdapter */
        protected $adapter;
        /** @var AdsHttpClient */
        protected $client;
        /** @var Response $response Response. */
        protected $response;
        /** @var string $type Type. */
        protected $type;
        /** @var  mixed $endpoint Endpoint. */
        protected $endpoint;
        /** @var  bool $useDirectQuery Use direct query. */
        protected $useDirectQuery = false;
        /**
         * Request constructor.
         */
        public function __construct()
        {
        }
        /**
         * Set use direct query.
         * @param bool $mode Mode.
         */
        public function setUseDirectQuery($mode)
        {
        }
        /**
         * Get auth adapter.
         *
         * @return AuthAdapter
         */
        public function getAuthAdapter()
        {
        }
        /**
         * Set auth adapter.
         *
         * @param AuthAdapter $adapter Auth adapter.
         * @return $this
         */
        public function setAuthAdapter(\Bitrix\Seo\Retargeting\AuthAdapter $adapter)
        {
        }
        /**
         * Get response.
         *
         * @return mixed
         */
        public function getResponse()
        {
        }
        /**
         * Get client.
         *
         * @return AdsHttpClient
         */
        public function getClient()
        {
        }
        /**
         * Set client.
         *
         * @param AdsHttpClient $client Http client.
         * @return $this
         */
        public function setClient(\Bitrix\Seo\Retargeting\AdsHttpClient $client)
        {
        }
        /**
         * Get endpoint.
         *
         * @return mixed
         */
        public function getEndpoint()
        {
        }
        /**
         * Create instance.
         *
         * @param string $type Type.
         * @return static
         */
        public static function create($type)
        {
        }
        /**
         * Send request.
         *
         * @param array $params Parameters.
         * @return Response
         * @throws SystemException
         */
        public function send(array $params = array())
        {
        }
        /**
         * Query.
         *
         * @param array $params Parameters.
         * @return mixed
         */
        public abstract function query(array $params = array());
        protected function directQuery(array $params = array())
        {
        }
    }
    class ProxyRequest extends \Bitrix\Seo\Retargeting\Request
    {
        const REST_METHOD_PREFIX = '';
        /**
         * Request through cloud-adv service
         *
         * @param array $params Request params.
         * @return array|bool
         * @throws \Bitrix\Main\SystemException
         */
        public function query(array $params = array())
        {
        }
    }
    class AdsHttpClient extends \Bitrix\Main\Web\HttpClient
    {
        const HTTP_DELETE = "DELETE";
        public function delete($url, $postData = null, $multipart = false)
        {
        }
    }
    class BaseApiObject
    {
        const TYPE_CODE = '';
        /** @var Request $request */
        protected $request;
        /** @var Service $service */
        protected $service;
        protected static $listRowMap = array();
        public static function normalizeListRow(array $row)
        {
        }
        public function __construct()
        {
        }
        /**
         * @return Request
         */
        public function getRequest()
        {
        }
        public function setRequest(\Bitrix\Seo\Retargeting\Request $request)
        {
        }
        /**
         * @param $type
         * @param null $parameters
         * @param IService|null $service
         * @return static
         */
        public static function create($type, $parameters = null, \Bitrix\Seo\Retargeting\IService $service = null)
        {
        }
        public function setService(\Bitrix\Seo\Retargeting\IService $service)
        {
        }
    }
    abstract class Audience extends \Bitrix\Seo\Retargeting\BaseApiObject
    {
        const TYPE_FACEBOOK = 'facebook';
        const TYPE_VKONTAKTE = 'vkontakte';
        const TYPE_MYCOM = 'mycom';
        const TYPE_YANDEX = 'yandex';
        const TYPE_GOOGLE = 'google';
        const ENUM_CONTACT_TYPE_EMAIL = 'email';
        // email
        const ENUM_CONTACT_TYPE_PHONE = 'phone';
        // phone
        const ENUM_CONTACT_TYPE_IDFA_GAID = 'idfa_gaid';
        // IDFA (Identifier For Advertising) or device ID (Android ID and UDID on iOS)
        const ENUM_CONTACT_TYPE_INTERNAL_ID = 'int';
        // internal social net id like Vk ID or Fb ID
        const MAX_CONTACTS_PER_PACKET = 100;
        const MIN_CONTACTS_FOR_ACTIVATING = 5000;
        const URL_AUDIENCE_LIST = '';
        protected $accountId;
        protected $audienceId;
        protected static $listRowMap = array('ID' => 'ID', 'NAME' => 'NAME', 'COUNT_VALID' => 'COUNT', 'COUNT_MATCHED' => 'COUNT', 'SUPPORTED_CONTACT_TYPES' => array(self::ENUM_CONTACT_TYPE_EMAIL, self::ENUM_CONTACT_TYPE_PHONE, self::ENUM_CONTACT_TYPE_IDFA_GAID, self::ENUM_CONTACT_TYPE_INTERNAL_ID));
        protected $isQueueModeEnabled = false;
        protected $isQueueAutoRemove = true;
        protected $queueDaysAutoRemove = 7;
        protected $emptyResponse = null;
        public function __construct($accountId = null)
        {
        }
        public function setAccountId($accountId)
        {
        }
        public static function normalizeEmail($email)
        {
        }
        public static function normalizePhone($phone)
        {
        }
        public static function isSupportMultiTypeContacts()
        {
        }
        public static function isSupportAccount()
        {
        }
        public static function isSupportAddAudience()
        {
        }
        public static function isAddingRequireContacts()
        {
        }
        public static function isSupportRemoveContacts()
        {
        }
        public function getLookalikeAudiencesParams()
        {
        }
        public static function getUrlAudienceList()
        {
        }
        public static function getMaxContactsPerPacket()
        {
        }
        public static function getMinContactsForActivating()
        {
        }
        public function disableQueueAutoRemove()
        {
        }
        public function enableQueueAutoRemove($daysNumber = null)
        {
        }
        public function disableQueueMode()
        {
        }
        public function enableQueueMode()
        {
        }
        public function isQueueModeEnabled()
        {
        }
        public function getById($itemId)
        {
        }
        protected function normalizeContacts(array $contacts = array())
        {
        }
        protected function addToQueue($audienceId, $contacts, $options = [], $isRemove = false)
        {
        }
        protected function deleteFromQueue($audienceId, $contacts)
        {
        }
        /**
         * @param $audienceId
         * @param array $contacts
         * @param array $options
         * @return Response
         */
        public function addContacts($audienceId, array $contacts = array(), array $options)
        {
        }
        /**
         * @param $audienceId
         * @param array $contacts
         * @param array $options
         * @return Response
         */
        public function deleteContacts($audienceId, array $contacts = array(), array $options)
        {
        }
        /**
         * Add.
         *
         * @param array $data Data.
         * @return Response
         */
        public abstract function add(array $data);
        /**
         * Get list.
         *
         * @return Response
         */
        public abstract function getList();
        /**
         * Import contacts.
         *
         * @param string $audienceId Audience ID.
         * @param array $contacts Contacts.
         * @param array $options Options.
         * @return Response
         */
        protected abstract function importContacts($audienceId, array $contacts = array(), array $options);
        /**
         * Remove contacts.
         *
         * @param string $audienceId Audience ID.
         * @param array $contacts Contacts.
         * @param array $options Options.
         * @return Response
         */
        protected abstract function removeContacts($audienceId, array $contacts = array(), array $options);
        public function createLookalike($sourceAudienceId, array $options)
        {
        }
        public function isQueueProcessed($parentId)
        {
        }
    }
    abstract class Response extends \Bitrix\Main\Result
    {
        const TYPE_CODE = '';
        protected $id;
        protected $type;
        protected $adapter;
        protected $responseText;
        /* @var Request|null */
        protected $request;
        protected $result;
        protected $fetchIterator = 0;
        public function __construct()
        {
        }
        public function setId($id)
        {
        }
        public function getId()
        {
        }
        public function setData(array $data)
        {
        }
        public function setResponseText($responseText)
        {
        }
        public function getResponseText()
        {
        }
        public function fetch()
        {
        }
        public function getRequest()
        {
        }
        public function setRequest(\Bitrix\Seo\Retargeting\Request $request)
        {
        }
        /**
         * @param $type
         * @return static
         */
        public static function create($type)
        {
        }
        public abstract function parse($data);
    }
    interface IMultiClientService
    {
        /**
         * Can user multiple clients
         * @return bool
         */
        public static function canUseMultipleClients();
        /**
         * Get client id
         * @return string
         */
        public function getClientId();
        /**
         * Set client id.
         * @param string $clientId Client id.
         * @return mixed
         */
        public function setClientId($clientId);
    }
    class Service implements \Bitrix\Seo\Retargeting\IService, \Bitrix\Seo\Retargeting\IMultiClientService
    {
        const GROUP = 'retargeting';
        const TYPE_FACEBOOK = 'facebook';
        const TYPE_VKONTAKTE = 'vkontakte';
        const TYPE_MYCOM = 'mycom';
        const TYPE_YANDEX = 'yandex';
        const TYPE_GOOGLE = 'google';
        protected $clientId;
        /**
         * Get instance.
         *
         * @return static
         */
        public static function getInstance()
        {
        }
        /**
         * @param string $type Engine type.
         * @return string
         */
        public static function getEngineCode($type)
        {
        }
        /**
         * @param string $type Engine type.
         * @return Audience
         */
        public static function getAudience($type)
        {
        }
        /**
         * @param string $type Engine type.
         * @return Account
         */
        public static function getAccount($type)
        {
        }
        /**
         * Can use multiple clients
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function canUseMultipleClients()
        {
        }
        /**
         * @return array
         */
        public static function getTypes()
        {
        }
        /**
         * Get auth adapter.
         *
         * @param string $type Type.
         * @return AuthAdapter
         */
        public static function getAuthAdapter($type)
        {
        }
        /**
         * Get client id
         * @return string
         */
        public function getClientId()
        {
        }
        /**
         * Set client id.
         * @param string $clientId Client id.
         * @return void
         */
        public function setClientId($clientId)
        {
        }
    }
    abstract class Account extends \Bitrix\Seo\Retargeting\BaseApiObject
    {
        const PROFILE_INFO_CACHE_TTL = 86400;
        protected static $listRowMap = array('ID' => 'ID', 'NAME' => 'NAME');
        /**
         * Get profile data (cached)
         * @return array
         * @throws \Bitrix\Main\SystemException
         */
        public function getProfileCached()
        {
        }
        /**
         * Clear profile cache
         * @return void
         * @throws \Bitrix\Main\SystemException
         */
        public function clearCache()
        {
        }
        /**
         * Get cache id
         * @return string
         */
        protected function getCacheId()
        {
        }
        /**
         * @return Response
         */
        public abstract function getList();
        /**
         * @return Response
         */
        public abstract function getProfile();
        public function getRegionsList()
        {
        }
    }
}
namespace Bitrix\Seo\Retargeting\Internals {
    class QueueTable extends \Bitrix\Main\Entity\DataManager
    {
        const MODULE_ID = 'seo';
        const PORTION_QUANTITY = 50;
        const ACTION_IMPORT = 'IMP';
        const ACTION_IMPORT_AND_AUTO_REMOVE = 'IAR';
        const ACTION_REMOVE = 'REM';
        const ACTION_AUTO_REMOVE = 'ARM';
        protected static $isAgentAdded = array();
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        protected static function processQueueAutoRemoveAgentName()
        {
        }
        protected static function getProcessQueueAgentName($type)
        {
        }
        public static function processQueueAutoRemoveAgent()
        {
        }
        public static function processQueueAgent($type)
        {
        }
        protected static function processQueue($type)
        {
        }
        protected static function divideListIntoPortions($list)
        {
        }
        protected static function addQueueAutoRemoveAgent()
        {
        }
        protected static function addQueueAgent($type)
        {
        }
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
    class ServiceLogTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Seo\Retargeting {
    /**
     * Class AdsAudience.
     * @package Bitrix\Seo\Retargeting
     */
    class AdsAudience
    {
        /** @var array $errors Errors. */
        protected static $errors = array();
        /** @var bool $isQueueUsed Is queue used. */
        protected static $isQueueUsed = false;
        /**
         * Return true if it can use.
         *
         * @return bool
         */
        public static function canUse()
        {
        }
        /**
         * Use queue.
         *
         * @return void
         */
        public static function useQueue()
        {
        }
        /**
         * Get service.
         *
         * @return Service
         */
        public static function getService()
        {
        }
        /**
         * Add audience.
         *
         * @param string $type Type.
         * @param integer|null $accountId Account ID.
         * @param string|null $name Name.
         * @return integer|null
         */
        public static function addAudience($type, $accountId = null, $name = null)
        {
        }
        public static function addLookalikeAudience($type, $accountId = null, $sourceAudienceId = null, $options = [])
        {
        }
        /**
         * Get audiences.
         *
         * @param string $type Type.
         * @param integer|null $accountId Account ID.
         * @return array
         */
        public static function getAudiences($type, $accountId = null)
        {
        }
        public static function getRegions($type)
        {
        }
        /**
         * Get providers.
         *
         * @param array|null $types Types.
         * @return array
         */
        public static function getProviders(array $types = null)
        {
        }
        /**
         * Add to audience
         * @param AdsAudienceConfig $config Config.
         * @param array $contacts Contacts.
         * @return bool
         */
        public static function addToAudience(\Bitrix\Seo\Retargeting\AdsAudienceConfig $config, $contacts)
        {
        }
        /**
         * Get errors.
         *
         * @return array
         */
        public static function getErrors()
        {
        }
        /**
         * Reset errors.
         *
         * @return void
         */
        public static function resetErrors()
        {
        }
        /**
         * Return true if it has errors.
         *
         * @return bool
         */
        public static function hasErrors()
        {
        }
        /**
         * Remove auth.
         *
         * @param string $type Type.
         * @return void
         */
        public static function removeAuth($type)
        {
        }
        /**
         * Get service types.
         *
         * @return array
         */
        public static function getServiceTypes()
        {
        }
        /**
         * Get providers list
         * @param array|null $types Provider types.
         * @return array
         * @throws \Bitrix\Main\SystemException
         */
        protected static function getServiceProviders(array $types = null)
        {
        }
        /**
         * Get client profiles.
         * @param AuthAdapter $authAdapter Auth adapter.
         * @return array
         */
        protected static function getClientsProfiles(\Bitrix\Seo\Retargeting\AuthAdapter $authAdapter)
        {
        }
        /**
         * Get accounts.
         *
         * @param string $type Type.
         * @return array
         */
        public static function getAccounts($type)
        {
        }
    }
    class AuthAdapter
    {
        /** @var  IService $service */
        protected $service;
        protected $type;
        /* @var \CSocServOAuthTransport|\CFacebookInterface */
        protected $transport;
        protected $requestCodeParamName;
        protected $data;
        /** @var array $parameters Parameters. */
        protected $parameters = ['URL_PARAMETERS' => []];
        public function __construct($type)
        {
        }
        public static function create($type, \Bitrix\Seo\Retargeting\IService $service = null)
        {
        }
        public function setService(\Bitrix\Seo\Retargeting\IService $service)
        {
        }
        public function setParameters(array $parameters = [])
        {
        }
        public function getAuthUrl()
        {
        }
        protected function getAuthData($isUseCache = true)
        {
        }
        protected function getAuthDataMultiple()
        {
        }
        protected function getAuthDataSingle($isUseCache = true)
        {
        }
        public function removeAuth()
        {
        }
        protected function getEngineCode()
        {
        }
        public function getType()
        {
        }
        public function getToken()
        {
        }
        public function hasAuth()
        {
        }
        public function canUseMultipleClients()
        {
        }
        public function getClientList()
        {
        }
        public function getClientById($clientId)
        {
        }
        public function getAuthorizedClientsList()
        {
        }
        public function getClientId()
        {
        }
    }
    interface IRequestDirectly
    {
    }
}
namespace Bitrix\Seo\Retargeting\Services {
    class ResponseGoogle extends \Bitrix\Seo\Retargeting\Response
    {
        const TYPE_CODE = 'google';
        protected function getSkippedErrorCodes()
        {
        }
        public function parse($data)
        {
        }
    }
    class ResponseYandex extends \Bitrix\Seo\Retargeting\Response
    {
        const TYPE_CODE = 'yandex';
        protected function getSkippedErrorCodes()
        {
        }
        public function parse($data)
        {
        }
    }
    class AudienceFacebook extends \Bitrix\Seo\Retargeting\Audience
    {
        const TYPE_CODE = 'facebook';
        const MAX_CONTACTS_PER_PACKET = 10000;
        const MIN_CONTACTS_FOR_ACTIVATING = 50;
        const URL_AUDIENCE_LIST = 'https://business.facebook.com/adsmanager/audiences';
        protected static $listRowMap = array('ID' => 'ID', 'NAME' => 'NAME', 'COUNT_VALID' => 'APPROXIMATE_COUNT', 'COUNT_MATCHED' => 'APPROXIMATE_COUNT', 'SUPPORTED_CONTACT_TYPES' => array(self::ENUM_CONTACT_TYPE_EMAIL, self::ENUM_CONTACT_TYPE_PHONE, self::ENUM_CONTACT_TYPE_IDFA_GAID, self::ENUM_CONTACT_TYPE_INTERNAL_ID));
        public function add(array $data)
        {
        }
        protected function prepareContacts(array $contacts = array())
        {
        }
        public function importContacts($audienceId, array $contacts = array(), array $options)
        {
        }
        public function removeContacts($audienceId, array $contacts = array(), array $options)
        {
        }
        public function getList()
        {
        }
        public static function isSupportAddAudience()
        {
        }
        public function getLookalikeAudiencesParams()
        {
        }
        public function createLookalike($sourceAudienceId, array $options)
        {
        }
    }
    class RequestFacebook extends \Bitrix\Seo\Retargeting\ProxyRequest
    {
        const TYPE_CODE = 'facebook';
        const REST_METHOD_PREFIX = 'seo.client.ads.facebook';
        protected function directQuery(array $params = array())
        {
        }
    }
    class RequestInstagram extends \Bitrix\Seo\Retargeting\Services\RequestFacebook
    {
        const TYPE_CODE = 'instagram';
    }
    class ResponseVkontakte extends \Bitrix\Seo\Retargeting\Response
    {
        const TYPE_CODE = 'vkontakte';
        public function parse($data)
        {
        }
    }
    class AccountYandex extends \Bitrix\Seo\Retargeting\Account
    {
        const TYPE_CODE = 'yandex';
        public function getList()
        {
        }
        public function getProfile()
        {
        }
    }
    class AccountGoogle extends \Bitrix\Seo\Retargeting\Account
    {
        const TYPE_CODE = 'google';
        public function getList()
        {
        }
        public function getProfile()
        {
        }
    }
    class AccountFacebook extends \Bitrix\Seo\Retargeting\Account
    {
        const TYPE_CODE = 'facebook';
        const REGIONS_LIST_CACHE_TTL = 60 * 60 * 24 * 30;
        // 1 month
        protected static $listRowMap = array('ID' => 'ACCOUNT_ID', 'NAME' => 'NAME');
        public function getList()
        {
        }
        public function getProfile()
        {
        }
        public function getRegionsList()
        {
        }
    }
    class RequestYandex extends \Bitrix\Seo\Retargeting\ProxyRequest
    {
        const TYPE_CODE = 'yandex';
        const REST_METHOD_PREFIX = 'seo.client.ads.yandex';
        protected function directQuery(array $params = array())
        {
        }
    }
    class RequestGoogle extends \Bitrix\Seo\Retargeting\ProxyRequest
    {
        const TYPE_CODE = 'google';
        const REST_METHOD_PREFIX = 'seo.client.ads.google';
    }
    class AudienceVkontakte extends \Bitrix\Seo\Retargeting\Audience
    {
        const TYPE_CODE = 'vkontakte';
        const MAX_CONTACTS_PER_PACKET = 1000;
        const MIN_CONTACTS_FOR_ACTIVATING = 20;
        const URL_AUDIENCE_LIST = 'https://vk.com/ads?act=retargeting';
        protected static $listRowMap = array('ID' => 'ID', 'NAME' => 'NAME', 'COUNT_VALID' => 'AUDIENCE_COUNT', 'COUNT_MATCHED' => 'AUDIENCE_COUNT', 'SUPPORTED_CONTACT_TYPES' => array(self::ENUM_CONTACT_TYPE_EMAIL, self::ENUM_CONTACT_TYPE_PHONE, self::ENUM_CONTACT_TYPE_IDFA_GAID, self::ENUM_CONTACT_TYPE_INTERNAL_ID));
        public static function isSupportRemoveContacts()
        {
        }
        public function add(array $data)
        {
        }
        protected function prepareContacts(array $contacts = array())
        {
        }
        public function importContacts($audienceId, array $contacts = array(), array $options)
        {
        }
        public function removeContacts($audienceId, array $contacts = array(), array $options)
        {
        }
        public function getList()
        {
        }
        public static function isSupportAddAudience()
        {
        }
        public function getLookalikeAudiencesParams()
        {
        }
        public function createLookalike($sourceAudienceId, array $options)
        {
        }
        protected function addLookalikeAudienceAgent($audienceRequestId, $audienceSize)
        {
        }
        protected function getLookalikeAudienceAgentName($audienceRequestId, $audienceSize)
        {
        }
        public static function processLookalikeAudienceAgent($clientId, $accountId, $audienceRequestId, $audienceSize)
        {
        }
    }
    class AudienceGoogle extends \Bitrix\Seo\Retargeting\Audience
    {
        const TYPE_CODE = 'google';
        const MAX_CONTACTS_PER_PACKET = 0;
        const MIN_CONTACTS_FOR_ACTIVATING = 5000;
        const URL_AUDIENCE_LIST = 'https://ads.google.com/aw/audiences/management';
        protected static $listRowMap = array('ID' => 'ID', 'NAME' => 'NAME', 'SUPPORTED_CONTACT_TYPES' => array(self::ENUM_CONTACT_TYPE_EMAIL, self::ENUM_CONTACT_TYPE_IDFA_GAID));
        public static function normalizeListRow(array $row)
        {
        }
        public static function isSupportMultiTypeContacts()
        {
        }
        public static function isSupportAccount()
        {
        }
        public static function isSupportRemoveContacts()
        {
        }
        public function add(array $data)
        {
        }
        protected function prepareContacts(array $contacts = array(), $type = null)
        {
        }
        public function importContacts($audienceId, array $contacts = array(), array $options)
        {
        }
        public function removeContacts($audienceId, array $contacts = array(), array $options)
        {
        }
        public function getList()
        {
        }
        public function getAudienceIdFromRow(array $row = null)
        {
        }
        public static function isSupportAddAudience()
        {
        }
    }
    class AudienceYandex extends \Bitrix\Seo\Retargeting\Audience
    {
        const TYPE_CODE = 'yandex';
        const MAX_CONTACTS_PER_PACKET = 0;
        const MIN_CONTACTS_FOR_ACTIVATING = 1000;
        const URL_AUDIENCE_LIST = 'https://audience.yandex.ru/';
        const NEW_AUDIENCE_FAKE_ID = -1;
        const UPDATE_AUDIENCE_TIMEOUT = 60;
        protected static $listRowMap = array('ID' => 'ID', 'NAME' => 'NAME', 'COUNT_VALID' => 'VALID_UNIQUE_QUANTITY', 'COUNT_MATCHED' => 'MATCHED_QUANTITY', 'HASHED' => 'HASHED', 'STATUS' => 'STATUS', 'SUPPORTED_CONTACT_TYPES' => array(self::ENUM_CONTACT_TYPE_PHONE, self::ENUM_CONTACT_TYPE_EMAIL));
        public static function normalizeListRow(array $row)
        {
        }
        public static function isSupportMultiTypeContacts()
        {
        }
        public static function isSupportAccount()
        {
        }
        public static function isAddingRequireContacts()
        {
        }
        public static function isSupportRemoveContacts()
        {
        }
        /**
         * @param array $data Data.
         * @return \Bitrix\Seo\Retargeting\Response
         * @deprecated Not supported by Yandex
         * @throws NotImplementedException
         */
        public function add(array $data)
        {
        }
        /**
         * Create contacts list in proper format.
         * @param array $contacts Contacts.
         * @param bool $hashed Should result be hashed.
         * @param string $type Type (email|phone).
         * @return string
         */
        protected function prepareContacts(array $contacts = array(), $hashed = false, $type = '')
        {
        }
        /**
         * @param string $audienceId Audience id.
         * @param array $contacts Contacts.
         * @param array $options Options.
         * @return Result|\Bitrix\Seo\Retargeting\Response
         * @throws \Bitrix\Main\SystemException
         */
        public function importContacts($audienceId, array $contacts = array(), array $options)
        {
        }
        /**
         * Remove contacts from audience
         * @param string $audienceId Audience id.
         * @param array $contacts Contacts.
         * @param array $options Options.
         * @deprecated Not supported by Yandex anymore
         * @return \Bitrix\Seo\Retargeting\Response|null
         */
        public function removeContacts($audienceId, array $contacts = array(), array $options)
        {
        }
        /**
         * Audiences list
         * @return \Bitrix\Seo\Retargeting\Response
         * @throws \Bitrix\Main\SystemException
         */
        public function getList()
        {
        }
        /**
         * "New audience" value in audiences list
         * @param array $data Audiences list.
         * @return array
         */
        protected function addNewAudienceValue($data)
        {
        }
    }
    class ResponseFacebook extends \Bitrix\Seo\Retargeting\Response
    {
        const TYPE_CODE = 'facebook';
        public function parse($data)
        {
        }
    }
    class AccountVkontakte extends \Bitrix\Seo\Retargeting\Account
    {
        const TYPE_CODE = 'vkontakte';
        protected static $listRowMap = array('ID' => 'ACCOUNT_ID', 'NAME' => 'NAME');
        public function getList()
        {
        }
        public function getProfile()
        {
        }
    }
    class ResponseInstagram extends \Bitrix\Seo\Retargeting\Services\ResponseFacebook
    {
        const TYPE_CODE = 'instagram';
    }
    class RequestVkontakte extends \Bitrix\Seo\Retargeting\ProxyRequest
    {
        const TYPE_CODE = 'vkontakte';
        const REST_METHOD_PREFIX = 'seo.client.ads.vkontakte';
        protected function directQuery(array $params = array())
        {
        }
    }
}
namespace Bitrix\Seo\Retargeting {
    /**
     * Class AdsAudienceConfig.
     * @package Bitrix\Seo\Retargeting
     */
    class AdsAudienceConfig
    {
        /** @var  string $clientId Client ID. */
        public $clientId;
        /** @var  string $accountId Account ID. */
        public $accountId;
        /** @var  string $audienceId Audience ID. */
        public $audienceId;
        /** @var string|null $contactType Contact type.  */
        public $contactType = null;
        public $type = null;
        public $autoRemoveDayNumber = null;
        public $parentId = null;
        /**
         * AdsAudienceConfig constructor.
         *
         * @param \stdClass|null $config Config.
         */
        public function __construct(\stdClass $config = null)
        {
        }
    }
}
namespace Bitrix\Seo\Engine {
    class BitrixEngine extends \Bitrix\Seo\Engine
    {
        protected $engineId = 'bitrix_generic';
        public function __construct()
        {
        }
        public function getProxy()
        {
        }
        public function getAuthSettings()
        {
        }
    }
    class YandexBase extends \Bitrix\Seo\Engine\BitrixEngine
    {
        const QUERY_USER = 'https://login.yandex.ru/info';
        protected $engineId = 'yandex_generic';
        /**
         * Returns URL to authorize app
         *
         * @return string Url
         */
        public function getAuthUrl()
        {
        }
        /**
         * Creates OAuth interface object instance
         *
         * @return \CYandexOAuthInterface
         */
        public function getInterface()
        {
        }
        public function clearSitesSettings()
        {
        }
        public function setAuthSettings($settings = null)
        {
        }
        public function checkAuthExpired()
        {
        }
        public function getAuth($code)
        {
        }
        /**
         * Returns current Yandex user data
         *
         * @return array
         *
         * @throws SystemException
         * @throws YandexException
         */
        public function getCurrentUser()
        {
        }
        /**
         * Returns HttpClient object with query result
         *
         * @param string $scope Url to call
         * @param string $method HTTP method (GET/POST/PUT supported)
         * @param array|null $data Post data
         * @param bool $skipRefreshAuth Skip authorization refresh
         *
         * @returns \Bitrix\Main\Web\HttpClient
         * @throws SystemException
         */
        protected function query($scope, $method = "GET", $data = null, $skipRefreshAuth = false)
        {
        }
        protected function prepareQueryResult(array $result)
        {
        }
    }
    class YandexDirect extends \Bitrix\Seo\Engine\YandexBase implements \Bitrix\Seo\IEngine
    {
        const ENGINE_ID = 'yandex_direct';
        const API_URL = YANDEX_DIRECT_API_URL;
        const METHOD_REGION_GET = 'GetRegions';
        const METHOD_CAMPAIGN_ADD = 'CreateOrUpdateCampaign';
        const METHOD_CAMPAIGN_UPDATE = 'CreateOrUpdateCampaign';
        const METHOD_CAMPAIGN_GET = 'GetCampaignsParams';
        const METHOD_CAMPAIGN_LIST = 'GetCampaignsList';
        const METHOD_CAMPAIGN_ARCHIVE = 'ArchiveCampaign';
        const METHOD_CAMPAIGN_UNARCHIVE = 'UnArchiveCampaign';
        const METHOD_CAMPAIGN_STOP = 'StopCampaign';
        const METHOD_CAMPAIGN_RESUME = 'ResumeCampaign';
        const METHOD_CAMPAIGN_DELETE = 'DeleteCampaign';
        const METHOD_BANNER_ADD = 'CreateOrUpdateBanners';
        const METHOD_BANNER_UPDATE = 'CreateOrUpdateBanners';
        const METHOD_BANNER_LIST = 'GetBanners';
        const METHOD_BANNER_MODERATE = 'ModerateBanners';
        const METHOD_BANNER_STOP = 'StopBanners';
        const METHOD_BANNER_RESUME = 'ResumeBanners';
        const METHOD_BANNER_ARCHIVE = 'ArchiveBanners';
        const METHOD_BANNER_UNARCHIVE = 'UnArchiveBanners';
        const METHOD_BANNER_DELETE = 'DeleteBanners';
        const METHOD_WORDSTAT_REPORT_CREATE = 'CreateNewWordstatReport';
        const METHOD_WORDSTAT_REPORT_DELETE = 'DeleteWordstatReport';
        const METHOD_WORDSTAT_REPORT_GET = 'GetWordstatReport';
        const METHOD_WORDSTAT_REPORT_LIST = 'GetWordstatReportList';
        const METHOD_FORECAST_REPORT_CREATE = 'CreateNewForecast';
        const METHOD_FORECAST_REPORT_DELETE = 'DeleteForecastReport';
        const METHOD_FORECAST_REPORT_GET = 'GetForecast';
        const METHOD_FORECAST_REPORT_LIST = 'GetForecastList';
        const METHOD_STAT_BANNER = 'GetBannersStat';
        const BOOL_YES = "Yes";
        const BOOL_NO = "No";
        const STATUS_NEW = "New";
        const STATUS_PENDING = "Pending";
        const PRIORITY_LOW = "Low";
        const PRIORITY_MEDIUM = "Medium";
        const PRIORITY_HIGH = "High";
        const TTL_WORDSTAT_REPORT = 3600;
        // session report lifetime
        const TTL_WORDSTAT_REPORT_EXT = 18000;
        // yandex report lifetime
        const TTL_FORECAST_REPORT = 3600;
        // session report lifetime
        const TTL_FORECAST_REPORT_EXT = 18000;
        // yandex report lifetime
        const MAX_WORDSTAT_REPORTS = 5;
        const MAX_FORECAST_REPORTS = 5;
        const MAX_CAMPAIGNS_BANNER_UPDATE = 10;
        const ERROR_NOT_FOUND = 27;
        const ERROR_NO_STATS = 2;
        const MAX_STAT_DAYS_DELTA = 7;
        const CAMPAIGN_LIMIT = 100;
        const ERROR_WRONG_CURRENCY = 245;
        const CACHE_DIR = '/seo/yandexdirect/';
        const CACHE_TTL = 86400;
        const CACHE_ID = "yandexdirect_client_cache";
        public $allowedCurrency = array('RUB', 'CHF', 'EUR', 'KZT', 'TRY', 'UAH', 'USD');
        protected $engineId = 'yandex_direct';
        protected $locale = NULL;
        public function __construct()
        {
        }
        public function getCurrentUser()
        {
        }
        /**
         * Sends request to create new campaign
         *
         * @param array $campaignParam Campaign params.
         *
         * @returns string XML_ID for newly created campaign
         * @throws SystemException
         * @throws YandexDirectException
         * @see YandexCampaignTable::createParam
         */
        public function addCampaign(array $campaignParam)
        {
        }
        /**
         * Sends request to update an existing campaign
         *
         * @param array $campaignParam Campaign params.
         *
         * @returns string XML_ID for newly created campaign
         * @throws SystemException
         * @throws YandexDirectException
         * @see YandexCampaignTable::createParam
         */
        public function updateCampaign(array $campaignParam)
        {
        }
        /**
         * Get campaigns by IDs (not all)
         *
         * @param mixed $campaignsId XML_ID or array of XML_IDs
         *
         * @return array with campaign data
         * @throws SystemException
         * @throws YandexDirectException
         */
        public function getCampaign($campaignsId)
        {
        }
        //	get ALL campaigns for current client
        public function getCampaignList()
        {
        }
        public function archiveCampaign($campaignId)
        {
        }
        public function unArchiveCampaign($campaignId)
        {
        }
        public function resumeCampaign($campaignId)
        {
        }
        public function stopCampaign($campaignId)
        {
        }
        public function deleteCampaign($campaignId)
        {
        }
        /**
         * Sends request to create new banner
         *
         * @param array $bannerParam Banner params.
         *
         * @returns string XML_ID for newly created banner
         * @throws SystemException
         * @throws YandexDirectException
         * @see YandexBannerTable::createParam
         */
        public function addBanner(array $bannerParam)
        {
        }
        /**
         * Sends request to update an existing banner
         *
         * @param array $bannerParam Banner params.
         *
         * @returns string XML_ID for newly created banner
         * @throws SystemException
         * @throws YandexDirectException
         * @see YandexBannerTable::createParam
         */
        public function updateBanner(array $bannerParam)
        {
        }
        public function getBanners($bannerId)
        {
        }
        public function getCampaignBanners($campaignId)
        {
        }
        public function moderateBanners($campaignId, array $bannerIDs)
        {
        }
        public function stopBanners($campaignId, array $bannerIDs)
        {
        }
        public function resumeBanners($campaignId, array $bannerIDs)
        {
        }
        public function archiveBanners($campaignId, array $bannerIDs)
        {
        }
        public function unArchiveBanners($campaignId, array $bannerIDs)
        {
        }
        public function deleteBanners($campaignId, array $bannerIDs)
        {
        }
        /**
         * Returns Yandex regions list
         *
         * @return array of regions
         * @throws SystemException
         * @see https://tech.yandex.ru/direct/doc/dg-v4/reference/GetRegions-docpage/
         */
        public function getRegions()
        {
        }
        public function getClientsSettings()
        {
        }
        public function createWordstatReport(array $phrase, $geo = NULL)
        {
        }
        public function deleteWordstatReport($reportId)
        {
        }
        public function getWordstatReport($reportId)
        {
        }
        public function getWordstatReportList()
        {
        }
        public function createForecastReport(array $phrase, $geo = NULL)
        {
        }
        public function deleteForecastReport($reportId)
        {
        }
        public function getForecastReport($reportId)
        {
        }
        public function getForecastReportList()
        {
        }
        /**
         * Sends request for banner stats.
         *
         * @param array $params Stats query params.
         *
         * @return array
         * @throws YandexDirectException
         * @throws \Bitrix\Main\SystemException
         *
         * @see https://tech.yandex.ru/direct/doc/dg-v4/live/GetBannersStat-docpage/
         */
        public function getBannerStats(array $params)
        {
        }
        /**
         * Returns HttpClient object with query result
         *
         * @param string $scope
         * @param string $method Method
         * @param array $param array of query data
         * @param bool $skipRefreshAuth Skip authorization refresh. Doesn't work with Yandex.
         * @return HttpClient
         * @throws SystemException
         * @throws \Exception
         */
        protected function query($scope, $method = "GET", $param = NULL, $skipRefreshAuth = false)
        {
        }
        public function finance_query($method, $masterToken, $operationNum, $param = array(), $skipRefreshAuth = false)
        {
        }
        public function updateCampaignManual($campaignId = NULL)
        {
        }
        public function updateBannersManual($campaignId, $bannerId = NULL)
        {
        }
        public static function updateAgent()
        {
        }
    }
    /**
     * Class YandexDirectLive
     *
     * @deprecated
     */
    class YandexDirectLive extends \Bitrix\Seo\Engine\YandexDirect implements \Bitrix\Seo\IEngine
    {
        const API_URL = YANDEX_DIRECT_LIVE_API_URL;
        const METHOD_STAT_BANNER = 'GetBannersStat';
        const MAX_STAT_DAYS_DELTA = 7;
        const ERROR_WRONG_CURRENCY = 245;
        public $allowedCurrency = array('RUB', 'CHF', 'EUR', 'KZT', 'TRY', 'UAH', 'USD');
        /**
         * Sends request for banner stats.
         *
         * @param array $params Stats query params.
         *
         * @return array
         * @throws YandexDirectException
         * @throws \Bitrix\Main\SystemException
         *
         * @see https://tech.yandex.ru/direct/doc/dg-v4/live/GetBannersStat-docpage/
         */
        public function getBannerStats(array $params)
        {
        }
    }
    class YandexException extends \Exception
    {
        protected $code;
        protected $message;
        protected $result;
        protected $status;
        public function __construct($queryResult, \Exception $previous = NULL)
        {
        }
        public function getStatus()
        {
        }
        protected function parseError()
        {
        }
        private function formatMessage()
        {
        }
    }
    class Bitrix extends \Bitrix\Seo\Engine implements \Bitrix\Seo\IEngine
    {
        const ENGINE_ID = 'bitrix';
        protected $engineId = 'bitrix';
        protected $engineRegistered = false;
        const API_URL = SEO_BITRIX_API_URL;
        public function __construct()
        {
        }
        /**
         * Checks if domain is registered.
         *
         * @return bool
         */
        public function isRegistered()
        {
        }
        public function getInterface()
        {
        }
        public function setAuthSettings($settings = null)
        {
        }
    }
    class YandexDirectException extends \Bitrix\Main\SystemException
    {
        public function __construct(array $queryResult, \Exception $previous = null)
        {
        }
    }
    class Yandex extends \Bitrix\Seo\Engine\YandexBase implements \Bitrix\Seo\IEngine
    {
        const ENGINE_ID = 'yandex';
        const SERVICE_URL = "https://webmaster.yandex.ru/api/v2";
        const API_BASE_URL = "https://api.webmaster.yandex.net/v3/user/";
        const API_HOSTS_URL = "hosts/";
        const API_SUMMARY_URL = "summary/";
        const API_SAMPLES_URL = "links/external/samples/";
        const API_POPULAR_URL = "search-queries/popular/";
        const API_VERIFICATION_URL = "verification/";
        const API_ORIGINAL_TEXTS_URL = "original-texts/";
        const HOSTS_SERVICE = "host-list";
        const HOST_VERIFY = "verify-host";
        const HOST_INFO = "host-information";
        const HOST_TOP_QUERIES = "top-queries";
        const HOST_ORIGINAL_TEXTS = "original-texts";
        const HOST_INDEXED = "indexed-urls";
        const HOST_EXCLUDED = "excluded-urls";
        const ORIGINAL_TEXT_MIN_LENGTH = 500;
        const ORIGINAL_TEXT_MAX_LENGTH = 32000;
        const ORIGINAL_TEXT_SHOW_COUNT = 50;
        const QUERY_USER = 'https://login.yandex.ru/info';
        const VERIFIED_STATE_VERIFIED = "VERIFIED";
        const VERIFIED_STATE_WAITING = "WAITING";
        const VERIFIED_STATE_FAILED = "VERIFICATION_FAILED";
        const VERIFIED_STATE_NEVER_VERIFIED = "NEVER_VERIFIED";
        const VERIFIED_STATE_IN_PROGRESS = "IN_PROGRESS";
        const INDEXING_STATE_OK = "OK";
        private static $verificationTypes = array('DNS', 'HTML_FILE', 'META_TAG', 'WHOIS', 'TXT_FILE');
        protected $engineId = 'yandex';
        protected $arServiceList = array();
        private $userId = NULL;
        private $hostIds = array();
        public function __construct()
        {
        }
        /**
         * Construct URL of service for REST request.
         * Glue base URL and params: user ID, host ID, service name and additional url-params
         * @param null $userId
         * @param null $hostId
         * @param null $service
         * @param null $params
         * @return string
         */
        private function getServiceUrl($userId = NULL, $hostId = NULL, $service = NULL, $params = NULL)
        {
        }
        // temporary hack
        public function getAuthSettings()
        {
        }
        /**
         * For webmaster API v3 we can use host_id instead URL. Request them onec and then them save in local variable.
         *
         * @param $domain - URL of domain
         * @return mixed
         */
        private function getHostId($domain)
        {
        }
        public function getFeeds()
        {
        }
        /**
         * Collect info about site by two different methods: info and statistic
         * @param $domain
         * @return array
         */
        public function getSiteInfo($domain)
        {
        }
        private function getSiteInfoGeneral($domain)
        {
        }
        private function getSiteInfoStats($domain)
        {
        }
        //	todo: we can add info about external links like a popular queries
        /**
         * Get info about popular queries for domain
         * @param $domain - URL of domain
         * @return array
         * @throws YandexException
         */
        public function getSiteInfoQueries($domain)
        {
        }
        private function processHosts()
        {
        }
        public function getOriginalTexts($domain)
        {
        }
        /**
         * Need to collect all items throuth limits
         *
         * @param $hostId
         * @param $params
         * @return mixed
         * @throws YandexException
         */
        private function getOriginalTextsRecursive($hostId, $params)
        {
        }
        /**
         * Send original text to webmaster
         *
         * @param $text
         * @param $domain
         * @return string
         * @throws YandexException
         */
        public function addOriginalText($text, $domain)
        {
        }
        /**
         * Add site to webmaster. After adding you need verify rights at this site.
         *
         * @param $domain
         * @return array
         * @throws YandexException
         */
        public function addSite($domain)
        {
        }
        /**
         * Just checking verify status of site and get UIN for verification
         * @param $domain
         * @return UIN if site not verified and FALSE if site already verify.
         * @throws YandexException
         */
        public function getVerifySiteUin($domain)
        {
        }
        public function verifySite($domain, $verType = 'HTML_FILE')
        {
        }
        /**
         * @deprecated by query
         * @param $scope
         * @param string $method
         * @param null $data
         * @param bool $skipRefreshAuth
         * @return \CHTTP
         */
        protected function queryOld($scope, $method = "GET", $data = NULL, $skipRefreshAuth = false)
        {
        }
        /**
         * Create HTTP client, set necessary headers and set request
         *
         * @param $scope - URL of service with additional params, if needed
         * @param string $method - may be POST, GET or DELETE
         * @param null $data
         * @param bool $skipRefreshAuth
         * @return HttpClient
         */
        protected function query($scope, $method = "GET", $data = NULL, $skipRefreshAuth = false)
        {
        }
    }
    class Google extends \Bitrix\Seo\Engine implements \Bitrix\Seo\IEngine
    {
        const ENGINE_ID = 'google';
        const SCOPE_BASE = 'https://www.googleapis.com/auth/webmasters';
        const SCOPE_USER = 'https://www.googleapis.com/auth/userinfo.profile';
        const SCOPE_VERIFY = 'https://www.googleapis.com/auth/siteverification.verify_only';
        const SCOPE_FEED_SITES = 'sites';
        const SCOPE_FEED_CRAWLISSUES = 'crawlissues/';
        const SCOPE_FEED_MESSAGES = 'messages/';
        const SCOPE_DOMAIN_PROTOCOL = 'http://';
        const QUERY_BASE = 'https://www.googleapis.com/webmasters/v3/';
        const QUERY_USER = 'https://www.googleapis.com/oauth2/v3/userinfo';
        const QUERY_VERIFY = 'https://www.googleapis.com/siteVerification/v1/webResource?verificationMethod=FILE';
        const QUERY_VERIFY_TOKEN = 'https://www.googleapis.com/siteVerification/v1/token';
        protected $engineId = 'google';
        protected $scope = null;
        public function getScope()
        {
        }
        public function getAuthUrl()
        {
        }
        public function getInterface()
        {
        }
        public function setAuthSettings($settings = null)
        {
        }
        public function checkAuthExpired($bGetNew)
        {
        }
        public function refreshAuth()
        {
        }
        public function getAuth($code)
        {
        }
        public function getCurrentUser()
        {
        }
        public function getFeeds()
        {
        }
        public function addSite($domain, $dir = '/')
        {
        }
        public function verifyGetToken($domain, $dir)
        {
        }
        public function verifySite($domain, $dir)
        {
        }
        protected function queryJson($scope, $method = "GET", $data = null, $bSkipRefreshAuth = false)
        {
        }
        protected function query($scope, $method = "GET", $data = null, $bSkipRefreshAuth = false, $contentType = 'application/json')
        {
        }
    }
    class YandexJson extends \Bitrix\Main\Web\Json
    {
        public static function encode($data, $options = null)
        {
        }
        protected static function _encode($data)
        {
        }
        protected static function _quote($s)
        {
        }
    }
}
namespace Bitrix\Seo {
    class SitemapIblockTable extends \Bitrix\Main\Entity\DataManager
    {
        const ACTIVE = 'Y';
        const INACTIVE = 'N';
        const TYPE_ELEMENT = 'E';
        const TYPE_SECTION = 'S';
        protected static $iblockCache = array();
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Clears all iblock links on sitemap settings deletion.
         *
         * @param int $sitemapId Sitemap settings ID.
         *
         * @return void
         */
        public static function clearBySitemap($sitemapId)
        {
        }
        /**
         * Returns array of data for sitemap update due to some iblock action.
         *
         * @param array $fields Iblock element or section fields array.
         * @param string $itemType SitemapIblockTable::TYPE_ELEMENT || SitemapIblockTable::TYPE_SECTION.
         *
         * @return array Array of sitemap settings
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getByIblock($fields, $itemType)
        {
        }
        /**
         * Checks if section $sectionId should be added to sitemap.
         *
         * @param int $sectionId Section ID.
         * @param array $sectionSettings Sitemap section settings array.
         * @param bool $defaultValue Default value for situation of settings absence.
         *
         * @return bool
         */
        public static function checkSection($sectionId, $sectionSettings, $defaultValue)
        {
        }
    }
    class SitemapIblock
    {
        private static $beforeActions = array('BEFOREDELETEELEMENT' => array(array(), array()), 'BEFOREDELETESECTION' => array(array(), array()), 'BEFOREUPDATEELEMENT' => array(array(), array()), 'BEFOREUPDATESECTION' => array(array(), array()));
        /**
         * Event handler for multiple IBlock events
         */
        public static function __callStatic($name, $arguments)
        {
        }
        /**
         * Checks if element is a real element, not a workflow item
         *
         * @param array $fields Element fields.
         *
         * @return bool
         */
        protected static function checkElement(&$fields)
        {
        }
        /**
         * Processes actions on IBlock element or section update
         *
         * @param array $data Data got from SitemapIblockTable::getByIblock() + element/section data + prev link data got from event handler.
         * @param bool $element Element or section.
         */
        protected static function actionUpdate($data, $element)
        {
        }
        /**
         * Processes actions on IBlock element or section delete.
         *
         * @param array $data Data got from SitemapIblockTable::getByIblock() + element/section data + prev link data got from event handler.
         */
        protected static function actionDelete($data)
        {
        }
        /**
         * Processes actions on IBlock element or section add.
         *
         * @param string $name Event handler name.
         * @param array $fields Element/section fields.
         */
        protected static function actionAdd($name, $fields)
        {
        }
        private static function createSiteDirs()
        {
        }
        private static function checkActivity($isElement, $fields)
        {
        }
        /**
         * Replace some parts of URL-template, then not correct processing in replaceDetailUrl.
         *
         * @param string $url - String of URL-template.
         * @param null $siteId - In NULL - #SERVER_NAME# will not replaced.
         * @return mixed|string
         */
        public static function prepareUrlToReplace($url, $siteId = NULL)
        {
        }
    }
}
namespace Bitrix\Seo\LeadAds {
    /**
     * Class Service
     *
     * @package Bitrix\Seo\LeadAds
     */
    class Service implements \Bitrix\Seo\Retargeting\IService
    {
        const GROUP = 'leadads';
        const TYPE_FACEBOOK = 'facebook';
        const TYPE_VKONTAKTE = 'vkontakte';
        /**
         * Get instance.
         *
         * @return static
         */
        public static function getInstance()
        {
        }
        /**
         * Get engine code by type.
         *
         * @param string $type Type
         * @return string
         */
        public static function getEngineCode($type)
        {
        }
        /**
         * Get Form by type.
         *
         * @param string $type Type
         * @return Form
         */
        public static function getForm($type)
        {
        }
        /**
         * Get group auth.
         *
         * @param string $type Type
         * @return AuthAdapter
         */
        public static function getGroupAuth($type)
        {
        }
        /**
         * Register group.
         *
         * @param string $type Type.
         * @param string $groupId Group ID.
         * @return bool
         */
        public static function registerGroup($type, $groupId)
        {
        }
        /**
         * UnRegister group.
         *
         * @param string $type Type.
         * @param string $groupId Group ID.
         * @return bool
         */
        public static function unRegisterGroup($type, $groupId)
        {
        }
        /**
         * Remove group auth.
         *
         * @param string $type Type
         * @return void
         */
        public static function removeGroupAuth($type)
        {
        }
        /**
         * Get Account by type.
         *
         * @param string $type Type
         * @return Account
         */
        public static function getAccount($type)
        {
        }
        /**
         * Get type list.
         *
         * @return array
         */
        public static function getTypes()
        {
        }
        /**
         * Get auth adapter.
         *
         * @param string $type Type
         * @return AuthAdapter
         */
        public static function getAuthAdapter($type)
        {
        }
    }
    /**
     * Class Account
     *
     * @package Bitrix\Seo\LeadAds
     */
    abstract class Account extends \Bitrix\Seo\Retargeting\Account implements \Bitrix\Seo\Retargeting\IRequestDirectly
    {
        const URL_ACCOUNT_LIST = '';
        const URL_INFO = '';
        protected static $listRowMap = array('ID' => 'ID', 'NAME' => 'NAME');
        protected $accountId;
        protected $pageId;
        /**
         * Account constructor.
         *
         * @param null|string $accountId Account ID.
         */
        public function __construct($accountId = null)
        {
        }
        /**
         * Get profile cached.
         *
         * @return Retargeting\Response
         */
        public function getProfileCached()
        {
        }
        /**
         * Get url account list.
         *
         * @return string
         */
        public static function getUrlAccountList()
        {
        }
        /**
         * Get url info.
         *
         * @return string
         */
        public static function getUrlInfo()
        {
        }
        /**
         * Get group auth adapter.
         *
         * @param string $type Type.
         * @return Retargeting\AuthAdapter
         */
        public static function getGroupAuthAdapter($type)
        {
        }
    }
    class Result extends \Bitrix\Main\Result
    {
        /** @var  string|null $id ID. */
        protected $id;
        /** @var  DateTime $dateCreate Create date. */
        protected $dateCreate;
        /** @var int $currentIterationNumber Current iteration number. */
        protected $currentIterationNumber = 0;
        /**
         * Sets data of the result.
         *
         * @param array $data Data.
         * @return void
         */
        public function setData(array $data)
        {
        }
        /**
         * Add field values.
         *
         * @param string $name Name.
         * @param array $values Values.
         */
        public function addFieldValues($name, array $values)
        {
        }
        /**
         * Get id.
         *
         * @return string|null
         */
        public function getId()
        {
        }
        /**
         * Set id.
         *
         * @param string $id ID.
         */
        public function setId($id)
        {
        }
        /**
         * Get create date.
         *
         * @return DateTime|null
         */
        public function getDateCreate()
        {
        }
        /**
         * Set create date.
         *
         * @param DateTime $dateCreate Create date.
         */
        public function setDateCreate(\Bitrix\Main\Type\DateTime $dateCreate)
        {
        }
        /**
         * Fetch.
         *
         * @return array|null
         */
        public function fetch()
        {
        }
    }
    /**
     * Class Field.
     * Metadata of question field in form.
     *
     * @package Bitrix\Seo\LeadAds
     */
    class Field
    {
        const TYPE_INPUT = 'input';
        const TYPE_TEXT_AREA = 'textarea';
        const TYPE_RADIO = 'radio';
        const TYPE_CHECKBOX = 'checkbox';
        const TYPE_SELECT = 'select';
        protected $type = self::TYPE_INPUT;
        protected $name = null;
        protected $label = null;
        protected $key = null;
        protected $options = [];
        /**
         * Create field.
         *
         * @param string $type Type.
         * @param string|null $name Name.
         * @param string|null $label Label.
         * @param string|null $key Key.
         * @return static
         */
        public static function create($type = self::TYPE_INPUT, $name = null, $label = null, $key = null)
        {
        }
        public function getMapItem(array $map = [])
        {
        }
        /**
         * Convert to array.
         *
         * @return array
         */
        public function toArray()
        {
        }
        /**
         * Field constructor.
         *
         * @param string $type Type.
         * @param string|null $name Name.
         * @param string|null $label Label.
         * @param string|null $key Key.
         */
        public function __construct($type = self::TYPE_INPUT, $name = null, $label = null, $key = null)
        {
        }
        /**
         * Add option.
         *
         * @param string $key Key.
         * @param string $label Label.
         * @throws ArgumentNullException
         * @return $this
         */
        public function addOption($key, $label)
        {
        }
        /**
         * Set options.
         *
         * @param array $options Options.
         * @return $this
         */
        public function setOptions(array $options)
        {
        }
        /**
         * Get type.
         *
         * @return string
         */
        public function getType()
        {
        }
        /**
         * Get name.
         *
         * @return string
         */
        public function getName()
        {
        }
        /**
         * Get label.
         *
         * @return null|string
         */
        public function getLabel()
        {
        }
        /**
         * Get key.
         *
         * @return null|string
         */
        public function getKey()
        {
        }
        /**
         * Get options.
         *
         * @return array
         */
        public function getOptions()
        {
        }
    }
}
namespace Bitrix\Seo\LeadAds\Internals {
    /**
     * Class CallbackSubscriptionTable.
     * @package Bitrix\Seo\LeadAds\Internals
     */
    class CallbackSubscriptionTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Get table name.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Get map.
         *
         * @return array
         */
        public static function getMap()
        {
        }
    }
}
namespace Bitrix\Seo\LeadAds {
    /**
     * Class Mapper.
     * Form fields Mapper from crm to ads, ads to crm.
     *
     * @package Bitrix\Seo\LeadAds
     */
    class Mapper
    {
        protected $map = [];
        public function __construct(array $items = [])
        {
        }
        /**
         * Get crm name.
         *
         * @param string $adsName Ads name.
         * @return string|null
         */
        public function getCrmName($adsName)
        {
        }
        /**
         * Get ads name.
         *
         * @param string $crmName Crm name.
         * @return string|null
         */
        public function getAdsName($crmName)
        {
        }
        /**
         * Set map items.
         *
         * @param array $items Map items.
         * @return $this
         * @throws ArgumentNullException
         */
        public function setItems(array $items = [])
        {
        }
        /**
         * Add map item
         *
         * @param string $crmName Crm name.
         * @param string $adsName Ads name.
         * @return $this
         * @throws ArgumentNullException
         */
        public function addItem($crmName, $adsName)
        {
        }
        protected function getMapItem($crmName = null, $adsName = null)
        {
        }
    }
    abstract class Form extends \Bitrix\Seo\Retargeting\BaseApiObject implements \Bitrix\Seo\Retargeting\IRequestDirectly
    {
        const URL_FORM_LIST = '';
        const USE_GROUP_AUTH = false;
        /** @var  array $listRowMap Map. */
        protected static $listRowMap = array('ID' => 'ID', 'NAME' => 'NAME');
        /** @var  string|null $accountId Account ID. */
        protected $accountId;
        /** @var  string|null $formId Form ID. */
        protected $formId;
        /**
         * Form constructor.
         *
         * @param string|null $accountId Account ID.
         */
        public function __construct($accountId = null)
        {
        }
        /**
         * Set account id.
         *
         * @param string $accountId Account ID.
         * @return mixed
         */
        public function setAccountId($accountId)
        {
        }
        /**
         * Get list.
         *
         * @return Response
         */
        public abstract function getList();
        /**
         * Get result.
         *
         * @param WebHook\Payload\LeadItem $item Payload item instance.
         * @return Result
         */
        public abstract function getResult(\Bitrix\Seo\WebHook\Payload\LeadItem $item);
        /**
         * Add.
         *
         * @param array $data Data.
         * @return Response
         */
        public abstract function add(array $data);
        /**
         * Unlink.
         *
         * @param string $id.
         * @return bool
         */
        public abstract function unlink($id);
        /**
         * Get registered groups.
         *
         * @return string[]
         */
        public function getRegisteredGroups()
        {
        }
        /**
         * Unregister group.
         *
         * @param string $groupId Group ID.
         * @return bool
         */
        public function unRegisterGroup($groupId)
        {
        }
        /**
         * Register group.
         *
         * @param string $groupId Group ID.
         * @return bool
         */
        public function registerGroup($groupId)
        {
        }
        /**
         * Convert field.
         *
         * @param Field $field Field.
         * @return array
         */
        public static function convertField(\Bitrix\Seo\LeadAds\Field $field)
        {
        }
        /**
         * Convert fields.
         *
         * @param Field[] $fields Fields.
         * @return array
         */
        public static function convertFields(array $fields)
        {
        }
        /**
         * Get form list url.
         *
         * @return string
         */
        public static function getUrlFormList()
        {
        }
        /**
         * Is account supported.
         *
         * @return bool
         */
        public static function isSupportAccount()
        {
        }
        /**
         * Get privacy policy url.
         *
         * @return string
         */
        public static function getPrivacyPolicyUrl()
        {
        }
        protected function registerFormWebHook($adsFormId, array $parameters = [])
        {
        }
        protected function removeFormWebHook($adsFormId)
        {
        }
        /**
         * Return true if group auth used.
         *
         * @return bool
         */
        public static function isGroupAuthUsed()
        {
        }
        protected function getAuthParameters()
        {
        }
        /**
         * Get group auth adapter.
         *
         * @return Retargeting\AuthAdapter|null
         */
        public function getGroupAuthAdapter()
        {
        }
    }
}
namespace Bitrix\Seo\LeadAds\Services {
    class FormFacebook extends \Bitrix\Seo\LeadAds\Form
    {
        const TYPE_CODE = \Bitrix\Seo\LeadAds\Service::TYPE_FACEBOOK;
        const URL_FORM_LIST = 'https://www.facebook.com/ads/manager/audiences/manage/';
        protected static $listRowMap = array('ID' => 'ID', 'NAME' => 'NAME', 'LOCALE' => 'LOCALE');
        protected function getLocaleByLanguageId($languageId = null)
        {
        }
        /**
         * Convert field.
         *
         * @param LeadAds\Field $field Field.
         * @return array
         */
        public static function convertField(\Bitrix\Seo\LeadAds\Field $field)
        {
        }
        /**
         * Add.
         *
         * @param array $data Data.
         * @return \Bitrix\Seo\Retargeting\Response
         */
        public function add(array $data)
        {
        }
        /**
         * Unlink.
         *
         * @param string $id ID.
         * @return bool
         */
        public function unlink($id)
        {
        }
        protected function subscribeAppToPageEvents($pageAccessToken)
        {
        }
        public function getList()
        {
        }
        /**
         * Get result.
         *
         * @param WebHook\Payload\LeadItem $item Payload item instance.
         * @return LeadAds\Result
         */
        public function getResult(\Bitrix\Seo\WebHook\Payload\LeadItem $item)
        {
        }
    }
    class AccountFacebook extends \Bitrix\Seo\LeadAds\Account
    {
        const TYPE_CODE = \Bitrix\Seo\LeadAds\Service::TYPE_FACEBOOK;
        const URL_ACCOUNT_LIST = 'https://www.facebook.com/bookmarks/pages';
        const URL_INFO = 'https://www.facebook.com/business/a/lead-ads';
        protected static $listRowMap = array('ID' => 'ID', 'NAME' => 'NAME');
        public function getRowById($id)
        {
        }
        public function getList()
        {
        }
        public function getProfile()
        {
        }
    }
    /**
     * Class FormVkontakte
     *
     * @package Bitrix\Seo\LeadAds\Services
     */
    class FormVkontakte extends \Bitrix\Seo\LeadAds\Form
    {
        const TYPE_CODE = \Bitrix\Seo\LeadAds\Service::TYPE_VKONTAKTE;
        const URL_FORM_LIST = 'https://www.facebook.com/ads/manager/audiences/manage/';
        const USE_GROUP_AUTH = true;
        protected static $fieldKeyPrefix = 'b24-seo-ads-';
        protected static $listRowMap = array('ID' => 'ID', 'NAME' => 'NAME', 'LOCALE' => 'LOCALE');
        protected function getAuthParameters()
        {
        }
        /**
         * Convert field.
         *
         * @param LeadAds\Field $field Field.
         * @return array
         */
        public static function convertField(\Bitrix\Seo\LeadAds\Field $field)
        {
        }
        protected static function getFieldMapper()
        {
        }
        public function add(array $data)
        {
        }
        /**
         * Unlink
         *
         * @param string $id ID.
         * @return bool
         */
        public function unlink($id)
        {
        }
        protected function registerGroupWebHook()
        {
        }
        protected function addCallbackServer($secretKey, \Bitrix\Seo\Retargeting\Response $response)
        {
        }
        protected function deleteCallbackServer($groupId)
        {
        }
        protected function getCallbackConfirmationCode()
        {
        }
        protected function setCallbackSettings($serverId, $catchLeads = true)
        {
        }
        protected function encodeString($text, $length = 60)
        {
        }
        protected function subscribeAppToPageEvents($pageAccessToken)
        {
        }
        /**
         * Get list.
         *
         * @return \Bitrix\Seo\Retargeting\Response
         */
        public function getList()
        {
        }
        /**
         * Get result.
         *
         * @param WebHook\Payload\LeadItem $item Payload item instance.
         * @return LeadAds\Result
         */
        public function getResult(\Bitrix\Seo\WebHook\Payload\LeadItem $item)
        {
        }
        /**
         * UnRegister group.
         *
         * @param string $groupId Group ID.
         * @return bool
         */
        public function unRegisterGroup($groupId)
        {
        }
    }
    /**
     * Class AccountVkontakte
     *
     * @package Bitrix\Seo\LeadAds\Services
     */
    class AccountVkontakte extends \Bitrix\Seo\LeadAds\Account
    {
        const TYPE_CODE = \Bitrix\Seo\LeadAds\Service::TYPE_VKONTAKTE;
        const URL_ACCOUNT_LIST = 'https://vk.com/groups?tab=admin';
        const URL_INFO = 'https://vk.com/page-19542789_53868676';
        protected static $listRowMap = array('ID' => 'ID', 'NAME' => 'NAME');
        /**
         * Get row by id.
         *
         * @param string $id ID.
         * @return array|mixed|null
         */
        public function getRowById($id)
        {
        }
        /**
         * Get list.
         *
         * @return \Bitrix\Seo\Retargeting\Response
         */
        public function getList()
        {
        }
        /**
         * Get profile.
         *
         * @return array|null
         */
        public function getProfile()
        {
        }
    }
}
namespace Bitrix\Seo {
    /**
     * Class AdvTabEngine
     *
     * Events handler for integration with IBlock element edit form
     *
     * @package Bitrix\Seo
     **/
    class AdvTabEngine
    {
        public static function eventHandler()
        {
        }
        public static function getTabs($iblockElementInfo)
        {
        }
        public static function showTab($div, $iblockElementInfo)
        {
        }
        public static function checkFields()
        {
        }
        public static function saveData()
        {
        }
    }
}
namespace Bitrix\Seo\Analytics {
    class Service implements \Bitrix\Seo\Retargeting\IService, \Bitrix\Seo\Retargeting\IMultiClientService
    {
        const GROUP = 'analytics';
        const TYPE_FACEBOOK = 'facebook';
        const TYPE_INSTAGRAM = 'instagram';
        const TYPE_VKONTAKTE = 'vkontakte';
        const TYPE_GOOGLE = 'google';
        const TYPE_YANDEX = 'yandex';
        /** @var array $errors Errors. */
        protected static $errors = [];
        protected $clientId;
        /**
         * Get instance.
         *
         * @return static
         */
        public static function getInstance()
        {
        }
        /**
         * Return true if it can use.
         *
         * @return bool
         */
        public static function canUse()
        {
        }
        /**
         * Can use multiple clients.
         *
         * @return bool
         */
        public static function canUseMultipleClients()
        {
        }
        /**
         * @param string $type
         * @return string
         */
        public static function getEngineCode($type)
        {
        }
        /**
         * Get account.
         *
         * @param string $type Type.
         * @return Account
         */
        public static function getAccount($type)
        {
        }
        /**
         * @return array
         */
        public static function getTypes()
        {
        }
        /**
         * Get auth adapter.
         *
         * @param string $type Type.
         * @return Retargeting\AuthAdapter
         */
        public static function getAuthAdapter($type)
        {
        }
        /**
         * Get providers.
         *
         * @param array|null $types Types.
         * @return array
         */
        public static function getProviders(array $types = null)
        {
        }
        protected static function getServiceProviders(array $types = null)
        {
        }
        /**
         * Get accounts.
         *
         * @param string $type Type.
         * @return array
         */
        public static function getAccounts($type)
        {
        }
        /**
         * Remove auth.
         *
         * @param string $type Type.
         * @return void
         */
        public static function removeAuth($type)
        {
        }
        /**
         * Get errors.
         *
         * @return array
         */
        public static function getErrors()
        {
        }
        /**
         * Reset errors.
         *
         * @return void
         */
        public static function resetErrors()
        {
        }
        /**
         * Return true if it has errors.
         *
         * @return bool
         */
        public static function hasErrors()
        {
        }
        /**
         * Get client id
         * @return string
         */
        public function getClientId()
        {
        }
        /**
         * Set client id.
         * @param string $clientId Client id.
         * @return $this
         */
        public function setClientId($clientId)
        {
        }
        /**
         * Get client profiles.
         * @param Retargeting\AuthAdapter $authAdapter Auth adapter.
         * @return array
         */
        public static function getClientsProfiles(\Bitrix\Seo\Retargeting\AuthAdapter $authAdapter)
        {
        }
    }
    abstract class Account extends \Bitrix\Seo\Retargeting\Account
    {
        /**
         * Get expenses.
         *
         * @param $accountId
         * @param Date|null $dateFrom
         * @param Date|null $dateTo
         * @return Retargeting\Response
         */
        public abstract function getExpenses($accountId, \Bitrix\Main\Type\Date $dateFrom = null, \Bitrix\Main\Type\Date $dateTo = null);
        /**
         * Get expenses report.
         *
         * @param $accountId
         * @param Date|null $dateFrom
         * @param Date|null $dateTo
         * @return Result
         * @throws NotImplementedException
         */
        public function getExpensesReport($accountId, \Bitrix\Main\Type\Date $dateFrom = null, \Bitrix\Main\Type\Date $dateTo = null)
        {
        }
        /**
         * Return true if it has expenses report.
         *
         * @return bool
         */
        public function hasExpensesReport()
        {
        }
        /**
         * Return true if it has accounts.
         *
         * @return bool
         */
        public function hasAccounts()
        {
        }
        /**
         * @return bool
         */
        public function hasPublicPages()
        {
        }
        /**
         * @param $accountId
         * @param array $params
         * @param array $publicPageIds
         * @return Result
         */
        public abstract function updateAnalyticParams($accountId, array $params, array $publicPageIds = []);
        /**
         * @param $accountId
         * @return Result
         */
        public function getPublicPages($accountId)
        {
        }
    }
}
namespace Bitrix\Seo\Analytics\Internals {
    class Page
    {
        protected $data;
        /**
         * @param array $data
         */
        public function __construct(array $data = [])
        {
        }
        /**
         * @return array
         */
        public function toArray()
        {
        }
        /**
         * @return int
         */
        public function getId()
        {
        }
        /**
         * @return string
         */
        public function getName()
        {
        }
        /**
         * @return string
         */
        public function getAbout()
        {
        }
        /**
         * @return string
         */
        public function getImage()
        {
        }
        /**
         * @return string
         */
        public function getPhone()
        {
        }
        /**
         * @return string
         */
        public function getEmail()
        {
        }
        /**
         * @param array $data
         */
        protected function prepareData(array $data)
        {
        }
    }
    class Expenses
    {
        protected $data;
        /**
         * Expenses constructor.
         * @param array $data
         */
        public function __construct(array $data = [])
        {
        }
        /**
         * @param array $data
         * @return $this
         */
        public function add(array $data)
        {
        }
        /**
         * @return array
         */
        public function toArray()
        {
        }
        /**
         * @return int
         */
        public function getImpressions()
        {
        }
        /**
         * @return int
         */
        public function getClicks()
        {
        }
        /**
         * @return int
         */
        public function getActions()
        {
        }
        /**
         * @return float
         */
        public function getCpc()
        {
        }
        /**
         * This is cost per 1000 impressions.
         *
         * @return float
         */
        public function getCpm()
        {
        }
        /**
         * @return float
         */
        public function getSpend()
        {
        }
        /**
         * @return string
         */
        public function getCurrency()
        {
        }
        /**
         * @param array $data
         */
        protected function prepareData(array $data)
        {
        }
        /**
         * @return array
         */
        protected function getNumericFieldNames()
        {
        }
    }
}
namespace Bitrix\Seo\Analytics\Services {
    class AccountFacebook extends \Bitrix\Seo\Analytics\Account implements \Bitrix\Seo\Retargeting\IRequestDirectly
    {
        const TYPE_CODE = 'facebook';
        public function getList()
        {
        }
        public function getProfile()
        {
        }
        /**
         * @param mixed $accountId Facebook Ad Account Id.
         * @param Date|null $dateFrom
         * @param Date|null $dateTo
         * @return ResponseFacebook
         */
        public function getExpenses($accountId, \Bitrix\Main\Type\Date $dateFrom = null, \Bitrix\Main\Type\Date $dateTo = null)
        {
        }
        protected function prepareExpensesData($data)
        {
        }
        /**
         * @return bool
         */
        public function hasPublicPages()
        {
        }
        /**
         * @param $accountId
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        public function getPublicPages($accountId)
        {
        }
        /**
         * @param $publicPageId
         * @param array $params
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        protected function updatePublicPage($publicPageId, array $params)
        {
        }
        /**
         * @param $accountId
         * @param array $params
         * @param array $publicPageIds
         * @return Response
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public function updateAnalyticParams($accountId, array $params, array $publicPageIds = [])
        {
        }
        /**
         * @param $accountId
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        protected function getAds($accountId)
        {
        }
        /**
         * @param $creativeId
         * @return Response
         */
        protected function getAdCreative($creativeId)
        {
        }
        /**
         * @param $accountId
         * @param $adId
         * @param array $creative
         * @return Response
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        protected function updateAdCreative($accountId, $adId, array $creative)
        {
        }
        /**
         * @param $accountId
         * @param array $urlParams
         * @return Response
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        protected function updateAdUrlTags($accountId, array $urlParams)
        {
        }
        /**
         * @param $string
         * @return array
         */
        protected function parseUrlParams($string)
        {
        }
        /**
         * @param array $currentParams
         * @param array $newParams
         * @return array
         */
        protected function mergeUrlParams(array $currentParams, array $newParams)
        {
        }
        /**
         * @return array
         */
        protected function getPublisherPlatforms()
        {
        }
        /**
         * @param $accountId
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        public function getAdSetIds($accountId)
        {
        }
    }
    class AccountInstagram extends \Bitrix\Seo\Analytics\Services\AccountFacebook
    {
        const TYPE_CODE = 'instagram';
        /**
         * @return array
         */
        protected function getPublisherPlatforms()
        {
        }
        /**
         * @return bool
         */
        public function hasPublicPages()
        {
        }
        protected function prepareExpensesData($data)
        {
        }
    }
    class AccountYandex extends \Bitrix\Seo\Analytics\Account implements \Bitrix\Seo\Retargeting\IRequestDirectly
    {
        const TYPE_CODE = 'yandex';
        const ERROR_CODE_REPORT_OFFLINE = 100201;
        protected $currency;
        /**
         * Get list.
         *
         * @return Response
         */
        public function getList()
        {
        }
        /**
         * Return true if it has accounts.
         *
         * @return bool
         */
        public function hasAccounts()
        {
        }
        /**
         * @return array|null
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getProfile()
        {
        }
        /**
         * @param $accountId
         * @param Date|null $dateFrom
         * @param Date|null $dateTo
         * @return Response
         */
        public function getExpenses($accountId = null, \Bitrix\Main\Type\Date $dateFrom = null, \Bitrix\Main\Type\Date $dateTo = null)
        {
        }
        /**
         * @param $accountId
         * @param array $params
         * @param array $publicPageIds
         * @return Response
         */
        public function updateAnalyticParams($accountId, array $params, array $publicPageIds = [])
        {
        }
        protected function getCurrency()
        {
        }
        /**
         * @param $status
         * @return Error
         */
        protected function getReportErrorByHttpStatus($status)
        {
        }
        /**
         * @param string $data
         * @return array
         */
        protected function parseReportData($data)
        {
        }
        /**
         * @return string
         */
        protected function getYandexServerAdress()
        {
        }
        /**
         * @return string
         */
        protected function getAuthToken()
        {
        }
        /**
         * @return \Bitrix\Seo\Retargeting\AdsHttpClient
         */
        protected function getClient()
        {
        }
    }
    class AccountGoogle extends \Bitrix\Seo\Analytics\Account
    {
        const TYPE_CODE = 'google';
        public function getList()
        {
        }
        public function getProfile()
        {
        }
        /**
         * @param $accountId
         * @param Date|null $dateFrom
         * @param Date|null $dateTo
         * @return Retargeting\Response
         */
        public function getExpenses($accountId, \Bitrix\Main\Type\Date $dateFrom = null, \Bitrix\Main\Type\Date $dateTo = null)
        {
        }
        /**
         * Get expenses report.
         *
         * @param $accountId
         * @param Date|null $dateFrom
         * @param Date|null $dateTo
         * @return Result
         * @throws NotImplementedException
         */
        public function getExpensesReport($accountId, \Bitrix\Main\Type\Date $dateFrom = null, \Bitrix\Main\Type\Date $dateTo = null)
        {
        }
        /**
         * Return true if it has expenses report.
         *
         * @return bool
         */
        public function hasExpensesReport()
        {
        }
        /**
         * @param $accountId
         * @param array $params
         * @param array $publicPageIds
         * @return Result
         */
        public function updateAnalyticParams($accountId, array $params, array $publicPageIds = [])
        {
        }
    }
    class AccountVkontakte extends \Bitrix\Seo\Analytics\Account implements \Bitrix\Seo\Retargeting\IRequestDirectly
    {
        const TYPE_CODE = 'vkontakte';
        const MAX_ADS_EDIT = 20;
        const CURRENCY_CODE = 'RUB';
        protected static $listRowMap = array('ID' => 'ACCOUNT_ID', 'NAME' => 'NAME');
        public function getList()
        {
        }
        public function getProfile()
        {
        }
        /**
         * @param mixed $accountId VK Ad Account Id.
         * @param Date|null $dateFrom
         * @param Date|null $dateTo
         * @return Response
         */
        public function getExpenses($accountId, \Bitrix\Main\Type\Date $dateFrom = null, \Bitrix\Main\Type\Date $dateTo = null)
        {
        }
        /**
         * @return bool
         */
        public function hasPublicPages()
        {
        }
        /**
         * @param $accountId
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        public function getPublicPages($accountId)
        {
        }
        /**
         * @param $accountId
         * @param array $params
         * @param array $publicPageIds
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        public function updateAnalyticParams($accountId, array $params, array $publicPageIds = [])
        {
        }
        /**
         * @param $accountId
         * @param array $data
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        protected function editAds($accountId, array $data)
        {
        }
        /**
         * @param $accountId
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        protected function getAdsLayout($accountId)
        {
        }
        /**
         * @param array $groupIDs
         * @param array $params
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        protected function editGroupAnalyticParams(array $groupIDs, array $params)
        {
        }
        /**
         * @param array $groupIDs
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        protected function getGroups(array $groupIDs)
        {
        }
        /**
         * @param string $url
         * @return array|false
         */
        protected function parseVkUrl($url)
        {
        }
        /**
         * @param array $postIDs
         * @param array $params
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        protected function editPostAnalyticParams(array $postIDs, array $params)
        {
        }
        /**
         * @param array $postIDs
         * @return Response
         * @throws \Bitrix\Main\SystemException
         */
        protected function getPosts(array $postIDs)
        {
        }
    }
}
namespace {
    class b24connector extends \CModule
    {
        var $MODULE_ID = "b24connector";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        var $errors = \false;
        function b24connector()
        {
        }
        function GetModuleRightList()
        {
        }
        function InstallDB()
        {
        }
        function UnInstallDB()
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
    }
    class CB24ConnectorOpenlineInfoComponent extends \CBitrixComponent
    {
        private $data = array();
        private function formatOperatorMessage()
        {
        }
        private function prepareAuthData()
        {
        }
        private function prepareSessionData()
        {
        }
        private function prepareVariableForTemplate()
        {
        }
        public function executeComponent()
        {
        }
    }
    class B24CButtonsListComponent extends \CBitrixComponent
    {
        protected $errors = array();
        protected function prepareResult()
        {
        }
        protected function checkParams()
        {
        }
        protected function getUserInfo($userId)
        {
        }
        public function executeComponent()
        {
        }
        protected function checkModules()
        {
        }
        protected function hasErrors()
        {
        }
        protected function showErrors()
        {
        }
        protected function getLocalData()
        {
        }
        protected function getRemoteData()
        {
        }
    }
    class B24CButtonListAjaxController
    {
        protected $errors = array();
        protected $action = \null;
        protected $responseData = array();
        protected $requestData = array();
        /** @var HttpRequest $request */
        protected $request = array();
        protected function getActions()
        {
        }
        protected function activate()
        {
        }
        protected function deactivate()
        {
        }
        protected function checkPermissions()
        {
        }
        protected function giveResponse()
        {
        }
        protected function getActionCall()
        {
        }
        protected function hasErrors()
        {
        }
        protected function check()
        {
        }
        protected function prepareRequestData()
        {
        }
        public function exec()
        {
        }
    }
}
namespace Bitrix\B24Connector {
    /**
     * Class Connection
     * @package Bitrix\B24Connector
     */
    class Connection
    {
        /**
         * @return bool|string
         * @throws \Bitrix\Main\LoaderException
         */
        private static function getAppId()
        {
        }
        /**
         * Link site to Bitrix24.Network
         * Code borrowed from socialservices/options.php
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\LoaderException
         *
         */
        private static function linkToNet()
        {
        }
        /**
         * @return bool
         * @throws \Bitrix\Main\ArgumentNullException
         */
        private static function isLinkedToNet()
        {
        }
        /**
         * @return Result
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Exception
         */
        public static function delete()
        {
        }
        /**
         * @param string $title Button title
         * @return string Button HTML.
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getButtonHtml($title = '')
        {
        }
        /**
         * @param string $title Button title
         * @return string HTML for connect button.
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getOptionButtonHtml($title)
        {
        }
        /**
         * @return array Connection fields.
         * @throws \Bitrix\Main\LoaderException
         */
        public static function getFields()
        {
        }
        /**
         * @return string Domain.
         * @throws \Bitrix\Main\LoaderException
         */
        public static function getDomain()
        {
        }
        /**
         * Check if connection exists.
         * @return bool
         */
        public static function isExist()
        {
        }
        /**
         * @param $host
         * @return string
         * @throws \Bitrix\Main\LoaderException
         */
        private static function getUrl($host)
        {
        }
        /**
         * @return string
         * @throws \Bitrix\Main\LoaderException
         */
        private static function getUrlNet()
        {
        }
        /**
         * @return array
         * @throws \Bitrix\Main\LoaderException
         */
        private static function getHostsList()
        {
        }
        /**
         * @return string Url to edit open lines settings.
         */
        public static function getOpenLinesConfigUrl()
        {
        }
        /**
         * @return string Url to edit telephony settings.
         */
        public static function getTelephonyConfigUrl()
        {
        }
        /**
         * @return string Url to edit webform settings.
         */
        public static function getWebformConfigUrl()
        {
        }
        /**
         * @return string Url to edit widgets.
         */
        public static function getWidgetsConfigUrl()
        {
        }
        private static function getDataFromRest($method, $pathToData, $defaultPath = '')
        {
        }
    }
    /**
     * Class Helper.
     * Different useful staff.
     * @package Bitrix\B24Connector
     */
    class Helper
    {
        /**
         * Builds admin menu
         * @param array $aGlobalMenu
         * @param array $aModuleMenu
         * @return array|bool Global menu item.
         */
        public static function onBuildGlobalMenu(&$aGlobalMenu, &$aModuleMenu)
        {
        }
        /**
         * Insert JS on public pages
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function onBeforeProlog()
        {
        }
    }
}
namespace Bitrix\B24connector {
    /**
     * Class ButtonsTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ADD_DATE datetime optional
     * <li> ADD_BY int mandatory
     * <li> NAME string(255) optional
     * <li> SCRIPT string optional
     * </ul>
     *
     * @package Bitrix\B24connector
     **/
    class ButtonTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for NAME field.
         *
         * @return array
         */
        public static function validateName()
        {
        }
    }
}
namespace Bitrix\B24Connector {
    /**
     * Class Button
     * @package Bitrix\B24Connector
     */
    class Button
    {
        const ENUM_TYPE_OPEN_LINE = 'openline';
        const ENUM_TYPE_CRM_FORM = 'crmform';
        const ENUM_TYPE_CALLBACK = 'callback';
        const ENUM_LOCATION_TOP_LEFT = 1;
        const ENUM_LOCATION_TOP_MIDDLE = 2;
        const ENUM_LOCATION_TOP_RIGHT = 3;
        const ENUM_LOCATION_BOTTOM_RIGHT = 4;
        const ENUM_LOCATION_BOTTOM_MIDDLE = 5;
        const ENUM_LOCATION_BOTTOM_LEFT = 6;
        /**
         * @return array
         */
        public static function getTypeList()
        {
        }
        /**
         * @return array
         */
        public static function getLocationList()
        {
        }
    }
}
namespace {
    class currency extends \CModule
    {
        var $MODULE_ID = 'currency';
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = 'Y';
        var $errors = \false;
        function __construct()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function InstallDB()
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function UnInstallFiles()
        {
        }
        protected function installCurrencies()
        {
        }
        /**
         * Returns currency list for install.
         *
         * @param string $baseCurrency
         * @return array
         */
        private static function getCurrencyListForInstall($baseCurrency)
        {
        }
    }
    class CCurrencyMoneyInputComponent extends \CBitrixComponent
    {
        protected $currencyList = array();
        /**
         * Load language file.
         */
        public function onIncludeComponentLang()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * Check Required Modules
         *
         * @throws Exception
         */
        protected function checkModules()
        {
        }
        protected function prepareData()
        {
        }
        protected function formatResult()
        {
        }
        protected function formatNumber($currentValue, $currentCurrency)
        {
        }
        protected function initCore()
        {
        }
        public function executeComponent()
        {
        }
    }
    /**
     * Class MoneyUfComponent
     */
    class MoneyUfComponent extends \Bitrix\Main\Component\BaseUfComponent
    {
        /**
         * @return string
         */
        protected static function getUserTypeId() : string
        {
        }
        /**
         * @return string
         */
        public function getEmptyValueCaption() : string
        {
        }
        /**
         * @return string
         */
        public function getEmptyCurrencyCaption() : string
        {
        }
    }
    class CAllCurrencyLang
    {
        /** @deprecated */
        public const SEP_EMPTY = \Bitrix\Currency\CurrencyClassifier::SEPARATOR_EMPTY;
        /** @deprecated */
        public const SEP_DOT = \Bitrix\Currency\CurrencyClassifier::SEPARATOR_DOT;
        /** @deprecated */
        public const SEP_COMMA = \Bitrix\Currency\CurrencyClassifier::SEPARATOR_COMMA;
        /** @deprecated */
        public const SEP_SPACE = \Bitrix\Currency\CurrencyClassifier::SEPARATOR_SPACE;
        /** @deprecated */
        public const SEP_NBSPACE = \Bitrix\Currency\CurrencyClassifier::SEPARATOR_NBSPACE;
        protected static $arSeparators = array(\Bitrix\Currency\CurrencyClassifier::SEPARATOR_EMPTY => '', \Bitrix\Currency\CurrencyClassifier::SEPARATOR_DOT => '.', \Bitrix\Currency\CurrencyClassifier::SEPARATOR_COMMA => ',', \Bitrix\Currency\CurrencyClassifier::SEPARATOR_SPACE => ' ', \Bitrix\Currency\CurrencyClassifier::SEPARATOR_NBSPACE => '&nbsp;');
        protected static $arDefaultValues = array('FORMAT_STRING' => '#', 'DEC_POINT' => \Bitrix\Currency\CurrencyClassifier::DECIMAL_POINT_DOT, 'THOUSANDS_SEP' => ' ', 'DECIMALS' => 2, 'THOUSANDS_VARIANT' => \Bitrix\Currency\CurrencyClassifier::SEPARATOR_SPACE, 'HIDE_ZERO' => 'N');
        protected static $arCurrencyFormat = array();
        protected static $useHideZero = 0;
        public static function enableUseHideZero()
        {
        }
        public static function disableUseHideZero()
        {
        }
        public static function isAllowUseHideZero()
        {
        }
        public static function checkFields($action, &$fields, $currency = '', $language = '', $getErrors = \false)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($currency, $lang, $arFields)
        {
        }
        public static function Delete($currency, $lang)
        {
        }
        public static function GetByID($currency, $lang)
        {
        }
        public static function GetCurrencyFormat($currency, $lang = \LANGUAGE_ID)
        {
        }
        public static function GetList(&$by, &$order, $currency = "")
        {
        }
        public static function GetDefaultValues()
        {
        }
        public static function GetSeparators()
        {
        }
        public static function GetSeparatorTypes($boolFull = \false)
        {
        }
        public static function GetFormatTemplates()
        {
        }
        public static function GetFormatDescription($currency)
        {
        }
        public static function CurrencyFormat($price, $currency, $useTemplate = \true)
        {
        }
        public static function formatValue($value, array $format, $useTemplate = \true)
        {
        }
        public static function applyTemplate($value, $template)
        {
        }
        public static function checkLanguage($language)
        {
        }
        public static function isExistCurrencyLanguage($currency, $language)
        {
        }
        public static function getParsedCurrencyFormat(string $currency) : ?array
        {
        }
        public static function getPriceControl(string $control, string $currency) : string
        {
        }
        protected static function clearFields($value)
        {
        }
        public static function getUnFormattedValue(string $formattedValue, string $currency, string $lang = \LANGUAGE_ID) : string
        {
        }
        protected static function unFormatValue(string $formattedValue, string $thousandsSeparator, string $decPoint) : string
        {
        }
    }
    class CCurrencyLang extends \CAllCurrencyLang
    {
    }
    class CAllCurrency
    {
        protected static $currencyCache = array();
        /*
        * @deprecated deprecated since currency 9.0.0
        * @see CCurrency::GetByID()
        */
        public static function GetCurrency($currency)
        {
        }
        public function CheckFields($ACTION, &$arFields, $strCurrencyID = \false)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($currency, $arFields)
        {
        }
        public static function Delete($currency)
        {
        }
        public static function GetByID($currency)
        {
        }
        /**
         * @deprecated deprecated since currency 16.0.0
         * @see \Bitrix\Currency\CurrencyManager::getBaseCurrency
         *
         * @return string
         */
        public static function GetBaseCurrency()
        {
        }
        public static function SetBaseCurrency($currency)
        {
        }
        public static function SelectBox($sFieldName, $sValue, $sDefaultValue = '', $bFullName = \true, $JavaFunc = '', $sAdditionalParams = '')
        {
        }
        /**
         * @deprecated deprecated since currency 16.5.0
         * @see \Bitrix\Currency\CurrencyTable::getList
         *
         * @param string &$by
         * @param string &$order
         * @param string $lang
         * @return CDBResult
         */
        public static function GetList(&$by, &$order, $lang = \LANGUAGE_ID)
        {
        }
        /**
         * @deprecated deprecated since currency 16.5.0
         * @see \Bitrix\Currency\CurrencyTable::getList
         *
         * @param string &$by
         * @param string &$order
         * @param string $lang
         * @return CDBResult
         */
        public static function __GetList(&$by, &$order, $lang = \LANGUAGE_ID)
        {
        }
        public static function isUserExists()
        {
        }
        /**
         * @deprecated deprecated since currency 16.5.0
         * @see \Bitrix\Currency\CurrencyManager::getInstalledCurrencies
         *
         * @return array
         */
        public static function getInstalledCurrencies()
        {
        }
        /**
         * @deprecated deprecated since currency 16.5.0
         * @see \Bitrix\Currency\CurrencyManager::clearCurrencyCache
         *
         * @return void
         */
        public static function clearCurrencyCache()
        {
        }
        /**
         * @deprecated deprecated since currency 16.5.0
         * @see \Bitrix\Currency\CurrencyManager::clearTagCache
         *
         * @param string $currency
         * @return void
         */
        public static function clearTagCache($currency)
        {
        }
        public static function checkCurrencyID($currency)
        {
        }
        /**
         * @deprecated deprecated since currency 16.0.0
         * @see \Bitrix\Currency\CurrencyManager::updateBaseRates
         *
         * @param string $currency
         * @return void
         */
        public static function updateCurrencyBaseRate($currency)
        {
        }
        /**
         * @deprecated deprecated since currency 16.0.0
         * @see \Bitrix\Currency\CurrencyManager::updateBaseRates
         *
         * @return void
         */
        public static function updateAllCurrencyBaseRate()
        {
        }
        public static function initCurrencyBaseRateAgent()
        {
        }
        /**
         * @deprecated deprecated since currency 16.0.0
         * @see \Bitrix\Currency\CurrencyManager::updateBaseCurrency
         *
         * @param string $currency
         * @return bool
         */
        protected static function updateBaseCurrency($currency)
        {
        }
        /**
         * @deprecated deprecated since currency 16.0.0
         * @see \Bitrix\Currency\CurrencyManager::updateBaseRates
         *
         * @param string $currency
         * @param string $updateCurrency
         */
        protected static function updateBaseRates($currency = '', $updateCurrency = '')
        {
        }
        protected static function clearFields($value)
        {
        }
    }
    class CCurrency extends \CAllCurrency
    {
    }
    class CAllCurrencyRates
    {
        protected static $currentCache = array();
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function GetList(&$by, &$order, $arFilter = array())
        {
        }
        public static function ConvertCurrency($valSum, $curFrom, $curTo, $valDate = "")
        {
        }
        /**
         * @deprecated deprecated since currency 16.0.0
         * @see CCurrencyRates::GetConvertFactorEx
         *
         * @param float|int $curFrom
         * @param float|int $curTo
         * @param string $valDate
         * @return float|int
         */
        public static function GetConvertFactor($curFrom, $curTo, $valDate = "")
        {
        }
        /**
         * @param float|int $curFrom
         * @param float|int $curTo
         * @param string $valDate
         * @return float|int
         */
        public static function GetConvertFactorEx($curFrom, $curTo, $valDate = "")
        {
        }
        public static function _get_last_rates($valDate, $cur)
        {
        }
    }
}
namespace Bitrix\Currency {
    /**
     * EO_Currency
     * @see \Bitrix\Currency\CurrencyTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getCurrency()
     * @method \Bitrix\Currency\EO_Currency setCurrency(\string|\Bitrix\Main\DB\SqlExpression $currency)
     * @method bool hasCurrency()
     * @method bool isCurrencyFilled()
     * @method bool isCurrencyChanged()
     * @method \int getAmountCnt()
     * @method \Bitrix\Currency\EO_Currency setAmountCnt(\int|\Bitrix\Main\DB\SqlExpression $amountCnt)
     * @method bool hasAmountCnt()
     * @method bool isAmountCntFilled()
     * @method bool isAmountCntChanged()
     * @method \int remindActualAmountCnt()
     * @method \int requireAmountCnt()
     * @method \Bitrix\Currency\EO_Currency resetAmountCnt()
     * @method \Bitrix\Currency\EO_Currency unsetAmountCnt()
     * @method \int fillAmountCnt()
     * @method \float getAmount()
     * @method \Bitrix\Currency\EO_Currency setAmount(\float|\Bitrix\Main\DB\SqlExpression $amount)
     * @method bool hasAmount()
     * @method bool isAmountFilled()
     * @method bool isAmountChanged()
     * @method \float remindActualAmount()
     * @method \float requireAmount()
     * @method \Bitrix\Currency\EO_Currency resetAmount()
     * @method \Bitrix\Currency\EO_Currency unsetAmount()
     * @method \float fillAmount()
     * @method \int getSort()
     * @method \Bitrix\Currency\EO_Currency setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Currency\EO_Currency resetSort()
     * @method \Bitrix\Currency\EO_Currency unsetSort()
     * @method \int fillSort()
     * @method \Bitrix\Main\Type\DateTime getDateUpdate()
     * @method \Bitrix\Currency\EO_Currency setDateUpdate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateUpdate)
     * @method bool hasDateUpdate()
     * @method bool isDateUpdateFilled()
     * @method bool isDateUpdateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateUpdate()
     * @method \Bitrix\Main\Type\DateTime requireDateUpdate()
     * @method \Bitrix\Currency\EO_Currency resetDateUpdate()
     * @method \Bitrix\Currency\EO_Currency unsetDateUpdate()
     * @method \Bitrix\Main\Type\DateTime fillDateUpdate()
     * @method \string getNumcode()
     * @method \Bitrix\Currency\EO_Currency setNumcode(\string|\Bitrix\Main\DB\SqlExpression $numcode)
     * @method bool hasNumcode()
     * @method bool isNumcodeFilled()
     * @method bool isNumcodeChanged()
     * @method \string remindActualNumcode()
     * @method \string requireNumcode()
     * @method \Bitrix\Currency\EO_Currency resetNumcode()
     * @method \Bitrix\Currency\EO_Currency unsetNumcode()
     * @method \string fillNumcode()
     * @method \boolean getBase()
     * @method \Bitrix\Currency\EO_Currency setBase(\boolean|\Bitrix\Main\DB\SqlExpression $base)
     * @method bool hasBase()
     * @method bool isBaseFilled()
     * @method bool isBaseChanged()
     * @method \boolean remindActualBase()
     * @method \boolean requireBase()
     * @method \Bitrix\Currency\EO_Currency resetBase()
     * @method \Bitrix\Currency\EO_Currency unsetBase()
     * @method \boolean fillBase()
     * @method \int getCreatedBy()
     * @method \Bitrix\Currency\EO_Currency setCreatedBy(\int|\Bitrix\Main\DB\SqlExpression $createdBy)
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \int remindActualCreatedBy()
     * @method \int requireCreatedBy()
     * @method \Bitrix\Currency\EO_Currency resetCreatedBy()
     * @method \Bitrix\Currency\EO_Currency unsetCreatedBy()
     * @method \int fillCreatedBy()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Currency\EO_Currency setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Currency\EO_Currency resetDateCreate()
     * @method \Bitrix\Currency\EO_Currency unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \int getModifiedBy()
     * @method \Bitrix\Currency\EO_Currency setModifiedBy(\int|\Bitrix\Main\DB\SqlExpression $modifiedBy)
     * @method bool hasModifiedBy()
     * @method bool isModifiedByFilled()
     * @method bool isModifiedByChanged()
     * @method \int remindActualModifiedBy()
     * @method \int requireModifiedBy()
     * @method \Bitrix\Currency\EO_Currency resetModifiedBy()
     * @method \Bitrix\Currency\EO_Currency unsetModifiedBy()
     * @method \int fillModifiedBy()
     * @method \float getCurrentBaseRate()
     * @method \Bitrix\Currency\EO_Currency setCurrentBaseRate(\float|\Bitrix\Main\DB\SqlExpression $currentBaseRate)
     * @method bool hasCurrentBaseRate()
     * @method bool isCurrentBaseRateFilled()
     * @method bool isCurrentBaseRateChanged()
     * @method \float remindActualCurrentBaseRate()
     * @method \float requireCurrentBaseRate()
     * @method \Bitrix\Currency\EO_Currency resetCurrentBaseRate()
     * @method \Bitrix\Currency\EO_Currency unsetCurrentBaseRate()
     * @method \float fillCurrentBaseRate()
     * @method \Bitrix\Main\EO_User getCreatedByUser()
     * @method \Bitrix\Main\EO_User remindActualCreatedByUser()
     * @method \Bitrix\Main\EO_User requireCreatedByUser()
     * @method \Bitrix\Currency\EO_Currency setCreatedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Currency\EO_Currency resetCreatedByUser()
     * @method \Bitrix\Currency\EO_Currency unsetCreatedByUser()
     * @method bool hasCreatedByUser()
     * @method bool isCreatedByUserFilled()
     * @method bool isCreatedByUserChanged()
     * @method \Bitrix\Main\EO_User fillCreatedByUser()
     * @method \Bitrix\Main\EO_User getModifiedByUser()
     * @method \Bitrix\Main\EO_User remindActualModifiedByUser()
     * @method \Bitrix\Main\EO_User requireModifiedByUser()
     * @method \Bitrix\Currency\EO_Currency setModifiedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Currency\EO_Currency resetModifiedByUser()
     * @method \Bitrix\Currency\EO_Currency unsetModifiedByUser()
     * @method bool hasModifiedByUser()
     * @method bool isModifiedByUserFilled()
     * @method bool isModifiedByUserChanged()
     * @method \Bitrix\Main\EO_User fillModifiedByUser()
     * @method \Bitrix\Currency\EO_CurrencyLang getLangFormat()
     * @method \Bitrix\Currency\EO_CurrencyLang remindActualLangFormat()
     * @method \Bitrix\Currency\EO_CurrencyLang requireLangFormat()
     * @method \Bitrix\Currency\EO_Currency setLangFormat(\Bitrix\Currency\EO_CurrencyLang $object)
     * @method \Bitrix\Currency\EO_Currency resetLangFormat()
     * @method \Bitrix\Currency\EO_Currency unsetLangFormat()
     * @method bool hasLangFormat()
     * @method bool isLangFormatFilled()
     * @method bool isLangFormatChanged()
     * @method \Bitrix\Currency\EO_CurrencyLang fillLangFormat()
     * @method \Bitrix\Currency\EO_CurrencyLang getCurrentLangFormat()
     * @method \Bitrix\Currency\EO_CurrencyLang remindActualCurrentLangFormat()
     * @method \Bitrix\Currency\EO_CurrencyLang requireCurrentLangFormat()
     * @method \Bitrix\Currency\EO_Currency setCurrentLangFormat(\Bitrix\Currency\EO_CurrencyLang $object)
     * @method \Bitrix\Currency\EO_Currency resetCurrentLangFormat()
     * @method \Bitrix\Currency\EO_Currency unsetCurrentLangFormat()
     * @method bool hasCurrentLangFormat()
     * @method bool isCurrentLangFormatFilled()
     * @method bool isCurrentLangFormatChanged()
     * @method \Bitrix\Currency\EO_CurrencyLang fillCurrentLangFormat()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Currency\EO_Currency set($fieldName, $value)
     * @method \Bitrix\Currency\EO_Currency reset($fieldName)
     * @method \Bitrix\Currency\EO_Currency unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Currency\EO_Currency wakeUp($data)
     */
    class EO_Currency
    {
        /* @var \Bitrix\Currency\CurrencyTable */
        public static $dataClass = '\\Bitrix\\Currency\\CurrencyTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Currency_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getCurrencyList()
     * @method \int[] getAmountCntList()
     * @method \int[] fillAmountCnt()
     * @method \float[] getAmountList()
     * @method \float[] fillAmount()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     * @method \Bitrix\Main\Type\DateTime[] getDateUpdateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateUpdate()
     * @method \string[] getNumcodeList()
     * @method \string[] fillNumcode()
     * @method \boolean[] getBaseList()
     * @method \boolean[] fillBase()
     * @method \int[] getCreatedByList()
     * @method \int[] fillCreatedBy()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \int[] getModifiedByList()
     * @method \int[] fillModifiedBy()
     * @method \float[] getCurrentBaseRateList()
     * @method \float[] fillCurrentBaseRate()
     * @method \Bitrix\Main\EO_User[] getCreatedByUserList()
     * @method \Bitrix\Currency\EO_Currency_Collection getCreatedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCreatedByUser()
     * @method \Bitrix\Main\EO_User[] getModifiedByUserList()
     * @method \Bitrix\Currency\EO_Currency_Collection getModifiedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillModifiedByUser()
     * @method \Bitrix\Currency\EO_CurrencyLang[] getLangFormatList()
     * @method \Bitrix\Currency\EO_Currency_Collection getLangFormatCollection()
     * @method \Bitrix\Currency\EO_CurrencyLang_Collection fillLangFormat()
     * @method \Bitrix\Currency\EO_CurrencyLang[] getCurrentLangFormatList()
     * @method \Bitrix\Currency\EO_Currency_Collection getCurrentLangFormatCollection()
     * @method \Bitrix\Currency\EO_CurrencyLang_Collection fillCurrentLangFormat()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Currency\EO_Currency $object)
     * @method bool has(\Bitrix\Currency\EO_Currency $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Currency\EO_Currency getByPrimary($primary)
     * @method \Bitrix\Currency\EO_Currency[] getAll()
     * @method bool remove(\Bitrix\Currency\EO_Currency $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Currency\EO_Currency_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Currency\EO_Currency current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Currency_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Currency\CurrencyTable */
        public static $dataClass = '\\Bitrix\\Currency\\CurrencyTable';
    }
    /**
     * @method static EO_Currency_Query query()
     * @method static EO_Currency_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Currency_Result getById($id)
     * @method static EO_Currency_Result getList(array $parameters = array())
     * @method static EO_Currency_Entity getEntity()
     * @method static \Bitrix\Currency\EO_Currency createObject($setDefaultValues = true)
     * @method static \Bitrix\Currency\EO_Currency_Collection createCollection()
     * @method static \Bitrix\Currency\EO_Currency wakeUpObject($row)
     * @method static \Bitrix\Currency\EO_Currency_Collection wakeUpCollection($rows)
     */
    class CurrencyTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Currency_Result exec()
     * @method \Bitrix\Currency\EO_Currency fetchObject()
     * @method \Bitrix\Currency\EO_Currency_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Currency_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Currency\EO_Currency fetchObject()
     * @method \Bitrix\Currency\EO_Currency_Collection fetchCollection()
     */
    class EO_Currency_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Currency\EO_Currency createObject($setDefaultValues = true)
     * @method \Bitrix\Currency\EO_Currency_Collection createCollection()
     * @method \Bitrix\Currency\EO_Currency wakeUpObject($row)
     * @method \Bitrix\Currency\EO_Currency_Collection wakeUpCollection($rows)
     */
    class EO_Currency_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_CurrencyLang
     * @see \Bitrix\Currency\CurrencyLangTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getCurrency()
     * @method \Bitrix\Currency\EO_CurrencyLang setCurrency(\string|\Bitrix\Main\DB\SqlExpression $currency)
     * @method bool hasCurrency()
     * @method bool isCurrencyFilled()
     * @method bool isCurrencyChanged()
     * @method \string getLid()
     * @method \Bitrix\Currency\EO_CurrencyLang setLid(\string|\Bitrix\Main\DB\SqlExpression $lid)
     * @method bool hasLid()
     * @method bool isLidFilled()
     * @method bool isLidChanged()
     * @method \string getFormatString()
     * @method \Bitrix\Currency\EO_CurrencyLang setFormatString(\string|\Bitrix\Main\DB\SqlExpression $formatString)
     * @method bool hasFormatString()
     * @method bool isFormatStringFilled()
     * @method bool isFormatStringChanged()
     * @method \string remindActualFormatString()
     * @method \string requireFormatString()
     * @method \Bitrix\Currency\EO_CurrencyLang resetFormatString()
     * @method \Bitrix\Currency\EO_CurrencyLang unsetFormatString()
     * @method \string fillFormatString()
     * @method \string getFullName()
     * @method \Bitrix\Currency\EO_CurrencyLang setFullName(\string|\Bitrix\Main\DB\SqlExpression $fullName)
     * @method bool hasFullName()
     * @method bool isFullNameFilled()
     * @method bool isFullNameChanged()
     * @method \string remindActualFullName()
     * @method \string requireFullName()
     * @method \Bitrix\Currency\EO_CurrencyLang resetFullName()
     * @method \Bitrix\Currency\EO_CurrencyLang unsetFullName()
     * @method \string fillFullName()
     * @method \string getDecPoint()
     * @method \Bitrix\Currency\EO_CurrencyLang setDecPoint(\string|\Bitrix\Main\DB\SqlExpression $decPoint)
     * @method bool hasDecPoint()
     * @method bool isDecPointFilled()
     * @method bool isDecPointChanged()
     * @method \string remindActualDecPoint()
     * @method \string requireDecPoint()
     * @method \Bitrix\Currency\EO_CurrencyLang resetDecPoint()
     * @method \Bitrix\Currency\EO_CurrencyLang unsetDecPoint()
     * @method \string fillDecPoint()
     * @method \string getThousandsSep()
     * @method \Bitrix\Currency\EO_CurrencyLang setThousandsSep(\string|\Bitrix\Main\DB\SqlExpression $thousandsSep)
     * @method bool hasThousandsSep()
     * @method bool isThousandsSepFilled()
     * @method bool isThousandsSepChanged()
     * @method \string remindActualThousandsSep()
     * @method \string requireThousandsSep()
     * @method \Bitrix\Currency\EO_CurrencyLang resetThousandsSep()
     * @method \Bitrix\Currency\EO_CurrencyLang unsetThousandsSep()
     * @method \string fillThousandsSep()
     * @method \int getDecimals()
     * @method \Bitrix\Currency\EO_CurrencyLang setDecimals(\int|\Bitrix\Main\DB\SqlExpression $decimals)
     * @method bool hasDecimals()
     * @method bool isDecimalsFilled()
     * @method bool isDecimalsChanged()
     * @method \int remindActualDecimals()
     * @method \int requireDecimals()
     * @method \Bitrix\Currency\EO_CurrencyLang resetDecimals()
     * @method \Bitrix\Currency\EO_CurrencyLang unsetDecimals()
     * @method \int fillDecimals()
     * @method \string getThousandsVariant()
     * @method \Bitrix\Currency\EO_CurrencyLang setThousandsVariant(\string|\Bitrix\Main\DB\SqlExpression $thousandsVariant)
     * @method bool hasThousandsVariant()
     * @method bool isThousandsVariantFilled()
     * @method bool isThousandsVariantChanged()
     * @method \string remindActualThousandsVariant()
     * @method \string requireThousandsVariant()
     * @method \Bitrix\Currency\EO_CurrencyLang resetThousandsVariant()
     * @method \Bitrix\Currency\EO_CurrencyLang unsetThousandsVariant()
     * @method \string fillThousandsVariant()
     * @method \boolean getHideZero()
     * @method \Bitrix\Currency\EO_CurrencyLang setHideZero(\boolean|\Bitrix\Main\DB\SqlExpression $hideZero)
     * @method bool hasHideZero()
     * @method bool isHideZeroFilled()
     * @method bool isHideZeroChanged()
     * @method \boolean remindActualHideZero()
     * @method \boolean requireHideZero()
     * @method \Bitrix\Currency\EO_CurrencyLang resetHideZero()
     * @method \Bitrix\Currency\EO_CurrencyLang unsetHideZero()
     * @method \boolean fillHideZero()
     * @method \int getCreatedBy()
     * @method \Bitrix\Currency\EO_CurrencyLang setCreatedBy(\int|\Bitrix\Main\DB\SqlExpression $createdBy)
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \int remindActualCreatedBy()
     * @method \int requireCreatedBy()
     * @method \Bitrix\Currency\EO_CurrencyLang resetCreatedBy()
     * @method \Bitrix\Currency\EO_CurrencyLang unsetCreatedBy()
     * @method \int fillCreatedBy()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Currency\EO_CurrencyLang setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Currency\EO_CurrencyLang resetDateCreate()
     * @method \Bitrix\Currency\EO_CurrencyLang unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \int getModifiedBy()
     * @method \Bitrix\Currency\EO_CurrencyLang setModifiedBy(\int|\Bitrix\Main\DB\SqlExpression $modifiedBy)
     * @method bool hasModifiedBy()
     * @method bool isModifiedByFilled()
     * @method bool isModifiedByChanged()
     * @method \int remindActualModifiedBy()
     * @method \int requireModifiedBy()
     * @method \Bitrix\Currency\EO_CurrencyLang resetModifiedBy()
     * @method \Bitrix\Currency\EO_CurrencyLang unsetModifiedBy()
     * @method \int fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Currency\EO_CurrencyLang setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Currency\EO_CurrencyLang resetTimestampX()
     * @method \Bitrix\Currency\EO_CurrencyLang unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \Bitrix\Main\EO_User getCreatedByUser()
     * @method \Bitrix\Main\EO_User remindActualCreatedByUser()
     * @method \Bitrix\Main\EO_User requireCreatedByUser()
     * @method \Bitrix\Currency\EO_CurrencyLang setCreatedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Currency\EO_CurrencyLang resetCreatedByUser()
     * @method \Bitrix\Currency\EO_CurrencyLang unsetCreatedByUser()
     * @method bool hasCreatedByUser()
     * @method bool isCreatedByUserFilled()
     * @method bool isCreatedByUserChanged()
     * @method \Bitrix\Main\EO_User fillCreatedByUser()
     * @method \Bitrix\Main\EO_User getModifiedByUser()
     * @method \Bitrix\Main\EO_User remindActualModifiedByUser()
     * @method \Bitrix\Main\EO_User requireModifiedByUser()
     * @method \Bitrix\Currency\EO_CurrencyLang setModifiedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Currency\EO_CurrencyLang resetModifiedByUser()
     * @method \Bitrix\Currency\EO_CurrencyLang unsetModifiedByUser()
     * @method bool hasModifiedByUser()
     * @method bool isModifiedByUserFilled()
     * @method bool isModifiedByUserChanged()
     * @method \Bitrix\Main\EO_User fillModifiedByUser()
     * @method \Bitrix\Main\Localization\EO_Language getLanguage()
     * @method \Bitrix\Main\Localization\EO_Language remindActualLanguage()
     * @method \Bitrix\Main\Localization\EO_Language requireLanguage()
     * @method \Bitrix\Currency\EO_CurrencyLang setLanguage(\Bitrix\Main\Localization\EO_Language $object)
     * @method \Bitrix\Currency\EO_CurrencyLang resetLanguage()
     * @method \Bitrix\Currency\EO_CurrencyLang unsetLanguage()
     * @method bool hasLanguage()
     * @method bool isLanguageFilled()
     * @method bool isLanguageChanged()
     * @method \Bitrix\Main\Localization\EO_Language fillLanguage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Currency\EO_CurrencyLang set($fieldName, $value)
     * @method \Bitrix\Currency\EO_CurrencyLang reset($fieldName)
     * @method \Bitrix\Currency\EO_CurrencyLang unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Currency\EO_CurrencyLang wakeUp($data)
     */
    class EO_CurrencyLang
    {
        /* @var \Bitrix\Currency\CurrencyLangTable */
        public static $dataClass = '\\Bitrix\\Currency\\CurrencyLangTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_CurrencyLang_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getCurrencyList()
     * @method \string[] getLidList()
     * @method \string[] getFormatStringList()
     * @method \string[] fillFormatString()
     * @method \string[] getFullNameList()
     * @method \string[] fillFullName()
     * @method \string[] getDecPointList()
     * @method \string[] fillDecPoint()
     * @method \string[] getThousandsSepList()
     * @method \string[] fillThousandsSep()
     * @method \int[] getDecimalsList()
     * @method \int[] fillDecimals()
     * @method \string[] getThousandsVariantList()
     * @method \string[] fillThousandsVariant()
     * @method \boolean[] getHideZeroList()
     * @method \boolean[] fillHideZero()
     * @method \int[] getCreatedByList()
     * @method \int[] fillCreatedBy()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \int[] getModifiedByList()
     * @method \int[] fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \Bitrix\Main\EO_User[] getCreatedByUserList()
     * @method \Bitrix\Currency\EO_CurrencyLang_Collection getCreatedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCreatedByUser()
     * @method \Bitrix\Main\EO_User[] getModifiedByUserList()
     * @method \Bitrix\Currency\EO_CurrencyLang_Collection getModifiedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillModifiedByUser()
     * @method \Bitrix\Main\Localization\EO_Language[] getLanguageList()
     * @method \Bitrix\Currency\EO_CurrencyLang_Collection getLanguageCollection()
     * @method \Bitrix\Main\Localization\EO_Language_Collection fillLanguage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Currency\EO_CurrencyLang $object)
     * @method bool has(\Bitrix\Currency\EO_CurrencyLang $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Currency\EO_CurrencyLang getByPrimary($primary)
     * @method \Bitrix\Currency\EO_CurrencyLang[] getAll()
     * @method bool remove(\Bitrix\Currency\EO_CurrencyLang $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Currency\EO_CurrencyLang_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Currency\EO_CurrencyLang current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_CurrencyLang_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Currency\CurrencyLangTable */
        public static $dataClass = '\\Bitrix\\Currency\\CurrencyLangTable';
    }
    /**
     * @method static EO_CurrencyLang_Query query()
     * @method static EO_CurrencyLang_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_CurrencyLang_Result getById($id)
     * @method static EO_CurrencyLang_Result getList(array $parameters = array())
     * @method static EO_CurrencyLang_Entity getEntity()
     * @method static \Bitrix\Currency\EO_CurrencyLang createObject($setDefaultValues = true)
     * @method static \Bitrix\Currency\EO_CurrencyLang_Collection createCollection()
     * @method static \Bitrix\Currency\EO_CurrencyLang wakeUpObject($row)
     * @method static \Bitrix\Currency\EO_CurrencyLang_Collection wakeUpCollection($rows)
     */
    class CurrencyLangTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_CurrencyLang_Result exec()
     * @method \Bitrix\Currency\EO_CurrencyLang fetchObject()
     * @method \Bitrix\Currency\EO_CurrencyLang_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_CurrencyLang_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Currency\EO_CurrencyLang fetchObject()
     * @method \Bitrix\Currency\EO_CurrencyLang_Collection fetchCollection()
     */
    class EO_CurrencyLang_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Currency\EO_CurrencyLang createObject($setDefaultValues = true)
     * @method \Bitrix\Currency\EO_CurrencyLang_Collection createCollection()
     * @method \Bitrix\Currency\EO_CurrencyLang wakeUpObject($row)
     * @method \Bitrix\Currency\EO_CurrencyLang_Collection wakeUpCollection($rows)
     */
    class EO_CurrencyLang_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_CurrencyRate
     * @see \Bitrix\Currency\CurrencyRateTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Currency\EO_CurrencyRate setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getCurrency()
     * @method \Bitrix\Currency\EO_CurrencyRate setCurrency(\string|\Bitrix\Main\DB\SqlExpression $currency)
     * @method bool hasCurrency()
     * @method bool isCurrencyFilled()
     * @method bool isCurrencyChanged()
     * @method \string getBaseCurrency()
     * @method \Bitrix\Currency\EO_CurrencyRate setBaseCurrency(\string|\Bitrix\Main\DB\SqlExpression $baseCurrency)
     * @method bool hasBaseCurrency()
     * @method bool isBaseCurrencyFilled()
     * @method bool isBaseCurrencyChanged()
     * @method \Bitrix\Main\Type\Date getDateRate()
     * @method \Bitrix\Currency\EO_CurrencyRate setDateRate(\Bitrix\Main\Type\Date|\Bitrix\Main\DB\SqlExpression $dateRate)
     * @method bool hasDateRate()
     * @method bool isDateRateFilled()
     * @method bool isDateRateChanged()
     * @method \int getRateCnt()
     * @method \Bitrix\Currency\EO_CurrencyRate setRateCnt(\int|\Bitrix\Main\DB\SqlExpression $rateCnt)
     * @method bool hasRateCnt()
     * @method bool isRateCntFilled()
     * @method bool isRateCntChanged()
     * @method \int remindActualRateCnt()
     * @method \int requireRateCnt()
     * @method \Bitrix\Currency\EO_CurrencyRate resetRateCnt()
     * @method \Bitrix\Currency\EO_CurrencyRate unsetRateCnt()
     * @method \int fillRateCnt()
     * @method \float getRate()
     * @method \Bitrix\Currency\EO_CurrencyRate setRate(\float|\Bitrix\Main\DB\SqlExpression $rate)
     * @method bool hasRate()
     * @method bool isRateFilled()
     * @method bool isRateChanged()
     * @method \float remindActualRate()
     * @method \float requireRate()
     * @method \Bitrix\Currency\EO_CurrencyRate resetRate()
     * @method \Bitrix\Currency\EO_CurrencyRate unsetRate()
     * @method \float fillRate()
     * @method \int getCreatedBy()
     * @method \Bitrix\Currency\EO_CurrencyRate setCreatedBy(\int|\Bitrix\Main\DB\SqlExpression $createdBy)
     * @method bool hasCreatedBy()
     * @method bool isCreatedByFilled()
     * @method bool isCreatedByChanged()
     * @method \int remindActualCreatedBy()
     * @method \int requireCreatedBy()
     * @method \Bitrix\Currency\EO_CurrencyRate resetCreatedBy()
     * @method \Bitrix\Currency\EO_CurrencyRate unsetCreatedBy()
     * @method \int fillCreatedBy()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Currency\EO_CurrencyRate setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Currency\EO_CurrencyRate resetDateCreate()
     * @method \Bitrix\Currency\EO_CurrencyRate unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \int getModifiedBy()
     * @method \Bitrix\Currency\EO_CurrencyRate setModifiedBy(\int|\Bitrix\Main\DB\SqlExpression $modifiedBy)
     * @method bool hasModifiedBy()
     * @method bool isModifiedByFilled()
     * @method bool isModifiedByChanged()
     * @method \int remindActualModifiedBy()
     * @method \int requireModifiedBy()
     * @method \Bitrix\Currency\EO_CurrencyRate resetModifiedBy()
     * @method \Bitrix\Currency\EO_CurrencyRate unsetModifiedBy()
     * @method \int fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime getTimestampX()
     * @method \Bitrix\Currency\EO_CurrencyRate setTimestampX(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $timestampX)
     * @method bool hasTimestampX()
     * @method bool isTimestampXFilled()
     * @method bool isTimestampXChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTimestampX()
     * @method \Bitrix\Main\Type\DateTime requireTimestampX()
     * @method \Bitrix\Currency\EO_CurrencyRate resetTimestampX()
     * @method \Bitrix\Currency\EO_CurrencyRate unsetTimestampX()
     * @method \Bitrix\Main\Type\DateTime fillTimestampX()
     * @method \Bitrix\Main\EO_User getCreatedByUser()
     * @method \Bitrix\Main\EO_User remindActualCreatedByUser()
     * @method \Bitrix\Main\EO_User requireCreatedByUser()
     * @method \Bitrix\Currency\EO_CurrencyRate setCreatedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Currency\EO_CurrencyRate resetCreatedByUser()
     * @method \Bitrix\Currency\EO_CurrencyRate unsetCreatedByUser()
     * @method bool hasCreatedByUser()
     * @method bool isCreatedByUserFilled()
     * @method bool isCreatedByUserChanged()
     * @method \Bitrix\Main\EO_User fillCreatedByUser()
     * @method \Bitrix\Main\EO_User getModifiedByUser()
     * @method \Bitrix\Main\EO_User remindActualModifiedByUser()
     * @method \Bitrix\Main\EO_User requireModifiedByUser()
     * @method \Bitrix\Currency\EO_CurrencyRate setModifiedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Currency\EO_CurrencyRate resetModifiedByUser()
     * @method \Bitrix\Currency\EO_CurrencyRate unsetModifiedByUser()
     * @method bool hasModifiedByUser()
     * @method bool isModifiedByUserFilled()
     * @method bool isModifiedByUserChanged()
     * @method \Bitrix\Main\EO_User fillModifiedByUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Currency\EO_CurrencyRate set($fieldName, $value)
     * @method \Bitrix\Currency\EO_CurrencyRate reset($fieldName)
     * @method \Bitrix\Currency\EO_CurrencyRate unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Currency\EO_CurrencyRate wakeUp($data)
     */
    class EO_CurrencyRate
    {
        /* @var \Bitrix\Currency\CurrencyRateTable */
        public static $dataClass = '\\Bitrix\\Currency\\CurrencyRateTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_CurrencyRate_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getCurrencyList()
     * @method \string[] getBaseCurrencyList()
     * @method \Bitrix\Main\Type\Date[] getDateRateList()
     * @method \int[] getRateCntList()
     * @method \int[] fillRateCnt()
     * @method \float[] getRateList()
     * @method \float[] fillRate()
     * @method \int[] getCreatedByList()
     * @method \int[] fillCreatedBy()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \int[] getModifiedByList()
     * @method \int[] fillModifiedBy()
     * @method \Bitrix\Main\Type\DateTime[] getTimestampXList()
     * @method \Bitrix\Main\Type\DateTime[] fillTimestampX()
     * @method \Bitrix\Main\EO_User[] getCreatedByUserList()
     * @method \Bitrix\Currency\EO_CurrencyRate_Collection getCreatedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillCreatedByUser()
     * @method \Bitrix\Main\EO_User[] getModifiedByUserList()
     * @method \Bitrix\Currency\EO_CurrencyRate_Collection getModifiedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillModifiedByUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Currency\EO_CurrencyRate $object)
     * @method bool has(\Bitrix\Currency\EO_CurrencyRate $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Currency\EO_CurrencyRate getByPrimary($primary)
     * @method \Bitrix\Currency\EO_CurrencyRate[] getAll()
     * @method bool remove(\Bitrix\Currency\EO_CurrencyRate $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Currency\EO_CurrencyRate_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Currency\EO_CurrencyRate current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_CurrencyRate_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Currency\CurrencyRateTable */
        public static $dataClass = '\\Bitrix\\Currency\\CurrencyRateTable';
    }
    /**
     * @method static EO_CurrencyRate_Query query()
     * @method static EO_CurrencyRate_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_CurrencyRate_Result getById($id)
     * @method static EO_CurrencyRate_Result getList(array $parameters = array())
     * @method static EO_CurrencyRate_Entity getEntity()
     * @method static \Bitrix\Currency\EO_CurrencyRate createObject($setDefaultValues = true)
     * @method static \Bitrix\Currency\EO_CurrencyRate_Collection createCollection()
     * @method static \Bitrix\Currency\EO_CurrencyRate wakeUpObject($row)
     * @method static \Bitrix\Currency\EO_CurrencyRate_Collection wakeUpCollection($rows)
     */
    class CurrencyRateTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_CurrencyRate_Result exec()
     * @method \Bitrix\Currency\EO_CurrencyRate fetchObject()
     * @method \Bitrix\Currency\EO_CurrencyRate_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_CurrencyRate_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Currency\EO_CurrencyRate fetchObject()
     * @method \Bitrix\Currency\EO_CurrencyRate_Collection fetchCollection()
     */
    class EO_CurrencyRate_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Currency\EO_CurrencyRate createObject($setDefaultValues = true)
     * @method \Bitrix\Currency\EO_CurrencyRate_Collection createCollection()
     * @method \Bitrix\Currency\EO_CurrencyRate wakeUpObject($row)
     * @method \Bitrix\Currency\EO_CurrencyRate_Collection wakeUpCollection($rows)
     */
    class EO_CurrencyRate_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace {
    class CCurrencyRates extends \CAllCurrencyRates
    {
        public static function _get_last_rates($valDate, $cur)
        {
        }
    }
}
namespace Bitrix\Currency\Compatible {
    /**
     * Class Tools
     * Provides various useful methods for old api.
     *
     * @package Bitrix\Currency\Compatible
     */
    class Tools
    {
        protected static $datetimeTemplate = null;
        /**
         * Return datetime template for old api emulation.
         *
         * @internal
         *
         * @return string
         */
        public static function getDatetimeExpressionTemplate()
        {
        }
    }
}
namespace Bitrix\Currency\UserField\Types {
    class MoneyType extends \Bitrix\Main\UserField\Types\BaseType
    {
        public const USER_TYPE_ID = 'money', DB_SEPARATOR = '|', RENDER_COMPONENT = 'bitrix:currency.field.money';
        public static function getDescription() : array
        {
        }
        /**
         * @return string
         */
        public static function getDbColumnType() : string
        {
        }
        /**
         * @param array $userField
         * @param $value
         * @return string
         */
        public static function onBeforeSave(array $userField, $value)
        {
        }
        /**
         * @param array $userField
         * @return array
         */
        public static function prepareSettings(array $userField) : array
        {
        }
        /**
         * @param string $value
         * @param string|null $currency
         * @return string
         */
        public static function formatToDb(string $value, ?string $currency) : string
        {
        }
        /**
         * @param string|null $value
         * @return array
         */
        public static function unFormatFromDb(?string $value) : array
        {
        }
    }
}
namespace Bitrix\Currency\UserField {
    /**
     * Class Money
     * @package Bitrix\Currency\UserField
     * @deprecated
     */
    class Money extends \Bitrix\Main\UserField\TypeBase
    {
        const USER_TYPE_ID = \Bitrix\Currency\UserField\Types\MoneyType::USER_TYPE_ID;
        const DB_SEPARATOR = \Bitrix\Currency\UserField\Types\MoneyType::DB_SEPARATOR;
        /**
         * @return array
         */
        public static function getUserTypeDescription()
        {
        }
        /**
         * @param $userField
         * @param array $additionalParameters
         * @return string
         */
        public static function getPublicView($userField, $additionalParameters = [])
        {
        }
        /**
         * @param $userField
         * @param array $additionalParameters
         * @return string
         */
        public static function getPublicEdit($userField, $additionalParameters = [])
        {
        }
        /**
         * @param array|bool $userField
         * @param $additionalParameters
         * @param $fromForm
         * @return string
         */
        public static function getSettingsHtml($userField = false, $additionalParameters, $fromForm)
        {
        }
        /**
         * @param $userField
         * @param $additionalParameters
         * @return string
         */
        public static function getEditFormHtml($userField, $additionalParameters)
        {
        }
        /**
         * @param $userField
         * @param $additionalParameters
         * @return string
         */
        public static function getAdminListViewHtml($userField, $additionalParameters)
        {
        }
        /**
         * @param $userField
         * @param $additionalParameters
         * @return string
         */
        public static function getAdminListEditHtml($userField, $additionalParameters)
        {
        }
        /**
         * @param $userField
         * @return string
         */
        public static function getPublicText($userField)
        {
        }
        /**
         * @param $userField
         * @return string
         */
        public static function GetDBColumnType($userField)
        {
        }
        /**
         * @param $userField
         * @param $value
         * @return string
         */
        public static function OnBeforeSave($userField, $value)
        {
        }
        /**
         * @param $userField
         * @return array
         */
        public static function PrepareSettings($userField)
        {
        }
        /**
         * @param $value
         * @param $currency
         * @return string
         */
        protected static function formatToDB($value, $currency)
        {
        }
        /**
         * @param $value
         * @return array
         */
        protected static function unFormatFromDB($value)
        {
        }
        /**
         * @param $userField
         * @param $control
         * @return string
         * @deprecated
         */
        public static function getEditFormHtmlMulty($userField, $control)
        {
        }
        /**
         * @deprecated deprecated since currency 17.5.2
         *
         * @return null|array
         */
        public static function getListCurrency()
        {
        }
        /**
         * @param $userField
         * @param $fieldName
         * @param $dbValue
         * @return false|string
         * @deprecated
         */
        protected static function getInput($userField, $fieldName, $dbValue)
        {
        }
    }
}
namespace Bitrix\Currency {
    /**
     * Class CurrencyTable
     *
     * @package Bitrix\Currency
     **/
    class CurrencyManager
    {
        const CACHE_BASE_CURRENCY_ID = 'currency_base_currency';
        const CACHE_CURRENCY_LIST_ID = 'currency_currency_list';
        const CACHE_CURRENCY_SHORT_LIST_ID = 'currency_short_list_';
        const EVENT_ON_AFTER_UPDATE_BASE_RATE = 'onAfterUpdateCurrencyBaseRate';
        const EVENT_ON_UPDATE_BASE_CURRENCY = 'onUpdateBaseCurrency';
        const EVENT_ON_AFTER_UPDATE_BASE_CURRENCY = 'onAfterUpdateBaseCurrency';
        protected static $baseCurrency = '';
        /**
         * Check currency id.
         *
         * @param string $currency	Currency id.
         * @return bool|string
         */
        public static function checkCurrencyID($currency)
        {
        }
        /**
         * Check language id.
         *
         * @param string $language	Language.
         * @return bool|string
         */
        public static function checkLanguage($language)
        {
        }
        /**
         * Return base currency.
         *
         * @return string
         */
        public static function getBaseCurrency()
        {
        }
        /**
         * Return currency short list.
         *
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getCurrencyList()
        {
        }
        /**
         * Verifying the existence of the currency by its code.
         *
         * @param string $currency		Currency code.
         * @return bool
         */
        public static function isCurrencyExist($currency)
        {
        }
        /**
         * Return currency list, create to install module.
         *
         * @return array
         */
        public static function getInstalledCurrencies()
        {
        }
        /**
         * Clear currency cache.
         *
         * @param string $language		Language id.
         * @return void
         */
        public static function clearCurrencyCache($language = '')
        {
        }
        /**
         * Clear tag currency cache.
         *
         * @param string $currency	Currency id.
         * @return void
         */
        public static function clearTagCache($currency)
        {
        }
        /**
         * Agent for update current currencies rates to base currency.
         *
         * @return string
         */
        public static function currencyBaseRateAgent()
        {
        }
        /**
         * Update current currencies rates to base currency.
         *
         * @param string $updateCurrency		Update currency id.
         * @return void
         * @throws Main\ArgumentException
         * @throws \Exception
         */
        public static function updateBaseRates($updateCurrency = '')
        {
        }
        /**
         * Update base currency.
         *
         * @param string $currency			Currency id.
         * @return bool
         */
        public static function updateBaseCurrency($currency)
        {
        }
    }
}
namespace Bitrix\Currency\Integration {
    class IblockMoneyProperty
    {
        const USER_TYPE = 'Money';
        const SEPARATOR = '|';
        /**
         * Returns property type description.
         *
         * @return array
         */
        public static function getUserTypeDescription()
        {
        }
        /**
         * Return html for public edit value.
         *
         * @param array $property Property data.
         * @param array $value Current value.
         * @param array $controlSettings Form data.
         * @return string
         */
        public static function getPublicEditHTML($property, $value, $controlSettings)
        {
        }
        /**
         * Return html for public view value.
         *
         * @param array $property Property data.
         * @param array $value Current value.
         * @param array $controlSettings Form data.
         * @return string
         */
        public static function getPublicViewHTML($property, $value, $controlSettings)
        {
        }
        /**
         * The method should return the html display for editing property values in the administrative part.
         *
         * @param array $property Property data.
         * @param array $value Current value.
         * @param array $controlSettings Form data.
         * @return string
         */
        public static function getPropertyFieldHtml($property, $value, $controlSettings)
        {
        }
        /**
         * The method must return safe HTML display the value of the properties on the list of items the administrative part.
         *
         * @param array $property Property data.
         * @param array $value Current value.
         * @param array $controlSettings Form data.
         * @return mixed|string
         */
        public static function getAdminListViewHTML($property, $value, $controlSettings)
        {
        }
        /**
         * Check fields before inserting into the database.
         *
         * @param array $property Property data.
         * @param array $value Current value.
         * @return array An empty array, if no errors.
         */
        public static function checkFields($property, $value)
        {
        }
        /**
         * Get the length of the value. Checks completion of mandatory.
         *
         * @param array $property Property data.
         * @param array $value Current value.
         * @return int
         */
        public static function getLength($property, $value)
        {
        }
        /**
         * The method is to convert the value of a format suitable for storage in a database.
         *
         * @param array $property Property data.
         * @param array $value Current value.
         * @return mixed
         */
        public static function convertToDB($property, $value)
        {
        }
        /**
         * The method is to convert the property value in the processing format.
         *
         * @param array $property Property data.
         * @param array $value Current value.
         * @return mixed
         */
        public static function convertFromDB($property, $value)
        {
        }
        public static function getSeparatedValues($value)
        {
        }
        /**
         * Add values in filter.
         *
         * @param array $property Property data.
         * @param array $controlSettings Form data.
         * @param array &$filter Filter data.
         * @param bool &$filtered Marker filter.
         * @return void
         */
        public static function addFilterFields($property, $controlSettings, &$filter, &$filtered)
        {
        }
        protected static function getListCurrency()
        {
        }
        protected static function getJsHandlerSelector($randString, array $listCurrency)
        {
        }
        public static function GetUIEntityEditorProperty($settings, $value)
        {
        }
    }
}
namespace Bitrix\Currency\Controller {
    class Format extends \Bitrix\Main\Engine\Controller
    {
        public function getAction($currencyId)
        {
        }
    }
}
namespace Bitrix\Currency {
    /**
     * Class CurrencyClassifier
     */
    final class CurrencyClassifier
    {
        public const SEPARATOR_EMPTY = 'N';
        public const SEPARATOR_COMMA = 'C';
        public const SEPARATOR_DOT = 'D';
        public const SEPARATOR_SPACE = 'S';
        public const SEPARATOR_NBSPACE = 'B';
        public const DECIMAL_POINT_DOT = '.';
        public const DECIMAL_POINT_COMMA = ',';
        private const MODIFIER_ALL = 'ALL';
        private static $lastSortLanguage;
        private static $separators = array();
        private static $separatorsTypes = array();
        private static $bitrix24Included = null;
        /**
         * Returns currency description with language settings.
         *
         * @param string $currency Currency identifier.
         * @param array $languages Language id list.
         * @param string|null $b24Area Specific Bitrix24 parameter.
         * @return array|null
         */
        public static function getCurrency(string $currency, array $languages, ?string $b24Area = null) : ?array
        {
        }
        /**
         * Return classifier
         *
         * @param array $languageIds Array of languages
         * @param string $baseLanguageId Base language
         * @param string|null $b24Area Specific Bitrix24 parameter.
         * @return array
         */
        public static function get(array $languageIds, string $baseLanguageId, ?string $b24Area = null) : array
        {
        }
        /**
         * Preparing of classifier
         *
         * @param array $languageIds Array of languages
         * @param string $baseLanguageId Base language
         * @param string|null $b24Area Specific Bitrix24 parameter.
         * @return void
         */
        private static function prepare(array $languageIds, string $baseLanguageId, ?string $b24Area) : void
        {
        }
        private static function transform(?string $b24Area, array $languageIds) : void
        {
        }
        /**
         * Fill classifier with missing languages
         *
         * @param array $languageIds - Array of languages
         */
        private static function fill($languageIds)
        {
        }
        /**
         * Fill thousand separator description.
         *
         * @param array $languageIds
         * @return void
         */
        private static function fillSeparatorDescription(array $languageIds) : void
        {
        }
        /**
         * Sort classifier
         *
         * @param string $baseLanguageId - Base language
         */
        private static function sort($baseLanguageId)
        {
        }
        /**
         * Fill arrays with separators data
         */
        private static function fillSeparatorsData()
        {
        }
        private static $areaConfig = ['br' => [self::MODIFIER_ALL => ['DEC_POINT' => self::DECIMAL_POINT_COMMA, 'THOUSANDS_VARIANT' => self::SEPARATOR_DOT, 'TEMPLATE' => '#CURRENCY# #VALUE#']], 'de' => [self::MODIFIER_ALL => ['DEC_POINT' => self::DECIMAL_POINT_COMMA, 'THOUSANDS_VARIANT' => self::SEPARATOR_DOT, 'TEMPLATE' => '#VALUE# #CURRENCY#']], 'pl' => [self::MODIFIER_ALL => ['DEC_POINT' => self::DECIMAL_POINT_COMMA, 'THOUSANDS_VARIANT' => self::SEPARATOR_SPACE, 'TEMPLATE' => '#VALUE# #CURRENCY#']], 'vn' => [self::MODIFIER_ALL => ['DEC_POINT' => self::DECIMAL_POINT_COMMA, 'THOUSANDS_VARIANT' => self::SEPARATOR_DOT, 'TEMPLATE' => '#VALUE# #CURRENCY#']], 'sc' => [self::MODIFIER_ALL => ['DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_EMPTY, 'TEMPLATE' => '#CURRENCY# #VALUE#'], 'CNY' => ['TEMPLATE' => '&#165; #VALUE#']], 'tc' => [self::MODIFIER_ALL => ['DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'TEMPLATE' => '#CURRENCY##VALUE#']], 'jp' => [self::MODIFIER_ALL => ['DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'TEMPLATE' => '#VALUE##CURRENCY#'], 'JPY' => ['DECIMALS' => 0, 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'TEMPLATE' => '#VALUE#&#20870;']], 'it' => [self::MODIFIER_ALL => ['DEC_POINT' => self::DECIMAL_POINT_COMMA, 'THOUSANDS_VARIANT' => self::SEPARATOR_DOT, 'TEMPLATE' => '#VALUE# #CURRENCY#']], 'tr' => [self::MODIFIER_ALL => ['DEC_POINT' => self::DECIMAL_POINT_COMMA, 'THOUSANDS_VARIANT' => self::SEPARATOR_DOT, 'TEMPLATE' => '#VALUE##CURRENCY#']], 'fr' => [self::MODIFIER_ALL => ['DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'TEMPLATE' => '#VALUE# #CURRENCY#']], 'id' => [self::MODIFIER_ALL => ['DEC_POINT' => self::DECIMAL_POINT_COMMA, 'THOUSANDS_VARIANT' => self::SEPARATOR_DOT, 'TEMPLATE' => '#CURRENCY# #VALUE#'], 'IDR' => ['TEMPLATE' => 'Rp. #VALUE#']], 'ms' => [self::MODIFIER_ALL => ['DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'TEMPLATE' => '#CURRENCY# #VALUE#']], 'in' => [self::MODIFIER_ALL => ['DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'TEMPLATE' => '#CURRENCY# #VALUE#'], 'INR' => ['TEMPLATE' => 'Rs. #VALUE#']], 'hi' => [self::MODIFIER_ALL => ['DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'TEMPLATE' => '#CURRENCY# #VALUE#'], 'INR' => ['TEMPLATE' => 'Rs. #VALUE#']], 'uk' => [self::MODIFIER_ALL => ['DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'TEMPLATE' => '#CURRENCY##VALUE#']], 'mx' => [self::MODIFIER_ALL => ['DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'TEMPLATE' => '#CURRENCY##VALUE#'], 'USD' => ['TEMPLATE' => 'USD#VALUE#']], 'co' => [self::MODIFIER_ALL => ['DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'TEMPLATE' => '#CURRENCY##VALUE#'], 'USD' => ['TEMPLATE' => 'USD#VALUE#']]];
        private static $currencyClassifier = array('ALL' => array('NUM_CODE' => '008', 'SYM_CODE' => 'ALL', 'DEFAULT' => array('FULL_NAME' => 'Lek', 'FORMAT_STRING' => 'L#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'DZD' => array('NUM_CODE' => '012', 'SYM_CODE' => 'DZD', 'DEFAULT' => array('FULL_NAME' => 'Algerian Dinar', 'FORMAT_STRING' => 'DA#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'ARS' => array('NUM_CODE' => '032', 'SYM_CODE' => 'ARS', 'DEFAULT' => array('FULL_NAME' => 'Argentine Peso', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'AUD' => array('NUM_CODE' => '036', 'SYM_CODE' => 'AUD', 'DEFAULT' => array('FULL_NAME' => 'Australian Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'BSD' => array('NUM_CODE' => '044', 'SYM_CODE' => 'BSD', 'DEFAULT' => array('FULL_NAME' => 'Bahamian Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'BHD' => array('NUM_CODE' => '048', 'SYM_CODE' => 'BHD', 'DEFAULT' => array('FULL_NAME' => 'Bahraini Dinar', 'FORMAT_STRING' => 'BD#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 3)), 'BDT' => array('NUM_CODE' => '050', 'SYM_CODE' => 'BDT', 'DEFAULT' => array('FULL_NAME' => 'Taka', 'FORMAT_STRING' => '&#2547;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'AMD' => array('NUM_CODE' => '051', 'SYM_CODE' => 'AMD', 'DEFAULT' => array('FULL_NAME' => 'Armenian Dram', 'FORMAT_STRING' => 'AMD#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'BBD' => array('NUM_CODE' => '052', 'SYM_CODE' => 'BBD', 'DEFAULT' => array('FULL_NAME' => 'Barbados Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'BMD' => array('NUM_CODE' => '060', 'SYM_CODE' => 'BMD', 'DEFAULT' => array('FULL_NAME' => 'Bermudian Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'BTN' => array('NUM_CODE' => '064', 'SYM_CODE' => 'BTN', 'DEFAULT' => array('FULL_NAME' => 'Ngultrum', 'FORMAT_STRING' => 'Nu#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'BOB' => array('NUM_CODE' => '068', 'SYM_CODE' => 'BOB', 'DEFAULT' => array('FULL_NAME' => 'Boliviano', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'BWP' => array('NUM_CODE' => '072', 'SYM_CODE' => 'BWP', 'DEFAULT' => array('FULL_NAME' => 'Pula', 'FORMAT_STRING' => 'P#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'BZD' => array('NUM_CODE' => '084', 'SYM_CODE' => 'BZD', 'DEFAULT' => array('FULL_NAME' => 'Belize Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'SBD' => array('NUM_CODE' => '090', 'SYM_CODE' => 'SBD', 'DEFAULT' => array('FULL_NAME' => 'Solomon Islands Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'BND' => array('NUM_CODE' => '096', 'SYM_CODE' => 'BND', 'DEFAULT' => array('FULL_NAME' => 'Brunei Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'MMK' => array('NUM_CODE' => '104', 'SYM_CODE' => 'MMK', 'DEFAULT' => array('FULL_NAME' => 'Kyat', 'FORMAT_STRING' => 'K#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'BIF' => array('NUM_CODE' => '108', 'SYM_CODE' => 'BIF', 'DEFAULT' => array('FULL_NAME' => 'Burundi Franc', 'FORMAT_STRING' => '&#8355;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'KHR' => array('NUM_CODE' => '116', 'SYM_CODE' => 'KHR', 'DEFAULT' => array('FULL_NAME' => 'Riel', 'FORMAT_STRING' => '&#6107;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'CAD' => array('NUM_CODE' => '124', 'SYM_CODE' => 'CAD', 'DEFAULT' => array('FULL_NAME' => 'Canadian Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'CVE' => array('NUM_CODE' => '132', 'SYM_CODE' => 'CVE', 'DEFAULT' => array('FULL_NAME' => 'Cabo Verde Escudo', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'KYD' => array('NUM_CODE' => '136', 'SYM_CODE' => 'KYD', 'DEFAULT' => array('FULL_NAME' => 'Cayman Islands Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'LKR' => array('NUM_CODE' => '144', 'SYM_CODE' => 'LKR', 'DEFAULT' => array('FULL_NAME' => 'Sri Lanka Rupee', 'FORMAT_STRING' => '&#8360;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'CLP' => array('NUM_CODE' => '152', 'SYM_CODE' => 'CLP', 'DEFAULT' => array('FULL_NAME' => 'Chilean Peso', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'CNY' => array('NUM_CODE' => '156', 'SYM_CODE' => 'CNY', 'DEFAULT' => array('FULL_NAME' => 'Yuan Renminbi', 'FORMAT_STRING' => '&#165;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'COP' => array('NUM_CODE' => '170', 'SYM_CODE' => 'COP', 'DEFAULT' => array('FULL_NAME' => 'Colombian Peso', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'KMF' => array('NUM_CODE' => '174', 'SYM_CODE' => 'KMF', 'DEFAULT' => array('FULL_NAME' => 'Comorian Franc', 'FORMAT_STRING' => '&#8355;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'CRC' => array('NUM_CODE' => '188', 'SYM_CODE' => 'CRC', 'DEFAULT' => array('FULL_NAME' => 'Costa Rican Coln', 'FORMAT_STRING' => '&#8353;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'HRK' => array('NUM_CODE' => '191', 'SYM_CODE' => 'HRK', 'DEFAULT' => array('FULL_NAME' => 'Kuna', 'FORMAT_STRING' => 'Kn#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'CUP' => array('NUM_CODE' => '192', 'SYM_CODE' => 'CUP', 'DEFAULT' => array('FULL_NAME' => 'Cuban Peso', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'CZK' => array('NUM_CODE' => '203', 'SYM_CODE' => 'CZK', 'DEFAULT' => array('FULL_NAME' => 'Czech Koruna', 'FORMAT_STRING' => 'CZK#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'DKK' => array('NUM_CODE' => '208', 'SYM_CODE' => 'DKK', 'DEFAULT' => array('FULL_NAME' => 'Danish Krone', 'FORMAT_STRING' => 'kr#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'DOP' => array('NUM_CODE' => '214', 'SYM_CODE' => 'DOP', 'DEFAULT' => array('FULL_NAME' => 'Dominican Peso', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'SVC' => array('NUM_CODE' => '222', 'SYM_CODE' => 'SVC', 'DEFAULT' => array('FULL_NAME' => 'El Salvador Colon', 'FORMAT_STRING' => '&#8353;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'ETB' => array('NUM_CODE' => '230', 'SYM_CODE' => 'ETB', 'DEFAULT' => array('FULL_NAME' => 'Ethiopian Birr', 'FORMAT_STRING' => 'Br#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'ERN' => array('NUM_CODE' => '232', 'SYM_CODE' => 'ERN', 'DEFAULT' => array('FULL_NAME' => 'Nakfa', 'FORMAT_STRING' => 'Nfk#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'FKP' => array('NUM_CODE' => '238', 'SYM_CODE' => 'FKP', 'DEFAULT' => array('FULL_NAME' => 'Falkland Islands Pound', 'FORMAT_STRING' => '&pound;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'FJD' => array('NUM_CODE' => '242', 'SYM_CODE' => 'FJD', 'DEFAULT' => array('FULL_NAME' => 'Fiji Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'DJF' => array('NUM_CODE' => '262', 'SYM_CODE' => 'DJF', 'DEFAULT' => array('FULL_NAME' => 'Djibouti Franc', 'FORMAT_STRING' => '&#8355;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'GMD' => array('NUM_CODE' => '270', 'SYM_CODE' => 'GMD', 'DEFAULT' => array('FULL_NAME' => 'Dalasi', 'FORMAT_STRING' => 'D#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'GIP' => array('NUM_CODE' => '292', 'SYM_CODE' => 'GIP', 'DEFAULT' => array('FULL_NAME' => 'Gibraltar Pound', 'FORMAT_STRING' => '&pound;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'GTQ' => array('NUM_CODE' => '320', 'SYM_CODE' => 'GTQ', 'DEFAULT' => array('FULL_NAME' => 'Quetzal', 'FORMAT_STRING' => 'Q#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'GNF' => array('NUM_CODE' => '324', 'SYM_CODE' => 'GNF', 'DEFAULT' => array('FULL_NAME' => 'Guinean Franc', 'FORMAT_STRING' => '&#8355;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'GYD' => array('NUM_CODE' => '328', 'SYM_CODE' => 'GYD', 'DEFAULT' => array('FULL_NAME' => 'Guyana Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'HTG' => array('NUM_CODE' => '332', 'SYM_CODE' => 'HTG', 'DEFAULT' => array('FULL_NAME' => 'Gourde', 'FORMAT_STRING' => 'G#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'HNL' => array('NUM_CODE' => '340', 'SYM_CODE' => 'HNL', 'DEFAULT' => array('FULL_NAME' => 'Lempira', 'FORMAT_STRING' => 'L#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'HKD' => array('NUM_CODE' => '344', 'SYM_CODE' => 'HKD', 'DEFAULT' => array('FULL_NAME' => 'Hong Kong Dollar', 'FORMAT_STRING' => 'HK$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'HUF' => array('NUM_CODE' => '348', 'SYM_CODE' => 'HUF', 'DEFAULT' => array('FULL_NAME' => 'Forint', 'FORMAT_STRING' => '&#402;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'ISK' => array('NUM_CODE' => '352', 'SYM_CODE' => 'ISK', 'DEFAULT' => array('FULL_NAME' => 'Iceland Krona', 'FORMAT_STRING' => 'kr#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'INR' => array('NUM_CODE' => '356', 'SYM_CODE' => 'INR', 'DEFAULT' => array('FULL_NAME' => 'Indian Rupee', 'FORMAT_STRING' => '&#8377;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'IDR' => array('NUM_CODE' => '360', 'SYM_CODE' => 'IDR', 'DEFAULT' => array('FULL_NAME' => 'Rupiah', 'FORMAT_STRING' => '&#8377;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'IRR' => array('NUM_CODE' => '364', 'SYM_CODE' => 'IRR', 'DEFAULT' => array('FULL_NAME' => 'Iranian Rial', 'FORMAT_STRING' => '&#65020;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'IQD' => array('NUM_CODE' => '368', 'SYM_CODE' => 'IQD', 'DEFAULT' => array('FULL_NAME' => 'Iraqi Dinar', 'FORMAT_STRING' => 'ID#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 3)), 'ILS' => array('NUM_CODE' => '376', 'SYM_CODE' => 'ILS', 'DEFAULT' => array('FULL_NAME' => 'New Israeli Sheqel', 'FORMAT_STRING' => '&#8362;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'JMD' => array('NUM_CODE' => '388', 'SYM_CODE' => 'JMD', 'DEFAULT' => array('FULL_NAME' => 'Jamaican Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'JPY' => array('NUM_CODE' => '392', 'SYM_CODE' => 'JPY', 'DEFAULT' => array('FULL_NAME' => 'Yen', 'FORMAT_STRING' => '&#165;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'KZT' => array('NUM_CODE' => '398', 'SYM_CODE' => 'KZT', 'DEFAULT' => array('FULL_NAME' => 'Tenge', 'FORMAT_STRING' => '&#8376;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'JOD' => array('NUM_CODE' => '400', 'SYM_CODE' => 'JOD', 'DEFAULT' => array('FULL_NAME' => 'Jordanian Dinar', 'FORMAT_STRING' => 'JD#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 3)), 'KES' => array('NUM_CODE' => '404', 'SYM_CODE' => 'KES', 'DEFAULT' => array('FULL_NAME' => 'Kenyan Shilling', 'FORMAT_STRING' => 'KShs#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'KPW' => array('NUM_CODE' => '408', 'SYM_CODE' => 'KPW', 'DEFAULT' => array('FULL_NAME' => 'North Korean Won', 'FORMAT_STRING' => '&#8361;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'KRW' => array('NUM_CODE' => '410', 'SYM_CODE' => 'KRW', 'DEFAULT' => array('FULL_NAME' => 'Won', 'FORMAT_STRING' => '&#8361;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'KWD' => array('NUM_CODE' => '114', 'SYM_CODE' => 'KWD', 'DEFAULT' => array('FULL_NAME' => 'Kuwaiti Dinar', 'FORMAT_STRING' => 'KD#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 3)), 'KGS' => array('NUM_CODE' => '417', 'SYM_CODE' => 'KGS', 'DEFAULT' => array('FULL_NAME' => 'Som', 'FORMAT_STRING' => 'c#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'LAK' => array('NUM_CODE' => '418', 'SYM_CODE' => 'LAK', 'DEFAULT' => array('FULL_NAME' => 'Lao Kip', 'FORMAT_STRING' => '&#8365;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'LBP' => array('NUM_CODE' => '422', 'SYM_CODE' => 'LBP', 'DEFAULT' => array('FULL_NAME' => 'Lebanese Pound', 'FORMAT_STRING' => 'LBP#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'LSL' => array('NUM_CODE' => '426', 'SYM_CODE' => 'LSL', 'DEFAULT' => array('FULL_NAME' => 'Loti', 'FORMAT_STRING' => 'M#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'LRD' => array('NUM_CODE' => '430', 'SYM_CODE' => 'LRD', 'DEFAULT' => array('FULL_NAME' => 'Liberian Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'LYD' => array('NUM_CODE' => '434', 'SYM_CODE' => 'LYD', 'DEFAULT' => array('FULL_NAME' => 'Libyan Dinar', 'FORMAT_STRING' => 'LD#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 3)), 'MOP' => array('NUM_CODE' => '446', 'SYM_CODE' => 'MOP', 'DEFAULT' => array('FULL_NAME' => 'Pataca', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'MWK' => array('NUM_CODE' => '454', 'SYM_CODE' => 'MWK', 'DEFAULT' => array('FULL_NAME' => 'Malawi Kwacha', 'FORMAT_STRING' => 'MK#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'MYR' => array('NUM_CODE' => '458', 'SYM_CODE' => 'MYR', 'DEFAULT' => array('FULL_NAME' => 'Malaysian Ringgit', 'FORMAT_STRING' => 'RM #VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'MVR' => array('NUM_CODE' => '462', 'SYM_CODE' => 'MVR', 'DEFAULT' => array('FULL_NAME' => 'Rufiyaa', 'FORMAT_STRING' => 'Rf#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'MRO' => array('NUM_CODE' => '478', 'SYM_CODE' => 'MRO', 'DEFAULT' => array('FULL_NAME' => 'Ouguiya', 'FORMAT_STRING' => 'UM#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'MUR' => array('NUM_CODE' => '480', 'SYM_CODE' => 'MUR', 'DEFAULT' => array('FULL_NAME' => 'Mauritius Rupee', 'FORMAT_STRING' => '&#8360;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'MXN' => array('NUM_CODE' => '484', 'SYM_CODE' => 'MXN', 'DEFAULT' => array('FULL_NAME' => 'Mexican Peso', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'MNT' => array('NUM_CODE' => '496', 'SYM_CODE' => 'MNT', 'DEFAULT' => array('FULL_NAME' => 'Tugrik', 'FORMAT_STRING' => '&#8376;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'MDL' => array('NUM_CODE' => '498', 'SYM_CODE' => 'MDL', 'DEFAULT' => array('FULL_NAME' => 'Moldovan Leu', 'FORMAT_STRING' => 'L#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'MAD' => array('NUM_CODE' => '504', 'SYM_CODE' => 'MAD', 'DEFAULT' => array('FULL_NAME' => 'Moroccan Dirham', 'FORMAT_STRING' => 'Dh#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'OMR' => array('NUM_CODE' => '512', 'SYM_CODE' => 'OMR', 'DEFAULT' => array('FULL_NAME' => 'Rial Omani', 'FORMAT_STRING' => '&#65020;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 3)), 'NAD' => array('NUM_CODE' => '516', 'SYM_CODE' => 'NAD', 'DEFAULT' => array('FULL_NAME' => 'Namibia Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'NPR' => array('NUM_CODE' => '524', 'SYM_CODE' => 'NPR', 'DEFAULT' => array('FULL_NAME' => 'Nepalese Rupee', 'FORMAT_STRING' => '&#8360;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'ANG' => array('NUM_CODE' => '532', 'SYM_CODE' => 'ANG', 'DEFAULT' => array('FULL_NAME' => 'Netherlands Antillean Guilder', 'FORMAT_STRING' => '&#402;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'AWG' => array('NUM_CODE' => '533', 'SYM_CODE' => 'AWG', 'DEFAULT' => array('FULL_NAME' => 'Aruban Florin', 'FORMAT_STRING' => '&#402;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'VUV' => array('NUM_CODE' => '548', 'SYM_CODE' => 'VUV', 'DEFAULT' => array('FULL_NAME' => 'Vatu', 'FORMAT_STRING' => 'Vt#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'NZD' => array('NUM_CODE' => '554', 'SYM_CODE' => 'NZD', 'DEFAULT' => array('FULL_NAME' => 'New Zealand Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'NIO' => array('NUM_CODE' => '558', 'SYM_CODE' => 'NIO', 'DEFAULT' => array('FULL_NAME' => 'Cordoba Oro', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'NGN' => array('NUM_CODE' => '566', 'SYM_CODE' => 'NGN', 'DEFAULT' => array('FULL_NAME' => 'Naira', 'FORMAT_STRING' => '&#8358;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'NOK' => array('NUM_CODE' => '578', 'SYM_CODE' => 'NOK', 'DEFAULT' => array('FULL_NAME' => 'Norwegian Krone', 'FORMAT_STRING' => 'kr#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'PKR' => array('NUM_CODE' => '586', 'SYM_CODE' => 'PKR', 'DEFAULT' => array('FULL_NAME' => 'Pakistan Rupee', 'FORMAT_STRING' => '&#8360;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'PAB' => array('NUM_CODE' => '590', 'SYM_CODE' => 'PAB', 'DEFAULT' => array('FULL_NAME' => 'Balboa', 'FORMAT_STRING' => 'B#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'PGK' => array('NUM_CODE' => '598', 'SYM_CODE' => 'PGK', 'DEFAULT' => array('FULL_NAME' => 'Kina', 'FORMAT_STRING' => 'K#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'PYG' => array('NUM_CODE' => '600', 'SYM_CODE' => 'PYG', 'DEFAULT' => array('FULL_NAME' => 'Guarani', 'FORMAT_STRING' => '&#8370;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'PEN' => array('NUM_CODE' => '604', 'SYM_CODE' => 'PEN', 'DEFAULT' => array('FULL_NAME' => 'Sol', 'FORMAT_STRING' => 'PEN#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'PHP' => array('NUM_CODE' => '608', 'SYM_CODE' => 'PHP', 'DEFAULT' => array('FULL_NAME' => 'Philippine Peso', 'FORMAT_STRING' => '&#8369;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'QAR' => array('NUM_CODE' => '634', 'SYM_CODE' => 'QAR', 'DEFAULT' => array('FULL_NAME' => 'Qatari Rial', 'FORMAT_STRING' => '&#65020;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'RUB' => array('NUM_CODE' => '643', 'SYM_CODE' => 'RUB', 'DEFAULT' => array('FULL_NAME' => 'Russian Ruble', 'FORMAT_STRING' => '&#8381;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'RWF' => array('NUM_CODE' => '646', 'SYM_CODE' => 'RWF', 'DEFAULT' => array('FULL_NAME' => 'Rwanda Franc', 'FORMAT_STRING' => '&#8355;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'SHP' => array('NUM_CODE' => '654', 'SYM_CODE' => 'SHP', 'DEFAULT' => array('FULL_NAME' => 'Saint Helena Pound', 'FORMAT_STRING' => '&pound;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'STD' => array('NUM_CODE' => '678', 'SYM_CODE' => 'STD', 'DEFAULT' => array('FULL_NAME' => 'Dobra', 'FORMAT_STRING' => 'Db#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'SAR' => array('NUM_CODE' => '682', 'SYM_CODE' => 'SAR', 'DEFAULT' => array('FULL_NAME' => 'Saudi Riyal', 'FORMAT_STRING' => '&#65020;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'SCR' => array('NUM_CODE' => '690', 'SYM_CODE' => 'SCR', 'DEFAULT' => array('FULL_NAME' => 'Seychelles Rupee', 'FORMAT_STRING' => '&#8360;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'SLL' => array('NUM_CODE' => '694', 'SYM_CODE' => 'SLL', 'DEFAULT' => array('FULL_NAME' => 'Leone', 'FORMAT_STRING' => 'Le#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'SGD' => array('NUM_CODE' => '702', 'SYM_CODE' => 'SGD', 'DEFAULT' => array('FULL_NAME' => 'Singapore Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'VND' => array('NUM_CODE' => '704', 'SYM_CODE' => 'VND', 'DEFAULT' => array('FULL_NAME' => 'Dong', 'FORMAT_STRING' => '#VALUE# &#8363;', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'SOS' => array('NUM_CODE' => '706', 'SYM_CODE' => 'SOS', 'DEFAULT' => array('FULL_NAME' => 'Somali Shilling', 'FORMAT_STRING' => 'So.#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'ZAR' => array('NUM_CODE' => '710', 'SYM_CODE' => 'ZAR', 'DEFAULT' => array('FULL_NAME' => 'Rand', 'FORMAT_STRING' => 'R#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'SSP' => array('NUM_CODE' => '728', 'SYM_CODE' => 'SSP', 'DEFAULT' => array('FULL_NAME' => 'South Sudanese Pound', 'FORMAT_STRING' => 'SSP#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'SZL' => array('NUM_CODE' => '748', 'SYM_CODE' => 'SZL', 'DEFAULT' => array('FULL_NAME' => 'Lilangeni', 'FORMAT_STRING' => 'E#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'SEK' => array('NUM_CODE' => '752', 'SYM_CODE' => 'SEK', 'DEFAULT' => array('FULL_NAME' => 'Swedish Krona', 'FORMAT_STRING' => 'kr#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'CHF' => array('NUM_CODE' => '756', 'SYM_CODE' => 'CHF', 'DEFAULT' => array('FULL_NAME' => 'Swiss Franc', 'FORMAT_STRING' => '&#8355;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'SYP' => array('NUM_CODE' => '760', 'SYM_CODE' => 'SYP', 'DEFAULT' => array('FULL_NAME' => 'Syrian Pound', 'FORMAT_STRING' => 'SP#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'THB' => array('NUM_CODE' => '764', 'SYM_CODE' => 'THB', 'DEFAULT' => array('FULL_NAME' => 'Baht', 'FORMAT_STRING' => '&#3647;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'TOP' => array('NUM_CODE' => '776', 'SYM_CODE' => 'TOP', 'DEFAULT' => array('FULL_NAME' => 'Paanga', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'TTD' => array('NUM_CODE' => '780', 'SYM_CODE' => 'TTD', 'DEFAULT' => array('FULL_NAME' => 'Trinidad and Tobago Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'AED' => array('NUM_CODE' => '784', 'SYM_CODE' => 'AED', 'DEFAULT' => array('FULL_NAME' => 'UAE Dirham', 'FORMAT_STRING' => 'Dh#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'TND' => array('NUM_CODE' => '788', 'SYM_CODE' => 'TND', 'DEFAULT' => array('FULL_NAME' => 'Tunisian Dinar', 'FORMAT_STRING' => 'TD#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 3)), 'UGX' => array('NUM_CODE' => '800', 'SYM_CODE' => 'UGX', 'DEFAULT' => array('FULL_NAME' => 'Uganda Shilling', 'FORMAT_STRING' => 'USh#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'MKD' => array('NUM_CODE' => '807', 'SYM_CODE' => 'MKD', 'DEFAULT' => array('FULL_NAME' => 'Denar', 'FORMAT_STRING' => 'MDen#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'EGP' => array('NUM_CODE' => '818', 'SYM_CODE' => 'EGP', 'DEFAULT' => array('FULL_NAME' => 'Egyptian Pound', 'FORMAT_STRING' => 'LE#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'GBP' => array('NUM_CODE' => '826', 'SYM_CODE' => 'GBP', 'DEFAULT' => array('FULL_NAME' => 'Pound Sterling', 'FORMAT_STRING' => '&pound;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'TZS' => array('NUM_CODE' => '834', 'SYM_CODE' => 'TZS', 'DEFAULT' => array('FULL_NAME' => 'Tanzanian Shilling', 'FORMAT_STRING' => 'TSh#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'USD' => array('NUM_CODE' => '840', 'SYM_CODE' => 'USD', 'DEFAULT' => array('FULL_NAME' => 'US Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'UYU' => array('NUM_CODE' => '858', 'SYM_CODE' => 'UYU', 'DEFAULT' => array('FULL_NAME' => 'Peso Uruguayo', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'UZS' => array('NUM_CODE' => '860', 'SYM_CODE' => 'UZS', 'DEFAULT' => array('FULL_NAME' => 'Uzbekistan Sum', 'FORMAT_STRING' => 'UZS#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'WST' => array('NUM_CODE' => '882', 'SYM_CODE' => 'WST', 'DEFAULT' => array('FULL_NAME' => 'Tala', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'YER' => array('NUM_CODE' => '886', 'SYM_CODE' => 'YER', 'DEFAULT' => array('FULL_NAME' => 'Yemeni Rial', 'FORMAT_STRING' => '&#65020;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'TWD' => array('NUM_CODE' => '901', 'SYM_CODE' => 'TWD', 'DEFAULT' => array('FULL_NAME' => 'New Taiwan Dollar', 'FORMAT_STRING' => 'NT$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'CUC' => array('NUM_CODE' => '931', 'SYM_CODE' => 'CUC', 'DEFAULT' => array('FULL_NAME' => 'Peso Convertible', 'FORMAT_STRING' => 'CUC#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'ZWL' => array('NUM_CODE' => '932', 'SYM_CODE' => 'ZWL', 'DEFAULT' => array('FULL_NAME' => 'Zimbabwe Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'BYN' => array('NUM_CODE' => '933', 'SYM_CODE' => 'BYN', 'DEFAULT' => array('FULL_NAME' => 'Belarusian Ruble', 'FORMAT_STRING' => 'Br#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'TMT' => array('NUM_CODE' => '934', 'SYM_CODE' => 'TMT', 'DEFAULT' => array('FULL_NAME' => 'Turkmenistan New Manat', 'FORMAT_STRING' => 'm#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'GHS' => array('NUM_CODE' => '936', 'SYM_CODE' => 'GHS', 'DEFAULT' => array('FULL_NAME' => 'Ghana Cedi', 'FORMAT_STRING' => '&#8373;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'VEF' => array('NUM_CODE' => '937', 'SYM_CODE' => 'VEF', 'DEFAULT' => array('FULL_NAME' => 'Bolivar', 'FORMAT_STRING' => 'Bs#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'SDG' => array('NUM_CODE' => '938', 'SYM_CODE' => 'SDG', 'DEFAULT' => array('FULL_NAME' => 'Sudanese Pound', 'FORMAT_STRING' => '&pound;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'UYI' => array('NUM_CODE' => '940', 'SYM_CODE' => 'UYI', 'DEFAULT' => array('FULL_NAME' => 'Uruguay Peso en Unidades Indexadas (URUIURUI)', 'FORMAT_STRING' => 'UYI#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'RSD' => array('NUM_CODE' => '941', 'SYM_CODE' => 'RSD', 'DEFAULT' => array('FULL_NAME' => 'Serbian Dinar', 'FORMAT_STRING' => 'din.#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'MZN' => array('NUM_CODE' => '943', 'SYM_CODE' => 'MZN', 'DEFAULT' => array('FULL_NAME' => 'Mozambique Metical', 'FORMAT_STRING' => 'MT#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'AZN' => array('NUM_CODE' => '944', 'SYM_CODE' => 'AZN', 'DEFAULT' => array('FULL_NAME' => 'Azerbaijan Manat', 'FORMAT_STRING' => '&#8380;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'RON' => array('NUM_CODE' => '946', 'SYM_CODE' => 'RON', 'DEFAULT' => array('FULL_NAME' => 'Romanian Leu', 'FORMAT_STRING' => 'L#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'CHE' => array('NUM_CODE' => '947', 'SYM_CODE' => 'CHE', 'DEFAULT' => array('FULL_NAME' => 'WIR Euro', 'FORMAT_STRING' => 'CHE#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'CHW' => array('NUM_CODE' => '948', 'SYM_CODE' => 'CHW', 'DEFAULT' => array('FULL_NAME' => 'WIR Franc', 'FORMAT_STRING' => 'CHW#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'TRY' => array('NUM_CODE' => '949', 'SYM_CODE' => 'TRY', 'DEFAULT' => array('FULL_NAME' => 'Turkish Lira', 'FORMAT_STRING' => '&#8378;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'XAF' => array('NUM_CODE' => '950', 'SYM_CODE' => 'XAF', 'DEFAULT' => array('FULL_NAME' => 'CFA Franc BEAC', 'FORMAT_STRING' => '&#8355;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'XCD' => array('NUM_CODE' => '951', 'SYM_CODE' => 'XCD', 'DEFAULT' => array('FULL_NAME' => 'East Caribbean Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'XOF' => array('NUM_CODE' => '952', 'SYM_CODE' => 'XOF', 'DEFAULT' => array('FULL_NAME' => 'CFA Franc BCEAO', 'FORMAT_STRING' => '&#8355;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'XPF' => array('NUM_CODE' => '953', 'SYM_CODE' => 'XPF', 'DEFAULT' => array('FULL_NAME' => 'CFP Franc', 'FORMAT_STRING' => '&#8355;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'XBA' => array('NUM_CODE' => '955', 'SYM_CODE' => 'XBA', 'DEFAULT' => array('FULL_NAME' => 'Bond Markets Unit European Composite Unit (EURCO)', 'FORMAT_STRING' => 'XBA#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'XBB' => array('NUM_CODE' => '956', 'SYM_CODE' => 'XBB', 'DEFAULT' => array('FULL_NAME' => 'Bond Markets Unit European Monetary Unit (E.M.U.-6)', 'FORMAT_STRING' => 'XBB#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'XBC' => array('NUM_CODE' => '957', 'SYM_CODE' => 'XBC', 'DEFAULT' => array('FULL_NAME' => 'Bond Markets Unit European Unit of Account 9 (E.U.A.-9)', 'FORMAT_STRING' => 'XBC#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'XBD' => array('NUM_CODE' => '958', 'SYM_CODE' => 'XBD', 'DEFAULT' => array('FULL_NAME' => 'Bond Markets Unit European Unit of Account 17 (E.U.A.-17)', 'FORMAT_STRING' => 'XBD#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'XAU' => array('NUM_CODE' => '959', 'SYM_CODE' => 'XAU', 'DEFAULT' => array('FULL_NAME' => 'Gold', 'FORMAT_STRING' => 'XAU#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'XDR' => array('NUM_CODE' => '960', 'SYM_CODE' => 'XDR', 'DEFAULT' => array('FULL_NAME' => 'SDR (Special Drawing Right)', 'FORMAT_STRING' => 'SDR#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'XAG' => array('NUM_CODE' => '961', 'SYM_CODE' => 'XAG', 'DEFAULT' => array('FULL_NAME' => 'Silver', 'FORMAT_STRING' => 'XAG#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'XPT' => array('NUM_CODE' => '962', 'SYM_CODE' => 'XPT', 'DEFAULT' => array('FULL_NAME' => 'Platinum', 'FORMAT_STRING' => 'XPT#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'XPD' => array('NUM_CODE' => '964', 'SYM_CODE' => 'XPD', 'DEFAULT' => array('FULL_NAME' => 'Palladium', 'FORMAT_STRING' => 'XPD#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'XUA' => array('NUM_CODE' => '965', 'SYM_CODE' => 'XUA', 'DEFAULT' => array('FULL_NAME' => 'ADB Unit of Account', 'FORMAT_STRING' => 'XUA#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'ZMW' => array('NUM_CODE' => '967', 'SYM_CODE' => 'ZMW', 'DEFAULT' => array('FULL_NAME' => 'Zambian Kwacha', 'FORMAT_STRING' => 'K#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'SRD' => array('NUM_CODE' => '968', 'SYM_CODE' => 'SRD', 'DEFAULT' => array('FULL_NAME' => 'Surinam Dollar', 'FORMAT_STRING' => '$#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'MGA' => array('NUM_CODE' => '969', 'SYM_CODE' => 'MGA', 'DEFAULT' => array('FULL_NAME' => 'Malagasy Ariary', 'FORMAT_STRING' => 'Ar.#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'COU' => array('NUM_CODE' => '970', 'SYM_CODE' => 'COU', 'DEFAULT' => array('FULL_NAME' => 'Unidad de Valor Real', 'FORMAT_STRING' => 'COU#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'AFN' => array('NUM_CODE' => '971', 'SYM_CODE' => 'AFN', 'DEFAULT' => array('FULL_NAME' => 'Afghani', 'FORMAT_STRING' => '&#1547;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'TJS' => array('NUM_CODE' => '972', 'SYM_CODE' => 'TJS', 'DEFAULT' => array('FULL_NAME' => 'Somoni', 'FORMAT_STRING' => 'c.#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'AOA' => array('NUM_CODE' => '973', 'SYM_CODE' => 'AOA', 'DEFAULT' => array('FULL_NAME' => 'Kwanza', 'FORMAT_STRING' => 'Kz#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'BGN' => array('NUM_CODE' => '975', 'SYM_CODE' => 'BGN', 'DEFAULT' => array('FULL_NAME' => 'Bulgarian Lev', 'FORMAT_STRING' => 'BGN#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'CDF' => array('NUM_CODE' => '976', 'SYM_CODE' => 'CDF', 'DEFAULT' => array('FULL_NAME' => 'Congolese Franc', 'FORMAT_STRING' => '&#8355;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'BAM' => array('NUM_CODE' => '977', 'SYM_CODE' => 'BAM', 'DEFAULT' => array('FULL_NAME' => 'Convertible Mark', 'FORMAT_STRING' => 'KM#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'EUR' => array('NUM_CODE' => '978', 'SYM_CODE' => 'EUR', 'DEFAULT' => array('FULL_NAME' => 'Euro', 'FORMAT_STRING' => '&euro;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'MXV' => array('NUM_CODE' => '979', 'SYM_CODE' => 'MXV', 'DEFAULT' => array('FULL_NAME' => 'Mexican Unidad de Inversion (UDI)', 'FORMAT_STRING' => 'MXV#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'UAH' => array('NUM_CODE' => '980', 'SYM_CODE' => 'UAH', 'DEFAULT' => array('FULL_NAME' => 'Hryvnia', 'FORMAT_STRING' => '&#8372;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'GEL' => array('NUM_CODE' => '981', 'SYM_CODE' => 'GEL', 'DEFAULT' => array('FULL_NAME' => 'Lari', 'FORMAT_STRING' => '&#8382;#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'BOV' => array('NUM_CODE' => '984', 'SYM_CODE' => 'BOV', 'DEFAULT' => array('FULL_NAME' => 'Mvdol', 'FORMAT_STRING' => 'BOV#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'PLN' => array('NUM_CODE' => '985', 'SYM_CODE' => 'PLN', 'DEFAULT' => array('FULL_NAME' => 'Zloty', 'FORMAT_STRING' => '#VALUE# z&#322;', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)), 'BRL' => array('NUM_CODE' => '986', 'SYM_CODE' => 'BRL', 'DEFAULT' => array('FULL_NAME' => 'Brazilian Real', 'FORMAT_STRING' => 'R$ #VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_COMMA, 'THOUSANDS_VARIANT' => self::SEPARATOR_DOT, 'DECIMALS' => 2)), 'CLF' => array('NUM_CODE' => '990', 'SYM_CODE' => 'CLF', 'DEFAULT' => array('FULL_NAME' => 'Unidad de Fomento', 'FORMAT_STRING' => 'CLF#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 4)), 'XSU' => array('NUM_CODE' => '994', 'SYM_CODE' => 'XSU', 'DEFAULT' => array('FULL_NAME' => 'Sucre', 'FORMAT_STRING' => 'XSU#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 0)), 'USN' => array('NUM_CODE' => '997', 'SYM_CODE' => 'USN', 'DEFAULT' => array('FULL_NAME' => 'US Dollar (Next day)', 'FORMAT_STRING' => 'USN#VALUE#', 'DEC_POINT' => self::DECIMAL_POINT_DOT, 'THOUSANDS_VARIANT' => self::SEPARATOR_COMMA, 'DECIMALS' => 2)));
    }
}
namespace Bitrix\Currency\Helpers\Admin {
    /**
     * Class Tools
     * Provides various useful methods for admin pages.
     *
     * @package Bitrix\Currency\Helpers\Admin
     */
    class Tools
    {
        /**
         * Return array with edit url for all currencies.
         *
         * @return array
         */
        public static function getCurrencyLinkList()
        {
        }
    }
    /**
     * Class RoundEdit
     * Provides various useful methods for admin pages.
     *
     * @package Bitrix\Currency\Helper\Admin
     */
    class RoundEdit
    {
        /**
         * Return default round values for admin forms.
         *
         * @param bool $dropdownList		Return list for usage in admin pages.
         * @return array
         */
        public static function getPresetRoundValues($dropdownList = false)
        {
        }
        /**
         * Prepare admin form data.
         *
         * @param array &$fields		Fields for update/add.
         * @return void
         */
        public static function prepareFields(array &$fields)
        {
        }
    }
}
namespace Bitrix\Currency\Helpers {
    class Editor
    {
        protected static $listCurrencyCache = null;
        public static function getListCurrency()
        {
        }
    }
}
namespace {
    class socialnetwork extends \CModule
    {
        var $MODULE_ID = "socialnetwork";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function __construct()
        {
        }
        function __SetLogFilter($site_id = \false)
        {
        }
        function InstallDB($install_wizard = \true)
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallUserFields($id = "all")
        {
        }
        public static function installDiskUserFields()
        {
        }
        public static function installIntranetUserFields()
        {
        }
        function UnInstallUserFields($id = "all")
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function InstallPublic()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function GetModuleRightList()
        {
        }
        public function migrateToBox()
        {
        }
    }
    class SocialnetworkGroupCopy extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable, \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        public function configureActions()
        {
        }
        protected function listKeysSignedParameters()
        {
        }
        public function onIncludeComponentLang()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
        public function copyGroupAction()
        {
        }
        private function setFeatures(\Bitrix\Socialnetwork\Copy\GroupManager $copyManager, $executiveUserId, array $features, array $post)
        {
        }
        /**
         * @throws SystemException
         */
        private function checkModules()
        {
        }
        /**
         * @param int $userId
         * @param int $groupId
         * @throws AccessDeniedException
         */
        private function checkAccess(int $userId, int $groupId)
        {
        }
        private function setTitle()
        {
        }
        private function setResult()
        {
        }
        private function checkRequiredCreationParams($post)
        {
        }
        private function isProject($groupId)
        {
        }
        private function getListToGroupSelector()
        {
        }
        private function getUser()
        {
        }
        private function getFeatures($groupId)
        {
        }
        private function getFeatureTitle($featureId)
        {
        }
        private function getFeaturesFromRequest(array $features)
        {
        }
        private function getExceptionErrorMessage(\Exception $exception)
        {
        }
        private function getUrlToCopiedGroup(\Bitrix\Socialnetwork\Copy\GroupManager $copyManager, int $groupId) : string
        {
        }
        private function getUfIgnoreList(array $features)
        {
        }
        private function setErrors(\Exception $exception)
        {
        }
        private function getGroupData()
        {
        }
        private function getSubjects()
        {
        }
        private function getInitiatePerms()
        {
        }
        private function getSpamPerms()
        {
        }
        private function isExtranet()
        {
        }
        private function isExtranetInstalled()
        {
        }
        private function getChangedFields(array $post)
        {
        }
        /**
         * @param array $post
         * @return array|mixed
         * @throws ArgumentException
         */
        private function getProjectTerm(array $post)
        {
        }
        private function checkDateFormat($date)
        {
        }
    }
    class CSocialnetworkBlogPostPreview extends \CBitrixComponent
    {
        const E_BLOG_MODULE_NOT_INSTALLED = 10001;
        const E_SOCIALNETWORK_MODULE_NOT_INSTALLED = 10003;
        protected function checkRequiredModules()
        {
        }
        protected function prepareParams()
        {
        }
        protected function prepareData()
        {
        }
        public function executeComponent()
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Component {
    abstract class EntitySelector extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable, \Bitrix\Main\Errorable
    {
        /** @var  Main\ErrorCollection */
        protected $errorCollection = null;
        protected $defaultSettings = [];
        protected $filter = [];
        protected $filterId = false;
        protected $filterPresets = [];
        protected $requestData = [];
        /**
         * Base constructor.
         * @param \CBitrixComponent|null $component		Component object if exists.
         */
        public function __construct($component = null)
        {
        }
        /**
         * @return void
         */
        public function onIncludeComponentLang()
        {
        }
        /**
         * @param array $params
         * @return array
         */
        public function onPrepareComponentParams($params)
        {
        }
        /**
         * @return void
         */
        public function executeComponent()
        {
        }
        /**
         * @return array
         */
        public function configureActions()
        {
        }
        /**
         * @param string $code
         * @return Main\Error|null
         */
        public function getErrorByCode($code)
        {
        }
        /**
         * @return array|Main\Error[]
         */
        public function getErrors()
        {
        }
        /**
         * @return void
         */
        protected function prepareRequest()
        {
        }
        /**
         * @return void
         */
        protected function prepareFilter()
        {
        }
        protected function getFilter()
        {
        }
        /**
         * @return void
         */
        protected function initDefaultSettings()
        {
        }
        protected function setFilterId($filterId = false)
        {
        }
        protected function getFilterId()
        {
        }
        protected function setFilterPresets($filterPresets = [])
        {
        }
        protected function getFilterPresets()
        {
        }
        protected function getCurrentUserId()
        {
        }
        protected function getWorkgroups()
        {
        }
        protected function setDefaultFilter($value = [])
        {
        }
        /**
         * @return void
         */
        protected function prepareResult()
        {
        }
        /**
         * @return array
         */
        protected function getDataFilter()
        {
        }
        /**
         * @return void
         */
        protected abstract function getData();
        /**
         * @return string
         */
        protected function getNavigationTitle()
        {
        }
    }
}
namespace {
    class LivefeedSelector extends \Bitrix\Socialnetwork\Component\EntitySelector
    {
        protected $workgroupsList = [];
        public function __construct($component = \null)
        {
        }
        /**
         * @return void
         */
        protected function setWorkgroupsList($value = [])
        {
        }
        protected function getWorkgroupsList()
        {
        }
        /**
         * @return void
         */
        protected function getData()
        {
        }
        /**
         * @return void
         */
        protected function prepareRequest()
        {
        }
        private function setFilter(array $filterFields)
        {
        }
        public function prepareResult()
        {
        }
        protected function getWorkgroupDataByCode($code = '')
        {
        }
    }
    final class SocialnetworkGroupCreate extends \CBitrixComponent
    {
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
    }
    final class SocialnetworkLogEntryStub extends \CBitrixComponent
    {
        /**
         * Execute component.
         */
        public function executeComponent()
        {
        }
    }
    class SocialnetworkPageSliderWrapperComponent extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    class CBitrixSocialnetworkBlogPostCommentMailComponent extends \CBitrixComponent
    {
        const E_BLOG_MODULE_NOT_INSTALLED = 10001;
        const E_COMMENT_NOT_FOUND = 10002;
        /**
         * Variable contains comments data
         *
         * @var array[] array
         */
        protected $postId = \false;
        protected $authorIdList = array();
        /**
         * Function implements all the life cycle of the component
         * @return void
         */
        public function executeComponent()
        {
        }
        public function __construct($component = \null)
        {
        }
        /**
         * Function checks if required modules installed. If not, throws an exception
         * @throws Main\SystemException
         * @return void
         */
        protected function checkRequiredModules()
        {
        }
        public function onPrepareComponentParams($arParams)
        {
        }
        private function obtainDataComment()
        {
        }
        private function obtainDataComments()
        {
        }
        private function obtainDataPost()
        {
        }
        private function obtainDataAuthors()
        {
        }
        private function obtainDataDestinations()
        {
        }
        private function obtainPostUrl()
        {
        }
    }
    final class SocialnetworkBlogPostComment extends \CBitrixComponent
    {
        const STATUS_SCOPE_MOBILE = 'mobile';
        const STATUS_SCOPE_WEB = 'web';
        private $scope;
        public $prepareMobileData;
        public function __construct($component = \null)
        {
        }
        public function isWeb()
        {
        }
        public function prepareUrls(&$arResult)
        {
        }
        public function executeComponent()
        {
        }
    }
    class CSocNetSearchComponent
    {
        function OnSearchPrepareFilterHandler($strSearchContentAlias, $field, $val)
        {
        }
    }
    class CBitrixSocialnetworkBlogPostMailComponent extends \CBitrixComponent
    {
        const E_BLOG_MODULE_NOT_INSTALLED = 10001;
        const E_POST_NOT_FOUND = 10002;
        const E_SOCIALNETWORK_MODULE_NOT_INSTALLED = 10003;
        /**
         * Variable contains posts data
         *
         * @var array[] array
         */
        protected $authorId = \false;
        protected $postId = \false;
        /**
         * Function implements all the life cycle of the component
         * @return void
         */
        public function executeComponent()
        {
        }
        public function __construct($component = \null)
        {
        }
        /**
         * Function checks if required modules installed. If not, throws an exception
         * @throws Main\SystemException
         * @return void
         */
        protected function checkRequiredModules()
        {
        }
        public function onPrepareComponentParams($arParams)
        {
        }
        private function obtainDataPost()
        {
        }
        private function obtainDataAuthor()
        {
        }
        private function obtainDataDestinations()
        {
        }
        private function obtainPostUrl()
        {
        }
    }
    final class SocialnetworkGroupUsersEx extends \CBitrixComponent
    {
        protected function getUserList($key, $arParams, $arResult, $arNavParams)
        {
        }
    }
    final class SocialnetworkLogEntry extends \CBitrixComponent
    {
        public static function formatStubEvent($arFields, $arParams)
        {
        }
        public function executeComponent()
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Component {
    class LogList extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable, \Bitrix\Main\Errorable
    {
        /** @var ErrorCollection errorCollection */
        protected $errorCollection;
        protected $extranetSite = false;
        protected $presetFilterTopId = false;
        protected $presetFilterId = false;
        protected $commentsNeeded = false;
        protected $currentUserAdmin = false;
        protected $activity2LogList = [];
        protected $diskUFEntityList = ['BLOG_POST' => [], 'SONET_LOG' => []];
        protected $request = null;
        protected $gratitudesInstance = null;
        protected $paramsInstance = null;
        protected $pathInstance = null;
        protected $paramsPhotogalleryInstance = null;
        protected $processorInstance = null;
        protected $logPageProcessorInstance = null;
        protected $counterProcessorInstance = null;
        public $useLogin = false;
        public static $canCurrentUserAddComments = [];
        public function configureActions()
        {
        }
        public function getErrorByCode($code)
        {
        }
        /**
         * Getting array of errors.
         * @return Error[]
         */
        public function getErrors()
        {
        }
        protected function printErrors()
        {
        }
        protected function getRequest()
        {
        }
        public function setExtranetSiteValue($value = false)
        {
        }
        public function getExtranetSiteValue()
        {
        }
        public function setPresetFilterTopIdValue($value)
        {
        }
        public function getPresetFilterTopIdValue()
        {
        }
        public function setPresetFilterIdValue($value)
        {
        }
        public function getPresetFilterIdValue()
        {
        }
        public function setCommentsNeededValue($value = false)
        {
        }
        public function getCommentsNeededValue()
        {
        }
        public function setCurrentUserAdmin($value = false)
        {
        }
        public function getCurrentUserAdmin()
        {
        }
        public function setActivity2LogListValue($value = [])
        {
        }
        public function getActivity2LogListValue()
        {
        }
        public function setDiskUFEntityListValue($value = [])
        {
        }
        public function getDiskUFEntityListValue()
        {
        }
        protected function processParentParams(&$params)
        {
        }
        protected function getGratitudesInstance()
        {
        }
        protected function getParamsInstance()
        {
        }
        public function getPathInstance()
        {
        }
        public function getParamsPhotogalleryInstance()
        {
        }
        protected function getProcessorInstance()
        {
        }
        public function getLogPageProcessorInstance()
        {
        }
        public function getCounterProcessorInstance()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        protected function prepareData()
        {
        }
        protected function getEntriesData(&$result)
        {
        }
        protected function processEvent(&$result, &$cnt, array $eventFields = [], array $options = [])
        {
        }
        protected function getEntryIdList(&$result)
        {
        }
        protected function getPinnedIdList(&$result)
        {
        }
        protected function processLogFormComments(&$result)
        {
        }
        public static function getGratitudesIblockId()
        {
        }
        public static function getGratitudesIblockData(array $params = [])
        {
        }
        public static function getGratitudesBlogData(array $params = [])
        {
        }
    }
}
namespace {
    final class SocialnetworkLogList extends \Bitrix\Socialnetwork\Component\LogList
    {
        protected function setTitle()
        {
        }
        public function executeComponent()
        {
        }
        protected function listKeysSignedParameters()
        {
        }
    }
    class CBitrixSocialnetworkLogEntryMailComponent extends \CBitrixComponent
    {
        const E_SOCIALNETWORK_MODULE_NOT_INSTALLED = 10001;
        const E_COMMENT_NOT_FOUND = 10002;
        const E_LOG_ENTRY_NOT_FOUND = 10003;
        /**
         * Variable contains comments data
         *
         * @var array[] array
         */
        protected $logEntryId = \false;
        protected $authorIdList = array();
        /**
         * Function implements all the life cycle of the component
         * @return void
         */
        public function executeComponent()
        {
        }
        public function __construct($component = \null)
        {
        }
        /**
         * Function checks if required modules installed. If not, throws an exception
         * @throws Main\SystemException
         * @return void
         */
        protected function checkRequiredModules()
        {
        }
        public function onPrepareComponentParams($arParams)
        {
        }
        private function obtainDataLogEntry()
        {
        }
        private function obtainDataComments()
        {
        }
        private function obtainDataDestinations()
        {
        }
        private function obtainLogEntryUrl()
        {
        }
        private function parseText($text)
        {
        }
    }
    class CBitrixSocialnetworkBlogPostShareMailComponent extends \CBitrixComponent
    {
        const E_BLOG_MODULE_NOT_INSTALLED = 10001;
        const E_POST_NOT_FOUND = 10002;
        const E_SOCIALNETWORK_MODULE_NOT_INSTALLED = 10003;
        /**
         * Variable contains posts data
         *
         * @var array[] array
         */
        protected $postId = \false;
        protected $authorIdList = array();
        /**
         * Function implements all the life cycle of the component
         * @return void
         */
        public function executeComponent()
        {
        }
        public function __construct($component = \null)
        {
        }
        /**
         * Function checks if required modules installed. If not, throws an exception
         * @throws Main\SystemException
         * @return void
         */
        protected function checkRequiredModules()
        {
        }
        public function onPrepareComponentParams($arParams)
        {
        }
        private function obtainDataPost()
        {
        }
        private function obtainDataComments()
        {
        }
        private function obtainDataAuthors()
        {
        }
        private function obtainDataDestinations()
        {
        }
        private function obtainPostUrl()
        {
        }
    }
    // todo Improve the component! Show more informative messages and even give the opportunity to copy the entity again.
    class SocialnetworkCopyChecker extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable, \Bitrix\Main\Errorable
    {
        use \Bitrix\Main\ErrorableImplementation;
        public function configureActions()
        {
        }
        protected function listKeysSignedParameters()
        {
        }
        public function onIncludeComponentLang()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
        public function deleteErrorOptionAction()
        {
        }
        /**
         * @throws SystemException
         */
        private function checkModules()
        {
        }
        private function setResult()
        {
        }
        private function isShowProgress()
        {
        }
        private function getErrorIds() : array
        {
        }
        private function getErrorMessage() : string
        {
        }
    }
    class CBPSocnetBlogPostActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        private function getSocnetRights($users)
        {
        }
        private function createBlog($userId, $blogGroupId, $siteId)
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPCreateWorkGroup extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "", $popupWindow = \null, $currentSiteId = \null)
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
        private static function __GetFields()
        {
        }
    }
    class CSocNetUpdater
    {
        function Run($version)
        {
        }
    }
    class CSocNetTextParser
    {
        var $smiles = array();
        var $allow_img_ext = "gif|jpg|jpeg|png";
        var $image_params = array("width" => 300, "height" => 300, "template" => "popup_image");
        var $LAST_ERROR = "";
        var $path_to_smile = \false;
        var $quote_error = 0;
        var $quote_open = 0;
        var $quote_closed = 0;
        var $MaxStringLen = 125;
        var $code_error = 0;
        var $code_open = 0;
        var $code_closed = 0;
        var $CacheTime = \false;
        var $arFontSize = array(
            0 => 40,
            //"xx-small"
            1 => 60,
            //"x-small"
            2 => 80,
            //"small"
            3 => 100,
            //"medium"
            4 => 120,
            //"large"
            5 => 140,
            //"x-large"
            7 => 160,
        );
        //"xx-large"
        var $word_separator = "\\s.,;:!?\\#\\-\\*\\|\\[\\]\\(\\)\\{\\}";
        var $matchNum = 0;
        var $matchNum2 = 0;
        var $matchType = "html";
        var $matchType2 = "";
        var $matchType3 = "";
        var $matchType4 = "";
        function sonet_sortlen($a, $b)
        {
        }
        function CSocNetTextParser($strLang = \False, $pathToSmile = \false)
        {
        }
        function convert($text, $bPreview = \True, $arImages = array(), $allow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y"), $type = "html")
        {
        }
        function killAllTags($text)
        {
        }
        function convert4mail($text)
        {
        }
        function convert_video($params, $path)
        {
        }
        private function convert_video_callback($m)
        {
        }
        function convert_emoticon($code = "", $image = "", $description = "", $servername = "")
        {
        }
        private function convert_emoticon_callback($m)
        {
        }
        function pre_convert_code_tag($text = "")
        {
        }
        private function pre_convert_code_tag_callback($m)
        {
        }
        function convert_code_tag($text = "", $type = "html")
        {
        }
        private function convert_code_tag_callback($m)
        {
        }
        function convert_quote_tag($text = "", $type = "html")
        {
        }
        private function convert_quote_tag_callback($m)
        {
        }
        function convert_open_tag($marker = "quote", $type = "html")
        {
        }
        private function convert_open_tag_callback($m)
        {
        }
        function convert_close_tag($marker = "quote")
        {
        }
        private function convert_close_tag_callback($m)
        {
        }
        function convert_image_tag($url = "", $type = "html")
        {
        }
        private function convert_image_tag_callback($m)
        {
        }
        function convert_font_attr($attr, $value = "", $text = "")
        {
        }
        private function convert_font_attr_callback($m)
        {
        }
        // Only for public using
        function wrap_long_words($text = "")
        {
        }
        function part_long_words($str)
        {
        }
        private function part_long_words_callback($m)
        {
        }
        function cut_long_words($str)
        {
        }
        function cut_long_words_callback($m)
        {
        }
        function convert_anchor_tag($url, $text, $pref = "")
        {
        }
        function convert_anchor_tag_callback($m)
        {
        }
        function convert_to_rss($text, $arImages = array(), $arAllow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N"), $arParams = array())
        {
        }
        function strip_words($string, $count)
        {
        }
        public static function closetags($html)
        {
        }
        function html_cut($html, $size)
        {
        }
    }
    class CSocNetTools
    {
        function InitImage($imageID, $imageSize, $defaultImage, $defaultImageSize, $imageUrl, $showImageUrl, $urlParams = \false)
        {
        }
        function htmlspecialcharsExArray($array)
        {
        }
        function ResizeImage($aFile, $sizeX, $sizeY)
        {
        }
        function GetDateTimeFormat()
        {
        }
        function Birthday($datetime, $gender, $showYear = "N")
        {
        }
        function GetDefaultNameTemplates()
        {
        }
        function GetMyGroups()
        {
        }
        function GetGroupUsers($group_id)
        {
        }
        function IsMyGroup($entity_id)
        {
        }
        function GetMyUsers($user_id = \false)
        {
        }
        function IsMyUser($entity_id)
        {
        }
        function HasLogEventCreatedBy($event_id)
        {
        }
        public static function InitGlobalExtranetArrays($SITE_ID = \SITE_ID)
        {
        }
        public static function GetSubordinateGroups($userID = \false)
        {
        }
    }
    class CSocNetAllowed
    {
        private static $arAllowedEntityTypes = array();
        private static $arAllowedEntityTypesDesc = array();
        private static $arAllowedFeatures = array();
        private static $arAllowedLogEvents = array();
        /* --- entity types --- */
        public static function RunEventForAllowedEntityType()
        {
        }
        public static function addAllowedEntityType($entityType)
        {
        }
        public static function getAllowedEntityTypes()
        {
        }
        /* --- entity types desc --- */
        public static function addAllowedEntityTypeDesc($entityTypeDescCode, $arEntityTypeDesc)
        {
        }
        public static function getAllowedEntityTypesDesc()
        {
        }
        /* --- features --- */
        public static function runEventForAllowedFeature()
        {
        }
        public static function addStandardFeatureList()
        {
        }
        public static function addRestFeatures()
        {
        }
        public static function addAllowedFeature($strFeatureCode, $arFeature)
        {
        }
        public static function updateAllowedFeature($strFeatureCode, $arFeature)
        {
        }
        public static function getAllowedFeatures()
        {
        }
        /* --- log events --- */
        public static function runEventForAllowedLogEvent()
        {
        }
        public static function addAllowedLogEvent($strEventCode, $arLogEvent)
        {
        }
        public static function GetAllowedLogEvents()
        {
        }
        public static function runEvents()
        {
        }
    }
    class CAllSocNetLogCounter
    {
        public static function GetSubSelect2($entityId, $arParams = array())
        {
        }
        public static function GetSubSelect($entityId, $entity_type = \false, $entity_id = \false, $event_id = \false, $created_by_id = \false, $arOfEntities = \false, $arAdmin = \false, $transport = \false, $visible = "Y", $type = \CSocNetLogCounter::TYPE_LOG_ENTRY, $params = array(), $bDecrement = \false, $bForAllAccess = \false)
        {
        }
        function GetValueByUserID($user_id, $site_id = \SITE_ID)
        {
        }
        function GetCodeValuesByUserID($user_id, $site_id = \SITE_ID)
        {
        }
        function GetLastDateByUserAndCode($user_id, $site_id = \SITE_ID, $code = "**")
        {
        }
        function GetList($arFilter = array(), $arSelectFields = array())
        {
        }
    }
    class CAllSocNetSubscription
    {
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Delete($ID)
        {
        }
        public static function DeleteEx($userID = \false, $code = \false)
        {
        }
        public static function Set($userID, $code, $value = \false)
        {
        }
        public static function NotifyGroup($arFields)
        {
        }
        public static function IsUserSubscribed($userID, $code)
        {
        }
        public static function OnAfterChatMuteNotify($fields)
        {
        }
    }
    class CSocNetLogToolsPhoto
    {
        public static function OnAfterPhotoUpload($arFields, $arComponentParams, $arComponentResult)
        {
        }
        public static function OnAfterPhotoDrop($arFields, $arComponentParams)
        {
        }
        public static function OnBeforeSectionDrop($sectionID, $arComponentParams, $arComponentResult, &$arSectionID, &$arElementID)
        {
        }
        public static function OnAfterSectionDrop($ID, $arFields, $arComponentParams, $arComponentResult)
        {
        }
        public static function OnAfterSectionEdit($arFields, $arComponentParams, $arComponentResult)
        {
        }
    }
    class CSocNetPhotoCommentEvent
    {
        function AddComment_PhotoAlbum($arFields)
        {
        }
        public static function FindLogType($logID)
        {
        }
        public static function AddComment_Photo($arFields)
        {
        }
        public static function AddComment_Photo_Forum($arFields, $FORUM_ID, $arLog)
        {
        }
        public static function AddComment_Photo_Blog($arFields, $BLOG_ID, $arLog)
        {
        }
        function UpdateComment_Photo($arFields)
        {
        }
        function DeleteComment_Photo($arFields)
        {
        }
        function SetVars($arParams, $arResult)
        {
        }
        function OnAfterPhotoCommentAddForum($ID, $arFields)
        {
        }
        function OnAfterPhotoCommentAddBlog($ID, $arFields)
        {
        }
        function InheriteAlbumFollow($albumId, $logId, $authorId = \false)
        {
        }
        function OnAfterPhotoCommentDeleteBlog($ID)
        {
        }
        public static function NotifyIm($arParams)
        {
        }
    }
    class CSocNetLogTools
    {
        public static function FindFeatureByEventID($event_id)
        {
        }
        public static function FindLogEventByID($event_id, $entity_type = \false)
        {
        }
        public static function FindLogCommentEventByID($event_id)
        {
        }
        public static function FindLogCommentEventByLogEventID($log_event_id)
        {
        }
        public static function FindLogEventByCommentID($event_id)
        {
        }
        public static function FindFullSetByEventID($event_id)
        {
        }
        public static function FindFullSetEventIDByEventID($event_id)
        {
        }
        public static function ShowGroup($arEntityDesc, $strEntityURL, $arParams)
        {
        }
        public static function ShowUser($arEntityDesc, $strEntityURL, $arParams)
        {
        }
        public static function HasLogEventCreatedBy($event_id)
        {
        }
        public static function FormatEvent_FillTooltip($arFields, $arParams)
        {
        }
        public static function FormatEvent_CreateAvatar($arFields, $arParams, $source = "CREATED_BY_", $site_id = \SITE_ID)
        {
        }
        public static function FormatEvent_CreateAvatarGroup($arFields, $arParams)
        {
        }
        public static function FormatEvent_IsMessageShort($message, $short_message = \false)
        {
        }
        public static function FormatEvent_GetCreatedBy($arFields, $arParams, $bMail, $bFirstCaps = \false)
        {
        }
        public static function FormatEvent_GetEntity($arFields, $arParams, $bMail)
        {
        }
        public static function FormatEvent_GetURL($arFields, $bAbsolute = \false)
        {
        }
        public static function FormatEvent_Blog($arFields, $arParams, $bMail = \false)
        {
        }
        public static function FormatComment_Blog($arFields, $arParams, $bMail = \false, $arLog = array())
        {
        }
        public static function FormatEvent_Microblog($arFields, $arParams, $bMail = \false)
        {
        }
        function FormatComment_Microblog($arFields, $arParams, $bMail = \false, $arLog = array())
        {
        }
        public static function FormatEvent_Forum($arFields, $arParams, $bMail = \false)
        {
        }
        function FormatComment_Forum($arFields, $arParams, $bMail = \false, $arLog = array())
        {
        }
        public static function FormatEvent_Photo($arFields, $arParams, $bMail = \false)
        {
        }
        function FormatEvent_PhotoPhoto($arFields, $arParams, $bMail = \false)
        {
        }
        function FormatComment_Photo($arFields, $arParams, $bMail = \false, $arLog = array())
        {
        }
        function FormatComment_PhotoAlbum($arFields, $arParams, $bMail = \false, $arLog = array())
        {
        }
        public static function FormatEvent_Files($arFields, $arParams, $bMail = \false)
        {
        }
        function FormatComment_Files($arFields, $arParams, $bMail = \false, $arLog = array())
        {
        }
        public static function FormatEvent_Task($arFields, $arParams, $bMail = \false)
        {
        }
        function FormatEvent_Task2($arFields, $arParams)
        {
        }
        public static function FormatEvent_SystemGroups($arFields, $arParams, $bMail = \false)
        {
        }
        public static function FormatEvent_SystemFriends($arFields, $arParams, $bMail = \false)
        {
        }
        public static function FormatEvent_System($arFields, $arParams, $bMail = \false)
        {
        }
        public static function SetCacheLastLogID($type = "log", $id)
        {
        }
        public static function GetCacheLastLogID($type = "log")
        {
        }
        public static function SetUserCache($type = "log", $user_id, $max_id, $max_viewed_id, $count, $bSetViewTime = \false, $LastViewTS = 0)
        {
        }
        public static function GetUserCache($type = "log", $user_id)
        {
        }
        function AddComment_Forum($arFields)
        {
        }
        public static function UpdateComment_Forum($arFields)
        {
        }
        public static function DeleteComment_Forum($arFields)
        {
        }
        function AddComment_Blog($arFields)
        {
        }
        function AddComment_Microblog($arFields)
        {
        }
        function AddComment_Files($arFields)
        {
        }
        public static function AddComment_Review_CheckIBlock($arElement)
        {
        }
        public static function AddComment_Review_CheckIBlock_Forum($arElement)
        {
        }
        public static function AddComment_Review_CheckIBlock_Blog($arElement)
        {
        }
        public static function AddComment_Review_CreateRoot($arElement, $forumID, $bPostFirstMessage = \false, $strFirstMessage = "")
        {
        }
        public static function AddComment_Review_CreateRoot_Forum($arElement, $forumID, $bPostFirstMessage = \false, $strFirstMessage = "")
        {
        }
        public static function AddComment_Review_CreateRoot_Blog($arElement, $blogID)
        {
        }
        public static function AddComment_Review_UpdateElement($arElement, $topicID, $bNewTopic)
        {
        }
        public static function AddComment_Review_UpdateElement_Forum($arElement, $topicID, $bNewTopic)
        {
        }
        public static function AddComment_Review_UpdateElement_Blog($arElement, $postID, $blogID, $bNewPost)
        {
        }
        function OnAfterPhotoUpload($arFields, $arComponentParams, $arComponentResult)
        {
        }
        function OnAfterPhotoDrop($arFields, $arComponentParams)
        {
        }
        function OnBeforeSectionDrop($sectionID, $arComponentParams, $arComponentResult, &$arSectionID, &$arElementID)
        {
        }
        function OnAfterSectionDrop($ID, $arFields, $arComponentParams, $arComponentResult)
        {
        }
        function OnAfterSectionEdit($arFields, $arComponentParams, $arComponentResult)
        {
        }
        public static function FormatDestinationFromRights($arRights, $arParams, &$iMoreCount = \false)
        {
        }
        function GetDestinationFromRights($arRights, $arParams)
        {
        }
        public static function ProcessPath($arUrl, $user_id, $explicit_site_id = \false)
        {
        }
        public static function GetSiteData()
        {
        }
        function ShowSourceType($source_type = \false, $bMobile = \false)
        {
        }
        public static function GetDataFromRatingEntity($rating_entity_type_id, $rating_entity_id, $bCheckRights = \true)
        {
        }
        function AddComment_Photo($arFields)
        {
        }
        function AddComment_Photo_Forum($arFields, $FORUM_ID, $arLog)
        {
        }
        function AddComment_Photo_Blog($arFields, $BLOG_ID, $arLog)
        {
        }
        function logUFfileShow($arResult, $arParams)
        {
        }
        public static function SetUFRights($files, $rights)
        {
        }
        public static function GetAvailableGroups($isExtranetUser = \false, $isExtranetSite = \false)
        {
        }
        public static function GetForumCommentMetaData($logEventId)
        {
        }
        ///////////////////////////////
        // working with task comments
        ///////////////////////////////
        function AddComment_Tasks($arFields)
        {
        }
        public static function GetCommentUrl_Task($arFields)
        {
        }
        public static function UpdateComment_Task($arFields)
        {
        }
        function DeleteComment_Task($arFields)
        {
        }
        function CanEditComment_Task($arParams)
        {
        }
        function CanEditOwnComment_Task($arParams)
        {
        }
    }
    class logTextParser extends \CTextParser
    {
        var $matchNum = 0;
        var $matchNum2 = 0;
        function sonet_sortlen($a, $b)
        {
        }
        function logTextParser($strLang = \False, $pathToSmile = \false)
        {
        }
        function convert($text, $arImages = array(), $allow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y", "TABLE" => "Y", "CUT_ANCHOR" => "N", "SHORT_ANCHOR" => "N"), $arParams = array())
        {
        }
        function convert_anchor_tag($url, $text, $pref = "")
        {
        }
        function convert_image_tag($url = "", $params = "")
        {
        }
        function pre_convert_code_tag($text = "")
        {
        }
        function convert_code_tag($text = "")
        {
        }
        function convert_quote_tag($text = "")
        {
        }
        function convert_font_attr($attr, $value = "", $text = "")
        {
        }
        function convert_video($params)
        {
        }
    }
    class CSocNetLogComponent
    {
        private $arItems = \null;
        public function __construct($params)
        {
        }
        public function OnBeforeSonetLogFilterFill(&$arPageParamsToClear, &$arItemsTop, &$arItems)
        {
        }
        public static function ConvertPresetToFilters($arPreset, $arParams = array())
        {
        }
        public static function OnSonetLogFilterProcess($preset_filter_top_id, $preset_filter_id, $arResultPresetFiltersTop, $arResultPresetFilters)
        {
        }
        public static function GetSiteByDepartmentId($arDepartmentId)
        {
        }
        public static function saveRawFilesToUF($arAttachedFilesRaw, $ufCode, &$arFields)
        {
        }
        public static function saveFileToUF($arFile = array(), &$type, $userId = \false)
        {
        }
        public static function checkEmptyUFValue($fieldName)
        {
        }
        public static function isSetTrafficNeeded($arParams)
        {
        }
        public static function processDateTimeFormatParams(&$arParams = array())
        {
        }
        public static function getDateTimeFormatted($timestamp, $arFormatParams)
        {
        }
        public static function getCommentRights($arParams)
        {
        }
        public static function canUserChangeComment($arParams)
        {
        }
        public static function getExtranetRedirectSite($extranetSiteId)
        {
        }
        public static function redirectExtranetSite($arRedirectSite, $componentPage, $arVariables, $arDefaultUrlTemplates404, $entity = "user")
        {
        }
        public static function getCommentByRequest($commentId, $postId, $action = \false, $checkPerms = \true, $checkAdminSession = \true)
        {
        }
        public static function getCommentRatingType($logEventId, $logId = \false)
        {
        }
    }
    class CAllSocNetGroupSubject
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        public static function GetByID($ID)
        {
        }
        public static function GetSite($subject_id)
        {
        }
    }
    class CSocNetLogRights
    {
        public static function Add($LOG_ID, $GROUP_CODE, $bShare = \false, $followSet = \true)
        {
        }
        function Update($RIGHT_ID, $GROUP_CODE)
        {
        }
        function Delete($RIGHT_ID)
        {
        }
        public static function DeleteByLogID($LOG_ID)
        {
        }
        public static function GetList($aSort = array(), $aFilter = array())
        {
        }
        public static function SetForSonet($logID, $entity_type, $entity_id, $feature, $operation, $bNew = \false)
        {
        }
        public static function CheckForUser($logID, $userID)
        {
        }
        public static function CheckForUserAll($logID)
        {
        }
        public static function CheckForUserOnly($logID, $userID)
        {
        }
    }
    class CAllSocNetGroup
    {
        protected static $staticCache = array();
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function DeleteNoDemand($userID)
        {
        }
        public static function SetStat($ID)
        {
        }
        public static function SetLastActivity($ID, $date = \false)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        public static function getById($ID, $bCheckPermissions = \false)
        {
        }
        protected static function getStaticCache()
        {
        }
        protected static function setStaticCache($cache = array())
        {
        }
        /***************************************/
        /**********  COMMON METHODS  ***********/
        /***************************************/
        public static function CanUserInitiate($userID, $groupID)
        {
        }
        public static function CanUserViewGroup($userID, $groupID)
        {
        }
        public static function CanUserReadGroup($userID, $groupID)
        {
        }
        /***************************************/
        /************  ACTIONS  ****************/
        /***************************************/
        public static function createGroup($ownerID, $arFields, $bAutoSubscribe = \true)
        {
        }
        /***************************************/
        /*************  UTILITIES  *************/
        /***************************************/
        public static function __ValidateID($ID)
        {
        }
        public static function GetFilterOperation($key)
        {
        }
        public static function PrepareSql(&$arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields, $arUF = array())
        {
        }
        /***************************************/
        /*************    *************/
        /***************************************/
        public static function GetSite($group_id)
        {
        }
        public static function GetDefaultSiteId($groupId, $siteId = \false)
        {
        }
        public static function OnBeforeLangDelete($lang)
        {
        }
        public static function SearchIndex($groupId, $arSiteID = array(), $arGroupOld = array(), $bAutoSubscribe = \true)
        {
        }
        public static function ConfirmAllRequests($groupId, $bAutoSubscribe = \true)
        {
        }
    }
    class CAllSocNetUserPerms
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function DeleteNoDemand($userID)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        public static function GetByID($ID)
        {
        }
        /***************************************/
        /**********  COMMON METHODS  ***********/
        /***************************************/
        public static function GetOperationPerms($userID, $operation)
        {
        }
        public static function CanPerformOperation($fromUserID, $toUserID, $operation, $bCurrentUserIsAdmin = \false)
        {
        }
        public static function InitUserPerms($currentUserID, $userID, $bCurrentUserIsAdmin)
        {
        }
        public static function SetPerm($userID, $feature, $perm)
        {
        }
    }
    class CAllSocNetEventUserView
    {
        function SetUser($entityID, $feature = \false, $permX = \false, $bSetFeatures = \false)
        {
        }
        function SetGroup($entityID, $bSetFeatures = \false)
        {
        }
        function SetFeature($entityType, $entityID, $feature, $op = \false, $permX = \false, $bCheckEmpty = \false)
        {
        }
        function Entity2UserAdd($entityType, $entityID, $userID, $role)
        {
        }
        function CheckFields($ACTION, &$arFields)
        {
        }
        function Delete($entityType, $entityID, $feature = \false, $event = \false)
        {
        }
        function IsEntityEmpty($entityType, $entityID)
        {
        }
        function CheckPermissions($table, $user_id)
        {
        }
        function CheckPermissionsByEvent($entity_type, $entity_id, $event_id, $user_id)
        {
        }
    }
    class CSocNetLogDestination
    {
        const LIST_USER_LIMIT = 11;
        /**
         * Retrieves last used users from socialnetwork/log_destination UserOption
         * @deprecated
         */
        public static function GetLastUser()
        {
        }
        /**
         * Retrieves last used sonet groups from socialnetwork/log_destination UserOption
         * @deprecated
         */
        public static function GetLastSocnetGroup()
        {
        }
        /**
         * Retrieves last used department from socialnetwork/log_destination UserOption
         * @deprecated
         */
        public static function GetLastDepartment()
        {
        }
        public static function GetStucture($arParams = array())
        {
        }
        public static function GetExtranetUser(array $arParams = array())
        {
        }
        public static function GetUsers($arParams = array(), $bSelf = \true)
        {
        }
        public static function GetGratMedalUsers($arParams = array())
        {
        }
        public function __percent_walk(&$val)
        {
        }
        public static function searchUsers($search, &$nt = "", $bSelf = \true, $bEmployeesOnly = \false, $bExtranetOnly = \false, $departmentId = \false)
        {
        }
        public static function searchSonetGroups($params = array())
        {
        }
        public static function SearchCrmEntities($arParams)
        {
        }
        public static function getSocnetGroup($arParams = array(), &$limitReached = \false)
        {
        }
        public static function GetTreeList($id, $relation, $compat = \false)
        {
        }
        private static function GetSocnetGroupFilteredByFeaturePerms(&$arGroups, $arFeaturePerms)
        {
        }
        private static function GetSocnetGroupFilteredByInitiatePerms(&$arGroups)
        {
        }
        public static function GetDestinationUsers($accessCodes, $fetchUsers = \false)
        {
        }
        public static function GetDestinationSort($arParams = array(), &$dataAdditional = \false)
        {
        }
        public static function fillLastDestination($arDestinationSort, &$arLastDestination, $arParams = array())
        {
        }
        public static function fillEmails(&$arDest)
        {
        }
        public static function fillCrmEmails(&$arDest)
        {
        }
        public static function getUsersAll($arParams = [])
        {
        }
        public static function formatUser($arUser, $arParams = array())
        {
        }
        public static function formatCrmEmailEntity($fields, $params = array())
        {
        }
        public static function formatNetworkUser($fields, $params = array())
        {
        }
        private static function getExternalAuthIdBlackList($params = array())
        {
        }
        public static function getUserDescription(array $userFields = [], array $params = [])
        {
        }
    }
    class CAllSocNetUser
    {
        public static function OnUserDelete($ID)
        {
        }
        public static function OnBeforeUserUpdate(&$arFields)
        {
        }
        public static function OnAfterUserAdd(&$arFields)
        {
        }
        public static function OnAfterUserLogout(&$arParams)
        {
        }
        public static function OnAfterUserUpdate(&$arFields)
        {
        }
        public static function OnBeforeProlog()
        {
        }
        public static function OnUserInitialize($user_id, $arFields = array())
        {
        }
        public static function IsOnLine($userID)
        {
        }
        public static function IsFriendsAllowed()
        {
        }
        public static function IsFriendsFriendsAllowed()
        {
        }
        public static function IsCurrentUserModuleAdmin($site_id = \SITE_ID, $bUseSession = \true)
        {
        }
        public static function IsUserModuleAdmin($userID, $site_id = \SITE_ID)
        {
        }
        public static function DeleteUserAdminCache()
        {
        }
        public static function FormatName($name, $lastName, $login)
        {
        }
        public static function FormatNameEx($name, $secondName, $lastName, $login, $email, $id)
        {
        }
        public static function SearchUser($user, $bIntranet = \false)
        {
        }
        public static function GetByID($ID)
        {
        }
        public static function GetFields($bAdditional = \false)
        {
        }
        public static function GetFieldsMap($bAdditional = \false)
        {
        }
        public static function CanProfileView($currentUserId, $arUser, $siteId = \SITE_ID, $arContext = array())
        {
        }
        public static function OnGetProfileView($currentUserId, $arUser, $siteId, $arContext)
        {
        }
        public static function CheckContext($currentUserId = \false, $userId = \false, $arContext = array())
        {
        }
    }
    class CSocNetGroupAuthProvider extends \CAuthProvider implements \IProviderInterface
    {
        public function __construct()
        {
        }
        public function UpdateCodes($USER_ID)
        {
        }
        public function AjaxRequest($arParams = \false)
        {
        }
        public function GetFormHtml($arParams = \false)
        {
        }
        public function GetNames($arCodes)
        {
        }
        public static function GetProviders()
        {
        }
    }
    class CSocNetUserAuthProvider extends \CAuthProvider
    {
        public function __construct()
        {
        }
        public function UpdateCodes($USER_ID)
        {
        }
    }
    class CAllSocNetUserRelations
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function DeleteNoDemand($userID)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        public static function GetByID($ID)
        {
        }
        function GetByUserID($user1ID, $user2ID)
        {
        }
        public static function GetRelatedUsers($userID, $relation, $arNavStartParams = \false, $bActiveOnly = "N")
        {
        }
        /***************************************/
        /**********  COMMON METHODS  ***********/
        /***************************************/
        public static function GetRelation($firstUserID, $secondUserID)
        {
        }
        public static function IsFriends($firstUserID, $secondUserID)
        {
        }
        function IsFriends2($firstUserID, $secondUserID)
        {
        }
        /***************************************/
        /**********  SEND EVENTS  **************/
        /***************************************/
        function SendEvent($relationID, $mailType = "INVITE_FRIEND")
        {
        }
        /***************************************/
        /************  ACTIONS  ****************/
        /***************************************/
        function SendRequestToBeFriend($senderUserID, $targetUserID, $message)
        {
        }
        public static function ConfirmRequestToBeFriend($senderUserID, $relationID, $bAutoSubscribe = \true)
        {
        }
        public static function RejectRequestToBeFriend($senderUserID, $relationID)
        {
        }
        function DeleteRelation($senderUserID, $targetUserID)
        {
        }
        function BanUser($senderUserID, $targetUserID)
        {
        }
        function UnBanMember($senderUserID, $relationID)
        {
        }
        function __SpeedFileCheckMessages($userID)
        {
        }
        function __SpeedFileCreate($userID)
        {
        }
        function __SpeedFileDelete($userID)
        {
        }
        function SpeedFileExists($userID)
        {
        }
        /* Module IM callback */
        function OnBeforeConfirmNotify($module, $tag, $value, $arParams)
        {
        }
    }
    class CSocNetSearch
    {
        var $_params;
        var $_user_id;
        var $_group_id;
        /*
        arParams
        	PATH_TO_GROUP
        
        	PATH_TO_GROUP_BLOG
        	PATH_TO_USER_BLOG
        
        	FORUM_ID
        	PATH_TO_GROUP_FORUM_MESSAGE
        	PATH_TO_USER_FORUM_MESSAGE
        
        	PHOTO_GROUP_IBLOCK_ID
        	PATH_TO_GROUP_PHOTO_ELEMENT
        	PHOTO_USER_IBLOCK_ID
        	PATH_TO_USER_PHOTO_ELEMENT
        
        	CALENDAR_GROUP_IBLOCK_ID
        	PATH_TO_GROUP_CALENDAR_ELEMENT
        
        	PATH_TO_GROUP_TASK_ELEMENT
        	PATH_TO_USER_TASK_ELEMENT
        
        	FILES_PROPERTY_CODE
        	FILES_FORUM_ID
        	FILES_GROUP_IBLOCK_ID
        	PATH_TO_GROUP_FILES_ELEMENT
        	PATH_TO_GROUP_FILES
        	FILES_USER_IBLOCK_ID
        	PATH_TO_USER_FILES_ELEMENT
        	PATH_TO_USER_FILES
        */
        function __construct($user_id, $group_id, $arParams)
        {
        }
        function CSocNetSearch($user_id, $group_id, $arParams)
        {
        }
        public static function OnUserRelationsChange($user_id)
        {
        }
        public static function SetFeaturePermissions($entity_type, $entity_id, $feature, $operation, $new_perm)
        {
        }
        public static function GetSearchParams($entity_type, $entity_id, $feature, $operation)
        {
        }
        public static function GetSearchGroups($entity_type, $entity_id, $feature, $operation)
        {
        }
        function OnSearchReindex($NS = array(), $oCallback = \NULL, $callback_method = "")
        {
        }
        function OnSearchPrepareFilter($strSearchContentAlias, $field, $val)
        {
        }
        function OnSearchCheckPermissions($FIELD)
        {
        }
        function BeforeIndexForum($arFields, $entity_type, $entity_id, $feature, $operation, $path_template)
        {
        }
        function Url($url, $params, $ancor)
        {
        }
        function BeforeIndex($arFields)
        {
        }
        function BeforeIndexLast($arFields)
        {
        }
        function IndexIBlockElement($arFields, $entity_id, $entity_type, $feature, $operation, $path_template, $arFieldList)
        {
        }
        function IBlockElementUpdate(&$arFields)
        {
        }
        function IBlockElementDelete($zr)
        {
        }
        function IndexIBlockSection($arFields, $entity_id, $entity_type, $feature, $operation, $path_template)
        {
        }
        function IBlockSectionUpdate(&$arFields)
        {
        }
        function IBlockSectionDelete($zr)
        {
        }
        function OnBeforeIndexUpdate($ID, $arFields)
        {
        }
        function OnAfterIndexAdd($ID, $arFields)
        {
        }
    }
    class CAllSocNetLogSmartFilter
    {
        public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function DeleteEx($user_id)
        {
        }
        public static function GetDefaultValue($user_id)
        {
        }
    }
    class CSocNetSearchReindex extends \CSocNetSearch
    {
        var $_params;
        var $_user_id;
        var $_group_id;
        var $_sess_id;
        var $_end_time;
        var $_counter;
        var $_blog_cache;
        /*
        arParams
        	PATH_TO_GROUP
        
        	BLOG_GROUP_ID
        	PATH_TO_GROUP_BLOG
        	PATH_TO_USER_BLOG
        
        	FORUM_ID
        	PATH_TO_GROUP_FORUM_MESSAGE
        	PATH_TO_USER_FORUM_MESSAGE
        
        	PHOTO_GROUP_IBLOCK_ID
        	PATH_TO_GROUP_PHOTO_ELEMENT
        	PHOTO_USER_IBLOCK_ID
        	PATH_TO_USER_PHOTO_ELEMENT
        
        	CALENDAR_GROUP_IBLOCK_ID
        	PATH_TO_GROUP_CALENDAR_ELEMENT
        
        			PATH_TO_GROUP_TASK_ELEMENT
        	PATH_TO_USER_TASK_ELEMENT
        
        	FILES_PROPERTY_CODE
        	FILES_FORUM_ID
        	FILES_GROUP_IBLOCK_ID
        	PATH_TO_GROUP_FILES_ELEMENT
        	FILES_USER_IBLOCK_ID
        	PATH_TO_USER_FILES_ELEMENT
        */
        function __construct($user_id = 0, $group_id = 0, $arParams = array())
        {
        }
        function CSocNetSearchReindex($user_id = 0, $group_id = 0, $arParams = array())
        {
        }
        function GetCounter()
        {
        }
        function InitSession($arType)
        {
        }
        function ReindexForum($entity_type, $last_id, $path_template)
        {
        }
        function GetBlog($ID)
        {
        }
        function IndexBlogItemUser($arFields)
        {
        }
        function IndexBlogItemGroup($arFields)
        {
        }
        function ReindexBlog($entity_type, $last_id)
        {
        }
        function UpdateForumTopicIndex($topic_id, $entity_type, $entity_id, $feature, $operation, $path_template)
        {
        }
        function ReindexIBlock($iblock_id, $entity_type, $feature, $operation, $path_template, $arFieldList, $last_id)
        {
        }
        function ReindexGroups($last_id)
        {
        }
        function IndexItem($arFields)
        {
        }
        function StepIndex($arSteps, $current_step, $last_id, $timeout = 0)
        {
        }
        function OnBeforeFullReindexClear()
        {
        }
        function OnBeforeIndexDelete($strWhere)
        {
        }
    }
    class CAllSocNetFeatures
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function DeleteNoDemand($userID)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function SetFeature($type, $id, $feature, $active, $featureName = \false)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        public static function GetByID($ID)
        {
        }
        /***************************************/
        /**********  COMMON METHODS  ***********/
        /***************************************/
        public static function IsActiveFeature($type, $id, $feature)
        {
        }
        private static function getActiveFeaturesList($type, $id)
        {
        }
        public static function GetActiveFeatures($type, $id)
        {
        }
        public static function getActiveFeaturesNames($type, $id)
        {
        }
    }
    class CSocNetForumComments
    {
        public static function findLogEventIDByForumEntityID($forumEntityType)
        {
        }
        public static function onAfterCommentAdd($entityType, $entityId, $arData)
        {
        }
        public static function onAfterCommentUpdate($entityType, $entityId, $arData)
        {
        }
    }
    class CAllSocNetUserToGroup
    {
        protected static $roleCache = array();
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Delete($ID, $bSendExclude = \false)
        {
        }
        public static function DeleteNoDemand($userID)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        public static function GetByID($ID)
        {
        }
        /***************************************/
        /**********  COMMON METHODS  ***********/
        /***************************************/
        public static function GetUserRole($userID, $groupID, $bExtendedReturn = \false)
        {
        }
        /***************************************/
        /**********  SEND EVENTS  **************/
        /***************************************/
        function SendEvent($userGroupID, $mailTemplate = "SONET_INVITE_GROUP")
        {
        }
        /***************************************/
        /************  ACTIONS  ****************/
        /***************************************/
        public static function SendRequestToBeMember($userID, $groupID, $message, $RequestConfirmUrl = "", $bAutoSubscribe = \true)
        {
        }
        public static function SendRequestToJoinGroup($senderID, $userID, $groupID, $message, $bMail = \true)
        {
        }
        public static function ConfirmRequestToBeMember($userID, $groupID, $arRelationID, $bAutoSubscribe = \true)
        {
        }
        public static function RejectRequestToBeMember($userID, $groupID, $arRelationID)
        {
        }
        public static function UserConfirmRequestToBeMember($targetUserID, $relationID, $bAutoSubscribe = \true)
        {
        }
        public static function UserRejectRequestToBeMember($targetUserID, $relationID)
        {
        }
        public static function TransferModerator2Member($userID, $groupID, $arRelationID, $currentUserIsAdmin)
        {
        }
        public static function TransferMember2Moderator($userID, $groupID, $arRelationID, $currentUserIsAdmin)
        {
        }
        public static function BanMember($userID, $groupID, $arRelationID, $currentUserIsAdmin)
        {
        }
        public static function UnBanMember($userID, $groupID, $arRelationID, $currentUserIsAdmin)
        {
        }
        public static function SetOwner($userID, $groupID, $arGroup = \false)
        {
        }
        public static function DeleteRelation($userID, $groupID)
        {
        }
        public static function InitUserPerms($userID, $arGroup, $bCurrentUserIsAdmin)
        {
        }
        public static function __SpeedFileCheckMessages($userID)
        {
        }
        public static function __SpeedFileCreate($userID)
        {
        }
        public static function __SpeedFileDelete($userID)
        {
        }
        function SpeedFileExists($userID)
        {
        }
        /* Module IM callback */
        function OnBeforeConfirmNotify($module, $tag, $value, $arParams)
        {
        }
        public static function NotifyImToModerators($arNotifyParams)
        {
        }
        public static function getMessage($message)
        {
        }
        public static function notifyModeratorAdded($params)
        {
        }
    }
    class CSocNetLogPages
    {
        function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function DeleteEx($user_id, $site_id = '**', $page_size = \false, $group_code = '**')
        {
        }
        public static function Set($user_id, $page_last_date, $page_size, $page_num = 1, $site_id = \SITE_ID, $group_code = '**', $traffic_avg = \false, $traffic_cnt = \false)
        {
        }
    }
    class CSocNetNotifySchema
    {
        public function __construct()
        {
        }
        public static function OnGetNotifySchema()
        {
        }
    }
    class CSocNetPullSchema
    {
        public static function OnGetDependentModule()
        {
        }
    }
    class CAllSocNetLogFavorites
    {
        public static function Change($user_id, $log_id, array $params = array('TRIGGER_EVENT' => \true))
        {
        }
    }
    class CAllSocNetFeaturesPerms
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        public static function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function Update($ID, $arFields)
        {
        }
        public static function SetPerm($featureID, $operation, $perm)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        public static function GetByID($ID)
        {
        }
        /***************************************/
        /**********  COMMON METHODS  ***********/
        /***************************************/
        public static function CurrentUserCanPerformOperation($type, $id, $feature, $operation, $site_id = \SITE_ID)
        {
        }
        public static function CanPerformOperation($userID, $type, $id, $feature, $operation, $bCurrentUserIsAdmin = \false)
        {
        }
        public static function GetOperationPerm($type, $id, $feature, $operation)
        {
        }
    }
    class CSocNetLogFollow
    {
        public static function Set($user_id, $code = "**", $type = "Y", $follow_date = \false, $site_id = \SITE_ID, $bByWF = \false)
        {
        }
        public static function Add($user_id, $code, $type, $follow_date = \false, $bByWF = \false)
        {
        }
        public static function Update($user_id, $code, $type, $follow_date = \false, $bByWF = \false)
        {
        }
        public static function Delete($user_id, $code, $type = \false)
        {
        }
        public static function DeleteByLogID($log_id, $type = \false, $bUseSmartLogic = \false)
        {
        }
        public static function GetExactValueByRating($user_id, $rating_type_id, $rating_entity_id)
        {
        }
        public static function GetList($arFilter = array(), $arSelectFields = array())
        {
        }
        public static function GetDefaultValue($user_id)
        {
        }
        function OnBlogPostMentionNotifyIm($ID, $arMessageFields)
        {
        }
        public static function checkAutoUnfollow($traffic_cnt, $traffic_avg, $userId = \false)
        {
        }
        function OnBeforeConfirmNotify($module, $tag, $value, $arParams)
        {
        }
    }
    class CAllSocNetLog
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        public static function GetByID($ID)
        {
        }
        function MakeTitle($titleTemplate, $title, $url = "", $bHtml = \true)
        {
        }
        /***************************************/
        /**********  SEND EVENTS  **************/
        /***************************************/
        function __InitUserTmp($userID)
        {
        }
        function __InitUsersTmp($message, $titleTemplate1, $titleTemplate2)
        {
        }
        function __InitGroupTmp($groupID)
        {
        }
        function __InitGroupsTmp($message, $titleTemplate1, $titleTemplate2)
        {
        }
        function SendEventAgent($ID, $mailTemplate = "SONET_NEW_EVENT", $tmp_id = \false)
        {
        }
        public static function SendEvent($ID, $mailTemplate = "SONET_NEW_EVENT", $tmp_id = \false, $bAgent = \false, $bTransport = \false)
        {
        }
        public static function CounterIncrement($entityId, $event_id = \false, $arOfEntities = \false, $type = \CSocNetLogCounter::TYPE_LOG_ENTRY, $bForAllAccess = \false, $arUserIdToPush = array())
        {
        }
        function CounterDecrement($log_id, $event_id = \false, $type = \CSocNetLogCounter::TYPE_LOG_ENTRY, $bForAllAccess = \false)
        {
        }
        function ClearOldAgent()
        {
        }
        function GetSign($url, $userID = \false, $site_id = \false)
        {
        }
        function CheckSign($sign, $userId)
        {
        }
        function OnSocNetLogFormatEvent($arEvent, $arParams)
        {
        }
        function InitUserTmp($userID, $arParams, $bCurrentUserIsAdmin = "unknown", $bRSS = \false)
        {
        }
        function InitUsersTmp($message, $titleTemplate1, $titleTemplate2, $arParams, $bCurrentUserIsAdmin = "unknown", $bRSS = \false)
        {
        }
        function InitGroupTmp($groupID, $arParams, $bRSS = \false)
        {
        }
        function InitGroupsTmp($message, $titleTemplate1, $titleTemplate2, $arParams, $bRSS = \false)
        {
        }
        function ShowGroup($arEntityDesc, $strEntityURL, $arParams)
        {
        }
        function ShowUser($arEntityDesc, $strEntityURL, $arParams)
        {
        }
        static function FormatEvent_FillTooltip($arFields, $arParams)
        {
        }
        public static function FormatEvent_CreateAvatar($arFields, $arParams, $source = "CREATED_BY_")
        {
        }
        static function FormatEvent_IsMessageShort($message, $short_message = \false)
        {
        }
        function FormatEvent_BlogPostComment($arFields, $arParams, $bMail = \false)
        {
        }
        function FormatEvent_Forum($arFields, $arParams, $bMail = \false)
        {
        }
        function FormatEvent_Photo($arFields, $arParams, $bMail = \false)
        {
        }
        function FormatEvent_Files($arFields, $arParams, $bMail = \false)
        {
        }
        function FormatEvent_Task($arFields, $arParams, $bMail = \false)
        {
        }
        function FormatEvent_SystemGroups($arFields, $arParams, $bMail = \false)
        {
        }
        function FormatEvent_SystemFriends($arFields, $arParams, $bMail = \false)
        {
        }
        function FormatEvent_System($arFields, $arParams, $bMail = \false)
        {
        }
        function FormatEvent_Microblog($arFields, $arParams, $bMail = \false)
        {
        }
        function SetCacheLastLogID($id)
        {
        }
        function GetCacheLastLogID()
        {
        }
        function SetUserCache($user_id, $max_id, $max_viewed_id, $count)
        {
        }
        function GetUserCache($user_id)
        {
        }
        public static function GetSite($log_id)
        {
        }
        function GetSimpleOrQuery($val, $key, $strOperation, $strNegative, $OrFields, &$arFields, &$arFilter)
        {
        }
    }
    class CAllSocNetUserEvents
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Delete($ID)
        {
        }
        public static function DeleteNoDemand($userID)
        {
        }
        function Update($ID, $arFields)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        function GetByID($ID)
        {
        }
        /***************************************/
        /**********  COMMON METHODS  ***********/
        /***************************************/
        function GetEventSite($userID, $event, $defSiteID)
        {
        }
    }
    class CAllSocNetLogComments
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Delete($ID, $bSetSource = \false)
        {
        }
        public static function DeleteNoDemand($userID)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        public static function GetByID($ID)
        {
        }
        /***************************************/
        /**********  SEND EVENTS  **************/
        /***************************************/
        function SendEvent($ID, $mailTemplate = "SONET_NEW_EVENT", $bTransport = \false)
        {
        }
        public static function UpdateLogData($log_id, $bSetDate = \true, $bSetDateByLastComment = \false)
        {
        }
        public static function SetSource($arFields, $action = \false)
        {
        }
        function SendMentionNotification($arCommentFields)
        {
        }
        function OnSendMentionGetEntityFields_Forum($arCommentFields)
        {
        }
        public static function BatchUpdateLogId($oldLogId, $newLogId)
        {
        }
    }
    class CSocNetLogRestService extends \IRestService
    {
        const PERM_DENY = 'D';
        const PERM_READ = 'R';
        const PERM_WRITE = 'W';
        private static $arAllowedOperations = array('', '!', '<', '<=', '>', '>=', '><', '!><', '?', '=', '!=', '%', '!%', '');
        public static function OnRestServiceBuildDescription()
        {
        }
        public static function createEventInfo($moduleName, $eventName, array $callback)
        {
        }
        private static function getBlogPostEventId()
        {
        }
        private static function getBlogCommentEventId()
        {
        }
        private static function getLogCommentEventId()
        {
        }
        public static function getBlogPost($arFields, $n, $server)
        {
        }
        public static function getUserBlogPost($arParams, $offset, \CRestServer $server)
        {
        }
        public static function addBlogPost($arFields)
        {
        }
        public static function updateBlogPost($arFields)
        {
        }
        public static function deleteBlogPost($arFields)
        {
        }
        public static function shareBlogPost($arFields)
        {
        }
        public static function getBlogPostUsersImprtnt($arFields)
        {
        }
        public static function getUserBlogComment($arParams, $offset, \CRestServer $server)
        {
        }
        public static function addBlogComment($arFields)
        {
        }
        public static function deleteBlogComment($arFields)
        {
        }
        public static function getUserLogComment($arParams, $offset, \CRestServer $server)
        {
        }
        public static function deleteLogComment($arFields)
        {
        }
        private static function getBlogPostPerm($arFields)
        {
        }
        private static function getBlogCommentPerm($arFields)
        {
        }
        private static function getLogCommentPerm($arFields)
        {
        }
        private static function getBlogPostFields($postId)
        {
        }
        private static function getBlogCommentFields($commentId)
        {
        }
        private static function getLogCommentFields($commentId)
        {
        }
        private static function getFileData($diskObjectId)
        {
        }
        private static function convertFileData($fileData)
        {
        }
        private static function getPublicDomain()
        {
        }
        public static function createGroup($arFields)
        {
        }
        public static function updateGroup($arFields)
        {
        }
        public static function deleteGroup($arFields)
        {
        }
        public static function setGroupOwner($arFields)
        {
        }
        public static function getGroup($arFields, $n, $server)
        {
        }
        public static function getGroupUsers($arFields, $n, $server)
        {
        }
        public static function inviteGroupUsers($arFields)
        {
        }
        public static function requestGroupUser($arFields)
        {
        }
        public static function addGroupUsers($arFields)
        {
        }
        public static function updateGroupUsers($arFields)
        {
        }
        public static function deleteGroupUsers($arFields)
        {
        }
        public static function getUserGroups($arFields, $n, $server)
        {
        }
        public static function getGroupFeatureAccess($arFields)
        {
        }
        private static function checkGroupFilter($arFilter)
        {
        }
        private static function getFile($fileId)
        {
        }
        private static function isAdmin()
        {
        }
        public static function getGroupSubject($arFields, $n, $server)
        {
        }
        public static function updateGroupSubject($arFields)
        {
        }
        public static function deleteGroupSubject($arFields)
        {
        }
        public static function addGroupSubject($arFields)
        {
        }
    }
    class CSocNetLogBlogPostRestProxy
    {
        public static function processEvent(array $arParams, array $arHandler)
        {
        }
    }
    class CSocNetGroupRestProxy
    {
        public static function processEvent(array $arParams, array $arHandler)
        {
        }
    }
    class CSocNetGroupSubjectRestProxy
    {
        public static function processEvent(array $arParams, array $arHandler)
        {
        }
    }
    class CAllSocNetLogEvents
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        public static function Delete($ID)
        {
        }
        public static function DeleteNoDemand($userID)
        {
        }
        function DeleteByUserAndEntity($userID, $entityType, $entityID)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        function GetByID($ID)
        {
        }
        /***************************************/
        /**********      UTIL        ***********/
        /***************************************/
        public static function AutoSubscribe($userID, $entityType, $entityID)
        {
        }
        public static function GetSQL($user_id, $arMyEntities, $transport, $visible, $table_alias = "L")
        {
        }
        function GetSQLForEvent($entity_type, $entity_id, $event_id, $user_id, $transport = \false, $visible = \true, $arOfEntities = array())
        {
        }
    }
    class CAllSocNetMessages
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        function CheckFields($ACTION, &$arFields, $ID = 0)
        {
        }
        function Delete($ID)
        {
        }
        function DeleteMessage($ID, $userID, $bCheckMessages = \true)
        {
        }
        public static function DeleteNoDemand($userID)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        function GetByID($ID)
        {
        }
        /***************************************/
        /**********  SEND EVENTS  **************/
        /***************************************/
        function SendEvent($messageID, $mailTemplate = "SONET_NEW_MESSAGE")
        {
        }
        /***************************************/
        /************  ACTIONS  ****************/
        /***************************************/
        function MarkMessageRead($senderUserID, $messageID, $bRead = \true)
        {
        }
        function CreateMessage($senderUserID, $targetUserID, $message, $title = \false)
        {
        }
        function MarkMessageReadMultiple($userID, $arIDs)
        {
        }
        function DeleteMessageMultiple($userID, $arIDs)
        {
        }
        function DeleteConversation($CurrentUserID, $PartnerUserID)
        {
        }
        function __SpeedFileCheckMessages($userID)
        {
        }
        function __SpeedFileCreate($userID)
        {
        }
        function __SpeedFileDelete($userID)
        {
        }
        function SpeedFileExists($userID)
        {
        }
        function SendEventAgent()
        {
        }
    }
    class CAllSocNetSmile
    {
        function PrintSmilesList($num_cols, $strLang = \False, $strPath2Icons = \False, $cacheTime = \False)
        {
        }
        //---------------> User insert, update, delete
        function CheckFields($ACTION, &$arFields)
        {
        }
        function Delete($ID)
        {
        }
        public static function GetByID($ID)
        {
        }
        function GetByIDEx($ID, $strLang)
        {
        }
        public static function GetLangByID($SMILE_ID, $strLang)
        {
        }
    }
    class CSocNetLogCounter extends \CAllSocNetLogCounter
    {
        const TYPE_LOG_ENTRY = 'L';
        const TYPE_LOG_COMMENT = 'LC';
        function Increment($log_id, $entity_type = \false, $entity_id = \false, $event_id = \false, $created_by_id = \false, $arOfEntities = \false, $arAdmin = \false, $transport = \false, $visible = "Y", $type = \CSocNetLogCounter::TYPE_LOG_ENTRY)
        {
        }
        function ClearByUser($user_id, $site_id = \SITE_ID, $code = "**", $page_size = 0, $page_last_date_1 = "")
        {
        }
        function dbIF($condition, $yes, $no)
        {
        }
        public static function dbWeeksAgo($iWeeks)
        {
        }
    }
    class CSocNetSubscription extends \CAllSocNetSubscription
    {
        function Add($arFields)
        {
        }
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CSocNetGroupSubject extends \CAllSocNetGroupSubject
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        function Add($arFields)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        function GetList($arOrder = array("SORT" => "ASC", "ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CSocNetGroup extends \CAllSocNetGroup
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        public static function Add($arFields)
        {
        }
        public static function Update($ID, $arFields, $bAutoSubscribe = \true, $bClearCommonTag = \true, $bSync = \true)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CSocNetUserPerms extends \CAllSocNetUserPerms
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        public static function Add($arFields)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CSocNetEventUserView extends \CAllSocNetEventUserView
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        function Add($arFields)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        function GetList($arOrder = array("ENTITY_ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CSocNetUser extends \CAllSocNetUser
    {
        public static function SearchUsers($searchString, $groupId = 0, $numberOfUsers = 10)
        {
        }
    }
    class CSocNetUserRelations extends \CAllSocNetUserRelations
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function GetListBirthday($userID, $number = 5, $online_interval = 120)
        {
        }
        function GetRelationsTop($userID, $number = 100)
        {
        }
    }
    class CSocNetLogSmartFilter extends \CAllSocNetLogSmartFilter
    {
        function Set($user_id, $type)
        {
        }
    }
    class CSocNetFeatures extends \CAllSocNetFeatures
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        public static function Add($arFields)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CSocNetUserToGroup extends \CAllSocNetUserToGroup
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CSocNetLogFavorites extends \CAllSocNetLogFavorites
    {
        function Add($user_id, $log_id, array $params = array('TRIGGER_EVENT' => \true))
        {
        }
    }
    class CSocNetFeaturesPerms extends \CAllSocNetFeaturesPerms
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        public static function Add($arFields)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function GetAvaibleEntity($entityType, $feature, $role, $operation, $active, $visible, $siteID)
        {
        }
    }
    class CSocNetLog extends \CAllSocNetLog
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        function Add($arFields, $bSendEvent = \true)
        {
        }
        function Update($ID, $arFields)
        {
        }
        function ClearOld($days = 90)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array(), $arParams = array())
        {
        }
        function DeleteSystemEventsByGroupID($group_id = \false)
        {
        }
        function Delete($ID)
        {
        }
        function DeleteNoDemand($userID)
        {
        }
        function OnBlogDelete($blog_id)
        {
        }
    }
    class CSocNetUserEvents extends \CAllSocNetUserEvents
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        function Add($arFields)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CSocNetLogComments extends \CAllSocNetLogComments
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        function Add($arFields, $bSetSource = \false, $bSendEvent = \true, $bSetLogUpDate = \true)
        {
        }
        public static function Update($ID, $arFields, $bSetSource = \false)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array(), $arParams = array())
        {
        }
        function OnBlogDelete($blog_id)
        {
        }
    }
    class CSocNetLogEvents extends \CAllSocNetLogEvents
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array(), $arParams = array())
        {
        }
        function GetUserLogEvents($userID, $arFilter = array())
        {
        }
    }
    class CSocNetMessages extends \CAllSocNetMessages
    {
        /***************************************/
        /********  DATA MODIFICATION  **********/
        /***************************************/
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        /***************************************/
        /**********  DATA SELECTION  ***********/
        /***************************************/
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        function GetChatLastDate($currentUserID, $userID)
        {
        }
        function GetMessagesForChat($currentUserID, $userID, $date = \false, $arNavStartParams = \false, $replyMessId = \false)
        {
        }
        function GetMessagesUsers($userID, $arNavStartParams = \false, $online_interval = 120)
        {
        }
        function Now()
        {
        }
    }
    class CSocNetSmile extends \CAllSocNetSmile
    {
        function Add($arFields)
        {
        }
        function Update($ID, $arFields)
        {
        }
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
}
namespace Bitrix\Socialnetwork {
    /**
     * EO_Feature
     * @see \Bitrix\Socialnetwork\FeatureTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialnetwork\EO_Feature setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getEntityType()
     * @method \Bitrix\Socialnetwork\EO_Feature setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \string remindActualEntityType()
     * @method \string requireEntityType()
     * @method \Bitrix\Socialnetwork\EO_Feature resetEntityType()
     * @method \Bitrix\Socialnetwork\EO_Feature unsetEntityType()
     * @method \string fillEntityType()
     * @method \int getEntityId()
     * @method \Bitrix\Socialnetwork\EO_Feature setEntityId(\int|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \int remindActualEntityId()
     * @method \int requireEntityId()
     * @method \Bitrix\Socialnetwork\EO_Feature resetEntityId()
     * @method \Bitrix\Socialnetwork\EO_Feature unsetEntityId()
     * @method \int fillEntityId()
     * @method \string getFeature()
     * @method \Bitrix\Socialnetwork\EO_Feature setFeature(\string|\Bitrix\Main\DB\SqlExpression $feature)
     * @method bool hasFeature()
     * @method bool isFeatureFilled()
     * @method bool isFeatureChanged()
     * @method \string remindActualFeature()
     * @method \string requireFeature()
     * @method \Bitrix\Socialnetwork\EO_Feature resetFeature()
     * @method \Bitrix\Socialnetwork\EO_Feature unsetFeature()
     * @method \string fillFeature()
     * @method \string getFeatureName()
     * @method \Bitrix\Socialnetwork\EO_Feature setFeatureName(\string|\Bitrix\Main\DB\SqlExpression $featureName)
     * @method bool hasFeatureName()
     * @method bool isFeatureNameFilled()
     * @method bool isFeatureNameChanged()
     * @method \string remindActualFeatureName()
     * @method \string requireFeatureName()
     * @method \Bitrix\Socialnetwork\EO_Feature resetFeatureName()
     * @method \Bitrix\Socialnetwork\EO_Feature unsetFeatureName()
     * @method \string fillFeatureName()
     * @method \string getActive()
     * @method \Bitrix\Socialnetwork\EO_Feature setActive(\string|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \string remindActualActive()
     * @method \string requireActive()
     * @method \Bitrix\Socialnetwork\EO_Feature resetActive()
     * @method \Bitrix\Socialnetwork\EO_Feature unsetActive()
     * @method \string fillActive()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Socialnetwork\EO_Feature setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Socialnetwork\EO_Feature resetDateCreate()
     * @method \Bitrix\Socialnetwork\EO_Feature unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateUpdate()
     * @method \Bitrix\Socialnetwork\EO_Feature setDateUpdate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateUpdate)
     * @method bool hasDateUpdate()
     * @method bool isDateUpdateFilled()
     * @method bool isDateUpdateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateUpdate()
     * @method \Bitrix\Main\Type\DateTime requireDateUpdate()
     * @method \Bitrix\Socialnetwork\EO_Feature resetDateUpdate()
     * @method \Bitrix\Socialnetwork\EO_Feature unsetDateUpdate()
     * @method \Bitrix\Main\Type\DateTime fillDateUpdate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_Feature set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_Feature reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_Feature unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_Feature wakeUp($data)
     */
    class EO_Feature
    {
        /* @var \Bitrix\Socialnetwork\FeatureTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\FeatureTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Feature_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getEntityTypeList()
     * @method \string[] fillEntityType()
     * @method \int[] getEntityIdList()
     * @method \int[] fillEntityId()
     * @method \string[] getFeatureList()
     * @method \string[] fillFeature()
     * @method \string[] getFeatureNameList()
     * @method \string[] fillFeatureName()
     * @method \string[] getActiveList()
     * @method \string[] fillActive()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateUpdateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateUpdate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_Feature $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_Feature $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_Feature getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_Feature[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_Feature $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_Feature_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_Feature current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Feature_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\FeatureTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\FeatureTable';
    }
    /**
     * @method static EO_Feature_Query query()
     * @method static EO_Feature_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Feature_Result getById($id)
     * @method static EO_Feature_Result getList(array $parameters = array())
     * @method static EO_Feature_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_Feature createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_Feature_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_Feature wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_Feature_Collection wakeUpCollection($rows)
     */
    class FeatureTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Feature_Result exec()
     * @method \Bitrix\Socialnetwork\EO_Feature fetchObject()
     * @method \Bitrix\Socialnetwork\EO_Feature_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Feature_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_Feature fetchObject()
     * @method \Bitrix\Socialnetwork\EO_Feature_Collection fetchCollection()
     */
    class EO_Feature_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_Feature createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_Feature_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_Feature wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_Feature_Collection wakeUpCollection($rows)
     */
    class EO_Feature_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_FeaturePerm
     * @see \Bitrix\Socialnetwork\FeaturePermTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getFeatureId()
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm setFeatureId(\int|\Bitrix\Main\DB\SqlExpression $featureId)
     * @method bool hasFeatureId()
     * @method bool isFeatureIdFilled()
     * @method bool isFeatureIdChanged()
     * @method \int remindActualFeatureId()
     * @method \int requireFeatureId()
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm resetFeatureId()
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm unsetFeatureId()
     * @method \int fillFeatureId()
     * @method \Bitrix\Socialnetwork\EO_Feature getFeature()
     * @method \Bitrix\Socialnetwork\EO_Feature remindActualFeature()
     * @method \Bitrix\Socialnetwork\EO_Feature requireFeature()
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm setFeature(\Bitrix\Socialnetwork\EO_Feature $object)
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm resetFeature()
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm unsetFeature()
     * @method bool hasFeature()
     * @method bool isFeatureFilled()
     * @method bool isFeatureChanged()
     * @method \Bitrix\Socialnetwork\EO_Feature fillFeature()
     * @method \string getOperationId()
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm setOperationId(\string|\Bitrix\Main\DB\SqlExpression $operationId)
     * @method bool hasOperationId()
     * @method bool isOperationIdFilled()
     * @method bool isOperationIdChanged()
     * @method \string remindActualOperationId()
     * @method \string requireOperationId()
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm resetOperationId()
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm unsetOperationId()
     * @method \string fillOperationId()
     * @method \string getRole()
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm setRole(\string|\Bitrix\Main\DB\SqlExpression $role)
     * @method bool hasRole()
     * @method bool isRoleFilled()
     * @method bool isRoleChanged()
     * @method \string remindActualRole()
     * @method \string requireRole()
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm resetRole()
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm unsetRole()
     * @method \string fillRole()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_FeaturePerm wakeUp($data)
     */
    class EO_FeaturePerm
    {
        /* @var \Bitrix\Socialnetwork\FeaturePermTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\FeaturePermTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_FeaturePerm_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getFeatureIdList()
     * @method \int[] fillFeatureId()
     * @method \Bitrix\Socialnetwork\EO_Feature[] getFeatureList()
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm_Collection getFeatureCollection()
     * @method \Bitrix\Socialnetwork\EO_Feature_Collection fillFeature()
     * @method \string[] getOperationIdList()
     * @method \string[] fillOperationId()
     * @method \string[] getRoleList()
     * @method \string[] fillRole()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_FeaturePerm $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_FeaturePerm $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_FeaturePerm $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_FeaturePerm_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_FeaturePerm_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\FeaturePermTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\FeaturePermTable';
    }
    /**
     * @method static EO_FeaturePerm_Query query()
     * @method static EO_FeaturePerm_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_FeaturePerm_Result getById($id)
     * @method static EO_FeaturePerm_Result getList(array $parameters = array())
     * @method static EO_FeaturePerm_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_FeaturePerm createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_FeaturePerm_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_FeaturePerm wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_FeaturePerm_Collection wakeUpCollection($rows)
     */
    class FeaturePermTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_FeaturePerm_Result exec()
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm fetchObject()
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_FeaturePerm_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm fetchObject()
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm_Collection fetchCollection()
     */
    class EO_FeaturePerm_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_FeaturePerm_Collection wakeUpCollection($rows)
     */
    class EO_FeaturePerm_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Log
     * @see \Bitrix\Socialnetwork\LogTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialnetwork\EO_Log setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getEntityType()
     * @method \Bitrix\Socialnetwork\EO_Log setEntityType(\string|\Bitrix\Main\DB\SqlExpression $entityType)
     * @method bool hasEntityType()
     * @method bool isEntityTypeFilled()
     * @method bool isEntityTypeChanged()
     * @method \string remindActualEntityType()
     * @method \string requireEntityType()
     * @method \Bitrix\Socialnetwork\EO_Log resetEntityType()
     * @method \Bitrix\Socialnetwork\EO_Log unsetEntityType()
     * @method \string fillEntityType()
     * @method \int getEntityId()
     * @method \Bitrix\Socialnetwork\EO_Log setEntityId(\int|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \int remindActualEntityId()
     * @method \int requireEntityId()
     * @method \Bitrix\Socialnetwork\EO_Log resetEntityId()
     * @method \Bitrix\Socialnetwork\EO_Log unsetEntityId()
     * @method \int fillEntityId()
     * @method \string getEventId()
     * @method \Bitrix\Socialnetwork\EO_Log setEventId(\string|\Bitrix\Main\DB\SqlExpression $eventId)
     * @method bool hasEventId()
     * @method bool isEventIdFilled()
     * @method bool isEventIdChanged()
     * @method \string remindActualEventId()
     * @method \string requireEventId()
     * @method \Bitrix\Socialnetwork\EO_Log resetEventId()
     * @method \Bitrix\Socialnetwork\EO_Log unsetEventId()
     * @method \string fillEventId()
     * @method \int getUserId()
     * @method \Bitrix\Socialnetwork\EO_Log setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Socialnetwork\EO_Log resetUserId()
     * @method \Bitrix\Socialnetwork\EO_Log unsetUserId()
     * @method \int fillUserId()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Socialnetwork\EO_Log setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Socialnetwork\EO_Log resetUser()
     * @method \Bitrix\Socialnetwork\EO_Log unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \string getTitle()
     * @method \Bitrix\Socialnetwork\EO_Log setTitle(\string|\Bitrix\Main\DB\SqlExpression $title)
     * @method bool hasTitle()
     * @method bool isTitleFilled()
     * @method bool isTitleChanged()
     * @method \string remindActualTitle()
     * @method \string requireTitle()
     * @method \Bitrix\Socialnetwork\EO_Log resetTitle()
     * @method \Bitrix\Socialnetwork\EO_Log unsetTitle()
     * @method \string fillTitle()
     * @method \string getMessage()
     * @method \Bitrix\Socialnetwork\EO_Log setMessage(\string|\Bitrix\Main\DB\SqlExpression $message)
     * @method bool hasMessage()
     * @method bool isMessageFilled()
     * @method bool isMessageChanged()
     * @method \string remindActualMessage()
     * @method \string requireMessage()
     * @method \Bitrix\Socialnetwork\EO_Log resetMessage()
     * @method \Bitrix\Socialnetwork\EO_Log unsetMessage()
     * @method \string fillMessage()
     * @method \string getTextMessage()
     * @method \Bitrix\Socialnetwork\EO_Log setTextMessage(\string|\Bitrix\Main\DB\SqlExpression $textMessage)
     * @method bool hasTextMessage()
     * @method bool isTextMessageFilled()
     * @method bool isTextMessageChanged()
     * @method \string remindActualTextMessage()
     * @method \string requireTextMessage()
     * @method \Bitrix\Socialnetwork\EO_Log resetTextMessage()
     * @method \Bitrix\Socialnetwork\EO_Log unsetTextMessage()
     * @method \string fillTextMessage()
     * @method \string getUrl()
     * @method \Bitrix\Socialnetwork\EO_Log setUrl(\string|\Bitrix\Main\DB\SqlExpression $url)
     * @method bool hasUrl()
     * @method bool isUrlFilled()
     * @method bool isUrlChanged()
     * @method \string remindActualUrl()
     * @method \string requireUrl()
     * @method \Bitrix\Socialnetwork\EO_Log resetUrl()
     * @method \Bitrix\Socialnetwork\EO_Log unsetUrl()
     * @method \string fillUrl()
     * @method \string getParams()
     * @method \Bitrix\Socialnetwork\EO_Log setParams(\string|\Bitrix\Main\DB\SqlExpression $params)
     * @method bool hasParams()
     * @method bool isParamsFilled()
     * @method bool isParamsChanged()
     * @method \string remindActualParams()
     * @method \string requireParams()
     * @method \Bitrix\Socialnetwork\EO_Log resetParams()
     * @method \Bitrix\Socialnetwork\EO_Log unsetParams()
     * @method \string fillParams()
     * @method \int getSourceId()
     * @method \Bitrix\Socialnetwork\EO_Log setSourceId(\int|\Bitrix\Main\DB\SqlExpression $sourceId)
     * @method bool hasSourceId()
     * @method bool isSourceIdFilled()
     * @method bool isSourceIdChanged()
     * @method \int remindActualSourceId()
     * @method \int requireSourceId()
     * @method \Bitrix\Socialnetwork\EO_Log resetSourceId()
     * @method \Bitrix\Socialnetwork\EO_Log unsetSourceId()
     * @method \int fillSourceId()
     * @method \Bitrix\Main\Type\DateTime getLogDate()
     * @method \Bitrix\Socialnetwork\EO_Log setLogDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $logDate)
     * @method bool hasLogDate()
     * @method bool isLogDateFilled()
     * @method bool isLogDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLogDate()
     * @method \Bitrix\Main\Type\DateTime requireLogDate()
     * @method \Bitrix\Socialnetwork\EO_Log resetLogDate()
     * @method \Bitrix\Socialnetwork\EO_Log unsetLogDate()
     * @method \Bitrix\Main\Type\DateTime fillLogDate()
     * @method \Bitrix\Main\Type\DateTime getLogUpdate()
     * @method \Bitrix\Socialnetwork\EO_Log setLogUpdate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $logUpdate)
     * @method bool hasLogUpdate()
     * @method bool isLogUpdateFilled()
     * @method bool isLogUpdateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLogUpdate()
     * @method \Bitrix\Main\Type\DateTime requireLogUpdate()
     * @method \Bitrix\Socialnetwork\EO_Log resetLogUpdate()
     * @method \Bitrix\Socialnetwork\EO_Log unsetLogUpdate()
     * @method \Bitrix\Main\Type\DateTime fillLogUpdate()
     * @method \int getCommentsCount()
     * @method \Bitrix\Socialnetwork\EO_Log setCommentsCount(\int|\Bitrix\Main\DB\SqlExpression $commentsCount)
     * @method bool hasCommentsCount()
     * @method bool isCommentsCountFilled()
     * @method bool isCommentsCountChanged()
     * @method \int remindActualCommentsCount()
     * @method \int requireCommentsCount()
     * @method \Bitrix\Socialnetwork\EO_Log resetCommentsCount()
     * @method \Bitrix\Socialnetwork\EO_Log unsetCommentsCount()
     * @method \int fillCommentsCount()
     * @method \boolean getTransform()
     * @method \Bitrix\Socialnetwork\EO_Log setTransform(\boolean|\Bitrix\Main\DB\SqlExpression $transform)
     * @method bool hasTransform()
     * @method bool isTransformFilled()
     * @method bool isTransformChanged()
     * @method \boolean remindActualTransform()
     * @method \boolean requireTransform()
     * @method \Bitrix\Socialnetwork\EO_Log resetTransform()
     * @method \Bitrix\Socialnetwork\EO_Log unsetTransform()
     * @method \boolean fillTransform()
     * @method \boolean getInactive()
     * @method \Bitrix\Socialnetwork\EO_Log setInactive(\boolean|\Bitrix\Main\DB\SqlExpression $inactive)
     * @method bool hasInactive()
     * @method bool isInactiveFilled()
     * @method bool isInactiveChanged()
     * @method \boolean remindActualInactive()
     * @method \boolean requireInactive()
     * @method \Bitrix\Socialnetwork\EO_Log resetInactive()
     * @method \Bitrix\Socialnetwork\EO_Log unsetInactive()
     * @method \boolean fillInactive()
     * @method \string getRatingTypeId()
     * @method \Bitrix\Socialnetwork\EO_Log setRatingTypeId(\string|\Bitrix\Main\DB\SqlExpression $ratingTypeId)
     * @method bool hasRatingTypeId()
     * @method bool isRatingTypeIdFilled()
     * @method bool isRatingTypeIdChanged()
     * @method \string remindActualRatingTypeId()
     * @method \string requireRatingTypeId()
     * @method \Bitrix\Socialnetwork\EO_Log resetRatingTypeId()
     * @method \Bitrix\Socialnetwork\EO_Log unsetRatingTypeId()
     * @method \string fillRatingTypeId()
     * @method \int getRatingEntityId()
     * @method \Bitrix\Socialnetwork\EO_Log setRatingEntityId(\int|\Bitrix\Main\DB\SqlExpression $ratingEntityId)
     * @method bool hasRatingEntityId()
     * @method bool isRatingEntityIdFilled()
     * @method bool isRatingEntityIdChanged()
     * @method \int remindActualRatingEntityId()
     * @method \int requireRatingEntityId()
     * @method \Bitrix\Socialnetwork\EO_Log resetRatingEntityId()
     * @method \Bitrix\Socialnetwork\EO_Log unsetRatingEntityId()
     * @method \int fillRatingEntityId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_Log set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_Log reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_Log unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_Log wakeUp($data)
     */
    class EO_Log
    {
        /* @var \Bitrix\Socialnetwork\LogTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Log_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getEntityTypeList()
     * @method \string[] fillEntityType()
     * @method \int[] getEntityIdList()
     * @method \int[] fillEntityId()
     * @method \string[] getEventIdList()
     * @method \string[] fillEventId()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Socialnetwork\EO_Log_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \string[] getTitleList()
     * @method \string[] fillTitle()
     * @method \string[] getMessageList()
     * @method \string[] fillMessage()
     * @method \string[] getTextMessageList()
     * @method \string[] fillTextMessage()
     * @method \string[] getUrlList()
     * @method \string[] fillUrl()
     * @method \string[] getParamsList()
     * @method \string[] fillParams()
     * @method \int[] getSourceIdList()
     * @method \int[] fillSourceId()
     * @method \Bitrix\Main\Type\DateTime[] getLogDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillLogDate()
     * @method \Bitrix\Main\Type\DateTime[] getLogUpdateList()
     * @method \Bitrix\Main\Type\DateTime[] fillLogUpdate()
     * @method \int[] getCommentsCountList()
     * @method \int[] fillCommentsCount()
     * @method \boolean[] getTransformList()
     * @method \boolean[] fillTransform()
     * @method \boolean[] getInactiveList()
     * @method \boolean[] fillInactive()
     * @method \string[] getRatingTypeIdList()
     * @method \string[] fillRatingTypeId()
     * @method \int[] getRatingEntityIdList()
     * @method \int[] fillRatingEntityId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_Log $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_Log $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_Log getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_Log[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_Log $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_Log_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_Log current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Log_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\LogTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogTable';
    }
    /**
     * @method static EO_Log_Query query()
     * @method static EO_Log_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Log_Result getById($id)
     * @method static EO_Log_Result getList(array $parameters = array())
     * @method static EO_Log_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_Log createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_Log_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_Log wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_Log_Collection wakeUpCollection($rows)
     */
    class LogTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Log_Result exec()
     * @method \Bitrix\Socialnetwork\EO_Log fetchObject()
     * @method \Bitrix\Socialnetwork\EO_Log_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Log_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_Log fetchObject()
     * @method \Bitrix\Socialnetwork\EO_Log_Collection fetchCollection()
     */
    class EO_Log_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_Log createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_Log_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_Log wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_Log_Collection wakeUpCollection($rows)
     */
    class EO_Log_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_LogComment
     * @see \Bitrix\Socialnetwork\LogCommentTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialnetwork\EO_LogComment setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getLogId()
     * @method \Bitrix\Socialnetwork\EO_LogComment setLogId(\int|\Bitrix\Main\DB\SqlExpression $logId)
     * @method bool hasLogId()
     * @method bool isLogIdFilled()
     * @method bool isLogIdChanged()
     * @method \int remindActualLogId()
     * @method \int requireLogId()
     * @method \Bitrix\Socialnetwork\EO_LogComment resetLogId()
     * @method \Bitrix\Socialnetwork\EO_LogComment unsetLogId()
     * @method \int fillLogId()
     * @method \Bitrix\Socialnetwork\EO_Log getLog()
     * @method \Bitrix\Socialnetwork\EO_Log remindActualLog()
     * @method \Bitrix\Socialnetwork\EO_Log requireLog()
     * @method \Bitrix\Socialnetwork\EO_LogComment setLog(\Bitrix\Socialnetwork\EO_Log $object)
     * @method \Bitrix\Socialnetwork\EO_LogComment resetLog()
     * @method \Bitrix\Socialnetwork\EO_LogComment unsetLog()
     * @method bool hasLog()
     * @method bool isLogFilled()
     * @method bool isLogChanged()
     * @method \Bitrix\Socialnetwork\EO_Log fillLog()
     * @method \string getEventId()
     * @method \Bitrix\Socialnetwork\EO_LogComment setEventId(\string|\Bitrix\Main\DB\SqlExpression $eventId)
     * @method bool hasEventId()
     * @method bool isEventIdFilled()
     * @method bool isEventIdChanged()
     * @method \string remindActualEventId()
     * @method \string requireEventId()
     * @method \Bitrix\Socialnetwork\EO_LogComment resetEventId()
     * @method \Bitrix\Socialnetwork\EO_LogComment unsetEventId()
     * @method \string fillEventId()
     * @method \int getUserId()
     * @method \Bitrix\Socialnetwork\EO_LogComment setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Socialnetwork\EO_LogComment resetUserId()
     * @method \Bitrix\Socialnetwork\EO_LogComment unsetUserId()
     * @method \int fillUserId()
     * @method \string getMessage()
     * @method \Bitrix\Socialnetwork\EO_LogComment setMessage(\string|\Bitrix\Main\DB\SqlExpression $message)
     * @method bool hasMessage()
     * @method bool isMessageFilled()
     * @method bool isMessageChanged()
     * @method \string remindActualMessage()
     * @method \string requireMessage()
     * @method \Bitrix\Socialnetwork\EO_LogComment resetMessage()
     * @method \Bitrix\Socialnetwork\EO_LogComment unsetMessage()
     * @method \string fillMessage()
     * @method \int getSourceId()
     * @method \Bitrix\Socialnetwork\EO_LogComment setSourceId(\int|\Bitrix\Main\DB\SqlExpression $sourceId)
     * @method bool hasSourceId()
     * @method bool isSourceIdFilled()
     * @method bool isSourceIdChanged()
     * @method \int remindActualSourceId()
     * @method \int requireSourceId()
     * @method \Bitrix\Socialnetwork\EO_LogComment resetSourceId()
     * @method \Bitrix\Socialnetwork\EO_LogComment unsetSourceId()
     * @method \int fillSourceId()
     * @method \Bitrix\Main\Type\DateTime getLogDate()
     * @method \Bitrix\Socialnetwork\EO_LogComment setLogDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $logDate)
     * @method bool hasLogDate()
     * @method bool isLogDateFilled()
     * @method bool isLogDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLogDate()
     * @method \Bitrix\Main\Type\DateTime requireLogDate()
     * @method \Bitrix\Socialnetwork\EO_LogComment resetLogDate()
     * @method \Bitrix\Socialnetwork\EO_LogComment unsetLogDate()
     * @method \Bitrix\Main\Type\DateTime fillLogDate()
     * @method \string getShareDest()
     * @method \Bitrix\Socialnetwork\EO_LogComment setShareDest(\string|\Bitrix\Main\DB\SqlExpression $shareDest)
     * @method bool hasShareDest()
     * @method bool isShareDestFilled()
     * @method bool isShareDestChanged()
     * @method \string remindActualShareDest()
     * @method \string requireShareDest()
     * @method \Bitrix\Socialnetwork\EO_LogComment resetShareDest()
     * @method \Bitrix\Socialnetwork\EO_LogComment unsetShareDest()
     * @method \string fillShareDest()
     * @method \string getRatingTypeId()
     * @method \Bitrix\Socialnetwork\EO_LogComment setRatingTypeId(\string|\Bitrix\Main\DB\SqlExpression $ratingTypeId)
     * @method bool hasRatingTypeId()
     * @method bool isRatingTypeIdFilled()
     * @method bool isRatingTypeIdChanged()
     * @method \string remindActualRatingTypeId()
     * @method \string requireRatingTypeId()
     * @method \Bitrix\Socialnetwork\EO_LogComment resetRatingTypeId()
     * @method \Bitrix\Socialnetwork\EO_LogComment unsetRatingTypeId()
     * @method \string fillRatingTypeId()
     * @method \int getRatingEntityId()
     * @method \Bitrix\Socialnetwork\EO_LogComment setRatingEntityId(\int|\Bitrix\Main\DB\SqlExpression $ratingEntityId)
     * @method bool hasRatingEntityId()
     * @method bool isRatingEntityIdFilled()
     * @method bool isRatingEntityIdChanged()
     * @method \int remindActualRatingEntityId()
     * @method \int requireRatingEntityId()
     * @method \Bitrix\Socialnetwork\EO_LogComment resetRatingEntityId()
     * @method \Bitrix\Socialnetwork\EO_LogComment unsetRatingEntityId()
     * @method \int fillRatingEntityId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogComment set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_LogComment reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogComment unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_LogComment wakeUp($data)
     */
    class EO_LogComment
    {
        /* @var \Bitrix\Socialnetwork\LogCommentTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogCommentTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_LogComment_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getLogIdList()
     * @method \int[] fillLogId()
     * @method \Bitrix\Socialnetwork\EO_Log[] getLogList()
     * @method \Bitrix\Socialnetwork\EO_LogComment_Collection getLogCollection()
     * @method \Bitrix\Socialnetwork\EO_Log_Collection fillLog()
     * @method \string[] getEventIdList()
     * @method \string[] fillEventId()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \string[] getMessageList()
     * @method \string[] fillMessage()
     * @method \int[] getSourceIdList()
     * @method \int[] fillSourceId()
     * @method \Bitrix\Main\Type\DateTime[] getLogDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillLogDate()
     * @method \string[] getShareDestList()
     * @method \string[] fillShareDest()
     * @method \string[] getRatingTypeIdList()
     * @method \string[] fillRatingTypeId()
     * @method \int[] getRatingEntityIdList()
     * @method \int[] fillRatingEntityId()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_LogComment $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_LogComment $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogComment getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogComment[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_LogComment $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_LogComment_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_LogComment current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_LogComment_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\LogCommentTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogCommentTable';
    }
    /**
     * @method static EO_LogComment_Query query()
     * @method static EO_LogComment_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_LogComment_Result getById($id)
     * @method static EO_LogComment_Result getList(array $parameters = array())
     * @method static EO_LogComment_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_LogComment createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_LogComment_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_LogComment wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_LogComment_Collection wakeUpCollection($rows)
     */
    class LogCommentTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_LogComment_Result exec()
     * @method \Bitrix\Socialnetwork\EO_LogComment fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogComment_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_LogComment_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogComment fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogComment_Collection fetchCollection()
     */
    class EO_LogComment_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogComment createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_LogComment_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_LogComment wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_LogComment_Collection wakeUpCollection($rows)
     */
    class EO_LogComment_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_LogFavorites
     * @see \Bitrix\Socialnetwork\LogFavoritesTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Socialnetwork\EO_LogFavorites setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int getLogId()
     * @method \Bitrix\Socialnetwork\EO_LogFavorites setLogId(\int|\Bitrix\Main\DB\SqlExpression $logId)
     * @method bool hasLogId()
     * @method bool isLogIdFilled()
     * @method bool isLogIdChanged()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogFavorites set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_LogFavorites reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogFavorites unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_LogFavorites wakeUp($data)
     */
    class EO_LogFavorites
    {
        /* @var \Bitrix\Socialnetwork\LogFavoritesTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogFavoritesTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_LogFavorites_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \int[] getLogIdList()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_LogFavorites $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_LogFavorites $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogFavorites getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogFavorites[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_LogFavorites $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_LogFavorites_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_LogFavorites current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_LogFavorites_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\LogFavoritesTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogFavoritesTable';
    }
    /**
     * @method static EO_LogFavorites_Query query()
     * @method static EO_LogFavorites_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_LogFavorites_Result getById($id)
     * @method static EO_LogFavorites_Result getList(array $parameters = array())
     * @method static EO_LogFavorites_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_LogFavorites createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_LogFavorites_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_LogFavorites wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_LogFavorites_Collection wakeUpCollection($rows)
     */
    class LogFavoritesTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_LogFavorites_Result exec()
     * @method \Bitrix\Socialnetwork\EO_LogFavorites fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogFavorites_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_LogFavorites_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogFavorites fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogFavorites_Collection fetchCollection()
     */
    class EO_LogFavorites_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogFavorites createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_LogFavorites_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_LogFavorites wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_LogFavorites_Collection wakeUpCollection($rows)
     */
    class EO_LogFavorites_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_LogFollow
     * @see \Bitrix\Socialnetwork\LogFollowTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Socialnetwork\EO_LogFollow setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \string getCode()
     * @method \Bitrix\Socialnetwork\EO_LogFollow setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \boolean getType()
     * @method \Bitrix\Socialnetwork\EO_LogFollow setType(\boolean|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \boolean remindActualType()
     * @method \boolean requireType()
     * @method \Bitrix\Socialnetwork\EO_LogFollow resetType()
     * @method \Bitrix\Socialnetwork\EO_LogFollow unsetType()
     * @method \boolean fillType()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogFollow set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_LogFollow reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogFollow unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_LogFollow wakeUp($data)
     */
    class EO_LogFollow
    {
        /* @var \Bitrix\Socialnetwork\LogFollowTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogFollowTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_LogFollow_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \string[] getCodeList()
     * @method \boolean[] getTypeList()
     * @method \boolean[] fillType()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_LogFollow $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_LogFollow $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogFollow getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogFollow[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_LogFollow $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_LogFollow_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_LogFollow current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_LogFollow_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\LogFollowTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogFollowTable';
    }
    /**
     * @method static EO_LogFollow_Query query()
     * @method static EO_LogFollow_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_LogFollow_Result getById($id)
     * @method static EO_LogFollow_Result getList(array $parameters = array())
     * @method static EO_LogFollow_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_LogFollow createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_LogFollow_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_LogFollow wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_LogFollow_Collection wakeUpCollection($rows)
     */
    class LogFollowTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_LogFollow_Result exec()
     * @method \Bitrix\Socialnetwork\EO_LogFollow fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogFollow_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_LogFollow_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogFollow fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogFollow_Collection fetchCollection()
     */
    class EO_LogFollow_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogFollow createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_LogFollow_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_LogFollow wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_LogFollow_Collection wakeUpCollection($rows)
     */
    class EO_LogFollow_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_LogIndex
     * @see \Bitrix\Socialnetwork\LogIndexTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getLogId()
     * @method \Bitrix\Socialnetwork\EO_LogIndex setLogId(\int|\Bitrix\Main\DB\SqlExpression $logId)
     * @method bool hasLogId()
     * @method bool isLogIdFilled()
     * @method bool isLogIdChanged()
     * @method \int remindActualLogId()
     * @method \int requireLogId()
     * @method \Bitrix\Socialnetwork\EO_LogIndex resetLogId()
     * @method \Bitrix\Socialnetwork\EO_LogIndex unsetLogId()
     * @method \int fillLogId()
     * @method \Bitrix\Main\Type\DateTime getLogUpdate()
     * @method \Bitrix\Socialnetwork\EO_LogIndex setLogUpdate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $logUpdate)
     * @method bool hasLogUpdate()
     * @method bool isLogUpdateFilled()
     * @method bool isLogUpdateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLogUpdate()
     * @method \Bitrix\Main\Type\DateTime requireLogUpdate()
     * @method \Bitrix\Socialnetwork\EO_LogIndex resetLogUpdate()
     * @method \Bitrix\Socialnetwork\EO_LogIndex unsetLogUpdate()
     * @method \Bitrix\Main\Type\DateTime fillLogUpdate()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Socialnetwork\EO_LogIndex setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Socialnetwork\EO_LogIndex resetDateCreate()
     * @method \Bitrix\Socialnetwork\EO_LogIndex unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \string getItemType()
     * @method \Bitrix\Socialnetwork\EO_LogIndex setItemType(\string|\Bitrix\Main\DB\SqlExpression $itemType)
     * @method bool hasItemType()
     * @method bool isItemTypeFilled()
     * @method bool isItemTypeChanged()
     * @method \int getItemId()
     * @method \Bitrix\Socialnetwork\EO_LogIndex setItemId(\int|\Bitrix\Main\DB\SqlExpression $itemId)
     * @method bool hasItemId()
     * @method bool isItemIdFilled()
     * @method bool isItemIdChanged()
     * @method \string getContent()
     * @method \Bitrix\Socialnetwork\EO_LogIndex setContent(\string|\Bitrix\Main\DB\SqlExpression $content)
     * @method bool hasContent()
     * @method bool isContentFilled()
     * @method bool isContentChanged()
     * @method \string remindActualContent()
     * @method \string requireContent()
     * @method \Bitrix\Socialnetwork\EO_LogIndex resetContent()
     * @method \Bitrix\Socialnetwork\EO_LogIndex unsetContent()
     * @method \string fillContent()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogIndex set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_LogIndex reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogIndex unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_LogIndex wakeUp($data)
     */
    class EO_LogIndex
    {
        /* @var \Bitrix\Socialnetwork\LogIndexTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogIndexTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_LogIndex_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getLogIdList()
     * @method \int[] fillLogId()
     * @method \Bitrix\Main\Type\DateTime[] getLogUpdateList()
     * @method \Bitrix\Main\Type\DateTime[] fillLogUpdate()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \string[] getItemTypeList()
     * @method \int[] getItemIdList()
     * @method \string[] getContentList()
     * @method \string[] fillContent()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_LogIndex $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_LogIndex $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogIndex getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogIndex[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_LogIndex $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_LogIndex_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_LogIndex current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_LogIndex_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\LogIndexTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogIndexTable';
    }
    /**
     * @method static EO_LogIndex_Query query()
     * @method static EO_LogIndex_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_LogIndex_Result getById($id)
     * @method static EO_LogIndex_Result getList(array $parameters = array())
     * @method static EO_LogIndex_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_LogIndex createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_LogIndex_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_LogIndex wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_LogIndex_Collection wakeUpCollection($rows)
     */
    class LogIndexTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_LogIndex_Result exec()
     * @method \Bitrix\Socialnetwork\EO_LogIndex fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogIndex_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_LogIndex_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogIndex fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogIndex_Collection fetchCollection()
     */
    class EO_LogIndex_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogIndex createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_LogIndex_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_LogIndex wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_LogIndex_Collection wakeUpCollection($rows)
     */
    class EO_LogIndex_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_LogPage
     * @see \Bitrix\Socialnetwork\LogPageTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Socialnetwork\EO_LogPage setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \string getSiteId()
     * @method \Bitrix\Socialnetwork\EO_LogPage setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string getGroupCode()
     * @method \Bitrix\Socialnetwork\EO_LogPage setGroupCode(\string|\Bitrix\Main\DB\SqlExpression $groupCode)
     * @method bool hasGroupCode()
     * @method bool isGroupCodeFilled()
     * @method bool isGroupCodeChanged()
     * @method \int getPageSize()
     * @method \Bitrix\Socialnetwork\EO_LogPage setPageSize(\int|\Bitrix\Main\DB\SqlExpression $pageSize)
     * @method bool hasPageSize()
     * @method bool isPageSizeFilled()
     * @method bool isPageSizeChanged()
     * @method \int getPageNum()
     * @method \Bitrix\Socialnetwork\EO_LogPage setPageNum(\int|\Bitrix\Main\DB\SqlExpression $pageNum)
     * @method bool hasPageNum()
     * @method bool isPageNumFilled()
     * @method bool isPageNumChanged()
     * @method \Bitrix\Main\Type\DateTime getPageLastDate()
     * @method \Bitrix\Socialnetwork\EO_LogPage setPageLastDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $pageLastDate)
     * @method bool hasPageLastDate()
     * @method bool isPageLastDateFilled()
     * @method bool isPageLastDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualPageLastDate()
     * @method \Bitrix\Main\Type\DateTime requirePageLastDate()
     * @method \Bitrix\Socialnetwork\EO_LogPage resetPageLastDate()
     * @method \Bitrix\Socialnetwork\EO_LogPage unsetPageLastDate()
     * @method \Bitrix\Main\Type\DateTime fillPageLastDate()
     * @method \int getTrafficAvg()
     * @method \Bitrix\Socialnetwork\EO_LogPage setTrafficAvg(\int|\Bitrix\Main\DB\SqlExpression $trafficAvg)
     * @method bool hasTrafficAvg()
     * @method bool isTrafficAvgFilled()
     * @method bool isTrafficAvgChanged()
     * @method \int remindActualTrafficAvg()
     * @method \int requireTrafficAvg()
     * @method \Bitrix\Socialnetwork\EO_LogPage resetTrafficAvg()
     * @method \Bitrix\Socialnetwork\EO_LogPage unsetTrafficAvg()
     * @method \int fillTrafficAvg()
     * @method \int getTrafficCnt()
     * @method \Bitrix\Socialnetwork\EO_LogPage setTrafficCnt(\int|\Bitrix\Main\DB\SqlExpression $trafficCnt)
     * @method bool hasTrafficCnt()
     * @method bool isTrafficCntFilled()
     * @method bool isTrafficCntChanged()
     * @method \int remindActualTrafficCnt()
     * @method \int requireTrafficCnt()
     * @method \Bitrix\Socialnetwork\EO_LogPage resetTrafficCnt()
     * @method \Bitrix\Socialnetwork\EO_LogPage unsetTrafficCnt()
     * @method \int fillTrafficCnt()
     * @method \Bitrix\Main\Type\DateTime getTrafficLastDate()
     * @method \Bitrix\Socialnetwork\EO_LogPage setTrafficLastDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $trafficLastDate)
     * @method bool hasTrafficLastDate()
     * @method bool isTrafficLastDateFilled()
     * @method bool isTrafficLastDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualTrafficLastDate()
     * @method \Bitrix\Main\Type\DateTime requireTrafficLastDate()
     * @method \Bitrix\Socialnetwork\EO_LogPage resetTrafficLastDate()
     * @method \Bitrix\Socialnetwork\EO_LogPage unsetTrafficLastDate()
     * @method \Bitrix\Main\Type\DateTime fillTrafficLastDate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogPage set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_LogPage reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogPage unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_LogPage wakeUp($data)
     */
    class EO_LogPage
    {
        /* @var \Bitrix\Socialnetwork\LogPageTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogPageTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_LogPage_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \string[] getSiteIdList()
     * @method \string[] getGroupCodeList()
     * @method \int[] getPageSizeList()
     * @method \int[] getPageNumList()
     * @method \Bitrix\Main\Type\DateTime[] getPageLastDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillPageLastDate()
     * @method \int[] getTrafficAvgList()
     * @method \int[] fillTrafficAvg()
     * @method \int[] getTrafficCntList()
     * @method \int[] fillTrafficCnt()
     * @method \Bitrix\Main\Type\DateTime[] getTrafficLastDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillTrafficLastDate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_LogPage $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_LogPage $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogPage getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogPage[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_LogPage $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_LogPage_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_LogPage current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_LogPage_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\LogPageTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogPageTable';
    }
    /**
     * @method static EO_LogPage_Query query()
     * @method static EO_LogPage_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_LogPage_Result getById($id)
     * @method static EO_LogPage_Result getList(array $parameters = array())
     * @method static EO_LogPage_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_LogPage createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_LogPage_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_LogPage wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_LogPage_Collection wakeUpCollection($rows)
     */
    class LogPageTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_LogPage_Result exec()
     * @method \Bitrix\Socialnetwork\EO_LogPage fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogPage_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_LogPage_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogPage fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogPage_Collection fetchCollection()
     */
    class EO_LogPage_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogPage createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_LogPage_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_LogPage wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_LogPage_Collection wakeUpCollection($rows)
     */
    class EO_LogPage_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_LogRight
     * @see \Bitrix\Socialnetwork\LogRightTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialnetwork\EO_LogRight setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getLogId()
     * @method \Bitrix\Socialnetwork\EO_LogRight setLogId(\int|\Bitrix\Main\DB\SqlExpression $logId)
     * @method bool hasLogId()
     * @method bool isLogIdFilled()
     * @method bool isLogIdChanged()
     * @method \Bitrix\Socialnetwork\EO_Log getLog()
     * @method \Bitrix\Socialnetwork\EO_Log remindActualLog()
     * @method \Bitrix\Socialnetwork\EO_Log requireLog()
     * @method \Bitrix\Socialnetwork\EO_LogRight setLog(\Bitrix\Socialnetwork\EO_Log $object)
     * @method \Bitrix\Socialnetwork\EO_LogRight resetLog()
     * @method \Bitrix\Socialnetwork\EO_LogRight unsetLog()
     * @method bool hasLog()
     * @method bool isLogFilled()
     * @method bool isLogChanged()
     * @method \Bitrix\Socialnetwork\EO_Log fillLog()
     * @method \string getGroupCode()
     * @method \Bitrix\Socialnetwork\EO_LogRight setGroupCode(\string|\Bitrix\Main\DB\SqlExpression $groupCode)
     * @method bool hasGroupCode()
     * @method bool isGroupCodeFilled()
     * @method bool isGroupCodeChanged()
     * @method \string remindActualGroupCode()
     * @method \string requireGroupCode()
     * @method \Bitrix\Socialnetwork\EO_LogRight resetGroupCode()
     * @method \Bitrix\Socialnetwork\EO_LogRight unsetGroupCode()
     * @method \string fillGroupCode()
     * @method \Bitrix\Main\Type\DateTime getLogUpdate()
     * @method \Bitrix\Socialnetwork\EO_LogRight setLogUpdate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $logUpdate)
     * @method bool hasLogUpdate()
     * @method bool isLogUpdateFilled()
     * @method bool isLogUpdateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualLogUpdate()
     * @method \Bitrix\Main\Type\DateTime requireLogUpdate()
     * @method \Bitrix\Socialnetwork\EO_LogRight resetLogUpdate()
     * @method \Bitrix\Socialnetwork\EO_LogRight unsetLogUpdate()
     * @method \Bitrix\Main\Type\DateTime fillLogUpdate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogRight set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_LogRight reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogRight unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_LogRight wakeUp($data)
     */
    class EO_LogRight
    {
        /* @var \Bitrix\Socialnetwork\LogRightTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogRightTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_LogRight_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getLogIdList()
     * @method \Bitrix\Socialnetwork\EO_Log[] getLogList()
     * @method \Bitrix\Socialnetwork\EO_LogRight_Collection getLogCollection()
     * @method \Bitrix\Socialnetwork\EO_Log_Collection fillLog()
     * @method \string[] getGroupCodeList()
     * @method \string[] fillGroupCode()
     * @method \Bitrix\Main\Type\DateTime[] getLogUpdateList()
     * @method \Bitrix\Main\Type\DateTime[] fillLogUpdate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_LogRight $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_LogRight $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogRight getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogRight[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_LogRight $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_LogRight_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_LogRight current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_LogRight_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\LogRightTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogRightTable';
    }
    /**
     * @method static EO_LogRight_Query query()
     * @method static EO_LogRight_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_LogRight_Result getById($id)
     * @method static EO_LogRight_Result getList(array $parameters = array())
     * @method static EO_LogRight_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_LogRight createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_LogRight_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_LogRight wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_LogRight_Collection wakeUpCollection($rows)
     */
    class LogRightTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_LogRight_Result exec()
     * @method \Bitrix\Socialnetwork\EO_LogRight fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogRight_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_LogRight_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogRight fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogRight_Collection fetchCollection()
     */
    class EO_LogRight_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogRight createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_LogRight_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_LogRight wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_LogRight_Collection wakeUpCollection($rows)
     */
    class EO_LogRight_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_LogSubscribe
     * @see \Bitrix\Socialnetwork\LogSubscribeTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int getLogId()
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe setLogId(\int|\Bitrix\Main\DB\SqlExpression $logId)
     * @method bool hasLogId()
     * @method bool isLogIdFilled()
     * @method bool isLogIdChanged()
     * @method \string getType()
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \Bitrix\Main\Type\DateTime getEndDate()
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe setEndDate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $endDate)
     * @method bool hasEndDate()
     * @method bool isEndDateFilled()
     * @method bool isEndDateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualEndDate()
     * @method \Bitrix\Main\Type\DateTime requireEndDate()
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe resetEndDate()
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe unsetEndDate()
     * @method \Bitrix\Main\Type\DateTime fillEndDate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_LogSubscribe wakeUp($data)
     */
    class EO_LogSubscribe
    {
        /* @var \Bitrix\Socialnetwork\LogSubscribeTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogSubscribeTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_LogSubscribe_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \int[] getLogIdList()
     * @method \string[] getTypeList()
     * @method \Bitrix\Main\Type\DateTime[] getEndDateList()
     * @method \Bitrix\Main\Type\DateTime[] fillEndDate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_LogSubscribe $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_LogSubscribe $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_LogSubscribe $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_LogSubscribe_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_LogSubscribe_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\LogSubscribeTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogSubscribeTable';
    }
    /**
     * @method static EO_LogSubscribe_Query query()
     * @method static EO_LogSubscribe_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_LogSubscribe_Result getById($id)
     * @method static EO_LogSubscribe_Result getList(array $parameters = array())
     * @method static EO_LogSubscribe_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_LogSubscribe createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_LogSubscribe_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_LogSubscribe wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_LogSubscribe_Collection wakeUpCollection($rows)
     */
    class LogSubscribeTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_LogSubscribe_Result exec()
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_LogSubscribe_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe_Collection fetchCollection()
     */
    class EO_LogSubscribe_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_LogSubscribe_Collection wakeUpCollection($rows)
     */
    class EO_LogSubscribe_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_LogTag
     * @see \Bitrix\Socialnetwork\LogTagTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getLogId()
     * @method \Bitrix\Socialnetwork\EO_LogTag setLogId(\int|\Bitrix\Main\DB\SqlExpression $logId)
     * @method bool hasLogId()
     * @method bool isLogIdFilled()
     * @method bool isLogIdChanged()
     * @method \int remindActualLogId()
     * @method \int requireLogId()
     * @method \Bitrix\Socialnetwork\EO_LogTag resetLogId()
     * @method \Bitrix\Socialnetwork\EO_LogTag unsetLogId()
     * @method \int fillLogId()
     * @method \Bitrix\Socialnetwork\EO_Log getLog()
     * @method \Bitrix\Socialnetwork\EO_Log remindActualLog()
     * @method \Bitrix\Socialnetwork\EO_Log requireLog()
     * @method \Bitrix\Socialnetwork\EO_LogTag setLog(\Bitrix\Socialnetwork\EO_Log $object)
     * @method \Bitrix\Socialnetwork\EO_LogTag resetLog()
     * @method \Bitrix\Socialnetwork\EO_LogTag unsetLog()
     * @method bool hasLog()
     * @method bool isLogFilled()
     * @method bool isLogChanged()
     * @method \Bitrix\Socialnetwork\EO_Log fillLog()
     * @method \string getItemType()
     * @method \Bitrix\Socialnetwork\EO_LogTag setItemType(\string|\Bitrix\Main\DB\SqlExpression $itemType)
     * @method bool hasItemType()
     * @method bool isItemTypeFilled()
     * @method bool isItemTypeChanged()
     * @method \string getItemId()
     * @method \Bitrix\Socialnetwork\EO_LogTag setItemId(\string|\Bitrix\Main\DB\SqlExpression $itemId)
     * @method bool hasItemId()
     * @method bool isItemIdFilled()
     * @method bool isItemIdChanged()
     * @method \string getName()
     * @method \Bitrix\Socialnetwork\EO_LogTag setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogTag set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_LogTag reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogTag unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_LogTag wakeUp($data)
     */
    class EO_LogTag
    {
        /* @var \Bitrix\Socialnetwork\LogTagTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogTagTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_LogTag_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getLogIdList()
     * @method \int[] fillLogId()
     * @method \Bitrix\Socialnetwork\EO_Log[] getLogList()
     * @method \Bitrix\Socialnetwork\EO_LogTag_Collection getLogCollection()
     * @method \Bitrix\Socialnetwork\EO_Log_Collection fillLog()
     * @method \string[] getItemTypeList()
     * @method \string[] getItemIdList()
     * @method \string[] getNameList()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_LogTag $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_LogTag $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogTag getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogTag[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_LogTag $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_LogTag_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_LogTag current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_LogTag_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\LogTagTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogTagTable';
    }
    /**
     * @method static EO_LogTag_Query query()
     * @method static EO_LogTag_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_LogTag_Result getById($id)
     * @method static EO_LogTag_Result getList(array $parameters = array())
     * @method static EO_LogTag_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_LogTag createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_LogTag_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_LogTag wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_LogTag_Collection wakeUpCollection($rows)
     */
    class LogTagTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_LogTag_Result exec()
     * @method \Bitrix\Socialnetwork\EO_LogTag fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogTag_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_LogTag_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogTag fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogTag_Collection fetchCollection()
     */
    class EO_LogTag_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogTag createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_LogTag_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_LogTag wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_LogTag_Collection wakeUpCollection($rows)
     */
    class EO_LogTag_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_LogView
     * @see \Bitrix\Socialnetwork\LogViewTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Socialnetwork\EO_LogView setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \string getEventId()
     * @method \Bitrix\Socialnetwork\EO_LogView setEventId(\string|\Bitrix\Main\DB\SqlExpression $eventId)
     * @method bool hasEventId()
     * @method bool isEventIdFilled()
     * @method bool isEventIdChanged()
     * @method \boolean getType()
     * @method \Bitrix\Socialnetwork\EO_LogView setType(\boolean|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \boolean remindActualType()
     * @method \boolean requireType()
     * @method \Bitrix\Socialnetwork\EO_LogView resetType()
     * @method \Bitrix\Socialnetwork\EO_LogView unsetType()
     * @method \boolean fillType()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogView set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_LogView reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_LogView unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_LogView wakeUp($data)
     */
    class EO_LogView
    {
        /* @var \Bitrix\Socialnetwork\LogViewTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogViewTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_LogView_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \string[] getEventIdList()
     * @method \boolean[] getTypeList()
     * @method \boolean[] fillType()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_LogView $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_LogView $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogView getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_LogView[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_LogView $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_LogView_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_LogView current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_LogView_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\LogViewTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\LogViewTable';
    }
    /**
     * @method static EO_LogView_Query query()
     * @method static EO_LogView_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_LogView_Result getById($id)
     * @method static EO_LogView_Result getList(array $parameters = array())
     * @method static EO_LogView_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_LogView createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_LogView_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_LogView wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_LogView_Collection wakeUpCollection($rows)
     */
    class LogViewTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_LogView_Result exec()
     * @method \Bitrix\Socialnetwork\EO_LogView fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogView_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_LogView_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogView fetchObject()
     * @method \Bitrix\Socialnetwork\EO_LogView_Collection fetchCollection()
     */
    class EO_LogView_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_LogView createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_LogView_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_LogView wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_LogView_Collection wakeUpCollection($rows)
     */
    class EO_LogView_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserContentView
     * @see \Bitrix\Socialnetwork\UserContentViewTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Socialnetwork\EO_UserContentView setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Socialnetwork\EO_UserContentView setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Socialnetwork\EO_UserContentView resetUser()
     * @method \Bitrix\Socialnetwork\EO_UserContentView unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \string getRatingTypeId()
     * @method \Bitrix\Socialnetwork\EO_UserContentView setRatingTypeId(\string|\Bitrix\Main\DB\SqlExpression $ratingTypeId)
     * @method bool hasRatingTypeId()
     * @method bool isRatingTypeIdFilled()
     * @method bool isRatingTypeIdChanged()
     * @method \int getRatingEntityId()
     * @method \Bitrix\Socialnetwork\EO_UserContentView setRatingEntityId(\int|\Bitrix\Main\DB\SqlExpression $ratingEntityId)
     * @method bool hasRatingEntityId()
     * @method bool isRatingEntityIdFilled()
     * @method bool isRatingEntityIdChanged()
     * @method \string getContentId()
     * @method \Bitrix\Socialnetwork\EO_UserContentView setContentId(\string|\Bitrix\Main\DB\SqlExpression $contentId)
     * @method bool hasContentId()
     * @method bool isContentIdFilled()
     * @method bool isContentIdChanged()
     * @method \string remindActualContentId()
     * @method \string requireContentId()
     * @method \Bitrix\Socialnetwork\EO_UserContentView resetContentId()
     * @method \Bitrix\Socialnetwork\EO_UserContentView unsetContentId()
     * @method \string fillContentId()
     * @method \Bitrix\Main\Type\DateTime getDateView()
     * @method \Bitrix\Socialnetwork\EO_UserContentView setDateView(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateView)
     * @method bool hasDateView()
     * @method bool isDateViewFilled()
     * @method bool isDateViewChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateView()
     * @method \Bitrix\Main\Type\DateTime requireDateView()
     * @method \Bitrix\Socialnetwork\EO_UserContentView resetDateView()
     * @method \Bitrix\Socialnetwork\EO_UserContentView unsetDateView()
     * @method \Bitrix\Main\Type\DateTime fillDateView()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_UserContentView set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_UserContentView reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_UserContentView unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_UserContentView wakeUp($data)
     */
    class EO_UserContentView
    {
        /* @var \Bitrix\Socialnetwork\UserContentViewTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\UserContentViewTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserContentView_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Socialnetwork\EO_UserContentView_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \string[] getRatingTypeIdList()
     * @method \int[] getRatingEntityIdList()
     * @method \string[] getContentIdList()
     * @method \string[] fillContentId()
     * @method \Bitrix\Main\Type\DateTime[] getDateViewList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateView()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_UserContentView $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_UserContentView $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_UserContentView getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_UserContentView[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_UserContentView $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_UserContentView_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_UserContentView current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserContentView_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\UserContentViewTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\UserContentViewTable';
    }
    /**
     * @method static EO_UserContentView_Query query()
     * @method static EO_UserContentView_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserContentView_Result getById($id)
     * @method static EO_UserContentView_Result getList(array $parameters = array())
     * @method static EO_UserContentView_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_UserContentView createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_UserContentView_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_UserContentView wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_UserContentView_Collection wakeUpCollection($rows)
     */
    class UserContentViewTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserContentView_Result exec()
     * @method \Bitrix\Socialnetwork\EO_UserContentView fetchObject()
     * @method \Bitrix\Socialnetwork\EO_UserContentView_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserContentView_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_UserContentView fetchObject()
     * @method \Bitrix\Socialnetwork\EO_UserContentView_Collection fetchCollection()
     */
    class EO_UserContentView_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_UserContentView createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_UserContentView_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_UserContentView wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_UserContentView_Collection wakeUpCollection($rows)
     */
    class EO_UserContentView_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserRelations
     * @see \Bitrix\Socialnetwork\UserRelationsTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialnetwork\EO_UserRelations setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getFirstUserId()
     * @method \Bitrix\Socialnetwork\EO_UserRelations setFirstUserId(\int|\Bitrix\Main\DB\SqlExpression $firstUserId)
     * @method bool hasFirstUserId()
     * @method bool isFirstUserIdFilled()
     * @method bool isFirstUserIdChanged()
     * @method \int remindActualFirstUserId()
     * @method \int requireFirstUserId()
     * @method \Bitrix\Socialnetwork\EO_UserRelations resetFirstUserId()
     * @method \Bitrix\Socialnetwork\EO_UserRelations unsetFirstUserId()
     * @method \int fillFirstUserId()
     * @method \int getSecondUserId()
     * @method \Bitrix\Socialnetwork\EO_UserRelations setSecondUserId(\int|\Bitrix\Main\DB\SqlExpression $secondUserId)
     * @method bool hasSecondUserId()
     * @method bool isSecondUserIdFilled()
     * @method bool isSecondUserIdChanged()
     * @method \int remindActualSecondUserId()
     * @method \int requireSecondUserId()
     * @method \Bitrix\Socialnetwork\EO_UserRelations resetSecondUserId()
     * @method \Bitrix\Socialnetwork\EO_UserRelations unsetSecondUserId()
     * @method \int fillSecondUserId()
     * @method \string getRelation()
     * @method \Bitrix\Socialnetwork\EO_UserRelations setRelation(\string|\Bitrix\Main\DB\SqlExpression $relation)
     * @method bool hasRelation()
     * @method bool isRelationFilled()
     * @method bool isRelationChanged()
     * @method \string remindActualRelation()
     * @method \string requireRelation()
     * @method \Bitrix\Socialnetwork\EO_UserRelations resetRelation()
     * @method \Bitrix\Socialnetwork\EO_UserRelations unsetRelation()
     * @method \string fillRelation()
     * @method \string getInitiatedBy()
     * @method \Bitrix\Socialnetwork\EO_UserRelations setInitiatedBy(\string|\Bitrix\Main\DB\SqlExpression $initiatedBy)
     * @method bool hasInitiatedBy()
     * @method bool isInitiatedByFilled()
     * @method bool isInitiatedByChanged()
     * @method \string remindActualInitiatedBy()
     * @method \string requireInitiatedBy()
     * @method \Bitrix\Socialnetwork\EO_UserRelations resetInitiatedBy()
     * @method \Bitrix\Socialnetwork\EO_UserRelations unsetInitiatedBy()
     * @method \string fillInitiatedBy()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Socialnetwork\EO_UserRelations setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Socialnetwork\EO_UserRelations resetDateCreate()
     * @method \Bitrix\Socialnetwork\EO_UserRelations unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateUpdate()
     * @method \Bitrix\Socialnetwork\EO_UserRelations setDateUpdate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateUpdate)
     * @method bool hasDateUpdate()
     * @method bool isDateUpdateFilled()
     * @method bool isDateUpdateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateUpdate()
     * @method \Bitrix\Main\Type\DateTime requireDateUpdate()
     * @method \Bitrix\Socialnetwork\EO_UserRelations resetDateUpdate()
     * @method \Bitrix\Socialnetwork\EO_UserRelations unsetDateUpdate()
     * @method \Bitrix\Main\Type\DateTime fillDateUpdate()
     * @method \string getMessage()
     * @method \Bitrix\Socialnetwork\EO_UserRelations setMessage(\string|\Bitrix\Main\DB\SqlExpression $message)
     * @method bool hasMessage()
     * @method bool isMessageFilled()
     * @method bool isMessageChanged()
     * @method \string remindActualMessage()
     * @method \string requireMessage()
     * @method \Bitrix\Socialnetwork\EO_UserRelations resetMessage()
     * @method \Bitrix\Socialnetwork\EO_UserRelations unsetMessage()
     * @method \string fillMessage()
     * @method \Bitrix\Main\EO_User getFirstUser()
     * @method \Bitrix\Main\EO_User remindActualFirstUser()
     * @method \Bitrix\Main\EO_User requireFirstUser()
     * @method \Bitrix\Socialnetwork\EO_UserRelations setFirstUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Socialnetwork\EO_UserRelations resetFirstUser()
     * @method \Bitrix\Socialnetwork\EO_UserRelations unsetFirstUser()
     * @method bool hasFirstUser()
     * @method bool isFirstUserFilled()
     * @method bool isFirstUserChanged()
     * @method \Bitrix\Main\EO_User fillFirstUser()
     * @method \Bitrix\Main\EO_User getSecondUser()
     * @method \Bitrix\Main\EO_User remindActualSecondUser()
     * @method \Bitrix\Main\EO_User requireSecondUser()
     * @method \Bitrix\Socialnetwork\EO_UserRelations setSecondUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Socialnetwork\EO_UserRelations resetSecondUser()
     * @method \Bitrix\Socialnetwork\EO_UserRelations unsetSecondUser()
     * @method bool hasSecondUser()
     * @method bool isSecondUserFilled()
     * @method bool isSecondUserChanged()
     * @method \Bitrix\Main\EO_User fillSecondUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_UserRelations set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_UserRelations reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_UserRelations unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_UserRelations wakeUp($data)
     */
    class EO_UserRelations
    {
        /* @var \Bitrix\Socialnetwork\UserRelationsTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\UserRelationsTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserRelations_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getFirstUserIdList()
     * @method \int[] fillFirstUserId()
     * @method \int[] getSecondUserIdList()
     * @method \int[] fillSecondUserId()
     * @method \string[] getRelationList()
     * @method \string[] fillRelation()
     * @method \string[] getInitiatedByList()
     * @method \string[] fillInitiatedBy()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateUpdateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateUpdate()
     * @method \string[] getMessageList()
     * @method \string[] fillMessage()
     * @method \Bitrix\Main\EO_User[] getFirstUserList()
     * @method \Bitrix\Socialnetwork\EO_UserRelations_Collection getFirstUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillFirstUser()
     * @method \Bitrix\Main\EO_User[] getSecondUserList()
     * @method \Bitrix\Socialnetwork\EO_UserRelations_Collection getSecondUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillSecondUser()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_UserRelations $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_UserRelations $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_UserRelations getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_UserRelations[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_UserRelations $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_UserRelations_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_UserRelations current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserRelations_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\UserRelationsTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\UserRelationsTable';
    }
    /**
     * @method static EO_UserRelations_Query query()
     * @method static EO_UserRelations_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserRelations_Result getById($id)
     * @method static EO_UserRelations_Result getList(array $parameters = array())
     * @method static EO_UserRelations_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_UserRelations createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_UserRelations_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_UserRelations wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_UserRelations_Collection wakeUpCollection($rows)
     */
    class UserRelationsTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserRelations_Result exec()
     * @method \Bitrix\Socialnetwork\EO_UserRelations fetchObject()
     * @method \Bitrix\Socialnetwork\EO_UserRelations_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserRelations_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_UserRelations fetchObject()
     * @method \Bitrix\Socialnetwork\EO_UserRelations_Collection fetchCollection()
     */
    class EO_UserRelations_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_UserRelations createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_UserRelations_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_UserRelations wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_UserRelations_Collection wakeUpCollection($rows)
     */
    class EO_UserRelations_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserTag
     * @see \Bitrix\Socialnetwork\UserTagTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Socialnetwork\EO_UserTag setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Socialnetwork\EO_UserTag setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Socialnetwork\EO_UserTag resetUser()
     * @method \Bitrix\Socialnetwork\EO_UserTag unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \string getName()
     * @method \Bitrix\Socialnetwork\EO_UserTag setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_UserTag set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_UserTag reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_UserTag unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_UserTag wakeUp($data)
     */
    class EO_UserTag
    {
        /* @var \Bitrix\Socialnetwork\UserTagTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\UserTagTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserTag_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Socialnetwork\EO_UserTag_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \string[] getNameList()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_UserTag $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_UserTag $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_UserTag getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_UserTag[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_UserTag $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_UserTag_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_UserTag current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserTag_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\UserTagTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\UserTagTable';
    }
    /**
     * @method static EO_UserTag_Query query()
     * @method static EO_UserTag_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserTag_Result getById($id)
     * @method static EO_UserTag_Result getList(array $parameters = array())
     * @method static EO_UserTag_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_UserTag createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_UserTag_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_UserTag wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_UserTag_Collection wakeUpCollection($rows)
     */
    class UserTagTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserTag_Result exec()
     * @method \Bitrix\Socialnetwork\EO_UserTag fetchObject()
     * @method \Bitrix\Socialnetwork\EO_UserTag_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserTag_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_UserTag fetchObject()
     * @method \Bitrix\Socialnetwork\EO_UserTag_Collection fetchCollection()
     */
    class EO_UserTag_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_UserTag createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_UserTag_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_UserTag wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_UserTag_Collection wakeUpCollection($rows)
     */
    class EO_UserTag_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserToGroup
     * @see \Bitrix\Socialnetwork\UserToGroupTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup resetUserId()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup unsetUserId()
     * @method \int fillUserId()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Socialnetwork\EO_UserToGroup resetUser()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \int getGroupId()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup setGroupId(\int|\Bitrix\Main\DB\SqlExpression $groupId)
     * @method bool hasGroupId()
     * @method bool isGroupIdFilled()
     * @method bool isGroupIdChanged()
     * @method \int remindActualGroupId()
     * @method \int requireGroupId()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup resetGroupId()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup unsetGroupId()
     * @method \int fillGroupId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup getGroup()
     * @method \Bitrix\Socialnetwork\EO_Workgroup remindActualGroup()
     * @method \Bitrix\Socialnetwork\EO_Workgroup requireGroup()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup setGroup(\Bitrix\Socialnetwork\EO_Workgroup $object)
     * @method \Bitrix\Socialnetwork\EO_UserToGroup resetGroup()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup unsetGroup()
     * @method bool hasGroup()
     * @method bool isGroupFilled()
     * @method bool isGroupChanged()
     * @method \Bitrix\Socialnetwork\EO_Workgroup fillGroup()
     * @method \string getRole()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup setRole(\string|\Bitrix\Main\DB\SqlExpression $role)
     * @method bool hasRole()
     * @method bool isRoleFilled()
     * @method bool isRoleChanged()
     * @method \string remindActualRole()
     * @method \string requireRole()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup resetRole()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup unsetRole()
     * @method \string fillRole()
     * @method \boolean getAutoMember()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup setAutoMember(\boolean|\Bitrix\Main\DB\SqlExpression $autoMember)
     * @method bool hasAutoMember()
     * @method bool isAutoMemberFilled()
     * @method bool isAutoMemberChanged()
     * @method \boolean remindActualAutoMember()
     * @method \boolean requireAutoMember()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup resetAutoMember()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup unsetAutoMember()
     * @method \boolean fillAutoMember()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup resetDateCreate()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateUpdate()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup setDateUpdate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateUpdate)
     * @method bool hasDateUpdate()
     * @method bool isDateUpdateFilled()
     * @method bool isDateUpdateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateUpdate()
     * @method \Bitrix\Main\Type\DateTime requireDateUpdate()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup resetDateUpdate()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup unsetDateUpdate()
     * @method \Bitrix\Main\Type\DateTime fillDateUpdate()
     * @method \string getInitiatedByType()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup setInitiatedByType(\string|\Bitrix\Main\DB\SqlExpression $initiatedByType)
     * @method bool hasInitiatedByType()
     * @method bool isInitiatedByTypeFilled()
     * @method bool isInitiatedByTypeChanged()
     * @method \string remindActualInitiatedByType()
     * @method \string requireInitiatedByType()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup resetInitiatedByType()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup unsetInitiatedByType()
     * @method \string fillInitiatedByType()
     * @method \int getInitiatedByUserId()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup setInitiatedByUserId(\int|\Bitrix\Main\DB\SqlExpression $initiatedByUserId)
     * @method bool hasInitiatedByUserId()
     * @method bool isInitiatedByUserIdFilled()
     * @method bool isInitiatedByUserIdChanged()
     * @method \int remindActualInitiatedByUserId()
     * @method \int requireInitiatedByUserId()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup resetInitiatedByUserId()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup unsetInitiatedByUserId()
     * @method \int fillInitiatedByUserId()
     * @method \Bitrix\Main\EO_User getInitiatedByUser()
     * @method \Bitrix\Main\EO_User remindActualInitiatedByUser()
     * @method \Bitrix\Main\EO_User requireInitiatedByUser()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup setInitiatedByUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Socialnetwork\EO_UserToGroup resetInitiatedByUser()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup unsetInitiatedByUser()
     * @method bool hasInitiatedByUser()
     * @method bool isInitiatedByUserFilled()
     * @method bool isInitiatedByUserChanged()
     * @method \Bitrix\Main\EO_User fillInitiatedByUser()
     * @method \string getMessage()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup setMessage(\string|\Bitrix\Main\DB\SqlExpression $message)
     * @method bool hasMessage()
     * @method bool isMessageFilled()
     * @method bool isMessageChanged()
     * @method \string remindActualMessage()
     * @method \string requireMessage()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup resetMessage()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup unsetMessage()
     * @method \string fillMessage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_UserToGroup set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_UserToGroup reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_UserToGroup unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_UserToGroup wakeUp($data)
     */
    class EO_UserToGroup
    {
        /* @var \Bitrix\Socialnetwork\UserToGroupTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\UserToGroupTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserToGroup_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \int[] getGroupIdList()
     * @method \int[] fillGroupId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup[] getGroupList()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup_Collection getGroupCollection()
     * @method \Bitrix\Socialnetwork\EO_Workgroup_Collection fillGroup()
     * @method \string[] getRoleList()
     * @method \string[] fillRole()
     * @method \boolean[] getAutoMemberList()
     * @method \boolean[] fillAutoMember()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateUpdateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateUpdate()
     * @method \string[] getInitiatedByTypeList()
     * @method \string[] fillInitiatedByType()
     * @method \int[] getInitiatedByUserIdList()
     * @method \int[] fillInitiatedByUserId()
     * @method \Bitrix\Main\EO_User[] getInitiatedByUserList()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup_Collection getInitiatedByUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillInitiatedByUser()
     * @method \string[] getMessageList()
     * @method \string[] fillMessage()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_UserToGroup $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_UserToGroup $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_UserToGroup getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_UserToGroup[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_UserToGroup $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_UserToGroup_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_UserToGroup current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserToGroup_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\UserToGroupTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\UserToGroupTable';
    }
    /**
     * @method static EO_UserToGroup_Query query()
     * @method static EO_UserToGroup_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserToGroup_Result getById($id)
     * @method static EO_UserToGroup_Result getList(array $parameters = array())
     * @method static EO_UserToGroup_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_UserToGroup createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_UserToGroup_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_UserToGroup wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_UserToGroup_Collection wakeUpCollection($rows)
     */
    class UserToGroupTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserToGroup_Result exec()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup fetchObject()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserToGroup_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_UserToGroup fetchObject()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup_Collection fetchCollection()
     */
    class EO_UserToGroup_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_UserToGroup createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_UserToGroup_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_UserToGroup wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_UserToGroup_Collection wakeUpCollection($rows)
     */
    class EO_UserToGroup_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserWelltory
     * @see \Bitrix\Socialnetwork\UserWelltoryTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory resetUserId()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory unsetUserId()
     * @method \int fillUserId()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Socialnetwork\EO_UserWelltory resetUser()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \int getStress()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory setStress(\int|\Bitrix\Main\DB\SqlExpression $stress)
     * @method bool hasStress()
     * @method bool isStressFilled()
     * @method bool isStressChanged()
     * @method \int remindActualStress()
     * @method \int requireStress()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory resetStress()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory unsetStress()
     * @method \int fillStress()
     * @method \string getStressType()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory setStressType(\string|\Bitrix\Main\DB\SqlExpression $stressType)
     * @method bool hasStressType()
     * @method bool isStressTypeFilled()
     * @method bool isStressTypeChanged()
     * @method \string remindActualStressType()
     * @method \string requireStressType()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory resetStressType()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory unsetStressType()
     * @method \string fillStressType()
     * @method \string getStressComment()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory setStressComment(\string|\Bitrix\Main\DB\SqlExpression $stressComment)
     * @method bool hasStressComment()
     * @method bool isStressCommentFilled()
     * @method bool isStressCommentChanged()
     * @method \string remindActualStressComment()
     * @method \string requireStressComment()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory resetStressComment()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory unsetStressComment()
     * @method \string fillStressComment()
     * @method \Bitrix\Main\Type\DateTime getDateMeasure()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory setDateMeasure(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateMeasure)
     * @method bool hasDateMeasure()
     * @method bool isDateMeasureFilled()
     * @method bool isDateMeasureChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateMeasure()
     * @method \Bitrix\Main\Type\DateTime requireDateMeasure()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory resetDateMeasure()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory unsetDateMeasure()
     * @method \Bitrix\Main\Type\DateTime fillDateMeasure()
     * @method \string getHash()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory setHash(\string|\Bitrix\Main\DB\SqlExpression $hash)
     * @method bool hasHash()
     * @method bool isHashFilled()
     * @method bool isHashChanged()
     * @method \string remindActualHash()
     * @method \string requireHash()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory resetHash()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory unsetHash()
     * @method \string fillHash()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_UserWelltory set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_UserWelltory reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_UserWelltory unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_UserWelltory wakeUp($data)
     */
    class EO_UserWelltory
    {
        /* @var \Bitrix\Socialnetwork\UserWelltoryTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\UserWelltoryTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserWelltory_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \int[] getStressList()
     * @method \int[] fillStress()
     * @method \string[] getStressTypeList()
     * @method \string[] fillStressType()
     * @method \string[] getStressCommentList()
     * @method \string[] fillStressComment()
     * @method \Bitrix\Main\Type\DateTime[] getDateMeasureList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateMeasure()
     * @method \string[] getHashList()
     * @method \string[] fillHash()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_UserWelltory $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_UserWelltory $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_UserWelltory getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_UserWelltory[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_UserWelltory $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_UserWelltory_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_UserWelltory current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserWelltory_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\UserWelltoryTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\UserWelltoryTable';
    }
    /**
     * @method static EO_UserWelltory_Query query()
     * @method static EO_UserWelltory_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserWelltory_Result getById($id)
     * @method static EO_UserWelltory_Result getList(array $parameters = array())
     * @method static EO_UserWelltory_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_UserWelltory createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_UserWelltory_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_UserWelltory wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_UserWelltory_Collection wakeUpCollection($rows)
     */
    class UserWelltoryTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserWelltory_Result exec()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory fetchObject()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserWelltory_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_UserWelltory fetchObject()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory_Collection fetchCollection()
     */
    class EO_UserWelltory_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_UserWelltory createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_UserWelltory_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_UserWelltory wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_UserWelltory_Collection wakeUpCollection($rows)
     */
    class EO_UserWelltory_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_UserWelltoryDisclaimer
     * @see \Bitrix\Socialnetwork\UserWelltoryDisclaimerTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \int getUserId()
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer resetUserId()
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer unsetUserId()
     * @method \int fillUserId()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer resetUser()
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \Bitrix\Main\Type\DateTime getDateSigned()
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer setDateSigned(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateSigned)
     * @method bool hasDateSigned()
     * @method bool isDateSignedFilled()
     * @method bool isDateSignedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateSigned()
     * @method \Bitrix\Main\Type\DateTime requireDateSigned()
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer resetDateSigned()
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer unsetDateSigned()
     * @method \Bitrix\Main\Type\DateTime fillDateSigned()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer wakeUp($data)
     */
    class EO_UserWelltoryDisclaimer
    {
        /* @var \Bitrix\Socialnetwork\UserWelltoryDisclaimerTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\UserWelltoryDisclaimerTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_UserWelltoryDisclaimer_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \Bitrix\Main\Type\DateTime[] getDateSignedList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateSigned()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_UserWelltoryDisclaimer_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\UserWelltoryDisclaimerTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\UserWelltoryDisclaimerTable';
    }
    /**
     * @method static EO_UserWelltoryDisclaimer_Query query()
     * @method static EO_UserWelltoryDisclaimer_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_UserWelltoryDisclaimer_Result getById($id)
     * @method static EO_UserWelltoryDisclaimer_Result getList(array $parameters = array())
     * @method static EO_UserWelltoryDisclaimer_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer_Collection wakeUpCollection($rows)
     */
    class UserWelltoryDisclaimerTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_UserWelltoryDisclaimer_Result exec()
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer fetchObject()
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_UserWelltoryDisclaimer_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer fetchObject()
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer_Collection fetchCollection()
     */
    class EO_UserWelltoryDisclaimer_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_UserWelltoryDisclaimer_Collection wakeUpCollection($rows)
     */
    class EO_UserWelltoryDisclaimer_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_Workgroup
     * @see \Bitrix\Socialnetwork\WorkgroupTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \boolean getActive()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetActive()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetActive()
     * @method \boolean fillActive()
     * @method \string getSiteId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \string remindActualSiteId()
     * @method \string requireSiteId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetSiteId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetSiteId()
     * @method \string fillSiteId()
     * @method \int getSubjectId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setSubjectId(\int|\Bitrix\Main\DB\SqlExpression $subjectId)
     * @method bool hasSubjectId()
     * @method bool isSubjectIdFilled()
     * @method bool isSubjectIdChanged()
     * @method \int remindActualSubjectId()
     * @method \int requireSubjectId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetSubjectId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetSubjectId()
     * @method \int fillSubjectId()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject getWorkgroupSubject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject remindActualWorkgroupSubject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject requireWorkgroupSubject()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setWorkgroupSubject(\Bitrix\Socialnetwork\EO_WorkgroupSubject $object)
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetWorkgroupSubject()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetWorkgroupSubject()
     * @method bool hasWorkgroupSubject()
     * @method bool isWorkgroupSubjectFilled()
     * @method bool isWorkgroupSubjectChanged()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject fillWorkgroupSubject()
     * @method \string getName()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetName()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetName()
     * @method \string fillName()
     * @method \string getDescription()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetDescription()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetDescription()
     * @method \string fillDescription()
     * @method \string getKeywords()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setKeywords(\string|\Bitrix\Main\DB\SqlExpression $keywords)
     * @method bool hasKeywords()
     * @method bool isKeywordsFilled()
     * @method bool isKeywordsChanged()
     * @method \string remindActualKeywords()
     * @method \string requireKeywords()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetKeywords()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetKeywords()
     * @method \string fillKeywords()
     * @method \boolean getClosed()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setClosed(\boolean|\Bitrix\Main\DB\SqlExpression $closed)
     * @method bool hasClosed()
     * @method bool isClosedFilled()
     * @method bool isClosedChanged()
     * @method \boolean remindActualClosed()
     * @method \boolean requireClosed()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetClosed()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetClosed()
     * @method \boolean fillClosed()
     * @method \boolean getVisible()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setVisible(\boolean|\Bitrix\Main\DB\SqlExpression $visible)
     * @method bool hasVisible()
     * @method bool isVisibleFilled()
     * @method bool isVisibleChanged()
     * @method \boolean remindActualVisible()
     * @method \boolean requireVisible()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetVisible()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetVisible()
     * @method \boolean fillVisible()
     * @method \boolean getOpened()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setOpened(\boolean|\Bitrix\Main\DB\SqlExpression $opened)
     * @method bool hasOpened()
     * @method bool isOpenedFilled()
     * @method bool isOpenedChanged()
     * @method \boolean remindActualOpened()
     * @method \boolean requireOpened()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetOpened()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetOpened()
     * @method \boolean fillOpened()
     * @method \Bitrix\Main\Type\DateTime getDateCreate()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setDateCreate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateCreate)
     * @method bool hasDateCreate()
     * @method bool isDateCreateFilled()
     * @method bool isDateCreateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateCreate()
     * @method \Bitrix\Main\Type\DateTime requireDateCreate()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetDateCreate()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetDateCreate()
     * @method \Bitrix\Main\Type\DateTime fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime getDateUpdate()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setDateUpdate(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateUpdate)
     * @method bool hasDateUpdate()
     * @method bool isDateUpdateFilled()
     * @method bool isDateUpdateChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateUpdate()
     * @method \Bitrix\Main\Type\DateTime requireDateUpdate()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetDateUpdate()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetDateUpdate()
     * @method \Bitrix\Main\Type\DateTime fillDateUpdate()
     * @method \Bitrix\Main\Type\DateTime getDateActivity()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setDateActivity(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateActivity)
     * @method bool hasDateActivity()
     * @method bool isDateActivityFilled()
     * @method bool isDateActivityChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateActivity()
     * @method \Bitrix\Main\Type\DateTime requireDateActivity()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetDateActivity()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetDateActivity()
     * @method \Bitrix\Main\Type\DateTime fillDateActivity()
     * @method \int getImageId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setImageId(\int|\Bitrix\Main\DB\SqlExpression $imageId)
     * @method bool hasImageId()
     * @method bool isImageIdFilled()
     * @method bool isImageIdChanged()
     * @method \int remindActualImageId()
     * @method \int requireImageId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetImageId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetImageId()
     * @method \int fillImageId()
     * @method \int getOwnerId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setOwnerId(\int|\Bitrix\Main\DB\SqlExpression $ownerId)
     * @method bool hasOwnerId()
     * @method bool isOwnerIdFilled()
     * @method bool isOwnerIdChanged()
     * @method \int remindActualOwnerId()
     * @method \int requireOwnerId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetOwnerId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetOwnerId()
     * @method \int fillOwnerId()
     * @method \Bitrix\Main\EO_User getWorkgroupOwner()
     * @method \Bitrix\Main\EO_User remindActualWorkgroupOwner()
     * @method \Bitrix\Main\EO_User requireWorkgroupOwner()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setWorkgroupOwner(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetWorkgroupOwner()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetWorkgroupOwner()
     * @method bool hasWorkgroupOwner()
     * @method bool isWorkgroupOwnerFilled()
     * @method bool isWorkgroupOwnerChanged()
     * @method \Bitrix\Main\EO_User fillWorkgroupOwner()
     * @method \string getInitiatePerms()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setInitiatePerms(\string|\Bitrix\Main\DB\SqlExpression $initiatePerms)
     * @method bool hasInitiatePerms()
     * @method bool isInitiatePermsFilled()
     * @method bool isInitiatePermsChanged()
     * @method \string remindActualInitiatePerms()
     * @method \string requireInitiatePerms()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetInitiatePerms()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetInitiatePerms()
     * @method \string fillInitiatePerms()
     * @method \int getNumberOfMembers()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setNumberOfMembers(\int|\Bitrix\Main\DB\SqlExpression $numberOfMembers)
     * @method bool hasNumberOfMembers()
     * @method bool isNumberOfMembersFilled()
     * @method bool isNumberOfMembersChanged()
     * @method \int remindActualNumberOfMembers()
     * @method \int requireNumberOfMembers()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetNumberOfMembers()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetNumberOfMembers()
     * @method \int fillNumberOfMembers()
     * @method \boolean getProject()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setProject(\boolean|\Bitrix\Main\DB\SqlExpression $project)
     * @method bool hasProject()
     * @method bool isProjectFilled()
     * @method bool isProjectChanged()
     * @method \boolean remindActualProject()
     * @method \boolean requireProject()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetProject()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetProject()
     * @method \boolean fillProject()
     * @method \Bitrix\Main\Type\DateTime getProjectDateStart()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setProjectDateStart(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $projectDateStart)
     * @method bool hasProjectDateStart()
     * @method bool isProjectDateStartFilled()
     * @method bool isProjectDateStartChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualProjectDateStart()
     * @method \Bitrix\Main\Type\DateTime requireProjectDateStart()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetProjectDateStart()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetProjectDateStart()
     * @method \Bitrix\Main\Type\DateTime fillProjectDateStart()
     * @method \Bitrix\Main\Type\DateTime getProjectDateFinish()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setProjectDateFinish(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $projectDateFinish)
     * @method bool hasProjectDateFinish()
     * @method bool isProjectDateFinishFilled()
     * @method bool isProjectDateFinishChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualProjectDateFinish()
     * @method \Bitrix\Main\Type\DateTime requireProjectDateFinish()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetProjectDateFinish()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetProjectDateFinish()
     * @method \Bitrix\Main\Type\DateTime fillProjectDateFinish()
     * @method \string getSearchIndex()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setSearchIndex(\string|\Bitrix\Main\DB\SqlExpression $searchIndex)
     * @method bool hasSearchIndex()
     * @method bool isSearchIndexFilled()
     * @method bool isSearchIndexChanged()
     * @method \string remindActualSearchIndex()
     * @method \string requireSearchIndex()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetSearchIndex()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetSearchIndex()
     * @method \string fillSearchIndex()
     * @method \boolean getLanding()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setLanding(\boolean|\Bitrix\Main\DB\SqlExpression $landing)
     * @method bool hasLanding()
     * @method bool isLandingFilled()
     * @method bool isLandingChanged()
     * @method \boolean remindActualLanding()
     * @method \boolean requireLanding()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetLanding()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetLanding()
     * @method \boolean fillLanding()
     * @method \int getScrumOwnerId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setScrumOwnerId(\int|\Bitrix\Main\DB\SqlExpression $scrumOwnerId)
     * @method bool hasScrumOwnerId()
     * @method bool isScrumOwnerIdFilled()
     * @method bool isScrumOwnerIdChanged()
     * @method \int remindActualScrumOwnerId()
     * @method \int requireScrumOwnerId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetScrumOwnerId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetScrumOwnerId()
     * @method \int fillScrumOwnerId()
     * @method \int getScrumMasterId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setScrumMasterId(\int|\Bitrix\Main\DB\SqlExpression $scrumMasterId)
     * @method bool hasScrumMasterId()
     * @method bool isScrumMasterIdFilled()
     * @method bool isScrumMasterIdChanged()
     * @method \int remindActualScrumMasterId()
     * @method \int requireScrumMasterId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetScrumMasterId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetScrumMasterId()
     * @method \int fillScrumMasterId()
     * @method \int getScrumSprintDuration()
     * @method \Bitrix\Socialnetwork\EO_Workgroup setScrumSprintDuration(\int|\Bitrix\Main\DB\SqlExpression $scrumSprintDuration)
     * @method bool hasScrumSprintDuration()
     * @method bool isScrumSprintDurationFilled()
     * @method bool isScrumSprintDurationChanged()
     * @method \int remindActualScrumSprintDuration()
     * @method \int requireScrumSprintDuration()
     * @method \Bitrix\Socialnetwork\EO_Workgroup resetScrumSprintDuration()
     * @method \Bitrix\Socialnetwork\EO_Workgroup unsetScrumSprintDuration()
     * @method \int fillScrumSprintDuration()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_Workgroup set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_Workgroup reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_Workgroup unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_Workgroup wakeUp($data)
     */
    class EO_Workgroup
    {
        /* @var \Bitrix\Socialnetwork\WorkgroupTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\WorkgroupTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Workgroup_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \string[] getSiteIdList()
     * @method \string[] fillSiteId()
     * @method \int[] getSubjectIdList()
     * @method \int[] fillSubjectId()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject[] getWorkgroupSubjectList()
     * @method \Bitrix\Socialnetwork\EO_Workgroup_Collection getWorkgroupSubjectCollection()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject_Collection fillWorkgroupSubject()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getKeywordsList()
     * @method \string[] fillKeywords()
     * @method \boolean[] getClosedList()
     * @method \boolean[] fillClosed()
     * @method \boolean[] getVisibleList()
     * @method \boolean[] fillVisible()
     * @method \boolean[] getOpenedList()
     * @method \boolean[] fillOpened()
     * @method \Bitrix\Main\Type\DateTime[] getDateCreateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateCreate()
     * @method \Bitrix\Main\Type\DateTime[] getDateUpdateList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateUpdate()
     * @method \Bitrix\Main\Type\DateTime[] getDateActivityList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateActivity()
     * @method \int[] getImageIdList()
     * @method \int[] fillImageId()
     * @method \int[] getOwnerIdList()
     * @method \int[] fillOwnerId()
     * @method \Bitrix\Main\EO_User[] getWorkgroupOwnerList()
     * @method \Bitrix\Socialnetwork\EO_Workgroup_Collection getWorkgroupOwnerCollection()
     * @method \Bitrix\Main\EO_User_Collection fillWorkgroupOwner()
     * @method \string[] getInitiatePermsList()
     * @method \string[] fillInitiatePerms()
     * @method \int[] getNumberOfMembersList()
     * @method \int[] fillNumberOfMembers()
     * @method \boolean[] getProjectList()
     * @method \boolean[] fillProject()
     * @method \Bitrix\Main\Type\DateTime[] getProjectDateStartList()
     * @method \Bitrix\Main\Type\DateTime[] fillProjectDateStart()
     * @method \Bitrix\Main\Type\DateTime[] getProjectDateFinishList()
     * @method \Bitrix\Main\Type\DateTime[] fillProjectDateFinish()
     * @method \string[] getSearchIndexList()
     * @method \string[] fillSearchIndex()
     * @method \boolean[] getLandingList()
     * @method \boolean[] fillLanding()
     * @method \int[] getScrumOwnerIdList()
     * @method \int[] fillScrumOwnerId()
     * @method \int[] getScrumMasterIdList()
     * @method \int[] fillScrumMasterId()
     * @method \int[] getScrumSprintDurationList()
     * @method \int[] fillScrumSprintDuration()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_Workgroup $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_Workgroup $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_Workgroup getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_Workgroup[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_Workgroup $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_Workgroup_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_Workgroup current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Workgroup_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\WorkgroupTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\WorkgroupTable';
    }
    /**
     * @method static EO_Workgroup_Query query()
     * @method static EO_Workgroup_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Workgroup_Result getById($id)
     * @method static EO_Workgroup_Result getList(array $parameters = array())
     * @method static EO_Workgroup_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_Workgroup createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_Workgroup_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_Workgroup wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_Workgroup_Collection wakeUpCollection($rows)
     */
    class WorkgroupTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Workgroup_Result exec()
     * @method \Bitrix\Socialnetwork\EO_Workgroup fetchObject()
     * @method \Bitrix\Socialnetwork\EO_Workgroup_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Workgroup_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_Workgroup fetchObject()
     * @method \Bitrix\Socialnetwork\EO_Workgroup_Collection fetchCollection()
     */
    class EO_Workgroup_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_Workgroup createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_Workgroup_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_Workgroup wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_Workgroup_Collection wakeUpCollection($rows)
     */
    class EO_Workgroup_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_WorkgroupFavorites
     * @see \Bitrix\Socialnetwork\WorkgroupFavoritesTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites resetUser()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \int getGroupId()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites setGroupId(\int|\Bitrix\Main\DB\SqlExpression $groupId)
     * @method bool hasGroupId()
     * @method bool isGroupIdFilled()
     * @method bool isGroupIdChanged()
     * @method \Bitrix\Socialnetwork\EO_Workgroup getGroup()
     * @method \Bitrix\Socialnetwork\EO_Workgroup remindActualGroup()
     * @method \Bitrix\Socialnetwork\EO_Workgroup requireGroup()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites setGroup(\Bitrix\Socialnetwork\EO_Workgroup $object)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites resetGroup()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites unsetGroup()
     * @method bool hasGroup()
     * @method bool isGroupFilled()
     * @method bool isGroupChanged()
     * @method \Bitrix\Socialnetwork\EO_Workgroup fillGroup()
     * @method \Bitrix\Main\Type\DateTime getDateAdd()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites setDateAdd(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateAdd)
     * @method bool hasDateAdd()
     * @method bool isDateAddFilled()
     * @method bool isDateAddChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateAdd()
     * @method \Bitrix\Main\Type\DateTime requireDateAdd()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites resetDateAdd()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites unsetDateAdd()
     * @method \Bitrix\Main\Type\DateTime fillDateAdd()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupFavorites wakeUp($data)
     */
    class EO_WorkgroupFavorites
    {
        /* @var \Bitrix\Socialnetwork\WorkgroupFavoritesTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\WorkgroupFavoritesTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_WorkgroupFavorites_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \int[] getGroupIdList()
     * @method \Bitrix\Socialnetwork\EO_Workgroup[] getGroupList()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites_Collection getGroupCollection()
     * @method \Bitrix\Socialnetwork\EO_Workgroup_Collection fillGroup()
     * @method \Bitrix\Main\Type\DateTime[] getDateAddList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateAdd()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_WorkgroupFavorites $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_WorkgroupFavorites $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_WorkgroupFavorites $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupFavorites_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_WorkgroupFavorites_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\WorkgroupFavoritesTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\WorkgroupFavoritesTable';
    }
    /**
     * @method static EO_WorkgroupFavorites_Query query()
     * @method static EO_WorkgroupFavorites_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_WorkgroupFavorites_Result getById($id)
     * @method static EO_WorkgroupFavorites_Result getList(array $parameters = array())
     * @method static EO_WorkgroupFavorites_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupFavorites createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupFavorites_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupFavorites wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupFavorites_Collection wakeUpCollection($rows)
     */
    class WorkgroupFavoritesTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_WorkgroupFavorites_Result exec()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites fetchObject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_WorkgroupFavorites_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites fetchObject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites_Collection fetchCollection()
     */
    class EO_WorkgroupFavorites_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupFavorites_Collection wakeUpCollection($rows)
     */
    class EO_WorkgroupFavorites_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_WorkgroupSite
     * @see \Bitrix\Socialnetwork\WorkgroupSiteTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getGroupId()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite setGroupId(\int|\Bitrix\Main\DB\SqlExpression $groupId)
     * @method bool hasGroupId()
     * @method bool isGroupIdFilled()
     * @method bool isGroupIdChanged()
     * @method \Bitrix\Socialnetwork\EO_Workgroup getGroup()
     * @method \Bitrix\Socialnetwork\EO_Workgroup remindActualGroup()
     * @method \Bitrix\Socialnetwork\EO_Workgroup requireGroup()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite setGroup(\Bitrix\Socialnetwork\EO_Workgroup $object)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite resetGroup()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite unsetGroup()
     * @method bool hasGroup()
     * @method bool isGroupFilled()
     * @method bool isGroupChanged()
     * @method \Bitrix\Socialnetwork\EO_Workgroup fillGroup()
     * @method \string getSiteId()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \Bitrix\Main\EO_Site getSite()
     * @method \Bitrix\Main\EO_Site remindActualSite()
     * @method \Bitrix\Main\EO_Site requireSite()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite setSite(\Bitrix\Main\EO_Site $object)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite resetSite()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite unsetSite()
     * @method bool hasSite()
     * @method bool isSiteFilled()
     * @method bool isSiteChanged()
     * @method \Bitrix\Main\EO_Site fillSite()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSite wakeUp($data)
     */
    class EO_WorkgroupSite
    {
        /* @var \Bitrix\Socialnetwork\WorkgroupSiteTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\WorkgroupSiteTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_WorkgroupSite_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getGroupIdList()
     * @method \Bitrix\Socialnetwork\EO_Workgroup[] getGroupList()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite_Collection getGroupCollection()
     * @method \Bitrix\Socialnetwork\EO_Workgroup_Collection fillGroup()
     * @method \string[] getSiteIdList()
     * @method \Bitrix\Main\EO_Site[] getSiteList()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite_Collection getSiteCollection()
     * @method \Bitrix\Main\EO_Site_Collection fillSite()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_WorkgroupSite $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_WorkgroupSite $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_WorkgroupSite $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSite_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_WorkgroupSite_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\WorkgroupSiteTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\WorkgroupSiteTable';
    }
    /**
     * @method static EO_WorkgroupSite_Query query()
     * @method static EO_WorkgroupSite_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_WorkgroupSite_Result getById($id)
     * @method static EO_WorkgroupSite_Result getList(array $parameters = array())
     * @method static EO_WorkgroupSite_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSite createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSite_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSite wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSite_Collection wakeUpCollection($rows)
     */
    class WorkgroupSiteTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_WorkgroupSite_Result exec()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite fetchObject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_WorkgroupSite_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite fetchObject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite_Collection fetchCollection()
     */
    class EO_WorkgroupSite_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSite_Collection wakeUpCollection($rows)
     */
    class EO_WorkgroupSite_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_WorkgroupSubject
     * @see \Bitrix\Socialnetwork\WorkgroupSubjectTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getSiteId()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \Bitrix\Main\EO_Site getSite()
     * @method \Bitrix\Main\EO_Site remindActualSite()
     * @method \Bitrix\Main\EO_Site requireSite()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject setSite(\Bitrix\Main\EO_Site $object)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject resetSite()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject unsetSite()
     * @method bool hasSite()
     * @method bool isSiteFilled()
     * @method bool isSiteChanged()
     * @method \Bitrix\Main\EO_Site fillSite()
     * @method \string getName()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject resetName()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject unsetName()
     * @method \string fillName()
     * @method \int getSort()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject resetSort()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject unsetSort()
     * @method \int fillSort()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSubject wakeUp($data)
     */
    class EO_WorkgroupSubject
    {
        /* @var \Bitrix\Socialnetwork\WorkgroupSubjectTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\WorkgroupSubjectTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_WorkgroupSubject_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getSiteIdList()
     * @method \Bitrix\Main\EO_Site[] getSiteList()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject_Collection getSiteCollection()
     * @method \Bitrix\Main\EO_Site_Collection fillSite()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_WorkgroupSubject $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_WorkgroupSubject $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_WorkgroupSubject $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSubject_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_WorkgroupSubject_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\WorkgroupSubjectTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\WorkgroupSubjectTable';
    }
    /**
     * @method static EO_WorkgroupSubject_Query query()
     * @method static EO_WorkgroupSubject_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_WorkgroupSubject_Result getById($id)
     * @method static EO_WorkgroupSubject_Result getList(array $parameters = array())
     * @method static EO_WorkgroupSubject_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSubject createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSubject_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSubject wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSubject_Collection wakeUpCollection($rows)
     */
    class WorkgroupSubjectTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_WorkgroupSubject_Result exec()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject fetchObject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_WorkgroupSubject_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject fetchObject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject_Collection fetchCollection()
     */
    class EO_WorkgroupSubject_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject_Collection wakeUpCollection($rows)
     */
    class EO_WorkgroupSubject_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_WorkgroupSubjectSite
     * @see \Bitrix\Socialnetwork\WorkgroupSubjectSiteTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getSubjectId()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite setSubjectId(\int|\Bitrix\Main\DB\SqlExpression $subjectId)
     * @method bool hasSubjectId()
     * @method bool isSubjectIdFilled()
     * @method bool isSubjectIdChanged()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject getSubject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject remindActualSubject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject requireSubject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite setSubject(\Bitrix\Socialnetwork\EO_WorkgroupSubject $object)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite resetSubject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite unsetSubject()
     * @method bool hasSubject()
     * @method bool isSubjectFilled()
     * @method bool isSubjectChanged()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject fillSubject()
     * @method \string getSiteId()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite setSiteId(\string|\Bitrix\Main\DB\SqlExpression $siteId)
     * @method bool hasSiteId()
     * @method bool isSiteIdFilled()
     * @method bool isSiteIdChanged()
     * @method \Bitrix\Main\EO_Site getSite()
     * @method \Bitrix\Main\EO_Site remindActualSite()
     * @method \Bitrix\Main\EO_Site requireSite()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite setSite(\Bitrix\Main\EO_Site $object)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite resetSite()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite unsetSite()
     * @method bool hasSite()
     * @method bool isSiteFilled()
     * @method bool isSiteChanged()
     * @method \Bitrix\Main\EO_Site fillSite()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite wakeUp($data)
     */
    class EO_WorkgroupSubjectSite
    {
        /* @var \Bitrix\Socialnetwork\WorkgroupSubjectSiteTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\WorkgroupSubjectSiteTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_WorkgroupSubjectSite_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getSubjectIdList()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject[] getSubjectList()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite_Collection getSubjectCollection()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubject_Collection fillSubject()
     * @method \string[] getSiteIdList()
     * @method \Bitrix\Main\EO_Site[] getSiteList()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite_Collection getSiteCollection()
     * @method \Bitrix\Main\EO_Site_Collection fillSite()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_WorkgroupSubjectSite $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_WorkgroupSubjectSite $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_WorkgroupSubjectSite $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_WorkgroupSubjectSite_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\WorkgroupSubjectSiteTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\WorkgroupSubjectSiteTable';
    }
    /**
     * @method static EO_WorkgroupSubjectSite_Query query()
     * @method static EO_WorkgroupSubjectSite_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_WorkgroupSubjectSite_Result getById($id)
     * @method static EO_WorkgroupSubjectSite_Result getList(array $parameters = array())
     * @method static EO_WorkgroupSubjectSite_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite_Collection wakeUpCollection($rows)
     */
    class WorkgroupSubjectSiteTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_WorkgroupSubjectSite_Result exec()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite fetchObject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_WorkgroupSubjectSite_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite fetchObject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite_Collection fetchCollection()
     */
    class EO_WorkgroupSubjectSite_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupSubjectSite_Collection wakeUpCollection($rows)
     */
    class EO_WorkgroupSubjectSite_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_WorkgroupTag
     * @see \Bitrix\Socialnetwork\WorkgroupTagTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getGroupId()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag setGroupId(\int|\Bitrix\Main\DB\SqlExpression $groupId)
     * @method bool hasGroupId()
     * @method bool isGroupIdFilled()
     * @method bool isGroupIdChanged()
     * @method \int remindActualGroupId()
     * @method \int requireGroupId()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag resetGroupId()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag unsetGroupId()
     * @method \int fillGroupId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup getGroup()
     * @method \Bitrix\Socialnetwork\EO_Workgroup remindActualGroup()
     * @method \Bitrix\Socialnetwork\EO_Workgroup requireGroup()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag setGroup(\Bitrix\Socialnetwork\EO_Workgroup $object)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag resetGroup()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag unsetGroup()
     * @method bool hasGroup()
     * @method bool isGroupFilled()
     * @method bool isGroupChanged()
     * @method \Bitrix\Socialnetwork\EO_Workgroup fillGroup()
     * @method \string getName()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupTag wakeUp($data)
     */
    class EO_WorkgroupTag
    {
        /* @var \Bitrix\Socialnetwork\WorkgroupTagTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\WorkgroupTagTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_WorkgroupTag_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getGroupIdList()
     * @method \int[] fillGroupId()
     * @method \Bitrix\Socialnetwork\EO_Workgroup[] getGroupList()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag_Collection getGroupCollection()
     * @method \Bitrix\Socialnetwork\EO_Workgroup_Collection fillGroup()
     * @method \string[] getNameList()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_WorkgroupTag $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_WorkgroupTag $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_WorkgroupTag $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupTag_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_WorkgroupTag_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\WorkgroupTagTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\WorkgroupTagTable';
    }
    /**
     * @method static EO_WorkgroupTag_Query query()
     * @method static EO_WorkgroupTag_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_WorkgroupTag_Result getById($id)
     * @method static EO_WorkgroupTag_Result getList(array $parameters = array())
     * @method static EO_WorkgroupTag_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupTag createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupTag_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupTag wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupTag_Collection wakeUpCollection($rows)
     */
    class WorkgroupTagTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_WorkgroupTag_Result exec()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag fetchObject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_WorkgroupTag_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag fetchObject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag_Collection fetchCollection()
     */
    class EO_WorkgroupTag_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupTag_Collection wakeUpCollection($rows)
     */
    class EO_WorkgroupTag_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_WorkgroupView
     * @see \Bitrix\Socialnetwork\WorkgroupViewTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getUserId()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView resetUser()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \int getGroupId()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView setGroupId(\int|\Bitrix\Main\DB\SqlExpression $groupId)
     * @method bool hasGroupId()
     * @method bool isGroupIdFilled()
     * @method bool isGroupIdChanged()
     * @method \Bitrix\Socialnetwork\EO_Workgroup getGroup()
     * @method \Bitrix\Socialnetwork\EO_Workgroup remindActualGroup()
     * @method \Bitrix\Socialnetwork\EO_Workgroup requireGroup()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView setGroup(\Bitrix\Socialnetwork\EO_Workgroup $object)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView resetGroup()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView unsetGroup()
     * @method bool hasGroup()
     * @method bool isGroupFilled()
     * @method bool isGroupChanged()
     * @method \Bitrix\Socialnetwork\EO_Workgroup fillGroup()
     * @method \Bitrix\Main\Type\DateTime getDateView()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView setDateView(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $dateView)
     * @method bool hasDateView()
     * @method bool isDateViewFilled()
     * @method bool isDateViewChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualDateView()
     * @method \Bitrix\Main\Type\DateTime requireDateView()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView resetDateView()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView unsetDateView()
     * @method \Bitrix\Main\Type\DateTime fillDateView()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView set($fieldName, $value)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView reset($fieldName)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupView wakeUp($data)
     */
    class EO_WorkgroupView
    {
        /* @var \Bitrix\Socialnetwork\WorkgroupViewTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\WorkgroupViewTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_WorkgroupView_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getUserIdList()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \int[] getGroupIdList()
     * @method \Bitrix\Socialnetwork\EO_Workgroup[] getGroupList()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView_Collection getGroupCollection()
     * @method \Bitrix\Socialnetwork\EO_Workgroup_Collection fillGroup()
     * @method \Bitrix\Main\Type\DateTime[] getDateViewList()
     * @method \Bitrix\Main\Type\DateTime[] fillDateView()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Socialnetwork\EO_WorkgroupView $object)
     * @method bool has(\Bitrix\Socialnetwork\EO_WorkgroupView $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView getByPrimary($primary)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView[] getAll()
     * @method bool remove(\Bitrix\Socialnetwork\EO_WorkgroupView $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupView_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_WorkgroupView_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Socialnetwork\WorkgroupViewTable */
        public static $dataClass = '\\Bitrix\\Socialnetwork\\WorkgroupViewTable';
    }
    /**
     * @method static EO_WorkgroupView_Query query()
     * @method static EO_WorkgroupView_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_WorkgroupView_Result getById($id)
     * @method static EO_WorkgroupView_Result getList(array $parameters = array())
     * @method static EO_WorkgroupView_Entity getEntity()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupView createObject($setDefaultValues = true)
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupView_Collection createCollection()
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupView wakeUpObject($row)
     * @method static \Bitrix\Socialnetwork\EO_WorkgroupView_Collection wakeUpCollection($rows)
     */
    class WorkgroupViewTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_WorkgroupView_Result exec()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView fetchObject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_WorkgroupView_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView fetchObject()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView_Collection fetchCollection()
     */
    class EO_WorkgroupView_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView createObject($setDefaultValues = true)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView_Collection createCollection()
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView wakeUpObject($row)
     * @method \Bitrix\Socialnetwork\EO_WorkgroupView_Collection wakeUpCollection($rows)
     */
    class EO_WorkgroupView_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Socialnetwork\Livefeed {
    abstract class Provider
    {
        public const DATA_RESULT_TYPE_SOURCE = 'SOURCE';
        public const TYPE_POST = 'POST';
        public const TYPE_COMMENT = 'COMMENT';
        public const DATA_ENTITY_TYPE_BLOG_POST = 'BLOG_POST';
        public const DATA_ENTITY_TYPE_BLOG_COMMENT = 'BLOG_COMMENT';
        public const DATA_ENTITY_TYPE_TASKS_TASK = 'TASK';
        public const DATA_ENTITY_TYPE_FORUM_TOPIC = 'FORUM_TOPIC';
        public const DATA_ENTITY_TYPE_FORUM_POST = 'FORUM_POST';
        public const DATA_ENTITY_TYPE_CALENDAR_EVENT = 'CALENDAR_EVENT';
        public const DATA_ENTITY_TYPE_LOG_ENTRY = 'LOG_ENTRY';
        public const DATA_ENTITY_TYPE_LOG_COMMENT = 'LOG_COMMENT';
        public const DATA_ENTITY_TYPE_RATING_LIST = 'RATING_LIST';
        public const DATA_ENTITY_TYPE_PHOTOGALLERY_ALBUM = 'PHOTO_ALBUM';
        public const DATA_ENTITY_TYPE_PHOTOGALLERY_PHOTO = 'PHOTO_PHOTO';
        public const DATA_ENTITY_TYPE_LISTS_ITEM = 'LISTS_NEW_ELEMENT';
        public const DATA_ENTITY_TYPE_WIKI = 'WIKI';
        public const DATA_ENTITY_TYPE_TIMEMAN_ENTRY = 'TIMEMAN_ENTRY';
        public const DATA_ENTITY_TYPE_TIMEMAN_REPORT = 'TIMEMAN_REPORT';
        public const DATA_ENTITY_TYPE_INTRANET_NEW_USER = 'INTRANET_NEW_USER';
        public const DATA_ENTITY_TYPE_BITRIX24_NEW_USER = 'BITRIX24_NEW_USER';
        public const PERMISSION_DENY = 'D';
        public const PERMISSION_READ = 'I';
        public const PERMISSION_FULL = 'W';
        public const CONTENT_TYPE_ID = false;
        protected $entityId = 0;
        protected $logId = 0;
        protected $sourceFields = array();
        protected $siteId = false;
        protected $cloneDiskObjects = false;
        protected $sourceDescription = '';
        protected $sourceTitle = '';
        protected $sourceOriginalText = '';
        protected $sourceAuxData = array();
        protected $sourceAttachedDiskObjects = array();
        protected $sourceDiskObjects = array();
        protected $diskObjectsCloned = array();
        protected $attachedDiskObjectsCloned = array();
        protected $logEventId = null;
        protected $logEntityType = null;
        protected $logEntityId = null;
        /**
         * @return string the fully qualified name of this class.
         */
        public static function className()
        {
        }
        public function setSiteId($siteId)
        {
        }
        public function getSiteId()
        {
        }
        public static function getId()
        {
        }
        public function getEventId()
        {
        }
        public function getType()
        {
        }
        public function getCommentProvider()
        {
        }
        private static final function getTypes()
        {
        }
        public static final function getProvider($entityType)
        {
        }
        public static function init(array $params)
        {
        }
        public static function canRead($params)
        {
        }
        protected function getPermissions(array $entity)
        {
        }
        public function getLogId($params = [])
        {
        }
        public function getLogCommentId($params = [])
        {
        }
        public function getSonetGroupsAvailable($feature = false, $operation = false)
        {
        }
        public function getLogRights()
        {
        }
        protected function getLogRightsEntry()
        {
        }
        public function setEntityId($entityId)
        {
        }
        protected final function getEntityId()
        {
        }
        public final function setLogId($logId)
        {
        }
        protected final function setSourceFields(array $fields)
        {
        }
        public function initSourceFields()
        {
        }
        protected final function getSourceFields()
        {
        }
        protected final function setSourceDescription($description)
        {
        }
        public function getSourceDescription()
        {
        }
        protected final function setSourceTitle($title)
        {
        }
        public function getSourceTitle()
        {
        }
        public function getPinnedTitle()
        {
        }
        public function getPinnedDescription()
        {
        }
        protected final function setSourceOriginalText($text)
        {
        }
        public function getSourceOriginalText()
        {
        }
        protected final function setSourceAuxData($auxData)
        {
        }
        public function getSourceAuxData()
        {
        }
        protected final function setSourceAttachedDiskObjects(array $diskAttachedObjects)
        {
        }
        protected final function setSourceDiskObjects(array $files)
        {
        }
        public final function setDiskObjectsCloned(array $values)
        {
        }
        public final function getDiskObjectsCloned()
        {
        }
        public final function getAttachedDiskObjectsCloned()
        {
        }
        public function getSourceAttachedDiskObjects()
        {
        }
        public function getSourceDiskObjects()
        {
        }
        protected function getAttachedDiskObjects($clone = false)
        {
        }
        protected static function cloneUfValues(array $values)
        {
        }
        public function getDiskObjects($entityId, $clone = false)
        {
        }
        private final function processDescription($text)
        {
        }
        private final function parseDiskObjectsCloned($matches)
        {
        }
        private final function parseAttachedDiskObjectsCloned($matches)
        {
        }
        public function getLiveFeedUrl()
        {
        }
        final function getContentTypeId()
        {
        }
        public static function getContentId($event = array())
        {
        }
        public function setContentView($params = array())
        {
        }
        public static final function getEntityData(array $params)
        {
        }
        public function getSuffix()
        {
        }
        public function add()
        {
        }
        public final function setLogEventId($eventId = '')
        {
        }
        private final function setLogEntityType($entityType = '')
        {
        }
        private final function setLogEntityId($entityId = 0)
        {
        }
        protected final function getLogFields()
        {
        }
        protected function getLogEventId()
        {
        }
        protected function getLogEntityType()
        {
        }
        protected function getLogEntityId()
        {
        }
        public function getAdditionalData($params = [])
        {
        }
        protected function checkAdditionalDataParams(&$params)
        {
        }
        public function deleteCounter($params = [])
        {
        }
    }
    final class TimemanReport extends \Bitrix\Socialnetwork\Livefeed\Provider
    {
        const PROVIDER_ID = 'TIMEMAN_REPORT';
        const CONTENT_TYPE_ID = 'TIMEMAN_REPORT';
        public static function getId()
        {
        }
        public function getEventId()
        {
        }
        public function getType()
        {
        }
        public function getCommentProvider()
        {
        }
        public function initSourceFields()
        {
        }
        public static function canRead($params)
        {
        }
        protected function getPermissions(array $post)
        {
        }
        public function getLiveFeedUrl()
        {
        }
    }
    final class Wiki extends \Bitrix\Socialnetwork\Livefeed\Provider
    {
        public const PROVIDER_ID = 'WIKI';
        public const CONTENT_TYPE_ID = 'WIKI';
        public static function getId() : string
        {
        }
        public function getEventId()
        {
        }
        public function getType()
        {
        }
        public function getCommentProvider()
        {
        }
        public function initSourceFields()
        {
        }
        public function getPinnedTitle() : string
        {
        }
        public static function canRead($params) : bool
        {
        }
        protected function getPermissions(array $post) : string
        {
        }
        public function getLiveFeedUrl() : string
        {
        }
    }
    final class LogComment extends \Bitrix\Socialnetwork\Livefeed\Provider
    {
        const PROVIDER_ID = 'SONET_COMMENT';
        const CONTENT_TYPE_ID = 'LOG_COMMENT';
        protected $logEventId = null;
        protected $logEntityType = null;
        protected $logEntityId = null;
        public static function getId()
        {
        }
        public function getEventId()
        {
        }
        public function getType()
        {
        }
        public function initSourceFields()
        {
        }
        protected function getAttachedDiskObjects($clone = false)
        {
        }
        public function getLiveFeedUrl()
        {
        }
        public static function canRead($params)
        {
        }
        protected function getPermissions(array $post)
        {
        }
        public function getSuffix()
        {
        }
        public function add($params = array())
        {
        }
    }
    final class TasksTask extends \Bitrix\Socialnetwork\Livefeed\Provider
    {
        const PROVIDER_ID = 'TASK';
        const CONTENT_TYPE_ID = 'TASK';
        public static function getId() : string
        {
        }
        public function getEventId()
        {
        }
        public function getType()
        {
        }
        public function getCommentProvider()
        {
        }
        public function initSourceFields()
        {
        }
        public function getPinnedTitle()
        {
        }
        public function getPinnedDescription()
        {
        }
        protected function getAttachedDiskObjects($clone = false)
        {
        }
        public static function canRead($params) : bool
        {
        }
        protected function getPermissions(array $post) : string
        {
        }
        public function getLiveFeedUrl() : string
        {
        }
    }
    class BlogPost extends \Bitrix\Socialnetwork\Livefeed\Provider
    {
        public const PROVIDER_ID = 'BLOG_POST';
        public const CONTENT_TYPE_ID = 'BLOG_POST';
        public static function getId() : string
        {
        }
        public function getEventId()
        {
        }
        public function getType()
        {
        }
        public function getCommentProvider()
        {
        }
        public function initSourceFields()
        {
        }
        public function getPinnedTitle()
        {
        }
        public function getPinnedDescription()
        {
        }
        protected function getAttachedDiskObjects($clone = false)
        {
        }
        public static function canRead($params) : bool
        {
        }
        protected function getPermissions(array $post) : string
        {
        }
        public function getLiveFeedUrl(\Bitrix\Socialnetwork\Livefeed\BlogPostService $service = null) : string
        {
        }
        public function getSuffix()
        {
        }
    }
    class BlogPostService
    {
        public function getPathToPost()
        {
        }
    }
    final class ListsItem extends \Bitrix\Socialnetwork\Livefeed\Provider
    {
        public const PROVIDER_ID = 'LISTS_NEW_ELEMENT';
        public const CONTENT_TYPE_ID = 'LISTS_NEW_ELEMENT';
        public static function getId() : string
        {
        }
        public function getEventId()
        {
        }
        public function getType()
        {
        }
        public function getCommentProvider()
        {
        }
        public function initSourceFields()
        {
        }
        public function getPinnedTitle()
        {
        }
        public function getPinnedDescription()
        {
        }
        public function getLiveFeedUrl() : string
        {
        }
    }
    final class ForumPost extends \Bitrix\Socialnetwork\Livefeed\Provider
    {
        const PROVIDER_ID = 'FORUM_POST';
        const CONTENT_TYPE_ID = 'FORUM_POST';
        public static function getId()
        {
        }
        public function getEventId()
        {
        }
        public function getType()
        {
        }
        public function initSourceFields()
        {
        }
        protected function getAttachedDiskObjects($clone = false)
        {
        }
        public static function canRead($params)
        {
        }
        protected function getPermissions(array $post)
        {
        }
        public function getLiveFeedUrl()
        {
        }
        public function getSuffix()
        {
        }
        public function add($params = array())
        {
        }
        private static function getForumId($params = array())
        {
        }
        private function getCommentEventId()
        {
        }
        private function getModuleId()
        {
        }
        private function getFeedParams()
        {
        }
        public function getAdditionalData($params = array())
        {
        }
    }
    final class BlogComment extends \Bitrix\Socialnetwork\Livefeed\Provider
    {
        const PROVIDER_ID = 'BLOG_COMMENT';
        const CONTENT_TYPE_ID = 'BLOG_COMMENT';
        public static function getId()
        {
        }
        public function getEventId()
        {
        }
        public function getType()
        {
        }
        public function initSourceFields()
        {
        }
        protected function getAttachedDiskObjects($clone = false)
        {
        }
        public function getLiveFeedUrl()
        {
        }
        public function getSuffix()
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Livefeed\RenderParts {
    abstract class Base
    {
        protected $options = array();
        public function __construct(array $options = array())
        {
        }
        public function getOptions()
        {
        }
        protected function getMetaResult()
        {
        }
        public function getBBCodeText()
        {
        }
    }
    final class User extends \Bitrix\Socialnetwork\Livefeed\RenderParts\Base
    {
        public function getData($entityId = 0)
        {
        }
    }
    final class Department extends \Bitrix\Socialnetwork\Livefeed\RenderParts\Base
    {
        public function getData($entityId = 0)
        {
        }
    }
    final class SonetGroup extends \Bitrix\Socialnetwork\Livefeed\RenderParts\Base
    {
        public function getData($entityId = 0)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Livefeed {
    final class RatingVoteList extends \Bitrix\Socialnetwork\Livefeed\Provider
    {
        const PROVIDER_ID = 'RATING_LIST';
        const CONTENT_TYPE_ID = 'RATING_LIST';
        public static function getId()
        {
        }
        public function getEventId()
        {
        }
        public function getType()
        {
        }
        public function setContentView($params = array())
        {
        }
    }
    final class LogEvent extends \Bitrix\Socialnetwork\Livefeed\Provider
    {
        public const PROVIDER_ID = 'SONET_LOG';
        public const CONTENT_TYPE_ID = 'LOG_ENTRY';
        public static function getId() : string
        {
        }
        public function getEventId()
        {
        }
        public function getType()
        {
        }
        public static function canRead($params) : bool
        {
        }
        protected function getPermissions(array $post) : string
        {
        }
        public function getCommentProvider()
        {
        }
        public function initSourceFields()
        {
        }
        public function getPinnedTitle() : string
        {
        }
        public function getPinnedDescription()
        {
        }
        public function getLiveFeedUrl() : string
        {
        }
        public function getSuffix()
        {
        }
    }
    final class ForumTopic extends \Bitrix\Socialnetwork\Livefeed\Provider
    {
        const PROVIDER_ID = 'FORUM_TOPIC';
        const CONTENT_TYPE_ID = 'FORUM_TOPIC';
        public static function getId()
        {
        }
        public function getEventId()
        {
        }
        public function getType()
        {
        }
        public final function setEntityId($topicId)
        {
        }
        public function getCommentProvider()
        {
        }
        public function initSourceFields()
        {
        }
        protected function getAttachedDiskObjects($clone = false)
        {
        }
        public static function canRead($params)
        {
        }
        protected function getPermissions(array $post)
        {
        }
        public function getLiveFeedUrl()
        {
        }
        public function getAdditionalData($params = array())
        {
        }
    }
    class IntranetNewUser extends \Bitrix\Socialnetwork\Livefeed\Provider
    {
        public const PROVIDER_ID = 'INTRANET_NEW_USER';
        public const CONTENT_TYPE_ID = 'INTRANET_NEW_USER';
        public static function getId() : string
        {
        }
        public function getEventId()
        {
        }
        public function getType()
        {
        }
        public function getCommentProvider()
        {
        }
        public function initSourceFields()
        {
        }
        public function getPinnedTitle() : string
        {
        }
        public function getPinnedDescription()
        {
        }
        public static function canRead($params) : bool
        {
        }
        protected function getPermissions(array $post) : string
        {
        }
        public function getLiveFeedUrl() : string
        {
        }
    }
    final class Bitrix24NewUser extends \Bitrix\Socialnetwork\Livefeed\IntranetNewUser
    {
        const PROVIDER_ID = 'BITRIX24_NEW_USER';
        const CONTENT_TYPE_ID = 'BITRIX24_NEW_USER';
        public function getEventId()
        {
        }
        public function initSourceFields()
        {
        }
    }
    final class PhotogalleryAlbum extends \Bitrix\Socialnetwork\Livefeed\Provider
    {
        public const PROVIDER_ID = 'PHOTO_ALBUM';
        public const CONTENT_TYPE_ID = 'PHOTO_ALBUM';
        public static function getId() : string
        {
        }
        public function getEventId()
        {
        }
        public function getType()
        {
        }
        public function getCommentProvider()
        {
        }
        public function initSourceFields()
        {
        }
        public function getPinnedTitle()
        {
        }
        public function getPinnedDescription()
        {
        }
        public static function canRead($params) : bool
        {
        }
        protected function getPermissions(array $post) : string
        {
        }
        public function getLiveFeedUrl()
        {
        }
    }
    final class CalendarEvent extends \Bitrix\Socialnetwork\Livefeed\Provider
    {
        public const PROVIDER_ID = 'CALENDAR';
        public const CONTENT_TYPE_ID = 'CALENDAR_EVENT';
        public static function getId() : string
        {
        }
        public function getEventId()
        {
        }
        public function getType()
        {
        }
        public static function canRead($params) : bool
        {
        }
        protected function getPermissions(array $post) : string
        {
        }
        public function getCommentProvider()
        {
        }
        public function initSourceFields()
        {
        }
        public function getPinnedTitle() : string
        {
        }
        public function getLiveFeedUrl() : string
        {
        }
    }
    final class TimemanEntry extends \Bitrix\Socialnetwork\Livefeed\Provider
    {
        const PROVIDER_ID = 'TIMEMAN_ENTRY';
        const CONTENT_TYPE_ID = 'TIMEMAN_ENTRY';
        public static function getId() : string
        {
        }
        public function getEventId()
        {
        }
        public function getType()
        {
        }
        public function getCommentProvider()
        {
        }
        public function initSourceFields()
        {
        }
        public function getPinnedDescription()
        {
        }
        public static function canRead($params) : bool
        {
        }
        protected function getPermissions(array $post) : string
        {
        }
        public function getLiveFeedUrl() : string
        {
        }
    }
    final class PhotogalleryPhoto extends \Bitrix\Socialnetwork\Livefeed\Provider
    {
        public const PROVIDER_ID = 'PHOTO_PHOTO';
        public const CONTENT_TYPE_ID = 'PHOTO_PHOTO';
        public static function getId() : string
        {
        }
        public function getEventId()
        {
        }
        public function getType()
        {
        }
        public function getCommentProvider()
        {
        }
        public function initSourceFields()
        {
        }
        public function getPinnedTitle()
        {
        }
        public function getPinnedDescription()
        {
        }
        public static function canRead($params)
        {
        }
        protected function getPermissions(array $post)
        {
        }
        public function getLiveFeedUrl()
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Ui\Preview {
    class Post
    {
        /**
         * Returns HTML code for blog post preview.
         * @param array $params Expected keys: postId, userId.
         * @return string
         */
        public static function buildPreview(array $params)
        {
        }
        /**
         * Returns attach to display in the messenger.
         * @param array $params Expected keys: postId, userId
         * @return \CIMMessageParamAttach | false
         */
        public static function getImAttach(array $params)
        {
        }
        /**
         * Returns true if current user has read access to the blog post.
         * @param array $params Allowed keys: postId, userId.
         * @param int $userId Current user's id.
         * @return bool
         */
        public static function checkUserReadAccess(array $params, $userId)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Update {
    final class WorkgroupIndex extends \Bitrix\Main\Update\Stepper
    {
        protected static $moduleId = "socialnetwork";
        public function execute(array &$result)
        {
        }
    }
    final class WorkgroupDeptSync extends \Bitrix\Main\Update\Stepper
    {
        const STEP_SIZE = 5;
        protected static $moduleId = "socialnetwork";
        static final function getUsers($workgroupId)
        {
        }
        static final function getCount()
        {
        }
        public function execute(array &$result)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Integration\UI\EntitySelector {
    class UserProvider extends \Bitrix\UI\EntitySelector\BaseProvider
    {
        private const EXTRANET_ROLES = [\Bitrix\Socialnetwork\UserToGroupTable::ROLE_USER, \Bitrix\Socialnetwork\UserToGroupTable::ROLE_OWNER, \Bitrix\Socialnetwork\UserToGroupTable::ROLE_MODERATOR, \Bitrix\Socialnetwork\UserToGroupTable::ROLE_REQUEST];
        public function __construct(array $options = [])
        {
        }
        public function isAvailable() : bool
        {
        }
        public function getItems(array $ids) : array
        {
        }
        public function getSelectedItems(array $ids) : array
        {
        }
        public function fillDialog(\Bitrix\UI\EntitySelector\Dialog $dialog) : void
        {
        }
        private function fillRecentUsers(\Bitrix\Main\EO_User_Collection $recentUsers, array $recentIds, \Bitrix\Main\EO_User_Collection $preloadedUsers) : void
        {
        }
        public function doSearch(\Bitrix\UI\EntitySelector\SearchQuery $searchQuery, \Bitrix\UI\EntitySelector\Dialog $dialog) : void
        {
        }
        public function handleBeforeItemSave(\Bitrix\UI\EntitySelector\Item $item) : void
        {
        }
        public function getUserCollection(array $options = []) : \Bitrix\Main\EO_User_Collection
        {
        }
        public function getUserItems(array $options = []) : array
        {
        }
        public function makeUserItems(\Bitrix\Main\EO_User_Collection $users, array $options = []) : array
        {
        }
        public static function isIntranetUser(int $userId = null) : bool
        {
        }
        public static function isExtranetUser(int $userId = null) : bool
        {
        }
        public static function isIntegrator(int $userId = null) : bool
        {
        }
        public static function getUsers(array $options = []) : \Bitrix\Main\EO_User_Collection
        {
        }
        private static function getExtranetUsersQuery(int $currentUserId) : ?\Bitrix\Main\Entity\Query
        {
        }
        public static function getUser(int $userId, array $options = []) : ?\Bitrix\Main\EO_User
        {
        }
        public static function makeItems(\Bitrix\Main\EO_User_Collection $users, array $options = []) : array
        {
        }
        public static function makeItem(\Bitrix\Main\EO_User $user, array $options = []) : \Bitrix\UI\EntitySelector\Item
        {
        }
        public static function getUserType(\Bitrix\Main\EO_User $user) : string
        {
        }
        public static function formatUserName(\Bitrix\Main\EO_User $user, array $options = []) : string
        {
        }
        public static function makeUserAvatar(\Bitrix\Main\EO_User $user) : ?string
        {
        }
        public static function getUserUrl(?int $userId = null) : string
        {
        }
        public static function getExtranetUserUrl(?int $userId = null) : string
        {
        }
        public static function getIntranetUserUrl(?int $userId = null) : string
        {
        }
    }
    class MetaUserProvider extends \Bitrix\UI\EntitySelector\BaseProvider
    {
        public function __construct(array $options = [])
        {
        }
        public function isAvailable() : bool
        {
        }
        public function fillDialog(\Bitrix\UI\EntitySelector\Dialog $dialog) : void
        {
        }
        public function getItems(array $ids) : array
        {
        }
        public function getSelectedItems(array $ids) : array
        {
        }
        public static function canViewAllUsers() : bool
        {
        }
        public static function getMetaUsers(array $ids, $options = []) : array
        {
        }
        public static function getAllUsersItem(array $options = []) : \Bitrix\UI\EntitySelector\Item
        {
        }
    }
    class ProjectProvider extends \Bitrix\UI\EntitySelector\BaseProvider
    {
        public function __construct(array $options = [])
        {
        }
        public function isAvailable() : bool
        {
        }
        public function getItems(array $ids) : array
        {
        }
        public function getSelectedItems(array $ids) : array
        {
        }
        public function fillDialog(\Bitrix\UI\EntitySelector\Dialog $dialog) : void
        {
        }
        public function doSearch(\Bitrix\UI\EntitySelector\SearchQuery $searchQuery, \Bitrix\UI\EntitySelector\Dialog $dialog) : void
        {
        }
        public function getProjectCollection(array $options = []) : \Bitrix\Socialnetwork\EO_Workgroup_Collection
        {
        }
        public function getProjectItems(array $options = []) : array
        {
        }
        public function makeProjectItems(\Bitrix\Socialnetwork\EO_Workgroup_Collection $projects, array $options = []) : array
        {
        }
        public static function getProjects(array $options = []) : \Bitrix\Socialnetwork\EO_Workgroup_Collection
        {
        }
        public static function filterByFeatures(\Bitrix\Socialnetwork\EO_Workgroup_Collection $projects, array $features, int $userId, string $siteId)
        {
        }
        public static function makeItems(\Bitrix\Socialnetwork\EO_Workgroup_Collection $projects, $options = [])
        {
        }
        /**
         * @param EO_Workgroup $project
         * @param array $options
         *
         * @return Item
         */
        public static function makeItem(\Bitrix\Socialnetwork\EO_Workgroup $project, $options = []) : \Bitrix\UI\EntitySelector\Item
        {
        }
        public static function makeUserAvatar(\Bitrix\Socialnetwork\EO_Workgroup $project) : ?string
        {
        }
        public static function getProjectUrl(?int $projectId = null, ?int $currentUserId = null) : string
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Integration\Landing {
    class Livefeed extends \Bitrix\Landing\Source\DataLoader
    {
        /**
         * @return void
         */
        public function __construct()
        {
        }
        /**
         * @return array
         */
        private static function getOrderFields()
        {
        }
        /**
         * @param Main\Event $event
         * @return Main\EventResult
         */
        public static function onBuildSourceListHandler(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @return array
         */
        private function getRightsFilter()
        {
        }
        /**
         * @return array
         */
        private function getAuthorFilter()
        {
        }
        /**
         * @return array
         */
        public function getElementListData()
        {
        }
        /**
         * @param mixed $element
         * @return array
         */
        public function getElementData($element)
        {
        }
        /**
         * @param array $settings
         * @return array
         */
        private function getElementsInternal(array $settings)
        {
        }
        /**
         * @param string $code Log right code
         * @return void
         */
        public static function onSocNetLogRightsAddHandler($code)
        {
        }
        /**
         * @param mixed $filter
         * @return array
         */
        public function normalizeFilter($filter)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Integration\Tasks {
    class Task
    {
        public static function onTaskUpdateViewed(\Bitrix\Main\Event $event)
        {
        }
        public static function onTaskUserOptionChanged(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Integration\Calendar {
    class ApiVersion
    {
        public static function isEventEditFormAvailable()
        {
        }
        public static function getAddEventInLivefeedJs()
        {
        }
    }
    class CalendarEvent
    {
        public static function onViewEvent(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Integration\Pull {
    class Counter
    {
        const TYPE_LIVEFEED = 'livefeed';
        const MODULE_ID = 'socialnetwork';
        public static function onGetMobileCounterTypes(\Bitrix\Main\Event $event)
        {
        }
        public static function onGetMobileCounter(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Integration\Forum {
    class TaskComment
    {
        protected static $viewedCommentsCache = [];
        private static function addViewedComment($params = [])
        {
        }
        public static function getViewedCommentsTasksList()
        {
        }
        public static function onViewed(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Integration\Mobile {
    class LogEntry
    {
        public static function onSetContentView(\Bitrix\Main\Event $event)
        {
        }
        public static function onGetContentId(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Integration\Im\Chat {
    class Workgroup
    {
        const CHAT_ENTITY_TYPE = "SONET_GROUP";
        private static $staticCache = array();
        public static function getUseChat()
        {
        }
        public static function getChatData($params)
        {
        }
        public static function getGroupChatAvailable($groupId = false)
        {
        }
        public static function createChat($params)
        {
        }
        public static function buildChatName($groupName, $params = array())
        {
        }
        public static function setChatManagers($params)
        {
        }
        public static function unlinkChat($params)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Integration\Main\UIFilter {
    class Workgroup
    {
        public static function getFilterPresetList($params)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Integration\Main {
    class RatingVote
    {
        public static function onGetRatingContentOwner($params)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Integration\Main\UISelector {
    class Projects extends \Bitrix\Main\UI\Selector\EntityBase
    {
        public function getData($params = array())
        {
        }
        public function getTabList($params = array())
        {
        }
        public function getItemName($itemCode = '')
        {
        }
    }
    class Handler
    {
        const ENTITY_TYPE_GROUPS = 'GROUPS';
        const ENTITY_TYPE_USERS = 'USERS';
        const ENTITY_TYPE_EMAILUSERS = 'EMAILUSERS';
        const ENTITY_TYPE_CRMEMAILUSERS = 'CRMEMAILUSERS';
        const ENTITY_TYPE_SONETGROUPS = 'SONETGROUPS';
        const ENTITY_TYPE_PROJECTS = 'PROJECTS';
        public static function isExtranetUser()
        {
        }
        public static function getNameTemplate($requestFields = array())
        {
        }
        public static function OnUISelectorActionProcessAjax(\Bitrix\Main\Event $event)
        {
        }
        public static function OnUISelectorEntitiesGetList(\Bitrix\Main\Event $event)
        {
        }
        public static function OnUISelectorGetProviderByEntityType(\Bitrix\Main\Event $event)
        {
        }
    }
    class EmailUsers extends \Bitrix\Main\UI\Selector\EntityBase
    {
        public function getData($params = array())
        {
        }
        public function getTabList($params = array())
        {
        }
        public function getItemName($itemCode = '')
        {
        }
    }
    class Entities
    {
        const EXTRANET_CONTEXT_EXTERNAL = 'E';
        const EXTRANET_CONTEXT_INTERNAL = 'I';
        public static function getData($options = array())
        {
        }
        public static function getList($params = array())
        {
        }
        protected static function getUsers($params = array())
        {
        }
        protected static function getSonetgroups($params = array())
        {
        }
        protected static function getDepartments($params = array())
        {
        }
        public static function getDepartmentData($requestFields = array())
        {
        }
    }
    class Search
    {
        protected static function actionProcessAjaxGetDepartmentData($requestFields = array())
        {
        }
        public static function searchNetworkUsers($params = array())
        {
        }
        public static function searchUsers($params = array(), &$searchModified)
        {
        }
        protected static function searchSonetGroups($params = array())
        {
        }
        protected static function searchCrmEmails($params = array(), &$usersList)
        {
        }
        protected static function searchCrmEntities($params = array(), &$usersList)
        {
        }
        protected static function filterCrmSearchResult($searchResult, &$usersList)
        {
        }
        protected static function searchCrmContacts($params = array())
        {
        }
        protected static function searchCrmCompanies($params = array())
        {
        }
        protected static function searchCrmLeads($params = array())
        {
        }
        protected static function searchCrmDeals($params = array())
        {
        }
        public static function process($requestFields = array())
        {
        }
    }
    class Users extends \Bitrix\Main\UI\Selector\EntityBase
    {
        public static function getNameTemplate($requestNameTemplate = '')
        {
        }
        public function getData($params = array())
        {
        }
        public function search($params = array())
        {
        }
        public function loadAll()
        {
        }
        public function getItemName($itemCode = '')
        {
        }
        public static function getUserName($itemCode = '')
        {
        }
    }
    class SonetGroups extends \Bitrix\Main\UI\Selector\EntityBase
    {
        public static function getFeatureOperations($feature = false)
        {
        }
        public function getData($params = array())
        {
        }
        public function getTabList($params = array())
        {
        }
        public function search($params = array())
        {
        }
        public function getItemName($itemCode = '')
        {
        }
        public static function getWorkgroupName($itemCode = '')
        {
        }
    }
    class CrmEmailUsers extends \Bitrix\Main\UI\Selector\EntityBase
    {
        public function getData($params = array())
        {
        }
        public function getTabList($params = array())
        {
        }
        public function search($params = array())
        {
        }
        public function getItemName($itemCode = '')
        {
        }
    }
    class Groups extends \Bitrix\Main\UI\Selector\EntityBase
    {
        public function getData($params = array())
        {
        }
        public function getItemName($itemCode = '')
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Integration\Main {
    class RatingVoteList
    {
        public static function onViewed(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Integration\Bitrix24 {
    class Bitrix24Event
    {
        public static function OnManualModuleAddDelete(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Integration\Intranet\Absence {
    class User
    {
        public static function getVacationList()
        {
        }
        public static function getDayVacationList($params = array())
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Integration\Intranet\Structure {
    class Employee
    {
        public static function onEmployeeDepartmentsChanged(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Socialnetwork {
    class User
    {
        static $moduleAdminListCache = array();
        public static function getModuleAdminList($siteIdList)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Component\LogList {
    class Gratitude
    {
        protected $component;
        public function __construct($params)
        {
        }
        public static function getGratitudesIblockData(array $params = [])
        {
        }
        public static function getGratitudesIblockId()
        {
        }
        public static function getGratitudesBlogData(array $params = [])
        {
        }
        /**
         * Prepares filter for the gratUserId gratitudes list
         *
         * @param array $result component result.
         * @return void
         */
        public function prepareGratPostFilter(&$result)
        {
        }
    }
    class Param
    {
        protected $component;
        protected $request;
        public function __construct($params)
        {
        }
        public function getRequest()
        {
        }
        public function getComponent()
        {
        }
        public function prepareDateFilterParams(&$componentParams)
        {
        }
        public function prepareRatingParams(&$componentParams)
        {
        }
        public function prepareRequestVarParams(&$componentParams)
        {
        }
        public function prepareRequestParams(&$componentParams)
        {
        }
        public function prepareCommentsParams(&$componentParams)
        {
        }
        public function prepareDestinationParams(&$componentParams)
        {
        }
        public function prepareCommentPropertyParams(&$componentParams)
        {
        }
        public function prepareDateTimeFormatParams(&$componentParams)
        {
        }
        public function prepareCounterParams(&$componentParams)
        {
        }
        public function preparePageParams(&$componentParams)
        {
        }
        public function prepareParentParams(&$componentParams)
        {
        }
        public function prepareParent2Params(&$componentParams)
        {
        }
        public function preparePageTitleParams(&$componentParams)
        {
        }
        public function prepareBehaviourParams(&$componentParams)
        {
        }
        public function processPresetFilterParams(&$componentParams)
        {
        }
        public function prepareFollowParams(&$componentParams)
        {
        }
        public function prepareModeParams(&$componentParams)
        {
        }
        public function prepareAvatarParams(&$componentParams)
        {
        }
        public function prepareNameTemplateParams(&$componentParams)
        {
        }
    }
    class Counter
    {
        protected $component;
        protected $processorInstance;
        protected $request;
        protected $emptyCounter = false;
        public function __construct($params)
        {
        }
        public function getRequest()
        {
        }
        protected function getComponent()
        {
        }
        protected function getProcessorInstance()
        {
        }
        public function setEmptyCounter($value = false)
        {
        }
        public function getEmptyCounter()
        {
        }
        public function processCounterTypeData(&$result)
        {
        }
        public function clearLogCounter(&$result)
        {
        }
        public function setLogCounter(&$result)
        {
        }
    }
    class FilterHandler
    {
        private $filterItems = null;
        public function __construct($params)
        {
        }
        public function OnBeforeSonetLogFilterFill(&$pageParamsToClear, &$itemsTop, &$items)
        {
        }
    }
    class Path
    {
        protected $folderUsers = '';
        protected $folderWorkgroups = '';
        protected $pathToUserBlogPost = '';
        protected $pathToLogEntry = '';
        protected $pathToMessagesChat = '';
        protected $pathToVideoCall = '';
        protected $pathToSmile = '';
        public function __construct($params)
        {
        }
        public function getRequest()
        {
        }
        public function getComponent()
        {
        }
        public function setFolderUsersValue($value = '')
        {
        }
        public function getFolderUsersValue()
        {
        }
        public function setFolderWorkgroupsValue($value = '')
        {
        }
        public function getFolderWorkgroupsValue()
        {
        }
        public function preparePathParams(&$componentParams)
        {
        }
        public function setPaths(&$params)
        {
        }
    }
    class Processor
    {
        protected $component;
        protected $request;
        protected $logPageProcessorInstance = null;
        protected $filter = [];
        protected $order = ['LOG_DATE' => 'DESC'];
        protected $select = [];
        protected $listParams = [];
        protected $filterData = false;
        protected $filterContent = false;
        protected $navParams = false;
        protected $firstPage = false;
        protected $eventsList = [];
        protected $tasksCount = 0;
        protected $showPinnedPanel = true;
        public function __construct($params)
        {
        }
        public function getRequest()
        {
        }
        protected function getComponent()
        {
        }
        protected function getLogPageProcessorInstance()
        {
        }
        public function setFilter(array $value = [])
        {
        }
        public function getFilter()
        {
        }
        public function setFilterKey($key = '', $value = false)
        {
        }
        public function unsetFilterKey($key = '')
        {
        }
        public function getFilterKey($key = '')
        {
        }
        public function setFilterData(array $value = [])
        {
        }
        public function getFilterData()
        {
        }
        public function getFilterDataKey($key = '')
        {
        }
        public function setFilterContent($value = false)
        {
        }
        public function getFilterContent()
        {
        }
        public function setNavParams($value = false)
        {
        }
        public function getNavParams()
        {
        }
        public function setFirstPage($value = false)
        {
        }
        public function getFirstPage()
        {
        }
        public function setOrder(array $value = [])
        {
        }
        public function setOrderKey($key = '', $value = false)
        {
        }
        public function getOrder()
        {
        }
        public function getOrderKey($key = '')
        {
        }
        public function setListParams(array $value = [])
        {
        }
        public function setListParamsKey($key = '', $value = false)
        {
        }
        public function getListParams()
        {
        }
        public function getListParamsKey($key = '')
        {
        }
        public function setEventsList(array $value = [], $type = 'main')
        {
        }
        public function setEventsListKey($key = '', array $value = [], $type = 'main')
        {
        }
        public function appendEventsList(array $value = [], $type = 'main')
        {
        }
        public function unsetEventsListKey($key = '', $type = 'main')
        {
        }
        public function getEventsList($type = 'main')
        {
        }
        public function incrementTasksCount()
        {
        }
        public function getTasksCount()
        {
        }
        public function setSelect($value = [])
        {
        }
        public function getSelect()
        {
        }
        public function makeTimeStampFromDateTime($value, $type = 'FULL')
        {
        }
        public function prepareContextData(&$result)
        {
        }
        public function processFilterData(&$result)
        {
        }
        protected function processMainUIFilterData(&$result)
        {
        }
        public function processNavData(&$result)
        {
        }
        public function processOrderData()
        {
        }
        public function processLastTimestamp(&$result)
        {
        }
        public function processListParams(&$result)
        {
        }
        public function setListFilter(array $componentResult = [])
        {
        }
        public function processSelectData(&$result)
        {
        }
        public function processDiskUFEntities()
        {
        }
        public function processCrmActivities($result)
        {
        }
        public function processNextPageSize(&$result)
        {
        }
        public function processContentList(&$result)
        {
        }
        public function processEventsList(&$result, $type = 'main')
        {
        }
        public function processFavoritesData($result)
        {
        }
        public function getMicroblogUserId(&$result)
        {
        }
        public function getSmiles(&$result)
        {
        }
        public function getExpertModeValue(&$result)
        {
        }
    }
    class ParamPhotogallery
    {
        protected $component;
        public function __construct($params)
        {
        }
        public function getComponent()
        {
        }
        public function preparePhotogalleryParams(&$componentParams)
        {
        }
        public function prepareParentPhotogalleryParams(&$componentParams)
        {
        }
    }
    class Util
    {
        public static function checkEmptyParamInteger(&$params, $paramName, $defaultValue)
        {
        }
        public static function checkEmptyParamString(&$params, $paramName, $defaultValue)
        {
        }
        public static function getRequest()
        {
        }
        public static function checkUserAuthorized()
        {
        }
    }
    class Page
    {
        protected $component;
        protected $processorInstance;
        protected $request;
        protected $needSetLogPage = false;
        protected $dateLastPageStart = null;
        protected $lastPageData = null;
        protected $prevPageLogIdList = [];
        protected $dateFirstPageTS = 0;
        public function __construct($params)
        {
        }
        public function getRequest()
        {
        }
        protected function getComponent()
        {
        }
        protected function getProcessorInstance()
        {
        }
        public function setNeedSetLogPage($value = false)
        {
        }
        public function getNeedSetLogPage()
        {
        }
        public function setDateLastPageStart($value = null)
        {
        }
        public function getDateLastPageStart()
        {
        }
        public function setLastPageData($value = null)
        {
        }
        public function getLastPageData()
        {
        }
        public function setPrevPageLogIdList($value = [])
        {
        }
        public function getPrevPageLogIdList()
        {
        }
        public function setDateFirstPageTimestamp($value = 0)
        {
        }
        public function getDateFirstPageTimestamp()
        {
        }
        public function preparePrevPageLogId()
        {
        }
        public function getLogPageData(&$result)
        {
        }
        public function setLogPageData(&$result)
        {
        }
        public function deleteLogPageData($result)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Controller {
    class Base extends \Bitrix\Main\Engine\Controller
    {
        protected function getDefaultPreFilters()
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Controller\Livefeed {
    class LogEntry extends \Bitrix\Socialnetwork\Controller\Base
    {
        public function getHiddenDestinationsAction(array $params = [])
        {
        }
        public function pinAction(array $params = [])
        {
        }
        public function unpinAction(array $params = [])
        {
        }
        public function getPinDataAction(array $params = [])
        {
        }
    }
    class BlogPost extends \Bitrix\Socialnetwork\Controller\Base
    {
        public function getDataAction(array $params = [])
        {
        }
        public function shareAction(array $params = [])
        {
        }
        public function addAction(array $params = [])
        {
        }
        public function updateAction($id = 0, array $params = [])
        {
        }
    }
    class Comment extends \Bitrix\Socialnetwork\Controller\Base
    {
        public function getSourceAction(array $params = [])
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Controller\Livefeed\BlogPost {
    class Important extends \Bitrix\Socialnetwork\Controller\Base
    {
        public function getUsersAction(array $params = [])
        {
        }
        public function voteAction(array $params = [])
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Controller {
    class ContentView extends \Bitrix\Socialnetwork\Controller\Base
    {
        public function configureActions()
        {
        }
        public function setAction(array $params = [])
        {
        }
        public function getListAction(array $params = [])
        {
        }
    }
    class UserToGroup extends \Bitrix\Socialnetwork\Controller\Base
    {
        public function joinAction(array $params = [])
        {
        }
    }
    class Livefeed extends \Bitrix\Main\Engine\Controller
    {
        public function deleteEntryAction($logId = 0)
        {
        }
        public function getRawEntryDataAction(array $params = [])
        {
        }
        public function createTaskCommentAction(array $params = [])
        {
        }
        public function changeFavoritesAction($logId, $value)
        {
        }
        public function changeFollowAction($logId, $value)
        {
        }
        public function changeFollowDefaultAction($value)
        {
        }
        public function changeExpertModeAction($value)
        {
        }
        public function readNoTasksNotificationAction()
        {
        }
        public function mobileLogErrorAction($message, $url, $lineNumber)
        {
        }
        public function mobileGetDetailAction($logId)
        {
        }
        public static function isAdmin()
        {
        }
        private function getComponentReturnWhiteList()
        {
        }
        public function getNextPageAction(array $params = [])
        {
        }
        public function refreshAction(array $params = [])
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Controller\User {
    class StressLevel extends \Bitrix\Socialnetwork\Controller\Base
    {
        private function isCurrentUserAdmin()
        {
        }
        public function addAction(array $fields = [])
        {
        }
        public function getAction(array $fields = [])
        {
        }
        public function getAccess(array $fields = [])
        {
        }
        public function setAccess(array $fields = [])
        {
        }
        public function getAccessAction(array $fields = [])
        {
        }
        public function setAccessAction(array $fields = [])
        {
        }
        public function getValueDescriptionAction($type = '', $value = false)
        {
        }
        private function getDisclaimer(array $fields = [])
        {
        }
        public function setDisclaimerAction()
        {
        }
        public function getDisclaimerAction()
        {
        }
    }
}
namespace Bitrix\SocialNetwork\Controller {
    class VideoRecorder extends \Bitrix\Main\Engine\Controller
    {
        public function onStopRecordAction()
        {
        }
        public function onSaveAction()
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Internals {
    /**
     * Class for incoming mail event handlers
     *
     * Class MailHandler
     * @package Bitrix\Socialnetwork\Internals
     */
    final class MailHandler
    {
        /**
         * Adds new comment from mail
         *
         * @param \Bitrix\Main\Event $event Event.
         * @return int|false
         */
        public static function handleReplyReceivedLogEntry(\Bitrix\Main\Event $event)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Item {
    class Subscription
    {
        public static function onContentViewed(array $params)
        {
        }
    }
    class UserTag
    {
        public static function getTagData($params)
        {
        }
        public static function getUserData($params)
        {
        }
    }
    class UserToGroup
    {
        const CHAT_ACTION_IN = 'in';
        const CHAT_ACTION_OUT = 'out';
        public static function addRelationAutoMembership($params)
        {
        }
        public static function changeRelationAutoMembership($params)
        {
        }
        private static function notifyAutoMembership($params)
        {
        }
        public static function onAfterUserAdd(&$fields)
        {
        }
        public static function onAfterUserUpdate(&$userFields)
        {
        }
        public static function getConnectedGroups($departmentList)
        {
        }
        private static function checkUF()
        {
        }
        public static function addInfoToChat($params = array())
        {
        }
        private static function getChatActionList()
        {
        }
        public static function addModerators($params = array())
        {
        }
    }
    class LogComment
    {
        private $fields;
        public static function getById($logCommentId = 0)
        {
        }
        public function setFields($fields = array())
        {
        }
        public function getFields()
        {
        }
    }
    class LogRight
    {
        public static function get(int $logId = 0)
        {
        }
        public static function OnAfterLogUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
    class UserContentView
    {
        public static function getAvailability()
        {
        }
        public static function getViewData($params = array())
        {
        }
        public static function getUserList($params = array())
        {
        }
        public static function deleteNoDemand($userId = 0)
        {
        }
        public static function finalize($params = [])
        {
        }
    }
    class WorkgroupFavorites
    {
        /**
         * Adds/deletes a worgroup GROUP_ID to/from a favorites list of a user USER_ID
         * @param array $params
         * @return bool
         * @throws \Exception
         */
        public static function set($params)
        {
        }
        /**
         * Deletes a worgroup GROUP_ID from a favorites list of a user USER_ID
         * @param array $params
         * @return bool
         */
        public static function delete($params)
        {
        }
    }
    class LogIndex
    {
        public static function getUserName($userId = 0)
        {
        }
        public static function getEntitiesName($entityCodesList = array())
        {
        }
        public static function getDiskUFFileNameList($valueList = array())
        {
        }
        public static function setIndex($params = array())
        {
        }
        public static function deleteIndex($params = array())
        {
        }
        public static function prepareToken($str)
        {
        }
        public static function OnAfterLogUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
    class WorkgroupSubject
    {
        public static function syncSiteId($params = array())
        {
        }
    }
    class Workgroup
    {
        const UF_ENTITY_ID = "SONET_GROUP";
        private $fields;
        static $groupsIdToCheckList = array();
        public function __construct()
        {
        }
        public static function getById($groupId = 0, $useCache = true)
        {
        }
        public function setFields($fields = array())
        {
        }
        public function getFields()
        {
        }
        public function isProject()
        {
        }
        public function isScrumProject() : bool
        {
        }
        public function getDefaultSprintDuration() : int
        {
        }
        public function getScrumMaster() : int
        {
        }
        public static function getListSprintDuration() : array
        {
        }
        private static function getSubDepartments($departmentList = array())
        {
        }
        public function syncDeptConnection($exclude = false)
        {
        }
        public function getGroupUrlData($params = array())
        {
        }
        public static function onBeforeIBlockSectionUpdate($section)
        {
        }
        public static function onAfterIBlockSectionUpdate($section)
        {
        }
        public static function onBeforeIBlockSectionDelete($sectionId)
        {
        }
        function onAfterIBlockSectionDelete($section)
        {
        }
        private static function disconnectSection($sectionId)
        {
        }
        public static function getTypes($params = array())
        {
        }
        public static function getTypeCodeByParams($params)
        {
        }
        public static function getTypeByCode($params = array())
        {
        }
        private static function getGroupContent($params = array())
        {
        }
        public static function setIndex($params = array())
        {
        }
        public static function getContentFieldsList()
        {
        }
        public static function prepareToken($str)
        {
        }
        public static function getInitiatePermOptionsList($params = array())
        {
        }
        public static function getEditFeaturesAvailability()
        {
        }
        /**
         * returns array of workgroups filtered by access permissions of a user, only for the current site
         * @param array $params
         * @return array
         */
        public static function getByFeatureOperation(array $params = []) : array
        {
        }
    }
    /**
     * Class for incoming mail event handlers
     *
     * Class MailHandler
     * @package Bitrix\Socialnetwork\Internals
     */
    class LogFollow
    {
        /**
         * check if all the log entry destinations-users with Smart Follow are subscribed on a log entry
         *
         * @param array $params
         * @return true|false
         */
        public static function checkDestinationsFollowStatus($params = array())
        {
        }
    }
    class Helper
    {
        public static function addBlogPost($params, $scope = \Bitrix\Main\Engine\Controller::SCOPE_AJAX)
        {
        }
        public static function updateBlogPost($params = [], $scope = \Bitrix\Main\Engine\Controller::SCOPE_AJAX)
        {
        }
        public static function getBlogPostPerm(array $params = [])
        {
        }
        public static function getBlogPostFields($postId)
        {
        }
    }
    /**
     * Class for content view event handlers
     *
     * Class ContentViewHandler
     * @package Bitrix\Socialnetwork\Item
     */
    final class ContentViewHandler
    {
        const CONTENT_TYPE_ID_COMMENT = 'LOG_COMMENT';
        static final function getContentTypeIdList()
        {
        }
        /**
         * Handles content view event, marking IM notifications as read
         *
         * @param \Bitrix\Main\Event $event Event.
         * @return int|false
         */
        public static function onContentViewed($viewParams)
        {
        }
    }
    class UserWelltory
    {
        public static function getAccess(array $fields = [])
        {
        }
        public static function setAccess(array $fields = [])
        {
        }
        public static function getHistoricData(array $fields = [])
        {
        }
        private static function getAccessOptionName()
        {
        }
    }
    class Log
    {
        private $fields;
        public static function getById($logId = 0)
        {
        }
        public function setFields($fields = array())
        {
        }
        public function getFields()
        {
        }
        public static function setLimitedView($params = array())
        {
        }
    }
    class LogSubscribe
    {
        public static function sendPush($params = array())
        {
        }
    }
}
namespace Bitrix\Socialnetwork {
    class Util
    {
        public static function getPermissionsByExternalAuthId($authId)
        {
        }
        public static function getSiteIdByLogId($logId)
        {
        }
        public static function notifyMail($fields)
        {
        }
        public static function getEqualityFields(&$fields)
        {
        }
        public static function processEqualityFieldsToInsert($fields1, &$insert)
        {
        }
        public static function processEqualityFieldsToUpdate($fields1, &$update)
        {
        }
        public static function detectTags($fieldList, $codeList = array())
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Copy {
    class UserToGroup extends \Bitrix\Main\Copy\EntityCopier
    {
        protected function setCopiedEntityId(\Bitrix\Main\Copy\Container $container, $copiedEntityId)
        {
        }
    }
    class GroupManager
    {
        private $executiveUserId;
        private $groupIdsToCopy = [];
        private $changedFields = [];
        /**
         * @var Feature[]
         */
        private $features = [];
        private $ufIgnoreList = [];
        private $projectTerm = [];
        private $markerUsers = true;
        private $result;
        private $mapIdsCopiedGroups = [];
        public function __construct($executiveUserId, array $groupIdsToCopy)
        {
        }
        /**
         * Writes feature implementer to the copy queue.
         *
         * @param Feature $feature Feature implementer.
         */
        public function setFeature(\Bitrix\Socialnetwork\Copy\Integration\Feature $feature)
        {
        }
        /**
         * To avoid copying specific fields, specify a list of fields to ignore.
         *
         * @param array $ufIgnoreList Ignore list.
         */
        public function setUfIgnoreList(array $ufIgnoreList) : void
        {
        }
        /**
         * Setting the start date of a project to update dates in entities.
         *
         * @param array $projectTerm ["project" => true, "start_point" => "", "end_point" => ""].
         */
        public function setProjectTerm(array $projectTerm)
        {
        }
        public function setMarkerUsers(bool $markerUsers) : void
        {
        }
        public function setChangedFields($changedFields)
        {
        }
        public function startCopy()
        {
        }
        /**
         * Returns the ids map of the copied groups.
         *
         * @return array
         */
        public function getMapIdsCopiedGroups() : array
        {
        }
        private function getContainerCollection()
        {
        }
        private function getGroupImplementer()
        {
        }
        private function getGroupCopier($groupImplementer)
        {
        }
        private function getUserToGroupImplementer()
        {
        }
        private function getUserToGroupCopier($userToGroupImplementer)
        {
        }
    }
}
namespace Bitrix\Socialnetwork\Copy\Implement {
    class UserGroupHelper
    {
        private $executiveUserId;
        private $moderatorsIds = [];
        public function __construct($executiveUserId, array $moderatorsIds)
        {
        }
        public function changeModerators($groupId)
        {
        }
        private function getCurrentModerators($groupId)
        {
        }
    }
    class Group extends \Bitrix\Main\Copy\CopyImplementer
    {
        const GROUP_COPY_ERROR = "GROUP_COPY_ERROR";
        protected $executiveUserId;
        private $changedFields = [];
        /**
         * @var Feature[]
         */
        private $features = [];
        private $projectTerm = [];
        /**
         * @var UserGroupHelper|null
         */
        private $userGroupHelper = null;
        public function __construct($executiveUserId)
        {
        }
        /**
         * Writes feature implementer to the copy queue.
         *
         * @param Feature $feature Feature implementer.
         */
        public function setFeature(\Bitrix\Socialnetwork\Copy\Integration\Feature $feature)
        {
        }
        /**
         * Setting the start date of a project to update dates in entities.
         *
         * @param array $projectTerm ["start_point" => "", "end_point" => ""].
         */
        public function setProjectTerm(array $projectTerm)
        {
        }
        public function setChangedFields($changedFields)
        {
        }
        /**
         * Record helper object to update the list of moderators when copying.
         *
         * @param UserGroupHelper $userGroupHelper Helper object.
         */
        public function setUserGroupHelper(\Bitrix\Socialnetwork\Copy\Implement\UserGroupHelper $userGroupHelper)
        {
        }
        public function add(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        public function getFields(\Bitrix\Main\Copy\Container $container, $entityId)
        {
        }
        public function prepareFieldsToCopy(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Starts copying children entities.
         *
         * @param Container $container
         * @param int $groupId Group id.
         * @param int $copiedGroupId Copied group id.
         * @return Result
         */
        public function copyChildren(\Bitrix\Main\Copy\Container $container, $groupId, $copiedGroupId)
        {
        }
        private function changeFields(array $fields)
        {
        }
        private function getFieldsProjectTerm($fields)
        {
        }
        private function getRecountFieldsProjectTerm($fields, $startPoint)
        {
        }
        private function prepareExtranetFields(array $fields)
        {
        }
        private function getSiteIds(int $groupId) : array
        {
        }
        private function isExtranetSite(array $siteIds) : bool
        {
        }
        private function copyFeatures(int $groupId, int $copiedGroupId) : void
        {
        }
    }
    class UserToGroup extends \Bitrix\Main\Copy\CopyImplementer
    {
        const GROUP_USER_COPY_ERROR = "GROUP_USER_COPY_ERROR";
        /**
         * @var UserGroupHelper|null
         */
        private $userGroupHelper = null;
        /**
         * Record helper object to update the list of moderators when copying.
         *
         * @param UserGroupHelper $userGroupHelper Helper object.
         */
        public function setUserGroupHelper(\Bitrix\Socialnetwork\Copy\Implement\UserGroupHelper $userGroupHelper)
        {
        }
        /**
         * Adds entity.
         *
         * @param Container $container
         * @param array $fields
         * @return int|bool Added entity id or false.
         */
        public function add(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Returns entity fields.
         *
         * @param Container $container
         * @param int $entityId
         * @return array $fields
         */
        public function getFields(\Bitrix\Main\Copy\Container $container, $entityId)
        {
        }
        /**
         * Preparing data before creating a new entity.
         *
         * @param Container $container
         * @param array $fields List entity fields.
         * @return array $fields
         */
        public function prepareFieldsToCopy(\Bitrix\Main\Copy\Container $container, array $fields)
        {
        }
        /**
         * Starts copying children entities.
         *
         * @param Container $container
         * @param int $entityId Entity id.
         * @param int $copiedEntityId Copied entity id.
         * @return Result
         */
        public function copyChildren(\Bitrix\Main\Copy\Container $container, $entityId, $copiedEntityId)
        {
        }
    }
}
namespace Bitrix\Socialnetwork {
    class LogPinnedTable extends \Bitrix\Main\Entity\DataManager
    {
        public static function getTableName()
        {
        }
        public static function getMap()
        {
        }
        public static function set(array $params = [])
        {
        }
        public static function add(array $data)
        {
        }
        public static function update($primary, array $data)
        {
        }
    }
    class ComponentHelper
    {
        protected static $postsCache = array();
        protected static $commentsCache = array();
        protected static $commentListsCache = array();
        protected static $commentCountCache = array();
        protected static $authorsCache = array();
        protected static $destinationsCache = array();
        /**
         * Returns data of a blog post
         *
         * @param int $postId Blog Post Id.
         * @param string $languageId 2-char language Id.
         * @return array|bool|false|mixed|null
         * @throws Main\LoaderException
         * @throws Main\SystemException
         */
        public static function getBlogPostData($postId, $languageId)
        {
        }
        /**
         * Returns data of blog post destinations
         *
         * @param int $postId Blog Post Id.
         * @return array
         * @throws Main\LoaderException
         * @throws Main\SystemException
         */
        public static function getBlogPostDestinations($postId)
        {
        }
        /**
         * Returns data of a blog post/comment author
         *
         * @param int $authorId User Id.
         * @param array $params Format parameters (avatar size etc).
         * @return array
         * @throws Main\LoaderException
         * @throws Main\SystemException
         */
        public static function getBlogAuthorData($authorId, $params)
        {
        }
        /**
         * Returns full list of blog post comments
         *
         * @param int $postId Blog Post Id.
         * @param array $params Additional paramaters.
         * @param string $languageId Language Id (2-char).
         * @param array &$authorIdList List of User Ids.
         * @return array
         * @throws Main\LoaderException
         * @throws Main\SystemException
         */
        public static function getBlogCommentListData($postId, $params, $languageId, &$authorIdList = array())
        {
        }
        /**
         * Returns a number of blog post comments
         *
         * @param int $postId Blog Post Id.
         * @return bool|int
         * @throws Main\LoaderException
         * @throws Main\SystemException
         */
        public static function getBlogCommentListCount($postId)
        {
        }
        /**
         * Returns data of a blog comment
         *
         * @param int $commentId Comment Id.
         * @param string $languageId Language id (2-chars).
         * @return array|bool|false|mixed|null
         */
        public static function getBlogCommentData($commentId, $languageId)
        {
        }
        /**
         * Processes comment data, rendering formatted text and date
         *
         * @param array $comment Comment fields set.
         * @param string $languageId Language Id (2-chars).
         * @param \blogTextParser $p TextParser object.
         */
        private static function processCommentData(&$comment, $languageId, $p, $params = array())
        {
        }
        /**
         * Returns mail-hash url
         *
         * @param string $url Entity Link.
         * @param int $userId User Id.
         * @param string $entityType Entity Type.
         * @param int $entityId Entity Id.
         * @param string $siteId Site id (2-char).
         * @return bool|string
         * @throws Main\LoaderException
         */
        public static function getReplyToUrl($url, $userId, $entityType, $entityId, $siteId, $backUrl = null)
        {
        }
        /**
         * Returns data of attached files
         *
         * @param array $valueList Attachments List.
         * @param string|bool|false $siteId Site Id (2-chars).
         * @return array
         * @throws Main\LoaderException
         */
        public static function getAttachmentsData($valueList, $siteId = false)
        {
        }
        /**
         * Processes disk objects list and generates external links (for inline images) if needed
         *
         * @param array $valueList
         * @param string $entityType Entity Type.
         * @param int $entityId Entity Id.
         * @param int $authorId User Id.
         * @param array $attachmentList Attachments List.
         * @return array
         * @throws Main\LoaderException
         */
        public static function getAttachmentUrlList($valueList = array(), $entityType = '', $entityId = 0, $authorId = 0, $attachmentList = array())
        {
        }
        /**
         * Converts formatted text replacing pseudo-BB code MAIL DISK, using calculated URLs
         *
         * @param string $text Text to convert.
         * @param array $attachmentList Attachments List.
         * @return mixed|string
         */
        public static function convertMailDiskFileBBCode($text = '', $attachmentList = array())
        {
        }
        /**
         * Converts DISK FILE BB-code to the pseudo-BB code MAIL DISK FILE or IMG BB-code
         *
         * @param string $text Text to convert.
         * @param string $entityType Entity Type.
         * @param int $entityId Entity Type.
         * @param int $authorId User id.
         * @param array $attachmentList Attachments List.
         * @return mixed
         */
        public static function convertDiskFileBBCode($text, $entityType, $entityId, $authorId, $attachmentList = array())
        {
        }
        /**
         * Calculates if text has inline disk file images
         *
         * @param string $text text with BB-codes
         * @param array $ufData uf of disk type.
         * @return boolean
         */
        public static function hasTextInlineImage(string $text = '', array $ufData = []) : bool
        {
        }
        /**
         * Formsts date time to the value of author + GMT offset
         *
         * @param string $dateTimeSource Date/Time in site format.
         * @param int $authorId User Id.
         * @return string
         */
        public static function formatDateTimeToGMT($dateTimeSource, $authorId)
        {
        }
        /**
         * Returns (non-idea) blog group list
         *
         * @param array $params Parameters.
         * @return array
         */
        public static function getSonetBlogGroupIdList($params)
        {
        }
        /**
         * Creates a user blog (when it is the first post of the user)
         *
         * @param array $params Parameters.
         * @return bool
         * @throws Main\ArgumentException
         * @throws Main\LoaderException
         * @throws Main\SystemException
         */
        public static function createUserBlog($params)
        {
        }
        /**
         * get urlPreview property value from text with links
         *
         * @param $text string
         * @param bool|true $html
         * @return bool|string
         * @throws Main\ArgumentTypeException
         */
        public static function getUrlPreviewValue($text, $html = true)
        {
        }
        /**
         * Returns rendered url preview block
         *
         * @param array $uf
         * @param array $params
         * @return string|boolean
         */
        public static function getUrlPreviewContent($uf, $params = array())
        {
        }
        public static function getExtranetUserIdList()
        {
        }
        public static function getEmailUserIdList()
        {
        }
        public static function getExtranetSonetGroupIdList()
        {
        }
        public static function hasCommentSource($params)
        {
        }
        // only by current userid
        public static function processBlogPostShare($fields, $params)
        {
        }
        public static function processBlogCreateTask($params)
        {
        }
        public static function processLogEntryCreateTask($params)
        {
        }
        public static function getUrlContext()
        {
        }
        public static function addContextToUrl($url, $context)
        {
        }
        public static function checkPredefinedAuthIdList($authIdList = array())
        {
        }
        public static function setComponentOption($list, $params = array())
        {
        }
        public static function getSonetGroupAvailable($params = array(), &$limitReached = false)
        {
        }
        public static function canAddComment($logEntry = array(), $commentEvent = array())
        {
        }
        public static function addLiveComment($comment = array(), $logEntry, $commentEvent = array(), $params = array())
        {
        }
        public static function fillSelectedUsersToInvite($HTTPPost, $componentParams, &$componentResult)
        {
        }
        public static function processBlogPostNewMailUser(&$HTTPPost, &$componentResult)
        {
        }
        private static function processUserEmail($params, &$errorText)
        {
        }
        public static function processBlogPostNewMailUserDestinations(&$destinationList)
        {
        }
        public static function processBlogPostNewCrmContact(&$HTTPPost, &$componentResult)
        {
        }
        public static function getUserSonetGroupIdList($userId = false, $siteId = false)
        {
        }
        public static function getAllowToAllDestination($userId = false)
        {
        }
        public static function getLivefeedStepper()
        {
        }
        public static function checkProfileRedirect($userId = 0)
        {
        }
        // used when video transform
        public static function getBlogPostLimitedViewStatus($params = array())
        {
        }
        public static function setBlogPostLimitedViewStatus($params = array())
        {
        }
        private static function notifyAuthorOnSetBlogPostLimitedViewStatusShow($params = array())
        {
        }
        public static function getBlogPostSocNetPerms($params = array())
        {
        }
        public static function notifyBlogPostCreated($params = array())
        {
        }
        public static function getUserSEFUrl($params = array())
        {
        }
        public static function getWorkgroupSEFUrl($params = array())
        {
        }
        public static function convertBlogPostPermToDestinationList($params, &$resultFields)
        {
        }
        public static function checkBlogPostDestinationList($params, &$resultFields)
        {
        }
        public static function getBlogPostCacheDir($params = array())
        {
        }
        public static function getLivefeedRatingData($params = array())
        {
        }
        public static function isCurrentUserExtranet($params = array())
        {
        }
        public static function userLogSubscribe($params = array())
        {
        }
        public static function getLFCommentsParams($eventFields = array())
        {
        }
        public static function checkCanCommentInWorkgroup($params)
        {
        }
        public static function checkLivefeedTasksAllowed()
        {
        }
    }
}
namespace Bitrix\Socialnetwork\CommentAux {
    abstract class Base
    {
        const TYPE = 'BASE';
        const POST_TEXT = 'commentAuxBase';
        protected $params = array();
        protected $options = array();
        public static function className()
        {
        }
        public static function getType()
        {
        }
        public static function getPostText()
        {
        }
        public function getText()
        {
        }
        public function canDelete()
        {
        }
        public function getLiveParams()
        {
        }
        public function setParams(array $params)
        {
        }
        public function setOptions(array $options)
        {
        }
        public function getOptions()
        {
        }
        public function checkRecalcNeeded($fields, $params)
        {
        }
        public static function init($type = 'BASE', array $params = array(), array $options = array())
        {
        }
        public static final function findProvider($fields = array(), $options = array())
        {
        }
        public function sendLikeNotification()
        {
        }
        public function getParamsFromFields($fields = array())
        {
        }
        public function sendRatingNotification($fields = array(), $ratingVoteParams = array())
        {
        }
        protected final function getRatingCommentLink($params)
        {
        }
    }
    final class TaskInfo extends \Bitrix\Socialnetwork\CommentAux\Base
    {
        const TYPE = 'TASKINFO';
        const POST_TEXT = 'commentAuxTaskInfo';
        public function getParamsFromFields($fields = array())
        {
        }
        public function getText()
        {
        }
        public function canDelete()
        {
        }
        public function checkRecalcNeeded($fields, $params)
        {
        }
        public function sendRatingNotification($fields = array(), $ratingVoteParams = array())
        {
        }
    }
    class HandlerManager
    {
        protected $handlerListByPostText = array();
        protected $handlerListByType = array();
        public function __construct()
        {
        }
        protected function buildHandlerList()
        {
        }
        public function getHandlerByPostText($postText)
        {
        }
        public function getHandlerByType($type)
        {
        }
    }
    final class CreateTask extends \Bitrix\Socialnetwork\CommentAux\Base
    {
        const TYPE = 'CREATETASK';
        const POST_TEXT = 'commentAuxCreateTask';
        const SOURCE_TYPE_BLOG_POST = 'BLOG_POST';
        const SOURCE_TYPE_TASK = 'TASK';
        const SOURCE_TYPE_FORUM_TOPIC = 'FORUM_TOPIC';
        const SOURCE_TYPE_CALENDAR_EVENT = 'CALENDAR_EVENT';
        const SOURCE_TYPE_TIMEMAN_ENTRY = 'TIMEMAN_ENTRY';
        const SOURCE_TYPE_TIMEMAN_REPORT = 'TIMEMAN_REPORT';
        const SOURCE_TYPE_LOG_ENTRY = 'LOG_ENTRY';
        const SOURCE_TYPE_PHOTO_ALBUM = 'PHOTO_ALBUM';
        const SOURCE_TYPE_PHOTO_PHOTO = 'PHOTO_PHOTO';
        const SOURCE_TYPE_WIKI = 'WIKI';
        const SOURCE_TYPE_LISTS_NEW_ELEMENT = 'LISTS_NEW_ELEMENT';
        const SOURCE_TYPE_INTRANET_NEW_USER = 'INTRANET_NEW_USER';
        const SOURCE_TYPE_BITRIX24_NEW_USER = 'BITRIX24_NEW_USER';
        const SOURCE_TYPE_BLOG_COMMENT = 'BLOG_COMMENT';
        const SOURCE_TYPE_FORUM_POST = 'FORUM_POST';
        const SOURCE_TYPE_LOG_COMMENT = 'LOG_COMMENT';
        private $postTypeList = array(self::SOURCE_TYPE_BLOG_POST, self::SOURCE_TYPE_TASK, self::SOURCE_TYPE_FORUM_TOPIC, self::SOURCE_TYPE_CALENDAR_EVENT, self::SOURCE_TYPE_TIMEMAN_ENTRY, self::SOURCE_TYPE_TIMEMAN_REPORT, self::SOURCE_TYPE_LOG_ENTRY, self::SOURCE_TYPE_PHOTO_ALBUM, self::SOURCE_TYPE_PHOTO_PHOTO, self::SOURCE_TYPE_WIKI, self::SOURCE_TYPE_LISTS_NEW_ELEMENT, self::SOURCE_TYPE_INTRANET_NEW_USER, self::SOURCE_TYPE_BITRIX24_NEW_USER);
        private $commentTypeList = array(self::SOURCE_TYPE_BLOG_COMMENT, self::SOURCE_TYPE_FORUM_POST, self::SOURCE_TYPE_LOG_COMMENT);
        private $postTypeListInited = false;
        private $commentTypeListInited = false;
        public function addPostTypeList($type)
        {
        }
        public function addCommentTypeList($type)
        {
        }
        public function getPostTypeList()
        {
        }
        public function getCommentTypeList()
        {
        }
        public function getSourceTypeList()
        {
        }
        public function getParamsFromFields($fields = array())
        {
        }
        public function getText()
        {
        }
        public function checkRecalcNeeded($fields, $params)
        {
        }
        private function getTask($taskId, $checkPermissions = true)
        {
        }
        public function sendRatingNotification($fields = array(), $ratingVoteParams = array())
        {
        }
    }
    final class FileVersion extends \Bitrix\Socialnetwork\CommentAux\Base
    {
        const TYPE = 'FILEVERSION';
        const POST_TEXT = 'commentAuxFileVersion';
        public function getParamsFromFields($fields = array())
        {
        }
        public function getText()
        {
        }
        public function sendRatingNotification($fields = array(), $ratingVoteParams = array())
        {
        }
        public function checkRecalcNeeded($fields, $params)
        {
        }
    }
    final class Share extends \Bitrix\Socialnetwork\CommentAux\Base
    {
        const TYPE = 'SHARE';
        const POST_TEXT = 'commentAuxShare';
        public function getParamsFromFields($fields = array())
        {
        }
        public function getText()
        {
        }
        public function sendRatingNotification($fields = array(), $ratingVoteParams = array())
        {
        }
        public function checkRecalcNeeded($fields, $params)
        {
        }
    }
}
namespace {
    class rest extends \CModule
    {
        var $MODULE_ID = "rest";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "N";
        private $errors = \false;
        function rest()
        {
        }
        function InstallDB($arParams = array())
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles($arParams = array())
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function OnGetTableSchema()
        {
        }
    }
    class RestIntegratorsListComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams() : bool
        {
        }
        protected function initParams() : void
        {
        }
        protected function prepareResult()
        {
        }
        protected function getItems($items) : array
        {
        }
        protected function printErrors() : void
        {
        }
        public function executeComponent()
        {
        }
    }
    class CRestConfigurationExportComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected $type = 'configuration';
        protected $contextPostfix = 'export';
        protected $optionPath = '~tmp_export_path_configuration';
        protected function checkRequiredParams()
        {
        }
        protected function listKeysSignedParameters()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        protected function getContextPostFix()
        {
        }
        protected function getContext()
        {
        }
        public function startAction()
        {
        }
        public function finishAction()
        {
        }
        public function loadAction()
        {
        }
        public function loadManifestAction()
        {
        }
        public function configureActions()
        {
        }
    }
    class CRestConfigurationImportComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected $contextPostfix = 'import';
        protected $type = 'configuration';
        protected function checkRequiredParams()
        {
        }
        protected function getContextPostFix()
        {
        }
        protected function getContext()
        {
        }
        protected function prepareConfigurationUrl($url)
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class RestIntegrationEditComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable
    {
        private $lengthSecretPassword = 6;
        protected $error = [];
        /**
         * Check required params.
         *
         * @throws SystemException
         */
        protected function checkRequiredParams()
        {
        }
        protected function listKeysSignedParameters()
        {
        }
        protected function initParams()
        {
        }
        protected function getSavedData($result)
        {
        }
        /**
         * @throws SystemException
         */
        protected function processResultData()
        {
        }
        protected function getLanguageList()
        {
        }
        protected function prepareQuery($dataQuery, $presetQuery)
        {
        }
        public function executeComponent()
        {
        }
        private function getRequestData()
        {
        }
        public function saveDataAction()
        {
        }
        public function getNewIntegrationUrlAction()
        {
        }
        public function analyticAction()
        {
        }
        public function deleteAction()
        {
        }
        public function configureActions()
        {
        }
    }
    class RestMarketplaceBookletComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected $countApp = 8;
        protected $countAppBanner = 3;
        protected $iconList = ['default' => '/bitrix/images/rest/icon/default.svg', 'add' => '/bitrix/images/rest/icon/phone-rent.svg', 'adjust' => '/bitrix/images/rest/icon/phone-rent.svg', 'phone-rent' => '/bitrix/images/rest/icon/phone-rent.svg'];
        protected function checkRequiredParams()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        private function get($code)
        {
        }
        private function getIcon($code)
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class CAPConnectComponent extends \CBitrixComponent
    {
        const SESSION_KEY = 'APCONNECT_CLIENT_INFO';
        const PATH_AP_MANAGE = '/marketplace/hook/ap/';
        protected static $presetPermission = array('ap' => array('crm', 'telephony', 'imopenlines'));
        protected $errors;
        protected $clientInfo = \null;
        protected $clientAccess = array();
        public function __construct($component = \null)
        {
        }
        /**
         * Load language file.
         */
        public function onIncludeComponentLang()
        {
        }
        /**
         * Prepare Component Params.
         *
         * @param array $params Component parameters.
         * @return array
         */
        public function onPrepareComponentParams($params)
        {
        }
        protected function getConnectionData($password)
        {
        }
        /**
         * Process incoming request
         * @return void
         */
        protected function processRequest()
        {
        }
        /**
         * Check Required Modules
         *
         * @throws Exception
         */
        protected function checkModules()
        {
        }
        /**
         * Get main data - client info
         *
         * @throws SystemException
         *
         * @return void
         */
        protected function prepareData()
        {
        }
        /**
         * Prepare data to render
         *
         * @return void
         */
        protected function formatResult()
        {
        }
        /**
         * Extract data from cache
         * @return bool
         */
        protected function extractDataFromCache()
        {
        }
        protected function putDataToCache()
        {
        }
        protected function abortDataCache()
        {
        }
        public function executeComponent()
        {
        }
    }
    class CRestConfigurationActionComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    /**
     * Bitrix vars
     *
     * @var array $arParams
     * @var array $arResult
     * @var CBitrixComponent $this
     * @global CMain $APPLICATION
     * @global CUser $USER
     */
    class RestMarketplaceIframeWrapperComponent extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    class RestIntegrationGridComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable
    {
        private $defaultPageSize = 10;
        /**
         * Check required params.
         *
         * @throws SystemException
         * @throws LoaderException
         */
        protected function checkRequiredParams() : bool
        {
        }
        protected function initParams() : void
        {
        }
        protected function getGridHeader() : array
        {
        }
        protected function getGridParams() : array
        {
        }
        /**
         * @return array
         */
        protected function getFilter() : array
        {
        }
        protected function getGridFilterHeader() : array
        {
        }
        /**
         * @throws SystemException
         */
        protected function processResultData() : void
        {
        }
        public function executeComponent()
        {
        }
        public function deleteAction()
        {
        }
        public function configureActions()
        {
        }
    }
    class RestIntegratorsIndexComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function initParams()
        {
        }
        protected function preparePost()
        {
        }
        protected function getParseUrl($url)
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class RestIntegrationSelectComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function listKeysSignedParameters()
        {
        }
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        public function getMethodAction()
        {
        }
        public function getEventAction()
        {
        }
        public function getPlacementAction()
        {
        }
        public function getScopeAction()
        {
        }
        public function getNeededScopeAction($code, $action)
        {
        }
        public function getBotTypeAction()
        {
        }
        public function configureActions()
        {
        }
    }
    class RestDevOpsComponent extends \CBitrixComponent
    {
        /**
         * Check required params.
         *
         * @throws SystemException
         * @throws LoaderException
         */
        protected function checkRequiredParams()
        {
        }
        /**
         * Check required params.
         *
         * @throws SystemException
         */
        protected function initParams()
        {
        }
        protected function prepareResult()
        {
        }
        public function executeComponent()
        {
        }
    }
    class CRestConfigurationInstallComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected $actionError;
        protected $diskFolder = \false;
        protected $savedActionUserContextPostfix = 'saved';
        protected function checkRequiredParams()
        {
        }
        protected function listKeysSignedParameters()
        {
        }
        protected function isPreInstallAppMode()
        {
        }
        protected function prepareResult()
        {
        }
        protected function setActionError($message)
        {
        }
        protected function getActionError()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
        protected function getItemContent($type, $step)
        {
        }
        protected function getImportContext()
        {
        }
        protected function getUserContext($postfix = \false)
        {
        }
        public function startAction()
        {
        }
        private function deleteBackupFolder()
        {
        }
        private function addDiskBackupFiles($files)
        {
        }
        private function addDiskBackupContent($type, $code, $content)
        {
        }
        private function getDiskFolder()
        {
        }
        public function finishAction()
        {
        }
        public function clearAction()
        {
        }
        public function importAction()
        {
        }
        public function saveAction()
        {
        }
        public function loadManifestAction()
        {
        }
        public function finishSaveAction()
        {
        }
        public function preInstallOffAction()
        {
        }
        public function configureActions()
        {
        }
    }
    class CRestConfigurationSectionComponent extends \CBitrixComponent
    {
        /** @var ErrorCollection $errors */
        protected $errors;
        protected function checkRequiredParams()
        {
        }
        protected function prepareResult()
        {
        }
        protected function printErrors()
        {
        }
        public function executeComponent()
        {
        }
    }
    class RestConfigurationComponent extends \CBitrixComponent
    {
        /**
         * Check required params.
         *
         * @throws SystemException
         * @throws LoaderException
         */
        protected function checkRequiredParams()
        {
        }
        /**
         * Check required params.
         *
         * @throws SystemException
         */
        protected function initParams()
        {
        }
        private function getTitle($page)
        {
        }
        protected function prepareResult()
        {
        }
        public function executeComponent()
        {
        }
    }
    class CRestMarketplaceCategoryComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable
    {
        private $curPage = "";
        private $titleName = "";
        private $items = array();
        private $topItems = array();
        private $newItems = array();
        private $saleItems = array();
        private $ajaxMode = \false;
        private $pageSizeDefault = 20;
        private $bannerTypeFeedback = 'FEEDBACK';
        public function onPrepareComponentParams($arParams)
        {
        }
        private function prepareUiFilter()
        {
        }
        private function prepareUiFilterPresets()
        {
        }
        private function getFilterQuery($filterData)
        {
        }
        protected function getPageSize()
        {
        }
        protected function setDefaultPageSize($size)
        {
        }
        private function getItemsByTag($tag)
        {
        }
        private function getItems()
        {
        }
        private function prepareBannerList($itemList)
        {
        }
        private function prepareItems(&$items)
        {
        }
        private function collectItems()
        {
        }
        private function mergeBanner($itemList, $bannerList)
        {
        }
        public function executeComponent()
        {
        }
        public function configureActions()
        {
        }
        protected function listKeysSignedParameters()
        {
        }
        public function getPageAction($filterMode = "default", $filterValue = \null)
        {
        }
        public function getNextPageAction($filterMode = "default", $filterValue = \null)
        {
        }
    }
    class CRestStatisticComponent extends \CBitrixComponent implements \Bitrix\Main\Engine\Contract\Controllerable
    {
        const PREFIX = 'data_';
        const PREFIX_HOURS_PROPS_CODE = 'HOUR_';
        const LAST_HOURS_PROPS_CODE = 23;
        const PAGE_LIMIT = 20;
        /**
         * Check required params.
         *
         * @throws SystemException
         * @throws LoaderException
         */
        protected function checkRequiredParams()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        protected function listKeysSignedParameters()
        {
        }
        /**
         * @throws ArgumentException
         * @throws ObjectPropertyException
         * @throws SystemException
         * @throws ArgumentException
         */
        private function getAllApp()
        {
        }
        /**
         * @throws ArgumentException
         * @throws ObjectPropertyException
         * @throws SystemException
         * @throws ArgumentException
         */
        private function getAllPasswordApp()
        {
        }
        /**
         * @return array
         * @throws ObjectException
         */
        protected function getFilter()
        {
        }
        protected function getGridHeader()
        {
        }
        protected function getGridSort($oldSort)
        {
        }
        protected function getGridFilterHeader()
        {
        }
        protected function prepareGraphsData($itemsStat)
        {
        }
        /**
         * @param $type string
         *
         * @throws SystemException
         */
        protected function processResultData($type = 'grid')
        {
        }
        public function executeComponent()
        {
        }
        public function getChartDataAction()
        {
        }
        public function configureActions()
        {
        }
    }
    class CRestEventHandlers
    {
        public static function OnBeforeProlog()
        {
        }
    }
    class CRestUtil
    {
        const GLOBAL_SCOPE = '_global';
        const EVENTS = '_events';
        const PLACEMENTS = '_placements';
        const HANDLER_SESSION_TTL = 3;
        const BATCH_MAX_LENGTH = 50;
        const METHOD_DOWNLOAD = "download";
        const METHOD_UPLOAD = "upload";
        const TOKEN_DELIMITER = "|";
        const BITRIX_1C_APP_CODE = 'bitrix.1c';
        const PLACEMENT_APP_URI = 'REST_APP_URI';
        public static function sendHeaders()
        {
        }
        public static function getStandardParams()
        {
        }
        public static function getRequestData()
        {
        }
        public static function isAdmin()
        {
        }
        public static function canInstallApplication($appInfo = \null)
        {
        }
        public static function appCanBeInstalledByUser(array $appInfo)
        {
        }
        public static function getInstallAccessList()
        {
        }
        public static function setInstallAccessList($accessList)
        {
        }
        public static function notifyInstall($appInfo)
        {
        }
        public static function signLicenseRequest(array $request, $licenseKey)
        {
        }
        public static function ConvertDate($dt)
        {
        }
        public static function ConvertDateTime($dt)
        {
        }
        /**
         * @param string $iso8601 date in ISO-8601 format (for example: '2013-05-14T12:00:50+04:00')
         * @return string date in Bitrix format, or FALSE (bool) on error
         */
        public static function unConvertDate($iso8601)
        {
        }
        /**
         * @param string $iso8601 Datetime in ISO-8601 format (for example: '2013-05-14T12:00:50+04:00').
         * @param bool $enableOffset Add user timezone offset.
         * If $enableOffset == false, time in server timezone will be returned.
         * If $enableOffset == true, time in user timezone will be returned.
         * @return string datetime in Bitrix format, or FALSE (bool) on error
         */
        public static function unConvertDateTime($iso8601, $enableOffset = \false)
        {
        }
        public static function getMemberId()
        {
        }
        public static function isStatic($url)
        {
        }
        public static function GetFile($fileId, $resizeParam = \false)
        {
        }
        protected static function processBatchElement($query, $arResult, $keysCache = '')
        {
        }
        protected static function processBatchStructure($queryParams, $arResult, $keysCache = \null)
        {
        }
        public static function ParseBatchQuery($query, $arResult)
        {
        }
        /** @deprecated */
        public static function getAuthForEvent($appId, $userId, array $additionalData = array())
        {
        }
        /**
         * @deprecated
         *
         * use \Bitrix\Rest\OAuth\Auth::get
         */
        public static function getAuth($appId, $appSecret, $scope, $additionalParams, $user_id = 0)
        {
        }
        public static function checkAuth($query, $scope, &$res)
        {
        }
        public static function makeAuth($res, $application_id = \null)
        {
        }
        public static function checkAppAccess($appId, $appInfo = \null)
        {
        }
        public static function updateAppStatus(array $tokenInfo)
        {
        }
        public static function saveFile($fileContent, $fileName = "")
        {
        }
        public static function CleanApp($appId, $bClean)
        {
        }
        /**
         * Simple app installation without checks.
         *
         * @param string $appCode Application code.
         *
         * @return boolean
         */
        public static function InstallApp($code)
        {
        }
        /**
         * @deprecated
         *
         * use \Bitrix\Rest\AppTable::update
         */
        public static function UpdateApp($appId, $oldVersion)
        {
        }
        public static function getScopeList(array $description = \null)
        {
        }
        public static function getEventList(array $description = \null)
        {
        }
        public static function getApplicationToken(array $application)
        {
        }
        /**
         * Generates link to file download
         *
         * @param array|string $query Params, which will be transferred to download handler
         * @param CRestServer $server REST Server object
         *
         * @return string Absolute file download URL.
         *
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\LoaderException
         */
        public static function getDownloadUrl($query, \CRestServer $server)
        {
        }
        public static function getLanguage()
        {
        }
        /**
         * Generates link to file upload
         *
         * @param array|string $query Params, which will be transferred to upload handler
         * @param CRestServer $server REST Server object
         *
         * @return string Absolute file download URL.
         *
         * @throws \Bitrix\Main\ArgumentNullException
         * @throws \Bitrix\Main\ArgumentTypeException
         * @throws \Bitrix\Main\LoaderException
         */
        public static function getUploadUrl($query, \CRestServer $server)
        {
        }
        public static function getSpecialUrl($method, $query, \CRestServer $server)
        {
        }
        public static function getWebhookEndpoint($ap, $userId, $method = '')
        {
        }
        public static function getEndpoint()
        {
        }
        public static function getAdministratorIdList()
        {
        }
        public static function getApplicationPage($id, $type = 'ID', $appInfo = \null)
        {
        }
        public static function isSlider()
        {
        }
    }
    class CRestProvider extends \IRestService
    {
        const ERROR_BATCH_LENGTH_EXCEEDED = 'ERROR_BATCH_LENGTH_EXCEEDED';
        const ERROR_BATCH_METHOD_NOT_ALLOWED = 'ERROR_BATCH_METHOD_NOT_ALLOWED';
        // default license shown instead of absent or unknown
        const LICENSE_DEFAULT = "project";
        // controller group id => rest license id
        protected static $licenseList = array("project" => "project", "corporation" => "corporation", "company" => "company", "team" => "team", "demo" => "demo", "nfr" => "nfr", "tf" => "tf", "crm" => "crm", "tasks" => "tasks");
        protected static $arApp = \null;
        protected static $arScope = \null;
        protected static $arMethodsList = \null;
        public function getDescription()
        {
        }
        public static function getProfile($params, $n, \CRestServer $server)
        {
        }
        public static function methodsBatch($arQuery, $start, \CRestServer $server)
        {
        }
        public static function scopeList($arQuery, $n, \CRestServer $server)
        {
        }
        public static function methodsList($arQuery, $n, \CRestServer $server)
        {
        }
        public static function appInfo($params, $n, \CRestServer $server)
        {
        }
        /**
         * Gets application option values
         *
         * @param array $params array([option => option_name])
         * @param int $n Standard pagination param
         * @param CRestServer $server Standard Server object link
         *
         * @return array|mixed|null|string
         *
         * @throws AccessException
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function appOptionGet($params, $n, \CRestServer $server)
        {
        }
        /**
         * Sets application options values
         *
         * @param array $params array(option_name => option_value) || array(options => array(option_name => option_value,....))
         * @param int $n Standard pagination param
         * @param CRestServer $server Standard Server object link
         *
         * @return true
         *
         * @throws AccessException
         * @throws ArgumentNullException
         * @throws \Bitrix\Main\ArgumentOutOfRangeException
         */
        public static function appOptionSet($params, $n, \CRestServer $server)
        {
        }
        /**
         * Gets user option values for application
         *
         * @param array $params array([option => option_name])
         * @param int $n Standard pagination param
         * @param CRestServer $server Standard Server object link
         *
         * @return array|mixed|null|string
         *
         * @throws AccessException
         */
        public static function userOptionGet($params, $n, \CRestServer $server)
        {
        }
        /**
         * Sets user options values for application
         *
         * @param array $params array(option_name => option_value) || array(options => array(option_name => option_value,....))
         * @param int $n Standard pagination param.
         * @param CRestServer $server Standard Server object link
         *
         * @return bool
         *
         * @throws AccessException
         * @throws ArgumentNullException
         */
        public static function userOptionSet($params, $n, \CRestServer $server)
        {
        }
        public static function getServerTime($params)
        {
        }
        public static function OnAppEvent($arParams, $arHandler)
        {
        }
        public static function OnAppPayment($arParams, $arHandler)
        {
        }
        private static function getBitrix24LicenseName($licenseType = \CBitrix24::LICENSE_TYPE_CURRENT)
        {
        }
        protected static function getApp(\CRestServer $server)
        {
        }
        protected static function getScope(\CRestServer $server)
        {
        }
    }
    class CBitrixRestEntity extends \IRestService
    {
        const ENTITY_IBLOCK_CODE_PREFIX = 'APP';
        const ERROR_ENTITY_ALREADY_EXISTS = 'ERROR_ENTITY_ALREADY_EXISTS';
        const ERROR_ENTITY_NOT_FOUND = 'ERROR_ENTITY_NOT_FOUND';
        const ERROR_SECTION_NOT_FOUND = 'ERROR_SECTION_NOT_FOUND';
        const ERROR_ITEM_NOT_FOUND = 'ERROR_ITEM_NOT_FOUND';
        const ERROR_PROPERTY_NOT_FOUND = 'ERROR_PROPERTY_NOT_FOUND';
        const ERROR_PROPERTY_ALREADY_EXISTS = 'ERROR_PROPERTY_ALREADY_EXISTS';
        const ERROR_UNSUPPORTED_PROPERTY_TYPE = 'ERROR_UNSUPPORTED_PROPERTY_TYPE';
        const ERROR_UNSUPPORTED_PROPERTY_TYPE_CHANGE = 'ERROR_UNSUPPORTED_PROPERTY_TYPE_CHANGE';
        private static $arAllowedOperations = array('', '!', '<', '<=', '>', '>=', '><', '!><', '?', '=', '!=', '%', '!%', '');
        public static function OnRestServiceBuildDescription()
        {
        }
        public static function entityAdd($params, $n, $server)
        {
        }
        public static function entityGet($params, $n, $server)
        {
        }
        public static function entityRights($params, $n, $server)
        {
        }
        public static function entityUpdate($params, $n, $server)
        {
        }
        public static function entityDelete($params, $n, $server)
        {
        }
        public static function entitySectionGet($params, $n, $server)
        {
        }
        public static function entitySectionAdd($params, $n, $server)
        {
        }
        public static function entitySectionUpdate($params, $n, $server)
        {
        }
        public static function entitySectionDelete($params, $n, $server)
        {
        }
        public static function entityItemGet($params, $n, $server)
        {
        }
        public static function entityItemAdd($params, $n, $server)
        {
        }
        public static function entityItemUpdate($params, $n, $server)
        {
        }
        public static function entityItemDelete($params, $n, $server)
        {
        }
        public static function entityItemPropertyGet($params, $n, $server)
        {
        }
        public static function entityItemPropertyAdd($params, $n, $server)
        {
        }
        public static function entityItemPropertyUpdate($params, $n, $server)
        {
        }
        public static function entityItemPropertyDelete($params, $n, $server)
        {
        }
        public static function Clean($appId)
        {
        }
        protected static function checkIblockType()
        {
        }
        protected static function getIBlock($code, $bSkipCheck = \false)
        {
        }
        protected static function getIBlocks($server)
        {
        }
        protected static function getItemProperty($property, $entity, $server)
        {
        }
        protected static function getItemProperties($entity, $server)
        {
        }
        protected static function checkParams(&$params)
        {
        }
        protected static function checkItemParams(&$params)
        {
        }
        protected static function checkSectionParams(&$params)
        {
        }
        protected static function checkItemPropertyParams(&$params)
        {
        }
        protected static function checkEntity($entity, $server)
        {
        }
        protected static function checkItemProperty($property, $entity, $server)
        {
        }
        protected static function parseEntity($iblock, \CRestServer $server)
        {
        }
        protected static function getEntityIBlockCode($entity, \CRestServer $server)
        {
        }
        protected static function getIBlockType()
        {
        }
        protected static function prepareItem($params, $arIBlock, $server)
        {
        }
        protected static function prepareSection($params, $arIBlock, $server)
        {
        }
        protected static function checkFilter($arFilter, $bChangeLogic = \true)
        {
        }
        protected static function checkSectionFilter($arFilter, $bChangeLogic = \true)
        {
        }
        protected static function checkRights($arRights)
        {
        }
        protected static function getFile($fileId)
        {
        }
    }
}
namespace Bitrix\Rest\Event {
    /**
     * Class Callback
     *
     * Callback for Bitrix events transferred to REST events
     *
     * @package Bitrix\Rest
     **/
    class Callback
    {
        /**
         * Handler for all PHP events transferred to REST.
         *
         * @param string $name Event name.
         * @param array $arguments Event arguments.
         *
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public static function __callStatic($name, $arguments)
        {
        }
    }
}
namespace {
    /** @deprecated
     * use \Bitrix\Rest\Event\Callback
     */
    class CRestEventCallback extends \Bitrix\Rest\Event\Callback
    {
        public static function __callStatic($name, $arguments)
        {
        }
    }
    /** @deprecated
     * use \Bitrix\Rest\Event\Session
     */
    class CRestEventSession
    {
        public static function Get()
        {
        }
        public static function Set($session)
        {
        }
    }
    class CRestServer
    {
        const STATUS_OK = "200 OK";
        const STATUS_CREATED = "201 Created";
        const STATUS_WRONG_REQUEST = "400 Bad Request";
        const STATUS_UNAUTHORIZED = "401 Unauthorized";
        const STATUS_PAYMENT_REQUIRED = "402 Payment Required";
        // reserved for future use
        const STATUS_FORBIDDEN = "403 Forbidden";
        const STATUS_NOT_FOUND = "404 Not Found";
        const STATUS_INTERNAL = "500  Internal Server Error";
        /* @var \CRestServer */
        protected static $instance = \null;
        protected $class = '';
        protected $method = '';
        protected $transport = '';
        protected $scope = '';
        protected $query = array();
        protected $timeStart = 0;
        protected $timeProcessStart = 0;
        protected $timeProcessFinish = 0;
        protected $usage = \null;
        protected $auth = array();
        protected $authData = array();
        protected $authScope = \null;
        protected $clientId = '';
        protected $passwordId = '';
        /* @var RestException */
        protected $error = '';
        protected $resultStatus = \null;
        protected $securityMethodState = \null;
        protected $securityClientState = \null;
        protected $arServiceDesc = array();
        protected $tokenCheck = \false;
        protected $authType = \null;
        public function __construct($params)
        {
        }
        /**
         * @return \CRestServer|null
         */
        public static function instance()
        {
        }
        public static function transportSupported($transport)
        {
        }
        public function process()
        {
        }
        protected function isTokenCheck()
        {
        }
        protected function processTokenCheckCall()
        {
        }
        protected function processCall()
        {
        }
        public function getTransport()
        {
        }
        public function getAuth()
        {
        }
        public function getAuthData()
        {
        }
        public function getAuthScope()
        {
        }
        public function getQuery()
        {
        }
        public function getAuthType()
        {
        }
        /**
         * @deprecated
         *
         * use \CRestServer::getClientId()
         **/
        public function getAppId()
        {
        }
        public function getClientId()
        {
        }
        public function getPasswordId()
        {
        }
        public function getMethod()
        {
        }
        public function setStatus($status)
        {
        }
        public function setSecurityState($state = \null)
        {
        }
        public function getScope()
        {
        }
        public function getScopeList()
        {
        }
        public function getServiceDescription()
        {
        }
        public function getTokenCheckSignature($method, $queryString)
        {
        }
        public function getApplicationSignature()
        {
        }
        public function requestConfirmation($userList, $message)
        {
        }
        private function init()
        {
        }
        private function checkSite()
        {
        }
        private function getMethodDescription()
        {
        }
        private function getMethodCallback()
        {
        }
        private function checkScope()
        {
        }
        protected function checkAuth()
        {
        }
        protected function canUseConnectors()
        {
        }
        protected function getMethodOptions()
        {
        }
        private function makeSignature($key, $state)
        {
        }
        /*************************************************************/
        private function outputError()
        {
        }
        public function sendHeaders()
        {
        }
        public function output($data)
        {
        }
        protected function appendDebugInfo(array $data)
        {
        }
        private function outputJson($data)
        {
        }
        private function outputXml($data)
        {
        }
    }
    class CRestServerBatchItem extends \CRestServer
    {
        protected $authKeys = array();
        public function setApplicationId($appId)
        {
        }
        public function setAuthKeys($keys)
        {
        }
        public function setAuthData($authData)
        {
        }
        public function setAuthType($authType)
        {
        }
        protected function checkAuth()
        {
        }
    }
}
namespace Bitrix\Rest {
    class Application
    {
        protected static $initialized = false;
        /**
         * @var AuthProviderInterface
         */
        protected static $authProvider = null;
        /**
         * @return AuthProviderInterface
         */
        public static function getAuthProvider()
        {
        }
        /**
         * @param AuthProviderInterface $authProvider
         */
        public static function setAuthProvider(\Bitrix\Rest\AuthProviderInterface $authProvider)
        {
        }
        /**
         * @return OAuth\Provider
         */
        protected static function getDefaultAuthProvider()
        {
        }
        protected static function initialize()
        {
        }
    }
    class RestException extends \Exception
    {
        const ERROR_INTERNAL_WRONG_TRANSPORT = 'INTERNAL_WRONG_TRANSPORT';
        const ERROR_INTERNAL_WRONG_HANDLER_CLASS = 'INTERNAL_WRONG_HANDLER_CLASS';
        const ERROR_INTERNAL_WRONG_FILE_HANDLER = 'INTERNAL_WRONG_FILE_HANDLER';
        const ERROR_INTERNAL_PORTAL_DELETED = 'PORTAL_DELETED';
        const ERROR_OAUTH = 'ERROR_OAUTH';
        const ERROR_METHOD_NOT_FOUND = 'ERROR_METHOD_NOT_FOUND';
        const ERROR_CORE = 'ERROR_CORE';
        const ERROR_ARGUMENT = 'ERROR_ARGUMENT';
        const ERROR_NOT_FOUND = 'ERROR_NOT_FOUND';
        protected $status;
        protected $error_code;
        protected $error_additional = array();
        public function __construct($message, $code = "", $status = 0, \Exception $previous = null)
        {
        }
        public function getErrorCode()
        {
        }
        public function setErrorCode($error_code)
        {
        }
        public function getStatus()
        {
        }
        public function setStatus($status)
        {
        }
        public function setMessage($msg)
        {
        }
        public function getAdditional()
        {
        }
        public function setAdditional($error_additional)
        {
        }
        public function setApplicationException(\CApplicationException $ex)
        {
        }
        public static function initFromException(\Exception $e)
        {
        }
    }
    class AccessException extends \Bitrix\Rest\RestException
    {
        const MESSAGE = 'Access denied!';
        const CODE = 'ACCESS_DENIED';
        public function __construct($msg = '', \Exception $previous = null)
        {
        }
    }
    class LicenseException extends \Bitrix\Rest\AccessException
    {
        const MESSAGE = 'This feature is not enabled for the current license:';
        const CODE = 'WRONG_LICENSE';
    }
}
namespace Bitrix\Rest\UserField {
    class Type extends \Bitrix\Main\UserField\TypeBase
    {
        const USER_TYPE_ID = 'rest';
        function getDBColumnType()
        {
        }
        public static function getPublicView($arUserField, $arAdditionalParameters = array())
        {
        }
        public static function getPublicEdit($arUserField, $arAdditionalParameters = array())
        {
        }
        function getEditFormHTML($arUserField, $arHtmlControl)
        {
        }
        function getEditFormHTMLMulty($arUserField, $arHtmlControl)
        {
        }
        protected static function getApplication($arUserField, $arHtmlControl, $mode = 'edit')
        {
        }
        function prepareSettings($arUserField)
        {
        }
        function getSettingsHTML($arUserField = false, $arHtmlControl, $bVarsFromForm)
        {
        }
        function getFilterHTML($arUserField, $arHtmlControl)
        {
        }
        function getFilterData($arUserField, $arHtmlControl)
        {
        }
        function getAdminListViewHTML($arUserField, $arHtmlControl)
        {
        }
        function getAdminListViewHTMLMulty($arUserField, $arHtmlControl)
        {
        }
        function getAdminListEditHTML($arUserField, $arHtmlControl)
        {
        }
        function getAdminListEditHTMLMulty($arUserField, $arHtmlControl)
        {
        }
    }
    class Callback
    {
        const USER_TYPE_ID_PREFIX = 'rest';
        protected static $descriptionCache = null;
        public static function __callStatic($handlerCode, $arguments)
        {
        }
        public static function bind($fields)
        {
        }
        public static function unbind($fields)
        {
        }
        public static function unbindByCode($handlerCode)
        {
        }
        protected static function getUserTypeDescription($placementHandlerCode)
        {
        }
        public static function getUserTypeId($userTypeInfo)
        {
        }
    }
}
namespace Bitrix\Rest\Configuration {
    class Controller
    {
        const ON_REST_APP_CONFIGURATION_CLEAR = 'OnRestApplicationConfigurationClear';
        const ON_REST_APP_CONFIGURATION_ENTITY = 'OnRestApplicationConfigurationEntity';
        const ON_REST_APP_CONFIGURATION_EXPORT = 'OnRestApplicationConfigurationExport';
        const ON_REST_APP_CONFIGURATION_IMPORT = 'OnRestApplicationConfigurationImport';
        const ON_REST_APP_CONFIGURATION_FINISH = 'OnRestApplicationConfigurationFinish';
        /**
         *	array value: [a-zA-Z0-9_]
         */
        public static function getEntityCodeList()
        {
        }
        public static function callEventExport($manifestCode, $code, $step = 0, $next = '', $itemCode = '', $contextUser = false)
        {
        }
        public static function callEventClear($data)
        {
        }
        public static function callEventImport($params)
        {
        }
        public static function callEventFinish($params)
        {
        }
    }
    class ProxyDiskType extends \Bitrix\Disk\ProxyType\Base
    {
        /**
         * Gets security context (access provider) for user.
         * Attention! File/Folder can use anywhere and SecurityContext have to check rights anywhere (any module).
         *
         * @param mixed $user User which use for check rights.
         *
         * @return SecurityContext
         */
        public function getSecurityContextByUser($user)
        {
        }
        /**
         * Gets url which use for building url to listing folders, trashcan, etc.
         * @return string
         */
        public function getStorageBaseUrl()
        {
        }
        /**
         * Get image (avatar) of entity.
         * Can be shown with entityTitle in different lists.
         *
         * @param int $width Image width.
         * @param int $height Image height.
         *
         * @return string
         */
        public function getEntityImageSrc($width, $height)
        {
        }
        /**
         * Potential opportunity to attach object to external entity
         * @return bool
         */
        public function canAttachToExternalEntity()
        {
        }
        /**
         * Tells if objects is allowed to index by module "Search".
         * @return bool
         */
        public function canIndexBySearch()
        {
        }
    }
    class Manifest
    {
        const ON_REST_APP_CONFIGURATION_GET_MANIFEST = 'OnRestApplicationConfigurationGetManifest';
        const ON_REST_APP_CONFIGURATION_GET_MANIFEST_SETTING = 'OnRestApplicationConfigurationGetManifestSetting';
        private static $manifestList = [];
        public static function getList()
        {
        }
        public static function callEventInit($code, $params = [])
        {
        }
        public static function get($code)
        {
        }
    }
    /**
     * Class OwnerEntityTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> OWNER_TYPE string(1) mandatory
     * <li> OWNER string(11) mandatory
     * <li> ENTITY_TYPE string(32) mandatory
     * <li> ENTITY string(32) mandatory
     * </ul>
     *
     * @package Bitrix\Rest\Configuration
     **/
    class OwnerEntityTable extends \Bitrix\Main\ORM\Data\DataManager
    {
        const ENTITY_TYPE_APPLICATION = 'A';
        const ENTITY_TYPE_EXTERNAL = 'E';
        const ENTITY_EMPTY = 0;
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for OWNER_TYPE field.
         *
         * @return array
         */
        public static function validateOwnerType()
        {
        }
        /**
         * Returns validators for OWNER field.
         *
         * @return array
         */
        public static function validateOwner()
        {
        }
        /**
         * Returns validators for ENTITY_TYPE field.
         *
         * @return array
         */
        public static function validateEntityType()
        {
        }
        /**
         * Returns validators for ENTITY field.
         *
         * @return array
         */
        public static function validateEntity()
        {
        }
        /**
         * @param $owner string(11)
         * @param $ownerType string(1)
         * @param $itemList array
         */
        public static function saveMulti($owner, $ownerType, $itemList)
        {
        }
        /**
         * @param $itemList array
         */
        public static function deleteMulti($itemList)
        {
        }
        public static function checkApp($entityType, $entityId)
        {
        }
    }
    class Structure
    {
        private static $maxAgentTime = 10;
        private static $fileDescriptionDelete = 'configuration_delete';
        private $context = '';
        private $setting = null;
        private $zipMimeType = ['application/zip', 'application/x-zip-compressed'];
        /**
         * @param $context string
         */
        public function __construct($context)
        {
        }
        /**
         * Create and/or return absolute path to temp folder
         *
         * @return string|boolean
         */
        public function getFolder()
        {
        }
        /**
         * Save content to temp folder
         * @param $type string
         * @param $code string
         * @param $content array|string
         *
         * @return boolean
         */
        public function saveContent($type, $code, $content)
        {
        }
        /**
         * @param $id integer file id from b_file
         * @param $name string file name with path in folder
         *
         * @return boolean
         */
        private function saveConfigurationFile($id, $name)
        {
        }
        /**
         * All files in current context
         * @return array|null
         */
        public function getConfigurationFileList()
        {
        }
        /**
         * @param $id integer file id from b_file
         * @param $additionalData array any short data save with file
         *
         * @return boolean
         */
        public function saveFile($id, $additionalData = [])
        {
        }
        /**
         * All files in current context
         * @return array|null
         */
        public function getFileList()
        {
        }
        /**
         * Unzip the archive to a temporary folder
         * @param $fileInfo array === $_FILES
         *
         * @return boolean
         */
        public function unpack($fileInfo)
        {
        }
        private function initUnpackFilesList()
        {
        }
        /**
         * Set Disk work folder with external files
         * @param $folderId
         * @param $storageParams
         *
         * @return bool
         */
        public function setUnpackFilesFromDisk($folderId, $storageParams)
        {
        }
        /**
         * Get file from Disk work folder with external files
         * @param $id
         *
         * @return bool|mixed
         */
        public function getUnpackFile($id)
        {
        }
        /**
         * Set export archive name
         * @param $name string [a-zA-Z0-9_] new name archive
         *
         * @return bool result of set new name
         */
        public function setArchiveName($name)
        {
        }
        /**
         * Return export name archive
         * @return string
         */
        public function getArchiveName()
        {
        }
        /**
         * Agent delete old temp export files
         * @return string
         */
        public static function clearContentAgent()
        {
        }
    }
    class AppConfiguration
    {
        private static $entityList = ['REST_APPLICATION' => 100];
        private static $accessManifest = ['total', 'app'];
        public static function getEntityList()
        {
        }
        public static function getManifestList(\Bitrix\Main\Event $event)
        {
        }
        public static function onEventExportController(\Bitrix\Main\Event $event)
        {
        }
        public static function onEventClearController(\Bitrix\Main\Event $event)
        {
        }
        public static function onEventImportController(\Bitrix\Main\Event $event)
        {
        }
        private static function checkAccessImport(\Bitrix\Main\Event $event)
        {
        }
        /**
         *
         * @param $type string of event
         * @return boolean
         */
        private static function checkRequiredParams($type)
        {
        }
        //region application
        private static function importApp($item)
        {
        }
        private static function clearApp($option)
        {
        }
        public static function exportApp($step, $setting)
        {
        }
    }
    class Helper
    {
        const TYPE_SECTION_TOTAL = 'total';
        const STRUCTURE_FILES_NAME = 'files';
        const CONFIGURATION_FILE_EXTENSION = '.json';
        const DEFAULT_ARCHIVE_NAME = 'configuration';
        const DEFAULT_ARCHIVE_FILE_EXTENSIONS = 'zip';
        protected $prefixStatisticBasic = 'DEFAULT_';
        protected $prefixAppContext = 'app';
        protected $prefixUserContext = 'configuration';
        protected $optionEnableZipMod = 'enable_mod_zip';
        protected $optionMaxImportFileSize = 'import_max_size';
        protected $optionBasicAppList = 'uses_basic_app_list';
        protected $defaultMaxSizeImport = 100;
        protected $appConfigurationFolderBackup = 'appConfiguration';
        protected $basicManifest = ['vertical_crm'];
        /** @var Helper|null  */
        private static $instance = null;
        private $sanitizer = null;
        private function __construct()
        {
        }
        /**
         * @return Helper
         */
        public static function getInstance()
        {
        }
        /**
         * Enable or not main option zip_mode nginx
         * @return bool
         */
        public function enabledZipMod()
        {
        }
        /**
         * @return integer
         */
        public function getMaxFileSize()
        {
        }
        /**
         * @param $postfix string a-zA-Z0-9_
         *
         * @return string
         */
        public function getContextUser($postfix)
        {
        }
        /**
         * Context uses action
         * @param integer $appId
         * @return string context
         */
        public function getContextAction($appId = 0)
        {
        }
        /**
         * Sanitize bad value.
         * @param string $value Bad value.
         * @param bool &$bad Return true, if value is bad.
         * @param string $splitter Splitter for bad content.
         * @return string Good value.
         */
        public function sanitize($value, &$bad = false, $splitter = ' ')
        {
        }
        public function getStorageBackupParam()
        {
        }
        public function getStorageBackup()
        {
        }
        //uses configuration app
        /**
         * @param $code string
         *
         * @return boolean
         */
        public function isBasicManifest($code)
        {
        }
        /**
         * @param $manifestCode string
         *
         * @return boolean|string
         */
        public function getBasicApp($manifestCode)
        {
        }
        /**
         * @return array [ manifestCode => appCode ]
         */
        public function getBasicAppList()
        {
        }
        /**
         * @param $manifestCode string
         * @param $appCode string
         * @return boolean
         */
        public function setBasicApp($manifestCode, $appCode)
        {
        }
        /**
         * @param $manifestCode string
         * @return boolean
         */
        public function deleteBasicApp($manifestCode)
        {
        }
        /**
         * @return boolean
         */
        public function sendStatistic()
        {
        }
        /**
         * Every day send statistic basic configuration app
         * @return string
         */
        public static function sendStatisticAgent()
        {
        }
        /**
         * check Event manifest[USES] intersect current entity[USES]
         * @param array $params all event parameters
         * @param array $uses all access uses in current entity
         *
         * @return bool
         */
        public static function checkAccessManifest($params, $uses = [])
        {
        }
    }
    /**
     * Temp work with current context for step by step action
     */
    class Setting
    {
        const SETTING_MANIFEST = 'SETTING_MANIFEST';
        const SETTING_RATIO = 'SETTING_RATIO';
        const SETTING_APP_INFO = 'APP_INFO';
        const SETTING_EXPORT_ARCHIVE_NAME = 'EXPORT_ARCHIVE_NAME';
        private $context = 'null';
        private $optionCode = '~configuration_action_setting';
        private $optionModule = 'rest';
        private $ttlContext = 14400;
        //3600*4
        /**
         * @param $context string [a-zA-Z0-9_]
         */
        public function __construct($context)
        {
        }
        /**
         * Add data in context
         *
         * @param $code string needed code setting
         * @param $data mixed any saved data
         *
         * @return boolean
         */
        public function set($code, $data)
        {
        }
        /**
         * Return needed setting by code with context
         * @param $code string
         *
         * @return mixed|null
         */
        public function get($code)
        {
        }
        /**
         * All setting with context
         *
         * @return array
         */
        public function getFull()
        {
        }
        /**
         * @param $code string
         *
         * @return boolean
         */
        public function delete($code)
        {
        }
        /**
         * @return boolean
         */
        public function deleteFull()
        {
        }
        /**
         * All setting
         *
         * @return array
         */
        private function getOption()
        {
        }
        private function saveOption($data)
        {
        }
        public function deleteOption()
        {
        }
    }
}
namespace Bitrix\Rest {
    /**
     * Class EventTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> APP_ID int mandatory
     * <li> EVENT_NAME string(255) mandatory
     * <li> EVENT_HANDLER string(255) mandatory
     * <li> USER_ID int optional
     * </ul>
     *
     * @package Bitrix\Rest
     **/
    class EventTable extends \Bitrix\Main\Entity\DataManager
    {
        const ERROR_EVENT_NOT_FOUND = 'ERROR_EVENT_NOT_FOUND';
        const TYPE_ONLINE = 'online';
        const TYPE_OFFLINE = 'offline';
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Removes all application event handlers.
         *
         * @param int $appId Application ID.
         *
         * @return Main\DB\Result
         */
        public static function deleteByApp($appId)
        {
        }
        /**
         * Removes application install event handler.
         *
         * @param int $appId Application ID.
         *
         * @return Main\DB\Result
         */
        public static function deleteAppInstaller($appId)
        {
        }
        /**
         * @deprecated
         *
         * Use \Bitrix\Rest\HandlerHelper::checkCallback
         */
        public static function checkCallback($eventCallback, $appInfo, $checkInstallUrl = true)
        {
        }
        public static function onBeforeUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onBeforeAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function bind($eventName)
        {
        }
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onAfterUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        protected static function checkUniq(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
    class OAuthService
    {
        const SERVICE_URL = BITRIXREST_URL;
        const CLIENT_TYPE = 'B';
        const REGISTER = "/oauth/register/";
        protected static $engine = null;
        /**
         * @return \Bitrix\Rest\OAuth\Engine
         */
        public static function getEngine()
        {
        }
        public static function register()
        {
        }
        public static function unregister()
        {
        }
        public static function getMemberId()
        {
        }
        public static function getRedirectUri()
        {
        }
    }
}
namespace Bitrix\Rest\APAuth {
    /**
     * @deprecated
     *
     * use \Bitrix\Rest\APAuth\PasswordTable
     */
    class Application extends \Bitrix\Main\Authentication\Application
    {
        const ID = 'rest';
        protected $validUrls = array("/rest/");
        public static function onApplicationsBuildList()
        {
        }
        /**
         * Generates AP for REST access.
         *
         * @param string $siteTitle Site title for AP description.
         *
         * @return bool|string password or false
         * @throws \Exception
         */
        public static function generateAppPassword($siteTitle, array $scopeList)
        {
        }
    }
    class Auth
    {
        const AUTH_TYPE = 'apauth';
        protected static $authQueryParams = array('UID' => 'aplogin', 'PASSWORD' => 'ap');
        protected static $integrationScope = array('crm', 'telephony', 'imopenlines');
        protected static $scopeCache = array();
        public static function onRestCheckAuth(array $query, $scope, &$res)
        {
        }
        protected static function check($auth, $scope)
        {
        }
        protected static function checkOldPassword($userId, $password)
        {
        }
        protected static function convertOldPassword($appPassword, $password)
        {
        }
        protected static function checkPermission($passwordId, $scope)
        {
        }
        protected static function getPasswordScope($passwordId)
        {
        }
    }
    /**
     * Class ApTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> USER_ID int mandatory
     * <li> AP string(50) mandatory
     * <li> ACTIVE bool optional default 'Y'
     * <li> TITLE string(255) optional
     * <li> COMMENT string(255) optional
     * <li> DATE_CREATE datetime optional
     * <li> DATE_LOGIN datetime optional
     * <li> LAST_IP string(255) optional
     * </ul>
     *
     * @package Bitrix\Rest
     **/
    class PasswordTable extends \Bitrix\Main\Entity\DataManager
    {
        const ACTIVE = 'Y';
        const INACTIVE = 'N';
        const DEFAULT_LENGTH = 16;
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        public static function generatePassword($length = self::DEFAULT_LENGTH)
        {
        }
        /**
         * Generates AP for REST access.
         *
         * @param string $siteTitle Site title for AP description.
         *
         * @return bool|string password or false
         * @throws \Exception
         */
        public static function createPassword($userId, array $scopeList, $siteTitle, $returnArray = false)
        {
        }
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
    /**
     * Class PermissionTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> PASSWORD_ID int mandatory
     * <li> PERM string(255) mandatory
     * </ul>
     *
     * @package Bitrix\Rest
     **/
    class PermissionTable extends \Bitrix\Main\Entity\DataManager
    {
        protected static $deniedPermission = array('rating', 'entity', 'placement', 'landing_cloud', \CRestUtil::GLOBAL_SCOPE);
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        public static function onPasswordDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function deleteByPasswordId($passwordId)
        {
        }
        public static function cleanPermissionList(array $permissionList)
        {
        }
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
}
namespace Bitrix\Rest {
    /**
     * Class AppTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> CLIENT_ID string(128) mandatory
     * <li> CODE string(128) mandatory
     * <li> ACTIVE bool optional default 'Y'
     * <li> INSTALLED bool optional default 'N'
     * <li> URL string(1000) mandatory
     * <li> URL_DEMO string(1000) optional
     * <li> URL_INSTALL string(1000) optional
     * <li> VERSION string(4) mandatory
     * <li> SCOPE string(2000) mandatory
     * <li> STATUS string(1) mandatory default 'F'
     * <li> DATE_FINISH date optional
     * <li> IS_TRIALED bool optional default 'N'
     * <li> SHARED_KEY string(32) optional
     * <li> CLIENT_SECRET string(100) optional
     * <li> APP_NAME string(1000) optional
     * <li> ACCESS string(2000) optional
     * </ul>
     *
     * @package Bitrix\Rest
     **/
    class AppTable extends \Bitrix\Main\Entity\DataManager
    {
        const ACTIVE = 'Y';
        const INACTIVE = 'N';
        const INSTALLED = 'Y';
        const NOT_INSTALLED = 'N';
        const TRIALED = 'Y';
        const NOT_TRIALED = 'N';
        const TYPE_STANDARD = 'N';
        const TYPE_ONLY_API = 'A';
        const TYPE_CONFIGURATION = 'C';
        const TYPE_SMART_ROBOTS = 'R';
        const STATUS_LOCAL = 'L';
        const STATUS_FREE = 'F';
        const STATUS_PAID = 'P';
        const STATUS_DEMO = 'D';
        const STATUS_TRIAL = 'T';
        const STATUS_SUBSCRIPTION = 'S';
        const PAID_NOTIFY_DAYS = 30;
        const PAID_GRACE_PERIOD = -14;
        const CACHE_TTL = 86400;
        const CACHE_PATH = '/rest/app/';
        private static $skipRemoteUpdate = false;
        protected static $licenseLang = null;
        protected static $applicationCache = array();
        protected static $localAppDeniedScope = array('landing_cloud', 'rating');
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        public static function setSkipRemoteUpdate($v)
        {
        }
        public static function onBeforeAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onAfterUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onAfterDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function install($appId)
        {
        }
        public static function uninstall($appId, $clean = 0)
        {
        }
        public static function checkUninstallAvailability($appId, $clean = 0)
        {
        }
        public static function updateAppStatusInfo()
        {
        }
        public static function callAppPaymentEvent($appId)
        {
        }
        public static function getAppStatusInfo($app, $detailUrl)
        {
        }
        public static function getAccess($appId)
        {
        }
        public static function setAccess($appId, $newRights = array())
        {
        }
        public static function getByClientId($clientId)
        {
        }
        protected static function clearClientCache($clientId)
        {
        }
        protected static function getLicenseLanguage()
        {
        }
        /**
         * Returns validators for CLIENT_ID field.
         *
         * @return array
         */
        public static function validateClientId()
        {
        }
        /**
         * Returns validators for CODE field.
         *
         * @return array
         */
        public static function validateCode()
        {
        }
        /**
         * Returns validators for URL field.
         *
         * @return array
         */
        public static function validateUrl()
        {
        }
        /**
         * Returns validators for URL_DEMO field.
         *
         * @return array
         */
        public static function validateUrlDemo()
        {
        }
        /**
         * Returns validators for URL_INSTALL field.
         *
         * @return array
         */
        public static function validateUrlInstall()
        {
        }
        /**
         * Returns validators for VERSION field.
         *
         * @return array
         */
        public static function validateVersion()
        {
        }
        /**
         * Returns validators for SCOPE field.
         *
         * @return array
         */
        public static function validateScope()
        {
        }
        /**
         * Returns validators for SHARED_KEY field.
         *
         * @return array
         */
        public static function validateSharedKey()
        {
        }
        /**
         * Returns validators for APP_SECRET_ID field.
         *
         * @return array
         */
        public static function validateClientSecret()
        {
        }
        /**
         * Returns validators for APP_NAME field.
         *
         * @return array
         */
        public static function validateAppName()
        {
        }
        /**
         * Returns validators for ACCESS field.
         *
         * @return array
         */
        public static function validateAccess()
        {
        }
        public static function cleanLocalPermissionList(array $permissionList)
        {
        }
        public static function canUninstallByType($code, $version = false)
        {
        }
        public static function getAppType($code, $version = false)
        {
        }
    }
}
namespace Bitrix\Rest\OAuth {
    class Engine
    {
        protected $scope = array("rest", "application");
        protected $client = null;
        public function __construct()
        {
        }
        /**
         * @return \Bitrix\Rest\OAuth\Client
         */
        public function getClient()
        {
        }
        public function isRegistered()
        {
        }
        public function getClientId()
        {
        }
        public function getClientSecret()
        {
        }
        public function setAccess(array $accessParams)
        {
        }
        public function clearAccess()
        {
        }
        public function getLicense()
        {
        }
    }
    class Auth
    {
        const AUTH_TYPE = 'oauth';
        const CACHE_TTL = 3600;
        const CACHE_PREFIX = "oauth_";
        const PARAM_LOCAL_USER = 'LOCAL_USER';
        const PARAM_TZ_OFFSET = 'TZ_OFFSET';
        /**
         * @var AuthStorageInterface
         */
        protected static $storage = null;
        protected static $authQueryParams = array('auth', 'access_token');
        protected static $authQueryAdditional = array('auth_connector');
        /**
         * @deprecated Use \Bitrix\Rest\Application::getAuthProvider()->authorizeClient()
         */
        public static function authorizeClient($clientId, $userId, $state = '')
        {
        }
        /**
         * @deprecated Use \Bitrix\Rest\Application::getAuthProvider()->get()
         */
        public static function get($clientId, $scope, $additionalParams, $userId)
        {
        }
        public static function storeRegisteredAuth(array $tokenInfo)
        {
        }
        public static function onRestCheckAuth(array $query, $scope, &$res)
        {
        }
        public static function getAuthKey(array $query)
        {
        }
        public static function updateTokenParameters($tokenInfo)
        {
        }
        protected static function check($accessToken)
        {
        }
        protected static function getTokenParams($additionalParams, $userId)
        {
        }
        /**
         * @return AuthStorageInterface
         */
        public static function getStorage()
        {
        }
        /**
         * @param AuthStorageInterface $storage
         */
        public static function setStorage(\Bitrix\Rest\AuthStorageInterface $storage)
        {
        }
    }
}
namespace Bitrix\Rest {
    interface AuthStorageInterface
    {
        public function store(array $authResult);
        public function rewrite(array $authResult);
        public function restore($accessToken);
    }
}
namespace Bitrix\Rest\OAuth {
    class StorageCache implements \Bitrix\Rest\AuthStorageInterface
    {
        const CACHE_TTL = 3600;
        const CACHE_PREFIX = "oauth_";
        public function store(array $authResult)
        {
        }
        public function rewrite(array $authResult)
        {
        }
        public function restore($accessToken)
        {
        }
        protected function getCacheId($accessToken)
        {
        }
        protected function getCache()
        {
        }
    }
}
namespace Bitrix\Rest {
    interface AuthProviderInterface
    {
        public function authorizeClient($clientId, $userId, $state = '');
        public function get($clientId, $scope, $additionalParams, $userId);
    }
}
namespace Bitrix\Rest\OAuth {
    class Provider implements \Bitrix\Rest\AuthProviderInterface
    {
        /**
         * @var Provider
         */
        protected static $instance = null;
        public static function instance()
        {
        }
        public function authorizeClient($clientId, $userId, $state = '')
        {
        }
        public function get($clientId, $scope, $additionalParams, $userId)
        {
        }
        protected function getClient()
        {
        }
        protected function getTokenParams($additionalParams, $userId)
        {
        }
    }
    class Client
    {
        const SERVICE_URL = BITRIXREST_URL;
        const SERVICE_PATH = "/rest/";
        const METHOD_METHODS = 'methods';
        const METHOD_BATCH = 'batch';
        const METHOD_APPLICATION_ADD = 'application.add';
        const METHOD_APPLICATION_UPDATE = 'application.update';
        const METHOD_APPLICATION_DELETE = 'application.delete';
        const METHOD_APPLICATION_INSTALL = 'application.install';
        const METHOD_APPLICATION_INSTALL_SUBSCRIPTION = 'application.install.subscription';
        const METHOD_APPLICATION_UNINSTALL = 'application.uninstall';
        const METHOD_APPLICATION_STAT = 'application.stat';
        const METHOD_APPLICATION_LIST = 'application.list';
        const METHOD_APPLICATION_USAGE = 'application.usage.add';
        const METHOD_APPLICATION_VERSION_UPDATE = 'application.version.update';
        const METHOD_APPLICATION_VERSION_DELETE = 'application.version.delete';
        const METHOD_REST_AUTHORIZE = 'rest.authorize';
        const METHOD_REST_CHECK = 'rest.check';
        const METHOD_REST_CODE = 'rest.code';
        const METHOD_REST_EVENT_CALL = 'rest.event.call';
        const HTTP_SOCKET_TIMEOUT = 10;
        const HTTP_STREAM_TIMEOUT = 10;
        protected $clientId;
        protected $clientSecret;
        protected $licenseKey;
        public function __construct($clientId, $clientSecret, $licenseKey)
        {
        }
        protected function prepareRequestData($additionalParams)
        {
        }
        protected function prepareRequest($additionalParams, $licenseCheck = false)
        {
        }
        protected function prepareResponse($result)
        {
        }
        protected function getHttpClient()
        {
        }
        protected function getRequestUrl($methodName)
        {
        }
        /**
         * Low-level function for REST method call. Returns method response.
         *
         * @param string $methodName Method name.
         * @param array|null $additionalParams Method params.
         * @param bool|false $licenseCheck Send license key in request (will be sent automatically on verification_needed error).
         *
         * @return bool|mixed
         *
         * @throws SystemException
         */
        public function call($methodName, $additionalParams = null, $licenseCheck = false)
        {
        }
        public function batch($actions)
        {
        }
        public function addApplication(array $applicationSettings)
        {
        }
        public function updateApplication(array $applicationSettings)
        {
        }
        public function deleteApplication(array $applicationSettings)
        {
        }
        public function installApplication(array $applicationSettings)
        {
        }
        public function unInstallApplication(array $applicationSettings)
        {
        }
        public function getAuth($clientId, $scope, array $additionalParams = array())
        {
        }
        public function checkAuth($accessToken)
        {
        }
        public function getCode($clientId, $state, $additionalParams)
        {
        }
        public function getApplicationList()
        {
        }
        public function sendApplicationUsage(array $usage)
        {
        }
        public function sendEvent(array $eventItems)
        {
        }
    }
}
namespace Bitrix\Rest\Preset {
    /**
     * Class EventController
     * @package Bitrix\Rest\Preset
     */
    class EventController
    {
        private static $skipMode = false;
        private static $tmpAppList = [];
        private static $tmpUsesLangAppList = [];
        private static $tmpApList = [];
        private static $tmpApPermissionList = [];
        /**
         * Turn off all event in class.
         * @return bool
         */
        public static function disableEvents()
        {
        }
        /**
         * Turn on all event in class.
         * @return bool
         */
        public static function enableEvents()
        {
        }
        /**
         * Event on after add application. Create integration for external create local application.
         *
         * @param Event $event
         */
        public static function onAddApp(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Event on after add application lang. Create integration for external create local application lang.
         *
         * @param Event $event
         */
        public static function onAddAppLang(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Event on after add out-webhook. Create integration for external create out-webhook.
         *
         * @param Event $event
         */
        public static function onAfterAddEvent(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Event on after add webhook. Create integration for external create webhook.
         *
         * @param Event $event
         */
        public static function onAfterAddAp(\Bitrix\Main\Event $event)
        {
        }
        /**
         * Event on after add webhook permission. Create integration for external create webhook permission.
         *
         * @param Event $event
         */
        public static function onAfterAddApPermission(\Bitrix\Main\Event $event)
        {
        }
    }
    /**
     * Class IntegrationTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ELEMENT_CODE string(256) mandatory
     * <li> TITLE string(256) mandatory
     * <li> METHOD string(64) optional
     * <li> PASSWORD_ID int optional
     * <li> SCOPE string optional
     * <li> QUERY string optional
     * <li> OUTGOING_EVENTS string optional
     * <li> OUTGOING_NEEDED string(1) optional
     * <li> WIDGET_NEEDED string(1) optional
     * <li> WIDGET_HANDLER_URL string(2048) optional
     * <li> WIDGET_LIST string optional
     * <li> APPLICATION_TOKEN string(50) optional
     * <li> APPLICATION_NEEDED string(1) optional
     * <li> BOT_ID int optional
     * <li> BOT_HANDLER_URL string optional
     * </ul>
     *
     **/
    class IntegrationTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for USER_ID field.
         *
         * @return array
         */
        public static function validateUser()
        {
        }
        /**
         * Returns validators for ELEMENT_CODE field.
         *
         * @return array
         */
        public static function validateElementCode()
        {
        }
        /**
         * Returns validators for TITLE field.
         *
         * @return array
         */
        public static function validateTitle()
        {
        }
        /**
         * Returns validators for PASSWORD_ID field.
         *
         * @return array
         */
        public static function validatePassword()
        {
        }
        /**
         * Returns validators for APP_ID field.
         *
         * @return array
         */
        public static function validateApp()
        {
        }
        /**
         * Returns validators for OUTGOING_NEEDED field.
         *
         * @return array
         */
        public static function validateOutgoingQueryNeeded()
        {
        }
        /**
         * Returns validators for OUTGOING_HANDLER_URL field.
         *
         * @return array
         */
        public static function validateOutgoingHandlerUrl()
        {
        }
        /**
         * Returns validators for WIDGET_NEEDED field.
         *
         * @return array
         */
        public static function validateWidgetNeeded()
        {
        }
        /**
         * Returns validators for WIDGET_HANDLER_URL field.
         *
         * @return array
         */
        public static function validateWidgetHandlerUrl()
        {
        }
        /**
         * Returns validators for APPLICATION_TOKEN field.
         *
         * @return array
         */
        public static function validateApplicationToken()
        {
        }
        /**
         * Returns validators for APPLICATION_NEEDED field.
         *
         * @return array
         */
        public static function validateApplicationNeeded()
        {
        }
        /**
         * Returns validators for APPLICATION_ONLY_API field.
         *
         * @return array
         */
        public static function validateApplicationOnlyApi()
        {
        }
        /**
         * Returns validators for BOT_HANDLER_URL field.
         *
         * @return array
         */
        public static function validateBotHandlerUrl()
        {
        }
    }
    /**
     * Class Provider
     * @package Bitrix\Rest\Preset
     */
    class Provider
    {
        public const URI_METHOD_INFO = 'https://util.bitrixsoft.com/example_b24/redirect.php';
        public const URI_EXAMPLE_DOWNLOAD = 'https://util.bitrixsoft.com/example_b24/';
        public const APP_MODE_SERVER = 'SERVER';
        public const APP_MODE_ZIP = 'ZIP';
        /**
         * @param $id
         *
         * @return array
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         */
        public static function deleteIntegration($id)
        {
        }
        /**
         * @param $id
         *
         * @return array
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         */
        public static function getIntegration($id)
        {
        }
        /**
         * @param $requestData
         * @param string $elementCode
         * @param int $id
         *
         * @return array
         * @throws SystemException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         * @throws \Bitrix\Main\ObjectPropertyException
         */
        public static function saveIntegration($requestData, $elementCode = '', $id = 0)
        {
        }
        private static function saveApp($data)
        {
        }
        private static function getWebHook($scopeList = [], $id = 0, $title = '')
        {
        }
        private static function deleteWebHook($id)
        {
        }
    }
}
namespace Bitrix\Rest\Preset\Data {
    /**
     * Class Element
     * @package Bitrix\Rest\Preset\Data
     */
    class Element
    {
        private const CACHE_TIME = 86400;
        private const CACHE_DIR = '/rest/integration/element/';
        public const DEFAULT_APPLICATION = 'application';
        public const DEFAULT_IN_WEBHOOK = 'in-hook';
        public const DEFAULT_OUT_WEBHOOK = 'out-hook';
        /**
         * @param $code string
         *
         * @return array
         * @throws ArgumentException
         */
        public static function get($code) : array
        {
        }
        /**
         * @param $sectionCode string
         *
         * @return array
         * @throws ArgumentException
         */
        public static function getList($sectionCode) : array
        {
        }
    }
    /**
     * Class Section
     * @package Bitrix\Rest\Preset\Data
     */
    class Section
    {
        private const CACHE_TIME = 86400;
        private const CACHE_DIR = '/rest/integration/section/';
        /**
         * @return array
         * @throws ArgumentException
         */
        public static function get() : array
        {
        }
    }
    /**
     * Class Webhook
     * @package Bitrix\Rest\Preset\Data
     */
    class Webhook
    {
        private const CACHE_TIME = 86400;
        private const CACHE_DIR = '/rest/integration/data/webhook/';
        /**
         * @return array
         */
        public static function getList() : array
        {
        }
    }
    /**
     * Class Placement
     * @package Bitrix\Rest\Preset\Dictionary
     */
    class Placement
    {
        private const CACHE_TIME = 86400;
        private const CACHE_DIR = '/rest/integration/data/placement/';
        /**
         * @return array
         */
        public static function getList() : array
        {
        }
    }
    /**
     * Class Rest
     * @package Bitrix\Rest\Preset\Data
     */
    class Rest
    {
        public const SCOPE = 'SCOPE';
        public const METHOD = 'METHOD';
        public const PLACEMENT = 'PLACEMENT';
        public const EVENT = 'EVENT';
        private const CACHE_TIME = 86400;
        private const CACHE_DIR = '/rest/integration/data/rest/';
        /**
         * @return array
         */
        public static function getAllBasicDescription() : array
        {
        }
        /**
         * @param $scopeList
         *
         * @return array
         */
        public static function getAccessPlacement($scopeList) : array
        {
        }
        /**
         * @return array
         */
        public static function getBaseMethod() : array
        {
        }
        /**
         * @return array
         */
        public static function getScope() : array
        {
        }
    }
}
namespace Bitrix\Rest {
    /**
     * Class UsageEntityTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> ENTITY_TYPE string(1) mandatory
     * <li> ENTITY_ID int mandatory
     * <li> ENTITY_CODE string(255) mandatory
     * <li> SUB_ENTITY_TYPE string(1) optional
     * <li> SUB_ENTITY_NAME string(255) optional
     * </ul>
     *
     * @package Bitrix\Rest
     **/
    class UsageEntityTable extends \Bitrix\Main\Entity\DataManager
    {
        const ENTITY_TYPE_APPLICATION = 'A';
        const ENTITY_TYPE_WEBHOOK = 'W';
        const SUB_ENTITY_TYPE_METHOD = 'M';
        const SUB_ENTITY_TYPE_EVENT = 'E';
        const SUB_ENTITY_TYPE_PLACEMENT = 'P';
        const SUB_ENTITY_TYPE_ROBOT = 'R';
        const SUB_ENTITY_TYPE_ACTIVITY = 'A';
        const SUB_ENTITY_TYPE_CONFIGURATION = 'C';
        const SUB_ENTITY_TYPE_SEND_MESSAGE = 'S';
        const SUB_ENTITY_TYPE_LANDING = 'L';
        protected static $info = array();
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * @param string $entityType
         * @param string $entityId
         * @return array
         */
        protected static function getEntityInfo($entityType, $entityId)
        {
        }
        /**
         * Returns entity autogenerated ID.
         *
         * @param string $entityType
         * @param string $entityId
         * @param string $subEntityType
         * @param string $subEntityName
         * @return int|false
         * @throws SqlQueryException
         */
        public static function register($entityType, $entityId, $subEntityType, $subEntityName)
        {
        }
        /**
         * Returns validators for ENTITY_TYPE field.
         *
         * @return array
         */
        public static function validateEntityType()
        {
        }
        /**
         * Returns validators for ENTITY_CODE field.
         *
         * @return array
         */
        public static function validateEntityCode()
        {
        }
        /**
         * Returns validators for SUB_ENTITY_TYPE field.
         *
         * @return array
         */
        public static function validateSubEntityType()
        {
        }
        /**
         * Returns validators for SUB_ENTITY_NAME field.
         *
         * @return array
         */
        public static function validateSubEntityName()
        {
        }
    }
}
namespace Bitrix\Rest\Integration {
    class ModificationFieldsBase
    {
        const TO_WHITE_LIST = 0x10;
        const TO_CAMEL = 0x20;
        const TO_SNAKE = 0x30;
        const SORTING_KEYS = 0x40;
        const CHECK_REQUIRED = 0x50;
        protected $data;
        protected $name;
        protected $format;
        protected $manager;
        protected $arguments;
        protected $controller;
        public function __construct(\Bitrix\Rest\Integration\ViewManager $manager, $data = [])
        {
        }
        /**
         * @return ViewManager
         */
        public function getManager()
        {
        }
        public function getName()
        {
        }
        public function getArguments()
        {
        }
        public function setArguments($arguments)
        {
        }
        public function getController()
        {
        }
        public function getData()
        {
        }
        protected function getView(\Bitrix\Main\Engine\Controller $controller)
        {
        }
    }
    /**
     * Class Externalizer
     * @package Bitrix\Catalog\Rest
     * externalizer for working with named lists | answers
     */
    final class Externalizer extends \Bitrix\Rest\Integration\ModificationFieldsBase implements \Bitrix\Main\Type\Contract\Arrayable
    {
        public function __construct(\Bitrix\Rest\Integration\ViewManager $manager, $data = [])
        {
        }
        public function process()
        {
        }
        public function toArray()
        {
        }
        protected function multiSortKeysArray(array $data)
        {
        }
        /**
         * @param $data
         * @return array
         * the externalizer works only with a NOT named list. list id is not supported
         */
        private function externalize($fields)
        {
        }
        /**
         * @param $data
         * @return int|null|string
         * array key is required
         */
        private function getIdList($data)
        {
        }
        protected function convertKeysToCamelCase($fields)
        {
        }
        public function getPage(\Bitrix\Main\Engine\Response\DataType\Page $page)
        {
        }
    }
    abstract class ViewManager
    {
        public function __construct(\Bitrix\Main\Engine\Action $controllerAction)
        {
        }
        /**
         * @return \Bitrix\Main\Engine\Action
         */
        public function getControllerAction()
        {
        }
        /**
         * @param Controller $controller
         * @return Base
         */
        public abstract function getView(\Bitrix\Main\Engine\Controller $controller);
    }
    class SaleViewManager extends \Bitrix\Rest\Integration\ViewManager
    {
        /**
         * @param Controller $controller
         * @return View\Base
         * @throws RestException
         */
        public function getView(\Bitrix\Main\Engine\Controller $controller)
        {
        }
    }
}
namespace Bitrix\Rest\Integration\View {
    class Attributes
    {
        const UNDEFINED = '';
        const HIDDEN = 'HID';
        const READONLY = 'R-O';
        const IMMUTABLE = 'IM';
        //User can define field value only on create
        const REQUIRED = 'REQ';
        const MULTIPLE = 'MUL';
        const DYNAMIC = 'DYN';
        const COMPUTABLE = 'COM';
        const DEPRECATED = 'DEP';
    }
    class DataType
    {
        const TYPE_INT = 'integer';
        const TYPE_FLOAT = 'double';
        const TYPE_STRING = 'string';
        const TYPE_CHAR = 'char';
        const TYPE_LIST = 'list';
        const TYPE_TEXT = 'text';
        const TYPE_FILE = 'file';
        const TYPE_DATE = 'date';
        const TYPE_DATETIME = 'datetime';
        const TYPE_DATATYPE = 'datatype';
        const TYPE_PRODUCT_PROPERTY = 'productproperty';
    }
}
namespace Bitrix\Rest\Integration {
    final class CatalogViewManager extends \Bitrix\Rest\Integration\ViewManager
    {
        /**
         * @param Controller $controller
         * @return Base
         * @throws RestException
         */
        public function getView(\Bitrix\Main\Engine\Controller $controller)
        {
        }
    }
    final class Internalizer extends \Bitrix\Rest\Integration\ModificationFieldsBase
    {
        public function __construct(\Bitrix\Rest\Integration\ViewManager $manager, $data = [])
        {
        }
        /**
         * @return Result
         */
        public function process()
        {
        }
        protected function convertToSnakeCase($arguments = [])
        {
        }
        private function internalize($arguments)
        {
        }
        protected function check($arguments)
        {
        }
    }
}
namespace Bitrix\Rest {
    /**
     * Class StatMethodTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> NAME string(255) mandatory
     * <li> METHOD_TYPE enum optional default 'M'
     * </ul>
     *
     * @package Bitrix\Rest
     **/
    class StatMethodTable extends \Bitrix\Main\Entity\DataManager
    {
        const METHOD_TYPE_METHOD = 'M';
        const METHOD_TYPE_EVENT = 'E';
        const METHOD_TYPE_PLACEMENT = 'P';
        const METHOD_TYPE_ROBOT = 'R';
        const METHOD_TYPE_ACTIVITY = 'A';
        protected static $methodCache = null;
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for NAME field.
         *
         * @return array
         */
        public static function validateName()
        {
        }
        public static function getId($methodName)
        {
        }
        public static function checkList($methodList, $methodType = self::METHOD_TYPE_METHOD)
        {
        }
        protected static function addMethod($methodName, $methodType)
        {
        }
        protected static function loadFromCache($force = false)
        {
        }
    }
    /**
     * Class AppLogTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> TIMESTAMP_X datetime mandatory default 'CURRENT_TIMESTAMP'
     * <li> APP_ID int mandatory
     * <li> ACTION_TYPE string(50) mandatory
     * <li> USER_ID int mandatory
     * <li> USER_ADMIN bool optional default 'Y'
     * </ul>
     *
     * @package Bitrix\Rest
     **/
    class AppLogTable extends \Bitrix\Main\Entity\DataManager
    {
        const ACTION_TYPE_ADD = 'ADD';
        const ACTION_TYPE_INSTALL = 'INSTALL';
        const ACTION_TYPE_UPDATE = 'UPDATE';
        const ACTION_TYPE_UNINSTALL = 'UNINSTALL';
        const USER_ADMIN = 'Y';
        const USER_NOT_ADMIN = 'N';
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        public static function log($appId, $action)
        {
        }
    }
}
namespace Bitrix\Rest\SessionAuth {
    class Auth
    {
        const AUTH_TYPE = 'sessionauth';
        protected static $authQueryParams = array('sessid');
        public static function isAccessAllowed() : bool
        {
        }
        public static function onRestCheckAuth(array $query, $scope, &$res)
        {
        }
        private static function setLastActivityDate($userId, $query)
        {
        }
        protected static function requireHttpAuth()
        {
        }
        protected static function checkHttpAuth()
        {
        }
        protected static function checkCookieAuth()
        {
        }
    }
}
namespace Bitrix\Rest\Marketplace {
    class MarketplaceActions
    {
        public static function getItems($placement, $userLang)
        {
        }
    }
}
namespace Bitrix\Rest\Marketplace\Urls {
    class Templates
    {
        protected $directory = "marketplace/";
        protected $pages = ["index" => "", "list" => "list/", "detail" => "detail/#ID#/", "edit" => "edit/#ID#/"];
        private static $localDir = null;
        public static final function getInstance()
        {
        }
        /**
         * @param $url string
         * @param $from string
         *
         * @return string
         */
        public function addUrlFrom($url, $from) : string
        {
        }
        public function getIndexUrl($from = '')
        {
        }
        public function getDetailUrl($id = null, $from = '')
        {
        }
        public function getEditUrl($id = null)
        {
        }
        public function getDir()
        {
        }
        protected function getReplacedId(string $url, $id = null)
        {
        }
        protected function getReplaced(string $url, $replace = null, $subject = null)
        {
        }
    }
    class Marketplace extends \Bitrix\Rest\Marketplace\Urls\Templates
    {
        protected $directory = "marketplace/";
        protected $pages = ["index" => "", "list" => "installed/", "detail" => "detail/#ID#/", "category" => "category/#ID#/", "placement_view" => "view/#APP#/", "placement" => "placement/#PLACEMENT_ID#/", "booklet" => "booklet/#CODE#/"];
        public function getCategoryUrl($id = null)
        {
        }
        public function getPlacementUrl($placementId, $params)
        {
        }
        public function getBooklet($code = null, $from = '')
        {
        }
        public function getPlacementViewUrl($appCode, $params)
        {
        }
    }
    class Application extends \Bitrix\Rest\Marketplace\Urls\Templates
    {
        protected $directory = "marketplace/app/";
        protected $pages = ["index" => "", "list" => "", "detail" => "#ID#/", "edit" => "edit/#ID#/"];
    }
    class LocalApplication extends \Bitrix\Rest\Marketplace\Urls\Templates
    {
        protected $directory = "marketplace/local/";
        protected $pages = ["index" => "", "list" => "list/", "detail" => "detail/#ID#/", "edit" => "edit/#ID#/"];
    }
    class Configuration extends \Bitrix\Rest\Marketplace\Urls\Templates
    {
        protected $directory = 'marketplace/configuration/';
        protected $pages = ['index' => '', 'placement' => 'placement/#PLACEMENT_CODE#/', 'section' => 'section/#MANIFEST_CODE#/', 'import' => 'import/', 'import_app' => 'import/#APP_CODE#/', 'import_rollback' => 'import_rollback/#APP#/', 'import_manifest' => 'import_#MANIFEST_CODE#/', 'export' => 'export_#MANIFEST_CODE#/', 'export_element' => 'export_#MANIFEST_CODE#/#ITEM_CODE#/'];
        public function getPlacement($code = null, $context = null)
        {
        }
        public function getSection($manifestCode = null)
        {
        }
        public function getImport()
        {
        }
        public function getImportManifest($manifestCode)
        {
        }
        public function getImportApp($code = null)
        {
        }
        public function getImportRollback($appCode)
        {
        }
        public function getExport($manifestCode = null)
        {
        }
        public function getExportElement($manifestCode = null, $itemCode = null)
        {
        }
        protected function getReplaced(string $url, $replace = null, $subject = null)
        {
        }
    }
}
namespace Bitrix\Rest\Marketplace {
    class Url
    {
        public static function getCategoryUrl($id = null)
        {
        }
        public static function getApplicationDetailUrl($id = null, $from = '')
        {
        }
        public static function getApplicationUrl($id = null)
        {
        }
        /**
         * @see \Bitrix\Rest\Url\DevOps
         * @deprecated
         */
        public static function getApplicationAddUrl()
        {
        }
        public static function getWidgetAddUrl()
        {
        }
        public static function getApplicationPlacementUrl($placementId = null, $params = null)
        {
        }
        public static function getApplicationPlacementViewUrl($appCode = null, $params = null)
        {
        }
        public static function getMarketplaceUrl($from = '')
        {
        }
        public static function getBookletUrl($code = null, $from = '')
        {
        }
        public static function getConfigurationUrl()
        {
        }
        public static function getConfigurationPlacementUrl($code = null, $context = null)
        {
        }
        public static function getConfigurationSectionUrl($manifestCode = null)
        {
        }
        public static function getConfigurationImportUrl()
        {
        }
        public static function getConfigurationImportManifestUrl($code)
        {
        }
        public static function getConfigurationImportAppUrl($code = null)
        {
        }
        public static function getConfigurationImportRollbackUrl($appCode)
        {
        }
        public static function getConfigurationExportUrl($manifestCode = null)
        {
        }
        public static function getConfigurationExportElementUrl($manifestCode = null, $itemCode = null)
        {
        }
    }
    class Transport
    {
        const SERVICE_URL = REST_MARKETPLACE_URL;
        const SOCKET_TIMEOUT = 10;
        const STREAM_TIMEOUT = 10;
        const METHOD_GET_LAST = 'get_last';
        const METHOD_GET_DEV = 'get_dev';
        const METHOD_GET_BEST = 'get_best';
        const METHOD_GET_SALE_OUT = 'get_sale_out';
        const METHOD_GET_BUY = 'get_buy';
        const METHOD_GET_UPDATES = 'get_updates';
        const METHOD_GET_CATEGORIES = 'get_categories';
        const METHOD_GET_CATEGORY = 'get_category';
        const METHOD_GET_TAG = 'get_tag';
        const METHOD_GET_APP = 'get_app';
        const METHOD_GET_APP_PUBLIC = 'get_app_public';
        const METHOD_GET_INSTALL = 'get_app_install';
        const METHOD_SET_INSTALL = 'is_installed';
        const METHOD_SEARCH_APP = 'search_app';
        const METHOD_FILTER_APP = 'search_app_adv';
        protected static $instance = null;
        /**
         * Resturns class instance.
         *
         * @return \Bitrix\Rest\Marketplace\Transport
         */
        public static function instance()
        {
        }
        public function __construct()
        {
        }
        public function call($method, $fields = array())
        {
        }
        public function batch($actions)
        {
        }
        protected function prepareQuery($method, $fields)
        {
        }
        protected function prepareAnswer($response)
        {
        }
    }
    class Client
    {
        const CATEGORIES_CACHE_TTL = REST_MP_CATEGORIES_CACHE_TTL;
        protected static $buyLinkList = array('bitrix24' => '/settings/order/make.php?limit=#NUM#&module=#CODE#', 'ru' => 'https://marketplace.1c-bitrix.ru/tobasket.php?ID=#CODE#&limit=#NUM#&b24=y', 'en' => 'https://store.bitrix24.com/tobasket.php?ID=#CODE#&limit=#NUM#&b24=y', 'de' => 'https://store.bitrix24.de/tobasket.php?ID=#CODE#&limit=#NUM#&b24=y', 'ua' => 'https://marketplace.1c-bitrix.ua/tobasket.php?ID=#CODE#&limit=#NUM#&b24=y');
        private static $appTop = null;
        public static function getTop($action, $fields = array())
        {
        }
        public static function getBuy($codeList)
        {
        }
        public static function getUpdates($codeList)
        {
        }
        public static function setAvailableUpdate($updateList = array())
        {
        }
        public static function getAvailableUpdate($code = false)
        {
        }
        public static function getAvailableUpdateNum()
        {
        }
        /**
         * Return marketplace category query result
         * @param bool $forceReload
         *
         * @return array
         */
        public static function getCategoriesFull($forceReload = false)
        {
        }
        /**
         * Return marketplace category items
         * @param bool $forceReload
         *
         * @return array
         */
        public static function getCategories($forceReload = false)
        {
        }
        public static function getCategory($code, $page = false, $pageSize = false)
        {
        }
        public static function getByTag($tag, $page = false, $pageSize = false)
        {
        }
        public static function getLastByTag($tag, $page = false, $pageSize = false)
        {
        }
        public static function getApp($code, $version = false, $checkHash = false, $installHash = false)
        {
        }
        public static function getAppPublic($code, $version = false, $checkHash = false, $installHash = false)
        {
        }
        public static function filterApp($fields, $page = false)
        {
        }
        public static function searchApp($q, $page = false)
        {
        }
        public static function getInstall($code, $version = false, $checkHash = false, $installHash = false)
        {
        }
        public static function getBuyLink($num, $appCode)
        {
        }
        public static function getNumUpdates()
        {
        }
        public static function getTagByPlacement($placement)
        {
        }
        public static function getTagByAppType($type)
        {
        }
        /**
         * @return bool
         */
        public static function isSubscriptionAvailable()
        {
        }
        /**
         * @return \Bitrix\Main\Type\Date
         */
        public static function getSubscriptionFinalDate()
        {
        }
    }
}
namespace Bitrix\Rest {
    class EventOfflineQuery extends \Bitrix\Main\Entity\Query
    {
        public function getMarkQuery($processId)
        {
        }
    }
    /**
     * Class EventOfflineTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> TIMESTAMP_X datetime optional default 'CURRENT_TIMESTAMP'
     * <li> MESSAGE_ID varchar(100) mandatory
     * <li> APP_ID int mandatory
     * <li> EVENT_NAME string(255) mandatory
     * <li> EVENT_DATA string optional
     * <li> PROCESS_ID string(255) optional
     * <li> CONNECTOR_ID string(255) optional
     * </ul>
     *
     * @package Bitrix\Rest
     **/
    class EventOfflineTable extends \Bitrix\Main\Entity\DataManager
    {
        const PROCESS_ID_LIFETIME = 2952000;
        // 30 days
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        public static function cleanProcessAgent()
        {
        }
        public static function callEvent($fields)
        {
        }
        public static function markEvents($filter, $order, $limit)
        {
        }
        public static function clearEvents($processId, $appId, $connectorId, $listIds = false)
        {
        }
        public static function clearEventsByMessageId($processId, $appId, $connectorId, $listIds = false)
        {
        }
        public static function markError($processId, $appId, $connectorId, array $listIds)
        {
        }
        protected static function getProcessId()
        {
        }
        protected static function getMessageId($fields)
        {
        }
    }
}
namespace Bitrix\Rest\Url {
    class Base
    {
        protected $directory = '';
        protected $pages = [];
        public static final function getInstance()
        {
        }
        protected function getDir()
        {
        }
        protected function getReplaced(string $url, $replace = null, $subject = null)
        {
        }
        protected function addParams($url, $params)
        {
        }
        protected function getUrl($page, $replace = null, $subject = null, $query = null)
        {
        }
    }
    class DevOps extends \Bitrix\Rest\Url\Base
    {
        protected $directory = 'devops/';
        protected $pages = ['index' => '', 'statistic' => 'statistic/', 'list' => 'list/', 'section' => 'section/#SECTION_CODE#/', 'edit' => 'edit/#ELEMENT_CODE#/#ID#/', 'iframe' => 'iframe/'];
        public function getIndexUrl()
        {
        }
        public function getStatisticUrl()
        {
        }
        public function getListUrl()
        {
        }
        public function getIframeUrl($query = null)
        {
        }
        public function getIntegrationSectionUrl($code = null)
        {
        }
        public function getIntegrationEditUrl($id = null, $elementCode = null)
        {
        }
    }
}
namespace Bitrix\Rest\Controller {
    class Configuration extends \Bitrix\Main\Engine\Controller
    {
        /**
         * Download zip export.
         * @return Archive
         */
        public function downloadAction()
        {
        }
        public function getDefaultPreFilters()
        {
        }
    }
}
namespace Bitrix\Rest {
    class OAuthException extends \Bitrix\Rest\RestException
    {
        protected $result;
        /**
         * OAuthException constructor.
         * @param string|array $oauthResult
         * @param \Exception|null $previous
         */
        public function __construct($oauthResult, \Exception $previous = null)
        {
        }
        public function getErrorCode()
        {
        }
    }
    class HandlerHelper
    {
        const ERROR_UNSUPPORTED_PROTOCOL = 'ERROR_UNSUPPORTED_PROTOCOL';
        const ERROR_WRONG_HANDLER_URL = 'ERROR_WRONG_HANDLER_URL';
        const ERROR_HANDLER_URL_MATCH = 'ERROR_HANDLER_URL_MATCH';
        protected static $applicationList = array();
        /**
         * Checks callback URL validity.
         *
         * @param string $handlerUrl Callback URL.
         * @param array $appInfo Application info.
         * @param bool|true $checkInstallUrl Flag, whether to check URL_INSTALL field.
         *
         * @return bool
         *
         * @throws RestException
         */
        public static function checkCallback($handlerUrl, $appInfo = array(), $checkInstallUrl = true)
        {
        }
        public static function storeApplicationList($PLACEMENT, $applicationList)
        {
        }
        public static function getApplicationList($PLACEMENT)
        {
        }
    }
    /**
     * Class UsageStatTable
     *
     * Fields:
     * <ul>
     * <li> STAT_DATE date mandatory
     * <li> ENTITY_ID int mandatory
     * <li> IS_SENT bool optional default 'N'
     * <li> HOUR_0 int mandatory
     * <li> HOUR_1 int mandatory
     * <li> HOUR_2 int mandatory
     * <li> HOUR_3 int mandatory
     * <li> HOUR_4 int mandatory
     * <li> HOUR_5 int mandatory
     * <li> HOUR_6 int mandatory
     * <li> HOUR_7 int mandatory
     * <li> HOUR_8 int mandatory
     * <li> HOUR_9 int mandatory
     * <li> HOUR_10 int mandatory
     * <li> HOUR_11 int mandatory
     * <li> HOUR_12 int mandatory
     * <li> HOUR_13 int mandatory
     * <li> HOUR_14 int mandatory
     * <li> HOUR_15 int mandatory
     * <li> HOUR_16 int mandatory
     * <li> HOUR_17 int mandatory
     * <li> HOUR_18 int mandatory
     * <li> HOUR_19 int mandatory
     * <li> HOUR_20 int mandatory
     * <li> HOUR_21 int mandatory
     * <li> HOUR_22 int mandatory
     * <li> HOUR_23 int mandatory
     * </ul>
     *
     * @package Bitrix\Rest
     **/
    class UsageStatTable extends \Bitrix\Main\Entity\DataManager
    {
        protected static $data = array();
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        public static function log(\CRestServer $server)
        {
        }
        public static function logHookMethod($passwordID, $methodName)
        {
        }
        public static function logMethod($clientId, $methodName)
        {
        }
        public static function logEvent($clientId, $eventName)
        {
        }
        public static function logPlacement($clientId, $placementName)
        {
        }
        public static function logRobot($clientId, $clientCode)
        {
        }
        public static function logActivity($clientId, $clientCode)
        {
        }
        public static function logConfiguration($clientId, $clientCode)
        {
        }
        public static function logMessage($clientId, $messageType)
        {
        }
        public static function logLanding($clientId, $type, $count = 1)
        {
        }
        protected static function increment($entityType, $entityId, $subEntityType, $subEntityName)
        {
        }
        protected static function getEntityKey($entityType, $entityId, $subEntityType, $subEntityName)
        {
        }
        public static function finalize()
        {
        }
        public static function reset()
        {
        }
        /**
         * @param array $filter
         * @param array $fields
         */
        public static function updateByFilter(array $filter, array $fields)
        {
        }
        /**
         * @param array $filter
         */
        public static function deleteByFilter(array $filter)
        {
        }
        public static function cleanUpAgent()
        {
        }
        public static function sendAgent()
        {
        }
        public static function sendDateStat($date)
        {
        }
    }
    class Sqs
    {
        const DATA_CHARSET = "utf-8";
        const CATEGORY_DEFAULT = "default";
        const CATEGORY_IMPORTANT = "important";
        const CATEGORY_BOT = "bot";
        const CATEGORY_CRM = "crm";
        const CATEGORY_BIZPROC = "bizproc";
        const CATEGORY_TELEPHONY = "telephony";
        public static function queryItem($clientId, $url, $data, array $authData = array(), array $additional = array())
        {
        }
    }
    /**
     * Class Analytic
     *
     * @package Bitrix\Rest
     */
    class Analytic
    {
        /**
         * Logs data for analytic to file.
         *
         * @param string $action
         * @param string $tag
         * @param string $label
         * @param string $actionType
         */
        public static function logToFile($action, $tag = '', $label = '', $actionType = '')
        {
        }
    }
    class Notify
    {
        const NOTIFY_IM = 'im';
        const NOTIFY_BOT = 'bot';
        protected $type;
        protected $userList = array();
        /**
         * @var INotify
         */
        protected $notifier = null;
        public function __construct($notifyType, array $userList)
        {
        }
        public function send($clientId, $token, $method, $message)
        {
        }
        public function setType($notifyType)
        {
        }
        public function getType()
        {
        }
        public function setUserList(array $userList)
        {
        }
        public function getUserList()
        {
        }
        /**
         * @return INotify
         */
        protected function getNotifier()
        {
        }
    }
    /**
     * Class AppLangTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> APP_ID int mandatory
     * <li> LANGUAGE_ID string(2) mandatory
     * <li> MENU_NAME string(500) mandatory
     * </ul>
     *
     * @package Bitrix\Rest
     **/
    class AppLangTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        public static function deleteByApp($appId)
        {
        }
        /**
         * Returns validators for LANGUAGE_ID field.
         *
         * @return array
         */
        public static function validateLanguageId()
        {
        }
        /**
         * Returns validators for MENU_NAME field.
         *
         * @return array
         */
        public static function validateMenuName()
        {
        }
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
    }
}
namespace Bitrix\Rest\Dictionary {
    class RemoteDictionary extends \Bitrix\Main\Type\Dictionary
    {
        const ID = 'generic';
        const CACHE_TTL = 86400;
        const CACHE_PREFIX = 'rest_dictionary';
        protected $baseUrl = array('ru' => 'https://www.bitrix24.ru/util/', 'ua' => 'https://www.bitrix24.ua/util/', 'by' => 'https://www.bitrix24.by/util/', 'in' => 'https://www.bitrix24.in/util/', 'en' => 'https://www.bitrix24.com/util/', 'de' => 'https://www.bitrix24.de/util/', 'kz' => 'https://www.bitrix24.kz/util/', 'br' => 'https://www.bitrix24.com.br/util/', 'pl' => 'https://www.bitrix24.pl/util/', 'fr' => 'https://www.bitrix24.fr/util/', 'la' => 'https://www.bitrix24.es/util/', 'eu' => 'https://www.bitrix24.eu/util/', 'cn' => 'https://www.bitrix24.cn/util/', 'tc' => 'https://www.bitrix24.cn/util/', 'sc' => 'https://www.bitrix24.cn/util/', 'tr' => 'https://www.bitrix24.com.tr/util/');
        protected $language = null;
        public function __construct()
        {
        }
        public function setLanguage($language)
        {
        }
        protected function init()
        {
        }
        protected function load()
        {
        }
        protected function getCacheId()
        {
        }
        /**
         * @return Uri
         * @throws \Bitrix\Main\LoaderException
         */
        protected function getDictionaryUri()
        {
        }
    }
    class Booklet extends \Bitrix\Rest\Dictionary\RemoteDictionary
    {
        const ID = 'booklet';
    }
    class Method extends \Bitrix\Rest\Dictionary\RemoteDictionary
    {
        const ID = 'methods';
    }
    class WebHook extends \Bitrix\Rest\Dictionary\RemoteDictionary
    {
        const ID = 'webhooks';
    }
    class Placement extends \Bitrix\Rest\Dictionary\RemoteDictionary
    {
        const ID = 'placement';
    }
    class Integration extends \Bitrix\Rest\Dictionary\RemoteDictionary
    {
        const ID = 'integration';
    }
    class IntegrationSection extends \Bitrix\Rest\Dictionary\RemoteDictionary
    {
        const ID = 'integrationSections';
    }
}
namespace Bitrix\Rest {
    /**
     * Class StatAppTable
     * 
     * Fields:
     * <ul>
     * <li> APP_ID int mandatory
     * <li> APP_CODE string(128) mandatory
     * <li> APP reference to {@link \Bitrix\Rest\AppTable}
     * </ul>
     *
     * @package Bitrix\Rest
     **/
    class StatAppTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns validators for APP_CODE field.
         *
         * @return array
         */
        public static function validateAppCode()
        {
        }
        /**
         * Adds a relation between application id and it's code.
         *
         * @return void
         */
        public static function register($appInfo)
        {
        }
    }
    /**
     * Class PlacementTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> APP_ID int optional
     * <li> PLACEMENT string(255) mandatory
     * <li> PLACEMENT_HANDLER string(255) mandatory
     * <li> TITLE string(255) optional
     * <li> COMMENT string(255) optional
     * <li> DATE_CREATE datetime optional
     * </ul>
     *
     * @package Bitrix\Rest
     **/
    class PlacementTable extends \Bitrix\Main\Entity\DataManager
    {
        const PLACEMENT_DEFAULT = 'DEFAULT';
        const ERROR_PLACEMENT_NOT_FOUND = 'ERROR_PLACEMENT_NOT_FOUND';
        const ERROR_PLACEMENT_MAX_COUNT = 'ERROR_PLACEMENT_MAX_COUNT';
        const CACHE_TTL = 86400;
        const CACHE_DIR = 'rest/placement';
        protected static $handlersListCache = array();
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Returns list of placement handlers. Use \Bitrix\Rest\PlacementTable::getHandlersList.
         *
         * @param string $placement Placement ID.
         *
         * @return Main\DB\Result
         */
        public static function getHandlers($placement)
        {
        }
        /**
         * Removes all application placement handlers.
         *
         * @param int $appId Application ID.
         *
         * @return Main\DB\Result
         */
        public static function deleteByApp($appId)
        {
        }
        /**
         * Returns cached list of placement handlers.
         *
         * @param string $placement Placement ID
         * @param bool $skipInstallCheck Optional flag to allow placement from apps with unfinished install
         *
         * @return array
         */
        public static function getHandlersList($placement, $skipInstallCheck = false)
        {
        }
        public static function clearHandlerCache()
        {
        }
        public static function onBeforeUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onBeforeAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onAfterAdd(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onAfterUpdate(\Bitrix\Main\Entity\Event $event)
        {
        }
        public static function onAfterDelete(\Bitrix\Main\Entity\Event $event)
        {
        }
        protected static function getCacheId($placement)
        {
        }
        protected static function checkUniq(\Bitrix\Main\Entity\Event $event, $add = false)
        {
        }
    }
    interface INotify
    {
        public function send($clientId, $userId, $token, $method, $message);
    }
    class AuthTypeException extends \Bitrix\Rest\AccessException
    {
        const MESSAGE = 'Current authorization type is denied for this method';
        const CODE = 'WRONG_AUTH_TYPE';
    }
}
namespace Bitrix\Rest\Api {
    class Event extends \IRestService
    {
        const FEATURE_EXTENDED_MODE = 'rest_offline_extended';
        /**
         * Returns description of events REST API
         *
         * @return array
         */
        public static function onRestServiceBuildDescription()
        {
        }
        /**
         * /rest/events method handler
         *
         * Administrator rights required
         *
         * Query format:
         *
         * SCOPE - limit events list by some scope
         * FULL - get all events regardless of application scope
         *
         * @param array $query
         * @param $n
         * @param \CRestServer $server
         *
         * @return array
         *
         * @throws AuthTypeException
         */
        public static function eventsList($query, $n, \CRestServer $server)
        {
        }
        /**
         * /rest/event.bind method handler
         *
         * Administrator rights required
         *
         * Query format:
         *
         * - EVENT - event name
         * - EVENT_TYPE = {online|offline} - type of event handling. Default: online
         * - AUTH_TYPE - User ID, whose auth will be generated for handler. Useless for offline type. Default value is 0, which means getting auth for user, authorized when event is called
         * - HANDLER - URL of event handler. Useless for offline type
         *
         * @param array $query
         * @param $n
         * @param \CRestServer $server
         *
         * @return bool
         *
         * @throws AccessException
         * @throws ArgumentException
         * @throws ArgumentNullException
         * @throws AuthTypeException
         * @throws RestException
         * @throws \Exception
         */
        public static function eventBind($query, $n, \CRestServer $server)
        {
        }
        /**
         * /rest/event.unbind method handler
         *
         * Returns count of unbinded events
         *
         * Administrator rights required
         *
         * Query format:
         *
         * - EVENT - event name
         * - EVENT_TYPE = {online|offline} - type of event handling. Default: online
         * - AUTH_TYPE - The same value as event.bind was called with. Useless for offline type. Default 0
         * - HANDLER - URL of event handler. Useless for offline type
         *
         * @param array $query
         * @param $n
         * @param \CRestServer $server
         *
         * @return array
         *
         * @throws AccessException
         * @throws ArgumentException
         * @throws ArgumentNullException
         * @throws AuthTypeException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         * @throws \Exception
         */
        public static function eventUnbind($query, $n, \CRestServer $server)
        {
        }
        public static function eventGet($query, $n, \CRestServer $server)
        {
        }
        public static function eventTest($query, $n, \CRestServer $server)
        {
        }
        public static function eventOfflineGet($query, $n, \CRestServer $server)
        {
        }
        public static function eventOfflineClear($query, $n, \CRestServer $server)
        {
        }
        public static function eventOfflineError($query, $n, \CRestServer $server)
        {
        }
        public static function eventOfflineList($query, $n, \CRestServer $server)
        {
        }
        protected static function sanitizeFilter($filter, array $availableFields = null, $valueCallback = null, array $availableOperations = null)
        {
        }
        protected static function sanitizeOrder($order, array $availableFields = null)
        {
        }
        protected static function isExtendedModeEnabled()
        {
        }
    }
    class User extends \IRestService
    {
        const SCOPE_USER = 'user';
        protected static $allowedUserFields = array(
            "ID",
            /*"LOGIN", */
            "ACTIVE",
            "EMAIL",
            "NAME",
            "LAST_NAME",
            "SECOND_NAME",
            "PERSONAL_GENDER",
            "PERSONAL_PROFESSION",
            "PERSONAL_WWW",
            "PERSONAL_BIRTHDAY",
            "PERSONAL_PHOTO",
            "PERSONAL_ICQ",
            "PERSONAL_PHONE",
            "PERSONAL_FAX",
            "PERSONAL_MOBILE",
            "PERSONAL_PAGER",
            "PERSONAL_STREET",
            "PERSONAL_CITY",
            "PERSONAL_STATE",
            "PERSONAL_ZIP",
            "PERSONAL_COUNTRY",
            "WORK_COMPANY",
            "WORK_POSITION",
            "WORK_PHONE",
            "UF_DEPARTMENT",
            "UF_INTERESTS",
            "UF_SKILLS",
            "UF_WEB_SITES",
            "UF_XING",
            "UF_LINKEDIN",
            "UF_FACEBOOK",
            "UF_TWITTER",
            "UF_SKYPE",
            "UF_DISTRICT",
            "UF_PHONE_INNER",
        );
        public static function getDefaultAllowedUserFields()
        {
        }
        public static function unsetDefaultAllowedUserField($key)
        {
        }
        public static function onRestServiceBuildDescription()
        {
        }
        protected static function checkAllowedFields()
        {
        }
        public static function onUserInitialize($arParams, $arHandler)
        {
        }
        public static function isAdmin()
        {
        }
        public static function hasAccess($params)
        {
        }
        public static function getAccess($params)
        {
        }
        public static function getFields()
        {
        }
        public static function userCurrent($query, $n, \CRestServer $server)
        {
        }
        public static function userGet($query, $nav = 0, \CRestServer $server)
        {
        }
        public static function userOnline()
        {
        }
        public static function userCounters($arParams)
        {
        }
        public static function userAdd($userFields)
        {
        }
        public static function userUpdate($userFields)
        {
        }
        protected static function prepareUserData($userData, $allowedUserFields = null)
        {
        }
        protected static function getUserData($userFields)
        {
        }
        protected static function getDefaultSite()
        {
        }
    }
    class UserFieldType extends \IRestService
    {
        const SCOPE_USERFIELDTYPE = 'placement';
        const PLACEMENT_UF_TYPE = 'USERFIELD_TYPE';
        public static function onRestServiceBuildDescription()
        {
        }
        public static function getList($param, $nav, \CRestServer $server)
        {
        }
        public static function add($param, $n, \CRestServer $server)
        {
        }
        public static function update($param, $n, \CRestServer $server)
        {
        }
        public static function delete($param, $n, \CRestServer $server)
        {
        }
        protected static function checkPermission(\CRestServer $server)
        {
        }
    }
    class Placement extends \IRestService
    {
        const SCOPE_PLACEMENT = 'placement';
        public static function onRestServiceBuildDescription()
        {
        }
        public static function getList($query, $n, \CRestServer $server)
        {
        }
        public static function bind($params, $n, \CRestServer $server)
        {
        }
        public static function unbind($params, $n, \CRestServer $server)
        {
        }
        public static function get($params, $n, \CRestServer $server)
        {
        }
        protected static function checkPermission(\CRestServer $server)
        {
        }
        protected static function getScope(\CRestServer $server)
        {
        }
        protected static function getApplicationInfo(\CRestServer $server)
        {
        }
        protected static function getPlacementList(\CRestServer $server, $scopeList = null)
        {
        }
    }
}
namespace Bitrix\Rest {
    /**
     * Class LogTable
     *
     * Fields:
     * <ul>
     * <li> ID int mandatory
     * <li> TIMESTAMP_X datetime mandatory default 'CURRENT_TIMESTAMP'
     * <li> CLIENT_ID string(45) optional
     * <li> PASSWORD_ID int optional
     * <li> SCOPE string(50) optional
     * <li> METHOD string(255) optional
     * <li> REQUEST_URI string(255) optional
     * <li> REQUEST_DATA string optional
     * <li> RESPONSE_DATA string optional
     * </ul>
     *
     * @package Bitrix\Rest
     **/
    class LogTable extends \Bitrix\Main\Entity\DataManager
    {
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        /**
         * Checks if logging is applicable to the data and logs it if this is the case.
         *
         * @param \CRestServer $server REST call context.
         * @param string $data Response content.
         *
         * @return void
         *
         * @see \Bitrix\Rest\Log::checkEntry
         * @see \Bitrix\Rest\Log::addEntry
         */
        public static function log(\CRestServer $server, $data)
        {
        }
        /**
         * Checks if logging is applicable to the rest call.
         *
         * @param \CRestServer $server REST call context.
         *
         * @return void
         */
        public static function checkEntry(\CRestServer $server)
        {
        }
        /**
         * Adds a log entry.
         *
         * @param \CRestServer $server REST call context.
         * @param string $data Response content.
         *
         * @return void
         */
        public static function addEntry(\CRestServer $server, $data)
        {
        }
        public static function getCountAll()
        {
        }
        public static function clearAll()
        {
        }
        public static function cleanUpAgent()
        {
        }
    }
    class NotifyIm implements \Bitrix\Rest\INotify
    {
        const TOKEN_NOTIFY_TAG = 'REST_CONFIRM';
        const APP_INSTALL_REQUEST_TAG = 'APP_INSTALL_REQUEST';
        public function __construct()
        {
        }
        public function send($clientId, $userId, $token, $method, $message)
        {
        }
        public static function receive($module, $tag, $value, $notifyFields)
        {
        }
    }
}
namespace Bitrix\Rest\Engine {
    class RestManager extends \IRestService
    {
        /** @var \CRestServer */
        protected $restServer;
        /** @var PageNavigation */
        private $pageNavigation;
        public static function onFindMethodDescription($potentialAction)
        {
        }
        public static function getModuleScopeAlias($moduleId)
        {
        }
        /**
         * Processes method to services.
         *
         * @param array $params Input parameters ($_GET, $_POST).
         * @param     string $start Start position.
         * @param \CRestServer $restServer REST server.
         *
         * @return array
         * @throws RestException
         * @throws \Bitrix\Main\SystemException
         */
        public function processMethodRequest(array $params, $start, \CRestServer $restServer)
        {
        }
        /**
         * @param \CRestServer $restServer
         * @param $start
         */
        private function initialize(\CRestServer $restServer, $start) : void
        {
        }
        /**
         * @param Engine\Response\DataType\Page $page
         * @see \IRestService::setNavData
         *
         * @return array
         */
        private function getNavigationData(\Bitrix\Main\Engine\Response\DataType\Page $page)
        {
        }
        private function processData($result)
        {
        }
        private function convertAjaxUriToRest(\Bitrix\Main\Web\Uri $uri)
        {
        }
        private function getRestEndPoint()
        {
        }
        /**
         * @param Error[] $errors
         * @return RestException
         */
        private function createExceptionFromErrors(array $errors)
        {
        }
        /**
         * @param array $autoWirings
         */
        private function registerAutoWirings(array $autoWirings) : void
        {
        }
        /**
         * @param array $autoWirings
         */
        private function unRegisterAutoWirings(array $autoWirings) : void
        {
        }
        /**
         * @return array
         */
        private function getAutoWirings() : array
        {
        }
    }
}
namespace Bitrix\Rest\Event {
    interface ProviderInterface
    {
        public function send(array $queryData);
    }
    class ProviderOAuth implements \Bitrix\Rest\Event\ProviderInterface
    {
        /**
         * @var ProviderOAuth
         */
        protected static $instance = null;
        public static function instance()
        {
        }
        public function send(array $queryData)
        {
        }
    }
    /**
     * Class Session
     *
     * Session restriction for REST events
     *
     * @package Bitrix\Rest
     **/
    class Session
    {
        const PARAM_SESSION = 'EVENT_SESSION';
        private static $TTL = null;
        private static $ttlDecreased = false;
        private static $set = false;
        public static function get()
        {
        }
        public static function set($session)
        {
        }
    }
    interface ProviderOfflineInterface
    {
        public function send(array $eventList);
    }
    class ProviderOffline implements \Bitrix\Rest\Event\ProviderOfflineInterface
    {
        /**
         * @var ProviderOffline
         */
        protected static $instance = null;
        public static function instance()
        {
        }
        public function send(array $eventList)
        {
        }
        protected function getServerAuthData()
        {
        }
        protected function notifyApplications(array $counters)
        {
        }
        protected function notifyApplication($clientId, array $connectorCounters)
        {
        }
    }
    /**
     * Class Sender
     *
     * Transport and utility for REST events.
     *
     * @package Bitrix\Rest
     **/
    class Sender
    {
        protected static $initialized = false;
        protected static $forkSet = false;
        protected static $queryData = array();
        /**
         * @var ProviderInterface
         */
        protected static $provider;
        /**
         * @var ProviderOfflineInterface
         */
        protected static $providerOffline;
        protected static $defaultEventParams = array("category" => \Bitrix\Rest\Sqs::CATEGORY_DEFAULT, "sendAuth" => true, "sendRefreshToken" => false);
        /**
         * Utility function to parse pseudo-method name
         *
         * @param string $name Pseudo-method name.
         *
         * @return array
         */
        public static function parseEventName($name)
        {
        }
        /**
         * Binds REST event handler on PHP event.
         *
         * @param string $moduleId Event owner module.
         * @param string $eventName Event name.
         */
        public static function bind($moduleId, $eventName)
        {
        }
        /**
         * Unbinds REST event handler on PHP event.
         *
         * @param string $moduleId Event owner module.
         * @param string $eventName Event name.
         */
        public static function unbind($moduleId, $eventName)
        {
        }
        /**
         * Getter for default event params array.
         *
         * @return array
         */
        public static function getDefaultEventParams()
        {
        }
        /**
         * Returns authorization array for event handlers and BP activities.
         *
         * @param string|int $appId Application ID or CODE.
         * @param int $userId User ID which will be the owner of access_token.
         * @param array $additionalData Additional data which will be stored with access_token.
         * @param array $additional Event parameters. Keys sendAuth and sendRefreshToken supported.
         *
         * @return array|bool|null
         */
        public static function getAuth($appId, $userId, array $additionalData = array(), array $additional = array())
        {
        }
        /**
         * Calls or schedules the query to SQS.
         *
         * @param array $handlersList Event handlers to call.
         *
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function call($handlersList)
        {
        }
        /**
         * Sends all scheduled handlers to SQS.
         */
        public static function send()
        {
        }
        /**
         * @return ProviderInterface
         */
        public static function getProvider()
        {
        }
        /**
         * @param ProviderInterface $provider
         */
        public static function setProvider(\Bitrix\Rest\Event\ProviderInterface $provider)
        {
        }
        protected static function getDefaultProvider()
        {
        }
        /**
         * @return ProviderOfflineInterface
         */
        public static function getProviderOffline()
        {
        }
        /**
         * @param ProviderOfflineInterface $providerOffline
         */
        public static function setProviderOffline(\Bitrix\Rest\Event\ProviderOfflineInterface $providerOffline)
        {
        }
        protected static function getDefaultProviderOffline()
        {
        }
        protected static function initialize()
        {
        }
        protected static function getHandlerName($moduleId, $eventName)
        {
        }
    }
}
namespace Bitrix\Rest {
    /**
     * Class StatTable
     *
     * Fields:
     * <ul>
     * <li> STAT_DATE date mandatory
     * <li> APP_ID int mandatory
     * <li> METHOD_ID int mandatory
     * <li> PASSWORD_ID int mandatory
     * <li> HOUR_0 int mandatory
     * <li> HOUR_1 int mandatory
     * <li> HOUR_2 int mandatory
     * <li> HOUR_3 int mandatory
     * <li> HOUR_4 int mandatory
     * <li> HOUR_5 int mandatory
     * <li> HOUR_6 int mandatory
     * <li> HOUR_7 int mandatory
     * <li> HOUR_8 int mandatory
     * <li> HOUR_9 int mandatory
     * <li> HOUR_10 int mandatory
     * <li> HOUR_11 int mandatory
     * <li> HOUR_12 int mandatory
     * <li> HOUR_13 int mandatory
     * <li> HOUR_14 int mandatory
     * <li> HOUR_15 int mandatory
     * <li> HOUR_16 int mandatory
     * <li> HOUR_17 int mandatory
     * <li> HOUR_18 int mandatory
     * <li> HOUR_19 int mandatory
     * <li> HOUR_20 int mandatory
     * <li> HOUR_21 int mandatory
     * <li> HOUR_22 int mandatory
     * <li> HOUR_23 int mandatory
     * </ul>
     *
     * @package Bitrix\Rest
     **/
    /**
     * Class StatTable
     * @deprecated
     */
    class StatTable extends \Bitrix\Main\Entity\DataManager
    {
        const STORE_PERIOD = 5184000;
        // 60*24*3600
        protected static $data = array();
        protected static $dataPassword = array();
        /**
         * Returns DB table name for entity.
         *
         * @return string
         */
        public static function getTableName()
        {
        }
        /**
         * Returns entity map definition.
         *
         * @return array
         */
        public static function getMap()
        {
        }
        public static function log(\CRestServer $server)
        {
        }
        public static function logApMethod($passwordID, $methodName)
        {
        }
        public static function logMethod($clientId, $methodName)
        {
        }
        public static function logEvent($clientId, $eventName)
        {
        }
        public static function logPlacement($clientId, $placementName)
        {
        }
        public static function logRobot($clientId)
        {
        }
        public static function logActivity($clientId)
        {
        }
        protected static function addApToLog($passwordID, $methodName, $methodType)
        {
        }
        protected static function addToLog($clientId, $methodName, $methodType)
        {
        }
        public static function finalize()
        {
        }
        public static function reset()
        {
        }
        /**
         * @param array $filter
         */
        public static function deleteByFilter(array $filter)
        {
        }
        /**
         * @param array $filter
         * @param array $fields
         */
        public static function updateByFilter(array $filter, array $fields)
        {
        }
        public static function cleanUpAgent()
        {
        }
    }
    abstract class UserFieldProxy
    {
        protected $entityID = '';
        /** @var \CUser @ */
        protected $user = null;
        protected $isAdminUser = null;
        protected $isAuthorizedUser = null;
        protected $namePrefix = '';
        private static $langs = null;
        private static $fieldsInfo = null;
        private static $langIncluded = false;
        function __construct($entityID, \CUser $user = null)
        {
        }
        public function getEntityID()
        {
        }
        public function getNamePrefix()
        {
        }
        public function setNamePrefix($prefix)
        {
        }
        public static function getFields()
        {
        }
        public static function getEnumerationElementFields()
        {
        }
        public static function getSettingsFields($typeID)
        {
        }
        public static function getTypes(\CRestServer $server = null)
        {
        }
        public function add(array $fields)
        {
        }
        public function get($ID)
        {
        }
        public function getList(array $order, array $filter)
        {
        }
        public function update($ID, array $fields)
        {
        }
        public function delete($ID)
        {
        }
        protected static function sanitizeFields(array &$fields)
        {
        }
        protected function isAuthorizedUser()
        {
        }
        protected function isAdminUser()
        {
        }
        protected function getCurrentUser()
        {
        }
        protected static function getAllLanguages()
        {
        }
        protected static function prepareLabels(array &$fields, $name, $defaultLabel)
        {
        }
        protected function checkCreatePermission()
        {
        }
        protected function checkReadPermission()
        {
        }
        protected function checkUpdatePermission()
        {
        }
        protected function checkDeletePermission()
        {
        }
        private static function includeLangFile()
        {
        }
    }
}
namespace {
    class fileman extends \CModule
    {
        var $MODULE_ID = "fileman";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function __construct()
        {
        }
        function InstallDB()
        {
        }
        function UnInstallDB()
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function GetModuleRightList()
        {
        }
    }
    /**
     * Class AddressUfComponent
     */
    class AddressUfComponent extends \Bitrix\Main\Component\BaseUfComponent
    {
        protected static function getUserTypeId() : string
        {
        }
    }
    class CBitrixMobilePlayer extends \CBitrixComponent
    {
        public function executeComponent()
        {
        }
    }
    class CDiskPdfComponent extends \CBitrixComponent
    {
        const DEFAULT_WIDTH = 900;
        const DEFAULT_HEIGHT = 600;
        public function executeComponent()
        {
        }
        public function getComponentId()
        {
        }
    }
    class CBitrixPlayer extends \CBitrixComponent
    {
        protected const PLAYER_JS_PATH = '/bitrix/js/fileman/player';
        protected $playerType;
        protected $jwConfig;
        protected $path;
        protected $warning = '';
        protected $conf;
        protected $jwFlashPath;
        public static function escapeFlashVar($str)
        {
        }
        public static function isAndroid() : bool
        {
        }
        public static function isIOS() : bool
        {
        }
        public static function isMobile() : bool
        {
        }
        protected function addFlashVar(&$jwConfig, $key, $value, $default = \false)
        {
        }
        protected function addJsVar(&$wmvConfig, $key, $value, $default = \false)
        {
        }
        protected static function getFileExtension($path)
        {
        }
        public function getComponentId()
        {
        }
        // fix 0084070
        public function GetContentType($src)
        {
        }
        /**
         * Find an absolute path for html, set mime-type
         *
         * @param $path
         * @param null $type
         * @param bool $warning
         * @return string
         */
        protected function findCorrectFile($path, &$type = \null, $warning = \false)
        {
        }
        protected static function GetRtmpContentType($src)
        {
        }
        public static function isYoutubeSource($path)
        {
        }
        public static function isVimeoSource($path)
        {
        }
        public static function isStreamingSource($path)
        {
        }
        public static function isFlashSource($path)
        {
        }
        public static function isAudioSource($path)
        {
        }
        public static function isWmvSource($path, $type)
        {
        }
        /**
         * Parse xml playlist. Return array of tracks or false on wrong format
         *
         * @param $path
         * @return array|bool
         */
        public function parsePlaylist($path)
        {
        }
        public function onPrepareComponentParams($arParams)
        {
        }
        public function executeComponent()
        {
        }
        /**
         * Generate configs for wmv-player
         */
        protected function processWmv()
        {
        }
        /**
         * Generate configs for jwplayer
         */
        protected function processJwPlayer()
        {
        }
        /**
         * Process one file. Return array on success or false if track should be removed from playlist
         *
         * @param $arTrack
         * @return array|bool
         */
        protected function processTrack(&$arTrack)
        {
        }
        /**
         * Find skin and apply it
         */
        protected function processSkin()
        {
        }
        /**
         * Process playlist. Fill config, show popup for playlist edit
         */
        protected function processPlaylist()
        {
        }
    }
    abstract class CIBlockPropertyMapInterface
    {
        public static abstract function GetUserTypeDescription();
        public static abstract function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName);
        public static function GetAdminListViewHTML($arProperty, $value, $strHTMLControlName)
        {
        }
        public static abstract function GetPublicViewHTML($arProperty, $value, $strHTMLControlName);
        public static function ConvertFromDB($arProperty, $value)
        {
        }
        public static function ConvertToDB($arProperty, $value)
        {
        }
        public static function _GetMapKey($map_type, &$strDomain)
        {
        }
    }
    class CIBlockPropertyMapGoogle extends \CIBlockPropertyMapInterface
    {
        public static function GetUserTypeDescription()
        {
        }
        public static function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
        {
        }
        public static function PrepareSettings($arProperty)
        {
        }
        public static function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function GetPublicViewHTML($arProperty, $value, $arParams)
        {
        }
        public static function GetUIEntityEditorProperty($settings, $value)
        {
        }
        public static function GetUIEntityEditorPropertyEditHtml(array $params = []) : string
        {
        }
        public static function GetUIEntityEditorPropertyViewHtml(array $params = []) : string
        {
        }
    }
    class CIBlockPropertyMapYandex extends \CIBlockPropertyMapInterface
    {
        public static function GetUserTypeDescription()
        {
        }
        public static function _DrawKeyInputControl($MAP_ID, $strDomain)
        {
        }
        // _DrawKeyInputControl()
        public static function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
        {
        }
        public static function PrepareSettings($arProperty)
        {
        }
        public static function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function GetPublicEditHTML($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function GetPublicViewHTML($arProperty, $value, $arParams)
        {
        }
        public static function GetUIEntityEditorProperty($settings, $value)
        {
        }
        public static function GetUIEntityEditorPropertyEditHtml(array $params = []) : string
        {
        }
        public static function GetUIEntityEditorPropertyViewHtml(array $params = []) : string
        {
        }
    }
    //AddEventHandler("iblock", "OnIBlockPropertyBuildList", array("CIBlockPropertyFileMan", "GetUserTypeDescription"));
    //RegisterModuleDependences('iblock', 'OnIBlockPropertyBuildList', 'fileman', 'CIBlockPropertyMapGoogle', 'GetUserTypeDescription');
    //RegisterModuleDependences('iblock', 'OnIBlockPropertyBuildList', 'fileman', 'CIBlockPropertyMapYandex', 'GetUserTypeDescription');
    // ##########################
    // #######   VIDEO PROPERTIES   ######
    // ##########################
    // ### Base class ###
    class CVideoProperty
    {
        public static function BasePrepareSettings($arProperty, $key = "SETTINGS")
        {
        }
        public static function BaseGetSettingsHTML($name, $val)
        {
        }
        public static function BaseGetEditFormHTML($set, $val, $name, $controlMode = \false)
        {
        }
        public static function BaseConvertToDB($value)
        {
        }
        public static function BaseConvertFromDB($val = "")
        {
        }
        public static function BaseCheckFields($val)
        {
        }
        public static function BaseGetAdminListViewHTML($val)
        {
        }
        public static function BaseGetPublicHTML($set, $val)
        {
        }
        public static function BaseOnSearchContent($val)
        {
        }
        public static function CheckFileInUploadDir($path = '')
        {
        }
        public static function GetUploadDirPath()
        {
        }
        public static function GetSkinPath()
        {
        }
    }
    // ### Iblock property ###
    class CIBlockPropertyVideo extends \CVideoProperty
    {
        public static function GetUserTypeDescription()
        {
        }
        public static function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function GetAdminListViewHTML($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function GetPublicViewHTML($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function ConvertFromDB($arProperty, $value)
        {
        }
        public static function ConvertToDB($arProperty, $value)
        {
        }
        public static function CheckFields($arProperty, $value)
        {
        }
        public static function GetLength($arProperty, $value)
        {
        }
        public static function PrepareSettings($arProperty)
        {
        }
        public static function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
        {
        }
        public static function GetSearchContent($arProperty, $value, $strHTMLControlName)
        {
        }
        public static function GetUIEntityEditorProperty($settings, $value)
        {
        }
        public static function GetUIEntityEditorPropertyEditHtml(array $params = []) : string
        {
        }
        public static function GetUIEntityEditorPropertyViewHtml(array $params = []) : string
        {
        }
    }
    // ### UserType for main module ###
    class CUserTypeVideo extends \CVideoProperty
    {
        public static function GetUserTypeDescription()
        {
        }
        public static function GetDBColumnType($arUserField)
        {
        }
        public static function PrepareSettings($arProperty)
        {
        }
        public static function GetSettingsHTML($arUserField = array(), $arHtmlControl, $bVarsFromForm)
        {
        }
        public static function GetEditFormHTML($arUserField, $arHtmlControl)
        {
        }
        public static function OnBeforeSave($arUserField, $value)
        {
        }
        public static function GetAdminListViewHTML($arUserField, $arHtmlControl)
        {
        }
        public static function CheckFields($arUserField, $value)
        {
        }
        public static function OnSearchIndex($arUserField)
        {
        }
        public static function GetPublicViewHTML($arUserField, $arHtmlControl)
        {
        }
    }
    class CFileInput
    {
        private static $bMultiple = \false, $bUseUpload = \false, $bUseMedialib = \false, $bUseFileDialog = \false, $bUseCloud = \false, $bShowDescInput = \false, $bShowDelInput = \true, $curFileIds = array(), $curFiles = array(), $jsId, $bFileExists, $menuNew, $menuExist, $delInputName, $descInputName, $maxPreviewWidth, $maxPreviewHeight, $minPreviewWidth, $minPreviewHeight, $maxCount, $inputSize = 50, $arInputs = array(), $inputNameTemplate, $showInfo, $bViewMode;
        private static function Init($showInfo, $inputName, $maxCount = \false)
        {
        }
        /**
         * @param $strInputName
         * @param string $strFileId
         * @param bool|array $showInfo
         * @param array $inputs
         * @return string
         */
        public static function Show($strInputName, $strFileId = "", $showInfo = \false, $inputs = array())
        {
        }
        /**
         * @param array $values
         * @param string $inputNameTemplate
         * @param bool|array $showInfo
         * @param bool $maxCount
         * @param array $inputs
         * @return string
         */
        public static function ShowMultiple($values = array(), $inputNameTemplate = "", $showInfo = \false, $maxCount = \false, $inputs = array())
        {
        }
        private static function GetFile($fileId = "")
        {
        }
        private static function DisplayControl($inputs = array())
        {
        }
        private static function DisplayDialogs()
        {
        }
        private static function DisplayFile($arFile = array(), $ind = 0)
        {
        }
        private static function ShowOpenerMenuHtml($id, $data = \false)
        {
        }
        private static function GetInputName($inputName, $type = "")
        {
        }
        private static function IsViewMode()
        {
        }
    }
    class CFilemanUtils
    {
        function InitScript($Params)
        {
        }
        function AppendLangMessages($Config)
        {
        }
        function BuildDialogContent($site)
        {
        }
        function Request($action, $site)
        {
        }
        function GetTimeout()
        {
        }
        function NormalizePath($path)
        {
        }
        function TrimPath($path, $docRoot = \false)
        {
        }
        function GetLastPathes()
        {
        }
        function GetModifyTime($path)
        {
        }
    }
    //
    class CFilemanSearch
    {
        function Init($Params)
        {
        }
        function Search($file)
        {
        }
        function CheckBreak()
        {
        }
        function trimPath($path, $docRoot = \false)
        {
        }
        function CheckSearchSess($searchSess)
        {
        }
        function GetSearchResult($searchSess = '', $arOrder = array('date', 'desc'))
        {
        }
        function SetSearchResult($searchRes, $searchSess, $bClean = \true)
        {
        }
        function DelFromSearchResult($searchSess, $path)
        {
        }
        function RenameInSearchResult($searchSess, $pathFrom, $pathTo)
        {
        }
        public static function SecureSearchSess($ssess = '')
        {
        }
        function GetSearchSess()
        {
        }
        // Delete all results older than 2 days
        function CleanOldSearchResult()
        {
        }
        function SaveConfig($arConfig)
        {
        }
        function GetConfig()
        {
        }
    }
    class CFilemanUtilDir
    {
        var $checkBreak = '';
        var $bBreak = \false;
        var $bStoped = \false;
        var $bFound = \false;
        var $nextPath = '';
        var $startPath = '';
        var $dir;
        var $callback;
        var $processDir;
        var $bSkipSymLinks = \true;
        var $bDirFirst = \false;
        var $err = array();
        var $cntDir = 0;
        var $cntFile = 0;
        function CFilemanUtilDir($dir, $Params)
        {
        }
        function Start($dir = \false)
        {
        }
        function Recursion($dir)
        {
        }
        function CallMethod($method = '', $param = \false)
        {
        }
    }
    class CFilemanChmod
    {
        function Init($Params)
        {
        }
        function CheckBreak()
        {
        }
        function Chmod($file)
        {
        }
    }
    class CFilemanCopy
    {
        function Init($Params)
        {
        }
        function SaveConfig($arConfig)
        {
        }
        function GetConfig()
        {
        }
        function GetAltFileName($absPath, $name, $bDir = \false)
        {
        }
    }
    class CFilemanTransliterate
    {
        public static function Init($Params)
        {
        }
    }
    class CSnippets
    {
        public static function LoadList($Params)
        {
        }
        function HandleForTemplate($template, &$arSNIPPETS, &$arTemplateKeys)
        {
        }
        function ReadDir(&$arSNIPPETS, &$arKeys, $path, $template, $level = 0, $parent = "")
        {
        }
        function UpdateContentInfo(&$ar, &$arKeys, $template)
        {
        }
        function WriteHtaccess($path)
        {
        }
        function ClearCache()
        {
        }
        function GetCode($path)
        {
        }
        function Edit($Params)
        {
        }
        function Delete($Params)
        {
        }
        function CheckFile($params)
        {
        }
        public static function GetGroups($Params)
        {
        }
        public static function GetGroupList($Params)
        {
        }
        public static function SaveGroupList($Params)
        {
        }
        function InspectDir(&$arSnGroups, $path, $template, $level = 0, $parent = '')
        {
        }
        function GetDefaultFileName($path)
        {
        }
        function DisplayJSGroups($template, $ar = array())
        {
        }
        /**
         * Adds a new snippet
         *
         * @param array - list of params
         * @return bool or object - result
         */
        public static function Add($params = array())
        {
        }
        /**
         * Updates existent snippet
         *
         * @param array - list of params
         * @return bool or object - result
         */
        public static function Update($params = array())
        {
        }
        /**
         * Removes snippet
         *
         * @param array - list of params (template, path)
         * @return bool - result
         */
        public static function Remove($params = array())
        {
        }
        public static function CreateCategory($params = array())
        {
        }
        public static function RenameCategory($params)
        {
        }
        public static function RemoveCategory($params)
        {
        }
        private static function GetBasePath($template)
        {
        }
    }
    class CCodeEditor
    {
        public static function Show($params)
        {
        }
        public static function GetLangMessage()
        {
        }
    }
    class CComponentParamsManager
    {
        private static $fileDialogs = array();
        public static function Init($config = array())
        {
        }
        public static function ProcessRequest()
        {
        }
        public static function GetComponentProperties($name = '', $template = '', $siteTemplate = '', $currentValues = array())
        {
        }
        public static function FetchHelp($componentName, $lang = \false)
        {
        }
        public static function GetLangMessages()
        {
        }
        public static function DisplayFileDialogsScripts()
        {
        }
    }
    class CSpellchecker
    {
        private $lang, $skip_len, $pspell, $pspell_mode, $custom_spell, $wrongWords, $dics_path, $custom_dics_path, $dic;
        public function __construct($params)
        {
        }
        private function checkDicPath()
        {
        }
        function codeLetter($letter)
        {
        }
        function loadDic($letter)
        {
        }
        function checkWord($word)
        {
        }
        function checkWords($words)
        {
        }
        function suggest($word)
        {
        }
        function addWord($word = '')
        {
        }
    }
    class CEventFileman
    {
        function MakeFilemanObject()
        {
        }
        function GetFilter()
        {
        }
        function GetAuditTypes()
        {
        }
        function GetEventInfo($row, $arParams, $arUser)
        {
        }
        function GetFilterSQL($var)
        {
        }
    }
    class CMedialib
    {
        private static $bCache = \true, $cacheTime = 360000, $cachePath = "medialib/";
        public static function Init()
        {
        }
        public static function GetOperations($collectionId, $menu = \false)
        {
        }
        public static function CanDoOperation($operation, $collectionId = 0, $userId = \false, $menu = \false)
        {
        }
        public static function GetAccessPermissionsArray($collectionId = 0, $oCollections = \false)
        {
        }
        public static function _GetAccessPermissions($arCols = array())
        {
        }
        public static function getMaximumFileUploadSize()
        {
        }
        public static function ShowDialogScript($arConfig = array())
        {
        }
        public static function AttachJSScripts()
        {
        }
        public static function AppendLangMessages()
        {
        }
        public static function AppendLangMessagesEx()
        {
        }
        public static function Start($Params)
        {
        }
        public static function BuildDialog($Params)
        {
        }
        public static function BuildAddCollectionDialogAdmin($Params)
        {
        }
        public static function BuildAddCollectionDialog($Params)
        {
        }
        public static function BuildAddItemDialogAdmin($Params)
        {
        }
        public static function BuildAddItemDialog($Params)
        {
        }
        public static function ShowUploadForm($Params)
        {
        }
        public static function BuildConfirmDialog($Params)
        {
        }
        public static function BuildViewItemDialog($Params)
        {
        }
        public static function BuildChangeType($Params)
        {
        }
        public static function ShowJS()
        {
        }
        public static function GetCollections(&$exParams)
        {
        }
        public static function DelCollection($id, $arIds = array())
        {
        }
        public static function EditCollection($Params)
        {
        }
        public static function EditItem($Params)
        {
        }
        public static function GetCollectionTree($Params = array())
        {
        }
        public static function _buildCollection($Col, $ind, &$arColTree, &$Collections, $Params = array())
        {
        }
        public static function _findChildInColTree(&$arr, $id, $colId)
        {
        }
        public static function _BuildCollectionsSelectOptions($Collections = \false, $arColTree = \false, $level = 0, $selected = \false)
        {
        }
        public static function GetItems($Params)
        {
        }
        public static function DelItem($id, $bCurrent = \false, $colId = \false)
        {
        }
        public static function DeleteThumbnails()
        {
        }
        public static function GetItemCollectionList($Params)
        {
        }
        public static function SaveUserSettings($Params)
        {
        }
        public static function SaveAccessPermissions($colId, $arTaskPerm)
        {
        }
        public static function MultiActionDelete($Params = array())
        {
        }
        public static function ShowBrowseButton($Params = array())
        {
        }
        public static function GetUsableSize($size = 0)
        {
        }
        public static function GetUsableDate($date = '')
        {
        }
        public static function GetMediaExtentions($bStr = \true)
        {
        }
        public static function GetDefaultMediaExtentions()
        {
        }
        public static function CheckFileExtention($strPath = '', $arExt = \false)
        {
        }
        public static function Escape($str, $bHtmlSpCh = \true)
        {
        }
        public static function SearchItems($Params)
        {
        }
        /*
        	$strInputName //the name of element
        	$strImageID // the file identifier or path to the file from site root
        	$showInfo => array(
        		"IMAGE" => "Y",
        		"MAX_SIZE" => array("W" => ww, "H" => hh)
        		"IMAGE_POPUP" => "Y",
        		"PATH" => "Y",
        		"DIMENSIONS" => "Y",
        		"FILE_SIZE" => "Y",
        	),
        	$fileInput => array( // if false then loading from computer don't used
        		"NAME" => "...", //the name for INPUT has "file" type. For loading from computer. It equals $strInputName for defaults
        		["ID" => "...",] //the identifier of INPUT. It equals $strInputName."_file" for defaults with replacement all symbols except a-zA-z0-9_ by _
        		["SIZE" => NN,] // optional param, default 35
        		["SHOW_INFO" => "Y",] //to show information about image or not. Default not
        		["LABEL" => "INPUT title"],
        	),
        	$servInput => array( //if false, then choose file from server not used. Default equals $strInputName
        		"NAME" => "...", //name for INPUT type of text. For chosing file from server.
        		["ID" => "...",] //INPUT identifier.Default equals $strInputName."_serv" with replacement all symbols except a-zA-z0-9_ by _
        		["SIZE" => NN,] // optional param, default 35
        		["SHOW_INFO" => "Y",] //to show information about image, or not, default not
        		["LABEL" => "INPUT title"],
        	),
        	$pathInput => array( //if false, then library not use.
        		["NAME" => "NNN",] //INPUT name type text. For selection from media library. Default $strInputName.
        		["ID" => "...",] //INPUT identifier. Default equals $strInputName."_path" with replacement all symbols except a-zA-z0-9_ by _
        		["SIZE" => NN,] // optional param, default 35
        		["LABEL" => "INPUT title"],
        	),
        	$descInput => array( //if false, then the describtion field will not showed.
        		["NAME" => "NNN",] //The INPUT's name type of text. File description. Default equals $strInputName."_descr" without array indexes influence.
        		["SIZE" => NN,] // optional param, default 35
        		["VALUE" => "...",] //Value for file description. if undefined, it will be got from $strImageID
        		["LABEL" => "INPUT title"],
        	),
        	$delInput => array( //if false, then delition flag will not be shown
        		["NAME" => "NNN",] //The INPUT's name type of checkbox. File delition flag/
        				// Default it equals $strInputName."_del" without array indexes influence.
        		["LABEL" => "INPUT title"],
        	),
        	$scaleIcon => array( //if false, then icon with help will not be shown.
        		"SCALE" => Y|N // Y - show scale (zoom) icon N - save size icon
        		"WIDTH" => xxx // information for hint over icon
        		"HEIGHT" => yyy // information for hint over icon
        	),
        */
        public static function InputFile($strInputName, $strImageID = "", $showInfo = \false, $fileInput = \false, $servInput = \false, $pathInput = \false, $descInput = \false, $delInput = \false, $scaleIcon = \false, $cloudInput = \false)
        {
        }
        public static function GetTypeById($id, $arMLTypes = \false)
        {
        }
        public static function GetTypes($arConfigTypes = array(), $bGetEmpties = \false)
        {
        }
        public static function SetTypes($arTypes = array())
        {
        }
        public static function DelTypes($arIds = array())
        {
        }
        public static function GetItemViewHTML($itemId)
        {
        }
        public static function ChangeColType($Params)
        {
        }
        public static function CompareTypesEx($typeMix, $arType)
        {
        }
        public static function ClearCache($arPath = \false)
        {
        }
        public static function AutosaveImage($file = \false)
        {
        }
    }
    class CMedialibCollection
    {
        public static function GetList($Params = array())
        {
        }
        public static function CheckFields($arFields)
        {
        }
        public static function Edit($Params)
        {
        }
        public static function Delete($ID, $bDelEmpty = \true)
        {
        }
        public static function GetErrorMess()
        {
        }
        public static function IsViewable($oCol, $arCol = \false)
        {
        }
        public static function ChangeType($Params)
        {
        }
    }
    class CMedialibItem
    {
        public static function CheckFields($arFields)
        {
        }
        public static function GetList($Params)
        {
        }
        // Add or edit ITEM
        public static function Edit($Params)
        {
        }
        public static function GenerateThumbnail(&$arFile, $Params = array())
        {
        }
        public static function GetItemCollections($Params)
        {
        }
        public static function Delete($ID, $bCurrent, $colId)
        {
        }
        public static function DeleteEmpty()
        {
        }
        public static function GetThumbPath($arImage)
        {
        }
        public static function GetFullPath($arImage, $upload_dir = \false)
        {
        }
        public static function GetSourceId($id)
        {
        }
        public static function Search($arQuery, $arTypes = array())
        {
        }
    }
    // Deprecated and unused class. Placed here to prevent fatal errors in customized forms
    class CMedialibTabControl
    {
        public static function ShowScript()
        {
        }
    }
    class CAdminContextMenuML extends \CAdminContextMenu
    {
        function GetClassByID($icon_id)
        {
        }
        function BeginRightBar()
        {
        }
        function Button($item, $hkInst)
        {
        }
    }
    class CLightHTMLEditor
    {
        function Init(&$arParams)
        {
        }
        function GetActualPath($path)
        {
        }
        function Show($arParams)
        {
        }
        function BuildSceleton()
        {
        }
        function InitScripts()
        {
        }
        function InitFileDialogs()
        {
        }
        function InitMedialibDialogs()
        {
        }
        public static function IsMobileDevice()
        {
        }
    }
    class CEditorUtils
    {
        function RenderComponents($arParams)
        {
        }
        function _RenderOneComponent($arParams, $bLPA)
        {
        }
        function _RenderAllComponents($arParams, $bLPA)
        {
        }
        function GetCompProperties($name, $template = '', $siteTemplateId = '', $arCurVals = array())
        {
        }
        function StartFetchCSS()
        {
        }
        function GetCSS($startCount)
        {
        }
        function UnJSEscapeArray($ar)
        {
        }
    }
    class CHTMLEditor
    {
        private static $thirdLevelId, $arComponents;
        private $content, $id, $name, $jsConfig, $cssIframePath, $bAutorized, $bAllowPhp, $display, $inputName, $inputId;
        const CACHE_TIME = 31536000;
        // 365 days
        private function Init($arParams)
        {
        }
        function GetActualPath($path)
        {
        }
        function Show($arParams)
        {
        }
        function BuildSceleton($display = \true)
        {
        }
        function Run($display = \true)
        {
        }
        function SafeJsonEncode($data = array())
        {
        }
        function InitLangMess()
        {
        }
        public static function GetSnippets($templateId, $bClearCache = \false)
        {
        }
        public static function GetComponents($Params, $bClearCache = \false, $arFilter = array())
        {
        }
        public static function _HandleComponentElement($arEls, $path)
        {
        }
        public static function GetSiteTemplates()
        {
        }
        public static function RequestAction($action = '')
        {
        }
        public static function ShowResponse($reqId = \false, $Res = \false)
        {
        }
        public static function GetComponentParams($name, $siteTemplate = '', $template = '', $curValues = array(), $loadHelp = \true)
        {
        }
        private static function _HandleComponentParam($name = '', $arParam = array(), $arGroup = array())
        {
        }
        public static function GetSiteTemplateParams($templateId, $siteId)
        {
        }
        public static function GetVideoOembed($url = '')
        {
        }
        protected static function getRemoteVideoUrlInfo($path)
        {
        }
        public static function GetServerPath()
        {
        }
        private static function GetSettingKey($params = array())
        {
        }
        public static function GetUploadPath()
        {
        }
    }
    class CSticker
    {
        static $Params = \null;
        public static $TextParser;
        public static function GetOperations()
        {
        }
        public static function CanDoOperation($operation)
        {
        }
        public static function GetAccessPermissions()
        {
        }
        public static function SaveAccessPermissions($arTaskPerm)
        {
        }
        public static function GetTasks()
        {
        }
        public static function GetList($Params = array())
        {
        }
        public static function ClearCache()
        {
        }
        public static function GetById($id)
        {
        }
        public static function GetPagesList($site)
        {
        }
        public static function GetCurPageCount()
        {
        }
        public static function GetCount($Params)
        {
        }
        public static function Edit($Params)
        {
        }
        public static function DeleteAll()
        {
        }
        public static function Delete($ids = array())
        {
        }
        public static function CheckFields()
        {
        }
        public static function SetHiden($ids = array(), $bHide)
        {
        }
        public static function InitJS($Params)
        {
        }
        public static function InitJsAfter()
        {
        }
        public static function GetUserName($id = \false)
        {
        }
        public static function AppendLangMessages()
        {
        }
        public static function Init($Params = array())
        {
        }
        public static function GetErrorMess()
        {
        }
        public static function GetScriptStr($mode)
        {
        }
        public static function GetBShowStickers()
        {
        }
        public static function SetBShowStickers($bShow = \false)
        {
        }
        public static function BBParseToHTML($text, $bForList = \false)
        {
        }
        public static function GetStickerInfo($createdBy, $dateCreate, $modBy, $dateMod)
        {
        }
        public static function GetUsableDate($d)
        {
        }
        public static function SetFilterParams($Filter)
        {
        }
        public static function GetFilterParams()
        {
        }
    }
    /**
    * Bitrix vars
    * @var CMain $APPLICATION
    * @var CUser $USER
    */
    class filemanMedialibUpload
    {
        var $post = array();
        var $collectionId = 0;
        var $ext = array();
        function onBeforeUpload(&$package, $upload, $post, $files, &$error)
        {
        }
        function handleFile($hash, $file, &$package, &$upload)
        {
        }
    }
    // AddEventHandler("fileman", "OnBeforeHTMLEditorScriptsGet", "bitrix_tabs");
    // function bitrix_tabs($editorName, $arEditorParams){return array("JS" => array('bitrix_tabs.js'));}
    class CFileMan
    {
        public static function OnPanelCreate()
        {
        }
        public static function OnGroupDelete($group_id)
        {
        }
        public static function GetVersion()
        {
        }
        public static function SaveMenu($path, $aMenuLinksTmp, $sMenuTemplateTmp = "")
        {
        }
        public static function GetMenuArray($abs_path)
        {
        }
        public static function GetFileName($path)
        {
        }
        public static function CreateDir($path)
        {
        }
        //Function check if there are anything exept .access.php and if folder is empty - delete it
        public static function DeleteDir($path)
        {
        }
        public static function DeleteFile($path)
        {
        }
        public static function DeleteEx($path)
        {
        }
        public static function NormalizePath($path)
        {
        }
        public static function CopyEx($path_from, $path_to, $bDeleteAfterCopy = \false, $bOverride = \false)
        {
        }
        public static function GetAllDirList(&$arDirs, $arFilter = array(), $site = \false)
        {
        }
        public static function DirsRecursive($path, &$arDirs, $arFilter = array(), $depth = 0)
        {
        }
        public static function CompareFiles($f1, $f2, $sort = array())
        {
        }
        public static function GetDirList($path, &$arDirs, &$arFiles, $arFilter = array(), $sort = array(), $type = "DF", $bLogical = \false, $task_mode = \false)
        {
        }
        public static function __CheckSite($site)
        {
        }
        public static function ParsePath($path, $bLast = \false, $url = \false, $param = "", $bLogical = \false)
        {
        }
        public static function GetFileExtension($path)
        {
        }
        public static function GetFileType($path)
        {
        }
        public static function GetStrFileSize($size)
        {
        }
        public static function GetFileTypeEx($fileName)
        {
        }
        public static function EscapePHPString($str)
        {
        }
        public static function UnEscapePHPString($str)
        {
        }
        public static function UndoFileDelete($Params, $type)
        {
        }
        public static function UndoNewFile($Params, $type)
        {
        }
        public static function UndoEditFile($Params, $type)
        {
        }
        public static function UndoNewSection($Params, $type)
        {
        }
        public static function FetchFileAccessPerm($path)
        {
        }
        public static function ShowTypeSelector($params)
        {
        }
        public static function AddHTMLEditorFrame($strTextFieldName, $strTextValue, $strTextTypeFieldName, $strTextTypeValue, $arSize = array("height" => 350), $CONVERT_FOR_WORKFLOW = "N", $WORKFLOW_DOCUMENT_ID = 0, $NEW_DOCUMENT_PATH = "", $textarea_field = "", $site = \false, $bWithoutPHP = \true, $arTaskbars = \false, $arAdditionalParams = array())
        {
        }
        public static function ShowHTMLEditControl($name, $content, $arParams = array())
        {
        }
        public static function GetFileTemplates($lang = \LANG, $arTemplates = array())
        {
        }
        public static function GetTemplateContent($filename, $lang = \LANG, $arTemplates = array())
        {
        }
        public static function GetScriptFileExt()
        {
        }
        public static function ParseFileContent($filesrc, $bCheckProlog = \false)
        {
        }
        public static function SetTitle($prolog, $title)
        {
        }
        public static function SetProperty($prolog, $property_key, $property_val)
        {
        }
        public static function IsPHP($src)
        {
        }
        public static function GetAllTemplateParams($templateID, $site, $findcomponent = \true, $arAdditionalParams = array())
        {
        }
        public static function __CheckOnAllowedComponents($str)
        {
        }
        public static function CheckOnAllowedComponents($str)
        {
        }
        public static function GetHTMLEditorSettings($edname, $lightMode, $arTaskbars, &$loadParams)
        {
        }
        public static function CheckFileName($str)
        {
        }
        public static function GetPropstypes($site = "")
        {
        }
        public static function SetPropstypes($arPT = array(), $desc = \false, $site = "")
        {
        }
        public static function OnModuleUpdate($arParams)
        {
        }
        public static function ClearComponentsListCache($id = '')
        {
        }
        public static function SecurePathVar($str)
        {
        }
        public static function GetUnixFilePermissions($file)
        {
        }
        public static function IsWindows()
        {
        }
        public static function SaveLastPath($path)
        {
        }
        public static function GetLastPathes()
        {
        }
        public static function SetLastPathes($arPathes = array())
        {
        }
        public static function GetLastPathesDefault()
        {
        }
        public static function GetEditorToolbarConfig($editorType)
        {
        }
        public static function decodePdfViewerLangFiles()
        {
        }
        /**
         * @param $path
         * @param $charsetFrom
         * @throws \Bitrix\Main\IO\FileNotFoundException
         */
        protected static function decodeLangFile($path, $charsetFrom)
        {
        }
    }
}
namespace Bitrix\Fileman\UserField\Types {
    /**
     * Class AddressType
     * @package Bitrix\Fileman\UserField\Types
     */
    class AddressType extends \Bitrix\Main\UserField\Types\BaseType
    {
        public const USER_TYPE_ID = 'address', RENDER_COMPONENT = 'bitrix:fileman.field.address', BITRIX24_RESTRICTION = 100, BITRIX24_RESTRICTION_CODE = 'uf_address';
        protected static $restrictionCount = null;
        public static function getDescription() : array
        {
        }
        /**
         * @return string|null
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws LoaderException
         */
        public static function getApiKey() : ?string
        {
        }
        /**
         * @return string
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws LoaderException
         */
        public static function getApiKeyHint() : string
        {
        }
        /**
         * @return array|null
         * @throws LoaderException
         */
        public static function getTrialHint() : ?array
        {
        }
        /**
         * @return bool
         * @throws ArgumentNullException
         * @throws ArgumentOutOfRangeException
         * @throws LoaderException
         */
        public static function canUseMap() : bool
        {
        }
        /**
         * @return bool
         * @throws LoaderException
         */
        public static function checkRestriction() : bool
        {
        }
        /**
         * @return bool
         * @throws LoaderException
         */
        public static function useRestriction() : bool
        {
        }
        public static function getDbColumnType() : string
        {
        }
        public static function prepareSettings(array $userField) : array
        {
        }
        public static function checkFields(array $userField, $value) : array
        {
        }
        /**
         * @param array $userField
         * @param $value
         * @return string|null
         * @throws LoaderException
         */
        public static function onBeforeSave(array $userField, $value)
        {
        }
        /**
         * @param string|null $value
         * @return array
         */
        public static function parseValue(?string $value) : array
        {
        }
        /**
         * @param null|array $userField
         * @param array $additionalSettings
         * @return array
         */
        public static function getFilterData(?array $userField, array $additionalSettings) : array
        {
        }
        /**
         * @param array $userField
         * @return string|null
         */
        public static function onSearchIndex(array $userField) : ?string
        {
        }
    }
}
namespace Bitrix\Fileman\UserField {
    class Address extends \Bitrix\Main\UserField\TypeBase
    {
        const USER_TYPE_ID = \Bitrix\Fileman\UserField\Types\AddressType::USER_TYPE_ID;
        const BITRIX24_RESTRICTION = \Bitrix\Fileman\UserField\Types\AddressType::BITRIX24_RESTRICTION;
        const BITRIX24_RESTRICTION_CODE = \Bitrix\Fileman\UserField\Types\AddressType::BITRIX24_RESTRICTION_CODE;
        protected static $restrictionCount = null;
        function getUserTypeDescription()
        {
        }
        public static function getApiKey()
        {
        }
        public static function getApiKeyHint()
        {
        }
        public static function getTrialHint()
        {
        }
        public static function canUseMap()
        {
        }
        public static function checkRestriction()
        {
        }
        public static function useRestriction()
        {
        }
        function prepareSettings($userField)
        {
        }
        function getDbColumnType($userField)
        {
        }
        function checkFields($userField, $value)
        {
        }
        function onBeforeSave($userField, $value)
        {
        }
        function getSettingsHtml($userField = false, $additionalParameters, $varsFromForm)
        {
        }
        function getEditFormHtml($userField, $additionalParameters)
        {
        }
        function getEditFormHtmlMulty($userField, $additionalParameters)
        {
        }
        protected static function getEdit($arUserField, $arHtmlControl)
        {
        }
        public static function getPublicEdit($userField, $additionalParameters = array())
        {
        }
        public static function getPublicView($userField, $additionalParameters = array())
        {
        }
        public static function getPublicText($userField)
        {
        }
        public static function getAdminListViewHtml($userField, $additionalParameters)
        {
        }
        public static function getAdminListEditHtml($userField, $additionalParameters)
        {
        }
        protected static function parseValue($value)
        {
        }
    }
    /**
     * Class Geo
     * @deprecated
     */
    class Geo extends \Bitrix\Main\UserField\TypeBase
    {
        const USER_TYPE_ID = 'geo';
        function getUserTypeDescription()
        {
        }
        function getDBColumnType($arUserField)
        {
        }
        function prepareSettings($arUserField)
        {
        }
        function onBeforeSave($userField, $value)
        {
        }
        public function onAfterFetch($userfield, $fetched)
        {
        }
        function getSettingsHtml($arUserField = false, $arHtmlControl, $bVarsFromForm)
        {
        }
        function getEditFormHTML($arUserField, $arHtmlControl)
        {
        }
        function getEditFormHTMLMulty($arUserField, $arHtmlControl)
        {
        }
        protected function showAdminEdit($arUserField, $arHtmlControl, $multiple = false)
        {
        }
        public static function getPublicEdit($arUserField, $arAdditionalParameters = array())
        {
        }
        public static function getPublicView($arUserField, $arAdditionalParameters = array())
        {
        }
        protected function getCenter($arUserField, $pointList)
        {
        }
    }
}
namespace Bitrix\Fileman\Controller {
    /**
     * Class HtmlEditorAjax
     */
    class HtmlEditorAjax extends \Bitrix\Main\Engine\Controller
    {
        public function configureActions()
        {
        }
        public function getVideoOembedAction($video_source)
        {
        }
    }
}
namespace Bitrix\Fileman\Block\Content {
    /**
     * Class Engine
     * @package Bitrix\Fileman\Block
     */
    class Engine
    {
        const BLOCK_PLACE_ATTR = 'data-bx-block-editor-place';
        const STYLIST_TAG_ATTR = 'data-bx-stylist-container';
        const BLOCK_PLACE_ATTR_DEF_VALUE = 'body';
        const CONTENT_SLICE = 0;
        const CONTENT_JSON = 1;
        /** @var  BlockContent $content Block content. */
        protected $content;
        /** @var  Document $document Document. */
        protected $document;
        /** @var string|null $encoding Encoding.  */
        protected $encoding = null;
        /**
         * Check string for the presence of slices.
         *
         * @param string $string String.
         * @return bool
         */
        public static function isSupported($string)
        {
        }
        /**
         * Create instance.
         * @param Document|null $document Template document.
         * @return static
         */
        public static function create(\Bitrix\Main\Web\DOM\Document $document = null)
        {
        }
        /**
         * Engine constructor.
         * @param Document|null $document Template document.
         */
        public function __construct(\Bitrix\Main\Web\DOM\Document $document = null)
        {
        }
        /**
         * Set html.
         *
         * @param string $html Html.
         * @return $this
         */
        public function setHtml($html)
        {
        }
        /**
         * Set document.
         *
         * @param Document $document Template document.
         * @return $this
         */
        public function setDocument(\Bitrix\Main\Web\DOM\Document $document)
        {
        }
        /**
         * Set content string.
         *
         * @param string $string Content string.
         * @return Engine
         */
        public function setContent($string)
        {
        }
        /**
         * Set block content.
         *
         * @param BlockContent $blockContent Block content.
         * @return $this
         */
        public function setBlockContent(\Bitrix\Fileman\Block\Content\BlockContent $blockContent)
        {
        }
        /**
         * Set encoding.
         *
         * @param string|null $encoding Encoding.
         * @return $this
         */
        public function setEncoding($encoding = null)
        {
        }
        public function getDocument()
        {
        }
        public function getHtml()
        {
        }
        /**
         * Fill HTML template by content.
         *
         * @param string $htmlTemplate Html template.
         * @param string $content Content.
         * @param string $encoding Encoding.
         * @return string
         */
        public static function fillHtmlTemplate($htmlTemplate, $content, $encoding = null)
        {
        }
        /**
         * Fill document by content.
         *
         * @return bool
         */
        public function fill()
        {
        }
        protected function addBlocksToDocument($blocks)
        {
        }
        protected function addStylesToDocumentHead($styleString)
        {
        }
        /**
         * Parse string to array of block content.
         *
         * @param string $string String.
         * @return BlockContent
         * @throws SystemException
         */
        protected static function createBlockContent($string)
        {
        }
        protected static function getConverters()
        {
        }
    }
    interface IConverter
    {
        /**
         * Check string.
         *
         * @param string $string String.
         * @return bool
         */
        public static function isValid($string);
        /**
         * Parse string to an array of content blocks
         *
         * @param string $string String.
         * @return BlockContent
         */
        public static function toArray($string);
    }
    class SliceConverter implements \Bitrix\Fileman\Block\Content\IConverter
    {
        const SLICE_SECTION_ID = 'BX_BLOCK_EDITOR_EDITABLE_SECTION';
        /**
         * Check string.
         *
         * @param string $string String.
         * @return bool
         */
        public static function isValid($string)
        {
        }
        /**
         * Parse string of sliced content to an array of content blocks.
         *
         * @param string $string String.
         * @return BlockContent
         */
        public static function toArray($string)
        {
        }
        /**
         * Convert block content to string.
         *
         * @param BlockContent $content Block content.
         * @return string
         */
        public static function toString(\Bitrix\Fileman\Block\Content\BlockContent $content)
        {
        }
        /**
         * Sanitize.
         *
         * @param string $string String.
         * @return string
         */
        public static function sanitize($string)
        {
        }
    }
    class BlockContent
    {
        const TYPE_STYLES = 'STYLES';
        const TYPE_BLOCKS = 'BLOCKS';
        protected $list = array();
        public function __construct()
        {
        }
        public function add($type, $place, $value)
        {
        }
        public function getStyles()
        {
        }
        public function getBlocks()
        {
        }
        public function setList(array $list)
        {
        }
        public function getList()
        {
        }
        protected function filterListByType($type)
        {
        }
    }
    class JsonConverter implements \Bitrix\Fileman\Block\Content\IConverter
    {
        /**
         * Check string.
         *
         * @param string $string String.
         * @return bool
         */
        public static function isValid($string)
        {
        }
        /**
         * Parse string of json content to an array of content blocks.
         *
         * @param string $string String.
         * @return BlockContent
         */
        public static function toArray($string)
        {
        }
    }
}
namespace Bitrix\Fileman\Block {
    class Editor
    {
        const SLICE_SECTION_ID = 'BX_BLOCK_EDITOR_EDITABLE_SECTION';
        const BLOCK_PLACE_ATTR = 'data-bx-block-editor-place';
        const BLOCK_PHP_ATTR = 'data-bx-editor-php-slice';
        const STYLIST_TAG_ATTR = 'data-bx-stylist-container';
        const BLOCK_PLACE_ATTR_DEF_VALUE = 'body';
        const BLOCK_COUNT_PER_PAGE = 14;
        public $id;
        protected $site;
        protected $url;
        protected $previewUrl;
        protected $saveFileUrl;
        protected $templateType;
        protected $templateId;
        protected $charset;
        protected $isTemplateMode;
        protected $isUserHavePhpAccess;
        protected $useLightTextEditor;
        protected $ownResultId;
        /*
         * block list
         */
        public $tools = array();
        /*
         * block list
         */
        public $blocks = array();
        protected $componentFilter = array();
        public $componentsAsBlocks = array();
        public $previewModes = array();
        public $tabs = array();
        public $uiPatterns = array('main' => <<<HTML
\t\t#TEXTAREA#
\t\t<div id="bx-block-editor-container-#id#" class="bx-block-editor-container">
\t\t\t<div class="button-panel">
\t\t\t\t#tabs#

\t\t\t\t<span class="bx-editor-block-btn-close" title="#MESS_BTN_MIN#">#MESS_BTN_MIN#</span>
\t\t\t\t<span class="bx-editor-block-btn-full" title="#MESS_BTN_MAX#">#MESS_BTN_MAX#</span>
\t\t\t\t<span data-role="block-editor-tab-btn-get-html" class="bx-editor-block-btn-full bx-editor-block-btn-html-copy" title="#MESS_BTN_HTML_COPY#"></span>
\t\t\t</div>
\t\t\t#panels#
\t\t</div>
HTML
, 'block' => <<<HTML
\t\t<li data-bx-block-editor-block-status="blank"
\t\t\tdata-bx-block-editor-block-type="#code#"
\t\t\tclass="bx-editor-typecode-#code_class# bx-editor-type-#type_class# bx-block-editor-i-block-list-item"
\t\t\ttitle="#desc#"
\t\t\t>
\t\t\t<span class="bx-block-editor-i-block-list-item-icon"></span>
\t\t\t<span class="bx-block-editor-i-block-list-item-name">#name#</span>
\t\t</li>
HTML
, 'block_page' => <<<HTML
\t\t<ul class="bx-block-editor-i-block-list">
\t\t\t#blocks#
\t\t</ul>
HTML
, 'tool' => <<<HTML
\t\t<div class="bx-editor-block-tools" data-bx-editor-tool="#group#:#id#">
\t\t\t<div class="caption">#name#:</div>
\t\t\t<div class="item">#html#</div>
\t\t</div>
HTML
, 'device' => <<<HTML
\t\t<div class="device #class#" data-bx-preview-device-class="#class#" data-bx-preview-device-width="#width#" data-bx-preview-device-height="#height#">
\t\t\t<span>#MESS_NAME#</span>
\t\t</div>
HTML
, 'tab' => <<<HTML
\t\t\t<span class="bx-editor-block-btn bx-editor-block-btn-#code# #tab_active#">#name#</span>
HTML
, 'tab_active' => 'bx-editor-block-btn-active', 'panel' => <<<HTML
\t\t\t<div class="bx-editor-block-panel #code#-panel" #panel_hidden#>#html#</div>
HTML
, 'panel_hidden' => 'style="display: none;"', 'panel-edit' => <<<HTML
\t\t\t<div class="visual-part">
\t\t\t\t<div class="shadow">
\t\t\t\t\t<div class="edit-text"></div>
\t\t\t\t</div>
\t\t\t\t<iframe id="bx-block-editor-iframe-#id#" src="" style="border: none;" width="100%" height="100%"></iframe>
\t\t\t</div>
\t\t\t<div class="dialog-part">
\t\t\t\t<div style="overflow-x: hidden;">
\t\t\t\t\t<div class="block-list-cont">
\t\t\t\t\t\t<div class="block-list-tabs">

\t\t\t\t\t\t\t<div class="bx-editor-block-tabs">
\t\t\t\t\t\t\t\t<span class="tab-list">
\t\t\t\t\t\t\t\t\t<span class="tab blocks active">#MESS_BLOCKS#</span>
\t\t\t\t\t\t\t\t\t<span class="tab styles">#MESS_STYLES#</span>
\t\t\t\t\t\t\t\t</span>
\t\t\t\t\t\t\t</div>

\t\t\t\t\t\t\t<div class="edit-panel-tabs-style">
\t\t\t\t\t\t\t\t<ul class="bx-block-editor-i-place-list" data-bx-place-name="item"></ul>
\t\t\t\t\t\t\t</div>
\t\t\t\t\t\t\t<div style="clear: both;"></div>

\t\t\t\t\t\t\t<div class="edit-panel-tabs-block">

\t\t\t\t\t\t\t\t<div>#blocks#</div>

\t\t\t\t\t\t\t\t<div style="clear: both;"></div>
\t\t\t\t\t\t\t\t<div class="block-pager adm-nav-pages-block">
\t\t\t\t\t\t\t\t\t<span class="adm-nav-page adm-nav-page-prev #nav-display#"></span>
\t\t\t\t\t\t\t\t\t<span class="adm-nav-page adm-nav-page-next #nav-display#"></span>
\t\t\t\t\t\t\t\t</div>

\t\t\t\t\t\t\t</div>


\t\t\t\t\t\t\t<div style="clear: both;"></div>
\t\t\t\t\t\t</div>
\t\t\t\t\t\t<div>

\t\t\t\t\t\t</div>
\t\t\t\t\t</div>
\t\t\t\t</div>
\t\t\t</div>
\t\t\t<div class="block-edit-cont">
\t\t\t\t<div class="bx-editor-block-form-head">
\t\t\t\t\t<div class="bx-editor-block-form-head-btn">
\t\t\t\t\t\t<a class="bx-editor-block-tools-btn bx-editor-block-tools-close" title="#MESS_TOOL_SAVE_TITLE#">#MESS_TOOL_SAVE#</a>
\t\t\t\t\t\t<a class="bx-editor-block-tools-btn bx-editor-block-tools-cancel" title="#MESS_TOOL_CANCEL_TITLE#">#MESS_TOOL_CANCEL#</a>
\t\t\t\t\t</div>

\t\t\t\t\t<div class="block-edit-tabs">
\t\t\t\t\t\t<div class="block-edit-tabs-inner">
\t\t\t\t\t\t\t<span data-bx-block-editor-settings-tab="cont" class="bx-editor-block-tab active">#MESS_TOOL_CONTENT#</span>
\t\t\t\t\t\t\t<span data-bx-block-editor-settings-tab="style" class="bx-editor-block-tab">#MESS_TOOL_STYLES#</span>
\t\t\t\t\t\t\t<span data-bx-block-editor-settings-tab="prop" class="bx-editor-block-tab">#MESS_TOOL_SETTINGS#</span>
\t\t\t\t\t\t</div>
\t\t\t\t\t</div>
\t\t\t\t</div>

\t\t\t\t<div class="block-edit-form-empty">
\t\t\t\t\t#MESS_TOOL_EMPTY#
\t\t\t\t</div>

\t\t\t\t<div class="block-edit-form">
\t\t\t\t\t#tools#
\t\t\t\t</div>
\t\t\t</div>
HTML
, 'panel-preview' => <<<HTML
\t\t<div class="bx-block-editor-preview-container">
\t\t\t<div class="shadow">
\t\t\t\t<div class="edit-text"></div>
\t\t\t\t<div class="error-text">#MESS_ACCESS_DENIED#</div>
\t\t\t</div>
\t\t\t<div class="devices">
\t\t\t\t#devices#
\t\t\t</div>

\t\t\t<center>
\t\t\t\t<div class="iframe-wrapper">
\t\t\t\t\t<iframe sandbox="allow-same-origin allow-forms" class="preview-iframe" src=""></iframe>
\t\t\t\t</div>
\t\t\t</center>
\t\t</div>

\t\t<div style="clear:both;"></div>
HTML
, 'panel-get-html' => <<<HTML
\t\t<textarea style="width: 100%; height: 100%; min-height: 400px;" onfocus="this.select()"></textarea>
HTML
);
        /**
         * Return editor object
         *
         * @param array $params
         * @return Editor
         */
        public static function createInstance($params)
        {
        }
        /**
         * Create editor object.
         *
         * @param array $params
         */
        public function __construct($params)
        {
        }
        /**
         * Set custom blocks
         *
         * @param array $blocks
         * @return void
         */
        public function setBlockList(array $blocks)
        {
        }
        /**
         * Set custom tools
         *
         * @param array $tools
         * @return void
         */
        public function setToolList(array $tools)
        {
        }
        /**
         * Return list of default blocks
         *
         * @return array
         */
        public function getDefaultBlockList()
        {
        }
        /**
         * Return true if can use Russian services.
         *
         * @return bool
         */
        public static function isAvailableRussian()
        {
        }
        /**
         * Return list of default tools, uses for block changing
         *
         * @return array
         */
        public function getDefaultToolList()
        {
        }
        /**
         * Return html of interface part.
         *
         * @param string $id
         * @param array $values
         * @return string
         */
        public function getUI($id, array $values)
        {
        }
        /**
         * Return html of editor interface without resources.
         *
         * @return string
         */
        public function showEditor()
        {
        }
        /**
         * Return html for showing editor and include all resources
         *
         * @return string
         */
        public function show()
        {
        }
        /**
         * Return received string, that php changed in special format for block editor.
         *
         * @param string $html
         * @param string $charset
         * @return string $html
         */
        public static function getHtmlForEditor($html, $charset = null)
        {
        }
        /**
         * Replace charset in HTML string.
         *
         * @param string $html
         * @param string $charset
         * @param bool $add
         * @return string $html
         */
        public static function replaceCharset($html, $charset = '#CHARSET#', $add = false)
        {
        }
        /**
         * Fill template(as a HTML) by slice content.
         * Result is string.
         *
         * @param string $template
         * @param string $string Content string.
         * @param string $encoding
         * @return string
         * @deprecated
         * @see \Bitrix\Fileman\Block\Content\Engine::fillHtmlTemplate
         */
        public static function fillTemplateBySliceContent($template, $string, $encoding = null)
        {
        }
        /**
         * Fill template(as a DOM Document) by content.
         *
         * @param Document $document Document.
         * @param string $string Content string.
         * @param string $encoding
         * @return boolean
         * @deprecated
         * @see \Bitrix\Fileman\Block\Content\Engine::fillHtmlTemplate
         */
        public static function fillDocumentBySliceContent(\Bitrix\Main\Web\DOM\Document $document, $string, $encoding = null)
        {
        }
        /**
         * Check string for the presence of tag attributes that indicates supporting of block editor
         *
         * @param string $content
         * @return boolean
         */
        public static function isContentSupported($content)
        {
        }
        /**
         * Check string for the presence of html
         *
         * @param string $content
         * @return bool
         */
        public static function isHtmlDocument($content)
        {
        }
        /**
         * Set components filter
         *
         * @param array $componentFilter
         * @return void
         */
        public function setComponentFilter(array $componentFilter = null)
        {
        }
        protected function getComponentList()
        {
        }
        protected function getComponentTree()
        {
        }
        protected function getComponentListPlain($list)
        {
        }
    }
    class Tools
    {
        /**
         * @return string
         */
        public static function getControlInput()
        {
        }
        /**
         * @return string
         */
        public static function getControlSelect(array $optionList, $haveDefault = true)
        {
        }
        /**
         * @return string
         */
        public static function getControlColor()
        {
        }
        /**
         * @return string
         */
        public static function getControlPaddingBottoms()
        {
        }
        /**
         * @return string
         */
        public static function getControlBorderRadius()
        {
        }
        /**
         * @return string
         */
        public static function getControlTextDecoration()
        {
        }
        /**
         * @return string
         */
        public static function getControlTextAlign()
        {
        }
        /**
         * @return string
         */
        public static function getControlAlign()
        {
        }
        /**
         * @return string
         */
        public static function getControlFontFamily()
        {
        }
        /**
         * @return string
         */
        public static function getControlLineHeight()
        {
        }
        /**
         * @return string
         */
        public static function getControlFontWeight()
        {
        }
        /**
         * @return string
         */
        public static function getControlFontSize()
        {
        }
    }
    /**
     * Class Sanitizer
     * @package Bitrix\Fileman\Block
     */
    class Sanitizer
    {
        /**
         * Clean Html.
         *
         * @param string $html Html.
         * @return string
         */
        public static function clean($html)
        {
        }
        protected static function getCommonAttributes()
        {
        }
        protected static function getTags()
        {
        }
        private static function replacePhpToTags(&$html)
        {
        }
        private static function replaceTagsToPhp(&$html, array $stored = [])
        {
        }
    }
    class EditorMail
    {
        /**
         * Create instance of editor.
         *
         * @param array $params Parameters.
         * @return Editor
         */
        public static function createInstance($params)
        {
        }
        /**
         * Show editor.
         *
         * @param array $params Parameters.
         * @return string
         */
        public static function show(array $params)
        {
        }
        /**
         * Remove php from html.
         *
         * @param string $html Html.
         * @param string $previousHtml Previous html.
         * @param bool $canEditPhp Can edit php.
         * @param bool $canUseLpa Can use LPA.
         * @return string
         */
        public static function removePhpFromHtml($html, $previousHtml = null, $canEditPhp = false, $canUseLpa = false)
        {
        }
        /**
         * Show preview of content.
         *
         * @param array $params Parameters.
         * @return string
         */
        public static function getPreview(array $params)
        {
        }
        /**
         * Get block list.
         *
         * @return array
         */
        public static function getBlockList()
        {
        }
    }
}
namespace {
    class CBPTemplates_BusinessTrips
    {
        function GetName()
        {
        }
        function GetVariables()
        {
        }
        function GetParameters()
        {
        }
        function GetTemplate()
        {
        }
        function GetDocumentFields()
        {
        }
    }
    class CBPTemplates_Vacation
    {
        function GetName()
        {
        }
        function GetVariables()
        {
        }
        function GetParameters()
        {
        }
        function GetTemplate()
        {
        }
        function GetDocumentFields()
        {
        }
    }
    class bizproc extends \CModule
    {
        var $MODULE_ID = "bizproc";
        var $MODULE_VERSION;
        var $MODULE_VERSION_DATE;
        var $MODULE_NAME;
        var $MODULE_DESCRIPTION;
        var $MODULE_CSS;
        var $MODULE_GROUP_RIGHTS = "Y";
        function __construct()
        {
        }
        function InstallDB($install_wizard = \true)
        {
        }
        function UnInstallDB($arParams = array())
        {
        }
        function InstallEvents()
        {
        }
        function UnInstallEvents()
        {
        }
        function InstallFiles()
        {
        }
        function InstallPublic()
        {
        }
        function UnInstallFiles()
        {
        }
        function DoInstall()
        {
        }
        function DoUninstall()
        {
        }
        function GetModuleRightList()
        {
        }
    }
    class BizprocScriptEditComponent extends \CBitrixComponent
    {
        protected function listKeysSignedParameters()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        public function executeComponent()
        {
        }
    }
    class BizprocScriptEditAjaxController extends \Bitrix\Main\Engine\Controller
    {
        protected function init()
        {
        }
        public function configureActions()
        {
        }
        public function exportScriptAction()
        {
        }
        public function deleteScriptAction()
        {
        }
        private function importScriptAction()
        {
        }
    }
    class BizprocWorkflowFaces extends \CBitrixComponent
    {
        protected $workflowId;
        protected function getWorkflowId()
        {
        }
        protected function getTargetTaskId()
        {
        }
        protected function getStartedBy($workflowState)
        {
        }
        protected function getWorkflowStateInfo()
        {
        }
        protected function rebuildTaskList(&$tasks, $taskId)
        {
        }
        public function executeComponent()
        {
        }
        public static function prepareTasksForJs($tasks)
        {
        }
    }
    class BizprocScriptPlacementComponent extends \CBitrixComponent
    {
        public function onPrepareComponentParams($arParams)
        {
        }
        public function executeComponent()
        {
        }
        public static function getGridPanelButton($gridId, array $params)
        {
        }
        private static function canUse()
        {
        }
    }
    class BizprocScriptPlacementAjaxController extends \Bitrix\Main\Engine\Controller
    {
        protected function init()
        {
        }
        public function createScriptAction($fields)
        {
        }
    }
    class BizprocWorkflowStart extends \CBitrixComponent
    {
        public function onPrepareComponentParams($arParams)
        {
        }
        public function executeComponent()
        {
        }
        protected function autoStartParametersAction($execType)
        {
        }
    }
    class BizprocAutomationComponent extends \CBitrixComponent
    {
        protected function getDocumentType()
        {
        }
        protected function getDocumentId()
        {
        }
        private function getStatusesEditUrl()
        {
        }
        private function getWorkflowEditUrl()
        {
        }
        private function getConstantsEditUrl()
        {
        }
        private function getParametersEditUrl()
        {
        }
        private function getTitleView()
        {
        }
        private function getTitleEdit()
        {
        }
        protected function getDocumentCategoryId()
        {
        }
        protected function isApiMode()
        {
        }
        protected function isOneTemplateMode()
        {
        }
        protected function getTemplateInfo()
        {
        }
        protected function getTemplates(array $statuses)
        {
        }
        protected function prepareTemplateForView()
        {
        }
        protected function getTemplateStatusList()
        {
        }
        public static function getTemplateViewData(array $template, $documentType)
        {
        }
        public static function getRobotViewData($robot, array $documentType)
        {
        }
        private static function getUsersFromResponsibleProperty(array $robot, $propertyName)
        {
        }
        public function executeComponent()
        {
        }
        public static function signDocument(array $documentType, $documentCategoryId, $documentId)
        {
        }
        /**
         * @param string $unsignedData
         * @return array
         */
        public static function unSignDocument($unsignedData)
        {
        }
        /**
         * @deprecated
         */
        public static function getDestinationData(array $documentType)
        {
        }
        private function getDocumentFields($filter = \null)
        {
        }
        private function getDocumentUserGroups()
        {
        }
        private function showError($message)
        {
        }
        private function prepareDelayMinLimitResult()
        {
        }
    }
    class BizprocWorkflowInstances extends \CBitrixComponent
    {
        const GRID_ID = 'bizproc_instances';
        protected $lockedTime;
        protected $isAdmin;
        protected $gridOptions;
        protected static $fields = array('ID' => 'ID', 'MODIFIED' => 'MODIFIED', 'OWNER_ID' => 'OWNER_ID', 'OWNED_UNTIL' => 'OWNED_UNTIL', 'WS_MODULE_ID' => 'MODULE_ID', 'WS_ENTITY' => 'ENTITY', 'WS_DOCUMENT_ID' => 'DOCUMENT_ID', 'WS_STARTED' => 'STARTED', 'WS_STARTED_BY' => 'STARTED_BY', 'WS_WORKFLOW_TEMPLATE_ID' => 'WORKFLOW_TEMPLATE_ID', 'WS_STARTED_USER_NAME' => 'STARTED_USER.NAME', 'WS_STARTED_USER_LAST_NAME' => 'STARTED_USER.LAST_NAME', 'WS_STARTED_USER_LOGIN' => 'STARTED_USER.LOGIN');
        protected static $moduleNames = array();
        protected function isAdmin()
        {
        }
        public function onPrepareComponentParams($params)
        {
        }
        protected function getFieldName($name)
        {
        }
        protected function getGridHeaders()
        {
        }
        protected function getFilter()
        {
        }
        protected function getFilterPresets()
        {
        }
        protected function getDocumentTypes()
        {
        }
        protected function setPageTitle($title)
        {
        }
        protected function getGridOptions()
        {
        }
        protected function mergeFilters(array $filter, array $gridFilter)
        {
        }
        protected function getSorting($useAliases = \false)
        {
        }
        protected function getPaginationInfo()
        {
        }
        protected function getLockedTime()
        {
        }
        protected function getLockedCount()
        {
        }
        public function executeComponent()
        {
        }
        public static function getModuleName($moduleId, $entity = \null)
        {
        }
    }
    class BizprocWorkflowInfo extends \CBitrixComponent
    {
        protected $workflowId;
        /**
         * Prepare WORKFLOW_ID parameter. For compatibility with old component
         * @param $params
         * @return mixed
         */
        public function onPrepareComponentParams($params)
        {
        }
        protected function getWorkflowId()
        {
        }
        protected function isAuthorizationNeeded()
        {
        }
        protected function getStartedByPhoto($userId)
        {
        }
        protected function setPageTitle($title)
        {
        }
        public function executeComponent()
        {
        }
    }
    interface IBPActivityEventListener
    {
        public function OnEvent(\CBPActivity $sender, $arEventParameters = array());
    }
    abstract class CBPCompositeActivity extends \CBPActivity
    {
        protected $arActivities = array();
        public function SetWorkflow(\CBPWorkflow $workflow)
        {
        }
        protected function ReInitialize()
        {
        }
        public function CollectNestedActivities()
        {
        }
        public function FixUpParentChildRelationship(\CBPActivity $nestedActivity)
        {
        }
        protected function ClearNestedActivities()
        {
        }
        public function Initialize()
        {
        }
        public function Finalize()
        {
        }
        public function HandleFault(\Exception $exception)
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
    }
    class CBPStateMachineWorkflowActivity extends \CBPCompositeActivity implements \IBPActivityEventListener
    {
        private $documentId = array();
        private $workflowTemplateId = \null;
        private $templateUserId = \null;
        protected $documentType = array();
        private $workflowStatus = \CBPWorkflowStatus::Created;
        private $customStatusMode = \false;
        protected $arVariables = array();
        protected $arVariablesTypes = array();
        protected $arFieldTypes = array();
        public function __construct($name)
        {
        }
        public function ToString()
        {
        }
        public function GetDocumentId()
        {
        }
        public function SetDocumentId($documentId)
        {
        }
        public function GetWorkflowTemplateId()
        {
        }
        public function SetWorkflowTemplateId($workflowTemplateId)
        {
        }
        public function getTemplateUserId()
        {
        }
        public function setTemplateUserId($userId)
        {
        }
        public function GetWorkflowStatus()
        {
        }
        public function SetWorkflowStatus($status)
        {
        }
        public function SetCustomStatusMode()
        {
        }
        public function Execute()
        {
        }
        protected function GetStateActivityByName($name)
        {
        }
        public function OnEvent(\CBPActivity $sender, $arEventParameters = array())
        {
        }
        public function Cancel()
        {
        }
        /**
         * Returns available events for current state
         * 
         */
        public function GetAvailableStateEvents()
        {
        }
        public static function ValidateChild($childActivity, $bFirstChild = \false)
        {
        }
    }
    class CBPSetStateActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    interface IBPEventActivity
    {
        public function Subscribe(\IBPActivityExternalEventListener $eventHandler);
        public function Unsubscribe(\IBPActivityExternalEventListener $eventHandler);
    }
    interface IBPActivityExternalEventListener
    {
        public function OnExternalEvent($arEventParameters = array());
    }
    class CBPRequestInformationOptionalActivity extends \CBPCompositeActivity implements \IBPEventActivity, \IBPActivityExternalEventListener
    {
        const ACTIVITY = 'RequestInformationOptionalActivity';
        const CONTROLS_PREFIX = 'bprioact_';
        private $taskId = 0;
        private $taskUsers = array();
        private $subscriptionId = 0;
        private $isInEventActivityMode = \false;
        private $taskStatus = \false;
        private $cancelUsers = array();
        public function __construct($name)
        {
        }
        protected function ReInitialize()
        {
        }
        public function Execute()
        {
        }
        public function Subscribe(\IBPActivityExternalEventListener $eventHandler)
        {
        }
        public function Unsubscribe(\IBPActivityExternalEventListener $eventHandler)
        {
        }
        public function HandleFault(\Exception $exception)
        {
        }
        public function Cancel()
        {
        }
        public function OnExternalEvent($eventParameters = array())
        {
        }
        protected function ExecuteOnOk()
        {
        }
        protected function ExecuteOnCancel()
        {
        }
        protected function OnEvent(\CBPActivity $sender)
        {
        }
        public static function ShowTaskForm($arTask, $userId, $userName = "", $arRequest = \null)
        {
        }
        public static function getTaskControls($arTask)
        {
        }
        protected static function getEventParameters($task, $request)
        {
        }
        protected static function getTaskResponse($task)
        {
        }
        protected static function prepareResponseFields($task, $values)
        {
        }
        protected static function validateTaskEventParameters($arTask, $eventParameters)
        {
        }
        public static function PostTaskForm($task, $userId, $request, &$errors, $userName = "", $realUserId = \null)
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        private function CalculateTimeoutDuration()
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "", $popupWindow = \null)
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
        public function collectUsages()
        {
        }
    }
    class CBPLockDocumentActivity extends \CBPActivity implements \IBPActivityExternalEventListener
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public function Finalize()
        {
        }
        public function OnExternalEvent($arEventParameters = array())
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPListenActivity extends \CBPCompositeActivity implements \IBPActivityEventListener
    {
        public $isListenTrigerred = \false;
        public $arActivityState = array();
        public function __construct($name)
        {
        }
        protected function ReInitialize()
        {
        }
        public function ToString()
        {
        }
        public function Execute()
        {
        }
        public function OnEvent(\CBPActivity $sender, $arEventParameters = array())
        {
        }
        public function Cancel()
        {
        }
        public static function ValidateChild($childActivity, $bFirstChild = \false)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    final class CBPListenEventActivitySubscriber implements \IBPActivityExternalEventListener
    {
        private $eventDrivenActivity;
        public function __construct(\CBPEventDrivenActivity $eventDriven)
        {
        }
        public function ToString()
        {
        }
        public function OnExternalEvent($arEventParameters = array())
        {
        }
    }
    abstract class CBPActivityCondition
    {
        public abstract function Evaluate(\CBPActivity $ownerActivity);
        public static function CreateInstance($code, $data)
        {
        }
        public function collectUsages(\CBPActivity $ownerActivity)
        {
        }
        public static function ValidateProperties($value = \null, \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function CallStaticMethod($code, $method, $arParameters = array())
        {
        }
    }
    class CBPPropertyVariableCondition extends \CBPActivityCondition
    {
        const CONDITION_JOINER_AND = 0;
        const CONDITION_JOINER_OR = 1;
        public $condition = \null;
        public function __construct($condition)
        {
        }
        public function Evaluate(\CBPActivity $ownerActivity)
        {
        }
        public function collectUsages(\CBPActivity $ownerActivity)
        {
        }
        /**
         * @param $field
         * @param $operation
         * @param $value
         * @param null $baseType
         * @param CBPActivity $rootActivity
         * @param null $property
         * @return bool
         */
        private function CheckCondition($field, $operation, $value, $baseType, $rootActivity, $property = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $defaultValue, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues, &$errors)
        {
        }
    }
    class CBPWebHookActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        protected static function checkRegister()
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "", $popupWindow = \null, $siteId = '')
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPWhileActivity extends \CBPCompositeActivity implements \IBPActivityEventListener
    {
        const CYCLE_LIMIT = 1000;
        private $cycleCounter = 0;
        public function __construct($name)
        {
        }
        protected function GetACNames()
        {
        }
        public function InitializeFromArray($arParams)
        {
        }
        private function CreateCondition($conditionCode, $data)
        {
        }
        public function Execute()
        {
        }
        public function Cancel()
        {
        }
        public function OnEvent(\CBPActivity $sender, $arEventParameters = array())
        {
        }
        public function __wakeup()
        {
        }
        private function TryNextIteration()
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
        public function collectUsages()
        {
        }
    }
    class CBPSocNetMessageActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        private function getMessageText($isRobot = \false)
        {
        }
        private function sendRobotMessage()
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPTrueCondition extends \CBPActivityCondition
    {
        public $condition = \true;
        public function __construct($condition)
        {
        }
        public function Evaluate(\CBPActivity $ownerActivity)
        {
        }
        public static function ValidateProperties($value = \null, \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $defaultValue, $arCurrentValues = \null)
        {
        }
        public static function GetPropertiesDialogValues($documentType, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPCodeActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPReviewActivity extends \CBPCompositeActivity implements \IBPEventActivity, \IBPActivityExternalEventListener
    {
        private $taskId = 0;
        private $taskUsers = array();
        private $subscriptionId = 0;
        private $isInEventActivityMode = \false;
        private $taskStatus = \false;
        private $arReviewResults = array();
        private $arReviewOriginalResults = array();
        public function __construct($name)
        {
        }
        protected function ReInitialize()
        {
        }
        public function Execute()
        {
        }
        public function Subscribe(\IBPActivityExternalEventListener $eventHandler)
        {
        }
        private function ReplaceTemplate($str, $ar)
        {
        }
        public function Unsubscribe(\IBPActivityExternalEventListener $eventHandler)
        {
        }
        public function HandleFault(\Exception $exception)
        {
        }
        public function Cancel()
        {
        }
        public function OnExternalEvent($arEventParameters = array())
        {
        }
        private function GetReviewersNames()
        {
        }
        protected function OnEvent(\CBPActivity $sender)
        {
        }
        public static function ShowTaskForm($arTask, $userId, $userName = "")
        {
        }
        public static function getTaskControls($arTask)
        {
        }
        public static function PostTaskForm($arTask, $userId, $arRequest, &$arErrors, $userName = "", $realUserId = \null)
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        private function CalculateTimeoutDuration()
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPSequenceActivity extends \CBPCompositeActivity implements \IBPActivityEventListener
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        protected function OnSequenceComplete()
        {
        }
        public function OnEvent(\CBPActivity $sender, $arEventParameters = array())
        {
        }
        private function TryScheduleNextChild()
        {
        }
        public function Cancel()
        {
        }
        public function HandleFault(\Exception $exception)
        {
        }
    }
    class CBPEventDrivenActivity extends \CBPSequenceActivity
    {
        public function __construct($name)
        {
        }
        public function GetEventActivity()
        {
        }
        public static function ValidateChild($childActivity, $bFirstChild = \false)
        {
        }
    }
    class CBPForumReviewActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
    }
    class CBPSetFieldActivity extends \CBPActivity implements \IBPActivityExternalEventListener
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        protected function prepareFieldsValues(array $documentId, array $documentType, array $fields, $mergeValues = \null) : array
        {
        }
        public function OnExternalEvent($arEventParameters = array())
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "", $popupWindow = \null)
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$errors)
        {
        }
        public function collectUsages()
        {
        }
    }
    class CBPAbsenceActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "", $form = \null, $siteId = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPStateActivity extends \CBPCompositeActivity implements \IBPActivityEventListener
    {
        public $isListenTrigerred = \false;
        public $arActivityState = array();
        protected $nextStateName = "";
        public function __construct($name)
        {
        }
        public function ToString()
        {
        }
        public function SetNextStateName($name)
        {
        }
        public function Execute()
        {
        }
        private function ExecuteState()
        {
        }
        public function OnEvent(\CBPActivity $sender, $arEventParameters = array())
        {
        }
        public function Cancel()
        {
        }
        /**
         * Returns available events for current state
         *
         */
        private function GetAvailableStateEvents()
        {
        }
        public static function ValidateChild($childActivity, $bFirstChild = \false)
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    final class CBPStateEventActivitySubscriber implements \IBPActivityExternalEventListener
    {
        private $eventDrivenActivity;
        public function __construct(\CBPEventDrivenActivity $eventDriven)
        {
        }
        public function ToString()
        {
        }
        public function OnExternalEvent($arEventParameters = array())
        {
        }
    }
    class CBPSetStateTitleActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPRandomStringActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        protected function ReInitialize()
        {
        }
        public function Execute()
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "", $popupWindow = \null, $siteId = '')
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$errors)
        {
        }
    }
    class CBPGetUserActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        private function GetUsersList($arUsersList, $bSkipAbsent = \true, $bSkipTimeman = \false)
        {
        }
        protected function getActiveUsers(array $users) : array
        {
        }
        public function Execute()
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
    }
    class CBPSocNetLogActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
    }
    class CBPIfElseActivity extends \CBPCompositeActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public function Cancel()
        {
        }
        protected function OnEvent(\CBPActivity $sender)
        {
        }
        public static function ValidateChild($childActivity, $bFirstChild = \false)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
        public function collectUsages()
        {
        }
    }
    class CBPStateFinalizationActivity extends \CBPSequenceActivity
    {
        public function __construct($name)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPGetUserInfoActivity extends \CBPActivity
    {
        private $userFields;
        protected static function getUserFields()
        {
        }
        public function __construct($name)
        {
        }
        protected function ReInitialize()
        {
        }
        public function Execute()
        {
        }
        protected function convertSelectValue($value, $fieldMap)
        {
        }
        protected function isCreatedByUser($fieldName)
        {
        }
        protected static function getFieldsCreatedByUser()
        {
        }
        protected static function resolveUserFieldType(string $type) : ?string
        {
        }
        protected static function getOptionsFromFieldEnum($field)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$errors)
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
    }
    class CBPMailActivity extends \CBPActivity
    {
        const DEFAULT_SEPARATOR = ',';
        const FILE_TYPE_FILE = 'file';
        const FILE_TYPE_DISK = 'disk';
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "", $popupWindow = \null, $siteId = '')
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
        private function getFiles()
        {
        }
        private function getFileIds()
        {
        }
        private function getAttachments()
        {
        }
        public static function CheckEmailUserValue($user)
        {
        }
        private function encodeFrom(array $from, $charset)
        {
        }
        private function encodeReplyTo(array $fromList, $charset, $separator = self::DEFAULT_SEPARATOR)
        {
        }
        private static function extractEmails($ar)
        {
        }
        private static function getMailUserPropertyGetter()
        {
        }
        private function getFromList($separator = self::DEFAULT_SEPARATOR)
        {
        }
        private function filterFromList(array $fromList) : array
        {
        }
        private function getConfirmedEmails(array $emailsToCheck) : array
        {
        }
        private function getMailUserTo($separator = self::DEFAULT_SEPARATOR)
        {
        }
        private function getMailText()
        {
        }
        private static function encodeMailText($text)
        {
        }
        public static function decodeMailText($text)
        {
        }
    }
    interface IBPRootActivity
    {
        public function GetDocumentId();
        public function SetDocumentId($documentId);
        public function GetWorkflowStatus();
        public function SetWorkflowStatus($status);
        public function SetProperties($arProperties = array());
        public function SetVariables($arVariables = array());
        public function SetVariable($name, $value);
        public function GetVariable($name);
        public function IsVariableExists($name);
        public function SetCustomStatusMode();
    }
    class CBPSequentialWorkflowActivity extends \CBPSequenceActivity implements \IBPRootActivity
    {
        private $documentId = array();
        private $workflowTemplateId = \null;
        private $templateUserId = \null;
        protected $documentType = array();
        private $workflowStatus = \CBPWorkflowStatus::Created;
        private $customStatusMode = \false;
        protected $arVariables = array();
        protected $arVariablesTypes = array();
        protected $arFieldTypes = array();
        public function __construct($name)
        {
        }
        public function GetDocumentId()
        {
        }
        public function SetDocumentId($documentId)
        {
        }
        public function GetWorkflowTemplateId()
        {
        }
        public function SetWorkflowTemplateId($workflowTemplateId)
        {
        }
        public function getTemplateUserId()
        {
        }
        public function setTemplateUserId($userId)
        {
        }
        public function GetWorkflowStatus()
        {
        }
        public function SetWorkflowStatus($status)
        {
        }
        public function SetCustomStatusMode()
        {
        }
        public function ToString()
        {
        }
        public function Execute()
        {
        }
        protected function OnSequenceComplete()
        {
        }
    }
    class CBPRequestInformationActivity extends \CBPActivity implements \IBPEventActivity, \IBPActivityExternalEventListener
    {
        const ACTIVITY = 'RequestInformationActivity';
        const CONTROLS_PREFIX = 'bpriact_';
        private $taskId = 0;
        private $taskUsers = array();
        private $subscriptionId = 0;
        private $isInEventActivityMode = \false;
        private $taskStatus = \false;
        public function __construct($name)
        {
        }
        protected function ReInitialize()
        {
        }
        public function Execute()
        {
        }
        public function Subscribe(\IBPActivityExternalEventListener $eventHandler)
        {
        }
        public function Unsubscribe(\IBPActivityExternalEventListener $eventHandler)
        {
        }
        public function HandleFault(\Exception $exception)
        {
        }
        public function Cancel()
        {
        }
        public function OnExternalEvent($eventParameters = array())
        {
        }
        protected function OnEvent(\CBPActivity $sender)
        {
        }
        public static function ShowTaskForm($arTask, $userId, $userName = "", $arRequest = \null)
        {
        }
        public static function getTaskControls($arTask)
        {
        }
        protected static function getEventParameters($task, $request)
        {
        }
        protected static function getTaskResponse($task)
        {
        }
        protected static function prepareResponseFields($task, $values)
        {
        }
        protected static function validateTaskEventParameters($arTask, $eventParameters)
        {
        }
        public static function PostTaskForm($task, $userId, $request, &$errors, $userName = "", $realUserId = \null)
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        private function findRequestChanges($properties, $values)
        {
        }
        private function CalculateTimeoutDuration()
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "", $popupWindow = \null)
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
        public function collectUsages()
        {
        }
    }
    class CBPUnpublishDocumentActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPStateInitializationActivity extends \CBPSequenceActivity
    {
        public function __construct($name)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPUnlockDocumentActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPSetPermissionsActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    interface IBPEventDrivenActivity
    {
    }
    class CBPDelayActivity extends \CBPActivity implements \IBPEventActivity, \IBPActivityExternalEventListener, \IBPEventDrivenActivity
    {
        private $subscriptionId = 0;
        private $isInEventActivityMode = \false;
        public function __construct($name)
        {
        }
        public function Cancel()
        {
        }
        public function Execute()
        {
        }
        public function Subscribe(\IBPActivityExternalEventListener $eventHandler)
        {
        }
        public function Unsubscribe(\IBPActivityExternalEventListener $eventHandler)
        {
        }
        public function OnExternalEvent($arEventParameters = array())
        {
        }
        public function HandleFault(\Exception $exception)
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        private function CalculateTimeoutDuration()
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$errors)
        {
        }
    }
    class CBPCalendarActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPLogActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$errors)
        {
        }
    }
    class CBPSetVariableActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
        public function collectUsages()
        {
        }
    }
    class CBPApproveActivity extends \CBPCompositeActivity implements \IBPEventActivity, \IBPActivityExternalEventListener
    {
        private $taskId = 0;
        private $taskUsers = array();
        private $subscriptionId = 0;
        private $isInEventActivityMode = \false;
        private $taskStatus = \false;
        private $arApproveResults = array();
        private $arApproveOriginalResults = array();
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public function Subscribe(\IBPActivityExternalEventListener $eventHandler)
        {
        }
        private function ReplaceTemplate($str, $ar)
        {
        }
        public function Unsubscribe(\IBPActivityExternalEventListener $eventHandler)
        {
        }
        public function HandleFault(\Exception $exception)
        {
        }
        public function Cancel()
        {
        }
        protected function ExecuteOnApprove()
        {
        }
        protected function ExecuteOnNonApprove()
        {
        }
        public function OnExternalEvent($arEventParameters = array())
        {
        }
        private function GetApproversNames($b)
        {
        }
        private function writeApproversResult()
        {
        }
        protected function OnEvent(\CBPActivity $sender)
        {
        }
        protected function ReInitialize()
        {
        }
        public static function ShowTaskForm($arTask, $userId, $userName = "")
        {
        }
        public static function getTaskControls($arTask)
        {
        }
        public static function PostTaskForm($arTask, $userId, $arRequest, &$arErrors, $userName = "", $realUserId = \null)
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        private function CalculateTimeoutDuration()
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPCodeCondition extends \CBPActivityCondition
    {
        public $condition = "";
        public function __construct($condition)
        {
        }
        public function Evaluate(\CBPActivity $ownerActivity)
        {
        }
        public static function ValidateProperties($value = \null, \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $defaultValue, $arCurrentValues = \null)
        {
        }
        public static function GetPropertiesDialogValues($documentType, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPFieldCondition extends \CBPActivityCondition
    {
        const CONDITION_JOINER_AND = 0;
        const CONDITION_JOINER_OR = 1;
        public $condition = \null;
        public function __construct($condition)
        {
        }
        public function Evaluate(\CBPActivity $ownerActivity)
        {
        }
        public function collectUsages(\CBPActivity $ownerActivity)
        {
        }
        /**
         * @param $fieldName
         * @param $field
         * @param $operation
         * @param $value
         * @param $baseType
         * @param $type
         * @param CBPActivity $rootActivity
         * @return bool
         */
        private function CheckCondition($fieldName, $field, $operation, $value, $baseType, $type, $rootActivity)
        {
        }
        public static function GetPropertiesDialog($documentType, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $defaultValue, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPDeleteDocumentActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "", $popupWindow = \null, $siteId = '')
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPCreateDocumentActivity extends \CBPActivity
    {
        const EXECUTION_MAX_DEPTH = 1;
        private static $executionDepth = array();
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "", $popupWindow = \null)
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
        private static function increaseExecutionDepth($key)
        {
        }
        private static function resetExecutionDepth($key)
        {
        }
    }
    class CBPStartWorkflowActivity extends \CBPActivity implements \IBPEventActivity, \IBPActivityExternalEventListener
    {
        private static $templatesCache = array();
        protected $wfId = \null;
        public function __construct($name)
        {
        }
        protected function ReInitialize()
        {
        }
        public function OnExternalEvent($eventParameters = array())
        {
        }
        public function Subscribe(\IBPActivityExternalEventListener $eventHandler)
        {
        }
        public function Unsubscribe(\IBPActivityExternalEventListener $eventHandler)
        {
        }
        public function Cancel()
        {
        }
        public function HandleFault(\Exception $exception)
        {
        }
        public function Execute()
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $currentValues = \null, $formName = "", $popupWindow, $siteId = '')
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$workflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $currentValues, &$errors)
        {
        }
        public static function ValidateProperties($testProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function getAjaxResponse($request)
        {
        }
        protected static function jsObjectToPropertiesDialog(array $dialog)
        {
        }
        private static function checkAdminPermissions()
        {
        }
        private static function getTypesList($entityId)
        {
        }
        private static function getTemplatesList($document)
        {
        }
        private static function getTemplate($id)
        {
        }
        private static function extractTemplateParameterValues($documentType, $templateId, $request, &$errors = array())
        {
        }
        private static function renderTemplateParametersForm($documentType, $templateId, $formName, array $currentValues = array())
        {
        }
        private static function renderRobotTemplateParametersForm($dialog, $templateId, array $currentValues = array())
        {
        }
    }
    class CBPTerminateActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPIfElseBranchActivity extends \CBPSequenceActivity
    {
        public function __construct($name)
        {
        }
        protected function GetACNames()
        {
        }
        public function InitializeFromArray($arParams)
        {
        }
        private function CreateCondition($conditionCode, $data)
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPPublishDocumentActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPParallelActivity extends \CBPCompositeActivity implements \IBPActivityEventListener
    {
        private $isExecuting = \false;
        public function __construct($name)
        {
        }
        public function Cancel()
        {
        }
        public function Execute()
        {
        }
        public function OnEvent(\CBPActivity $sender, $arEventParameters = array())
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPHandleExternalEventActivity extends \CBPActivity implements \IBPEventActivity, \IBPActivityExternalEventListener, \IBPEventDrivenActivity
    {
        private $isInEventActivityMode = \false;
        public function __construct($name)
        {
        }
        public function Subscribe(\IBPActivityExternalEventListener $eventHandler)
        {
        }
        public function Unsubscribe(\IBPActivityExternalEventListener $eventHandler)
        {
        }
        public function Execute()
        {
        }
        public function Cancel()
        {
        }
        public function HandleFault(\Exception $exception)
        {
        }
        public function OnExternalEvent($arEventParameters = array())
        {
        }
        public function OnExternalDrivenEvent($arEventParameters = array())
        {
        }
        private function onExternalEventHandler($arEventParameters = array())
        {
        }
        public function OnStateExternalEvent($arEventParameters = array())
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPEmptyBlockActivity extends \CBPSequenceActivity
    {
        public function __construct($name)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    class CBPForEachActivity extends \CBPCompositeActivity implements \IBPActivityEventListener
    {
        private $values;
        private $valuesKeys;
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public function Cancel()
        {
        }
        public function OnEvent(\CBPActivity $sender, $arEventParameters = array())
        {
        }
        private function TryNextIteration()
        {
        }
        protected function ReInitialize()
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
        public function collectUsages()
        {
        }
    }
    class CBPSaveHistoryActivity extends \CBPActivity
    {
        public function __construct($name)
        {
        }
        public function Execute()
        {
        }
        public static function ValidateProperties($arTestProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = \null, $formName = "")
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
        {
        }
    }
    /**
     * Workflow runtime.
     *
     * @method \CBPSchedulerService getSchedulerService()
     * @method \CBPStateService getStateService()
     * @method \CBPTrackingService getTrackingService()
     * @method \CBPTaskService getTaskService()
     * @method \CBPHistoryService getHistoryService()
     * @method \CBPDocumentService getDocumentService()
     * @method Bizproc\Service\Analytics getAnalyticsService()
     * @method Bizproc\Service\User getUserService()
     */
    class CBPRuntime
    {
        const EXCEPTION_CODE_INSTANCE_NOT_FOUND = 404;
        const EXCEPTION_CODE_INSTANCE_LOCKED = 423;
        const EXCEPTION_CODE_INSTANCE_TERMINATED = 499;
        const REST_ACTIVITY_PREFIX = 'rest_';
        private $isStarted = \false;
        /** @var CBPRuntime $instance*/
        private static $instance;
        private static $featuresCache = [];
        private $services = [];
        private $workflows = [];
        private $loadedActivities = [];
        private $activityFolders = [];
        private $workflowChains = [];
        /*********************  SINGLETON PATTERN  **************************************************/
        /**
         * Private constructor prevents from instantiating this class. Singleton pattern.
         * 
         */
        private function __construct()
        {
        }
        /**
         * Static method returns runtime object. Singleton pattern.
         *
         * @param bool $autoStart Starts runtime.
         * @return CBPRuntime
         */
        public static function GetRuntime($autoStart = \false)
        {
        }
        public function __clone()
        {
        }
        public function __call($name, $arguments)
        {
        }
        /**
         * Method checks if feature is enabled.
         * @param string $featureName Feature name. Checks default if empty.
         * @return bool
         */
        public static function isFeatureEnabled($featureName = '')
        {
        }
        /*********************  START / STOP RUNTIME  **************************************************/
        /**
         * Public method starts runtime
         * 
         */
        public function StartRuntime()
        {
        }
        /**
         * Public method stops runtime
         * 
         */
        public function StopRuntime()
        {
        }
        /*******************  PROCESS WORKFLOWS  *********************************************************/
        /**
         * Creates new workflow instance from the specified template.
         *
         * @param int $workflowTemplateId - ID of the workflow template
         * @param array $documentId - ID of the document
         * @param mixed $workflowParameters - Optional parameters of the created workflow instance
         * @param array|null $parentWorkflow - Parent Workflow information.
         * @return CBPWorkflow
         * @throws CBPArgumentNullException
         * @throws CBPArgumentOutOfRangeException
         * @throws Exception
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public function CreateWorkflow($workflowTemplateId, $documentId, $workflowParameters = array(), $parentWorkflow = \null)
        {
        }
        /**
         * Returns existing workflow instance by its ID
         *
         * @param string $workflowId ID of the workflow instance.
         * @param bool $silent
         * @return CBPWorkflow
         * @throws Exception
         */
        public function GetWorkflow($workflowId, $silent = \false)
        {
        }
        public function onWorkflowStatusChanged($workflowId, $status)
        {
        }
        /*******************  SERVICES  *********************************************************/
        /**
         * Returns service instance by its code.
         * 
         * @param mixed $name - Service code.
         * @return mixed|CBPSchedulerService|CBPStateService|CBPTrackingService|CBPTaskService|CBPHistoryService|CBPDocumentService|Bizproc\Service\Analytics - Service instance or null if service is not found.
         */
        public function GetService($name)
        {
        }
        /**
         * Adds new service to runtime. Runtime should be stopped.
         * 
         * @param string $name - Service code.
         * @param CBPRuntimeService $service - Service object.
         */
        public function AddService($name, \CBPRuntimeService $service)
        {
        }
        /*******************  EVENTS  ******************************************************************/
        /**
         * Static method transfer event to the specified workflow instance.
         * 
         * @param mixed $workflowId - ID of the workflow instance.
         * @param mixed $eventName - Event name.
         * @param mixed $arEventParameters - Event parameters.
         */
        public static function SendExternalEvent($workflowId, $eventName, $arEventParameters = array())
        {
        }
        /*******************  UTILITIES  ***************************************************************/
        /**
         * Includes activity file by activity code.
         * 
         * @param string $code - Activity code.
         */
        public function IncludeActivityFile($code)
        {
        }
        public function GetActivityDescription($code, $lang = \false)
        {
        }
        private function LoadActivityLocalization($path, $file, $lang = \false)
        {
        }
        public function GetResourceFilePath($activityPath, $filePath)
        {
        }
        public function ExecuteResourceFile($activityPath, $filePath, $arParameters = array())
        {
        }
        public function SearchActivitiesByType($type, array $documentType = \null)
        {
        }
        /**
         * @param bool $lang Language ID.
         * @param null|array $documentType Document type.
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getRestActivities($lang = \false, $documentType = \null)
        {
        }
        /**
         * @param bool $lang Language ID.
         * @param null|array $documentType Document type.
         * @return array
         * @throws \Bitrix\Main\ArgumentException
         */
        public function getRestRobots($lang = \false, $documentType = \null)
        {
        }
        private function makeRestActivityDescription($activity, $lang = \false, $documentType = \null)
        {
        }
        private function makeRestRobotDescription($activity, $lang = \false, $documentType = \null)
        {
        }
        private function checkActivityFilter($filter, $documentType)
        {
        }
        private function checkActivityFilterRules($rules, $documentType, $distrName)
        {
        }
        private function addWorkflowToChain($childId, $parent)
        {
        }
        private function checkWorkflowRecursion($workflowId, $currentTemplateId)
        {
        }
    }
    /**
     * Bizproc API Helper for external usage.
     */
    class CBPDocument
    {
        const PARAM_TAGRET_USER = 'TargetUser';
        const PARAM_MODIFIED_DOCUMENT_FIELDS = 'ModifiedDocumentField';
        const PARAM_USE_FORCED_TRACKING = 'UseForcedTracking';
        const PARAM_IGNORE_SIMULTANEOUS_PROCESSES_LIMIT = 'IgnoreSimultaneousProcessesLimit';
        const PARAM_DOCUMENT_EVENT_TYPE = 'DocumentEventType';
        const PARAM_DOCUMENT_TYPE = '__DocumentType';
        public static function MigrateDocumentType($oldType, $newType)
        {
        }
        /**
         * Method returns array of workflow templates and states for specified document.
         * If document id is set method returns array of running and terminated workflow states and also templates which started on document edit action.
         * If document id is not set method returns array of templates which started on document add.
         * Return array example: array(
         *		workflow_id_or_template_id => array(
         *			"ID" => workflow_id,
         *			"TEMPLATE_ID" => template_id,
         *			"TEMPLATE_NAME" => template_name,
         *			"TEMPLATE_DESCRIPTION" => template_description,
         *			"TEMPLATE_PARAMETERS" => template_parameters,
         *			"STATE_NAME" => current_state_name,
         *			"STATE_TITLE" => current_state_title,
         *			"STATE_MODIFIED" => state_modified_datetime,
         *			"STATE_PARAMETERS" => state_parameters,
         *			"STATE_PERMISSIONS" => state_permissions,
         *			"WORKFLOW_STATUS" => workflow_status,
         *		),
         * 		. . .
         *	)
         * TEMPLATE_PARAMETERS example:
         *	array(
         *		"param1" => array(
         *			"Name" => "Parameter 1",
         *			"Description" => "",
         *			"Type" => "int",
         *			"Required" => true,
         *			"Multiple" => false,
         *			"Default" => 8,
         *			"Options" => null,
         *		),
         *		"param2" => array(
         *			"Name" => "Parameter 2",
         *			"Description" => "",
         *			"Type" => "select",
         *			"Required" => false,
         *			"Multiple" => true,
         *			"Default" => "v2",
         *			"Options" => array(
         *				"v1" => "V 1",
         *				"v2" => "V 2",
         *				"v3" => "V 3",
         *				. . .
         *			),
         *		),
         *		. . .
         *	)
         * STATE_PARAMETERS example:
         *	array(
         *		array(
         *			"NAME" => event_name,
         *			"TITLE" => event_title,
         *			"PERMISSION" => array('user_1')
         *		),
         *		. . .
         *	)
         * STATE_PERMISSIONS example:
         *	array(
         *		operation => users_array,
         *		. . .
         *	)
         *
         * @param array $documentType - Document type array(MODULE_ID, ENTITY, DOCUMENT_TYPE)
         * @param null|array $documentId - Document id array(MODULE_ID, ENTITY, DOCUMENT_ID).
         * @return array - Workflow states and templates.
         */
        public static function GetDocumentStates($documentType, $documentId = \null)
        {
        }
        /**
         * Method returns workflow state for specified document.
         *
         * @param array $documentId - Document id array(MODULE_ID, ENTITY, DOCUMENT_ID).
         * @param string $workflowId - Workflow id.
         * @return array - Workflow state array.
         */
        public static function GetDocumentState($documentId, $workflowId)
        {
        }
        public static function MergeDocuments($firstDocumentId, $secondDocumentId)
        {
        }
        /**
         * Method returns array of events available for specified user and specified state
         *
         * @param int $userId - User id.
         * @param array $arGroups - User groups.
         * @param array $arState - Workflow state.
         * @param bool $appendExtendedGroups - Append extended groups.
         * @return array - Events array array(array("NAME" => event_name, "TITLE" => event_title), ...).
         * @throws Exception
         */
        public static function GetAllowableEvents($userId, $arGroups, $arState, $appendExtendedGroups = \false)
        {
        }
        public static function AddDocumentToHistory($parameterDocumentId, $name, $userId)
        {
        }
        /**
         * Method returns allowable operations for specified user in specified states.
         * If specified states are not relevant to state machine returns null.
         * If user has no access returns array().
         * Else returns operations array(operation, ...).
         *
         * @param int $userId - User id.
         * @param array $arGroups - User groups.
         * @param array $arStates - Workflow states.
         * @param bool $appendExtendedGroups - Append extended groups.
         * @return array|null - Allowable operations.
         * @throws Exception
         */
        public static function GetAllowableOperations($userId, $arGroups, $arStates, $appendExtendedGroups = \false)
        {
        }
        /**
         * Method check can operate user specified operation in specified state.
         * If specified states are not relevant to state machine returns true.
         * If user can`t do operation return false.
         * Else returns true.
         *
         * @param string $operation - Operation.
         * @param int $userId - User id.
         * @param array $arGroups - User groups.
         * @param array $arStates - Workflows states.
         * @return bool
         * @throws Exception
         */
        public static function CanOperate($operation, $userId, $arGroups, $arStates)
        {
        }
        /**
         * Method starts workflow.
         *
         * @param int $workflowTemplateId - Template id.
         * @param array $documentId - Document id array(MODULE_ID, ENTITY, DOCUMENT_ID).
         * @param array $parameters - Workflow parameters.
         * @param array $errors - Errors array(array("code" => error_code, "message" => message, "file" => file_path), ...).
         * @param array|null $parentWorkflow - Parent workflow information.
         * @return string - Workflow id.
         */
        public static function StartWorkflow($workflowTemplateId, $documentId, $parameters, &$errors, $parentWorkflow = \null)
        {
        }
        /**
         * Method auto starts workflow.
         *
         * @param array $documentType -  Document type array(MODULE_ID, ENTITY, DOCUMENT_TYPE).
         * @param int $autoExecute - CBPDocumentEventType (1 = CBPDocumentEventType::Create, 2 = CBPDocumentEventType::Edit).
         * @param array $documentId - Document id array(MODULE_ID, ENTITY, DOCUMENT_ID).
         * @param array $arParameters - Workflow parameters.
         * @param array $arErrors - Errors array(array("code" => error_code, "message" => message, "file" => file_path), ...).
         */
        public static function AutoStartWorkflows($documentType, $autoExecute, $documentId, $arParameters, &$arErrors)
        {
        }
        /**
         * Method sends external event to workflow.
         *
         * @param string $workflowId - Workflow id.
         * @param string $workflowEvent - Event name.
         * @param array $arParameters - Event parameters.
         * @param array $arErrors - Errors array(array("code" => error_code, "message" => message, "file" => file_path), ...).
         */
        public static function SendExternalEvent($workflowId, $workflowEvent, $arParameters, &$arErrors)
        {
        }
        /**
         * Method terminates workflow.
         *
         * @param string $workflowId -  Workflow id.
         * @param array $documentId - Document type array(MODULE_ID, ENTITY, DOCUMENT_TYPE).
         * @param array $arErrors - Errors array(array("code" => error_code, "message" => message, "file" => file_path), ...).
         * @param string $stateTitle - State title (workflow status).
         */
        public static function TerminateWorkflow($workflowId, $documentId, &$arErrors, $stateTitle = '')
        {
        }
        public static function killWorkflow($workflowId, $terminate = \true, $documentId = \null)
        {
        }
        /**
         * Method removes all related document data.
         * @param array $documentId - Document id array(MODULE_ID, ENTITY, DOCUMENT_ID).
         * @param array $errors - Errors array(array("code" => error_code, "message" => message, "file" => file_path), ...).
         */
        public static function OnDocumentDelete($documentId, &$errors)
        {
        }
        public static function PostTaskForm($arTask, $userId, $arRequest, &$arErrors, $userName = "")
        {
        }
        public static function ShowTaskForm($arTask, $userId, $userName = "", $arRequest = \null)
        {
        }
        /**
         * @param int $userId Task User Id.
         * @param int $status Task user status.
         * @param int|array $ids Task ids.
         * @param array $errors Error collection.
         * @return bool
         */
        public static function setTasksUserStatus($userId, $status, $ids = array(), &$errors = array())
        {
        }
        /**
         * @param int $fromUserId Task current user.
         * @param int $toUserId Task target user.
         * @param array|int $ids Task ids.
         * @param array $errors Error collection.
         * @param null | array $allowedDelegationType
         * @return bool
         */
        public static function delegateTasks($fromUserId, $toUserId, $ids = array(), &$errors = array(), $allowedDelegationType = \null)
        {
        }
        public static function getTaskControls($arTask)
        {
        }
        /**
         * Method validates parameters values from StartWorkflowParametersShow.
         *
         * @param int $templateId - Template id.
         * @param array $arWorkflowParameters - Workflow parameters.
         * @param $documentType - Document type array(MODULE_ID, ENTITY, DOCUMENT_TYPE).
         * @param array $arErrors - Errors array(array("code" => error_code, "message" => message, "file" => file_path), ...).
         * @return array - Valid Parameters values.
         */
        public static function StartWorkflowParametersValidate($templateId, $arWorkflowParameters, $documentType, &$arErrors)
        {
        }
        /**
         * Method shows parameters form. Validates in StartWorkflowParametersValidate.
         *
         * @param int $templateId - Template id.
         * @param array $arWorkflowParameters - Workflow parameters.
         * @param string $formName - Form name.
         * @param bool $bVarsFromForm - false on first form open, else - true.
         * @param null|array $documentType Document type array(MODULE_ID, ENTITY, DOCUMENT_TYPE).
         */
        public static function StartWorkflowParametersShow($templateId, $arWorkflowParameters, $formName, $bVarsFromForm, $documentType = \null)
        {
        }
        public static function AddShowParameterInit($module, $type, $document_type, $entity = "", $document_id = '')
        {
        }
        public static function ShowParameterField($type, $name, $values, $arParams = array())
        {
        }
        public static function _ReplaceTaskURL($str, $documentType)
        {
        }
        public static function AddDefaultWorkflowTemplates($documentType, $additionalModuleId = \null)
        {
        }
        /**
         * Method returns array of workflow templates for specified document type.
         * Return array example:
         *    array(
         *        array(
         *            "ID" => workflow_id,
         *            "NAME" => template_name,
         *            "DESCRIPTION" => template_description,
         *            "MODIFIED" => modified datetime,
         *            "USER_ID" => modified by user id,
         *            "USER_NAME" => modified by user name,
         *            "AUTO_EXECUTE" => flag CBPDocumentEventType,
         *            "AUTO_EXECUTE_TEXT" => auto_execute_text,
         *        ),
         *        . . .
         *    )
         *
         * @param array $documentType - Document type array(MODULE_ID, ENTITY, DOCUMENT_TYPE).
         * @param bool $showSystemTemplates Shows system templates.
         * @return array - Templates array.
         */
        public static function GetWorkflowTemplatesForDocumentType($documentType, $showSystemTemplates = \true)
        {
        }
        public static function GetNumberOfWorkflowTemplatesForDocumentType($documentType)
        {
        }
        /**
         * Method deletes workflow template.
         *
         * @param int $id - Template id.
         * @param array $documentType - Document type array(MODULE_ID, ENTITY, DOCUMENT_TYPE).
         * @param array $arErrors - Errors array(array("code" => error_code, "message" => message, "file" => file_path), ...).
         */
        public static function DeleteWorkflowTemplate($id, $documentType, &$arErrors)
        {
        }
        /**
         * Method updates workflow template.
         *
         * @param int $id - Template id.
         * @param array $documentType - Document type array(MODULE_ID, ENTITY, DOCUMENT_TYPE).
         * @param array $arFields - Data for update.
         * @param array $arErrors - Errors array(array("code" => error_code, "message" => message, "file" => file_path), ...).
         */
        public static function UpdateWorkflowTemplate($id, $documentType, $arFields, &$arErrors)
        {
        }
        /**
         * Method checks can user operate specified document with specified operation.
         *
         * @param int $operation - operation CBPCanUserOperateOperation.
         * @param int $userId - User id.
         * @param array $parameterDocumentId - Document id array(MODULE_ID, ENTITY, DOCUMENT_ID).
         * @param array $arParameters - Additional parameters.
         * @return bool
         */
        public static function CanUserOperateDocument($operation, $userId, $parameterDocumentId, $arParameters = array())
        {
        }
        /**
         * Method checks can user operate specified document type with specified operation.
         *
         * @param int $operation - operation CBPCanUserOperateOperation.
         * @param int $userId - User id.
         * @param array $parameterDocumentType - Document type array(MODULE_ID, ENTITY, DOCUMENT_TYPE).
         * @param array $arParameters - Additional parameters.
         * @return bool
         */
        public static function CanUserOperateDocumentType($operation, $userId, $parameterDocumentType, $arParameters = array())
        {
        }
        /**
         * Get document admin page URL.
         *
         * @param array $parameterDocumentId - Document id array(MODULE_ID, ENTITY, DOCUMENT_ID).
         * @return string - URL.
         */
        public static function GetDocumentAdminPage($parameterDocumentId)
        {
        }
        /**
         * @param array $parameterDocumentId Document Id.
         * @return mixed|string
         * @throws CBPArgumentNullException
         */
        public static function getDocumentName($parameterDocumentId)
        {
        }
        /**
         * Method returns task array for specified user and specified workflow state.
         * Return array example:
         *	array(
         *		array(
         *			"ID" => task_id,
         *			"NAME" => task_name,
         *			"DESCRIPTION" => task_description,
         *		),
         *		. . .
         *	)
         *
         * @param int $userId - User id.
         * @param string $workflowId - Workflow id.
         * @return array - Tasks.
         */
        public static function GetUserTasksForWorkflow($userId, $workflowId)
        {
        }
        public static function PrepareFileForHistory($documentId, $fileId, $historyIndex)
        {
        }
        public static function IsAdmin()
        {
        }
        public static function GetDocumentFromHistory($historyId, &$arErrors)
        {
        }
        public static function GetAllowableUserGroups($parameterDocumentType)
        {
        }
        public static function onAfterTMDayStart($data)
        {
        }
        /**
         * Temporary notification for B24 portal Admins
         * Ex: CAgent::AddAgent("\CBPDocument::sendB24LimitsNotifyToAdmins();", "bizproc", "N", 43200);
         * @param int $ts
         * @return string
         */
        public static function sendB24LimitsNotifyToAdmins($ts = 0)
        {
        }
        /**
         * Method returns map of document fields aliases.
         * @param array $fields Document fields.
         * @return array Aliases.
         */
        public static function getDocumentFieldsAliasesMap($fields)
        {
        }
        /**
         * Bizproc expression checker. Required for usage from external modules!
         * Examples: {=Document:IBLOCK_ID}, {=Document:CREATED_BY>printable}, {=SequentialWorkflowActivity1:DocumentApprovers>user,printable}
         * @param $value
         * @return bool
         */
        public static function IsExpression($value)
        {
        }
        public static function parseExpression($expression)
        {
        }
        public static function signParameters(array $parameters)
        {
        }
        /**
         * @param string $unsignedData
         * @return array
         */
        public static function unSignParameters($unsignedData)
        {
        }
        public static function signDocumentType(array $documentType)
        {
        }
        /**
         * @param string $unsignedData
         * @return array|null Document type.
         */
        public static function unSignDocumentType($unsignedData) : ?array
        {
        }
        private static function signArray(array $source, $salt)
        {
        }
        private static function unSignArray(string $unsignedSource, $salt)
        {
        }
        public static function getTemplatesForStart($userId, $documentType, $documentId = \null, array $parameters = array())
        {
        }
    }
    abstract class CBPRuntimeService
    {
        protected $runtime;
        public function SetRuntime(\CBPRuntime $runtime)
        {
        }
        public function Start(\CBPRuntime $runtime = \null)
        {
        }
        public function Stop()
        {
        }
    }
    class CBPAllTaskService extends \CBPRuntimeService
    {
        const COUNTERS_CACHE_TAG_PREFIX = 'b_bp_tasks_cnt_';
        public function DeleteTask($id)
        {
        }
        public function DeleteAllWorkflowTasks($workflowId)
        {
        }
        public function MarkCompleted($taskId, $userId, $status = \CBPTaskUserStatus::Ok)
        {
        }
        public static function getTaskUsers($taskId)
        {
        }
        public static function getTaskUserIds(int $taskId) : array
        {
        }
        /**
         * @param string $workflowId - Internal workflow id.
         * @param null|int $userStatus - Filter participants by status.
         * @return array - User ids array (ex. array(1, 2, 3)).
         * @throws Exception
         */
        public static function getWorkflowParticipants($workflowId, $userStatus = \null)
        {
        }
        public static function delegateTask($taskId, $fromUserId, $toUserId)
        {
        }
        public static function getOriginalTaskUserId($taskId, $realUserId)
        {
        }
        public static function Delete($id)
        {
        }
        public static function DeleteByWorkflow($workflowId, $taskStatus = \null)
        {
        }
        public static function getCounters($userId)
        {
        }
        protected static function onTaskChange($taskId, $taskData, $status)
        {
        }
        protected static function cleanCountersCache($users)
        {
        }
        protected static function ParseFields(&$arFields, $id = 0)
        {
        }
        public static function OnAdminInformerInsertItems()
        {
        }
        public function CreateTask($arFields)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($id, $arFields)
        {
        }
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CBPTaskResult extends \CDBResult
    {
        public function __construct($res)
        {
        }
        function Fetch()
        {
        }
        function GetNext($bTextHtmlAuto = \true, $use_tilda = \true)
        {
        }
        function ConvertBBCode($text)
        {
        }
        function ConvertBCodeImageTag($url = "")
        {
        }
        function ConvertBCodeAnchorTag($url, $text = '')
        {
        }
    }
    //Compatibility
    class CBPTaskService extends \CBPAllTaskService
    {
    }
    class CBPAllHistoryService extends \CBPRuntimeService
    {
        protected $useGZipCompression = \false;
        public function __construct()
        {
        }
        protected function ParseFields(&$arFields, $id = 0)
        {
        }
        private function GetSerializedForm($arTemplate)
        {
        }
        public static function Add($arFields)
        {
        }
        public static function Update($id, $arFields)
        {
        }
        private static function GenerateFilePath($documentId)
        {
        }
        public function DeleteHistory($id, $documentId = \null)
        {
        }
        public static function Delete($id, $documentId = \null)
        {
        }
        public function DeleteHistoryByDocument($documentId)
        {
        }
        public static function DeleteByDocument($documentId)
        {
        }
        public static function GetById($id)
        {
        }
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function RecoverDocumentFromHistory($id)
        {
        }
        public static function PrepareFileForHistory($documentId, $arFileId, $historyIndex)
        {
        }
        public static function MergeHistory($firstDocumentId, $secondDocumentId)
        {
        }
        public static function MigrateDocumentType($oldType, $newType, $workflowTemplateIds)
        {
        }
        public function AddHistory($arFields)
        {
        }
        public function UpdateHistory($id, $arFields)
        {
        }
        public function GetHistoryList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
    }
    class CBPHistoryResult extends \CDBResult
    {
        private $useGZipCompression = \false;
        public function __construct($res, $useGZipCompression)
        {
        }
        private function GetFromSerializedForm($value)
        {
        }
        function Fetch()
        {
        }
    }
    //Compatibility
    class CBPHistoryService extends \CBPAllHistoryService
    {
    }
    class CBPVirtualDocument extends \CIBlockDocument
    {
        public static function getEntityName()
        {
        }
        public static function getDocumentTypeName($documentType)
        {
        }
        function GetFieldInputControlOptions($documentType, &$arFieldType, $jsFunctionName, &$value)
        {
        }
        function GetFieldInputControl($documentType, $arFieldType, $arFieldName, $fieldValue, $bAllowSelection = \false, $publicMode = \false)
        {
        }
        function GetFieldInputValue($documentType, $arFieldType, $arFieldName, $arRequest, &$arErrors)
        {
        }
        function GetFieldInputValuePrintable($documentType, $arFieldType, $fieldValue)
        {
        }
        function CanUserOperateDocument($operation, $userId, $documentId, $arParameters = array())
        {
        }
        function CanUserOperateDocumentType($operation, $userId, $documentType, $arParameters = array())
        {
        }
        function GetList($arOrder = array("SORT" => "ASC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        private function PrepareUserForPrint($value)
        {
        }
        private function PrepareSectionForPrint($value, $iblockId = 0)
        {
        }
        /**
         * @param string $documentId
         * @return string - document admin page url.
         */
        public function GetDocumentAdminPage($documentId)
        {
        }
        public function GetDocument($documentId)
        {
        }
        public function GetDocumentType($documentId)
        {
        }
        public function GetDocumentFields($documentType)
        {
        }
        public function GetDocumentFieldTypes($documentType)
        {
        }
        public function AddDocumentField($documentType, $arFields)
        {
        }
        public function UpdateDocument($documentId, $arFields)
        {
        }
        public function CreateDocument($parentDocumentId, $arFields)
        {
        }
        public function GetAllowableOperations($documentType)
        {
        }
        // array("1" => "Admins", 2 => "Guests", 3 => ..., "Author" => "Author")
        public function GetAllowableUserGroups($documentType, $withExtended = \false)
        {
        }
        public function GetUsersFromUserGroup($group, $documentId)
        {
        }
        public function GetJSFunctionsForFields($documentType, $objectName, $arDocumentFields = array(), $arDocumentFieldTypes = array())
        {
        }
        function GetGUIFieldEdit($documentType, $formName, $fieldName, $fieldValue, $arDocumentField = \null, $bAllowSelection = \false)
        {
        }
        function SetGUIFieldEdit($documentType, $fieldName, $arRequest, &$arErrors, $arDocumentField = \null)
        {
        }
        function GetFieldValuePrintable($documentId, $fieldName, $fieldType, $fieldValue, $arFieldType)
        {
        }
        public function SetPermissions($documentId, $workflowId, $arPermissions, $bRewrite = \true)
        {
        }
        public function OnAfterIBlockElementDelete($arFields)
        {
        }
        public static function isExtendedPermsSupported($documentType)
        {
        }
    }
    interface IBPWorkflowDocument
    {
        /**
         * Method returns document fields values as array (field_code => value, ...). Must be compatible with GetDocumentFields.
         *
         * @param string $documentId - Document id.
         * @return array - Fields values.
         */
        public static function GetDocument($documentId);
        /**
         * Method returns document type fields list.
         *
         * @param string $documentType - Document type.
         * @return array - Fields array(field_code => array("NAME" => field_name, "TYPE" => field_type), ...).
         */
        public static function GetDocumentFields($documentType);
        /**
         * Method creates new document with specified fields.
         *
         * @param $parentDocumentId - Parent document id.
         * @param array $arFields - Fields values array(field_code => value, ...). Fields codes must be compatible with codes from GetDocumentFields.
         * @return int - New document id.
         */
        public static function CreateDocument($parentDocumentId, $arFields);
        /**
         * Method updates document fields.
         *
         * @param string $documentId - Document id.
         * @param array $arFields - New fields values array(field_code => value, ...). Fields codes must be compatible with codes from GetDocumentFields.
         */
        public static function UpdateDocument($documentId, $arFields);
        /**
         * Method deletes specified document.
         *
         * @param string $documentId - Document id.
         */
        public static function DeleteDocument($documentId);
        /**
         * Method publishes document.
         *
         * @param string $documentId - Document id.
         */
        public static function PublishDocument($documentId);
        /**
         * Method unpublishes document.
         *
         * @param string $documentId - Document id.
         */
        public static function UnpublishDocument($documentId);
        /**
         * Method locks specified document for specified workflow state. A locked document can be changed only by the specified workflow.
         *
         * @param string $documentId - Document id.
         * @param string $workflowId - Workflow id.
         * @return bool - True on success, false on failure.
         */
        public static function LockDocument($documentId, $workflowId);
        /**
         * Method unlocks specified document. On unlock fires events like "Entity_OnUnlockDocument" with document id as first parameter.
         *
         * @param string $documentId - Document id.
         * @param string $workflowId - Workflow id.
         * @return bool - True on success, false on failure.
         */
        public static function UnlockDocument($documentId, $workflowId);
        /**
         * Method checks lock status.
         *
         * @param string $documentId - Document id.
         * @param string $workflowId - Workflow id.
         * @return bool True if document locked.
         */
        public static function IsDocumentLocked($documentId, $workflowId);
        /**
         * Method checks can user operate specified document with specified operation.
         *
         * @param int $operation - Operation.
         * @param int $userId - User id.
         * @param string|int $documentId - Document id.
         * @param array $arParameters - Additional parameters.
         * @return bool
         */
        public static function CanUserOperateDocument($operation, $userId, $documentId, $arParameters = array());
        /**
         * Method checks can user operate specified document type with specified operation.
         *
         * @param int $operation - Operation.
         * @param int $userId - User id.
         * @param string $documentType - Document type.
         * @param array $arParameters - Additional parameters.
         * @return bool
         */
        public static function CanUserOperateDocumentType($operation, $userId, $documentType, $arParameters = array());
        /**
         * Get document admin page URL.
         *
         * @param string|int $documentId - Document id.
         * @return string - URL.
         */
        public static function GetDocumentAdminPage($documentId);
        /**
         * Method returns document information. This information uses in method RecoverDocumentFromHistory.
         *
         * @param string $documentId - Document id.
         * @param $historyIndex - History index.
         * @return array - Document data.
         */
        public static function GetDocumentForHistory($documentId, $historyIndex);
        /**
         * Method recovers specified document from information, provided by method RecoverDocumentFromHistory.
         *
         * @param string $documentId - Document id.
         * @param array $arDocument - Document data.
         */
        public static function RecoverDocumentFromHistory($documentId, $arDocument);
        public static function GetAllowableOperations($documentType);
        public static function GetAllowableUserGroups($documentType);
        public static function GetUsersFromUserGroup($group, $documentId);
    }
    class CBPCalc
    {
        /** @var CBPActivity $activity */
        private $activity;
        private $arErrorsList = [];
        private static $weekHolidays;
        private static $yearHolidays;
        private static $startWorkDay;
        private static $endWorkDay;
        // Operation priority
        private $arPriority = ['(' => 0, ')' => 1, ';' => 2, '=' => 3, '<' => 3, '>' => 3, '<=' => 3, '>=' => 3, '<>' => 3, '&' => 4, '+' => 5, '-' => 5, '*' => 6, '/' => 6, '^' => 7, '%' => 8, '-m' => 9, '+m' => 9, ' ' => 10, ':' => 11, 'f' => 12];
        // Allowable functions
        private $arAvailableFunctions = ['abs' => ['args' => \true, 'func' => 'FunctionAbs'], 'and' => ['args' => \true, 'func' => 'FunctionAnd'], 'date' => ['args' => \true, 'func' => 'FunctionDate'], 'dateadd' => ['args' => \true, 'func' => 'FunctionDateAdd'], 'datediff' => ['args' => \true, 'func' => 'FunctionDateDiff'], 'false' => ['args' => \false, 'func' => 'FunctionFalse'], 'if' => ['args' => \true, 'func' => 'FunctionIf'], 'intval' => ['args' => \true, 'func' => 'FunctionIntval'], 'floatval' => ['args' => \true, 'func' => 'FunctionFloatval'], 'numberformat' => ['args' => \true, 'func' => 'FunctionNumberFormat'], 'min' => ['args' => \true, 'func' => 'FunctionMin'], 'max' => ['args' => \true, 'func' => 'FunctionMax'], 'rand' => ['args' => \true, 'func' => 'FunctionRand'], 'round' => ['args' => \true, 'func' => 'FunctionRound'], 'ceil' => ['args' => \true, 'func' => 'FunctionCeil'], 'floor' => ['args' => \true, 'func' => 'FunctionFloor'], 'not' => ['args' => \true, 'func' => 'FunctionNot'], 'or' => ['args' => \true, 'func' => 'FunctionOr'], 'substr' => ['args' => \true, 'func' => 'FunctionSubstr'], 'strpos' => ['args' => \true, 'func' => 'FunctionStrpos'], 'strlen' => ['args' => \true, 'func' => 'FunctionStrlen'], 'implode' => ['args' => \true, 'func' => 'FunctionImplode'], 'explode' => ['args' => \true, 'func' => 'FunctionExplode'], 'randstring' => ['args' => \true, 'func' => 'FunctionRandString'], 'true' => ['args' => \false, 'func' => 'FunctionTrue'], 'convert' => ['args' => \true, 'func' => 'FunctionConvert'], 'merge' => ['args' => \true, 'func' => 'FunctionMerge'], 'addworkdays' => ['args' => \true, 'func' => 'FunctionAddWorkDays'], 'workdateadd' => ['args' => \true, 'func' => 'FunctionWorkDateAdd'], 'isworkday' => ['args' => \true, 'func' => 'FunctionIsWorkDay'], 'isworktime' => ['args' => \true, 'func' => 'FunctionIsWorkTime'], 'urlencode' => ['args' => \true, 'func' => 'FunctionUrlencode'], 'touserdate' => ['args' => \true, 'func' => 'FunctionToUserDate'], 'getuserdateoffset' => ['args' => \true, 'func' => 'FunctionGetUserDateOffset']];
        // Allowable errors
        private $arAvailableErrors = [0 => 'Incorrect variable name - "#STR#"', 1 => 'Empty', 2 => 'Syntax error "#STR#"', 3 => 'Unknown function "#STR#"', 4 => 'Unmatched closing bracket ")"', 5 => 'Unmatched opening bracket "("', 6 => 'Division by zero', 7 => 'Incorrect order of operands', 8 => 'Incorrect arguments of function "#STR#"'];
        const Operation = 0;
        const Variable = 1;
        const Constant = 2;
        public function __construct(\CBPActivity $activity)
        {
        }
        private function GetVariableValue($variable)
        {
        }
        private function SetError($errnum, $errstr = '')
        {
        }
        public function GetErrors()
        {
        }
        /*
        Return array of polish notation
        array(
        	key => array(value, self::Operation | self::Variable | self::Constant)
        )
        */
        private function GetPolishNotation($text)
        {
        }
        public function Calculate($text)
        {
        }
        private function ArrgsToArray($args)
        {
        }
        /* Math */
        private function FunctionAbs($num)
        {
        }
        private function FunctionRound($args)
        {
        }
        private function FunctionCeil($num)
        {
        }
        private function FunctionFloor($num)
        {
        }
        private function FunctionMin($args)
        {
        }
        private function FunctionMax($args)
        {
        }
        private function FunctionRand($args)
        {
        }
        private function FunctionIntval($num)
        {
        }
        private function FunctionFloatval($num)
        {
        }
        /* Logic */
        private function FunctionTrue()
        {
        }
        private function FunctionFalse()
        {
        }
        private function FunctionIf($args)
        {
        }
        private function FunctionNot($arg)
        {
        }
        private function FunctionAnd($args)
        {
        }
        private function FunctionOr($args)
        {
        }
        /* Date */
        private function FunctionDateAdd($args)
        {
        }
        private function FunctionWorkDateAdd($args)
        {
        }
        private function FunctionAddWorkDays($args)
        {
        }
        private function FunctionIsWorkDay($args)
        {
        }
        private function FunctionIsWorkTime($args)
        {
        }
        private function FunctionDateDiff($args)
        {
        }
        private function FunctionDate($args)
        {
        }
        private function FunctionToUserDate($args)
        {
        }
        private function FunctionGetUserDateOffset($args)
        {
        }
        /* Date - Helpers */
        private function makeTimestamp($date, $appendOffset = \false)
        {
        }
        private function getWorkDayTimestamp($date)
        {
        }
        private function getWorkDayRemainTimestamp($date, $multiplier = 1)
        {
        }
        private function getWorkDayInterval()
        {
        }
        private function isHoliday($date)
        {
        }
        private function isWorkTime($date)
        {
        }
        private function getNearestWorkTime($date, $multiplier = 1)
        {
        }
        private function addWorkDay($date, $days)
        {
        }
        private function getCalendarHolidays()
        {
        }
        private function getCalendarWorkTime()
        {
        }
        private function getDateTimeObject($date)
        {
        }
        private function getDateTimeOffset($date)
        {
        }
        /* String & Formatting */
        private function FunctionNumberFormat($args)
        {
        }
        private function FunctionRandString($args)
        {
        }
        private function FunctionSubstr($args)
        {
        }
        private function FunctionStrpos($args)
        {
        }
        private function FunctionStrlen($args)
        {
        }
        private function FunctionImplode($args)
        {
        }
        private function FunctionExplode($args)
        {
        }
        private function FunctionUrlencode($args)
        {
        }
        private function FunctionConvert($args)
        {
        }
        /* Complex values */
        private function FunctionMerge($args)
        {
        }
    }
    class CBPDocumentService extends \CBPRuntimeService
    {
        const FEATURE_MARK_MODIFIED_FIELDS = 'FEATURE_MARK_MODIFIED_FIELDS';
        const FEATURE_SET_MODIFIED_BY = 'FEATURE_SET_MODIFIED_BY';
        private $arDocumentsCache = array();
        private $documentTypesCache = array();
        private $documentFieldsCache = array();
        private $typesMapCache = array();
        private $tzFlag;
        public function getEntityName($moduleId, $entity)
        {
        }
        public function GetDocument($parameterDocumentId, $parameterDocumentType = \null)
        {
        }
        public function UpdateDocument($parameterDocumentId, $arFields, $modifiedBy = \null)
        {
        }
        public function CreateDocument($parameterDocumentId, $arFields)
        {
        }
        public function PublishDocument($parameterDocumentId)
        {
        }
        public function UnpublishDocument($parameterDocumentId)
        {
        }
        public function LockDocument($parameterDocumentId, $workflowId)
        {
        }
        public function UnlockDocument($parameterDocumentId, $workflowId)
        {
        }
        public function DeleteDocument($parameterDocumentId)
        {
        }
        public function IsDocumentLocked($parameterDocumentId, $workflowId)
        {
        }
        public function SubscribeOnUnlockDocument($parameterDocumentId, $workflowId, $eventName)
        {
        }
        public function UnsubscribeOnUnlockDocument($parameterDocumentId, $workflowId, $eventName)
        {
        }
        public static function OnUnlockDocument($workflowId, $eventName, $documentId = [])
        {
        }
        public function GetDocumentType($parameterDocumentId)
        {
        }
        public function normalizeDocumentId($parameterDocumentId)
        {
        }
        public function GetDocumentFields($parameterDocumentType, $importExportMode = \false)
        {
        }
        public function GetDocumentFieldTypes($parameterDocumentType)
        {
        }
        public function AddDocumentField($parameterDocumentType, $arFields)
        {
        }
        public function UpdateDocumentField($parameterDocumentType, $arFields)
        {
        }
        public function GetJSFunctionsForFields($parameterDocumentType, $objectName, $arDocumentFields = array(), $arDocumentFieldTypes = array())
        {
        }
        public function GetFieldInputControlOptions($parameterDocumentType, &$fieldType, $jsFunctionName, &$value)
        {
        }
        public function GetFieldInputControl($parameterDocumentType, $fieldType, $fieldName, $fieldValue, $bAllowSelection = \false, $publicMode = \false)
        {
        }
        public function GetFieldInputValue($parameterDocumentType, $fieldType, $fieldName, $arRequest, &$arErrors)
        {
        }
        public function GetFieldInputValuePrintable($parameterDocumentType, $fieldType, $fieldValue)
        {
        }
        public function GetFieldValuePrintable($parameterDocumentId, $fieldName, $fieldType, $fieldValue, $arFieldType = \null)
        {
        }
        /**
         * @param array $parameterDocumentType
         * @return array
         */
        public function getTypesMap(array $parameterDocumentType)
        {
        }
        public function getTypesConversionMap(array $parameterDocumentType)
        {
        }
        /**
         * @param array $parameterDocumentType
         * @param string $type
         * @return null|string
         */
        public function getTypeClass(array $parameterDocumentType, $type)
        {
        }
        /**
         * @param array $parameterDocumentType
         * @param array $property
         * @return null|FieldType
         */
        public function getFieldTypeObject(array $parameterDocumentType, array $property)
        {
        }
        /**
         * @deprecated
         * @param $parameterDocumentType
         * @param $formName
         * @param $fieldName
         * @param $fieldValue
         * @param array $arDocumentField
         * @param bool $bAllowSelection
         * @return mixed|string
         * @throws CBPArgumentNullException
         */
        public function GetGUIFieldEdit($parameterDocumentType, $formName, $fieldName, $fieldValue, $arDocumentField = array(), $bAllowSelection = \false)
        {
        }
        /**
         * @deprecated
         * @param $parameterDocumentType
         * @param $fieldName
         * @param $arRequest
         * @param $arErrors
         * @param array $arDocumentField
         * @return array|mixed|null
         * @throws CBPArgumentNullException
         */
        public function SetGUIFieldEdit($parameterDocumentType, $fieldName, $arRequest, &$arErrors, $arDocumentField = array())
        {
        }
        public function GetDocumentAdminPage($parameterDocumentId)
        {
        }
        public function getDocumentName($parameterDocumentId)
        {
        }
        public function getDocumentTypeName($parameterDocumentType)
        {
        }
        public function getDocumentIcon($parameterDocumentId)
        {
        }
        public function getDocumentResponsible(array $parameterDocumentId)
        {
        }
        public function GetDocumentForHistory($parameterDocumentId, $historyIndex)
        {
        }
        public function RecoverDocumentFromHistory($parameterDocumentId, $arDocument)
        {
        }
        public function GetUsersFromUserGroup($group, $parameterDocumentId)
        {
        }
        public function GetAllowableUserGroups($parameterDocumentType, $withExtended = \false)
        {
        }
        public function GetAllowableOperations($parameterDocumentType)
        {
        }
        public function SetPermissions($parameterDocumentId, $workflowId, $arPermissions, $bRewrite = \true)
        {
        }
        public function isFeatureEnabled($parameterDocumentType, $feature)
        {
        }
        public function isExtendedPermsSupported($parameterDocumentType)
        {
        }
        public function toInternalOperations($parameterDocumentType, $permissions)
        {
        }
        public function toExternalOperations($parameterDocumentType, $permissions)
        {
        }
        public function onTaskChange($parameterDocumentId, $taskId, $taskData, $status)
        {
        }
        public function onWorkflowStatusChange($parameterDocumentId, $workflowId, $status, $rootActivity = \null)
        {
        }
        public function createAutomationTarget($parameterDocumentType)
        {
        }
        private function clearCache()
        {
        }
        private function checkCache()
        {
        }
    }
    /**
    * Workflow templates service.
    */
    class CAllBPWorkflowTemplateLoader
    {
        protected $useGZipCompression = \false;
        protected static $workflowConstants = array();
        const CONSTANTS_CACHE_TAG_PREFIX = 'b_bp_wf_constants_';
        protected static $typesStates = array();
        private static $instance;
        private function __construct()
        {
        }
        public function __clone()
        {
        }
        /**
         * Static method returns loader object. Singleton pattern.
         *
         * @return CBPWorkflowTemplateLoader
         */
        public static function GetLoader()
        {
        }
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function checkTemplateActivities(array $template)
        {
        }
        private function ValidateTemplate($arActivity, $user)
        {
        }
        protected function ParseFields(&$arFields, $id = 0, $systemImport = \false)
        {
        }
        public static function Add($arFields, $systemImport = \false)
        {
        }
        public static function Update($id, $arFields, $systemImport = \false)
        {
        }
        private function GetSerializedForm($arTemplate)
        {
        }
        public static function Delete($id)
        {
        }
        protected static function cleanTemplateCache($id)
        {
        }
        public function DeleteTemplate($id)
        {
        }
        public function LoadWorkflow($workflowTemplateId)
        {
        }
        private function ParceWorkflowTemplate($arWorkflowTemplate, &$arActivityNames, \CBPActivity $parentActivity = \null)
        {
        }
        private function CreateActivity($activityCode, $activityName)
        {
        }
        public static function GetStatesOfTemplate($arWorkflowTemplate)
        {
        }
        private static function FindSetStateActivities($arWorkflowTemplate)
        {
        }
        public static function GetTransfersOfState($arWorkflowTemplate, $stateName)
        {
        }
        private static function ParseDocumentTypeStates($arTemplatesListItem)
        {
        }
        private static function ExtractValuesFromVariables($ar, $variables, $constants = array())
        {
        }
        public static function GetDocumentTypeStates($documentType, $autoExecute = -1, $stateName = "")
        {
        }
        public static function GetTemplateState($workflowTemplateId, $stateName = "")
        {
        }
        public static function getTemplateUserId($workflowTemplateId)
        {
        }
        public static function getTemplateConstants($workflowTemplateId)
        {
        }
        /**
         * @param $workflowTemplateId - Workflow Template ID
         * @return bool
         * @throws CBPArgumentOutOfRangeException
         */
        public static function isConstantsTuned($workflowTemplateId)
        {
        }
        public static function CheckWorkflowParameters($arTemplateParameters, $arPossibleValues, $documentType, &$arErrors)
        {
        }
        public static function SearchTemplatesByDocumentType($documentType, $autoExecute = -1)
        {
        }
        public static function &FindActivityByName(&$arWorkflowTemplate, $activityName)
        {
        }
        public static function &FindParentActivityByName(&$arWorkflowTemplate, $activityName)
        {
        }
        public static function ExportTemplate($id, $bCompress = \true)
        {
        }
        private static function WalkThroughWorkflowTemplate(&$arWorkflowTemplate, $callback, $user)
        {
        }
        private static function ImportTemplateChecker($arActivity, $user)
        {
        }
        public static function ImportTemplate($id, $documentType, $autoExecute, $name, $description, $datum, $systemCode = \null, $systemImport = \false)
        {
        }
        public static function importTemplateFromArray($id, $documentType, $autoExecute, $name, $description, $templateFields, $systemCode = \null, $systemImport = \false)
        {
        }
        public function GetTemplatesList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public function AddTemplate($arFields, $systemImport = \false)
        {
        }
        public function UpdateTemplate($id, $arFields, $systemImport = \false)
        {
        }
        public static function useGZipCompression()
        {
        }
    }
    class CBPWorkflowTemplateResult extends \CDBResult
    {
        private $useGZipCompression = \false;
        public function __construct($res, $useGZipCompression)
        {
        }
        private function GetFromSerializedForm($value)
        {
        }
        function Fetch()
        {
        }
    }
    class CBPWorkflowTemplateUser
    {
        const CurrentUser = "CurrentUser";
        private $userId = 0;
        private $isAdmin = \false;
        private $fullName = '';
        public function __construct($userId = \null)
        {
        }
        public function getId()
        {
        }
        public function getBizprocId()
        {
        }
        public function isAdmin()
        {
        }
        public function getFullName()
        {
        }
        private static function isBpAdmin(int $userId) : bool
        {
        }
    }
    class CBPWorkflowTemplateValidationException extends \Exception
    {
        private $errors;
        public function __construct($message = "", array $errors = array())
        {
        }
        public function getErrors()
        {
        }
    }
    //Compatibility
    class CBPWorkflowTemplateLoader extends \CAllBPWorkflowTemplateLoader
    {
    }
    class CBPActivityExecutionStatus
    {
        const Initialized = 0;
        const Executing = 1;
        const Canceling = 2;
        const Closed = 3;
        const Faulting = 4;
        public static function Out($v)
        {
        }
    }
    class CBPActivityExecutionResult
    {
        const None = 0;
        const Succeeded = 1;
        const Canceled = 2;
        const Faulted = 3;
        const Uninitialized = 4;
        public static function Out($v)
        {
        }
    }
    class CBPWorkflowStatus
    {
        const Created = 0;
        const Running = 1;
        const Completed = 2;
        const Suspended = 3;
        const Terminated = 4;
        public static function Out($v)
        {
        }
    }
    class CBPActivityExecutorOperationType
    {
        const Execute = 0;
        const Cancel = 1;
        const HandleFault = 2;
        public static function Out($v)
        {
        }
    }
    class CBPDocumentEventType
    {
        const None = 0;
        const Create = 1;
        const Edit = 2;
        const Delete = 4;
        const Automation = 8;
        const Manual = 16;
        const Script = 32;
        public static function Out($v)
        {
        }
    }
    class CBPCanUserOperateOperation
    {
        const ViewWorkflow = 0;
        const StartWorkflow = 1;
        const CreateWorkflow = 4;
        const CreateAutomation = 5;
        const WriteDocument = 2;
        const ReadDocument = 3;
    }
    class CBPSetPermissionsMode
    {
        const Hold = 1;
        const Rewrite = 2;
        const Clear = 3;
        const ScopeWorkflow = 1;
        const ScopeDocument = 2;
        public static function outMode($v)
        {
        }
        public static function outScope($v)
        {
        }
    }
    class CBPTaskStatus
    {
        const Running = 0;
        const CompleteYes = 1;
        const CompleteNo = 2;
        const CompleteOk = 3;
        const Timeout = 4;
        const CompleteCancel = 5;
    }
    class CBPTaskUserStatus
    {
        const Waiting = 0;
        const Yes = 1;
        const No = 2;
        const Ok = 3;
        const Cancel = 4;
        public static function resolveStatus($name)
        {
        }
    }
    class CBPTaskChangedStatus
    {
        const Add = 1;
        const Update = 2;
        const Delegate = 3;
        const Delete = 4;
    }
    class CBPTaskDelegationType
    {
        const Subordinate = 0;
        // default value
        const AllEmployees = 1;
        const None = 2;
        public static function getSelectList()
        {
        }
    }
    class CBPAllTrackingService extends \CBPRuntimeService
    {
        protected $skipTypes = array();
        protected $forcedModeWorkflows = array();
        protected static $userGroupsCache = array();
        public function Start(\CBPRuntime $runtime = \null)
        {
        }
        public function DeleteAllWorkflowTracking($workflowId)
        {
        }
        public static function DumpWorkflow($workflowId)
        {
        }
        public function LoadReport($workflowId)
        {
        }
        public static function DeleteByWorkflow($workflowId)
        {
        }
        public function setCompletedByWorkflow($workflowId, $flag = \true)
        {
        }
        public static function ClearOldAgent()
        {
        }
        public static function parseStringParameter($string, $documentType = \null)
        {
        }
        public static function parseStringParameterMatches($matches, $documentType = \null)
        {
        }
        public function setForcedMode($workflowId)
        {
        }
        public function isForcedMode($workflowId)
        {
        }
        public function canWrite($type, $workflowId)
        {
        }
        public function Write($workflowId, $type, $actionName, $executionStatus, $executionResult, $actionTitle = "", $actionNote = "", $modifiedBy = 0)
        {
        }
        public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = \false, $arNavStartParams = \false, $arSelectFields = array())
        {
        }
        public static function ClearOld($days = 0)
        {
        }
    }
    class CBPTrackingType
    {
        const Unknown = 0;
        const ExecuteActivity = 1;
        const CloseActivity = 2;
        const CancelActivity = 3;
        const FaultActivity = 4;
        const Custom = 5;
        const Report = 6;
        const AttachedEntity = 7;
        const Trigger = 8;
        const Error = 9;
    }
    //Compatibility
    class CBPTrackingService extends \CBPAllTrackingService
    {
    }
    class CBPAllStateService extends \CBPRuntimeService
    {
        const COUNTERS_CACHE_TAG_PREFIX = 'b_bp_wfi_cnt_';
        public function SetStateTitle($workflowId, $stateTitle)
        {
        }
        public function SetStatePermissions($workflowId, $arStatePermissions = array(), $bRewrite = \true)
        {
        }
        public function GetStateTitle($workflowId)
        {
        }
        public static function GetStateDocumentId($workflowId)
        {
        }
        public function AddWorkflow($workflowId, $workflowTemplateId, $documentId, $starterUserId = 0)
        {
        }
        public static function DeleteWorkflow($workflowId)
        {
        }
        public function DeleteAllDocumentWorkflows($documentId)
        {
        }
        public function onStatusChange($workflowId, $status)
        {
        }
        private static function __ExtractState(&$arStates, $arResult)
        {
        }
        public static function CountDocumentWorkflows($documentId)
        {
        }
        public static function GetDocumentStates($documentId, $workflowId = "")
        {
        }
        public static function getIdsByDocument(array $documentId)
        {
        }
        public static function GetWorkflowState($workflowId)
        {
        }
        public static function getWorkflowStateInfo($workflowId)
        {
        }
        public static function getWorkflowIntegerId($workflowId)
        {
        }
        public static function getWorkflowByIntegerId($integerId)
        {
        }
        public static function DeleteByDocument($documentId)
        {
        }
        public static function deleteCompletedStates(array $documentId)
        {
        }
        public static function MergeStates($firstDocumentId, $secondDocumentId)
        {
        }
        public static function MigrateDocumentType($oldType, $newType, $workflowTemplateIds)
        {
        }
        public function SetState($workflowId, $arState, $arStatePermissions = array())
        {
        }
        public function SetStateParameters($workflowId, $arStateParameters = array())
        {
        }
        public function AddStateParameter($workflowId, $arStateParameter)
        {
        }
        public function DeleteStateParameter($workflowId, $name)
        {
        }
        public static function __InsertStateHack($id, $moduleId, $entity, $documentId, $templateId, $state, $stateTitle, $stateParameters, $arStatePermissions)
        {
        }
        public static function getRunningCounters($userId)
        {
        }
        protected static function cleanRunningCountersCache($users)
        {
        }
    }
    //Compatibility
    class CBPStateService extends \CBPAllStateService
    {
    }
    class CBPHelper
    {
        const DISTR_B24 = 'b24';
        const DISTR_BOX = 'box';
        private static $serverName;
        protected static $cAccess;
        protected static $groupsCache = array();
        protected static function getAccessProvider()
        {
        }
        private static function UsersArrayToStringInternal($arUsers, $arWorkflowTemplate, $arAllowableUserGroups, $appendId = \true)
        {
        }
        public static function UsersArrayToString($arUsers, $arWorkflowTemplate, $documentType, $appendId = \true)
        {
        }
        public static function UsersStringToArray($strUsers, $documentType, &$arErrors, $callbackFunction = \null)
        {
        }
        private static function SearchUserByName($user)
        {
        }
        public static function FormatTimePeriod($period)
        {
        }
        private static function MakeWord($val, $arWords)
        {
        }
        public static function GetFilterOperation($key)
        {
        }
        public static function PrepareSql(&$arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields)
        {
        }
        public static function ParseDocumentId($parameterDocumentId)
        {
        }
        public static function ParseDocumentIdArray($parameterDocumentId)
        {
        }
        public static function GetFieldValuePrintable($fieldName, $fieldType, $result)
        {
        }
        public static function ConvertUserToPrintableForm($userId, $nameTemplate = "")
        {
        }
        public static function GetJSFunctionsForFields($objectName, $arDocumentFields, $arDocumentFieldTypes)
        {
        }
        public static function GetDocumentFieldTypes()
        {
        }
        /**
         * @deprecated
         */
        public static function GetGUIFieldEdit($documentType, $formName, $fieldName, $fieldValue, $arDocumentField, $bAllowSelection)
        {
        }
        public static function GetFieldInputControl($documentType, $arFieldType, $arFieldName, $fieldValue, $bAllowSelection = \false)
        {
        }
        public static function GetFieldInputValue($documentType, $arFieldType, $arFieldName, $arRequest, &$arErrors)
        {
        }
        public static function GetFieldInputValuePrintable($documentType, $arFieldType, $fieldValue)
        {
        }
        public static function SetGUIFieldEdit($documentType, $fieldName, $arRequest, &$arErrors, $arDocumentField = \null)
        {
        }
        public static function ConvertTextForMail($text, $siteId = \false)
        {
        }
        public static function __ConvertAnchorTag($url, $text = '', $serverName = '')
        {
        }
        public static function IsAssociativeArray($ar)
        {
        }
        public static function ExtractUsersFromUserGroups($value, $activity)
        {
        }
        /**
         * Method return array of user ids, extracting from special codes. Supported: user (U), group (G),
         * intranet (IU, D, DR, Dextranet, UA), socnet (SU, SG1_A, SG1_E, SG1_K)
         *
         * @param string $code - group code, ex. group_D1
         * @return bool|array
         */
        public static function extractUsersFromExtendedGroup($code)
        {
        }
        public static function ExtractUsers($arUsersDraft, $documentId, $bFirst = \false)
        {
        }
        public static function MakeArrayFlat($ar)
        {
        }
        public static function getBool($value)
        {
        }
        public static function isEmptyValue($value)
        {
        }
        public static function ConvertParameterValues($val)
        {
        }
        public static function StripUserPrefix($value)
        {
        }
        /**
         * @param $userId
         * @return array
         */
        public static function getUserExtendedGroups($userId)
        {
        }
        /**
         * @param string $group - Extended group code (ex. group_g1)
         * @param bool $appendId - Append id to group name
         * @return string
         */
        public static function getExtendedGroupName($group, $appendId = \true)
        {
        }
        /**
         * @param $users
         * @return array
         */
        public static function convertToExtendedGroups($users)
        {
        }
        /**
         * @param $users
         * @param bool $extractUsers
         * @return array
         */
        public static function convertToSimpleGroups($users, $extractUsers = \false)
        {
        }
        public static function getForumId()
        {
        }
        public static function getDistrName()
        {
        }
        /**
         * @param int $headUserId
         * @param int $subUserId
         * @return bool
         */
        public static function checkUserSubordination($headUserId, $subUserId)
        {
        }
        public static function renderControlSelectorButton($controlId, $baseType = 'string', array $options = \null)
        {
        }
        public static function decodeTemplatePostData(&$data)
        {
        }
        public static function decodeArrayKeys($item, $reverse = \false)
        {
        }
        public static function makeTimestamp($date)
        {
        }
    }
    class CBPSchedulerService extends \CBPRuntimeService
    {
        /**
         * @param bool $withType Return as array [value, type].
         * @return int|array
         * @throws \Bitrix\Main\ArgumentNullException
         */
        public static function getDelayMinLimit($withType = \false)
        {
        }
        public static function setDelayMinLimit($limit, $type = 's')
        {
        }
        public function SubscribeOnTime($workflowId, $eventName, $expiresAt)
        {
        }
        private static function addAgent($workflowId, $eventName, $expiresAt, $counter = 0)
        {
        }
        public function UnSubscribeOnTime($id)
        {
        }
        public static function OnAgent($workflowId, $eventName, $eventParameters = array())
        {
        }
        public function SubscribeOnEvent($workflowId, $eventHandlerName, $eventModule, $eventName, $entityId = \null)
        {
        }
        public function UnSubscribeOnEvent($workflowId, $eventHandlerName, $eventModule, $eventName, $entityId = \null)
        {
        }
        /**
         * @deprecated
         * @param $workflowId
         * @param $eventName
         * @param array $arEventParameters
         */
        public static function OnEvent($workflowId, $eventName, $arEventParameters = array())
        {
        }
        public static function sendEvents($eventModule, $eventName, $entityKey)
        {
        }
        public static function repeatEvent($eventId, $counter = 0)
        {
        }
        private static function sendEventToWorkflow($event, $counter = 0)
        {
        }
        private static function filterEventParameters(array $parameters)
        {
        }
        private static function addEventRepeatAgent($event, $counter = 0)
        {
        }
        private static function addAgentInternal($name, $expiresAt)
        {
        }
        private static function getExpiresTimeByCounter($counter = 0)
        {
        }
    }
    class CBPViewHelper
    {
        private static $cachedTasks = array();
        public static function RenderUserSearch($ID, $searchInputID, $dataInputID, $componentName, $siteID = '', $nameFormat = '', $delay = 0)
        {
        }
        public static function getWorkflowTasks($workflowId, $withUsers = \false, $extendUserInfo = \false)
        {
        }
        protected static function joinUsersToTasks(&$tasks, &$taskUsers, $extendUserInfo = \false)
        {
        }
        public static function getUserPhotoSrc(array $user)
        {
        }
        public static function getUserFullName(array $user)
        {
        }
        public static function getHtmlEditor($id, $fieldName, $content = '')
        {
        }
        public static function prepareTaskDescription($description)
        {
        }
    }
    class CBPArgumentException extends \Exception
    {
        private $paramName = "";
        public function __construct($message, $paramName = "")
        {
        }
        public function GetParamName()
        {
        }
    }
    class CBPArgumentNullException extends \CBPArgumentException
    {
        public function __construct($paramName, $message = "")
        {
        }
    }
    class CBPArgumentOutOfRangeException extends \CBPArgumentException
    {
        private $actualValue = \null;
        public function __construct($paramName, $actualValue = \null, $message = "")
        {
        }
        public function GetActualValue()
        {
        }
    }
    class CBPArgumentTypeException extends \CBPArgumentException
    {
        private $correctType = \null;
        public function __construct($paramName, $correctType = \null, $message = "")
        {
        }
        public function GetCorrectType()
        {
        }
    }
    class CBPInvalidOperationException extends \Exception
    {
        public function __construct($message = "")
        {
        }
    }
    class CBPNotSupportedException extends \Exception
    {
        public function __construct($message = "")
        {
        }
    }
    /**
    * Workflow instance.
    */
    class CBPWorkflow
    {
        private $isNew = \false;
        private $instanceId = "";
        /** @var CBPRuntime|null $runtime */
        private $runtime = \null;
        private $rootActivity = \null;
        private $activitiesQueue = array();
        private $eventsQueue = array();
        private $activitiesNamesMap = array();
        /************************  PROPERTIES  *******************************/
        public function GetInstanceId()
        {
        }
        /**
         * @return CBPRuntime
         */
        public function GetRuntime()
        {
        }
        private function GetWorkflowStatus()
        {
        }
        private function SetWorkflowStatus($newStatus)
        {
        }
        public function GetService($name)
        {
        }
        public function GetDocumentId()
        {
        }
        /************************  CONSTRUCTORS  ****************************************************/
        /**
         * Public constructor initializes a new workflow instance with the specified ID.
         * 
         * @param mixed $instanceId - ID of the new workflow instance.
         * @param mixed $runtime - Runtime object.
         * @return CBPWorkflow
         */
        public function __construct($instanceId, \CBPRuntime $runtime)
        {
        }
        /**
         * Remove workflow object from serialized data
         * @return array
         */
        public function __sleep()
        {
        }
        /************************  CREATE / LOAD WORKFLOW  ****************************************/
        public function Initialize(\CBPActivity $rootActivity, $documentId, $workflowParameters = array(), $workflowVariablesTypes = array(), $workflowParametersTypes = array(), $workflowTemplateId = 0)
        {
        }
        public function Reload(\CBPActivity $rootActivity)
        {
        }
        public function OnRuntimeStopped()
        {
        }
        /************************  EXECUTE WORKFLOW  ************************************************/
        /**
         * Starts new workflow instance.
         * 
         */
        public function Start()
        {
        }
        /**
         * Resume existing workflow.
         * 
         */
        public function Resume()
        {
        }
        public function isNew()
        {
        }
        /**********************  EXTERNAL EVENTS  **************************************************************/
        /**
         * Resume the workflow instance and transfer the specified event to it.
         * 
         * @param mixed $eventName - Event name.
         * @param mixed $arEventParameters - Event parameters.
         */
        public function SendExternalEvent($eventName, $arEventParameters = array())
        {
        }
        /***********************  SEARCH ACTIVITY BY NAME  ****************************************************/
        private function FillNameActivityMapInternal(\CBPActivity $activity)
        {
        }
        private function FillNameActivityMap()
        {
        }
        /**
         * Returns activity by its name.
         * 
         * @param mixed $activityName - Activity name.
         * @return CBPActivity - Returns activity object or null if activity is not found.
         */
        public function GetActivityByName($activityName)
        {
        }
        /************************  ACTIVITY EXECUTION  *************************************************/
        /**
         * Initializes the specified activity by calling its method Initialize.
         * 
         * @param CBPActivity $activity
         */
        public function InitializeActivity(\CBPActivity $activity)
        {
        }
        /**
         * Plans specified activity for execution.
         * 
         * @param CBPActivity $activity - Activity object.
         * @param mixed $arEventParameters - Optional parameters.
         */
        public function ExecuteActivity(\CBPActivity $activity, $arEventParameters = array())
        {
        }
        /**
         * Close specified activity.
         * 
         * @param CBPActivity $activity - Activity object.
         * @param mixed $arEventParameters - Optional parameters.
         */
        public function CloseActivity(\CBPActivity $activity, $arEventParameters = array())
        {
        }
        /**
         * Cancel specified activity.
         * 
         * @param CBPActivity $activity - Activity object.
         * @param mixed $arEventParameters - Optional parameters.
         */
        public function CancelActivity(\CBPActivity $activity, $arEventParameters = array())
        {
        }
        public function FaultActivity(\CBPActivity $activity, \Exception $e, $arEventParameters = array())
        {
        }
        /************************  ACTIVITIES QUEUE  ***********************************************/
        private function AddItemToQueue($item)
        {
        }
        private function RunQueue()
        {
        }
        private function RunQueuedItem(\CBPActivity $activity, $activityOperation, \Exception $exception = \null)
        {
        }
        public function Terminate(\Exception $e = \null, $stateTitle = '')
        {
        }
        /**
         * @param CBPActivity $activity
         * @throws CBPArgumentNullException
         * @throws Exception
         */
        public function FinalizeActivity(\CBPActivity $activity)
        {
        }
        /************************  EVENTS QUEUE  ********************************************************/
        private function AddEventToQueue($eventName, $arEventParameters = array())
        {
        }
        private function ProcessQueuedEvents()
        {
        }
        private function ProcessQueuedEvent($eventName, $arEventParameters = array())
        {
        }
        /**
         * Add new event handler to the specified event.
         * 
         * @param mixed $eventName - Event name.
         * @param IBPActivityExternalEventListener $eventHandler - Event handler.
         */
        public function AddEventHandler($eventName, \IBPActivityExternalEventListener $eventHandler)
        {
        }
        /**
         * Remove the event handler from the specified event.
         * 
         * @param mixed $eventName - Event name.
         * @param IBPActivityExternalEventListener $eventHandler - Event handler.
         */
        public function RemoveEventHandler($eventName, \IBPActivityExternalEventListener $eventHandler)
        {
        }
        /*******************  UTILITIES  ***************************************************************/
        /**
         * Returns available events for current state of state machine workflow activity.
         * 
         */
        public function GetAvailableStateEvents()
        {
        }
    }
    class CBPRestActivity extends \CBPActivity implements \IBPEventActivity, \IBPActivityExternalEventListener
    {
        const TOKEN_SALT = 'bizproc';
        const PROPERTY_NAME_PREFIX = 'property_';
        const REST_ACTIVITY_ID = 0;
        protected static $restActivityData = array();
        protected $subscriptionId = 0;
        protected $eventId;
        private static function getRestActivityData()
        {
        }
        public function __construct($name)
        {
        }
        protected function ReInitialize()
        {
        }
        public function Execute()
        {
        }
        public function Subscribe(\IBPActivityExternalEventListener $eventHandler)
        {
        }
        public function Unsubscribe(\IBPActivityExternalEventListener $eventHandler)
        {
        }
        public function OnExternalEvent($eventParameters = array())
        {
        }
        public function Cancel()
        {
        }
        public function HandleFault(\Exception $exception)
        {
        }
        public static function GetPropertiesDialog($documentType, $activityName, $workflowTemplate, $workflowParameters, $workflowVariables, $currentValues = \null, $formName = "")
        {
        }
        private static function getAppPlacement(int $appId, string $code) : ?array
        {
        }
        public static function renderPropertiesDialog(\Bitrix\Bizproc\Activity\PropertiesDialog $dialog)
        {
        }
        public static function GetPropertiesDialogValues($documentType, $activityName, &$workflowTemplate, &$workflowParameters, &$workflowVariables, $currentValues, &$errors)
        {
        }
        public static function ValidateProperties($testProperties = array(), \CBPWorkflowTemplateUser $user = \null)
        {
        }
        private function CalculateTimeoutDuration()
        {
        }
        private static function checkAdminPermissions()
        {
        }
        public static function generateToken($workflowId, $activityName, $eventId)
        {
        }
        public static function extractToken($token)
        {
        }
    }
    /**
    * Workflow persistence service.
    */
    class CBPAllWorkflowPersister
    {
        const LOCK_BY_TIME = \false;
        protected $serviceInstanceId = "";
        protected $ownershipDelta = 300;
        protected $useGZipCompression = \false;
        private static $instance;
        public function __clone()
        {
        }
        private function __construct()
        {
        }
        /**
         * @return self
         */
        public static function GetPersister()
        {
        }
        protected function RetrieveWorkflow($instanceId, $silent = \false)
        {
        }
        protected function InsertWorkflow($id, $buffer, $status, $bUnlocked, array $creationData = [])
        {
        }
        protected function GetOwnershipTimeout()
        {
        }
        public function LoadWorkflow($instanceId, $silent = \false)
        {
        }
        private function RestoreFromSerializedForm($buffer)
        {
        }
        public static function __InsertWorkflowHack($id, $buffer)
        {
        }
        public function SaveWorkflow(\CBPActivity $rootActivity, $bUnlocked)
        {
        }
        private function GetSerializedForm(\CBPActivity $rootActivity)
        {
        }
        public function UnlockWorkflow(\CBPActivity $rootActivity)
        {
        }
        protected function getLockerQueryCondition()
        {
        }
    }
    //Compatibility
    class CBPWorkflowPersister extends \CBPAllWorkflowPersister
    {
    }
}
namespace Bitrix\Bizproc\Workflow\Template\Entity {
    /**
     * Tpl
     * @see \Bitrix\Bizproc\Workflow\Template\Entity\WorkflowTemplateTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getModuleId()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setModuleId(\string|\Bitrix\Main\DB\SqlExpression $moduleId)
     * @method bool hasModuleId()
     * @method bool isModuleIdFilled()
     * @method bool isModuleIdChanged()
     * @method \string remindActualModuleId()
     * @method \string requireModuleId()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetModuleId()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetModuleId()
     * @method \string fillModuleId()
     * @method \string getEntity()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setEntity(\string|\Bitrix\Main\DB\SqlExpression $entity)
     * @method bool hasEntity()
     * @method bool isEntityFilled()
     * @method bool isEntityChanged()
     * @method \string remindActualEntity()
     * @method \string requireEntity()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetEntity()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetEntity()
     * @method \string fillEntity()
     * @method \string getDocumentType()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setDocumentType(\string|\Bitrix\Main\DB\SqlExpression $documentType)
     * @method bool hasDocumentType()
     * @method bool isDocumentTypeFilled()
     * @method bool isDocumentTypeChanged()
     * @method \string remindActualDocumentType()
     * @method \string requireDocumentType()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetDocumentType()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetDocumentType()
     * @method \string fillDocumentType()
     * @method \string getDocumentStatus()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setDocumentStatus(\string|\Bitrix\Main\DB\SqlExpression $documentStatus)
     * @method bool hasDocumentStatus()
     * @method bool isDocumentStatusFilled()
     * @method bool isDocumentStatusChanged()
     * @method \string remindActualDocumentStatus()
     * @method \string requireDocumentStatus()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetDocumentStatus()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetDocumentStatus()
     * @method \string fillDocumentStatus()
     * @method \int getAutoExecute()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setAutoExecute(\int|\Bitrix\Main\DB\SqlExpression $autoExecute)
     * @method bool hasAutoExecute()
     * @method bool isAutoExecuteFilled()
     * @method bool isAutoExecuteChanged()
     * @method \int remindActualAutoExecute()
     * @method \int requireAutoExecute()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetAutoExecute()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetAutoExecute()
     * @method \int fillAutoExecute()
     * @method \string getName()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetName()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetName()
     * @method \string fillName()
     * @method \string getDescription()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetDescription()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetDescription()
     * @method \string fillDescription()
     * @method array getTemplate()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setTemplate(array|\Bitrix\Main\DB\SqlExpression $template)
     * @method bool hasTemplate()
     * @method bool isTemplateFilled()
     * @method bool isTemplateChanged()
     * @method array remindActualTemplate()
     * @method array requireTemplate()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetTemplate()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetTemplate()
     * @method array fillTemplate()
     * @method array getParameters()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setParameters(array|\Bitrix\Main\DB\SqlExpression $parameters)
     * @method bool hasParameters()
     * @method bool isParametersFilled()
     * @method bool isParametersChanged()
     * @method array remindActualParameters()
     * @method array requireParameters()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetParameters()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetParameters()
     * @method array fillParameters()
     * @method array getVariables()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setVariables(array|\Bitrix\Main\DB\SqlExpression $variables)
     * @method bool hasVariables()
     * @method bool isVariablesFilled()
     * @method bool isVariablesChanged()
     * @method array remindActualVariables()
     * @method array requireVariables()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetVariables()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetVariables()
     * @method array fillVariables()
     * @method array getConstants()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setConstants(array|\Bitrix\Main\DB\SqlExpression $constants)
     * @method bool hasConstants()
     * @method bool isConstantsFilled()
     * @method bool isConstantsChanged()
     * @method array remindActualConstants()
     * @method array requireConstants()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetConstants()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetConstants()
     * @method array fillConstants()
     * @method \Bitrix\Main\Type\DateTime getModified()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setModified(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $modified)
     * @method bool hasModified()
     * @method bool isModifiedFilled()
     * @method bool isModifiedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualModified()
     * @method \Bitrix\Main\Type\DateTime requireModified()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetModified()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetModified()
     * @method \Bitrix\Main\Type\DateTime fillModified()
     * @method \boolean getIsModified()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setIsModified(\boolean|\Bitrix\Main\DB\SqlExpression $isModified)
     * @method bool hasIsModified()
     * @method bool isIsModifiedFilled()
     * @method bool isIsModifiedChanged()
     * @method \boolean remindActualIsModified()
     * @method \boolean requireIsModified()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetIsModified()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetIsModified()
     * @method \boolean fillIsModified()
     * @method \int getUserId()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setUserId(\int|\Bitrix\Main\DB\SqlExpression $userId)
     * @method bool hasUserId()
     * @method bool isUserIdFilled()
     * @method bool isUserIdChanged()
     * @method \int remindActualUserId()
     * @method \int requireUserId()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetUserId()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetUserId()
     * @method \int fillUserId()
     * @method \string getSystemCode()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setSystemCode(\string|\Bitrix\Main\DB\SqlExpression $systemCode)
     * @method bool hasSystemCode()
     * @method bool isSystemCodeFilled()
     * @method bool isSystemCodeChanged()
     * @method \string remindActualSystemCode()
     * @method \string requireSystemCode()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetSystemCode()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetSystemCode()
     * @method \string fillSystemCode()
     * @method \boolean getActive()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setActive(\boolean|\Bitrix\Main\DB\SqlExpression $active)
     * @method bool hasActive()
     * @method bool isActiveFilled()
     * @method bool isActiveChanged()
     * @method \boolean remindActualActive()
     * @method \boolean requireActive()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetActive()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetActive()
     * @method \boolean fillActive()
     * @method \string getOriginatorId()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setOriginatorId(\string|\Bitrix\Main\DB\SqlExpression $originatorId)
     * @method bool hasOriginatorId()
     * @method bool isOriginatorIdFilled()
     * @method bool isOriginatorIdChanged()
     * @method \string remindActualOriginatorId()
     * @method \string requireOriginatorId()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetOriginatorId()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetOriginatorId()
     * @method \string fillOriginatorId()
     * @method \string getOriginId()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setOriginId(\string|\Bitrix\Main\DB\SqlExpression $originId)
     * @method bool hasOriginId()
     * @method bool isOriginIdFilled()
     * @method bool isOriginIdChanged()
     * @method \string remindActualOriginId()
     * @method \string requireOriginId()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetOriginId()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetOriginId()
     * @method \string fillOriginId()
     * @method \Bitrix\Main\EO_User getUser()
     * @method \Bitrix\Main\EO_User remindActualUser()
     * @method \Bitrix\Main\EO_User requireUser()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetUser()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetUser()
     * @method bool hasUser()
     * @method bool isUserFilled()
     * @method bool isUserChanged()
     * @method \Bitrix\Main\EO_User fillUser()
     * @method \boolean getIsSystem()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setIsSystem(\boolean|\Bitrix\Main\DB\SqlExpression $isSystem)
     * @method bool hasIsSystem()
     * @method bool isIsSystemFilled()
     * @method bool isIsSystemChanged()
     * @method \boolean remindActualIsSystem()
     * @method \boolean requireIsSystem()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetIsSystem()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetIsSystem()
     * @method \boolean fillIsSystem()
     * @method \int getSort()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl setSort(\int|\Bitrix\Main\DB\SqlExpression $sort)
     * @method bool hasSort()
     * @method bool isSortFilled()
     * @method bool isSortChanged()
     * @method \int remindActualSort()
     * @method \int requireSort()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl resetSort()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unsetSort()
     * @method \int fillSort()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl set($fieldName, $value)
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl reset($fieldName)
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Bizproc\Workflow\Template\Tpl wakeUp($data)
     */
    class EO_WorkflowTemplate
    {
        /* @var \Bitrix\Bizproc\Workflow\Template\Entity\WorkflowTemplateTable */
        public static $dataClass = '\\Bitrix\\Bizproc\\Workflow\\Template\\Entity\\WorkflowTemplateTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_WorkflowTemplate_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getModuleIdList()
     * @method \string[] fillModuleId()
     * @method \string[] getEntityList()
     * @method \string[] fillEntity()
     * @method \string[] getDocumentTypeList()
     * @method \string[] fillDocumentType()
     * @method \string[] getDocumentStatusList()
     * @method \string[] fillDocumentStatus()
     * @method \int[] getAutoExecuteList()
     * @method \int[] fillAutoExecute()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method array[] getTemplateList()
     * @method array[] fillTemplate()
     * @method array[] getParametersList()
     * @method array[] fillParameters()
     * @method array[] getVariablesList()
     * @method array[] fillVariables()
     * @method array[] getConstantsList()
     * @method array[] fillConstants()
     * @method \Bitrix\Main\Type\DateTime[] getModifiedList()
     * @method \Bitrix\Main\Type\DateTime[] fillModified()
     * @method \boolean[] getIsModifiedList()
     * @method \boolean[] fillIsModified()
     * @method \int[] getUserIdList()
     * @method \int[] fillUserId()
     * @method \string[] getSystemCodeList()
     * @method \string[] fillSystemCode()
     * @method \boolean[] getActiveList()
     * @method \boolean[] fillActive()
     * @method \string[] getOriginatorIdList()
     * @method \string[] fillOriginatorId()
     * @method \string[] getOriginIdList()
     * @method \string[] fillOriginId()
     * @method \Bitrix\Main\EO_User[] getUserList()
     * @method \Bitrix\Bizproc\Workflow\Template\Entity\EO_WorkflowTemplate_Collection getUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillUser()
     * @method \boolean[] getIsSystemList()
     * @method \boolean[] fillIsSystem()
     * @method \int[] getSortList()
     * @method \int[] fillSort()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Bizproc\Workflow\Template\Tpl $object)
     * @method bool has(\Bitrix\Bizproc\Workflow\Template\Tpl $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl getByPrimary($primary)
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl[] getAll()
     * @method bool remove(\Bitrix\Bizproc\Workflow\Template\Tpl $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Bizproc\Workflow\Template\Entity\EO_WorkflowTemplate_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_WorkflowTemplate_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Bizproc\Workflow\Template\Entity\WorkflowTemplateTable */
        public static $dataClass = '\\Bitrix\\Bizproc\\Workflow\\Template\\Entity\\WorkflowTemplateTable';
    }
    /**
     * @method static EO_WorkflowTemplate_Query query()
     * @method static EO_WorkflowTemplate_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_WorkflowTemplate_Result getById($id)
     * @method static EO_WorkflowTemplate_Result getList(array $parameters = array())
     * @method static EO_WorkflowTemplate_Entity getEntity()
     * @method static \Bitrix\Bizproc\Workflow\Template\Tpl createObject($setDefaultValues = true)
     * @method static \Bitrix\Bizproc\Workflow\Template\Entity\EO_WorkflowTemplate_Collection createCollection()
     * @method static \Bitrix\Bizproc\Workflow\Template\Tpl wakeUpObject($row)
     * @method static \Bitrix\Bizproc\Workflow\Template\Entity\EO_WorkflowTemplate_Collection wakeUpCollection($rows)
     */
    class WorkflowTemplateTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_WorkflowTemplate_Result exec()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl fetchObject()
     * @method \Bitrix\Bizproc\Workflow\Template\Entity\EO_WorkflowTemplate_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_WorkflowTemplate_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl fetchObject()
     * @method \Bitrix\Bizproc\Workflow\Template\Entity\EO_WorkflowTemplate_Collection fetchCollection()
     */
    class EO_WorkflowTemplate_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl createObject($setDefaultValues = true)
     * @method \Bitrix\Bizproc\Workflow\Template\Entity\EO_WorkflowTemplate_Collection createCollection()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl wakeUpObject($row)
     * @method \Bitrix\Bizproc\Workflow\Template\Entity\EO_WorkflowTemplate_Collection wakeUpCollection($rows)
     */
    class EO_WorkflowTemplate_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Bizproc\Workflow\Entity {
    /**
     * EO_WorkflowInstance
     * @see \Bitrix\Bizproc\Workflow\Entity\WorkflowInstanceTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance setId(\string|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getModuleId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance setModuleId(\string|\Bitrix\Main\DB\SqlExpression $moduleId)
     * @method bool hasModuleId()
     * @method bool isModuleIdFilled()
     * @method bool isModuleIdChanged()
     * @method \string remindActualModuleId()
     * @method \string requireModuleId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance resetModuleId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance unsetModuleId()
     * @method \string fillModuleId()
     * @method \string getEntity()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance setEntity(\string|\Bitrix\Main\DB\SqlExpression $entity)
     * @method bool hasEntity()
     * @method bool isEntityFilled()
     * @method bool isEntityChanged()
     * @method \string remindActualEntity()
     * @method \string requireEntity()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance resetEntity()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance unsetEntity()
     * @method \string fillEntity()
     * @method \string getDocumentId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance setDocumentId(\string|\Bitrix\Main\DB\SqlExpression $documentId)
     * @method bool hasDocumentId()
     * @method bool isDocumentIdFilled()
     * @method bool isDocumentIdChanged()
     * @method \string remindActualDocumentId()
     * @method \string requireDocumentId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance resetDocumentId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance unsetDocumentId()
     * @method \string fillDocumentId()
     * @method \int getWorkflowTemplateId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance setWorkflowTemplateId(\int|\Bitrix\Main\DB\SqlExpression $workflowTemplateId)
     * @method bool hasWorkflowTemplateId()
     * @method bool isWorkflowTemplateIdFilled()
     * @method bool isWorkflowTemplateIdChanged()
     * @method \int remindActualWorkflowTemplateId()
     * @method \int requireWorkflowTemplateId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance resetWorkflowTemplateId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance unsetWorkflowTemplateId()
     * @method \int fillWorkflowTemplateId()
     * @method \string getWorkflow()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance setWorkflow(\string|\Bitrix\Main\DB\SqlExpression $workflow)
     * @method bool hasWorkflow()
     * @method bool isWorkflowFilled()
     * @method bool isWorkflowChanged()
     * @method \string remindActualWorkflow()
     * @method \string requireWorkflow()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance resetWorkflow()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance unsetWorkflow()
     * @method \string fillWorkflow()
     * @method \Bitrix\Main\Type\DateTime getStarted()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance setStarted(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $started)
     * @method bool hasStarted()
     * @method bool isStartedFilled()
     * @method bool isStartedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualStarted()
     * @method \Bitrix\Main\Type\DateTime requireStarted()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance resetStarted()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance unsetStarted()
     * @method \Bitrix\Main\Type\DateTime fillStarted()
     * @method \int getStartedBy()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance setStartedBy(\int|\Bitrix\Main\DB\SqlExpression $startedBy)
     * @method bool hasStartedBy()
     * @method bool isStartedByFilled()
     * @method bool isStartedByChanged()
     * @method \int remindActualStartedBy()
     * @method \int requireStartedBy()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance resetStartedBy()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance unsetStartedBy()
     * @method \int fillStartedBy()
     * @method \Bitrix\Main\EO_User getStartedUser()
     * @method \Bitrix\Main\EO_User remindActualStartedUser()
     * @method \Bitrix\Main\EO_User requireStartedUser()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance setStartedUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance resetStartedUser()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance unsetStartedUser()
     * @method bool hasStartedUser()
     * @method bool isStartedUserFilled()
     * @method bool isStartedUserChanged()
     * @method \Bitrix\Main\EO_User fillStartedUser()
     * @method \int getStartedEventType()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance setStartedEventType(\int|\Bitrix\Main\DB\SqlExpression $startedEventType)
     * @method bool hasStartedEventType()
     * @method bool isStartedEventTypeFilled()
     * @method bool isStartedEventTypeChanged()
     * @method \int remindActualStartedEventType()
     * @method \int requireStartedEventType()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance resetStartedEventType()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance unsetStartedEventType()
     * @method \int fillStartedEventType()
     * @method \int getStatus()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance setStatus(\int|\Bitrix\Main\DB\SqlExpression $status)
     * @method bool hasStatus()
     * @method bool isStatusFilled()
     * @method bool isStatusChanged()
     * @method \int remindActualStatus()
     * @method \int requireStatus()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance resetStatus()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance unsetStatus()
     * @method \int fillStatus()
     * @method \Bitrix\Main\Type\DateTime getModified()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance setModified(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $modified)
     * @method bool hasModified()
     * @method bool isModifiedFilled()
     * @method bool isModifiedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualModified()
     * @method \Bitrix\Main\Type\DateTime requireModified()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance resetModified()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance unsetModified()
     * @method \Bitrix\Main\Type\DateTime fillModified()
     * @method \string getOwnerId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance setOwnerId(\string|\Bitrix\Main\DB\SqlExpression $ownerId)
     * @method bool hasOwnerId()
     * @method bool isOwnerIdFilled()
     * @method bool isOwnerIdChanged()
     * @method \string remindActualOwnerId()
     * @method \string requireOwnerId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance resetOwnerId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance unsetOwnerId()
     * @method \string fillOwnerId()
     * @method \Bitrix\Main\Type\DateTime getOwnedUntil()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance setOwnedUntil(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $ownedUntil)
     * @method bool hasOwnedUntil()
     * @method bool isOwnedUntilFilled()
     * @method bool isOwnedUntilChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualOwnedUntil()
     * @method \Bitrix\Main\Type\DateTime requireOwnedUntil()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance resetOwnedUntil()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance unsetOwnedUntil()
     * @method \Bitrix\Main\Type\DateTime fillOwnedUntil()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState getState()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState remindActualState()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState requireState()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance setState(\Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState $object)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance resetState()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance unsetState()
     * @method bool hasState()
     * @method bool isStateFilled()
     * @method bool isStateChanged()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState fillState()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl getTemplate()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl remindActualTemplate()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl requireTemplate()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance setTemplate(\Bitrix\Bizproc\Workflow\Template\Tpl $object)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance resetTemplate()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance unsetTemplate()
     * @method bool hasTemplate()
     * @method bool isTemplateFilled()
     * @method bool isTemplateChanged()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl fillTemplate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance set($fieldName, $value)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance reset($fieldName)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance wakeUp($data)
     */
    class EO_WorkflowInstance
    {
        /* @var \Bitrix\Bizproc\Workflow\Entity\WorkflowInstanceTable */
        public static $dataClass = '\\Bitrix\\Bizproc\\Workflow\\Entity\\WorkflowInstanceTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_WorkflowInstance_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getIdList()
     * @method \string[] getModuleIdList()
     * @method \string[] fillModuleId()
     * @method \string[] getEntityList()
     * @method \string[] fillEntity()
     * @method \string[] getDocumentIdList()
     * @method \string[] fillDocumentId()
     * @method \int[] getWorkflowTemplateIdList()
     * @method \int[] fillWorkflowTemplateId()
     * @method \string[] getWorkflowList()
     * @method \string[] fillWorkflow()
     * @method \Bitrix\Main\Type\DateTime[] getStartedList()
     * @method \Bitrix\Main\Type\DateTime[] fillStarted()
     * @method \int[] getStartedByList()
     * @method \int[] fillStartedBy()
     * @method \Bitrix\Main\EO_User[] getStartedUserList()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance_Collection getStartedUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillStartedUser()
     * @method \int[] getStartedEventTypeList()
     * @method \int[] fillStartedEventType()
     * @method \int[] getStatusList()
     * @method \int[] fillStatus()
     * @method \Bitrix\Main\Type\DateTime[] getModifiedList()
     * @method \Bitrix\Main\Type\DateTime[] fillModified()
     * @method \string[] getOwnerIdList()
     * @method \string[] fillOwnerId()
     * @method \Bitrix\Main\Type\DateTime[] getOwnedUntilList()
     * @method \Bitrix\Main\Type\DateTime[] fillOwnedUntil()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState[] getStateList()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance_Collection getStateCollection()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState_Collection fillState()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl[] getTemplateList()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance_Collection getTemplateCollection()
     * @method \Bitrix\Bizproc\Workflow\Template\Entity\EO_WorkflowTemplate_Collection fillTemplate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance $object)
     * @method bool has(\Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance getByPrimary($primary)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance[] getAll()
     * @method bool remove(\Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_WorkflowInstance_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Bizproc\Workflow\Entity\WorkflowInstanceTable */
        public static $dataClass = '\\Bitrix\\Bizproc\\Workflow\\Entity\\WorkflowInstanceTable';
    }
    /**
     * @method static EO_WorkflowInstance_Query query()
     * @method static EO_WorkflowInstance_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_WorkflowInstance_Result getById($id)
     * @method static EO_WorkflowInstance_Result getList(array $parameters = array())
     * @method static EO_WorkflowInstance_Entity getEntity()
     * @method static \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance createObject($setDefaultValues = true)
     * @method static \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance_Collection createCollection()
     * @method static \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance wakeUpObject($row)
     * @method static \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance_Collection wakeUpCollection($rows)
     */
    class WorkflowInstanceTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_WorkflowInstance_Result exec()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance fetchObject()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_WorkflowInstance_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance fetchObject()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance_Collection fetchCollection()
     */
    class EO_WorkflowInstance_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance createObject($setDefaultValues = true)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance_Collection createCollection()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance wakeUpObject($row)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance_Collection wakeUpCollection($rows)
     */
    class EO_WorkflowInstance_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_WorkflowState
     * @see \Bitrix\Bizproc\Workflow\Entity\WorkflowStateTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState setId(\string|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getModuleId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState setModuleId(\string|\Bitrix\Main\DB\SqlExpression $moduleId)
     * @method bool hasModuleId()
     * @method bool isModuleIdFilled()
     * @method bool isModuleIdChanged()
     * @method \string remindActualModuleId()
     * @method \string requireModuleId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState resetModuleId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState unsetModuleId()
     * @method \string fillModuleId()
     * @method \string getEntity()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState setEntity(\string|\Bitrix\Main\DB\SqlExpression $entity)
     * @method bool hasEntity()
     * @method bool isEntityFilled()
     * @method bool isEntityChanged()
     * @method \string remindActualEntity()
     * @method \string requireEntity()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState resetEntity()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState unsetEntity()
     * @method \string fillEntity()
     * @method \string getDocumentId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState setDocumentId(\string|\Bitrix\Main\DB\SqlExpression $documentId)
     * @method bool hasDocumentId()
     * @method bool isDocumentIdFilled()
     * @method bool isDocumentIdChanged()
     * @method \string remindActualDocumentId()
     * @method \string requireDocumentId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState resetDocumentId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState unsetDocumentId()
     * @method \string fillDocumentId()
     * @method \int getDocumentIdInt()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState setDocumentIdInt(\int|\Bitrix\Main\DB\SqlExpression $documentIdInt)
     * @method bool hasDocumentIdInt()
     * @method bool isDocumentIdIntFilled()
     * @method bool isDocumentIdIntChanged()
     * @method \int remindActualDocumentIdInt()
     * @method \int requireDocumentIdInt()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState resetDocumentIdInt()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState unsetDocumentIdInt()
     * @method \int fillDocumentIdInt()
     * @method \int getWorkflowTemplateId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState setWorkflowTemplateId(\int|\Bitrix\Main\DB\SqlExpression $workflowTemplateId)
     * @method bool hasWorkflowTemplateId()
     * @method bool isWorkflowTemplateIdFilled()
     * @method bool isWorkflowTemplateIdChanged()
     * @method \int remindActualWorkflowTemplateId()
     * @method \int requireWorkflowTemplateId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState resetWorkflowTemplateId()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState unsetWorkflowTemplateId()
     * @method \int fillWorkflowTemplateId()
     * @method \string getState()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState setState(\string|\Bitrix\Main\DB\SqlExpression $state)
     * @method bool hasState()
     * @method bool isStateFilled()
     * @method bool isStateChanged()
     * @method \string remindActualState()
     * @method \string requireState()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState resetState()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState unsetState()
     * @method \string fillState()
     * @method \string getStateParameters()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState setStateParameters(\string|\Bitrix\Main\DB\SqlExpression $stateParameters)
     * @method bool hasStateParameters()
     * @method bool isStateParametersFilled()
     * @method bool isStateParametersChanged()
     * @method \string remindActualStateParameters()
     * @method \string requireStateParameters()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState resetStateParameters()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState unsetStateParameters()
     * @method \string fillStateParameters()
     * @method \Bitrix\Main\Type\DateTime getModified()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState setModified(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $modified)
     * @method bool hasModified()
     * @method bool isModifiedFilled()
     * @method bool isModifiedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualModified()
     * @method \Bitrix\Main\Type\DateTime requireModified()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState resetModified()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState unsetModified()
     * @method \Bitrix\Main\Type\DateTime fillModified()
     * @method \Bitrix\Main\Type\DateTime getStarted()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState setStarted(\Bitrix\Main\Type\DateTime|\Bitrix\Main\DB\SqlExpression $started)
     * @method bool hasStarted()
     * @method bool isStartedFilled()
     * @method bool isStartedChanged()
     * @method \Bitrix\Main\Type\DateTime remindActualStarted()
     * @method \Bitrix\Main\Type\DateTime requireStarted()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState resetStarted()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState unsetStarted()
     * @method \Bitrix\Main\Type\DateTime fillStarted()
     * @method \int getStartedBy()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState setStartedBy(\int|\Bitrix\Main\DB\SqlExpression $startedBy)
     * @method bool hasStartedBy()
     * @method bool isStartedByFilled()
     * @method bool isStartedByChanged()
     * @method \int remindActualStartedBy()
     * @method \int requireStartedBy()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState resetStartedBy()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState unsetStartedBy()
     * @method \int fillStartedBy()
     * @method \Bitrix\Main\EO_User getStartedUser()
     * @method \Bitrix\Main\EO_User remindActualStartedUser()
     * @method \Bitrix\Main\EO_User requireStartedUser()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState setStartedUser(\Bitrix\Main\EO_User $object)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState resetStartedUser()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState unsetStartedUser()
     * @method bool hasStartedUser()
     * @method bool isStartedUserFilled()
     * @method bool isStartedUserChanged()
     * @method \Bitrix\Main\EO_User fillStartedUser()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance getInstance()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance remindActualInstance()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance requireInstance()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState setInstance(\Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance $object)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState resetInstance()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState unsetInstance()
     * @method bool hasInstance()
     * @method bool isInstanceFilled()
     * @method bool isInstanceChanged()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance fillInstance()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl getTemplate()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl remindActualTemplate()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl requireTemplate()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState setTemplate(\Bitrix\Bizproc\Workflow\Template\Tpl $object)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState resetTemplate()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState unsetTemplate()
     * @method bool hasTemplate()
     * @method bool isTemplateFilled()
     * @method bool isTemplateChanged()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl fillTemplate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState set($fieldName, $value)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState reset($fieldName)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState wakeUp($data)
     */
    class EO_WorkflowState
    {
        /* @var \Bitrix\Bizproc\Workflow\Entity\WorkflowStateTable */
        public static $dataClass = '\\Bitrix\\Bizproc\\Workflow\\Entity\\WorkflowStateTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_WorkflowState_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getIdList()
     * @method \string[] getModuleIdList()
     * @method \string[] fillModuleId()
     * @method \string[] getEntityList()
     * @method \string[] fillEntity()
     * @method \string[] getDocumentIdList()
     * @method \string[] fillDocumentId()
     * @method \int[] getDocumentIdIntList()
     * @method \int[] fillDocumentIdInt()
     * @method \int[] getWorkflowTemplateIdList()
     * @method \int[] fillWorkflowTemplateId()
     * @method \string[] getStateList()
     * @method \string[] fillState()
     * @method \string[] getStateParametersList()
     * @method \string[] fillStateParameters()
     * @method \Bitrix\Main\Type\DateTime[] getModifiedList()
     * @method \Bitrix\Main\Type\DateTime[] fillModified()
     * @method \Bitrix\Main\Type\DateTime[] getStartedList()
     * @method \Bitrix\Main\Type\DateTime[] fillStarted()
     * @method \int[] getStartedByList()
     * @method \int[] fillStartedBy()
     * @method \Bitrix\Main\EO_User[] getStartedUserList()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState_Collection getStartedUserCollection()
     * @method \Bitrix\Main\EO_User_Collection fillStartedUser()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance[] getInstanceList()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState_Collection getInstanceCollection()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowInstance_Collection fillInstance()
     * @method \Bitrix\Bizproc\Workflow\Template\Tpl[] getTemplateList()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState_Collection getTemplateCollection()
     * @method \Bitrix\Bizproc\Workflow\Template\Entity\EO_WorkflowTemplate_Collection fillTemplate()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState $object)
     * @method bool has(\Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState getByPrimary($primary)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState[] getAll()
     * @method bool remove(\Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_WorkflowState_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Bizproc\Workflow\Entity\WorkflowStateTable */
        public static $dataClass = '\\Bitrix\\Bizproc\\Workflow\\Entity\\WorkflowStateTable';
    }
    /**
     * @method static EO_WorkflowState_Query query()
     * @method static EO_WorkflowState_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_WorkflowState_Result getById($id)
     * @method static EO_WorkflowState_Result getList(array $parameters = array())
     * @method static EO_WorkflowState_Entity getEntity()
     * @method static \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState createObject($setDefaultValues = true)
     * @method static \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState_Collection createCollection()
     * @method static \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState wakeUpObject($row)
     * @method static \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState_Collection wakeUpCollection($rows)
     */
    class WorkflowStateTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_WorkflowState_Result exec()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState fetchObject()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_WorkflowState_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState fetchObject()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState_Collection fetchCollection()
     */
    class EO_WorkflowState_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState createObject($setDefaultValues = true)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState_Collection createCollection()
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState wakeUpObject($row)
     * @method \Bitrix\Bizproc\Workflow\Entity\EO_WorkflowState_Collection wakeUpCollection($rows)
     */
    class EO_WorkflowState_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Bizproc\Automation\Trigger\Entity {
    /**
     * EO_Trigger
     * @see \Bitrix\Bizproc\Automation\Trigger\Entity\TriggerTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getName()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger resetName()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger unsetName()
     * @method \string fillName()
     * @method \string getCode()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger resetCode()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger unsetCode()
     * @method \string fillCode()
     * @method \string getModuleId()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger setModuleId(\string|\Bitrix\Main\DB\SqlExpression $moduleId)
     * @method bool hasModuleId()
     * @method bool isModuleIdFilled()
     * @method bool isModuleIdChanged()
     * @method \string remindActualModuleId()
     * @method \string requireModuleId()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger resetModuleId()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger unsetModuleId()
     * @method \string fillModuleId()
     * @method \string getEntity()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger setEntity(\string|\Bitrix\Main\DB\SqlExpression $entity)
     * @method bool hasEntity()
     * @method bool isEntityFilled()
     * @method bool isEntityChanged()
     * @method \string remindActualEntity()
     * @method \string requireEntity()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger resetEntity()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger unsetEntity()
     * @method \string fillEntity()
     * @method \string getDocumentType()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger setDocumentType(\string|\Bitrix\Main\DB\SqlExpression $documentType)
     * @method bool hasDocumentType()
     * @method bool isDocumentTypeFilled()
     * @method bool isDocumentTypeChanged()
     * @method \string remindActualDocumentType()
     * @method \string requireDocumentType()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger resetDocumentType()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger unsetDocumentType()
     * @method \string fillDocumentType()
     * @method \string getDocumentStatus()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger setDocumentStatus(\string|\Bitrix\Main\DB\SqlExpression $documentStatus)
     * @method bool hasDocumentStatus()
     * @method bool isDocumentStatusFilled()
     * @method bool isDocumentStatusChanged()
     * @method \string remindActualDocumentStatus()
     * @method \string requireDocumentStatus()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger resetDocumentStatus()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger unsetDocumentStatus()
     * @method \string fillDocumentStatus()
     * @method \string getApplyRules()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger setApplyRules(\string|\Bitrix\Main\DB\SqlExpression $applyRules)
     * @method bool hasApplyRules()
     * @method bool isApplyRulesFilled()
     * @method bool isApplyRulesChanged()
     * @method \string remindActualApplyRules()
     * @method \string requireApplyRules()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger resetApplyRules()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger unsetApplyRules()
     * @method \string fillApplyRules()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger set($fieldName, $value)
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger reset($fieldName)
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger wakeUp($data)
     */
    class EO_Trigger
    {
        /* @var \Bitrix\Bizproc\Automation\Trigger\Entity\TriggerTable */
        public static $dataClass = '\\Bitrix\\Bizproc\\Automation\\Trigger\\Entity\\TriggerTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_Trigger_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \string[] getModuleIdList()
     * @method \string[] fillModuleId()
     * @method \string[] getEntityList()
     * @method \string[] fillEntity()
     * @method \string[] getDocumentTypeList()
     * @method \string[] fillDocumentType()
     * @method \string[] getDocumentStatusList()
     * @method \string[] fillDocumentStatus()
     * @method \string[] getApplyRulesList()
     * @method \string[] fillApplyRules()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger $object)
     * @method bool has(\Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger getByPrimary($primary)
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger[] getAll()
     * @method bool remove(\Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_Trigger_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Bizproc\Automation\Trigger\Entity\TriggerTable */
        public static $dataClass = '\\Bitrix\\Bizproc\\Automation\\Trigger\\Entity\\TriggerTable';
    }
    /**
     * @method static EO_Trigger_Query query()
     * @method static EO_Trigger_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_Trigger_Result getById($id)
     * @method static EO_Trigger_Result getList(array $parameters = array())
     * @method static EO_Trigger_Entity getEntity()
     * @method static \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger createObject($setDefaultValues = true)
     * @method static \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger_Collection createCollection()
     * @method static \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger wakeUpObject($row)
     * @method static \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger_Collection wakeUpCollection($rows)
     */
    class TriggerTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_Trigger_Result exec()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger fetchObject()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_Trigger_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger fetchObject()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger_Collection fetchCollection()
     */
    class EO_Trigger_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger createObject($setDefaultValues = true)
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger_Collection createCollection()
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger wakeUpObject($row)
     * @method \Bitrix\Bizproc\Automation\Trigger\Entity\EO_Trigger_Collection wakeUpCollection($rows)
     */
    class EO_Trigger_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Bizproc {
    /**
     * EO_RestActivity
     * @see \Bitrix\Bizproc\RestActivityTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Bizproc\EO_RestActivity setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getAppId()
     * @method \Bitrix\Bizproc\EO_RestActivity setAppId(\string|\Bitrix\Main\DB\SqlExpression $appId)
     * @method bool hasAppId()
     * @method bool isAppIdFilled()
     * @method bool isAppIdChanged()
     * @method \string remindActualAppId()
     * @method \string requireAppId()
     * @method \Bitrix\Bizproc\EO_RestActivity resetAppId()
     * @method \Bitrix\Bizproc\EO_RestActivity unsetAppId()
     * @method \string fillAppId()
     * @method \string getAppName()
     * @method \Bitrix\Bizproc\EO_RestActivity setAppName(\string|\Bitrix\Main\DB\SqlExpression $appName)
     * @method bool hasAppName()
     * @method bool isAppNameFilled()
     * @method bool isAppNameChanged()
     * @method \string remindActualAppName()
     * @method \string requireAppName()
     * @method \Bitrix\Bizproc\EO_RestActivity resetAppName()
     * @method \Bitrix\Bizproc\EO_RestActivity unsetAppName()
     * @method \string fillAppName()
     * @method \string getCode()
     * @method \Bitrix\Bizproc\EO_RestActivity setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Bizproc\EO_RestActivity resetCode()
     * @method \Bitrix\Bizproc\EO_RestActivity unsetCode()
     * @method \string fillCode()
     * @method \string getInternalCode()
     * @method \Bitrix\Bizproc\EO_RestActivity setInternalCode(\string|\Bitrix\Main\DB\SqlExpression $internalCode)
     * @method bool hasInternalCode()
     * @method bool isInternalCodeFilled()
     * @method bool isInternalCodeChanged()
     * @method \string remindActualInternalCode()
     * @method \string requireInternalCode()
     * @method \Bitrix\Bizproc\EO_RestActivity resetInternalCode()
     * @method \Bitrix\Bizproc\EO_RestActivity unsetInternalCode()
     * @method \string fillInternalCode()
     * @method \string getHandler()
     * @method \Bitrix\Bizproc\EO_RestActivity setHandler(\string|\Bitrix\Main\DB\SqlExpression $handler)
     * @method bool hasHandler()
     * @method bool isHandlerFilled()
     * @method bool isHandlerChanged()
     * @method \string remindActualHandler()
     * @method \string requireHandler()
     * @method \Bitrix\Bizproc\EO_RestActivity resetHandler()
     * @method \Bitrix\Bizproc\EO_RestActivity unsetHandler()
     * @method \string fillHandler()
     * @method \int getAuthUserId()
     * @method \Bitrix\Bizproc\EO_RestActivity setAuthUserId(\int|\Bitrix\Main\DB\SqlExpression $authUserId)
     * @method bool hasAuthUserId()
     * @method bool isAuthUserIdFilled()
     * @method bool isAuthUserIdChanged()
     * @method \int remindActualAuthUserId()
     * @method \int requireAuthUserId()
     * @method \Bitrix\Bizproc\EO_RestActivity resetAuthUserId()
     * @method \Bitrix\Bizproc\EO_RestActivity unsetAuthUserId()
     * @method \int fillAuthUserId()
     * @method \string getUseSubscription()
     * @method \Bitrix\Bizproc\EO_RestActivity setUseSubscription(\string|\Bitrix\Main\DB\SqlExpression $useSubscription)
     * @method bool hasUseSubscription()
     * @method bool isUseSubscriptionFilled()
     * @method bool isUseSubscriptionChanged()
     * @method \string remindActualUseSubscription()
     * @method \string requireUseSubscription()
     * @method \Bitrix\Bizproc\EO_RestActivity resetUseSubscription()
     * @method \Bitrix\Bizproc\EO_RestActivity unsetUseSubscription()
     * @method \string fillUseSubscription()
     * @method \boolean getUsePlacement()
     * @method \Bitrix\Bizproc\EO_RestActivity setUsePlacement(\boolean|\Bitrix\Main\DB\SqlExpression $usePlacement)
     * @method bool hasUsePlacement()
     * @method bool isUsePlacementFilled()
     * @method bool isUsePlacementChanged()
     * @method \boolean remindActualUsePlacement()
     * @method \boolean requireUsePlacement()
     * @method \Bitrix\Bizproc\EO_RestActivity resetUsePlacement()
     * @method \Bitrix\Bizproc\EO_RestActivity unsetUsePlacement()
     * @method \boolean fillUsePlacement()
     * @method \string getName()
     * @method \Bitrix\Bizproc\EO_RestActivity setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Bizproc\EO_RestActivity resetName()
     * @method \Bitrix\Bizproc\EO_RestActivity unsetName()
     * @method \string fillName()
     * @method \string getDescription()
     * @method \Bitrix\Bizproc\EO_RestActivity setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Bizproc\EO_RestActivity resetDescription()
     * @method \Bitrix\Bizproc\EO_RestActivity unsetDescription()
     * @method \string fillDescription()
     * @method \string getProperties()
     * @method \Bitrix\Bizproc\EO_RestActivity setProperties(\string|\Bitrix\Main\DB\SqlExpression $properties)
     * @method bool hasProperties()
     * @method bool isPropertiesFilled()
     * @method bool isPropertiesChanged()
     * @method \string remindActualProperties()
     * @method \string requireProperties()
     * @method \Bitrix\Bizproc\EO_RestActivity resetProperties()
     * @method \Bitrix\Bizproc\EO_RestActivity unsetProperties()
     * @method \string fillProperties()
     * @method \string getReturnProperties()
     * @method \Bitrix\Bizproc\EO_RestActivity setReturnProperties(\string|\Bitrix\Main\DB\SqlExpression $returnProperties)
     * @method bool hasReturnProperties()
     * @method bool isReturnPropertiesFilled()
     * @method bool isReturnPropertiesChanged()
     * @method \string remindActualReturnProperties()
     * @method \string requireReturnProperties()
     * @method \Bitrix\Bizproc\EO_RestActivity resetReturnProperties()
     * @method \Bitrix\Bizproc\EO_RestActivity unsetReturnProperties()
     * @method \string fillReturnProperties()
     * @method \string getDocumentType()
     * @method \Bitrix\Bizproc\EO_RestActivity setDocumentType(\string|\Bitrix\Main\DB\SqlExpression $documentType)
     * @method bool hasDocumentType()
     * @method bool isDocumentTypeFilled()
     * @method bool isDocumentTypeChanged()
     * @method \string remindActualDocumentType()
     * @method \string requireDocumentType()
     * @method \Bitrix\Bizproc\EO_RestActivity resetDocumentType()
     * @method \Bitrix\Bizproc\EO_RestActivity unsetDocumentType()
     * @method \string fillDocumentType()
     * @method \string getFilter()
     * @method \Bitrix\Bizproc\EO_RestActivity setFilter(\string|\Bitrix\Main\DB\SqlExpression $filter)
     * @method bool hasFilter()
     * @method bool isFilterFilled()
     * @method bool isFilterChanged()
     * @method \string remindActualFilter()
     * @method \string requireFilter()
     * @method \Bitrix\Bizproc\EO_RestActivity resetFilter()
     * @method \Bitrix\Bizproc\EO_RestActivity unsetFilter()
     * @method \string fillFilter()
     * @method \boolean getIsRobot()
     * @method \Bitrix\Bizproc\EO_RestActivity setIsRobot(\boolean|\Bitrix\Main\DB\SqlExpression $isRobot)
     * @method bool hasIsRobot()
     * @method bool isIsRobotFilled()
     * @method bool isIsRobotChanged()
     * @method \boolean remindActualIsRobot()
     * @method \boolean requireIsRobot()
     * @method \Bitrix\Bizproc\EO_RestActivity resetIsRobot()
     * @method \Bitrix\Bizproc\EO_RestActivity unsetIsRobot()
     * @method \boolean fillIsRobot()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Bizproc\EO_RestActivity set($fieldName, $value)
     * @method \Bitrix\Bizproc\EO_RestActivity reset($fieldName)
     * @method \Bitrix\Bizproc\EO_RestActivity unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Bizproc\EO_RestActivity wakeUp($data)
     */
    class EO_RestActivity
    {
        /* @var \Bitrix\Bizproc\RestActivityTable */
        public static $dataClass = '\\Bitrix\\Bizproc\\RestActivityTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_RestActivity_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getAppIdList()
     * @method \string[] fillAppId()
     * @method \string[] getAppNameList()
     * @method \string[] fillAppName()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \string[] getInternalCodeList()
     * @method \string[] fillInternalCode()
     * @method \string[] getHandlerList()
     * @method \string[] fillHandler()
     * @method \int[] getAuthUserIdList()
     * @method \int[] fillAuthUserId()
     * @method \string[] getUseSubscriptionList()
     * @method \string[] fillUseSubscription()
     * @method \boolean[] getUsePlacementList()
     * @method \boolean[] fillUsePlacement()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getPropertiesList()
     * @method \string[] fillProperties()
     * @method \string[] getReturnPropertiesList()
     * @method \string[] fillReturnProperties()
     * @method \string[] getDocumentTypeList()
     * @method \string[] fillDocumentType()
     * @method \string[] getFilterList()
     * @method \string[] fillFilter()
     * @method \boolean[] getIsRobotList()
     * @method \boolean[] fillIsRobot()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Bizproc\EO_RestActivity $object)
     * @method bool has(\Bitrix\Bizproc\EO_RestActivity $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Bizproc\EO_RestActivity getByPrimary($primary)
     * @method \Bitrix\Bizproc\EO_RestActivity[] getAll()
     * @method bool remove(\Bitrix\Bizproc\EO_RestActivity $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Bizproc\EO_RestActivity_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Bizproc\EO_RestActivity current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_RestActivity_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Bizproc\RestActivityTable */
        public static $dataClass = '\\Bitrix\\Bizproc\\RestActivityTable';
    }
    /**
     * @method static EO_RestActivity_Query query()
     * @method static EO_RestActivity_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_RestActivity_Result getById($id)
     * @method static EO_RestActivity_Result getList(array $parameters = array())
     * @method static EO_RestActivity_Entity getEntity()
     * @method static \Bitrix\Bizproc\EO_RestActivity createObject($setDefaultValues = true)
     * @method static \Bitrix\Bizproc\EO_RestActivity_Collection createCollection()
     * @method static \Bitrix\Bizproc\EO_RestActivity wakeUpObject($row)
     * @method static \Bitrix\Bizproc\EO_RestActivity_Collection wakeUpCollection($rows)
     */
    class RestActivityTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_RestActivity_Result exec()
     * @method \Bitrix\Bizproc\EO_RestActivity fetchObject()
     * @method \Bitrix\Bizproc\EO_RestActivity_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_RestActivity_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Bizproc\EO_RestActivity fetchObject()
     * @method \Bitrix\Bizproc\EO_RestActivity_Collection fetchCollection()
     */
    class EO_RestActivity_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Bizproc\EO_RestActivity createObject($setDefaultValues = true)
     * @method \Bitrix\Bizproc\EO_RestActivity_Collection createCollection()
     * @method \Bitrix\Bizproc\EO_RestActivity wakeUpObject($row)
     * @method \Bitrix\Bizproc\EO_RestActivity_Collection wakeUpCollection($rows)
     */
    class EO_RestActivity_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_RestProvider
     * @see \Bitrix\Bizproc\RestProviderTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Bizproc\EO_RestProvider setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getAppId()
     * @method \Bitrix\Bizproc\EO_RestProvider setAppId(\string|\Bitrix\Main\DB\SqlExpression $appId)
     * @method bool hasAppId()
     * @method bool isAppIdFilled()
     * @method bool isAppIdChanged()
     * @method \string remindActualAppId()
     * @method \string requireAppId()
     * @method \Bitrix\Bizproc\EO_RestProvider resetAppId()
     * @method \Bitrix\Bizproc\EO_RestProvider unsetAppId()
     * @method \string fillAppId()
     * @method \string getAppName()
     * @method \Bitrix\Bizproc\EO_RestProvider setAppName(\string|\Bitrix\Main\DB\SqlExpression $appName)
     * @method bool hasAppName()
     * @method bool isAppNameFilled()
     * @method bool isAppNameChanged()
     * @method \string remindActualAppName()
     * @method \string requireAppName()
     * @method \Bitrix\Bizproc\EO_RestProvider resetAppName()
     * @method \Bitrix\Bizproc\EO_RestProvider unsetAppName()
     * @method \string fillAppName()
     * @method \string getCode()
     * @method \Bitrix\Bizproc\EO_RestProvider setCode(\string|\Bitrix\Main\DB\SqlExpression $code)
     * @method bool hasCode()
     * @method bool isCodeFilled()
     * @method bool isCodeChanged()
     * @method \string remindActualCode()
     * @method \string requireCode()
     * @method \Bitrix\Bizproc\EO_RestProvider resetCode()
     * @method \Bitrix\Bizproc\EO_RestProvider unsetCode()
     * @method \string fillCode()
     * @method \string getType()
     * @method \Bitrix\Bizproc\EO_RestProvider setType(\string|\Bitrix\Main\DB\SqlExpression $type)
     * @method bool hasType()
     * @method bool isTypeFilled()
     * @method bool isTypeChanged()
     * @method \string remindActualType()
     * @method \string requireType()
     * @method \Bitrix\Bizproc\EO_RestProvider resetType()
     * @method \Bitrix\Bizproc\EO_RestProvider unsetType()
     * @method \string fillType()
     * @method \string getHandler()
     * @method \Bitrix\Bizproc\EO_RestProvider setHandler(\string|\Bitrix\Main\DB\SqlExpression $handler)
     * @method bool hasHandler()
     * @method bool isHandlerFilled()
     * @method bool isHandlerChanged()
     * @method \string remindActualHandler()
     * @method \string requireHandler()
     * @method \Bitrix\Bizproc\EO_RestProvider resetHandler()
     * @method \Bitrix\Bizproc\EO_RestProvider unsetHandler()
     * @method \string fillHandler()
     * @method \string getName()
     * @method \Bitrix\Bizproc\EO_RestProvider setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Bizproc\EO_RestProvider resetName()
     * @method \Bitrix\Bizproc\EO_RestProvider unsetName()
     * @method \string fillName()
     * @method \string getDescription()
     * @method \Bitrix\Bizproc\EO_RestProvider setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Bizproc\EO_RestProvider resetDescription()
     * @method \Bitrix\Bizproc\EO_RestProvider unsetDescription()
     * @method \string fillDescription()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Bizproc\EO_RestProvider set($fieldName, $value)
     * @method \Bitrix\Bizproc\EO_RestProvider reset($fieldName)
     * @method \Bitrix\Bizproc\EO_RestProvider unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Bizproc\EO_RestProvider wakeUp($data)
     */
    class EO_RestProvider
    {
        /* @var \Bitrix\Bizproc\RestProviderTable */
        public static $dataClass = '\\Bitrix\\Bizproc\\RestProviderTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_RestProvider_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getAppIdList()
     * @method \string[] fillAppId()
     * @method \string[] getAppNameList()
     * @method \string[] fillAppName()
     * @method \string[] getCodeList()
     * @method \string[] fillCode()
     * @method \string[] getTypeList()
     * @method \string[] fillType()
     * @method \string[] getHandlerList()
     * @method \string[] fillHandler()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Bizproc\EO_RestProvider $object)
     * @method bool has(\Bitrix\Bizproc\EO_RestProvider $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Bizproc\EO_RestProvider getByPrimary($primary)
     * @method \Bitrix\Bizproc\EO_RestProvider[] getAll()
     * @method bool remove(\Bitrix\Bizproc\EO_RestProvider $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Bizproc\EO_RestProvider_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Bizproc\EO_RestProvider current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_RestProvider_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Bizproc\RestProviderTable */
        public static $dataClass = '\\Bitrix\\Bizproc\\RestProviderTable';
    }
    /**
     * @method static EO_RestProvider_Query query()
     * @method static EO_RestProvider_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_RestProvider_Result getById($id)
     * @method static EO_RestProvider_Result getList(array $parameters = array())
     * @method static EO_RestProvider_Entity getEntity()
     * @method static \Bitrix\Bizproc\EO_RestProvider createObject($setDefaultValues = true)
     * @method static \Bitrix\Bizproc\EO_RestProvider_Collection createCollection()
     * @method static \Bitrix\Bizproc\EO_RestProvider wakeUpObject($row)
     * @method static \Bitrix\Bizproc\EO_RestProvider_Collection wakeUpCollection($rows)
     */
    class RestProviderTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_RestProvider_Result exec()
     * @method \Bitrix\Bizproc\EO_RestProvider fetchObject()
     * @method \Bitrix\Bizproc\EO_RestProvider_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_RestProvider_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Bizproc\EO_RestProvider fetchObject()
     * @method \Bitrix\Bizproc\EO_RestProvider_Collection fetchCollection()
     */
    class EO_RestProvider_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Bizproc\EO_RestProvider createObject($setDefaultValues = true)
     * @method \Bitrix\Bizproc\EO_RestProvider_Collection createCollection()
     * @method \Bitrix\Bizproc\EO_RestProvider wakeUpObject($row)
     * @method \Bitrix\Bizproc\EO_RestProvider_Collection wakeUpCollection($rows)
     */
    class EO_RestProvider_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
    /**
     * EO_SchedulerEvent
     * @see \Bitrix\Bizproc\SchedulerEventTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \int getId()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent setId(\int|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getWorkflowId()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent setWorkflowId(\string|\Bitrix\Main\DB\SqlExpression $workflowId)
     * @method bool hasWorkflowId()
     * @method bool isWorkflowIdFilled()
     * @method bool isWorkflowIdChanged()
     * @method \string remindActualWorkflowId()
     * @method \string requireWorkflowId()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent resetWorkflowId()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent unsetWorkflowId()
     * @method \string fillWorkflowId()
     * @method \string getHandler()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent setHandler(\string|\Bitrix\Main\DB\SqlExpression $handler)
     * @method bool hasHandler()
     * @method bool isHandlerFilled()
     * @method bool isHandlerChanged()
     * @method \string remindActualHandler()
     * @method \string requireHandler()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent resetHandler()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent unsetHandler()
     * @method \string fillHandler()
     * @method \string getEventModule()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent setEventModule(\string|\Bitrix\Main\DB\SqlExpression $eventModule)
     * @method bool hasEventModule()
     * @method bool isEventModuleFilled()
     * @method bool isEventModuleChanged()
     * @method \string remindActualEventModule()
     * @method \string requireEventModule()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent resetEventModule()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent unsetEventModule()
     * @method \string fillEventModule()
     * @method \string getEventType()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent setEventType(\string|\Bitrix\Main\DB\SqlExpression $eventType)
     * @method bool hasEventType()
     * @method bool isEventTypeFilled()
     * @method bool isEventTypeChanged()
     * @method \string remindActualEventType()
     * @method \string requireEventType()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent resetEventType()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent unsetEventType()
     * @method \string fillEventType()
     * @method \string getEntityId()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent setEntityId(\string|\Bitrix\Main\DB\SqlExpression $entityId)
     * @method bool hasEntityId()
     * @method bool isEntityIdFilled()
     * @method bool isEntityIdChanged()
     * @method \string remindActualEntityId()
     * @method \string requireEntityId()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent resetEntityId()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent unsetEntityId()
     * @method \string fillEntityId()
     * @method \string getEventParameters()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent setEventParameters(\string|\Bitrix\Main\DB\SqlExpression $eventParameters)
     * @method bool hasEventParameters()
     * @method bool isEventParametersFilled()
     * @method bool isEventParametersChanged()
     * @method \string remindActualEventParameters()
     * @method \string requireEventParameters()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent resetEventParameters()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent unsetEventParameters()
     * @method \string fillEventParameters()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Bizproc\EO_SchedulerEvent set($fieldName, $value)
     * @method \Bitrix\Bizproc\EO_SchedulerEvent reset($fieldName)
     * @method \Bitrix\Bizproc\EO_SchedulerEvent unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Bizproc\EO_SchedulerEvent wakeUp($data)
     */
    class EO_SchedulerEvent
    {
        /* @var \Bitrix\Bizproc\SchedulerEventTable */
        public static $dataClass = '\\Bitrix\\Bizproc\\SchedulerEventTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_SchedulerEvent_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \int[] getIdList()
     * @method \string[] getWorkflowIdList()
     * @method \string[] fillWorkflowId()
     * @method \string[] getHandlerList()
     * @method \string[] fillHandler()
     * @method \string[] getEventModuleList()
     * @method \string[] fillEventModule()
     * @method \string[] getEventTypeList()
     * @method \string[] fillEventType()
     * @method \string[] getEntityIdList()
     * @method \string[] fillEntityId()
     * @method \string[] getEventParametersList()
     * @method \string[] fillEventParameters()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Bizproc\EO_SchedulerEvent $object)
     * @method bool has(\Bitrix\Bizproc\EO_SchedulerEvent $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Bizproc\EO_SchedulerEvent getByPrimary($primary)
     * @method \Bitrix\Bizproc\EO_SchedulerEvent[] getAll()
     * @method bool remove(\Bitrix\Bizproc\EO_SchedulerEvent $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Bizproc\EO_SchedulerEvent_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Bizproc\EO_SchedulerEvent current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_SchedulerEvent_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Bizproc\SchedulerEventTable */
        public static $dataClass = '\\Bitrix\\Bizproc\\SchedulerEventTable';
    }
    /**
     * @method static EO_SchedulerEvent_Query query()
     * @method static EO_SchedulerEvent_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_SchedulerEvent_Result getById($id)
     * @method static EO_SchedulerEvent_Result getList(array $parameters = array())
     * @method static EO_SchedulerEvent_Entity getEntity()
     * @method static \Bitrix\Bizproc\EO_SchedulerEvent createObject($setDefaultValues = true)
     * @method static \Bitrix\Bizproc\EO_SchedulerEvent_Collection createCollection()
     * @method static \Bitrix\Bizproc\EO_SchedulerEvent wakeUpObject($row)
     * @method static \Bitrix\Bizproc\EO_SchedulerEvent_Collection wakeUpCollection($rows)
     */
    class SchedulerEventTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_SchedulerEvent_Result exec()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent fetchObject()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_SchedulerEvent_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Bizproc\EO_SchedulerEvent fetchObject()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent_Collection fetchCollection()
     */
    class EO_SchedulerEvent_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Bizproc\EO_SchedulerEvent createObject($setDefaultValues = true)
     * @method \Bitrix\Bizproc\EO_SchedulerEvent_Collection createCollection()
     * @method \Bitrix\Bizproc\EO_SchedulerEvent wakeUpObject($row)
     * @method \Bitrix\Bizproc\EO_SchedulerEvent_Collection wakeUpCollection($rows)
     */
    class EO_SchedulerEvent_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Bizproc\Workflow\Type\Entity {
    /**
     * EO_GlobalConst
     * @see \Bitrix\Bizproc\Workflow\Type\Entity\GlobalConstTable
     *
     * Custom methods:
     * ---------------
     *
     * @method \string getId()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst setId(\string|\Bitrix\Main\DB\SqlExpression $id)
     * @method bool hasId()
     * @method bool isIdFilled()
     * @method bool isIdChanged()
     * @method \string getName()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst setName(\string|\Bitrix\Main\DB\SqlExpression $name)
     * @method bool hasName()
     * @method bool isNameFilled()
     * @method bool isNameChanged()
     * @method \string remindActualName()
     * @method \string requireName()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst resetName()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst unsetName()
     * @method \string fillName()
     * @method \string getDescription()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst setDescription(\string|\Bitrix\Main\DB\SqlExpression $description)
     * @method bool hasDescription()
     * @method bool isDescriptionFilled()
     * @method bool isDescriptionChanged()
     * @method \string remindActualDescription()
     * @method \string requireDescription()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst resetDescription()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst unsetDescription()
     * @method \string fillDescription()
     * @method \string getPropertyType()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst setPropertyType(\string|\Bitrix\Main\DB\SqlExpression $propertyType)
     * @method bool hasPropertyType()
     * @method bool isPropertyTypeFilled()
     * @method bool isPropertyTypeChanged()
     * @method \string remindActualPropertyType()
     * @method \string requirePropertyType()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst resetPropertyType()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst unsetPropertyType()
     * @method \string fillPropertyType()
     * @method \boolean getIsRequired()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst setIsRequired(\boolean|\Bitrix\Main\DB\SqlExpression $isRequired)
     * @method bool hasIsRequired()
     * @method bool isIsRequiredFilled()
     * @method bool isIsRequiredChanged()
     * @method \boolean remindActualIsRequired()
     * @method \boolean requireIsRequired()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst resetIsRequired()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst unsetIsRequired()
     * @method \boolean fillIsRequired()
     * @method \boolean getIsMultiple()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst setIsMultiple(\boolean|\Bitrix\Main\DB\SqlExpression $isMultiple)
     * @method bool hasIsMultiple()
     * @method bool isIsMultipleFilled()
     * @method bool isIsMultipleChanged()
     * @method \boolean remindActualIsMultiple()
     * @method \boolean requireIsMultiple()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst resetIsMultiple()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst unsetIsMultiple()
     * @method \boolean fillIsMultiple()
     * @method \string getPropertyOptions()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst setPropertyOptions(\string|\Bitrix\Main\DB\SqlExpression $propertyOptions)
     * @method bool hasPropertyOptions()
     * @method bool isPropertyOptionsFilled()
     * @method bool isPropertyOptionsChanged()
     * @method \string remindActualPropertyOptions()
     * @method \string requirePropertyOptions()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst resetPropertyOptions()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst unsetPropertyOptions()
     * @method \string fillPropertyOptions()
     * @method \string getPropertySettings()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst setPropertySettings(\string|\Bitrix\Main\DB\SqlExpression $propertySettings)
     * @method bool hasPropertySettings()
     * @method bool isPropertySettingsFilled()
     * @method bool isPropertySettingsChanged()
     * @method \string remindActualPropertySettings()
     * @method \string requirePropertySettings()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst resetPropertySettings()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst unsetPropertySettings()
     * @method \string fillPropertySettings()
     * @method \string getPropertyValue()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst setPropertyValue(\string|\Bitrix\Main\DB\SqlExpression $propertyValue)
     * @method bool hasPropertyValue()
     * @method bool isPropertyValueFilled()
     * @method bool isPropertyValueChanged()
     * @method \string remindActualPropertyValue()
     * @method \string requirePropertyValue()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst resetPropertyValue()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst unsetPropertyValue()
     * @method \string fillPropertyValue()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @property-read array $primary
     * @property-read int $state @see \Bitrix\Main\ORM\Objectify\State
     * @property-read \Bitrix\Main\Type\Dictionary $customData
     * @property \Bitrix\Main\Authentication\Context $authContext
     * @method mixed get($fieldName)
     * @method mixed remindActual($fieldName)
     * @method mixed require($fieldName)
     * @method bool has($fieldName)
     * @method bool isFilled($fieldName)
     * @method bool isChanged($fieldName)
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst set($fieldName, $value)
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst reset($fieldName)
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst unset($fieldName)
     * @method void addTo($fieldName, $value)
     * @method void removeFrom($fieldName, $value)
     * @method void removeAll($fieldName)
     * @method \Bitrix\Main\ORM\Data\Result delete()
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method mixed[] collectValues($valuesType = \Bitrix\Main\ORM\Objectify\Values::ALL, $fieldsMask = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL)
     * @method \Bitrix\Main\ORM\Data\AddResult|\Bitrix\Main\ORM\Data\UpdateResult|\Bitrix\Main\ORM\Data\Result save()
     * @method static \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst wakeUp($data)
     */
    class EO_GlobalConst
    {
        /* @var \Bitrix\Bizproc\Workflow\Type\Entity\GlobalConstTable */
        public static $dataClass = '\\Bitrix\\Bizproc\\Workflow\\Type\\Entity\\GlobalConstTable';
        /**
         * @param bool|array $setDefaultValues
         */
        public function __construct($setDefaultValues = true)
        {
        }
    }
    /**
     * EO_GlobalConst_Collection
     *
     * Custom methods:
     * ---------------
     *
     * @method \string[] getIdList()
     * @method \string[] getNameList()
     * @method \string[] fillName()
     * @method \string[] getDescriptionList()
     * @method \string[] fillDescription()
     * @method \string[] getPropertyTypeList()
     * @method \string[] fillPropertyType()
     * @method \boolean[] getIsRequiredList()
     * @method \boolean[] fillIsRequired()
     * @method \boolean[] getIsMultipleList()
     * @method \boolean[] fillIsMultiple()
     * @method \string[] getPropertyOptionsList()
     * @method \string[] fillPropertyOptions()
     * @method \string[] getPropertySettingsList()
     * @method \string[] fillPropertySettings()
     * @method \string[] getPropertyValueList()
     * @method \string[] fillPropertyValue()
     *
     * Common methods:
     * ---------------
     *
     * @property-read \Bitrix\Main\ORM\Entity $entity
     * @method void add(\Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst $object)
     * @method bool has(\Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst $object)
     * @method bool hasByPrimary($primary)
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst getByPrimary($primary)
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst[] getAll()
     * @method bool remove(\Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst $object)
     * @method void removeByPrimary($primary)
     * @method void fill($fields = \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL) flag or array of field names
     * @method static \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst_Collection wakeUp($data)
     * @method \Bitrix\Main\ORM\Data\Result save($ignoreEvents = false)
     * @method void offsetSet() ArrayAccess
     * @method void offsetExists() ArrayAccess
     * @method void offsetUnset() ArrayAccess
     * @method void offsetGet() ArrayAccess
     * @method void rewind() Iterator
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst current() Iterator
     * @method mixed key() Iterator
     * @method void next() Iterator
     * @method bool valid() Iterator
     * @method int count() Countable
     */
    class EO_GlobalConst_Collection implements \ArrayAccess, \Iterator, \Countable
    {
        /* @var \Bitrix\Bizproc\Workflow\Type\Entity\GlobalConstTable */
        public static $dataClass = '\\Bitrix\\Bizproc\\Workflow\\Type\\Entity\\GlobalConstTable';
    }
    /**
     * @method static EO_GlobalConst_Query query()
     * @method static EO_GlobalConst_Result getByPrimary($primary, array $parameters = array())
     * @method static EO_GlobalConst_Result getById($id)
     * @method static EO_GlobalConst_Result getList(array $parameters = array())
     * @method static EO_GlobalConst_Entity getEntity()
     * @method static \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst createObject($setDefaultValues = true)
     * @method static \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst_Collection createCollection()
     * @method static \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst wakeUpObject($row)
     * @method static \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst_Collection wakeUpCollection($rows)
     */
    class GlobalConstTable extends \Bitrix\Main\ORM\Data\DataManager
    {
    }
    /**
     * Common methods:
     * ---------------
     *
     * @method EO_GlobalConst_Result exec()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst fetchObject()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst_Collection fetchCollection()
     *
     * Custom methods:
     * ---------------
     *
     */
    class EO_GlobalConst_Query extends \Bitrix\Main\ORM\Query\Query
    {
    }
    /**
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst fetchObject()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst_Collection fetchCollection()
     */
    class EO_GlobalConst_Result extends \Bitrix\Main\ORM\Query\Result
    {
    }
    /**
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst createObject($setDefaultValues = true)
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst_Collection createCollection()
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst wakeUpObject($row)
     * @method \Bitrix\Bizproc\Workflow\Type\Entity\EO_GlobalConst_Collection wakeUpCollection($rows)
     */
    class EO_GlobalConst_Entity extends \Bitrix\Main\ORM\Entity
    {
    }
}
namespace Bitrix\Bizproc\Activity {
    class PropertiesDialog
    {
        protected $activityFile;
        protected $dialogFileName = 'properties_dialog.php';
        protected $map;
        protected $mapCallback;
        protected $documentType;
        protected $activityName;
        protected $workflowTemplate;
        protected $workflowParameters;
        protected $workflowVariables;
        protected $currentValues;
        protected $formName;
        protected $siteId;
        protected $renderer;
        protected $context;
        /** @var array */
        protected $runtimeData = array();
        public function __construct($activityFile, array $data = null)
        {
        }
        public function getActivityFile() : string
        {
        }
        public function setActivityFile(string $file) : self
        {
        }
        /**
         * @return mixed
         */
        public function getDocumentType()
        {
        }
        /**
         * @param mixed $documentType
         * @return $this
         */
        public function setDocumentType(array $documentType)
        {
        }
        /**
         * @param string $activityName
         * @return PropertiesDialog
         */
        public function setActivityName($activityName)
        {
        }
        /**
         * @return mixed
         */
        public function getActivityName()
        {
        }
        /**
         * @param array $workflowTemplate
         * @return PropertiesDialog
         */
        public function setWorkflowTemplate(array $workflowTemplate)
        {
        }
        /**
         * @return mixed
         */
        public function getWorkflowTemplate()
        {
        }
        /**
         * @param array $workflowParameters
         * @return $this
         */
        public function setWorkflowParameters(array $workflowParameters)
        {
        }
        /**
         * @return mixed
         */
        public function getWorkflowParameters()
        {
        }
        /**
         * @param array $workflowVariables
         * @return $this
         */
        public function setWorkflowVariables(array $workflowVariables)
        {
        }
        /**
         * @return mixed
         */
        public function getWorkflowVariables()
        {
        }
        /**
         * @param bool $compatible
         * @return array
         */
        public function getCurrentValues($compatible = false)
        {
        }
        /**
         * @param $valueKey
         * @param null $default Optional default value.
         * @return mixed
         */
        public function getCurrentValue($valueKey, $default = null)
        {
        }
        /**
         * @param mixed $currentValues
         * @return $this
         */
        public function setCurrentValues($currentValues)
        {
        }
        /**
         * @return mixed
         */
        public function getFormName()
        {
        }
        /**
         * @param string $formName
         * @return $this
         */
        public function setFormName($formName)
        {
        }
        /**
         * @return mixed
         */
        public function getSiteId()
        {
        }
        /**
         * @param mixed $siteId
         */
        public function setSiteId($siteId)
        {
        }
        /**
         * @param array $map
         * @return $this
         */
        public function setMap(array $map)
        {
        }
        /**
         * @param callable $callback
         * @return $this
         * @throws ArgumentException
         */
        public function setMapCallback($callback)
        {
        }
        /**
         * @return array
         */
        public function getMap()
        {
        }
        /**
         * @param array $field
         * @return null|FieldType
         */
        public function getFieldTypeObject(array $field)
        {
        }
        public function renderFieldControl($field, $value = null, $allowSelection = true, $renderMode = \Bitrix\Bizproc\FieldType::RENDER_MODE_PUBLIC)
        {
        }
        public function setRenderer($callable)
        {
        }
        public function __toString()
        {
        }
        /**
         * @param array $context Context data.
         * @return PropertiesDialog
         */
        public function setContext(array $context)
        {
        }
        /**
         * @return array Context data.
         */
        public function getContext()
        {
        }
        /**
         * @param string $dialogFileName
         * @return PropertiesDialog
         */
        public function setDialogFileName($dialogFileName)
        {
        }
        /**
         * @return string
         */
        public function getDialogFileName()
        {
        }
        /**
         * Get runtime data
         * @return array
         */
        public function getRuntimeData()
        {
        }
        /**
         * Set runtime data
         * @param array $runtimeData
         * @return PropertiesDialog
         */
        public function setRuntimeData(array $runtimeData)
        {
        }
    }
    class Condition
    {
        protected $operator;
        protected $value;
        public function __construct(array $params = null)
        {
        }
        /**
         * @param string $operator Operator like `=`, `<`, `>` etc.
         * @return Condition
         */
        public function setOperator($operator)
        {
        }
        /**
         * @return string
         */
        public function getOperator()
        {
        }
        /**
         * @param mixed $value Target condition value.
         * @return Condition
         */
        public function setValue($value)
        {
        }
        /**
         * @return mixed
         */
        public function getValue()
        {
        }
        /**
         * @param mixed $valueToCheck The field value to check.
         * @param FieldType $fieldType
         * @param array $documentId Document Id.
         * @return bool
         */
        public function checkValue($valueToCheck, \Bitrix\Bizproc\FieldType $fieldType, array $documentId)
        {
        }
        private function checkInOperation($toCheck, $base, $baseType) : bool
        {
        }
        private function checkContainOperation($toCheck, $base, $baseType) : bool
        {
        }
        /**
         * @return array Array presentation of condition.
         */
        public function toArray()
        {
        }
        public static function getOperatorList() : array
        {
        }
    }
}
namespace Bitrix\Bizproc\Integration\Rest {
    class AppConfiguration
    {
        const ENTITY_BIZPROC_MAIN = 'BIZPROC_MAIN';
        const ENTITY_BIZPROC_CRM_TRIGGER = 'BIZPROC_CRM_TRIGGER';
        const OWNER_ENTITY_TYPE_BIZPROC = 'BIZPROC';
        const OWNER_ENTITY_TYPE_TRIGGER = 'TRIGGER';
        private static $entityList = [self::ENTITY_BIZPROC_MAIN => 500, self::ENTITY_BIZPROC_CRM_TRIGGER => 600];
        private static $customDealMatch = '/^C([0-9]+):/';
        private static $accessModules = ['crm'];
        private static $context;
        private static $accessManifest = ['total', 'bizproc_crm'];
        public static function getEntityList()
        {
        }
        public static function onEventExportController(\Bitrix\Main\Event $event)
        {
        }
        public static function onEventClearController(\Bitrix\Main\Event $event)
        {
        }
        public static function onEventImportController(\Bitrix\Main\Event $event)
        {
        }
        /**
         * @param $type string of event
         * @throws SystemException
         * @return boolean
         */
        private static function checkRequiredParams($type)
        {
        }
        //region bizproc
        private static function exportBizproc($step)
        {
        }
        private static function clearBizproc($option)
        {
        }
        private static function importBizproc($importData)
        {
        }
        //end region bizproc
        //region trigger
        private static function exportCrmTrigger($step)
        {
        }
        private static function clearCrmTrigger($option)
        {
        }
        private static function importCrmTrigger($importData)
        {
        }
        //end region trigger
        private static function changeDealCategory($data, $ratio)
        {
        }
        private static function changeDealCategoryAction($data, $ratioRegEx, $ratioReplace, $ratio)
        {
        }
    }
}
namespace Bitrix\Bizproc\BaseType {
    /**
     * Class Date
     * @package Bitrix\Bizproc\BaseType
     */
    class Date extends \Bitrix\Bizproc\BaseType\Base
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * Normalize single value.
         *
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @return mixed Normalized value
         */
        public static function toSingleValue(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $toTypeClass Type class name.
         * @return null|mixed
         */
        public static function convertTo(\Bitrix\Bizproc\FieldType $fieldType, $value, $toTypeClass)
        {
        }
        /**
         * Return conversion map for current type.
         * @return array Map.
         */
        public static function getConversionMap()
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param mixed $value
         * @param bool $allowSelection
         * @param int $renderMode
         * @return string
         */
        protected static function renderControl(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        public static function renderControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param int $renderMode Control render mode.
         * @return bool
         */
        public static function canRenderControl($renderMode)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param array $request
         * @return null|string|Type\Date
         */
        protected static function extractValue(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        private static function extractOffset(array $field, array $request)
        {
        }
        /**
         * Get formats list.
         * @return array
         */
        public static function getFormats()
        {
        }
        /**
         * @param FieldType $fieldType
         * @param $value
         * @return string
         */
        protected static function formatValueServer(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param $value
         * @return string
         */
        protected static function formatValueAuthor(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        public static function internalizeValue(\Bitrix\Bizproc\FieldType $fieldType, $context, $value)
        {
        }
        public static function externalizeValue(\Bitrix\Bizproc\FieldType $fieldType, $context, $value)
        {
        }
        private static function getZones()
        {
        }
    }
    /**
     * Class Datetime
     * @package Bitrix\Bizproc\BaseType
     */
    class Datetime extends \Bitrix\Bizproc\BaseType\Date
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
    }
    /**
     * Class Double
     * @package Bitrix\Bizproc\BaseType
     */
    class Double extends \Bitrix\Bizproc\BaseType\Base
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * Normalize single value.
         *
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @return mixed Normalized value
         */
        public static function toSingleValue(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $toTypeClass Type class name.
         * @return null|mixed
         */
        public static function convertTo(\Bitrix\Bizproc\FieldType $fieldType, $value, $toTypeClass)
        {
        }
        /**
         * Return conversion map for current type.
         * @return array Map.
         */
        public static function getConversionMap()
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param mixed $value
         * @param bool $allowSelection
         * @param int $renderMode
         * @return string
         */
        protected static function renderControl(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param int $renderMode Control render mode.
         * @return bool
         */
        public static function canRenderControl($renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param array $request
         * @return float|null
         */
        protected static function extractValue(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
    }
    /**
     * Class File
     * @package Bitrix\Bizproc\BaseType
     */
    class File extends \Bitrix\Bizproc\BaseType\Base
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * Get formats list.
         * @return array
         */
        public static function getFormats()
        {
        }
        /**
         * Normalize single value.
         *
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @return mixed Normalized value
         */
        public static function toSingleValue(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param $value
         * @return string
         */
        protected static function formatValuePrintable(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param $value
         * @return string
         */
        protected static function formatValueSrc(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param $value
         * @return string
         */
        protected static function formatValuePublicLink(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param $value
         * @return string
         */
        protected static function formatValueShortLink(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $toTypeClass Type class name.
         * @return null
         */
        public static function convertTo(\Bitrix\Bizproc\FieldType $fieldType, $value, $toTypeClass)
        {
        }
        /**
         * Return conversion map for current type.
         * @return array Map.
         */
        public static function getConversionMap()
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $toTypeClass Type class name.
         * @return array
         */
        public static function convertValueMultiple(\Bitrix\Bizproc\FieldType $fieldType, $value, $toTypeClass)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param mixed $value
         * @param bool $allowSelection
         * @param int $renderMode
         * @return string
         */
        protected static function renderControl(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param mixed $value
         * @param bool $allowSelection
         * @param int $renderMode
         * @return string
         */
        public static function renderControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        private static function renderPublicSelectableControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        private static function renderPublicSelectableControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param array $request
         * @return null|int
         */
        protected static function extractValue(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        public static function externalizeValue(\Bitrix\Bizproc\FieldType $fieldType, $context, $value)
        {
        }
        public static function internalizeValue(\Bitrix\Bizproc\FieldType $fieldType, $context, $value)
        {
        }
    }
}
namespace Bitrix\Bizproc\BaseType\Value {
    class Date
    {
        protected $timestamp;
        protected $offset;
        const SERIALIZED_PATTERN = '#(.+)\\s\\[([0-9\\-]+)\\]#i';
        public function __construct($dateFormatted = null, $offset = 0)
        {
        }
        public function getTimestamp()
        {
        }
        public function getOffset()
        {
        }
        public function __toString()
        {
        }
        public function toSystemObject()
        {
        }
        public function serialize()
        {
        }
        public static function isSerialized($dateString)
        {
        }
        public function getFormat()
        {
        }
        protected function checkYear(\Bitrix\Main\Type\Date $date)
        {
        }
    }
    class DateTime extends \Bitrix\Bizproc\BaseType\Value\Date
    {
        public function __construct($dateFormatted = null, $offset = 0)
        {
        }
        public function toSystemObject()
        {
        }
        public function getFormat()
        {
        }
    }
}
namespace Bitrix\Bizproc\BaseType {
    /**
     * Class Select
     * @package Bitrix\Bizproc\BaseType
     */
    class Select extends \Bitrix\Bizproc\BaseType\Base
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @param FieldType $fieldType
         * @param $value
         * @return string
         */
        protected static function formatValuePrintable(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $toTypeClass Type class name.
         * @return null|mixed
         */
        public static function convertTo(\Bitrix\Bizproc\FieldType $fieldType, $value, $toTypeClass)
        {
        }
        /**
         * Return conversion map for current type.
         * @return array Map.
         */
        public static function getConversionMap()
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param mixed $value
         * @param bool $allowSelection
         * @param int $renderMode
         * @return string
         */
        protected static function renderControl(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param int $renderMode Control render mode.
         * @return bool
         */
        public static function canRenderControl($renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param string $callbackFunctionName Client callback function name.
         * @param mixed $value Field value.
         * @return string
         */
        public static function renderControlOptions(\Bitrix\Bizproc\FieldType $fieldType, $callbackFunctionName, $value)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param array $request
         * @return null|mixed
         */
        protected static function extractValue(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param array $request Request data.
         * @return array
         */
        public static function extractValueMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $format Format name.
         * @return string
         */
        public static function formatValueMultiple(\Bitrix\Bizproc\FieldType $fieldType, $value, $format = 'printable')
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $format Format name.
         * @return mixed|null
         */
        public static function formatValueSingle(\Bitrix\Bizproc\FieldType $fieldType, $value, $format = 'printable')
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $toTypeClass Type class name.
         * @return array
         */
        public static function convertValueMultiple(\Bitrix\Bizproc\FieldType $fieldType, $value, $toTypeClass)
        {
        }
        /**
         * @param FieldType $fieldType
         * @return array
         */
        protected static function getFieldOptions(\Bitrix\Bizproc\FieldType $fieldType)
        {
        }
        /**
         * Get field settings
         * @param FieldType $fieldType
         * @return array
         */
        protected static function getFieldSettings(\Bitrix\Bizproc\FieldType $fieldType)
        {
        }
        /**
         * @param mixed $options
         * @return array
         */
        protected static function normalizeOptions($options)
        {
        }
        public static function externalizeValue(\Bitrix\Bizproc\FieldType $fieldType, $context, $value)
        {
        }
    }
    /**
     * Class InternalSelect
     * @package Bitrix\Iblock\BizprocType
     */
    class InternalSelect extends \Bitrix\Bizproc\BaseType\Select
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param string $callbackFunctionName Client callback function name.
         * @param mixed $value Field value.
         * @return string
         */
        public static function renderControlOptions(\Bitrix\Bizproc\FieldType $fieldType, $callbackFunctionName, $value)
        {
        }
        /**
         * @param FieldType $fieldType
         * @return array
         */
        protected static function getFieldOptions(\Bitrix\Bizproc\FieldType $fieldType)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param bool $ignoreAliases
         * @return array
         */
        private static function getDocumentSelectFields(\Bitrix\Bizproc\FieldType $fieldType, $ignoreAliases = false)
        {
        }
    }
    /**
     * Class User
     * @package Bitrix\Bizproc\BaseType
     */
    class User extends \Bitrix\Bizproc\BaseType\Base
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * Get formats list.
         * @return array
         */
        public static function getFormats()
        {
        }
        /**
         * Normalize single value.
         *
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @return mixed Normalized value
         */
        public static function toSingleValue(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param $value
         * @return string
         */
        protected static function formatValuePrintable(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param $value
         * @return string
         */
        protected static function formatValueFriendly(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $toTypeClass Type class name.
         * @return null|mixed
         */
        public static function convertTo(\Bitrix\Bizproc\FieldType $fieldType, $value, $toTypeClass)
        {
        }
        /**
         * Return conversion map for current type.
         * @return array Map.
         */
        public static function getConversionMap()
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param mixed $value
         * @param bool $allowSelection
         * @param int $renderMode
         * @return string
         */
        protected static function renderControl(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param array $request Request data.
         * @return array|null
         */
        protected static function extractValue(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param array $request Request data.
         * @return null|string
         */
        public static function extractValueSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param array $request Request data.
         * @return array|null
         */
        public static function extractValueMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        public static function externalizeValue(\Bitrix\Bizproc\FieldType $fieldType, $context, $value)
        {
        }
        public static function externalizeValueMultiple(\Bitrix\Bizproc\FieldType $fieldType, $context, $value)
        {
        }
    }
    /**
     * Class Int
     * @package Bitrix\Bizproc\BaseType
     */
    class IntType extends \Bitrix\Bizproc\BaseType\Double
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * Normalize single value.
         *
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @return mixed Normalized value
         */
        public static function toSingleValue(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param array $request
         * @return null|int
         */
        protected static function extractValue(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
    }
    /**
     * Class String
     * @package Bitrix\Bizproc\BaseType
     */
    class StringType extends \Bitrix\Bizproc\BaseType\Base
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * Normalize single value.
         *
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @return mixed Normalized value
         */
        public static function toSingleValue(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $toTypeClass Type class name.
         * @return null|mixed
         */
        public static function convertTo(\Bitrix\Bizproc\FieldType $fieldType, $value, $toTypeClass)
        {
        }
        /**
         * Return conversion map for current type.
         * @return array Map.
         */
        public static function getConversionMap()
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param mixed $value
         * @param bool $allowSelection
         * @param int $renderMode
         * @return string
         */
        protected static function renderControl(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param int $renderMode Control render mode.
         * @return bool
         */
        public static function canRenderControl($renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param array $field Form field.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
    }
    /**
     * Class Text
     * @package Bitrix\Bizproc\BaseType
     */
    class Text extends \Bitrix\Bizproc\BaseType\StringType
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param mixed $value
         * @param bool $allowSelection
         * @param int $renderMode
         * @return string
         */
        protected static function renderControl(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
    }
    /**
     * Class Bool
     * @package Bitrix\Bizproc\BaseType
     */
    class BoolType extends \Bitrix\Bizproc\BaseType\Base
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * Normalize single value.
         *
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @return mixed Normalized value
         */
        public static function toSingleValue(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @return string
         */
        protected static function formatValuePrintable(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field type.
         * @param mixed $value Field value.
         * @param string $toTypeClass Type class name.
         * @return null|mixed
         */
        public static function convertTo(\Bitrix\Bizproc\FieldType $fieldType, $value, $toTypeClass)
        {
        }
        /**
         * Return conversion map for current type.
         * @return array Map.
         */
        public static function getConversionMap()
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param mixed $value
         * @param bool $allowSelection
         * @param int $renderMode
         * @return string
         */
        protected static function renderControl(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        public static function renderControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        public static function renderControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param int $renderMode Control render mode.
         * @return bool
         */
        public static function canRenderControl($renderMode)
        {
        }
        /**
         * @param FieldType $fieldType
         * @param array $field
         * @param array $request
         * @return null|string
         */
        protected static function extractValue(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        public static function externalizeValue(\Bitrix\Bizproc\FieldType $fieldType, $context, $value)
        {
        }
    }
}
namespace Bitrix\Bizproc {
    /**
     * Class FieldType
     * @package Bitrix\Bizproc
     */
    class FieldType
    {
        /**
         * Base type BOOL
         */
        const BOOL = 'bool';
        /**
         * Base type DATE
         */
        const DATE = 'date';
        /**
         * Base type DATETIME
         */
        const DATETIME = 'datetime';
        /**
         * Base type DOUBLE
         */
        const DOUBLE = 'double';
        /**
         * Base type FILE
         */
        const FILE = 'file';
        /**
         * Base type INT
         */
        const INT = 'int';
        /**
         * Base type SELECT
         */
        const SELECT = 'select';
        /**
         * Base type INTERNALSELECT
         */
        const INTERNALSELECT = 'internalselect';
        /**
         * Base type STRING
         */
        const STRING = 'string';
        /**
         * Base type TEXT
         */
        const TEXT = 'text';
        /**
         * Base type USER
         */
        const USER = 'user';
        /**
         * Control render mode - Bizproc Designer
         */
        const RENDER_MODE_DESIGNER = 1;
        /**
         * Control render mode - Admin panel
         */
        const RENDER_MODE_ADMIN = 2;
        /**
         * Control render mode - Mobile application
         */
        const RENDER_MODE_MOBILE = 4;
        /**
         * Control render mode - Automation designer
         */
        const RENDER_MODE_PUBLIC = 8;
        /** @var \Bitrix\Bizproc\BaseType\Base $typeClass */
        protected $typeClass;
        /** @var array $property */
        protected $property;
        /** @var array $documentType */
        protected $documentType;
        /** @var array $documentId */
        protected $documentId;
        /**
         * @param array $property Document property.
         * @param array $documentType Document type.
         * @param string $typeClass Type class manager.
         * @param null|array $documentId
         */
        public function __construct(array $property, array $documentType, $typeClass, array $documentId = null)
        {
        }
        /**
         * @return array
         */
        public function getProperty()
        {
        }
        /**
         * @return null|string
         */
        public function getType()
        {
        }
        /**
         * @return string
         */
        public function getBaseType()
        {
        }
        /**
         * @return string
         */
        public function getTypeClass()
        {
        }
        /**
         * Set type class manager.
         * @param string $typeClass Type class name.
         * @return $this
         * @throws Main\ArgumentException
         */
        public function setTypeClass($typeClass)
        {
        }
        /**
         * @return array
         */
        public function getDocumentType()
        {
        }
        /**
         * @param array $documentType Document type.
         * @return $this
         */
        public function setDocumentType(array $documentType)
        {
        }
        /**
         * @return array|null
         */
        public function getDocumentId()
        {
        }
        /**
         * @param array $documentId Document id.
         * @return $this
         */
        public function setDocumentId(array $documentId)
        {
        }
        /**
         * @return bool
         */
        public function isMultiple()
        {
        }
        /**
         * @param bool $value Multiple flag.
         * @return $this
         */
        public function setMultiple($value)
        {
        }
        /**
         * @return bool
         */
        public function isRequired()
        {
        }
        /**
         * @return null|mixed
         */
        public function getOptions()
        {
        }
        /**
         * @param mixed $options Options data.
         * @return $this
         */
        public function setOptions($options)
        {
        }
        /**
         * Get field settings.
         * Settings contain additional information that may be required for rendering of field.
         * @return array
         */
        public function getSettings()
        {
        }
        /**
         * set field settings.
         * Settings contain additional information that may be required for rendering of field.
         * @param array $settings Settings array.
         * @return $this
         */
        public function setSettings(array $settings)
        {
        }
        /**
         * @return null|string
         */
        public function getName()
        {
        }
        /**
         * @return null|string
         */
        public function getDescription()
        {
        }
        /**
         * @param mixed $value Field value.
         * @param string $format Format name.
         * @return mixed|null|string
         */
        public function formatValue($value, $format = 'printable')
        {
        }
        /**
         * @param mixed $value Field value.
         * @param string $toTypeClass Type class name.
         * @return array|bool|float|int|string
         */
        public function convertValue($value, $toTypeClass)
        {
        }
        /**
         * @param array $baseValue Base value.
         * @param mixed $appendValue Value to append.
         * @return mixed Merge result.
         */
        public function mergeValue($baseValue, $appendValue) : array
        {
        }
        /**
         * @param int $renderMode Control render mode.
         * @return bool
         */
        public function canRenderControl($renderMode)
        {
        }
        /**
         * @param array $field Form field.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public function renderControl(array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param string $callbackFunctionName Client callback function name.
         * @param mixed $value Field value.
         * @return string
         */
        public function renderControlOptions($callbackFunctionName, $value)
        {
        }
        /**
         * @param array $field Form field.
         * @param array $request Request data.
         * @param array &$errors Errors collection.
         * @return array|null
         */
        public function extractValue(array $field, array $request, array &$errors = null)
        {
        }
        /**
         * @param mixed $value Field value.
         * @return void
         */
        public function clearValue($value)
        {
        }
        /**
         * @param string $context Context identification (Document, Variable etc.)
         * @param mixed $value Field value.
         * @return mixed
         */
        public function internalizeValue($context, $value)
        {
        }
        /**
         * @param string $context Context identification (Document, Variable etc.)
         * @param mixed $value Field value.
         * @return mixed
         */
        public function externalizeValue($context, $value)
        {
        }
        /**
         * Get list of supported base types.
         * @return array
         */
        public static function getBaseTypesMap()
        {
        }
        /**
         * Normalize property structure.
         * @param string|array $property Document property.
         * @return array
         */
        public static function normalizeProperty($property)
        {
        }
    }
}
namespace Bitrix\Bizproc\Controller {
    abstract class Base extends \Bitrix\Main\Engine\Controller
    {
    }
    class File extends \Bitrix\Bizproc\Controller\Base
    {
        private const TOKEN_SALT = 'bizproc.file.show';
        public function configureActions() : array
        {
        }
        public function showAction($token)
        {
        }
        public static function getPublicLink(int $fileId) : string
        {
        }
        private static function generateToken(int $fileId)
        {
        }
        private static function extractToken(string $token) : array
        {
        }
    }
}
namespace Bitrix\Bizproc {
    class RestService extends \IRestService
    {
        public const SCOPE = 'bizproc';
        public const PLACEMENT_ACTIVITY_PROPERTIES_DIALOG = 'BIZPROC_ACTIVITY_PROPERTIES_DIALOG';
        protected static $app;
        private static $allowedOperations = array('', '!', '<', '<=', '>', '>=');
        //, '><', '!><', '?', '=', '!=', '%', '!%', ''); May be later?
        const ERROR_UNSUPPORTED_PROTOCOL = 'ERROR_UNSUPPORTED_PROTOCOL';
        const ERROR_WRONG_HANDLER_URL = 'ERROR_WRONG_HANDLER_URL';
        const ERROR_HANDLER_URL_MATCH = 'ERROR_HANDLER_URL_MATCH';
        const ERROR_ACTIVITY_ALREADY_INSTALLED = 'ERROR_ACTIVITY_ALREADY_INSTALLED';
        const ERROR_ACTIVITY_ADD_FAILURE = 'ERROR_ACTIVITY_ADD_FAILURE';
        const ERROR_ACTIVITY_VALIDATION_FAILURE = 'ERROR_ACTIVITY_VALIDATION_FAILURE';
        const ERROR_ACTIVITY_NOT_FOUND = 'ERROR_ACTIVITY_NOT_FOUND';
        const ERROR_EMPTY_LOG_MESSAGE = 'ERROR_EMPTY_LOG_MESSAGE';
        const ERROR_WRONG_WORKFLOW_ID = 'ERROR_WRONG_WORKFLOW_ID';
        const ERROR_WRONG_ACTIVITY_NAME = 'ERROR_WRONG_ACTIVITY_NAME';
        const ERROR_TEMPLATE_VALIDATION_FAILURE = 'ERROR_TEMPLATE_VALIDATION_FAILURE';
        const ERROR_TASK_VALIDATION = 'ERROR_TASK_VALIDATION';
        const ERROR_TASK_NOT_FOUND = 'ERROR_TASK_NOT_FOUND';
        const ERROR_TASK_TYPE = 'ERROR_TASK_TYPE';
        const ERROR_TASK_COMPLETED = 'ERROR_TASK_COMPLETED';
        const ERROR_TASK_EXECUTION = 'ERROR_TASK_EXECUTION';
        private const ALLOWED_TASK_ACTIVITIES = ['ReviewActivity', 'ApproveActivity', 'RequestInformationActivity', 'RequestInformationOptionalActivity'];
        public static function onRestServiceBuildDescription()
        {
        }
        /**
         * Deletes application activities.
         * @param array $fields Fields describes application.
         * @return void
         */
        public static function onRestAppDelete(array $fields)
        {
        }
        /**
         * Deletes application activities.
         * @param array $fields Fields describes application.
         * @return void
         */
        public static function onRestAppUpdate(array $fields)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool
         * @throws \Exception
         */
        public static function addActivity($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool
         * @throws \Exception
         */
        public static function addRobot($params, $n, $server)
        {
        }
        /**
         * @param array $params
         * @param  \CRestServer $server
         * @param bool $isRobot
         * @return bool
         * @throws AccessException
         * @throws RestException
         */
        private static function addActivityInternal($params, $server, $isRobot = false)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool
         * @throws \Exception
         */
        public static function updateActivity($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool
         * @throws \Exception
         */
        public static function deleteActivity($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool
         * @throws \Exception
         */
        public static function updateRobot($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool
         * @throws \Exception
         */
        public static function deleteRobot($params, $n, $server)
        {
        }
        /**
         * @param array $params
         * @param \CRestServer $server
         * @param bool $isRobot
         * @return bool
         * @throws AccessException
         * @throws RestException
         */
        private static function deleteActivityInternal($params, $server, $isRobot = false)
        {
        }
        /**
         * @param array $params
         * @param \CRestServer $server
         * @param bool $isRobot
         * @return bool
         * @throws AccessException
         * @throws RestException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        private static function updateActivityInternal($params, $server, $isRobot = false)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool
         * @throws AccessException
         * @throws RestException
         */
        public static function sendEvent($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool
         * @throws AccessException
         * @throws RestException
         */
        public static function writeActivityLog($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return array
         * @throws AccessException
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getActivityList($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return array
         * @throws AccessException
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getRobotList($params, $n, $server)
        {
        }
        /**
         * @param array $params
         * @param \CRestServer $server
         * @param bool $isRobot
         * @return array
         * @throws AccessException
         */
        private static function getActivityListInternal($params, $server, $isRobot = false)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return array
         * @throws AccessException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getWorkflowInstances($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool True on success.
         * @throws AccessException
         * @throws RestException
         */
        public static function terminateWorkflow($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return string Workflow ID.
         * @throws AccessException
         * @throws RestException
         */
        public static function startWorkflow($params, $n, $server)
        {
        }
        private static function checkStartWorkflowPermissions(array $documentId, $templateId)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return mixed Templates collection.
         * @throws AccessException
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public static function getWorkflowTemplates($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool
         * @throws \Exception
         */
        public static function addWorkflowTemplate($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool
         * @throws \Exception
         */
        public static function updateWorkflowTemplate($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool
         * @throws \Exception
         */
        public static function deleteWorkflowTemplate($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return array
         * @throws AccessException
         */
        public static function getTaskList($params, $n, $server)
        {
        }
        private static function prepareTaskParameters(array $parameters, array $task)
        {
        }
        private static function externalizeRequestFields($task, array $fields) : array
        {
        }
        private static function internalizeRequestFields($task, array $values) : array
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool
         * @throws RestException
         */
        public static function completeTask($params, $n, $server)
        {
        }
        private static function validateTaskParameters(array $params)
        {
        }
        private static function getTask($id, $userId)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool
         * @throws \Exception
         */
        public static function addProvider($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return bool
         * @throws \Exception
         */
        public static function deleteProvider($params, $n, $server)
        {
        }
        /**
         * @param array $params Input params.
         * @param int $n Offset.
         * @param \CRestServer $server Rest server instance.
         * @return array
         * @throws AccessException
         * @throws \Bitrix\Main\ArgumentException
         */
        public static function getProviderList($params, $n, $server)
        {
        }
        private static function getSelect($rules, $fields, $default = array())
        {
        }
        private static function getOrder($rules, $fields, array $default = array())
        {
        }
        private static function getFilter($rules, $fields, array $datetimeFieldsList = array())
        {
        }
        private static function checkAdminPermissions()
        {
        }
        private static function isAdmin()
        {
        }
        private static function getCurrentUserId()
        {
        }
        private static function generateInternalCode($data)
        {
        }
        private static function getAppName($appId)
        {
        }
        private static function getAppId($clientId)
        {
        }
        private static function prepareActivityData(array $data, $ignore = false)
        {
        }
        private static function validateActivity($data, $server)
        {
        }
        private static function validateProvider($data, $server)
        {
        }
        private static function validateRobot($data, $server)
        {
        }
        private static function validateActivityCode($code)
        {
        }
        private static function validateActivityHandler($handler, $server)
        {
        }
        private static function validateActivityProperties($properties)
        {
        }
        private static function validateActivityDocumentType($documentType)
        {
        }
        private static function validateDocumentId($documentId)
        {
        }
        private static function validateTemplateName($name)
        {
        }
        private static function upsertAppPlacement(int $appId, string $code, string $handler)
        {
        }
        private static function deleteAppPlacement(int $appId, string $code = null)
        {
        }
        private static function prepareTemplateData($data)
        {
        }
        private static function validateTemplateDocumentType($documentType)
        {
        }
        private static function validateTemplateAutoExecution($flag)
        {
        }
        private static function generateTemplateSystemCode(\CRestServer $server)
        {
        }
        private static function extractEventToken($token)
        {
        }
        /**
         * @param \CRestServer $server
         * @return array|bool|false|mixed|null
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\LoaderException
         */
        private static function getApp($server)
        {
        }
    }
}
namespace Bitrix\Bizproc\Workflow\Template {
    class Tpl extends \Bitrix\Bizproc\Workflow\Template\Entity\EO_WorkflowTemplate
    {
        protected $tpl;
        public function getRootActivity()
        {
        }
        public function findActivity($activityName)
        {
        }
        public function getDocumentComplexType()
        {
        }
        public function getActivities()
        {
        }
        /**
         * @return Collection\Usages
         * @throws \CBPArgumentOutOfRangeException
         */
        public function collectUsages()
        {
        }
        public function findUsedSourceKeys($sourceType)
        {
        }
        private function findActivityUsagesRecursive(\CBPActivity $activity, \Bitrix\Bizproc\Workflow\Template\Collection\Usages $usages)
        {
        }
        public function getUsedActivityTypes()
        {
        }
        private function getActivityTypes(array $activities)
        {
        }
    }
}
namespace Bitrix\Bizproc\Workflow\Template\Collection {
    class Usages
    {
        protected $list;
        public function __construct()
        {
        }
        public function add($ownerId, $sourceType, $value)
        {
        }
        public function addOwnerSources($ownerId, array $sources)
        {
        }
        public function getBySourceType($sourceType)
        {
        }
        public function getByOwner($ownerId)
        {
        }
        public function getAll()
        {
        }
    }
}
namespace Bitrix\Bizproc\Workflow\Template {
    class SourceType
    {
        const DocumentField = 'Document';
        const Parameter = 'Parameter';
        const Variable = 'Variable';
        const Constant = 'Constant';
        const GlobalConstant = 'GlobalConst';
        const System = 'System';
        const Activity = 'Activity';
        const CalcFunction = 'Function';
        public static function isType($type)
        {
        }
    }
}
namespace Bitrix\Bizproc\Workflow\Template\Packer\Result {
    class Unpack extends \Bitrix\Main\Result
    {
        /** @var Tpl */
        protected $tpl;
        /** @var array */
        protected $documentFields;
        /** @var array */
        protected $requiredApplications;
        /**
         * @param Tpl $tpl
         * @return $this
         */
        public function setTpl(\Bitrix\Bizproc\Workflow\Template\Tpl $tpl)
        {
        }
        /**
         * @return Tpl
         */
        public function getTpl()
        {
        }
        /**
         * @return array
         */
        public function getDocumentFields()
        {
        }
        /**
         * @param array $documentFields
         * @return $this
         */
        public function setDocumentFields(array $documentFields)
        {
        }
        /**
         * @return array
         */
        public function getRequiredApplications()
        {
        }
        /**
         * @param array $requiredApplications
         * @return $this
         */
        public function setRequiredApplications($requiredApplications)
        {
        }
    }
    class Pack extends \Bitrix\Main\Result
    {
        protected $packageData;
        /**
         * @param $packageData
         * @return $this
         */
        public function setPackage($packageData)
        {
        }
        /**
         * @return mixed
         */
        public function getPackage()
        {
        }
    }
}
namespace Bitrix\Bizproc\Workflow\Template\Packer {
    abstract class BasePacker
    {
        /**
         * Get data for package.
         * @param Tpl $tpl
         * @return mixed
         */
        public abstract function makePackageData(\Bitrix\Bizproc\Workflow\Template\Tpl $tpl);
        /**
         * Pack the template.
         * @param Tpl $tpl
         * @return Result\Pack
         */
        public abstract function pack(\Bitrix\Bizproc\Workflow\Template\Tpl $tpl);
        /**
         * Unpack the data to template
         * @param $data
         * @return Result\Unpack
         */
        public abstract function unpack($data);
        protected function compress($data)
        {
        }
        protected function uncompress($data)
        {
        }
    }
    class Bpt extends \Bitrix\Bizproc\Workflow\Template\Packer\BasePacker
    {
        const DIRECTION_EXPORT = 0;
        const DIRECTION_IMPORT = 1;
        protected $useCompression = true;
        public function enableCompression()
        {
        }
        public function disableCompression()
        {
        }
        public function makePackageData(\Bitrix\Bizproc\Workflow\Template\Tpl $tpl)
        {
        }
        public function pack(\Bitrix\Bizproc\Workflow\Template\Tpl $tpl)
        {
        }
        public function unpack($data)
        {
        }
        private static function replaceTemplateDocumentFieldsAliases(&$template, $aliases)
        {
        }
        private static function replaceActivityDocumentFieldsAliases(&$activity, $aliases)
        {
        }
        private static function replaceVariablesDocumentFieldsAliases(&$variables, $aliases)
        {
        }
        private static function replaceValueDocumentFieldsAliases($value, $aliases)
        {
        }
        private static function replaceFieldConditionsDocumentFieldsAliases($conditions, $aliases)
        {
        }
        private static function ConvertValueCharset($s, $direction)
        {
        }
        private static function ConvertArrayCharset($value, $direction = self::DIRECTION_EXPORT)
        {
        }
    }
    class RoboPackage extends \Bitrix\Bizproc\Workflow\Template\Packer\BasePacker
    {
        public function makePackageData(\Bitrix\Bizproc\Workflow\Template\Tpl $tpl)
        {
        }
        public function pack(\Bitrix\Bizproc\Workflow\Template\Tpl $tpl)
        {
        }
        public function unpack($data)
        {
        }
        private function getUsedDocumentFields(\Bitrix\Bizproc\Workflow\Template\Tpl $tpl)
        {
        }
        private function getRequiredApplications(\Bitrix\Bizproc\Workflow\Template\Tpl $tpl)
        {
        }
    }
}
namespace Bitrix\Bizproc\Workflow\Type {
    class GlobalConst
    {
        const CONF_NAME = 'global_const';
        private static $allCache;
        public static function getAll()
        {
        }
        public static function getById($id)
        {
        }
        /**
         * Gets value of constant.
         * @param array|string $constId Constant Id or constant property.
         * @return mixed|null Constant value.
         */
        public static function getValue($constId)
        {
        }
        public static function upsert($constId, $property)
        {
        }
        public static function delete($constId)
        {
        }
        public static function saveAll(array $all)
        {
        }
    }
}
namespace Bitrix\Bizproc\UserType {
    class UserFieldBase extends \Bitrix\Bizproc\BaseType\Base
    {
        /**
         * @return string
         */
        public static function getType()
        {
        }
        /**
         * @param FieldType $fieldType
         * @param $value
         * @return string
         */
        protected static function formatValuePrintable(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param mixed $value Field value.
         * @param string $toTypeClass Type class manager name.
         * @return null|mixed
         */
        public static function convertTo(\Bitrix\Bizproc\FieldType $fieldType, $value, $toTypeClass)
        {
        }
        /**
         * Return conversion map for current type.
         * @return array Map.
         */
        public static function getConversionMap()
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param array $field Form field information.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @param FieldType $fieldType Document field object.
         * @param array $field Form field information.
         * @param mixed $value Field value.
         * @param bool $allowSelection Allow selection flag.
         * @param int $renderMode Control render mode.
         * @return string
         */
        public static function renderControlMultiple(\Bitrix\Bizproc\FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
        {
        }
        /**
         * @inheritdoc
         */
        public static function extractValueSingle(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        protected static function getUserType(\Bitrix\Bizproc\FieldType $fieldType)
        {
        }
        private static function formatCrmValuePrintable(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        private static function prepareCrmUserTypeValueView($value, $defaultTypeName = '')
        {
        }
    }
    class IblockElement extends \Bitrix\Bizproc\UserType\UserFieldBase
    {
        /**
         * @param FieldType $fieldType
         * @param string $callbackFunctionName
         * @param mixed $value
         * @return string
         */
        public static function renderControlOptions(\Bitrix\Bizproc\FieldType $fieldType, $callbackFunctionName, $value)
        {
        }
    }
    class IblockSection extends \Bitrix\Bizproc\UserType\IblockElement
    {
    }
    class Money extends \Bitrix\Bizproc\UserType\UserFieldBase
    {
        protected static function extractValue(\Bitrix\Bizproc\FieldType $fieldType, array $field, array $request)
        {
        }
        /** @inheritdoc */
        public static function compareValues($valueA, $valueB)
        {
        }
        protected static function formatValuePrintable(\Bitrix\Bizproc\FieldType $fieldType, $value)
        {
        }
        private static function getDefaultCurrencyId()
        {
        }
        private static function normalizeCurrencyID($currencyID)
        {
        }
        private static function convertMoney($sum, $srcCurrencyID, $dstCurrencyID, $srcExchRate = -1)
        {
        }
    }
}
namespace Bitrix\Bizproc\Copy\Integration {
    class Helper
    {
        private $documentType;
        public function __construct($documentType)
        {
        }
        public function getWorkflowTemplateIds()
        {
        }
        public function getTriggerIds()
        {
        }
    }
}
namespace Bitrix\Bizproc\Copy {
    class Trigger implements \Bitrix\Main\Copy\Copyable
    {
        private $implementer;
        private $implementerName;
        private $result;
        public function __construct(\Bitrix\Bizproc\Copy\Implement\Trigger $implementer)
        {
        }
        /**
         * Copies entity.
         *
         * @param ContainerCollection $containerCollection
         * @return Result
         */
        public function copy(\Bitrix\Main\Copy\ContainerCollection $containerCollection)
        {
        }
    }
}
namespace Bitrix\Bizproc\Copy\Implement {
    class Trigger
    {
        const TRIGGER_COPY_ERROR = "TRIGGER_COPY_ERROR";
        private $targetDocumentType = [];
        private $mapStatusIdsCopiedDocument = [];
        private $result;
        public function __construct($targetDocumentType = [], $mapStatusIdsCopiedDocument = [])
        {
        }
        /**
         * @param $triggerId
         * @return array|false
         * @throws \Bitrix\Main\ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function getFields($triggerId)
        {
        }
        public function prepareFieldsToCopy(array $fields)
        {
        }
        /**
         * @param array $fields
         * @return array|bool|int
         * @throws \Exception
         */
        public function add(array $fields)
        {
        }
    }
    class WorkflowTemplate
    {
        const WORKFLOW_TEMPLATE_COPY_ERROR = "WORKFLOW_TEMPLATE_COPY_ERROR";
        private $targetDocumentType = [];
        private $mapStatusIdsCopiedDocument = [];
        private $result;
        public function __construct($targetDocumentType = [], $mapStatusIdsCopiedDocument = [])
        {
        }
        public function getFields($workflowTemplateId)
        {
        }
        public function prepareFieldsToCopy(array $fields)
        {
        }
        public function add(array $fields)
        {
        }
    }
}
namespace Bitrix\Bizproc\Copy {
    class WorkflowTemplate implements \Bitrix\Main\Copy\Copyable
    {
        private $implementer;
        private $implementerName;
        private $result;
        public function __construct(\Bitrix\Bizproc\Copy\Implement\WorkflowTemplate $implementer)
        {
        }
        /**
         * Copies entity.
         *
         * @param ContainerCollection $containerCollection
         * @return Result
         */
        public function copy(\Bitrix\Main\Copy\ContainerCollection $containerCollection)
        {
        }
    }
}
namespace Bitrix\Bizproc\Automation\Trigger {
    class BaseTrigger
    {
        protected $target;
        /**
         * @return string the fully qualified name of this class.
         */
        public static function className()
        {
        }
        public static function isEnabled()
        {
        }
        /**
         * @param BaseTarget $target
         * @return $this
         */
        public function setTarget(\Bitrix\Bizproc\Automation\Target\BaseTarget $target)
        {
        }
        /**
         * @return BaseTarget
         * @throws Main\InvalidOperationException
         */
        public function getTarget()
        {
        }
        /**
         * @return string Gets the alphanumeric trigger code.
         */
        public static function getCode()
        {
        }
        /**
         * @return string Gets the trigger name.
         */
        public static function getName()
        {
        }
        protected function getPotentialTriggers()
        {
        }
        public function checkApplyRules(array $trigger)
        {
        }
        public static function toArray()
        {
        }
    }
}
namespace Bitrix\Bizproc\Automation\Target {
    abstract class BaseTarget
    {
        protected $runtime;
        protected $appliedTrigger;
        protected $documentId;
        protected $documentType;
        public function isAvailable()
        {
        }
        /**
         * Set applied trigger data.
         * @param array $trigger
         * @return $this
         */
        public function setAppliedTrigger(array $trigger)
        {
        }
        /**
         * Returns applied trigger data.
         * @return array|null
         */
        public function getAppliedTrigger()
        {
        }
        /**
         * @return \Bitrix\Bizproc\Automation\Engine\Runtime
         */
        public function getRuntime()
        {
        }
        public abstract function getDocumentStatus();
        public abstract function setDocumentStatus($statusId);
        public abstract function getDocumentStatusList($categoryId = 0);
        public function getTriggers(array $statuses)
        {
        }
        public function prepareTriggersToSave(array &$triggers)
        {
        }
        public function prepareTriggersToShow(array &$triggers)
        {
        }
        public function setTriggers(array $triggers)
        {
        }
        private function prepareApplyRules($rules, $external = false) : ?array
        {
        }
        public function getAvailableTriggers()
        {
        }
        public function setDocumentType(array $documentType)
        {
        }
        public function getDocumentType()
        {
        }
        public function getDocumentId()
        {
        }
        public function setDocumentId($documentId)
        {
        }
    }
}
namespace Bitrix\Bizproc\Automation\Script {
    class Manager
    {
        public static function getListByPlacement($placement)
        {
        }
        public static function getById($id)
        {
        }
        public static function createScript($fields, $userId = 1)
        {
        }
        public static function editScript($id, array $fields)
        {
        }
        public static function deleteScript($id)
        {
        }
        private static function appendAppNames(array &$list)
        {
        }
    }
}
namespace Bitrix\Bizproc\Automation {
    class Helper
    {
        const CURRENT_DATE_BASIS = '{=System:Date}';
        const CURRENT_DATETIME_BASIS = '{=System:Now}';
        protected static $maps;
        protected static $documentFields;
        public static function prepareUserSelectorEntities(array $documentType, $users, $config = []) : array
        {
        }
        public static function getResponsibleUserExpression(array $documentType)
        {
        }
        /**
         * Get disk files information by file ids.
         * @param int|array $attachments
         * @return array
         */
        public static function prepareDiskAttachments($attachments)
        {
        }
        /**
         * Get files information from document fields.
         * @param array $documentType
         * @param $files
         * @return array
         */
        public static function prepareFileAttachments(array $documentType, $files)
        {
        }
        public static function convertExpressions($source, array $documentType, $useTilda = true)
        {
        }
        public static function unConvertExpressions($source, array $documentType)
        {
        }
        public static function convertProperties(array $properties, array $documentType, $useTilda = true)
        {
        }
        public static function unConvertProperties(array $properties, array $documentType)
        {
        }
        /**
         * Get document fields for usage in robots designer.
         * @param array $documentType Bizproc document type.
         * @param null|string $typeFilter
         * @return array
         */
        public static function getDocumentFields(array $documentType, $typeFilter = null)
        {
        }
        private static function getDocumentUserServiceGroups(array $documentType)
        {
        }
        public static function getDocumentUserGroups(array $documentType) : array
        {
        }
        protected static function getFieldsMap(array $documentType)
        {
        }
        public static function parseDateTimeInterval($interval)
        {
        }
        public static function getDateTimeIntervalString($interval)
        {
        }
        public static function parseTimeString($time)
        {
        }
        public static function countAllRobots(array $documentType, array $statuses) : int
        {
        }
        private static function getUserInfo($userID, $format = '', $htmlEncode = false)
        {
        }
    }
    class Tracker
    {
        const STATUS_WAITING = 0;
        const STATUS_RUNNING = 1;
        const STATUS_COMPLETED = 2;
        const STATUS_AUTOCOMPLETED = 3;
        /** @var BaseTarget */
        protected $target;
        public function __construct(\Bitrix\Bizproc\Automation\Target\BaseTarget $target)
        {
        }
        public function getLog(array $statuses)
        {
        }
        private function convertBizprocTrackingToLog($entries, $isCurrentStatus)
        {
        }
        private function getBizprocTrackingEntries($statuses)
        {
        }
        private function getStatusesStates($statuses)
        {
        }
        private function getBizprocTemplateIds($statuses)
        {
        }
    }
}
namespace Bitrix\Bizproc\Automation\Engine {
    class Runtime
    {
        protected $target;
        protected static $startedTemplates = [];
        public function setTarget(\Bitrix\Bizproc\Automation\Target\BaseTarget $target)
        {
        }
        /**
         * @return BaseTarget
         * @throws InvalidOperationException
         */
        public function getTarget()
        {
        }
        protected function getWorkflowInstanceIds()
        {
        }
        protected function runTemplates($documentStatus)
        {
        }
        protected function writeTriggerTracking($workflowId, $trigger)
        {
        }
        protected function stopTemplates()
        {
        }
        /**
         * Document creation handler.
         * @throws InvalidOperationException
         * @return void
         */
        public function onDocumentAdd()
        {
        }
        /**
         * Document status changed handler.
         * @throws InvalidOperationException
         * @return void
         */
        public function onDocumentStatusChanged()
        {
        }
        /**
         * Document moving handler.
         * @return void
         */
        public function onDocumentMove()
        {
        }
        private function setStarted($documentType, $documentId, $status)
        {
        }
        private function isStarted($documentType, $documentId, $status)
        {
        }
        private function writeAnalytics($documentComplexId, $documentStatus, $trigger)
        {
        }
    }
    class DelayInterval
    {
        const TYPE_BEFORE = 'before';
        const TYPE_AFTER = 'after';
        const TYPE_IN = 'in';
        protected $type = 'after';
        //TYPE_AFTER
        protected $value;
        protected $valueType;
        protected $basis;
        protected $workTime = false;
        protected $localTime = false;
        /**
         * DelayInterval constructor.
         * @param array|null $params Initial parameters.
         */
        public function __construct(array $params = null)
        {
        }
        /**
         * @param array $properties Activity properties.
         * @return DelayInterval
         */
        public static function createFromActivityProperties(array $properties)
        {
        }
        /**
         * @return mixed
         */
        public function getType()
        {
        }
        /**
         * @param mixed $type Interval type (before, after, in time).
         * @return DelayInterval
         */
        public function setType($type)
        {
        }
        /**
         * @return mixed
         */
        public function getValue()
        {
        }
        /**
         * @param int $value Delay interval value.
         * @return DelayInterval
         */
        public function setValue($value)
        {
        }
        /**
         * @return mixed
         */
        public function getValueType()
        {
        }
        /**
         * @param string $valueType Delay interval value type.
         * @return DelayInterval
         */
        public function setValueType($valueType)
        {
        }
        /**
         * @return mixed
         */
        public function getBasis()
        {
        }
        /**
         * @param mixed $basis Delay interval basis (date/time field etc.).
         * @return DelayInterval
         */
        public function setBasis($basis)
        {
        }
        /**
         * @return mixed
         */
        public function isWorkTime()
        {
        }
        /**
         * @param bool $flag True of false.
         * @return $this
         */
        public function setWorkTime($flag)
        {
        }
        /**
         * @return mixed
         */
        public function isLocalTime()
        {
        }
        /**
         * @param bool $flag True or false.
         * @return $this
         */
        public function setLocalTime($flag)
        {
        }
        /**
         * Converts instance to array.
         * @return array
         */
        public function toArray()
        {
        }
        /**
         * Converts instance to activity properties array.
         * @param array $documentType Document type.
         * @return array
         */
        public function toActivityProperties(array $documentType = null)
        {
        }
        /**
         * Checks if interval equals to Now.
         * @return bool
         */
        public function isNow()
        {
        }
    }
    class Robot
    {
        /** @var array */
        protected $bizprocActivity;
        /** @var  DelayInterval */
        protected $delayInterval;
        protected $delayName;
        /** @var  ConditionGroup $condition */
        protected $condition;
        protected $executeAfterPrevious = false;
        public function __construct(array $bizprocActivity)
        {
        }
        /**
         * @param DelayInterval $delayInterval Robot delay interval.
         */
        public function setDelayInterval(\Bitrix\Bizproc\Automation\Engine\DelayInterval $delayInterval)
        {
        }
        /**
         * @return DelayInterval Robot delay interval.
         */
        public function getDelayInterval()
        {
        }
        /**
         * @param ConditionGroup $condition Robot condition.
         */
        public function setCondition(\Bitrix\Bizproc\Automation\Engine\ConditionGroup $condition)
        {
        }
        /**
         * @return ConditionGroup Robot condition.
         */
        public function getCondition()
        {
        }
        /**
         * @param string $delayName Robot delay name.
         */
        public function setDelayName($delayName)
        {
        }
        /**
         * @return string Robot delay name.
         */
        public function getDelayName()
        {
        }
        public function setExecuteAfterPrevious()
        {
        }
        public function isExecuteAfterPrevious()
        {
        }
        public function getProperties()
        {
        }
        public function setProperties(array $properties) : self
        {
        }
        public function getProperty(string $name)
        {
        }
        public function setProperty(string $name, $value)
        {
        }
        public function getTitle()
        {
        }
        public function getName()
        {
        }
        public function getType()
        {
        }
        public function toArray()
        {
        }
        public function getBizprocActivity()
        {
        }
        public static function generateName()
        {
        }
    }
    /**
     * Class Template
     * @package Bitrix\Bizproc\Automation\Engine
     */
    class Template
    {
        protected static $parallelActivityType = 'ParallelActivity';
        protected static $sequenceActivityType = 'SequenceActivity';
        protected static $delayActivityType = 'DelayActivity';
        protected static $conditionActivityType = 'IfElseActivity';
        protected static $availableActivities = [];
        protected static $availableActivityClasses = [];
        protected $template;
        protected $autoExecuteType = \CBPDocumentEventType::Automation;
        /** @var  null|Robot[] */
        protected $robots;
        protected $isExternalModified;
        /**
         * Template constructor.
         * @param array $documentType
         * @param null $documentStatus
         * @throws ArgumentException
         * @throws \Bitrix\Main\ObjectPropertyException
         * @throws \Bitrix\Main\SystemException
         */
        public function __construct(array $documentType, $documentStatus = null)
        {
        }
        public static function createByTpl(\Bitrix\Bizproc\Workflow\Template\Tpl $tpl)
        {
        }
        public function getDocumentStatus()
        {
        }
        public function setDocumentStatus($status)
        {
        }
        public function getExecuteType($autoExecuteType)
        {
        }
        public function setExecuteType($autoExecuteType)
        {
        }
        public function getId()
        {
        }
        public function getRobotSettingsDialog(array $robot, $request = null)
        {
        }
        public function saveRobotSettings(array $robot, array $request)
        {
        }
        public function save(array $robots, $userId)
        {
        }
        public function setRobots(array $robots)
        {
        }
        /**
         * Convert instance data to array.
         * @return array
         */
        public function toArray()
        {
        }
        public static function getAvailableRobots(array $documentType)
        {
        }
        protected static function getAvailableRobotClasses(array $documentType)
        {
        }
        protected function addBizprocTemplate($userId)
        {
        }
        protected function makeTemplateName()
        {
        }
        protected function updateBizprocTemplate($id, $userId)
        {
        }
        protected function convertTemplate()
        {
        }
        protected function unConvertTemplate()
        {
        }
        protected function isRobot(array $activity)
        {
        }
        /**
         * @return Robot[] Robot activities.
         */
        public function getRobots()
        {
        }
        /**
         * Returns Robot by it`s id.
         * @param string $name Robot identificator.
         * @return Robot|null Robot instance.
         */
        public function getRobotByName(string $name) : ?\Bitrix\Bizproc\Automation\Engine\Robot
        {
        }
        /**
         * @return array Template activities.
         */
        public function getActivities()
        {
        }
        /**
         * Checks is template was modified by external editor.
         * @return bool
         */
        public function isExternalModified()
        {
        }
        public function getDocumentType() : array
        {
        }
        private function createSequenceActivity()
        {
        }
        private function createParallelActivity()
        {
        }
        private function createDelayActivity(array $delayProperties, $delayName)
        {
        }
    }
    class Condition extends \Bitrix\Bizproc\Activity\Condition
    {
        protected $field;
        public function __construct(array $params = null)
        {
        }
        /**
         * @param string $field The field name.
         * @return Condition
         */
        public function setField($field)
        {
        }
        /**
         * @return string
         */
        public function getField()
        {
        }
        /**
         * @param mixed $needle The field value to check.
         * @param string $fieldType Type of the field.
         * @param BaseTarget $target Automation target.
         * @param FieldType $fieldTypeObject
         * @return bool
         */
        public function check($needle, $fieldType, \Bitrix\Bizproc\Automation\Target\BaseTarget $target, \Bitrix\Bizproc\FieldType $fieldTypeObject)
        {
        }
        /**
         * @return array Array presentation of condition.
         */
        public function toArray()
        {
        }
    }
    class ConditionGroup
    {
        const TYPE_FIELD = 'field';
        //const TYPE_VARIABLE = 'variable'; //reserved
        const JOINER_AND = 'AND';
        // 0
        const JOINER_OR = 'OR';
        // 1
        private $type;
        private $items = [];
        public function __construct(array $params = null)
        {
        }
        /**
         * @param BaseTarget $target Automation target.
         * @return bool
         */
        public function evaluate(\Bitrix\Bizproc\Automation\Target\BaseTarget $target)
        {
        }
        /**
         * @param array $documentType
         * @param array $documentId
         * @param array|null $document
         * @return bool
         */
        public function evaluateByDocument(array $documentType, array $documentId, array $document = null) : bool
        {
        }
        /**
         * @param string $type Type of condition.
         * @return ConditionGroup This instance.
         */
        public function setType($type)
        {
        }
        /**
         * @return mixed
         */
        public function getType()
        {
        }
        /**
         * @param Condition $condition Condition instance.
         * @param string $joiner Condition joiner.
         * @return $this This instance.
         */
        public function addItem(\Bitrix\Bizproc\Automation\Engine\Condition $condition, $joiner = self::JOINER_AND)
        {
        }
        /**
         * @return array Condition items.
         */
        public function getItems()
        {
        }
        /**
         * @return array Array presentation of condition group.
         */
        public function toArray()
        {
        }
        /**
         * @param array $childActivity Child activity array.
         * @param array $documentType
         * @return array New activity array.
         */
        public function createBizprocActivity(array $childActivity, array $documentType)
        {
        }
        /**
         * @param array &$activity Target activity array.
         * @param array $documentType
         * @return false|ConditionGroup Instance of false.
         */
        public static function convertBizprocActivity(array &$activity, array $documentType)
        {
        }
        /**
         * Convert values to internal format.
         * @param array $documentType
         * @return $this
         */
        public function internalizeValues(array $documentType) : self
        {
        }
        /**
         * Convert value to external format.
         * @param array $documentType
         * @return $this
         */
        public function externalizeValues(array $documentType) : self
        {
        }
        private static function convertExpressions($value, array $documentType)
        {
        }
        private static function unConvertExpressions($value, array $documentType)
        {
        }
    }
}
namespace Bitrix\Bizproc\Service {
    class User extends \CBPRuntimeService
    {
        protected const DEPARTMENT_MODULE_ID = 'intranet';
        protected const DEPARTMENT_OPTION_NAME = 'iblock_structure';
        public function getUserDepartments(int $userId) : array
        {
        }
        public function getUserInfo(int $userId) : ?array
        {
        }
        public function getUserDepartmentChains(int $userId) : array
        {
        }
        public function getDepartmentChain(int $departmentId) : array
        {
        }
        public function getUserHeads(int $userId) : array
        {
        }
        public function getDepartmentHead(int $departmentId) : ?int
        {
        }
        public function getUserSchedule(int $userId) : \Bitrix\Bizproc\Service\Sub\UserSchedule
        {
        }
        protected function getDepartmentIblockId() : int
        {
        }
        private function canUseIblockApi()
        {
        }
    }
}
namespace Bitrix\Bizproc\Service\Sub {
    /**
     * Class UserSchedule
     * @package Bitrix\Bizproc\Service\Sub
     * @internal
     */
    class UserSchedule
    {
        protected $userId;
        public function __construct(int $userId)
        {
        }
        public function isAbsent() : bool
        {
        }
        public function isWorkDayClosed() : bool
        {
        }
        private function canUseIntranet()
        {
        }
        private function canUseTimeman()
        {
        }
    }
}
namespace Bitrix\Bizproc\Service {
    class Analytics extends \CBPRuntimeService
    {
        private $logFile;
        public function start(\CBPRuntime $runtime = null)
        {
        }
        /**
         * @return bool
         */
        public function isEnabled()
        {
        }
        public function write(array $documentId, $action, $tag)
        {
        }
        private function prepareFileContent(...$params)
        {
        }
        private function writeToFile($content)
        {
        }
    }
}
namespace {
    /** @var Wizard\Step  $wizardStep */
    $wizardStepClassName = '\\Bitrix\\Sale\\TradingPlatform\\Ebay\\Wizard\\' . $stepClassesList[$step];
}
namespace Bitrix\Conversion\AdminHelpers {
    function renderFilter(array $filter)
    {
    }
    function renderMenu($id, $items)
    {
    }
    function renderSite($siteName, array $siteMenu)
    {
    }
    function renderScale(array $param)
    {
    }
}
namespace {
    function UpdateGetOption($name, $default = "")
    {
    }
    function UpdateSetOption($name, $value)
    {
    }
    function UpdateGetHTTPPage($requestDataAdd, &$errorMessage)
    {
    }
    function UpdateHtmlSpecialCharsBack($str)
    {
    }
    function UpdateParseServerData($content, &$errorMessage)
    {
    }
    function UpdateActivateCoupon($coupon, &$errorMessage)
    {
    }
    function UpdateIsAdmin($login, $password)
    {
    }
    function _vote_answer_sort($ar1, $ar2)
    {
    }
    function _GetAnswerArray($QuestionID, $FieldType, &$arAnswers)
    {
    }
    function _GetAnswerArray1($FieldType, $arAnswers)
    {
    }
    function VoteVoteEditFromArray($CHANNEL_ID, $VOTE_ID = \false, $arFields = array(), $params = array())
    {
    }
    function VoteGetFilterOperation($key)
    {
    }
    /********************************************************************
    				Functions
    ********************************************************************/
    function CheckFilter()
    {
    }
    function GetAnswerTypeList()
    {
    }
    function GetVoteDiagramArray()
    {
    }
    function GetVoteDiagramList()
    {
    }
    // vote data
    function GetVoteDataByID($VOTE_ID, &$arChannel, &$arVote, &$arQuestions, &$arAnswers, &$arDropDown, &$arMultiSelect, &$arGroupAnswers, $arAddParams = "N")
    {
    }
    // return vote id for channel sid with check permissions and ACTIVE vote
    function GetCurrentVote($GROUP_SID, $site_id = \SITE_ID, $access = 1)
    {
    }
    // return PREIOUS vote id for channel sid with check permissions and ACTIVE vote
    function GetPrevVote($GROUP_SID, $level = 1, $site_id = \SITE_ID, $access = 1)
    {
    }
    // return votes list id for channel sid with check permissions and ACTIVE vote
    function GetVoteList($GROUP_SID = "", $params = array(), $site_id = \SITE_ID)
    {
    }
    // return true if user already vote on this vote
    function IsUserVoted($voteId)
    {
    }
    // return random unvoted vote id for user whith check permissions
    function GetAnyAccessibleVote($site_id = \SITE_ID, $channel_id = \null)
    {
    }
    /********************************************************************
    				Functions for old templates
    /*******************************************************************/
    function GetTemplateList($type = "SV", $path = "xxx")
    {
    }
    function arrAnswersSort(&$arr, $order = "desc")
    {
    }
    // return current vote form for channel
    function ShowCurrentVote($GROUP_SID, $site_id = \SITE_ID)
    {
    }
    // return previous vote results
    function ShowPrevVoteResults($GROUP_SID, $level = 1, $site_id = \SITE_ID)
    {
    }
    // return current vote results
    function ShowCurrentVoteResults($GROUP_SID, $site_id = \SITE_ID)
    {
    }
    // return current vote form with check permissions
    function ShowVote($VOTE_ID, $template1 = "")
    {
    }
    // return current vote results with check permissions
    function ShowVoteResults($VOTE_ID, $template1 = "")
    {
    }
    function fill_arc($start, $end, $color)
    {
    }
    function DecRGBColor($hex, &$dec1, &$dec2, &$dec3)
    {
    }
    function DecColor($hex)
    {
    }
    function HexColor($dec)
    {
    }
    function GetNextColor(&$color, &$current_color, $total, $start_color = "0000CC", $end_color = "FFFFCC")
    {
    }
    function DEMO_Sale_AddMenuItem($menuFile, $menuItem)
    {
    }
    function BasketNumberWordEndings($num, $lang = \false, $arEnds = \false)
    {
    }
    /**
     * @param Requests\Result $reqResult
     * @return string
     */
    function createMessagesHtml(\Bitrix\Sale\Delivery\Requests\Result $reqResult)
    {
    }
    function extractSummaryData(\Bitrix\Sale\Delivery\Requests\Result $reqResult)
    {
    }
    function getDeliveryBlockHtml($res, $deliveryId, $shipmentIds, $action, $weight)
    {
    }
    function convertHistoryToNewFormat($arFields)
    {
    }
    function initialize_params($url)
    {
    }
    function MP3DeliveryOrderCallback($productID, $userID, $bPaid, $orderID)
    {
    }
    function MP3StripNulls($str)
    {
    }
    function ReadMP3Tags($filePath)
    {
    }
    function writeToLog($cur_op)
    {
    }
    function GetBasketListSimple($bSkipFUserInit = \true)
    {
    }
    function GetBasketList($bSkipFUserInit = \true)
    {
    }
    function SaleFormatCurrency($fSum, $strCurrency, $OnlyValue = \false, $withoutFormat = \false)
    {
    }
    function AutoPayOrder($ORDER_ID)
    {
    }
    function CurrencyModuleUnInstallSale()
    {
    }
    function PayUserAccountDeliveryOrderCallback($productID, $userID, $bPaid, $orderID, $quantity = 1)
    {
    }
    /*
    * Formats user name. Used everywhere in 'sale' module
    *
    */
    function GetFormatedUserName($userId, $bEnableId = \true, $createEditLink = \true)
    {
    }
    /*
     * Updates basket item arrays with information about measures from catalog
     * Basically adds MEASURE_TEXT field with the measure name to each basket item array
     *
     * @param array $arBasketItems - array of basket items' arrays
     * @return array|bool
     */
    function getMeasures($arBasketItems)
    {
    }
    /*
     * Updates basket items' arrays with information about ratio from catalog
     * Basically adds MEASURE_RATIO field with the ratio coefficient to each basket item array
     *
     * @param array $arBasketItems - array of basket items' arrays
     * @return mixed
     */
    function getRatio($arBasketItems)
    {
    }
    /*
     * Creates an array of iblock properties for the elements with certain IDs
     *
     * @param array $arElementId - array of element id
     * @param array $arSelect - properties to select
     * @return array - array of properties' values in the form of array("ELEMENT_ID" => array of props)
     */
    function getProductProps($arElementId, $arSelect)
    {
    }
    function checkProductPropCode($selectItem)
    {
    }
    function updateBasketOffersProps($oldProps, $newProps)
    {
    }
    // some of this functions should probably migrate to CSaleHelper
    /*
     * get clean content for CRM
     */
    function CRMModeOutput($text)
    {
    }
    /*
     * get user name
     */
    function fGetUserName($USER_ID)
    {
    }
    /*
     * get template recomendet & basket product
     */
    function fGetFormatedProductData($USER_ID, $LID, $arData, $CNT, $currency, $type, $crmMode = \false)
    {
    }
    function fChangeOrderStatus($ID, $STATUS_ID)
    {
    }
    /*
     * shows file property input control
     */
    function fShowFilePropertyField($name, $property_fields, $values, $max_file_size_show = 50000)
    {
    }
    /*
     * get count name, mail, phones in profiles
     */
    function fGetCountProfileProps($PERSON_TYPE_ID)
    {
    }
    /*
     * user property (parameters order)
     */
    function fGetBuyerType($PERSON_TYPE_ID, $LID, $USER_ID = '', $ORDER_ID = 0, $formVarsSubmit = \false)
    {
    }
    /*
     * Returns HTML controls of the order properties
     *
     * Currently is used to show order properties related to payment/delivery systems in the order_new form
     */
    function getOrderPropertiesHTML($arOrderProps, $arPropValues = array(), $LID, $USER_ID = '', $ORDER_ID = 0, $formVarsSubmit = \false)
    {
    }
    /*
     * Returns HTML control with payment systems data
     */
    function fGetPaySystemsHTML($PERSON_TYPE_ID, $PAY_SYSTEM_ID)
    {
    }
    /*
     * user profile
     */
    function fUserProfile($USER_ID, $BUYER_TYPE = '', $default = '')
    {
    }
    /*
     * user balance
     */
    function fGetPayFromAccount($USER_ID, $CURRENCY)
    {
    }
    /**
     * Returns HTML select control with delivery services data for admin pages
     * @deprecated
     */
    function fGetDeliverySystemsHTML($location, $locationZip, $weight, $price, $currency, $siteId, $defaultDelivery, $arShoppingCart)
    {
    }
    /*
     * coupons
     */
    function fGetCoupon($COUPON)
    {
    }
    /*
     * get location ID and ZIP
     */
    function fGetLocationID($PERSON_TYPE_ID)
    {
    }
    /*
     * product basket array
     */
    function fGetUserShoppingCart($arProduct, $LID, $recalcOrder)
    {
    }
    /*
     * Returns HTML for recommended product, basket product or product from the viewed list
     */
    function fGetFormatedProduct($USER_ID, $LID, $arData, $currency, $type = '')
    {
    }
    function fDeleteDoubleProduct($arShoppingCart = array(), $arDelete = array(), $showAll = 'N')
    {
    }
    function getNameCount($propName, $propCode, $arProps)
    {
    }
    function getIblockNames($arIblockIDs, $arIblockNames)
    {
    }
    function getAdditionalColumns()
    {
    }
    /*
     * Returns HTML to download or view file (if image) in the order_detail
     */
    function showImageOrDownloadLink($fileId, $orderId = 0, $arSize = array("WIDTH" => 90, "HEIGHT" => 90))
    {
    }
    function getIblockPropInfo($value, $propData, $arSize = array("WIDTH" => 90, "HEIGHT" => 90), $orderId = 0)
    {
    }
    /*
     * Returns HTML of columns names (<td></td>) for the basket items table
     * Used in the order_new and order_detail
     */
    function getColumnsHeaders($arUserColumns, $page = "edit", $bWithStores = \false)
    {
    }
    /*
     * Returns appropriate css class for the input control if barcode is valid or not
     */
    function setBarcodeClass($barcodeValue)
    {
    }
    /*
     * Returns array of product parameters to fill basket table row in the order_new form
     * Can be called recursively to get data about Set items
     */
    function getProductDataToFillBasket($productId, $quantity, $userId, $LID, $userColumns, $tmpId = "")
    {
    }
    function saleLocationLoadFile($arParams)
    {
    }
    function saleLocationImport($arParams)
    {
    }
    function liqpay_parseTag($rs, $tag)
    {
    }
    function PrepareParams(&$item)
    {
    }
    function bx_hmac($algo, $data, $key, $raw_output = \false)
    {
    }
    function qiwiLog($data)
    {
    }
    function qiwiWalletGetAuthHeader()
    {
    }
    function qiwiWalletCheckAuth($login, $password)
    {
    }
    function qiwiWalletXmlResponse($code)
    {
    }
    function __CrmSaleQuery($crmUrlScheme, $crmUrlHost, $crmUrlPort, $crmLogin, $crmPassword, $head, $body, &$errorMessage)
    {
    }
    function canShowDiscountInCatalog(array $discount)
    {
    }
    function addSourceNameToRuntimeAndSelect(&$runtimeFields, &$arSelectFields)
    {
    }
    function makeSelectorFromPaySystems($psTypeYandex, $psIdValue, $personTypeId, $siteId)
    {
    }
    function getSelectHtml($name, array $data, $selected = "", $bShowNotUse = \true)
    {
    }
    function getAdminUrlByType($typeId, $entityId, $ownerEntityId = \null)
    {
    }
    function wrapDescrLHE($inputName, $content = '', $divId = \false)
    {
    }
    function bxStatSort($a, $b)
    {
    }
    function printProfileInfo($SID, $profileId, $arProfile, $baseCurrency)
    {
    }
    function GetRealPath2Report($rep_name)
    {
    }
    /*
     * distribution of discount products
     *
     * array $arBasket - user basket
     * float $discount - discount of order
     * float $priceTotal - summa of basket price
     */
    function GetUniformDestribution($arBasket, $discount, $priceTotal)
    {
    }
    function getRuleHtml($companyId)
    {
    }
    function LocalGetPSActionParams($fileName)
    {
    }
    function GetRights($ID)
    {
    }
    function getRestrictionHtml($paySystemId)
    {
    }
    function Number2Word_Rus($source, $IS_MONEY = "Y", $currency = "")
    {
    }
    function PrintRussian($num, $ext)
    {
    }
    function addNumeratorErrorToWarningString($_numeratorResult)
    {
    }
    function ___writeToAreasFile($fn, $text)
    {
    }
    function sanitizeInputData(&$item, $key, $Sanitizer)
    {
    }
    function mfi_format_line($arValue, $uid, $controlNameFull)
    {
    }
    function __DSGetInitData()
    {
    }
    function BX_FSBT($a, $b)
    {
    }
    function __FormResultListCheckFilter(&$str_error, &$arrFORM_FILTER)
    {
    }
    /**
     * Formats float number according to flags.
     *
     * @param float $num Number value to be formatted.
     * @param integer $dec How many digits after decimal point.
     * @param integer $mode Output mode.
     *
     * @return string
    **/
    function perfmon_NumberFormat($num, $dec = 2, $mode = 0)
    {
    }
    function perfmonErrorHandler($errno, $errstr, $errfile, $errline)
    {
    }
    function var_import_r($tokens, &$pos, &$result)
    {
    }
    function var_import($str)
    {
    }
    function TableExists($tableName)
    {
    }
    function _sort_index_columns($a, $b)
    {
    }
    function OutputTypeHtml($type)
    {
    }
    function completeLazyLoad($message = '')
    {
    }
    function isUsePrefix(array $property)
    {
    }
    // functions
    function __hlExportPrepareField($value, $userField, array $params = array())
    {
    }
    function addTableXmlIDCell($intPropID, $arPropInfo)
    {
    }
    function addTableIdCell($intPropID, $arPropInfo)
    {
    }
    function addTableNameCell($intPropID, $arPropInfo)
    {
    }
    function addTableLinkCell($intPropID, $arPropInfo)
    {
    }
    function addTableSortCell($intPropID, $arPropInfo)
    {
    }
    function addTableFileCell($intPropID, $arPropInfo)
    {
    }
    function addTableDefCell($intPropID, $arPropInfo)
    {
    }
    function addTableDescriptionCell($intPropID, $arPropInfo)
    {
    }
    function addTableFullDescriptionCell($intPropID, $arPropInfo)
    {
    }
    function addTableDelField($intPropID)
    {
    }
    function addTableRow($intPropID, $arPropInfo, $fields, $json = \false)
    {
    }
    function addHeadRow($fields, &$colCount)
    {
    }
    function addEmptyDefaultRow($property, $fields)
    {
    }
    // functions
    function __getEnumUserFields($ufId = \false, $clear = \false)
    {
    }
    function __hlImportPrepareField($value, &$userField, array $params = array())
    {
    }
    function __prepareArrayFromXml(array $item, $code = \false)
    {
    }
    function response($result)
    {
    }
    function checkAndActivate($fields)
    {
    }
    function CheckLevel($arItems)
    {
    }
    function getViewParams($userId, $type = \null)
    {
    }
    function deactivate($userId, $days = 0)
    {
    }
    function deffer($userId, $days = 0)
    {
    }
    function activate($userId)
    {
    }
    function getRecoveryCodes($userId, $isRegenerationAllowed = \false)
    {
    }
    function regenerateRecoveryCodes($userId)
    {
    }
    /**
     * @param $arDirs
     * @param bool $showTranslationDifferences
     *
     * @global array $arLangDirs
     *
     * @return void
     * @deprecated
     */
    function GetLangDirs($arDirs, $showTranslationDifferences = \false)
    {
    }
    /**
     * Loads file-folder structure into memory.
     *
     * @param string $path
     * @param bool $subDirs Recursively pass through into sub folders.
     * @param string[] $restructLanguageList Restrict language list.
     *
     * @global array $arDirs
     * @global array $arFiles
     *
     * @return bool
     * @deprecated
     */
    function GetTDirList($path, $subDirs = \false, $restructLanguageList = array())
    {
    }
    /**
     * Collects phrases form files into array and convert encoding.
     *
     * @param string $filterKeyIndex Phrase key code.
     * @param string $targetEncoding Target encoding.
     * @param string[] $restructLanguageList Restrict language list.
     *
     * @global array $arFiles
     *
     * @return array
     * @deprecated
     */
    function GetTCSVArray($filterKeyIndex, $targetEncoding = '', $restructLanguageList = array())
    {
    }
    /**
     * @param string $filePath
     * @param string $encodingIn
     * @param bool $rewriteMode
     * @param bool $mergeMode
     * @param string[] &$errors
     * @return bool
     * @deprecated
     */
    function SaveTCSVFile($filePath, $encodingIn, $rewriteMode, $mergeMode, &$errors)
    {
    }
    /**
     * @param $path
     * @param bool $IS_LANG_DIR
     *
     * @global array $arTLangs
     * @global array $arFiles
     * @global array $arDirFiles
     * @global array $arLangDirFiles
     * @deprecated
     */
    function GetTLangFiles($path, $IS_LANG_DIR = \false)
    {
    }
    /**
     * @param array $arFile Path
     * @param int &$count Count of coincidences
     *
     * @return bool
     * @throws Main\IO\FileNotFoundException
     * @deprecated
     */
    function TSEARCH($arFile, &$count)
    {
    }
    /**
     * @param $langFile
     *
     * @return bool
     * @deprecated
     */
    function TR_BACKUP($langFile)
    {
    }
    /**
     * @param array $arCommon
     * @param string $path
     * @param string $key
     * @param array $enabledLanguages
     *
     * @global array $arCommonCounter
     * @global int $Counter
     *
     * @return void
     * @deprecated
     */
    function GetPhraseCounters($arCommon, $entry, $enabledLanguages)
    {
    }
    /**
     * @param string $masterLanguage
     * @param array $listIds
     * @param array $errorCollection
     *
     * @return bool
     * @deprecated
     */
    function removePhrasesByMasterFile($masterLanguage, $listIds, &$errorCollection)
    {
    }
    /**
     * @param string $langFileName
     * @param array $phrases
     * @param array $errorCollection
     *
     * @return bool
     * @throws Main\IO\FileNotFoundException
     * @deprecated
     */
    function saveTranslationFile($langFileName, $phrases, &$errorCollection)
    {
    }
    function _ConvReplies($str1, $str2)
    {
    }
    function _AttemptExists($testID, $attemptID = \false)
    {
    }
    function _TimeToStringFormat($secTotal)
    {
    }
    function _IsItemSelected($arLinks = array())
    {
    }
    function _IsInsideSelect(&$arItems, $itemIndex, $depth_level)
    {
    }
    function ShowPanel()
    {
    }
    function GetPanel()
    {
    }
    function CustomizeEditor()
    {
    }
    function __learning_admin_get_menu($THIS, $arPath = array(), $deep = 0, &$immediateChildsIds, $loadOnlySpecialEntities = \false)
    {
    }
    function _ShowUserPropertyField($name, $property_fields, $values, $bInitDef = \false, $bVarsFromForm = \false, $max_file_size_show = 50000, $form_name = "form_element", $bCopy = \false)
    {
    }
    function _ShowHiddenValue($name, $value)
    {
    }
    function Learning_FindUserIDNew($tag_name, $tag_value, $user_name = "", $form_name = "form1", $select = "none", $tag_size = "3", $tag_maxlength = "", $button_value = "...", $tag_class = "typeinput", $button_class = "tablebodybutton", $search_page = "/bitrix/admin/user_search.php")
    {
    }
    /**
     * @param $intRangeID
     * @param $strPrefix
     * @return string
     */
    function __AddCellPriceType($intRangeID, $strPrefix)
    {
    }
    /**
     * @param $intRangeID
     * @param $strPrefix
     * @return string
     */
    function __AddCellPrice($intRangeID, $strPrefix)
    {
    }
    /**
     * @param $intRangeID
     * @param $strPrefix
     * @return string
     */
    function __AddCellCurrency($intRangeID, $strPrefix)
    {
    }
    function __showPopup($element_id, $items)
    {
    }
    /**
     * @param $intRangeID
     * @param $strPrefix
     * @return string
     */
    function __AddRangeRow($intRangeID, $strPrefix)
    {
    }
    /**
     * @param $arr
     * @param int $index
     * @return array
     */
    function arraysCombination(&$arr, $index = 0)
    {
    }
    function getStringCatalogStoreAmount($amount, $minAmount)
    {
    }
    /*************************************************************/
    /**
     * @deprecated deprecated since catalog 17.0.0
     * @see \Bitrix\Catalog\GroupTable::getList()
     *
     * @param string $by
     * @param string $order
     * @return bool|CDBResult
     */
    function GetCatalogGroups($by = "SORT", $order = "ASC")
    {
    }
    /**
     * @deprecated deprecated since catalog 17.0.0
     * @see \Bitrix\Catalog\GroupTable::getList()
     *
     * @param int $CATALOG_GROUP_ID
     * @return array|false
     */
    function GetCatalogGroup($CATALOG_GROUP_ID)
    {
    }
    /**
     * @deprecated deprecated since catalog 17.0.0
     * @see \Bitrix\Catalog\GroupLangTable::getList()
     *
     * @param int $CATALOG_GROUP_ID
     * @return string|null
     */
    function GetCatalogGroupName($CATALOG_GROUP_ID)
    {
    }
    /**
     * @deprecated deprecated since catalog 17.0.0
     * @see \Bitrix\Catalog\ProductTable::getList()
     *
     * @param int $PRODUCT_ID
     * @return array|false
     */
    function GetCatalogProduct($PRODUCT_ID)
    {
    }
    /**
     * @deprecated deprecated since catalog 17.0.0
     * @see CCatalogProduct::GetByIDEx or write optimal code
     *
     * @param int $PRODUCT_ID
     * @param bool $boolAllValues
     * @return array|bool
     */
    function GetCatalogProductEx($PRODUCT_ID, $boolAllValues = \false)
    {
    }
    /**
     * @deprecated deprecated since catalog 17.0.0
     * @see \Bitrix\Catalog\PriceTable::getList()
     *
     * @param int $PRODUCT_ID
     * @param int $CATALOG_GROUP_ID
     * @return array|false
     */
    function GetCatalogProductPrice($PRODUCT_ID, $CATALOG_GROUP_ID)
    {
    }
    /**
     * @deprecated deprecated since catalog 17.0.0
     * @see \Bitrix\Catalog\PriceTable::getList()
     *
     * @param int $PRODUCT_ID
     * @param string $by
     * @param string $order
     * @return array
     */
    function GetCatalogProductPriceList($PRODUCT_ID, $by = "SORT", $order = "ASC")
    {
    }
    /**
     * @deprecated
     *
     * @param int $IBLOCK
     * @param bool $SECT_ID
     * @param array $arOrder
     * @param int $cnt
     * @return false
     */
    function GetCatalogProductTable($IBLOCK, $SECT_ID = \false, $arOrder = array("sort" => "asc"), $cnt = 0)
    {
    }
    /**
     * @deprecated deprecated since catalog 9.0.0
     * @see CCurrencyLang::CurrencyFormat()
     *
     * @param int|float|string $fSum
     * @param string $strCurrency
     * @return string
     */
    function FormatCurrency($fSum, $strCurrency)
    {
    }
    /**
     * @deprecated deprecated since catalog 12.5.0
     * @see CCatalogProductProvider::GetProductData()
     *
     * @param int $productID
     * @param int|float $quantity
     * @param string $renewal
     * @param int $intUserID
     * @param bool|string $strSiteID
     * @return array|false
     */
    function CatalogBasketCallback($productID, $quantity = 0, $renewal = "N", $intUserID = 0, $strSiteID = \false)
    {
    }
    /**
     * @deprecated deprecated since catalog 12.5.0
     * @see CCatalogProductProvider::OrderProduct()
     *
     * @param int $productID
     * @param int|float $quantity
     * @param string $renewal
     * @param int $intUserID
     * @param bool|string $strSiteID
     * @return array|false
     */
    function CatalogBasketOrderCallback($productID, $quantity, $renewal = "N", $intUserID = 0, $strSiteID = \false)
    {
    }
    /**
     * @deprecated
     *
     * @param int $productID
     * @param int $UserID
     * @param bool|mixed|string $strSiteID
     * @return array|bool
     */
    function CatalogViewedProductCallback($productID, $UserID, $strSiteID = \SITE_ID)
    {
    }
    /**
     * @deprecated deprecated since catalog 12.5.6
     * @see CCatalogDiscountCoupon::CouponOneOrderDisable()
     *
     * @param int $intOrderID
     * @return void
     */
    function CatalogDeactivateOneTimeCoupons($intOrderID = 0)
    {
    }
    function CatalogPayOrderCallback($productID, $userID, $bPaid, $orderID)
    {
    }
    function CatalogRecurringCallback($productID, $userID)
    {
    }
    function CatalogBasketCancelCallback($PRODUCT_ID, $QUANTITY, $bCancel)
    {
    }
    /**
     * @param int $PRICE_ID
     * @param float|int $QUANTITY
     * @param array $arRewriteFields
     * @param array $arProductParams
     * @return bool|int
     */
    function Add2Basket($PRICE_ID, $QUANTITY = 1, $arRewriteFields = array(), $arProductParams = array())
    {
    }
    /**
     * @deprecated deprecated since catalog 17.5.9
     * @see \Bitrix\Catalog\Product\Basket::addProduct
     *
     * @param int $productId
     * @param float|int $quantity
     * @param array $rewriteFields
     * @param bool|array $productParams
     * @return false|int
     */
    function Add2BasketByProductID($productId, $quantity = 1, $rewriteFields = array(), $productParams = \false)
    {
    }
    /**
     * @param int $intProductID
     * @param array $arRewriteFields
     * @param array $arProductParams
     * @return bool|int
     */
    function SubscribeProduct($intProductID, $arRewriteFields = array(), $arProductParams = array())
    {
    }
    /**
     * @deprecated deprecated since catalog 17.0.0
     *
     * @param $ID
     * @param int|float $filterQauntity
     * @param array $arFilterType
     * @param string $VAT_INCLUDE
     * @param array $arCurrencyParams
     * @return array|bool
     */
    function CatalogGetPriceTableEx($ID, $filterQauntity = 0, $arFilterType = array(), $VAT_INCLUDE = 'Y', $arCurrencyParams = array())
    {
    }
    function CatalogGetPriceTable($ID)
    {
    }
    function __CatalogGetMicroTime()
    {
    }
    function __CatalogSetTimeMark($text, $startStop = "")
    {
    }
    function CatalogGetVATArray($arFilter = array(), $bInsertEmptyLine = \false)
    {
    }
    function CurrencyModuleUnInstallCatalog()
    {
    }
    function CatalogGenerateCoupon()
    {
    }
    function __GetCatLangMessages($strBefore, $strAfter, $MessID, $strDefMess = \false, $arLangList = array())
    {
    }
    /**
     * @deprecated deprecated since catalog 16.0.0
     * @see \Bitrix\Main\Type\Collection::normalizeArrayValuesByInt
     *
     * @param array &$arMap
     * @param bool $boolSort
     * @return void
     */
    function CatalogClearArray(&$arMap, $boolSort = \true)
    {
    }
    function __cmpRange($a, $b)
    {
    }
    function __GetRangeInfo($ID, $strPrefix)
    {
    }
    function __AddRangeCellSum($intRangeID, $strPrefix, $arRange)
    {
    }
    function __AddRangeCellDiscount($intRangeID, $strPrefix, $arRange)
    {
    }
    function __AddHiddenRow($intRangeID, $strPrefix, $arRange)
    {
    }
    /** For a given site ID, issues generated site title.
     * @param $siteId
     * @return string
     */
    function getSiteTitle($siteId)
    {
    }
    /**
     * @param $userId
     * @param $lid
     * @param $productId
     * @param string $productName
     * @param string $currency
     * @param array $arProduct
     * @return array|bool
     */
    function GetProductSku($userId, $lid, $productId, $productName = '', $currency = '', $arProduct = array())
    {
    }
    /**
     * @param $name
     * @param $property_fields
     * @param $values
     * @return bool|string
     */
    function _ShowGroupPropertyFieldList($name, $property_fields, $values)
    {
    }
    /**
     * @param $ID
     * @return mixed
     */
    function GetElementName($ID)
    {
    }
    function GetSectionName($ID)
    {
    }
    /*
    * @param $arCatalog
    * @param $urlCurrent
    * @return mixed
    */
    function fReplaceUrl($arCatalog, $urlCurrent)
    {
    }
    function __get_export_profiles($strItemID)
    {
    }
    function __get_import_profiles($strItemID)
    {
    }
    /////////////////////////////////////////////////////////////////////
    function GetReportsList($strPath2Import)
    {
    }
    /** For a given contractor ID, issues generated title.
     * @param $contractorId
     * @return int
     */
    function getContractorTitle($contractorId)
    {
    }
    function CSVCheckTimeout($max_execution_time)
    {
    }
    function AddSectionsRecursive($parent = "", $parent_id = 0)
    {
    }
    function cmlStartElement($parser, $name, $attrs)
    {
    }
    function cmlEndElement($parser, $name)
    {
    }
    function __SetTimeMark($text, $startStop = "")
    {
    }
    function __getMicroTime()
    {
    }
    function __getMemoryUsage()
    {
    }
    function cmlCreateTempTables()
    {
    }
    function __CSVArrayMultiply($arTuple, $arTemp, &$csvFile, $currentFile)
    {
    }
    function __CSVExportFile($intFileID, $strExportPath, $strFilePath, $strExportFromClouds = 'Y')
    {
    }
    function yandex_replace_special($arg)
    {
    }
    function yandex_text2xml($text, $bHSC = \false, $bDblQuote = \false)
    {
    }
    function __sortCSVOrder($a, $b)
    {
    }
    function PrepareString($str, $KillTags = \False)
    {
    }
    function yandex_get_value(array $arOffer, string $param, $PROPERTY, array $arProperties, array $arUserTypeFormat, array $options)
    {
    }
    function yandexPrepareItems(array &$list, array $parents, array $options)
    {
    }
    function get_plural_messages($prefix)
    {
    }
    // http://localization-guide.readthedocs.org/en/latest/l10n/pluralforms.html
    function plural_form($n, $forms)
    {
    }
    function pvalue($p1, $p2, $n1, $n2)
    {
    }
    function PHPToHiddens($ob, $name)
    {
    }
    function __UnEscape(&$item, $key)
    {
    }
    function __photo_template_default_comments_ending($count)
    {
    }
    function __photo_template_default_shows_ending($count)
    {
    }
    function bxRotatorAddFlashvar($config, $key, $value)
    {
    }
    function getImageUploaderId($str = 'bx_img_upl_')
    {
    }
    // Called once before all uploads
    function onBeforeUpload($Params)
    {
    }
    // Called once after uploads
    function onAfterUpload($Params)
    {
    }
    // Used to get album and create new album (only once)
    function GetAlbumId($Params)
    {
    }
    // Called for every file which loaded by Java/ActiveX/Flash or simple uploader
    function handleFile($Info, $arFiles, $Params)
    {
    }
    function simpleUploadHandler($arParams, $arResult = array())
    {
    }
    function _get_size($v)
    {
    }
    function UnsharpMask(&$img)
    {
    }
    // Spisok oshibok
    // fatal'nye oshibki
    // 100 - oshibka pri proverke sessii
    // ne najdeny elementy
    // 101 - ne najden infoblok
    // 102 - ne najdena sekciya
    // 103 - ne najden element infobloka
    // 104 - ne najdena fotogalereya
    // 105 - ne najden pol'zovatel'
    // net prav
    // 110 - dlya dostupa neobhodimo avtorizovat'sya
    // 111 - net dostupa k infobloku
    // 112 - net prav dlya sozdaniya galerei
    // 113 - net prav dlya sozdaniya ewe odnoj galerei (single)
    // Oshibki dannyh
    // 200 - pustoj zapros
    // 201 - ne ukazany obyazatel'nye parametry
    // Pol'zovatel'skie oshibki (500-600)
    function PhotoShowError($arError, $arShowFields = array("ID", "NAME"), $bShowErrorCode = \false)
    {
    }
    function PhotoGetBrowser()
    {
    }
    function PhotoDateFormat($format = "", $timestamp = "")
    {
    }
    function PhotoFormatDate($strDate, $format = "DD.MM.YYYY HH:MI:SS", $new_format = "DD.MM.YYYY HH:MI:SS")
    {
    }
    function PClearComponentCache($components, $arSite = array())
    {
    }
    function PClearComponentCacheEx($iblockId = \false, $arSections = array(), $arGalleries = array(), $arUsers = array(), $clearCommon = \true)
    {
    }
    function CustomizeLightEditorForBlog()
    {
    }
    function getValidImageSizes()
    {
    }
    function validImageSizes($width, $height, $fileArray)
    {
    }
    function roundTo10($val)
    {
    }
    function search_isShortDate($strDate)
    {
    }
    function stemming_init($sLang = "ru")
    {
    }
    function stemming_upper($sText, $sLang = "ru")
    {
    }
    function stemming_split($sText, $sLang = "ru")
    {
    }
    function stemming($sText, $sLang = "ru", $bIgnoreStopWords = \false, $bReturnPositions = \false)
    {
    }
    function stemming_detect($word, $arStemInfo, $skipLang)
    {
    }
    function stemming_upper_default($sText)
    {
    }
    function stemming_default($sText)
    {
    }
    function stemming_stop_default($sWord)
    {
    }
    function stemming_letter_default()
    {
    }
    function stemming_letter_ru()
    {
    }
    function stemming_ru_sort($a, $b)
    {
    }
    function stemming_stop_ru($sWord)
    {
    }
    function stemming_upper_ru($sText)
    {
    }
    function stemming_ru($word, $flags = 0)
    {
    }
    function tags_prepare($sText, $site_id = \false)
    {
    }
    function TagsShowScript()
    {
    }
    function InputTags($sName = "", $sValue = "", $arSites = array(), $sHTML = "", $sId = "")
    {
    }
    function stemming_letter_en()
    {
    }
    function stemming_stop_en($sWord)
    {
    }
    function stemming_upper_en($sText)
    {
    }
    function stemming_en($word)
    {
    }
    // http://www.i18nguy.com/unicode/turkish-i18n.html
    function stemming_letter_tr()
    {
    }
    function stemming_upper_tr($sText)
    {
    }
    /**
     * Returns filtered sName concatenated with random number.
     *
     * @param string $sName
     * @return string
     * @deprecated
     */
    function GenerateUniqId($sName)
    {
    }
    function CheckIBlockType($ID, $SECTIONS = "Y")
    {
    }
    function __vote_template_default_votes_ending($count)
    {
    }
    function __GD_AIE_ConvertDateTime(&$item, $key)
    {
    }
    /*
    * $intPropID - ID value or n0...nX
    * $arPropInfo = array(
    * 		ID
    * 		XML_ID
    * 		VALUE
    * 		SORT
    * 		DEF = Y/N
    * 		MULTIPLE = Y/N
    * )
    */
    function __AddListValueIDCell($intPropID)
    {
    }
    function __AddListValueXmlIDCell($intPropID, $arPropInfo)
    {
    }
    function __AddListValueValueCell($intPropID, $arPropInfo)
    {
    }
    function __AddListValueSortCell($intPropID, $arPropInfo)
    {
    }
    function __AddListValueDefCell($intPropID, $arPropInfo)
    {
    }
    function __AddListValueRow($intPropID, $arPropInfo)
    {
    }
    function FirstStep12($arIBlock)
    {
    }
    function NextStep12($arIBlock)
    {
    }
    function LastStep12($arIBlock)
    {
    }
    function FirstStep21($arIBlock)
    {
    }
    function NextStep21($arIBlock)
    {
    }
    function LastStep21($arIBlock)
    {
    }
    /////////////////////////////////////////////////////////////////////
    function GetValueByCodeTmp($code)
    {
    }
    /*
    This function takes an array (arTuple) which is mix of scalar values and arrays
    and return "rectangular" array of arrays.
    For example:
    array(1, array(1, 2), 3, arrays(4, 5))
    will be transformed as
    array(
    	array(1, 1, 3, 4),
    	array(1, 1, 3, 5),
    	array(1, 2, 3, 4),
    	array(1, 2, 3, 5),
    )
    */
    function ArrayMultiply(&$arResult, $arTuple, $arTemp = array())
    {
    }
    function tabFilter($tab)
    {
    }
    function _get_elements_menu($arType, $arIBlock, $SECTION_ID)
    {
    }
    function _get_other_elements_menu($arType, $arIBlock, $arSection, &$more_url)
    {
    }
    function _get_sections_menu($arType, $arIBlock, $DEPTH_LEVEL, $SECTION_ID, $arSectionsChain = \false)
    {
    }
    function _get_iblocks_menu($arType)
    {
    }
    function _get_iblocks_admin_menu($arType)
    {
    }
    function _get_types_admin_menu($arTypes, $bUserIsAdmin)
    {
    }
    function GetIBlockTypeID($IBLOCK_ID)
    {
    }
    function _ShowGroupPropertyField($name, $property_fields, $values)
    {
    }
    function CheckIBlockTypeID($strIBlockTypeID, $strNewIBlockTypeID, $strNeedAdd)
    {
    }
    function ConvProp(&$arProperty, $arHiddenPropFields)
    {
    }
    function GetPropertyInfo($strPrefix, $ID, $boolUnpack = \true, $arHiddenPropFields = array())
    {
    }
    function CheckSKUProperty($ID, $SKUID)
    {
    }
    function ConvertToSafe($arProp, $arDisFields)
    {
    }
    function __AddPropCellID($intOFPropID, $strPrefix, $arPropInfo)
    {
    }
    function __AddPropCellName($intOFPropID, $strPrefix, $arPropInfo)
    {
    }
    function __AddPropCellType($intOFPropID, $strPrefix, $arPropInfo)
    {
    }
    function __AddPropCellActive($intOFPropID, $strPrefix, $arPropInfo)
    {
    }
    function __AddPropCellMulti($intOFPropID, $strPrefix, $arPropInfo)
    {
    }
    function __AddPropCellReq($intOFPropID, $strPrefix, $arPropInfo)
    {
    }
    function __AddPropCellSort($intOFPropID, $strPrefix, $arPropInfo)
    {
    }
    function __AddPropCellCode($intOFPropID, $strPrefix, $arPropInfo)
    {
    }
    function __AddPropCellDetail($intOFPropID, $strPrefix, $arPropInfo)
    {
    }
    function __AddPropCellDelete($intOFPropID, $strPrefix, $arPropInfo)
    {
    }
    function __AddPropRow($intOFPropID, $strPrefix, $arPropInfo)
    {
    }
    /**
     * Returns list of the information blocks of specified $type linked to the current site
     * including ELEMENT_CNT column which presents currently active elements.
     *
     * @param string $type Information blocks type to get blocks from.
     * @param array|string|int $arTypesInc Information block ID or CODE or array of IDs or CODEs to get.
     * @param array|string|int $arTypesExc Information block ID or CODE or array of IDs or CODEs to exclude.
     * @param array $arOrder Order in which blocks will be returned.
     * @param int $cnt Maximum count of iblocks to be returned.
     *
     * @return CIBlockResult
     * @deprecated No longer used by internal code and not recommended.
     */
    function GetIBlockListWithCnt($type, $arTypesInc = array(), $arTypesExc = array(), $arOrder = array("sort" => "asc"), $cnt = 0)
    {
    }
    /**
     * Returns list of the information blocks of specified $type linked to the current site
     *
     * @param string $type Information blocks type to get blocks from.
     * @param array|string|int $arTypesInc Information block ID or CODE or array of IDs or CODEs to get.
     * @param array|string|int $arTypesExc Information block ID or CODE or array of IDs or CODEs to exclude.
     * @param array $arOrder Order in which blocks will be returned.
     * @param int $cnt Maximum count of iblocks to be returned.
     *
     * @return CIBlockResult
     * @deprecated No longer used by internal code and not recommended.
     */
    function GetIBlockList($type, $arTypesInc = array(), $arTypesExc = array(), $arOrder = array("sort" => "asc"), $cnt = 0)
    {
    }
    /**
     * Returns list of the information blocks of specified $type linked to the specified site
     *
     * @param string $lang Site identifier blocks linked to.
     * @param string $type Information blocks type to get blocks from.
     * @param array|string|int $arTypesInc Information block ID or CODE or array of IDs or CODEs to get.
     * @param array|string|int $arTypesExc Information block ID or CODE or array of IDs or CODEs to exclude.
     * @param array $arOrder Order in which blocks will be returned.
     * @param int $cnt Maximum count of iblocks to be returned.
     * @param bool $bCountActive
     *
     * @return CIBlockResult
     * @deprecated No longer used by internal code and not recommended.
     */
    function GetIBlockListLang($lang, $type, $arTypesInc = array(), $arTypesExc = array(), $arOrder = array("SORT" => "ASC"), $cnt = 0, $bCountActive = \false)
    {
    }
    /**
     * Returns an array with Information block fields or false if none found.
     * iblock have to be linked to the current site.
     *
     * @param int $ID Numeric identifier of the iblock
     * @param string $type Type of iblock restrict search to.
     *
     * @return array
     */
    function GetIBlock($ID, $type = "")
    {
    }
    /**
     * Returns an array with Information block fields or false if none found.
     * iblock have to be linked to the current site.
     *
     * @param string $lang Site identifier block linked to.
     * @param int $ID Numeric identifier of the iblock
     * @param string $type Type of iblock restrict search to.
     *
     * @return array
     */
    function GetIBlockLang($lang, $ID, $type = "")
    {
    }
    /**
     * Returns a list of the currently active elements of specified information blocks.
     * Checks permissions by default.
     *
     * @param string $type Information blocks type to get blocks from.
     * @param array|string|int $arTypesInc Information block ID or CODE or array of IDs or CODEs to get.
     * @param array|string|int $arTypesExc Information block ID or CODE or array of IDs or CODEs to exclude.
     * @param array $arOrder Order in which elements will be returned.
     * @param int $cnt Maximum count of elements to be returned.
     * @param array $arFilter Filter to be applied
     * @param array $arSelect Fields to return (all if empty or not supplied)
     * @param bool $arGroupBy Fields to group by (none grouping by default), overwrites $arSelect
     *
     * @return CIBlockResult
     * @deprecated No longer used by internal code and not recommended.
     */
    function GetIBlockElementListEx($type, $arTypesInc = array(), $arTypesExc = array(), $arOrder = array("sort" => "asc"), $cnt = 0, $arFilter = array(), $arSelect = array(), $arGroupBy = \false)
    {
    }
    /**
     * Returns count of the currently active elements of specified information blocks.
     * Checks permissions by default.
     *
     * @param string $type Information blocks type to get blocks from.
     * @param array|string|int $arTypesInc Information block ID or CODE or array of IDs or CODEs to get.
     * @param array|string|int $arTypesExc Information block ID or CODE or array of IDs or CODEs to exclude.
     * @param array $arOrder Order in which elements will be returned.
     * @param int $cnt Maximum count of elements to be returned.
     * @param array $arFilter Filter to be applied
     *
     * @return int
     * @deprecated No longer used by internal code and not recommended.
     */
    function GetIBlockElementCountEx($type, $arTypesInc = array(), $arTypesExc = array(), $arOrder = array("sort" => "asc"), $cnt = 0, $arFilter = array())
    {
    }
    /**
     * Returns count of the currently active elements of specified information blocks.
     * Checks permissions by default.
     *
     * @param string $lang Site identifier blocks linked to.
     * @param string $type Information blocks type to get blocks from.
     * @param array|string|int $arTypesInc Information block ID or CODE or array of IDs or CODEs to get.
     * @param array|string|int $arTypesExc Information block ID or CODE or array of IDs or CODEs to exclude.
     * @param array $arOrder Order in which elements will be returned.
     * @param int $cnt Maximum count of elements to be returned.
     * @param array $arFilter Filter to be applied
     *
     * @return int
     * @deprecated No longer used by internal code and not recommended.
     */
    function GetIBlockElementCountExLang($lang, $type, $arTypesInc = array(), $arTypesExc = array(), $arOrder = array("sort" => "asc"), $cnt = 0, $arFilter = array())
    {
    }
    /**
     * Returns a list of the currently active elements of specified information blocks.
     * Checks permissions by default.
     *
     * @param string $lang Site identifier blocks linked to.
     * @param string $type Information blocks type to get blocks from.
     * @param array|string|int $arTypesInc Information block ID or CODE or array of IDs or CODEs to get.
     * @param array|string|int $arTypesExc Information block ID or CODE or array of IDs or CODEs to exclude.
     * @param array $arOrder Order in which elements will be returned.
     * @param int $cnt Maximum count of elements to be returned.
     * @param array $arFilter Filter to be applied
     * @param array $arSelect Fields to return (all if empty or not supplied)
     * @param bool $arGroupBy Fields to group by (none grouping by default), overwrites $arSelect
     *
     * @return CIBlockResult|int
     * @deprecated No longer used by internal code and not recommended.
     */
    function GetIBlockElementListExLang($lang, $type, $arTypesInc = array(), $arTypesExc = array(), $arOrder = array("sort" => "asc"), $cnt = 0, $arFilter = array(), $arSelect = array(), $arGroupBy = \false)
    {
    }
    /**
     * Makes filter for CIBlockElement::GetList. Internal function
     *
     * @param string $lang Site identifier blocks linked to.
     * @param string $type Information blocks type to get blocks from.
     * @param array|string|int $arTypesInc Information block ID or CODE or array of IDs or CODEs to get.
     * @param array|string|int $arTypesExc Information block ID or CODE or array of IDs or CODEs to exclude.
     * @param array $arOrder Order in which elements will be returned.
     * @param int $cnt Maximum count of elements to be returned.
     * @param array $arFilter Filter to be applied
     * @param array $arSelect Fields to return (all if empty or not supplied)
     *
     * @return array
     * @deprecated No longer used by internal code and not recommended.
     */
    function _GetIBlockElementListExLang_tmp($lang, $type, $arTypesInc = array(), $arTypesExc = array(), $arOrder = array("sort" => "asc"), $cnt = 0, $arFilter = array(), $arSelect = array())
    {
    }
    /**
     * Returns number of active elements for given iblock.
     *
     * @param int $IBLOCK Information block ID.
     * @param bool $SECTION_ID Section ID.
     * @param array $arOrder Has no meaning here.
     * @param int $cnt Not used.
     *
     * @return int
     * @deprecated No longer used by internal code and not recommended.
     */
    function GetIBlockElementCount($IBLOCK, $SECTION_ID = \false, $arOrder = array("sort" => "asc"), $cnt = 0)
    {
    }
    /**
     * Return the list of the elements.
     *
     * @param int $IBLOCK Information block ID.
     * @param bool $SECTION_ID Section ID.
     * @param array $arOrder Has no meaning here.
     * @param int $cnt
     * @param array $arFilter
     * @param array $arSelect
     *
     * @return CIBlockResult
     * @deprecated No longer used by internal code and not recommended.
     */
    function GetIBlockElementList($IBLOCK, $SECTION_ID = \false, $arOrder = array("sort" => "asc"), $cnt = 0, $arFilter = array(), $arSelect = array())
    {
    }
    /**
     * Returns an array with element fields and PROPERTIES key containing element property values.
     * false when element not active or not exists.
     *
     * @param int $ID Identifier of the elements to be returned.
     * @param string $TYPE Information block type identifier to filter elements with.
     *
     * @return array|bool
     * @deprecated No longer used by internal code and not recommended.
     */
    function GetIBlockElement($ID, $TYPE = "")
    {
    }
    /**
     * Returns list of sections of specified iblock including ELEMENT_CNT column.
     *
     * @param int $IBLOCK
     * @param bool|int $SECT_ID
     * @param array $arOrder
     * @param int $cnt
     * @param array $arFilter
     *
     * @return CIBlockResult
     * @deprecated No longer used by internal code and not recommended.
     */
    function GetIBlockSectionListWithCnt($IBLOCK, $SECT_ID = \false, $arOrder = array("left_margin" => "asc"), $cnt = 0, $arFilter = array())
    {
    }
    /**
     * Returns list of sections of specified iblock.
     *
     * @param int $IBLOCK
     * @param bool|int $SECT_ID
     * @param array $arOrder
     * @param int $cnt
     * @param array $arFilter
     *
     * @return CIBlockResult
     * @deprecated No longer used by internal code and not recommended.
     */
    function GetIBlockSectionList($IBLOCK, $SECT_ID = \false, $arOrder = array("left_margin" => "asc"), $cnt = 0, $arFilter = array())
    {
    }
    /**
     * Returns an array with section fields if found. Else returns false.
     *
     * @param int $ID
     * @param string $TYPE
     *
     * @return array|bool
     * @deprecated No longer used by internal code and not recommended.
     */
    function GetIBlockSection($ID, $TYPE = "")
    {
    }
    /**
     * Returns path to the section.
     *
     * @param int $IBLOCK_ID
     * @param int $SECTION_ID
     * @return CIBlockResult
     * @deprecated No longer used by internal code and not recommended.
     */
    function GetIBlockSectionPath($IBLOCK_ID, $SECTION_ID)
    {
    }
    /**
     * Converts xml string into recursive array
     *
     * @param string $data
     * @return array
     * @deprecated No longer used by internal code and not recommended.
     */
    function xmlize_rss($data)
    {
    }
    /**
     * Helper function for xmlize_rss
     *
     * @param array $values
     * @param int $i
     * @return array
     * @deprecated No longer used by internal code and not recommended.
     */
    function xml_depth_rss($values, &$i)
    {
    }
    /**
     * Returns html presenting a control of two drop boxes to choose iblock iblock from.
     *
     * @param int $IBLOCK_ID Selected iblock
     * @param string $strTypeName Name of the iblock type select
     * @param string $strIBlockName Name of the iblock name select
     * @param bool|array $arFilter Additional filter for iblock list
     * @param string $onChangeType Additional JS handler for type select
     * @param string $onChangeIBlock Additional JS handler for iblock select
     * @param string $strAddType Additional html inserted into type select
     * @param string $strAddIBlock Additional html inserted into iblock select
     * @return string
     */
    function GetIBlockDropDownListEx($IBLOCK_ID, $strTypeName, $strIBlockName, $arFilter = \false, $onChangeType = '', $onChangeIBlock = '', $strAddType = '', $strAddIBlock = '')
    {
    }
    /**
     * Returns html presenting a control of two drop boxes to choose iblock iblock from.
     * All iblock permission check to be at least W
     *
     * @param int $IBLOCK_ID Selected iblock
     * @param string $strTypeName Name of the iblock type select
     * @param string $strIBlockName Name of the iblock name select
     * @param bool|array $arFilter Additional filter for iblock list
     * @param string $strAddType Additional html inserted into type select
     * @param string $strAddIBlock Additional html inserted into iblock select
     * @return string
     */
    function GetIBlockDropDownList($IBLOCK_ID, $strTypeName, $strIBlockName, $arFilter = \false, $strAddType = '', $strAddIBlock = '')
    {
    }
    /**
     * Imports an xml file into iblock. File may be an .tar.gz archive.
     *
     * @param string $file_name Name of the file to import
     * @param string $iblock_type IBlock type ID to import iblock to
     * @param string|array $site_id ID of the site or array of IDs to bind iblock to
     * @param string $section_action What to do with sections missed in the file. D - delete or A - deactivate.
     * @param string $element_action What to do with elements missed in the file. D - delete or A - deactivate.
     * @param bool $use_crc Whenever to use CRC check for optimizi=ation or force an update
     * @param bool $preview If true when use iblock settings to generate preview pictures from detail.
     * @param bool $sync If true uses alternative set of tables in order not to interfere with other import processes
     * @param bool $return_last_error If true will return string with error description in case of failure
     * @param bool $return_iblock_id If true will return iblock identifier (int) in case of success
     * @return bool|int|string
     */
    function ImportXMLFile($file_name, $iblock_type = "-", $site_id = '', $section_action = "D", $element_action = "D", $use_crc = \false, $preview = \false, $sync = \false, $return_last_error = \false, $return_iblock_id = \false)
    {
    }
    function _ShowStringPropertyField($name, $property_fields, $values, $bInitDef = \false, $bVarsFromForm = \false)
    {
    }
    function _ShowElementPropertyField($name, $property_fields, $values, $bVarsFromForm = \false)
    {
    }
    function _ShowFilePropertyField($name, $property_fields, $values, $max_file_size_show = 50000, $bVarsFromForm = \false)
    {
    }
    function _ShowListPropertyField($name, $property_fields, $values, $bInitDef = \false, $def_text = \false)
    {
    }
    function _ShowPropertyField($name, $property_fields, $values, $bInitDef = \false, $bVarsFromForm = \false, $max_file_size_show = 50000, $form_name = "form_element", $bCopy = \false)
    {
    }
    function IBlockShowRights($entity_type, $iblock_id, $id, $section_title, $variable_name, $arPossibleRights, $arActualRights, $bDefault = \false, $bForceInherited = \false, $arSelected = array(), $arHighLight = array())
    {
    }
    function GetUserProfileLink($user_id, $title)
    {
    }
    function IBlockGetHiddenHTML($name, $value)
    {
    }
    function IBlockGetWatermarkPositions()
    {
    }
    function IBlockInheritedPropertyInput($iblock_id, $id, $data, $type, $checkboxLabel = "")
    {
    }
    function IBlockInheritedPropertyHidden($iblock_id, $id, $data, $type, $checkboxLabel = "")
    {
    }
    function FindTopicID($tag_name, $tag_value, $topic_name = "", $form_name = "form1", $tag_size = "3", $tag_maxlength = "", $button_value = "...", $tag_class = "typeinput", $button_class = "tablebodybutton", $search_page = "/bitrix/admin/forum_topics_search.php")
    {
    }
    function CreatePattern($pattern = "", $DICTIONARY_ID = 0)
    {
    }
    function GenPatternAll($DICTIONARY_ID_W = 0, $DICTIONARY_ID_T = 0)
    {
    }
    function UET($EVENT_NAME, $NAME, $LID, $DESCRIPTION)
    {
    }
    function __array_merge($arr1, $arr2, $deep = \false)
    {
    }
    function GetUserName($USER_ID, $nameTemplate = "")
    {
    }
    function __create_uuid($params)
    {
    }
    function CheckLastTopicsFilter()
    {
    }
    function ForumUrlExtractTmp($s)
    {
    }
    function ForumNumberRusEnding($num)
    {
    }
    function forumCommentsCommentMobile(array $comment, array $arParams, array $arResult, \ForumCommentsComponent $component)
    {
    }
    // Need for custom templates. Do not delete.
    function WrapLongWord(&$value, $WordLength = \false, $WordBoundary = \false, $WordSeparator = \false)
    {
    }
    function ForumNumberEnding($num)
    {
    }
    function endingTopicsPosts($mark, $count)
    {
    }
    function ForumCurrUserPermissions($FID, $arAddParams = array())
    {
    }
    function ForumSubscribeNewMessagesEx($FID, $TID, $NEW_TOPIC_ONLY, &$strErrorMessage, &$strOKMessage, $strSite = \false, $SOCNET_GROUP_ID = \false)
    {
    }
    function ForumUnsubscribeNewMessagesEx($FID, $TID, $NEW_TOPIC_ONLY, &$strErrorMessage, &$strOKMessage, $strSite = \false, $SOCNET_GROUP_ID = \false)
    {
    }
    function ForumUnsubscribeNewMessages($FID, $TID, &$strErrorMessage, &$strOKMessage, $NEW_TOPIC_ONLY = "N", $strSite = \false, $SOCNET_GROUP_ID = \false)
    {
    }
    function ForumSubscribeNewMessages($FID, $TID, &$strErrorMessage, &$strOKMessage, $NEW_TOPIC_ONLY = "N", $strSite = \false, $SOCNET_GROUP_ID = \false)
    {
    }
    function ForumGetRealIP()
    {
    }
    function ForumAddMessage($MESSAGE_TYPE, $FID, $TID, $MID, $arFieldsG, &$strErrorMessage, &$strOKMessage, $iFileSize = \false, $captcha_word = "", $captcha_sid = 0, $captcha_code = "")
    {
    }
    function ForumModerateMessage($message, $TYPE, &$strErrorMessage, &$strOKMessage, $arAddParams = array())
    {
    }
    function ForumOpenCloseTopic($topicIds, $TYPE, &$strErrorMessage, &$strOKMessage, $arAddParams = array())
    {
    }
    function ForumTopOrdinaryTopic($topic, $TYPE, &$strErrorMessage, &$strOKMessage, $arAddParams = array())
    {
    }
    function ForumDeleteTopic($topic, &$strErrorMessage, &$strOKMessage, $arAddParams = array())
    {
    }
    function ForumDeleteMessage($message, &$strErrorMessage, &$strOKMessage, $arAddParams = array())
    {
    }
    function ForumSpamTopic($topic, &$strErrorMessage, &$strOKMessage, $arAddParams = array())
    {
    }
    function ForumSpamMessage($message, &$strErrorMessage, &$strOKMessage, $arAddParams = array())
    {
    }
    function ForumMessageExistInArray($message = array())
    {
    }
    function ForumDeleteMessageArray($message, &$strErrorMessage, &$strOKMessage)
    {
    }
    function ForumModerateMessageArray($message, $TYPE, &$strErrorMessage, &$strOKMessage)
    {
    }
    function ForumShowTopicPages($nMessages, $strUrl, $pagen_var = "PAGEN_1", $PAGE_ELEMENTS = \false)
    {
    }
    function ForumMoveMessage($FID, $TID, $Message, $NewTID = 0, $arFields, &$strErrorMessage, &$strOKMessage, $iFileSize = \false)
    {
    }
    /**
     * @param $num_cols
     * @deprecated
     * @return string
     */
    function ForumPrintIconsList($num_cols, $value = "")
    {
    }
    /**
     * @deprecated
     * @param $num_cols
     * @param bool $strLang
     * @return string
     */
    function ForumPrintSmilesList($num_cols, $strLang = \false)
    {
    }
    function ForumMoveMessage2Support($MID, &$strErrorMessage, &$strOKMessage, $arAddParams = array())
    {
    }
    function ForumVote4User($UID, $VOTES, $bDelVote, &$strErrorMessage, &$strOKMessage)
    {
    }
    function ShowActiveUser($arFields = array())
    {
    }
    function ForumGetUserForumStatus($userID = \false, $perm = \false, $arAdditionalParams = array())
    {
    }
    function ForumAddPageParams($page_url = "", $params = array(), $addIfNull = \false, $htmlSpecialChars = \true)
    {
    }
    function ForumActions($action, $arFields, &$strErrorMessage, &$strOKMessage)
    {
    }
    function ForumDataToArray(&$message)
    {
    }
    function ForumGetTopicSort(&$field_name, &$direction, $arForumInfo = array())
    {
    }
    function ForumShowError($arError, $bShowErrorCode = \false)
    {
    }
    function ForumClearComponentCache($components)
    {
    }
    function InitSortingEx($Path = \false, $sByVar = "by", $sOrderVar = "order")
    {
    }
    function ForumGetEntity($entityId, $value = \true)
    {
    }
    function Error($error)
    {
    }
    function __forum_chapter_menu_gen()
    {
    }
    function __recursive_htmlspecialcharsbx(&$res)
    {
    }
    /**
     * @deprecated
     */
    function ForumSetAllMessagesReaded($FID = \false)
    {
    }
    /**
     * @deprecated
     */
    function ForumSetReader($FID)
    {
    }
    /**
     * @deprecated
     */
    function ForumSetAllMessagesRead($FID = \false)
    {
    }
    /**
     * @deprecated
     */
    function ForumDeleteSubscribe($ID, &$strErr, &$strOk)
    {
    }
    /**
     * @deprecated
     */
    function ForumInitParams()
    {
    }
    /**
     * @deprecated
     */
    function NewMessageForum($FID, $LAST_POST_DATE = \false)
    {
    }
    /**
     * @deprecated
     */
    function NewMessageTopic($FID, $TID, $LAST_POST_DATE, $LAST_VISIT)
    {
    }
    /**
     * @deprecated
     */
    function ForumSetReadForum($FID = \false)
    {
    }
    /**
     * @deprecated
     */
    function ForumSetReadTopic($FID, $TID)
    {
    }
    /**
     * @deprecated
     */
    function ForumSetLastVisit($forumId = \false, $TID = \false, $arAddParams = array())
    {
    }
    /**
     * @deprecated
     */
    function ForumGetFirstUnreadMessage($FID, $TID)
    {
    }
    function ForumAddDeferredScript($script)
    {
    }
    /*
    GetMessage("FORUM_NO_MODULE");
    */
    function CustomizeLHEForForum()
    {
    }
    function CheckDateFilter(\CAdminList $lAdmin, $date_from, $date_to)
    {
    }
    function CustomizeLHEForBlogComments()
    {
    }
    function offical_answer_blog_cmp($a, $b)
    {
    }
    function ShowComment($comment, $tabCount = 0, $tabSize = 2.5, $canModerate = \false, $User = array(), $use_captcha = \false, $bCanUserComment = \false, $errorComment = \false, $arParams = array())
    {
    }
    function RecursiveComments($sArray, $key, $level = 0, $first = \false, $canModerate = \false, $User, $use_captcha, $bCanUserComment, $errorComment, $arSumComments, $arParams)
    {
    }
    function __PrintRussian($num, $ext)
    {
    }
    function __sup_debug($v, $name = \false)
    {
    }
    function _GetDictionaryInfo($ID, $TYPE, $CODE, &$arTicketDictionary)
    {
    }
    function _GetUserInfo($USER_ID, $CODE)
    {
    }
    function _InitFilter($arFilterFields)
    {
    }
    //Functions
    function _GetDictionaryInfoEx($arDictionary)
    {
    }
    function _GetDropDownDictionary($TYPE, &$TICKET_DICTIONARY)
    {
    }
    /***************************************************************************
    									Ôóíêöèè
    ***************************************************************************/
    function CheckFields()
    {
    }
    function symbolsAndNumbers($str)
    {
    }
    function CheckTime($minute_from, $minute_till)
    {
    }
    function CheckShedule($shedule)
    {
    }
    /*function Support_GetUserInfo($USER_ID, &$login, &$name)
    {
    	static $arrUsers;
    	$login = "";
    	$name = "";
    	if (intval($USER_ID)>0)
    	{
    		if (is_array($arrUsers) && in_array($USER_ID, array_keys($arrUsers)))
    		{
    			$login = $arrUsers[$USER_ID]["LOGIN"];
    			$name = $arrUsers[$USER_ID]["NAME"];
    		}
    		else
    		{
    			$rsUser = CUser::GetByID($USER_ID);
    			$arUser = $rsUser->Fetch();
    			$login = htmlspecialcharsbx($arUser["LOGIN"]);
    			$name = htmlspecialcharsbx($arUser["NAME"]." ".$arUser["LAST_NAME"]);
    			$arrUsers[$USER_ID] = array("LOGIN" => $login, "NAME" => $name);
    		}
    	}
    }*/
    function Support_GetDictionaryInfo($DID, $TYPE, &$TICKET_DICTIONARY, &$name, &$desc, &$sid)
    {
    }
    function Support_GetSiteInfo($SITE_ID)
    {
    }
    function __GetDropDown($TYPE, &$TICKET_DICTIONARY)
    {
    }
    function Support_GetSLAInfo($ID, &$name, &$description, $safe_for_html = \true)
    {
    }
    function Tab1($adminForm)
    {
    }
    function Tab2_JS()
    {
    }
    function Tab2($adminForm, $arShedule)
    {
    }
    function Support_GetUserInfo($USER_ID, &$login, &$name, $safe_for_html = \true)
    {
    }
    function _Support_GetDictionaryInfoEx($arDictionary = array())
    {
    }
    function fill_all_values($sid, $type, $mess = \false, $site = \false)
    {
    }
    function sup_sort($a, $b)
    {
    }
    // Clear Category table
    function ClearCategoryTable()
    {
    }
    function GetDefaultProlog($title)
    {
    }
    function GetDefaultEpilog()
    {
    }
    function PathToWF($text, $DOCUMENT_ID)
    {
    }
    function convert_image($img = "", $query = "", $param = "")
    {
    }
    function WFToPath($text)
    {
    }
    function SavePreviewContent($abs_path, $strContent)
    {
    }
    //http://en.wikipedia.org/wiki/Longest_common_subsequence_problem
    //function  LCS(X[1..m], Y[1..n])
    function LongestCommonSubsequence($X, $Y)
    {
    }
    //function printDiff(C[0..m,0..n], X[1..m], Y[1..n], i, j)
    //	if i > 0 and j > 0 and X[i] = Y[j]
    //		printDiff(C, X, Y, i-1, j-1)
    //		print "  " + X[i]
    //	else
    //		if j > 0 and (i = 0 or C[i,j-1] >= C[i-1,j])
    //			printDiff(C, X, Y, i, j-1)
    //			print "+ " + Y[j]
    //		else if i > 0 and (j = 0 or C[i,j-1] < C[i-1,j])
    //			printDiff(C, X, Y, i-1, j)
    //			print "- " + X[i]
    function printDiff($C, $X, $Y, $Xt, $Yt, $i, $j)
    {
    }
    function getDiff($X, $Y)
    {
    }
    function conversion_renderRate(array $rate, array $rateType)
    {
    }
    function conversion_renderGraph(array $splitRates, array $splits, $height)
    {
    }
    function pr_comp($a, $b)
    {
    }
    // determine column data type
    function getReportHeader($arGroups, &$arResult)
    {
    }
    function getResultColumnDataType(&$viewColumnInfo, &$customColumnTypes, $helperClassName)
    {
    }
    // show result using a grouping mode
    function groupingReportResultHtml(&$arParams, &$arResult, $level = 0, $arRowSet = array())
    {
    }
    function checkPostChartData(&$postData, $chartXValueTypes, $chartTypes)
    {
    }
    // data preparation for the chart
    function prepareChartData(&$arResult, &$arGroupingResult = \null)
    {
    }
    function __ReportStExportEndResponse($result)
    {
    }
    function __ReportExportWriteDataToFile($filePath, $data)
    {
    }
    function IMIncludeJSLangFile($lang_file)
    {
    }
    // helper function
    function sendResponse(array $answer, string $httpCode = '200 OK')
    {
    }
    function isAccessAllowed()
    {
    }
    function SignRequest($access_key, $secret_key, $bucket, $file_name, $ContentType, $additional_headers)
    {
    }
    function _hmacsha1($data, $key)
    {
    }
    // Currency
    function CleanUpCsv(&$item)
    {
    }
    function PrepareQuotes(&$item)
    {
    }
    function multiselect_sort($a, $b)
    {
    }
    function hrefHtml()
    {
    }
    //Helper function
    function resolveValue($field_name)
    {
    }
    function Set_Params()
    {
    }
    function advlist_format_alt($value, $total, $title)
    {
    }
    function advlist_format_link($value, $is_back, $group, $alt, $url = "")
    {
    }
    function event_format_link($value, $total, $is_back, $group, $url)
    {
    }
    function checkIfBrowser($mask)
    {
    }
    function checkIfSearcher($mask)
    {
    }
    function addAsBrowser($mask)
    {
    }
    function addAsSearcher($mask)
    {
    }
    /**
     * @param CAdminList $lAdmin
     * @param boolean $show_money
     * @param boolean $get_total_events
     *
     * @return integer
     */
    function create_event_list(&$lAdmin, $show_money = \false, $get_total_events = \false)
    {
    }
    function data_sort($ar1, $ar2)
    {
    }
    function i2c_create_db(&$total_reindex, &$reindex_success, &$step_reindex, &$int_prev, $step = 0, $file_name = \false, $file_type = \false, $file_db = \false, $file_idx = \false)
    {
    }
    function i2c_load_countries($file_name = \false, $file_type = \false)
    {
    }
    function ip2number($dotted)
    {
    }
    function ip2address($ip_number)
    {
    }
    function i2c_get_country($ip = \false)
    {
    }
    function i2c_search_in_index($ip, $idx_name = \IP_IDX_FILENAME)
    {
    }
    function i2c_search_in_db($ip, $idx, $db_name = \IP_DB_FILENAME)
    {
    }
    function get_realip()
    {
    }
    function SetNoKeepStatistics()
    {
    }
    // fix HTTP_REFERER, r1, r2 for  google ads
    function __GoogleAd($set_new_adv = \false, $r1 = \false, $r2 = \false, $s = "http://pagead2.googlesyndication.com/")
    {
    }
    // returns referer site parameters
    function __GetReferringSite(&$protocol, &$server_name, &$server_name_wo_port, &$PAGE_FROM, $URL_FROM = \false)
    {
    }
    // referer1 and referer2 initialization
    function __SetReferer($referer, $syn)
    {
    }
    function __SetNoKeepStatistics()
    {
    }
    function __SortLinkStat($ar1, $ar2)
    {
    }
    function __IsHiddenLink($link)
    {
    }
    function __ModifyATags($matches)
    {
    }
    function GetCookieString($arrCookie = \false)
    {
    }
    function __GetCurrentPage()
    {
    }
    function __GetCurrentDir()
    {
    }
    function __GetPage($page = \false, $with_imp_params = \true, $curdir = \false)
    {
    }
    function __GetFullCurPage($page = \false, $with_imp_params = \true)
    {
    }
    function __GetFullReferer($referer = \false)
    {
    }
    function __GetFullRequestUri($url = \false, $host = \false, $port = \false, $protocol = \false)
    {
    }
    // returns base currency
    function GetStatisticBaseCurrency()
    {
    }
    function CleanUpResultCsv(&$item)
    {
    }
    function PrepareResultQuotes(&$item)
    {
    }
    function LoadEventsBySteps($csvfile, $time_step, $next_line, &$step_processed, &$step_loaded, &$step_duplicate, $check_unique = "Y", $base_currency = "", &$next_pos)
    {
    }
    function GetStatPathID($URL, $PREV_PATH_ID = "")
    {
    }
    function stat_session_register($var_name)
    {
    }
    function get_guest_md5()
    {
    }
    function GetEventSiteID()
    {
    }
    function GetStatGroupSiteID()
    {
    }
    function SendDailyStatistics()
    {
    }
    function crc32ex($s)
    {
    }
    function AdminListCheckDate(&$lAdmin, $arDates)
    {
    }
    function StatAdminListFormatURL($url, $arOptions = array())
    {
    }
    function is_utf8_url($url)
    {
    }
    function CheckFDate($date, $mess)
    {
    }
    function dump_post_var($vname, $vvalue, $var_stack = array())
    {
    }
    function JSPopupRedirectHandler(&$url, $skip_security_check)
    {
    }
    function ShowJSHint($text, $arParams = \false)
    {
    }
    function _showTopPanelButtonsSection($arPanelButtons, $hkInstance, $section = \null)
    {
    }
    function GetStrings(&$item, $key, $p)
    {
    }
    ##########################################
    ########################### Functions ####
    function IntOption($name, $def = 0)
    {
    }
    function ShowBackupStatus($str)
    {
    }
    function haveTime()
    {
    }
    function RaiseErrorAndDie($strError, $errCode = 0, $ITEM_ID = '', $delete = \false)
    {
    }
    function CheckPoint()
    {
    }
    function GetProgressPercent($NS)
    {
    }
    //This function will protect against utf-7 xss
    //on page with no character setting
    function htmlspecialchars_plus($str)
    {
    }
    function FindUserIDNew($tag_name, $tag_value, $user_name = "", $form_name = "form1", $select = "none", $tag_size = "3", $tag_maxlength = "", $button_value = "...", $tag_class = "typeinput", $button_class = "tablebodybutton", $search_page = "/bitrix/admin/user_search.php")
    {
    }
    function CheckCacheFiles_Rec($strDir)
    {
    }
    function ___737213606($_1223926305)
    {
    }
    function InstallGetMessage($name)
    {
    }
    function __InterfaceFilterRenderField(&$field, &$values, &$infos, $options = array())
    {
    }
    function generateEventListUserSelector($popupId, $searchInputId, $dataInputId, $componentName, $value, $siteId = '', $nameFormat = '', $delay = 0)
    {
    }
    function MULChangeOnlineStatus($USER_ID = \false, $HTML_ID = \false)
    {
    }
    function GDCSaveSettings($arParams, $POS)
    {
    }
    function __MPLParseRecordsHTML(&$response, &$arParams, &$arResult)
    {
    }
    function __bx_share_get_handlers($template = \false, $siteTemplate = \false)
    {
    }
    function FillAllPicturesAndDescriptions(&$arAllItems, $arMenuItemsIDs, &$arImgDesc)
    {
    }
    function FillAllPicturesAndDescriptionsVertical(&$arAllItems, $arMenuItemsIDs)
    {
    }
    function GetVoteResult($entityTypeId, $entityId)
    {
    }
    function GetTree($dir, $max_depth, $get_description = \false)
    {
    }
    function GetTreeRecursive($PARENT_PATH, $level, $max_depth, $get_description = \false)
    {
    }
    function CreateMapStructure($arMap)
    {
    }
    //$im_null = "<IMG SRC=\"/bitrix/images/1.gif\" WIDTH=\"6\" HEIGHT=\"10\" BORDER=0 ALT=\"\">";
    function FindChild(&$map, $iCurrent)
    {
    }
    function GetMapChilds($PARENT_PATH, $PARENT_ID)
    {
    }
    /**
     * Works as realpath(), but ignores symlinks
     *
     * @param $path
     *
     * @return string
     */
    function bx_cli_absolute_path($path)
    {
    }
    function gdGetRss($rss_url, $cache_time = 0, $isHtml = \false)
    {
    }
    function ___373375721($_1209873917)
    {
    }
    function htmlspecialcharsbx($string, $flags = \ENT_COMPAT)
    {
    }
    function ShowImage($PICTURE_ID, $iMaxW = 0, $iMaxH = 0, $sParams = \false, $strImageUrl = "", $bPopup = \false, $strPopupTitle = \false, $iSizeWHTTP = 0, $iSizeHHTTP = 0)
    {
    }
    function BXClearCache($full = \false, $initdir = "")
    {
    }
    function HumanTime($t)
    {
    }
    ////////////////////////////////////////////////////////////////////////
    //////////   FUNCTIONS   ///////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////
    function CheckGetModuleInfo($path)
    {
    }
    function IsHttpResponseSuccess($res, $strRequest)
    {
    }
    function GetHttpResponse($res, $strRequest, &$strHeaders)
    {
    }
    function checker_get_unique_id()
    {
    }
    function getCharsetByCollation($collation)
    {
    }
    function InitPureDB()
    {
    }
    function TableFieldConstruct($f0)
    {
    }
    function fix_link($mode = 2)
    {
    }
    function PrintHTTP($strRequest, $strHeaders, $strRes)
    {
    }
    function RegisterModule($id)
    {
    }
    function UnRegisterModule($id)
    {
    }
    function AddEventHandler($FROM_MODULE_ID, $MESSAGE_ID, $CALLBACK, $SORT = 100, $FULL_PATH = \false)
    {
    }
    function RemoveEventHandler($FROM_MODULE_ID, $MESSAGE_ID, $iEventHandlerKey)
    {
    }
    function GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray = \false)
    {
    }
    /**
     * @param $arEvent
     * @param null $param1
     * @param null $param2
     * @param null $param3
     * @param null $param4
     * @param null $param5
     * @param null $param6
     * @param null $param7
     * @param null $param8
     * @param null $param9
     * @param null $param10
     * @return bool|mixed|null
     *
     * @deprecated
     */
    function ExecuteModuleEvent($arEvent, $param1 = \NULL, $param2 = \NULL, $param3 = \NULL, $param4 = \NULL, $param5 = \NULL, $param6 = \NULL, $param7 = \NULL, $param8 = \NULL, $param9 = \NULL, $param10 = \NULL)
    {
    }
    function ExecuteModuleEventEx($arEvent, $arParams = array())
    {
    }
    function UnRegisterModuleDependences($FROM_MODULE_ID, $MESSAGE_ID, $TO_MODULE_ID, $TO_CLASS = "", $TO_METHOD = "", $TO_PATH = "", $TO_METHOD_ARG = array())
    {
    }
    function RegisterModuleDependences($FROM_MODULE_ID, $MESSAGE_ID, $TO_MODULE_ID, $TO_CLASS = "", $TO_METHOD = "", $SORT = 100, $TO_PATH = "", $TO_METHOD_ARG = array())
    {
    }
    function IsModuleInstalled($module_id)
    {
    }
    function GetModuleID($str)
    {
    }
    /**
     * Returns TRUE if version1 >= version2
     * version1 = "XX.XX.XX"
     * version2 = "XX.XX.XX"
     */
    function CheckVersion($version1, $version2)
    {
    }
    function getIblockElementLinkById($id)
    {
    }
    function ___393475014($_1411959802)
    {
    }
    function bx_accelerator_reset()
    {
    }
    // Compose string in compliance with selected type of condition
    function ConditionCompose($arRequest, $i = 0)
    {
    }
    // Parse string and init vars
    function ConditionParse($c = '')
    {
    }
    function GetNoAccessConditionString()
    {
    }
    // Insert select-list with condition types
    function ConditionSelect($i = '')
    {
    }
    // Show condition types
    function ConditionShow($arArgs = array())
    {
    }
    // JavaScript for displaying and hiding conditions of different types
    function ConditionJS($arOpt = array())
    {
    }
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2014 Bitrix
     */
    /*******************************************************
    Converts ISO to UNICODE
    ********************************************************/
    function iso2uni($isoline)
    {
    }
    /*******************************************************
    Creates image to draw on
    ********************************************************/
    function CreateImageHandle($width, $height, $background = "FFFFFF", $truecolor = \true)
    {
    }
    /******************************************************
    Send proper headers for image
    *******************************************************/
    function ShowImageHeader($ImageHandle)
    {
    }
    /******************************************************
    Returns some color
    *******************************************************/
    function GetArrSaveDecColor($arr)
    {
    }
    function GetNextRGB($base_color, $total)
    {
    }
    function GetBNextRGB($base_color, $total, $start_color = "999900", $end_color = "99FFFF")
    {
    }
    /*******************************************************
    Graph data debug
    *******************************************************/
    function EchoGraphData($arrayX, $MinX, $MaxX, $arrayY, $MinY, $MaxY, $arrX, $arrY, $die = \true)
    {
    }
    /*******************************************************
    Makes proper X axis (date)
    *******************************************************/
    function GetArrayX($arrX, &$MinX, &$MaxX, $max_grid = 15, $min_grid = 10)
    {
    }
    function GetArrayY($arrY, &$MinY, &$MaxY, $max_grid = 15, $first_null = "Y", $integers = \false)
    {
    }
    /******************************************************************************
    * $colorString - Color. Example 'FFFFFF' or '#FF0000'
    * ReColor - function converting HEX to DEC color
    ******************************************************************************/
    function ReColor($colorString)
    {
    }
    function DrawCoordinatGrid($arrayX, $arrayY, $width, $height, $ImageHandle, $bgColor = "FFFFFF", $gColor = 'B1B1B1', $Color = "000000", $dD = 15, $FontWidth = 2, $arrTTF_FONT = \false)
    {
    }
    function Bar_Diagram($ImageHandle, $arData, $MinY, $MaxY, $gridInfo)
    {
    }
    function Graf($arrayX, $arrayY, $ImageHandle, $MinX, $MaxX, $MinY, $MaxY, $Color = 'FF0000', $dashed = "N", $thikness = 2, $antialiase = \true)
    {
    }
    function Draw_Sector($ImageHandle, $start, $end, $color, $diameter, $centerX, $centerY)
    {
    }
    function Circular_Diagram($ImageHandle, $arr, $background_color, $diameter, $centerX, $centerY, $antialiase = \true)
    {
    }
    function Clean_Circular_Diagram($ImageHandle, $background_color, $diameter, $centerX, $centerY)
    {
    }
    function _a_set_pixel($im, $x, $y, $filled, $fgcolors)
    {
    }
    function _a_frac($x)
    {
    }
    function _a_draw_line($im, $x1, $y1, $x2, $y2, $fgcolors, $dashed = "N", $dash = 5, $white = 2)
    {
    }
    function _a_draw_ellipse($im, $x1, $y1, $x2, $y2, $fgcolors, $half = \false)
    {
    }
    function getSafeColors()
    {
    }
    function OnModuleInstalledEvent($id, $installed, $Module)
    {
    }
    function unifyPHPfragment($str)
    {
    }
    function _replacer($str)
    {
    }
    function checkError($strWaring)
    {
    }
    function __AdmSettingsSaveOptions($module_id, $arOptions)
    {
    }
    function __AdmSettingsSaveOption($module_id, $arOption)
    {
    }
    function __AdmSettingsDrawRow($module_id, $Option)
    {
    }
    function __AdmSettingsDrawList($module_id, $arParams)
    {
    }
    function renderLable($Option, array $listSite, $siteValue = "")
    {
    }
    function renderInput($Option, $arControllerOption, $fieldName, $val)
    {
    }
    function getTableSize($reg)
    {
    }
    function workTime()
    {
    }
    function error_alert()
    {
    }
    function fancy_output($content)
    {
    }
    /* This code captures parse errors*/
    function isTextMode()
    {
    }
    function fillTemplateFromPost(\Bitrix\Main\Sms\Template $template)
    {
    }
    function GetMessageJS($name, $replace = \false)
    {
    }
    function _32763223666625($_1298151432)
    {
    }
    function ReplaceVars($str)
    {
    }
    function setHeaderColumn(\CAdminUiList $lAdmin)
    {
    }
    function setRatingHeadersColumn(&$arHeaders)
    {
    }
    function setUFHeadersColumn(&$arHeaders)
    {
    }
    function getUserQuery(\CAdminUiList $lAdmin, $arFilter, $filterFields, $excelMode, $tableId, $nav = \null)
    {
    }
    function _OnUserAdd(&$arFields, &$userID)
    {
    }
    function UserInfo($USER_ID)
    {
    }
    function __GroupRightsShowRowDefault($module_id, $ar, $arSites, $arRightsUseSites, $site_id_tmp)
    {
    }
    function __GetGroupRight($module_id, $groupID, $site_id_tmp, $arSites, $arGROUPS)
    {
    }
    function __GroupRightsShowRowGroup($module_id, $ar, $value, $arSites, $arRightsUseSites, $site_id_tmp, $arGROUPS)
    {
    }
    function __GroupRightsShowRow($titleCol, $groupID, $group_id, $ar, $v, $site_id_tmp, $arRightsUseSites, $arSites, $useDefault = \true)
    {
    }
    #################################################
    ################## FUNCTIONS
    function ParseFileName($name)
    {
    }
    function getFilterDate($date)
    {
    }
    function IntOptionSet($name, $val)
    {
    }
    function ShowReportList()
    {
    }
    function SendReportToBitrix($arFields)
    {
    }
    function __try_run()
    {
    }
    /**
     * HTML form elements
     */
    /**
     * Returns HTML "input"
     */
    function InputType($strType, $strName, $strValue, $strCmp, $strPrintValue = \false, $strPrint = "", $field1 = "", $strId = "")
    {
    }
    /**
     * Returns HTML "select"
     *
     * @param string $strBoxName Input name
     * @param CDBResult $a DB result with items
     * @param string $strDetText Empty item text
     * @param string $strSelectedVal Selected item value
     * @param string $field1 Additional attributes
     * @return string
     */
    function SelectBox($strBoxName, $a, $strDetText = "", $strSelectedVal = "", $field1 = "class=\"typeselect\"")
    {
    }
    /**
     * Returns HTML multiple "select"
     *
     * @param string $strBoxName Input name
     * @param CDBResult $a DB result with items
     * @param array $arr Selected values
     * @param string $strDetText Empty item text
     * @param bool $strDetText_selected Allow to choose an empty item
     * @param string $size Size attribute
     * @param string $field1 Additional attributes
     * @return string
     */
    function SelectBoxM($strBoxName, $a, $arr, $strDetText = "", $strDetText_selected = \false, $size = "5", $field1 = "class=\"typeselect\"")
    {
    }
    /**
     * Returns HTML multiple "select" from array
     *
     * @param string $strBoxName Input name
     * @param array $a Array with items
     * @param array|false $arr Selected values
     * @param string $strDetText Empty item text
     * @param bool $strDetText_selected Allow to choose an empty item
     * @param string $size Size attribute
     * @param string $field1 Additional attributes
     * @return string
     */
    function SelectBoxMFromArray($strBoxName, $a, $arr, $strDetText = "", $strDetText_selected = \false, $size = "5", $field1 = "class='typeselect'")
    {
    }
    /**
     * Returns HTML "select" from array data
     */
    function SelectBoxFromArray($strBoxName, $db_array, $strSelectedVal = "", $strDetText = "", $field1 = "class='typeselect'", $go = \false, $form = "form1")
    {
    }
    /**
     * Date functions
     */
    function Calendar($sFieldName, $sFormName = "skform", $sFromName = "", $sToName = "")
    {
    }
    function CalendarDate($sFromName, $sFromVal, $sFormName = "skform", $size = "10", $param = "class=\"typeinput\"")
    {
    }
    function CalendarPeriod($sFromName, $sFromVal, $sToName, $sToVal, $sFormName = "skform", $show_select = "N", $field_select = "class=\"typeselect\"", $field_input = "class=\"typeinput\"", $size = "10")
    {
    }
    /**
     * Checks date by format
     */
    function CheckDateTime($datetime, $format = \false)
    {
    }
    /**
     * Returns the number of a month
     */
    function GetNumMonth($month)
    {
    }
    /**
     * Returns unix timestamp from date string
     */
    function MakeTimeStamp($datetime, $format = \false)
    {
    }
    /**
     * Parse a date into an array
     */
    function ParseDateTime($datetime, $format = \false)
    {
    }
    /**
     * Adds value to the date in timestamp
     */
    function AddToTimeStamp($arrAdd, $stmp = \false)
    {
    }
    function ConvertDateTime($datetime, $to_format = \false, $from_site = \false, $bSearchInSitesOnly = \false)
    {
    }
    function ConvertTimeStamp($timestamp = \false, $type = "SHORT", $site = \false, $bSearchInSitesOnly = \false)
    {
    }
    /**
     * Converts a date from site format to specified one
     */
    function FmtDate($str_date, $format = \false, $site = \false, $bSearchInSitesOnly = \false)
    {
    }
    function _FormatDateMessage($value, $messages)
    {
    }
    function IsAmPmMode($returnConst = \false)
    {
    }
    function convertTimeToMilitary($strTime, $fromFormat = 'H:MI T', $toFormat = 'HH:MI')
    {
    }
    /**
     * @param string|array $format
     * @param int|bool|\Bitrix\Main\Type\Date $timestamp
     * @param int|bool|\Bitrix\Main\Type\Date $now
     *
     * @return string
     */
    function FormatDate($format = "", $timestamp = \false, $now = \false)
    {
    }
    function FormatDateEx($strDate, $format = \false, $new_format = \false)
    {
    }
    function FormatDateFromDB($date, $format = 'FULL', $phpFormat = \false)
    {
    }
    // âîçâðàùàåò âðåìÿ â ôîðìàòå òåêóùåãî ÿçûêà ïî çàäàííîìó Unix Timestamp
    function GetTime($timestamp, $type = "SHORT", $site = \false, $bSearchInSitesOnly = \false)
    {
    }
    // óñòàðåâøàÿ ôóíêöèÿ
    function AddTime($stmp, $add, $type = "D")
    {
    }
    /**
     * @deprecated
     */
    function ParseDate($strDate, $format = "dmy")
    {
    }
    /**
     * @deprecated
     */
    function MkDateTime($strDT, $format = "d.m.Y H:i:s")
    {
    }
    /**
     * @deprecated
     */
    function PHPFormatDateTime($strDateTime, $format = "d.m.Y H:i:s")
    {
    }
    /**
     * Array functions
     */
    /*
    óäàëÿåò äóáëè â ìàññèâå ñîðòèðîâêè
    ìàññèâ
    Array
    (
    	[0] => T.NAME DESC
    	[1] => T.NAME ASC
    	[2] => T.ID ASC
    	[3] => T.ID DESC
    	[4] => T.DESC
    )
    ïðåîáðàçóåò â
    Array
    (
    	[0] => T.NAME DESC
    	[1] => T.ID ASC
    	[2] => T.DESC ASC
    )
    */
    function DelDuplicateSort(&$arSort)
    {
    }
    function array_convert_name_2_value($arr)
    {
    }
    function InitBVarFromArr($arr)
    {
    }
    function TrimArr(&$arr, $trim_value = \false)
    {
    }
    function is_set(&$a, $k = \false)
    {
    }
    /**
     * @deprecated Use \Bitrix\Main\Security\Random
     * @param int $pass_len
     * @param bool $pass_chars
     * @return string
     */
    function randString($pass_len = 10, $pass_chars = \false)
    {
    }
    /**
     * Alias for randString()
     * @deprecated Use \Bitrix\Main\Security\Random
     * @param int $len
     * @return string
     */
    function GetRandomCode($len = 8)
    {
    }
    function TruncateText($strText, $intLen)
    {
    }
    function InsertSpaces($sText, $iMaxChar = 80, $symbol = " ", $bHTML = \false)
    {
    }
    function TrimExAll($str, $symbol)
    {
    }
    function TrimEx($str, $symbol, $side = "both")
    {
    }
    /**
     * @deprecated Use Main\Text\Encoding::convertEncoding()
     * @param $s
     * @return mixed
     */
    function utf8win1251($s)
    {
    }
    function ToUpper($str, $lang = \false)
    {
    }
    function ToLower($str, $lang = \false)
    {
    }
    function convert_code_tag_for_email($text = "", $arMsg = array())
    {
    }
    function PrepareTxtForEmail($text, $lang = \false, $convert_url_tag = \true, $convert_image_tag = \true)
    {
    }
    function delete_special_symbols($text, $replace = "")
    {
    }
    function convert_code_tag_for_html_before($text = "")
    {
    }
    function convert_code_tag_for_html_after($text = "", $code_table_class, $code_head_class, $code_body_class, $code_textarea_class)
    {
    }
    function convert_open_quote_tag($quote_table_class, $quote_head_class, $quote_body_class)
    {
    }
    function convert_close_quote_tag()
    {
    }
    function convert_quote_tag($text = "", $quote_table_class, $quote_head_class, $quote_body_class)
    {
    }
    function extract_url($s)
    {
    }
    function convert_to_href($url, $link_class = "", $event1 = "", $event2 = "", $event3 = "", $script = "", $link_target = "_self")
    {
    }
    // èñïîëüçóåòñÿ êàê âñïîìîãàòåëüíàÿ ôóíêöèÿ äëÿ TxtToHTML
    function convert_to_mailto($s, $link_class = "")
    {
    }
    function TxtToHTML($str, $bMakeUrls = \true, $iMaxStringLen = 0, $QUOTE_ENABLED = "N", $NOT_CONVERT_AMPERSAND = "Y", $CODE_ENABLED = "N", $BIU_ENABLED = "N", $quote_table_class = "quotetable", $quote_head_class = "tdquotehead", $quote_body_class = "tdquote", $code_table_class = "codetable", $code_head_class = "tdcodehead", $code_body_class = "tdcodebody", $code_textarea_class = "codetextarea", $link_class = "txttohtmllink", $arUrlEvent = array(), $link_target = "_self")
    {
    }
    /*********************************
    Convertation of HTML to text
    *********************************/
    function HTMLToTxt($str, $strSiteUrl = "", $aDelete = array(), $maxlen = 70)
    {
    }
    function FormatText($strText, $strTextType = "text")
    {
    }
    function htmlspecialcharsEx($str)
    {
    }
    function htmlspecialcharsback($str)
    {
    }
    function CheckDirPath($path, $bPermission = \true)
    {
    }
    function CopyDirFiles($path_from, $path_to, $ReWrite = \True, $Recursive = \False, $bDeleteAfterCopy = \False, $strExclude = "")
    {
    }
    function DeleteDirFilesEx($path)
    {
    }
    function DeleteDirFiles($frDir, $toDir, $arExept = array())
    {
    }
    function RewriteFile($abs_path, $strContent)
    {
    }
    function GetScriptFileExt()
    {
    }
    function TrimUnsafe($path)
    {
    }
    function RemoveScriptExtension($check_name)
    {
    }
    function HasScriptExtension($check_name)
    {
    }
    function GetFileExtension($path)
    {
    }
    function GetFileNameWithoutExtension($path)
    {
    }
    function GetFileName($path)
    {
    }
    function IsFileUnsafe($name)
    {
    }
    function GetFileType($path)
    {
    }
    function GetDirectoryIndex($path, $strDirIndex = \false)
    {
    }
    function GetDirIndex($path, $strDirIndex = \false)
    {
    }
    function GetDirIndexArray($strDirIndex = \false)
    {
    }
    function GetPagePath($page = \false, $get_index_page = \null)
    {
    }
    function GetRequestUri()
    {
    }
    //light version of GetPagePath() for menu links
    function GetFileFromURL($page, $get_index_page = \null)
    {
    }
    function GetDirPath($sPath)
    {
    }
    /*
    This function emulates php internal function basename
    but does not behave badly on broken locale settings
    */
    function bx_basename($path, $ext = "")
    {
    }
    function bxstrrpos($haystack, $needle)
    {
    }
    function Rel2Abs($curdir, $relpath)
    {
    }
    /**
     * @deprecated Use \Bitrix\Main\IO\Path::normalize()
     */
    function _normalizePath($strPath)
    {
    }
    function removeDocRoot($path)
    {
    }
    function GetMessage($name, $aReplace = \null)
    {
    }
    /**
     * @deprecated
     */
    function HasMessage($name)
    {
    }
    /** @deprecated */
    function GetLangFileName($before, $after, $lang = \false)
    {
    }
    /**
     * @deprecated Use \Bitrix\Main\Localization\Loc
     */
    function __IncludeLang($path, $bReturnArray = \false, $bFileChecked = \false)
    {
    }
    /**
     * @deprecated Use \Bitrix\Main\Localization\Loc
     */
    function IncludeTemplateLangFile($filepath, $lang = \false)
    {
    }
    function IncludeModuleLangFile($filepath, $lang = \false, $bReturnArray = \false)
    {
    }
    /**
     * @deprecated Use \Bitrix\Main\Localization\Loc
     */
    function LangSubst($lang)
    {
    }
    /*********************************************************************
    Debugging
    *********************************************************************/
    function mydump($thing, $maxdepth = -1, $depth = 0)
    {
    }
    function SendError($error)
    {
    }
    function AddMessage2Log($sText, $sModule = "", $traceDepth = 6, $bShowArgs = \false)
    {
    }
    function AddEventToStatFile($module, $action, $tag, $label, $action_type = '', $user_id = \null)
    {
    }
    /*********************************************************************
    	Quoting reverse (to be removed with 5.4.0)
    *********************************************************************/
    function UnQuote($str, $type, $preserve_nulls = \false)
    {
    }
    function UnQuoteEx(&$str, $key, $params)
    {
    }
    function __unquoteitem(&$item, $key, $param = array())
    {
    }
    function UnQuoteArr(&$arr, $syb = \false, $preserve_nulls = \false)
    {
    }
    function UnQuoteAll()
    {
    }
    /*********************************************************************
    Other functions
    *********************************************************************/
    function LocalRedirect($url, $skip_security_check = \false, $status = "302 Found")
    {
    }
    function WriteFinalMessage($message = "")
    {
    }
    function FindUserID($tag_name, $tag_value, $user_name = "", $form_name = "form1", $tag_size = "3", $tag_maxlength = "", $button_value = "...", $tag_class = "typeinput", $button_class = "tablebodybutton", $search_page = "/bitrix/admin/user_search.php")
    {
    }
    function GetWhoisLink($ip, $class = '')
    {
    }
    function IsIE()
    {
    }
    function GetCountryByID($id, $lang = \LANGUAGE_ID)
    {
    }
    function GetCountryArray($lang = \LANGUAGE_ID)
    {
    }
    function GetCountries($lang = \LANGUAGE_ID)
    {
    }
    function GetCountryIdByCode($code)
    {
    }
    function GetCountryCodeById($countryId)
    {
    }
    function minimumPHPVersion($vercheck)
    {
    }
    function FormDecode()
    {
    }
    /**
     * @deprecated Use Bitrix\Main\Web\HttpClient
     */
    function QueryGetData($SITE, $PORT, $PATH, $QUERY_STR, &$errno, &$errstr, $sMethod = "GET", $sProto = "", $sContentType = 'N')
    {
    }
    function xmlize_xmldata($data)
    {
    }
    function xml_depth_xmldata($vals, &$i)
    {
    }
    function Help($module = "", $anchor = "", $help_file = "")
    {
    }
    function InitBVar(&$var)
    {
    }
    function init_get_params($url)
    {
    }
    function InitURLParam($url = \false)
    {
    }
    function _ShowHtmlspec($str)
    {
    }
    function ShowNote($strNote, $cls = "notetext")
    {
    }
    function ShowError($strError, $cls = "errortext")
    {
    }
    function ShowMessage($arMess)
    {
    }
    function DeleteParam($ParamNames)
    {
    }
    function check_email($email, $bStrict = \false)
    {
    }
    function initvar($varname, $value = '')
    {
    }
    function ClearVars($prefix = "str_")
    {
    }
    function roundEx($value, $prec = 0)
    {
    }
    function roundDB($value, $len = 18, $dec = 4)
    {
    }
    function bitrix_sessid()
    {
    }
    function bitrix_sessid_set($val = \false)
    {
    }
    function bitrix_sessid_val()
    {
    }
    function bitrix_sess_sign()
    {
    }
    function check_bitrix_sessid($varname = 'sessid')
    {
    }
    function bitrix_sessid_get($varname = 'sessid')
    {
    }
    function bitrix_sessid_post($varname = 'sessid', $returnInvocations = \false)
    {
    }
    function print_url($strUrl, $strText, $sParams = "")
    {
    }
    function IncludeAJAX()
    {
    }
    function GetMenuTypes($site = \false, $default_value = \false)
    {
    }
    function SetMenuTypes($armt, $site = '', $description = \false)
    {
    }
    function ParseFileContent($filesrc, $params = array())
    {
    }
    function EscapePHPString($str, $encloser = '"')
    {
    }
    function UnEscapePHPString($str, $encloser = '"')
    {
    }
    function CheckSerializedData($str, $max_depth = 200)
    {
    }
    function NormalizePhone($number, $minLength = 10)
    {
    }
    function bxmail($to, $subject, $message, $additional_headers = "", $additional_parameters = "", \Bitrix\Main\Mail\Context $context = \null)
    {
    }
    function ini_get_bool($param)
    {
    }
    /**
     * Sorting array by column.
     * You can use short mode: Collection::sortByColumn($arr, 'value'); This is equal Collection::sortByColumn($arr, array('value' => SORT_ASC))
     *
     * Pay attention: if two members compare as equal, their relative order in the sorted array is undefined. The sorting is not stable.
     *
     * More example:
     * Collection::sortByColumn($arr, array('value' => array(SORT_NUMERIC, SORT_ASC), 'attr' => SORT_DESC), array('attr' => 'strlen'), 'www');
     *
     * @param array        $array
     * @param string|array $columns
     * @param string|array $callbacks
     * @param bool         $preserveKeys If false numeric keys will be re-indexed. If true - preserve.
     * @param null         $defaultValueIfNotSetValue If value not set - use $defaultValueIfNotSetValue (any cols)
     */
    function sortByColumn(array &$array, $columns, $callbacks = '', $defaultValueIfNotSetValue = \null, $preserveKeys = \false)
    {
    }
    function getLocalPath($path, $baseFolder = "/bitrix")
    {
    }
    /**
     * Set session expired, e.g. if you want to destroy session after this hit
     * @param bool $pIsExpired
     */
    function setSessionExpired($pIsExpired = \true)
    {
    }
    /**
     * @return bool
     */
    function isSessionExpired()
    {
    }
    function __GetSubmenu($menu)
    {
    }
    function __FindSubmenu($menu, $items_id)
    {
    }
    function __struct_file_sort($a, $b)
    {
    }
    function __struct_get_file_info($abs_path, $file)
    {
    }
    function __struct_show_files($arFiles, $doc_root, $path, $open_path, $dirsonly = \false)
    {
    }
    function __struct_get_files($doc_root, $path = "", $open_path = "", $dirsonly = \false)
    {
    }
    //Functions
    function BXCreateSection(&$fileContent, &$sectionFileContent, &$absoluteFilePath, &$sectionPath)
    {
    }
    //Functions
    function BXDeleteFromSystem($absoluteFilePath, $path, $site)
    {
    }
    function BXDeleteFromMenu($documentRoot, $path, $site)
    {
    }
    function BXDeleteFromMenuFile($menuFile, $documentRoot, $site, $path)
    {
    }
    function PageParams($bUrlEncode = \true)
    {
    }
    function __OnAfterSetOption_disk_space($value)
    {
    }
    function ShowParamsHTMLByArray($arParams)
    {
    }
    /*********************************************************************
    							Ôèëüòð
    *********************************************************************/
    function CheckFilterDates($date1, $date2, &$date1_wrong, &$date2_wrong, &$date2_less_date1)
    {
    }
    function InitFilterEx($arName, $varName, $action = "set", $session = \true, $FilterLogic = "FILTER_logic")
    {
    }
    function DelFilterEx($arName, $varName, $session = \true, $FilterLogic = "FILTER_logic")
    {
    }
    function InitFilter($arName)
    {
    }
    function DelFilter($arName)
    {
    }
    function GetFilterHiddens($var = "filter_", $button = array("filter" => "Y", "set_filter" => "Y"))
    {
    }
    function GetFilterParams($var = "filter_", $bDoHtmlEncode = \true, $button = array("filter" => "Y", "set_filter" => "Y"))
    {
    }
    // óñòàðåâøàÿ ôóíêöèÿ, îñòàâëåíà äëÿ ñîâìåñòèìîñòè
    function GetFilterStr($arr, $button = "set_filter")
    {
    }
    function ShowExactMatchCheckbox($name, $title = \false)
    {
    }
    function GetUrlFromArray($arr)
    {
    }
    function ShowAddFavorite($filterName = \false, $btnName = "set_filter", $module = "statistic", $alt = \false)
    {
    }
    function IsFiltered($strSqlSearch)
    {
    }
    function ResetFilterLogic($FilterLogic = "FILTER_logic")
    {
    }
    function ShowFilterLogicHelp()
    {
    }
    function ShowLogicRadioBtn($FilterLogic = "FILTER_logic")
    {
    }
    function GetFilterQuery($field, $val, $procent = "Y", $ex_sep = array(), $clob = "N", $div_fields = "Y", $clob_upper = "N")
    {
    }
    function GetFilterSqlSearch($arSqlSearch = array(), $FilterLogic = "FILTER_logic")
    {
    }
    function BeginFilter($sID, $bFilterSet, $bShowStatus = \true)
    {
    }
    function EndFilter($sID = "")
    {
    }
    function BeginNote($sParams = "")
    {
    }
    function EndNote()
    {
    }
    function ShowSubMenu($aMenu)
    {
    }
    /*********************************************************************
    							Ñîðòèðîâêà
    *********************************************************************/
    function InitSorting($Path = \false, $sByVar = "by", $sOrderVar = "order")
    {
    }
    function SortingEx($By, $Path = \false, $sByVar = "by", $sOrderVar = "order", $Anchor = "nav_start")
    {
    }
    function GetTemplateContent($filename, $lang = \LANG, $arTemplates = array())
    {
    }
    function GetFileTemplates($lang = \LANG, $arTemplates = array())
    {
    }
    function ParsePath($path, $bLast = \false, $url = \false, $param = "", $bLogical = \false)
    {
    }
    function CompareFiles($f1, $f2, $sort = array())
    {
    }
    function GetDirList($path, &$arDirs, &$arFiles, $arFilter = array(), $sort = array(), $type = "DF", $bLogical = \false, $task_mode = \false)
    {
    }
    function SetPrologTitle($prolog, $title)
    {
    }
    function SetPrologProperty($prolog, $property_key, $property_val)
    {
    }
    function IsPHP($src)
    {
    }
    function ___1546568156($_641884057)
    {
    }
    function getmicrotime()
    {
    }
    function seo_getDir($bLogical, $site_id, $dir, $depth, $checked, $arChecked = array())
    {
    }
    function seo_getIblock($iblockId, $sectionId, $sectionChecked, $elementChecked, $arSectionChecked = array(), $arElementChecked = array())
    {
    }
    function SeoShowHelp($topic)
    {
    }
    function seoSitemapGetFilesData($PID, $arSitemap, $arCurrentDir, $sitemapFile)
    {
    }
    /*
    * @deprecated deprecated since currency 14.0.0
    * @see CCurrencyLang::CurrencyFormat()
    */
    function CurrencyFormat($price, $currency)
    {
    }
    /*
    * @deprecated deprecated since currency 14.0.0
    * @see CCurrencyLang::CurrencyFormat()
    */
    function CurrencyFormatNumber($price, $currency)
    {
    }
    function GetSocNetMessageLocal($message, $lang)
    {
    }
    function SonetDebugTmp($var, $name = "")
    {
    }
    function MenuSaveSettings($arParams, $POS)
    {
    }
    function __SL_PF_sort($a, $b)
    {
    }
    function filterByFeaturePerms(&$arGroups, $arFeaturePerms)
    {
    }
    function group2JSItem($arGroup, $fieldPrevix = "")
    {
    }
    function __GCEGetGroup(&$group_id, &$arGroupProperties = array(), &$arGroupTmp = array(), $tab = \false)
    {
    }
    function __GCE_GetFeatures($group_id, &$arFeatures)
    {
    }
    function __RSSCheckServerName($url, $server_name)
    {
    }
    function date_cmp($a, $b)
    {
    }
    function __SubscribeGetValue($key, $event_id_tmp, $arSubscribesTmp, $arSubscribesTmpAllMy, $arSubscribesTmpAll, $default_value)
    {
    }
    function GetTagsIdTmp($sName)
    {
    }
    function socialnetworkBlogPostCommentMobile(array $comment, array $arParams, array $arResult, \SocialnetworkBlogPostComment $component)
    {
    }
    function __wd_check_uf_use_bp_property($iblock_id)
    {
    }
    function __wd_get_root_section($IBLOCK_ID, $object, $object_id)
    {
    }
    function __wd_replace_user_and_groups(&$val, $key, $params = array())
    {
    }
    function __wd_create_default_bp_user_and_groups($arr)
    {
    }
    function __FindEventInItems($arItems, $event_id, $what = "TRANSPORT")
    {
    }
    function __GetInheritedValue($arEvents, $entity_type, $entity_id, $is_cb, $is_my, $event_id, $what)
    {
    }
    function __SLGetSubscriptionData($event_id_tmp, $arSubscribesTmp, $arSubscribesTmpAllMy, $arSubscribesTmpAll)
    {
    }
    function getRelatedUser($firstUserID, $relationID)
    {
    }
    function getRelatedGroup($relationID)
    {
    }
    function __SLGetUFMeta()
    {
    }
    function __SLTransportSort($a, $b)
    {
    }
    function __SLEGetTransport($arFields, $arCurrentUserSubscribe)
    {
    }
    function __SLEGetLogRecord($logID, $arParams, $arCurrentUserSubscribe)
    {
    }
    function __SLEGetLogCommentRecord($arComment, $arParams, &$arAssets)
    {
    }
    function SonetShowInFrame(&$component, $bPopup)
    {
    }
    function restMenuBuildEventHandler($placement, $eventParam, &$menu)
    {
    }
    function getXMLNode($name, $value)
    {
    }
    function getPostVal($param, $ind)
    {
    }
    function getListVal($val)
    {
    }
    function displayInputRow($id, $val, $i, $width, $fd = \false)
    {
    }
    function getSkinsEx($path)
    {
    }
    function getSkinsFromDir($path)
    {
    }
    function __CanDoAccess($colId)
    {
    }
    function __FE_editorScripts($editorName, $arEditorParams)
    {
    }
    function handleComp2Tree()
    {
    }
    function handleChildren($arEls, $path)
    {
    }
    function pushElement($path, $name, $title, $isGroup, $icon, $complex, $params = \false, $thirdLevelName = \false, $screenshots = array())
    {
    }
    function displayJSAddSett($tooltips, $visualEffects)
    {
    }
    function displayJSToolbar($tlbrname, $show, $docked, $arPos)
    {
    }
    function displayJSTaskbar($tskbrname, $show, $docked, $arPos, $auto)
    {
    }
    function _addslashes($str)
    {
    }
    function getToolbarSettings($settings)
    {
    }
    function getTaskbarSettings($settings)
    {
    }
    function GetAccessArrTmp($path)
    {
    }
    function GetProperties($componentName, $curTemplate = '')
    {
    }
    function fetchPropsHelp($componentName_)
    {
    }
    function push2arComp2Props($name, $arParam, $arGroup)
    {
    }
    function push2arComp2Templates($name, $template, $title, $description)
    {
    }
    function push2arComp2TemplateProps($componentName, $paramName, $arParam)
    {
    }
    function ShowFileDialogsScripts()
    {
    }
    function _GtFMess()
    {
    }
    function GetFileContent($path)
    {
    }
    function is_array_assoc($arr)
    {
    }
    function setEditorEventHandlers($name)
    {
    }
    function _replace_br_($str)
    {
    }
    function isValidLang($lang)
    {
    }
    function _MLGetTypeHTML($type = array())
    {
    }
    function BPWSInitParam(&$arParams, $name)
    {
    }
    /** @var \Bitrix\Bizproc\Activity\PropertiesDialog $dialog */
    function propertiesDialogToJsObject(\Bitrix\Bizproc\Activity\PropertiesDialog $dialog)
    {
    }
    function _RecFindParams($act, $arFilter)
    {
    }
    function wfeexception_handler($e)
    {
    }
    function GetJSLangMess($f, $actId)
    {
    }
}
namespace {
    /** @var $request Main\HttpRequest */
    $request = \Bitrix\Main\Context::getCurrent()->getRequest();
    /** @var $request Main\HttpRequest */
    $request = \Bitrix\Main\Context::getCurrent()->getRequest();
    /** @var CBitrixComponentTemplate $this */
    /** @var array $arParams */
    /** @var array $arResult */
    /** @global CDatabase $DB */
    $frame = $this->createFrame()->begin();
    /** @var \Bitrix\Sale\Order $orderClass */
    $orderClass = $registry->getOrderClassName();
    /**
     * @global array $arParams
     * @global CUser $USER
     * @global CMain $APPLICATION
     * @global string $cartId
     */
    $compositeStub = isset($arResult['COMPOSITE_STUB']) && $arResult['COMPOSITE_STUB'] == 'Y';
    /**
     * @global string $componentPath
     * @global string $templateName
     * @var CBitrixComponentTemplate $this
     */
    $cartStyle = 'bx-basket';
    /** @var \Bitrix\Main\Page\FrameBuffered $frame */
    $frame = $this->createFrame($cartId, \false)->begin();
    /** @var CBitrixComponentTemplate $this */
    /** @var array $arParams */
    /** @var array $arResult */
    /** @global CDatabase $DB */
    $frame = $this->createFrame()->begin();
    /** @var Sale\Order $orderClassName */
    $orderClassName = $registry->getOrderClassName();
    /** @var Sale\Payment|null $paymentItem */
    $paymentItem = \null;
    /** @var Sale\Order $order */
    $order = $orderClassName::load($arOrder['ID']);
    /** @var CBitrixComponentTemplate $this */
    /** @var array $arParams */
    /** @var array $arResult */
    /** @global CDatabase $DB */
    $frame = $this->createFrame()->begin();
    /** @var array $arParams */
    /** @var array $arResult */
    /** @global CMain $APPLICATION */
    /** @global CUser $USER */
    /** @global CDatabase $DB */
    /** @var CBitrixComponentTemplate $this */
    /** @var string $templateName */
    /** @var string $templateFile */
    /** @var string $templateFolder */
    /** @var string $componentPath */
    /** @var CBitrixComponent $component */
    $frame = $this->createFrame()->begin();
    /** @var \Bitrix\Sale\Order $orderClass */
    $orderClass = $registry->getOrderClassName();
    /** @var \Bitrix\Sale\Delivery\Services\Base  $deliveryObj */
    $deliveryObj = \Bitrix\Sale\Delivery\Services\Manager::getObjectById($arParams["DELIVERY_ID"]);
    /**
     * @var array $arParams
     * @var array $arResult
     * @var SaleOrderAjax $component
     */
    $component = $this->__component;
    /**
     * @var array $arParams
     * @var array $arResult
     * @var CMain $APPLICATION
     * @var CUser $USER
     * @var SaleOrderAjax $component
     * @var string $templateFolder
     */
    $context = \Bitrix\Main\Application::getInstance()->getContext();
    /**
     * @var array $mobileColumns
     * @var array $arParams
     * @var string $templateFolder
     */
    $usePriceInAdditionalColumn = \in_array('PRICE', $arParams['COLUMNS_LIST']) && $arParams['PRICE_DISPLAY_MODE'] === 'Y';
    /**
     *
     * This file modifies result for every request (including AJAX).
     * Use it to edit output result for "{{ mustache }}" templates.
     *
     * @var array $result
     */
    $mobileColumns = isset($this->arParams['COLUMNS_LIST_MOBILE']) ? $this->arParams['COLUMNS_LIST_MOBILE'] : $this->arParams['COLUMNS_LIST'];
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\PaymentCollection $paymentCollection */
    $paymentCollection = $order->getPaymentCollection();
    /** @var \Bitrix\Sale\Payment $payment */
    $payment = $paymentCollection->getItemById($paymentId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\PaymentCollection $paymentCollection */
    $paymentCollection = $order->getPaymentCollection();
    /** @var \Bitrix\Sale\Payment $payment */
    $payment = $paymentCollection->getItemById($paymentId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\PaymentCollection $paymentCollection */
    $paymentCollection = $order->getPaymentCollection();
    /** @var \Bitrix\Sale\Payment $payment */
    $payment = $paymentCollection->getItemById($paymentId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\PaymentCollection $paymentCollection */
    $paymentCollection = $order->getPaymentCollection();
    /** @var \Bitrix\Sale\Payment $payment */
    $payment = $paymentCollection->getItemById($paymentId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\PaymentCollection $paymentCollection */
    $paymentCollection = $order->getPaymentCollection();
    /** @var \Bitrix\Sale\Payment $payment */
    $payment = $paymentCollection->getItemById($paymentId);
    /** @var null|\Bitrix\Sale\Order $saleOrder */
    $saleOrder = \null;
    /** @var Order $orderClass */
    $orderClass = $registry->getOrderClassName();
    /** @var \Bitrix\Sale\Shipment $shipment */
    $shipment = $shipmentCollection->getItemById($shipmentId);
    /** @var  CMain $APPLICATION */
    $saleModulePermissions = $APPLICATION->GetGroupRight("sale");
    /** @var  CMain $APPLICATION
     * @var CDatabase $DB
     */
    $saleModulePermissions = $APPLICATION->GetGroupRight("sale");
    /** @var Sale\Order $orderClass */
    $orderClass = $registry->getOrderClassName();
    /** @var Sale\Order $orderClass */
    $orderClass = $registry->getOrderClassName();
    /** @var \Bitrix\Sale\Order $order */
    $order = \null;
    /** @var Sale\DiscountCouponsManager $discountCouponsClass */
    $discountCouponsClass = $registry->getDiscountCouponClassName();
    /** @var Sale\Order $orderClass */
    $orderClass = $registry->getOrderClassName();
    /** @var \Bitrix\Main\Entity\Event $event */
    $event = new \Bitrix\Main\Event('sale', \Bitrix\Sale\EventActions::EVENT_ON_ADMIN_ORDER_LIST, $getListParams);
    /** @var Sale\Order $orderClass */
    $orderClass = $registry->getOrderClassName();
    /** @var $request Main\HttpRequest */
    $request = \Bitrix\Main\Context::getCurrent()->getRequest();
    /** @var  CMain $APPLICATION */
    $saleModulePermissions = $APPLICATION->GetGroupRight("sale");
    /** @var Sale\Order $orderClassName */
    $orderClassName = $registry->getOrderClassName();
    /** @var Sale\Order $order */
    $order = $orderClassName::load($orderId);
    /** @var Sale\Order $orderClass */
    $orderClass = $registry->getOrderClassName();
    /** @var null|\Bitrix\Sale\Order $saleOrder */
    $saleOrder = \null;
    /** @var Order $orderClass */
    $orderClass = $registry->getOrderClassName();
    /**
     * @var $result \Bitrix\Main\Entity\Result;
     */
    $result = $factory::create(\Bitrix\Sale\Helpers\Admin\Blocks\BlockType::PAYMENT)->updateData($saleOrder, $request->get('PAYMENT'));
    /** @var Cashbox\Cashbox $handler */
    $handler = $cashbox['HANDLER'];
    /** @var CDBResult $rsUsers */
    $rsUsers = \CUser::GetList($by2, $order2, array('ID' => $intLockUserID), array('FIELDS' => array('ID', 'LOGIN', 'NAME', 'LAST_NAME')));
    /** @var Order $orderClass */
    $orderClass = $registry->getOrderClassName();
    /** @var  CMain $APPLICATION */
    $saleModulePermissions = $APPLICATION->GetGroupRight("sale");
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\PaymentCollection $paymentCollection */
    $paymentCollection = $order->getPaymentCollection();
    /** @var \Bitrix\Sale\Payment $payment */
    $payment = $paymentCollection->getItemById($paymentId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\PaymentCollection $paymentCollection */
    $paymentCollection = $order->getPaymentCollection();
    /** @var \Bitrix\Sale\Payment $payment */
    $payment = $paymentCollection->getItemById($paymentId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\PaymentCollection $paymentCollection */
    $paymentCollection = $order->getPaymentCollection();
    /** @var \Bitrix\Sale\Payment $payment */
    $payment = $paymentCollection->getItemById($paymentId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var \Bitrix\Sale\Order $order */
    $order = \Bitrix\Sale\Order::load($orderId);
    /** @var CSaleTfpdf $pdf */
    $pdf = new \CSalePdf('P', 'pt', 'A4');
    /** @var CSaleTfpdf $pdf */
    $pdf = new \CSalePdf('P', 'pt', 'A4');
    /** @var CSaleTfpdf $pdf */
    $pdf = new \CSalePdf('P', 'pt', 'A4');
    /** @var CSaleTfpdf $pdf */
    $pdf = new \CSalePdf('P', 'pt', 'A4');
    /** @var CSaleTfpdf $pdf */
    $pdf = new \CSalePdf('P', 'pt', 'A4');
    /** @var CSaleTfpdf $pdf */
    $pdf = new \CSalePdf('P', 'pt', 'A4');
    /** @var CSaleTfpdf $pdf */
    $pdf = new \CSalePdf('P', 'pt', 'A4');
    /** @var CSaleTfpdf $pdf */
    $pdf = new \CSalePdf('P', 'pt', 'A4');
    /** @var CSaleTfpdf $pdf */
    $pdf = new \CSalePdf('P', 'pt', 'A4');
    /**
     * Gets hooks data from common fields.
     * @param array $fields Data fields.
     * @return array
     */
    $getHooksData = function ($fields) {
        $data = [];
        foreach ((array) $fields as $code => $value) {
            if (!$value) {
                continue;
            }
            list($hookCode, $hookFieldCode) = explode('_', $code, 2);
            if (!isset($data[$hookCode])) {
                $data[$hookCode] = [];
            }
            $data[$hookCode][$hookFieldCode] = $value;
            unset($hookCode, $hookFieldCode);
        }
        unset($code, $value);
        return $data;
    };
    /**
     * Builds pseudo page from blocks and returns it.
     * @param array $blocks Array of Blocks data.
     * @param int $version Version number.
     * @return string
     */
    $getBlocksContent = function ($blocks, $version) {
        $blocks = (array) $blocks;
        $content = '';
        unset($blocks, $blockItem, $version);
        return $content;
    };
    /**
     * Gets full content for output.
     * @param array $content Content of page's part.
     * @param array $layout Layout data.
     * @return string
     */
    $applyLayout = function (array $content, array $layout) {
        $output = '';
        $res = \Bitrix\Landing\Template::getList(['filter' => ['=XML_ID' => $layout['code']]]);
        unset($res, $row);
        return $output;
    };
    /**
     * @var StoreCartBlock $classBlock
     */
    $iblockId = $classBlock->get('IBLOCK_ID') ?? '';
    /**
     * @var StoreOrderBlock $classBlock
     */
    $iblockId = $classBlock->get('IBLOCK_ID') ?? '';
    /**
     * @var StoreCatalogListBlock $classBlock
     */
    $sectionId = $classBlock->get('SECTION_ID');
    /**
     * @var StoreCatalogListBlock $classBlock
     */
    $elementCode = $classBlock->get('ELEMENT_CODE');
    /** @global CMain $APPLICATION */
    /** @global CUser $USER */
    /** @global CDatabase $DB */
    /** @global string $mid */
    $module_id = "form";
    /** @global CMain $APPLICATION */
    /** @global CDatabase $DB */
    /** @global CUser $USER */
    $RIGHT = $APPLICATION->GetGroupRight("perfmon");
    /** @var $request Main\HttpRequest */
    $request = \Bitrix\Main\Context::getCurrent()->getRequest();
    /** @var CIBlockResult $rsElements */
    $rsElements = \CIBlockElement::GetList($grid_sort["sort"], $arFilter, \false, $grid_options->GetNavParams(), $arSelect);
    /** @var \Bitrix\Bizproc\Activity\PropertiesDialog $dialog */
    /** @var \CBPDocumentService $documentService */
    $elementId = $dialog->getMap()['ElementId'];
    /** @var \Bitrix\Bizproc\Activity\PropertiesDialog $dialog */
    $elementId = $dialog->getMap()['ElementId'];
    /** @var \Bitrix\Bizproc\Activity\PropertiesDialog $dialog */
    /** @var \CBPDocumentService $documentService */
    $docType = $dialog->getMap()['DocumentType'];
    /** @var \Bitrix\Bizproc\Activity\PropertiesDialog $dialog */
    $docType = $dialog->getMap()['DocumentType'];
    /** @var \Bitrix\Bizproc\Activity\PropertiesDialog $dialog */
    $elementId = $dialog->getMap()['ElementId'];
    /** @var \Bitrix\Bizproc\Activity\PropertiesDialog $dialog */
    $elementId = $dialog->getMap()['ElementId'];
    /** @var HL\DataManager $entity_data_class */
    $entity_data_class = $entity->getDataClass();
    // select data
    /** @var string $order */
    $order = \mb_strtoupper($order);
    /** @var HL\DataManager $entity_data_class */
    $entity_data_class = $entity->getDataClass();
    /**
     * @global CUser $USER
     * @global CMain $APPLICATION
     **/
    $canRead = $USER->CanDoOperation('security_iprule_admin_settings_read');
    /**
     * @global CUser $USER
     * @global CMain $APPLICATION
     **/
    $canRead = $USER->CanDoOperation('security_otp_settings_read');
    /**
     * @global CUser $USER
     * @global CMain $APPLICATION
     **/
    $canRead = $USER->CanDoOperation('security_redirect_settings_read');
    /**
     * @global CMain $APPLICATION
     * @global CUser $USER
     */
    $canRead = $USER->CanDoOperation('security_stat_activity_settings_read');
    /**
     * @global CUser $USER
     * @global CMain $APPLICATION
     **/
    $canRead = $USER->CanDoOperation('security_filter_settings_read');
    /**
     * @global CUser $USER
     * @global CMain $APPLICATION
     **/
    $canRead = $USER->CanDoOperation('security_frame_settings_read');
    /**
     * @global CUser $USER
     * @global CMain $APPLICATION
     * @global CDataBase $DB
     **/
    $canRead = $USER->CanDoOperation('security_iprule_settings_read');
    /**
     * @global CMain $APPLICATION
     * @global CUser $USER
     */
    $canRead = $USER->CanDoOperation('security_session_settings_read');
    /**
     * @global CUser $USER
     * @global CMain $APPLICATION
     **/
    $canRead = $USER->CanDoOperation('security_antivirus_settings_read');
    /**
     * @global CUser $USER
     * @global CMain $APPLICATION
     **/
    $canRead = $USER->CanDoOperation('security_iprule_settings_read');
    /** @var $request Main\HttpRequest */
    $request = \Bitrix\Main\Context::getCurrent()->getRequest();
    /**
     * @global CUser $USER
     * @global CMain $APPLICATION
     **/
    $canSign = $USER->CanDoOperation('security_file_verifier_sign');
    /**
     * @global CUser $USER
     * @global CMain $APPLICATION
     **/
    $canRead = $USER->CanDoOperation('security_module_settings_read');
    /**
     * @global int $ID - Edited user id
     * @global \CUser $USER
     * @global CMain $APPLICATION
     * @global string $security_SYNC1 - First code
     * @global string $security_SYNC2  - Second code
     */
    $securityWarningTmp = "";
    /**
     * @global \CMain $APPLICATION
     * @global \CUser $USER
     * @global string $mid
     * @global string $module_id
     * @global string $TRANS_RIGHT
     */
    $module_id = 'translate';
    /**
     * Resolving dependencies for new data structure
     * was:
     * $DB->InitTableVarsForEdit("b_learn_lesson", "", "str_");
     */
    $arVarsOnForm = array('TIMESTAMP_X', 'ACTIVE', 'CODE', 'NAME', 'KEYWORDS', 'PREVIEW_TEXT', 'PREVIEW_TEXT_TYPE', 'DETAIL_TEXT', 'DETAIL_TEXT_TYPE', 'LAUNCH');
    /** @var CBitrixComponentTemplate $this */
    /** @var array $arParams */
    /** @var array $arResult */
    /** @global CDatabase $DB */
    /** @global CMain $APPLICATION */
    $frame = $this->createFrame()->begin("");
    /** @var CBitrixComponentTemplate $this */
    /** @var array $arParams */
    /** @var array $arResult */
    /** @global CDatabase $DB */
    $frame = $this->createFrame()->begin();
    /** @var \CatalogProductVariationGridComponent $component */
    $component = new $componentClass();
    /** @global CMain $APPLICATION */
    /** @global CUser $USER */
    /** @global CDatabase $DB */
    /** @global string $mid */
    $module_id = 'catalog';
    /** @var array $arParams */
    /** @var array $arResult */
    /** @global CMain $APPLICATION */
    /** @global CUser $USER */
    /** @global CDatabase $DB */
    /** @var CBitrixComponentTemplate $this */
    /** @var string $templateName */
    /** @var string $templateFile */
    /** @var string $templateFolder */
    /** @var string $componentPath */
    /** @var CBitrixComponent $component */
    $arCloudParams = array("SEARCH" => $arResult["REQUEST"]["~QUERY"], "TAGS" => $arResult["REQUEST"]["~TAGS"], "CHECK_DATES" => $arParams["CHECK_DATES"], "arrFILTER" => $arParams["arrFILTER"], "SORT" => $arParams["TAGS_SORT"], "PAGE_ELEMENTS" => $arParams["TAGS_PAGE_ELEMENTS"], "PERIOD" => $arParams["TAGS_PERIOD"], "URL_SEARCH" => $arParams["TAGS_URL_SEARCH"], "TAGS_INHERIT" => $arParams["TAGS_INHERIT"], "FONT_MAX" => $arParams["FONT_MAX"], "FONT_MIN" => $arParams["FONT_MIN"], "COLOR_NEW" => $arParams["COLOR_NEW"], "COLOR_OLD" => $arParams["COLOR_OLD"], "PERIOD_NEW_TAGS" => $arParams["PERIOD_NEW_TAGS"], "SHOW_CHAIN" => $arParams["SHOW_CHAIN"], "COLOR_TYPE" => $arParams["COLOR_TYPE"], "WIDTH" => $arParams["WIDTH"], "CACHE_TIME" => $arParams["CACHE_TIME"], "CACHE_TYPE" => $arParams["CACHE_TYPE"], "RESTART" => $arParams["RESTART"]);
    /** @var CAdminMessage $message */
    $searchDB = \CDatabase::GetModuleConnection('search');
    /** @var CAdminMessage $message */
    $searchDB = \CDatabase::GetModuleConnection('search');
    /** @var CAdminMessage $message */
    $searchDB = \CDatabase::GetModuleConnection('search');
    /** @var CAdminMessage $message */
    $searchDB = \CDatabase::GetModuleConnection('search');
    /** @var CAdminMessage $message */
    $searchDB = \CDatabase::GetModuleConnection('search');
    /** @var CAdminMessage $message */
    $searchDB = \CDatabase::GetModuleConnection('search');
    /** @var CAdminMessage $message */
    $searchDB = \CDatabase::GetModuleConnection('search');
    /** @var CAdminMessage $message */
    $bVarsFromForm = \false;
    /**
     * Bitrix vars
     *
     * @var array $arParams
     * @var array $arResult
     * @var CBitrixComponent $this
     * @global CMain $APPLICATION
     * @global CUser $USER
     */
    $arDefaultUrlTemplates404 = array("endpoint" => "#user_id#/#ap#/_vti_bin/lists.asmx", "redirect_item" => "#user_id#/#ap#/#path#/DispForm.aspx", "redirect_index" => "#user_id#/#ap#/#path#/");
    /**
     * @var $component SectionUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var DateUfComponent $component
     * @var array $arResult
     */
    $component = $this->getComponent();
    /**
     * @var $component SectionUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var array $arResult
     */
    $isFirst = \true;
    /** @var array $arParams */
    /** @var array $arResult */
    /** @global CMain $APPLICATION */
    /** @global CUser $USER */
    /** @global CDatabase $DB */
    /** @var CBitrixComponentTemplate $this */
    /** @var string $templateName */
    /** @var string $templateFile */
    /** @var string $templateFolder */
    /** @var string $componentPath */
    /** @var CBitrixComponent $component */
    $itemCount = \count($arResult);
    /**
     * @var CBitrixComponentTemplate $this
     * @var CatalogTopComponent $component
     */
    $component = $this->getComponent();
    /** @var CBitrixComponentTemplate $this */
    /** @var array $arParams */
    /** @var array $arResult */
    /** @global CMain $APPLICATION */
    /** @var string $strElementEdit */
    /** @var string $strElementDelete */
    /** @var array $arElementDeleteParams */
    /** @var array $arSkuTemplate */
    /** @var array $templateData */
    $intCount = \count($arResult['ITEMS']);
    /**
     * @var $component ElementUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var ElementUfComponent $component
     * @var array $arResult
     */
    $component = $this->getComponent();
    /**
     * @var $component ElementUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var array $arResult
     */
    $isFirst = \true;
    /** @var array $arParams */
    /** @var array $arResult */
    /** @global CMain $APPLICATION */
    /** @global CUser $USER */
    /** @global CDatabase $DB */
    /** @var CBitrixComponentTemplate $this */
    $component = $this->__component;
    /** @var array $arParams */
    /** @var array $arResult */
    /** @global CMain $APPLICATION */
    /** @global CUser $USER */
    /** @global CDatabase $DB */
    /** @var CBitrixComponentTemplate $this */
    $component = $this->__component;
    /**
     * @var CBitrixComponentTemplate $this
     * @var CatalogElementComponent $component
     */
    $component = $this->getComponent();
    /** @var CBitrixComponent $this */
    /** @var array $arParams */
    /** @var array $arResult */
    /** @var string $componentPath */
    /** @var string $componentName */
    /** @var string $componentTemplate */
    /** @global CDatabase $DB */
    /** @global CUser $USER */
    /** @global CMain $APPLICATION */
    $sbParams = array("FB_USE", "TW_USE", "VK_USE");
    /** @var array $arParams */
    /** @var array $arResult */
    /** @global CMain $APPLICATION */
    /** @global CUser $USER */
    /** @global CDatabase $DB */
    /** @var CBitrixComponentTemplate $this */
    /** @var string $templateName */
    /** @var string $templateFile */
    /** @var string $templateFolder */
    /** @var string $componentPath */
    /** @var CBitrixComponent $component */
    $isAjax = \false;
    /**
     * @var CBitrixComponentTemplate $this
     * @var CatalogSectionComponent $component
     */
    $component = $this->getComponent();
    /** @var array $arParams */
    /** @var array $arResult */
    /** @global CMain $APPLICATION */
    /** @global CUser $USER */
    /** @global CDatabase $DB */
    /** @var CBitrixComponentTemplate $this */
    /** @var string $templateName */
    /** @var string $templateFile */
    /** @var string $templateFolder */
    /** @var string $componentPath */
    /** @var CBitrixComponent $component */
    $themeClass = isset($arParams['TEMPLATE_THEME']) ? ' bx-' . $arParams['TEMPLATE_THEME'] : '';
    /** @var CIBlockDocument $iblockDocument */
    $iblockDocument = \null;
    /** @var CIBlockDocument $iblockDocument */
    $iblockDocument = \null;
    /** @var CIBlockDocument $iblockDocument */
    $iblockDocument = \null;
    /**
     * Bitrix vars
     *
     * @var array $arParams
     * @var array $arResult
     * @var CForumAutosave $arParams["AUTOSAVE"]
     * @var CBitrixComponent $this
     * @var CMain $APPLICATION
     * @var CUser $USER
    */
    $request = \Bitrix\Main\Context::getCurrent()->getRequest();
    /**
     * @global CUser $USER
     */
    $MESS = array();
    /**
     * @var $parser forumTextParser
     */
    $parser = $arResult["PARSER"];
    /**
     * @global CMain $APPLICATION
     * @global CUser $USER
     * @param array $arParams
     * @param array $arResult
     * @param string $componentName
     * @param CBitrixComponent $this
     */
    $path = \str_replace(array("\\", "//"), "/", \dirname(__FILE__) . "/functions.php");
    /**
     * @var $APPLICATION CMain
     */
    $forumModulePermissions = $APPLICATION->GetGroupRight("forum");
    /**
     * @var $APPLICATION CMain
     */
    $forumPermissions = $APPLICATION->GetGroupRight("forum");
    /**
     * @global CMain $APPLICATION
     * @global array $aSortDirection
     * @global array $aSortTypes
     * @param CBitrixComponent $this
     */
    $forumPermissions = $APPLICATION->GetGroupRight("forum");
    /** @var CBitrixComponentTemplate $this */
    /** @var array $arParams */
    /** @var array $arResult */
    /** @global CDatabase $DB */
    /** @global CUser $USER */
    /** @global CMain $APPLICATION */
    $LHEditorId = 'LHEBlogCom';
    /**
     * @var array $arParams
     * @var CMain $APPLICATION
     */
    $arResult = array();
    /** @var array $arParams */
    $arDefaultUrlTemplates404 = array("ticket_list" => "index.php", "ticket_edit" => "#ID#.php");
    /** @var \CMain $APPLICATION */
    $isAdmin = \Bitrix\MessageService\Context\User::isAdmin();
    /** @var \Bitrix\MessageService\Sender\BaseConfigurable $sender */
    $sender = \Bitrix\MessageService\Sender\SmsManager::getSenderById($_REQUEST['sender_id']);
    /** @var \CMain $APPLICATION */
    $isAdmin = \Bitrix\MessageService\Context\User::isAdmin();
    /** @var array $arResult */
    /** @var \Bitrix\Report\VisualConstructor\Fields\Valuable\DropDown $field */
    $field = $arResult['CONFIGURATION_FIELD'];
    /** @var array $arResult */
    /** @var \Bitrix\Report\VisualConstructor\Fields\Valuable\LabelField $field */
    $field = $arResult['CONFIGURATION_FIELD'];
    /** @var array $arResult */
    /** @var \Bitrix\Report\VisualConstructor\Fields\Valuable\TimePeriod $field */
    $field = $arResult['CONFIGURATION_FIELD'];
    /** @var array $arResult */
    /** @var \Bitrix\Report\VisualConstructor\Fields\Valuable\ColorPicker $field */
    $field = $arResult['CONFIGURATION_FIELD'];
    /** @var array $arResult */
    /** @var \Bitrix\Report\VisualConstructor\Fields\Valuable\CheckBox $field */
    $field = $arResult['CONFIGURATION_FIELD'];
    /** @var array $arResult */
    /** @var \Bitrix\Report\VisualConstructor\Fields\Valuable\LabelField $field */
    $field = $arResult['CONFIGURATION_FIELD'];
    /** @var array $arResult */
    /** @var \Bitrix\Report\VisualConstructor\Fields\ComplexHtml $field */
    $field = $arResult['CONFIGURATION_FIELD'];
    /** @var \Bitrix\Report\VisualConstructor\Fields\Image $field */
    $field = $arResult['CONFIGURATION_FIELD'];
    /** @var array $arResult */
    /** @var \Bitrix\Report\VisualConstructor\Fields\Valuable\CustomDropDown $field */
    $field = $arResult['CONFIGURATION_FIELD'];
    /** @var array $arResult */
    /** @var \Bitrix\Report\VisualConstructor\Fields\Button $field */
    $field = $arResult['CONFIGURATION_FIELD'];
    /** @var array $arResult */
    /** @var \Bitrix\Report\VisualConstructor\Fields\Valuable\ColorPicker $field */
    $field = $arResult['CONFIGURATION_FIELD'];
    /** @var array $arResult */
    /** @var \Bitrix\ImOpenLines\Integrations\Report\VisualConstructor\Fields\Valuable\DropDownResponsible $field */
    $field = $arResult['CONFIGURATION_FIELD'];
    /** @var array $arResult */
    /** @var \Bitrix\Report\VisualConstructor\Fields\Valuable\LabelField $field */
    $field = $arResult['CONFIGURATION_FIELD'];
    /** @var array $arParams */
    $availableViewList = $arParams['AVAILABLE_VIEWS'];
    /** @var array $preparedWidget */
    $preparedWidget = $arParams['PREPARED_WIDGET'];
    /** @var array $arResult */
    /** @var \Bitrix\Report\VisualConstructor\Fields\Valuable\PreviewBlock $field */
    $field = $arResult['CONFIGURATION_FIELD'];
    /** @var \Bitrix\Report\VisualConstructor\Form $form */
    $form = $arResult['ADD_FORM'];
    /** @var CBitrixCloudMonitoringTest $testAlert */
    $testAlert = \null;
    /** @global CUser $USER */
    $menu = array("parent_menu" => "global_menu_settings", "section" => "bitrixcloud", "sort" => 1645, "text" => \GetMessage("BCL_MENU_ITEM"), "icon" => "bitrixcloud_menu_icon", "page_icon" => "bitrixcloud_page_icon", "items_id" => "menu_bitrixcloud", "items" => array());
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $sTableID = "tbl_graph_list";
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var $APPLICATION CMain */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @global $by string */
    /** @global $order string */
    $oSort = new \CAdminSorting($sTableID, "s_session_time", "desc");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $sTableID = "tbl_diagram";
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $sTableID = "tbl_autodetect_list";
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /** @var CMain $APPLICATION */
    $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
    /**
     * @var $component StringUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var StringUfComponent $component
     * @var array $arResult
     */
    $component = $this->getComponent();
    /**
     * @var StringUfComponent $component
     * @var array $arResult
     */
    $component = $this->getComponent();
    /**
     * @var CBitrixComponentTemplate $this
     * @var $arParams
     * @var $arResult
     * @global $APPLICATION
     */
    $component = $this->getComponent();
    /** @var CEventMain[] $arModuleObjects */
    $arModuleObjects = array();
    /**
     * @var $component DoubleUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var DoubleUfComponent $component
     * @var array $arResult
     */
    $component = $this->getComponent();
    /**
     * @var $component DoubleUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var DoubleUfComponent $component
     * @var array $arResult
     */
    $component = $this->getComponent();
    /**
     * Bitrix vars
     * @global CUser $GLOBALS["USER"]
     * @global CMain $APPLICATION
     * @var array $arParams
     */
    $arParams = array();
    /**
     * @var $component IntegerUfComponent
     * @var $attrList array
     */
    $component = $this->getComponent();
    /**
     * @var IntegerUfComponent $component
     * @var array $arResult
     */
    $component = $this->getComponent();
    /**
     * @var IntegerUfComponent $component
     * @var array $arResult
     */
    $component = $this->getComponent();
    /** @var \Bitrix\Main\UI\PageNavigation $navigation */
    $navigation = $arParams["NAV_OBJECT"];
    /**
     * @var $component BooleanUfComponent
     */
    $label = \Bitrix\Main\UserField\Types\BooleanType::getLabels($arResult['userField']);
    /**
     * @var array $arResult
     */
    $nodes = [$arResult['userField']['~id']];
    /**
     * @var $component FileUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var $component StringUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var $component UrlUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var UrlUfComponent $component
     * @var array $arResult
     */
    $component = $this->getComponent();
    /**
     * @var $component UrlUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var StringUfComponent $component
     * @var array $arResult
     */
    $component = $this->getComponent();
    /**
     * @var $component DateUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var EnumUfComponent $component
     * @var array $arResult
     */
    $component = $this->getComponent();
    /**
     * @var $component EnumUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var array $arResult
     */
    $isFirst = \true;
    /**
     * @var $component DateUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var DateUfComponent $component
     * @var array $arResult
     */
    $component = $this->getComponent();
    /**
     * @var $component DateUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var DateUfComponent $component
     * @var array $arResult
     */
    $component = $this->getComponent();
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2013 Bitrix
     */
    /**
     * Bitrix vars
     *
     * @var array $arParams
     * @var array $arResult
     */
    $bWasSelect = \false;
    /**
     * @var array $arParams
     * @var array $arResult
     * @global CUser $USER
     * @global CMain $APPLICATION
     */
    $arrMainMenu = \explode(",", \COption::GetOptionString("main", "map_top_menu_type", "top"));
    /** @var array $arParams */
    /** @var array $arResult */
    /** @var CBitrixComponentTemplate $this */
    /** @var PageNavigationComponent $component */
    $component = $this->getComponent();
    /**
     * @var array $arResult
     * @var array $arParam
     * @var CBitrixComponentTemplate $this
     */
    /** @var PageNavigationComponent $component */
    $component = $this->getComponent();
    /**
     * @var array $arResult
     * @var array $arParam
     * @var CBitrixComponentTemplate $this
     */
    /** @var PageNavigationComponent $component */
    $component = $this->getComponent();
    /**
     * @var $component StringFormattedUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var array $arResult;
     * @var array $arParams;
     */
    $bFirst = \true;
    /**
     * @var $component DateTimeUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var $component DateTimeUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var DateTimeUfComponent $component
     * @var array $arResult
     */
    $component = $this->getComponent();
    /**
     * @var $component DateTimeUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var DateTimeUfComponent $component
     * @var array $arResult
     */
    $component = $this->getComponent();
    /**
     * This file is used only for compatibility.
     * Some scripts could include cache_html.php using code like this
     * require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/classes/general/cache_html.php");
     */
    $oldClassName = "CHTMLPagesCache";
    /**
     * Ýòà ïåðåìåííàÿ ñîäåðæèò ýêçåìïëÿð êëàññà ÷åðåç API êîòîðîãî
     * è ïðîèñõîäèò ðàáîòà ñ ïîëüçîâàòåëüñêèìè ñâîéñòâàìè.
     * @global CUserTypeManager $GLOBALS['USER_FIELD_MANAGER']
     * @name $USER_FIELD_MANAGER
     */
    $USER_FIELD_MANAGER = new \CUserTypeManager();
    /** @var $request Main\HttpRequest */
    $request = \Bitrix\Main\Context::getCurrent()->getRequest();
    /**
     * Bitrix Framework
     * @package bitrix
     * @subpackage main
     * @copyright 2001-2013 Bitrix
     */
    /**
     * Bitrix vars
     * @global CUser $USER
     * @global CMain $APPLICATION
     */
    $strError = "";
    /** @global string $by */
    /** @global string $order */
    $rsData = \CSiteTemplate::GetList(array($by => $order), array('TYPE' => $isEditingMessageThemePage ? 'mail' : ''), array("ID", "NAME", "DESCRIPTION", "SCREENSHOT", "SORT"));
    /** @var CUser $USER */
    /** @var CMain $APPLICATION */
    $isAdmin = $USER->CanDoOperation('cache_control');
    /** @var $request Main\HttpRequest */
    $request = \Bitrix\Main\Context::getCurrent()->getRequest();
    /**
     * @global $find
     * @global $find_type
     * @global $find_id
     * @global $find_event_name
     * @global $find_event_name_id
     * @global $find_site
     * @global $find_language_id
     * @global $find_active
     * @global $find_sender
     * @global $find_receiver
     * @global $find_message
    */
    $arFilterFields = array("find", "find_type", "find_id", "find_event_name", "find_event_name_id", "find_site", "find_language_id", "find_active", "find_sender", "find_receiver", "find_message");
    /**
     * 	@global $find
     * 	@global $find_type
     * 	@global $find_type_id
     * 	@global $find_tmpl_id
     * 	@global $find_event_type
     */
    $arFilterFields = array("find", "find_type", "find_type_id", "find_tmpl_id", "find_event_type");
    /** @var $request Main\HttpRequest */
    $request = \Bitrix\Main\Context::getCurrent()->getRequest();
    /** @global string $by  */
    /** @global string $order  */
    $rsData = \CEventLog::GetList(array($by => $order), $arFilter, $arNavParams);
    /** @var CUserFieldEnum $obEnum */
    $obEnum = \null;
    /**
     * @global CUser $USER
     * @global CMain $APPLICATION
     */
    $module_id = "fileman";
    /**
     * @var MoneyUfComponent $component
     * @var array $arResult
     */
    $isFirst = \true;
    /**
     * @var array $arResult
     * @var array $arParams
     * @var CMain $APPLICATION
     */
    $arSmiles = array();
    /**
     * @global CUser $USER
     */
    $MESS = array();
    /** @var array $arResult */
    /** @var \Bitrix\Bizproc\Activity\PropertiesDialog $dialog */
    $map = $dialog->getMap();
    /**
     * Bitrix vars
     *
     * @global CMain $APPLICATION
     * @global CUser $USER
     */
    $result = array();
    /**
     * Bitrix vars
     *
     * @var array $arParams
     * @var array $arResult
     * @var CBitrixComponent $this
     * @global CMain $APPLICATION
     * @global CUser $USER
     */
    $arDefaultUrlTemplates404 = array("category" => "category/#category#/", "detail" => "detail/#app#/", "placement_view" => "view/#APP#/", "placement" => "placement/#PLACEMENT_ID#/", "search" => "search/", "buy" => "buy/", "updates" => "updates/", "installed" => "installed/", "booklet" => "booklet/#CODE#/");
    /**
     * Bitrix vars
     *
     * @var array $arParams
     * @var array $arResult
     * @var CBitrixComponentTemplate $this
     * @global CMain $APPLICATION
     */
    $c = \Bitrix\Main\Text\Converter::getHtmlConverter();
    /**
     * Bitrix vars
     *
     * @var array $arParams
     * @var array $arResult
     * @var CBitrixComponentTemplate $this
     * @global CMain $APPLICATION
     */
    $c = \Bitrix\Main\Text\Converter::getHtmlConverter();
    /**
     * Bitrix vars
     *
     * @var array $arParams
     * @var array $arResult
     * @var CBitrixComponent $this
     * @global CMain $APPLICATION
     * @global CUser $USER
     */
    $arDefaultUrlTemplates404 = array("list" => "", "event_list" => "event/", "event_edit" => "event/#id#/", "ap_list" => "ap/", "ap_edit" => "ap/#id#/");
    /**
     * Bitrix vars
     *
     * @var array $arParams
     * @var array $arResult
     * @var CBitrixComponent $this
     * @global CMain $APPLICATION
     * @global CUser $USER
     */
    $request = \Bitrix\Main\Context::getCurrent()->getRequest();
    /**
     * Bitrix vars
     *
     * @var array $arParams
     * @var array $arResult
     * @var CBitrixComponent $this
     * @global CMain $APPLICATION
     * @global CUser $USER
     */
    $arDefaultUrlTemplates404 = array("index" => "", "edit" => "edit/#id#/", "list" => "edit/");
    /**
     * @var $component AddressUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var $component AddressUfComponent
     */
    $component = $this->getComponent();
    /**
     * @var AddressUfComponent $component
     * @var array $arResult
     */
    $component = $this->getComponent();
    /**
     * @var AddressUfComponent $component
     * @var array $arResult
     */
    $component = $this->getComponent();
    /** @var CAllMain $APPLICATION Application. */
    $modulePermission = $APPLICATION->GetGroupRight("fileman");
    /** @var CUser $user */
    $user = $GLOBALS["USER"];
    /** @var CBPDocumentService $documentService */
    $documentService = $runtime->GetService("DocumentService");
    /** @var CUser $user */
    $user = $GLOBALS["USER"];
    /** @var CBPDocumentService $documentService */
    $documentService = $arResult["DocumentService"];
    /** @var CUser $user */
    $user = $GLOBALS["USER"];
    /** @var \Bitrix\Bizproc\Activity\PropertiesDialog $dialog */
    $map = $dialog->getMap();
    /** @var \Bitrix\Bizproc\Activity\PropertiesDialog $dialog */
    $map = $dialog->getMap();
    /** @var \Bitrix\Bizproc\Activity\PropertiesDialog $dialog */
    /** @var bool $canSetModifiedBy */
    /** @var mixed $modifiedBy */
    $mergeMultipleFields = $dialog->getMap()['MergeMultipleFields'];
    /** @var \Bitrix\Bizproc\Activity\PropertiesDialog $dialog */
    /** @var bool $canSetModifiedBy */
    /** @var mixed $modifiedBy */
    $mergeMultipleFields = $dialog->getMap()['MergeMultipleFields'];
    /** @var \Bitrix\Bizproc\Activity\PropertiesDialog $dialog */
    $map = $dialog->getMap();
    /** @var \Bitrix\Bizproc\Activity\PropertiesDialog $dialog */
    $map = $dialog->getMap();
    /** @var \Bitrix\Bizproc\Activity\PropertiesDialog $dialog */
    $map = $dialog->getMap();
    /** @var \Bitrix\Bizproc\Activity\PropertiesDialog $dialog */
    $map = $dialog->getMap();
    /** @var \Bitrix\Main\HttpRequest $request */
    $request = $context->getRequest();
}